Move the following files from /trunk to /trunk/epan:
[obnox/wireshark/wip.git] / epan / dissectors / packet-inap.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Ethereal dissector compiler    */
3 /* .\packet-inap.c                                                            */
4 /* ../../tools/asn2eth.py -X -b -e -p inap -c inap.cnf -s packet-inap-template INAP.asn */
5
6 /* Input file: packet-inap-template.c */
7
8 /* 
9 /* packet-inap-template.c
10  * Routines for INAP
11  * Copyright 2004, Tim Endean <endeant@hotmail.com>
12  * Built from the gsm-map dissector Copyright 2004, Anders Broman <anders.broman@ericsson.com>
13  *
14  * $Id$
15  * Ethereal - Network traffic analyzer
16  * By Gerald Combs <gerald@ethereal.com>
17  * Copyright 1998 Gerald Combs
18  *
19  * This program is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU General Public License
21  * as published by the Free Software Foundation; either version 2
22  * of the License, or (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32  * References: ETSI 300 374
33  */
34
35 #ifdef HAVE_CONFIG_H
36 # include "config.h"
37 #endif
38
39 #include <glib.h>
40 #include <epan/packet.h>
41 #include <epan/prefs.h>
42 #include <epan/conversation.h>
43 #include <epan/tap.h>
44
45 #include <stdio.h>
46 #include <string.h>
47
48 #include "packet-ber.h"
49 #include "packet-inap.h"
50 #include "packet-q931.h"
51 #include "packet-e164.h"
52
53 #define PNAME  "INAP"
54 #define PSNAME "INAP"
55 #define PFNAME "inap"
56
57 /* Initialize the protocol and registered fields */
58 int proto_inap = -1;
59 static int hf_inap_invokeCmd = -1;             /* Opcode */
60 static int hf_inap_invokeid = -1;              /* INTEGER */
61 static int hf_inap_absent = -1;                /* NULL */
62 static int hf_inap_invokeId = -1;              /* InvokeId */
63 static int hf_inap_invoke = -1;                /* InvokePDU */
64 static int hf_inap_returnResult = -1;                /* InvokePDU */
65 static int hf_inap_returnResult_result = -1;
66 static int hf_inap_getPassword = -1;  
67 static int hf_inap_currentPassword = -1;  
68
69 /*--- Included file: packet-inap-hf.c ---*/
70
71 static int hf_inap_originalCallID = -1;           /* CallID */
72 static int hf_inap_destinationCallID = -1;        /* CallID */
73 static int hf_inap_newLegID = -1;                 /* OCTET_STRING */
74 static int hf_inap_correlationidentifier = -1;    /* OCTET_STRING */
75 static int hf_inap_CallPartyHandlingResultsArg_item = -1;  /* LegInformation */
76 static int hf_inap_callID = -1;                   /* CallID */
77 static int hf_inap_targetCallID = -1;             /* CallID */
78 static int hf_inap_legToBeConnectedID = -1;       /* OCTET_STRING */
79 static int hf_inap_legToBeDetached = -1;          /* OCTET_STRING */
80 static int hf_inap_legID = -1;                    /* LegID */
81 static int hf_inap_sendingSideID = -1;            /* OCTET_STRING_SIZE_1 */
82 static int hf_inap_receivingSideID = -1;          /* OCTET_STRING_SIZE_1 */
83 static int hf_inap_heldLegID = -1;                /* LegID */
84 static int hf_inap_legToBeReleased = -1;          /* LegID */
85 static int hf_inap_releaseCause = -1;             /* Cause */
86 static int hf_inap_legStatus = -1;                /* LegStatus */
87 static int hf_inap_VariableParts_item = -1;       /* VariableParts_item */
88 static int hf_inap_integer = -1;                  /* INTEGER_0_2147483647 */
89 static int hf_inap_number = -1;                   /* OCTET_STRING */
90 static int hf_inap_time = -1;                     /* OCTET_STRING */
91 static int hf_inap_date = -1;                     /* OCTET_STRING */
92 static int hf_inap_price = -1;                    /* OCTET_STRING */
93 static int hf_inap_elementaryMessageID = -1;      /* INTEGER_0_2147483647 */
94 static int hf_inap_variableParts = -1;            /* VariableParts */
95 static int hf_inap_toneID = -1;                   /* INTEGER_0_2147483647 */
96 static int hf_inap_tduration = -1;                /* INTEGER_0_2147483647 */
97 static int hf_inap_messageContent = -1;           /* IA5String */
98 static int hf_inap_attributes = -1;               /* OCTET_STRING */
99 static int hf_inap_text = -1;                     /* Text */
100 static int hf_inap_elementaryMessageIDs = -1;     /* T_elementaryMessageIDs */
101 static int hf_inap_elementaryMessageIDs_item = -1;  /* INTEGER_0_2147483647 */
102 static int hf_inap_variableMessage = -1;          /* VariableMessage */
103 static int hf_inap_inbandInfo = -1;               /* T_inbandInfo */
104 static int hf_inap_messageID = -1;                /* MessageID */
105 static int hf_inap_numberOfRepetitions = -1;      /* INTEGER_1_127 */
106 static int hf_inap_mduration = -1;                /* INTEGER_0_32767 */
107 static int hf_inap_interval = -1;                 /* INTEGER_0_32767 */
108 static int hf_inap_tone = -1;                     /* Tone */
109 static int hf_inap_displayInformation = -1;       /* IA5String */
110 static int hf_inap_dialledNumber = -1;            /* OCTET_STRING */
111 static int hf_inap_callingLineID = -1;            /* OCTET_STRING */
112 static int hf_inap_serviceKey = -1;               /* INTEGER_0_2147483647 */
113 static int hf_inap_addressAndService = -1;        /* T_addressAndService */
114 static int hf_inap_calledAddressValue = -1;       /* OCTET_STRING */
115 static int hf_inap_callingAddressValue = -1;      /* OCTET_STRING */
116 static int hf_inap_locationNumber = -1;           /* OCTET_STRING */
117 static int hf_inap_Extensions_item = -1;          /* Extensions_item */
118 static int hf_inap_type = -1;                     /* INTEGER */
119 static int hf_inap_criticality = -1;              /* T_criticality */
120 static int hf_inap_value = -1;                    /* OCTET_STRING */
121 static int hf_inap_filteredCallTreatment = -1;    /* T_filteredCallTreatment */
122 static int hf_inap_sFBillingChargingCharacteristics = -1;  /* OCTET_STRING */
123 static int hf_inap_informationToSend = -1;        /* InformationToSend */
124 static int hf_inap_maximumNumberOfCounters = -1;  /* INTEGER */
125 static int hf_inap_filteringCharacteristics = -1;  /* T_filteringCharacteristics */
126 static int hf_inap_numberOfCalls = -1;            /* INTEGER_0_2147483647 */
127 static int hf_inap_filteringTimeOut = -1;         /* T_filteringTimeOut */
128 static int hf_inap_aduration = -1;                /* INTEGER_M2_86400 */
129 static int hf_inap_stopTime = -1;                 /* OCTET_STRING_SIZE_6 */
130 static int hf_inap_filteringCriteria = -1;        /* FilteringCriteria */
131 static int hf_inap_startTime = -1;                /* OCTET_STRING_SIZE_6 */
132 static int hf_inap_extensions = -1;               /* Extensions */
133 static int hf_inap_messageType = -1;              /* T_messageType */
134 static int hf_inap_dpAssignment = -1;             /* T_dpAssignment */
135 static int hf_inap_miscCallInfo = -1;             /* MiscCallInfo */
136 static int hf_inap_triggerType = -1;              /* TriggerType */
137 static int hf_inap_RouteList_item = -1;           /* OCTET_STRING */
138 static int hf_inap_bearerCap = -1;                /* OCTET_STRING */
139 static int hf_inap_tmr = -1;                      /* OCTET_STRING_SIZE_1 */
140 static int hf_inap_serviceAddressInformation = -1;  /* ServiceAddressInformation */
141 static int hf_inap_bearerCapability = -1;         /* BearerCapability */
142 static int hf_inap_calledPartyNumber = -1;        /* OCTET_STRING */
143 static int hf_inap_callingPartyNumber = -1;       /* OCTET_STRING */
144 static int hf_inap_callingPartysCategory = -1;    /* OCTET_STRING_SIZE_1 */
145 static int hf_inap_iPSSPCapabilities = -1;        /* OCTET_STRING */
146 static int hf_inap_iPAvailable = -1;              /* OCTET_STRING */
147 static int hf_inap_iSDNAccessRelatedInformation = -1;  /* OCTET_STRING */
148 static int hf_inap_cGEncountered = -1;            /* CGEncountered */
149 static int hf_inap_serviceProfileIdentifier = -1;  /* OCTET_STRING */
150 static int hf_inap_terminalType = -1;             /* TerminalType */
151 static int hf_inap_chargeNumber = -1;             /* OCTET_STRING */
152 static int hf_inap_servingAreaID = -1;            /* OCTET_STRING */
153 static int hf_inap_trunkGroupID = -1;             /* INTEGER */
154 static int hf_inap_privateFacilityID = -1;        /* INTEGER */
155 static int hf_inap_huntGroup = -1;                /* OCTET_STRING */
156 static int hf_inap_routeIndex = -1;               /* OCTET_STRING */
157 static int hf_inap_dpSpecificCommonParameters = -1;  /* DpSpecificCommonParameters */
158 static int hf_inap_dialledDigits = -1;            /* OCTET_STRING */
159 static int hf_inap_callingPartyBusinessGroupID = -1;  /* OCTET_STRING */
160 static int hf_inap_callingPartySubaddress = -1;   /* OCTET_STRING */
161 static int hf_inap_callingFacilityGroup = -1;     /* CallingFacilityGroup */
162 static int hf_inap_callingFacilityGroupMember = -1;  /* INTEGER */
163 static int hf_inap_originalCalledPartyID = -1;    /* OCTET_STRING */
164 static int hf_inap_prefix = -1;                   /* OCTET_STRING */
165 static int hf_inap_redirectingPartyID = -1;       /* OCTET_STRING */
166 static int hf_inap_redirectionInformation = -1;   /* OCTET_STRING_SIZE_2 */
167 static int hf_inap_routeList = -1;                /* RouteList */
168 static int hf_inap_travellingClassMark = -1;      /* OCTET_STRING */
169 static int hf_inap_featureCode = -1;              /* OCTET_STRING */
170 static int hf_inap_accessCode = -1;               /* OCTET_STRING */
171 static int hf_inap_carrier = -1;                  /* OCTET_STRING */
172 static int hf_inap_destinationRoutingAddress = -1;  /* SEQUENCE_SIZE_1_3_OF_DestinationAddress */
173 static int hf_inap_destinationRoutingAddress_item = -1;  /* DestinationAddress */
174 static int hf_inap_alertingPattern = -1;          /* OCTET_STRING_SIZE_3 */
175 static int hf_inap_aChBillingChargingCharacteristics = -1;  /* OCTET_STRING */
176 static int hf_inap_partyToCharge = -1;            /* PartyToCharge */
177 static int hf_inap_correlationID = -1;            /* OCTET_STRING */
178 static int hf_inap_gapCriteria = -1;              /* T_gapCriteria */
179 static int hf_inap_gapOnService = -1;             /* T_gapOnService */
180 static int hf_inap_dpCriteria = -1;               /* T_dpCriteria */
181 static int hf_inap_calledAddressAndService = -1;  /* T_calledAddressAndService */
182 static int hf_inap_callingAddressAndService = -1;  /* T_callingAddressAndService */
183 static int hf_inap_gapIndicators = -1;            /* T_gapIndicators */
184 static int hf_inap_cgduration = -1;               /* INTEGER_M2_86400 */
185 static int hf_inap_gapInterval = -1;              /* INTEGER_M1_60000 */
186 static int hf_inap_controlType = -1;              /* T_controlType */
187 static int hf_inap_gapTreatment = -1;             /* T_gapTreatment */
188 static int hf_inap_both = -1;                     /* Both */
189 static int hf_inap_requestedInformationList = -1;  /* T_requestedInformationList */
190 static int hf_inap_requestedInformationList_item = -1;  /* T_requestedInformationList_item */
191 static int hf_inap_requestedInformationType = -1;  /* T_requestedInformationType */
192 static int hf_inap_requestedInformationValue = -1;  /* T_requestedInformationValue */
193 static int hf_inap_callAttemptElapsedTimeValue = -1;  /* INTEGER_0_255 */
194 static int hf_inap_callStopTimeValue = -1;        /* OCTET_STRING_SIZE_6 */
195 static int hf_inap_callConnectedElapsedTimeValue = -1;  /* INTEGER_0_2147483647 */
196 static int hf_inap_releaseCauseValue = -1;        /* Cause */
197 static int hf_inap_requestedInformationTypeList = -1;  /* T_requestedInformationTypeList */
198 static int hf_inap_requestedInformationTypeList_item = -1;  /* T_requestedInformationTypeList_item */
199 static int hf_inap_invokeID = -1;                 /* INTEGER_M128_127 */
200 static int hf_inap_allRequests = -1;              /* NULL */
201 static int hf_inap_lineID = -1;                   /* OCTET_STRING */
202 static int hf_inap_facilityGroupID = -1;          /* FacilityGroupID */
203 static int hf_inap_facilityGroupMemberID = -1;    /* INTEGER */
204 static int hf_inap_resourceID = -1;               /* ResourceID */
205 static int hf_inap_numberingPlan = -1;            /* OCTET_STRING_SIZE_1 */
206 static int hf_inap_cutAndPaste = -1;              /* INTEGER_0_22 */
207 static int hf_inap_forwardingCondition = -1;      /* T_forwardingCondition */
208 static int hf_inap_scfID = -1;                    /* OCTET_STRING */
209 static int hf_inap_serviceInteractionIndicators = -1;  /* OCTET_STRING */
210 static int hf_inap_resourceAddress = -1;          /* T_resourceAddress */
211 static int hf_inap_ipRoutingAddress = -1;         /* OCTET_STRING */
212 static int hf_inap_none = -1;                     /* NULL */
213 static int hf_inap_assistingSSPIPRoutingAddress = -1;  /* OCTET_STRING */
214 static int hf_inap_eventTypeCharging = -1;        /* OCTET_STRING */
215 static int hf_inap_eventSpecificInformationCharging = -1;  /* OCTET_STRING */
216 static int hf_inap_monitorMode = -1;              /* MonitorMode */
217 static int hf_inap_eventTypeBCSM = -1;            /* EventTypeBCSM */
218 static int hf_inap_bcsmEventCorrelationID = -1;   /* OCTET_STRING */
219 static int hf_inap_eventSpecificInformationBCSM = -1;  /* T_eventSpecificInformationBCSM */
220 static int hf_inap_collectedInfoSpecificInfo = -1;  /* T_collectedInfoSpecificInfo */
221 static int hf_inap_calledPartynumber = -1;        /* OCTET_STRING */
222 static int hf_inap_analyzedInfoSpecificInfo = -1;  /* T_analyzedInfoSpecificInfo */
223 static int hf_inap_routeSelectFailureSpecificInfo = -1;  /* T_routeSelectFailureSpecificInfo */
224 static int hf_inap_failureCause = -1;             /* OCTET_STRING_SIZE_2_10 */
225 static int hf_inap_oCalledPartyBusySpecificInfo = -1;  /* T_oCalledPartyBusySpecificInfo */
226 static int hf_inap_busyCause = -1;                /* OCTET_STRING_SIZE_2_10 */
227 static int hf_inap_oNoAnswerSpecificInfo = -1;    /* T_oNoAnswerSpecificInfo */
228 static int hf_inap_oAnswerSpecificInfo = -1;      /* T_oAnswerSpecificInfo */
229 static int hf_inap_oMidCallSpecificInfo = -1;     /* T_oMidCallSpecificInfo */
230 static int hf_inap_connectTime = -1;              /* INTEGER_0_2147483647 */
231 static int hf_inap_oDisconnectSpecificInfo = -1;  /* T_oDisconnectSpecificInfo */
232 static int hf_inap_tBusySpecificInfo = -1;        /* T_tBusySpecificInfo */
233 static int hf_inap_tNoAnswerSpecificInfo = -1;    /* T_tNoAnswerSpecificInfo */
234 static int hf_inap_tAnswerSpecificInfo = -1;      /* T_tAnswerSpecificInfo */
235 static int hf_inap_tMidCallSpecificInfo = -1;     /* T_tMidCallSpecificInfo */
236 static int hf_inap_tDisconnectSpecificInfo = -1;  /* T_tDisconnectSpecificInfo */
237 static int hf_inap_holdcause = -1;                /* OCTET_STRING */
238 static int hf_inap_empty = -1;                    /* NULL */
239 static int hf_inap_highLayerCompatibility = -1;   /* OCTET_STRING_SIZE_2 */
240 static int hf_inap_additionalCallingPartyNumber = -1;  /* OCTET_STRING */
241 static int hf_inap_forwardCallIndicators = -1;    /* OCTET_STRING_SIZE_2 */
242 static int hf_inap_calledPartyBusinessGroupID = -1;  /* OCTET_STRING */
243 static int hf_inap_calledPartySubaddress = -1;    /* OCTET_STRING */
244 static int hf_inap_featureRequestIndicator = -1;  /* FeatureRequestIndicator */
245 static int hf_inap_disconnectFromIPForbidden = -1;  /* BOOLEAN */
246 static int hf_inap_requestAnnouncementComplete = -1;  /* BOOLEAN */
247 static int hf_inap_collectedInfo = -1;            /* T_collectedInfo */
248 static int hf_inap_collectedDigits = -1;          /* T_collectedDigits */
249 static int hf_inap_minimumNbOfDigits = -1;        /* INTEGER_1_127 */
250 static int hf_inap_maximumNbOfDigits = -1;        /* INTEGER_1_127 */
251 static int hf_inap_endOfReplyDigit = -1;          /* OCTET_STRING_SIZE_1_2 */
252 static int hf_inap_cancelDigit = -1;              /* OCTET_STRING_SIZE_1_2 */
253 static int hf_inap_startDigit = -1;               /* OCTET_STRING_SIZE_1_2 */
254 static int hf_inap_firstDigitTimeOut = -1;        /* INTEGER_1_127 */
255 static int hf_inap_interDigitTimeOut = -1;        /* INTEGER_1_127 */
256 static int hf_inap_errorTreatment = -1;           /* T_errorTreatment */
257 static int hf_inap_interruptableAnnInd = -1;      /* BOOLEAN */
258 static int hf_inap_voiceInformation = -1;         /* BOOLEAN */
259 static int hf_inap_voiceBack = -1;                /* BOOLEAN */
260 static int hf_inap_iA5Information = -1;           /* BOOLEAN */
261 static int hf_inap_digitsResponse = -1;           /* OCTET_STRING */
262 static int hf_inap_iA5Response = -1;              /* IA5String */
263 static int hf_inap_resourceStatus = -1;           /* ResourceStatus */
264 static int hf_inap_monitorDuration = -1;          /* INTEGER_M2_86400 */
265 static int hf_inap_RequestNotificationChargingEvent_item = -1;  /* RequestNotificationChargingEvent_item */
266 static int hf_inap_bcsmEvents = -1;               /* T_bcsmEvents */
267 static int hf_inap_bcsmEvents_item = -1;          /* T_bcsmEvents_item */
268 static int hf_inap_dpSpecificCriteria = -1;       /* T_dpSpecificCriteria */
269 static int hf_inap_numberOfDigits = -1;           /* INTEGER_1_255 */
270 static int hf_inap_applicationTimer = -1;         /* INTEGER_0_2047 */
271 static int hf_inap_timerID = -1;                  /* T_timerID */
272 static int hf_inap_timervalue = -1;               /* INTEGER_0_2147483647 */
273 static int hf_inap_destinationNumberRoutingAddress = -1;  /* OCTET_STRING */
274 static int hf_inap_calledFacilityGroup = -1;      /* CalledFacilityGroup */
275 static int hf_inap_calledFacilityGroupMember = -1;  /* INTEGER */
276 static int hf_inap_sCIBillingChargingCharacteristics = -1;  /* OCTET_STRING */
277 static int hf_inap_countersValue = -1;            /* T_countersValue */
278 static int hf_inap_countersValue_item = -1;       /* T_countersValue_item */
279 static int hf_inap_counterID = -1;                /* INTEGER_0_99 */
280 static int hf_inap_counterValue = -1;             /* INTEGER_0_2147483647 */
281 static int hf_inap_responseCondition = -1;        /* T_responseCondition */
282 static int hf_inap_reportCondition = -1;          /* T_reportCondition */
283 static int hf_inap_problem = -1;                  /* T_problem */
284 static int hf_inap_operation = -1;                /* INTEGER_M128_127 */
285
286 /*--- End of included file: packet-inap-hf.c ---*/
287
288 static guint global_tcap_itu_ssn = 241;
289
290 /* Initialize the subtree pointers */
291 static gint ett_inap = -1;
292 static gint ett_inap_InvokeId = -1;
293 static gint ett_inap_InvokePDU = -1;
294 static gint ett_inap_ReturnResultPDU = -1;
295 static gint ett_inap_ReturnResult_result = -1;
296 static gint ett_inap_INAPPDU = -1;
297 static gint ett_inapisup_parameter = -1;
298 static int inap_tap = -1;
299
300 /*--- Included file: packet-inap-ett.c ---*/
301
302 static gint ett_inap_AddPartyArg = -1;
303 static gint ett_inap_AttachArg = -1;
304 static gint ett_inap_CallPartyHandlingResultsArg = -1;
305 static gint ett_inap_ChangePartiesArg = -1;
306 static gint ett_inap_DetachArg = -1;
307 static gint ett_inap_HoldCallPartyConnectionArg = -1;
308 static gint ett_inap_LegID = -1;
309 static gint ett_inap_ReconnectArg = -1;
310 static gint ett_inap_ReleaseCallPartyConnectionArg = -1;
311 static gint ett_inap_LegInformation = -1;
312 static gint ett_inap_VariableParts = -1;
313 static gint ett_inap_VariableParts_item = -1;
314 static gint ett_inap_VariableMessage = -1;
315 static gint ett_inap_Tone = -1;
316 static gint ett_inap_Text = -1;
317 static gint ett_inap_MessageID = -1;
318 static gint ett_inap_T_elementaryMessageIDs = -1;
319 static gint ett_inap_InformationToSend = -1;
320 static gint ett_inap_T_inbandInfo = -1;
321 static gint ett_inap_FilteringCriteria = -1;
322 static gint ett_inap_T_addressAndService = -1;
323 static gint ett_inap_Extensions = -1;
324 static gint ett_inap_Extensions_item = -1;
325 static gint ett_inap_ActivateServiceFilteringarg = -1;
326 static gint ett_inap_T_filteredCallTreatment = -1;
327 static gint ett_inap_T_filteringCharacteristics = -1;
328 static gint ett_inap_T_filteringTimeOut = -1;
329 static gint ett_inap_MiscCallInfo = -1;
330 static gint ett_inap_ServiceAddressInformation = -1;
331 static gint ett_inap_RouteList = -1;
332 static gint ett_inap_BearerCapability = -1;
333 static gint ett_inap_DpSpecificCommonParameters = -1;
334 static gint ett_inap_CallingFacilityGroup = -1;
335 static gint ett_inap_AnalysedInformationarg = -1;
336 static gint ett_inap_AnalyseInformationarg = -1;
337 static gint ett_inap_SEQUENCE_SIZE_1_3_OF_DestinationAddress = -1;
338 static gint ett_inap_PartyToCharge = -1;
339 static gint ett_inap_ApplyChargingarg = -1;
340 static gint ett_inap_AssistRequestInstructionsarg = -1;
341 static gint ett_inap_CallGaparg = -1;
342 static gint ett_inap_T_gapCriteria = -1;
343 static gint ett_inap_T_gapOnService = -1;
344 static gint ett_inap_T_calledAddressAndService = -1;
345 static gint ett_inap_T_callingAddressAndService = -1;
346 static gint ett_inap_T_gapIndicators = -1;
347 static gint ett_inap_T_gapTreatment = -1;
348 static gint ett_inap_Both = -1;
349 static gint ett_inap_CallInformationReportarg = -1;
350 static gint ett_inap_T_requestedInformationList = -1;
351 static gint ett_inap_T_requestedInformationList_item = -1;
352 static gint ett_inap_T_requestedInformationValue = -1;
353 static gint ett_inap_CallInformationRequestarg = -1;
354 static gint ett_inap_T_requestedInformationTypeList = -1;
355 static gint ett_inap_Cancelarg = -1;
356 static gint ett_inap_FacilityGroupID = -1;
357 static gint ett_inap_ResourceID = -1;
358 static gint ett_inap_CancelStatusReportRequestarg = -1;
359 static gint ett_inap_CollectedInformationarg = -1;
360 static gint ett_inap_CollectInformationarg = -1;
361 static gint ett_inap_Connectarg = -1;
362 static gint ett_inap_ConnectToResource = -1;
363 static gint ett_inap_T_resourceAddress = -1;
364 static gint ett_inap_EstablishTemporaryConnection = -1;
365 static gint ett_inap_EventNotificationChargingarg = -1;
366 static gint ett_inap_EventReportBCSM = -1;
367 static gint ett_inap_T_eventSpecificInformationBCSM = -1;
368 static gint ett_inap_T_collectedInfoSpecificInfo = -1;
369 static gint ett_inap_T_analyzedInfoSpecificInfo = -1;
370 static gint ett_inap_T_routeSelectFailureSpecificInfo = -1;
371 static gint ett_inap_T_oCalledPartyBusySpecificInfo = -1;
372 static gint ett_inap_T_oNoAnswerSpecificInfo = -1;
373 static gint ett_inap_T_oAnswerSpecificInfo = -1;
374 static gint ett_inap_T_oMidCallSpecificInfo = -1;
375 static gint ett_inap_T_oDisconnectSpecificInfo = -1;
376 static gint ett_inap_T_tBusySpecificInfo = -1;
377 static gint ett_inap_T_tNoAnswerSpecificInfo = -1;
378 static gint ett_inap_T_tAnswerSpecificInfo = -1;
379 static gint ett_inap_T_tMidCallSpecificInfo = -1;
380 static gint ett_inap_T_tDisconnectSpecificInfo = -1;
381 static gint ett_inap_HoldCallInNetworkarg = -1;
382 static gint ett_inap_InitialDP = -1;
383 static gint ett_inap_InitiateCallAttempt = -1;
384 static gint ett_inap_OAnswer = -1;
385 static gint ett_inap_OCalledPartyBusy = -1;
386 static gint ett_inap_ODisconnect = -1;
387 static gint ett_inap_OMidCall = -1;
388 static gint ett_inap_ONoAnswer = -1;
389 static gint ett_inap_OriginationAttemptAuthorized = -1;
390 static gint ett_inap_PlayAnnouncement = -1;
391 static gint ett_inap_PromptAndCollectUserInformationarg = -1;
392 static gint ett_inap_T_collectedInfo = -1;
393 static gint ett_inap_T_collectedDigits = -1;
394 static gint ett_inap_PromptAndCollectUserInformationres = -1;
395 static gint ett_inap_RequestCurrentStatusReportarg = -1;
396 static gint ett_inap_RequestCurrentStatusReportres = -1;
397 static gint ett_inap_RequestEveryStatusChangeReport = -1;
398 static gint ett_inap_RequestFirstStatusMatchReport = -1;
399 static gint ett_inap_RequestNotificationChargingEvent = -1;
400 static gint ett_inap_RequestNotificationChargingEvent_item = -1;
401 static gint ett_inap_RequestReportBCSMEvent = -1;
402 static gint ett_inap_T_bcsmEvents = -1;
403 static gint ett_inap_T_bcsmEvents_item = -1;
404 static gint ett_inap_T_dpSpecificCriteria = -1;
405 static gint ett_inap_ResetTimer = -1;
406 static gint ett_inap_RouteSelectFailure = -1;
407 static gint ett_inap_CalledFacilityGroup = -1;
408 static gint ett_inap_SelectFacility = -1;
409 static gint ett_inap_SelectRoute = -1;
410 static gint ett_inap_SendChargingInformation = -1;
411 static gint ett_inap_ServiceFilteringResponse = -1;
412 static gint ett_inap_T_countersValue = -1;
413 static gint ett_inap_T_countersValue_item = -1;
414 static gint ett_inap_StatusReport = -1;
415 static gint ett_inap_TAnswer = -1;
416 static gint ett_inap_TBusy = -1;
417 static gint ett_inap_TDisconnect = -1;
418 static gint ett_inap_TermAttemptAuthorized = -1;
419 static gint ett_inap_TMidCall = -1;
420 static gint ett_inap_TNoAnswer = -1;
421 static gint ett_inap_CancelFailed = -1;
422
423 /*--- End of included file: packet-inap-ett.c ---*/
424
425
426 static int  dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
427
428
429 /*--- Included file: packet-inap-fn.c ---*/
430
431 /*--- Fields for imported types ---*/
432
433
434
435
436 static int
437 dissect_inap_CallID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
438   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
439
440   return offset;
441 }
442 static int dissect_originalCallID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
443   return dissect_inap_CallID(TRUE, tvb, offset, pinfo, tree, hf_inap_originalCallID);
444 }
445 static int dissect_destinationCallID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
446   return dissect_inap_CallID(TRUE, tvb, offset, pinfo, tree, hf_inap_destinationCallID);
447 }
448 static int dissect_callID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
449   return dissect_inap_CallID(TRUE, tvb, offset, pinfo, tree, hf_inap_callID);
450 }
451 static int dissect_targetCallID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
452   return dissect_inap_CallID(TRUE, tvb, offset, pinfo, tree, hf_inap_targetCallID);
453 }
454
455 static const ber_sequence_t AddPartyArg_sequence[] = {
456   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCallID_impl },
457   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationCallID_impl },
458   { 0, 0, 0, NULL }
459 };
460
461 static int
462 dissect_inap_AddPartyArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
463   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
464                                 AddPartyArg_sequence, hf_index, ett_inap_AddPartyArg);
465
466   return offset;
467 }
468
469
470 static int
471 dissect_inap_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
472   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
473                                     NULL);
474
475   return offset;
476 }
477 static int dissect_newLegID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
478   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_newLegID);
479 }
480 static int dissect_correlationidentifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
481   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_correlationidentifier);
482 }
483 static int dissect_legToBeConnectedID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
484   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_legToBeConnectedID);
485 }
486 static int dissect_legToBeDetached_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
487   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_legToBeDetached);
488 }
489 static int dissect_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
490   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_number);
491 }
492 static int dissect_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
493   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_time);
494 }
495 static int dissect_date_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
496   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_date);
497 }
498 static int dissect_price_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
499   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_price);
500 }
501 static int dissect_attributes_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
502   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_attributes);
503 }
504 static int dissect_dialledNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
505   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_dialledNumber);
506 }
507 static int dissect_callingLineID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
508   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_callingLineID);
509 }
510 static int dissect_calledAddressValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
511   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_calledAddressValue);
512 }
513 static int dissect_callingAddressValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
514   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_callingAddressValue);
515 }
516 static int dissect_locationNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
517   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_locationNumber);
518 }
519 static int dissect_value_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
520   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_value);
521 }
522 static int dissect_sFBillingChargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
523   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_sFBillingChargingCharacteristics);
524 }
525 static int dissect_RouteList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
526   return dissect_inap_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_inap_RouteList_item);
527 }
528 static int dissect_bearerCap_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
529   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_bearerCap);
530 }
531 static int dissect_calledPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
532   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartyNumber);
533 }
534 static int dissect_callingPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
535   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartyNumber);
536 }
537 static int dissect_iPSSPCapabilities_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
538   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_iPSSPCapabilities);
539 }
540 static int dissect_iPAvailable_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
541   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_iPAvailable);
542 }
543 static int dissect_iSDNAccessRelatedInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
544   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_iSDNAccessRelatedInformation);
545 }
546 static int dissect_serviceProfileIdentifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
547   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_serviceProfileIdentifier);
548 }
549 static int dissect_chargeNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
550   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_chargeNumber);
551 }
552 static int dissect_servingAreaID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
553   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_servingAreaID);
554 }
555 static int dissect_huntGroup_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
556   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_huntGroup);
557 }
558 static int dissect_routeIndex_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
559   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_routeIndex);
560 }
561 static int dissect_dialledDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
562   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_dialledDigits);
563 }
564 static int dissect_callingPartyBusinessGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
565   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartyBusinessGroupID);
566 }
567 static int dissect_callingPartySubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
568   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartySubaddress);
569 }
570 static int dissect_originalCalledPartyID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
571   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_originalCalledPartyID);
572 }
573 static int dissect_prefix_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
574   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_prefix);
575 }
576 static int dissect_redirectingPartyID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
577   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_redirectingPartyID);
578 }
579 static int dissect_travellingClassMark_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
580   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_travellingClassMark);
581 }
582 static int dissect_featureCode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
583   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_featureCode);
584 }
585 static int dissect_accessCode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
586   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_accessCode);
587 }
588 static int dissect_carrier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
589   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_carrier);
590 }
591 static int dissect_aChBillingChargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
592   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_aChBillingChargingCharacteristics);
593 }
594 static int dissect_correlationID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
595   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_correlationID);
596 }
597 static int dissect_lineID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
598   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_lineID);
599 }
600 static int dissect_scfID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
601   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_scfID);
602 }
603 static int dissect_serviceInteractionIndicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
604   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_serviceInteractionIndicators);
605 }
606 static int dissect_ipRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
607   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_ipRoutingAddress);
608 }
609 static int dissect_assistingSSPIPRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
610   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_assistingSSPIPRoutingAddress);
611 }
612 static int dissect_eventTypeCharging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
613   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_eventTypeCharging);
614 }
615 static int dissect_eventSpecificInformationCharging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
616   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_eventSpecificInformationCharging);
617 }
618 static int dissect_bcsmEventCorrelationID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
619   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_bcsmEventCorrelationID);
620 }
621 static int dissect_calledPartynumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
622   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartynumber);
623 }
624 static int dissect_holdcause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
625   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_holdcause);
626 }
627 static int dissect_additionalCallingPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
628   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_additionalCallingPartyNumber);
629 }
630 static int dissect_calledPartyBusinessGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
631   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartyBusinessGroupID);
632 }
633 static int dissect_calledPartySubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
634   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartySubaddress);
635 }
636 static int dissect_digitsResponse_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
637   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_digitsResponse);
638 }
639 static int dissect_destinationNumberRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
640   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_destinationNumberRoutingAddress);
641 }
642 static int dissect_sCIBillingChargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
643   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_sCIBillingChargingCharacteristics);
644 }
645
646 static const ber_sequence_t AttachArg_sequence[] = {
647   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_newLegID_impl },
648   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationidentifier_impl },
649   { 0, 0, 0, NULL }
650 };
651
652 static int
653 dissect_inap_AttachArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
654   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
655                                 AttachArg_sequence, hf_index, ett_inap_AttachArg);
656
657   return offset;
658 }
659
660
661 static int
662 dissect_inap_OCTET_STRING_SIZE_1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
663   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
664                                     NULL);
665
666   return offset;
667 }
668 static int dissect_sendingSideID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
669   return dissect_inap_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_inap_sendingSideID);
670 }
671 static int dissect_receivingSideID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
672   return dissect_inap_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_inap_receivingSideID);
673 }
674 static int dissect_tmr_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
675   return dissect_inap_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_inap_tmr);
676 }
677 static int dissect_callingPartysCategory_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
678   return dissect_inap_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartysCategory);
679 }
680 static int dissect_numberingPlan_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
681   return dissect_inap_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_inap_numberingPlan);
682 }
683
684
685 static const value_string inap_LegID_vals[] = {
686   {   0, "sendingSideID" },
687   {   1, "receivingSideID" },
688   { 0, NULL }
689 };
690
691 static const ber_choice_t LegID_choice[] = {
692   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sendingSideID_impl },
693   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_receivingSideID_impl },
694   { 0, 0, 0, 0, NULL }
695 };
696
697 static int
698 dissect_inap_LegID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
699   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
700                               LegID_choice, hf_index, ett_inap_LegID);
701
702   return offset;
703 }
704 static int dissect_legID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
705   return dissect_inap_LegID(TRUE, tvb, offset, pinfo, tree, hf_inap_legID);
706 }
707 static int dissect_heldLegID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
708   return dissect_inap_LegID(TRUE, tvb, offset, pinfo, tree, hf_inap_heldLegID);
709 }
710 static int dissect_legToBeReleased_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
711   return dissect_inap_LegID(TRUE, tvb, offset, pinfo, tree, hf_inap_legToBeReleased);
712 }
713
714
715 static const value_string inap_LegStatus_vals[] = {
716   {   0, "connected" },
717   {   1, "unconnected" },
718   {   2, "pending" },
719   {   3, "interacting" },
720   { 0, NULL }
721 };
722
723
724 static int
725 dissect_inap_LegStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
726   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
727
728   return offset;
729 }
730 static int dissect_legStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
731   return dissect_inap_LegStatus(TRUE, tvb, offset, pinfo, tree, hf_inap_legStatus);
732 }
733
734 static const ber_sequence_t LegInformation_sequence[] = {
735   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
736   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_legStatus_impl },
737   { 0, 0, 0, NULL }
738 };
739
740 static int
741 dissect_inap_LegInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
742   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
743                                 LegInformation_sequence, hf_index, ett_inap_LegInformation);
744
745   return offset;
746 }
747 static int dissect_CallPartyHandlingResultsArg_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
748   return dissect_inap_LegInformation(FALSE, tvb, offset, pinfo, tree, hf_inap_CallPartyHandlingResultsArg_item);
749 }
750
751 static const ber_sequence_t CallPartyHandlingResultsArg_sequence_of[1] = {
752   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CallPartyHandlingResultsArg_item },
753 };
754
755 static int
756 dissect_inap_CallPartyHandlingResultsArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
757   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
758                                    CallPartyHandlingResultsArg_sequence_of, hf_index, ett_inap_CallPartyHandlingResultsArg);
759
760   return offset;
761 }
762
763 static const ber_sequence_t ChangePartiesArg_sequence[] = {
764   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callID_impl },
765   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_targetCallID_impl },
766   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_legToBeConnectedID_impl },
767   { 0, 0, 0, NULL }
768 };
769
770 static int
771 dissect_inap_ChangePartiesArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
772   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
773                                 ChangePartiesArg_sequence, hf_index, ett_inap_ChangePartiesArg);
774
775   return offset;
776 }
777
778 static const ber_sequence_t DetachArg_sequence[] = {
779   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_legToBeDetached_impl },
780   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationidentifier_impl },
781   { 0, 0, 0, NULL }
782 };
783
784 static int
785 dissect_inap_DetachArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
786   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
787                                 DetachArg_sequence, hf_index, ett_inap_DetachArg);
788
789   return offset;
790 }
791
792 static const ber_sequence_t HoldCallPartyConnectionArg_sequence[] = {
793   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callID_impl },
794   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
795   { 0, 0, 0, NULL }
796 };
797
798 static int
799 dissect_inap_HoldCallPartyConnectionArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
800   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
801                                 HoldCallPartyConnectionArg_sequence, hf_index, ett_inap_HoldCallPartyConnectionArg);
802
803   return offset;
804 }
805
806 static const ber_sequence_t ReconnectArg_sequence[] = {
807   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callID_impl },
808   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_heldLegID_impl },
809   { 0, 0, 0, NULL }
810 };
811
812 static int
813 dissect_inap_ReconnectArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
814   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
815                                 ReconnectArg_sequence, hf_index, ett_inap_ReconnectArg);
816
817   return offset;
818 }
819
820
821 static int
822 dissect_inap_Cause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
823   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
824                                     NULL);
825
826   return offset;
827 }
828 static int dissect_releaseCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
829   return dissect_inap_Cause(TRUE, tvb, offset, pinfo, tree, hf_inap_releaseCause);
830 }
831 static int dissect_releaseCauseValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
832   return dissect_inap_Cause(TRUE, tvb, offset, pinfo, tree, hf_inap_releaseCauseValue);
833 }
834
835 static const ber_sequence_t ReleaseCallPartyConnectionArg_sequence[] = {
836   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legToBeReleased_impl },
837   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callID_impl },
838   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
839   { 0, 0, 0, NULL }
840 };
841
842 static int
843 dissect_inap_ReleaseCallPartyConnectionArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
844   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
845                                 ReleaseCallPartyConnectionArg_sequence, hf_index, ett_inap_ReleaseCallPartyConnectionArg);
846
847   return offset;
848 }
849
850
851
852 static int
853 dissect_inap_INTEGER_0_2147483647(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
854   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
855
856   return offset;
857 }
858 static int dissect_integer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
859   return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_integer);
860 }
861 static int dissect_elementaryMessageID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
862   return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_elementaryMessageID);
863 }
864 static int dissect_toneID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
865   return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_toneID);
866 }
867 static int dissect_tduration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
868   return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_tduration);
869 }
870 static int dissect_elementaryMessageIDs_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
871   return dissect_inap_INTEGER_0_2147483647(FALSE, tvb, offset, pinfo, tree, hf_inap_elementaryMessageIDs_item);
872 }
873 static int dissect_serviceKey_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
874   return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_serviceKey);
875 }
876 static int dissect_numberOfCalls_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
877   return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_numberOfCalls);
878 }
879 static int dissect_callConnectedElapsedTimeValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
880   return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_callConnectedElapsedTimeValue);
881 }
882 static int dissect_connectTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
883   return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_connectTime);
884 }
885 static int dissect_timervalue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
886   return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_timervalue);
887 }
888 static int dissect_counterValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
889   return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_counterValue);
890 }
891
892
893 static const value_string inap_VariableParts_item_vals[] = {
894   {   0, "integer" },
895   {   1, "number" },
896   {   2, "time" },
897   {   3, "date" },
898   {   4, "price" },
899   { 0, NULL }
900 };
901
902 static const ber_choice_t VariableParts_item_choice[] = {
903   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_integer_impl },
904   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_number_impl },
905   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_time_impl },
906   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_date_impl },
907   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_price_impl },
908   { 0, 0, 0, 0, NULL }
909 };
910
911 static int
912 dissect_inap_VariableParts_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
913   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
914                               VariableParts_item_choice, hf_index, ett_inap_VariableParts_item);
915
916   return offset;
917 }
918 static int dissect_VariableParts_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
919   return dissect_inap_VariableParts_item(FALSE, tvb, offset, pinfo, tree, hf_inap_VariableParts_item);
920 }
921
922 static const ber_sequence_t VariableParts_sequence_of[1] = {
923   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_VariableParts_item },
924 };
925
926 static int
927 dissect_inap_VariableParts(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
928   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
929                                    VariableParts_sequence_of, hf_index, ett_inap_VariableParts);
930
931   return offset;
932 }
933 static int dissect_variableParts_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
934   return dissect_inap_VariableParts(TRUE, tvb, offset, pinfo, tree, hf_inap_variableParts);
935 }
936
937 static const ber_sequence_t VariableMessage_sequence[] = {
938   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_elementaryMessageID_impl },
939   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_variableParts_impl },
940   { 0, 0, 0, NULL }
941 };
942
943 static int
944 dissect_inap_VariableMessage(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
945   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
946                                 VariableMessage_sequence, hf_index, ett_inap_VariableMessage);
947
948   return offset;
949 }
950 static int dissect_variableMessage_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
951   return dissect_inap_VariableMessage(TRUE, tvb, offset, pinfo, tree, hf_inap_variableMessage);
952 }
953
954
955 static const value_string inap_TriggerType_vals[] = {
956   {   0, "featureActivation" },
957   {   1, "verticalServiceCode" },
958   {   2, "customizedAccess" },
959   {   3, "customizedIntercom" },
960   {  12, "emergencyService" },
961   {  13, "aFR" },
962   {  14, "sharedIOTrunk" },
963   {  17, "offHookDelay" },
964   {  18, "channelSetupPRI" },
965   {  25, "tNoAnswer" },
966   {  26, "tBusy" },
967   {  27, "oCalledPartyBusy" },
968   {  29, "oNoAnswer" },
969   {  30, "originationAttemptAuthorized" },
970   {  31, "oAnswer" },
971   {  32, "oDisconnect" },
972   {  33, "termAttemptAuthorized" },
973   {  34, "tAnswer" },
974   {  35, "tDisconnect" },
975   { 0, NULL }
976 };
977
978
979 static int
980 dissect_inap_TriggerType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
981   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
982
983   return offset;
984 }
985 static int dissect_triggerType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
986   return dissect_inap_TriggerType(TRUE, tvb, offset, pinfo, tree, hf_inap_triggerType);
987 }
988
989 static const ber_sequence_t Tone_sequence[] = {
990   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_toneID_impl },
991   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tduration_impl },
992   { 0, 0, 0, NULL }
993 };
994
995 static int
996 dissect_inap_Tone(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
997   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
998                                 Tone_sequence, hf_index, ett_inap_Tone);
999
1000   return offset;
1001 }
1002 static int dissect_tone_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1003   return dissect_inap_Tone(TRUE, tvb, offset, pinfo, tree, hf_inap_tone);
1004 }
1005
1006
1007 static int
1008 dissect_inap_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1009   offset = dissect_ber_restricted_string(implicit_tag, 0,
1010                                          pinfo, tree, tvb, offset, hf_index,
1011                                          NULL);
1012
1013   return offset;
1014 }
1015 static int dissect_messageContent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1016   return dissect_inap_IA5String(TRUE, tvb, offset, pinfo, tree, hf_inap_messageContent);
1017 }
1018 static int dissect_displayInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1019   return dissect_inap_IA5String(TRUE, tvb, offset, pinfo, tree, hf_inap_displayInformation);
1020 }
1021 static int dissect_iA5Response_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1022   return dissect_inap_IA5String(TRUE, tvb, offset, pinfo, tree, hf_inap_iA5Response);
1023 }
1024
1025 static const ber_sequence_t Text_sequence[] = {
1026   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_messageContent_impl },
1027   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributes_impl },
1028   { 0, 0, 0, NULL }
1029 };
1030
1031 static int
1032 dissect_inap_Text(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1033   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1034                                 Text_sequence, hf_index, ett_inap_Text);
1035
1036   return offset;
1037 }
1038 static int dissect_text_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1039   return dissect_inap_Text(TRUE, tvb, offset, pinfo, tree, hf_inap_text);
1040 }
1041
1042 static const ber_sequence_t T_elementaryMessageIDs_sequence_of[1] = {
1043   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_elementaryMessageIDs_item },
1044 };
1045
1046 static int
1047 dissect_inap_T_elementaryMessageIDs(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1048   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1049                                    T_elementaryMessageIDs_sequence_of, hf_index, ett_inap_T_elementaryMessageIDs);
1050
1051   return offset;
1052 }
1053 static int dissect_elementaryMessageIDs_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1054   return dissect_inap_T_elementaryMessageIDs(TRUE, tvb, offset, pinfo, tree, hf_inap_elementaryMessageIDs);
1055 }
1056
1057
1058 static const value_string inap_MessageID_vals[] = {
1059   {   0, "elementaryMessageID" },
1060   {   1, "text" },
1061   {  29, "elementaryMessageIDs" },
1062   {  30, "variableMessage" },
1063   { 0, NULL }
1064 };
1065
1066 static const ber_choice_t MessageID_choice[] = {
1067   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_elementaryMessageID_impl },
1068   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_text_impl },
1069   {  29, BER_CLASS_CON, 29, BER_FLAGS_IMPLTAG, dissect_elementaryMessageIDs_impl },
1070   {  30, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_variableMessage_impl },
1071   { 0, 0, 0, 0, NULL }
1072 };
1073
1074 static int
1075 dissect_inap_MessageID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1076   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1077                               MessageID_choice, hf_index, ett_inap_MessageID);
1078
1079   return offset;
1080 }
1081 static int dissect_messageID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1082   return dissect_inap_MessageID(TRUE, tvb, offset, pinfo, tree, hf_inap_messageID);
1083 }
1084
1085
1086
1087 static int
1088 dissect_inap_INTEGER_1_127(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1089   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1090
1091   return offset;
1092 }
1093 static int dissect_numberOfRepetitions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1094   return dissect_inap_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_inap_numberOfRepetitions);
1095 }
1096 static int dissect_minimumNbOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1097   return dissect_inap_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_inap_minimumNbOfDigits);
1098 }
1099 static int dissect_maximumNbOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1100   return dissect_inap_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_inap_maximumNbOfDigits);
1101 }
1102 static int dissect_firstDigitTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1103   return dissect_inap_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_inap_firstDigitTimeOut);
1104 }
1105 static int dissect_interDigitTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1106   return dissect_inap_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_inap_interDigitTimeOut);
1107 }
1108
1109
1110
1111 static int
1112 dissect_inap_INTEGER_0_32767(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1113   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1114
1115   return offset;
1116 }
1117 static int dissect_mduration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1118   return dissect_inap_INTEGER_0_32767(TRUE, tvb, offset, pinfo, tree, hf_inap_mduration);
1119 }
1120 static int dissect_interval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1121   return dissect_inap_INTEGER_0_32767(TRUE, tvb, offset, pinfo, tree, hf_inap_interval);
1122 }
1123
1124 static const ber_sequence_t T_inbandInfo_sequence[] = {
1125   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_messageID_impl },
1126   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfRepetitions_impl },
1127   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mduration_impl },
1128   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_interval_impl },
1129   { 0, 0, 0, NULL }
1130 };
1131
1132 static int
1133 dissect_inap_T_inbandInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1134   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1135                                 T_inbandInfo_sequence, hf_index, ett_inap_T_inbandInfo);
1136
1137   return offset;
1138 }
1139 static int dissect_inbandInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1140   return dissect_inap_T_inbandInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_inbandInfo);
1141 }
1142
1143
1144 static const value_string inap_InformationToSend_vals[] = {
1145   {   0, "inbandInfo" },
1146   {   1, "tone" },
1147   {   2, "displayInformation" },
1148   { 0, NULL }
1149 };
1150
1151 static const ber_choice_t InformationToSend_choice[] = {
1152   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_inbandInfo_impl },
1153   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_tone_impl },
1154   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_displayInformation_impl },
1155   { 0, 0, 0, 0, NULL }
1156 };
1157
1158 static int
1159 dissect_inap_InformationToSend(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1160   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1161                               InformationToSend_choice, hf_index, ett_inap_InformationToSend);
1162
1163   return offset;
1164 }
1165 static int dissect_informationToSend_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1166   return dissect_inap_InformationToSend(TRUE, tvb, offset, pinfo, tree, hf_inap_informationToSend);
1167 }
1168
1169 static const ber_sequence_t T_addressAndService_sequence[] = {
1170   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledAddressValue_impl },
1171   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
1172   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingAddressValue_impl },
1173   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl },
1174   { 0, 0, 0, NULL }
1175 };
1176
1177 static int
1178 dissect_inap_T_addressAndService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1179   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1180                                 T_addressAndService_sequence, hf_index, ett_inap_T_addressAndService);
1181
1182   return offset;
1183 }
1184 static int dissect_addressAndService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1185   return dissect_inap_T_addressAndService(TRUE, tvb, offset, pinfo, tree, hf_inap_addressAndService);
1186 }
1187
1188
1189 static const value_string inap_FilteringCriteria_vals[] = {
1190   {   0, "dialledNumber" },
1191   {   1, "callingLineID" },
1192   {   2, "serviceKey" },
1193   {  30, "addressAndService" },
1194   { 0, NULL }
1195 };
1196
1197 static const ber_choice_t FilteringCriteria_choice[] = {
1198   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dialledNumber_impl },
1199   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callingLineID_impl },
1200   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
1201   {  30, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_addressAndService_impl },
1202   { 0, 0, 0, 0, NULL }
1203 };
1204
1205 static int
1206 dissect_inap_FilteringCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1207   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1208                               FilteringCriteria_choice, hf_index, ett_inap_FilteringCriteria);
1209
1210   return offset;
1211 }
1212 static int dissect_filteringCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1213   return dissect_inap_FilteringCriteria(TRUE, tvb, offset, pinfo, tree, hf_inap_filteringCriteria);
1214 }
1215
1216
1217
1218 static int
1219 dissect_inap_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1220   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1221
1222   return offset;
1223 }
1224 static int dissect_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1225   return dissect_inap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_inap_type);
1226 }
1227 static int dissect_maximumNumberOfCounters_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1228   return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_maximumNumberOfCounters);
1229 }
1230 static int dissect_trunkGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1231   return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_trunkGroupID);
1232 }
1233 static int dissect_privateFacilityID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1234   return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_privateFacilityID);
1235 }
1236 static int dissect_callingFacilityGroupMember_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1237   return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_callingFacilityGroupMember);
1238 }
1239 static int dissect_facilityGroupMemberID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1240   return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_facilityGroupMemberID);
1241 }
1242 static int dissect_calledFacilityGroupMember_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1243   return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_calledFacilityGroupMember);
1244 }
1245
1246
1247 static const value_string inap_T_criticality_vals[] = {
1248   {   0, "ignore" },
1249   {   1, "abort" },
1250   { 0, NULL }
1251 };
1252
1253
1254 static int
1255 dissect_inap_T_criticality(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1256   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1257
1258   return offset;
1259 }
1260 static int dissect_criticality(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1261   return dissect_inap_T_criticality(FALSE, tvb, offset, pinfo, tree, hf_inap_criticality);
1262 }
1263
1264 static const ber_sequence_t Extensions_item_sequence[] = {
1265   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_type },
1266   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_criticality },
1267   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_value_impl },
1268   { 0, 0, 0, NULL }
1269 };
1270
1271 static int
1272 dissect_inap_Extensions_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1273   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1274                                 Extensions_item_sequence, hf_index, ett_inap_Extensions_item);
1275
1276   return offset;
1277 }
1278 static int dissect_Extensions_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1279   return dissect_inap_Extensions_item(FALSE, tvb, offset, pinfo, tree, hf_inap_Extensions_item);
1280 }
1281
1282 static const ber_sequence_t Extensions_sequence_of[1] = {
1283   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Extensions_item },
1284 };
1285
1286 static int
1287 dissect_inap_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1288   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1289                                    Extensions_sequence_of, hf_index, ett_inap_Extensions);
1290
1291   return offset;
1292 }
1293 static int dissect_extensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1294   return dissect_inap_Extensions(TRUE, tvb, offset, pinfo, tree, hf_inap_extensions);
1295 }
1296
1297 static const ber_sequence_t T_filteredCallTreatment_sequence[] = {
1298   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sFBillingChargingCharacteristics_impl },
1299   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_informationToSend_impl },
1300   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_maximumNumberOfCounters_impl },
1301   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
1302   { 0, 0, 0, NULL }
1303 };
1304
1305 static int
1306 dissect_inap_T_filteredCallTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1307   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1308                                 T_filteredCallTreatment_sequence, hf_index, ett_inap_T_filteredCallTreatment);
1309
1310   return offset;
1311 }
1312 static int dissect_filteredCallTreatment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1313   return dissect_inap_T_filteredCallTreatment(TRUE, tvb, offset, pinfo, tree, hf_inap_filteredCallTreatment);
1314 }
1315
1316
1317 static const value_string inap_T_filteringCharacteristics_vals[] = {
1318   {   0, "interval" },
1319   {   1, "numberOfCalls" },
1320   { 0, NULL }
1321 };
1322
1323 static const ber_choice_t T_filteringCharacteristics_choice[] = {
1324   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_interval_impl },
1325   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_numberOfCalls_impl },
1326   { 0, 0, 0, 0, NULL }
1327 };
1328
1329 static int
1330 dissect_inap_T_filteringCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1331   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1332                               T_filteringCharacteristics_choice, hf_index, ett_inap_T_filteringCharacteristics);
1333
1334   return offset;
1335 }
1336 static int dissect_filteringCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1337   return dissect_inap_T_filteringCharacteristics(TRUE, tvb, offset, pinfo, tree, hf_inap_filteringCharacteristics);
1338 }
1339
1340
1341
1342 static int
1343 dissect_inap_INTEGER_M2_86400(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1344   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1345
1346   return offset;
1347 }
1348 static int dissect_aduration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1349   return dissect_inap_INTEGER_M2_86400(TRUE, tvb, offset, pinfo, tree, hf_inap_aduration);
1350 }
1351 static int dissect_cgduration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1352   return dissect_inap_INTEGER_M2_86400(TRUE, tvb, offset, pinfo, tree, hf_inap_cgduration);
1353 }
1354 static int dissect_monitorDuration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1355   return dissect_inap_INTEGER_M2_86400(TRUE, tvb, offset, pinfo, tree, hf_inap_monitorDuration);
1356 }
1357
1358
1359 static int
1360 dissect_inap_OCTET_STRING_SIZE_6(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1361   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1362                                     NULL);
1363
1364   return offset;
1365 }
1366 static int dissect_stopTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1367   return dissect_inap_OCTET_STRING_SIZE_6(TRUE, tvb, offset, pinfo, tree, hf_inap_stopTime);
1368 }
1369 static int dissect_startTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1370   return dissect_inap_OCTET_STRING_SIZE_6(TRUE, tvb, offset, pinfo, tree, hf_inap_startTime);
1371 }
1372 static int dissect_callStopTimeValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1373   return dissect_inap_OCTET_STRING_SIZE_6(TRUE, tvb, offset, pinfo, tree, hf_inap_callStopTimeValue);
1374 }
1375
1376
1377 static const value_string inap_T_filteringTimeOut_vals[] = {
1378   {   0, "aduration" },
1379   {   1, "stopTime" },
1380   { 0, NULL }
1381 };
1382
1383 static const ber_choice_t T_filteringTimeOut_choice[] = {
1384   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_aduration_impl },
1385   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_stopTime_impl },
1386   { 0, 0, 0, 0, NULL }
1387 };
1388
1389 static int
1390 dissect_inap_T_filteringTimeOut(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1391   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1392                               T_filteringTimeOut_choice, hf_index, ett_inap_T_filteringTimeOut);
1393
1394   return offset;
1395 }
1396 static int dissect_filteringTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1397   return dissect_inap_T_filteringTimeOut(TRUE, tvb, offset, pinfo, tree, hf_inap_filteringTimeOut);
1398 }
1399
1400 static const ber_sequence_t ActivateServiceFilteringarg_sequence[] = {
1401   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_filteredCallTreatment_impl },
1402   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_filteringCharacteristics_impl },
1403   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_filteringTimeOut_impl },
1404   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_filteringCriteria_impl },
1405   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_startTime_impl },
1406   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
1407   { 0, 0, 0, NULL }
1408 };
1409
1410 static int
1411 dissect_inap_ActivateServiceFilteringarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1412   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1413                                 ActivateServiceFilteringarg_sequence, hf_index, ett_inap_ActivateServiceFilteringarg);
1414
1415   return offset;
1416 }
1417
1418
1419 static const value_string inap_T_messageType_vals[] = {
1420   {   0, "request" },
1421   {   1, "notification" },
1422   { 0, NULL }
1423 };
1424
1425
1426 static int
1427 dissect_inap_T_messageType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1428   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1429
1430   return offset;
1431 }
1432 static int dissect_messageType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1433   return dissect_inap_T_messageType(TRUE, tvb, offset, pinfo, tree, hf_inap_messageType);
1434 }
1435
1436
1437 static const value_string inap_T_dpAssignment_vals[] = {
1438   {   0, "individualLine" },
1439   {   1, "groupBased" },
1440   {   2, "officeBased" },
1441   { 0, NULL }
1442 };
1443
1444
1445 static int
1446 dissect_inap_T_dpAssignment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1447   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1448
1449   return offset;
1450 }
1451 static int dissect_dpAssignment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1452   return dissect_inap_T_dpAssignment(TRUE, tvb, offset, pinfo, tree, hf_inap_dpAssignment);
1453 }
1454
1455 static const ber_sequence_t MiscCallInfo_sequence[] = {
1456   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_messageType_impl },
1457   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dpAssignment_impl },
1458   { 0, 0, 0, NULL }
1459 };
1460
1461 static int
1462 dissect_inap_MiscCallInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1463   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1464                                 MiscCallInfo_sequence, hf_index, ett_inap_MiscCallInfo);
1465
1466   return offset;
1467 }
1468 static int dissect_miscCallInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1469   return dissect_inap_MiscCallInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_miscCallInfo);
1470 }
1471
1472 static const ber_sequence_t ServiceAddressInformation_sequence[] = {
1473   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
1474   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_miscCallInfo_impl },
1475   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_triggerType_impl },
1476   { 0, 0, 0, NULL }
1477 };
1478
1479 static int
1480 dissect_inap_ServiceAddressInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1481   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1482                                 ServiceAddressInformation_sequence, hf_index, ett_inap_ServiceAddressInformation);
1483
1484   return offset;
1485 }
1486 static int dissect_serviceAddressInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1487   return dissect_inap_ServiceAddressInformation(TRUE, tvb, offset, pinfo, tree, hf_inap_serviceAddressInformation);
1488 }
1489
1490
1491 static const value_string inap_TerminalType_vals[] = {
1492   {   0, "unknown" },
1493   {   1, "dialPulse" },
1494   {   2, "dtmf" },
1495   {   3, "isdn" },
1496   {   4, "isdnNoDtmf" },
1497   {  16, "spare" },
1498   { 0, NULL }
1499 };
1500
1501
1502 static int
1503 dissect_inap_TerminalType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1504   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1505
1506   return offset;
1507 }
1508 static int dissect_terminalType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1509   return dissect_inap_TerminalType(TRUE, tvb, offset, pinfo, tree, hf_inap_terminalType);
1510 }
1511
1512 static const ber_sequence_t RouteList_sequence_of[1] = {
1513   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_RouteList_item },
1514 };
1515
1516 static int
1517 dissect_inap_RouteList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1518   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1519                                    RouteList_sequence_of, hf_index, ett_inap_RouteList);
1520
1521   return offset;
1522 }
1523 static int dissect_routeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1524   return dissect_inap_RouteList(TRUE, tvb, offset, pinfo, tree, hf_inap_routeList);
1525 }
1526
1527
1528 static const value_string inap_CGEncountered_vals[] = {
1529   {   0, "noCGencountered" },
1530   {   1, "manualCGencountered" },
1531   {   2, "scpOverload" },
1532   { 0, NULL }
1533 };
1534
1535
1536 static int
1537 dissect_inap_CGEncountered(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1538   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1539
1540   return offset;
1541 }
1542 static int dissect_cGEncountered_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1543   return dissect_inap_CGEncountered(TRUE, tvb, offset, pinfo, tree, hf_inap_cGEncountered);
1544 }
1545
1546
1547 static const value_string inap_BearerCapability_vals[] = {
1548   {   0, "bearerCap" },
1549   {   1, "tmr" },
1550   { 0, NULL }
1551 };
1552
1553 static const ber_choice_t BearerCapability_choice[] = {
1554   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_bearerCap_impl },
1555   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_tmr_impl },
1556   { 0, 0, 0, 0, NULL }
1557 };
1558
1559 static int
1560 dissect_inap_BearerCapability(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1561   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1562                               BearerCapability_choice, hf_index, ett_inap_BearerCapability);
1563
1564   return offset;
1565 }
1566 static int dissect_bearerCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1567   return dissect_inap_BearerCapability(TRUE, tvb, offset, pinfo, tree, hf_inap_bearerCapability);
1568 }
1569
1570 static const ber_sequence_t DpSpecificCommonParameters_sequence[] = {
1571   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_serviceAddressInformation_impl },
1572   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_bearerCapability_impl },
1573   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyNumber_impl },
1574   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl },
1575   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartysCategory_impl },
1576   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iPSSPCapabilities_impl },
1577   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iPAvailable_impl },
1578   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iSDNAccessRelatedInformation_impl },
1579   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cGEncountered_impl },
1580   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl },
1581   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceProfileIdentifier_impl },
1582   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_terminalType_impl },
1583   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
1584   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargeNumber_impl },
1585   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_servingAreaID_impl },
1586   { 0, 0, 0, NULL }
1587 };
1588
1589 static int
1590 dissect_inap_DpSpecificCommonParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1591   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1592                                 DpSpecificCommonParameters_sequence, hf_index, ett_inap_DpSpecificCommonParameters);
1593
1594   return offset;
1595 }
1596 static int dissect_dpSpecificCommonParameters_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1597   return dissect_inap_DpSpecificCommonParameters(TRUE, tvb, offset, pinfo, tree, hf_inap_dpSpecificCommonParameters);
1598 }
1599
1600
1601 static const value_string inap_CallingFacilityGroup_vals[] = {
1602   {   0, "trunkGroupID" },
1603   {   1, "privateFacilityID" },
1604   {   2, "huntGroup" },
1605   {   3, "routeIndex" },
1606   { 0, NULL }
1607 };
1608
1609 static const ber_choice_t CallingFacilityGroup_choice[] = {
1610   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_trunkGroupID_impl },
1611   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_privateFacilityID_impl },
1612   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_huntGroup_impl },
1613   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_routeIndex_impl },
1614   { 0, 0, 0, 0, NULL }
1615 };
1616
1617 static int
1618 dissect_inap_CallingFacilityGroup(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1619   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1620                               CallingFacilityGroup_choice, hf_index, ett_inap_CallingFacilityGroup);
1621
1622   return offset;
1623 }
1624 static int dissect_callingFacilityGroup_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1625   return dissect_inap_CallingFacilityGroup(TRUE, tvb, offset, pinfo, tree, hf_inap_callingFacilityGroup);
1626 }
1627
1628
1629 static int
1630 dissect_inap_OCTET_STRING_SIZE_2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1631   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1632                                     NULL);
1633
1634   return offset;
1635 }
1636 static int dissect_redirectionInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1637   return dissect_inap_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_inap_redirectionInformation);
1638 }
1639 static int dissect_highLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1640   return dissect_inap_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_inap_highLayerCompatibility);
1641 }
1642 static int dissect_forwardCallIndicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1643   return dissect_inap_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_inap_forwardCallIndicators);
1644 }
1645
1646 static const ber_sequence_t AnalysedInformationarg_sequence[] = {
1647   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
1648   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl },
1649   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
1650   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
1651   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
1652   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
1653   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
1654   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_prefix_impl },
1655   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
1656   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
1657   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
1658   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
1659   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
1660   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_featureCode_impl },
1661   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_accessCode_impl },
1662   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
1663   { 0, 0, 0, NULL }
1664 };
1665
1666 static int
1667 dissect_inap_AnalysedInformationarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1668   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1669                                 AnalysedInformationarg_sequence, hf_index, ett_inap_AnalysedInformationarg);
1670
1671   return offset;
1672 }
1673
1674
1675 static int
1676 dissect_inap_DestinationAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1677   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1678                                     NULL);
1679
1680   return offset;
1681 }
1682 static int dissect_destinationRoutingAddress_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1683   return dissect_inap_DestinationAddress(FALSE, tvb, offset, pinfo, tree, hf_inap_destinationRoutingAddress_item);
1684 }
1685
1686 static const ber_sequence_t SEQUENCE_SIZE_1_3_OF_DestinationAddress_sequence_of[1] = {
1687   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_destinationRoutingAddress_item },
1688 };
1689
1690 static int
1691 dissect_inap_SEQUENCE_SIZE_1_3_OF_DestinationAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1692   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1693                                    SEQUENCE_SIZE_1_3_OF_DestinationAddress_sequence_of, hf_index, ett_inap_SEQUENCE_SIZE_1_3_OF_DestinationAddress);
1694
1695   return offset;
1696 }
1697 static int dissect_destinationRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1698   return dissect_inap_SEQUENCE_SIZE_1_3_OF_DestinationAddress(TRUE, tvb, offset, pinfo, tree, hf_inap_destinationRoutingAddress);
1699 }
1700
1701
1702 static int
1703 dissect_inap_OCTET_STRING_SIZE_3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1704   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1705                                     NULL);
1706
1707   return offset;
1708 }
1709 static int dissect_alertingPattern_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1710   return dissect_inap_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_inap_alertingPattern);
1711 }
1712
1713 static const ber_sequence_t AnalyseInformationarg_sequence[] = {
1714   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_destinationRoutingAddress_impl },
1715   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
1716   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iSDNAccessRelatedInformation_impl },
1717   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
1718   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
1719   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl },
1720   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartysCategory_impl },
1721   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyNumber_impl },
1722   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargeNumber_impl },
1723   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
1724   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
1725   { 0, 0, 0, NULL }
1726 };
1727
1728 static int
1729 dissect_inap_AnalyseInformationarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1730   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1731                                 AnalyseInformationarg_sequence, hf_index, ett_inap_AnalyseInformationarg);
1732
1733   return offset;
1734 }
1735
1736
1737 static const value_string inap_PartyToCharge_vals[] = {
1738   {   0, "sendingSideID" },
1739   {   1, "receivingSideID" },
1740   { 0, NULL }
1741 };
1742
1743 static const ber_choice_t PartyToCharge_choice[] = {
1744   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sendingSideID_impl },
1745   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_receivingSideID_impl },
1746   { 0, 0, 0, 0, NULL }
1747 };
1748
1749 static int
1750 dissect_inap_PartyToCharge(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1751   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1752                               PartyToCharge_choice, hf_index, ett_inap_PartyToCharge);
1753
1754   return offset;
1755 }
1756 static int dissect_partyToCharge_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1757   return dissect_inap_PartyToCharge(TRUE, tvb, offset, pinfo, tree, hf_inap_partyToCharge);
1758 }
1759
1760 static const ber_sequence_t ApplyChargingarg_sequence[] = {
1761   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_aChBillingChargingCharacteristics_impl },
1762   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_partyToCharge_impl },
1763   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
1764   { 0, 0, 0, NULL }
1765 };
1766
1767 static int
1768 dissect_inap_ApplyChargingarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1769   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1770                                 ApplyChargingarg_sequence, hf_index, ett_inap_ApplyChargingarg);
1771
1772   return offset;
1773 }
1774
1775
1776 static int
1777 dissect_inap_ApplyChargingReportarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1778   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1779                                     NULL);
1780
1781   return offset;
1782 }
1783
1784 static const ber_sequence_t AssistRequestInstructionsarg_sequence[] = {
1785   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
1786   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iPAvailable_impl },
1787   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iPSSPCapabilities_impl },
1788   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
1789   { 0, 0, 0, NULL }
1790 };
1791
1792 static int
1793 dissect_inap_AssistRequestInstructionsarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1794   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1795                                 AssistRequestInstructionsarg_sequence, hf_index, ett_inap_AssistRequestInstructionsarg);
1796
1797   return offset;
1798 }
1799
1800
1801 static const value_string inap_T_dpCriteria_vals[] = {
1802   {   1, "origAttemptAuthorized" },
1803   {   2, "collectedInfo" },
1804   {   3, "analysedInformation" },
1805   {   4, "routeSelectFailure" },
1806   {   5, "oCalledPartyBusy" },
1807   {   6, "oNoAnswer" },
1808   {   7, "oAnswer" },
1809   {   8, "oMidCall" },
1810   {   9, "oDisconnect" },
1811   {  10, "oAbandon" },
1812   {  12, "termAttemptAuthorized" },
1813   {  13, "tBusy" },
1814   {  14, "tNoAnswer" },
1815   {  15, "tAnswer" },
1816   {  16, "tMidCall" },
1817   {  17, "tDisconnect" },
1818   {  18, "tAbandon" },
1819   { 0, NULL }
1820 };
1821
1822
1823 static int
1824 dissect_inap_T_dpCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1825   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1826
1827   return offset;
1828 }
1829 static int dissect_dpCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1830   return dissect_inap_T_dpCriteria(TRUE, tvb, offset, pinfo, tree, hf_inap_dpCriteria);
1831 }
1832
1833 static const ber_sequence_t T_gapOnService_sequence[] = {
1834   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
1835   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dpCriteria_impl },
1836   { 0, 0, 0, NULL }
1837 };
1838
1839 static int
1840 dissect_inap_T_gapOnService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1841   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1842                                 T_gapOnService_sequence, hf_index, ett_inap_T_gapOnService);
1843
1844   return offset;
1845 }
1846 static int dissect_gapOnService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1847   return dissect_inap_T_gapOnService(TRUE, tvb, offset, pinfo, tree, hf_inap_gapOnService);
1848 }
1849
1850 static const ber_sequence_t T_calledAddressAndService_sequence[] = {
1851   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledAddressValue_impl },
1852   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
1853   { 0, 0, 0, NULL }
1854 };
1855
1856 static int
1857 dissect_inap_T_calledAddressAndService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1858   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1859                                 T_calledAddressAndService_sequence, hf_index, ett_inap_T_calledAddressAndService);
1860
1861   return offset;
1862 }
1863 static int dissect_calledAddressAndService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1864   return dissect_inap_T_calledAddressAndService(TRUE, tvb, offset, pinfo, tree, hf_inap_calledAddressAndService);
1865 }
1866
1867 static const ber_sequence_t T_callingAddressAndService_sequence[] = {
1868   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_callingAddressValue_impl },
1869   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
1870   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl },
1871   { 0, 0, 0, NULL }
1872 };
1873
1874 static int
1875 dissect_inap_T_callingAddressAndService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1876   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1877                                 T_callingAddressAndService_sequence, hf_index, ett_inap_T_callingAddressAndService);
1878
1879   return offset;
1880 }
1881 static int dissect_callingAddressAndService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1882   return dissect_inap_T_callingAddressAndService(TRUE, tvb, offset, pinfo, tree, hf_inap_callingAddressAndService);
1883 }
1884
1885
1886 static const value_string inap_T_gapCriteria_vals[] = {
1887   {   0, "calledAddressValue" },
1888   {   2, "gapOnService" },
1889   {  29, "calledAddressAndService" },
1890   {  30, "callingAddressAndService" },
1891   { 0, NULL }
1892 };
1893
1894 static const ber_choice_t T_gapCriteria_choice[] = {
1895   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledAddressValue_impl },
1896   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gapOnService_impl },
1897   {  29, BER_CLASS_CON, 29, BER_FLAGS_IMPLTAG, dissect_calledAddressAndService_impl },
1898   {  30, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_callingAddressAndService_impl },
1899   { 0, 0, 0, 0, NULL }
1900 };
1901
1902 static int
1903 dissect_inap_T_gapCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1904   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1905                               T_gapCriteria_choice, hf_index, ett_inap_T_gapCriteria);
1906
1907   return offset;
1908 }
1909 static int dissect_gapCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1910   return dissect_inap_T_gapCriteria(TRUE, tvb, offset, pinfo, tree, hf_inap_gapCriteria);
1911 }
1912
1913
1914
1915 static int
1916 dissect_inap_INTEGER_M1_60000(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1917   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1918
1919   return offset;
1920 }
1921 static int dissect_gapInterval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1922   return dissect_inap_INTEGER_M1_60000(TRUE, tvb, offset, pinfo, tree, hf_inap_gapInterval);
1923 }
1924
1925 static const ber_sequence_t T_gapIndicators_sequence[] = {
1926   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_cgduration_impl },
1927   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gapInterval_impl },
1928   { 0, 0, 0, NULL }
1929 };
1930
1931 static int
1932 dissect_inap_T_gapIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1933   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1934                                 T_gapIndicators_sequence, hf_index, ett_inap_T_gapIndicators);
1935
1936   return offset;
1937 }
1938 static int dissect_gapIndicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1939   return dissect_inap_T_gapIndicators(TRUE, tvb, offset, pinfo, tree, hf_inap_gapIndicators);
1940 }
1941
1942
1943 static const value_string inap_T_controlType_vals[] = {
1944   {   0, "sCPOverloaded" },
1945   {   1, "manuallyInitiated" },
1946   {   2, "destinationOverload" },
1947   { 0, NULL }
1948 };
1949
1950
1951 static int
1952 dissect_inap_T_controlType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1953   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1954
1955   return offset;
1956 }
1957 static int dissect_controlType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1958   return dissect_inap_T_controlType(TRUE, tvb, offset, pinfo, tree, hf_inap_controlType);
1959 }
1960
1961 static const ber_sequence_t Both_sequence[] = {
1962   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_informationToSend_impl },
1963   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
1964   { 0, 0, 0, NULL }
1965 };
1966
1967 static int
1968 dissect_inap_Both(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1969   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1970                                 Both_sequence, hf_index, ett_inap_Both);
1971
1972   return offset;
1973 }
1974 static int dissect_both_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1975   return dissect_inap_Both(TRUE, tvb, offset, pinfo, tree, hf_inap_both);
1976 }
1977
1978
1979 static const value_string inap_T_gapTreatment_vals[] = {
1980   {   0, "informationToSend" },
1981   {   1, "releaseCause" },
1982   {   2, "both" },
1983   { 0, NULL }
1984 };
1985
1986 static const ber_choice_t T_gapTreatment_choice[] = {
1987   {   0, BER_CLASS_CON, 0, 0, dissect_informationToSend_impl },
1988   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
1989   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_both_impl },
1990   { 0, 0, 0, 0, NULL }
1991 };
1992
1993 static int
1994 dissect_inap_T_gapTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1995   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1996                               T_gapTreatment_choice, hf_index, ett_inap_T_gapTreatment);
1997
1998   return offset;
1999 }
2000 static int dissect_gapTreatment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2001   return dissect_inap_T_gapTreatment(TRUE, tvb, offset, pinfo, tree, hf_inap_gapTreatment);
2002 }
2003
2004 static const ber_sequence_t CallGaparg_sequence[] = {
2005   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gapCriteria_impl },
2006   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gapIndicators_impl },
2007   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_controlType_impl },
2008   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gapTreatment_impl },
2009   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2010   { 0, 0, 0, NULL }
2011 };
2012
2013 static int
2014 dissect_inap_CallGaparg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2015   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2016                                 CallGaparg_sequence, hf_index, ett_inap_CallGaparg);
2017
2018   return offset;
2019 }
2020
2021
2022 static const value_string inap_T_requestedInformationType_vals[] = {
2023   {   0, "callAttemptElapsedTime" },
2024   {   1, "callStopTime" },
2025   {   2, "callConnectedElapsedTime" },
2026   {   3, "calledAddress" },
2027   {  30, "releaseCause" },
2028   { 0, NULL }
2029 };
2030
2031
2032 static int
2033 dissect_inap_T_requestedInformationType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2034   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2035
2036   return offset;
2037 }
2038 static int dissect_requestedInformationType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2039   return dissect_inap_T_requestedInformationType(TRUE, tvb, offset, pinfo, tree, hf_inap_requestedInformationType);
2040 }
2041
2042
2043
2044 static int
2045 dissect_inap_INTEGER_0_255(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2046   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2047
2048   return offset;
2049 }
2050 static int dissect_callAttemptElapsedTimeValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2051   return dissect_inap_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_inap_callAttemptElapsedTimeValue);
2052 }
2053
2054
2055 static const value_string inap_T_requestedInformationValue_vals[] = {
2056   {   0, "callAttemptElapsedTimeValue" },
2057   {   1, "callStopTimeValue" },
2058   {   2, "callConnectedElapsedTimeValue" },
2059   {   3, "calledAddressValue" },
2060   {  30, "releaseCauseValue" },
2061   { 0, NULL }
2062 };
2063
2064 static const ber_choice_t T_requestedInformationValue_choice[] = {
2065   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_callAttemptElapsedTimeValue_impl },
2066   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callStopTimeValue_impl },
2067   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_callConnectedElapsedTimeValue_impl },
2068   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_calledAddressValue_impl },
2069   {  30, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_releaseCauseValue_impl },
2070   { 0, 0, 0, 0, NULL }
2071 };
2072
2073 static int
2074 dissect_inap_T_requestedInformationValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2075   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2076                               T_requestedInformationValue_choice, hf_index, ett_inap_T_requestedInformationValue);
2077
2078   return offset;
2079 }
2080 static int dissect_requestedInformationValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2081   return dissect_inap_T_requestedInformationValue(TRUE, tvb, offset, pinfo, tree, hf_inap_requestedInformationValue);
2082 }
2083
2084 static const ber_sequence_t T_requestedInformationList_item_sequence[] = {
2085   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedInformationType_impl },
2086   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestedInformationValue_impl },
2087   { 0, 0, 0, NULL }
2088 };
2089
2090 static int
2091 dissect_inap_T_requestedInformationList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2092   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2093                                 T_requestedInformationList_item_sequence, hf_index, ett_inap_T_requestedInformationList_item);
2094
2095   return offset;
2096 }
2097 static int dissect_requestedInformationList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2098   return dissect_inap_T_requestedInformationList_item(FALSE, tvb, offset, pinfo, tree, hf_inap_requestedInformationList_item);
2099 }
2100
2101 static const ber_sequence_t T_requestedInformationList_sequence_of[1] = {
2102   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_requestedInformationList_item },
2103 };
2104
2105 static int
2106 dissect_inap_T_requestedInformationList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2107   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2108                                    T_requestedInformationList_sequence_of, hf_index, ett_inap_T_requestedInformationList);
2109
2110   return offset;
2111 }
2112 static int dissect_requestedInformationList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2113   return dissect_inap_T_requestedInformationList(TRUE, tvb, offset, pinfo, tree, hf_inap_requestedInformationList);
2114 }
2115
2116 static const ber_sequence_t CallInformationReportarg_sequence[] = {
2117   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedInformationList_impl },
2118   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
2119   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2120   { 0, 0, 0, NULL }
2121 };
2122
2123 static int
2124 dissect_inap_CallInformationReportarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2125   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2126                                 CallInformationReportarg_sequence, hf_index, ett_inap_CallInformationReportarg);
2127
2128   return offset;
2129 }
2130
2131
2132 static const value_string inap_T_requestedInformationTypeList_item_vals[] = {
2133   {   0, "callAttemptElapsedTime" },
2134   {   1, "callStopTime" },
2135   {   2, "callConnectedElapsedTime" },
2136   {   3, "calledAddress" },
2137   {  30, "releaseCause" },
2138   { 0, NULL }
2139 };
2140
2141
2142 static int
2143 dissect_inap_T_requestedInformationTypeList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2144   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2145
2146   return offset;
2147 }
2148 static int dissect_requestedInformationTypeList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2149   return dissect_inap_T_requestedInformationTypeList_item(FALSE, tvb, offset, pinfo, tree, hf_inap_requestedInformationTypeList_item);
2150 }
2151
2152 static const ber_sequence_t T_requestedInformationTypeList_sequence_of[1] = {
2153   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_requestedInformationTypeList_item },
2154 };
2155
2156 static int
2157 dissect_inap_T_requestedInformationTypeList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2158   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2159                                    T_requestedInformationTypeList_sequence_of, hf_index, ett_inap_T_requestedInformationTypeList);
2160
2161   return offset;
2162 }
2163 static int dissect_requestedInformationTypeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2164   return dissect_inap_T_requestedInformationTypeList(TRUE, tvb, offset, pinfo, tree, hf_inap_requestedInformationTypeList);
2165 }
2166
2167 static const ber_sequence_t CallInformationRequestarg_sequence[] = {
2168   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedInformationTypeList_impl },
2169   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
2170   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2171   { 0, 0, 0, NULL }
2172 };
2173
2174 static int
2175 dissect_inap_CallInformationRequestarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2176   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2177                                 CallInformationRequestarg_sequence, hf_index, ett_inap_CallInformationRequestarg);
2178
2179   return offset;
2180 }
2181
2182
2183
2184 static int
2185 dissect_inap_INTEGER_M128_127(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2186   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2187
2188   return offset;
2189 }
2190 static int dissect_invokeID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2191   return dissect_inap_INTEGER_M128_127(TRUE, tvb, offset, pinfo, tree, hf_inap_invokeID);
2192 }
2193 static int dissect_operation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2194   return dissect_inap_INTEGER_M128_127(TRUE, tvb, offset, pinfo, tree, hf_inap_operation);
2195 }
2196
2197
2198 static int
2199 dissect_inap_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2200   { proto_item *ti_tmp;
2201   ti_tmp = proto_tree_add_item(tree, hf_index, tvb, offset>>8, 0, FALSE);
2202   proto_item_append_text(ti_tmp, ": NULL");
2203   }
2204
2205   return offset;
2206 }
2207 static int dissect_allRequests_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2208   return dissect_inap_NULL(TRUE, tvb, offset, pinfo, tree, hf_inap_allRequests);
2209 }
2210 static int dissect_none_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2211   return dissect_inap_NULL(TRUE, tvb, offset, pinfo, tree, hf_inap_none);
2212 }
2213 static int dissect_empty_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2214   return dissect_inap_NULL(TRUE, tvb, offset, pinfo, tree, hf_inap_empty);
2215 }
2216
2217
2218 static const value_string inap_Cancelarg_vals[] = {
2219   {   0, "invokeID" },
2220   {   1, "allRequests" },
2221   { 0, NULL }
2222 };
2223
2224 static const ber_choice_t Cancelarg_choice[] = {
2225   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_invokeID_impl },
2226   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_allRequests_impl },
2227   { 0, 0, 0, 0, NULL }
2228 };
2229
2230 static int
2231 dissect_inap_Cancelarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2232   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2233                               Cancelarg_choice, hf_index, ett_inap_Cancelarg);
2234
2235   return offset;
2236 }
2237
2238
2239 static const value_string inap_FacilityGroupID_vals[] = {
2240   {   0, "trunkGroupID" },
2241   {   1, "privateFacilityID" },
2242   {   2, "huntGroup" },
2243   {   3, "routeIndex" },
2244   { 0, NULL }
2245 };
2246
2247 static const ber_choice_t FacilityGroupID_choice[] = {
2248   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_trunkGroupID_impl },
2249   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_privateFacilityID_impl },
2250   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_huntGroup_impl },
2251   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_routeIndex_impl },
2252   { 0, 0, 0, 0, NULL }
2253 };
2254
2255 static int
2256 dissect_inap_FacilityGroupID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2257   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2258                               FacilityGroupID_choice, hf_index, ett_inap_FacilityGroupID);
2259
2260   return offset;
2261 }
2262 static int dissect_facilityGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2263   return dissect_inap_FacilityGroupID(TRUE, tvb, offset, pinfo, tree, hf_inap_facilityGroupID);
2264 }
2265
2266
2267 static const value_string inap_ResourceID_vals[] = {
2268   {   0, "lineID" },
2269   {   1, "facilityGroupID" },
2270   {   2, "facilityGroupMemberID" },
2271   {   3, "trunkGroupID" },
2272   { 0, NULL }
2273 };
2274
2275 static const ber_choice_t ResourceID_choice[] = {
2276   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lineID_impl },
2277   {   1, BER_CLASS_CON, 1, 0, dissect_facilityGroupID_impl },
2278   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_facilityGroupMemberID_impl },
2279   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_trunkGroupID_impl },
2280   { 0, 0, 0, 0, NULL }
2281 };
2282
2283 static int
2284 dissect_inap_ResourceID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2285   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2286                               ResourceID_choice, hf_index, ett_inap_ResourceID);
2287
2288   return offset;
2289 }
2290 static int dissect_resourceID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2291   return dissect_inap_ResourceID(TRUE, tvb, offset, pinfo, tree, hf_inap_resourceID);
2292 }
2293
2294 static const ber_sequence_t CancelStatusReportRequestarg_sequence[] = {
2295   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceID_impl },
2296   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2297   { 0, 0, 0, NULL }
2298 };
2299
2300 static int
2301 dissect_inap_CancelStatusReportRequestarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2302   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2303                                 CancelStatusReportRequestarg_sequence, hf_index, ett_inap_CancelStatusReportRequestarg);
2304
2305   return offset;
2306 }
2307
2308 static const ber_sequence_t CollectedInformationarg_sequence[] = {
2309   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
2310   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl },
2311   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
2312   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
2313   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
2314   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
2315   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
2316   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_prefix_impl },
2317   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
2318   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
2319   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
2320   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2321   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_featureCode_impl },
2322   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_accessCode_impl },
2323   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
2324   { 0, 0, 0, NULL }
2325 };
2326
2327 static int
2328 dissect_inap_CollectedInformationarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2329   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2330                                 CollectedInformationarg_sequence, hf_index, ett_inap_CollectedInformationarg);
2331
2332   return offset;
2333 }
2334
2335 static const ber_sequence_t CollectInformationarg_sequence[] = {
2336   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
2337   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberingPlan_impl },
2338   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
2339   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
2340   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2341   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl },
2342   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl },
2343   { 0, 0, 0, NULL }
2344 };
2345
2346 static int
2347 dissect_inap_CollectInformationarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2348   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2349                                 CollectInformationarg_sequence, hf_index, ett_inap_CollectInformationarg);
2350
2351   return offset;
2352 }
2353
2354
2355
2356 static int
2357 dissect_inap_INTEGER_0_22(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2358   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2359
2360   return offset;
2361 }
2362 static int dissect_cutAndPaste_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2363   return dissect_inap_INTEGER_0_22(TRUE, tvb, offset, pinfo, tree, hf_inap_cutAndPaste);
2364 }
2365
2366
2367 static const value_string inap_T_forwardingCondition_vals[] = {
2368   {   0, "busy" },
2369   {   1, "noanswer" },
2370   { 0, NULL }
2371 };
2372
2373
2374 static int
2375 dissect_inap_T_forwardingCondition(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2376   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2377
2378   return offset;
2379 }
2380 static int dissect_forwardingCondition_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2381   return dissect_inap_T_forwardingCondition(TRUE, tvb, offset, pinfo, tree, hf_inap_forwardingCondition);
2382 }
2383
2384 static const ber_sequence_t Connectarg_sequence[] = {
2385   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_destinationRoutingAddress_impl },
2386   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
2387   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
2388   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cutAndPaste_impl },
2389   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingCondition_impl },
2390   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iSDNAccessRelatedInformation_impl },
2391   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
2392   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
2393   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_scfID_impl },
2394   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
2395   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2396   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
2397   { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicators_impl },
2398   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl },
2399   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartysCategory_impl },
2400   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
2401   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
2402   { 0, 0, 0, NULL }
2403 };
2404
2405 static int
2406 dissect_inap_Connectarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2407   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2408                                 Connectarg_sequence, hf_index, ett_inap_Connectarg);
2409
2410   return offset;
2411 }
2412
2413
2414 static const value_string inap_T_resourceAddress_vals[] = {
2415   {   0, "ipRoutingAddress" },
2416   {   1, "legID" },
2417   {   2, "both" },
2418   {   3, "none" },
2419   { 0, NULL }
2420 };
2421
2422 static const ber_choice_t T_resourceAddress_choice[] = {
2423   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ipRoutingAddress_impl },
2424   {   1, BER_CLASS_CON, 1, 0, dissect_legID_impl },
2425   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_both_impl },
2426   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_none_impl },
2427   { 0, 0, 0, 0, NULL }
2428 };
2429
2430 static int
2431 dissect_inap_T_resourceAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2432   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2433                               T_resourceAddress_choice, hf_index, ett_inap_T_resourceAddress);
2434
2435   return offset;
2436 }
2437 static int dissect_resourceAddress(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2438   return dissect_inap_T_resourceAddress(FALSE, tvb, offset, pinfo, tree, hf_inap_resourceAddress);
2439 }
2440
2441 static const ber_sequence_t ConnectToResource_sequence[] = {
2442   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceAddress },
2443   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2444   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicators_impl },
2445   { 0, 0, 0, NULL }
2446 };
2447
2448 static int
2449 dissect_inap_ConnectToResource(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2450   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2451                                 ConnectToResource_sequence, hf_index, ett_inap_ConnectToResource);
2452
2453   return offset;
2454 }
2455
2456 static const ber_sequence_t EstablishTemporaryConnection_sequence[] = {
2457   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_assistingSSPIPRoutingAddress_impl },
2458   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
2459   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
2460   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_scfID_impl },
2461   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2462   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
2463   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicators_impl },
2464   { 0, 0, 0, NULL }
2465 };
2466
2467 static int
2468 dissect_inap_EstablishTemporaryConnection(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2469   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2470                                 EstablishTemporaryConnection_sequence, hf_index, ett_inap_EstablishTemporaryConnection);
2471
2472   return offset;
2473 }
2474
2475
2476 static const value_string inap_MonitorMode_vals[] = {
2477   {   0, "interrupted" },
2478   {   1, "notifyAndContinue" },
2479   {   2, "transparent" },
2480   { 0, NULL }
2481 };
2482
2483
2484 static int
2485 dissect_inap_MonitorMode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2486   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2487
2488   return offset;
2489 }
2490 static int dissect_monitorMode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2491   return dissect_inap_MonitorMode(TRUE, tvb, offset, pinfo, tree, hf_inap_monitorMode);
2492 }
2493
2494 static const ber_sequence_t EventNotificationChargingarg_sequence[] = {
2495   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeCharging_impl },
2496   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventSpecificInformationCharging_impl },
2497   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
2498   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2499   { BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl },
2500   { 0, 0, 0, NULL }
2501 };
2502
2503 static int
2504 dissect_inap_EventNotificationChargingarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2505   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2506                                 EventNotificationChargingarg_sequence, hf_index, ett_inap_EventNotificationChargingarg);
2507
2508   return offset;
2509 }
2510
2511
2512 static const value_string inap_EventTypeBCSM_vals[] = {
2513   {   1, "origAttemptAuthorized" },
2514   {   2, "collectedInfo" },
2515   {   3, "analysedInformation" },
2516   {   4, "routeSelectFailure" },
2517   {   5, "oCalledPartyBusy" },
2518   {   6, "oNoAnswer" },
2519   {   7, "oAnswer" },
2520   {   8, "oMidCall" },
2521   {   9, "oDisconnect" },
2522   {  10, "oAbandon" },
2523   {  12, "termAttemptAuthorized" },
2524   {  13, "tBusy" },
2525   {  14, "tNoAnswer" },
2526   {  15, "tAnswer" },
2527   {  16, "tMidCall" },
2528   {  17, "tDisconnect" },
2529   {  18, "tAbandon" },
2530   { 0, NULL }
2531 };
2532
2533
2534 static int
2535 dissect_inap_EventTypeBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2536   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2537
2538   return offset;
2539 }
2540 static int dissect_eventTypeBCSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2541   return dissect_inap_EventTypeBCSM(TRUE, tvb, offset, pinfo, tree, hf_inap_eventTypeBCSM);
2542 }
2543
2544 static const ber_sequence_t T_collectedInfoSpecificInfo_sequence[] = {
2545   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledPartynumber_impl },
2546   { 0, 0, 0, NULL }
2547 };
2548
2549 static int
2550 dissect_inap_T_collectedInfoSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2551   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2552                                 T_collectedInfoSpecificInfo_sequence, hf_index, ett_inap_T_collectedInfoSpecificInfo);
2553
2554   return offset;
2555 }
2556 static int dissect_collectedInfoSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2557   return dissect_inap_T_collectedInfoSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_collectedInfoSpecificInfo);
2558 }
2559
2560 static const ber_sequence_t T_analyzedInfoSpecificInfo_sequence[] = {
2561   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledPartynumber_impl },
2562   { 0, 0, 0, NULL }
2563 };
2564
2565 static int
2566 dissect_inap_T_analyzedInfoSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2567   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2568                                 T_analyzedInfoSpecificInfo_sequence, hf_index, ett_inap_T_analyzedInfoSpecificInfo);
2569
2570   return offset;
2571 }
2572 static int dissect_analyzedInfoSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2573   return dissect_inap_T_analyzedInfoSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_analyzedInfoSpecificInfo);
2574 }
2575
2576
2577 static int
2578 dissect_inap_OCTET_STRING_SIZE_2_10(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2579   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2580                                     NULL);
2581
2582   return offset;
2583 }
2584 static int dissect_failureCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2585   return dissect_inap_OCTET_STRING_SIZE_2_10(TRUE, tvb, offset, pinfo, tree, hf_inap_failureCause);
2586 }
2587 static int dissect_busyCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2588   return dissect_inap_OCTET_STRING_SIZE_2_10(TRUE, tvb, offset, pinfo, tree, hf_inap_busyCause);
2589 }
2590
2591 static const ber_sequence_t T_routeSelectFailureSpecificInfo_sequence[] = {
2592   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_failureCause_impl },
2593   { 0, 0, 0, NULL }
2594 };
2595
2596 static int
2597 dissect_inap_T_routeSelectFailureSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2598   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2599                                 T_routeSelectFailureSpecificInfo_sequence, hf_index, ett_inap_T_routeSelectFailureSpecificInfo);
2600
2601   return offset;
2602 }
2603 static int dissect_routeSelectFailureSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2604   return dissect_inap_T_routeSelectFailureSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_routeSelectFailureSpecificInfo);
2605 }
2606
2607 static const ber_sequence_t T_oCalledPartyBusySpecificInfo_sequence[] = {
2608   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_busyCause_impl },
2609   { 0, 0, 0, NULL }
2610 };
2611
2612 static int
2613 dissect_inap_T_oCalledPartyBusySpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2614   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2615                                 T_oCalledPartyBusySpecificInfo_sequence, hf_index, ett_inap_T_oCalledPartyBusySpecificInfo);
2616
2617   return offset;
2618 }
2619 static int dissect_oCalledPartyBusySpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2620   return dissect_inap_T_oCalledPartyBusySpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_oCalledPartyBusySpecificInfo);
2621 }
2622
2623 static const ber_sequence_t T_oNoAnswerSpecificInfo_sequence[] = {
2624   { 0, 0, 0, NULL }
2625 };
2626
2627 static int
2628 dissect_inap_T_oNoAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2629   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2630                                 T_oNoAnswerSpecificInfo_sequence, hf_index, ett_inap_T_oNoAnswerSpecificInfo);
2631
2632   return offset;
2633 }
2634 static int dissect_oNoAnswerSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2635   return dissect_inap_T_oNoAnswerSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_oNoAnswerSpecificInfo);
2636 }
2637
2638 static const ber_sequence_t T_oAnswerSpecificInfo_sequence[] = {
2639   { 0, 0, 0, NULL }
2640 };
2641
2642 static int
2643 dissect_inap_T_oAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2644   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2645                                 T_oAnswerSpecificInfo_sequence, hf_index, ett_inap_T_oAnswerSpecificInfo);
2646
2647   return offset;
2648 }
2649 static int dissect_oAnswerSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2650   return dissect_inap_T_oAnswerSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_oAnswerSpecificInfo);
2651 }
2652
2653 static const ber_sequence_t T_oMidCallSpecificInfo_sequence[] = {
2654   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_connectTime_impl },
2655   { 0, 0, 0, NULL }
2656 };
2657
2658 static int
2659 dissect_inap_T_oMidCallSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2660   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2661                                 T_oMidCallSpecificInfo_sequence, hf_index, ett_inap_T_oMidCallSpecificInfo);
2662
2663   return offset;
2664 }
2665 static int dissect_oMidCallSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2666   return dissect_inap_T_oMidCallSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_oMidCallSpecificInfo);
2667 }
2668
2669 static const ber_sequence_t T_oDisconnectSpecificInfo_sequence[] = {
2670   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
2671   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_connectTime_impl },
2672   { 0, 0, 0, NULL }
2673 };
2674
2675 static int
2676 dissect_inap_T_oDisconnectSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2677   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2678                                 T_oDisconnectSpecificInfo_sequence, hf_index, ett_inap_T_oDisconnectSpecificInfo);
2679
2680   return offset;
2681 }
2682 static int dissect_oDisconnectSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2683   return dissect_inap_T_oDisconnectSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_oDisconnectSpecificInfo);
2684 }
2685
2686 static const ber_sequence_t T_tBusySpecificInfo_sequence[] = {
2687   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_busyCause_impl },
2688   { 0, 0, 0, NULL }
2689 };
2690
2691 static int
2692 dissect_inap_T_tBusySpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2693   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2694                                 T_tBusySpecificInfo_sequence, hf_index, ett_inap_T_tBusySpecificInfo);
2695
2696   return offset;
2697 }
2698 static int dissect_tBusySpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2699   return dissect_inap_T_tBusySpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_tBusySpecificInfo);
2700 }
2701
2702 static const ber_sequence_t T_tNoAnswerSpecificInfo_sequence[] = {
2703   { 0, 0, 0, NULL }
2704 };
2705
2706 static int
2707 dissect_inap_T_tNoAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2708   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2709                                 T_tNoAnswerSpecificInfo_sequence, hf_index, ett_inap_T_tNoAnswerSpecificInfo);
2710
2711   return offset;
2712 }
2713 static int dissect_tNoAnswerSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2714   return dissect_inap_T_tNoAnswerSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_tNoAnswerSpecificInfo);
2715 }
2716
2717 static const ber_sequence_t T_tAnswerSpecificInfo_sequence[] = {
2718   { 0, 0, 0, NULL }
2719 };
2720
2721 static int
2722 dissect_inap_T_tAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2723   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2724                                 T_tAnswerSpecificInfo_sequence, hf_index, ett_inap_T_tAnswerSpecificInfo);
2725
2726   return offset;
2727 }
2728 static int dissect_tAnswerSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2729   return dissect_inap_T_tAnswerSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_tAnswerSpecificInfo);
2730 }
2731
2732 static const ber_sequence_t T_tMidCallSpecificInfo_sequence[] = {
2733   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_connectTime_impl },
2734   { 0, 0, 0, NULL }
2735 };
2736
2737 static int
2738 dissect_inap_T_tMidCallSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2739   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2740                                 T_tMidCallSpecificInfo_sequence, hf_index, ett_inap_T_tMidCallSpecificInfo);
2741
2742   return offset;
2743 }
2744 static int dissect_tMidCallSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2745   return dissect_inap_T_tMidCallSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_tMidCallSpecificInfo);
2746 }
2747
2748 static const ber_sequence_t T_tDisconnectSpecificInfo_sequence[] = {
2749   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
2750   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_connectTime_impl },
2751   { 0, 0, 0, NULL }
2752 };
2753
2754 static int
2755 dissect_inap_T_tDisconnectSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2756   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2757                                 T_tDisconnectSpecificInfo_sequence, hf_index, ett_inap_T_tDisconnectSpecificInfo);
2758
2759   return offset;
2760 }
2761 static int dissect_tDisconnectSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2762   return dissect_inap_T_tDisconnectSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_tDisconnectSpecificInfo);
2763 }
2764
2765
2766 static const value_string inap_T_eventSpecificInformationBCSM_vals[] = {
2767   {   0, "collectedInfoSpecificInfo" },
2768   {   1, "analyzedInfoSpecificInfo" },
2769   {   2, "routeSelectFailureSpecificInfo" },
2770   {   3, "oCalledPartyBusySpecificInfo" },
2771   {   4, "oNoAnswerSpecificInfo" },
2772   {   5, "oAnswerSpecificInfo" },
2773   {   6, "oMidCallSpecificInfo" },
2774   {   7, "oDisconnectSpecificInfo" },
2775   {   8, "tBusySpecificInfo" },
2776   {   9, "tNoAnswerSpecificInfo" },
2777   {  10, "tAnswerSpecificInfo" },
2778   {  11, "tMidCallSpecificInfo" },
2779   {  12, "tDisconnectSpecificInfo" },
2780   { 0, NULL }
2781 };
2782
2783 static const ber_choice_t T_eventSpecificInformationBCSM_choice[] = {
2784   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_collectedInfoSpecificInfo_impl },
2785   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_analyzedInfoSpecificInfo_impl },
2786   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_routeSelectFailureSpecificInfo_impl },
2787   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_oCalledPartyBusySpecificInfo_impl },
2788   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_oNoAnswerSpecificInfo_impl },
2789   {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_oAnswerSpecificInfo_impl },
2790   {   6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_oMidCallSpecificInfo_impl },
2791   {   7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_oDisconnectSpecificInfo_impl },
2792   {   8, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_tBusySpecificInfo_impl },
2793   {   9, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_tNoAnswerSpecificInfo_impl },
2794   {  10, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_tAnswerSpecificInfo_impl },
2795   {  11, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_tMidCallSpecificInfo_impl },
2796   {  12, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_tDisconnectSpecificInfo_impl },
2797   { 0, 0, 0, 0, NULL }
2798 };
2799
2800 static int
2801 dissect_inap_T_eventSpecificInformationBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2802   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2803                               T_eventSpecificInformationBCSM_choice, hf_index, ett_inap_T_eventSpecificInformationBCSM);
2804
2805   return offset;
2806 }
2807 static int dissect_eventSpecificInformationBCSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2808   return dissect_inap_T_eventSpecificInformationBCSM(TRUE, tvb, offset, pinfo, tree, hf_inap_eventSpecificInformationBCSM);
2809 }
2810
2811 static const ber_sequence_t EventReportBCSM_sequence[] = {
2812   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeBCSM_impl },
2813   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bcsmEventCorrelationID_impl },
2814   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventSpecificInformationBCSM_impl },
2815   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
2816   { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_miscCallInfo_impl },
2817   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2818   { 0, 0, 0, NULL }
2819 };
2820
2821 static int
2822 dissect_inap_EventReportBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2823   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2824                                 EventReportBCSM_sequence, hf_index, ett_inap_EventReportBCSM);
2825
2826   return offset;
2827 }
2828
2829
2830 static int
2831 dissect_inap_FurnishChargingInformationarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2832   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2833                                     NULL);
2834
2835   return offset;
2836 }
2837
2838
2839 static const value_string inap_HoldCallInNetworkarg_vals[] = {
2840   {   0, "holdcause" },
2841   {   1, "empty" },
2842   { 0, NULL }
2843 };
2844
2845 static const ber_choice_t HoldCallInNetworkarg_choice[] = {
2846   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_holdcause_impl },
2847   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_empty_impl },
2848   { 0, 0, 0, 0, NULL }
2849 };
2850
2851 static int
2852 dissect_inap_HoldCallInNetworkarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2853   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2854                               HoldCallInNetworkarg_choice, hf_index, ett_inap_HoldCallInNetworkarg);
2855
2856   return offset;
2857 }
2858
2859 static const ber_sequence_t InitialDP_sequence[] = {
2860   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
2861   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl },
2862   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyNumber_impl },
2863   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl },
2864   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
2865   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartysCategory_impl },
2866   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
2867   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cGEncountered_impl },
2868   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iPSSPCapabilities_impl },
2869   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iPAvailable_impl },
2870   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl },
2871   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_miscCallInfo_impl },
2872   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
2873   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceProfileIdentifier_impl },
2874   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_terminalType_impl },
2875   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2876   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_triggerType_impl },
2877   { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_highLayerCompatibility_impl },
2878   { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicators_impl },
2879   { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalCallingPartyNumber_impl },
2880   { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardCallIndicators_impl },
2881   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_bearerCapability_impl },
2882   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventTypeBCSM_impl },
2883   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
2884   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
2885   { 0, 0, 0, NULL }
2886 };
2887
2888 static int
2889 dissect_inap_InitialDP(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2890   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2891                                 InitialDP_sequence, hf_index, ett_inap_InitialDP);
2892
2893   return offset;
2894 }
2895
2896 static const ber_sequence_t InitiateCallAttempt_sequence[] = {
2897   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_destinationRoutingAddress_impl },
2898   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
2899   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iSDNAccessRelatedInformation_impl },
2900   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
2901   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2902   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicators_impl },
2903   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl },
2904   { 0, 0, 0, NULL }
2905 };
2906
2907 static int
2908 dissect_inap_InitiateCallAttempt(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2909   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2910                                 InitiateCallAttempt_sequence, hf_index, ett_inap_InitiateCallAttempt);
2911
2912   return offset;
2913 }
2914
2915 static const ber_sequence_t OAnswer_sequence[] = {
2916   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
2917   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
2918   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
2919   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
2920   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
2921   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
2922   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
2923   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
2924   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
2925   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
2926   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2927   { 0, 0, 0, NULL }
2928 };
2929
2930 static int
2931 dissect_inap_OAnswer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2932   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2933                                 OAnswer_sequence, hf_index, ett_inap_OAnswer);
2934
2935   return offset;
2936 }
2937
2938 static const ber_sequence_t OCalledPartyBusy_sequence[] = {
2939   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
2940   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_busyCause_impl },
2941   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
2942   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
2943   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
2944   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
2945   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
2946   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_prefix_impl },
2947   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
2948   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
2949   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
2950   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
2951   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2952   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
2953   { 0, 0, 0, NULL }
2954 };
2955
2956 static int
2957 dissect_inap_OCalledPartyBusy(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2958   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2959                                 OCalledPartyBusy_sequence, hf_index, ett_inap_OCalledPartyBusy);
2960
2961   return offset;
2962 }
2963
2964 static const ber_sequence_t ODisconnect_sequence[] = {
2965   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
2966   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
2967   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
2968   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
2969   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
2970   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
2971   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
2972   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2973   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
2974   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_connectTime_impl },
2975   { 0, 0, 0, NULL }
2976 };
2977
2978 static int
2979 dissect_inap_ODisconnect(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2980   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2981                                 ODisconnect_sequence, hf_index, ett_inap_ODisconnect);
2982
2983   return offset;
2984 }
2985
2986
2987 static const value_string inap_FeatureRequestIndicator_vals[] = {
2988   {   0, "hold" },
2989   {   1, "retrieve" },
2990   {   2, "featureActivation" },
2991   {   3, "spare1" },
2992   { 127, "sparen" },
2993   { 0, NULL }
2994 };
2995
2996
2997 static int
2998 dissect_inap_FeatureRequestIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2999   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3000
3001   return offset;
3002 }
3003 static int dissect_featureRequestIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3004   return dissect_inap_FeatureRequestIndicator(TRUE, tvb, offset, pinfo, tree, hf_inap_featureRequestIndicator);
3005 }
3006
3007 static const ber_sequence_t OMidCall_sequence[] = {
3008   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3009   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl },
3010   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl },
3011   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
3012   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
3013   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_featureRequestIndicator_impl },
3014   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3015   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
3016   { 0, 0, 0, NULL }
3017 };
3018
3019 static int
3020 dissect_inap_OMidCall(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3021   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3022                                 OMidCall_sequence, hf_index, ett_inap_OMidCall);
3023
3024   return offset;
3025 }
3026
3027 static const ber_sequence_t ONoAnswer_sequence[] = {
3028   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3029   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
3030   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
3031   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
3032   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
3033   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
3034   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_prefix_impl },
3035   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
3036   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
3037   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
3038   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
3039   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3040   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
3041   { 0, 0, 0, NULL }
3042 };
3043
3044 static int
3045 dissect_inap_ONoAnswer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3046   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3047                                 ONoAnswer_sequence, hf_index, ett_inap_ONoAnswer);
3048
3049   return offset;
3050 }
3051
3052 static const ber_sequence_t OriginationAttemptAuthorized_sequence[] = {
3053   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3054   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl },
3055   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
3056   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
3057   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
3058   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
3059   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
3060   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3061   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
3062   { 0, 0, 0, NULL }
3063 };
3064
3065 static int
3066 dissect_inap_OriginationAttemptAuthorized(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3067   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3068                                 OriginationAttemptAuthorized_sequence, hf_index, ett_inap_OriginationAttemptAuthorized);
3069
3070   return offset;
3071 }
3072
3073
3074 static int
3075 dissect_inap_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3076   offset = dissect_ber_boolean(pinfo, tree, tvb, offset, hf_index);
3077
3078   return offset;
3079 }
3080 static int dissect_disconnectFromIPForbidden_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3081   return dissect_inap_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_inap_disconnectFromIPForbidden);
3082 }
3083 static int dissect_requestAnnouncementComplete_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3084   return dissect_inap_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_inap_requestAnnouncementComplete);
3085 }
3086 static int dissect_interruptableAnnInd_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3087   return dissect_inap_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_inap_interruptableAnnInd);
3088 }
3089 static int dissect_voiceInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3090   return dissect_inap_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_inap_voiceInformation);
3091 }
3092 static int dissect_voiceBack_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3093   return dissect_inap_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_inap_voiceBack);
3094 }
3095 static int dissect_iA5Information_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3096   return dissect_inap_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_inap_iA5Information);
3097 }
3098
3099 static const ber_sequence_t PlayAnnouncement_sequence[] = {
3100   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_informationToSend_impl },
3101   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_disconnectFromIPForbidden_impl },
3102   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestAnnouncementComplete_impl },
3103   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3104   { 0, 0, 0, NULL }
3105 };
3106
3107 static int
3108 dissect_inap_PlayAnnouncement(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3109   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3110                                 PlayAnnouncement_sequence, hf_index, ett_inap_PlayAnnouncement);
3111
3112   return offset;
3113 }
3114
3115
3116 static int
3117 dissect_inap_OCTET_STRING_SIZE_1_2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3118   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3119                                     NULL);
3120
3121   return offset;
3122 }
3123 static int dissect_endOfReplyDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3124   return dissect_inap_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_inap_endOfReplyDigit);
3125 }
3126 static int dissect_cancelDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3127   return dissect_inap_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_inap_cancelDigit);
3128 }
3129 static int dissect_startDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3130   return dissect_inap_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_inap_startDigit);
3131 }
3132
3133
3134 static const value_string inap_T_errorTreatment_vals[] = {
3135   {   0, "reportErrorToScf" },
3136   {   1, "help" },
3137   {   2, "repeatPrompt" },
3138   { 0, NULL }
3139 };
3140
3141
3142 static int
3143 dissect_inap_T_errorTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3144   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3145
3146   return offset;
3147 }
3148 static int dissect_errorTreatment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3149   return dissect_inap_T_errorTreatment(TRUE, tvb, offset, pinfo, tree, hf_inap_errorTreatment);
3150 }
3151
3152 static const ber_sequence_t T_collectedDigits_sequence[] = {
3153   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_minimumNbOfDigits_impl },
3154   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_maximumNbOfDigits_impl },
3155   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_endOfReplyDigit_impl },
3156   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cancelDigit_impl },
3157   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_startDigit_impl },
3158   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_firstDigitTimeOut_impl },
3159   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_interDigitTimeOut_impl },
3160   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_errorTreatment_impl },
3161   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_interruptableAnnInd_impl },
3162   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_voiceInformation_impl },
3163   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_voiceBack_impl },
3164   { 0, 0, 0, NULL }
3165 };
3166
3167 static int
3168 dissect_inap_T_collectedDigits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3169   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3170                                 T_collectedDigits_sequence, hf_index, ett_inap_T_collectedDigits);
3171
3172   return offset;
3173 }
3174 static int dissect_collectedDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3175   return dissect_inap_T_collectedDigits(TRUE, tvb, offset, pinfo, tree, hf_inap_collectedDigits);
3176 }
3177
3178
3179 static const value_string inap_T_collectedInfo_vals[] = {
3180   {   0, "collectedDigits" },
3181   {   1, "iA5Information" },
3182   { 0, NULL }
3183 };
3184
3185 static const ber_choice_t T_collectedInfo_choice[] = {
3186   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_collectedDigits_impl },
3187   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_iA5Information_impl },
3188   { 0, 0, 0, 0, NULL }
3189 };
3190
3191 static int
3192 dissect_inap_T_collectedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3193   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3194                               T_collectedInfo_choice, hf_index, ett_inap_T_collectedInfo);
3195
3196   return offset;
3197 }
3198 static int dissect_collectedInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3199   return dissect_inap_T_collectedInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_collectedInfo);
3200 }
3201
3202 static const ber_sequence_t PromptAndCollectUserInformationarg_sequence[] = {
3203   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_collectedInfo_impl },
3204   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_disconnectFromIPForbidden_impl },
3205   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_informationToSend_impl },
3206   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3207   { 0, 0, 0, NULL }
3208 };
3209
3210 static int
3211 dissect_inap_PromptAndCollectUserInformationarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3212   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3213                                 PromptAndCollectUserInformationarg_sequence, hf_index, ett_inap_PromptAndCollectUserInformationarg);
3214
3215   return offset;
3216 }
3217
3218
3219 static const value_string inap_PromptAndCollectUserInformationres_vals[] = {
3220   {   0, "digitsResponse" },
3221   {   1, "iA5Response" },
3222   { 0, NULL }
3223 };
3224
3225 static const ber_choice_t PromptAndCollectUserInformationres_choice[] = {
3226   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_digitsResponse_impl },
3227   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_iA5Response_impl },
3228   { 0, 0, 0, 0, NULL }
3229 };
3230
3231 static int
3232 dissect_inap_PromptAndCollectUserInformationres(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3233   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3234                               PromptAndCollectUserInformationres_choice, hf_index, ett_inap_PromptAndCollectUserInformationres);
3235
3236   return offset;
3237 }
3238
3239
3240 static const value_string inap_ResourceStatus_vals[] = {
3241   {   0, "busy" },
3242   {   1, "idle" },
3243   { 0, NULL }
3244 };
3245
3246
3247 static int
3248 dissect_inap_ResourceStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3249   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3250
3251   return offset;
3252 }
3253 static int dissect_resourceStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3254   return dissect_inap_ResourceStatus(TRUE, tvb, offset, pinfo, tree, hf_inap_resourceStatus);
3255 }
3256
3257
3258 static int
3259 dissect_inap_ReleaseCall(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3260   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3261                                     NULL);
3262
3263   return offset;
3264 }
3265
3266
3267 static const value_string inap_RequestCurrentStatusReportarg_vals[] = {
3268   {   0, "lineID" },
3269   {   1, "facilityGroupID" },
3270   {   2, "facilityGroupMemberID" },
3271   {   3, "trunkGroupID" },
3272   { 0, NULL }
3273 };
3274
3275 static const ber_choice_t RequestCurrentStatusReportarg_choice[] = {
3276   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lineID_impl },
3277   {   1, BER_CLASS_CON, 1, 0, dissect_facilityGroupID_impl },
3278   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_facilityGroupMemberID_impl },
3279   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_trunkGroupID_impl },
3280   { 0, 0, 0, 0, NULL }
3281 };
3282
3283 static int
3284 dissect_inap_RequestCurrentStatusReportarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3285   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3286                               RequestCurrentStatusReportarg_choice, hf_index, ett_inap_RequestCurrentStatusReportarg);
3287
3288   return offset;
3289 }
3290
3291 static const ber_sequence_t RequestCurrentStatusReportres_sequence[] = {
3292   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_resourceStatus_impl },
3293   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceID_impl },
3294   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3295   { 0, 0, 0, NULL }
3296 };
3297
3298 static int
3299 dissect_inap_RequestCurrentStatusReportres(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3300   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3301                                 RequestCurrentStatusReportres_sequence, hf_index, ett_inap_RequestCurrentStatusReportres);
3302
3303   return offset;
3304 }
3305
3306 static const ber_sequence_t RequestEveryStatusChangeReport_sequence[] = {
3307   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceID_impl },
3308   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
3309   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_monitorDuration_impl },
3310   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3311   { 0, 0, 0, NULL }
3312 };
3313
3314 static int
3315 dissect_inap_RequestEveryStatusChangeReport(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3316   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3317                                 RequestEveryStatusChangeReport_sequence, hf_index, ett_inap_RequestEveryStatusChangeReport);
3318
3319   return offset;
3320 }
3321
3322 static const ber_sequence_t RequestFirstStatusMatchReport_sequence[] = {
3323   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceID_impl },
3324   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_resourceStatus_impl },
3325   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
3326   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_monitorDuration_impl },
3327   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3328   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_bearerCapability_impl },
3329   { 0, 0, 0, NULL }
3330 };
3331
3332 static int
3333 dissect_inap_RequestFirstStatusMatchReport(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3334   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3335                                 RequestFirstStatusMatchReport_sequence, hf_index, ett_inap_RequestFirstStatusMatchReport);
3336
3337   return offset;
3338 }
3339
3340 static const ber_sequence_t RequestNotificationChargingEvent_item_sequence[] = {
3341   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeCharging_impl },
3342   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl },
3343   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
3344   { 0, 0, 0, NULL }
3345 };
3346
3347 static int
3348 dissect_inap_RequestNotificationChargingEvent_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3349   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3350                                 RequestNotificationChargingEvent_item_sequence, hf_index, ett_inap_RequestNotificationChargingEvent_item);
3351
3352   return offset;
3353 }
3354 static int dissect_RequestNotificationChargingEvent_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3355   return dissect_inap_RequestNotificationChargingEvent_item(FALSE, tvb, offset, pinfo, tree, hf_inap_RequestNotificationChargingEvent_item);
3356 }
3357
3358 static const ber_sequence_t RequestNotificationChargingEvent_sequence_of[1] = {
3359   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RequestNotificationChargingEvent_item },
3360 };
3361
3362 static int
3363 dissect_inap_RequestNotificationChargingEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3364   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3365                                    RequestNotificationChargingEvent_sequence_of, hf_index, ett_inap_RequestNotificationChargingEvent);
3366
3367   return offset;
3368 }
3369
3370
3371
3372 static int
3373 dissect_inap_INTEGER_1_255(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3374   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3375
3376   return offset;
3377 }
3378 static int dissect_numberOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3379   return dissect_inap_INTEGER_1_255(TRUE, tvb, offset, pinfo, tree, hf_inap_numberOfDigits);
3380 }
3381
3382
3383
3384 static int
3385 dissect_inap_INTEGER_0_2047(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3386   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3387
3388   return offset;
3389 }
3390 static int dissect_applicationTimer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3391   return dissect_inap_INTEGER_0_2047(TRUE, tvb, offset, pinfo, tree, hf_inap_applicationTimer);
3392 }
3393
3394
3395 static const value_string inap_T_dpSpecificCriteria_vals[] = {
3396   {   0, "numberOfDigits" },
3397   {   1, "applicationTimer" },
3398   { 0, NULL }
3399 };
3400
3401 static const ber_choice_t T_dpSpecificCriteria_choice[] = {
3402   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_numberOfDigits_impl },
3403   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_applicationTimer_impl },
3404   { 0, 0, 0, 0, NULL }
3405 };
3406
3407 static int
3408 dissect_inap_T_dpSpecificCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3409   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3410                               T_dpSpecificCriteria_choice, hf_index, ett_inap_T_dpSpecificCriteria);
3411
3412   return offset;
3413 }
3414 static int dissect_dpSpecificCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3415   return dissect_inap_T_dpSpecificCriteria(TRUE, tvb, offset, pinfo, tree, hf_inap_dpSpecificCriteria);
3416 }
3417
3418 static const ber_sequence_t T_bcsmEvents_item_sequence[] = {
3419   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeBCSM_impl },
3420   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl },
3421   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
3422   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dpSpecificCriteria_impl },
3423   { 0, 0, 0, NULL }
3424 };
3425
3426 static int
3427 dissect_inap_T_bcsmEvents_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3428   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3429                                 T_bcsmEvents_item_sequence, hf_index, ett_inap_T_bcsmEvents_item);
3430
3431   return offset;
3432 }
3433 static int dissect_bcsmEvents_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3434   return dissect_inap_T_bcsmEvents_item(FALSE, tvb, offset, pinfo, tree, hf_inap_bcsmEvents_item);
3435 }
3436
3437 static const ber_sequence_t T_bcsmEvents_sequence_of[1] = {
3438   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_bcsmEvents_item },
3439 };
3440
3441 static int
3442 dissect_inap_T_bcsmEvents(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3443   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3444                                    T_bcsmEvents_sequence_of, hf_index, ett_inap_T_bcsmEvents);
3445
3446   return offset;
3447 }
3448 static int dissect_bcsmEvents_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3449   return dissect_inap_T_bcsmEvents(TRUE, tvb, offset, pinfo, tree, hf_inap_bcsmEvents);
3450 }
3451
3452 static const ber_sequence_t RequestReportBCSMEvent_sequence[] = {
3453   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_bcsmEvents_impl },
3454   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bcsmEventCorrelationID_impl },
3455   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3456   { 0, 0, 0, NULL }
3457 };
3458
3459 static int
3460 dissect_inap_RequestReportBCSMEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3461   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3462                                 RequestReportBCSMEvent_sequence, hf_index, ett_inap_RequestReportBCSMEvent);
3463
3464   return offset;
3465 }
3466
3467
3468 static const value_string inap_T_timerID_vals[] = {
3469   {   0, "tssf" },
3470   { 0, NULL }
3471 };
3472
3473
3474 static int
3475 dissect_inap_T_timerID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3476   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3477
3478   return offset;
3479 }
3480 static int dissect_timerID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3481   return dissect_inap_T_timerID(TRUE, tvb, offset, pinfo, tree, hf_inap_timerID);
3482 }
3483
3484 static const ber_sequence_t ResetTimer_sequence[] = {
3485   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timerID_impl },
3486   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_timervalue_impl },
3487   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3488   { 0, 0, 0, NULL }
3489 };
3490
3491 static int
3492 dissect_inap_ResetTimer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3493   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3494                                 ResetTimer_sequence, hf_index, ett_inap_ResetTimer);
3495
3496   return offset;
3497 }
3498
3499 static const ber_sequence_t RouteSelectFailure_sequence[] = {
3500   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3501   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl },
3502   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
3503   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
3504   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
3505   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
3506   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_failureCause_impl },
3507   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
3508   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_prefix_impl },
3509   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
3510   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
3511   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
3512   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
3513   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3514   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
3515   { 0, 0, 0, NULL }
3516 };
3517
3518 static int
3519 dissect_inap_RouteSelectFailure(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3520   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3521                                 RouteSelectFailure_sequence, hf_index, ett_inap_RouteSelectFailure);
3522
3523   return offset;
3524 }
3525
3526
3527 static const value_string inap_CalledFacilityGroup_vals[] = {
3528   {   0, "trunkGroupID" },
3529   {   1, "privateFacilityID" },
3530   {   2, "huntGroup" },
3531   {   3, "routeIndex" },
3532   { 0, NULL }
3533 };
3534
3535 static const ber_choice_t CalledFacilityGroup_choice[] = {
3536   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_trunkGroupID_impl },
3537   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_privateFacilityID_impl },
3538   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_huntGroup_impl },
3539   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_routeIndex_impl },
3540   { 0, 0, 0, 0, NULL }
3541 };
3542
3543 static int
3544 dissect_inap_CalledFacilityGroup(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3545   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3546                               CalledFacilityGroup_choice, hf_index, ett_inap_CalledFacilityGroup);
3547
3548   return offset;
3549 }
3550 static int dissect_calledFacilityGroup_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3551   return dissect_inap_CalledFacilityGroup(TRUE, tvb, offset, pinfo, tree, hf_inap_calledFacilityGroup);
3552 }
3553
3554 static const ber_sequence_t SelectFacility_sequence[] = {
3555   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
3556   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberRoutingAddress_impl },
3557   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iSDNAccessRelatedInformation_impl },
3558   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_calledFacilityGroup_impl },
3559   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledFacilityGroupMember_impl },
3560   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
3561   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3562   { 0, 0, 0, NULL }
3563 };
3564
3565 static int
3566 dissect_inap_SelectFacility(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3567   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3568                                 SelectFacility_sequence, hf_index, ett_inap_SelectFacility);
3569
3570   return offset;
3571 }
3572
3573 static const ber_sequence_t SelectRoute_sequence[] = {
3574   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_destinationRoutingAddress_impl },
3575   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
3576   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
3577   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iSDNAccessRelatedInformation_impl },
3578   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
3579   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
3580   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_scfID_impl },
3581   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
3582   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3583   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
3584   { 0, 0, 0, NULL }
3585 };
3586
3587 static int
3588 dissect_inap_SelectRoute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3589   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3590                                 SelectRoute_sequence, hf_index, ett_inap_SelectRoute);
3591
3592   return offset;
3593 }
3594
3595 static const ber_sequence_t SendChargingInformation_sequence[] = {
3596   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sCIBillingChargingCharacteristics_impl },
3597   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_partyToCharge_impl },
3598   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3599   { 0, 0, 0, NULL }
3600 };
3601
3602 static int
3603 dissect_inap_SendChargingInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3604   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3605                                 SendChargingInformation_sequence, hf_index, ett_inap_SendChargingInformation);
3606
3607   return offset;
3608 }
3609
3610
3611
3612 static int
3613 dissect_inap_INTEGER_0_99(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3614   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3615
3616   return offset;
3617 }
3618 static int dissect_counterID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3619   return dissect_inap_INTEGER_0_99(TRUE, tvb, offset, pinfo, tree, hf_inap_counterID);
3620 }
3621
3622 static const ber_sequence_t T_countersValue_item_sequence[] = {
3623   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_counterID_impl },
3624   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_counterValue_impl },
3625   { 0, 0, 0, NULL }
3626 };
3627
3628 static int
3629 dissect_inap_T_countersValue_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3630   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3631                                 T_countersValue_item_sequence, hf_index, ett_inap_T_countersValue_item);
3632
3633   return offset;
3634 }
3635 static int dissect_countersValue_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3636   return dissect_inap_T_countersValue_item(FALSE, tvb, offset, pinfo, tree, hf_inap_countersValue_item);
3637 }
3638
3639 static const ber_sequence_t T_countersValue_sequence_of[1] = {
3640   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_countersValue_item },
3641 };
3642
3643 static int
3644 dissect_inap_T_countersValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3645   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3646                                    T_countersValue_sequence_of, hf_index, ett_inap_T_countersValue);
3647
3648   return offset;
3649 }
3650 static int dissect_countersValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3651   return dissect_inap_T_countersValue(TRUE, tvb, offset, pinfo, tree, hf_inap_countersValue);
3652 }
3653
3654
3655 static const value_string inap_T_responseCondition_vals[] = {
3656   {   0, "intermediateResponse" },
3657   {   1, "lastResponse" },
3658   { 0, NULL }
3659 };
3660
3661
3662 static int
3663 dissect_inap_T_responseCondition(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3664   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3665
3666   return offset;
3667 }
3668 static int dissect_responseCondition_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3669   return dissect_inap_T_responseCondition(TRUE, tvb, offset, pinfo, tree, hf_inap_responseCondition);
3670 }
3671
3672 static const ber_sequence_t ServiceFilteringResponse_sequence[] = {
3673   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_countersValue_impl },
3674   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_filteringCriteria_impl },
3675   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3676   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_responseCondition_impl },
3677   { 0, 0, 0, NULL }
3678 };
3679
3680 static int
3681 dissect_inap_ServiceFilteringResponse(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3682   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3683                                 ServiceFilteringResponse_sequence, hf_index, ett_inap_ServiceFilteringResponse);
3684
3685   return offset;
3686 }
3687
3688
3689 static const value_string inap_T_reportCondition_vals[] = {
3690   {   0, "statusReport" },
3691   {   1, "timerExpired" },
3692   {   2, "canceled" },
3693   { 0, NULL }
3694 };
3695
3696
3697 static int
3698 dissect_inap_T_reportCondition(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3699   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3700
3701   return offset;
3702 }
3703 static int dissect_reportCondition_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3704   return dissect_inap_T_reportCondition(TRUE, tvb, offset, pinfo, tree, hf_inap_reportCondition);
3705 }
3706
3707 static const ber_sequence_t StatusReport_sequence[] = {
3708   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_resourceStatus_impl },
3709   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
3710   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceID_impl },
3711   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3712   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_reportCondition_impl },
3713   { 0, 0, 0, NULL }
3714 };
3715
3716 static int
3717 dissect_inap_StatusReport(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3718   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3719                                 StatusReport_sequence, hf_index, ett_inap_StatusReport);
3720
3721   return offset;
3722 }
3723
3724 static const ber_sequence_t TAnswer_sequence[] = {
3725   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3726   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl },
3727   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl },
3728   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_calledFacilityGroup_impl },
3729   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledFacilityGroupMember_impl },
3730   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3731   { 0, 0, 0, NULL }
3732 };
3733
3734 static int
3735 dissect_inap_TAnswer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3736   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3737                                 TAnswer_sequence, hf_index, ett_inap_TAnswer);
3738
3739   return offset;
3740 }
3741
3742 static const ber_sequence_t TBusy_sequence[] = {
3743   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3744   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_busyCause_impl },
3745   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl },
3746   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl },
3747   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
3748   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
3749   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
3750   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
3751   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
3752   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3753   { 0, 0, 0, NULL }
3754 };
3755
3756 static int
3757 dissect_inap_TBusy(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3758   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3759                                 TBusy_sequence, hf_index, ett_inap_TBusy);
3760
3761   return offset;
3762 }
3763
3764 static const ber_sequence_t TDisconnect_sequence[] = {
3765   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3766   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl },
3767   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl },
3768   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_calledFacilityGroup_impl },
3769   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledFacilityGroupMember_impl },
3770   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
3771   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3772   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_connectTime_impl },
3773   { 0, 0, 0, NULL }
3774 };
3775
3776 static int
3777 dissect_inap_TDisconnect(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3778   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3779                                 TDisconnect_sequence, hf_index, ett_inap_TDisconnect);
3780
3781   return offset;
3782 }
3783
3784 static const ber_sequence_t TermAttemptAuthorized_sequence[] = {
3785   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3786   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl },
3787   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl },
3788   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
3789   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
3790   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
3791   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
3792   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
3793   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
3794   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3795   { 0, 0, 0, NULL }
3796 };
3797
3798 static int
3799 dissect_inap_TermAttemptAuthorized(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3800   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3801                                 TermAttemptAuthorized_sequence, hf_index, ett_inap_TermAttemptAuthorized);
3802
3803   return offset;
3804 }
3805
3806 static const ber_sequence_t TMidCall_sequence[] = {
3807   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3808   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl },
3809   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl },
3810   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
3811   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
3812   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_featureRequestIndicator_impl },
3813   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3814   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
3815   { 0, 0, 0, NULL }
3816 };
3817
3818 static int
3819 dissect_inap_TMidCall(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3820   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3821                                 TMidCall_sequence, hf_index, ett_inap_TMidCall);
3822
3823   return offset;
3824 }
3825
3826 static const ber_sequence_t TNoAnswer_sequence[] = {
3827   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3828   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl },
3829   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl },
3830   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_calledFacilityGroup_impl },
3831   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledFacilityGroupMember_impl },
3832   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
3833   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
3834   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
3835   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
3836   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3837   { 0, 0, 0, NULL }
3838 };
3839
3840 static int
3841 dissect_inap_TNoAnswer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3842   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3843                                 TNoAnswer_sequence, hf_index, ett_inap_TNoAnswer);
3844
3845   return offset;
3846 }
3847
3848
3849 static const value_string inap_T_problem_vals[] = {
3850   {   0, "unknownOperation" },
3851   {   1, "tooLate" },
3852   {   2, "operationNotCancellable" },
3853   { 0, NULL }
3854 };
3855
3856
3857 static int
3858 dissect_inap_T_problem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3859   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3860
3861   return offset;
3862 }
3863 static int dissect_problem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3864   return dissect_inap_T_problem(TRUE, tvb, offset, pinfo, tree, hf_inap_problem);
3865 }
3866
3867 static const ber_sequence_t CancelFailed_sequence[] = {
3868   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_problem_impl },
3869   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_operation_impl },
3870   { 0, 0, 0, NULL }
3871 };
3872
3873 static int
3874 dissect_inap_CancelFailed(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3875   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3876                                 CancelFailed_sequence, hf_index, ett_inap_CancelFailed);
3877
3878   return offset;
3879 }
3880
3881
3882 static const value_string inap_RequestedInfoError_vals[] = {
3883   {   1, "unknownRequestedInfo" },
3884   {   2, "requestedInfoNotAvailable" },
3885   { 0, NULL }
3886 };
3887
3888
3889 static int
3890 dissect_inap_RequestedInfoError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3891   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3892
3893   return offset;
3894 }
3895
3896
3897 static const value_string inap_SystemFailure_vals[] = {
3898   {   0, "unavailableResources" },
3899   {   1, "componentFailure" },
3900   {   2, "basicCallProcessingException" },
3901   {   3, "resourceStatusFailure" },
3902   {   4, "endUserFailure" },
3903   { 0, NULL }
3904 };
3905
3906
3907 static int
3908 dissect_inap_SystemFailure(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3909   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3910
3911   return offset;
3912 }
3913
3914
3915 static const value_string inap_TaskRefused_vals[] = {
3916   {   0, "generic" },
3917   {   1, "unobtainable" },
3918   {   2, "congestion" },
3919   { 0, NULL }
3920 };
3921
3922
3923 static int
3924 dissect_inap_TaskRefused(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3925   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3926
3927   return offset;
3928 }
3929
3930
3931 /*--- End of included file: packet-inap-fn.c ---*/
3932
3933
3934
3935 const value_string inap_opr_code_strings[] = {
3936
3937 {16, "AssistRequestInstructions"},
3938 {44, "CallInformationReport"},
3939 {45, "CallInformationRequest"},
3940 {53, "Cancel"},
3941 {20, "Connect"},
3942         {19,"ConnectToResource"},
3943         {17,"EstablishTemporaryConnection"},
3944         {24,"EventReportBCSM"},
3945         {34,"FurnishChargingInformation"},
3946         {0,"InitialDP"},
3947         {47,"PlayAnnouncement"},
3948         {48,"PromptAndCollectUserInformation"},
3949         {99,"ReceivedInformation"}, /*???????*/
3950         {33,"ResetTimer"},
3951         {23,"RequestReportBCSMEvent"},
3952         {49,"SpecializedResourceReport"}
3953 };
3954
3955
3956 static guint32 opcode=0;
3957
3958 static int
3959 dissect_inap_Opcode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3960   offset = dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_index, &opcode);
3961
3962   if (check_col(pinfo->cinfo, COL_INFO)){
3963     col_set_str(pinfo->cinfo, COL_INFO, val_to_str(opcode, inap_opr_code_strings, "Unknown Inap (%u)"));
3964   }
3965
3966   return offset;
3967 }
3968
3969 static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3970   switch(opcode){
3971   case  16: /*AssistRequestInstructions*/
3972     offset=dissect_inap_AssistRequestInstructionsarg(FALSE, tvb, offset, pinfo, tree, -1);
3973     break;
3974   case  44: /*CallInformationReport*/
3975     offset=dissect_inap_CallInformationReportarg(FALSE, tvb, offset, pinfo, tree, -1);
3976     break;
3977   case  45: /*CallInformationRequest*/
3978     offset=dissect_inap_CallInformationRequestarg(FALSE, tvb, offset, pinfo, tree, -1);
3979     break;
3980   case  53: /*Cancel*/
3981     offset=dissect_inap_Cancelarg(FALSE, tvb, offset, pinfo, tree, -1);
3982     break;
3983   case  20: /*Connect*/
3984     offset=dissect_inap_Connectarg(FALSE, tvb, offset, pinfo, tree, -1);
3985     break;
3986     case  18: /*DisconnectForwardConnections*/
3987     proto_tree_add_text(tree, tvb, offset, -1, "Disconnect Forward Connection");
3988     break;
3989   case  19: /*ConnectToResource*/
3990     offset=dissect_inap_ConnectToResource(FALSE, tvb, offset, pinfo, tree, -1);
3991     break;
3992   case  17: /*EstablishTemporaryConnection*/
3993     offset=dissect_inap_EstablishTemporaryConnection(FALSE, tvb, offset, pinfo, tree, -1);
3994     break;
3995   case  24: /*EventReportBCSM*/
3996     offset=dissect_inap_EventReportBCSM(FALSE, tvb, offset, pinfo, tree, -1);
3997     break;
3998   case 34: /*FurnishChargingInformation*/
3999     offset=dissect_inap_FurnishChargingInformationarg(FALSE, tvb, offset, pinfo, tree, -1);
4000     break;
4001   case 0: /*InitialDP*/
4002     offset=dissect_inap_InitialDP(FALSE, tvb, offset, pinfo, tree, -1);
4003     break;
4004     
4005     case 23: /*InitialDP*/
4006     offset=dissect_inap_RequestReportBCSMEvent(FALSE, tvb, offset, pinfo, tree, -1);
4007     break;
4008  
4009   case 47: /*PlayAnnouncement*/
4010     offset=dissect_inap_PlayAnnouncement(FALSE, tvb, offset, pinfo, tree, -1);
4011     break;
4012   case 48: /*PromptAndCollectUserInformation*/
4013     offset=dissect_inap_PromptAndCollectUserInformationarg(FALSE, tvb, offset, pinfo, tree, -1);
4014     break;
4015   case 33: /*ResetTimer*/
4016     offset=dissect_inap_ResetTimer(FALSE, tvb, offset, pinfo, tree, -1);
4017     break;
4018    default:
4019     proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
4020     /* todo call the asn.1 dissector */
4021   }
4022   return offset;
4023 }
4024
4025
4026 static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4027   switch(opcode){
4028    case 48: /*PromptAndCollectUserInformation*/
4029     offset=dissect_inap_PromptAndCollectUserInformationres(FALSE, tvb, offset, pinfo, tree, -1);
4030     break;
4031   default:
4032     proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
4033   }
4034   return offset;
4035 }
4036
4037 static int 
4038 dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4039   return dissect_inap_Opcode(FALSE, tvb, offset, pinfo, tree, hf_inap_invokeCmd);
4040 }
4041
4042 static int dissect_invokeid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4043   return dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_inap_invokeid, NULL);
4044 }
4045
4046
4047 static const value_string InvokeId_vals[] = {
4048   {   0, "invokeid" },
4049   {   1, "absent" },
4050   { 0, NULL }
4051 };
4052
4053 static int dissect_absent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4054   return dissect_inap_NULL(FALSE, tvb, offset, pinfo, tree, hf_inap_absent);
4055 }
4056
4057
4058 static const ber_choice_t InvokeId_choice[] = {
4059   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeid },
4060   {   1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_absent },
4061   { 0, 0, 0, 0, NULL }
4062 };
4063
4064 static int
4065 dissect_inap_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
4066   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4067                               InvokeId_choice, hf_index, ett_inap_InvokeId);
4068
4069   return offset;
4070 }
4071 static int dissect_invokeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4072   return dissect_inap_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_inap_invokeId);
4073 }
4074
4075 static const ber_sequence_t InvokePDU_sequence[] = {
4076   { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
4077   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
4078   { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeData },
4079   { 0, 0, 0, NULL }
4080 };
4081
4082 static int
4083 dissect_inap_InvokePDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
4084   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4085                                 InvokePDU_sequence, hf_index, ett_inap_InvokePDU);
4086
4087   return offset;
4088 }
4089 static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4090   return dissect_inap_InvokePDU(TRUE, tvb, offset, pinfo, tree, hf_inap_invoke);
4091 }
4092
4093 static const ber_sequence_t ReturnResult_result_sequence[] = {
4094   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
4095   { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_returnResultData },
4096   { 0, 0, 0, NULL }
4097 };
4098 static int
4099 dissect_returnResult_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4100   offset = dissect_ber_sequence(FALSE, pinfo, tree, tvb, offset,
4101                                 ReturnResult_result_sequence, hf_inap_returnResult_result, ett_inap_ReturnResult_result);
4102
4103   return offset;
4104 }
4105
4106 static const ber_sequence_t ReturnResultPDU_sequence[] = {
4107   { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
4108   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_returnResult_result },
4109   { 0, 0, 0, NULL }
4110 };
4111
4112 static int
4113 dissect_inap_returnResultPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
4114   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4115                                 ReturnResultPDU_sequence, hf_index, ett_inap_ReturnResultPDU);
4116
4117   return offset;
4118 }
4119 static int dissect_returnResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4120   return dissect_inap_returnResultPDU(TRUE, tvb, offset, pinfo, tree, hf_inap_returnResult);
4121 }
4122
4123 static const value_string INAPPDU_vals[] = {
4124   {   1, "invoke" },
4125   {   2, "returnResult" },
4126   {   3, "returnError" },
4127   {   4, "reject" },
4128   { 0, NULL }
4129 };
4130
4131 static const ber_choice_t INAPPDU_choice[] = {
4132   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
4133   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResult_impl },
4134 #ifdef REMOVED
4135   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
4136   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
4137 #endif
4138   { 0, 0, 0, 0, NULL }
4139 };
4140
4141 static guint8 inap_pdu_type = 0;
4142 static guint8 inap_pdu_size = 0;
4143
4144 static int
4145 dissect_inap_INAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
4146
4147   inap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
4148   /* Get the length and add 2 */
4149   inap_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
4150
4151   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4152                               INAPPDU_choice, hf_index, ett_inap_INAPPDU);
4153
4154   if (check_col(pinfo->cinfo, COL_INFO)){
4155     col_prepend_fstr(pinfo->cinfo, COL_INFO, val_to_str(opcode, inap_opr_code_strings, "Unknown INAP (%u)"));
4156   }
4157
4158   return offset;
4159 }
4160
4161
4162
4163
4164 static void
4165 dissect_inap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
4166 {
4167     proto_item          *item=NULL;
4168     proto_tree          *tree=NULL;
4169     gchar                       *str = NULL;
4170
4171
4172     if (check_col(pinfo->cinfo, COL_PROTOCOL))
4173     {
4174         col_set_str(pinfo->cinfo, COL_PROTOCOL, "INAP");
4175     }
4176
4177     /* create display subtree for the protocol */
4178     if(parent_tree){
4179        item = proto_tree_add_item(parent_tree, proto_inap, tvb, 0, -1, FALSE);
4180        tree = proto_item_add_subtree(item, ett_inap);
4181     }
4182
4183     dissect_inap_INAPPDU(FALSE, tvb, 0, pinfo, tree, -1);
4184
4185
4186 }
4187
4188 /*--- proto_reg_handoff_inap ---------------------------------------*/
4189 void proto_reg_handoff_inap(void) {
4190     dissector_handle_t  inap_handle;
4191
4192     inap_handle = create_dissector_handle(dissect_inap, proto_inap);
4193     dissector_add("tcap.itu_ssn", global_tcap_itu_ssn, inap_handle);
4194    
4195 }
4196
4197
4198 void proto_register_inap(void) {
4199         module_t *inap_module;
4200   /* List of fields */
4201   static hf_register_info hf[] = {
4202     { &hf_inap_invokeCmd,
4203       { "invokeCmd", "inap.invokeCmd",
4204         FT_UINT32, BASE_DEC, VALS(inap_opr_code_strings), 0,
4205         "InvokePDU/invokeCmd", HFILL }},
4206     { &hf_inap_invokeid,
4207       { "invokeid", "inap.invokeid",
4208         FT_INT32, BASE_DEC, NULL, 0,
4209         "InvokeId/invokeid", HFILL }},
4210     { &hf_inap_absent,
4211       { "absent", "inap.absent",
4212         FT_NONE, BASE_NONE, NULL, 0,
4213         "InvokeId/absent", HFILL }},
4214     { &hf_inap_invokeId,
4215       { "invokeId", "inap.invokeId",
4216         FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
4217         "InvokePDU/invokeId", HFILL }},
4218     { &hf_inap_invoke,
4219       { "invoke", "inap.invoke",
4220         FT_NONE, BASE_NONE, NULL, 0,
4221         "INAPPDU/invoke", HFILL }},
4222     { &hf_inap_returnResult,
4223       { "returnResult", "inap.returnResult",
4224         FT_NONE, BASE_NONE, NULL, 0,
4225         "INAPPDU/returnResult", HFILL }},
4226      
4227
4228
4229 /*--- Included file: packet-inap-hfarr.c ---*/
4230
4231     { &hf_inap_originalCallID,
4232       { "originalCallID", "inap.originalCallID",
4233         FT_INT32, BASE_DEC, NULL, 0,
4234         "AddPartyArg/originalCallID", HFILL }},
4235     { &hf_inap_destinationCallID,
4236       { "destinationCallID", "inap.destinationCallID",
4237         FT_INT32, BASE_DEC, NULL, 0,
4238         "AddPartyArg/destinationCallID", HFILL }},
4239     { &hf_inap_newLegID,
4240       { "newLegID", "inap.newLegID",
4241         FT_BYTES, BASE_HEX, NULL, 0,
4242         "AttachArg/newLegID", HFILL }},
4243     { &hf_inap_correlationidentifier,
4244       { "correlationidentifier", "inap.correlationidentifier",
4245         FT_BYTES, BASE_HEX, NULL, 0,
4246         "", HFILL }},
4247     { &hf_inap_CallPartyHandlingResultsArg_item,
4248       { "Item", "inap.CallPartyHandlingResultsArg_item",
4249         FT_NONE, BASE_NONE, NULL, 0,
4250         "CallPartyHandlingResultsArg/_item", HFILL }},
4251     { &hf_inap_callID,
4252       { "callID", "inap.callID",
4253         FT_INT32, BASE_DEC, NULL, 0,
4254         "", HFILL }},
4255     { &hf_inap_targetCallID,
4256       { "targetCallID", "inap.targetCallID",
4257         FT_INT32, BASE_DEC, NULL, 0,
4258         "ChangePartiesArg/targetCallID", HFILL }},
4259     { &hf_inap_legToBeConnectedID,
4260       { "legToBeConnectedID", "inap.legToBeConnectedID",
4261         FT_BYTES, BASE_HEX, NULL, 0,
4262         "ChangePartiesArg/legToBeConnectedID", HFILL }},
4263     { &hf_inap_legToBeDetached,
4264       { "legToBeDetached", "inap.legToBeDetached",
4265         FT_BYTES, BASE_HEX, NULL, 0,
4266         "DetachArg/legToBeDetached", HFILL }},
4267     { &hf_inap_legID,
4268       { "legID", "inap.legID",
4269         FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0,
4270         "", HFILL }},
4271     { &hf_inap_sendingSideID,
4272       { "sendingSideID", "inap.sendingSideID",
4273         FT_BYTES, BASE_HEX, NULL, 0,
4274         "", HFILL }},
4275     { &hf_inap_receivingSideID,
4276       { "receivingSideID", "inap.receivingSideID",
4277         FT_BYTES, BASE_HEX, NULL, 0,
4278         "", HFILL }},
4279     { &hf_inap_heldLegID,
4280       { "heldLegID", "inap.heldLegID",
4281         FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0,
4282         "ReconnectArg/heldLegID", HFILL }},
4283     { &hf_inap_legToBeReleased,
4284       { "legToBeReleased", "inap.legToBeReleased",
4285         FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0,
4286         "ReleaseCallPartyConnectionArg/legToBeReleased", HFILL }},
4287     { &hf_inap_releaseCause,
4288       { "releaseCause", "inap.releaseCause",
4289         FT_BYTES, BASE_HEX, NULL, 0,
4290         "", HFILL }},
4291     { &hf_inap_legStatus,
4292       { "legStatus", "inap.legStatus",
4293         FT_UINT32, BASE_DEC, VALS(inap_LegStatus_vals), 0,
4294         "LegInformation/legStatus", HFILL }},
4295     { &hf_inap_VariableParts_item,
4296       { "Item", "inap.VariableParts_item",
4297         FT_UINT32, BASE_DEC, VALS(inap_VariableParts_item_vals), 0,
4298         "VariableParts/_item", HFILL }},
4299     { &hf_inap_integer,
4300       { "integer", "inap.integer",
4301         FT_UINT32, BASE_DEC, NULL, 0,
4302         "VariableParts/_item/integer", HFILL }},
4303     { &hf_inap_number,
4304       { "number", "inap.number",
4305         FT_BYTES, BASE_HEX, NULL, 0,
4306         "VariableParts/_item/number", HFILL }},
4307     { &hf_inap_time,
4308       { "time", "inap.time",
4309         FT_BYTES, BASE_HEX, NULL, 0,
4310         "VariableParts/_item/time", HFILL }},
4311     { &hf_inap_date,
4312       { "date", "inap.date",
4313         FT_BYTES, BASE_HEX, NULL, 0,
4314         "VariableParts/_item/date", HFILL }},
4315     { &hf_inap_price,
4316       { "price", "inap.price",
4317         FT_BYTES, BASE_HEX, NULL, 0,
4318         "VariableParts/_item/price", HFILL }},
4319     { &hf_inap_elementaryMessageID,
4320       { "elementaryMessageID", "inap.elementaryMessageID",
4321         FT_UINT32, BASE_DEC, NULL, 0,
4322         "", HFILL }},
4323     { &hf_inap_variableParts,
4324       { "variableParts", "inap.variableParts",
4325         FT_NONE, BASE_NONE, NULL, 0,
4326         "VariableMessage/variableParts", HFILL }},
4327     { &hf_inap_toneID,
4328       { "toneID", "inap.toneID",
4329         FT_UINT32, BASE_DEC, NULL, 0,
4330         "Tone/toneID", HFILL }},
4331     { &hf_inap_tduration,
4332       { "tduration", "inap.tduration",
4333         FT_UINT32, BASE_DEC, NULL, 0,
4334         "Tone/tduration", HFILL }},
4335     { &hf_inap_messageContent,
4336       { "messageContent", "inap.messageContent",
4337         FT_STRING, BASE_NONE, NULL, 0,
4338         "Text/messageContent", HFILL }},
4339     { &hf_inap_attributes,
4340       { "attributes", "inap.attributes",
4341         FT_BYTES, BASE_HEX, NULL, 0,
4342         "Text/attributes", HFILL }},
4343     { &hf_inap_text,
4344       { "text", "inap.text",
4345         FT_NONE, BASE_NONE, NULL, 0,
4346         "MessageID/text", HFILL }},
4347     { &hf_inap_elementaryMessageIDs,
4348       { "elementaryMessageIDs", "inap.elementaryMessageIDs",
4349         FT_NONE, BASE_NONE, NULL, 0,
4350         "MessageID/elementaryMessageIDs", HFILL }},
4351     { &hf_inap_elementaryMessageIDs_item,
4352       { "Item", "inap.elementaryMessageIDs_item",
4353         FT_UINT32, BASE_DEC, NULL, 0,
4354         "MessageID/elementaryMessageIDs/_item", HFILL }},
4355     { &hf_inap_variableMessage,
4356       { "variableMessage", "inap.variableMessage",
4357         FT_NONE, BASE_NONE, NULL, 0,
4358         "MessageID/variableMessage", HFILL }},
4359     { &hf_inap_inbandInfo,
4360       { "inbandInfo", "inap.inbandInfo",
4361         FT_NONE, BASE_NONE, NULL, 0,
4362         "InformationToSend/inbandInfo", HFILL }},
4363     { &hf_inap_messageID,
4364       { "messageID", "inap.messageID",
4365         FT_UINT32, BASE_DEC, VALS(inap_MessageID_vals), 0,
4366         "InformationToSend/inbandInfo/messageID", HFILL }},
4367     { &hf_inap_numberOfRepetitions,
4368       { "numberOfRepetitions", "inap.numberOfRepetitions",
4369         FT_UINT32, BASE_DEC, NULL, 0,
4370         "InformationToSend/inbandInfo/numberOfRepetitions", HFILL }},
4371     { &hf_inap_mduration,
4372       { "mduration", "inap.mduration",
4373         FT_UINT32, BASE_DEC, NULL, 0,
4374         "InformationToSend/inbandInfo/mduration", HFILL }},
4375     { &hf_inap_interval,
4376       { "interval", "inap.interval",
4377         FT_UINT32, BASE_DEC, NULL, 0,
4378         "", HFILL }},
4379     { &hf_inap_tone,
4380       { "tone", "inap.tone",
4381         FT_NONE, BASE_NONE, NULL, 0,
4382         "InformationToSend/tone", HFILL }},
4383     { &hf_inap_displayInformation,
4384       { "displayInformation", "inap.displayInformation",
4385         FT_STRING, BASE_NONE, NULL, 0,
4386         "InformationToSend/displayInformation", HFILL }},
4387     { &hf_inap_dialledNumber,
4388       { "dialledNumber", "inap.dialledNumber",
4389         FT_BYTES, BASE_HEX, NULL, 0,
4390         "FilteringCriteria/dialledNumber", HFILL }},
4391     { &hf_inap_callingLineID,
4392       { "callingLineID", "inap.callingLineID",
4393         FT_BYTES, BASE_HEX, NULL, 0,
4394         "FilteringCriteria/callingLineID", HFILL }},
4395     { &hf_inap_serviceKey,
4396       { "serviceKey", "inap.serviceKey",
4397         FT_UINT32, BASE_DEC, NULL, 0,
4398         "", HFILL }},
4399     { &hf_inap_addressAndService,
4400       { "addressAndService", "inap.addressAndService",
4401         FT_NONE, BASE_NONE, NULL, 0,
4402         "FilteringCriteria/addressAndService", HFILL }},
4403     { &hf_inap_calledAddressValue,
4404       { "calledAddressValue", "inap.calledAddressValue",
4405         FT_BYTES, BASE_HEX, NULL, 0,
4406         "", HFILL }},
4407     { &hf_inap_callingAddressValue,
4408       { "callingAddressValue", "inap.callingAddressValue",
4409         FT_BYTES, BASE_HEX, NULL, 0,
4410         "", HFILL }},
4411     { &hf_inap_locationNumber,
4412       { "locationNumber", "inap.locationNumber",
4413         FT_BYTES, BASE_HEX, NULL, 0,
4414         "", HFILL }},
4415     { &hf_inap_Extensions_item,
4416       { "Item", "inap.Extensions_item",
4417         FT_NONE, BASE_NONE, NULL, 0,
4418         "Extensions/_item", HFILL }},
4419     { &hf_inap_type,
4420       { "type", "inap.type",
4421         FT_INT32, BASE_DEC, NULL, 0,
4422         "Extensions/_item/type", HFILL }},
4423     { &hf_inap_criticality,
4424       { "criticality", "inap.criticality",
4425         FT_UINT32, BASE_DEC, VALS(inap_T_criticality_vals), 0,
4426         "Extensions/_item/criticality", HFILL }},
4427     { &hf_inap_value,
4428       { "value", "inap.value",
4429         FT_BYTES, BASE_HEX, NULL, 0,
4430         "Extensions/_item/value", HFILL }},
4431     { &hf_inap_filteredCallTreatment,
4432       { "filteredCallTreatment", "inap.filteredCallTreatment",
4433         FT_NONE, BASE_NONE, NULL, 0,
4434         "ActivateServiceFilteringarg/filteredCallTreatment", HFILL }},
4435     { &hf_inap_sFBillingChargingCharacteristics,
4436       { "sFBillingChargingCharacteristics", "inap.sFBillingChargingCharacteristics",
4437         FT_BYTES, BASE_HEX, NULL, 0,
4438         "ActivateServiceFilteringarg/filteredCallTreatment/sFBillingChargingCharacteristics", HFILL }},
4439     { &hf_inap_informationToSend,
4440       { "informationToSend", "inap.informationToSend",
4441         FT_UINT32, BASE_DEC, VALS(inap_InformationToSend_vals), 0,
4442         "", HFILL }},
4443     { &hf_inap_maximumNumberOfCounters,
4444       { "maximumNumberOfCounters", "inap.maximumNumberOfCounters",
4445         FT_INT32, BASE_DEC, NULL, 0,
4446         "ActivateServiceFilteringarg/filteredCallTreatment/maximumNumberOfCounters", HFILL }},
4447     { &hf_inap_filteringCharacteristics,
4448       { "filteringCharacteristics", "inap.filteringCharacteristics",
4449         FT_UINT32, BASE_DEC, VALS(inap_T_filteringCharacteristics_vals), 0,
4450         "ActivateServiceFilteringarg/filteringCharacteristics", HFILL }},
4451     { &hf_inap_numberOfCalls,
4452       { "numberOfCalls", "inap.numberOfCalls",
4453         FT_UINT32, BASE_DEC, NULL, 0,
4454         "ActivateServiceFilteringarg/filteringCharacteristics/numberOfCalls", HFILL }},
4455     { &hf_inap_filteringTimeOut,
4456       { "filteringTimeOut", "inap.filteringTimeOut",
4457         FT_UINT32, BASE_DEC, VALS(inap_T_filteringTimeOut_vals), 0,
4458         "ActivateServiceFilteringarg/filteringTimeOut", HFILL }},
4459     { &hf_inap_aduration,
4460       { "aduration", "inap.aduration",
4461         FT_UINT32, BASE_DEC, NULL, 0,
4462         "ActivateServiceFilteringarg/filteringTimeOut/aduration", HFILL }},
4463     { &hf_inap_stopTime,
4464       { "stopTime", "inap.stopTime",
4465         FT_BYTES, BASE_HEX, NULL, 0,
4466         "ActivateServiceFilteringarg/filteringTimeOut/stopTime", HFILL }},
4467     { &hf_inap_filteringCriteria,
4468       { "filteringCriteria", "inap.filteringCriteria",
4469         FT_UINT32, BASE_DEC, VALS(inap_FilteringCriteria_vals), 0,
4470         "", HFILL }},
4471     { &hf_inap_startTime,
4472       { "startTime", "inap.startTime",
4473         FT_BYTES, BASE_HEX, NULL, 0,
4474         "ActivateServiceFilteringarg/startTime", HFILL }},
4475     { &hf_inap_extensions,
4476       { "extensions", "inap.extensions",
4477         FT_NONE, BASE_NONE, NULL, 0,
4478         "", HFILL }},
4479     { &hf_inap_messageType,
4480       { "messageType", "inap.messageType",
4481         FT_UINT32, BASE_DEC, VALS(inap_T_messageType_vals), 0,
4482         "MiscCallInfo/messageType", HFILL }},
4483     { &hf_inap_dpAssignment,
4484       { "dpAssignment", "inap.dpAssignment",
4485         FT_UINT32, BASE_DEC, VALS(inap_T_dpAssignment_vals), 0,
4486         "MiscCallInfo/dpAssignment", HFILL }},
4487     { &hf_inap_miscCallInfo,
4488       { "miscCallInfo", "inap.miscCallInfo",
4489         FT_NONE, BASE_NONE, NULL, 0,
4490         "", HFILL }},
4491     { &hf_inap_triggerType,
4492       { "triggerType", "inap.triggerType",
4493         FT_UINT32, BASE_DEC, VALS(inap_TriggerType_vals), 0,
4494         "", HFILL }},
4495     { &hf_inap_RouteList_item,
4496       { "Item", "inap.RouteList_item",
4497         FT_BYTES, BASE_HEX, NULL, 0,
4498         "RouteList/_item", HFILL }},
4499     { &hf_inap_bearerCap,
4500       { "bearerCap", "inap.bearerCap",
4501         FT_BYTES, BASE_HEX, NULL, 0,
4502         "BearerCapability/bearerCap", HFILL }},
4503     { &hf_inap_tmr,
4504       { "tmr", "inap.tmr",
4505         FT_BYTES, BASE_HEX, NULL, 0,
4506         "BearerCapability/tmr", HFILL }},
4507     { &hf_inap_serviceAddressInformation,
4508       { "serviceAddressInformation", "inap.serviceAddressInformation",
4509         FT_NONE, BASE_NONE, NULL, 0,
4510         "DpSpecificCommonParameters/serviceAddressInformation", HFILL }},
4511     { &hf_inap_bearerCapability,
4512       { "bearerCapability", "inap.bearerCapability",
4513         FT_UINT32, BASE_DEC, VALS(inap_BearerCapability_vals), 0,
4514         "", HFILL }},
4515     { &hf_inap_calledPartyNumber,
4516       { "calledPartyNumber", "inap.calledPartyNumber",
4517         FT_BYTES, BASE_HEX, NULL, 0,
4518         "", HFILL }},
4519     { &hf_inap_callingPartyNumber,
4520       { "callingPartyNumber", "inap.callingPartyNumber",
4521         FT_BYTES, BASE_HEX, NULL, 0,
4522         "", HFILL }},
4523     { &hf_inap_callingPartysCategory,
4524       { "callingPartysCategory", "inap.callingPartysCategory",
4525         FT_BYTES, BASE_HEX, NULL, 0,
4526         "", HFILL }},
4527     { &hf_inap_iPSSPCapabilities,
4528       { "iPSSPCapabilities", "inap.iPSSPCapabilities",
4529         FT_BYTES, BASE_HEX, NULL, 0,
4530         "", HFILL }},
4531     { &hf_inap_iPAvailable,
4532       { "iPAvailable", "inap.iPAvailable",
4533         FT_BYTES, BASE_HEX, NULL, 0,
4534         "", HFILL }},
4535     { &hf_inap_iSDNAccessRelatedInformation,
4536       { "iSDNAccessRelatedInformation", "inap.iSDNAccessRelatedInformation",
4537         FT_BYTES, BASE_HEX, NULL, 0,
4538         "", HFILL }},
4539     { &hf_inap_cGEncountered,
4540       { "cGEncountered", "inap.cGEncountered",
4541         FT_UINT32, BASE_DEC, VALS(inap_CGEncountered_vals), 0,
4542         "", HFILL }},
4543     { &hf_inap_serviceProfileIdentifier,
4544       { "serviceProfileIdentifier", "inap.serviceProfileIdentifier",
4545         FT_BYTES, BASE_HEX, NULL, 0,
4546         "", HFILL }},
4547     { &hf_inap_terminalType,
4548       { "terminalType", "inap.terminalType",
4549         FT_UINT32, BASE_DEC, VALS(inap_TerminalType_vals), 0,
4550         "", HFILL }},
4551     { &hf_inap_chargeNumber,
4552       { "chargeNumber", "inap.chargeNumber",
4553         FT_BYTES, BASE_HEX, NULL, 0,
4554         "", HFILL }},
4555     { &hf_inap_servingAreaID,
4556       { "servingAreaID", "inap.servingAreaID",
4557         FT_BYTES, BASE_HEX, NULL, 0,
4558         "DpSpecificCommonParameters/servingAreaID", HFILL }},
4559     { &hf_inap_trunkGroupID,
4560       { "trunkGroupID", "inap.trunkGroupID",
4561         FT_INT32, BASE_DEC, NULL, 0,
4562         "", HFILL }},
4563     { &hf_inap_privateFacilityID,
4564       { "privateFacilityID", "inap.privateFacilityID",
4565         FT_INT32, BASE_DEC, NULL, 0,
4566         "", HFILL }},
4567     { &hf_inap_huntGroup,
4568       { "huntGroup", "inap.huntGroup",
4569         FT_BYTES, BASE_HEX, NULL, 0,
4570         "", HFILL }},
4571     { &hf_inap_routeIndex,
4572       { "routeIndex", "inap.routeIndex",
4573         FT_BYTES, BASE_HEX, NULL, 0,
4574         "", HFILL }},
4575     { &hf_inap_dpSpecificCommonParameters,
4576       { "dpSpecificCommonParameters", "inap.dpSpecificCommonParameters",
4577         FT_NONE, BASE_NONE, NULL, 0,
4578         "", HFILL }},
4579     { &hf_inap_dialledDigits,
4580       { "dialledDigits", "inap.dialledDigits",
4581         FT_BYTES, BASE_HEX, NULL, 0,
4582         "", HFILL }},
4583     { &hf_inap_callingPartyBusinessGroupID,
4584       { "callingPartyBusinessGroupID", "inap.callingPartyBusinessGroupID",
4585         FT_BYTES, BASE_HEX, NULL, 0,
4586         "", HFILL }},
4587     { &hf_inap_callingPartySubaddress,
4588       { "callingPartySubaddress", "inap.callingPartySubaddress",
4589         FT_BYTES, BASE_HEX, NULL, 0,
4590         "", HFILL }},
4591     { &hf_inap_callingFacilityGroup,
4592       { "callingFacilityGroup", "inap.callingFacilityGroup",
4593         FT_UINT32, BASE_DEC, VALS(inap_CallingFacilityGroup_vals), 0,
4594         "", HFILL }},
4595     { &hf_inap_callingFacilityGroupMember,
4596       { "callingFacilityGroupMember", "inap.callingFacilityGroupMember",
4597         FT_INT32, BASE_DEC, NULL, 0,
4598         "", HFILL }},
4599     { &hf_inap_originalCalledPartyID,
4600       { "originalCalledPartyID", "inap.originalCalledPartyID",
4601         FT_BYTES, BASE_HEX, NULL, 0,
4602         "", HFILL }},
4603     { &hf_inap_prefix,
4604       { "prefix", "inap.prefix",
4605         FT_BYTES, BASE_HEX, NULL, 0,
4606         "", HFILL }},
4607     { &hf_inap_redirectingPartyID,
4608       { "redirectingPartyID", "inap.redirectingPartyID",
4609         FT_BYTES, BASE_HEX, NULL, 0,
4610         "", HFILL }},
4611     { &hf_inap_redirectionInformation,
4612       { "redirectionInformation", "inap.redirectionInformation",
4613         FT_BYTES, BASE_HEX, NULL, 0,
4614         "", HFILL }},
4615     { &hf_inap_routeList,
4616       { "routeList", "inap.routeList",
4617         FT_NONE, BASE_NONE, NULL, 0,
4618         "", HFILL }},
4619     { &hf_inap_travellingClassMark,
4620       { "travellingClassMark", "inap.travellingClassMark",
4621         FT_BYTES, BASE_HEX, NULL, 0,
4622         "", HFILL }},
4623     { &hf_inap_featureCode,
4624       { "featureCode", "inap.featureCode",
4625         FT_BYTES, BASE_HEX, NULL, 0,
4626         "", HFILL }},
4627     { &hf_inap_accessCode,
4628       { "accessCode", "inap.accessCode",
4629         FT_BYTES, BASE_HEX, NULL, 0,
4630         "", HFILL }},
4631     { &hf_inap_carrier,
4632       { "carrier", "inap.carrier",
4633         FT_BYTES, BASE_HEX, NULL, 0,
4634         "", HFILL }},
4635     { &hf_inap_destinationRoutingAddress,
4636       { "destinationRoutingAddress", "inap.destinationRoutingAddress",
4637         FT_NONE, BASE_NONE, NULL, 0,
4638         "", HFILL }},
4639     { &hf_inap_destinationRoutingAddress_item,
4640       { "Item", "inap.destinationRoutingAddress_item",
4641         FT_BYTES, BASE_HEX, NULL, 0,
4642         "", HFILL }},
4643     { &hf_inap_alertingPattern,
4644       { "alertingPattern", "inap.alertingPattern",
4645         FT_BYTES, BASE_HEX, NULL, 0,
4646         "", HFILL }},
4647     { &hf_inap_aChBillingChargingCharacteristics,
4648       { "aChBillingChargingCharacteristics", "inap.aChBillingChargingCharacteristics",
4649         FT_BYTES, BASE_HEX, NULL, 0,
4650         "ApplyChargingarg/aChBillingChargingCharacteristics", HFILL }},
4651     { &hf_inap_partyToCharge,
4652       { "partyToCharge", "inap.partyToCharge",
4653         FT_UINT32, BASE_DEC, VALS(inap_PartyToCharge_vals), 0,
4654         "", HFILL }},
4655     { &hf_inap_correlationID,
4656       { "correlationID", "inap.correlationID",
4657         FT_BYTES, BASE_HEX, NULL, 0,
4658         "", HFILL }},
4659     { &hf_inap_gapCriteria,
4660       { "gapCriteria", "inap.gapCriteria",
4661         FT_UINT32, BASE_DEC, VALS(inap_T_gapCriteria_vals), 0,
4662         "CallGaparg/gapCriteria", HFILL }},
4663     { &hf_inap_gapOnService,
4664       { "gapOnService", "inap.gapOnService",
4665         FT_NONE, BASE_NONE, NULL, 0,
4666         "CallGaparg/gapCriteria/gapOnService", HFILL }},
4667     { &hf_inap_dpCriteria,
4668       { "dpCriteria", "inap.dpCriteria",
4669         FT_UINT32, BASE_DEC, VALS(inap_T_dpCriteria_vals), 0,
4670         "CallGaparg/gapCriteria/gapOnService/dpCriteria", HFILL }},
4671     { &hf_inap_calledAddressAndService,
4672       { "calledAddressAndService", "inap.calledAddressAndService",
4673         FT_NONE, BASE_NONE, NULL, 0,
4674         "CallGaparg/gapCriteria/calledAddressAndService", HFILL }},
4675     { &hf_inap_callingAddressAndService,
4676       { "callingAddressAndService", "inap.callingAddressAndService",
4677         FT_NONE, BASE_NONE, NULL, 0,
4678         "CallGaparg/gapCriteria/callingAddressAndService", HFILL }},
4679     { &hf_inap_gapIndicators,
4680       { "gapIndicators", "inap.gapIndicators",
4681         FT_NONE, BASE_NONE, NULL, 0,
4682         "CallGaparg/gapIndicators", HFILL }},
4683     { &hf_inap_cgduration,
4684       { "cgduration", "inap.cgduration",
4685         FT_UINT32, BASE_DEC, NULL, 0,
4686         "CallGaparg/gapIndicators/cgduration", HFILL }},
4687     { &hf_inap_gapInterval,
4688       { "gapInterval", "inap.gapInterval",
4689         FT_UINT32, BASE_DEC, NULL, 0,
4690         "CallGaparg/gapIndicators/gapInterval", HFILL }},
4691     { &hf_inap_controlType,
4692       { "controlType", "inap.controlType",
4693         FT_UINT32, BASE_DEC, VALS(inap_T_controlType_vals), 0,
4694         "CallGaparg/controlType", HFILL }},
4695     { &hf_inap_gapTreatment,
4696       { "gapTreatment", "inap.gapTreatment",
4697         FT_UINT32, BASE_DEC, VALS(inap_T_gapTreatment_vals), 0,
4698         "CallGaparg/gapTreatment", HFILL }},
4699     { &hf_inap_both,
4700       { "both", "inap.both",
4701         FT_NONE, BASE_NONE, NULL, 0,
4702         "", HFILL }},
4703     { &hf_inap_requestedInformationList,
4704       { "requestedInformationList", "inap.requestedInformationList",
4705         FT_NONE, BASE_NONE, NULL, 0,
4706         "CallInformationReportarg/requestedInformationList", HFILL }},
4707     { &hf_inap_requestedInformationList_item,
4708       { "Item", "inap.requestedInformationList_item",
4709         FT_NONE, BASE_NONE, NULL, 0,
4710         "CallInformationReportarg/requestedInformationList/_item", HFILL }},
4711     { &hf_inap_requestedInformationType,
4712       { "requestedInformationType", "inap.requestedInformationType",
4713         FT_UINT32, BASE_DEC, VALS(inap_T_requestedInformationType_vals), 0,
4714         "CallInformationReportarg/requestedInformationList/_item/requestedInformationType", HFILL }},
4715     { &hf_inap_requestedInformationValue,
4716       { "requestedInformationValue", "inap.requestedInformationValue",
4717         FT_UINT32, BASE_DEC, VALS(inap_T_requestedInformationValue_vals), 0,
4718         "CallInformationReportarg/requestedInformationList/_item/requestedInformationValue", HFILL }},
4719     { &hf_inap_callAttemptElapsedTimeValue,
4720       { "callAttemptElapsedTimeValue", "inap.callAttemptElapsedTimeValue",
4721         FT_UINT32, BASE_DEC, NULL, 0,
4722         "CallInformationReportarg/requestedInformationList/_item/requestedInformationValue/callAttemptElapsedTimeValue", HFILL }},
4723     { &hf_inap_callStopTimeValue,
4724       { "callStopTimeValue", "inap.callStopTimeValue",
4725         FT_BYTES, BASE_HEX, NULL, 0,
4726         "CallInformationReportarg/requestedInformationList/_item/requestedInformationValue/callStopTimeValue", HFILL }},
4727     { &hf_inap_callConnectedElapsedTimeValue,
4728       { "callConnectedElapsedTimeValue", "inap.callConnectedElapsedTimeValue",
4729         FT_UINT32, BASE_DEC, NULL, 0,
4730         "CallInformationReportarg/requestedInformationList/_item/requestedInformationValue/callConnectedElapsedTimeValue", HFILL }},
4731     { &hf_inap_releaseCauseValue,
4732       { "releaseCauseValue", "inap.releaseCauseValue",
4733         FT_BYTES, BASE_HEX, NULL, 0,
4734         "CallInformationReportarg/requestedInformationList/_item/requestedInformationValue/releaseCauseValue", HFILL }},
4735     { &hf_inap_requestedInformationTypeList,
4736       { "requestedInformationTypeList", "inap.requestedInformationTypeList",
4737         FT_NONE, BASE_NONE, NULL, 0,
4738         "CallInformationRequestarg/requestedInformationTypeList", HFILL }},
4739     { &hf_inap_requestedInformationTypeList_item,
4740       { "Item", "inap.requestedInformationTypeList_item",
4741         FT_UINT32, BASE_DEC, VALS(inap_T_requestedInformationTypeList_item_vals), 0,
4742         "CallInformationRequestarg/requestedInformationTypeList/_item", HFILL }},
4743     { &hf_inap_invokeID,
4744       { "invokeID", "inap.invokeID",
4745         FT_UINT32, BASE_DEC, NULL, 0,
4746         "Cancelarg/invokeID", HFILL }},
4747     { &hf_inap_allRequests,
4748       { "allRequests", "inap.allRequests",
4749         FT_NONE, BASE_NONE, NULL, 0,
4750         "Cancelarg/allRequests", HFILL }},
4751     { &hf_inap_lineID,
4752       { "lineID", "inap.lineID",
4753         FT_BYTES, BASE_HEX, NULL, 0,
4754         "", HFILL }},
4755     { &hf_inap_facilityGroupID,
4756       { "facilityGroupID", "inap.facilityGroupID",
4757         FT_UINT32, BASE_DEC, VALS(inap_FacilityGroupID_vals), 0,
4758         "", HFILL }},
4759     { &hf_inap_facilityGroupMemberID,
4760       { "facilityGroupMemberID", "inap.facilityGroupMemberID",
4761         FT_INT32, BASE_DEC, NULL, 0,
4762         "", HFILL }},
4763     { &hf_inap_resourceID,
4764       { "resourceID", "inap.resourceID",
4765         FT_UINT32, BASE_DEC, VALS(inap_ResourceID_vals), 0,
4766         "", HFILL }},
4767     { &hf_inap_numberingPlan,
4768       { "numberingPlan", "inap.numberingPlan",
4769         FT_BYTES, BASE_HEX, NULL, 0,
4770         "CollectInformationarg/numberingPlan", HFILL }},
4771     { &hf_inap_cutAndPaste,
4772       { "cutAndPaste", "inap.cutAndPaste",
4773         FT_UINT32, BASE_DEC, NULL, 0,
4774         "Connectarg/cutAndPaste", HFILL }},
4775     { &hf_inap_forwardingCondition,
4776       { "forwardingCondition", "inap.forwardingCondition",
4777         FT_UINT32, BASE_DEC, VALS(inap_T_forwardingCondition_vals), 0,
4778         "Connectarg/forwardingCondition", HFILL }},
4779     { &hf_inap_scfID,
4780       { "scfID", "inap.scfID",
4781         FT_BYTES, BASE_HEX, NULL, 0,
4782         "", HFILL }},
4783     { &hf_inap_serviceInteractionIndicators,
4784       { "serviceInteractionIndicators", "inap.serviceInteractionIndicators",
4785         FT_BYTES, BASE_HEX, NULL, 0,
4786         "", HFILL }},
4787     { &hf_inap_resourceAddress,
4788       { "resourceAddress", "inap.resourceAddress",
4789         FT_UINT32, BASE_DEC, VALS(inap_T_resourceAddress_vals), 0,
4790         "ConnectToResource/resourceAddress", HFILL }},
4791     { &hf_inap_ipRoutingAddress,
4792       { "ipRoutingAddress", "inap.ipRoutingAddress",
4793         FT_BYTES, BASE_HEX, NULL, 0,
4794         "ConnectToResource/resourceAddress/ipRoutingAddress", HFILL }},
4795     { &hf_inap_none,
4796       { "none", "inap.none",
4797         FT_NONE, BASE_NONE, NULL, 0,
4798         "ConnectToResource/resourceAddress/none", HFILL }},
4799     { &hf_inap_assistingSSPIPRoutingAddress,
4800       { "assistingSSPIPRoutingAddress", "inap.assistingSSPIPRoutingAddress",
4801         FT_BYTES, BASE_HEX, NULL, 0,
4802         "EstablishTemporaryConnection/assistingSSPIPRoutingAddress", HFILL }},
4803     { &hf_inap_eventTypeCharging,
4804       { "eventTypeCharging", "inap.eventTypeCharging",
4805         FT_BYTES, BASE_HEX, NULL, 0,
4806         "", HFILL }},
4807     { &hf_inap_eventSpecificInformationCharging,
4808       { "eventSpecificInformationCharging", "inap.eventSpecificInformationCharging",
4809         FT_BYTES, BASE_HEX, NULL, 0,
4810         "EventNotificationChargingarg/eventSpecificInformationCharging", HFILL }},
4811     { &hf_inap_monitorMode,
4812       { "monitorMode", "inap.monitorMode",
4813         FT_UINT32, BASE_DEC, VALS(inap_MonitorMode_vals), 0,
4814         "", HFILL }},
4815     { &hf_inap_eventTypeBCSM,
4816       { "eventTypeBCSM", "inap.eventTypeBCSM",
4817         FT_UINT32, BASE_DEC, VALS(inap_EventTypeBCSM_vals), 0,
4818         "", HFILL }},
4819     { &hf_inap_bcsmEventCorrelationID,
4820       { "bcsmEventCorrelationID", "inap.bcsmEventCorrelationID",
4821         FT_BYTES, BASE_HEX, NULL, 0,
4822         "", HFILL }},
4823     { &hf_inap_eventSpecificInformationBCSM,
4824       { "eventSpecificInformationBCSM", "inap.eventSpecificInformationBCSM",
4825         FT_UINT32, BASE_DEC, VALS(inap_T_eventSpecificInformationBCSM_vals), 0,
4826         "EventReportBCSM/eventSpecificInformationBCSM", HFILL }},
4827     { &hf_inap_collectedInfoSpecificInfo,
4828       { "collectedInfoSpecificInfo", "inap.collectedInfoSpecificInfo",
4829         FT_NONE, BASE_NONE, NULL, 0,
4830         "EventReportBCSM/eventSpecificInformationBCSM/collectedInfoSpecificInfo", HFILL }},
4831     { &hf_inap_calledPartynumber,
4832       { "calledPartynumber", "inap.calledPartynumber",
4833         FT_BYTES, BASE_HEX, NULL, 0,
4834         "", HFILL }},
4835     { &hf_inap_analyzedInfoSpecificInfo,
4836       { "analyzedInfoSpecificInfo", "inap.analyzedInfoSpecificInfo",
4837         FT_NONE, BASE_NONE, NULL, 0,
4838         "EventReportBCSM/eventSpecificInformationBCSM/analyzedInfoSpecificInfo", HFILL }},
4839     { &hf_inap_routeSelectFailureSpecificInfo,
4840       { "routeSelectFailureSpecificInfo", "inap.routeSelectFailureSpecificInfo",
4841         FT_NONE, BASE_NONE, NULL, 0,
4842         "EventReportBCSM/eventSpecificInformationBCSM/routeSelectFailureSpecificInfo", HFILL }},
4843     { &hf_inap_failureCause,
4844       { "failureCause", "inap.failureCause",
4845         FT_BYTES, BASE_HEX, NULL, 0,
4846         "", HFILL }},
4847     { &hf_inap_oCalledPartyBusySpecificInfo,
4848       { "oCalledPartyBusySpecificInfo", "inap.oCalledPartyBusySpecificInfo",
4849         FT_NONE, BASE_NONE, NULL, 0,
4850         "EventReportBCSM/eventSpecificInformationBCSM/oCalledPartyBusySpecificInfo", HFILL }},
4851     { &hf_inap_busyCause,
4852       { "busyCause", "inap.busyCause",
4853         FT_BYTES, BASE_HEX, NULL, 0,
4854         "", HFILL }},
4855     { &hf_inap_oNoAnswerSpecificInfo,
4856       { "oNoAnswerSpecificInfo", "inap.oNoAnswerSpecificInfo",
4857         FT_NONE, BASE_NONE, NULL, 0,
4858         "EventReportBCSM/eventSpecificInformationBCSM/oNoAnswerSpecificInfo", HFILL }},
4859     { &hf_inap_oAnswerSpecificInfo,
4860       { "oAnswerSpecificInfo", "inap.oAnswerSpecificInfo",
4861         FT_NONE, BASE_NONE, NULL, 0,
4862         "EventReportBCSM/eventSpecificInformationBCSM/oAnswerSpecificInfo", HFILL }},
4863     { &hf_inap_oMidCallSpecificInfo,
4864       { "oMidCallSpecificInfo", "inap.oMidCallSpecificInfo",
4865         FT_NONE, BASE_NONE, NULL, 0,
4866         "EventReportBCSM/eventSpecificInformationBCSM/oMidCallSpecificInfo", HFILL }},
4867     { &hf_inap_connectTime,
4868       { "connectTime", "inap.connectTime",
4869         FT_UINT32, BASE_DEC, NULL, 0,
4870         "", HFILL }},
4871     { &hf_inap_oDisconnectSpecificInfo,
4872       { "oDisconnectSpecificInfo", "inap.oDisconnectSpecificInfo",
4873         FT_NONE, BASE_NONE, NULL, 0,
4874         "EventReportBCSM/eventSpecificInformationBCSM/oDisconnectSpecificInfo", HFILL }},
4875     { &hf_inap_tBusySpecificInfo,
4876       { "tBusySpecificInfo", "inap.tBusySpecificInfo",
4877         FT_NONE, BASE_NONE, NULL, 0,
4878         "EventReportBCSM/eventSpecificInformationBCSM/tBusySpecificInfo", HFILL }},
4879     { &hf_inap_tNoAnswerSpecificInfo,
4880       { "tNoAnswerSpecificInfo", "inap.tNoAnswerSpecificInfo",
4881         FT_NONE, BASE_NONE, NULL, 0,
4882         "EventReportBCSM/eventSpecificInformationBCSM/tNoAnswerSpecificInfo", HFILL }},
4883     { &hf_inap_tAnswerSpecificInfo,
4884       { "tAnswerSpecificInfo", "inap.tAnswerSpecificInfo",
4885         FT_NONE, BASE_NONE, NULL, 0,
4886         "EventReportBCSM/eventSpecificInformationBCSM/tAnswerSpecificInfo", HFILL }},
4887     { &hf_inap_tMidCallSpecificInfo,
4888       { "tMidCallSpecificInfo", "inap.tMidCallSpecificInfo",
4889         FT_NONE, BASE_NONE, NULL, 0,
4890         "EventReportBCSM/eventSpecificInformationBCSM/tMidCallSpecificInfo", HFILL }},
4891     { &hf_inap_tDisconnectSpecificInfo,
4892       { "tDisconnectSpecificInfo", "inap.tDisconnectSpecificInfo",
4893         FT_NONE, BASE_NONE, NULL, 0,
4894         "EventReportBCSM/eventSpecificInformationBCSM/tDisconnectSpecificInfo", HFILL }},
4895     { &hf_inap_holdcause,
4896       { "holdcause", "inap.holdcause",
4897         FT_BYTES, BASE_HEX, NULL, 0,
4898         "HoldCallInNetworkarg/holdcause", HFILL }},
4899     { &hf_inap_empty,
4900       { "empty", "inap.empty",
4901         FT_NONE, BASE_NONE, NULL, 0,
4902         "HoldCallInNetworkarg/empty", HFILL }},
4903     { &hf_inap_highLayerCompatibility,
4904       { "highLayerCompatibility", "inap.highLayerCompatibility",
4905         FT_BYTES, BASE_HEX, NULL, 0,
4906         "InitialDP/highLayerCompatibility", HFILL }},
4907     { &hf_inap_additionalCallingPartyNumber,
4908       { "additionalCallingPartyNumber", "inap.additionalCallingPartyNumber",
4909         FT_BYTES, BASE_HEX, NULL, 0,
4910         "InitialDP/additionalCallingPartyNumber", HFILL }},
4911     { &hf_inap_forwardCallIndicators,
4912       { "forwardCallIndicators", "inap.forwardCallIndicators",
4913         FT_BYTES, BASE_HEX, NULL, 0,
4914         "InitialDP/forwardCallIndicators", HFILL }},
4915     { &hf_inap_calledPartyBusinessGroupID,
4916       { "calledPartyBusinessGroupID", "inap.calledPartyBusinessGroupID",
4917         FT_BYTES, BASE_HEX, NULL, 0,
4918         "", HFILL }},
4919     { &hf_inap_calledPartySubaddress,
4920       { "calledPartySubaddress", "inap.calledPartySubaddress",
4921         FT_BYTES, BASE_HEX, NULL, 0,
4922         "", HFILL }},
4923     { &hf_inap_featureRequestIndicator,
4924       { "featureRequestIndicator", "inap.featureRequestIndicator",
4925         FT_UINT32, BASE_DEC, VALS(inap_FeatureRequestIndicator_vals), 0,
4926         "", HFILL }},
4927     { &hf_inap_disconnectFromIPForbidden,
4928       { "disconnectFromIPForbidden", "inap.disconnectFromIPForbidden",
4929         FT_BOOLEAN, 8, NULL, 0,
4930         "", HFILL }},
4931     { &hf_inap_requestAnnouncementComplete,
4932       { "requestAnnouncementComplete", "inap.requestAnnouncementComplete",
4933         FT_BOOLEAN, 8, NULL, 0,
4934         "PlayAnnouncement/requestAnnouncementComplete", HFILL }},
4935     { &hf_inap_collectedInfo,
4936       { "collectedInfo", "inap.collectedInfo",
4937         FT_UINT32, BASE_DEC, VALS(inap_T_collectedInfo_vals), 0,
4938         "PromptAndCollectUserInformationarg/collectedInfo", HFILL }},
4939     { &hf_inap_collectedDigits,
4940       { "collectedDigits", "inap.collectedDigits",
4941         FT_NONE, BASE_NONE, NULL, 0,
4942         "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits", HFILL }},
4943     { &hf_inap_minimumNbOfDigits,
4944       { "minimumNbOfDigits", "inap.minimumNbOfDigits",
4945         FT_UINT32, BASE_DEC, NULL, 0,
4946         "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/minimumNbOfDigits", HFILL }},
4947     { &hf_inap_maximumNbOfDigits,
4948       { "maximumNbOfDigits", "inap.maximumNbOfDigits",
4949         FT_UINT32, BASE_DEC, NULL, 0,
4950         "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/maximumNbOfDigits", HFILL }},
4951     { &hf_inap_endOfReplyDigit,
4952       { "endOfReplyDigit", "inap.endOfReplyDigit",
4953         FT_BYTES, BASE_HEX, NULL, 0,
4954         "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/endOfReplyDigit", HFILL }},
4955     { &hf_inap_cancelDigit,
4956       { "cancelDigit", "inap.cancelDigit",
4957         FT_BYTES, BASE_HEX, NULL, 0,
4958         "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/cancelDigit", HFILL }},
4959     { &hf_inap_startDigit,
4960       { "startDigit", "inap.startDigit",
4961         FT_BYTES, BASE_HEX, NULL, 0,
4962         "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/startDigit", HFILL }},
4963     { &hf_inap_firstDigitTimeOut,
4964       { "firstDigitTimeOut", "inap.firstDigitTimeOut",
4965         FT_UINT32, BASE_DEC, NULL, 0,
4966         "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/firstDigitTimeOut", HFILL }},
4967     { &hf_inap_interDigitTimeOut,
4968       { "interDigitTimeOut", "inap.interDigitTimeOut",
4969         FT_UINT32, BASE_DEC, NULL, 0,
4970         "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/interDigitTimeOut", HFILL }},
4971     { &hf_inap_errorTreatment,
4972       { "errorTreatment", "inap.errorTreatment",
4973         FT_UINT32, BASE_DEC, VALS(inap_T_errorTreatment_vals), 0,
4974         "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/errorTreatment", HFILL }},
4975     { &hf_inap_interruptableAnnInd,
4976       { "interruptableAnnInd", "inap.interruptableAnnInd",
4977         FT_BOOLEAN, 8, NULL, 0,
4978         "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/interruptableAnnInd", HFILL }},
4979     { &hf_inap_voiceInformation,
4980       { "voiceInformation", "inap.voiceInformation",
4981         FT_BOOLEAN, 8, NULL, 0,
4982         "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/voiceInformation", HFILL }},
4983     { &hf_inap_voiceBack,
4984       { "voiceBack", "inap.voiceBack",
4985         FT_BOOLEAN, 8, NULL, 0,
4986         "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/voiceBack", HFILL }},
4987     { &hf_inap_iA5Information,
4988       { "iA5Information", "inap.iA5Information",
4989         FT_BOOLEAN, 8, NULL, 0,
4990         "PromptAndCollectUserInformationarg/collectedInfo/iA5Information", HFILL }},
4991     { &hf_inap_digitsResponse,
4992       { "digitsResponse", "inap.digitsResponse",
4993         FT_BYTES, BASE_HEX, NULL, 0,
4994         "PromptAndCollectUserInformationres/digitsResponse", HFILL }},
4995     { &hf_inap_iA5Response,
4996       { "iA5Response", "inap.iA5Response",
4997         FT_STRING, BASE_NONE, NULL, 0,
4998         "PromptAndCollectUserInformationres/iA5Response", HFILL }},
4999     { &hf_inap_resourceStatus,
5000       { "resourceStatus", "inap.resourceStatus",
5001         FT_UINT32, BASE_DEC, VALS(inap_ResourceStatus_vals), 0,
5002         "", HFILL }},
5003     { &hf_inap_monitorDuration,
5004       { "monitorDuration", "inap.monitorDuration",
5005         FT_UINT32, BASE_DEC, NULL, 0,
5006         "", HFILL }},
5007     { &hf_inap_RequestNotificationChargingEvent_item,
5008       { "Item", "inap.RequestNotificationChargingEvent_item",
5009         FT_NONE, BASE_NONE, NULL, 0,
5010         "RequestNotificationChargingEvent/_item", HFILL }},
5011     { &hf_inap_bcsmEvents,
5012       { "bcsmEvents", "inap.bcsmEvents",
5013         FT_NONE, BASE_NONE, NULL, 0,
5014         "RequestReportBCSMEvent/bcsmEvents", HFILL }},
5015     { &hf_inap_bcsmEvents_item,
5016       { "Item", "inap.bcsmEvents_item",
5017         FT_NONE, BASE_NONE, NULL, 0,
5018         "RequestReportBCSMEvent/bcsmEvents/_item", HFILL }},
5019     { &hf_inap_dpSpecificCriteria,
5020       { "dpSpecificCriteria", "inap.dpSpecificCriteria",
5021         FT_UINT32, BASE_DEC, VALS(inap_T_dpSpecificCriteria_vals), 0,
5022         "RequestReportBCSMEvent/bcsmEvents/_item/dpSpecificCriteria", HFILL }},
5023     { &hf_inap_numberOfDigits,
5024       { "numberOfDigits", "inap.numberOfDigits",
5025         FT_UINT32, BASE_DEC, NULL, 0,
5026         "RequestReportBCSMEvent/bcsmEvents/_item/dpSpecificCriteria/numberOfDigits", HFILL }},
5027     { &hf_inap_applicationTimer,
5028       { "applicationTimer", "inap.applicationTimer",
5029         FT_UINT32, BASE_DEC, NULL, 0,
5030         "RequestReportBCSMEvent/bcsmEvents/_item/dpSpecificCriteria/applicationTimer", HFILL }},
5031     { &hf_inap_timerID,
5032       { "timerID", "inap.timerID",
5033         FT_UINT32, BASE_DEC, VALS(inap_T_timerID_vals), 0,
5034         "ResetTimer/timerID", HFILL }},
5035     { &hf_inap_timervalue,
5036       { "timervalue", "inap.timervalue",
5037         FT_UINT32, BASE_DEC, NULL, 0,
5038         "ResetTimer/timervalue", HFILL }},
5039     { &hf_inap_destinationNumberRoutingAddress,
5040       { "destinationNumberRoutingAddress", "inap.destinationNumberRoutingAddress",
5041         FT_BYTES, BASE_HEX, NULL, 0,
5042         "SelectFacility/destinationNumberRoutingAddress", HFILL }},
5043     { &hf_inap_calledFacilityGroup,
5044       { "calledFacilityGroup", "inap.calledFacilityGroup",
5045         FT_UINT32, BASE_DEC, VALS(inap_CalledFacilityGroup_vals), 0,
5046         "", HFILL }},
5047     { &hf_inap_calledFacilityGroupMember,
5048       { "calledFacilityGroupMember", "inap.calledFacilityGroupMember",
5049         FT_INT32, BASE_DEC, NULL, 0,
5050         "", HFILL }},
5051     { &hf_inap_sCIBillingChargingCharacteristics,
5052       { "sCIBillingChargingCharacteristics", "inap.sCIBillingChargingCharacteristics",
5053         FT_BYTES, BASE_HEX, NULL, 0,
5054         "SendChargingInformation/sCIBillingChargingCharacteristics", HFILL }},
5055     { &hf_inap_countersValue,
5056       { "countersValue", "inap.countersValue",
5057         FT_NONE, BASE_NONE, NULL, 0,
5058         "ServiceFilteringResponse/countersValue", HFILL }},
5059     { &hf_inap_countersValue_item,
5060       { "Item", "inap.countersValue_item",
5061         FT_NONE, BASE_NONE, NULL, 0,
5062         "ServiceFilteringResponse/countersValue/_item", HFILL }},
5063     { &hf_inap_counterID,
5064       { "counterID", "inap.counterID",
5065         FT_UINT32, BASE_DEC, NULL, 0,
5066         "ServiceFilteringResponse/countersValue/_item/counterID", HFILL }},
5067     { &hf_inap_counterValue,
5068       { "counterValue", "inap.counterValue",
5069         FT_UINT32, BASE_DEC, NULL, 0,
5070         "ServiceFilteringResponse/countersValue/_item/counterValue", HFILL }},
5071     { &hf_inap_responseCondition,
5072       { "responseCondition", "inap.responseCondition",
5073         FT_UINT32, BASE_DEC, VALS(inap_T_responseCondition_vals), 0,
5074         "ServiceFilteringResponse/responseCondition", HFILL }},
5075     { &hf_inap_reportCondition,
5076       { "reportCondition", "inap.reportCondition",
5077         FT_UINT32, BASE_DEC, VALS(inap_T_reportCondition_vals), 0,
5078         "StatusReport/reportCondition", HFILL }},
5079     { &hf_inap_problem,
5080       { "problem", "inap.problem",
5081         FT_UINT32, BASE_DEC, VALS(inap_T_problem_vals), 0,
5082         "CancelFailed/problem", HFILL }},
5083     { &hf_inap_operation,
5084       { "operation", "inap.operation",
5085         FT_UINT32, BASE_DEC, NULL, 0,
5086         "CancelFailed/operation", HFILL }},
5087
5088 /*--- End of included file: packet-inap-hfarr.c ---*/
5089
5090   };
5091
5092
5093
5094
5095
5096
5097   /* List of subtrees */
5098   static gint *ett[] = {
5099     &ett_inap,
5100     &ett_inap_InvokeId,
5101     &ett_inap_InvokePDU,
5102     &ett_inap_ReturnResultPDU,
5103     &ett_inap_ReturnResult_result,
5104     &ett_inap_INAPPDU,
5105     &ett_inapisup_parameter,
5106
5107 /*--- Included file: packet-inap-ettarr.c ---*/
5108
5109     &ett_inap_AddPartyArg,
5110     &ett_inap_AttachArg,
5111     &ett_inap_CallPartyHandlingResultsArg,
5112     &ett_inap_ChangePartiesArg,
5113     &ett_inap_DetachArg,
5114     &ett_inap_HoldCallPartyConnectionArg,
5115     &ett_inap_LegID,
5116     &ett_inap_ReconnectArg,
5117     &ett_inap_ReleaseCallPartyConnectionArg,
5118     &ett_inap_LegInformation,
5119     &ett_inap_VariableParts,
5120     &ett_inap_VariableParts_item,
5121     &ett_inap_VariableMessage,
5122     &ett_inap_Tone,
5123     &ett_inap_Text,
5124     &ett_inap_MessageID,
5125     &ett_inap_T_elementaryMessageIDs,
5126     &ett_inap_InformationToSend,
5127     &ett_inap_T_inbandInfo,
5128     &ett_inap_FilteringCriteria,
5129     &ett_inap_T_addressAndService,
5130     &ett_inap_Extensions,
5131     &ett_inap_Extensions_item,
5132     &ett_inap_ActivateServiceFilteringarg,
5133     &ett_inap_T_filteredCallTreatment,
5134     &ett_inap_T_filteringCharacteristics,
5135     &ett_inap_T_filteringTimeOut,
5136     &ett_inap_MiscCallInfo,
5137     &ett_inap_ServiceAddressInformation,
5138     &ett_inap_RouteList,
5139     &ett_inap_BearerCapability,
5140     &ett_inap_DpSpecificCommonParameters,
5141     &ett_inap_CallingFacilityGroup,
5142     &ett_inap_AnalysedInformationarg,
5143     &ett_inap_AnalyseInformationarg,
5144     &ett_inap_SEQUENCE_SIZE_1_3_OF_DestinationAddress,
5145     &ett_inap_PartyToCharge,
5146     &ett_inap_ApplyChargingarg,
5147     &ett_inap_AssistRequestInstructionsarg,
5148     &ett_inap_CallGaparg,
5149     &ett_inap_T_gapCriteria,
5150     &ett_inap_T_gapOnService,
5151     &ett_inap_T_calledAddressAndService,
5152     &ett_inap_T_callingAddressAndService,
5153     &ett_inap_T_gapIndicators,
5154     &ett_inap_T_gapTreatment,
5155     &ett_inap_Both,
5156     &ett_inap_CallInformationReportarg,
5157     &ett_inap_T_requestedInformationList,
5158     &ett_inap_T_requestedInformationList_item,
5159     &ett_inap_T_requestedInformationValue,
5160     &ett_inap_CallInformationRequestarg,
5161     &ett_inap_T_requestedInformationTypeList,
5162     &ett_inap_Cancelarg,
5163     &ett_inap_FacilityGroupID,
5164     &ett_inap_ResourceID,
5165     &ett_inap_CancelStatusReportRequestarg,
5166     &ett_inap_CollectedInformationarg,
5167     &ett_inap_CollectInformationarg,
5168     &ett_inap_Connectarg,
5169     &ett_inap_ConnectToResource,
5170     &ett_inap_T_resourceAddress,
5171     &ett_inap_EstablishTemporaryConnection,
5172     &ett_inap_EventNotificationChargingarg,
5173     &ett_inap_EventReportBCSM,
5174     &ett_inap_T_eventSpecificInformationBCSM,
5175     &ett_inap_T_collectedInfoSpecificInfo,
5176     &ett_inap_T_analyzedInfoSpecificInfo,
5177     &ett_inap_T_routeSelectFailureSpecificInfo,
5178     &ett_inap_T_oCalledPartyBusySpecificInfo,
5179     &ett_inap_T_oNoAnswerSpecificInfo,
5180     &ett_inap_T_oAnswerSpecificInfo,
5181     &ett_inap_T_oMidCallSpecificInfo,
5182     &ett_inap_T_oDisconnectSpecificInfo,
5183     &ett_inap_T_tBusySpecificInfo,
5184     &ett_inap_T_tNoAnswerSpecificInfo,
5185     &ett_inap_T_tAnswerSpecificInfo,
5186     &ett_inap_T_tMidCallSpecificInfo,
5187     &ett_inap_T_tDisconnectSpecificInfo,
5188     &ett_inap_HoldCallInNetworkarg,
5189     &ett_inap_InitialDP,
5190     &ett_inap_InitiateCallAttempt,
5191     &ett_inap_OAnswer,
5192     &ett_inap_OCalledPartyBusy,
5193     &ett_inap_ODisconnect,
5194     &ett_inap_OMidCall,
5195     &ett_inap_ONoAnswer,
5196     &ett_inap_OriginationAttemptAuthorized,
5197     &ett_inap_PlayAnnouncement,
5198     &ett_inap_PromptAndCollectUserInformationarg,
5199     &ett_inap_T_collectedInfo,
5200     &ett_inap_T_collectedDigits,
5201     &ett_inap_PromptAndCollectUserInformationres,
5202     &ett_inap_RequestCurrentStatusReportarg,
5203     &ett_inap_RequestCurrentStatusReportres,
5204     &ett_inap_RequestEveryStatusChangeReport,
5205     &ett_inap_RequestFirstStatusMatchReport,
5206     &ett_inap_RequestNotificationChargingEvent,
5207     &ett_inap_RequestNotificationChargingEvent_item,
5208     &ett_inap_RequestReportBCSMEvent,
5209     &ett_inap_T_bcsmEvents,
5210     &ett_inap_T_bcsmEvents_item,
5211     &ett_inap_T_dpSpecificCriteria,
5212     &ett_inap_ResetTimer,
5213     &ett_inap_RouteSelectFailure,
5214     &ett_inap_CalledFacilityGroup,
5215     &ett_inap_SelectFacility,
5216     &ett_inap_SelectRoute,
5217     &ett_inap_SendChargingInformation,
5218     &ett_inap_ServiceFilteringResponse,
5219     &ett_inap_T_countersValue,
5220     &ett_inap_T_countersValue_item,
5221     &ett_inap_StatusReport,
5222     &ett_inap_TAnswer,
5223     &ett_inap_TBusy,
5224     &ett_inap_TDisconnect,
5225     &ett_inap_TermAttemptAuthorized,
5226     &ett_inap_TMidCall,
5227     &ett_inap_TNoAnswer,
5228     &ett_inap_CancelFailed,
5229
5230 /*--- End of included file: packet-inap-ettarr.c ---*/
5231
5232   };
5233
5234   /* Register protocol */
5235   proto_inap = proto_register_protocol(PNAME, PSNAME, PFNAME);
5236 /*XXX  register_dissector("inap", dissect_inap, proto_inap);*/
5237   /* Register fields and subtrees */
5238   proto_register_field_array(proto_inap, hf, array_length(hf));
5239   proto_register_subtree_array(ett, array_length(ett));
5240   
5241   inap_module = prefs_register_protocol(proto_inap, proto_reg_handoff_inap);
5242   
5243   prefs_register_uint_preference(inap_module, "tcap.itu_ssn",
5244                 "Subsystem number used for INAP",
5245                 "Set Subsystem number used for INAP",
5246                 10, &global_tcap_itu_ssn);
5247
5248
5249 }
5250
5251
5252