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