change a whole bunch of ethereal into wireshark
[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 Wireshark 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 #line 1 "packet-inap-template.c"
9 /* packet-inap-template.c
10  * Routines for INAP
11  * Copyright 2004, Tim Endean <endeant@hotmail.com>
12  * Built from the gsm-map dissector Copyright 2004, Anders Broman <anders.broman@ericsson.com>
13  *
14  * $Id$
15  * Wireshark - Network traffic analyzer
16  * By Gerald Combs <gerald@wireshark.org>
17  * Copyright 1998 Gerald Combs
18  *
19  * This program is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU General Public License
21  * as published by the Free Software Foundation; either version 2
22  * of the License, or (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32  * References: ETSI 300 374
33  * ITU Q.1218
34  */
35
36 #ifdef HAVE_CONFIG_H
37 # include "config.h"
38 #endif
39
40 #include <glib.h>
41 #include <epan/packet.h>
42 #include <epan/prefs.h>
43 #include <epan/conversation.h>
44
45 #include <stdio.h>
46 #include <string.h>
47
48 #include "packet-ber.h"
49 #include "packet-inap.h"
50 #include "packet-q931.h"
51 #include "packet-e164.h"
52 #include "packet-isup.h"
53 #include "packet-tcap.h"
54
55 #define PNAME  "Intelligent Network Application Protocol"
56 #define PSNAME "INAP"
57 #define PFNAME "inap"
58
59 /* Initialize the protocol and registered fields */
60 int proto_inap = -1;
61 static int hf_inap_invokeCmd = -1;             /* Opcode */
62 static int hf_inap_invokeid = -1;              /* INTEGER */
63 static int hf_inap_linkedid = -1;              /* INTEGER */
64 static int hf_inap_absent = -1;                /* NULL */
65 static int hf_inap_invokeId = -1;              /* InvokeId */
66 static int hf_inap_invoke = -1;                /* InvokePDU */
67 static int hf_inap_ReturnError = -1;           /* InvokePDU */
68 static int hf_inap_returnResult = -1;          /* InvokePDU */
69 static int hf_inap_returnResult_result = -1;
70 static int hf_inap_getPassword = -1;  
71 static int hf_inap_currentPassword = -1;  
72 static int hf_inap_genproblem = -1;
73
74 /*--- Included file: packet-inap-hf.c ---*/
75 #line 1 "packet-inap-hf.c"
76 static int hf_inap_ActivateServiceFilteringArg_PDU = -1;  /* ActivateServiceFilteringArg */
77 static int hf_inap_AnalysedInformationArg_PDU = -1;  /* AnalysedInformationArg */
78 static int hf_inap_AnalyseInformationArg_PDU = -1;  /* AnalyseInformationArg */
79 static int hf_inap_ApplyChargingArg_PDU = -1;     /* ApplyChargingArg */
80 static int hf_inap_ApplyChargingReportArg_PDU = -1;  /* ApplyChargingReportArg */
81 static int hf_inap_AssistRequestInstructionsArg_PDU = -1;  /* AssistRequestInstructionsArg */
82 static int hf_inap_CallGapArg_PDU = -1;           /* CallGapArg */
83 static int hf_inap_CallInformationReportArg_PDU = -1;  /* CallInformationReportArg */
84 static int hf_inap_CallInformationRequestArg_PDU = -1;  /* CallInformationRequestArg */
85 static int hf_inap_CancelArg_PDU = -1;            /* CancelArg */
86 static int hf_inap_CollectedInformationArg_PDU = -1;  /* CollectedInformationArg */
87 static int hf_inap_CollectInformationArg_PDU = -1;  /* CollectInformationArg */
88 static int hf_inap_ConnectArg_PDU = -1;           /* ConnectArg */
89 static int hf_inap_ConnectToResourceArg_PDU = -1;  /* ConnectToResourceArg */
90 static int hf_inap_EstablishTemporaryConnectionArg_PDU = -1;  /* EstablishTemporaryConnectionArg */
91 static int hf_inap_EventNotificationChargingArg_PDU = -1;  /* EventNotificationChargingArg */
92 static int hf_inap_EventReportBCSMArg_PDU = -1;   /* EventReportBCSMArg */
93 static int hf_inap_FurnishChargingInformationArg_PDU = -1;  /* FurnishChargingInformationArg */
94 static int hf_inap_HoldCallInNetworkArg_PDU = -1;  /* HoldCallInNetworkArg */
95 static int hf_inap_InitialDP_PDU = -1;            /* InitialDP */
96 static int hf_inap_InitiateCallAttemptArg_PDU = -1;  /* InitiateCallAttemptArg */
97 static int hf_inap_MidCallArg_PDU = -1;           /* MidCallArg */
98 static int hf_inap_OAnswerArg_PDU = -1;           /* OAnswerArg */
99 static int hf_inap_OCalledPartyBusyArg_PDU = -1;  /* OCalledPartyBusyArg */
100 static int hf_inap_ODisconnectArg_PDU = -1;       /* ODisconnectArg */
101 static int hf_inap_ONoAnswer_PDU = -1;            /* ONoAnswer */
102 static int hf_inap_OriginationAttemptAuthorizedArg_PDU = -1;  /* OriginationAttemptAuthorizedArg */
103 static int hf_inap_PlayAnnouncementArg_PDU = -1;  /* PlayAnnouncementArg */
104 static int hf_inap_PromptAndCollectUserInformationArg_PDU = -1;  /* PromptAndCollectUserInformationArg */
105 static int hf_inap_ReceivedInformationArg_PDU = -1;  /* ReceivedInformationArg */
106 static int hf_inap_ReleaseCallArg_PDU = -1;       /* ReleaseCallArg */
107 static int hf_inap_RequestCurrentStatusReportArg_PDU = -1;  /* RequestCurrentStatusReportArg */
108 static int hf_inap_RequestCurrentStatusReportResultArg_PDU = -1;  /* RequestCurrentStatusReportResultArg */
109 static int hf_inap_RequestEveryStatusChangeReportArg_PDU = -1;  /* RequestEveryStatusChangeReportArg */
110 static int hf_inap_RequestFirstStatusMatchReportArg_PDU = -1;  /* RequestFirstStatusMatchReportArg */
111 static int hf_inap_RequestNotificationChargingEvent_PDU = -1;  /* RequestNotificationChargingEvent */
112 static int hf_inap_RequestReportBCSMEventArg_PDU = -1;  /* RequestReportBCSMEventArg */
113 static int hf_inap_ResetTimerArg_PDU = -1;        /* ResetTimerArg */
114 static int hf_inap_RouteSelectFailureArg_PDU = -1;  /* RouteSelectFailureArg */
115 static int hf_inap_SelectFacilityArg_PDU = -1;    /* SelectFacilityArg */
116 static int hf_inap_SelectRouteArg_PDU = -1;       /* SelectRouteArg */
117 static int hf_inap_ServiceFilteringResponseArg_PDU = -1;  /* ServiceFilteringResponseArg */
118 static int hf_inap_SpecializedResourceReportArg_PDU = -1;  /* SpecializedResourceReportArg */
119 static int hf_inap_StatusReportArg_PDU = -1;      /* StatusReportArg */
120 static int hf_inap_TAnswerArg_PDU = -1;           /* TAnswerArg */
121 static int hf_inap_TBusyArg_PDU = -1;             /* TBusyArg */
122 static int hf_inap_TDisconnectArg_PDU = -1;       /* TDisconnectArg */
123 static int hf_inap_TermAttemptAuthorizedArg_PDU = -1;  /* TermAttemptAuthorizedArg */
124 static int hf_inap_TNoAnswerArg_PDU = -1;         /* TNoAnswerArg */
125 static int hf_inap_originalCallID = -1;           /* CallID */
126 static int hf_inap_destinationCallID = -1;        /* CallID */
127 static int hf_inap_newLegID = -1;                 /* OCTET_STRING */
128 static int hf_inap_correlationidentifier = -1;    /* OCTET_STRING */
129 static int hf_inap_CallPartyHandlingResultsArg_item = -1;  /* LegInformation */
130 static int hf_inap_callID = -1;                   /* CallID */
131 static int hf_inap_targetCallID = -1;             /* CallID */
132 static int hf_inap_legToBeConnectedID = -1;       /* OCTET_STRING */
133 static int hf_inap_legToBeDetached = -1;          /* OCTET_STRING */
134 static int hf_inap_legID = -1;                    /* LegID */
135 static int hf_inap_heldLegID = -1;                /* LegID */
136 static int hf_inap_legToBeReleased = -1;          /* LegID */
137 static int hf_inap_releaseCause = -1;             /* Cause */
138 static int hf_inap_legStatus = -1;                /* LegStatus */
139 static int hf_inap_Extensions_item = -1;          /* Extensions_item */
140 static int hf_inap_type = -1;                     /* INTEGER */
141 static int hf_inap_criticality = -1;              /* T_criticality */
142 static int hf_inap_value = -1;                    /* OCTET_STRING */
143 static int hf_inap_filteredCallTreatment = -1;    /* FilteredCallTreatment */
144 static int hf_inap_filteringCharacteristics = -1;  /* FilteringCharacteristics */
145 static int hf_inap_filteringTimeOut = -1;         /* FilteringTimeOut */
146 static int hf_inap_filteringCriteria = -1;        /* FilteringCriteria */
147 static int hf_inap_startTime = -1;                /* DateAndTime */
148 static int hf_inap_extensions = -1;               /* Extensions */
149 static int hf_inap_dpSpecificCommonParameters = -1;  /* DpSpecificCommonParameters */
150 static int hf_inap_dialledDigits = -1;            /* CalledPartyNumber */
151 static int hf_inap_callingPartyBusinessGroupID = -1;  /* CallingPartyBusinessGroupID */
152 static int hf_inap_callingPartySubaddress = -1;   /* CallingPartySubaddress */
153 static int hf_inap_callingFacilityGroup = -1;     /* FacilityGroup */
154 static int hf_inap_callingFacilityGroupMember = -1;  /* FacilityGroupMember */
155 static int hf_inap_originalCalledPartyID = -1;    /* OriginalCalledPartyID */
156 static int hf_inap_prefix = -1;                   /* Digits */
157 static int hf_inap_redirectingPartyID = -1;       /* RedirectingPartyID */
158 static int hf_inap_redirectionInformation = -1;   /* RedirectionInformation */
159 static int hf_inap_routeList = -1;                /* RouteList */
160 static int hf_inap_travellingClassMark = -1;      /* TravellingClassMark */
161 static int hf_inap_featureCode = -1;              /* FeatureCode */
162 static int hf_inap_accessCode = -1;               /* AccessCode */
163 static int hf_inap_carrier = -1;                  /* Carrier */
164 static int hf_inap_destinationRoutingAddress = -1;  /* DestinationRoutingAddress */
165 static int hf_inap_alertingPattern = -1;          /* AlertingPattern */
166 static int hf_inap_iSDNAccessRelatedInformation = -1;  /* ISDNAccessRelatedInformation */
167 static int hf_inap_callingPartyNumber = -1;       /* CallingPartyNumber */
168 static int hf_inap_callingPartysCategory = -1;    /* CallingPartysCategory */
169 static int hf_inap_calledPartyNumber = -1;        /* CalledPartyNumber */
170 static int hf_inap_chargeNumber = -1;             /* ChargeNumber */
171 static int hf_inap_aChBillingChargingCharacteristics = -1;  /* AChBillingChargingCharacteristics */
172 static int hf_inap_partyToCharge = -1;            /* LegID */
173 static int hf_inap_correlationID = -1;            /* CorrelationID */
174 static int hf_inap_iPAvailable = -1;              /* IPAvailable */
175 static int hf_inap_iPSSPCapabilities = -1;        /* IPSSPCapabilities */
176 static int hf_inap_gapCriteria = -1;              /* GapCriteria */
177 static int hf_inap_gapIndicators = -1;            /* GapIndicators */
178 static int hf_inap_controlType = -1;              /* ControlType */
179 static int hf_inap_gapTreatment = -1;             /* GapTreatment */
180 static int hf_inap_requestedInformationTypeList = -1;  /* RequestedInformationTypeList */
181 static int hf_inap_invokeID = -1;                 /* InvokeID */
182 static int hf_inap_allRequests = -1;              /* NULL */
183 static int hf_inap_resourceID = -1;               /* ResourceID */
184 static int hf_inap_numberingPlan = -1;            /* NumberingPlan */
185 static int hf_inap_cutAndPaste = -1;              /* CutAndPaste */
186 static int hf_inap_forwardingCondition = -1;      /* ForwardingCondition */
187 static int hf_inap_scfID = -1;                    /* ScfID */
188 static int hf_inap_serviceInteractionIndicators = -1;  /* ServiceInteractionIndicators */
189 static int hf_inap_resourceAddress = -1;          /* T_resourceAddress */
190 static int hf_inap_ipRoutingAddress = -1;         /* IPRoutingAddress */
191 static int hf_inap_both2 = -1;                    /* T_both2 */
192 static int hf_inap_none = -1;                     /* NULL */
193 static int hf_inap_serviceAddressInformation = -1;  /* ServiceAddressInformation */
194 static int hf_inap_bearerCapability = -1;         /* BearerCapability */
195 static int hf_inap_cGEncountered = -1;            /* CGEncountered */
196 static int hf_inap_locationNumber = -1;           /* LocationNumber */
197 static int hf_inap_serviceProfileIdentifier = -1;  /* ServiceProfileIdentifier */
198 static int hf_inap_terminalType = -1;             /* TerminalType */
199 static int hf_inap_servingAreaID = -1;            /* ServingAreaID */
200 static int hf_inap_assistingSSPIPRoutingAddress = -1;  /* AssistingSSPIPRoutingAddress */
201 static int hf_inap_eventTypeCharging = -1;        /* EventTypeCharging */
202 static int hf_inap_eventSpecificInformationCharging = -1;  /* EventSpecificInformationCharging */
203 static int hf_inap_monitorMode = -1;              /* MonitorMode */
204 static int hf_inap_eventTypeBCSM = -1;            /* EventTypeBCSM */
205 static int hf_inap_bcsmEventCorrelationID = -1;   /* CorrelationID */
206 static int hf_inap_eventSpecificInformationBCSM = -1;  /* EventSpecificInformationBCSM */
207 static int hf_inap_miscCallInfo = -1;             /* MiscCallInfo */
208 static int hf_inap_holdcause = -1;                /* HoldCause */
209 static int hf_inap_empty = -1;                    /* NULL */
210 static int hf_inap_serviceKey = -1;               /* ServiceKey */
211 static int hf_inap_triggerType = -1;              /* TriggerType */
212 static int hf_inap_highLayerCompatibility = -1;   /* HighLayerCompatibility */
213 static int hf_inap_additionalCallingPartyNumber = -1;  /* AdditionalCallingPartyNumber */
214 static int hf_inap_forwardCallIndicators = -1;    /* ForwardCallIndicators */
215 static int hf_inap_calledPartyBusinessGroupID = -1;  /* CalledPartyBusinessGroupID */
216 static int hf_inap_calledPartySubaddress = -1;    /* CalledPartySubaddress */
217 static int hf_inap_featureRequestIndicator = -1;  /* FeatureRequestIndicator */
218 static int hf_inap_busyCause = -1;                /* Cause */
219 static int hf_inap_connectTime = -1;              /* Integer4 */
220 static int hf_inap_informationToSend = -1;        /* InformationToSend */
221 static int hf_inap_disconnectFromIPForbidden = -1;  /* BOOLEAN */
222 static int hf_inap_requestAnnouncementComplete = -1;  /* BOOLEAN */
223 static int hf_inap_collectedInfo = -1;            /* CollectedInfo */
224 static int hf_inap_digitsResponse = -1;           /* Digits */
225 static int hf_inap_iA5Response = -1;              /* IA5String */
226 static int hf_inap_initialCallSegment = -1;       /* Cause */
227 static int hf_inap_allCallSegments = -1;          /* T_allCallSegments */
228 static int hf_inap_resourceStatus = -1;           /* ResourceStatus */
229 static int hf_inap_monitorDuration = -1;          /* Duration */
230 static int hf_inap_RequestNotificationChargingEvent_item = -1;  /* RequestNotificationChargingEvent_item */
231 static int hf_inap_eventTypeCharging2 = -1;       /* OCTET_STRING */
232 static int hf_inap_bcsmEvents = -1;               /* SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent */
233 static int hf_inap_bcsmEvents_item = -1;          /* BCSMEvent */
234 static int hf_inap_timerID = -1;                  /* TimerID */
235 static int hf_inap_timervalue = -1;               /* TimerValue */
236 static int hf_inap_failureCause = -1;             /* Cause */
237 static int hf_inap_destinationNumberRoutingAddress = -1;  /* CalledPartyNumber */
238 static int hf_inap_calledFacilityGroup = -1;      /* FacilityGroup */
239 static int hf_inap_calledFacilityGroupMember = -1;  /* FacilityGroupMember */
240 static int hf_inap_sCIBillingChargingCharacteristics = -1;  /* SCIBillingChargingCharacteristics */
241 static int hf_inap_countersValue = -1;            /* CountersValue */
242 static int hf_inap_responseCondition = -1;        /* ResponseCondition */
243 static int hf_inap_reportCondition = -1;          /* ReportCondition */
244 static int hf_inap_dpSpecificCriteria = -1;       /* DpSpecificCriteria */
245 static int hf_inap_bearerCap = -1;                /* BearerCap */
246 static int hf_inap_tmr = -1;                      /* OCTET_STRING_SIZE_1 */
247 static int hf_inap_minimumNbOfDigits = -1;        /* INTEGER_1_127 */
248 static int hf_inap_maximumNbOfDigits = -1;        /* INTEGER_1_127 */
249 static int hf_inap_endOfReplyDigit = -1;          /* OCTET_STRING_SIZE_1_2 */
250 static int hf_inap_cancelDigit = -1;              /* OCTET_STRING_SIZE_1_2 */
251 static int hf_inap_startDigit = -1;               /* OCTET_STRING_SIZE_1_2 */
252 static int hf_inap_firstDigitTimeOut = -1;        /* INTEGER_1_127 */
253 static int hf_inap_interDigitTimeOut = -1;        /* INTEGER_1_127 */
254 static int hf_inap_errorTreatment = -1;           /* ErrorTreatment */
255 static int hf_inap_interruptableAnnInd = -1;      /* BOOLEAN */
256 static int hf_inap_voiceInformation = -1;         /* BOOLEAN */
257 static int hf_inap_voiceBack = -1;                /* BOOLEAN */
258 static int hf_inap_collectedDigits = -1;          /* CollectedDigits */
259 static int hf_inap_iA5Information = -1;           /* BOOLEAN */
260 static int hf_inap_counterID = -1;                /* CounterID */
261 static int hf_inap_counterValue = -1;             /* Integer4 */
262 static int hf_inap_CountersValue_item = -1;       /* CounterAndValue */
263 static int hf_inap_DestinationRoutingAddress_item = -1;  /* CalledPartyNumber */
264 static int hf_inap_numberOfDigits = -1;           /* NumberOfDigits */
265 static int hf_inap_applicationTimer = -1;         /* ApplicationTimer */
266 static int hf_inap_collectedInfoSpecificInfo = -1;  /* T_collectedInfoSpecificInfo */
267 static int hf_inap_calledPartynumber = -1;        /* CalledPartyNumber */
268 static int hf_inap_analyzedInfoSpecificInfo = -1;  /* T_analyzedInfoSpecificInfo */
269 static int hf_inap_routeSelectFailureSpecificInfo = -1;  /* T_routeSelectFailureSpecificInfo */
270 static int hf_inap_oCalledPartyBusySpecificInfo = -1;  /* T_oCalledPartyBusySpecificInfo */
271 static int hf_inap_oNoAnswerSpecificInfo = -1;    /* T_oNoAnswerSpecificInfo */
272 static int hf_inap_oAnswerSpecificInfo = -1;      /* T_oAnswerSpecificInfo */
273 static int hf_inap_oMidCallSpecificInfo = -1;     /* T_oMidCallSpecificInfo */
274 static int hf_inap_oDisconnectSpecificInfo = -1;  /* T_oDisconnectSpecificInfo */
275 static int hf_inap_tBusySpecificInfo = -1;        /* T_tBusySpecificInfo */
276 static int hf_inap_tNoAnswerSpecificInfo = -1;    /* T_tNoAnswerSpecificInfo */
277 static int hf_inap_tAnswerSpecificInfo = -1;      /* T_tAnswerSpecificInfo */
278 static int hf_inap_tMidCallSpecificInfo = -1;     /* T_tMidCallSpecificInfo */
279 static int hf_inap_tDisconnectSpecificInfo = -1;  /* T_tDisconnectSpecificInfo */
280 static int hf_inap_trunkGroupID = -1;             /* INTEGER */
281 static int hf_inap_privateFacilityID = -1;        /* INTEGER */
282 static int hf_inap_huntGroup = -1;                /* OCTET_STRING */
283 static int hf_inap_routeIndex = -1;               /* OCTET_STRING */
284 static int hf_inap_sFBillingChargingCharacteristics = -1;  /* SFBillingChargingCharacteristics */
285 static int hf_inap_maximumNumberOfCounters = -1;  /* MaximumNumberOfCounters */
286 static int hf_inap_interval1 = -1;                /* INTEGER_M1_32000 */
287 static int hf_inap_numberOfCalls = -1;            /* Integer4 */
288 static int hf_inap_dialledNumber = -1;            /* Digits */
289 static int hf_inap_callingLineID = -1;            /* Digits */
290 static int hf_inap_addressAndService = -1;        /* T_addressAndService */
291 static int hf_inap_calledAddressValue = -1;       /* Digits */
292 static int hf_inap_callingAddressValue = -1;      /* Digits */
293 static int hf_inap_duration = -1;                 /* Duration */
294 static int hf_inap_stopTime = -1;                 /* DateAndTime */
295 static int hf_inap_gapOnService = -1;             /* GapOnService */
296 static int hf_inap_calledAddressAndService = -1;  /* T_calledAddressAndService */
297 static int hf_inap_callingAddressAndService = -1;  /* T_callingAddressAndService */
298 static int hf_inap_dpCriteria = -1;               /* EventTypeBCSM */
299 static int hf_inap_gapInterval = -1;              /* Interval */
300 static int hf_inap_both = -1;                     /* T_both */
301 static int hf_inap_messageID = -1;                /* MessageID */
302 static int hf_inap_numberOfRepetitions = -1;      /* INTEGER_1_127 */
303 static int hf_inap_duration3 = -1;                /* INTEGER_0_32767 */
304 static int hf_inap_interval = -1;                 /* INTEGER_0_32767 */
305 static int hf_inap_inbandInfo = -1;               /* InbandInfo */
306 static int hf_inap_tone = -1;                     /* Tone */
307 static int hf_inap_displayInformation = -1;       /* DisplayInformation */
308 static int hf_inap_sendingSideID = -1;            /* LegType */
309 static int hf_inap_receivingSideID = -1;          /* LegType */
310 static int hf_inap_elementaryMessageID = -1;      /* Integer4 */
311 static int hf_inap_text = -1;                     /* T_text */
312 static int hf_inap_messageContent = -1;           /* IA5String_SIZE_minMessageContentLength_maxMessageContentLength */
313 static int hf_inap_attributes = -1;               /* OCTET_STRING_SIZE_minAttributesLength_maxAttributesLength */
314 static int hf_inap_elementaryMessageIDs = -1;     /* SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4 */
315 static int hf_inap_elementaryMessageIDs_item = -1;  /* Integer4 */
316 static int hf_inap_variableMessage = -1;          /* T_variableMessage */
317 static int hf_inap_variableParts = -1;            /* SEQUENCE_SIZE_1_5_OF_VariablePart */
318 static int hf_inap_variableParts_item = -1;       /* VariablePart */
319 static int hf_inap_messageType = -1;              /* T_messageType */
320 static int hf_inap_dpAssignment = -1;             /* T_dpAssignment */
321 static int hf_inap_RequestedInformationList_item = -1;  /* RequestedInformation */
322 static int hf_inap_RequestedInformationTypeList_item = -1;  /* RequestedInformationType */
323 static int hf_inap_requestedInformationType = -1;  /* RequestedInformationType */
324 static int hf_inap_requestedInformationValue = -1;  /* RequestedInformationValue */
325 static int hf_inap_callAttemptElapsedTimeValue = -1;  /* INTEGER_0_255 */
326 static int hf_inap_callStopTimeValue = -1;        /* DateAndTime */
327 static int hf_inap_callConnectedElapsedTimeValue = -1;  /* Integer4 */
328 static int hf_inap_releaseCauseValue = -1;        /* Cause */
329 static int hf_inap_lineID = -1;                   /* Digits */
330 static int hf_inap_facilityGroupID = -1;          /* FacilityGroup */
331 static int hf_inap_facilityGroupMemberID = -1;    /* INTEGER */
332 static int hf_inap_RouteList_item = -1;           /* OCTET_STRING */
333 static int hf_inap_toneID = -1;                   /* Integer4 */
334 static int hf_inap_tone_duration = -1;            /* Integer4 */
335 static int hf_inap_integer = -1;                  /* Integer4 */
336 static int hf_inap_number = -1;                   /* Digits */
337 static int hf_inap_time = -1;                     /* OCTET_STRING_SIZE_2 */
338 static int hf_inap_date2 = -1;                    /* OCTET_STRING_SIZE_3 */
339 static int hf_inap_price = -1;                    /* OCTET_STRING_SIZE_4 */
340 static int hf_inap_problem = -1;                  /* T_problem */
341 static int hf_inap_operation = -1;                /* INTEGER_M128_127 */
342 static int hf_inap_rinvokeID = -1;                /* T_rinvokeID */
343 static int hf_inap_invidtype = -1;                /* InvokeIDType */
344 static int hf_inap_null = -1;                     /* NULL */
345 static int hf_inap_rproblem = -1;                 /* T_rproblem */
346 static int hf_inap_gp = -1;                       /* GeneralProblem */
347 static int hf_inap_ip = -1;                       /* InvokeProblem */
348 static int hf_inap_rrp = -1;                      /* ReturnResultProblem */
349 static int hf_inap_rep = -1;                      /* ReturnErrorProblem */
350
351 /*--- End of included file: packet-inap-hf.c ---*/
352 #line 66 "packet-inap-template.c"
353
354 #define MAX_SSN 254
355 static range_t *global_ssn_range;
356 static range_t *ssn_range;
357
358 dissector_handle_t      inap_handle;
359
360 /* Initialize the subtree pointers */
361 static gint ett_inap = -1;
362 static gint ett_inap_InvokeId = -1;
363 static gint ett_inap_InvokePDU = -1;
364 static gint ett_inap_ReturnErrorPDU = -1;
365 static gint ett_inap_ReturnResultPDU = -1;
366 static gint ett_inap_ReturnResult_result = -1;
367 static gint ett_inap_INAPPDU = -1;
368 static gint ett_inapisup_parameter = -1;
369
370 /*--- Included file: packet-inap-ett.c ---*/
371 #line 1 "packet-inap-ett.c"
372 static gint ett_inap_AddPartyArg = -1;
373 static gint ett_inap_AttachArg = -1;
374 static gint ett_inap_CallPartyHandlingResultsArg = -1;
375 static gint ett_inap_ChangePartiesArg = -1;
376 static gint ett_inap_DetachArg = -1;
377 static gint ett_inap_HoldCallPartyConnectionArg = -1;
378 static gint ett_inap_ReconnectArg = -1;
379 static gint ett_inap_ReleaseCallPartyConnectionArg = -1;
380 static gint ett_inap_LegInformation = -1;
381 static gint ett_inap_Extensions = -1;
382 static gint ett_inap_Extensions_item = -1;
383 static gint ett_inap_ActivateServiceFilteringArg = -1;
384 static gint ett_inap_AnalysedInformationArg = -1;
385 static gint ett_inap_AnalyseInformationArg = -1;
386 static gint ett_inap_ApplyChargingArg = -1;
387 static gint ett_inap_AssistRequestInstructionsArg = -1;
388 static gint ett_inap_CallGapArg = -1;
389 static gint ett_inap_CallInformationReportArg = -1;
390 static gint ett_inap_CallInformationRequestArg = -1;
391 static gint ett_inap_CancelArg = -1;
392 static gint ett_inap_CancelStatusReportRequestArg = -1;
393 static gint ett_inap_CollectedInformationArg = -1;
394 static gint ett_inap_CollectInformationArg = -1;
395 static gint ett_inap_ConnectArg = -1;
396 static gint ett_inap_ConnectToResourceArg = -1;
397 static gint ett_inap_T_resourceAddress = -1;
398 static gint ett_inap_T_both2 = -1;
399 static gint ett_inap_DpSpecificCommonParameters = -1;
400 static gint ett_inap_EstablishTemporaryConnectionArg = -1;
401 static gint ett_inap_EventNotificationChargingArg = -1;
402 static gint ett_inap_EventReportBCSMArg = -1;
403 static gint ett_inap_HoldCallInNetworkArg = -1;
404 static gint ett_inap_InitialDP = -1;
405 static gint ett_inap_InitiateCallAttemptArg = -1;
406 static gint ett_inap_MidCallArg = -1;
407 static gint ett_inap_OAnswerArg = -1;
408 static gint ett_inap_OCalledPartyBusyArg = -1;
409 static gint ett_inap_ODisconnectArg = -1;
410 static gint ett_inap_ONoAnswer = -1;
411 static gint ett_inap_OriginationAttemptAuthorizedArg = -1;
412 static gint ett_inap_PlayAnnouncementArg = -1;
413 static gint ett_inap_PromptAndCollectUserInformationArg = -1;
414 static gint ett_inap_ReceivedInformationArg = -1;
415 static gint ett_inap_ReleaseCallArg = -1;
416 static gint ett_inap_T_allCallSegments = -1;
417 static gint ett_inap_RequestCurrentStatusReportResultArg = -1;
418 static gint ett_inap_RequestEveryStatusChangeReportArg = -1;
419 static gint ett_inap_RequestFirstStatusMatchReportArg = -1;
420 static gint ett_inap_RequestNotificationChargingEvent = -1;
421 static gint ett_inap_RequestNotificationChargingEvent_item = -1;
422 static gint ett_inap_RequestReportBCSMEventArg = -1;
423 static gint ett_inap_SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent = -1;
424 static gint ett_inap_ResetTimerArg = -1;
425 static gint ett_inap_RouteSelectFailureArg = -1;
426 static gint ett_inap_SelectFacilityArg = -1;
427 static gint ett_inap_SelectRouteArg = -1;
428 static gint ett_inap_SendChargingInformationArg = -1;
429 static gint ett_inap_ServiceFilteringResponseArg = -1;
430 static gint ett_inap_StatusReportArg = -1;
431 static gint ett_inap_TAnswerArg = -1;
432 static gint ett_inap_TBusyArg = -1;
433 static gint ett_inap_TDisconnectArg = -1;
434 static gint ett_inap_TermAttemptAuthorizedArg = -1;
435 static gint ett_inap_TNoAnswerArg = -1;
436 static gint ett_inap_BCSMEvent = -1;
437 static gint ett_inap_BearerCapability = -1;
438 static gint ett_inap_ChargingEvent = -1;
439 static gint ett_inap_CollectedDigits = -1;
440 static gint ett_inap_CollectedInfo = -1;
441 static gint ett_inap_CounterAndValue = -1;
442 static gint ett_inap_CountersValue = -1;
443 static gint ett_inap_DestinationRoutingAddress = -1;
444 static gint ett_inap_DpSpecificCriteria = -1;
445 static gint ett_inap_EventSpecificInformationBCSM = -1;
446 static gint ett_inap_T_collectedInfoSpecificInfo = -1;
447 static gint ett_inap_T_analyzedInfoSpecificInfo = -1;
448 static gint ett_inap_T_routeSelectFailureSpecificInfo = -1;
449 static gint ett_inap_T_oCalledPartyBusySpecificInfo = -1;
450 static gint ett_inap_T_oNoAnswerSpecificInfo = -1;
451 static gint ett_inap_T_oAnswerSpecificInfo = -1;
452 static gint ett_inap_T_oMidCallSpecificInfo = -1;
453 static gint ett_inap_T_oDisconnectSpecificInfo = -1;
454 static gint ett_inap_T_tBusySpecificInfo = -1;
455 static gint ett_inap_T_tNoAnswerSpecificInfo = -1;
456 static gint ett_inap_T_tAnswerSpecificInfo = -1;
457 static gint ett_inap_T_tMidCallSpecificInfo = -1;
458 static gint ett_inap_T_tDisconnectSpecificInfo = -1;
459 static gint ett_inap_FacilityGroup = -1;
460 static gint ett_inap_FilteredCallTreatment = -1;
461 static gint ett_inap_FilteringCharacteristics = -1;
462 static gint ett_inap_FilteringCriteria = -1;
463 static gint ett_inap_T_addressAndService = -1;
464 static gint ett_inap_FilteringTimeOut = -1;
465 static gint ett_inap_GapCriteria = -1;
466 static gint ett_inap_T_calledAddressAndService = -1;
467 static gint ett_inap_T_callingAddressAndService = -1;
468 static gint ett_inap_GapOnService = -1;
469 static gint ett_inap_GapIndicators = -1;
470 static gint ett_inap_GapTreatment = -1;
471 static gint ett_inap_T_both = -1;
472 static gint ett_inap_InbandInfo = -1;
473 static gint ett_inap_InformationToSend = -1;
474 static gint ett_inap_LegID = -1;
475 static gint ett_inap_MessageID = -1;
476 static gint ett_inap_T_text = -1;
477 static gint ett_inap_SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4 = -1;
478 static gint ett_inap_T_variableMessage = -1;
479 static gint ett_inap_SEQUENCE_SIZE_1_5_OF_VariablePart = -1;
480 static gint ett_inap_MiscCallInfo = -1;
481 static gint ett_inap_RequestedInformationList = -1;
482 static gint ett_inap_RequestedInformationTypeList = -1;
483 static gint ett_inap_RequestedInformation = -1;
484 static gint ett_inap_RequestedInformationValue = -1;
485 static gint ett_inap_ResourceID = -1;
486 static gint ett_inap_RouteList = -1;
487 static gint ett_inap_ServiceAddressInformation = -1;
488 static gint ett_inap_Tone = -1;
489 static gint ett_inap_VariablePart = -1;
490 static gint ett_inap_CancelFailed = -1;
491 static gint ett_inap_RejectPDU = -1;
492 static gint ett_inap_T_rinvokeID = -1;
493 static gint ett_inap_T_rproblem = -1;
494
495 /*--- End of included file: packet-inap-ett.c ---*/
496 #line 83 "packet-inap-template.c"
497
498 static int  dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
499
500
501 /*--- Included file: packet-inap-fn.c ---*/
502 #line 1 "packet-inap-fn.c"
503 /*--- Fields for imported types ---*/
504
505
506
507
508 static int
509 dissect_inap_CallID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
510   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
511                                   NULL);
512
513   return offset;
514 }
515 static int dissect_originalCallID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
516   return dissect_inap_CallID(TRUE, tvb, offset, pinfo, tree, hf_inap_originalCallID);
517 }
518 static int dissect_destinationCallID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
519   return dissect_inap_CallID(TRUE, tvb, offset, pinfo, tree, hf_inap_destinationCallID);
520 }
521 static int dissect_callID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
522   return dissect_inap_CallID(TRUE, tvb, offset, pinfo, tree, hf_inap_callID);
523 }
524 static int dissect_targetCallID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
525   return dissect_inap_CallID(TRUE, tvb, offset, pinfo, tree, hf_inap_targetCallID);
526 }
527
528
529 static const ber_sequence_t AddPartyArg_sequence[] = {
530   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCallID_impl },
531   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationCallID_impl },
532   { 0, 0, 0, NULL }
533 };
534
535 static int
536 dissect_inap_AddPartyArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
537   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
538                                    AddPartyArg_sequence, hf_index, ett_inap_AddPartyArg);
539
540   return offset;
541 }
542
543
544
545 static int
546 dissect_inap_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
547   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
548                                        NULL);
549
550   return offset;
551 }
552 static int dissect_newLegID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
553   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_newLegID);
554 }
555 static int dissect_correlationidentifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
556   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_correlationidentifier);
557 }
558 static int dissect_legToBeConnectedID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
559   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_legToBeConnectedID);
560 }
561 static int dissect_legToBeDetached_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
562   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_legToBeDetached);
563 }
564 static int dissect_value_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
565   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_value);
566 }
567 static int dissect_eventTypeCharging2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
568   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_eventTypeCharging2);
569 }
570 static int dissect_huntGroup_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
571   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_huntGroup);
572 }
573 static int dissect_routeIndex_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
574   return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_routeIndex);
575 }
576 static int dissect_RouteList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
577   return dissect_inap_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_inap_RouteList_item);
578 }
579
580
581 static const ber_sequence_t AttachArg_sequence[] = {
582   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_newLegID_impl },
583   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationidentifier_impl },
584   { 0, 0, 0, NULL }
585 };
586
587 static int
588 dissect_inap_AttachArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
589   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
590                                    AttachArg_sequence, hf_index, ett_inap_AttachArg);
591
592   return offset;
593 }
594
595
596
597 static int
598 dissect_inap_LegType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
599   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
600                                        NULL);
601
602   return offset;
603 }
604 static int dissect_sendingSideID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
605   return dissect_inap_LegType(TRUE, tvb, offset, pinfo, tree, hf_inap_sendingSideID);
606 }
607 static int dissect_receivingSideID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
608   return dissect_inap_LegType(TRUE, tvb, offset, pinfo, tree, hf_inap_receivingSideID);
609 }
610
611
612 static const value_string inap_LegID_vals[] = {
613   {   0, "sendingSideID" },
614   {   1, "receivingSideID" },
615   { 0, NULL }
616 };
617
618 static const ber_choice_t LegID_choice[] = {
619   {   0, BER_CLASS_CON, 0, 0, dissect_sendingSideID_impl },
620   {   1, BER_CLASS_CON, 1, 0, dissect_receivingSideID_impl },
621   { 0, 0, 0, 0, NULL }
622 };
623
624 static int
625 dissect_inap_LegID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
626   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
627                                  LegID_choice, hf_index, ett_inap_LegID,
628                                  NULL);
629
630   return offset;
631 }
632 static int dissect_legID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
633   return dissect_inap_LegID(TRUE, tvb, offset, pinfo, tree, hf_inap_legID);
634 }
635 static int dissect_heldLegID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
636   return dissect_inap_LegID(TRUE, tvb, offset, pinfo, tree, hf_inap_heldLegID);
637 }
638 static int dissect_legToBeReleased_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
639   return dissect_inap_LegID(TRUE, tvb, offset, pinfo, tree, hf_inap_legToBeReleased);
640 }
641 static int dissect_partyToCharge_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
642   return dissect_inap_LegID(TRUE, tvb, offset, pinfo, tree, hf_inap_partyToCharge);
643 }
644
645
646 static const value_string inap_LegStatus_vals[] = {
647   {   0, "connected" },
648   {   1, "unconnected" },
649   {   2, "pending" },
650   {   3, "interacting" },
651   { 0, NULL }
652 };
653
654
655 static int
656 dissect_inap_LegStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
657   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
658                                   NULL);
659
660   return offset;
661 }
662 static int dissect_legStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
663   return dissect_inap_LegStatus(TRUE, tvb, offset, pinfo, tree, hf_inap_legStatus);
664 }
665
666
667 static const ber_sequence_t LegInformation_sequence[] = {
668   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
669   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_legStatus_impl },
670   { 0, 0, 0, NULL }
671 };
672
673 static int
674 dissect_inap_LegInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
675   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
676                                    LegInformation_sequence, hf_index, ett_inap_LegInformation);
677
678   return offset;
679 }
680 static int dissect_CallPartyHandlingResultsArg_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
681   return dissect_inap_LegInformation(FALSE, tvb, offset, pinfo, tree, hf_inap_CallPartyHandlingResultsArg_item);
682 }
683
684
685 static const ber_sequence_t CallPartyHandlingResultsArg_sequence_of[1] = {
686   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CallPartyHandlingResultsArg_item },
687 };
688
689 static int
690 dissect_inap_CallPartyHandlingResultsArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
691   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
692                                       CallPartyHandlingResultsArg_sequence_of, hf_index, ett_inap_CallPartyHandlingResultsArg);
693
694   return offset;
695 }
696
697
698 static const ber_sequence_t ChangePartiesArg_sequence[] = {
699   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callID_impl },
700   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_targetCallID_impl },
701   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_legToBeConnectedID_impl },
702   { 0, 0, 0, NULL }
703 };
704
705 static int
706 dissect_inap_ChangePartiesArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
707   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
708                                    ChangePartiesArg_sequence, hf_index, ett_inap_ChangePartiesArg);
709
710   return offset;
711 }
712
713
714 static const ber_sequence_t DetachArg_sequence[] = {
715   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_legToBeDetached_impl },
716   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationidentifier_impl },
717   { 0, 0, 0, NULL }
718 };
719
720 static int
721 dissect_inap_DetachArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
722   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
723                                    DetachArg_sequence, hf_index, ett_inap_DetachArg);
724
725   return offset;
726 }
727
728
729 static const ber_sequence_t HoldCallPartyConnectionArg_sequence[] = {
730   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callID_impl },
731   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
732   { 0, 0, 0, NULL }
733 };
734
735 static int
736 dissect_inap_HoldCallPartyConnectionArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
737   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
738                                    HoldCallPartyConnectionArg_sequence, hf_index, ett_inap_HoldCallPartyConnectionArg);
739
740   return offset;
741 }
742
743
744 static const ber_sequence_t ReconnectArg_sequence[] = {
745   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callID_impl },
746   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_heldLegID_impl },
747   { 0, 0, 0, NULL }
748 };
749
750 static int
751 dissect_inap_ReconnectArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
752   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
753                                    ReconnectArg_sequence, hf_index, ett_inap_ReconnectArg);
754
755   return offset;
756 }
757
758
759
760 static int
761 dissect_inap_Cause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
762   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
763                                        NULL);
764
765   return offset;
766 }
767 static int dissect_releaseCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
768   return dissect_inap_Cause(TRUE, tvb, offset, pinfo, tree, hf_inap_releaseCause);
769 }
770 static int dissect_busyCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
771   return dissect_inap_Cause(TRUE, tvb, offset, pinfo, tree, hf_inap_busyCause);
772 }
773 static int dissect_initialCallSegment(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
774   return dissect_inap_Cause(FALSE, tvb, offset, pinfo, tree, hf_inap_initialCallSegment);
775 }
776 static int dissect_failureCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
777   return dissect_inap_Cause(TRUE, tvb, offset, pinfo, tree, hf_inap_failureCause);
778 }
779 static int dissect_releaseCauseValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
780   return dissect_inap_Cause(TRUE, tvb, offset, pinfo, tree, hf_inap_releaseCauseValue);
781 }
782
783
784 static const ber_sequence_t ReleaseCallPartyConnectionArg_sequence[] = {
785   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legToBeReleased_impl },
786   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callID_impl },
787   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
788   { 0, 0, 0, NULL }
789 };
790
791 static int
792 dissect_inap_ReleaseCallPartyConnectionArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
793   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
794                                    ReleaseCallPartyConnectionArg_sequence, hf_index, ett_inap_ReleaseCallPartyConnectionArg);
795
796   return offset;
797 }
798
799
800
801 static int
802 dissect_inap_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
803   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
804                                   NULL);
805
806   return offset;
807 }
808 static int dissect_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
809   return dissect_inap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_inap_type);
810 }
811 static int dissect_trunkGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
812   return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_trunkGroupID);
813 }
814 static int dissect_privateFacilityID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
815   return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_privateFacilityID);
816 }
817 static int dissect_facilityGroupMemberID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
818   return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_facilityGroupMemberID);
819 }
820
821
822 static const value_string inap_T_criticality_vals[] = {
823   {   0, "ignore" },
824   {   1, "abort" },
825   { 0, NULL }
826 };
827
828
829 static int
830 dissect_inap_T_criticality(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
831   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
832                                   NULL);
833
834   return offset;
835 }
836 static int dissect_criticality(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
837   return dissect_inap_T_criticality(FALSE, tvb, offset, pinfo, tree, hf_inap_criticality);
838 }
839
840
841 static const ber_sequence_t Extensions_item_sequence[] = {
842   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_type },
843   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_criticality },
844   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_value_impl },
845   { 0, 0, 0, NULL }
846 };
847
848 static int
849 dissect_inap_Extensions_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
850   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
851                                    Extensions_item_sequence, hf_index, ett_inap_Extensions_item);
852
853   return offset;
854 }
855 static int dissect_Extensions_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
856   return dissect_inap_Extensions_item(FALSE, tvb, offset, pinfo, tree, hf_inap_Extensions_item);
857 }
858
859
860 static const ber_sequence_t Extensions_sequence_of[1] = {
861   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Extensions_item },
862 };
863
864 static int
865 dissect_inap_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
866   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
867                                       Extensions_sequence_of, hf_index, ett_inap_Extensions);
868
869   return offset;
870 }
871 static int dissect_extensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
872   return dissect_inap_Extensions(TRUE, tvb, offset, pinfo, tree, hf_inap_extensions);
873 }
874
875
876
877 static int
878 dissect_inap_SFBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
879   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
880                                        NULL);
881
882   return offset;
883 }
884 static int dissect_sFBillingChargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
885   return dissect_inap_SFBillingChargingCharacteristics(TRUE, tvb, offset, pinfo, tree, hf_inap_sFBillingChargingCharacteristics);
886 }
887
888
889
890 static int
891 dissect_inap_Integer4(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
892   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
893                                   NULL);
894
895   return offset;
896 }
897 static int dissect_connectTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
898   return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_connectTime);
899 }
900 static int dissect_counterValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
901   return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_counterValue);
902 }
903 static int dissect_numberOfCalls_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
904   return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_numberOfCalls);
905 }
906 static int dissect_elementaryMessageID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
907   return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_elementaryMessageID);
908 }
909 static int dissect_elementaryMessageIDs_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
910   return dissect_inap_Integer4(FALSE, tvb, offset, pinfo, tree, hf_inap_elementaryMessageIDs_item);
911 }
912 static int dissect_callConnectedElapsedTimeValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
913   return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_callConnectedElapsedTimeValue);
914 }
915 static int dissect_toneID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
916   return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_toneID);
917 }
918 static int dissect_tone_duration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
919   return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_tone_duration);
920 }
921 static int dissect_integer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
922   return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_integer);
923 }
924
925
926
927 static int
928 dissect_inap_IA5String_SIZE_minMessageContentLength_maxMessageContentLength(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
929   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
930                                             pinfo, tree, tvb, offset, hf_index,
931                                             NULL);
932
933   return offset;
934 }
935 static int dissect_messageContent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
936   return dissect_inap_IA5String_SIZE_minMessageContentLength_maxMessageContentLength(TRUE, tvb, offset, pinfo, tree, hf_inap_messageContent);
937 }
938
939
940
941 static int
942 dissect_inap_OCTET_STRING_SIZE_minAttributesLength_maxAttributesLength(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
943   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
944                                        NULL);
945
946   return offset;
947 }
948 static int dissect_attributes_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
949   return dissect_inap_OCTET_STRING_SIZE_minAttributesLength_maxAttributesLength(TRUE, tvb, offset, pinfo, tree, hf_inap_attributes);
950 }
951
952
953 static const ber_sequence_t T_text_sequence[] = {
954   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_messageContent_impl },
955   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributes_impl },
956   { 0, 0, 0, NULL }
957 };
958
959 static int
960 dissect_inap_T_text(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
961   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
962                                    T_text_sequence, hf_index, ett_inap_T_text);
963
964   return offset;
965 }
966 static int dissect_text_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
967   return dissect_inap_T_text(TRUE, tvb, offset, pinfo, tree, hf_inap_text);
968 }
969
970
971 static const ber_sequence_t SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4_sequence_of[1] = {
972   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_elementaryMessageIDs_item },
973 };
974
975 static int
976 dissect_inap_SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
977   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
978                                       SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4_sequence_of, hf_index, ett_inap_SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4);
979
980   return offset;
981 }
982 static int dissect_elementaryMessageIDs_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
983   return dissect_inap_SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_elementaryMessageIDs);
984 }
985
986
987
988 static int
989 dissect_inap_Digits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
990   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
991                                        NULL);
992
993   return offset;
994 }
995 static int dissect_prefix_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
996   return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_prefix);
997 }
998 static int dissect_digitsResponse_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
999   return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_digitsResponse);
1000 }
1001 static int dissect_dialledNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1002   return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_dialledNumber);
1003 }
1004 static int dissect_callingLineID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1005   return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_callingLineID);
1006 }
1007 static int dissect_calledAddressValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1008   return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_calledAddressValue);
1009 }
1010 static int dissect_callingAddressValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1011   return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_callingAddressValue);
1012 }
1013 static int dissect_lineID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1014   return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_lineID);
1015 }
1016 static int dissect_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1017   return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_number);
1018 }
1019
1020
1021
1022 static int
1023 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_) {
1024   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1025                                        NULL);
1026
1027   return offset;
1028 }
1029 static int dissect_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1030   return dissect_inap_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_inap_time);
1031 }
1032
1033
1034
1035 static int
1036 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_) {
1037   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1038                                        NULL);
1039
1040   return offset;
1041 }
1042 static int dissect_date2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1043   return dissect_inap_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_inap_date2);
1044 }
1045
1046
1047
1048 static int
1049 dissect_inap_OCTET_STRING_SIZE_4(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1050   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1051                                        NULL);
1052
1053   return offset;
1054 }
1055 static int dissect_price_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1056   return dissect_inap_OCTET_STRING_SIZE_4(TRUE, tvb, offset, pinfo, tree, hf_inap_price);
1057 }
1058
1059
1060 static const value_string inap_VariablePart_vals[] = {
1061   {   0, "integer" },
1062   {   1, "number" },
1063   {   2, "time" },
1064   {   3, "date2" },
1065   {   4, "price" },
1066   { 0, NULL }
1067 };
1068
1069 static const ber_choice_t VariablePart_choice[] = {
1070   {   0, BER_CLASS_CON, 0, 0, dissect_integer_impl },
1071   {   1, BER_CLASS_CON, 1, 0, dissect_number_impl },
1072   {   2, BER_CLASS_CON, 2, 0, dissect_time_impl },
1073   {   3, BER_CLASS_CON, 3, 0, dissect_date2_impl },
1074   {   4, BER_CLASS_CON, 4, 0, dissect_price_impl },
1075   { 0, 0, 0, 0, NULL }
1076 };
1077
1078 static int
1079 dissect_inap_VariablePart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1080   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1081                                  VariablePart_choice, hf_index, ett_inap_VariablePart,
1082                                  NULL);
1083
1084   return offset;
1085 }
1086 static int dissect_variableParts_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1087   return dissect_inap_VariablePart(FALSE, tvb, offset, pinfo, tree, hf_inap_variableParts_item);
1088 }
1089
1090
1091 static const ber_sequence_t SEQUENCE_SIZE_1_5_OF_VariablePart_sequence_of[1] = {
1092   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_variableParts_item },
1093 };
1094
1095 static int
1096 dissect_inap_SEQUENCE_SIZE_1_5_OF_VariablePart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1097   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1098                                       SEQUENCE_SIZE_1_5_OF_VariablePart_sequence_of, hf_index, ett_inap_SEQUENCE_SIZE_1_5_OF_VariablePart);
1099
1100   return offset;
1101 }
1102 static int dissect_variableParts_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1103   return dissect_inap_SEQUENCE_SIZE_1_5_OF_VariablePart(TRUE, tvb, offset, pinfo, tree, hf_inap_variableParts);
1104 }
1105
1106
1107 static const ber_sequence_t T_variableMessage_sequence[] = {
1108   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_elementaryMessageID_impl },
1109   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_variableParts_impl },
1110   { 0, 0, 0, NULL }
1111 };
1112
1113 static int
1114 dissect_inap_T_variableMessage(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1115   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1116                                    T_variableMessage_sequence, hf_index, ett_inap_T_variableMessage);
1117
1118   return offset;
1119 }
1120 static int dissect_variableMessage_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1121   return dissect_inap_T_variableMessage(TRUE, tvb, offset, pinfo, tree, hf_inap_variableMessage);
1122 }
1123
1124
1125 static const value_string inap_MessageID_vals[] = {
1126   {   0, "elementaryMessageID" },
1127   {   1, "text" },
1128   {  29, "elementaryMessageIDs" },
1129   {  30, "variableMessage" },
1130   { 0, NULL }
1131 };
1132
1133 static const ber_choice_t MessageID_choice[] = {
1134   {   0, BER_CLASS_CON, 0, 0, dissect_elementaryMessageID_impl },
1135   {   1, BER_CLASS_CON, 1, 0, dissect_text_impl },
1136   {  29, BER_CLASS_CON, 29, 0, dissect_elementaryMessageIDs_impl },
1137   {  30, BER_CLASS_CON, 30, 0, dissect_variableMessage_impl },
1138   { 0, 0, 0, 0, NULL }
1139 };
1140
1141 static int
1142 dissect_inap_MessageID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1143   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1144                                  MessageID_choice, hf_index, ett_inap_MessageID,
1145                                  NULL);
1146
1147   return offset;
1148 }
1149 static int dissect_messageID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1150   return dissect_inap_MessageID(TRUE, tvb, offset, pinfo, tree, hf_inap_messageID);
1151 }
1152
1153
1154
1155 static int
1156 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_) {
1157   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1158                                   NULL);
1159
1160   return offset;
1161 }
1162 static int dissect_minimumNbOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1163   return dissect_inap_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_inap_minimumNbOfDigits);
1164 }
1165 static int dissect_maximumNbOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1166   return dissect_inap_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_inap_maximumNbOfDigits);
1167 }
1168 static int dissect_firstDigitTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1169   return dissect_inap_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_inap_firstDigitTimeOut);
1170 }
1171 static int dissect_interDigitTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1172   return dissect_inap_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_inap_interDigitTimeOut);
1173 }
1174 static int dissect_numberOfRepetitions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1175   return dissect_inap_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_inap_numberOfRepetitions);
1176 }
1177
1178
1179
1180 static int
1181 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_) {
1182   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1183                                   NULL);
1184
1185   return offset;
1186 }
1187 static int dissect_duration3_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1188   return dissect_inap_INTEGER_0_32767(TRUE, tvb, offset, pinfo, tree, hf_inap_duration3);
1189 }
1190 static int dissect_interval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1191   return dissect_inap_INTEGER_0_32767(TRUE, tvb, offset, pinfo, tree, hf_inap_interval);
1192 }
1193
1194
1195 static const ber_sequence_t InbandInfo_sequence[] = {
1196   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_messageID_impl },
1197   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfRepetitions_impl },
1198   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_duration3_impl },
1199   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_interval_impl },
1200   { 0, 0, 0, NULL }
1201 };
1202
1203 static int
1204 dissect_inap_InbandInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1205   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1206                                    InbandInfo_sequence, hf_index, ett_inap_InbandInfo);
1207
1208   return offset;
1209 }
1210 static int dissect_inbandInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1211   return dissect_inap_InbandInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_inbandInfo);
1212 }
1213
1214
1215 static const ber_sequence_t Tone_sequence[] = {
1216   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_toneID_impl },
1217   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tone_duration_impl },
1218   { 0, 0, 0, NULL }
1219 };
1220
1221 static int
1222 dissect_inap_Tone(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1223   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1224                                    Tone_sequence, hf_index, ett_inap_Tone);
1225
1226   return offset;
1227 }
1228 static int dissect_tone_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1229   return dissect_inap_Tone(TRUE, tvb, offset, pinfo, tree, hf_inap_tone);
1230 }
1231
1232
1233
1234 static int
1235 dissect_inap_DisplayInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1236   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1237                                             pinfo, tree, tvb, offset, hf_index,
1238                                             NULL);
1239
1240   return offset;
1241 }
1242 static int dissect_displayInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1243   return dissect_inap_DisplayInformation(TRUE, tvb, offset, pinfo, tree, hf_inap_displayInformation);
1244 }
1245
1246
1247 static const value_string inap_InformationToSend_vals[] = {
1248   {   0, "inbandInfo" },
1249   {   1, "tone" },
1250   {   2, "displayInformation" },
1251   { 0, NULL }
1252 };
1253
1254 static const ber_choice_t InformationToSend_choice[] = {
1255   {   0, BER_CLASS_CON, 0, 0, dissect_inbandInfo_impl },
1256   {   1, BER_CLASS_CON, 1, 0, dissect_tone_impl },
1257   {   2, BER_CLASS_CON, 2, 0, dissect_displayInformation_impl },
1258   { 0, 0, 0, 0, NULL }
1259 };
1260
1261 static int
1262 dissect_inap_InformationToSend(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1263   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1264                                  InformationToSend_choice, hf_index, ett_inap_InformationToSend,
1265                                  NULL);
1266
1267   return offset;
1268 }
1269 static int dissect_informationToSend_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1270   return dissect_inap_InformationToSend(TRUE, tvb, offset, pinfo, tree, hf_inap_informationToSend);
1271 }
1272
1273
1274
1275 static int
1276 dissect_inap_MaximumNumberOfCounters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1277   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1278                                   NULL);
1279
1280   return offset;
1281 }
1282 static int dissect_maximumNumberOfCounters_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1283   return dissect_inap_MaximumNumberOfCounters(TRUE, tvb, offset, pinfo, tree, hf_inap_maximumNumberOfCounters);
1284 }
1285
1286
1287 static const ber_sequence_t FilteredCallTreatment_sequence[] = {
1288   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sFBillingChargingCharacteristics_impl },
1289   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_informationToSend_impl },
1290   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_maximumNumberOfCounters_impl },
1291   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
1292   { 0, 0, 0, NULL }
1293 };
1294
1295 static int
1296 dissect_inap_FilteredCallTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1297   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1298                                    FilteredCallTreatment_sequence, hf_index, ett_inap_FilteredCallTreatment);
1299
1300   return offset;
1301 }
1302 static int dissect_filteredCallTreatment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1303   return dissect_inap_FilteredCallTreatment(TRUE, tvb, offset, pinfo, tree, hf_inap_filteredCallTreatment);
1304 }
1305
1306
1307
1308 static int
1309 dissect_inap_INTEGER_M1_32000(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1310   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1311                                   NULL);
1312
1313   return offset;
1314 }
1315 static int dissect_interval1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1316   return dissect_inap_INTEGER_M1_32000(TRUE, tvb, offset, pinfo, tree, hf_inap_interval1);
1317 }
1318
1319
1320 static const value_string inap_FilteringCharacteristics_vals[] = {
1321   {   0, "interval1" },
1322   {   1, "numberOfCalls" },
1323   { 0, NULL }
1324 };
1325
1326 static const ber_choice_t FilteringCharacteristics_choice[] = {
1327   {   0, BER_CLASS_CON, 0, 0, dissect_interval1_impl },
1328   {   1, BER_CLASS_CON, 1, 0, dissect_numberOfCalls_impl },
1329   { 0, 0, 0, 0, NULL }
1330 };
1331
1332 static int
1333 dissect_inap_FilteringCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1334   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1335                                  FilteringCharacteristics_choice, hf_index, ett_inap_FilteringCharacteristics,
1336                                  NULL);
1337
1338   return offset;
1339 }
1340 static int dissect_filteringCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1341   return dissect_inap_FilteringCharacteristics(TRUE, tvb, offset, pinfo, tree, hf_inap_filteringCharacteristics);
1342 }
1343
1344
1345
1346 static int
1347 dissect_inap_Duration(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1348   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1349                                   NULL);
1350
1351   return offset;
1352 }
1353 static int dissect_monitorDuration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1354   return dissect_inap_Duration(TRUE, tvb, offset, pinfo, tree, hf_inap_monitorDuration);
1355 }
1356 static int dissect_duration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1357   return dissect_inap_Duration(TRUE, tvb, offset, pinfo, tree, hf_inap_duration);
1358 }
1359
1360
1361
1362 static int
1363 dissect_inap_DateAndTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1364   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1365                                        NULL);
1366
1367   return offset;
1368 }
1369 static int dissect_startTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1370   return dissect_inap_DateAndTime(TRUE, tvb, offset, pinfo, tree, hf_inap_startTime);
1371 }
1372 static int dissect_stopTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1373   return dissect_inap_DateAndTime(TRUE, tvb, offset, pinfo, tree, hf_inap_stopTime);
1374 }
1375 static int dissect_callStopTimeValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1376   return dissect_inap_DateAndTime(TRUE, tvb, offset, pinfo, tree, hf_inap_callStopTimeValue);
1377 }
1378
1379
1380 static const value_string inap_FilteringTimeOut_vals[] = {
1381   {   0, "duration" },
1382   {   1, "stopTime" },
1383   { 0, NULL }
1384 };
1385
1386 static const ber_choice_t FilteringTimeOut_choice[] = {
1387   {   0, BER_CLASS_CON, 0, 0, dissect_duration_impl },
1388   {   1, BER_CLASS_CON, 1, 0, dissect_stopTime_impl },
1389   { 0, 0, 0, 0, NULL }
1390 };
1391
1392 static int
1393 dissect_inap_FilteringTimeOut(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1394   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1395                                  FilteringTimeOut_choice, hf_index, ett_inap_FilteringTimeOut,
1396                                  NULL);
1397
1398   return offset;
1399 }
1400 static int dissect_filteringTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1401   return dissect_inap_FilteringTimeOut(TRUE, tvb, offset, pinfo, tree, hf_inap_filteringTimeOut);
1402 }
1403
1404
1405
1406 static int
1407 dissect_inap_ServiceKey(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1408   offset = dissect_inap_Integer4(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1409
1410   return offset;
1411 }
1412 static int dissect_serviceKey_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1413   return dissect_inap_ServiceKey(TRUE, tvb, offset, pinfo, tree, hf_inap_serviceKey);
1414 }
1415
1416
1417
1418 static int
1419 dissect_inap_LocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1420   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1421                                        NULL);
1422
1423   return offset;
1424 }
1425 static int dissect_locationNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1426   return dissect_inap_LocationNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_locationNumber);
1427 }
1428
1429
1430 static const ber_sequence_t T_addressAndService_sequence[] = {
1431   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledAddressValue_impl },
1432   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
1433   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingAddressValue_impl },
1434   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl },
1435   { 0, 0, 0, NULL }
1436 };
1437
1438 static int
1439 dissect_inap_T_addressAndService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1440   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1441                                    T_addressAndService_sequence, hf_index, ett_inap_T_addressAndService);
1442
1443   return offset;
1444 }
1445 static int dissect_addressAndService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1446   return dissect_inap_T_addressAndService(TRUE, tvb, offset, pinfo, tree, hf_inap_addressAndService);
1447 }
1448
1449
1450 static const value_string inap_FilteringCriteria_vals[] = {
1451   {   0, "dialledNumber" },
1452   {   1, "callingLineID" },
1453   {   2, "serviceKey" },
1454   {  30, "addressAndService" },
1455   { 0, NULL }
1456 };
1457
1458 static const ber_choice_t FilteringCriteria_choice[] = {
1459   {   0, BER_CLASS_CON, 0, 0, dissect_dialledNumber_impl },
1460   {   1, BER_CLASS_CON, 1, 0, dissect_callingLineID_impl },
1461   {   2, BER_CLASS_CON, 2, 0, dissect_serviceKey_impl },
1462   {  30, BER_CLASS_CON, 30, 0, dissect_addressAndService_impl },
1463   { 0, 0, 0, 0, NULL }
1464 };
1465
1466 static int
1467 dissect_inap_FilteringCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1468   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1469                                  FilteringCriteria_choice, hf_index, ett_inap_FilteringCriteria,
1470                                  NULL);
1471
1472   return offset;
1473 }
1474 static int dissect_filteringCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1475   return dissect_inap_FilteringCriteria(TRUE, tvb, offset, pinfo, tree, hf_inap_filteringCriteria);
1476 }
1477
1478
1479 static const ber_sequence_t ActivateServiceFilteringArg_sequence[] = {
1480   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_filteredCallTreatment_impl },
1481   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_filteringCharacteristics_impl },
1482   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_filteringTimeOut_impl },
1483   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_filteringCriteria_impl },
1484   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_startTime_impl },
1485   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
1486   { 0, 0, 0, NULL }
1487 };
1488
1489 static int
1490 dissect_inap_ActivateServiceFilteringArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1491   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1492                                    ActivateServiceFilteringArg_sequence, hf_index, ett_inap_ActivateServiceFilteringArg);
1493
1494   return offset;
1495 }
1496
1497
1498 static const value_string inap_T_messageType_vals[] = {
1499   {   0, "request" },
1500   {   1, "notification" },
1501   { 0, NULL }
1502 };
1503
1504
1505 static int
1506 dissect_inap_T_messageType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1507   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1508                                   NULL);
1509
1510   return offset;
1511 }
1512 static int dissect_messageType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1513   return dissect_inap_T_messageType(TRUE, tvb, offset, pinfo, tree, hf_inap_messageType);
1514 }
1515
1516
1517 static const value_string inap_T_dpAssignment_vals[] = {
1518   {   0, "individualLine" },
1519   {   1, "groupBased" },
1520   {   2, "officeBased" },
1521   { 0, NULL }
1522 };
1523
1524
1525 static int
1526 dissect_inap_T_dpAssignment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1527   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1528                                   NULL);
1529
1530   return offset;
1531 }
1532 static int dissect_dpAssignment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1533   return dissect_inap_T_dpAssignment(TRUE, tvb, offset, pinfo, tree, hf_inap_dpAssignment);
1534 }
1535
1536
1537 static const ber_sequence_t MiscCallInfo_sequence[] = {
1538   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_messageType_impl },
1539   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dpAssignment_impl },
1540   { 0, 0, 0, NULL }
1541 };
1542
1543 static int
1544 dissect_inap_MiscCallInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1545   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1546                                    MiscCallInfo_sequence, hf_index, ett_inap_MiscCallInfo);
1547
1548   return offset;
1549 }
1550 static int dissect_miscCallInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1551   return dissect_inap_MiscCallInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_miscCallInfo);
1552 }
1553
1554
1555 static const value_string inap_TriggerType_vals[] = {
1556   {   0, "featureActivation" },
1557   {   1, "verticalServiceCode" },
1558   {   2, "customizedAccess" },
1559   {   3, "customizedIntercom" },
1560   {  12, "emergencyService" },
1561   {  13, "aFR" },
1562   {  14, "sharedIOTrunk" },
1563   {  17, "offHookDelay" },
1564   {  18, "channelSetupPRI" },
1565   {  25, "tNoAnswer" },
1566   {  26, "tBusy" },
1567   {  27, "oCalledPartyBusy" },
1568   {  29, "oNoAnswer" },
1569   {  30, "originationAttemptAuthorized" },
1570   {  31, "oAnswer" },
1571   {  32, "oDisconnect" },
1572   {  33, "termAttemptAuthorized" },
1573   {  34, "tAnswer" },
1574   {  35, "tDisconnect" },
1575   { 0, NULL }
1576 };
1577
1578
1579 static int
1580 dissect_inap_TriggerType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1581   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1582                                   NULL);
1583
1584   return offset;
1585 }
1586 static int dissect_triggerType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1587   return dissect_inap_TriggerType(TRUE, tvb, offset, pinfo, tree, hf_inap_triggerType);
1588 }
1589
1590
1591 static const ber_sequence_t ServiceAddressInformation_sequence[] = {
1592   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
1593   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_miscCallInfo_impl },
1594   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_triggerType_impl },
1595   { 0, 0, 0, NULL }
1596 };
1597
1598 static int
1599 dissect_inap_ServiceAddressInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1600   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1601                                    ServiceAddressInformation_sequence, hf_index, ett_inap_ServiceAddressInformation);
1602
1603   return offset;
1604 }
1605 static int dissect_serviceAddressInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1606   return dissect_inap_ServiceAddressInformation(TRUE, tvb, offset, pinfo, tree, hf_inap_serviceAddressInformation);
1607 }
1608
1609
1610
1611 static int
1612 dissect_inap_BearerCap(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1613 #line 105 "inap.cnf"
1614
1615  tvbuff_t       *parameter_tvb;
1616
1617   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1618                                        &parameter_tvb);
1619
1620
1621  if (!parameter_tvb)
1622         return offset;
1623
1624  dissect_q931_bearer_capability_ie(parameter_tvb, 0, tvb_length_remaining(parameter_tvb,0), tree);
1625
1626
1627
1628   return offset;
1629 }
1630 static int dissect_bearerCap_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1631   return dissect_inap_BearerCap(TRUE, tvb, offset, pinfo, tree, hf_inap_bearerCap);
1632 }
1633
1634
1635
1636 static int
1637 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_) {
1638   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1639                                        NULL);
1640
1641   return offset;
1642 }
1643 static int dissect_tmr_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1644   return dissect_inap_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_inap_tmr);
1645 }
1646
1647
1648 static const value_string inap_BearerCapability_vals[] = {
1649   {   0, "bearerCap" },
1650   {   1, "tmr" },
1651   { 0, NULL }
1652 };
1653
1654 static const ber_choice_t BearerCapability_choice[] = {
1655   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_bearerCap_impl },
1656   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_tmr_impl },
1657   { 0, 0, 0, 0, NULL }
1658 };
1659
1660 static int
1661 dissect_inap_BearerCapability(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1662   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1663                                  BearerCapability_choice, hf_index, ett_inap_BearerCapability,
1664                                  NULL);
1665
1666   return offset;
1667 }
1668 static int dissect_bearerCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1669   return dissect_inap_BearerCapability(TRUE, tvb, offset, pinfo, tree, hf_inap_bearerCapability);
1670 }
1671
1672
1673
1674 static int
1675 dissect_inap_CalledPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1676 #line 76 "inap.cnf"
1677   tvbuff_t *parameter_tvb;
1678
1679   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1680                                        &parameter_tvb);
1681
1682
1683  if (!parameter_tvb)
1684         return offset;
1685
1686 dissect_isup_called_party_number_parameter(parameter_tvb, tree, NULL);
1687
1688
1689
1690   return offset;
1691 }
1692 static int dissect_dialledDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1693   return dissect_inap_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_dialledDigits);
1694 }
1695 static int dissect_calledPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1696   return dissect_inap_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartyNumber);
1697 }
1698 static int dissect_destinationNumberRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1699   return dissect_inap_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_destinationNumberRoutingAddress);
1700 }
1701 static int dissect_DestinationRoutingAddress_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1702   return dissect_inap_CalledPartyNumber(FALSE, tvb, offset, pinfo, tree, hf_inap_DestinationRoutingAddress_item);
1703 }
1704 static int dissect_calledPartynumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1705   return dissect_inap_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartynumber);
1706 }
1707
1708
1709
1710 static int
1711 dissect_inap_CallingPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1712 #line 90 "inap.cnf"
1713   tvbuff_t *parameter_tvb;
1714
1715   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1716                                        &parameter_tvb);
1717
1718
1719  if (!parameter_tvb)
1720         return offset;
1721
1722         dissect_isup_calling_party_number_parameter(parameter_tvb, tree, NULL);
1723
1724
1725
1726
1727   return offset;
1728 }
1729 static int dissect_callingPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1730   return dissect_inap_CallingPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartyNumber);
1731 }
1732
1733
1734
1735 static int
1736 dissect_inap_CallingPartysCategory(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1737   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1738                                        NULL);
1739
1740   return offset;
1741 }
1742 static int dissect_callingPartysCategory_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1743   return dissect_inap_CallingPartysCategory(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartysCategory);
1744 }
1745
1746
1747
1748 static int
1749 dissect_inap_IPSSPCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1750   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1751                                        NULL);
1752
1753   return offset;
1754 }
1755 static int dissect_iPSSPCapabilities_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1756   return dissect_inap_IPSSPCapabilities(TRUE, tvb, offset, pinfo, tree, hf_inap_iPSSPCapabilities);
1757 }
1758
1759
1760
1761 static int
1762 dissect_inap_IPAvailable(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1763   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1764                                        NULL);
1765
1766   return offset;
1767 }
1768 static int dissect_iPAvailable_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1769   return dissect_inap_IPAvailable(TRUE, tvb, offset, pinfo, tree, hf_inap_iPAvailable);
1770 }
1771
1772
1773
1774 static int
1775 dissect_inap_ISDNAccessRelatedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1776   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1777                                        NULL);
1778
1779   return offset;
1780 }
1781 static int dissect_iSDNAccessRelatedInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1782   return dissect_inap_ISDNAccessRelatedInformation(TRUE, tvb, offset, pinfo, tree, hf_inap_iSDNAccessRelatedInformation);
1783 }
1784
1785
1786 static const value_string inap_CGEncountered_vals[] = {
1787   {   0, "noCGencountered" },
1788   {   1, "manualCGencountered" },
1789   {   2, "scpOverload" },
1790   { 0, NULL }
1791 };
1792
1793
1794 static int
1795 dissect_inap_CGEncountered(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1796   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1797                                   NULL);
1798
1799   return offset;
1800 }
1801 static int dissect_cGEncountered_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1802   return dissect_inap_CGEncountered(TRUE, tvb, offset, pinfo, tree, hf_inap_cGEncountered);
1803 }
1804
1805
1806
1807 static int
1808 dissect_inap_ServiceProfileIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1809   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1810                                        NULL);
1811
1812   return offset;
1813 }
1814 static int dissect_serviceProfileIdentifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1815   return dissect_inap_ServiceProfileIdentifier(TRUE, tvb, offset, pinfo, tree, hf_inap_serviceProfileIdentifier);
1816 }
1817
1818
1819 static const value_string inap_TerminalType_vals[] = {
1820   {   0, "unknown" },
1821   {   1, "dialPulse" },
1822   {   2, "dtmf" },
1823   {   3, "isdn" },
1824   {   4, "isdnNoDtmf" },
1825   {  16, "spare" },
1826   { 0, NULL }
1827 };
1828
1829
1830 static int
1831 dissect_inap_TerminalType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1832   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1833                                   NULL);
1834
1835   return offset;
1836 }
1837 static int dissect_terminalType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1838   return dissect_inap_TerminalType(TRUE, tvb, offset, pinfo, tree, hf_inap_terminalType);
1839 }
1840
1841
1842
1843 static int
1844 dissect_inap_ChargeNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1845   offset = dissect_inap_LocationNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1846
1847   return offset;
1848 }
1849 static int dissect_chargeNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1850   return dissect_inap_ChargeNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_chargeNumber);
1851 }
1852
1853
1854
1855 static int
1856 dissect_inap_ServingAreaID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1857   offset = dissect_inap_LocationNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1858
1859   return offset;
1860 }
1861 static int dissect_servingAreaID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1862   return dissect_inap_ServingAreaID(TRUE, tvb, offset, pinfo, tree, hf_inap_servingAreaID);
1863 }
1864
1865
1866 static const ber_sequence_t DpSpecificCommonParameters_sequence[] = {
1867   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_serviceAddressInformation_impl },
1868   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_bearerCapability_impl },
1869   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyNumber_impl },
1870   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl },
1871   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartysCategory_impl },
1872   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iPSSPCapabilities_impl },
1873   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iPAvailable_impl },
1874   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iSDNAccessRelatedInformation_impl },
1875   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cGEncountered_impl },
1876   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl },
1877   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceProfileIdentifier_impl },
1878   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_terminalType_impl },
1879   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
1880   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargeNumber_impl },
1881   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_servingAreaID_impl },
1882   { 0, 0, 0, NULL }
1883 };
1884
1885 static int
1886 dissect_inap_DpSpecificCommonParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1887   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1888                                    DpSpecificCommonParameters_sequence, hf_index, ett_inap_DpSpecificCommonParameters);
1889
1890   return offset;
1891 }
1892 static int dissect_dpSpecificCommonParameters_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1893   return dissect_inap_DpSpecificCommonParameters(TRUE, tvb, offset, pinfo, tree, hf_inap_dpSpecificCommonParameters);
1894 }
1895
1896
1897
1898 static int
1899 dissect_inap_CallingPartyBusinessGroupID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1900   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1901                                        NULL);
1902
1903   return offset;
1904 }
1905 static int dissect_callingPartyBusinessGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1906   return dissect_inap_CallingPartyBusinessGroupID(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartyBusinessGroupID);
1907 }
1908
1909
1910
1911 static int
1912 dissect_inap_CallingPartySubaddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1913   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1914                                        NULL);
1915
1916   return offset;
1917 }
1918 static int dissect_callingPartySubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1919   return dissect_inap_CallingPartySubaddress(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartySubaddress);
1920 }
1921
1922
1923 static const value_string inap_FacilityGroup_vals[] = {
1924   {   0, "trunkGroupID" },
1925   {   1, "privateFacilityID" },
1926   {   2, "huntGroup" },
1927   {   3, "routeIndex" },
1928   { 0, NULL }
1929 };
1930
1931 static const ber_choice_t FacilityGroup_choice[] = {
1932   {   0, BER_CLASS_CON, 0, 0, dissect_trunkGroupID_impl },
1933   {   1, BER_CLASS_CON, 1, 0, dissect_privateFacilityID_impl },
1934   {   2, BER_CLASS_CON, 2, 0, dissect_huntGroup_impl },
1935   {   3, BER_CLASS_CON, 3, 0, dissect_routeIndex_impl },
1936   { 0, 0, 0, 0, NULL }
1937 };
1938
1939 static int
1940 dissect_inap_FacilityGroup(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1941   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1942                                  FacilityGroup_choice, hf_index, ett_inap_FacilityGroup,
1943                                  NULL);
1944
1945   return offset;
1946 }
1947 static int dissect_callingFacilityGroup_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1948   return dissect_inap_FacilityGroup(TRUE, tvb, offset, pinfo, tree, hf_inap_callingFacilityGroup);
1949 }
1950 static int dissect_calledFacilityGroup_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1951   return dissect_inap_FacilityGroup(TRUE, tvb, offset, pinfo, tree, hf_inap_calledFacilityGroup);
1952 }
1953 static int dissect_facilityGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1954   return dissect_inap_FacilityGroup(TRUE, tvb, offset, pinfo, tree, hf_inap_facilityGroupID);
1955 }
1956
1957
1958
1959 static int
1960 dissect_inap_FacilityGroupMember(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1961   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1962                                   NULL);
1963
1964   return offset;
1965 }
1966 static int dissect_callingFacilityGroupMember_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1967   return dissect_inap_FacilityGroupMember(TRUE, tvb, offset, pinfo, tree, hf_inap_callingFacilityGroupMember);
1968 }
1969 static int dissect_calledFacilityGroupMember_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1970   return dissect_inap_FacilityGroupMember(TRUE, tvb, offset, pinfo, tree, hf_inap_calledFacilityGroupMember);
1971 }
1972
1973
1974
1975 static int
1976 dissect_inap_OriginalCalledPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1977 #line 135 "inap.cnf"
1978
1979  tvbuff_t       *parameter_tvb;
1980
1981   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1982                                        &parameter_tvb);
1983
1984
1985  if (!parameter_tvb)
1986         return offset;
1987  dissect_isup_original_called_number_parameter(parameter_tvb, tree, NULL);
1988
1989
1990
1991   return offset;
1992 }
1993 static int dissect_originalCalledPartyID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1994   return dissect_inap_OriginalCalledPartyID(TRUE, tvb, offset, pinfo, tree, hf_inap_originalCalledPartyID);
1995 }
1996
1997
1998
1999 static int
2000 dissect_inap_RedirectingPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2001 #line 149 "inap.cnf"
2002
2003  tvbuff_t       *parameter_tvb;
2004
2005   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2006                                        &parameter_tvb);
2007
2008
2009  if (!parameter_tvb)
2010         return offset;
2011  dissect_isup_redirecting_number_parameter(parameter_tvb, tree, NULL);
2012
2013
2014
2015
2016   return offset;
2017 }
2018 static int dissect_redirectingPartyID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2019   return dissect_inap_RedirectingPartyID(TRUE, tvb, offset, pinfo, tree, hf_inap_redirectingPartyID);
2020 }
2021
2022
2023
2024 static int
2025 dissect_inap_RedirectionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2026 #line 120 "inap.cnf"
2027
2028  tvbuff_t       *parameter_tvb;
2029
2030   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2031                                        &parameter_tvb);
2032
2033
2034  if (!parameter_tvb)
2035         return offset;
2036
2037  dissect_isup_redirection_information_parameter(parameter_tvb, tree, NULL);
2038
2039
2040
2041   return offset;
2042 }
2043 static int dissect_redirectionInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2044   return dissect_inap_RedirectionInformation(TRUE, tvb, offset, pinfo, tree, hf_inap_redirectionInformation);
2045 }
2046
2047
2048 static const ber_sequence_t RouteList_sequence_of[1] = {
2049   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_RouteList_item },
2050 };
2051
2052 static int
2053 dissect_inap_RouteList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2054   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2055                                       RouteList_sequence_of, hf_index, ett_inap_RouteList);
2056
2057   return offset;
2058 }
2059 static int dissect_routeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2060   return dissect_inap_RouteList(TRUE, tvb, offset, pinfo, tree, hf_inap_routeList);
2061 }
2062
2063
2064
2065 static int
2066 dissect_inap_TravellingClassMark(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2067   offset = dissect_inap_LocationNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2068
2069   return offset;
2070 }
2071 static int dissect_travellingClassMark_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2072   return dissect_inap_TravellingClassMark(TRUE, tvb, offset, pinfo, tree, hf_inap_travellingClassMark);
2073 }
2074
2075
2076
2077 static int
2078 dissect_inap_FeatureCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2079   offset = dissect_inap_LocationNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2080
2081   return offset;
2082 }
2083 static int dissect_featureCode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2084   return dissect_inap_FeatureCode(TRUE, tvb, offset, pinfo, tree, hf_inap_featureCode);
2085 }
2086
2087
2088
2089 static int
2090 dissect_inap_AccessCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2091   offset = dissect_inap_LocationNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2092
2093   return offset;
2094 }
2095 static int dissect_accessCode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2096   return dissect_inap_AccessCode(TRUE, tvb, offset, pinfo, tree, hf_inap_accessCode);
2097 }
2098
2099
2100
2101 static int
2102 dissect_inap_Carrier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2103   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2104                                        NULL);
2105
2106   return offset;
2107 }
2108 static int dissect_carrier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2109   return dissect_inap_Carrier(TRUE, tvb, offset, pinfo, tree, hf_inap_carrier);
2110 }
2111
2112
2113 static const ber_sequence_t AnalysedInformationArg_sequence[] = {
2114   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
2115   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl },
2116   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
2117   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
2118   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
2119   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
2120   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
2121   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_prefix_impl },
2122   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
2123   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
2124   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
2125   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
2126   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2127   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_featureCode_impl },
2128   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_accessCode_impl },
2129   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
2130   { 0, 0, 0, NULL }
2131 };
2132
2133 static int
2134 dissect_inap_AnalysedInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2135   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2136                                    AnalysedInformationArg_sequence, hf_index, ett_inap_AnalysedInformationArg);
2137
2138   return offset;
2139 }
2140
2141
2142 static const ber_sequence_t DestinationRoutingAddress_sequence_of[1] = {
2143   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_DestinationRoutingAddress_item },
2144 };
2145
2146 static int
2147 dissect_inap_DestinationRoutingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2148   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2149                                       DestinationRoutingAddress_sequence_of, hf_index, ett_inap_DestinationRoutingAddress);
2150
2151   return offset;
2152 }
2153 static int dissect_destinationRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2154   return dissect_inap_DestinationRoutingAddress(TRUE, tvb, offset, pinfo, tree, hf_inap_destinationRoutingAddress);
2155 }
2156
2157
2158
2159 static int
2160 dissect_inap_AlertingPattern(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2161   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2162                                        NULL);
2163
2164   return offset;
2165 }
2166 static int dissect_alertingPattern_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2167   return dissect_inap_AlertingPattern(TRUE, tvb, offset, pinfo, tree, hf_inap_alertingPattern);
2168 }
2169
2170
2171 static const ber_sequence_t AnalyseInformationArg_sequence[] = {
2172   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_destinationRoutingAddress_impl },
2173   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
2174   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iSDNAccessRelatedInformation_impl },
2175   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
2176   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2177   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl },
2178   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartysCategory_impl },
2179   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyNumber_impl },
2180   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargeNumber_impl },
2181   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
2182   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
2183   { 0, 0, 0, NULL }
2184 };
2185
2186 static int
2187 dissect_inap_AnalyseInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2188   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2189                                    AnalyseInformationArg_sequence, hf_index, ett_inap_AnalyseInformationArg);
2190
2191   return offset;
2192 }
2193
2194
2195
2196 static int
2197 dissect_inap_AChBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2198   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2199                                        NULL);
2200
2201   return offset;
2202 }
2203 static int dissect_aChBillingChargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2204   return dissect_inap_AChBillingChargingCharacteristics(TRUE, tvb, offset, pinfo, tree, hf_inap_aChBillingChargingCharacteristics);
2205 }
2206
2207
2208 static const ber_sequence_t ApplyChargingArg_sequence[] = {
2209   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_aChBillingChargingCharacteristics_impl },
2210   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_partyToCharge_impl },
2211   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2212   { 0, 0, 0, NULL }
2213 };
2214
2215 static int
2216 dissect_inap_ApplyChargingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2217   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2218                                    ApplyChargingArg_sequence, hf_index, ett_inap_ApplyChargingArg);
2219
2220   return offset;
2221 }
2222
2223
2224
2225 static int
2226 dissect_inap_CallResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2227   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2228                                        NULL);
2229
2230   return offset;
2231 }
2232
2233
2234
2235 static int
2236 dissect_inap_ApplyChargingReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2237   offset = dissect_inap_CallResult(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2238
2239   return offset;
2240 }
2241
2242
2243
2244 static int
2245 dissect_inap_CorrelationID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2246   offset = dissect_inap_Digits(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2247
2248   return offset;
2249 }
2250 static int dissect_correlationID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2251   return dissect_inap_CorrelationID(TRUE, tvb, offset, pinfo, tree, hf_inap_correlationID);
2252 }
2253 static int dissect_bcsmEventCorrelationID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2254   return dissect_inap_CorrelationID(TRUE, tvb, offset, pinfo, tree, hf_inap_bcsmEventCorrelationID);
2255 }
2256
2257
2258 static const ber_sequence_t AssistRequestInstructionsArg_sequence[] = {
2259   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
2260   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iPAvailable_impl },
2261   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iPSSPCapabilities_impl },
2262   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2263   { 0, 0, 0, NULL }
2264 };
2265
2266 static int
2267 dissect_inap_AssistRequestInstructionsArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2268   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2269                                    AssistRequestInstructionsArg_sequence, hf_index, ett_inap_AssistRequestInstructionsArg);
2270
2271   return offset;
2272 }
2273
2274
2275 static const value_string inap_EventTypeBCSM_vals[] = {
2276   {   1, "origAttemptAuthorized" },
2277   {   2, "collectedInfo" },
2278   {   3, "analysedInformation" },
2279   {   4, "routeSelectFailure" },
2280   {   5, "oCalledPartyBusy" },
2281   {   6, "oNoAnswer" },
2282   {   7, "oAnswer" },
2283   {   8, "oMidCall" },
2284   {   9, "oDisconnect" },
2285   {  10, "oAbandon" },
2286   {  12, "termAttemptAuthorized" },
2287   {  13, "tBusy" },
2288   {  14, "tNoAnswer" },
2289   {  15, "tAnswer" },
2290   {  16, "tMidCall" },
2291   {  17, "tDisconnect" },
2292   {  18, "tAbandon" },
2293   { 0, NULL }
2294 };
2295
2296
2297 static int
2298 dissect_inap_EventTypeBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2299   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2300                                   NULL);
2301
2302   return offset;
2303 }
2304 static int dissect_eventTypeBCSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2305   return dissect_inap_EventTypeBCSM(TRUE, tvb, offset, pinfo, tree, hf_inap_eventTypeBCSM);
2306 }
2307 static int dissect_dpCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2308   return dissect_inap_EventTypeBCSM(TRUE, tvb, offset, pinfo, tree, hf_inap_dpCriteria);
2309 }
2310
2311
2312 static const ber_sequence_t GapOnService_sequence[] = {
2313   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
2314   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dpCriteria_impl },
2315   { 0, 0, 0, NULL }
2316 };
2317
2318 static int
2319 dissect_inap_GapOnService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2320   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2321                                    GapOnService_sequence, hf_index, ett_inap_GapOnService);
2322
2323   return offset;
2324 }
2325 static int dissect_gapOnService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2326   return dissect_inap_GapOnService(TRUE, tvb, offset, pinfo, tree, hf_inap_gapOnService);
2327 }
2328
2329
2330 static const ber_sequence_t T_calledAddressAndService_sequence[] = {
2331   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledAddressValue_impl },
2332   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
2333   { 0, 0, 0, NULL }
2334 };
2335
2336 static int
2337 dissect_inap_T_calledAddressAndService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2338   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2339                                    T_calledAddressAndService_sequence, hf_index, ett_inap_T_calledAddressAndService);
2340
2341   return offset;
2342 }
2343 static int dissect_calledAddressAndService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2344   return dissect_inap_T_calledAddressAndService(TRUE, tvb, offset, pinfo, tree, hf_inap_calledAddressAndService);
2345 }
2346
2347
2348 static const ber_sequence_t T_callingAddressAndService_sequence[] = {
2349   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_callingAddressValue_impl },
2350   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
2351   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl },
2352   { 0, 0, 0, NULL }
2353 };
2354
2355 static int
2356 dissect_inap_T_callingAddressAndService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2357   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2358                                    T_callingAddressAndService_sequence, hf_index, ett_inap_T_callingAddressAndService);
2359
2360   return offset;
2361 }
2362 static int dissect_callingAddressAndService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2363   return dissect_inap_T_callingAddressAndService(TRUE, tvb, offset, pinfo, tree, hf_inap_callingAddressAndService);
2364 }
2365
2366
2367 static const value_string inap_GapCriteria_vals[] = {
2368   {   0, "calledAddressValue" },
2369   {   2, "gapOnService" },
2370   {  29, "calledAddressAndService" },
2371   {  30, "callingAddressAndService" },
2372   { 0, NULL }
2373 };
2374
2375 static const ber_choice_t GapCriteria_choice[] = {
2376   {   0, BER_CLASS_CON, 0, 0, dissect_calledAddressValue_impl },
2377   {   2, BER_CLASS_CON, 2, 0, dissect_gapOnService_impl },
2378   {  29, BER_CLASS_CON, 29, 0, dissect_calledAddressAndService_impl },
2379   {  30, BER_CLASS_CON, 30, 0, dissect_callingAddressAndService_impl },
2380   { 0, 0, 0, 0, NULL }
2381 };
2382
2383 static int
2384 dissect_inap_GapCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2385   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2386                                  GapCriteria_choice, hf_index, ett_inap_GapCriteria,
2387                                  NULL);
2388
2389   return offset;
2390 }
2391 static int dissect_gapCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2392   return dissect_inap_GapCriteria(TRUE, tvb, offset, pinfo, tree, hf_inap_gapCriteria);
2393 }
2394
2395
2396
2397 static int
2398 dissect_inap_Interval(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2399   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2400                                   NULL);
2401
2402   return offset;
2403 }
2404 static int dissect_gapInterval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2405   return dissect_inap_Interval(TRUE, tvb, offset, pinfo, tree, hf_inap_gapInterval);
2406 }
2407
2408
2409 static const ber_sequence_t GapIndicators_sequence[] = {
2410   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_duration_impl },
2411   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gapInterval_impl },
2412   { 0, 0, 0, NULL }
2413 };
2414
2415 static int
2416 dissect_inap_GapIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2417   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2418                                    GapIndicators_sequence, hf_index, ett_inap_GapIndicators);
2419
2420   return offset;
2421 }
2422 static int dissect_gapIndicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2423   return dissect_inap_GapIndicators(TRUE, tvb, offset, pinfo, tree, hf_inap_gapIndicators);
2424 }
2425
2426
2427 static const value_string inap_ControlType_vals[] = {
2428   {   0, "sCPOverloaded" },
2429   {   1, "manuallyInitiated" },
2430   {   2, "destinationOverload" },
2431   { 0, NULL }
2432 };
2433
2434
2435 static int
2436 dissect_inap_ControlType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2437   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2438                                   NULL);
2439
2440   return offset;
2441 }
2442 static int dissect_controlType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2443   return dissect_inap_ControlType(TRUE, tvb, offset, pinfo, tree, hf_inap_controlType);
2444 }
2445
2446
2447 static const ber_sequence_t T_both_sequence[] = {
2448   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_informationToSend_impl },
2449   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
2450   { 0, 0, 0, NULL }
2451 };
2452
2453 static int
2454 dissect_inap_T_both(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2455   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2456                                    T_both_sequence, hf_index, ett_inap_T_both);
2457
2458   return offset;
2459 }
2460 static int dissect_both_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2461   return dissect_inap_T_both(TRUE, tvb, offset, pinfo, tree, hf_inap_both);
2462 }
2463
2464
2465 static const value_string inap_GapTreatment_vals[] = {
2466   {   0, "informationToSend" },
2467   {   1, "releaseCause" },
2468   {   2, "both" },
2469   { 0, NULL }
2470 };
2471
2472 static const ber_choice_t GapTreatment_choice[] = {
2473   {   0, BER_CLASS_CON, 0, 0, dissect_informationToSend_impl },
2474   {   1, BER_CLASS_CON, 1, 0, dissect_releaseCause_impl },
2475   {   2, BER_CLASS_CON, 2, 0, dissect_both_impl },
2476   { 0, 0, 0, 0, NULL }
2477 };
2478
2479 static int
2480 dissect_inap_GapTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2481   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2482                                  GapTreatment_choice, hf_index, ett_inap_GapTreatment,
2483                                  NULL);
2484
2485   return offset;
2486 }
2487 static int dissect_gapTreatment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2488   return dissect_inap_GapTreatment(TRUE, tvb, offset, pinfo, tree, hf_inap_gapTreatment);
2489 }
2490
2491
2492 static const ber_sequence_t CallGapArg_sequence[] = {
2493   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gapCriteria_impl },
2494   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gapIndicators_impl },
2495   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_controlType_impl },
2496   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gapTreatment_impl },
2497   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2498   { 0, 0, 0, NULL }
2499 };
2500
2501 static int
2502 dissect_inap_CallGapArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2503   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2504                                    CallGapArg_sequence, hf_index, ett_inap_CallGapArg);
2505
2506   return offset;
2507 }
2508
2509
2510 static const value_string inap_RequestedInformationType_vals[] = {
2511   {   0, "callAttemptElapsedTime" },
2512   {   1, "callStopTime" },
2513   {   2, "callConnectedElapsedTime" },
2514   {   3, "calledAddress" },
2515   {  30, "releaseCause" },
2516   { 0, NULL }
2517 };
2518
2519
2520 static int
2521 dissect_inap_RequestedInformationType(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,
2523                                   NULL);
2524
2525   return offset;
2526 }
2527 static int dissect_RequestedInformationTypeList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2528   return dissect_inap_RequestedInformationType(FALSE, tvb, offset, pinfo, tree, hf_inap_RequestedInformationTypeList_item);
2529 }
2530 static int dissect_requestedInformationType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2531   return dissect_inap_RequestedInformationType(TRUE, tvb, offset, pinfo, tree, hf_inap_requestedInformationType);
2532 }
2533
2534
2535 static const ber_sequence_t RequestedInformationTypeList_sequence_of[1] = {
2536   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_RequestedInformationTypeList_item },
2537 };
2538
2539 static int
2540 dissect_inap_RequestedInformationTypeList(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_of(implicit_tag, pinfo, tree, tvb, offset,
2542                                       RequestedInformationTypeList_sequence_of, hf_index, ett_inap_RequestedInformationTypeList);
2543
2544   return offset;
2545 }
2546 static int dissect_requestedInformationTypeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2547   return dissect_inap_RequestedInformationTypeList(TRUE, tvb, offset, pinfo, tree, hf_inap_requestedInformationTypeList);
2548 }
2549
2550
2551 static const ber_sequence_t CallInformationReportArg_sequence[] = {
2552   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedInformationTypeList_impl },
2553   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
2554   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2555   { 0, 0, 0, NULL }
2556 };
2557
2558 static int
2559 dissect_inap_CallInformationReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2560   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2561                                    CallInformationReportArg_sequence, hf_index, ett_inap_CallInformationReportArg);
2562
2563   return offset;
2564 }
2565
2566
2567 static const ber_sequence_t CallInformationRequestArg_sequence[] = {
2568   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedInformationTypeList_impl },
2569   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
2570   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2571   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
2572   { 0, 0, 0, NULL }
2573 };
2574
2575 static int
2576 dissect_inap_CallInformationRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2577   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2578                                    CallInformationRequestArg_sequence, hf_index, ett_inap_CallInformationRequestArg);
2579
2580   return offset;
2581 }
2582
2583
2584
2585 static int
2586 dissect_inap_InvokeID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2587   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2588                                   NULL);
2589
2590   return offset;
2591 }
2592 static int dissect_invokeID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2593   return dissect_inap_InvokeID(TRUE, tvb, offset, pinfo, tree, hf_inap_invokeID);
2594 }
2595
2596
2597
2598 static int
2599 dissect_inap_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2600   offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
2601
2602   return offset;
2603 }
2604 static int dissect_allRequests_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2605   return dissect_inap_NULL(TRUE, tvb, offset, pinfo, tree, hf_inap_allRequests);
2606 }
2607 static int dissect_none_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2608   return dissect_inap_NULL(TRUE, tvb, offset, pinfo, tree, hf_inap_none);
2609 }
2610 static int dissect_empty_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2611   return dissect_inap_NULL(TRUE, tvb, offset, pinfo, tree, hf_inap_empty);
2612 }
2613 static int dissect_null(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2614   return dissect_inap_NULL(FALSE, tvb, offset, pinfo, tree, hf_inap_null);
2615 }
2616
2617
2618 static const value_string inap_CancelArg_vals[] = {
2619   {   0, "invokeID" },
2620   {   1, "allRequests" },
2621   { 0, NULL }
2622 };
2623
2624 static const ber_choice_t CancelArg_choice[] = {
2625   {   0, BER_CLASS_CON, 0, 0, dissect_invokeID_impl },
2626   {   1, BER_CLASS_CON, 1, 0, dissect_allRequests_impl },
2627   { 0, 0, 0, 0, NULL }
2628 };
2629
2630 static int
2631 dissect_inap_CancelArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2632   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2633                                  CancelArg_choice, hf_index, ett_inap_CancelArg,
2634                                  NULL);
2635
2636   return offset;
2637 }
2638
2639
2640 static const value_string inap_ResourceID_vals[] = {
2641   {   0, "lineID" },
2642   {   1, "facilityGroupID" },
2643   {   2, "facilityGroupMemberID" },
2644   {   3, "trunkGroupID" },
2645   { 0, NULL }
2646 };
2647
2648 static const ber_choice_t ResourceID_choice[] = {
2649   {   0, BER_CLASS_CON, 0, 0, dissect_lineID_impl },
2650   {   1, BER_CLASS_CON, 1, 0, dissect_facilityGroupID_impl },
2651   {   2, BER_CLASS_CON, 2, 0, dissect_facilityGroupMemberID_impl },
2652   {   3, BER_CLASS_CON, 3, 0, dissect_trunkGroupID_impl },
2653   { 0, 0, 0, 0, NULL }
2654 };
2655
2656 static int
2657 dissect_inap_ResourceID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2658   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2659                                  ResourceID_choice, hf_index, ett_inap_ResourceID,
2660                                  NULL);
2661
2662   return offset;
2663 }
2664 static int dissect_resourceID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2665   return dissect_inap_ResourceID(TRUE, tvb, offset, pinfo, tree, hf_inap_resourceID);
2666 }
2667
2668
2669 static const ber_sequence_t CancelStatusReportRequestArg_sequence[] = {
2670   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceID_impl },
2671   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2672   { 0, 0, 0, NULL }
2673 };
2674
2675 static int
2676 dissect_inap_CancelStatusReportRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2677   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2678                                    CancelStatusReportRequestArg_sequence, hf_index, ett_inap_CancelStatusReportRequestArg);
2679
2680   return offset;
2681 }
2682
2683
2684 static const ber_sequence_t CollectedInformationArg_sequence[] = {
2685   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
2686   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl },
2687   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
2688   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
2689   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
2690   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
2691   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
2692   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_prefix_impl },
2693   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
2694   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
2695   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
2696   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2697   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_featureCode_impl },
2698   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_accessCode_impl },
2699   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
2700   { 0, 0, 0, NULL }
2701 };
2702
2703 static int
2704 dissect_inap_CollectedInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2705   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2706                                    CollectedInformationArg_sequence, hf_index, ett_inap_CollectedInformationArg);
2707
2708   return offset;
2709 }
2710
2711
2712
2713 static int
2714 dissect_inap_NumberingPlan(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2715   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2716                                        NULL);
2717
2718   return offset;
2719 }
2720 static int dissect_numberingPlan_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2721   return dissect_inap_NumberingPlan(TRUE, tvb, offset, pinfo, tree, hf_inap_numberingPlan);
2722 }
2723
2724
2725 static const ber_sequence_t CollectInformationArg_sequence[] = {
2726   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
2727   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberingPlan_impl },
2728   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
2729   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
2730   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2731   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl },
2732   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl },
2733   { 0, 0, 0, NULL }
2734 };
2735
2736 static int
2737 dissect_inap_CollectInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2738   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2739                                    CollectInformationArg_sequence, hf_index, ett_inap_CollectInformationArg);
2740
2741   return offset;
2742 }
2743
2744
2745
2746 static int
2747 dissect_inap_CutAndPaste(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2748   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2749                                   NULL);
2750
2751   return offset;
2752 }
2753 static int dissect_cutAndPaste_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2754   return dissect_inap_CutAndPaste(TRUE, tvb, offset, pinfo, tree, hf_inap_cutAndPaste);
2755 }
2756
2757
2758 static const value_string inap_ForwardingCondition_vals[] = {
2759   {   0, "busy" },
2760   {   1, "noanswer" },
2761   {   2, "any" },
2762   { 0, NULL }
2763 };
2764
2765
2766 static int
2767 dissect_inap_ForwardingCondition(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2768   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2769                                   NULL);
2770
2771   return offset;
2772 }
2773 static int dissect_forwardingCondition_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2774   return dissect_inap_ForwardingCondition(TRUE, tvb, offset, pinfo, tree, hf_inap_forwardingCondition);
2775 }
2776
2777
2778
2779 static int
2780 dissect_inap_ScfID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2781   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2782                                        NULL);
2783
2784   return offset;
2785 }
2786 static int dissect_scfID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2787   return dissect_inap_ScfID(TRUE, tvb, offset, pinfo, tree, hf_inap_scfID);
2788 }
2789
2790
2791
2792 static int
2793 dissect_inap_ServiceInteractionIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2794   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2795                                        NULL);
2796
2797   return offset;
2798 }
2799 static int dissect_serviceInteractionIndicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2800   return dissect_inap_ServiceInteractionIndicators(TRUE, tvb, offset, pinfo, tree, hf_inap_serviceInteractionIndicators);
2801 }
2802
2803
2804 static const ber_sequence_t ConnectArg_sequence[] = {
2805   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_destinationRoutingAddress_impl },
2806   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
2807   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
2808   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cutAndPaste_impl },
2809   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingCondition_impl },
2810   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iSDNAccessRelatedInformation_impl },
2811   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
2812   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
2813   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_scfID_impl },
2814   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
2815   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2816   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
2817   { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicators_impl },
2818   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl },
2819   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartysCategory_impl },
2820   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
2821   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
2822   { 0, 0, 0, NULL }
2823 };
2824
2825 static int
2826 dissect_inap_ConnectArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2827   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2828                                    ConnectArg_sequence, hf_index, ett_inap_ConnectArg);
2829
2830   return offset;
2831 }
2832
2833
2834
2835 static int
2836 dissect_inap_IPRoutingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2837   offset = dissect_inap_CalledPartyNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2838
2839   return offset;
2840 }
2841 static int dissect_ipRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2842   return dissect_inap_IPRoutingAddress(TRUE, tvb, offset, pinfo, tree, hf_inap_ipRoutingAddress);
2843 }
2844
2845
2846 static const ber_sequence_t T_both2_sequence[] = {
2847   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ipRoutingAddress_impl },
2848   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
2849   { 0, 0, 0, NULL }
2850 };
2851
2852 static int
2853 dissect_inap_T_both2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2854   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2855                                    T_both2_sequence, hf_index, ett_inap_T_both2);
2856
2857   return offset;
2858 }
2859 static int dissect_both2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2860   return dissect_inap_T_both2(TRUE, tvb, offset, pinfo, tree, hf_inap_both2);
2861 }
2862
2863
2864 static const value_string inap_T_resourceAddress_vals[] = {
2865   {   0, "ipRoutingAddress" },
2866   {   1, "legID" },
2867   {   2, "both2" },
2868   {   3, "none" },
2869   { 0, NULL }
2870 };
2871
2872 static const ber_choice_t T_resourceAddress_choice[] = {
2873   {   0, BER_CLASS_CON, 0, 0, dissect_ipRoutingAddress_impl },
2874   {   1, BER_CLASS_CON, 1, 0, dissect_legID_impl },
2875   {   2, BER_CLASS_CON, 2, 0, dissect_both2_impl },
2876   {   3, BER_CLASS_CON, 3, 0, dissect_none_impl },
2877   { 0, 0, 0, 0, NULL }
2878 };
2879
2880 static int
2881 dissect_inap_T_resourceAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2882   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2883                                  T_resourceAddress_choice, hf_index, ett_inap_T_resourceAddress,
2884                                  NULL);
2885
2886   return offset;
2887 }
2888 static int dissect_resourceAddress(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2889   return dissect_inap_T_resourceAddress(FALSE, tvb, offset, pinfo, tree, hf_inap_resourceAddress);
2890 }
2891
2892
2893 static const ber_sequence_t ConnectToResourceArg_sequence[] = {
2894   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceAddress },
2895   { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2896   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicators_impl },
2897   { 0, 0, 0, NULL }
2898 };
2899
2900 static int
2901 dissect_inap_ConnectToResourceArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2902   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2903                                    ConnectToResourceArg_sequence, hf_index, ett_inap_ConnectToResourceArg);
2904
2905   return offset;
2906 }
2907
2908
2909
2910 static int
2911 dissect_inap_AssistingSSPIPRoutingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2912   offset = dissect_inap_Digits(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2913
2914   return offset;
2915 }
2916 static int dissect_assistingSSPIPRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2917   return dissect_inap_AssistingSSPIPRoutingAddress(TRUE, tvb, offset, pinfo, tree, hf_inap_assistingSSPIPRoutingAddress);
2918 }
2919
2920
2921 static const ber_sequence_t EstablishTemporaryConnectionArg_sequence[] = {
2922   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_assistingSSPIPRoutingAddress_impl },
2923   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
2924   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
2925   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_scfID_impl },
2926   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2927   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
2928   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicators_impl },
2929   { 0, 0, 0, NULL }
2930 };
2931
2932 static int
2933 dissect_inap_EstablishTemporaryConnectionArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2934   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2935                                    EstablishTemporaryConnectionArg_sequence, hf_index, ett_inap_EstablishTemporaryConnectionArg);
2936
2937   return offset;
2938 }
2939
2940
2941
2942 static int
2943 dissect_inap_EventTypeCharging(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2944   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2945                                        NULL);
2946
2947   return offset;
2948 }
2949 static int dissect_eventTypeCharging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2950   return dissect_inap_EventTypeCharging(TRUE, tvb, offset, pinfo, tree, hf_inap_eventTypeCharging);
2951 }
2952
2953
2954
2955 static int
2956 dissect_inap_EventSpecificInformationCharging(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2957   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2958                                        NULL);
2959
2960   return offset;
2961 }
2962 static int dissect_eventSpecificInformationCharging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2963   return dissect_inap_EventSpecificInformationCharging(TRUE, tvb, offset, pinfo, tree, hf_inap_eventSpecificInformationCharging);
2964 }
2965
2966
2967 static const value_string inap_MonitorMode_vals[] = {
2968   {   0, "interrupted" },
2969   {   1, "notifyAndContinue" },
2970   {   2, "transparent" },
2971   { 0, NULL }
2972 };
2973
2974
2975 static int
2976 dissect_inap_MonitorMode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2977   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2978                                   NULL);
2979
2980   return offset;
2981 }
2982 static int dissect_monitorMode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2983   return dissect_inap_MonitorMode(TRUE, tvb, offset, pinfo, tree, hf_inap_monitorMode);
2984 }
2985
2986
2987 static const ber_sequence_t EventNotificationChargingArg_sequence[] = {
2988   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeCharging_impl },
2989   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventSpecificInformationCharging_impl },
2990   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
2991   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
2992   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_monitorMode_impl },
2993   { 0, 0, 0, NULL }
2994 };
2995
2996 static int
2997 dissect_inap_EventNotificationChargingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2998   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2999                                    EventNotificationChargingArg_sequence, hf_index, ett_inap_EventNotificationChargingArg);
3000
3001   return offset;
3002 }
3003
3004
3005 static const ber_sequence_t T_collectedInfoSpecificInfo_sequence[] = {
3006   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledPartynumber_impl },
3007   { 0, 0, 0, NULL }
3008 };
3009
3010 static int
3011 dissect_inap_T_collectedInfoSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3012   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3013                                    T_collectedInfoSpecificInfo_sequence, hf_index, ett_inap_T_collectedInfoSpecificInfo);
3014
3015   return offset;
3016 }
3017 static int dissect_collectedInfoSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3018   return dissect_inap_T_collectedInfoSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_collectedInfoSpecificInfo);
3019 }
3020
3021
3022 static const ber_sequence_t T_analyzedInfoSpecificInfo_sequence[] = {
3023   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledPartynumber_impl },
3024   { 0, 0, 0, NULL }
3025 };
3026
3027 static int
3028 dissect_inap_T_analyzedInfoSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3029   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3030                                    T_analyzedInfoSpecificInfo_sequence, hf_index, ett_inap_T_analyzedInfoSpecificInfo);
3031
3032   return offset;
3033 }
3034 static int dissect_analyzedInfoSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3035   return dissect_inap_T_analyzedInfoSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_analyzedInfoSpecificInfo);
3036 }
3037
3038
3039 static const ber_sequence_t T_routeSelectFailureSpecificInfo_sequence[] = {
3040   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_failureCause_impl },
3041   { 0, 0, 0, NULL }
3042 };
3043
3044 static int
3045 dissect_inap_T_routeSelectFailureSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3046   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3047                                    T_routeSelectFailureSpecificInfo_sequence, hf_index, ett_inap_T_routeSelectFailureSpecificInfo);
3048
3049   return offset;
3050 }
3051 static int dissect_routeSelectFailureSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3052   return dissect_inap_T_routeSelectFailureSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_routeSelectFailureSpecificInfo);
3053 }
3054
3055
3056 static const ber_sequence_t T_oCalledPartyBusySpecificInfo_sequence[] = {
3057   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_busyCause_impl },
3058   { 0, 0, 0, NULL }
3059 };
3060
3061 static int
3062 dissect_inap_T_oCalledPartyBusySpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3063   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3064                                    T_oCalledPartyBusySpecificInfo_sequence, hf_index, ett_inap_T_oCalledPartyBusySpecificInfo);
3065
3066   return offset;
3067 }
3068 static int dissect_oCalledPartyBusySpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3069   return dissect_inap_T_oCalledPartyBusySpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_oCalledPartyBusySpecificInfo);
3070 }
3071
3072
3073 static const ber_sequence_t T_oNoAnswerSpecificInfo_sequence[] = {
3074   { 0, 0, 0, NULL }
3075 };
3076
3077 static int
3078 dissect_inap_T_oNoAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3079   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3080                                    T_oNoAnswerSpecificInfo_sequence, hf_index, ett_inap_T_oNoAnswerSpecificInfo);
3081
3082   return offset;
3083 }
3084 static int dissect_oNoAnswerSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3085   return dissect_inap_T_oNoAnswerSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_oNoAnswerSpecificInfo);
3086 }
3087
3088
3089 static const ber_sequence_t T_oAnswerSpecificInfo_sequence[] = {
3090   { 0, 0, 0, NULL }
3091 };
3092
3093 static int
3094 dissect_inap_T_oAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3095   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3096                                    T_oAnswerSpecificInfo_sequence, hf_index, ett_inap_T_oAnswerSpecificInfo);
3097
3098   return offset;
3099 }
3100 static int dissect_oAnswerSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3101   return dissect_inap_T_oAnswerSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_oAnswerSpecificInfo);
3102 }
3103
3104
3105 static const ber_sequence_t T_oMidCallSpecificInfo_sequence[] = {
3106   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_connectTime_impl },
3107   { 0, 0, 0, NULL }
3108 };
3109
3110 static int
3111 dissect_inap_T_oMidCallSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3112   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3113                                    T_oMidCallSpecificInfo_sequence, hf_index, ett_inap_T_oMidCallSpecificInfo);
3114
3115   return offset;
3116 }
3117 static int dissect_oMidCallSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3118   return dissect_inap_T_oMidCallSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_oMidCallSpecificInfo);
3119 }
3120
3121
3122 static const ber_sequence_t T_oDisconnectSpecificInfo_sequence[] = {
3123   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
3124   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_connectTime_impl },
3125   { 0, 0, 0, NULL }
3126 };
3127
3128 static int
3129 dissect_inap_T_oDisconnectSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3130   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3131                                    T_oDisconnectSpecificInfo_sequence, hf_index, ett_inap_T_oDisconnectSpecificInfo);
3132
3133   return offset;
3134 }
3135 static int dissect_oDisconnectSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3136   return dissect_inap_T_oDisconnectSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_oDisconnectSpecificInfo);
3137 }
3138
3139
3140 static const ber_sequence_t T_tBusySpecificInfo_sequence[] = {
3141   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_busyCause_impl },
3142   { 0, 0, 0, NULL }
3143 };
3144
3145 static int
3146 dissect_inap_T_tBusySpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3147   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3148                                    T_tBusySpecificInfo_sequence, hf_index, ett_inap_T_tBusySpecificInfo);
3149
3150   return offset;
3151 }
3152 static int dissect_tBusySpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3153   return dissect_inap_T_tBusySpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_tBusySpecificInfo);
3154 }
3155
3156
3157 static const ber_sequence_t T_tNoAnswerSpecificInfo_sequence[] = {
3158   { 0, 0, 0, NULL }
3159 };
3160
3161 static int
3162 dissect_inap_T_tNoAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3163   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3164                                    T_tNoAnswerSpecificInfo_sequence, hf_index, ett_inap_T_tNoAnswerSpecificInfo);
3165
3166   return offset;
3167 }
3168 static int dissect_tNoAnswerSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3169   return dissect_inap_T_tNoAnswerSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_tNoAnswerSpecificInfo);
3170 }
3171
3172
3173 static const ber_sequence_t T_tAnswerSpecificInfo_sequence[] = {
3174   { 0, 0, 0, NULL }
3175 };
3176
3177 static int
3178 dissect_inap_T_tAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3179   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3180                                    T_tAnswerSpecificInfo_sequence, hf_index, ett_inap_T_tAnswerSpecificInfo);
3181
3182   return offset;
3183 }
3184 static int dissect_tAnswerSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3185   return dissect_inap_T_tAnswerSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_tAnswerSpecificInfo);
3186 }
3187
3188
3189 static const ber_sequence_t T_tMidCallSpecificInfo_sequence[] = {
3190   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_connectTime_impl },
3191   { 0, 0, 0, NULL }
3192 };
3193
3194 static int
3195 dissect_inap_T_tMidCallSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3196   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3197                                    T_tMidCallSpecificInfo_sequence, hf_index, ett_inap_T_tMidCallSpecificInfo);
3198
3199   return offset;
3200 }
3201 static int dissect_tMidCallSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3202   return dissect_inap_T_tMidCallSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_tMidCallSpecificInfo);
3203 }
3204
3205
3206 static const ber_sequence_t T_tDisconnectSpecificInfo_sequence[] = {
3207   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
3208   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_connectTime_impl },
3209   { 0, 0, 0, NULL }
3210 };
3211
3212 static int
3213 dissect_inap_T_tDisconnectSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3214   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3215                                    T_tDisconnectSpecificInfo_sequence, hf_index, ett_inap_T_tDisconnectSpecificInfo);
3216
3217   return offset;
3218 }
3219 static int dissect_tDisconnectSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3220   return dissect_inap_T_tDisconnectSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_tDisconnectSpecificInfo);
3221 }
3222
3223
3224 static const value_string inap_EventSpecificInformationBCSM_vals[] = {
3225   {   0, "collectedInfoSpecificInfo" },
3226   {   1, "analyzedInfoSpecificInfo" },
3227   {   2, "routeSelectFailureSpecificInfo" },
3228   {   3, "oCalledPartyBusySpecificInfo" },
3229   {   4, "oNoAnswerSpecificInfo" },
3230   {   5, "oAnswerSpecificInfo" },
3231   {   6, "oMidCallSpecificInfo" },
3232   {   7, "oDisconnectSpecificInfo" },
3233   {   8, "tBusySpecificInfo" },
3234   {   9, "tNoAnswerSpecificInfo" },
3235   {  10, "tAnswerSpecificInfo" },
3236   {  11, "tMidCallSpecificInfo" },
3237   {  12, "tDisconnectSpecificInfo" },
3238   { 0, NULL }
3239 };
3240
3241 static const ber_choice_t EventSpecificInformationBCSM_choice[] = {
3242   {   0, BER_CLASS_CON, 0, 0, dissect_collectedInfoSpecificInfo_impl },
3243   {   1, BER_CLASS_CON, 1, 0, dissect_analyzedInfoSpecificInfo_impl },
3244   {   2, BER_CLASS_CON, 2, 0, dissect_routeSelectFailureSpecificInfo_impl },
3245   {   3, BER_CLASS_CON, 3, 0, dissect_oCalledPartyBusySpecificInfo_impl },
3246   {   4, BER_CLASS_CON, 4, 0, dissect_oNoAnswerSpecificInfo_impl },
3247   {   5, BER_CLASS_CON, 5, 0, dissect_oAnswerSpecificInfo_impl },
3248   {   6, BER_CLASS_CON, 6, 0, dissect_oMidCallSpecificInfo_impl },
3249   {   7, BER_CLASS_CON, 7, 0, dissect_oDisconnectSpecificInfo_impl },
3250   {   8, BER_CLASS_CON, 8, 0, dissect_tBusySpecificInfo_impl },
3251   {   9, BER_CLASS_CON, 9, 0, dissect_tNoAnswerSpecificInfo_impl },
3252   {  10, BER_CLASS_CON, 10, 0, dissect_tAnswerSpecificInfo_impl },
3253   {  11, BER_CLASS_CON, 11, 0, dissect_tMidCallSpecificInfo_impl },
3254   {  12, BER_CLASS_CON, 12, 0, dissect_tDisconnectSpecificInfo_impl },
3255   { 0, 0, 0, 0, NULL }
3256 };
3257
3258 static int
3259 dissect_inap_EventSpecificInformationBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3260   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3261                                  EventSpecificInformationBCSM_choice, hf_index, ett_inap_EventSpecificInformationBCSM,
3262                                  NULL);
3263
3264   return offset;
3265 }
3266 static int dissect_eventSpecificInformationBCSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3267   return dissect_inap_EventSpecificInformationBCSM(TRUE, tvb, offset, pinfo, tree, hf_inap_eventSpecificInformationBCSM);
3268 }
3269
3270
3271 static const ber_sequence_t EventReportBCSMArg_sequence[] = {
3272   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeBCSM_impl },
3273   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bcsmEventCorrelationID_impl },
3274   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_eventSpecificInformationBCSM_impl },
3275   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
3276   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_miscCallInfo_impl },
3277   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3278   { 0, 0, 0, NULL }
3279 };
3280
3281 static int
3282 dissect_inap_EventReportBCSMArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3283   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3284                                    EventReportBCSMArg_sequence, hf_index, ett_inap_EventReportBCSMArg);
3285
3286   return offset;
3287 }
3288
3289
3290
3291 static int
3292 dissect_inap_FCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3293   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3294                                        NULL);
3295
3296   return offset;
3297 }
3298
3299
3300
3301 static int
3302 dissect_inap_FurnishChargingInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3303   offset = dissect_inap_FCIBillingChargingCharacteristics(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3304
3305   return offset;
3306 }
3307
3308
3309
3310 static int
3311 dissect_inap_HoldCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3312   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3313                                        NULL);
3314
3315   return offset;
3316 }
3317 static int dissect_holdcause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3318   return dissect_inap_HoldCause(TRUE, tvb, offset, pinfo, tree, hf_inap_holdcause);
3319 }
3320
3321
3322 static const value_string inap_HoldCallInNetworkArg_vals[] = {
3323   {   0, "holdcause" },
3324   {   1, "empty" },
3325   { 0, NULL }
3326 };
3327
3328 static const ber_choice_t HoldCallInNetworkArg_choice[] = {
3329   {   0, BER_CLASS_CON, 0, 0, dissect_holdcause_impl },
3330   {   1, BER_CLASS_CON, 1, 0, dissect_empty_impl },
3331   { 0, 0, 0, 0, NULL }
3332 };
3333
3334 static int
3335 dissect_inap_HoldCallInNetworkArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3336   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3337                                  HoldCallInNetworkArg_choice, hf_index, ett_inap_HoldCallInNetworkArg,
3338                                  NULL);
3339
3340   return offset;
3341 }
3342
3343
3344
3345 static int
3346 dissect_inap_HighLayerCompatibility(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3347   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3348                                        NULL);
3349
3350   return offset;
3351 }
3352 static int dissect_highLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3353   return dissect_inap_HighLayerCompatibility(TRUE, tvb, offset, pinfo, tree, hf_inap_highLayerCompatibility);
3354 }
3355
3356
3357
3358 static int
3359 dissect_inap_AdditionalCallingPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3360   offset = dissect_inap_Digits(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3361
3362   return offset;
3363 }
3364 static int dissect_additionalCallingPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3365   return dissect_inap_AdditionalCallingPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_additionalCallingPartyNumber);
3366 }
3367
3368
3369
3370 static int
3371 dissect_inap_ForwardCallIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3372   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3373                                        NULL);
3374
3375   return offset;
3376 }
3377 static int dissect_forwardCallIndicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3378   return dissect_inap_ForwardCallIndicators(TRUE, tvb, offset, pinfo, tree, hf_inap_forwardCallIndicators);
3379 }
3380
3381
3382 static const ber_sequence_t InitialDP_sequence[] = {
3383   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
3384   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl },
3385   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyNumber_impl },
3386   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl },
3387   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
3388   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartysCategory_impl },
3389   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
3390   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cGEncountered_impl },
3391   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iPSSPCapabilities_impl },
3392   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iPAvailable_impl },
3393   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl },
3394   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_miscCallInfo_impl },
3395   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
3396   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceProfileIdentifier_impl },
3397   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_terminalType_impl },
3398   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3399   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_triggerType_impl },
3400   { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_highLayerCompatibility_impl },
3401   { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicators_impl },
3402   { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalCallingPartyNumber_impl },
3403   { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardCallIndicators_impl },
3404   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_bearerCapability_impl },
3405   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventTypeBCSM_impl },
3406   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
3407   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
3408   { 0, 0, 0, NULL }
3409 };
3410
3411 static int
3412 dissect_inap_InitialDP(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3413   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3414                                    InitialDP_sequence, hf_index, ett_inap_InitialDP);
3415
3416   return offset;
3417 }
3418
3419
3420 static const ber_sequence_t InitiateCallAttemptArg_sequence[] = {
3421   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_destinationRoutingAddress_impl },
3422   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
3423   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iSDNAccessRelatedInformation_impl },
3424   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
3425   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3426   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicators_impl },
3427   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl },
3428   { 0, 0, 0, NULL }
3429 };
3430
3431 static int
3432 dissect_inap_InitiateCallAttemptArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3433   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3434                                    InitiateCallAttemptArg_sequence, hf_index, ett_inap_InitiateCallAttemptArg);
3435
3436   return offset;
3437 }
3438
3439
3440
3441 static int
3442 dissect_inap_CalledPartyBusinessGroupID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3443   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3444                                        NULL);
3445
3446   return offset;
3447 }
3448 static int dissect_calledPartyBusinessGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3449   return dissect_inap_CalledPartyBusinessGroupID(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartyBusinessGroupID);
3450 }
3451
3452
3453
3454 static int
3455 dissect_inap_CalledPartySubaddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3456   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3457                                        NULL);
3458
3459   return offset;
3460 }
3461 static int dissect_calledPartySubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3462   return dissect_inap_CalledPartySubaddress(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartySubaddress);
3463 }
3464
3465
3466 static const value_string inap_FeatureRequestIndicator_vals[] = {
3467   {   0, "hold" },
3468   {   1, "retrieve" },
3469   {   2, "featureActivation" },
3470   {   3, "spare1" },
3471   { 127, "sparen" },
3472   { 0, NULL }
3473 };
3474
3475
3476 static int
3477 dissect_inap_FeatureRequestIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3478   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3479                                   NULL);
3480
3481   return offset;
3482 }
3483 static int dissect_featureRequestIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3484   return dissect_inap_FeatureRequestIndicator(TRUE, tvb, offset, pinfo, tree, hf_inap_featureRequestIndicator);
3485 }
3486
3487
3488 static const ber_sequence_t MidCallArg_sequence[] = {
3489   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3490   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl },
3491   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl },
3492   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
3493   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
3494   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_featureRequestIndicator_impl },
3495   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3496   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
3497   { 0, 0, 0, NULL }
3498 };
3499
3500 static int
3501 dissect_inap_MidCallArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3502   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3503                                    MidCallArg_sequence, hf_index, ett_inap_MidCallArg);
3504
3505   return offset;
3506 }
3507
3508
3509 static const ber_sequence_t OAnswerArg_sequence[] = {
3510   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3511   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
3512   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
3513   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
3514   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
3515   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
3516   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
3517   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
3518   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
3519   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
3520   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3521   { 0, 0, 0, NULL }
3522 };
3523
3524 static int
3525 dissect_inap_OAnswerArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3526   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3527                                    OAnswerArg_sequence, hf_index, ett_inap_OAnswerArg);
3528
3529   return offset;
3530 }
3531
3532
3533 static const ber_sequence_t OCalledPartyBusyArg_sequence[] = {
3534   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3535   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_busyCause_impl },
3536   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
3537   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
3538   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
3539   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
3540   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
3541   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_prefix_impl },
3542   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
3543   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
3544   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
3545   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
3546   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3547   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
3548   { 0, 0, 0, NULL }
3549 };
3550
3551 static int
3552 dissect_inap_OCalledPartyBusyArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3553   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3554                                    OCalledPartyBusyArg_sequence, hf_index, ett_inap_OCalledPartyBusyArg);
3555
3556   return offset;
3557 }
3558
3559
3560 static const ber_sequence_t ODisconnectArg_sequence[] = {
3561   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3562   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
3563   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
3564   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
3565   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
3566   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
3567   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
3568   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3569   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
3570   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_connectTime_impl },
3571   { 0, 0, 0, NULL }
3572 };
3573
3574 static int
3575 dissect_inap_ODisconnectArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3576   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3577                                    ODisconnectArg_sequence, hf_index, ett_inap_ODisconnectArg);
3578
3579   return offset;
3580 }
3581
3582
3583 static const ber_sequence_t ONoAnswer_sequence[] = {
3584   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3585   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
3586   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
3587   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
3588   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
3589   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
3590   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_prefix_impl },
3591   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
3592   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
3593   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
3594   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
3595   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3596   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
3597   { 0, 0, 0, NULL }
3598 };
3599
3600 static int
3601 dissect_inap_ONoAnswer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3602   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3603                                    ONoAnswer_sequence, hf_index, ett_inap_ONoAnswer);
3604
3605   return offset;
3606 }
3607
3608
3609 static const ber_sequence_t OriginationAttemptAuthorizedArg_sequence[] = {
3610   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
3611   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl },
3612   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
3613   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
3614   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
3615   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
3616   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
3617   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3618   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
3619   { 0, 0, 0, NULL }
3620 };
3621
3622 static int
3623 dissect_inap_OriginationAttemptAuthorizedArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3624   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3625                                    OriginationAttemptAuthorizedArg_sequence, hf_index, ett_inap_OriginationAttemptAuthorizedArg);
3626
3627   return offset;
3628 }
3629
3630
3631
3632 static int
3633 dissect_inap_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3634   offset = dissect_ber_boolean(implicit_tag, pinfo, tree, tvb, offset, hf_index);
3635
3636   return offset;
3637 }
3638 static int dissect_disconnectFromIPForbidden_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3639   return dissect_inap_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_inap_disconnectFromIPForbidden);
3640 }
3641 static int dissect_requestAnnouncementComplete_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3642   return dissect_inap_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_inap_requestAnnouncementComplete);
3643 }
3644 static int dissect_interruptableAnnInd_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3645   return dissect_inap_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_inap_interruptableAnnInd);
3646 }
3647 static int dissect_voiceInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3648   return dissect_inap_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_inap_voiceInformation);
3649 }
3650 static int dissect_voiceBack_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3651   return dissect_inap_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_inap_voiceBack);
3652 }
3653 static int dissect_iA5Information_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3654   return dissect_inap_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_inap_iA5Information);
3655 }
3656
3657
3658 static const ber_sequence_t PlayAnnouncementArg_sequence[] = {
3659   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_informationToSend_impl },
3660   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_disconnectFromIPForbidden_impl },
3661   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestAnnouncementComplete_impl },
3662   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3663   { 0, 0, 0, NULL }
3664 };
3665
3666 static int
3667 dissect_inap_PlayAnnouncementArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3668   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3669                                    PlayAnnouncementArg_sequence, hf_index, ett_inap_PlayAnnouncementArg);
3670
3671   return offset;
3672 }
3673
3674
3675
3676 static int
3677 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_) {
3678   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3679                                        NULL);
3680
3681   return offset;
3682 }
3683 static int dissect_endOfReplyDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3684   return dissect_inap_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_inap_endOfReplyDigit);
3685 }
3686 static int dissect_cancelDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3687   return dissect_inap_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_inap_cancelDigit);
3688 }
3689 static int dissect_startDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3690   return dissect_inap_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_inap_startDigit);
3691 }
3692
3693
3694 static const value_string inap_ErrorTreatment_vals[] = {
3695   {   0, "reportErrorToScf" },
3696   {   1, "help" },
3697   {   2, "repeatPrompt" },
3698   { 0, NULL }
3699 };
3700
3701
3702 static int
3703 dissect_inap_ErrorTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3704   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3705                                   NULL);
3706
3707   return offset;
3708 }
3709 static int dissect_errorTreatment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3710   return dissect_inap_ErrorTreatment(TRUE, tvb, offset, pinfo, tree, hf_inap_errorTreatment);
3711 }
3712
3713
3714 static const ber_sequence_t CollectedDigits_sequence[] = {
3715   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_minimumNbOfDigits_impl },
3716   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_maximumNbOfDigits_impl },
3717   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_endOfReplyDigit_impl },
3718   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cancelDigit_impl },
3719   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_startDigit_impl },
3720   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_firstDigitTimeOut_impl },
3721   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_interDigitTimeOut_impl },
3722   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_errorTreatment_impl },
3723   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_interruptableAnnInd_impl },
3724   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_voiceInformation_impl },
3725   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_voiceBack_impl },
3726   { 0, 0, 0, NULL }
3727 };
3728
3729 static int
3730 dissect_inap_CollectedDigits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3731   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3732                                    CollectedDigits_sequence, hf_index, ett_inap_CollectedDigits);
3733
3734   return offset;
3735 }
3736 static int dissect_collectedDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3737   return dissect_inap_CollectedDigits(TRUE, tvb, offset, pinfo, tree, hf_inap_collectedDigits);
3738 }
3739
3740
3741 static const value_string inap_CollectedInfo_vals[] = {
3742   {   0, "collectedDigits" },
3743   {   1, "iA5Information" },
3744   { 0, NULL }
3745 };
3746
3747 static const ber_choice_t CollectedInfo_choice[] = {
3748   {   0, BER_CLASS_CON, 0, 0, dissect_collectedDigits_impl },
3749   {   1, BER_CLASS_CON, 1, 0, dissect_iA5Information_impl },
3750   { 0, 0, 0, 0, NULL }
3751 };
3752
3753 static int
3754 dissect_inap_CollectedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3755   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3756                                  CollectedInfo_choice, hf_index, ett_inap_CollectedInfo,
3757                                  NULL);
3758
3759   return offset;
3760 }
3761 static int dissect_collectedInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3762   return dissect_inap_CollectedInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_collectedInfo);
3763 }
3764
3765
3766 static const ber_sequence_t PromptAndCollectUserInformationArg_sequence[] = {
3767   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_collectedInfo_impl },
3768   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_disconnectFromIPForbidden_impl },
3769   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_informationToSend_impl },
3770   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3771   { 0, 0, 0, NULL }
3772 };
3773
3774 static int
3775 dissect_inap_PromptAndCollectUserInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3776   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3777                                    PromptAndCollectUserInformationArg_sequence, hf_index, ett_inap_PromptAndCollectUserInformationArg);
3778
3779   return offset;
3780 }
3781
3782
3783
3784 static int
3785 dissect_inap_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3786   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
3787                                             pinfo, tree, tvb, offset, hf_index,
3788                                             NULL);
3789
3790   return offset;
3791 }
3792 static int dissect_iA5Response_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3793   return dissect_inap_IA5String(TRUE, tvb, offset, pinfo, tree, hf_inap_iA5Response);
3794 }
3795
3796
3797 static const value_string inap_ReceivedInformationArg_vals[] = {
3798   {   0, "digitsResponse" },
3799   {   1, "iA5Response" },
3800   { 0, NULL }
3801 };
3802
3803 static const ber_choice_t ReceivedInformationArg_choice[] = {
3804   {   0, BER_CLASS_CON, 0, 0, dissect_digitsResponse_impl },
3805   {   1, BER_CLASS_CON, 1, 0, dissect_iA5Response_impl },
3806   { 0, 0, 0, 0, NULL }
3807 };
3808
3809 static int
3810 dissect_inap_ReceivedInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3811   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3812                                  ReceivedInformationArg_choice, hf_index, ett_inap_ReceivedInformationArg,
3813                                  NULL);
3814
3815   return offset;
3816 }
3817
3818
3819 static const ber_sequence_t T_allCallSegments_sequence[] = {
3820   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
3821   { 0, 0, 0, NULL }
3822 };
3823
3824 static int
3825 dissect_inap_T_allCallSegments(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3826   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3827                                    T_allCallSegments_sequence, hf_index, ett_inap_T_allCallSegments);
3828
3829   return offset;
3830 }
3831 static int dissect_allCallSegments_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3832   return dissect_inap_T_allCallSegments(TRUE, tvb, offset, pinfo, tree, hf_inap_allCallSegments);
3833 }
3834
3835
3836 static const value_string inap_ReleaseCallArg_vals[] = {
3837   {   0, "initialCallSegment" },
3838   {   1, "allCallSegments" },
3839   { 0, NULL }
3840 };
3841
3842 static const ber_choice_t ReleaseCallArg_choice[] = {
3843   {   0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_initialCallSegment },
3844   {   1, BER_CLASS_CON, 2, 0, dissect_allCallSegments_impl },
3845   { 0, 0, 0, 0, NULL }
3846 };
3847
3848 static int
3849 dissect_inap_ReleaseCallArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3850   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3851                                  ReleaseCallArg_choice, hf_index, ett_inap_ReleaseCallArg,
3852                                  NULL);
3853
3854   return offset;
3855 }
3856
3857
3858
3859 static int
3860 dissect_inap_RequestCurrentStatusReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3861   offset = dissect_inap_ResourceID(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3862
3863   return offset;
3864 }
3865
3866
3867 static const value_string inap_ResourceStatus_vals[] = {
3868   {   0, "busy" },
3869   {   1, "idle" },
3870   { 0, NULL }
3871 };
3872
3873
3874 static int
3875 dissect_inap_ResourceStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3876   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3877                                   NULL);
3878
3879   return offset;
3880 }
3881 static int dissect_resourceStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3882   return dissect_inap_ResourceStatus(TRUE, tvb, offset, pinfo, tree, hf_inap_resourceStatus);
3883 }
3884
3885
3886 static const ber_sequence_t RequestCurrentStatusReportResultArg_sequence[] = {
3887   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_resourceStatus_impl },
3888   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceID_impl },
3889   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3890   { 0, 0, 0, NULL }
3891 };
3892
3893 static int
3894 dissect_inap_RequestCurrentStatusReportResultArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3895   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3896                                    RequestCurrentStatusReportResultArg_sequence, hf_index, ett_inap_RequestCurrentStatusReportResultArg);
3897
3898   return offset;
3899 }
3900
3901
3902 static const ber_sequence_t RequestEveryStatusChangeReportArg_sequence[] = {
3903   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceID_impl },
3904   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
3905   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_monitorDuration_impl },
3906   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3907   { 0, 0, 0, NULL }
3908 };
3909
3910 static int
3911 dissect_inap_RequestEveryStatusChangeReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3912   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3913                                    RequestEveryStatusChangeReportArg_sequence, hf_index, ett_inap_RequestEveryStatusChangeReportArg);
3914
3915   return offset;
3916 }
3917
3918
3919 static const ber_sequence_t RequestFirstStatusMatchReportArg_sequence[] = {
3920   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceID_impl },
3921   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_resourceStatus_impl },
3922   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
3923   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_monitorDuration_impl },
3924   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3925   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_bearerCapability_impl },
3926   { 0, 0, 0, NULL }
3927 };
3928
3929 static int
3930 dissect_inap_RequestFirstStatusMatchReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3931   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3932                                    RequestFirstStatusMatchReportArg_sequence, hf_index, ett_inap_RequestFirstStatusMatchReportArg);
3933
3934   return offset;
3935 }
3936
3937
3938 static const ber_sequence_t RequestNotificationChargingEvent_item_sequence[] = {
3939   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeCharging2_impl },
3940   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl },
3941   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
3942   { 0, 0, 0, NULL }
3943 };
3944
3945 static int
3946 dissect_inap_RequestNotificationChargingEvent_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3947   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3948                                    RequestNotificationChargingEvent_item_sequence, hf_index, ett_inap_RequestNotificationChargingEvent_item);
3949
3950   return offset;
3951 }
3952 static int dissect_RequestNotificationChargingEvent_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3953   return dissect_inap_RequestNotificationChargingEvent_item(FALSE, tvb, offset, pinfo, tree, hf_inap_RequestNotificationChargingEvent_item);
3954 }
3955
3956
3957 static const ber_sequence_t RequestNotificationChargingEvent_sequence_of[1] = {
3958   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RequestNotificationChargingEvent_item },
3959 };
3960
3961 static int
3962 dissect_inap_RequestNotificationChargingEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3963   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3964                                       RequestNotificationChargingEvent_sequence_of, hf_index, ett_inap_RequestNotificationChargingEvent);
3965
3966   return offset;
3967 }
3968
3969
3970
3971 static int
3972 dissect_inap_NumberOfDigits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3973   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3974                                   NULL);
3975
3976   return offset;
3977 }
3978 static int dissect_numberOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3979   return dissect_inap_NumberOfDigits(TRUE, tvb, offset, pinfo, tree, hf_inap_numberOfDigits);
3980 }
3981
3982
3983
3984 static int
3985 dissect_inap_ApplicationTimer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3986   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3987                                   NULL);
3988
3989   return offset;
3990 }
3991 static int dissect_applicationTimer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3992   return dissect_inap_ApplicationTimer(TRUE, tvb, offset, pinfo, tree, hf_inap_applicationTimer);
3993 }
3994
3995
3996 static const value_string inap_DpSpecificCriteria_vals[] = {
3997   {   0, "numberOfDigits" },
3998   {   1, "applicationTimer" },
3999   { 0, NULL }
4000 };
4001
4002 static const ber_choice_t DpSpecificCriteria_choice[] = {
4003   {   0, BER_CLASS_CON, 0, 0, dissect_numberOfDigits_impl },
4004   {   1, BER_CLASS_CON, 1, 0, dissect_applicationTimer_impl },
4005   { 0, 0, 0, 0, NULL }
4006 };
4007
4008 static int
4009 dissect_inap_DpSpecificCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4010   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4011                                  DpSpecificCriteria_choice, hf_index, ett_inap_DpSpecificCriteria,
4012                                  NULL);
4013
4014   return offset;
4015 }
4016 static int dissect_dpSpecificCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4017   return dissect_inap_DpSpecificCriteria(TRUE, tvb, offset, pinfo, tree, hf_inap_dpSpecificCriteria);
4018 }
4019
4020
4021 static const ber_sequence_t BCSMEvent_sequence[] = {
4022   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeBCSM_impl },
4023   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl },
4024   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
4025   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_dpSpecificCriteria_impl },
4026   { 0, 0, 0, NULL }
4027 };
4028
4029 static int
4030 dissect_inap_BCSMEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4031   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4032                                    BCSMEvent_sequence, hf_index, ett_inap_BCSMEvent);
4033
4034   return offset;
4035 }
4036 static int dissect_bcsmEvents_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4037   return dissect_inap_BCSMEvent(FALSE, tvb, offset, pinfo, tree, hf_inap_bcsmEvents_item);
4038 }
4039
4040
4041 static const ber_sequence_t SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent_sequence_of[1] = {
4042   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_bcsmEvents_item },
4043 };
4044
4045 static int
4046 dissect_inap_SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4047   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4048                                       SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent_sequence_of, hf_index, ett_inap_SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent);
4049
4050   return offset;
4051 }
4052 static int dissect_bcsmEvents_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4053   return dissect_inap_SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent(TRUE, tvb, offset, pinfo, tree, hf_inap_bcsmEvents);
4054 }
4055
4056
4057 static const ber_sequence_t RequestReportBCSMEventArg_sequence[] = {
4058   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_bcsmEvents_impl },
4059   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bcsmEventCorrelationID_impl },
4060   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4061   { 0, 0, 0, NULL }
4062 };
4063
4064 static int
4065 dissect_inap_RequestReportBCSMEventArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4066   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4067                                    RequestReportBCSMEventArg_sequence, hf_index, ett_inap_RequestReportBCSMEventArg);
4068
4069   return offset;
4070 }
4071
4072
4073 static const value_string inap_TimerID_vals[] = {
4074   {   0, "tssf" },
4075   { 0, NULL }
4076 };
4077
4078
4079 static int
4080 dissect_inap_TimerID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4081   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4082                                   NULL);
4083
4084   return offset;
4085 }
4086 static int dissect_timerID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4087   return dissect_inap_TimerID(TRUE, tvb, offset, pinfo, tree, hf_inap_timerID);
4088 }
4089
4090
4091
4092 static int
4093 dissect_inap_TimerValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4094   offset = dissect_inap_Integer4(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4095
4096   return offset;
4097 }
4098 static int dissect_timervalue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4099   return dissect_inap_TimerValue(TRUE, tvb, offset, pinfo, tree, hf_inap_timervalue);
4100 }
4101
4102
4103 static const ber_sequence_t ResetTimerArg_sequence[] = {
4104   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timerID_impl },
4105   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_timervalue_impl },
4106   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4107   { 0, 0, 0, NULL }
4108 };
4109
4110 static int
4111 dissect_inap_ResetTimerArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4112   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4113                                    ResetTimerArg_sequence, hf_index, ett_inap_ResetTimerArg);
4114
4115   return offset;
4116 }
4117
4118
4119 static const ber_sequence_t RouteSelectFailureArg_sequence[] = {
4120   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
4121   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl },
4122   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
4123   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl },
4124   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_callingFacilityGroup_impl },
4125   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingFacilityGroupMember_impl },
4126   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_failureCause_impl },
4127   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
4128   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_prefix_impl },
4129   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
4130   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
4131   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
4132   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
4133   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4134   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
4135   { 0, 0, 0, NULL }
4136 };
4137
4138 static int
4139 dissect_inap_RouteSelectFailureArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4140   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4141                                    RouteSelectFailureArg_sequence, hf_index, ett_inap_RouteSelectFailureArg);
4142
4143   return offset;
4144 }
4145
4146
4147 static const ber_sequence_t SelectFacilityArg_sequence[] = {
4148   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
4149   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberRoutingAddress_impl },
4150   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iSDNAccessRelatedInformation_impl },
4151   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_calledFacilityGroup_impl },
4152   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledFacilityGroupMember_impl },
4153   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
4154   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4155   { 0, 0, 0, NULL }
4156 };
4157
4158 static int
4159 dissect_inap_SelectFacilityArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4160   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4161                                    SelectFacilityArg_sequence, hf_index, ett_inap_SelectFacilityArg);
4162
4163   return offset;
4164 }
4165
4166
4167 static const ber_sequence_t SelectRouteArg_sequence[] = {
4168   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_destinationRoutingAddress_impl },
4169   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
4170   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
4171   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iSDNAccessRelatedInformation_impl },
4172   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
4173   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
4174   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_scfID_impl },
4175   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
4176   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4177   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
4178   { 0, 0, 0, NULL }
4179 };
4180
4181 static int
4182 dissect_inap_SelectRouteArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4183   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4184                                    SelectRouteArg_sequence, hf_index, ett_inap_SelectRouteArg);
4185
4186   return offset;
4187 }
4188
4189
4190
4191 static int
4192 dissect_inap_SCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4193   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4194                                        NULL);
4195
4196   return offset;
4197 }
4198 static int dissect_sCIBillingChargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4199   return dissect_inap_SCIBillingChargingCharacteristics(TRUE, tvb, offset, pinfo, tree, hf_inap_sCIBillingChargingCharacteristics);
4200 }
4201
4202
4203 static const ber_sequence_t SendChargingInformationArg_sequence[] = {
4204   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sCIBillingChargingCharacteristics_impl },
4205   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_partyToCharge_impl },
4206   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4207   { 0, 0, 0, NULL }
4208 };
4209
4210 static int
4211 dissect_inap_SendChargingInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4212   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4213                                    SendChargingInformationArg_sequence, hf_index, ett_inap_SendChargingInformationArg);
4214
4215   return offset;
4216 }
4217
4218
4219
4220 static int
4221 dissect_inap_CounterID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4222   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4223                                   NULL);
4224
4225   return offset;
4226 }
4227 static int dissect_counterID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4228   return dissect_inap_CounterID(TRUE, tvb, offset, pinfo, tree, hf_inap_counterID);
4229 }
4230
4231
4232 static const ber_sequence_t CounterAndValue_sequence[] = {
4233   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_counterID_impl },
4234   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_counterValue_impl },
4235   { 0, 0, 0, NULL }
4236 };
4237
4238 static int
4239 dissect_inap_CounterAndValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4240   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4241                                    CounterAndValue_sequence, hf_index, ett_inap_CounterAndValue);
4242
4243   return offset;
4244 }
4245 static int dissect_CountersValue_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4246   return dissect_inap_CounterAndValue(FALSE, tvb, offset, pinfo, tree, hf_inap_CountersValue_item);
4247 }
4248
4249
4250 static const ber_sequence_t CountersValue_sequence_of[1] = {
4251   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CountersValue_item },
4252 };
4253
4254 static int
4255 dissect_inap_CountersValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4256   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4257                                       CountersValue_sequence_of, hf_index, ett_inap_CountersValue);
4258
4259   return offset;
4260 }
4261 static int dissect_countersValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4262   return dissect_inap_CountersValue(TRUE, tvb, offset, pinfo, tree, hf_inap_countersValue);
4263 }
4264
4265
4266 static const value_string inap_ResponseCondition_vals[] = {
4267   {   0, "intermediateResponse" },
4268   {   1, "lastResponse" },
4269   { 0, NULL }
4270 };
4271
4272
4273 static int
4274 dissect_inap_ResponseCondition(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4275   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4276                                   NULL);
4277
4278   return offset;
4279 }
4280 static int dissect_responseCondition_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4281   return dissect_inap_ResponseCondition(TRUE, tvb, offset, pinfo, tree, hf_inap_responseCondition);
4282 }
4283
4284
4285 static const ber_sequence_t ServiceFilteringResponseArg_sequence[] = {
4286   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_countersValue_impl },
4287   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_filteringCriteria_impl },
4288   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4289   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_responseCondition_impl },
4290   { 0, 0, 0, NULL }
4291 };
4292
4293 static int
4294 dissect_inap_ServiceFilteringResponseArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4295   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4296                                    ServiceFilteringResponseArg_sequence, hf_index, ett_inap_ServiceFilteringResponseArg);
4297
4298   return offset;
4299 }
4300
4301
4302
4303 static int
4304 dissect_inap_SpecializedResourceReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4305   offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
4306
4307   return offset;
4308 }
4309
4310
4311 static const value_string inap_ReportCondition_vals[] = {
4312   {   0, "statusReport" },
4313   {   1, "timerExpired" },
4314   {   2, "canceled" },
4315   { 0, NULL }
4316 };
4317
4318
4319 static int
4320 dissect_inap_ReportCondition(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4321   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4322                                   NULL);
4323
4324   return offset;
4325 }
4326 static int dissect_reportCondition_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4327   return dissect_inap_ReportCondition(TRUE, tvb, offset, pinfo, tree, hf_inap_reportCondition);
4328 }
4329
4330
4331 static const ber_sequence_t StatusReportArg_sequence[] = {
4332   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_resourceStatus_impl },
4333   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
4334   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceID_impl },
4335   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4336   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_reportCondition_impl },
4337   { 0, 0, 0, NULL }
4338 };
4339
4340 static int
4341 dissect_inap_StatusReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4342   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4343                                    StatusReportArg_sequence, hf_index, ett_inap_StatusReportArg);
4344
4345   return offset;
4346 }
4347
4348
4349 static const ber_sequence_t TAnswerArg_sequence[] = {
4350   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
4351   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl },
4352   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl },
4353   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_calledFacilityGroup_impl },
4354   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledFacilityGroupMember_impl },
4355   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4356   { 0, 0, 0, NULL }
4357 };
4358
4359 static int
4360 dissect_inap_TAnswerArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4361   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4362                                    TAnswerArg_sequence, hf_index, ett_inap_TAnswerArg);
4363
4364   return offset;
4365 }
4366
4367
4368 static const ber_sequence_t TBusyArg_sequence[] = {
4369   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
4370   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_busyCause_impl },
4371   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl },
4372   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl },
4373   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
4374   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
4375   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
4376   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
4377   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
4378   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4379   { 0, 0, 0, NULL }
4380 };
4381
4382 static int
4383 dissect_inap_TBusyArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4384   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4385                                    TBusyArg_sequence, hf_index, ett_inap_TBusyArg);
4386
4387   return offset;
4388 }
4389
4390
4391 static const ber_sequence_t TDisconnectArg_sequence[] = {
4392   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
4393   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl },
4394   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl },
4395   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_calledFacilityGroup_impl },
4396   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledFacilityGroupMember_impl },
4397   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
4398   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4399   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_connectTime_impl },
4400   { 0, 0, 0, NULL }
4401 };
4402
4403 static int
4404 dissect_inap_TDisconnectArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4405   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4406                                    TDisconnectArg_sequence, hf_index, ett_inap_TDisconnectArg);
4407
4408   return offset;
4409 }
4410
4411
4412 static const ber_sequence_t TermAttemptAuthorizedArg_sequence[] = {
4413   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
4414   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl },
4415   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl },
4416   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl },
4417   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
4418   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
4419   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
4420   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeList_impl },
4421   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
4422   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4423   { 0, 0, 0, NULL }
4424 };
4425
4426 static int
4427 dissect_inap_TermAttemptAuthorizedArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4428   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4429                                    TermAttemptAuthorizedArg_sequence, hf_index, ett_inap_TermAttemptAuthorizedArg);
4430
4431   return offset;
4432 }
4433
4434
4435 static const ber_sequence_t TNoAnswerArg_sequence[] = {
4436   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl },
4437   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl },
4438   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl },
4439   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_calledFacilityGroup_impl },
4440   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledFacilityGroupMember_impl },
4441   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
4442   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
4443   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
4444   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl },
4445   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
4446   { 0, 0, 0, NULL }
4447 };
4448
4449 static int
4450 dissect_inap_TNoAnswerArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4451   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4452                                    TNoAnswerArg_sequence, hf_index, ett_inap_TNoAnswerArg);
4453
4454   return offset;
4455 }
4456
4457
4458 static const ber_sequence_t ChargingEvent_sequence[] = {
4459   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeCharging_impl },
4460   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl },
4461   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
4462   { 0, 0, 0, NULL }
4463 };
4464
4465 static int
4466 dissect_inap_ChargingEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4467   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4468                                    ChargingEvent_sequence, hf_index, ett_inap_ChargingEvent);
4469
4470   return offset;
4471 }
4472
4473
4474
4475 static int
4476 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_) {
4477   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4478                                   NULL);
4479
4480   return offset;
4481 }
4482 static int dissect_callAttemptElapsedTimeValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4483   return dissect_inap_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_inap_callAttemptElapsedTimeValue);
4484 }
4485
4486
4487 static const value_string inap_RequestedInformationValue_vals[] = {
4488   {   0, "callAttemptElapsedTimeValue" },
4489   {   1, "callStopTimeValue" },
4490   {   2, "callConnectedElapsedTimeValue" },
4491   {   3, "calledAddressValue" },
4492   {  30, "releaseCauseValue" },
4493   { 0, NULL }
4494 };
4495
4496 static const ber_choice_t RequestedInformationValue_choice[] = {
4497   {   0, BER_CLASS_CON, 0, 0, dissect_callAttemptElapsedTimeValue_impl },
4498   {   1, BER_CLASS_CON, 1, 0, dissect_callStopTimeValue_impl },
4499   {   2, BER_CLASS_CON, 2, 0, dissect_callConnectedElapsedTimeValue_impl },
4500   {   3, BER_CLASS_CON, 3, 0, dissect_calledAddressValue_impl },
4501   {  30, BER_CLASS_CON, 30, 0, dissect_releaseCauseValue_impl },
4502   { 0, 0, 0, 0, NULL }
4503 };
4504
4505 static int
4506 dissect_inap_RequestedInformationValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4507   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4508                                  RequestedInformationValue_choice, hf_index, ett_inap_RequestedInformationValue,
4509                                  NULL);
4510
4511   return offset;
4512 }
4513 static int dissect_requestedInformationValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4514   return dissect_inap_RequestedInformationValue(TRUE, tvb, offset, pinfo, tree, hf_inap_requestedInformationValue);
4515 }
4516
4517
4518 static const ber_sequence_t RequestedInformation_sequence[] = {
4519   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedInformationType_impl },
4520   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_requestedInformationValue_impl },
4521   { 0, 0, 0, NULL }
4522 };
4523
4524 static int
4525 dissect_inap_RequestedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4526   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4527                                    RequestedInformation_sequence, hf_index, ett_inap_RequestedInformation);
4528
4529   return offset;
4530 }
4531 static int dissect_RequestedInformationList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4532   return dissect_inap_RequestedInformation(FALSE, tvb, offset, pinfo, tree, hf_inap_RequestedInformationList_item);
4533 }
4534
4535
4536 static const ber_sequence_t RequestedInformationList_sequence_of[1] = {
4537   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RequestedInformationList_item },
4538 };
4539
4540 static int
4541 dissect_inap_RequestedInformationList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4542   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4543                                       RequestedInformationList_sequence_of, hf_index, ett_inap_RequestedInformationList);
4544
4545   return offset;
4546 }
4547
4548
4549 static const value_string inap_UnavailableNetworkResource_vals[] = {
4550   {   0, "unavailableResources" },
4551   {   1, "componentFailure" },
4552   {   2, "basicCallProcessingException" },
4553   {   3, "resourceStatusFailure" },
4554   {   4, "endUserFailure" },
4555   { 0, NULL }
4556 };
4557
4558
4559 static int
4560 dissect_inap_UnavailableNetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4561   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4562                                   NULL);
4563
4564   return offset;
4565 }
4566
4567
4568 static const value_string inap_T_problem_vals[] = {
4569   {   0, "unknownOperation" },
4570   {   1, "tooLate" },
4571   {   2, "operationNotCancellable" },
4572   { 0, NULL }
4573 };
4574
4575
4576 static int
4577 dissect_inap_T_problem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4578   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4579                                   NULL);
4580
4581   return offset;
4582 }
4583 static int dissect_problem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4584   return dissect_inap_T_problem(TRUE, tvb, offset, pinfo, tree, hf_inap_problem);
4585 }
4586
4587
4588
4589 static int
4590 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_) {
4591   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4592                                   NULL);
4593
4594   return offset;
4595 }
4596 static int dissect_operation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4597   return dissect_inap_INTEGER_M128_127(TRUE, tvb, offset, pinfo, tree, hf_inap_operation);
4598 }
4599
4600
4601 static const ber_sequence_t CancelFailed_sequence[] = {
4602   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_problem_impl },
4603   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_operation_impl },
4604   { 0, 0, 0, NULL }
4605 };
4606
4607 static int
4608 dissect_inap_CancelFailed(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4609   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4610                                    CancelFailed_sequence, hf_index, ett_inap_CancelFailed);
4611
4612   return offset;
4613 }
4614
4615
4616 static const value_string inap_RequestedInfoError_vals[] = {
4617   {   1, "unknownRequestedInfo" },
4618   {   2, "requestedInfoNotAvailable" },
4619   { 0, NULL }
4620 };
4621
4622
4623 static int
4624 dissect_inap_RequestedInfoError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4625   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4626                                   NULL);
4627
4628   return offset;
4629 }
4630
4631
4632 static const value_string inap_SystemFailure_vals[] = {
4633   {   0, "unavailableResources" },
4634   {   1, "componentFailure" },
4635   {   2, "basicCallProcessingException" },
4636   {   3, "resourceStatusFailure" },
4637   {   4, "endUserFailure" },
4638   { 0, NULL }
4639 };
4640
4641
4642 static int
4643 dissect_inap_SystemFailure(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4644   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4645                                   NULL);
4646
4647   return offset;
4648 }
4649
4650
4651 static const value_string inap_TaskRefused_vals[] = {
4652   {   0, "generic" },
4653   {   1, "unobtainable" },
4654   {   2, "congestion" },
4655   { 0, NULL }
4656 };
4657
4658
4659 static int
4660 dissect_inap_TaskRefused(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4661   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4662                                   NULL);
4663
4664   return offset;
4665 }
4666
4667
4668
4669 static int
4670 dissect_inap_InvokeIDType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4671   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4672                                   NULL);
4673
4674   return offset;
4675 }
4676 static int dissect_invidtype(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4677   return dissect_inap_InvokeIDType(FALSE, tvb, offset, pinfo, tree, hf_inap_invidtype);
4678 }
4679
4680
4681 static const value_string inap_T_rinvokeID_vals[] = {
4682   {   0, "invidtype" },
4683   {   1, "null" },
4684   { 0, NULL }
4685 };
4686
4687 static const ber_choice_t T_rinvokeID_choice[] = {
4688   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invidtype },
4689   {   1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_null },
4690   { 0, 0, 0, 0, NULL }
4691 };
4692
4693 static int
4694 dissect_inap_T_rinvokeID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4695   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4696                                  T_rinvokeID_choice, hf_index, ett_inap_T_rinvokeID,
4697                                  NULL);
4698
4699   return offset;
4700 }
4701 static int dissect_rinvokeID(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4702   return dissect_inap_T_rinvokeID(FALSE, tvb, offset, pinfo, tree, hf_inap_rinvokeID);
4703 }
4704
4705
4706 static const value_string inap_GeneralProblem_vals[] = {
4707   {   0, "unrecognisedAPDU" },
4708   {   1, "mistypedAPDU" },
4709   {   2, "badlyStructuredAPDU" },
4710   { 0, NULL }
4711 };
4712
4713
4714 static int
4715 dissect_inap_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4716   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4717                                   NULL);
4718
4719   return offset;
4720 }
4721 static int dissect_gp_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4722   return dissect_inap_GeneralProblem(TRUE, tvb, offset, pinfo, tree, hf_inap_gp);
4723 }
4724
4725
4726 static const value_string inap_InvokeProblem_vals[] = {
4727   {   0, "duplicateInvocation" },
4728   {   1, "unrecognisedOperation" },
4729   {   2, "mistypedArgument" },
4730   {   3, "resourceLimitation" },
4731   {   4, "initiatorReleasing" },
4732   {   5, "unrecognisedLinkedID" },
4733   {   6, "linkedResponseUnexpected" },
4734   {   7, "unexpectedChildOperation" },
4735   { 0, NULL }
4736 };
4737
4738
4739 static int
4740 dissect_inap_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4741   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4742                                   NULL);
4743
4744   return offset;
4745 }
4746 static int dissect_ip_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4747   return dissect_inap_InvokeProblem(TRUE, tvb, offset, pinfo, tree, hf_inap_ip);
4748 }
4749
4750
4751 static const value_string inap_ReturnResultProblem_vals[] = {
4752   {   0, "unrecognisedInvocation" },
4753   {   1, "resultResponseUnexpected" },
4754   {   2, "mistypedResult" },
4755   { 0, NULL }
4756 };
4757
4758
4759 static int
4760 dissect_inap_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4761   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4762                                   NULL);
4763
4764   return offset;
4765 }
4766 static int dissect_rrp_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4767   return dissect_inap_ReturnResultProblem(TRUE, tvb, offset, pinfo, tree, hf_inap_rrp);
4768 }
4769
4770
4771 static const value_string inap_ReturnErrorProblem_vals[] = {
4772   {   0, "unrecognisedInvocation" },
4773   {   1, "errorResponseUnexpected" },
4774   {   2, "unrecognisedError" },
4775   {   3, "unexpectedError" },
4776   {   4, "mistypedParameter" },
4777   { 0, NULL }
4778 };
4779
4780
4781 static int
4782 dissect_inap_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4783   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4784                                   NULL);
4785
4786   return offset;
4787 }
4788 static int dissect_rep_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4789   return dissect_inap_ReturnErrorProblem(TRUE, tvb, offset, pinfo, tree, hf_inap_rep);
4790 }
4791
4792
4793 static const value_string inap_T_rproblem_vals[] = {
4794   {   0, "gp" },
4795   {   1, "ip" },
4796   {   2, "rrp" },
4797   {   3, "rep" },
4798   { 0, NULL }
4799 };
4800
4801 static const ber_choice_t T_rproblem_choice[] = {
4802   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gp_impl },
4803   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ip_impl },
4804   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_rrp_impl },
4805   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_rep_impl },
4806   { 0, 0, 0, 0, NULL }
4807 };
4808
4809 static int
4810 dissect_inap_T_rproblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4811   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4812                                  T_rproblem_choice, hf_index, ett_inap_T_rproblem,
4813                                  NULL);
4814
4815   return offset;
4816 }
4817 static int dissect_rproblem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4818   return dissect_inap_T_rproblem(FALSE, tvb, offset, pinfo, tree, hf_inap_rproblem);
4819 }
4820
4821
4822 static const ber_sequence_t RejectPDU_sequence[] = {
4823   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_rinvokeID },
4824   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_rproblem },
4825   { 0, 0, 0, NULL }
4826 };
4827
4828 static int
4829 dissect_inap_RejectPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4830   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4831                                    RejectPDU_sequence, hf_index, ett_inap_RejectPDU);
4832
4833   return offset;
4834 }
4835
4836 /*--- PDUs ---*/
4837
4838 static void dissect_ActivateServiceFilteringArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4839   dissect_inap_ActivateServiceFilteringArg(FALSE, tvb, 0, pinfo, tree, hf_inap_ActivateServiceFilteringArg_PDU);
4840 }
4841 static void dissect_AnalysedInformationArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4842   dissect_inap_AnalysedInformationArg(FALSE, tvb, 0, pinfo, tree, hf_inap_AnalysedInformationArg_PDU);
4843 }
4844 static void dissect_AnalyseInformationArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4845   dissect_inap_AnalyseInformationArg(FALSE, tvb, 0, pinfo, tree, hf_inap_AnalyseInformationArg_PDU);
4846 }
4847 static void dissect_ApplyChargingArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4848   dissect_inap_ApplyChargingArg(FALSE, tvb, 0, pinfo, tree, hf_inap_ApplyChargingArg_PDU);
4849 }
4850 static void dissect_ApplyChargingReportArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4851   dissect_inap_ApplyChargingReportArg(FALSE, tvb, 0, pinfo, tree, hf_inap_ApplyChargingReportArg_PDU);
4852 }
4853 static void dissect_AssistRequestInstructionsArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4854   dissect_inap_AssistRequestInstructionsArg(FALSE, tvb, 0, pinfo, tree, hf_inap_AssistRequestInstructionsArg_PDU);
4855 }
4856 static void dissect_CallGapArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4857   dissect_inap_CallGapArg(FALSE, tvb, 0, pinfo, tree, hf_inap_CallGapArg_PDU);
4858 }
4859 static void dissect_CallInformationReportArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4860   dissect_inap_CallInformationReportArg(FALSE, tvb, 0, pinfo, tree, hf_inap_CallInformationReportArg_PDU);
4861 }
4862 static void dissect_CallInformationRequestArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4863   dissect_inap_CallInformationRequestArg(FALSE, tvb, 0, pinfo, tree, hf_inap_CallInformationRequestArg_PDU);
4864 }
4865 static void dissect_CancelArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4866   dissect_inap_CancelArg(FALSE, tvb, 0, pinfo, tree, hf_inap_CancelArg_PDU);
4867 }
4868 static void dissect_CollectedInformationArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4869   dissect_inap_CollectedInformationArg(FALSE, tvb, 0, pinfo, tree, hf_inap_CollectedInformationArg_PDU);
4870 }
4871 static void dissect_CollectInformationArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4872   dissect_inap_CollectInformationArg(FALSE, tvb, 0, pinfo, tree, hf_inap_CollectInformationArg_PDU);
4873 }
4874 static void dissect_ConnectArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4875   dissect_inap_ConnectArg(FALSE, tvb, 0, pinfo, tree, hf_inap_ConnectArg_PDU);
4876 }
4877 static void dissect_ConnectToResourceArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4878   dissect_inap_ConnectToResourceArg(FALSE, tvb, 0, pinfo, tree, hf_inap_ConnectToResourceArg_PDU);
4879 }
4880 static void dissect_EstablishTemporaryConnectionArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4881   dissect_inap_EstablishTemporaryConnectionArg(FALSE, tvb, 0, pinfo, tree, hf_inap_EstablishTemporaryConnectionArg_PDU);
4882 }
4883 static void dissect_EventNotificationChargingArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4884   dissect_inap_EventNotificationChargingArg(FALSE, tvb, 0, pinfo, tree, hf_inap_EventNotificationChargingArg_PDU);
4885 }
4886 static void dissect_EventReportBCSMArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4887   dissect_inap_EventReportBCSMArg(FALSE, tvb, 0, pinfo, tree, hf_inap_EventReportBCSMArg_PDU);
4888 }
4889 static void dissect_FurnishChargingInformationArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4890   dissect_inap_FurnishChargingInformationArg(FALSE, tvb, 0, pinfo, tree, hf_inap_FurnishChargingInformationArg_PDU);
4891 }
4892 static void dissect_HoldCallInNetworkArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4893   dissect_inap_HoldCallInNetworkArg(FALSE, tvb, 0, pinfo, tree, hf_inap_HoldCallInNetworkArg_PDU);
4894 }
4895 static void dissect_InitialDP_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4896   dissect_inap_InitialDP(FALSE, tvb, 0, pinfo, tree, hf_inap_InitialDP_PDU);
4897 }
4898 static void dissect_InitiateCallAttemptArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4899   dissect_inap_InitiateCallAttemptArg(FALSE, tvb, 0, pinfo, tree, hf_inap_InitiateCallAttemptArg_PDU);
4900 }
4901 static void dissect_MidCallArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4902   dissect_inap_MidCallArg(FALSE, tvb, 0, pinfo, tree, hf_inap_MidCallArg_PDU);
4903 }
4904 static void dissect_OAnswerArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4905   dissect_inap_OAnswerArg(FALSE, tvb, 0, pinfo, tree, hf_inap_OAnswerArg_PDU);
4906 }
4907 static void dissect_OCalledPartyBusyArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4908   dissect_inap_OCalledPartyBusyArg(FALSE, tvb, 0, pinfo, tree, hf_inap_OCalledPartyBusyArg_PDU);
4909 }
4910 static void dissect_ODisconnectArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4911   dissect_inap_ODisconnectArg(FALSE, tvb, 0, pinfo, tree, hf_inap_ODisconnectArg_PDU);
4912 }
4913 static void dissect_ONoAnswer_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4914   dissect_inap_ONoAnswer(FALSE, tvb, 0, pinfo, tree, hf_inap_ONoAnswer_PDU);
4915 }
4916 static void dissect_OriginationAttemptAuthorizedArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4917   dissect_inap_OriginationAttemptAuthorizedArg(FALSE, tvb, 0, pinfo, tree, hf_inap_OriginationAttemptAuthorizedArg_PDU);
4918 }
4919 static void dissect_PlayAnnouncementArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4920   dissect_inap_PlayAnnouncementArg(FALSE, tvb, 0, pinfo, tree, hf_inap_PlayAnnouncementArg_PDU);
4921 }
4922 static void dissect_PromptAndCollectUserInformationArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4923   dissect_inap_PromptAndCollectUserInformationArg(FALSE, tvb, 0, pinfo, tree, hf_inap_PromptAndCollectUserInformationArg_PDU);
4924 }
4925 static void dissect_ReceivedInformationArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4926   dissect_inap_ReceivedInformationArg(FALSE, tvb, 0, pinfo, tree, hf_inap_ReceivedInformationArg_PDU);
4927 }
4928 static void dissect_ReleaseCallArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4929   dissect_inap_ReleaseCallArg(FALSE, tvb, 0, pinfo, tree, hf_inap_ReleaseCallArg_PDU);
4930 }
4931 static void dissect_RequestCurrentStatusReportArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4932   dissect_inap_RequestCurrentStatusReportArg(FALSE, tvb, 0, pinfo, tree, hf_inap_RequestCurrentStatusReportArg_PDU);
4933 }
4934 static void dissect_RequestCurrentStatusReportResultArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4935   dissect_inap_RequestCurrentStatusReportResultArg(FALSE, tvb, 0, pinfo, tree, hf_inap_RequestCurrentStatusReportResultArg_PDU);
4936 }
4937 static void dissect_RequestEveryStatusChangeReportArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4938   dissect_inap_RequestEveryStatusChangeReportArg(FALSE, tvb, 0, pinfo, tree, hf_inap_RequestEveryStatusChangeReportArg_PDU);
4939 }
4940 static void dissect_RequestFirstStatusMatchReportArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4941   dissect_inap_RequestFirstStatusMatchReportArg(FALSE, tvb, 0, pinfo, tree, hf_inap_RequestFirstStatusMatchReportArg_PDU);
4942 }
4943 static void dissect_RequestNotificationChargingEvent_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4944   dissect_inap_RequestNotificationChargingEvent(FALSE, tvb, 0, pinfo, tree, hf_inap_RequestNotificationChargingEvent_PDU);
4945 }
4946 static void dissect_RequestReportBCSMEventArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4947   dissect_inap_RequestReportBCSMEventArg(FALSE, tvb, 0, pinfo, tree, hf_inap_RequestReportBCSMEventArg_PDU);
4948 }
4949 static void dissect_ResetTimerArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4950   dissect_inap_ResetTimerArg(FALSE, tvb, 0, pinfo, tree, hf_inap_ResetTimerArg_PDU);
4951 }
4952 static void dissect_RouteSelectFailureArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4953   dissect_inap_RouteSelectFailureArg(FALSE, tvb, 0, pinfo, tree, hf_inap_RouteSelectFailureArg_PDU);
4954 }
4955 static void dissect_SelectFacilityArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4956   dissect_inap_SelectFacilityArg(FALSE, tvb, 0, pinfo, tree, hf_inap_SelectFacilityArg_PDU);
4957 }
4958 static void dissect_SelectRouteArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4959   dissect_inap_SelectRouteArg(FALSE, tvb, 0, pinfo, tree, hf_inap_SelectRouteArg_PDU);
4960 }
4961 static void dissect_ServiceFilteringResponseArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4962   dissect_inap_ServiceFilteringResponseArg(FALSE, tvb, 0, pinfo, tree, hf_inap_ServiceFilteringResponseArg_PDU);
4963 }
4964 static void dissect_SpecializedResourceReportArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4965   dissect_inap_SpecializedResourceReportArg(FALSE, tvb, 0, pinfo, tree, hf_inap_SpecializedResourceReportArg_PDU);
4966 }
4967 static void dissect_StatusReportArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4968   dissect_inap_StatusReportArg(FALSE, tvb, 0, pinfo, tree, hf_inap_StatusReportArg_PDU);
4969 }
4970 static void dissect_TAnswerArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4971   dissect_inap_TAnswerArg(FALSE, tvb, 0, pinfo, tree, hf_inap_TAnswerArg_PDU);
4972 }
4973 static void dissect_TBusyArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4974   dissect_inap_TBusyArg(FALSE, tvb, 0, pinfo, tree, hf_inap_TBusyArg_PDU);
4975 }
4976 static void dissect_TDisconnectArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4977   dissect_inap_TDisconnectArg(FALSE, tvb, 0, pinfo, tree, hf_inap_TDisconnectArg_PDU);
4978 }
4979 static void dissect_TermAttemptAuthorizedArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4980   dissect_inap_TermAttemptAuthorizedArg(FALSE, tvb, 0, pinfo, tree, hf_inap_TermAttemptAuthorizedArg_PDU);
4981 }
4982 static void dissect_TNoAnswerArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
4983   dissect_inap_TNoAnswerArg(FALSE, tvb, 0, pinfo, tree, hf_inap_TNoAnswerArg_PDU);
4984 }
4985
4986
4987 /*--- End of included file: packet-inap-fn.c ---*/
4988 #line 87 "packet-inap-template.c"
4989
4990
4991 const value_string inap_opr_code_strings[] = {
4992
4993         {0,"InitialDP"},
4994         {1, "OriginationAttemptAuthorized"},
4995         {2, "CollectedInformation"},
4996         {3, "AnalysedInformation"},
4997         {4, "RouteSelectFailure"},
4998         {5, "oCalledPartyBusy"},
4999         {6, "oNoAnswer"},
5000         {7, "oAnswer"},
5001         {8, "oDisconnect"},
5002         {9, "TermAttemptAuthorized"},
5003         {10, "tBusy"},
5004         {11, "tNoAnswer"},
5005         {12, "tAnswer"},
5006         {13, "tDisconnect"},
5007         {14, "oMidCall"},
5008         {15, "tMidCall"},
5009         {16, "AssistRequestInstructions"},
5010         {17,"EstablishTemporaryConnection"},
5011         {18, "DisconnectForwardConnection"},
5012         {19,"ConnectToResource"},
5013         {20, "Connect"},
5014         {21,"HoldCallInNetwork"},
5015         {22, "ReleaseCall"},
5016         {23, "RequestReportBCSMEven"},
5017         {23,"RequestReportBCSMEvent"},
5018         {24,"EventReportBCSM"},
5019         {25, "RequestNotificationChargingEvent"},
5020         {26, "EventNotificationCharging"},
5021         {27, "CollectInformation"},
5022         {28, "AnalyseInformation"},
5023         {29, "SelectRoute"},
5024         {30, "SelectFacility"},
5025         {31, "Continue"},
5026         {32, "InitiateCallAttempt"},
5027         {33,"ResetTimer"},
5028         {34,"FurnishChargingInformation"},
5029         {35, "ApplyCharging"},
5030         {36, "ApplyChargingReport"},
5031         {37, "RequestCurrentStatusReport"},
5032         {38, "RequestEveryStatusChangeReport"},
5033         {39, "RequestFirstStatusMatchReport"},
5034         {40, "StatusReport"},
5035         {41, "CallGap"},
5036         {42, "ActivateServiceFiltering"},
5037         {43, "ServiceFilteringResponse"},
5038         {44, "CallInformationReport"},
5039         {45, "CallInformationRequest"},
5040         {46, "SendChargingInformation"},
5041         {47,"PlayAnnouncement"},
5042         {48,"PromptAndCollectUserInformation"},
5043         {49,"SpecializedResourceReport"},
5044         {53, "Cancel"},
5045         {55, "ActivityTest"},
5046         {99,"ReceivedInformation"}, /*???????*/
5047         {0, NULL}
5048 };
5049
5050 const value_string inap_error_code_strings[] = {
5051
5052 {0,"cancelled"},
5053 {1,"cancelFailed"},
5054 {3,"etcFailed"},
5055 {4,"improperCallerResponse"},
5056 {6,"missingCustomerRecord"},
5057 {7,"missingParameter"},
5058 {8,"parameterOutOfRange"},
5059 {10,"RequestedInfoError"},
5060 {11,"SystemFailure"},
5061 {12,"TaskRefused"},
5062 {13,"UnavailableResource"},
5063 {14,"UnexpectedComponentSequence"},
5064 {15,"UnexpectedDataValue"},
5065 {16,"UnexpectedParameter"},
5066 {17,"UnknownLegID"},
5067 {18,"UnknownResource"},
5068 {0, NULL}
5069 };
5070
5071 const value_string inap_general_problem_strings[] = {
5072 {0,"General Problem Unrecognized Component"},
5073 {1,"General Problem Mistyped Component"},
5074 {3,"General Problem Badly Structured Component"},
5075 {0, NULL}
5076 };
5077
5078
5079
5080 static guint32 opcode=0;
5081
5082 static int
5083 dissect_inap_Opcode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
5084   offset = dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_index, &opcode);
5085
5086   if (check_col(pinfo->cinfo, COL_INFO)){
5087     col_add_fstr(pinfo->cinfo, COL_INFO, "%s ", val_to_str(opcode, inap_opr_code_strings, "Unknown Inap (%u)"));
5088   }
5089
5090   return offset;
5091 }
5092
5093
5094
5095 static int
5096 dissect_inap_errorCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
5097   offset = dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_index, &opcode);
5098
5099   if (check_col(pinfo->cinfo, COL_INFO)){
5100     col_set_str(pinfo->cinfo, COL_INFO, val_to_str(opcode, inap_error_code_strings, "Unknown Inap (%u)"));
5101   }
5102
5103   return offset;
5104 }
5105
5106 /*
5107 TC-Invokable OPERATION ::=
5108   {activateServiceFiltering | activityTest | analysedInformation |
5109    analyseInformation | applyCharging | applyChargingReport |
5110    assistRequestInstructions | callGap | callInformationReport |
5111    callInformationRequest | cancel | cancelStatusReportRequest |
5112    collectedInformation | collectInformation | connect | connectToResource |
5113    continue | disconnectForwardConnection | establishTemporaryConnection |
5114    eventNotificationCharging | eventReportBCSM | furnishChargingInformation |
5115    holdCallInNetwork | initialDP | initiateCallAttempt | oAnswer |
5116    oCalledPartyBusy | oDisconnect | oMidCall | oNoAnswer |
5117    originationAttemptAuthorized | releaseCall | requestCurrentStatusReport |
5118    requestEveryStatusChangeReport | requestFirstStatusMatchReport |
5119    requestNotificationChargingEvent | requestReportBCSMEvent | resetTimer |
5120    routeSelectFailure | selectFacility | selectRoute | sendChargingInformation
5121    | serviceFilteringResponse | statusReport | tAnswer | tBusy | tDisconnect |
5122    termAttemptAuthorized | tMidCall | tNoAnswer | playAnnouncement |
5123    promptAndCollectUserInformation}
5124 */
5125
5126 static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5127   switch(opcode){
5128   case 0: /*InitialDP*/
5129     offset=dissect_inap_InitialDP(FALSE, tvb, offset, pinfo, tree, hf_inap_InitialDP_PDU);
5130     break;
5131   case 1: /*1 OriginationAttemptAuthorized */
5132     offset=dissect_inap_OriginationAttemptAuthorizedArg(FALSE, tvb, offset, pinfo, tree, hf_inap_OriginationAttemptAuthorizedArg_PDU);
5133     break;
5134   case 2: /*2 CollectedInformation */
5135     offset=dissect_inap_CollectedInformationArg(FALSE, tvb, offset, pinfo, tree, hf_inap_CollectedInformationArg_PDU);
5136     break;
5137   case 3: /*3 AnalysedInformation */
5138     offset=dissect_inap_AnalysedInformationArg(FALSE, tvb, offset, pinfo, tree, hf_inap_AnalysedInformationArg_PDU);
5139     break;
5140   case 4: /*4 RouteSelectFailure */
5141     offset=dissect_inap_RouteSelectFailureArg(FALSE, tvb, offset, pinfo, tree, hf_inap_RouteSelectFailureArg_PDU);
5142     break;
5143   case 5: /*5 oCalledPartyBusy */
5144     offset=dissect_inap_OCalledPartyBusyArg(FALSE, tvb, offset, pinfo, tree, hf_inap_OCalledPartyBusyArg_PDU);
5145     break;       
5146   case 6: /*6 oNoAnswer */
5147     offset=dissect_inap_ONoAnswer(FALSE, tvb, offset, pinfo, tree, hf_inap_ONoAnswer_PDU);
5148     break;
5149   case 7: /*7 oAnswer */
5150     offset=dissect_inap_OAnswerArg(FALSE, tvb, offset, pinfo, tree, hf_inap_OAnswerArg_PDU);
5151     break;
5152   case 8: /*8 oDisconnect */
5153     offset=dissect_inap_ODisconnectArg(FALSE, tvb, offset, pinfo, tree, hf_inap_ODisconnectArg_PDU);
5154     break;
5155   case 9: /*9 TermAttemptAuthorized */
5156     offset=dissect_inap_TermAttemptAuthorizedArg(FALSE, tvb, offset, pinfo, tree, hf_inap_TermAttemptAuthorizedArg_PDU);
5157     break;
5158   case 10: /*10 tBusy */
5159     offset=dissect_inap_TBusyArg(FALSE, tvb, offset, pinfo, tree, hf_inap_TBusyArg_PDU);
5160     break;
5161   case 11: /*11 tNoAnswer */
5162     offset=dissect_inap_TNoAnswerArg(FALSE, tvb, offset, pinfo, tree, hf_inap_TNoAnswerArg_PDU);
5163     break;
5164   case 12: /*12 tAnswer */
5165     offset=dissect_inap_TAnswerArg(FALSE, tvb, offset, pinfo, tree, hf_inap_TAnswerArg_PDU);
5166     break;
5167   case 13: /*13 tDisconnect */
5168     offset=dissect_inap_TDisconnectArg(FALSE, tvb, offset, pinfo, tree, hf_inap_TDisconnectArg_PDU);
5169     break;
5170   case 14: /*14 oMidCall */
5171     offset=dissect_inap_MidCallArg(FALSE, tvb, offset, pinfo, tree, hf_inap_MidCallArg_PDU);
5172     break;
5173   case 15: /*15 tMidCall */
5174     offset=dissect_inap_MidCallArg(FALSE, tvb, offset, pinfo, tree, hf_inap_MidCallArg_PDU);
5175     break;
5176   case  16: /*AssistRequestInstructions*/
5177     offset=dissect_inap_AssistRequestInstructionsArg(FALSE, tvb, offset, pinfo, tree, hf_inap_AssistRequestInstructionsArg_PDU);
5178     break;
5179   case  17: /*EstablishTemporaryConnection*/
5180     offset=dissect_inap_EstablishTemporaryConnectionArg(FALSE, tvb, offset, pinfo, tree, hf_inap_EstablishTemporaryConnectionArg_PDU);
5181     break;
5182   case  18: /*DisconnectForwardConnections*/
5183     proto_tree_add_text(tree, tvb, offset, -1, "Disconnect Forward Connection");
5184     break;
5185   case  19: /*ConnectToResource*/
5186     offset=dissect_inap_ConnectToResourceArg(FALSE, tvb, offset, pinfo, tree, hf_inap_ConnectToResourceArg_PDU);
5187     break;
5188   case  20: /*Connect*/
5189     offset=dissect_inap_ConnectArg(FALSE, tvb, offset, pinfo, tree,hf_inap_ConnectArg_PDU);
5190     break;      
5191   case  21: /* 21 HoldCallInNetwork */
5192     offset=dissect_inap_HoldCallInNetworkArg(FALSE, tvb, offset, pinfo, tree,hf_inap_HoldCallInNetworkArg_PDU);
5193     break;
5194
5195    case 22: /*ReleaseCall*/
5196     offset=dissect_inap_ReleaseCallArg(FALSE, tvb, offset, pinfo, tree,hf_inap_ReleaseCallArg_PDU);
5197     break;
5198     case 23: /*InitialDP*/
5199     offset=dissect_inap_RequestReportBCSMEventArg(FALSE, tvb, offset, pinfo, tree, hf_inap_RequestReportBCSMEventArg_PDU);
5200     break;
5201   case  24: /*EventReportBCSM*/
5202     offset=dissect_inap_EventReportBCSMArg(FALSE, tvb, offset, pinfo, tree, hf_inap_EventReportBCSMArg_PDU);
5203     break;
5204   case  25: /*25, "RequestNotificationChargingEvent */
5205     offset=dissect_inap_RequestNotificationChargingEvent(FALSE, tvb, offset, pinfo, tree, hf_inap_RequestNotificationChargingEvent_PDU);
5206     break;
5207   case  26: /*26, "EventNotificationCharging */
5208     offset=dissect_inap_EventNotificationChargingArg(FALSE, tvb, offset, pinfo, tree, hf_inap_EventNotificationChargingArg_PDU);
5209     break;
5210   case  27: /*27, "CollectInformation */
5211     offset=dissect_inap_CollectInformationArg(FALSE, tvb, offset, pinfo, tree, hf_inap_CollectInformationArg_PDU);
5212     break;
5213   case  28: /*28, "AnalyseInformation */
5214     offset=dissect_inap_AnalyseInformationArg(FALSE, tvb, offset, pinfo, tree, hf_inap_AnalyseInformationArg_PDU);
5215     break;
5216   case  29: /*29, "SelectRoute */
5217     offset=dissect_inap_SelectRouteArg(FALSE, tvb, offset, pinfo, tree, hf_inap_SelectRouteArg_PDU);
5218     break;
5219   case  30: /*30, "SelectFacility */
5220     offset=dissect_inap_SelectFacilityArg(FALSE, tvb, offset, pinfo, tree, hf_inap_SelectFacilityArg_PDU);
5221     break;
5222         /*31, "Continue */
5223   case  32: /*32, InitiateCallAttempt*/
5224     offset=dissect_inap_InitiateCallAttemptArg(FALSE, tvb, offset, pinfo, tree, hf_inap_InitiateCallAttemptArg_PDU);
5225     break;
5226   case 33: /*ResetTimer*/
5227     offset=dissect_inap_ResetTimerArg(FALSE, tvb, offset, pinfo, tree, hf_inap_ResetTimerArg_PDU);
5228     break;
5229   case 34: /*FurnishChargingInformation*/
5230     offset=dissect_inap_FurnishChargingInformationArg(FALSE, tvb, offset, pinfo, tree, hf_inap_FurnishChargingInformationArg_PDU);
5231     break;
5232   case 35: /*35, ApplyCharging */
5233     offset=dissect_inap_ApplyChargingArg(FALSE, tvb, offset, pinfo, tree, hf_inap_ApplyChargingArg_PDU);
5234     break;      
5235   case 36: /*36, "ApplyChargingReport */
5236     offset=dissect_inap_ApplyChargingReportArg(FALSE, tvb, offset, pinfo, tree, hf_inap_ApplyChargingReportArg_PDU);
5237     break;
5238   case 37: /*37, "RequestCurrentStatusReport */
5239     offset=dissect_inap_RequestCurrentStatusReportArg(FALSE, tvb, offset, pinfo, tree, hf_inap_RequestCurrentStatusReportArg_PDU);
5240     break;
5241   case 38:/*38, "RequestEveryStatusChangeReport */
5242     offset=dissect_inap_RequestEveryStatusChangeReportArg(FALSE, tvb, offset, pinfo, tree, hf_inap_RequestEveryStatusChangeReportArg_PDU);
5243     break;
5244   case 39:/*39, "RequestFirstStatusMatchReport */
5245     offset=dissect_inap_RequestFirstStatusMatchReportArg(FALSE, tvb, offset, pinfo, tree, hf_inap_RequestFirstStatusMatchReportArg_PDU);
5246     break;
5247   case 40:/*40, "StatusReport */
5248     offset=dissect_inap_StatusReportArg(FALSE, tvb, offset, pinfo, tree, hf_inap_StatusReportArg_PDU);
5249     break;
5250   case 41:/*41, "CallGap */
5251     offset=dissect_inap_CallGapArg(FALSE, tvb, offset, pinfo, tree, hf_inap_CallGapArg_PDU);
5252     break;
5253   case 42:/*42, "ActivateServiceFiltering */
5254     offset=dissect_inap_ActivateServiceFilteringArg(FALSE, tvb, offset, pinfo, tree, hf_inap_ActivateServiceFilteringArg_PDU);
5255     break;
5256   case 43:/*43, "ServiceFilteringResponse */
5257     offset=dissect_inap_ServiceFilteringResponseArg(FALSE, tvb, offset, pinfo, tree, hf_inap_ServiceFilteringResponseArg_PDU);
5258     break;    
5259   case  44: /*CallInformationReport*/
5260     offset=dissect_inap_CallInformationReportArg(FALSE, tvb, offset, pinfo, tree, hf_inap_CallInformationReportArg_PDU);
5261     break;
5262   case  45: /*CallInformationRequest*/
5263     offset=dissect_inap_CallInformationRequestArg(FALSE, tvb, offset, pinfo, tree, hf_inap_CallInformationRequestArg_PDU);
5264     break;
5265   case 47: /*PlayAnnouncement*/
5266     offset=dissect_inap_PlayAnnouncementArg(FALSE, tvb, offset, pinfo, tree, hf_inap_PlayAnnouncementArg_PDU);
5267     break;
5268   case 48: /*PromptAndCollectUserInformation*/
5269     offset=dissect_inap_PromptAndCollectUserInformationArg(FALSE, tvb, offset, pinfo, tree, hf_inap_PromptAndCollectUserInformationArg_PDU);
5270     break;
5271   case 49: /* 49 SpecializedResourceReport */
5272     offset=dissect_inap_SpecializedResourceReportArg(FALSE, tvb, offset, pinfo, tree, hf_inap_SpecializedResourceReportArg_PDU);
5273     break;
5274   case  53: /*Cancel*/
5275     offset=dissect_inap_CancelArg(FALSE, tvb, offset, pinfo, tree, hf_inap_CancelArg_PDU);
5276     break;
5277         /*55 ActivityTest*/
5278    default:
5279     proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
5280     /* todo call the asn.1 dissector */
5281   }
5282   return offset;
5283 }
5284
5285 /*
5286 TC-Returnable OPERATION ::=
5287   {activateServiceFiltering | activityTest | requestCurrentStatusReport |
5288    requestEveryStatusChangeReport | requestFirstStatusMatchReport |
5289    promptAndCollectUserInformation}
5290
5291    activateServiceFiltering                     - No arg
5292    activityTest                                         - No Arg
5293    requestCurrentStatusReport           - RESULT         RequestCurrentStatusReportResultArg
5294    requestEveryStatusChangeReport       - No arg
5295    requestFirstStatusMatchReport        - No Arg 
5296    promptAndCollectUserInformation      - RESULT         ReceivedInformationArg
5297         
5298 */
5299 static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5300   switch(opcode){
5301    case 37: /*requestCurrentStatusReport*/
5302     offset=dissect_inap_RequestCurrentStatusReportResultArg(FALSE, tvb, offset, pinfo, tree, -1);
5303     break;
5304    case 48: /*PromptAndCollectUserInformation*/
5305     offset=dissect_inap_ReceivedInformationArg(FALSE, tvb, offset, pinfo, tree, -1);
5306     break;
5307   default:
5308     proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
5309   }
5310   return offset;
5311 }
5312
5313 static int 
5314 dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5315   return dissect_inap_Opcode(FALSE, tvb, offset, pinfo, tree, hf_inap_invokeCmd);
5316 }
5317
5318
5319 static int 
5320 dissect_errorCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5321   return dissect_inap_errorCode(FALSE, tvb, offset, pinfo, tree, hf_inap_ReturnError);
5322 }
5323
5324 static int dissect_invokeid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5325   return dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_inap_invokeid, NULL);
5326 }
5327
5328
5329 static const value_string InvokeId_vals[] = {
5330   {   0, "invokeid" },
5331   {   1, "absent" },
5332   { 0, NULL }
5333 };
5334
5335 static int dissect_absent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5336   return dissect_inap_NULL(FALSE, tvb, offset, pinfo, tree, hf_inap_absent);
5337 }
5338
5339
5340 static const ber_choice_t InvokeId_choice[] = {
5341   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeid },
5342   {   1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_absent },
5343   { 0, 0, 0, 0, NULL }
5344 };
5345
5346 static int
5347 dissect_inap_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
5348   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5349                               InvokeId_choice, hf_index, ett_inap_InvokeId, NULL);
5350
5351   return offset;
5352 }
5353 static int dissect_invokeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5354   return dissect_inap_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_inap_invokeId);
5355 }
5356 static int dissect_linkedID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5357         return dissect_ber_integer(TRUE, pinfo, tree, tvb, offset, hf_inap_linkedid, NULL);
5358 }
5359
5360
5361 static const ber_sequence_t InvokePDU_sequence[] = {
5362   { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
5363   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_linkedID_impl },
5364   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
5365   { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeData },
5366   { 0, 0, 0, NULL }
5367 };
5368
5369 static int
5370 dissect_inap_InvokePDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
5371   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5372                                 InvokePDU_sequence, hf_index, ett_inap_InvokePDU);
5373
5374   return offset;
5375 }
5376
5377
5378 static const ber_sequence_t returnErrorPDU_sequence[] = {
5379   { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
5380   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_errorCode },
5381   { 0, 0, 0, NULL }
5382 };
5383
5384 static int
5385 dissect_inap_returnErrorPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
5386   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5387                                 returnErrorPDU_sequence, hf_index, ett_inap_ReturnErrorPDU);
5388
5389   return offset;
5390 }
5391
5392
5393 static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5394   return dissect_inap_InvokePDU(TRUE, tvb, offset, pinfo, tree, hf_inap_invoke);
5395 }
5396
5397 static int dissect_returnError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5398   return dissect_inap_returnErrorPDU(TRUE, tvb, offset, pinfo, tree, hf_inap_invoke);
5399 }
5400
5401 static const ber_sequence_t ReturnResult_result_sequence[] = {
5402   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
5403   { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_returnResultData },
5404   { 0, 0, 0, NULL }
5405 };
5406 static int
5407 dissect_returnResult_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5408   offset = dissect_ber_sequence(FALSE, pinfo, tree, tvb, offset,
5409                                 ReturnResult_result_sequence, hf_inap_returnResult_result, ett_inap_ReturnResult_result);
5410
5411   return offset;
5412 }
5413
5414 static const ber_sequence_t ReturnResultPDU_sequence[] = {
5415   { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
5416   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_returnResult_result },
5417   { 0, 0, 0, NULL }
5418 };
5419
5420 static int
5421 dissect_inap_returnResultPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
5422   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5423                                 ReturnResultPDU_sequence, hf_index, ett_inap_ReturnResultPDU);
5424
5425   return offset;
5426 }
5427 static int dissect_returnResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5428   return dissect_inap_returnResultPDU(TRUE, tvb, offset, pinfo, tree, hf_inap_returnResult);
5429 }
5430
5431
5432 static int dissect_reject_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5433   return dissect_inap_RejectPDU(TRUE, tvb, offset, pinfo, tree, -1);
5434 }
5435
5436 static const value_string INAPPDU_vals[] = {
5437   {   1, "invoke" },
5438   {   2, "returnResult" },
5439   {   3, "returnError" },
5440   {   4, "reject" },
5441   { 0, NULL }
5442 };
5443
5444 static const ber_choice_t INAPPDU_choice[] = {
5445   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
5446   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResult_impl },
5447   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
5448   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
5449   { 0, 0, 0, 0, NULL }
5450 };
5451
5452 static guint8 inap_pdu_type = 0;
5453 static guint8 inap_pdu_size = 0;
5454
5455 static int
5456 dissect_inap_INAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
5457
5458   inap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
5459   /* Get the length and add 2 */
5460   inap_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
5461
5462   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5463                               INAPPDU_choice, hf_index, ett_inap_INAPPDU, NULL);
5464 /*
5465   if (check_col(pinfo->cinfo, COL_INFO)){
5466     col_prepend_fstr(pinfo->cinfo, COL_INFO, val_to_str(opcode, inap_opr_code_strings, "Unknown INAP (%u)"));
5467   }
5468 */
5469   return offset;
5470 }
5471
5472
5473
5474
5475 static void
5476 dissect_inap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
5477 {
5478     proto_item          *item=NULL;
5479     proto_tree          *tree=NULL;
5480
5481
5482     if (check_col(pinfo->cinfo, COL_PROTOCOL))
5483     {
5484         col_set_str(pinfo->cinfo, COL_PROTOCOL, "INAP");
5485     }
5486
5487     /* create display subtree for the protocol */
5488     if(parent_tree){
5489        item = proto_tree_add_item(parent_tree, proto_inap, tvb, 0, -1, FALSE);
5490        tree = proto_item_add_subtree(item, ett_inap);
5491     }
5492
5493     dissect_inap_INAPPDU(FALSE, tvb, 0, pinfo, tree, -1);
5494
5495
5496 }
5497
5498 /*--- proto_reg_handoff_inap ---------------------------------------*/
5499 static void range_delete_callback(guint32 ssn)
5500 {
5501     if (ssn) {
5502         delete_itu_tcap_subdissector(ssn, inap_handle);
5503     }
5504 }
5505
5506 static void range_add_callback(guint32 ssn)
5507 {
5508     if (ssn) {
5509         add_itu_tcap_subdissector(ssn, inap_handle);
5510     }
5511 }
5512
5513 void proto_reg_handoff_inap(void) {
5514
5515     static int inap_prefs_initialized = FALSE;
5516     
5517     inap_handle = create_dissector_handle(dissect_inap, proto_inap);
5518         
5519     if (!inap_prefs_initialized) {
5520             inap_prefs_initialized = TRUE;
5521     }
5522     else {
5523             range_foreach(ssn_range, range_delete_callback);
5524     }
5525
5526     g_free(ssn_range);
5527     ssn_range = range_copy(global_ssn_range);
5528
5529     range_foreach(ssn_range, range_add_callback);
5530 }
5531
5532
5533 void proto_register_inap(void) {
5534         module_t *inap_module;
5535   /* List of fields */
5536   static hf_register_info hf[] = {
5537     { &hf_inap_invokeCmd,
5538       { "invokeCmd", "inap.invokeCmd",
5539         FT_UINT32, BASE_DEC, VALS(inap_opr_code_strings), 0,
5540         "InvokePDU/invokeCmd", HFILL }},
5541    { &hf_inap_ReturnError,
5542       { "ReturnError", "inap.ReturnError",
5543         FT_UINT32, BASE_DEC, VALS(inap_error_code_strings), 0,
5544         "InvokePDU/ReturnError", HFILL }},
5545      { &hf_inap_invokeid,
5546       { "invokeid", "inap.invokeid",
5547         FT_INT32, BASE_DEC, NULL, 0,
5548         "InvokeId/invokeid", HFILL }},
5549         { &hf_inap_linkedid,
5550       { "linkedid", "inap.linkedid",
5551         FT_INT32, BASE_DEC, NULL, 0,
5552         "LinkedId/linkedid", HFILL }},
5553
5554     { &hf_inap_absent,
5555       { "absent", "inap.absent",
5556         FT_NONE, BASE_NONE, NULL, 0,
5557         "InvokeId/absent", HFILL }},
5558     { &hf_inap_invokeId,
5559       { "invokeId", "inap.invokeId",
5560         FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
5561         "InvokePDU/invokeId", HFILL }},
5562     { &hf_inap_invoke,
5563       { "invoke", "inap.invoke",
5564         FT_NONE, BASE_NONE, NULL, 0,
5565         "INAPPDU/invoke", HFILL }},
5566     { &hf_inap_returnResult,
5567       { "returnResult", "inap.returnResult",
5568         FT_NONE, BASE_NONE, NULL, 0,
5569         "INAPPDU/returnResult", HFILL }},
5570      
5571
5572
5573 /*--- Included file: packet-inap-hfarr.c ---*/
5574 #line 1 "packet-inap-hfarr.c"
5575     { &hf_inap_ActivateServiceFilteringArg_PDU,
5576       { "ActivateServiceFilteringArg", "inap.ActivateServiceFilteringArg",
5577         FT_NONE, BASE_NONE, NULL, 0,
5578         "ActivateServiceFilteringArg", HFILL }},
5579     { &hf_inap_AnalysedInformationArg_PDU,
5580       { "AnalysedInformationArg", "inap.AnalysedInformationArg",
5581         FT_NONE, BASE_NONE, NULL, 0,
5582         "AnalysedInformationArg", HFILL }},
5583     { &hf_inap_AnalyseInformationArg_PDU,
5584       { "AnalyseInformationArg", "inap.AnalyseInformationArg",
5585         FT_NONE, BASE_NONE, NULL, 0,
5586         "AnalyseInformationArg", HFILL }},
5587     { &hf_inap_ApplyChargingArg_PDU,
5588       { "ApplyChargingArg", "inap.ApplyChargingArg",
5589         FT_NONE, BASE_NONE, NULL, 0,
5590         "ApplyChargingArg", HFILL }},
5591     { &hf_inap_ApplyChargingReportArg_PDU,
5592       { "ApplyChargingReportArg", "inap.ApplyChargingReportArg",
5593         FT_BYTES, BASE_HEX, NULL, 0,
5594         "ApplyChargingReportArg", HFILL }},
5595     { &hf_inap_AssistRequestInstructionsArg_PDU,
5596       { "AssistRequestInstructionsArg", "inap.AssistRequestInstructionsArg",
5597         FT_NONE, BASE_NONE, NULL, 0,
5598         "AssistRequestInstructionsArg", HFILL }},
5599     { &hf_inap_CallGapArg_PDU,
5600       { "CallGapArg", "inap.CallGapArg",
5601         FT_NONE, BASE_NONE, NULL, 0,
5602         "CallGapArg", HFILL }},
5603     { &hf_inap_CallInformationReportArg_PDU,
5604       { "CallInformationReportArg", "inap.CallInformationReportArg",
5605         FT_NONE, BASE_NONE, NULL, 0,
5606         "CallInformationReportArg", HFILL }},
5607     { &hf_inap_CallInformationRequestArg_PDU,
5608       { "CallInformationRequestArg", "inap.CallInformationRequestArg",
5609         FT_NONE, BASE_NONE, NULL, 0,
5610         "CallInformationRequestArg", HFILL }},
5611     { &hf_inap_CancelArg_PDU,
5612       { "CancelArg", "inap.CancelArg",
5613         FT_UINT32, BASE_DEC, VALS(inap_CancelArg_vals), 0,
5614         "CancelArg", HFILL }},
5615     { &hf_inap_CollectedInformationArg_PDU,
5616       { "CollectedInformationArg", "inap.CollectedInformationArg",
5617         FT_NONE, BASE_NONE, NULL, 0,
5618         "CollectedInformationArg", HFILL }},
5619     { &hf_inap_CollectInformationArg_PDU,
5620       { "CollectInformationArg", "inap.CollectInformationArg",
5621         FT_NONE, BASE_NONE, NULL, 0,
5622         "CollectInformationArg", HFILL }},
5623     { &hf_inap_ConnectArg_PDU,
5624       { "ConnectArg", "inap.ConnectArg",
5625         FT_NONE, BASE_NONE, NULL, 0,
5626         "ConnectArg", HFILL }},
5627     { &hf_inap_ConnectToResourceArg_PDU,
5628       { "ConnectToResourceArg", "inap.ConnectToResourceArg",
5629         FT_NONE, BASE_NONE, NULL, 0,
5630         "ConnectToResourceArg", HFILL }},
5631     { &hf_inap_EstablishTemporaryConnectionArg_PDU,
5632       { "EstablishTemporaryConnectionArg", "inap.EstablishTemporaryConnectionArg",
5633         FT_NONE, BASE_NONE, NULL, 0,
5634         "EstablishTemporaryConnectionArg", HFILL }},
5635     { &hf_inap_EventNotificationChargingArg_PDU,
5636       { "EventNotificationChargingArg", "inap.EventNotificationChargingArg",
5637         FT_NONE, BASE_NONE, NULL, 0,
5638         "EventNotificationChargingArg", HFILL }},
5639     { &hf_inap_EventReportBCSMArg_PDU,
5640       { "EventReportBCSMArg", "inap.EventReportBCSMArg",
5641         FT_NONE, BASE_NONE, NULL, 0,
5642         "EventReportBCSMArg", HFILL }},
5643     { &hf_inap_FurnishChargingInformationArg_PDU,
5644       { "FurnishChargingInformationArg", "inap.FurnishChargingInformationArg",
5645         FT_BYTES, BASE_HEX, NULL, 0,
5646         "FurnishChargingInformationArg", HFILL }},
5647     { &hf_inap_HoldCallInNetworkArg_PDU,
5648       { "HoldCallInNetworkArg", "inap.HoldCallInNetworkArg",
5649         FT_UINT32, BASE_DEC, VALS(inap_HoldCallInNetworkArg_vals), 0,
5650         "HoldCallInNetworkArg", HFILL }},
5651     { &hf_inap_InitialDP_PDU,
5652       { "InitialDP", "inap.InitialDP",
5653         FT_NONE, BASE_NONE, NULL, 0,
5654         "InitialDP", HFILL }},
5655     { &hf_inap_InitiateCallAttemptArg_PDU,
5656       { "InitiateCallAttemptArg", "inap.InitiateCallAttemptArg",
5657         FT_NONE, BASE_NONE, NULL, 0,
5658         "InitiateCallAttemptArg", HFILL }},
5659     { &hf_inap_MidCallArg_PDU,
5660       { "MidCallArg", "inap.MidCallArg",
5661         FT_NONE, BASE_NONE, NULL, 0,
5662         "MidCallArg", HFILL }},
5663     { &hf_inap_OAnswerArg_PDU,
5664       { "OAnswerArg", "inap.OAnswerArg",
5665         FT_NONE, BASE_NONE, NULL, 0,
5666         "OAnswerArg", HFILL }},
5667     { &hf_inap_OCalledPartyBusyArg_PDU,
5668       { "OCalledPartyBusyArg", "inap.OCalledPartyBusyArg",
5669         FT_NONE, BASE_NONE, NULL, 0,
5670         "OCalledPartyBusyArg", HFILL }},
5671     { &hf_inap_ODisconnectArg_PDU,
5672       { "ODisconnectArg", "inap.ODisconnectArg",
5673         FT_NONE, BASE_NONE, NULL, 0,
5674         "ODisconnectArg", HFILL }},
5675     { &hf_inap_ONoAnswer_PDU,
5676       { "ONoAnswer", "inap.ONoAnswer",
5677         FT_NONE, BASE_NONE, NULL, 0,
5678         "ONoAnswer", HFILL }},
5679     { &hf_inap_OriginationAttemptAuthorizedArg_PDU,
5680       { "OriginationAttemptAuthorizedArg", "inap.OriginationAttemptAuthorizedArg",
5681         FT_NONE, BASE_NONE, NULL, 0,
5682         "OriginationAttemptAuthorizedArg", HFILL }},
5683     { &hf_inap_PlayAnnouncementArg_PDU,
5684       { "PlayAnnouncementArg", "inap.PlayAnnouncementArg",
5685         FT_NONE, BASE_NONE, NULL, 0,
5686         "PlayAnnouncementArg", HFILL }},
5687     { &hf_inap_PromptAndCollectUserInformationArg_PDU,
5688       { "PromptAndCollectUserInformationArg", "inap.PromptAndCollectUserInformationArg",
5689         FT_NONE, BASE_NONE, NULL, 0,
5690         "PromptAndCollectUserInformationArg", HFILL }},
5691     { &hf_inap_ReceivedInformationArg_PDU,
5692       { "ReceivedInformationArg", "inap.ReceivedInformationArg",
5693         FT_UINT32, BASE_DEC, VALS(inap_ReceivedInformationArg_vals), 0,
5694         "ReceivedInformationArg", HFILL }},
5695     { &hf_inap_ReleaseCallArg_PDU,
5696       { "ReleaseCallArg", "inap.ReleaseCallArg",
5697         FT_UINT32, BASE_DEC, VALS(inap_ReleaseCallArg_vals), 0,
5698         "ReleaseCallArg", HFILL }},
5699     { &hf_inap_RequestCurrentStatusReportArg_PDU,
5700       { "RequestCurrentStatusReportArg", "inap.RequestCurrentStatusReportArg",
5701         FT_UINT32, BASE_DEC, VALS(inap_ResourceID_vals), 0,
5702         "RequestCurrentStatusReportArg", HFILL }},
5703     { &hf_inap_RequestCurrentStatusReportResultArg_PDU,
5704       { "RequestCurrentStatusReportResultArg", "inap.RequestCurrentStatusReportResultArg",
5705         FT_NONE, BASE_NONE, NULL, 0,
5706         "RequestCurrentStatusReportResultArg", HFILL }},
5707     { &hf_inap_RequestEveryStatusChangeReportArg_PDU,
5708       { "RequestEveryStatusChangeReportArg", "inap.RequestEveryStatusChangeReportArg",
5709         FT_NONE, BASE_NONE, NULL, 0,
5710         "RequestEveryStatusChangeReportArg", HFILL }},
5711     { &hf_inap_RequestFirstStatusMatchReportArg_PDU,
5712       { "RequestFirstStatusMatchReportArg", "inap.RequestFirstStatusMatchReportArg",
5713         FT_NONE, BASE_NONE, NULL, 0,
5714         "RequestFirstStatusMatchReportArg", HFILL }},
5715     { &hf_inap_RequestNotificationChargingEvent_PDU,
5716       { "RequestNotificationChargingEvent", "inap.RequestNotificationChargingEvent",
5717         FT_UINT32, BASE_DEC, NULL, 0,
5718         "RequestNotificationChargingEvent", HFILL }},
5719     { &hf_inap_RequestReportBCSMEventArg_PDU,
5720       { "RequestReportBCSMEventArg", "inap.RequestReportBCSMEventArg",
5721         FT_NONE, BASE_NONE, NULL, 0,
5722         "RequestReportBCSMEventArg", HFILL }},
5723     { &hf_inap_ResetTimerArg_PDU,
5724       { "ResetTimerArg", "inap.ResetTimerArg",
5725         FT_NONE, BASE_NONE, NULL, 0,
5726         "ResetTimerArg", HFILL }},
5727     { &hf_inap_RouteSelectFailureArg_PDU,
5728       { "RouteSelectFailureArg", "inap.RouteSelectFailureArg",
5729         FT_NONE, BASE_NONE, NULL, 0,
5730         "RouteSelectFailureArg", HFILL }},
5731     { &hf_inap_SelectFacilityArg_PDU,
5732       { "SelectFacilityArg", "inap.SelectFacilityArg",
5733         FT_NONE, BASE_NONE, NULL, 0,
5734         "SelectFacilityArg", HFILL }},
5735     { &hf_inap_SelectRouteArg_PDU,
5736       { "SelectRouteArg", "inap.SelectRouteArg",
5737         FT_NONE, BASE_NONE, NULL, 0,
5738         "SelectRouteArg", HFILL }},
5739     { &hf_inap_ServiceFilteringResponseArg_PDU,
5740       { "ServiceFilteringResponseArg", "inap.ServiceFilteringResponseArg",
5741         FT_NONE, BASE_NONE, NULL, 0,
5742         "ServiceFilteringResponseArg", HFILL }},
5743     { &hf_inap_SpecializedResourceReportArg_PDU,
5744       { "SpecializedResourceReportArg", "inap.SpecializedResourceReportArg",
5745         FT_NONE, BASE_NONE, NULL, 0,
5746         "SpecializedResourceReportArg", HFILL }},
5747     { &hf_inap_StatusReportArg_PDU,
5748       { "StatusReportArg", "inap.StatusReportArg",
5749         FT_NONE, BASE_NONE, NULL, 0,
5750         "StatusReportArg", HFILL }},
5751     { &hf_inap_TAnswerArg_PDU,
5752       { "TAnswerArg", "inap.TAnswerArg",
5753         FT_NONE, BASE_NONE, NULL, 0,
5754         "TAnswerArg", HFILL }},
5755     { &hf_inap_TBusyArg_PDU,
5756       { "TBusyArg", "inap.TBusyArg",
5757         FT_NONE, BASE_NONE, NULL, 0,
5758         "TBusyArg", HFILL }},
5759     { &hf_inap_TDisconnectArg_PDU,
5760       { "TDisconnectArg", "inap.TDisconnectArg",
5761         FT_NONE, BASE_NONE, NULL, 0,
5762         "TDisconnectArg", HFILL }},
5763     { &hf_inap_TermAttemptAuthorizedArg_PDU,
5764       { "TermAttemptAuthorizedArg", "inap.TermAttemptAuthorizedArg",
5765         FT_NONE, BASE_NONE, NULL, 0,
5766         "TermAttemptAuthorizedArg", HFILL }},
5767     { &hf_inap_TNoAnswerArg_PDU,
5768       { "TNoAnswerArg", "inap.TNoAnswerArg",
5769         FT_NONE, BASE_NONE, NULL, 0,
5770         "TNoAnswerArg", HFILL }},
5771     { &hf_inap_originalCallID,
5772       { "originalCallID", "inap.originalCallID",
5773         FT_INT32, BASE_DEC, NULL, 0,
5774         "AddPartyArg/originalCallID", HFILL }},
5775     { &hf_inap_destinationCallID,
5776       { "destinationCallID", "inap.destinationCallID",
5777         FT_INT32, BASE_DEC, NULL, 0,
5778         "AddPartyArg/destinationCallID", HFILL }},
5779     { &hf_inap_newLegID,
5780       { "newLegID", "inap.newLegID",
5781         FT_BYTES, BASE_HEX, NULL, 0,
5782         "AttachArg/newLegID", HFILL }},
5783     { &hf_inap_correlationidentifier,
5784       { "correlationidentifier", "inap.correlationidentifier",
5785         FT_BYTES, BASE_HEX, NULL, 0,
5786         "", HFILL }},
5787     { &hf_inap_CallPartyHandlingResultsArg_item,
5788       { "Item", "inap.CallPartyHandlingResultsArg_item",
5789         FT_NONE, BASE_NONE, NULL, 0,
5790         "CallPartyHandlingResultsArg/_item", HFILL }},
5791     { &hf_inap_callID,
5792       { "callID", "inap.callID",
5793         FT_INT32, BASE_DEC, NULL, 0,
5794         "", HFILL }},
5795     { &hf_inap_targetCallID,
5796       { "targetCallID", "inap.targetCallID",
5797         FT_INT32, BASE_DEC, NULL, 0,
5798         "ChangePartiesArg/targetCallID", HFILL }},
5799     { &hf_inap_legToBeConnectedID,
5800       { "legToBeConnectedID", "inap.legToBeConnectedID",
5801         FT_BYTES, BASE_HEX, NULL, 0,
5802         "ChangePartiesArg/legToBeConnectedID", HFILL }},
5803     { &hf_inap_legToBeDetached,
5804       { "legToBeDetached", "inap.legToBeDetached",
5805         FT_BYTES, BASE_HEX, NULL, 0,
5806         "DetachArg/legToBeDetached", HFILL }},
5807     { &hf_inap_legID,
5808       { "legID", "inap.legID",
5809         FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0,
5810         "", HFILL }},
5811     { &hf_inap_heldLegID,
5812       { "heldLegID", "inap.heldLegID",
5813         FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0,
5814         "ReconnectArg/heldLegID", HFILL }},
5815     { &hf_inap_legToBeReleased,
5816       { "legToBeReleased", "inap.legToBeReleased",
5817         FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0,
5818         "ReleaseCallPartyConnectionArg/legToBeReleased", HFILL }},
5819     { &hf_inap_releaseCause,
5820       { "releaseCause", "inap.releaseCause",
5821         FT_BYTES, BASE_HEX, NULL, 0,
5822         "", HFILL }},
5823     { &hf_inap_legStatus,
5824       { "legStatus", "inap.legStatus",
5825         FT_UINT32, BASE_DEC, VALS(inap_LegStatus_vals), 0,
5826         "LegInformation/legStatus", HFILL }},
5827     { &hf_inap_Extensions_item,
5828       { "Item", "inap.Extensions_item",
5829         FT_NONE, BASE_NONE, NULL, 0,
5830         "Extensions/_item", HFILL }},
5831     { &hf_inap_type,
5832       { "type", "inap.type",
5833         FT_INT32, BASE_DEC, NULL, 0,
5834         "Extensions/_item/type", HFILL }},
5835     { &hf_inap_criticality,
5836       { "criticality", "inap.criticality",
5837         FT_UINT32, BASE_DEC, VALS(inap_T_criticality_vals), 0,
5838         "Extensions/_item/criticality", HFILL }},
5839     { &hf_inap_value,
5840       { "value", "inap.value",
5841         FT_BYTES, BASE_HEX, NULL, 0,
5842         "Extensions/_item/value", HFILL }},
5843     { &hf_inap_filteredCallTreatment,
5844       { "filteredCallTreatment", "inap.filteredCallTreatment",
5845         FT_NONE, BASE_NONE, NULL, 0,
5846         "ActivateServiceFilteringArg/filteredCallTreatment", HFILL }},
5847     { &hf_inap_filteringCharacteristics,
5848       { "filteringCharacteristics", "inap.filteringCharacteristics",
5849         FT_UINT32, BASE_DEC, VALS(inap_FilteringCharacteristics_vals), 0,
5850         "ActivateServiceFilteringArg/filteringCharacteristics", HFILL }},
5851     { &hf_inap_filteringTimeOut,
5852       { "filteringTimeOut", "inap.filteringTimeOut",
5853         FT_UINT32, BASE_DEC, VALS(inap_FilteringTimeOut_vals), 0,
5854         "ActivateServiceFilteringArg/filteringTimeOut", HFILL }},
5855     { &hf_inap_filteringCriteria,
5856       { "filteringCriteria", "inap.filteringCriteria",
5857         FT_UINT32, BASE_DEC, VALS(inap_FilteringCriteria_vals), 0,
5858         "", HFILL }},
5859     { &hf_inap_startTime,
5860       { "startTime", "inap.startTime",
5861         FT_BYTES, BASE_HEX, NULL, 0,
5862         "ActivateServiceFilteringArg/startTime", HFILL }},
5863     { &hf_inap_extensions,
5864       { "extensions", "inap.extensions",
5865         FT_UINT32, BASE_DEC, NULL, 0,
5866         "", HFILL }},
5867     { &hf_inap_dpSpecificCommonParameters,
5868       { "dpSpecificCommonParameters", "inap.dpSpecificCommonParameters",
5869         FT_NONE, BASE_NONE, NULL, 0,
5870         "", HFILL }},
5871     { &hf_inap_dialledDigits,
5872       { "dialledDigits", "inap.dialledDigits",
5873         FT_BYTES, BASE_HEX, NULL, 0,
5874         "", HFILL }},
5875     { &hf_inap_callingPartyBusinessGroupID,
5876       { "callingPartyBusinessGroupID", "inap.callingPartyBusinessGroupID",
5877         FT_BYTES, BASE_HEX, NULL, 0,
5878         "", HFILL }},
5879     { &hf_inap_callingPartySubaddress,
5880       { "callingPartySubaddress", "inap.callingPartySubaddress",
5881         FT_BYTES, BASE_HEX, NULL, 0,
5882         "", HFILL }},
5883     { &hf_inap_callingFacilityGroup,
5884       { "callingFacilityGroup", "inap.callingFacilityGroup",
5885         FT_UINT32, BASE_DEC, VALS(inap_FacilityGroup_vals), 0,
5886         "", HFILL }},
5887     { &hf_inap_callingFacilityGroupMember,
5888       { "callingFacilityGroupMember", "inap.callingFacilityGroupMember",
5889         FT_INT32, BASE_DEC, NULL, 0,
5890         "", HFILL }},
5891     { &hf_inap_originalCalledPartyID,
5892       { "originalCalledPartyID", "inap.originalCalledPartyID",
5893         FT_BYTES, BASE_HEX, NULL, 0,
5894         "", HFILL }},
5895     { &hf_inap_prefix,
5896       { "prefix", "inap.prefix",
5897         FT_BYTES, BASE_HEX, NULL, 0,
5898         "", HFILL }},
5899     { &hf_inap_redirectingPartyID,
5900       { "redirectingPartyID", "inap.redirectingPartyID",
5901         FT_BYTES, BASE_HEX, NULL, 0,
5902         "", HFILL }},
5903     { &hf_inap_redirectionInformation,
5904       { "redirectionInformation", "inap.redirectionInformation",
5905         FT_BYTES, BASE_HEX, NULL, 0,
5906         "", HFILL }},
5907     { &hf_inap_routeList,
5908       { "routeList", "inap.routeList",
5909         FT_UINT32, BASE_DEC, NULL, 0,
5910         "", HFILL }},
5911     { &hf_inap_travellingClassMark,
5912       { "travellingClassMark", "inap.travellingClassMark",
5913         FT_BYTES, BASE_HEX, NULL, 0,
5914         "", HFILL }},
5915     { &hf_inap_featureCode,
5916       { "featureCode", "inap.featureCode",
5917         FT_BYTES, BASE_HEX, NULL, 0,
5918         "", HFILL }},
5919     { &hf_inap_accessCode,
5920       { "accessCode", "inap.accessCode",
5921         FT_BYTES, BASE_HEX, NULL, 0,
5922         "", HFILL }},
5923     { &hf_inap_carrier,
5924       { "carrier", "inap.carrier",
5925         FT_BYTES, BASE_HEX, NULL, 0,
5926         "", HFILL }},
5927     { &hf_inap_destinationRoutingAddress,
5928       { "destinationRoutingAddress", "inap.destinationRoutingAddress",
5929         FT_UINT32, BASE_DEC, NULL, 0,
5930         "", HFILL }},
5931     { &hf_inap_alertingPattern,
5932       { "alertingPattern", "inap.alertingPattern",
5933         FT_BYTES, BASE_HEX, NULL, 0,
5934         "", HFILL }},
5935     { &hf_inap_iSDNAccessRelatedInformation,
5936       { "iSDNAccessRelatedInformation", "inap.iSDNAccessRelatedInformation",
5937         FT_BYTES, BASE_HEX, NULL, 0,
5938         "", HFILL }},
5939     { &hf_inap_callingPartyNumber,
5940       { "callingPartyNumber", "inap.callingPartyNumber",
5941         FT_BYTES, BASE_HEX, NULL, 0,
5942         "", HFILL }},
5943     { &hf_inap_callingPartysCategory,
5944       { "callingPartysCategory", "inap.callingPartysCategory",
5945         FT_UINT16, BASE_DEC, VALS(isup_calling_partys_category_value), 0,
5946         "", HFILL }},
5947     { &hf_inap_calledPartyNumber,
5948       { "calledPartyNumber", "inap.calledPartyNumber",
5949         FT_BYTES, BASE_HEX, NULL, 0,
5950         "", HFILL }},
5951     { &hf_inap_chargeNumber,
5952       { "chargeNumber", "inap.chargeNumber",
5953         FT_BYTES, BASE_HEX, NULL, 0,
5954         "", HFILL }},
5955     { &hf_inap_aChBillingChargingCharacteristics,
5956       { "aChBillingChargingCharacteristics", "inap.aChBillingChargingCharacteristics",
5957         FT_BYTES, BASE_HEX, NULL, 0,
5958         "ApplyChargingArg/aChBillingChargingCharacteristics", HFILL }},
5959     { &hf_inap_partyToCharge,
5960       { "partyToCharge", "inap.partyToCharge",
5961         FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0,
5962         "", HFILL }},
5963     { &hf_inap_correlationID,
5964       { "correlationID", "inap.correlationID",
5965         FT_BYTES, BASE_HEX, NULL, 0,
5966         "", HFILL }},
5967     { &hf_inap_iPAvailable,
5968       { "iPAvailable", "inap.iPAvailable",
5969         FT_BYTES, BASE_HEX, NULL, 0,
5970         "", HFILL }},
5971     { &hf_inap_iPSSPCapabilities,
5972       { "iPSSPCapabilities", "inap.iPSSPCapabilities",
5973         FT_BYTES, BASE_HEX, NULL, 0,
5974         "", HFILL }},
5975     { &hf_inap_gapCriteria,
5976       { "gapCriteria", "inap.gapCriteria",
5977         FT_UINT32, BASE_DEC, VALS(inap_GapCriteria_vals), 0,
5978         "CallGapArg/gapCriteria", HFILL }},
5979     { &hf_inap_gapIndicators,
5980       { "gapIndicators", "inap.gapIndicators",
5981         FT_NONE, BASE_NONE, NULL, 0,
5982         "CallGapArg/gapIndicators", HFILL }},
5983     { &hf_inap_controlType,
5984       { "controlType", "inap.controlType",
5985         FT_UINT32, BASE_DEC, VALS(inap_ControlType_vals), 0,
5986         "CallGapArg/controlType", HFILL }},
5987     { &hf_inap_gapTreatment,
5988       { "gapTreatment", "inap.gapTreatment",
5989         FT_UINT32, BASE_DEC, VALS(inap_GapTreatment_vals), 0,
5990         "CallGapArg/gapTreatment", HFILL }},
5991     { &hf_inap_requestedInformationTypeList,
5992       { "requestedInformationTypeList", "inap.requestedInformationTypeList",
5993         FT_UINT32, BASE_DEC, NULL, 0,
5994         "", HFILL }},
5995     { &hf_inap_invokeID,
5996       { "invokeID", "inap.invokeID",
5997         FT_INT32, BASE_DEC, NULL, 0,
5998         "CancelArg/invokeID", HFILL }},
5999     { &hf_inap_allRequests,
6000       { "allRequests", "inap.allRequests",
6001         FT_NONE, BASE_NONE, NULL, 0,
6002         "CancelArg/allRequests", HFILL }},
6003     { &hf_inap_resourceID,
6004       { "resourceID", "inap.resourceID",
6005         FT_UINT32, BASE_DEC, VALS(inap_ResourceID_vals), 0,
6006         "", HFILL }},
6007     { &hf_inap_numberingPlan,
6008       { "numberingPlan", "inap.numberingPlan",
6009         FT_BYTES, BASE_HEX, NULL, 0,
6010         "CollectInformationArg/numberingPlan", HFILL }},
6011     { &hf_inap_cutAndPaste,
6012       { "cutAndPaste", "inap.cutAndPaste",
6013         FT_UINT32, BASE_DEC, NULL, 0,
6014         "ConnectArg/cutAndPaste", HFILL }},
6015     { &hf_inap_forwardingCondition,
6016       { "forwardingCondition", "inap.forwardingCondition",
6017         FT_UINT32, BASE_DEC, VALS(inap_ForwardingCondition_vals), 0,
6018         "ConnectArg/forwardingCondition", HFILL }},
6019     { &hf_inap_scfID,
6020       { "scfID", "inap.scfID",
6021         FT_BYTES, BASE_HEX, NULL, 0,
6022         "", HFILL }},
6023     { &hf_inap_serviceInteractionIndicators,
6024       { "serviceInteractionIndicators", "inap.serviceInteractionIndicators",
6025         FT_BYTES, BASE_HEX, NULL, 0,
6026         "", HFILL }},
6027     { &hf_inap_resourceAddress,
6028       { "resourceAddress", "inap.resourceAddress",
6029         FT_UINT32, BASE_DEC, VALS(inap_T_resourceAddress_vals), 0,
6030         "ConnectToResourceArg/resourceAddress", HFILL }},
6031     { &hf_inap_ipRoutingAddress,
6032       { "ipRoutingAddress", "inap.ipRoutingAddress",
6033         FT_BYTES, BASE_HEX, NULL, 0,
6034         "", HFILL }},
6035     { &hf_inap_both2,
6036       { "both2", "inap.both2",
6037         FT_NONE, BASE_NONE, NULL, 0,
6038         "ConnectToResourceArg/resourceAddress/both2", HFILL }},
6039     { &hf_inap_none,
6040       { "none", "inap.none",
6041         FT_NONE, BASE_NONE, NULL, 0,
6042         "ConnectToResourceArg/resourceAddress/none", HFILL }},
6043     { &hf_inap_serviceAddressInformation,
6044       { "serviceAddressInformation", "inap.serviceAddressInformation",
6045         FT_NONE, BASE_NONE, NULL, 0,
6046         "DpSpecificCommonParameters/serviceAddressInformation", HFILL }},
6047     { &hf_inap_bearerCapability,
6048       { "bearerCapability", "inap.bearerCapability",
6049         FT_UINT32, BASE_DEC, VALS(inap_BearerCapability_vals), 0,
6050         "", HFILL }},
6051     { &hf_inap_cGEncountered,
6052       { "cGEncountered", "inap.cGEncountered",
6053         FT_UINT32, BASE_DEC, VALS(inap_CGEncountered_vals), 0,
6054         "", HFILL }},
6055     { &hf_inap_locationNumber,
6056       { "locationNumber", "inap.locationNumber",
6057         FT_BYTES, BASE_HEX, NULL, 0,
6058         "", HFILL }},
6059     { &hf_inap_serviceProfileIdentifier,
6060       { "serviceProfileIdentifier", "inap.serviceProfileIdentifier",
6061         FT_BYTES, BASE_HEX, NULL, 0,
6062         "", HFILL }},
6063     { &hf_inap_terminalType,
6064       { "terminalType", "inap.terminalType",
6065         FT_UINT32, BASE_DEC, VALS(inap_TerminalType_vals), 0,
6066         "", HFILL }},
6067     { &hf_inap_servingAreaID,
6068       { "servingAreaID", "inap.servingAreaID",
6069         FT_BYTES, BASE_HEX, NULL, 0,
6070         "DpSpecificCommonParameters/servingAreaID", HFILL }},
6071     { &hf_inap_assistingSSPIPRoutingAddress,
6072       { "assistingSSPIPRoutingAddress", "inap.assistingSSPIPRoutingAddress",
6073         FT_BYTES, BASE_HEX, NULL, 0,
6074         "EstablishTemporaryConnectionArg/assistingSSPIPRoutingAddress", HFILL }},
6075     { &hf_inap_eventTypeCharging,
6076       { "eventTypeCharging", "inap.eventTypeCharging",
6077         FT_BYTES, BASE_HEX, NULL, 0,
6078         "", HFILL }},
6079     { &hf_inap_eventSpecificInformationCharging,
6080       { "eventSpecificInformationCharging", "inap.eventSpecificInformationCharging",
6081         FT_BYTES, BASE_HEX, NULL, 0,
6082         "EventNotificationChargingArg/eventSpecificInformationCharging", HFILL }},
6083     { &hf_inap_monitorMode,
6084       { "monitorMode", "inap.monitorMode",
6085         FT_UINT32, BASE_DEC, VALS(inap_MonitorMode_vals), 0,
6086         "", HFILL }},
6087     { &hf_inap_eventTypeBCSM,
6088       { "eventTypeBCSM", "inap.eventTypeBCSM",
6089         FT_UINT32, BASE_DEC, VALS(inap_EventTypeBCSM_vals), 0,
6090         "", HFILL }},
6091     { &hf_inap_bcsmEventCorrelationID,
6092       { "bcsmEventCorrelationID", "inap.bcsmEventCorrelationID",
6093         FT_BYTES, BASE_HEX, NULL, 0,
6094         "", HFILL }},
6095     { &hf_inap_eventSpecificInformationBCSM,
6096       { "eventSpecificInformationBCSM", "inap.eventSpecificInformationBCSM",
6097         FT_UINT32, BASE_DEC, VALS(inap_EventSpecificInformationBCSM_vals), 0,
6098         "EventReportBCSMArg/eventSpecificInformationBCSM", HFILL }},
6099     { &hf_inap_miscCallInfo,
6100       { "miscCallInfo", "inap.miscCallInfo",
6101         FT_NONE, BASE_NONE, NULL, 0,
6102         "", HFILL }},
6103     { &hf_inap_holdcause,
6104       { "holdcause", "inap.holdcause",
6105         FT_BYTES, BASE_HEX, NULL, 0,
6106         "HoldCallInNetworkArg/holdcause", HFILL }},
6107     { &hf_inap_empty,
6108       { "empty", "inap.empty",
6109         FT_NONE, BASE_NONE, NULL, 0,
6110         "HoldCallInNetworkArg/empty", HFILL }},
6111     { &hf_inap_serviceKey,
6112       { "serviceKey", "inap.serviceKey",
6113         FT_UINT32, BASE_DEC, NULL, 0,
6114         "", HFILL }},
6115     { &hf_inap_triggerType,
6116       { "triggerType", "inap.triggerType",
6117         FT_UINT32, BASE_DEC, VALS(inap_TriggerType_vals), 0,
6118         "", HFILL }},
6119     { &hf_inap_highLayerCompatibility,
6120       { "highLayerCompatibility", "inap.highLayerCompatibility",
6121         FT_BYTES, BASE_HEX, NULL, 0,
6122         "InitialDP/highLayerCompatibility", HFILL }},
6123     { &hf_inap_additionalCallingPartyNumber,
6124       { "additionalCallingPartyNumber", "inap.additionalCallingPartyNumber",
6125         FT_BYTES, BASE_HEX, NULL, 0,
6126         "InitialDP/additionalCallingPartyNumber", HFILL }},
6127     { &hf_inap_forwardCallIndicators,
6128       { "forwardCallIndicators", "inap.forwardCallIndicators",
6129         FT_BYTES, BASE_HEX, NULL, 0,
6130         "InitialDP/forwardCallIndicators", HFILL }},
6131     { &hf_inap_calledPartyBusinessGroupID,
6132       { "calledPartyBusinessGroupID", "inap.calledPartyBusinessGroupID",
6133         FT_BYTES, BASE_HEX, NULL, 0,
6134         "", HFILL }},
6135     { &hf_inap_calledPartySubaddress,
6136       { "calledPartySubaddress", "inap.calledPartySubaddress",
6137         FT_BYTES, BASE_HEX, NULL, 0,
6138         "", HFILL }},
6139     { &hf_inap_featureRequestIndicator,
6140       { "featureRequestIndicator", "inap.featureRequestIndicator",
6141         FT_UINT32, BASE_DEC, VALS(inap_FeatureRequestIndicator_vals), 0,
6142         "MidCallArg/featureRequestIndicator", HFILL }},
6143     { &hf_inap_busyCause,
6144       { "busyCause", "inap.busyCause",
6145         FT_BYTES, BASE_HEX, NULL, 0,
6146         "", HFILL }},
6147     { &hf_inap_connectTime,
6148       { "connectTime", "inap.connectTime",
6149         FT_UINT32, BASE_DEC, NULL, 0,
6150         "", HFILL }},
6151     { &hf_inap_informationToSend,
6152       { "informationToSend", "inap.informationToSend",
6153         FT_UINT32, BASE_DEC, VALS(inap_InformationToSend_vals), 0,
6154         "", HFILL }},
6155     { &hf_inap_disconnectFromIPForbidden,
6156       { "disconnectFromIPForbidden", "inap.disconnectFromIPForbidden",
6157         FT_BOOLEAN, 8, NULL, 0,
6158         "", HFILL }},
6159     { &hf_inap_requestAnnouncementComplete,
6160       { "requestAnnouncementComplete", "inap.requestAnnouncementComplete",
6161         FT_BOOLEAN, 8, NULL, 0,
6162         "PlayAnnouncementArg/requestAnnouncementComplete", HFILL }},
6163     { &hf_inap_collectedInfo,
6164       { "collectedInfo", "inap.collectedInfo",
6165         FT_UINT32, BASE_DEC, VALS(inap_CollectedInfo_vals), 0,
6166         "PromptAndCollectUserInformationArg/collectedInfo", HFILL }},
6167     { &hf_inap_digitsResponse,
6168       { "digitsResponse", "inap.digitsResponse",
6169         FT_BYTES, BASE_HEX, NULL, 0,
6170         "ReceivedInformationArg/digitsResponse", HFILL }},
6171     { &hf_inap_iA5Response,
6172       { "iA5Response", "inap.iA5Response",
6173         FT_STRING, BASE_NONE, NULL, 0,
6174         "ReceivedInformationArg/iA5Response", HFILL }},
6175     { &hf_inap_initialCallSegment,
6176       { "initialCallSegment", "inap.initialCallSegment",
6177         FT_BYTES, BASE_HEX, NULL, 0,
6178         "ReleaseCallArg/initialCallSegment", HFILL }},
6179     { &hf_inap_allCallSegments,
6180       { "allCallSegments", "inap.allCallSegments",
6181         FT_NONE, BASE_NONE, NULL, 0,
6182         "ReleaseCallArg/allCallSegments", HFILL }},
6183     { &hf_inap_resourceStatus,
6184       { "resourceStatus", "inap.resourceStatus",
6185         FT_UINT32, BASE_DEC, VALS(inap_ResourceStatus_vals), 0,
6186         "", HFILL }},
6187     { &hf_inap_monitorDuration,
6188       { "monitorDuration", "inap.monitorDuration",
6189         FT_INT32, BASE_DEC, NULL, 0,
6190         "", HFILL }},
6191     { &hf_inap_RequestNotificationChargingEvent_item,
6192       { "Item", "inap.RequestNotificationChargingEvent_item",
6193         FT_NONE, BASE_NONE, NULL, 0,
6194         "RequestNotificationChargingEvent/_item", HFILL }},
6195     { &hf_inap_eventTypeCharging2,
6196       { "eventTypeCharging2", "inap.eventTypeCharging2",
6197         FT_BYTES, BASE_HEX, NULL, 0,
6198         "RequestNotificationChargingEvent/_item/eventTypeCharging2", HFILL }},
6199     { &hf_inap_bcsmEvents,
6200       { "bcsmEvents", "inap.bcsmEvents",
6201         FT_UINT32, BASE_DEC, NULL, 0,
6202         "RequestReportBCSMEventArg/bcsmEvents", HFILL }},
6203     { &hf_inap_bcsmEvents_item,
6204       { "Item", "inap.bcsmEvents_item",
6205         FT_NONE, BASE_NONE, NULL, 0,
6206         "RequestReportBCSMEventArg/bcsmEvents/_item", HFILL }},
6207     { &hf_inap_timerID,
6208       { "timerID", "inap.timerID",
6209         FT_UINT32, BASE_DEC, VALS(inap_TimerID_vals), 0,
6210         "ResetTimerArg/timerID", HFILL }},
6211     { &hf_inap_timervalue,
6212       { "timervalue", "inap.timervalue",
6213         FT_UINT32, BASE_DEC, NULL, 0,
6214         "ResetTimerArg/timervalue", HFILL }},
6215     { &hf_inap_failureCause,
6216       { "failureCause", "inap.failureCause",
6217         FT_BYTES, BASE_HEX, NULL, 0,
6218         "", HFILL }},
6219     { &hf_inap_destinationNumberRoutingAddress,
6220       { "destinationNumberRoutingAddress", "inap.destinationNumberRoutingAddress",
6221         FT_BYTES, BASE_HEX, NULL, 0,
6222         "SelectFacilityArg/destinationNumberRoutingAddress", HFILL }},
6223     { &hf_inap_calledFacilityGroup,
6224       { "calledFacilityGroup", "inap.calledFacilityGroup",
6225         FT_UINT32, BASE_DEC, VALS(inap_FacilityGroup_vals), 0,
6226         "", HFILL }},
6227     { &hf_inap_calledFacilityGroupMember,
6228       { "calledFacilityGroupMember", "inap.calledFacilityGroupMember",
6229         FT_INT32, BASE_DEC, NULL, 0,
6230         "", HFILL }},
6231     { &hf_inap_sCIBillingChargingCharacteristics,
6232       { "sCIBillingChargingCharacteristics", "inap.sCIBillingChargingCharacteristics",
6233         FT_BYTES, BASE_HEX, NULL, 0,
6234         "SendChargingInformationArg/sCIBillingChargingCharacteristics", HFILL }},
6235     { &hf_inap_countersValue,
6236       { "countersValue", "inap.countersValue",
6237         FT_UINT32, BASE_DEC, NULL, 0,
6238         "ServiceFilteringResponseArg/countersValue", HFILL }},
6239     { &hf_inap_responseCondition,
6240       { "responseCondition", "inap.responseCondition",
6241         FT_UINT32, BASE_DEC, VALS(inap_ResponseCondition_vals), 0,
6242         "ServiceFilteringResponseArg/responseCondition", HFILL }},
6243     { &hf_inap_reportCondition,
6244       { "reportCondition", "inap.reportCondition",
6245         FT_UINT32, BASE_DEC, VALS(inap_ReportCondition_vals), 0,
6246         "StatusReportArg/reportCondition", HFILL }},
6247     { &hf_inap_dpSpecificCriteria,
6248       { "dpSpecificCriteria", "inap.dpSpecificCriteria",
6249         FT_UINT32, BASE_DEC, VALS(inap_DpSpecificCriteria_vals), 0,
6250         "BCSMEvent/dpSpecificCriteria", HFILL }},
6251     { &hf_inap_bearerCap,
6252       { "bearerCap", "inap.bearerCap",
6253         FT_BYTES, BASE_HEX, NULL, 0,
6254         "BearerCapability/bearerCap", HFILL }},
6255     { &hf_inap_tmr,
6256       { "tmr", "inap.tmr",
6257         FT_BYTES, BASE_HEX, NULL, 0,
6258         "BearerCapability/tmr", HFILL }},
6259     { &hf_inap_minimumNbOfDigits,
6260       { "minimumNbOfDigits", "inap.minimumNbOfDigits",
6261         FT_UINT32, BASE_DEC, NULL, 0,
6262         "CollectedDigits/minimumNbOfDigits", HFILL }},
6263     { &hf_inap_maximumNbOfDigits,
6264       { "maximumNbOfDigits", "inap.maximumNbOfDigits",
6265         FT_UINT32, BASE_DEC, NULL, 0,
6266         "CollectedDigits/maximumNbOfDigits", HFILL }},
6267     { &hf_inap_endOfReplyDigit,
6268       { "endOfReplyDigit", "inap.endOfReplyDigit",
6269         FT_BYTES, BASE_HEX, NULL, 0,
6270         "CollectedDigits/endOfReplyDigit", HFILL }},
6271     { &hf_inap_cancelDigit,
6272       { "cancelDigit", "inap.cancelDigit",
6273         FT_BYTES, BASE_HEX, NULL, 0,
6274         "CollectedDigits/cancelDigit", HFILL }},
6275     { &hf_inap_startDigit,
6276       { "startDigit", "inap.startDigit",
6277         FT_BYTES, BASE_HEX, NULL, 0,
6278         "CollectedDigits/startDigit", HFILL }},
6279     { &hf_inap_firstDigitTimeOut,
6280       { "firstDigitTimeOut", "inap.firstDigitTimeOut",
6281         FT_UINT32, BASE_DEC, NULL, 0,
6282         "CollectedDigits/firstDigitTimeOut", HFILL }},
6283     { &hf_inap_interDigitTimeOut,
6284       { "interDigitTimeOut", "inap.interDigitTimeOut",
6285         FT_UINT32, BASE_DEC, NULL, 0,
6286         "CollectedDigits/interDigitTimeOut", HFILL }},
6287     { &hf_inap_errorTreatment,
6288       { "errorTreatment", "inap.errorTreatment",
6289         FT_UINT32, BASE_DEC, VALS(inap_ErrorTreatment_vals), 0,
6290         "CollectedDigits/errorTreatment", HFILL }},
6291     { &hf_inap_interruptableAnnInd,
6292       { "interruptableAnnInd", "inap.interruptableAnnInd",
6293         FT_BOOLEAN, 8, NULL, 0,
6294         "CollectedDigits/interruptableAnnInd", HFILL }},
6295     { &hf_inap_voiceInformation,
6296       { "voiceInformation", "inap.voiceInformation",
6297         FT_BOOLEAN, 8, NULL, 0,
6298         "CollectedDigits/voiceInformation", HFILL }},
6299     { &hf_inap_voiceBack,
6300       { "voiceBack", "inap.voiceBack",
6301         FT_BOOLEAN, 8, NULL, 0,
6302         "CollectedDigits/voiceBack", HFILL }},
6303     { &hf_inap_collectedDigits,
6304       { "collectedDigits", "inap.collectedDigits",
6305         FT_NONE, BASE_NONE, NULL, 0,
6306         "CollectedInfo/collectedDigits", HFILL }},
6307     { &hf_inap_iA5Information,
6308       { "iA5Information", "inap.iA5Information",
6309         FT_BOOLEAN, 8, NULL, 0,
6310         "CollectedInfo/iA5Information", HFILL }},
6311     { &hf_inap_counterID,
6312       { "counterID", "inap.counterID",
6313         FT_UINT32, BASE_DEC, NULL, 0,
6314         "CounterAndValue/counterID", HFILL }},
6315     { &hf_inap_counterValue,
6316       { "counterValue", "inap.counterValue",
6317         FT_UINT32, BASE_DEC, NULL, 0,
6318         "CounterAndValue/counterValue", HFILL }},
6319     { &hf_inap_CountersValue_item,
6320       { "Item", "inap.CountersValue_item",
6321         FT_NONE, BASE_NONE, NULL, 0,
6322         "CountersValue/_item", HFILL }},
6323     { &hf_inap_DestinationRoutingAddress_item,
6324       { "Item", "inap.DestinationRoutingAddress_item",
6325         FT_BYTES, BASE_HEX, NULL, 0,
6326         "DestinationRoutingAddress/_item", HFILL }},
6327     { &hf_inap_numberOfDigits,
6328       { "numberOfDigits", "inap.numberOfDigits",
6329         FT_UINT32, BASE_DEC, NULL, 0,
6330         "DpSpecificCriteria/numberOfDigits", HFILL }},
6331     { &hf_inap_applicationTimer,
6332       { "applicationTimer", "inap.applicationTimer",
6333         FT_UINT32, BASE_DEC, NULL, 0,
6334         "DpSpecificCriteria/applicationTimer", HFILL }},
6335     { &hf_inap_collectedInfoSpecificInfo,
6336       { "collectedInfoSpecificInfo", "inap.collectedInfoSpecificInfo",
6337         FT_NONE, BASE_NONE, NULL, 0,
6338         "EventSpecificInformationBCSM/collectedInfoSpecificInfo", HFILL }},
6339     { &hf_inap_calledPartynumber,
6340       { "calledPartynumber", "inap.calledPartynumber",
6341         FT_BYTES, BASE_HEX, NULL, 0,
6342         "", HFILL }},
6343     { &hf_inap_analyzedInfoSpecificInfo,
6344       { "analyzedInfoSpecificInfo", "inap.analyzedInfoSpecificInfo",
6345         FT_NONE, BASE_NONE, NULL, 0,
6346         "EventSpecificInformationBCSM/analyzedInfoSpecificInfo", HFILL }},
6347     { &hf_inap_routeSelectFailureSpecificInfo,
6348       { "routeSelectFailureSpecificInfo", "inap.routeSelectFailureSpecificInfo",
6349         FT_NONE, BASE_NONE, NULL, 0,
6350         "EventSpecificInformationBCSM/routeSelectFailureSpecificInfo", HFILL }},
6351     { &hf_inap_oCalledPartyBusySpecificInfo,
6352       { "oCalledPartyBusySpecificInfo", "inap.oCalledPartyBusySpecificInfo",
6353         FT_NONE, BASE_NONE, NULL, 0,
6354         "EventSpecificInformationBCSM/oCalledPartyBusySpecificInfo", HFILL }},
6355     { &hf_inap_oNoAnswerSpecificInfo,
6356       { "oNoAnswerSpecificInfo", "inap.oNoAnswerSpecificInfo",
6357         FT_NONE, BASE_NONE, NULL, 0,
6358         "EventSpecificInformationBCSM/oNoAnswerSpecificInfo", HFILL }},
6359     { &hf_inap_oAnswerSpecificInfo,
6360       { "oAnswerSpecificInfo", "inap.oAnswerSpecificInfo",
6361         FT_NONE, BASE_NONE, NULL, 0,
6362         "EventSpecificInformationBCSM/oAnswerSpecificInfo", HFILL }},
6363     { &hf_inap_oMidCallSpecificInfo,
6364       { "oMidCallSpecificInfo", "inap.oMidCallSpecificInfo",
6365         FT_NONE, BASE_NONE, NULL, 0,
6366         "EventSpecificInformationBCSM/oMidCallSpecificInfo", HFILL }},
6367     { &hf_inap_oDisconnectSpecificInfo,
6368       { "oDisconnectSpecificInfo", "inap.oDisconnectSpecificInfo",
6369         FT_NONE, BASE_NONE, NULL, 0,
6370         "EventSpecificInformationBCSM/oDisconnectSpecificInfo", HFILL }},
6371     { &hf_inap_tBusySpecificInfo,
6372       { "tBusySpecificInfo", "inap.tBusySpecificInfo",
6373         FT_NONE, BASE_NONE, NULL, 0,
6374         "EventSpecificInformationBCSM/tBusySpecificInfo", HFILL }},
6375     { &hf_inap_tNoAnswerSpecificInfo,
6376       { "tNoAnswerSpecificInfo", "inap.tNoAnswerSpecificInfo",
6377         FT_NONE, BASE_NONE, NULL, 0,
6378         "EventSpecificInformationBCSM/tNoAnswerSpecificInfo", HFILL }},
6379     { &hf_inap_tAnswerSpecificInfo,
6380       { "tAnswerSpecificInfo", "inap.tAnswerSpecificInfo",
6381         FT_NONE, BASE_NONE, NULL, 0,
6382         "EventSpecificInformationBCSM/tAnswerSpecificInfo", HFILL }},
6383     { &hf_inap_tMidCallSpecificInfo,
6384       { "tMidCallSpecificInfo", "inap.tMidCallSpecificInfo",
6385         FT_NONE, BASE_NONE, NULL, 0,
6386         "EventSpecificInformationBCSM/tMidCallSpecificInfo", HFILL }},
6387     { &hf_inap_tDisconnectSpecificInfo,
6388       { "tDisconnectSpecificInfo", "inap.tDisconnectSpecificInfo",
6389         FT_NONE, BASE_NONE, NULL, 0,
6390         "EventSpecificInformationBCSM/tDisconnectSpecificInfo", HFILL }},
6391     { &hf_inap_trunkGroupID,
6392       { "trunkGroupID", "inap.trunkGroupID",
6393         FT_INT32, BASE_DEC, NULL, 0,
6394         "", HFILL }},
6395     { &hf_inap_privateFacilityID,
6396       { "privateFacilityID", "inap.privateFacilityID",
6397         FT_INT32, BASE_DEC, NULL, 0,
6398         "FacilityGroup/privateFacilityID", HFILL }},
6399     { &hf_inap_huntGroup,
6400       { "huntGroup", "inap.huntGroup",
6401         FT_BYTES, BASE_HEX, NULL, 0,
6402         "FacilityGroup/huntGroup", HFILL }},
6403     { &hf_inap_routeIndex,
6404       { "routeIndex", "inap.routeIndex",
6405         FT_BYTES, BASE_HEX, NULL, 0,
6406         "FacilityGroup/routeIndex", HFILL }},
6407     { &hf_inap_sFBillingChargingCharacteristics,
6408       { "sFBillingChargingCharacteristics", "inap.sFBillingChargingCharacteristics",
6409         FT_BYTES, BASE_HEX, NULL, 0,
6410         "FilteredCallTreatment/sFBillingChargingCharacteristics", HFILL }},
6411     { &hf_inap_maximumNumberOfCounters,
6412       { "maximumNumberOfCounters", "inap.maximumNumberOfCounters",
6413         FT_UINT32, BASE_DEC, NULL, 0,
6414         "FilteredCallTreatment/maximumNumberOfCounters", HFILL }},
6415     { &hf_inap_interval1,
6416       { "interval1", "inap.interval1",
6417         FT_INT32, BASE_DEC, NULL, 0,
6418         "FilteringCharacteristics/interval1", HFILL }},
6419     { &hf_inap_numberOfCalls,
6420       { "numberOfCalls", "inap.numberOfCalls",
6421         FT_UINT32, BASE_DEC, NULL, 0,
6422         "FilteringCharacteristics/numberOfCalls", HFILL }},
6423     { &hf_inap_dialledNumber,
6424       { "dialledNumber", "inap.dialledNumber",
6425         FT_BYTES, BASE_HEX, NULL, 0,
6426         "FilteringCriteria/dialledNumber", HFILL }},
6427     { &hf_inap_callingLineID,
6428       { "callingLineID", "inap.callingLineID",
6429         FT_BYTES, BASE_HEX, NULL, 0,
6430         "FilteringCriteria/callingLineID", HFILL }},
6431     { &hf_inap_addressAndService,
6432       { "addressAndService", "inap.addressAndService",
6433         FT_NONE, BASE_NONE, NULL, 0,
6434         "FilteringCriteria/addressAndService", HFILL }},
6435     { &hf_inap_calledAddressValue,
6436       { "calledAddressValue", "inap.calledAddressValue",
6437         FT_BYTES, BASE_HEX, NULL, 0,
6438         "", HFILL }},
6439     { &hf_inap_callingAddressValue,
6440       { "callingAddressValue", "inap.callingAddressValue",
6441         FT_BYTES, BASE_HEX, NULL, 0,
6442         "", HFILL }},
6443     { &hf_inap_duration,
6444       { "duration", "inap.duration",
6445         FT_INT32, BASE_DEC, NULL, 0,
6446         "", HFILL }},
6447     { &hf_inap_stopTime,
6448       { "stopTime", "inap.stopTime",
6449         FT_BYTES, BASE_HEX, NULL, 0,
6450         "FilteringTimeOut/stopTime", HFILL }},
6451     { &hf_inap_gapOnService,
6452       { "gapOnService", "inap.gapOnService",
6453         FT_NONE, BASE_NONE, NULL, 0,
6454         "GapCriteria/gapOnService", HFILL }},
6455     { &hf_inap_calledAddressAndService,
6456       { "calledAddressAndService", "inap.calledAddressAndService",
6457         FT_NONE, BASE_NONE, NULL, 0,
6458         "GapCriteria/calledAddressAndService", HFILL }},
6459     { &hf_inap_callingAddressAndService,
6460       { "callingAddressAndService", "inap.callingAddressAndService",
6461         FT_NONE, BASE_NONE, NULL, 0,
6462         "GapCriteria/callingAddressAndService", HFILL }},
6463     { &hf_inap_dpCriteria,
6464       { "dpCriteria", "inap.dpCriteria",
6465         FT_UINT32, BASE_DEC, VALS(inap_EventTypeBCSM_vals), 0,
6466         "GapOnService/dpCriteria", HFILL }},
6467     { &hf_inap_gapInterval,
6468       { "gapInterval", "inap.gapInterval",
6469         FT_INT32, BASE_DEC, NULL, 0,
6470         "GapIndicators/gapInterval", HFILL }},
6471     { &hf_inap_both,
6472       { "both", "inap.both",
6473         FT_NONE, BASE_NONE, NULL, 0,
6474         "GapTreatment/both", HFILL }},
6475     { &hf_inap_messageID,
6476       { "messageID", "inap.messageID",
6477         FT_UINT32, BASE_DEC, VALS(inap_MessageID_vals), 0,
6478         "InbandInfo/messageID", HFILL }},
6479     { &hf_inap_numberOfRepetitions,
6480       { "numberOfRepetitions", "inap.numberOfRepetitions",
6481         FT_UINT32, BASE_DEC, NULL, 0,
6482         "InbandInfo/numberOfRepetitions", HFILL }},
6483     { &hf_inap_duration3,
6484       { "duration3", "inap.duration3",
6485         FT_UINT32, BASE_DEC, NULL, 0,
6486         "InbandInfo/duration3", HFILL }},
6487     { &hf_inap_interval,
6488       { "interval", "inap.interval",
6489         FT_UINT32, BASE_DEC, NULL, 0,
6490         "InbandInfo/interval", HFILL }},
6491     { &hf_inap_inbandInfo,
6492       { "inbandInfo", "inap.inbandInfo",
6493         FT_NONE, BASE_NONE, NULL, 0,
6494         "InformationToSend/inbandInfo", HFILL }},
6495     { &hf_inap_tone,
6496       { "tone", "inap.tone",
6497         FT_NONE, BASE_NONE, NULL, 0,
6498         "InformationToSend/tone", HFILL }},
6499     { &hf_inap_displayInformation,
6500       { "displayInformation", "inap.displayInformation",
6501         FT_STRING, BASE_NONE, NULL, 0,
6502         "InformationToSend/displayInformation", HFILL }},
6503     { &hf_inap_sendingSideID,
6504       { "sendingSideID", "inap.sendingSideID",
6505         FT_BYTES, BASE_HEX, NULL, 0,
6506         "LegID/sendingSideID", HFILL }},
6507     { &hf_inap_receivingSideID,
6508       { "receivingSideID", "inap.receivingSideID",
6509         FT_BYTES, BASE_HEX, NULL, 0,
6510         "LegID/receivingSideID", HFILL }},
6511     { &hf_inap_elementaryMessageID,
6512       { "elementaryMessageID", "inap.elementaryMessageID",
6513         FT_UINT32, BASE_DEC, NULL, 0,
6514         "", HFILL }},
6515     { &hf_inap_text,
6516       { "text", "inap.text",
6517         FT_NONE, BASE_NONE, NULL, 0,
6518         "MessageID/text", HFILL }},
6519     { &hf_inap_messageContent,
6520       { "messageContent", "inap.messageContent",
6521         FT_STRING, BASE_NONE, NULL, 0,
6522         "MessageID/text/messageContent", HFILL }},
6523     { &hf_inap_attributes,
6524       { "attributes", "inap.attributes",
6525         FT_BYTES, BASE_HEX, NULL, 0,
6526         "MessageID/text/attributes", HFILL }},
6527     { &hf_inap_elementaryMessageIDs,
6528       { "elementaryMessageIDs", "inap.elementaryMessageIDs",
6529         FT_UINT32, BASE_DEC, NULL, 0,
6530         "MessageID/elementaryMessageIDs", HFILL }},
6531     { &hf_inap_elementaryMessageIDs_item,
6532       { "Item", "inap.elementaryMessageIDs_item",
6533         FT_UINT32, BASE_DEC, NULL, 0,
6534         "MessageID/elementaryMessageIDs/_item", HFILL }},
6535     { &hf_inap_variableMessage,
6536       { "variableMessage", "inap.variableMessage",
6537         FT_NONE, BASE_NONE, NULL, 0,
6538         "MessageID/variableMessage", HFILL }},
6539     { &hf_inap_variableParts,
6540       { "variableParts", "inap.variableParts",
6541         FT_UINT32, BASE_DEC, NULL, 0,
6542         "MessageID/variableMessage/variableParts", HFILL }},
6543     { &hf_inap_variableParts_item,
6544       { "Item", "inap.variableParts_item",
6545         FT_UINT32, BASE_DEC, VALS(inap_VariablePart_vals), 0,
6546         "MessageID/variableMessage/variableParts/_item", HFILL }},
6547     { &hf_inap_messageType,
6548       { "messageType", "inap.messageType",
6549         FT_UINT32, BASE_DEC, VALS(inap_T_messageType_vals), 0,
6550         "MiscCallInfo/messageType", HFILL }},
6551     { &hf_inap_dpAssignment,
6552       { "dpAssignment", "inap.dpAssignment",
6553         FT_UINT32, BASE_DEC, VALS(inap_T_dpAssignment_vals), 0,
6554         "MiscCallInfo/dpAssignment", HFILL }},
6555     { &hf_inap_RequestedInformationList_item,
6556       { "Item", "inap.RequestedInformationList_item",
6557         FT_NONE, BASE_NONE, NULL, 0,
6558         "RequestedInformationList/_item", HFILL }},
6559     { &hf_inap_RequestedInformationTypeList_item,
6560       { "Item", "inap.RequestedInformationTypeList_item",
6561         FT_UINT32, BASE_DEC, VALS(inap_RequestedInformationType_vals), 0,
6562         "RequestedInformationTypeList/_item", HFILL }},
6563     { &hf_inap_requestedInformationType,
6564       { "requestedInformationType", "inap.requestedInformationType",
6565         FT_UINT32, BASE_DEC, VALS(inap_RequestedInformationType_vals), 0,
6566         "RequestedInformation/requestedInformationType", HFILL }},
6567     { &hf_inap_requestedInformationValue,
6568       { "requestedInformationValue", "inap.requestedInformationValue",
6569         FT_UINT32, BASE_DEC, VALS(inap_RequestedInformationValue_vals), 0,
6570         "RequestedInformation/requestedInformationValue", HFILL }},
6571     { &hf_inap_callAttemptElapsedTimeValue,
6572       { "callAttemptElapsedTimeValue", "inap.callAttemptElapsedTimeValue",
6573         FT_UINT32, BASE_DEC, NULL, 0,
6574         "RequestedInformationValue/callAttemptElapsedTimeValue", HFILL }},
6575     { &hf_inap_callStopTimeValue,
6576       { "callStopTimeValue", "inap.callStopTimeValue",
6577         FT_BYTES, BASE_HEX, NULL, 0,
6578         "RequestedInformationValue/callStopTimeValue", HFILL }},
6579     { &hf_inap_callConnectedElapsedTimeValue,
6580       { "callConnectedElapsedTimeValue", "inap.callConnectedElapsedTimeValue",
6581         FT_UINT32, BASE_DEC, NULL, 0,
6582         "RequestedInformationValue/callConnectedElapsedTimeValue", HFILL }},
6583     { &hf_inap_releaseCauseValue,
6584       { "releaseCauseValue", "inap.releaseCauseValue",
6585         FT_BYTES, BASE_HEX, NULL, 0,
6586         "RequestedInformationValue/releaseCauseValue", HFILL }},
6587     { &hf_inap_lineID,
6588       { "lineID", "inap.lineID",
6589         FT_BYTES, BASE_HEX, NULL, 0,
6590         "ResourceID/lineID", HFILL }},
6591     { &hf_inap_facilityGroupID,
6592       { "facilityGroupID", "inap.facilityGroupID",
6593         FT_UINT32, BASE_DEC, VALS(inap_FacilityGroup_vals), 0,
6594         "ResourceID/facilityGroupID", HFILL }},
6595     { &hf_inap_facilityGroupMemberID,
6596       { "facilityGroupMemberID", "inap.facilityGroupMemberID",
6597         FT_INT32, BASE_DEC, NULL, 0,
6598         "ResourceID/facilityGroupMemberID", HFILL }},
6599     { &hf_inap_RouteList_item,
6600       { "Item", "inap.RouteList_item",
6601         FT_BYTES, BASE_HEX, NULL, 0,
6602         "RouteList/_item", HFILL }},
6603     { &hf_inap_toneID,
6604       { "toneID", "inap.toneID",
6605         FT_UINT32, BASE_DEC, NULL, 0,
6606         "Tone/toneID", HFILL }},
6607     { &hf_inap_tone_duration,
6608       { "tone-duration", "inap.tone_duration",
6609         FT_UINT32, BASE_DEC, NULL, 0,
6610         "Tone/tone-duration", HFILL }},
6611     { &hf_inap_integer,
6612       { "integer", "inap.integer",
6613         FT_UINT32, BASE_DEC, NULL, 0,
6614         "VariablePart/integer", HFILL }},
6615     { &hf_inap_number,
6616       { "number", "inap.number",
6617         FT_BYTES, BASE_HEX, NULL, 0,
6618         "VariablePart/number", HFILL }},
6619     { &hf_inap_time,
6620       { "time", "inap.time",
6621         FT_BYTES, BASE_HEX, NULL, 0,
6622         "VariablePart/time", HFILL }},
6623     { &hf_inap_date2,
6624       { "date2", "inap.date2",
6625         FT_BYTES, BASE_HEX, NULL, 0,
6626         "VariablePart/date2", HFILL }},
6627     { &hf_inap_price,
6628       { "price", "inap.price",
6629         FT_BYTES, BASE_HEX, NULL, 0,
6630         "VariablePart/price", HFILL }},
6631     { &hf_inap_problem,
6632       { "problem", "inap.problem",
6633         FT_UINT32, BASE_DEC, VALS(inap_T_problem_vals), 0,
6634         "CancelFailed/problem", HFILL }},
6635     { &hf_inap_operation,
6636       { "operation", "inap.operation",
6637         FT_INT32, BASE_DEC, NULL, 0,
6638         "CancelFailed/operation", HFILL }},
6639     { &hf_inap_rinvokeID,
6640       { "rinvokeID", "inap.rinvokeID",
6641         FT_UINT32, BASE_DEC, VALS(inap_T_rinvokeID_vals), 0,
6642         "RejectPDU/rinvokeID", HFILL }},
6643     { &hf_inap_invidtype,
6644       { "invidtype", "inap.invidtype",
6645         FT_INT32, BASE_DEC, NULL, 0,
6646         "RejectPDU/rinvokeID/invidtype", HFILL }},
6647     { &hf_inap_null,
6648       { "null", "inap.null",
6649         FT_NONE, BASE_NONE, NULL, 0,
6650         "RejectPDU/rinvokeID/null", HFILL }},
6651     { &hf_inap_rproblem,
6652       { "rproblem", "inap.rproblem",
6653         FT_UINT32, BASE_DEC, VALS(inap_T_rproblem_vals), 0,
6654         "RejectPDU/rproblem", HFILL }},
6655     { &hf_inap_gp,
6656       { "gp", "inap.gp",
6657         FT_INT32, BASE_DEC, VALS(inap_GeneralProblem_vals), 0,
6658         "RejectPDU/rproblem/gp", HFILL }},
6659     { &hf_inap_ip,
6660       { "ip", "inap.ip",
6661         FT_INT32, BASE_DEC, VALS(inap_InvokeProblem_vals), 0,
6662         "RejectPDU/rproblem/ip", HFILL }},
6663     { &hf_inap_rrp,
6664       { "rrp", "inap.rrp",
6665         FT_INT32, BASE_DEC, VALS(inap_ReturnResultProblem_vals), 0,
6666         "RejectPDU/rproblem/rrp", HFILL }},
6667     { &hf_inap_rep,
6668       { "rep", "inap.rep",
6669         FT_INT32, BASE_DEC, VALS(inap_ReturnErrorProblem_vals), 0,
6670         "RejectPDU/rproblem/rep", HFILL }},
6671
6672 /*--- End of included file: packet-inap-hfarr.c ---*/
6673 #line 671 "packet-inap-template.c"
6674   };
6675
6676
6677
6678
6679
6680
6681   /* List of subtrees */
6682   static gint *ett[] = {
6683     &ett_inap,
6684     &ett_inap_InvokeId,
6685     &ett_inap_InvokePDU,
6686     &ett_inap_ReturnErrorPDU,
6687     &ett_inap_ReturnResultPDU,
6688     &ett_inap_ReturnResult_result,
6689     &ett_inap_INAPPDU,
6690     &ett_inapisup_parameter,
6691
6692 /*--- Included file: packet-inap-ettarr.c ---*/
6693 #line 1 "packet-inap-ettarr.c"
6694     &ett_inap_AddPartyArg,
6695     &ett_inap_AttachArg,
6696     &ett_inap_CallPartyHandlingResultsArg,
6697     &ett_inap_ChangePartiesArg,
6698     &ett_inap_DetachArg,
6699     &ett_inap_HoldCallPartyConnectionArg,
6700     &ett_inap_ReconnectArg,
6701     &ett_inap_ReleaseCallPartyConnectionArg,
6702     &ett_inap_LegInformation,
6703     &ett_inap_Extensions,
6704     &ett_inap_Extensions_item,
6705     &ett_inap_ActivateServiceFilteringArg,
6706     &ett_inap_AnalysedInformationArg,
6707     &ett_inap_AnalyseInformationArg,
6708     &ett_inap_ApplyChargingArg,
6709     &ett_inap_AssistRequestInstructionsArg,
6710     &ett_inap_CallGapArg,
6711     &ett_inap_CallInformationReportArg,
6712     &ett_inap_CallInformationRequestArg,
6713     &ett_inap_CancelArg,
6714     &ett_inap_CancelStatusReportRequestArg,
6715     &ett_inap_CollectedInformationArg,
6716     &ett_inap_CollectInformationArg,
6717     &ett_inap_ConnectArg,
6718     &ett_inap_ConnectToResourceArg,
6719     &ett_inap_T_resourceAddress,
6720     &ett_inap_T_both2,
6721     &ett_inap_DpSpecificCommonParameters,
6722     &ett_inap_EstablishTemporaryConnectionArg,
6723     &ett_inap_EventNotificationChargingArg,
6724     &ett_inap_EventReportBCSMArg,
6725     &ett_inap_HoldCallInNetworkArg,
6726     &ett_inap_InitialDP,
6727     &ett_inap_InitiateCallAttemptArg,
6728     &ett_inap_MidCallArg,
6729     &ett_inap_OAnswerArg,
6730     &ett_inap_OCalledPartyBusyArg,
6731     &ett_inap_ODisconnectArg,
6732     &ett_inap_ONoAnswer,
6733     &ett_inap_OriginationAttemptAuthorizedArg,
6734     &ett_inap_PlayAnnouncementArg,
6735     &ett_inap_PromptAndCollectUserInformationArg,
6736     &ett_inap_ReceivedInformationArg,
6737     &ett_inap_ReleaseCallArg,
6738     &ett_inap_T_allCallSegments,
6739     &ett_inap_RequestCurrentStatusReportResultArg,
6740     &ett_inap_RequestEveryStatusChangeReportArg,
6741     &ett_inap_RequestFirstStatusMatchReportArg,
6742     &ett_inap_RequestNotificationChargingEvent,
6743     &ett_inap_RequestNotificationChargingEvent_item,
6744     &ett_inap_RequestReportBCSMEventArg,
6745     &ett_inap_SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent,
6746     &ett_inap_ResetTimerArg,
6747     &ett_inap_RouteSelectFailureArg,
6748     &ett_inap_SelectFacilityArg,
6749     &ett_inap_SelectRouteArg,
6750     &ett_inap_SendChargingInformationArg,
6751     &ett_inap_ServiceFilteringResponseArg,
6752     &ett_inap_StatusReportArg,
6753     &ett_inap_TAnswerArg,
6754     &ett_inap_TBusyArg,
6755     &ett_inap_TDisconnectArg,
6756     &ett_inap_TermAttemptAuthorizedArg,
6757     &ett_inap_TNoAnswerArg,
6758     &ett_inap_BCSMEvent,
6759     &ett_inap_BearerCapability,
6760     &ett_inap_ChargingEvent,
6761     &ett_inap_CollectedDigits,
6762     &ett_inap_CollectedInfo,
6763     &ett_inap_CounterAndValue,
6764     &ett_inap_CountersValue,
6765     &ett_inap_DestinationRoutingAddress,
6766     &ett_inap_DpSpecificCriteria,
6767     &ett_inap_EventSpecificInformationBCSM,
6768     &ett_inap_T_collectedInfoSpecificInfo,
6769     &ett_inap_T_analyzedInfoSpecificInfo,
6770     &ett_inap_T_routeSelectFailureSpecificInfo,
6771     &ett_inap_T_oCalledPartyBusySpecificInfo,
6772     &ett_inap_T_oNoAnswerSpecificInfo,
6773     &ett_inap_T_oAnswerSpecificInfo,
6774     &ett_inap_T_oMidCallSpecificInfo,
6775     &ett_inap_T_oDisconnectSpecificInfo,
6776     &ett_inap_T_tBusySpecificInfo,
6777     &ett_inap_T_tNoAnswerSpecificInfo,
6778     &ett_inap_T_tAnswerSpecificInfo,
6779     &ett_inap_T_tMidCallSpecificInfo,
6780     &ett_inap_T_tDisconnectSpecificInfo,
6781     &ett_inap_FacilityGroup,
6782     &ett_inap_FilteredCallTreatment,
6783     &ett_inap_FilteringCharacteristics,
6784     &ett_inap_FilteringCriteria,
6785     &ett_inap_T_addressAndService,
6786     &ett_inap_FilteringTimeOut,
6787     &ett_inap_GapCriteria,
6788     &ett_inap_T_calledAddressAndService,
6789     &ett_inap_T_callingAddressAndService,
6790     &ett_inap_GapOnService,
6791     &ett_inap_GapIndicators,
6792     &ett_inap_GapTreatment,
6793     &ett_inap_T_both,
6794     &ett_inap_InbandInfo,
6795     &ett_inap_InformationToSend,
6796     &ett_inap_LegID,
6797     &ett_inap_MessageID,
6798     &ett_inap_T_text,
6799     &ett_inap_SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4,
6800     &ett_inap_T_variableMessage,
6801     &ett_inap_SEQUENCE_SIZE_1_5_OF_VariablePart,
6802     &ett_inap_MiscCallInfo,
6803     &ett_inap_RequestedInformationList,
6804     &ett_inap_RequestedInformationTypeList,
6805     &ett_inap_RequestedInformation,
6806     &ett_inap_RequestedInformationValue,
6807     &ett_inap_ResourceID,
6808     &ett_inap_RouteList,
6809     &ett_inap_ServiceAddressInformation,
6810     &ett_inap_Tone,
6811     &ett_inap_VariablePart,
6812     &ett_inap_CancelFailed,
6813     &ett_inap_RejectPDU,
6814     &ett_inap_T_rinvokeID,
6815     &ett_inap_T_rproblem,
6816
6817 /*--- End of included file: packet-inap-ettarr.c ---*/
6818 #line 689 "packet-inap-template.c"
6819   };
6820
6821   /* Register protocol */
6822   proto_inap = proto_register_protocol(PNAME, PSNAME, PFNAME);
6823 /*XXX  register_dissector("inap", dissect_inap, proto_inap);*/
6824   /* Register fields and subtrees */
6825   proto_register_field_array(proto_inap, hf, array_length(hf));
6826   proto_register_subtree_array(ett, array_length(ett));
6827   
6828   /* Set default SSNs */
6829   range_convert_str(&global_ssn_range, "106,241", MAX_SSN);
6830   ssn_range = range_empty();
6831   
6832   inap_module = prefs_register_protocol(proto_inap, proto_reg_handoff_inap);
6833
6834   prefs_register_range_preference(inap_module, "ssn", "TCAP SSNs",
6835                                   "TCAP Subsystem numbers used for INAP",
6836                                   &global_ssn_range, MAX_SSN);
6837 }
6838
6839
6840