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