/src/wireshark/epan/dissectors/packet-isdn-sup.c
Line | Count | Source (jump to first uncovered line) |
1 | | /* Do not modify this file. Changes will be overwritten. */ |
2 | | /* Generated automatically by the ASN.1 to Wireshark dissector compiler */ |
3 | | /* packet-isdn-sup.c */ |
4 | | /* asn2wrs.py -b -q -L -p isdn-sup -c ./isdn-sup.cnf -s ./packet-isdn-sup-template -D . -O ../.. Addressing-Data-Elements.asn Basic-Service-Elements.asn Embedded-Q931-Types.asn General-Errors.asn Advice-of-Charge-Operations.asn Closed-User-Group-Service-Operations.asn Conference-Add-On-Operations.asn Diversion-Operations.asn MCID-Operations.asn User-To-User-Signalling-Operations.asn Freephone-Operations.asn MLPP-Operations-And-Errors.asn */ |
5 | | |
6 | | /* packet-isdn-sup-template.c |
7 | | * Routines for ETSI Integrated Services Digital Network (ISDN) |
8 | | * supplementary services |
9 | | * Copyright 2013, Anders Broman <anders.broman@ericsson.com> |
10 | | * |
11 | | * Wireshark - Network traffic analyzer |
12 | | * By Gerald Combs <gerald@wireshark.org> |
13 | | * Copyright 1998 Gerald Combs |
14 | | * |
15 | | * SPDX-License-Identifier: GPL-2.0-or-later |
16 | | * References: ETSI 300 374 |
17 | | */ |
18 | | |
19 | | #include "config.h" |
20 | | |
21 | | #include <epan/packet.h> |
22 | | #include <epan/expert.h> |
23 | | #include <wsutil/array.h> |
24 | | |
25 | | #include "packet-ber.h" |
26 | | |
27 | 14 | #define PNAME "ISDN supplementary services" |
28 | 14 | #define PSNAME "ISDN_SUP" |
29 | 56 | #define PFNAME "isdn_sup" |
30 | | |
31 | | void proto_register_isdn_sup(void); |
32 | | void proto_reg_handoff_isdn_sup(void); |
33 | | |
34 | | static dissector_handle_t isdn_sup_arg_handle; |
35 | | static dissector_handle_t isdn_sup_res_handle; |
36 | | static dissector_handle_t isdn_sup_err_handle; |
37 | | |
38 | | #define fPHOID "0.4.0.210.1" |
39 | | |
40 | | /* Initialize the protocol and registered fields */ |
41 | | static int proto_isdn_sup; |
42 | | static int hf_isdn_sup_operation; |
43 | | static int hf_isdn_sup_error; |
44 | | |
45 | | /* Global variables */ |
46 | | |
47 | | #if 0 |
48 | | /* ROSE context */ |
49 | | static rose_ctx_t isdn_sup_rose_ctx; |
50 | | #endif |
51 | | |
52 | | typedef struct _isdn_sup_op_t { |
53 | | int32_t opcode; |
54 | | dissector_t arg_pdu; |
55 | | dissector_t res_pdu; |
56 | | } isdn_sup_op_t; |
57 | | |
58 | | typedef struct _isdn_global_sup_op_t { |
59 | | const char* oid; |
60 | | dissector_t arg_pdu; |
61 | | dissector_t res_pdu; |
62 | | } isdn_sup_global_op_t; |
63 | | |
64 | | |
65 | | typedef struct isdn_sup_err_t { |
66 | | int32_t errcode; |
67 | | dissector_t err_pdu; |
68 | | } isdn_sup_err_t; |
69 | | |
70 | | static const value_string isdn_sup_str_operation[] = { |
71 | | { 1, "userUserService" }, |
72 | | { 2, "cUGcall" }, |
73 | | { 3, "mCIDRequest" }, |
74 | | { 7, "activationDiversion" }, |
75 | | { 8, "deactivationDiversion" }, |
76 | | { 9, "activationStatusNotificationDiv" }, |
77 | | { 10, "deactivationStatusNotificationDiv" }, |
78 | | { 11, "interrogationDiversion" }, |
79 | | { 12, "diversionInformation" }, |
80 | | { 13, "callDeflection" }, |
81 | | { 14, "callRerouteing" }, |
82 | | { 15, "divertingLegInformation2" }, |
83 | | { 17, "interrogateServedUserNumbers" }, |
84 | | { 18, "divertingLegInformation1" }, |
85 | | { 19, "divertingLegInformation3" }, |
86 | | { 24, "mLPPLFBQuery" }, |
87 | | { 25, "mLPPCallRequest" }, |
88 | | { 26, "mLPPCallPreemption" }, |
89 | | { 30, "chargingRequest" }, |
90 | | { 31, "aOCSCurrency" }, |
91 | | { 32, "aOCSSpecialArr" }, |
92 | | { 33, "aOCDCurrency" }, |
93 | | { 34, "aOCDChargingUnit" }, |
94 | | { 35, "aOCECurrency" }, |
95 | | { 36, "aOCEChargingUnit" }, |
96 | | { 40, "beginCONF" }, |
97 | | { 41, "addCONF" }, |
98 | | { 42, "splitCONF" }, |
99 | | { 43, "dropCONF" }, |
100 | | { 44, "isolateCONF" }, |
101 | | { 45, "reattachCONF" }, |
102 | | { 46, "partyDISC" }, |
103 | | { 0, NULL} |
104 | | }; |
105 | | |
106 | | |
107 | | static const value_string isdn_sup_str_error[] = { |
108 | | { 0, "notSubscribed" }, |
109 | | { 3, "notAvailable" }, |
110 | | { 4, "notImplemented" }, |
111 | | { 6, "invalidServedUserNr" }, |
112 | | { 7, "invalidCallState" }, |
113 | | { 8, "basicServiceNotProvided" }, |
114 | | { 9, "notIncomingCall" }, |
115 | | { 10, "supplementaryServiceInteractionNotAllowed" }, |
116 | | { 11, "resourceUnavailable" }, |
117 | | { 26, "noChargingInfoAvailable" }, |
118 | | { 16, "invalidOrUnregisteredCUGIndex" }, |
119 | | { 17, "requestedBasicServiceViolatesCUGConstraints" }, |
120 | | { 18, "outgoingCallsBarredWithinCUG" }, |
121 | | { 19, "incomingCallsBarredWithinCUG" }, |
122 | | { 20, "userNotMemberOfCUG" }, |
123 | | { 21, "inconsistencyInDesignatedFacilityAndSubscriberClass" }, |
124 | | { 28, "illConferenceId" }, |
125 | | { 29, "illPartyId" }, |
126 | | { 30, "numberOfPartiesExceeded" }, |
127 | | { 31, "notActive" }, |
128 | | { 32, "notAllowed" }, |
129 | | { 12, "invalidDivertedToNr" }, |
130 | | { 14, "specialServiceNr" }, |
131 | | { 15, "diversionToServedUserNr" }, |
132 | | { 23, "incomingCallAccepted" }, |
133 | | { 24, "numberOfDiversionsExceeded" }, |
134 | | { 46, "notActivated" }, |
135 | | { 48, "requestAlreadyAccepted" }, |
136 | | { 1, "rejectedByTheNetwork" }, |
137 | | { 2, "rejectedByTheUser" }, |
138 | | { 44, "unauthorizedPrecedenceLevel" }, |
139 | | { 0, NULL} |
140 | | }; |
141 | | |
142 | | static int hf_isdn_sup; |
143 | | |
144 | | static int hf_isdn_sup_ChargingRequestArg_PDU; /* ChargingRequestArg */ |
145 | | static int hf_isdn_sup_ChargingRequestRes_PDU; /* ChargingRequestRes */ |
146 | | static int hf_isdn_sup_AOCSCurrencyArg_PDU; /* AOCSCurrencyArg */ |
147 | | static int hf_isdn_sup_AOCSSpecialArrArg_PDU; /* AOCSSpecialArrArg */ |
148 | | static int hf_isdn_sup_AOCDCurrencyArg_PDU; /* AOCDCurrencyArg */ |
149 | | static int hf_isdn_sup_AOCDChargingUnitArg_PDU; /* AOCDChargingUnitArg */ |
150 | | static int hf_isdn_sup_AOCECurrencyArg_PDU; /* AOCECurrencyArg */ |
151 | | static int hf_isdn_sup_AOCEChargingUnitArg_PDU; /* AOCEChargingUnitArg */ |
152 | | static int hf_isdn_sup_CUGcallArg_PDU; /* CUGcallArg */ |
153 | | static int hf_isdn_sup_BeginCONFArg_PDU; /* BeginCONFArg */ |
154 | | static int hf_isdn_sup_BeginCONFRes_PDU; /* BeginCONFRes */ |
155 | | static int hf_isdn_sup_AddCONFArg_PDU; /* AddCONFArg */ |
156 | | static int hf_isdn_sup_AddCONFRes_PDU; /* AddCONFRes */ |
157 | | static int hf_isdn_sup_SplitCONFArg_PDU; /* SplitCONFArg */ |
158 | | static int hf_isdn_sup_DropCONFArg_PDU; /* DropCONFArg */ |
159 | | static int hf_isdn_sup_IsolateCONFArg_PDU; /* IsolateCONFArg */ |
160 | | static int hf_isdn_sup_ReattachCONFArg_PDU; /* ReattachCONFArg */ |
161 | | static int hf_isdn_sup_PartyDISCArg_PDU; /* PartyDISCArg */ |
162 | | static int hf_isdn_sup_ActivationDiversionArg_PDU; /* ActivationDiversionArg */ |
163 | | static int hf_isdn_sup_DeactivationDiversionArg_PDU; /* DeactivationDiversionArg */ |
164 | | static int hf_isdn_sup_ActivationStatusNotificationDivArg_PDU; /* ActivationStatusNotificationDivArg */ |
165 | | static int hf_isdn_sup_DeactivationStatusNotificationDivArg_PDU; /* DeactivationStatusNotificationDivArg */ |
166 | | static int hf_isdn_sup_InterrogationDiversionArg_PDU; /* InterrogationDiversionArg */ |
167 | | static int hf_isdn_sup_InterrogationDiversionRes_PDU; /* InterrogationDiversionRes */ |
168 | | static int hf_isdn_sup_InterrogateServedUserNumbersRes_PDU; /* InterrogateServedUserNumbersRes */ |
169 | | static int hf_isdn_sup_DiversionInformationArg_PDU; /* DiversionInformationArg */ |
170 | | static int hf_isdn_sup_CallDeflectionArg_PDU; /* CallDeflectionArg */ |
171 | | static int hf_isdn_sup_CallRerouteingArg_PDU; /* CallRerouteingArg */ |
172 | | static int hf_isdn_sup_DivertingLegInformation1Arg_PDU; /* DivertingLegInformation1Arg */ |
173 | | static int hf_isdn_sup_DivertingLegInformation2Arg_PDU; /* DivertingLegInformation2Arg */ |
174 | | static int hf_isdn_sup_DivertingLegInformation3Arg_PDU; /* DivertingLegInformation3Arg */ |
175 | | static int hf_isdn_sup_UserUserServiceArg_PDU; /* UserUserServiceArg */ |
176 | | static int hf_isdn_sup_CalledFreephoneNrArg_PDU; /* CalledFreephoneNrArg */ |
177 | | static int hf_isdn_sup_Monitor_T_FPHArg_PDU; /* Monitor_T_FPHArg */ |
178 | | static int hf_isdn_sup_Free_T_FPHArg_PDU; /* Free_T_FPHArg */ |
179 | | static int hf_isdn_sup_Call_T_FPHArg_PDU; /* Call_T_FPHArg */ |
180 | | static int hf_isdn_sup_MLPPLFBArg_PDU; /* MLPPLFBArg */ |
181 | | static int hf_isdn_sup_MLPPLFBResp_PDU; /* MLPPLFBResp */ |
182 | | static int hf_isdn_sup_MLPPParams_PDU; /* MLPPParams */ |
183 | | static int hf_isdn_sup_StatusRequest_PDU; /* StatusRequest */ |
184 | | static int hf_isdn_sup_PreemptParams_PDU; /* PreemptParams */ |
185 | | static int hf_isdn_sup_presentationallowedaddressscreened; /* AddressScreened */ |
186 | | static int hf_isdn_sup_presentationRestricted; /* NULL */ |
187 | | static int hf_isdn_sup_numberNotAvailableDueToInterworking; /* NULL */ |
188 | | static int hf_isdn_sup_presentationrestrictedaddressscreened; /* AddressScreened */ |
189 | | static int hf_isdn_sup_presentationAllowedAddress; /* Address */ |
190 | | static int hf_isdn_sup_presentationRestrictedAddress; /* Address */ |
191 | | static int hf_isdn_sup_presentationallowednumberscreened; /* NumberScreened */ |
192 | | static int hf_isdn_sup_presentationrestrictednumberscreened; /* NumberScreened */ |
193 | | static int hf_isdn_sup_presentationAllowedNumber; /* PartyNumber */ |
194 | | static int hf_isdn_sup_presentationRestrictedNumber; /* PartyNumber */ |
195 | | static int hf_isdn_sup_partyNumber; /* PartyNumber */ |
196 | | static int hf_isdn_sup_screeningIndicator; /* ScreeningIndicator */ |
197 | | static int hf_isdn_sup_partySubaddress; /* PartySubaddress */ |
198 | | static int hf_isdn_sup_unknownPartyNumber; /* NumberDigits */ |
199 | | static int hf_isdn_sup_publicPartyNumber; /* PublicPartyNumber */ |
200 | | static int hf_isdn_sup_nsapEncodedNumber; /* NsapEncodedNumber */ |
201 | | static int hf_isdn_sup_dataPartyNumber; /* NumberDigits */ |
202 | | static int hf_isdn_sup_telexPartyNumber; /* NumberDigits */ |
203 | | static int hf_isdn_sup_privatePartyNumber; /* PrivatePartyNumber */ |
204 | | static int hf_isdn_sup_nationalStandardPartyNumber; /* NumberDigits */ |
205 | | static int hf_isdn_sup_publicTypeOfNumber; /* PublicTypeOfNumber */ |
206 | | static int hf_isdn_sup_publicNumberDigits; /* NumberDigits */ |
207 | | static int hf_isdn_sup_privateTypeOfNumber; /* PrivateTypeOfNumber */ |
208 | | static int hf_isdn_sup_privateNumberDigits; /* NumberDigits */ |
209 | | static int hf_isdn_sup_userSpecifiedSubaddress; /* UserSpecifiedSubaddress */ |
210 | | static int hf_isdn_sup_nSAPSubaddress; /* NSAPSubaddress */ |
211 | | static int hf_isdn_sup_subaddressInformation; /* SubaddressInformation */ |
212 | | static int hf_isdn_sup_oddCountIndicator; /* BOOLEAN */ |
213 | | static int hf_isdn_sup_aOCSCurrencyInfoList; /* AOCSCurrencyInfoList */ |
214 | | static int hf_isdn_sup_aOCSSpecialArrInfo; /* AOCSSpecialArrInfo */ |
215 | | static int hf_isdn_sup_chargingInfoFollows; /* NULL */ |
216 | | static int hf_isdn_sup_chargeNotAvailable; /* NULL */ |
217 | | static int hf_isdn_sup_aOCDCurrencyInfo; /* AOCDCurrencyInfo */ |
218 | | static int hf_isdn_sup_aOCDChargingUnitInfo; /* AOCDChargingUnitInfo */ |
219 | | static int hf_isdn_sup_aOCECurrencyInfo; /* AOCECurrencyInfo */ |
220 | | static int hf_isdn_sup_aOCEChargingUnitInfo; /* AOCEChargingUnitInfo */ |
221 | | static int hf_isdn_sup_AOCSCurrencyInfoList_item; /* AOCSCurrencyInfo */ |
222 | | static int hf_isdn_sup_chargedItem; /* ChargedItem */ |
223 | | static int hf_isdn_sup_chargingtype; /* T_chargingtype */ |
224 | | static int hf_isdn_sup_aocschargingtypespecificCurrency; /* AOCSChargingTypeSpecificCurrency */ |
225 | | static int hf_isdn_sup_durationCurrency; /* DurationCurrency */ |
226 | | static int hf_isdn_sup_flatRateCurrency; /* FlatRateCurrency */ |
227 | | static int hf_isdn_sup_volumeRateCurrency; /* VolumeRateCurrency */ |
228 | | static int hf_isdn_sup_specialChargingCode; /* SpecialChargingCode */ |
229 | | static int hf_isdn_sup_freeOfCharge; /* NULL */ |
230 | | static int hf_isdn_sup_currencyInfoNotAvailable; /* NULL */ |
231 | | static int hf_isdn_sup_dCurrency; /* Currency */ |
232 | | static int hf_isdn_sup_dAmount; /* Amount */ |
233 | | static int hf_isdn_sup_dChargingType; /* ChargingType */ |
234 | | static int hf_isdn_sup_dTime; /* Time */ |
235 | | static int hf_isdn_sup_dGranularity; /* Time */ |
236 | | static int hf_isdn_sup_fRCurrency; /* Currency */ |
237 | | static int hf_isdn_sup_fRAmount; /* Amount */ |
238 | | static int hf_isdn_sup_vRCurrency; /* Currency */ |
239 | | static int hf_isdn_sup_vRAmount; /* Amount */ |
240 | | static int hf_isdn_sup_vRVolumeUnit; /* VolumeUnit */ |
241 | | static int hf_isdn_sup_aocdspecificCurrency; /* AOCDSpecificCurrency */ |
242 | | static int hf_isdn_sup_recordedCurrency; /* RecordedCurrency */ |
243 | | static int hf_isdn_sup_typeOfChargingInfo; /* TypeOfChargingInfo */ |
244 | | static int hf_isdn_sup_aOCDBillingId; /* AOCDBillingId */ |
245 | | static int hf_isdn_sup_aocdspecificchargingunits; /* AOCDSpecificChargingUnits */ |
246 | | static int hf_isdn_sup_recordedUnitsList; /* RecordedUnitsList */ |
247 | | static int hf_isdn_sup_rCurrency; /* Currency */ |
248 | | static int hf_isdn_sup_rAmount; /* Amount */ |
249 | | static int hf_isdn_sup_RecordedUnitsList_item; /* RecordedUnits */ |
250 | | static int hf_isdn_sup_recoredunitscc; /* RecoredUnitsCc */ |
251 | | static int hf_isdn_sup_recordedNumberOfUnits; /* NumberOfUnits */ |
252 | | static int hf_isdn_sup_notAvailable; /* NULL */ |
253 | | static int hf_isdn_sup_recordedTypeOfUnits; /* TypeOfUnit */ |
254 | | static int hf_isdn_sup_aocecurrencycc; /* AOCECurrencyCc */ |
255 | | static int hf_isdn_sup_aoceccspecificCurrency; /* AOCECcSpecificCurrency */ |
256 | | static int hf_isdn_sup_aOCEBillingId; /* AOCEBillingId */ |
257 | | static int hf_isdn_sup_chargingAssociation; /* ChargingAssociation */ |
258 | | static int hf_isdn_sup_aocechargingunitcc; /* AOCEChargingUnitCc */ |
259 | | static int hf_isdn_sup_aoceccspecificchargingunits; /* AOCECcSpecificChargingUnits */ |
260 | | static int hf_isdn_sup_currencyAmount; /* CurrencyAmount */ |
261 | | static int hf_isdn_sup_multiplier; /* Multiplier */ |
262 | | static int hf_isdn_sup_lengthOfTimeUnit; /* LengthOfTimeUnit */ |
263 | | static int hf_isdn_sup_scale; /* Scale */ |
264 | | static int hf_isdn_sup_chargeNumber; /* PartyNumber */ |
265 | | static int hf_isdn_sup_chargeIdentifier; /* ChargeIdentifier */ |
266 | | static int hf_isdn_sup_oARequested; /* OARequested */ |
267 | | static int hf_isdn_sup_cUGIndex; /* CUGIndex */ |
268 | | static int hf_isdn_sup_conferenceId; /* ConferenceId */ |
269 | | static int hf_isdn_sup_partyId; /* PartyId */ |
270 | | static int hf_isdn_sup_procedure; /* Procedure */ |
271 | | static int hf_isdn_sup_basicService; /* BasicService */ |
272 | | static int hf_isdn_sup_forwardedToAddress; /* Address */ |
273 | | static int hf_isdn_sup_servedUserNr; /* ServedUserNr */ |
274 | | static int hf_isdn_sup_noReplyTimer; /* NoReplyTimer */ |
275 | | static int hf_isdn_sup_forwardedToAddresss; /* Address */ |
276 | | static int hf_isdn_sup_diversionReason; /* DiversionReason */ |
277 | | static int hf_isdn_sup_servedUserSubaddress; /* PartySubaddress */ |
278 | | static int hf_isdn_sup_callingAddress; /* PresentedAddressScreened */ |
279 | | static int hf_isdn_sup_originalCalledNr; /* PresentedNumberUnscreened */ |
280 | | static int hf_isdn_sup_lastDivertingNr; /* PresentedNumberUnscreened */ |
281 | | static int hf_isdn_sup_lastDivertingReason; /* DiversionReason */ |
282 | | static int hf_isdn_sup_userInfo; /* Q931InformationElement */ |
283 | | static int hf_isdn_sup_deflectionAddress; /* Address */ |
284 | | static int hf_isdn_sup_presentationAllowedDivertedToUser; /* PresentationAllowedIndicator */ |
285 | | static int hf_isdn_sup_rerouteingReason; /* DiversionReason */ |
286 | | static int hf_isdn_sup_calledAddress; /* Address */ |
287 | | static int hf_isdn_sup_rerouteingCounter; /* DiversionCounter */ |
288 | | static int hf_isdn_sup_q931InfoElement; /* Q931InformationElement */ |
289 | | static int hf_isdn_sup_lastRerouteingNr; /* PresentedNumberUnscreened */ |
290 | | static int hf_isdn_sup_subscriptionOption; /* SubscriptionOption */ |
291 | | static int hf_isdn_sup_callingPartySubaddress; /* PartySubaddress */ |
292 | | static int hf_isdn_sup_divertedToNumber; /* PresentedNumberUnscreened */ |
293 | | static int hf_isdn_sup_diversionCounter; /* DiversionCounter */ |
294 | | static int hf_isdn_sup_divertingNr; /* PresentedNumberUnscreened */ |
295 | | static int hf_isdn_sup_IntResultList_item; /* IntResult */ |
296 | | static int hf_isdn_sup_individualNumber; /* PartyNumber */ |
297 | | static int hf_isdn_sup_allNumbers; /* NULL */ |
298 | | static int hf_isdn_sup_ServedUserNumberList_item; /* PartyNumber */ |
299 | | static int hf_isdn_sup_service; /* Service */ |
300 | | static int hf_isdn_sup_preferred; /* Preferred */ |
301 | | static int hf_isdn_sup_servedUserDestination; /* PartyNumber */ |
302 | | static int hf_isdn_sup_queueIdentity; /* QueueIdentity */ |
303 | | static int hf_isdn_sup_fPHReference; /* FPHReference */ |
304 | | static int hf_isdn_sup_calledFreephoneNr; /* CalledFreephoneNr */ |
305 | | static int hf_isdn_sup_mlppParams; /* MLPPParams */ |
306 | | static int hf_isdn_sup_ieArg; /* IEArg */ |
307 | | static int hf_isdn_sup_precLevel; /* PrecLevel */ |
308 | | static int hf_isdn_sup_lfbIndictn; /* LFBIndictn */ |
309 | | static int hf_isdn_sup_mlppSvcDomn; /* MLPPSvcDomn */ |
310 | | static int hf_isdn_sup_statusQuery; /* StatusQuery */ |
311 | | static int hf_isdn_sup_location; /* Location */ |
312 | | |
313 | | |
314 | | /* Initialize the subtree pointers */ |
315 | | static int ett_isdn_sup; |
316 | | |
317 | | static int ett_isdn_sup_PresentedAddressScreened; |
318 | | static int ett_isdn_sup_PresentedAddressUnscreened; |
319 | | static int ett_isdn_sup_PresentedNumberScreened; |
320 | | static int ett_isdn_sup_PresentedNumberUnscreened; |
321 | | static int ett_isdn_sup_AddressScreened; |
322 | | static int ett_isdn_sup_NumberScreened; |
323 | | static int ett_isdn_sup_Address; |
324 | | static int ett_isdn_sup_PartyNumber; |
325 | | static int ett_isdn_sup_PublicPartyNumber; |
326 | | static int ett_isdn_sup_PrivatePartyNumber; |
327 | | static int ett_isdn_sup_PartySubaddress; |
328 | | static int ett_isdn_sup_UserSpecifiedSubaddress; |
329 | | static int ett_isdn_sup_ChargingRequestRes; |
330 | | static int ett_isdn_sup_AOCSCurrencyArg; |
331 | | static int ett_isdn_sup_AOCSSpecialArrArg; |
332 | | static int ett_isdn_sup_AOCDCurrencyArg; |
333 | | static int ett_isdn_sup_AOCDChargingUnitArg; |
334 | | static int ett_isdn_sup_AOCECurrencyArg; |
335 | | static int ett_isdn_sup_AOCEChargingUnitArg; |
336 | | static int ett_isdn_sup_AOCSCurrencyInfoList; |
337 | | static int ett_isdn_sup_AOCSCurrencyInfo; |
338 | | static int ett_isdn_sup_T_chargingtype; |
339 | | static int ett_isdn_sup_AOCSChargingTypeSpecificCurrency; |
340 | | static int ett_isdn_sup_DurationCurrency; |
341 | | static int ett_isdn_sup_FlatRateCurrency; |
342 | | static int ett_isdn_sup_VolumeRateCurrency; |
343 | | static int ett_isdn_sup_AOCDCurrencyInfo; |
344 | | static int ett_isdn_sup_AOCDSpecificCurrency; |
345 | | static int ett_isdn_sup_AOCDChargingUnitInfo; |
346 | | static int ett_isdn_sup_AOCDSpecificChargingUnits; |
347 | | static int ett_isdn_sup_RecordedCurrency; |
348 | | static int ett_isdn_sup_RecordedUnitsList; |
349 | | static int ett_isdn_sup_RecordedUnits; |
350 | | static int ett_isdn_sup_RecoredUnitsCc; |
351 | | static int ett_isdn_sup_AOCECurrencyInfo; |
352 | | static int ett_isdn_sup_AOCECurrencyCc; |
353 | | static int ett_isdn_sup_AOCECcSpecificCurrency; |
354 | | static int ett_isdn_sup_AOCEChargingUnitInfo; |
355 | | static int ett_isdn_sup_AOCEChargingUnitCc; |
356 | | static int ett_isdn_sup_AOCECcSpecificChargingUnits; |
357 | | static int ett_isdn_sup_Amount; |
358 | | static int ett_isdn_sup_Time; |
359 | | static int ett_isdn_sup_ChargingAssociation; |
360 | | static int ett_isdn_sup_CUGcallArg; |
361 | | static int ett_isdn_sup_BeginCONFRes; |
362 | | static int ett_isdn_sup_SplitCONFArg; |
363 | | static int ett_isdn_sup_ActivationDiversionArg; |
364 | | static int ett_isdn_sup_DeactivationDiversionArg; |
365 | | static int ett_isdn_sup_ActivationStatusNotificationDivArg; |
366 | | static int ett_isdn_sup_DeactivationStatusNotificationDivArg; |
367 | | static int ett_isdn_sup_InterrogationDiversionArg; |
368 | | static int ett_isdn_sup_DiversionInformationArg; |
369 | | static int ett_isdn_sup_CallDeflectionArg; |
370 | | static int ett_isdn_sup_CallRerouteingArg; |
371 | | static int ett_isdn_sup_DivertingLegInformation1Arg; |
372 | | static int ett_isdn_sup_DivertingLegInformation2Arg; |
373 | | static int ett_isdn_sup_IntResultList; |
374 | | static int ett_isdn_sup_IntResult; |
375 | | static int ett_isdn_sup_ServedUserNr; |
376 | | static int ett_isdn_sup_ServedUserNumberList; |
377 | | static int ett_isdn_sup_UserUserServiceArg; |
378 | | static int ett_isdn_sup_Monitor_T_FPHArg; |
379 | | static int ett_isdn_sup_Free_T_FPHArg; |
380 | | static int ett_isdn_sup_Call_T_FPHArg; |
381 | | static int ett_isdn_sup_MLPPLFBArg; |
382 | | static int ett_isdn_sup_MLPPParams; |
383 | | static int ett_isdn_sup_MLPPLFBResp; |
384 | | |
385 | | /* static expert_field ei_isdn_sup_unsupported_arg_type; */ |
386 | | static expert_field ei_isdn_sup_unsupported_result_type; |
387 | | static expert_field ei_isdn_sup_unsupported_error_type; |
388 | | |
389 | | /* Preference settings default */ |
390 | | |
391 | | /* Global variables */ |
392 | | |
393 | | |
394 | | |
395 | | static int |
396 | 0 | dissect_isdn_sup_NumberDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
397 | 0 | offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, |
398 | 0 | actx, tree, tvb, offset, hf_index, |
399 | 0 | NULL); |
400 | |
|
401 | 0 | return offset; |
402 | 0 | } |
403 | | |
404 | | |
405 | | static const value_string isdn_sup_PublicTypeOfNumber_vals[] = { |
406 | | { 0, "unknown" }, |
407 | | { 1, "internationalNumber" }, |
408 | | { 2, "nationalNumber" }, |
409 | | { 3, "networkSpecificNumber" }, |
410 | | { 4, "subscriberNumber" }, |
411 | | { 6, "abbreviatedNumber" }, |
412 | | { 0, NULL } |
413 | | }; |
414 | | |
415 | | |
416 | | static int |
417 | 0 | dissect_isdn_sup_PublicTypeOfNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
418 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
419 | 0 | NULL); |
420 | |
|
421 | 0 | return offset; |
422 | 0 | } |
423 | | |
424 | | |
425 | | static const ber_sequence_t PublicPartyNumber_sequence[] = { |
426 | | { &hf_isdn_sup_publicTypeOfNumber, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_PublicTypeOfNumber }, |
427 | | { &hf_isdn_sup_publicNumberDigits, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_NumberDigits }, |
428 | | { NULL, 0, 0, 0, NULL } |
429 | | }; |
430 | | |
431 | | static int |
432 | 0 | dissect_isdn_sup_PublicPartyNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
433 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
434 | 0 | PublicPartyNumber_sequence, hf_index, ett_isdn_sup_PublicPartyNumber); |
435 | |
|
436 | 0 | return offset; |
437 | 0 | } |
438 | | |
439 | | |
440 | | |
441 | | static int |
442 | 0 | dissect_isdn_sup_NsapEncodedNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
443 | 0 | offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, |
444 | 0 | NULL); |
445 | |
|
446 | 0 | return offset; |
447 | 0 | } |
448 | | |
449 | | |
450 | | static const value_string isdn_sup_PrivateTypeOfNumber_vals[] = { |
451 | | { 0, "unknown" }, |
452 | | { 1, "level2RegionalNumber" }, |
453 | | { 2, "level1RegionalNumber" }, |
454 | | { 3, "pTNSpecificNumber" }, |
455 | | { 4, "localNumber" }, |
456 | | { 6, "abbreviatedNumber" }, |
457 | | { 0, NULL } |
458 | | }; |
459 | | |
460 | | |
461 | | static int |
462 | 0 | dissect_isdn_sup_PrivateTypeOfNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
463 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
464 | 0 | NULL); |
465 | |
|
466 | 0 | return offset; |
467 | 0 | } |
468 | | |
469 | | |
470 | | static const ber_sequence_t PrivatePartyNumber_sequence[] = { |
471 | | { &hf_isdn_sup_privateTypeOfNumber, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_PrivateTypeOfNumber }, |
472 | | { &hf_isdn_sup_privateNumberDigits, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_NumberDigits }, |
473 | | { NULL, 0, 0, 0, NULL } |
474 | | }; |
475 | | |
476 | | static int |
477 | 0 | dissect_isdn_sup_PrivatePartyNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
478 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
479 | 0 | PrivatePartyNumber_sequence, hf_index, ett_isdn_sup_PrivatePartyNumber); |
480 | |
|
481 | 0 | return offset; |
482 | 0 | } |
483 | | |
484 | | |
485 | | static const value_string isdn_sup_PartyNumber_vals[] = { |
486 | | { 0, "unknownPartyNumber" }, |
487 | | { 1, "publicPartyNumber" }, |
488 | | { 2, "nsapEncodedNumber" }, |
489 | | { 3, "dataPartyNumber" }, |
490 | | { 4, "telexPartyNumber" }, |
491 | | { 5, "privatePartyNumber" }, |
492 | | { 8, "nationalStandardPartyNumber" }, |
493 | | { 0, NULL } |
494 | | }; |
495 | | |
496 | | static const ber_choice_t PartyNumber_choice[] = { |
497 | | { 0, &hf_isdn_sup_unknownPartyNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_isdn_sup_NumberDigits }, |
498 | | { 1, &hf_isdn_sup_publicPartyNumber, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_PublicPartyNumber }, |
499 | | { 2, &hf_isdn_sup_nsapEncodedNumber, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_isdn_sup_NsapEncodedNumber }, |
500 | | { 3, &hf_isdn_sup_dataPartyNumber, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_isdn_sup_NumberDigits }, |
501 | | { 4, &hf_isdn_sup_telexPartyNumber, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_isdn_sup_NumberDigits }, |
502 | | { 5, &hf_isdn_sup_privatePartyNumber, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_isdn_sup_PrivatePartyNumber }, |
503 | | { 8, &hf_isdn_sup_nationalStandardPartyNumber, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_isdn_sup_NumberDigits }, |
504 | | { 0, NULL, 0, 0, 0, NULL } |
505 | | }; |
506 | | |
507 | | static int |
508 | 0 | dissect_isdn_sup_PartyNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
509 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
510 | 0 | PartyNumber_choice, hf_index, ett_isdn_sup_PartyNumber, |
511 | 0 | NULL); |
512 | |
|
513 | 0 | return offset; |
514 | 0 | } |
515 | | |
516 | | |
517 | | static const value_string isdn_sup_ScreeningIndicator_vals[] = { |
518 | | { 0, "userProvidedNotScreened" }, |
519 | | { 1, "userProvidedVerifiedAndPassed" }, |
520 | | { 2, "userProvidedVerifiedAndFailed" }, |
521 | | { 3, "networkProvided" }, |
522 | | { 0, NULL } |
523 | | }; |
524 | | |
525 | | |
526 | | static int |
527 | 0 | dissect_isdn_sup_ScreeningIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
528 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
529 | 0 | NULL); |
530 | |
|
531 | 0 | return offset; |
532 | 0 | } |
533 | | |
534 | | |
535 | | |
536 | | static int |
537 | 0 | dissect_isdn_sup_SubaddressInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
538 | 0 | offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, |
539 | 0 | NULL); |
540 | |
|
541 | 0 | return offset; |
542 | 0 | } |
543 | | |
544 | | |
545 | | |
546 | | static int |
547 | 0 | dissect_isdn_sup_BOOLEAN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
548 | 0 | offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); |
549 | |
|
550 | 0 | return offset; |
551 | 0 | } |
552 | | |
553 | | |
554 | | static const ber_sequence_t UserSpecifiedSubaddress_sequence[] = { |
555 | | { &hf_isdn_sup_subaddressInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_SubaddressInformation }, |
556 | | { &hf_isdn_sup_oddCountIndicator, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_isdn_sup_BOOLEAN }, |
557 | | { NULL, 0, 0, 0, NULL } |
558 | | }; |
559 | | |
560 | | static int |
561 | 0 | dissect_isdn_sup_UserSpecifiedSubaddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
562 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
563 | 0 | UserSpecifiedSubaddress_sequence, hf_index, ett_isdn_sup_UserSpecifiedSubaddress); |
564 | |
|
565 | 0 | return offset; |
566 | 0 | } |
567 | | |
568 | | |
569 | | |
570 | | static int |
571 | 0 | dissect_isdn_sup_NSAPSubaddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
572 | 0 | offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, |
573 | 0 | NULL); |
574 | |
|
575 | 0 | return offset; |
576 | 0 | } |
577 | | |
578 | | |
579 | | static const value_string isdn_sup_PartySubaddress_vals[] = { |
580 | | { 0, "userSpecifiedSubaddress" }, |
581 | | { 1, "nSAPSubaddress" }, |
582 | | { 0, NULL } |
583 | | }; |
584 | | |
585 | | static const ber_choice_t PartySubaddress_choice[] = { |
586 | | { 0, &hf_isdn_sup_userSpecifiedSubaddress, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_UserSpecifiedSubaddress }, |
587 | | { 1, &hf_isdn_sup_nSAPSubaddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_NSAPSubaddress }, |
588 | | { 0, NULL, 0, 0, 0, NULL } |
589 | | }; |
590 | | |
591 | | static int |
592 | 0 | dissect_isdn_sup_PartySubaddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
593 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
594 | 0 | PartySubaddress_choice, hf_index, ett_isdn_sup_PartySubaddress, |
595 | 0 | NULL); |
596 | |
|
597 | 0 | return offset; |
598 | 0 | } |
599 | | |
600 | | |
601 | | static const ber_sequence_t AddressScreened_sequence[] = { |
602 | | { &hf_isdn_sup_partyNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PartyNumber }, |
603 | | { &hf_isdn_sup_screeningIndicator, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_ScreeningIndicator }, |
604 | | { &hf_isdn_sup_partySubaddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PartySubaddress }, |
605 | | { NULL, 0, 0, 0, NULL } |
606 | | }; |
607 | | |
608 | | static int |
609 | 0 | dissect_isdn_sup_AddressScreened(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
610 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
611 | 0 | AddressScreened_sequence, hf_index, ett_isdn_sup_AddressScreened); |
612 | |
|
613 | 0 | return offset; |
614 | 0 | } |
615 | | |
616 | | |
617 | | |
618 | | static int |
619 | 0 | dissect_isdn_sup_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
620 | 0 | offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); |
621 | |
|
622 | 0 | return offset; |
623 | 0 | } |
624 | | |
625 | | |
626 | | static const value_string isdn_sup_PresentedAddressScreened_vals[] = { |
627 | | { 0, "presentationAllowedAddress" }, |
628 | | { 1, "presentationRestricted" }, |
629 | | { 2, "numberNotAvailableDueToInterworking" }, |
630 | | { 3, "presentationRestrictedAddress" }, |
631 | | { 0, NULL } |
632 | | }; |
633 | | |
634 | | static const ber_choice_t PresentedAddressScreened_choice[] = { |
635 | | { 0, &hf_isdn_sup_presentationallowedaddressscreened, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_isdn_sup_AddressScreened }, |
636 | | { 1, &hf_isdn_sup_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_NULL }, |
637 | | { 2, &hf_isdn_sup_numberNotAvailableDueToInterworking, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_isdn_sup_NULL }, |
638 | | { 3, &hf_isdn_sup_presentationrestrictedaddressscreened, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_isdn_sup_AddressScreened }, |
639 | | { 0, NULL, 0, 0, 0, NULL } |
640 | | }; |
641 | | |
642 | | static int |
643 | 0 | dissect_isdn_sup_PresentedAddressScreened(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
644 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
645 | 0 | PresentedAddressScreened_choice, hf_index, ett_isdn_sup_PresentedAddressScreened, |
646 | 0 | NULL); |
647 | |
|
648 | 0 | return offset; |
649 | 0 | } |
650 | | |
651 | | |
652 | | static const ber_sequence_t Address_sequence[] = { |
653 | | { &hf_isdn_sup_partyNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PartyNumber }, |
654 | | { &hf_isdn_sup_partySubaddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PartySubaddress }, |
655 | | { NULL, 0, 0, 0, NULL } |
656 | | }; |
657 | | |
658 | | static int |
659 | 0 | dissect_isdn_sup_Address(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
660 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
661 | 0 | Address_sequence, hf_index, ett_isdn_sup_Address); |
662 | |
|
663 | 0 | return offset; |
664 | 0 | } |
665 | | |
666 | | |
667 | | |
668 | | |
669 | | |
670 | | static const value_string isdn_sup_PresentedNumberUnscreened_vals[] = { |
671 | | { 0, "presentationAllowedNumber" }, |
672 | | { 1, "presentationRestricted" }, |
673 | | { 2, "numberNotAvailableDueToInterworking" }, |
674 | | { 3, "presentationRestrictedNumber" }, |
675 | | { 0, NULL } |
676 | | }; |
677 | | |
678 | | static const ber_choice_t PresentedNumberUnscreened_choice[] = { |
679 | | { 0, &hf_isdn_sup_presentationAllowedNumber, BER_CLASS_CON, 0, 0, dissect_isdn_sup_PartyNumber }, |
680 | | { 1, &hf_isdn_sup_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_NULL }, |
681 | | { 2, &hf_isdn_sup_numberNotAvailableDueToInterworking, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_isdn_sup_NULL }, |
682 | | { 3, &hf_isdn_sup_presentationRestrictedNumber, BER_CLASS_CON, 3, 0, dissect_isdn_sup_PartyNumber }, |
683 | | { 0, NULL, 0, 0, 0, NULL } |
684 | | }; |
685 | | |
686 | | static int |
687 | 0 | dissect_isdn_sup_PresentedNumberUnscreened(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
688 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
689 | 0 | PresentedNumberUnscreened_choice, hf_index, ett_isdn_sup_PresentedNumberUnscreened, |
690 | 0 | NULL); |
691 | |
|
692 | 0 | return offset; |
693 | 0 | } |
694 | | |
695 | | |
696 | | |
697 | | static int |
698 | 0 | dissect_isdn_sup_PresentationAllowedIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
699 | 0 | offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); |
700 | |
|
701 | 0 | return offset; |
702 | 0 | } |
703 | | |
704 | | |
705 | | static const value_string isdn_sup_BasicService_vals[] = { |
706 | | { 0, "allServices" }, |
707 | | { 1, "speech" }, |
708 | | { 2, "unrestrictedDigitalInformation" }, |
709 | | { 3, "audio3k1Hz" }, |
710 | | { 4, "unrestrictedDigitalInformationWithTonesAndAnnouncements" }, |
711 | | { 5, "multirate" }, |
712 | | { 32, "telephony3k1Hz" }, |
713 | | { 33, "teletex" }, |
714 | | { 34, "telefaxGroup4Class1" }, |
715 | | { 35, "videotexSyntaxBased" }, |
716 | | { 36, "videotelephony" }, |
717 | | { 37, "telefaxGroup2-3" }, |
718 | | { 38, "telephony7kHz" }, |
719 | | { 39, "euroFileTransfer" }, |
720 | | { 40, "fileTransferAndAccessManagement" }, |
721 | | { 41, "videoconference" }, |
722 | | { 42, "audioGraphicConference" }, |
723 | | { 0, NULL } |
724 | | }; |
725 | | |
726 | | |
727 | | static int |
728 | 0 | dissect_isdn_sup_BasicService(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
729 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
730 | 0 | NULL); |
731 | |
|
732 | 0 | return offset; |
733 | 0 | } |
734 | | |
735 | | |
736 | | |
737 | | static int |
738 | 0 | dissect_isdn_sup_OCTET_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
739 | 0 | offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, |
740 | 0 | NULL); |
741 | |
|
742 | 0 | return offset; |
743 | 0 | } |
744 | | |
745 | | |
746 | | |
747 | | static int |
748 | 0 | dissect_isdn_sup_Q931InformationElement(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
749 | 0 | offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, |
750 | 0 | hf_index, BER_CLASS_APP, 0, true, dissect_isdn_sup_OCTET_STRING); |
751 | |
|
752 | 0 | return offset; |
753 | 0 | } |
754 | | |
755 | | |
756 | | static const value_string isdn_sup_ChargingCase_vals[] = { |
757 | | { 0, "chargingInformationAtCallSetup" }, |
758 | | { 1, "chargingDuringACall" }, |
759 | | { 2, "chargingAtTheEndOfACall" }, |
760 | | { 0, NULL } |
761 | | }; |
762 | | |
763 | | |
764 | | static int |
765 | 0 | dissect_isdn_sup_ChargingCase(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
766 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
767 | 0 | NULL); |
768 | |
|
769 | 0 | return offset; |
770 | 0 | } |
771 | | |
772 | | |
773 | | |
774 | | static int |
775 | 0 | dissect_isdn_sup_ChargingRequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
776 | 0 | offset = dissect_isdn_sup_ChargingCase(implicit_tag, tvb, offset, actx, tree, hf_index); |
777 | |
|
778 | 0 | return offset; |
779 | 0 | } |
780 | | |
781 | | |
782 | | static const value_string isdn_sup_ChargedItem_vals[] = { |
783 | | { 0, "basicCommunication" }, |
784 | | { 1, "callAttempt" }, |
785 | | { 2, "callSetup" }, |
786 | | { 3, "userToUserInfo" }, |
787 | | { 4, "operationOfSupplementaryServ" }, |
788 | | { 0, NULL } |
789 | | }; |
790 | | |
791 | | |
792 | | static int |
793 | 0 | dissect_isdn_sup_ChargedItem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
794 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
795 | 0 | NULL); |
796 | |
|
797 | 0 | return offset; |
798 | 0 | } |
799 | | |
800 | | |
801 | | |
802 | | static int |
803 | 0 | dissect_isdn_sup_Currency(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
804 | 0 | offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String, |
805 | 0 | actx, tree, tvb, offset, hf_index, |
806 | 0 | NULL); |
807 | |
|
808 | 0 | return offset; |
809 | 0 | } |
810 | | |
811 | | |
812 | | |
813 | | static int |
814 | 0 | dissect_isdn_sup_CurrencyAmount(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
815 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
816 | 0 | NULL); |
817 | |
|
818 | 0 | return offset; |
819 | 0 | } |
820 | | |
821 | | |
822 | | static const value_string isdn_sup_Multiplier_vals[] = { |
823 | | { 0, "oneThousandth" }, |
824 | | { 1, "oneHundredth" }, |
825 | | { 2, "oneTenth" }, |
826 | | { 3, "one" }, |
827 | | { 4, "ten" }, |
828 | | { 5, "hundred" }, |
829 | | { 6, "thousand" }, |
830 | | { 0, NULL } |
831 | | }; |
832 | | |
833 | | |
834 | | static int |
835 | 0 | dissect_isdn_sup_Multiplier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
836 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
837 | 0 | NULL); |
838 | |
|
839 | 0 | return offset; |
840 | 0 | } |
841 | | |
842 | | |
843 | | static const ber_sequence_t Amount_sequence[] = { |
844 | | { &hf_isdn_sup_currencyAmount, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_CurrencyAmount }, |
845 | | { &hf_isdn_sup_multiplier , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_isdn_sup_Multiplier }, |
846 | | { NULL, 0, 0, 0, NULL } |
847 | | }; |
848 | | |
849 | | static int |
850 | 0 | dissect_isdn_sup_Amount(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
851 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
852 | 0 | Amount_sequence, hf_index, ett_isdn_sup_Amount); |
853 | |
|
854 | 0 | return offset; |
855 | 0 | } |
856 | | |
857 | | |
858 | | static const value_string isdn_sup_ChargingType_vals[] = { |
859 | | { 0, "continuousCharging" }, |
860 | | { 1, "stepFunction" }, |
861 | | { 0, NULL } |
862 | | }; |
863 | | |
864 | | |
865 | | static int |
866 | 0 | dissect_isdn_sup_ChargingType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
867 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
868 | 0 | NULL); |
869 | |
|
870 | 0 | return offset; |
871 | 0 | } |
872 | | |
873 | | |
874 | | |
875 | | static int |
876 | 0 | dissect_isdn_sup_LengthOfTimeUnit(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
877 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
878 | 0 | NULL); |
879 | |
|
880 | 0 | return offset; |
881 | 0 | } |
882 | | |
883 | | |
884 | | static const value_string isdn_sup_Scale_vals[] = { |
885 | | { 0, "oneHundredthSecond" }, |
886 | | { 1, "oneTenthSecond" }, |
887 | | { 2, "oneSecond" }, |
888 | | { 3, "tenSeconds" }, |
889 | | { 4, "oneMinute" }, |
890 | | { 5, "oneHour" }, |
891 | | { 6, "twentyFourHours" }, |
892 | | { 0, NULL } |
893 | | }; |
894 | | |
895 | | |
896 | | static int |
897 | 0 | dissect_isdn_sup_Scale(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
898 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
899 | 0 | NULL); |
900 | |
|
901 | 0 | return offset; |
902 | 0 | } |
903 | | |
904 | | |
905 | | static const ber_sequence_t Time_sequence[] = { |
906 | | { &hf_isdn_sup_lengthOfTimeUnit, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_LengthOfTimeUnit }, |
907 | | { &hf_isdn_sup_scale , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_isdn_sup_Scale }, |
908 | | { NULL, 0, 0, 0, NULL } |
909 | | }; |
910 | | |
911 | | static int |
912 | 0 | dissect_isdn_sup_Time(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
913 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
914 | 0 | Time_sequence, hf_index, ett_isdn_sup_Time); |
915 | |
|
916 | 0 | return offset; |
917 | 0 | } |
918 | | |
919 | | |
920 | | static const ber_sequence_t DurationCurrency_sequence[] = { |
921 | | { &hf_isdn_sup_dCurrency , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_Currency }, |
922 | | { &hf_isdn_sup_dAmount , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_isdn_sup_Amount }, |
923 | | { &hf_isdn_sup_dChargingType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_isdn_sup_ChargingType }, |
924 | | { &hf_isdn_sup_dTime , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_isdn_sup_Time }, |
925 | | { &hf_isdn_sup_dGranularity, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_isdn_sup_Time }, |
926 | | { NULL, 0, 0, 0, NULL } |
927 | | }; |
928 | | |
929 | | static int |
930 | 0 | dissect_isdn_sup_DurationCurrency(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
931 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
932 | 0 | DurationCurrency_sequence, hf_index, ett_isdn_sup_DurationCurrency); |
933 | |
|
934 | 0 | return offset; |
935 | 0 | } |
936 | | |
937 | | |
938 | | static const ber_sequence_t FlatRateCurrency_sequence[] = { |
939 | | { &hf_isdn_sup_fRCurrency , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_Currency }, |
940 | | { &hf_isdn_sup_fRAmount , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_isdn_sup_Amount }, |
941 | | { NULL, 0, 0, 0, NULL } |
942 | | }; |
943 | | |
944 | | static int |
945 | 0 | dissect_isdn_sup_FlatRateCurrency(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
946 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
947 | 0 | FlatRateCurrency_sequence, hf_index, ett_isdn_sup_FlatRateCurrency); |
948 | |
|
949 | 0 | return offset; |
950 | 0 | } |
951 | | |
952 | | |
953 | | static const value_string isdn_sup_VolumeUnit_vals[] = { |
954 | | { 0, "octet" }, |
955 | | { 1, "segment" }, |
956 | | { 2, "message" }, |
957 | | { 0, NULL } |
958 | | }; |
959 | | |
960 | | |
961 | | static int |
962 | 0 | dissect_isdn_sup_VolumeUnit(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
963 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
964 | 0 | NULL); |
965 | |
|
966 | 0 | return offset; |
967 | 0 | } |
968 | | |
969 | | |
970 | | static const ber_sequence_t VolumeRateCurrency_sequence[] = { |
971 | | { &hf_isdn_sup_vRCurrency , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_Currency }, |
972 | | { &hf_isdn_sup_vRAmount , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_isdn_sup_Amount }, |
973 | | { &hf_isdn_sup_vRVolumeUnit, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_isdn_sup_VolumeUnit }, |
974 | | { NULL, 0, 0, 0, NULL } |
975 | | }; |
976 | | |
977 | | static int |
978 | 0 | dissect_isdn_sup_VolumeRateCurrency(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
979 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
980 | 0 | VolumeRateCurrency_sequence, hf_index, ett_isdn_sup_VolumeRateCurrency); |
981 | |
|
982 | 0 | return offset; |
983 | 0 | } |
984 | | |
985 | | |
986 | | static const value_string isdn_sup_AOCSChargingTypeSpecificCurrency_vals[] = { |
987 | | { 1, "durationCurrency" }, |
988 | | { 2, "flatRateCurrency" }, |
989 | | { 3, "volumeRateCurrency" }, |
990 | | { 0, NULL } |
991 | | }; |
992 | | |
993 | | static const ber_choice_t AOCSChargingTypeSpecificCurrency_choice[] = { |
994 | | { 1, &hf_isdn_sup_durationCurrency, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_DurationCurrency }, |
995 | | { 2, &hf_isdn_sup_flatRateCurrency, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_isdn_sup_FlatRateCurrency }, |
996 | | { 3, &hf_isdn_sup_volumeRateCurrency, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_isdn_sup_VolumeRateCurrency }, |
997 | | { 0, NULL, 0, 0, 0, NULL } |
998 | | }; |
999 | | |
1000 | | static int |
1001 | 0 | dissect_isdn_sup_AOCSChargingTypeSpecificCurrency(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1002 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1003 | 0 | AOCSChargingTypeSpecificCurrency_choice, hf_index, ett_isdn_sup_AOCSChargingTypeSpecificCurrency, |
1004 | 0 | NULL); |
1005 | |
|
1006 | 0 | return offset; |
1007 | 0 | } |
1008 | | |
1009 | | |
1010 | | |
1011 | | static int |
1012 | 0 | dissect_isdn_sup_SpecialChargingCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1013 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1014 | 0 | NULL); |
1015 | |
|
1016 | 0 | return offset; |
1017 | 0 | } |
1018 | | |
1019 | | |
1020 | | static const value_string isdn_sup_T_chargingtype_vals[] = { |
1021 | | { 0, "specificCurrency" }, |
1022 | | { 1, "specialChargingCode" }, |
1023 | | { 2, "freeOfCharge" }, |
1024 | | { 3, "currencyInfoNotAvailable" }, |
1025 | | { 0, NULL } |
1026 | | }; |
1027 | | |
1028 | | static const ber_choice_t T_chargingtype_choice[] = { |
1029 | | { 0, &hf_isdn_sup_aocschargingtypespecificCurrency, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_AOCSChargingTypeSpecificCurrency }, |
1030 | | { 1, &hf_isdn_sup_specialChargingCode, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_SpecialChargingCode }, |
1031 | | { 2, &hf_isdn_sup_freeOfCharge, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_isdn_sup_NULL }, |
1032 | | { 3, &hf_isdn_sup_currencyInfoNotAvailable, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_isdn_sup_NULL }, |
1033 | | { 0, NULL, 0, 0, 0, NULL } |
1034 | | }; |
1035 | | |
1036 | | static int |
1037 | 0 | dissect_isdn_sup_T_chargingtype(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1038 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1039 | 0 | T_chargingtype_choice, hf_index, ett_isdn_sup_T_chargingtype, |
1040 | 0 | NULL); |
1041 | |
|
1042 | 0 | return offset; |
1043 | 0 | } |
1044 | | |
1045 | | |
1046 | | static const ber_sequence_t AOCSCurrencyInfo_sequence[] = { |
1047 | | { &hf_isdn_sup_chargedItem, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_ChargedItem }, |
1048 | | { &hf_isdn_sup_chargingtype, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_T_chargingtype }, |
1049 | | { NULL, 0, 0, 0, NULL } |
1050 | | }; |
1051 | | |
1052 | | static int |
1053 | 0 | dissect_isdn_sup_AOCSCurrencyInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1054 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1055 | 0 | AOCSCurrencyInfo_sequence, hf_index, ett_isdn_sup_AOCSCurrencyInfo); |
1056 | |
|
1057 | 0 | return offset; |
1058 | 0 | } |
1059 | | |
1060 | | |
1061 | | static const ber_sequence_t AOCSCurrencyInfoList_sequence_of[1] = { |
1062 | | { &hf_isdn_sup_AOCSCurrencyInfoList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_AOCSCurrencyInfo }, |
1063 | | }; |
1064 | | |
1065 | | static int |
1066 | 0 | dissect_isdn_sup_AOCSCurrencyInfoList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1067 | 0 | offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, |
1068 | 0 | AOCSCurrencyInfoList_sequence_of, hf_index, ett_isdn_sup_AOCSCurrencyInfoList); |
1069 | |
|
1070 | 0 | return offset; |
1071 | 0 | } |
1072 | | |
1073 | | |
1074 | | |
1075 | | static int |
1076 | 0 | dissect_isdn_sup_AOCSSpecialArrInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1077 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1078 | 0 | NULL); |
1079 | |
|
1080 | 0 | return offset; |
1081 | 0 | } |
1082 | | |
1083 | | |
1084 | | static const value_string isdn_sup_ChargingRequestRes_vals[] = { |
1085 | | { 0, "aOCSCurrencyInfoList" }, |
1086 | | { 1, "aOCSSpecialArrInfo" }, |
1087 | | { 2, "chargingInfoFollows" }, |
1088 | | { 0, NULL } |
1089 | | }; |
1090 | | |
1091 | | static const ber_choice_t ChargingRequestRes_choice[] = { |
1092 | | { 0, &hf_isdn_sup_aOCSCurrencyInfoList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_AOCSCurrencyInfoList }, |
1093 | | { 1, &hf_isdn_sup_aOCSSpecialArrInfo, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_AOCSSpecialArrInfo }, |
1094 | | { 2, &hf_isdn_sup_chargingInfoFollows, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_NULL }, |
1095 | | { 0, NULL, 0, 0, 0, NULL } |
1096 | | }; |
1097 | | |
1098 | | static int |
1099 | 0 | dissect_isdn_sup_ChargingRequestRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1100 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1101 | 0 | ChargingRequestRes_choice, hf_index, ett_isdn_sup_ChargingRequestRes, |
1102 | 0 | NULL); |
1103 | |
|
1104 | 0 | return offset; |
1105 | 0 | } |
1106 | | |
1107 | | |
1108 | | static const value_string isdn_sup_AOCSCurrencyArg_vals[] = { |
1109 | | { 0, "chargeNotAvailable" }, |
1110 | | { 1, "aOCSCurrencyInfoList" }, |
1111 | | { 0, NULL } |
1112 | | }; |
1113 | | |
1114 | | static const ber_choice_t AOCSCurrencyArg_choice[] = { |
1115 | | { 0, &hf_isdn_sup_chargeNotAvailable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_NULL }, |
1116 | | { 1, &hf_isdn_sup_aOCSCurrencyInfoList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_AOCSCurrencyInfoList }, |
1117 | | { 0, NULL, 0, 0, 0, NULL } |
1118 | | }; |
1119 | | |
1120 | | static int |
1121 | 0 | dissect_isdn_sup_AOCSCurrencyArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1122 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1123 | 0 | AOCSCurrencyArg_choice, hf_index, ett_isdn_sup_AOCSCurrencyArg, |
1124 | 0 | NULL); |
1125 | |
|
1126 | 0 | return offset; |
1127 | 0 | } |
1128 | | |
1129 | | |
1130 | | static const value_string isdn_sup_AOCSSpecialArrArg_vals[] = { |
1131 | | { 0, "chargeNotAvailable" }, |
1132 | | { 1, "aOCSSpecialArrInfo" }, |
1133 | | { 0, NULL } |
1134 | | }; |
1135 | | |
1136 | | static const ber_choice_t AOCSSpecialArrArg_choice[] = { |
1137 | | { 0, &hf_isdn_sup_chargeNotAvailable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_NULL }, |
1138 | | { 1, &hf_isdn_sup_aOCSSpecialArrInfo, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_AOCSSpecialArrInfo }, |
1139 | | { 0, NULL, 0, 0, 0, NULL } |
1140 | | }; |
1141 | | |
1142 | | static int |
1143 | 0 | dissect_isdn_sup_AOCSSpecialArrArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1144 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1145 | 0 | AOCSSpecialArrArg_choice, hf_index, ett_isdn_sup_AOCSSpecialArrArg, |
1146 | 0 | NULL); |
1147 | |
|
1148 | 0 | return offset; |
1149 | 0 | } |
1150 | | |
1151 | | |
1152 | | static const ber_sequence_t RecordedCurrency_sequence[] = { |
1153 | | { &hf_isdn_sup_rCurrency , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_Currency }, |
1154 | | { &hf_isdn_sup_rAmount , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_isdn_sup_Amount }, |
1155 | | { NULL, 0, 0, 0, NULL } |
1156 | | }; |
1157 | | |
1158 | | static int |
1159 | 0 | dissect_isdn_sup_RecordedCurrency(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1160 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1161 | 0 | RecordedCurrency_sequence, hf_index, ett_isdn_sup_RecordedCurrency); |
1162 | |
|
1163 | 0 | return offset; |
1164 | 0 | } |
1165 | | |
1166 | | |
1167 | | static const value_string isdn_sup_TypeOfChargingInfo_vals[] = { |
1168 | | { 0, "subTotal" }, |
1169 | | { 1, "total" }, |
1170 | | { 0, NULL } |
1171 | | }; |
1172 | | |
1173 | | |
1174 | | static int |
1175 | 0 | dissect_isdn_sup_TypeOfChargingInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1176 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1177 | 0 | NULL); |
1178 | |
|
1179 | 0 | return offset; |
1180 | 0 | } |
1181 | | |
1182 | | |
1183 | | static const value_string isdn_sup_AOCDBillingId_vals[] = { |
1184 | | { 0, "normalCharging" }, |
1185 | | { 1, "reverseCharging" }, |
1186 | | { 2, "creditCardCharging" }, |
1187 | | { 0, NULL } |
1188 | | }; |
1189 | | |
1190 | | |
1191 | | static int |
1192 | 0 | dissect_isdn_sup_AOCDBillingId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1193 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1194 | 0 | NULL); |
1195 | |
|
1196 | 0 | return offset; |
1197 | 0 | } |
1198 | | |
1199 | | |
1200 | | static const ber_sequence_t AOCDSpecificCurrency_sequence[] = { |
1201 | | { &hf_isdn_sup_recordedCurrency, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_RecordedCurrency }, |
1202 | | { &hf_isdn_sup_typeOfChargingInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_isdn_sup_TypeOfChargingInfo }, |
1203 | | { &hf_isdn_sup_aOCDBillingId, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_isdn_sup_AOCDBillingId }, |
1204 | | { NULL, 0, 0, 0, NULL } |
1205 | | }; |
1206 | | |
1207 | | static int |
1208 | 0 | dissect_isdn_sup_AOCDSpecificCurrency(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1209 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1210 | 0 | AOCDSpecificCurrency_sequence, hf_index, ett_isdn_sup_AOCDSpecificCurrency); |
1211 | |
|
1212 | 0 | return offset; |
1213 | 0 | } |
1214 | | |
1215 | | |
1216 | | static const value_string isdn_sup_AOCDCurrencyInfo_vals[] = { |
1217 | | { 0, "specificCurrency" }, |
1218 | | { 1, "freeOfCharge" }, |
1219 | | { 0, NULL } |
1220 | | }; |
1221 | | |
1222 | | static const ber_choice_t AOCDCurrencyInfo_choice[] = { |
1223 | | { 0, &hf_isdn_sup_aocdspecificCurrency, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_AOCDSpecificCurrency }, |
1224 | | { 1, &hf_isdn_sup_freeOfCharge, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_NULL }, |
1225 | | { 0, NULL, 0, 0, 0, NULL } |
1226 | | }; |
1227 | | |
1228 | | static int |
1229 | 0 | dissect_isdn_sup_AOCDCurrencyInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1230 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1231 | 0 | AOCDCurrencyInfo_choice, hf_index, ett_isdn_sup_AOCDCurrencyInfo, |
1232 | 0 | NULL); |
1233 | |
|
1234 | 0 | return offset; |
1235 | 0 | } |
1236 | | |
1237 | | |
1238 | | static const value_string isdn_sup_AOCDCurrencyArg_vals[] = { |
1239 | | { 0, "chargeNotAvailable" }, |
1240 | | { 1, "aOCDCurrencyInfo" }, |
1241 | | { 0, NULL } |
1242 | | }; |
1243 | | |
1244 | | static const ber_choice_t AOCDCurrencyArg_choice[] = { |
1245 | | { 0, &hf_isdn_sup_chargeNotAvailable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_NULL }, |
1246 | | { 1, &hf_isdn_sup_aOCDCurrencyInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_AOCDCurrencyInfo }, |
1247 | | { 0, NULL, 0, 0, 0, NULL } |
1248 | | }; |
1249 | | |
1250 | | static int |
1251 | 0 | dissect_isdn_sup_AOCDCurrencyArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1252 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1253 | 0 | AOCDCurrencyArg_choice, hf_index, ett_isdn_sup_AOCDCurrencyArg, |
1254 | 0 | NULL); |
1255 | |
|
1256 | 0 | return offset; |
1257 | 0 | } |
1258 | | |
1259 | | |
1260 | | |
1261 | | static int |
1262 | 0 | dissect_isdn_sup_NumberOfUnits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1263 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1264 | 0 | NULL); |
1265 | |
|
1266 | 0 | return offset; |
1267 | 0 | } |
1268 | | |
1269 | | |
1270 | | static const value_string isdn_sup_RecoredUnitsCc_vals[] = { |
1271 | | { 0, "recordedNumberOfUnits" }, |
1272 | | { 1, "notAvailable" }, |
1273 | | { 0, NULL } |
1274 | | }; |
1275 | | |
1276 | | static const ber_choice_t RecoredUnitsCc_choice[] = { |
1277 | | { 0, &hf_isdn_sup_recordedNumberOfUnits, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_NumberOfUnits }, |
1278 | | { 1, &hf_isdn_sup_notAvailable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_NULL }, |
1279 | | { 0, NULL, 0, 0, 0, NULL } |
1280 | | }; |
1281 | | |
1282 | | static int |
1283 | 0 | dissect_isdn_sup_RecoredUnitsCc(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1284 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1285 | 0 | RecoredUnitsCc_choice, hf_index, ett_isdn_sup_RecoredUnitsCc, |
1286 | 0 | NULL); |
1287 | |
|
1288 | 0 | return offset; |
1289 | 0 | } |
1290 | | |
1291 | | |
1292 | | |
1293 | | static int |
1294 | 0 | dissect_isdn_sup_TypeOfUnit(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1295 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1296 | 0 | NULL); |
1297 | |
|
1298 | 0 | return offset; |
1299 | 0 | } |
1300 | | |
1301 | | |
1302 | | static const ber_sequence_t RecordedUnits_sequence[] = { |
1303 | | { &hf_isdn_sup_recoredunitscc, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_RecoredUnitsCc }, |
1304 | | { &hf_isdn_sup_recordedTypeOfUnits, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_isdn_sup_TypeOfUnit }, |
1305 | | { NULL, 0, 0, 0, NULL } |
1306 | | }; |
1307 | | |
1308 | | static int |
1309 | 0 | dissect_isdn_sup_RecordedUnits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1310 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1311 | 0 | RecordedUnits_sequence, hf_index, ett_isdn_sup_RecordedUnits); |
1312 | |
|
1313 | 0 | return offset; |
1314 | 0 | } |
1315 | | |
1316 | | |
1317 | | static const ber_sequence_t RecordedUnitsList_sequence_of[1] = { |
1318 | | { &hf_isdn_sup_RecordedUnitsList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_RecordedUnits }, |
1319 | | }; |
1320 | | |
1321 | | static int |
1322 | 0 | dissect_isdn_sup_RecordedUnitsList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1323 | 0 | offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, |
1324 | 0 | RecordedUnitsList_sequence_of, hf_index, ett_isdn_sup_RecordedUnitsList); |
1325 | |
|
1326 | 0 | return offset; |
1327 | 0 | } |
1328 | | |
1329 | | |
1330 | | static const ber_sequence_t AOCDSpecificChargingUnits_sequence[] = { |
1331 | | { &hf_isdn_sup_recordedUnitsList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_RecordedUnitsList }, |
1332 | | { &hf_isdn_sup_typeOfChargingInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_isdn_sup_TypeOfChargingInfo }, |
1333 | | { &hf_isdn_sup_aOCDBillingId, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_isdn_sup_AOCDBillingId }, |
1334 | | { NULL, 0, 0, 0, NULL } |
1335 | | }; |
1336 | | |
1337 | | static int |
1338 | 0 | dissect_isdn_sup_AOCDSpecificChargingUnits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1339 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1340 | 0 | AOCDSpecificChargingUnits_sequence, hf_index, ett_isdn_sup_AOCDSpecificChargingUnits); |
1341 | |
|
1342 | 0 | return offset; |
1343 | 0 | } |
1344 | | |
1345 | | |
1346 | | static const value_string isdn_sup_AOCDChargingUnitInfo_vals[] = { |
1347 | | { 0, "specificChargingUnits" }, |
1348 | | { 1, "freeOfCharge" }, |
1349 | | { 0, NULL } |
1350 | | }; |
1351 | | |
1352 | | static const ber_choice_t AOCDChargingUnitInfo_choice[] = { |
1353 | | { 0, &hf_isdn_sup_aocdspecificchargingunits, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_AOCDSpecificChargingUnits }, |
1354 | | { 1, &hf_isdn_sup_freeOfCharge, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_NULL }, |
1355 | | { 0, NULL, 0, 0, 0, NULL } |
1356 | | }; |
1357 | | |
1358 | | static int |
1359 | 0 | dissect_isdn_sup_AOCDChargingUnitInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1360 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1361 | 0 | AOCDChargingUnitInfo_choice, hf_index, ett_isdn_sup_AOCDChargingUnitInfo, |
1362 | 0 | NULL); |
1363 | |
|
1364 | 0 | return offset; |
1365 | 0 | } |
1366 | | |
1367 | | |
1368 | | static const value_string isdn_sup_AOCDChargingUnitArg_vals[] = { |
1369 | | { 0, "chargeNotAvailable" }, |
1370 | | { 1, "aOCDChargingUnitInfo" }, |
1371 | | { 0, NULL } |
1372 | | }; |
1373 | | |
1374 | | static const ber_choice_t AOCDChargingUnitArg_choice[] = { |
1375 | | { 0, &hf_isdn_sup_chargeNotAvailable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_NULL }, |
1376 | | { 1, &hf_isdn_sup_aOCDChargingUnitInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_AOCDChargingUnitInfo }, |
1377 | | { 0, NULL, 0, 0, 0, NULL } |
1378 | | }; |
1379 | | |
1380 | | static int |
1381 | 0 | dissect_isdn_sup_AOCDChargingUnitArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1382 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1383 | 0 | AOCDChargingUnitArg_choice, hf_index, ett_isdn_sup_AOCDChargingUnitArg, |
1384 | 0 | NULL); |
1385 | |
|
1386 | 0 | return offset; |
1387 | 0 | } |
1388 | | |
1389 | | |
1390 | | static const value_string isdn_sup_AOCEBillingId_vals[] = { |
1391 | | { 0, "normalCharging" }, |
1392 | | { 1, "reverseCharging" }, |
1393 | | { 2, "creditCardCharging" }, |
1394 | | { 3, "callForwardingUnconditional" }, |
1395 | | { 4, "callForwardingBusy" }, |
1396 | | { 5, "callForwardingNoReply" }, |
1397 | | { 6, "callDeflection" }, |
1398 | | { 7, "callTransfer" }, |
1399 | | { 0, NULL } |
1400 | | }; |
1401 | | |
1402 | | |
1403 | | static int |
1404 | 0 | dissect_isdn_sup_AOCEBillingId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1405 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1406 | 0 | NULL); |
1407 | |
|
1408 | 0 | return offset; |
1409 | 0 | } |
1410 | | |
1411 | | |
1412 | | static const ber_sequence_t AOCECcSpecificCurrency_sequence[] = { |
1413 | | { &hf_isdn_sup_recordedCurrency, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_RecordedCurrency }, |
1414 | | { &hf_isdn_sup_aOCEBillingId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_isdn_sup_AOCEBillingId }, |
1415 | | { NULL, 0, 0, 0, NULL } |
1416 | | }; |
1417 | | |
1418 | | static int |
1419 | 0 | dissect_isdn_sup_AOCECcSpecificCurrency(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1420 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1421 | 0 | AOCECcSpecificCurrency_sequence, hf_index, ett_isdn_sup_AOCECcSpecificCurrency); |
1422 | |
|
1423 | 0 | return offset; |
1424 | 0 | } |
1425 | | |
1426 | | |
1427 | | static const value_string isdn_sup_AOCECurrencyCc_vals[] = { |
1428 | | { 0, "specificCurrency" }, |
1429 | | { 1, "freeOfCharge" }, |
1430 | | { 0, NULL } |
1431 | | }; |
1432 | | |
1433 | | static const ber_choice_t AOCECurrencyCc_choice[] = { |
1434 | | { 0, &hf_isdn_sup_aoceccspecificCurrency, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_AOCECcSpecificCurrency }, |
1435 | | { 1, &hf_isdn_sup_freeOfCharge, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_NULL }, |
1436 | | { 0, NULL, 0, 0, 0, NULL } |
1437 | | }; |
1438 | | |
1439 | | static int |
1440 | 0 | dissect_isdn_sup_AOCECurrencyCc(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1441 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1442 | 0 | AOCECurrencyCc_choice, hf_index, ett_isdn_sup_AOCECurrencyCc, |
1443 | 0 | NULL); |
1444 | |
|
1445 | 0 | return offset; |
1446 | 0 | } |
1447 | | |
1448 | | |
1449 | | |
1450 | | static int |
1451 | 0 | dissect_isdn_sup_ChargeIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1452 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1453 | 0 | NULL); |
1454 | |
|
1455 | 0 | return offset; |
1456 | 0 | } |
1457 | | |
1458 | | |
1459 | | static const value_string isdn_sup_ChargingAssociation_vals[] = { |
1460 | | { 0, "chargeNumber" }, |
1461 | | { 1, "chargeIdentifier" }, |
1462 | | { 0, NULL } |
1463 | | }; |
1464 | | |
1465 | | static const ber_choice_t ChargingAssociation_choice[] = { |
1466 | | { 0, &hf_isdn_sup_chargeNumber, BER_CLASS_CON, 0, 0, dissect_isdn_sup_PartyNumber }, |
1467 | | { 1, &hf_isdn_sup_chargeIdentifier, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_ChargeIdentifier }, |
1468 | | { 0, NULL, 0, 0, 0, NULL } |
1469 | | }; |
1470 | | |
1471 | | static int |
1472 | 0 | dissect_isdn_sup_ChargingAssociation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1473 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1474 | 0 | ChargingAssociation_choice, hf_index, ett_isdn_sup_ChargingAssociation, |
1475 | 0 | NULL); |
1476 | |
|
1477 | 0 | return offset; |
1478 | 0 | } |
1479 | | |
1480 | | |
1481 | | static const ber_sequence_t AOCECurrencyInfo_sequence[] = { |
1482 | | { &hf_isdn_sup_aocecurrencycc, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_AOCECurrencyCc }, |
1483 | | { &hf_isdn_sup_chargingAssociation, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_ChargingAssociation }, |
1484 | | { NULL, 0, 0, 0, NULL } |
1485 | | }; |
1486 | | |
1487 | | static int |
1488 | 0 | dissect_isdn_sup_AOCECurrencyInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1489 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1490 | 0 | AOCECurrencyInfo_sequence, hf_index, ett_isdn_sup_AOCECurrencyInfo); |
1491 | |
|
1492 | 0 | return offset; |
1493 | 0 | } |
1494 | | |
1495 | | |
1496 | | static const value_string isdn_sup_AOCECurrencyArg_vals[] = { |
1497 | | { 0, "chargeNotAvailable" }, |
1498 | | { 1, "aOCECurrencyInfo" }, |
1499 | | { 0, NULL } |
1500 | | }; |
1501 | | |
1502 | | static const ber_choice_t AOCECurrencyArg_choice[] = { |
1503 | | { 0, &hf_isdn_sup_chargeNotAvailable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_NULL }, |
1504 | | { 1, &hf_isdn_sup_aOCECurrencyInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_AOCECurrencyInfo }, |
1505 | | { 0, NULL, 0, 0, 0, NULL } |
1506 | | }; |
1507 | | |
1508 | | static int |
1509 | 0 | dissect_isdn_sup_AOCECurrencyArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1510 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1511 | 0 | AOCECurrencyArg_choice, hf_index, ett_isdn_sup_AOCECurrencyArg, |
1512 | 0 | NULL); |
1513 | |
|
1514 | 0 | return offset; |
1515 | 0 | } |
1516 | | |
1517 | | |
1518 | | static const ber_sequence_t AOCECcSpecificChargingUnits_sequence[] = { |
1519 | | { &hf_isdn_sup_recordedUnitsList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_RecordedUnitsList }, |
1520 | | { &hf_isdn_sup_aOCEBillingId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_isdn_sup_AOCEBillingId }, |
1521 | | { NULL, 0, 0, 0, NULL } |
1522 | | }; |
1523 | | |
1524 | | static int |
1525 | 0 | dissect_isdn_sup_AOCECcSpecificChargingUnits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1526 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1527 | 0 | AOCECcSpecificChargingUnits_sequence, hf_index, ett_isdn_sup_AOCECcSpecificChargingUnits); |
1528 | |
|
1529 | 0 | return offset; |
1530 | 0 | } |
1531 | | |
1532 | | |
1533 | | static const value_string isdn_sup_AOCEChargingUnitCc_vals[] = { |
1534 | | { 0, "specificChargingUnits" }, |
1535 | | { 1, "freeOfCharge" }, |
1536 | | { 0, NULL } |
1537 | | }; |
1538 | | |
1539 | | static const ber_choice_t AOCEChargingUnitCc_choice[] = { |
1540 | | { 0, &hf_isdn_sup_aoceccspecificchargingunits, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_AOCECcSpecificChargingUnits }, |
1541 | | { 1, &hf_isdn_sup_freeOfCharge, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_NULL }, |
1542 | | { 0, NULL, 0, 0, 0, NULL } |
1543 | | }; |
1544 | | |
1545 | | static int |
1546 | 0 | dissect_isdn_sup_AOCEChargingUnitCc(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1547 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1548 | 0 | AOCEChargingUnitCc_choice, hf_index, ett_isdn_sup_AOCEChargingUnitCc, |
1549 | 0 | NULL); |
1550 | |
|
1551 | 0 | return offset; |
1552 | 0 | } |
1553 | | |
1554 | | |
1555 | | static const ber_sequence_t AOCEChargingUnitInfo_sequence[] = { |
1556 | | { &hf_isdn_sup_aocechargingunitcc, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_AOCEChargingUnitCc }, |
1557 | | { &hf_isdn_sup_chargingAssociation, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_ChargingAssociation }, |
1558 | | { NULL, 0, 0, 0, NULL } |
1559 | | }; |
1560 | | |
1561 | | static int |
1562 | 0 | dissect_isdn_sup_AOCEChargingUnitInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1563 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1564 | 0 | AOCEChargingUnitInfo_sequence, hf_index, ett_isdn_sup_AOCEChargingUnitInfo); |
1565 | |
|
1566 | 0 | return offset; |
1567 | 0 | } |
1568 | | |
1569 | | |
1570 | | static const value_string isdn_sup_AOCEChargingUnitArg_vals[] = { |
1571 | | { 0, "chargeNotAvailable" }, |
1572 | | { 1, "aOCEChargingUnitInfo" }, |
1573 | | { 0, NULL } |
1574 | | }; |
1575 | | |
1576 | | static const ber_choice_t AOCEChargingUnitArg_choice[] = { |
1577 | | { 0, &hf_isdn_sup_chargeNotAvailable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_NULL }, |
1578 | | { 1, &hf_isdn_sup_aOCEChargingUnitInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_AOCEChargingUnitInfo }, |
1579 | | { 0, NULL, 0, 0, 0, NULL } |
1580 | | }; |
1581 | | |
1582 | | static int |
1583 | 0 | dissect_isdn_sup_AOCEChargingUnitArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1584 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1585 | 0 | AOCEChargingUnitArg_choice, hf_index, ett_isdn_sup_AOCEChargingUnitArg, |
1586 | 0 | NULL); |
1587 | |
|
1588 | 0 | return offset; |
1589 | 0 | } |
1590 | | |
1591 | | |
1592 | | |
1593 | | static int |
1594 | 0 | dissect_isdn_sup_OARequested(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1595 | 0 | offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, |
1596 | 0 | hf_index, BER_CLASS_CON, 1, true, dissect_isdn_sup_BOOLEAN); |
1597 | |
|
1598 | 0 | return offset; |
1599 | 0 | } |
1600 | | |
1601 | | |
1602 | | |
1603 | | static int |
1604 | 0 | dissect_isdn_sup_INTEGER_0_32767(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1605 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1606 | 0 | NULL); |
1607 | |
|
1608 | 0 | return offset; |
1609 | 0 | } |
1610 | | |
1611 | | |
1612 | | |
1613 | | static int |
1614 | 0 | dissect_isdn_sup_CUGIndex(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1615 | 0 | offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, |
1616 | 0 | hf_index, BER_CLASS_CON, 2, true, dissect_isdn_sup_INTEGER_0_32767); |
1617 | |
|
1618 | 0 | return offset; |
1619 | 0 | } |
1620 | | |
1621 | | |
1622 | | static const ber_sequence_t CUGcallArg_sequence[] = { |
1623 | | { &hf_isdn_sup_oARequested, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_isdn_sup_OARequested }, |
1624 | | { &hf_isdn_sup_cUGIndex , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_isdn_sup_CUGIndex }, |
1625 | | { NULL, 0, 0, 0, NULL } |
1626 | | }; |
1627 | | |
1628 | | static int |
1629 | 0 | dissect_isdn_sup_CUGcallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1630 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1631 | 0 | CUGcallArg_sequence, hf_index, ett_isdn_sup_CUGcallArg); |
1632 | |
|
1633 | 0 | return offset; |
1634 | 0 | } |
1635 | | |
1636 | | |
1637 | | |
1638 | | static int |
1639 | 0 | dissect_isdn_sup_ConfSize(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1640 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1641 | 0 | NULL); |
1642 | |
|
1643 | 0 | return offset; |
1644 | 0 | } |
1645 | | |
1646 | | |
1647 | | |
1648 | | static int |
1649 | 0 | dissect_isdn_sup_BeginCONFArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1650 | 0 | offset = dissect_isdn_sup_ConfSize(implicit_tag, tvb, offset, actx, tree, hf_index); |
1651 | |
|
1652 | 0 | return offset; |
1653 | 0 | } |
1654 | | |
1655 | | |
1656 | | |
1657 | | static int |
1658 | 0 | dissect_isdn_sup_ConferenceId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1659 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1660 | 0 | NULL); |
1661 | |
|
1662 | 0 | return offset; |
1663 | 0 | } |
1664 | | |
1665 | | |
1666 | | |
1667 | | static int |
1668 | 0 | dissect_isdn_sup_PartyId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1669 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1670 | 0 | NULL); |
1671 | |
|
1672 | 0 | return offset; |
1673 | 0 | } |
1674 | | |
1675 | | |
1676 | | static const ber_sequence_t BeginCONFRes_sequence[] = { |
1677 | | { &hf_isdn_sup_conferenceId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_ConferenceId }, |
1678 | | { &hf_isdn_sup_partyId , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_isdn_sup_PartyId }, |
1679 | | { NULL, 0, 0, 0, NULL } |
1680 | | }; |
1681 | | |
1682 | | static int |
1683 | 0 | dissect_isdn_sup_BeginCONFRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1684 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1685 | 0 | BeginCONFRes_sequence, hf_index, ett_isdn_sup_BeginCONFRes); |
1686 | |
|
1687 | 0 | return offset; |
1688 | 0 | } |
1689 | | |
1690 | | |
1691 | | |
1692 | | static int |
1693 | 0 | dissect_isdn_sup_AddCONFArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1694 | 0 | offset = dissect_isdn_sup_ConferenceId(implicit_tag, tvb, offset, actx, tree, hf_index); |
1695 | |
|
1696 | 0 | return offset; |
1697 | 0 | } |
1698 | | |
1699 | | |
1700 | | |
1701 | | static int |
1702 | 0 | dissect_isdn_sup_AddCONFRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1703 | 0 | offset = dissect_isdn_sup_PartyId(implicit_tag, tvb, offset, actx, tree, hf_index); |
1704 | |
|
1705 | 0 | return offset; |
1706 | 0 | } |
1707 | | |
1708 | | |
1709 | | static const ber_sequence_t SplitCONFArg_sequence[] = { |
1710 | | { &hf_isdn_sup_conferenceId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_ConferenceId }, |
1711 | | { &hf_isdn_sup_partyId , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_PartyId }, |
1712 | | { NULL, 0, 0, 0, NULL } |
1713 | | }; |
1714 | | |
1715 | | static int |
1716 | 0 | dissect_isdn_sup_SplitCONFArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1717 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1718 | 0 | SplitCONFArg_sequence, hf_index, ett_isdn_sup_SplitCONFArg); |
1719 | |
|
1720 | 0 | return offset; |
1721 | 0 | } |
1722 | | |
1723 | | |
1724 | | |
1725 | | static int |
1726 | 0 | dissect_isdn_sup_DropCONFArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1727 | 0 | offset = dissect_isdn_sup_PartyId(implicit_tag, tvb, offset, actx, tree, hf_index); |
1728 | |
|
1729 | 0 | return offset; |
1730 | 0 | } |
1731 | | |
1732 | | |
1733 | | |
1734 | | static int |
1735 | 0 | dissect_isdn_sup_IsolateCONFArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1736 | 0 | offset = dissect_isdn_sup_PartyId(implicit_tag, tvb, offset, actx, tree, hf_index); |
1737 | |
|
1738 | 0 | return offset; |
1739 | 0 | } |
1740 | | |
1741 | | |
1742 | | |
1743 | | static int |
1744 | 0 | dissect_isdn_sup_ReattachCONFArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1745 | 0 | offset = dissect_isdn_sup_PartyId(implicit_tag, tvb, offset, actx, tree, hf_index); |
1746 | |
|
1747 | 0 | return offset; |
1748 | 0 | } |
1749 | | |
1750 | | |
1751 | | |
1752 | | static int |
1753 | 0 | dissect_isdn_sup_PartyDISCArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1754 | 0 | offset = dissect_isdn_sup_PartyId(implicit_tag, tvb, offset, actx, tree, hf_index); |
1755 | |
|
1756 | 0 | return offset; |
1757 | 0 | } |
1758 | | |
1759 | | |
1760 | | static const value_string isdn_sup_Procedure_vals[] = { |
1761 | | { 0, "cfu" }, |
1762 | | { 1, "cfb" }, |
1763 | | { 2, "cfnr" }, |
1764 | | { 0, NULL } |
1765 | | }; |
1766 | | |
1767 | | |
1768 | | static int |
1769 | 0 | dissect_isdn_sup_Procedure(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1770 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1771 | 0 | NULL); |
1772 | |
|
1773 | 0 | return offset; |
1774 | 0 | } |
1775 | | |
1776 | | |
1777 | | static const value_string isdn_sup_ServedUserNr_vals[] = { |
1778 | | { 0, "individualNumber" }, |
1779 | | { 1, "allNumbers" }, |
1780 | | { 0, NULL } |
1781 | | }; |
1782 | | |
1783 | | static const ber_choice_t ServedUserNr_choice[] = { |
1784 | | { 0, &hf_isdn_sup_individualNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_PartyNumber }, |
1785 | | { 1, &hf_isdn_sup_allNumbers , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_NULL }, |
1786 | | { 0, NULL, 0, 0, 0, NULL } |
1787 | | }; |
1788 | | |
1789 | | static int |
1790 | 0 | dissect_isdn_sup_ServedUserNr(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1791 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
1792 | 0 | ServedUserNr_choice, hf_index, ett_isdn_sup_ServedUserNr, |
1793 | 0 | NULL); |
1794 | |
|
1795 | 0 | return offset; |
1796 | 0 | } |
1797 | | |
1798 | | |
1799 | | |
1800 | | static int |
1801 | 0 | dissect_isdn_sup_NoReplyTimer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1802 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1803 | 0 | NULL); |
1804 | |
|
1805 | 0 | return offset; |
1806 | 0 | } |
1807 | | |
1808 | | |
1809 | | static const ber_sequence_t ActivationDiversionArg_sequence[] = { |
1810 | | { &hf_isdn_sup_procedure , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_Procedure }, |
1811 | | { &hf_isdn_sup_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_BasicService }, |
1812 | | { &hf_isdn_sup_forwardedToAddress, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_Address }, |
1813 | | { &hf_isdn_sup_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_ServedUserNr }, |
1814 | | { &hf_isdn_sup_noReplyTimer, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_isdn_sup_NoReplyTimer }, |
1815 | | { NULL, 0, 0, 0, NULL } |
1816 | | }; |
1817 | | |
1818 | | static int |
1819 | 0 | dissect_isdn_sup_ActivationDiversionArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1820 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1821 | 0 | ActivationDiversionArg_sequence, hf_index, ett_isdn_sup_ActivationDiversionArg); |
1822 | |
|
1823 | 0 | return offset; |
1824 | 0 | } |
1825 | | |
1826 | | |
1827 | | static const ber_sequence_t DeactivationDiversionArg_sequence[] = { |
1828 | | { &hf_isdn_sup_procedure , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_Procedure }, |
1829 | | { &hf_isdn_sup_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_BasicService }, |
1830 | | { &hf_isdn_sup_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_ServedUserNr }, |
1831 | | { NULL, 0, 0, 0, NULL } |
1832 | | }; |
1833 | | |
1834 | | static int |
1835 | 0 | dissect_isdn_sup_DeactivationDiversionArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1836 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1837 | 0 | DeactivationDiversionArg_sequence, hf_index, ett_isdn_sup_DeactivationDiversionArg); |
1838 | |
|
1839 | 0 | return offset; |
1840 | 0 | } |
1841 | | |
1842 | | |
1843 | | static const ber_sequence_t ActivationStatusNotificationDivArg_sequence[] = { |
1844 | | { &hf_isdn_sup_procedure , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_Procedure }, |
1845 | | { &hf_isdn_sup_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_BasicService }, |
1846 | | { &hf_isdn_sup_forwardedToAddresss, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_Address }, |
1847 | | { &hf_isdn_sup_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_ServedUserNr }, |
1848 | | { NULL, 0, 0, 0, NULL } |
1849 | | }; |
1850 | | |
1851 | | static int |
1852 | 0 | dissect_isdn_sup_ActivationStatusNotificationDivArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1853 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1854 | 0 | ActivationStatusNotificationDivArg_sequence, hf_index, ett_isdn_sup_ActivationStatusNotificationDivArg); |
1855 | |
|
1856 | 0 | return offset; |
1857 | 0 | } |
1858 | | |
1859 | | |
1860 | | static const ber_sequence_t DeactivationStatusNotificationDivArg_sequence[] = { |
1861 | | { &hf_isdn_sup_procedure , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_Procedure }, |
1862 | | { &hf_isdn_sup_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_BasicService }, |
1863 | | { &hf_isdn_sup_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_ServedUserNr }, |
1864 | | { NULL, 0, 0, 0, NULL } |
1865 | | }; |
1866 | | |
1867 | | static int |
1868 | 0 | dissect_isdn_sup_DeactivationStatusNotificationDivArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1869 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1870 | 0 | DeactivationStatusNotificationDivArg_sequence, hf_index, ett_isdn_sup_DeactivationStatusNotificationDivArg); |
1871 | |
|
1872 | 0 | return offset; |
1873 | 0 | } |
1874 | | |
1875 | | |
1876 | | static const ber_sequence_t InterrogationDiversionArg_sequence[] = { |
1877 | | { &hf_isdn_sup_procedure , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_Procedure }, |
1878 | | { &hf_isdn_sup_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_isdn_sup_BasicService }, |
1879 | | { &hf_isdn_sup_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_ServedUserNr }, |
1880 | | { NULL, 0, 0, 0, NULL } |
1881 | | }; |
1882 | | |
1883 | | static int |
1884 | 0 | dissect_isdn_sup_InterrogationDiversionArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1885 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1886 | 0 | InterrogationDiversionArg_sequence, hf_index, ett_isdn_sup_InterrogationDiversionArg); |
1887 | |
|
1888 | 0 | return offset; |
1889 | 0 | } |
1890 | | |
1891 | | |
1892 | | static const ber_sequence_t IntResult_sequence[] = { |
1893 | | { &hf_isdn_sup_servedUserNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_ServedUserNr }, |
1894 | | { &hf_isdn_sup_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_BasicService }, |
1895 | | { &hf_isdn_sup_procedure , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_Procedure }, |
1896 | | { &hf_isdn_sup_forwardedToAddress, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_Address }, |
1897 | | { NULL, 0, 0, 0, NULL } |
1898 | | }; |
1899 | | |
1900 | | static int |
1901 | 0 | dissect_isdn_sup_IntResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1902 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1903 | 0 | IntResult_sequence, hf_index, ett_isdn_sup_IntResult); |
1904 | |
|
1905 | 0 | return offset; |
1906 | 0 | } |
1907 | | |
1908 | | |
1909 | | static const ber_sequence_t IntResultList_set_of[1] = { |
1910 | | { &hf_isdn_sup_IntResultList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_IntResult }, |
1911 | | }; |
1912 | | |
1913 | | static int |
1914 | 0 | dissect_isdn_sup_IntResultList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1915 | 0 | offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset, |
1916 | 0 | IntResultList_set_of, hf_index, ett_isdn_sup_IntResultList); |
1917 | |
|
1918 | 0 | return offset; |
1919 | 0 | } |
1920 | | |
1921 | | |
1922 | | |
1923 | | static int |
1924 | 0 | dissect_isdn_sup_InterrogationDiversionRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1925 | 0 | offset = dissect_isdn_sup_IntResultList(implicit_tag, tvb, offset, actx, tree, hf_index); |
1926 | |
|
1927 | 0 | return offset; |
1928 | 0 | } |
1929 | | |
1930 | | |
1931 | | static const ber_sequence_t ServedUserNumberList_set_of[1] = { |
1932 | | { &hf_isdn_sup_ServedUserNumberList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PartyNumber }, |
1933 | | }; |
1934 | | |
1935 | | static int |
1936 | 0 | dissect_isdn_sup_ServedUserNumberList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1937 | 0 | offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset, |
1938 | 0 | ServedUserNumberList_set_of, hf_index, ett_isdn_sup_ServedUserNumberList); |
1939 | |
|
1940 | 0 | return offset; |
1941 | 0 | } |
1942 | | |
1943 | | |
1944 | | |
1945 | | static int |
1946 | 0 | dissect_isdn_sup_InterrogateServedUserNumbersRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1947 | 0 | offset = dissect_isdn_sup_ServedUserNumberList(implicit_tag, tvb, offset, actx, tree, hf_index); |
1948 | |
|
1949 | 0 | return offset; |
1950 | 0 | } |
1951 | | |
1952 | | |
1953 | | static const value_string isdn_sup_DiversionReason_vals[] = { |
1954 | | { 0, "unknown" }, |
1955 | | { 1, "cfu" }, |
1956 | | { 2, "cfb" }, |
1957 | | { 3, "cfnr" }, |
1958 | | { 4, "cdAlerting" }, |
1959 | | { 5, "cdImmediate" }, |
1960 | | { 0, NULL } |
1961 | | }; |
1962 | | |
1963 | | |
1964 | | static int |
1965 | 0 | dissect_isdn_sup_DiversionReason(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1966 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1967 | 0 | NULL); |
1968 | |
|
1969 | 0 | return offset; |
1970 | 0 | } |
1971 | | |
1972 | | |
1973 | | static const ber_sequence_t DiversionInformationArg_sequence[] = { |
1974 | | { &hf_isdn_sup_diversionReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_DiversionReason }, |
1975 | | { &hf_isdn_sup_basicService, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_BasicService }, |
1976 | | { &hf_isdn_sup_servedUserSubaddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PartySubaddress }, |
1977 | | { &hf_isdn_sup_callingAddress, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PresentedAddressScreened }, |
1978 | | { &hf_isdn_sup_originalCalledNr, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PresentedNumberUnscreened }, |
1979 | | { &hf_isdn_sup_lastDivertingNr, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PresentedNumberUnscreened }, |
1980 | | { &hf_isdn_sup_lastDivertingReason, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_isdn_sup_DiversionReason }, |
1981 | | { &hf_isdn_sup_userInfo , BER_CLASS_APP, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_isdn_sup_Q931InformationElement }, |
1982 | | { NULL, 0, 0, 0, NULL } |
1983 | | }; |
1984 | | |
1985 | | static int |
1986 | 0 | dissect_isdn_sup_DiversionInformationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1987 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
1988 | 0 | DiversionInformationArg_sequence, hf_index, ett_isdn_sup_DiversionInformationArg); |
1989 | |
|
1990 | 0 | return offset; |
1991 | 0 | } |
1992 | | |
1993 | | |
1994 | | static const ber_sequence_t CallDeflectionArg_sequence[] = { |
1995 | | { &hf_isdn_sup_deflectionAddress, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_Address }, |
1996 | | { &hf_isdn_sup_presentationAllowedDivertedToUser, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_isdn_sup_PresentationAllowedIndicator }, |
1997 | | { NULL, 0, 0, 0, NULL } |
1998 | | }; |
1999 | | |
2000 | | static int |
2001 | 0 | dissect_isdn_sup_CallDeflectionArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2002 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
2003 | 0 | CallDeflectionArg_sequence, hf_index, ett_isdn_sup_CallDeflectionArg); |
2004 | |
|
2005 | 0 | return offset; |
2006 | 0 | } |
2007 | | |
2008 | | |
2009 | | |
2010 | | static int |
2011 | 0 | dissect_isdn_sup_DiversionCounter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2012 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
2013 | 0 | NULL); |
2014 | |
|
2015 | 0 | return offset; |
2016 | 0 | } |
2017 | | |
2018 | | |
2019 | | static const value_string isdn_sup_SubscriptionOption_vals[] = { |
2020 | | { 0, "noNotification" }, |
2021 | | { 1, "notificationWithoutDivertedToNr" }, |
2022 | | { 2, "notificationWithDivertedToNr" }, |
2023 | | { 0, NULL } |
2024 | | }; |
2025 | | |
2026 | | |
2027 | | static int |
2028 | 0 | dissect_isdn_sup_SubscriptionOption(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2029 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
2030 | 0 | NULL); |
2031 | |
|
2032 | 0 | return offset; |
2033 | 0 | } |
2034 | | |
2035 | | |
2036 | | static const ber_sequence_t CallRerouteingArg_sequence[] = { |
2037 | | { &hf_isdn_sup_rerouteingReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_DiversionReason }, |
2038 | | { &hf_isdn_sup_calledAddress, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_Address }, |
2039 | | { &hf_isdn_sup_rerouteingCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_DiversionCounter }, |
2040 | | { &hf_isdn_sup_q931InfoElement, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_Q931InformationElement }, |
2041 | | { &hf_isdn_sup_lastRerouteingNr, BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PresentedNumberUnscreened }, |
2042 | | { &hf_isdn_sup_subscriptionOption, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_isdn_sup_SubscriptionOption }, |
2043 | | { &hf_isdn_sup_callingPartySubaddress, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PartySubaddress }, |
2044 | | { NULL, 0, 0, 0, NULL } |
2045 | | }; |
2046 | | |
2047 | | static int |
2048 | 0 | dissect_isdn_sup_CallRerouteingArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2049 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
2050 | 0 | CallRerouteingArg_sequence, hf_index, ett_isdn_sup_CallRerouteingArg); |
2051 | |
|
2052 | 0 | return offset; |
2053 | 0 | } |
2054 | | |
2055 | | |
2056 | | static const ber_sequence_t DivertingLegInformation1Arg_sequence[] = { |
2057 | | { &hf_isdn_sup_diversionReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_DiversionReason }, |
2058 | | { &hf_isdn_sup_subscriptionOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_SubscriptionOption }, |
2059 | | { &hf_isdn_sup_divertedToNumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PresentedNumberUnscreened }, |
2060 | | { NULL, 0, 0, 0, NULL } |
2061 | | }; |
2062 | | |
2063 | | static int |
2064 | 0 | dissect_isdn_sup_DivertingLegInformation1Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2065 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
2066 | 0 | DivertingLegInformation1Arg_sequence, hf_index, ett_isdn_sup_DivertingLegInformation1Arg); |
2067 | |
|
2068 | 0 | return offset; |
2069 | 0 | } |
2070 | | |
2071 | | |
2072 | | static const ber_sequence_t DivertingLegInformation2Arg_sequence[] = { |
2073 | | { &hf_isdn_sup_diversionCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_DiversionCounter }, |
2074 | | { &hf_isdn_sup_diversionReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_DiversionReason }, |
2075 | | { &hf_isdn_sup_divertingNr, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PresentedNumberUnscreened }, |
2076 | | { &hf_isdn_sup_originalCalledNr, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PresentedNumberUnscreened }, |
2077 | | { NULL, 0, 0, 0, NULL } |
2078 | | }; |
2079 | | |
2080 | | static int |
2081 | 0 | dissect_isdn_sup_DivertingLegInformation2Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2082 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
2083 | 0 | DivertingLegInformation2Arg_sequence, hf_index, ett_isdn_sup_DivertingLegInformation2Arg); |
2084 | |
|
2085 | 0 | return offset; |
2086 | 0 | } |
2087 | | |
2088 | | |
2089 | | |
2090 | | static int |
2091 | 0 | dissect_isdn_sup_DivertingLegInformation3Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2092 | 0 | offset = dissect_isdn_sup_PresentationAllowedIndicator(implicit_tag, tvb, offset, actx, tree, hf_index); |
2093 | |
|
2094 | 0 | return offset; |
2095 | 0 | } |
2096 | | |
2097 | | |
2098 | | static const value_string isdn_sup_Service_vals[] = { |
2099 | | { 1, "service1" }, |
2100 | | { 2, "service2" }, |
2101 | | { 3, "service3" }, |
2102 | | { 0, NULL } |
2103 | | }; |
2104 | | |
2105 | | |
2106 | | static int |
2107 | 0 | dissect_isdn_sup_Service(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2108 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
2109 | 0 | NULL); |
2110 | |
|
2111 | 0 | return offset; |
2112 | 0 | } |
2113 | | |
2114 | | |
2115 | | |
2116 | | static int |
2117 | 0 | dissect_isdn_sup_Preferred(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2118 | 0 | offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); |
2119 | |
|
2120 | 0 | return offset; |
2121 | 0 | } |
2122 | | |
2123 | | |
2124 | | static const ber_sequence_t UserUserServiceArg_sequence[] = { |
2125 | | { &hf_isdn_sup_service , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_sup_Service }, |
2126 | | { &hf_isdn_sup_preferred , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_isdn_sup_Preferred }, |
2127 | | { NULL, 0, 0, 0, NULL } |
2128 | | }; |
2129 | | |
2130 | | static int |
2131 | 0 | dissect_isdn_sup_UserUserServiceArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2132 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
2133 | 0 | UserUserServiceArg_sequence, hf_index, ett_isdn_sup_UserUserServiceArg); |
2134 | |
|
2135 | 0 | return offset; |
2136 | 0 | } |
2137 | | |
2138 | | |
2139 | | |
2140 | | static int |
2141 | 0 | dissect_isdn_sup_CalledFreephoneNr(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2142 | 0 | offset = dissect_isdn_sup_PartyNumber(implicit_tag, tvb, offset, actx, tree, hf_index); |
2143 | |
|
2144 | 0 | return offset; |
2145 | 0 | } |
2146 | | |
2147 | | |
2148 | | |
2149 | | static int |
2150 | 0 | dissect_isdn_sup_CalledFreephoneNrArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2151 | 0 | offset = dissect_isdn_sup_CalledFreephoneNr(implicit_tag, tvb, offset, actx, tree, hf_index); |
2152 | |
|
2153 | 0 | return offset; |
2154 | 0 | } |
2155 | | |
2156 | | |
2157 | | |
2158 | | static int |
2159 | 0 | dissect_isdn_sup_QueueIdentity(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2160 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
2161 | 0 | NULL); |
2162 | |
|
2163 | 0 | return offset; |
2164 | 0 | } |
2165 | | |
2166 | | |
2167 | | static const ber_sequence_t Monitor_T_FPHArg_sequence[] = { |
2168 | | { &hf_isdn_sup_q931InfoElement, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_Q931InformationElement }, |
2169 | | { &hf_isdn_sup_servedUserDestination, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PartyNumber }, |
2170 | | { &hf_isdn_sup_queueIdentity, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_isdn_sup_QueueIdentity }, |
2171 | | { NULL, 0, 0, 0, NULL } |
2172 | | }; |
2173 | | |
2174 | | static int |
2175 | 0 | dissect_isdn_sup_Monitor_T_FPHArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2176 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
2177 | 0 | Monitor_T_FPHArg_sequence, hf_index, ett_isdn_sup_Monitor_T_FPHArg); |
2178 | |
|
2179 | 0 | return offset; |
2180 | 0 | } |
2181 | | |
2182 | | |
2183 | | |
2184 | | static int |
2185 | 0 | dissect_isdn_sup_FPHReference(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2186 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
2187 | 0 | NULL); |
2188 | |
|
2189 | 0 | return offset; |
2190 | 0 | } |
2191 | | |
2192 | | |
2193 | | static const ber_sequence_t Free_T_FPHArg_sequence[] = { |
2194 | | { &hf_isdn_sup_servedUserDestination, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_PartyNumber }, |
2195 | | { &hf_isdn_sup_fPHReference, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_FPHReference }, |
2196 | | { NULL, 0, 0, 0, NULL } |
2197 | | }; |
2198 | | |
2199 | | static int |
2200 | 0 | dissect_isdn_sup_Free_T_FPHArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2201 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
2202 | 0 | Free_T_FPHArg_sequence, hf_index, ett_isdn_sup_Free_T_FPHArg); |
2203 | |
|
2204 | 0 | return offset; |
2205 | 0 | } |
2206 | | |
2207 | | |
2208 | | static const ber_sequence_t Call_T_FPHArg_sequence[] = { |
2209 | | { &hf_isdn_sup_fPHReference, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_FPHReference }, |
2210 | | { &hf_isdn_sup_calledFreephoneNr, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_isdn_sup_CalledFreephoneNr }, |
2211 | | { NULL, 0, 0, 0, NULL } |
2212 | | }; |
2213 | | |
2214 | | static int |
2215 | 0 | dissect_isdn_sup_Call_T_FPHArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2216 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
2217 | 0 | Call_T_FPHArg_sequence, hf_index, ett_isdn_sup_Call_T_FPHArg); |
2218 | |
|
2219 | 0 | return offset; |
2220 | 0 | } |
2221 | | |
2222 | | |
2223 | | static const value_string isdn_sup_PrecLevel_vals[] = { |
2224 | | { 0, "flashOverride" }, |
2225 | | { 1, "flash" }, |
2226 | | { 2, "immediate" }, |
2227 | | { 3, "priority" }, |
2228 | | { 4, "routine" }, |
2229 | | { 0, NULL } |
2230 | | }; |
2231 | | |
2232 | | |
2233 | | static int |
2234 | 0 | dissect_isdn_sup_PrecLevel(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2235 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
2236 | 0 | NULL); |
2237 | |
|
2238 | 0 | return offset; |
2239 | 0 | } |
2240 | | |
2241 | | |
2242 | | static const value_string isdn_sup_LFBIndictn_vals[] = { |
2243 | | { 0, "ifbAllowed" }, |
2244 | | { 1, "ifbNotAllowed" }, |
2245 | | { 2, "pathReserved" }, |
2246 | | { 0, NULL } |
2247 | | }; |
2248 | | |
2249 | | |
2250 | | static int |
2251 | 0 | dissect_isdn_sup_LFBIndictn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2252 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
2253 | 0 | NULL); |
2254 | |
|
2255 | 0 | return offset; |
2256 | 0 | } |
2257 | | |
2258 | | |
2259 | | |
2260 | | static int |
2261 | 0 | dissect_isdn_sup_MLPPSvcDomn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2262 | 0 | offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, |
2263 | 0 | NULL); |
2264 | |
|
2265 | 0 | return offset; |
2266 | 0 | } |
2267 | | |
2268 | | |
2269 | | static const ber_sequence_t MLPPParams_sequence[] = { |
2270 | | { &hf_isdn_sup_precLevel , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_PrecLevel }, |
2271 | | { &hf_isdn_sup_lfbIndictn , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_LFBIndictn }, |
2272 | | { &hf_isdn_sup_mlppSvcDomn, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_MLPPSvcDomn }, |
2273 | | { NULL, 0, 0, 0, NULL } |
2274 | | }; |
2275 | | |
2276 | | static int |
2277 | 0 | dissect_isdn_sup_MLPPParams(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2278 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
2279 | 0 | MLPPParams_sequence, hf_index, ett_isdn_sup_MLPPParams); |
2280 | |
|
2281 | 0 | return offset; |
2282 | 0 | } |
2283 | | |
2284 | | |
2285 | | |
2286 | | static int |
2287 | 0 | dissect_isdn_sup_IEArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2288 | 0 | offset = dissect_isdn_sup_Q931InformationElement(implicit_tag, tvb, offset, actx, tree, hf_index); |
2289 | |
|
2290 | 0 | return offset; |
2291 | 0 | } |
2292 | | |
2293 | | |
2294 | | static const ber_sequence_t MLPPLFBArg_sequence[] = { |
2295 | | { &hf_isdn_sup_mlppParams , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_MLPPParams }, |
2296 | | { &hf_isdn_sup_ieArg , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_IEArg }, |
2297 | | { NULL, 0, 0, 0, NULL } |
2298 | | }; |
2299 | | |
2300 | | static int |
2301 | 0 | dissect_isdn_sup_MLPPLFBArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2302 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
2303 | 0 | MLPPLFBArg_sequence, hf_index, ett_isdn_sup_MLPPLFBArg); |
2304 | |
|
2305 | 0 | return offset; |
2306 | 0 | } |
2307 | | |
2308 | | |
2309 | | static const value_string isdn_sup_StatusQuery_vals[] = { |
2310 | | { 1, "success" }, |
2311 | | { 2, "failure" }, |
2312 | | { 3, "bearerCapabilityNotAuthorized" }, |
2313 | | { 4, "bearerCapabilityNotlmplemented" }, |
2314 | | { 5, "bearerCapabilityNotAvailable" }, |
2315 | | { 6, "pathReservationDenied" }, |
2316 | | { 0, NULL } |
2317 | | }; |
2318 | | |
2319 | | |
2320 | | static int |
2321 | 0 | dissect_isdn_sup_StatusQuery(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2322 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
2323 | 0 | NULL); |
2324 | |
|
2325 | 0 | return offset; |
2326 | 0 | } |
2327 | | |
2328 | | |
2329 | | |
2330 | | static int |
2331 | 0 | dissect_isdn_sup_Location(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2332 | 0 | offset = dissect_isdn_sup_Q931InformationElement(implicit_tag, tvb, offset, actx, tree, hf_index); |
2333 | |
|
2334 | 0 | return offset; |
2335 | 0 | } |
2336 | | |
2337 | | |
2338 | | static const ber_sequence_t MLPPLFBResp_sequence[] = { |
2339 | | { &hf_isdn_sup_statusQuery, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_StatusQuery }, |
2340 | | { &hf_isdn_sup_location , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_isdn_sup_Location }, |
2341 | | { NULL, 0, 0, 0, NULL } |
2342 | | }; |
2343 | | |
2344 | | static int |
2345 | 0 | dissect_isdn_sup_MLPPLFBResp(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2346 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
2347 | 0 | MLPPLFBResp_sequence, hf_index, ett_isdn_sup_MLPPLFBResp); |
2348 | |
|
2349 | 0 | return offset; |
2350 | 0 | } |
2351 | | |
2352 | | |
2353 | | static const value_string isdn_sup_StatusRequest_vals[] = { |
2354 | | { 1, "successCalledUserMLPPSubscriber" }, |
2355 | | { 2, "successCalledUserNotMLPPSubscriber" }, |
2356 | | { 3, "failureCaseA" }, |
2357 | | { 4, "failureCaseB" }, |
2358 | | { 0, NULL } |
2359 | | }; |
2360 | | |
2361 | | |
2362 | | static int |
2363 | 0 | dissect_isdn_sup_StatusRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2364 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
2365 | 0 | NULL); |
2366 | |
|
2367 | 0 | return offset; |
2368 | 0 | } |
2369 | | |
2370 | | |
2371 | | static const value_string isdn_sup_PreemptParams_vals[] = { |
2372 | | { 1, "circuitReservedForReuse" }, |
2373 | | { 2, "circuitNotReservedForReuse" }, |
2374 | | { 0, NULL } |
2375 | | }; |
2376 | | |
2377 | | |
2378 | | static int |
2379 | 0 | dissect_isdn_sup_PreemptParams(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
2380 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
2381 | 0 | NULL); |
2382 | |
|
2383 | 0 | return offset; |
2384 | 0 | } |
2385 | | |
2386 | | /*--- PDUs ---*/ |
2387 | | |
2388 | 0 | static int dissect_ChargingRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2389 | 0 | int offset = 0; |
2390 | 0 | asn1_ctx_t asn1_ctx; |
2391 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2392 | 0 | offset = dissect_isdn_sup_ChargingRequestArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_ChargingRequestArg_PDU); |
2393 | 0 | return offset; |
2394 | 0 | } |
2395 | 0 | static int dissect_ChargingRequestRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2396 | 0 | int offset = 0; |
2397 | 0 | asn1_ctx_t asn1_ctx; |
2398 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2399 | 0 | offset = dissect_isdn_sup_ChargingRequestRes(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_ChargingRequestRes_PDU); |
2400 | 0 | return offset; |
2401 | 0 | } |
2402 | 0 | static int dissect_AOCSCurrencyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2403 | 0 | int offset = 0; |
2404 | 0 | asn1_ctx_t asn1_ctx; |
2405 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2406 | 0 | offset = dissect_isdn_sup_AOCSCurrencyArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_AOCSCurrencyArg_PDU); |
2407 | 0 | return offset; |
2408 | 0 | } |
2409 | 0 | static int dissect_AOCSSpecialArrArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2410 | 0 | int offset = 0; |
2411 | 0 | asn1_ctx_t asn1_ctx; |
2412 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2413 | 0 | offset = dissect_isdn_sup_AOCSSpecialArrArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_AOCSSpecialArrArg_PDU); |
2414 | 0 | return offset; |
2415 | 0 | } |
2416 | 0 | static int dissect_AOCDCurrencyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2417 | 0 | int offset = 0; |
2418 | 0 | asn1_ctx_t asn1_ctx; |
2419 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2420 | 0 | offset = dissect_isdn_sup_AOCDCurrencyArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_AOCDCurrencyArg_PDU); |
2421 | 0 | return offset; |
2422 | 0 | } |
2423 | 0 | static int dissect_AOCDChargingUnitArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2424 | 0 | int offset = 0; |
2425 | 0 | asn1_ctx_t asn1_ctx; |
2426 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2427 | 0 | offset = dissect_isdn_sup_AOCDChargingUnitArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_AOCDChargingUnitArg_PDU); |
2428 | 0 | return offset; |
2429 | 0 | } |
2430 | 0 | static int dissect_AOCECurrencyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2431 | 0 | int offset = 0; |
2432 | 0 | asn1_ctx_t asn1_ctx; |
2433 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2434 | 0 | offset = dissect_isdn_sup_AOCECurrencyArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_AOCECurrencyArg_PDU); |
2435 | 0 | return offset; |
2436 | 0 | } |
2437 | 0 | static int dissect_AOCEChargingUnitArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2438 | 0 | int offset = 0; |
2439 | 0 | asn1_ctx_t asn1_ctx; |
2440 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2441 | 0 | offset = dissect_isdn_sup_AOCEChargingUnitArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_AOCEChargingUnitArg_PDU); |
2442 | 0 | return offset; |
2443 | 0 | } |
2444 | 0 | static int dissect_CUGcallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2445 | 0 | int offset = 0; |
2446 | 0 | asn1_ctx_t asn1_ctx; |
2447 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2448 | 0 | offset = dissect_isdn_sup_CUGcallArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_CUGcallArg_PDU); |
2449 | 0 | return offset; |
2450 | 0 | } |
2451 | 0 | static int dissect_BeginCONFArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2452 | 0 | int offset = 0; |
2453 | 0 | asn1_ctx_t asn1_ctx; |
2454 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2455 | 0 | offset = dissect_isdn_sup_BeginCONFArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_BeginCONFArg_PDU); |
2456 | 0 | return offset; |
2457 | 0 | } |
2458 | 0 | static int dissect_BeginCONFRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2459 | 0 | int offset = 0; |
2460 | 0 | asn1_ctx_t asn1_ctx; |
2461 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2462 | 0 | offset = dissect_isdn_sup_BeginCONFRes(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_BeginCONFRes_PDU); |
2463 | 0 | return offset; |
2464 | 0 | } |
2465 | 0 | static int dissect_AddCONFArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2466 | 0 | int offset = 0; |
2467 | 0 | asn1_ctx_t asn1_ctx; |
2468 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2469 | 0 | offset = dissect_isdn_sup_AddCONFArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_AddCONFArg_PDU); |
2470 | 0 | return offset; |
2471 | 0 | } |
2472 | 0 | static int dissect_AddCONFRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2473 | 0 | int offset = 0; |
2474 | 0 | asn1_ctx_t asn1_ctx; |
2475 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2476 | 0 | offset = dissect_isdn_sup_AddCONFRes(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_AddCONFRes_PDU); |
2477 | 0 | return offset; |
2478 | 0 | } |
2479 | 0 | static int dissect_SplitCONFArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2480 | 0 | int offset = 0; |
2481 | 0 | asn1_ctx_t asn1_ctx; |
2482 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2483 | 0 | offset = dissect_isdn_sup_SplitCONFArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_SplitCONFArg_PDU); |
2484 | 0 | return offset; |
2485 | 0 | } |
2486 | 0 | static int dissect_DropCONFArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2487 | 0 | int offset = 0; |
2488 | 0 | asn1_ctx_t asn1_ctx; |
2489 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2490 | 0 | offset = dissect_isdn_sup_DropCONFArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_DropCONFArg_PDU); |
2491 | 0 | return offset; |
2492 | 0 | } |
2493 | 0 | static int dissect_IsolateCONFArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2494 | 0 | int offset = 0; |
2495 | 0 | asn1_ctx_t asn1_ctx; |
2496 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2497 | 0 | offset = dissect_isdn_sup_IsolateCONFArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_IsolateCONFArg_PDU); |
2498 | 0 | return offset; |
2499 | 0 | } |
2500 | 0 | static int dissect_ReattachCONFArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2501 | 0 | int offset = 0; |
2502 | 0 | asn1_ctx_t asn1_ctx; |
2503 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2504 | 0 | offset = dissect_isdn_sup_ReattachCONFArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_ReattachCONFArg_PDU); |
2505 | 0 | return offset; |
2506 | 0 | } |
2507 | 0 | static int dissect_PartyDISCArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2508 | 0 | int offset = 0; |
2509 | 0 | asn1_ctx_t asn1_ctx; |
2510 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2511 | 0 | offset = dissect_isdn_sup_PartyDISCArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_PartyDISCArg_PDU); |
2512 | 0 | return offset; |
2513 | 0 | } |
2514 | 0 | static int dissect_ActivationDiversionArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2515 | 0 | int offset = 0; |
2516 | 0 | asn1_ctx_t asn1_ctx; |
2517 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2518 | 0 | offset = dissect_isdn_sup_ActivationDiversionArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_ActivationDiversionArg_PDU); |
2519 | 0 | return offset; |
2520 | 0 | } |
2521 | 0 | static int dissect_DeactivationDiversionArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2522 | 0 | int offset = 0; |
2523 | 0 | asn1_ctx_t asn1_ctx; |
2524 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2525 | 0 | offset = dissect_isdn_sup_DeactivationDiversionArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_DeactivationDiversionArg_PDU); |
2526 | 0 | return offset; |
2527 | 0 | } |
2528 | 0 | static int dissect_ActivationStatusNotificationDivArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2529 | 0 | int offset = 0; |
2530 | 0 | asn1_ctx_t asn1_ctx; |
2531 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2532 | 0 | offset = dissect_isdn_sup_ActivationStatusNotificationDivArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_ActivationStatusNotificationDivArg_PDU); |
2533 | 0 | return offset; |
2534 | 0 | } |
2535 | 0 | static int dissect_DeactivationStatusNotificationDivArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2536 | 0 | int offset = 0; |
2537 | 0 | asn1_ctx_t asn1_ctx; |
2538 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2539 | 0 | offset = dissect_isdn_sup_DeactivationStatusNotificationDivArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_DeactivationStatusNotificationDivArg_PDU); |
2540 | 0 | return offset; |
2541 | 0 | } |
2542 | 0 | static int dissect_InterrogationDiversionArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2543 | 0 | int offset = 0; |
2544 | 0 | asn1_ctx_t asn1_ctx; |
2545 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2546 | 0 | offset = dissect_isdn_sup_InterrogationDiversionArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_InterrogationDiversionArg_PDU); |
2547 | 0 | return offset; |
2548 | 0 | } |
2549 | 0 | static int dissect_InterrogationDiversionRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2550 | 0 | int offset = 0; |
2551 | 0 | asn1_ctx_t asn1_ctx; |
2552 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2553 | 0 | offset = dissect_isdn_sup_InterrogationDiversionRes(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_InterrogationDiversionRes_PDU); |
2554 | 0 | return offset; |
2555 | 0 | } |
2556 | 0 | static int dissect_InterrogateServedUserNumbersRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2557 | 0 | int offset = 0; |
2558 | 0 | asn1_ctx_t asn1_ctx; |
2559 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2560 | 0 | offset = dissect_isdn_sup_InterrogateServedUserNumbersRes(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_InterrogateServedUserNumbersRes_PDU); |
2561 | 0 | return offset; |
2562 | 0 | } |
2563 | 0 | static int dissect_DiversionInformationArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2564 | 0 | int offset = 0; |
2565 | 0 | asn1_ctx_t asn1_ctx; |
2566 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2567 | 0 | offset = dissect_isdn_sup_DiversionInformationArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_DiversionInformationArg_PDU); |
2568 | 0 | return offset; |
2569 | 0 | } |
2570 | 0 | static int dissect_CallDeflectionArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2571 | 0 | int offset = 0; |
2572 | 0 | asn1_ctx_t asn1_ctx; |
2573 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2574 | 0 | offset = dissect_isdn_sup_CallDeflectionArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_CallDeflectionArg_PDU); |
2575 | 0 | return offset; |
2576 | 0 | } |
2577 | 0 | static int dissect_CallRerouteingArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2578 | 0 | int offset = 0; |
2579 | 0 | asn1_ctx_t asn1_ctx; |
2580 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2581 | 0 | offset = dissect_isdn_sup_CallRerouteingArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_CallRerouteingArg_PDU); |
2582 | 0 | return offset; |
2583 | 0 | } |
2584 | 0 | static int dissect_DivertingLegInformation1Arg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2585 | 0 | int offset = 0; |
2586 | 0 | asn1_ctx_t asn1_ctx; |
2587 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2588 | 0 | offset = dissect_isdn_sup_DivertingLegInformation1Arg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_DivertingLegInformation1Arg_PDU); |
2589 | 0 | return offset; |
2590 | 0 | } |
2591 | 0 | static int dissect_DivertingLegInformation2Arg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2592 | 0 | int offset = 0; |
2593 | 0 | asn1_ctx_t asn1_ctx; |
2594 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2595 | 0 | offset = dissect_isdn_sup_DivertingLegInformation2Arg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_DivertingLegInformation2Arg_PDU); |
2596 | 0 | return offset; |
2597 | 0 | } |
2598 | 0 | static int dissect_DivertingLegInformation3Arg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2599 | 0 | int offset = 0; |
2600 | 0 | asn1_ctx_t asn1_ctx; |
2601 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2602 | 0 | offset = dissect_isdn_sup_DivertingLegInformation3Arg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_DivertingLegInformation3Arg_PDU); |
2603 | 0 | return offset; |
2604 | 0 | } |
2605 | 0 | static int dissect_UserUserServiceArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2606 | 0 | int offset = 0; |
2607 | 0 | asn1_ctx_t asn1_ctx; |
2608 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2609 | 0 | offset = dissect_isdn_sup_UserUserServiceArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_UserUserServiceArg_PDU); |
2610 | 0 | return offset; |
2611 | 0 | } |
2612 | 0 | static int dissect_CalledFreephoneNrArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2613 | 0 | int offset = 0; |
2614 | 0 | asn1_ctx_t asn1_ctx; |
2615 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2616 | 0 | offset = dissect_isdn_sup_CalledFreephoneNrArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_CalledFreephoneNrArg_PDU); |
2617 | 0 | return offset; |
2618 | 0 | } |
2619 | 0 | static int dissect_Monitor_T_FPHArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2620 | 0 | int offset = 0; |
2621 | 0 | asn1_ctx_t asn1_ctx; |
2622 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2623 | 0 | offset = dissect_isdn_sup_Monitor_T_FPHArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_Monitor_T_FPHArg_PDU); |
2624 | 0 | return offset; |
2625 | 0 | } |
2626 | 0 | static int dissect_Free_T_FPHArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2627 | 0 | int offset = 0; |
2628 | 0 | asn1_ctx_t asn1_ctx; |
2629 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2630 | 0 | offset = dissect_isdn_sup_Free_T_FPHArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_Free_T_FPHArg_PDU); |
2631 | 0 | return offset; |
2632 | 0 | } |
2633 | 0 | static int dissect_Call_T_FPHArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2634 | 0 | int offset = 0; |
2635 | 0 | asn1_ctx_t asn1_ctx; |
2636 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2637 | 0 | offset = dissect_isdn_sup_Call_T_FPHArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_Call_T_FPHArg_PDU); |
2638 | 0 | return offset; |
2639 | 0 | } |
2640 | 0 | static int dissect_MLPPLFBArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2641 | 0 | int offset = 0; |
2642 | 0 | asn1_ctx_t asn1_ctx; |
2643 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2644 | 0 | offset = dissect_isdn_sup_MLPPLFBArg(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_MLPPLFBArg_PDU); |
2645 | 0 | return offset; |
2646 | 0 | } |
2647 | 0 | static int dissect_MLPPLFBResp_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2648 | 0 | int offset = 0; |
2649 | 0 | asn1_ctx_t asn1_ctx; |
2650 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2651 | 0 | offset = dissect_isdn_sup_MLPPLFBResp(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_MLPPLFBResp_PDU); |
2652 | 0 | return offset; |
2653 | 0 | } |
2654 | 0 | static int dissect_MLPPParams_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2655 | 0 | int offset = 0; |
2656 | 0 | asn1_ctx_t asn1_ctx; |
2657 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2658 | 0 | offset = dissect_isdn_sup_MLPPParams(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_MLPPParams_PDU); |
2659 | 0 | return offset; |
2660 | 0 | } |
2661 | 0 | static int dissect_StatusRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2662 | 0 | int offset = 0; |
2663 | 0 | asn1_ctx_t asn1_ctx; |
2664 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2665 | 0 | offset = dissect_isdn_sup_StatusRequest(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_StatusRequest_PDU); |
2666 | 0 | return offset; |
2667 | 0 | } |
2668 | 0 | static int dissect_PreemptParams_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
2669 | 0 | int offset = 0; |
2670 | 0 | asn1_ctx_t asn1_ctx; |
2671 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
2672 | 0 | offset = dissect_isdn_sup_PreemptParams(false, tvb, offset, &asn1_ctx, tree, hf_isdn_sup_PreemptParams_PDU); |
2673 | 0 | return offset; |
2674 | 0 | } |
2675 | | |
2676 | | |
2677 | | static const isdn_sup_op_t isdn_sup_op_tab[] = { |
2678 | | /* chargingRequest */ { 30, dissect_ChargingRequestArg_PDU, dissect_ChargingRequestRes_PDU }, |
2679 | | /* aOCSCurrency */ { 31, dissect_AOCSCurrencyArg_PDU, NULL }, |
2680 | | /* aOCSSpecialArr */ { 32, dissect_AOCSSpecialArrArg_PDU, NULL }, |
2681 | | /* aOCDCurrency */ { 33, dissect_AOCDCurrencyArg_PDU, NULL }, |
2682 | | /* aOCDChargingUnit */ { 34, dissect_AOCDChargingUnitArg_PDU, NULL }, |
2683 | | /* aOCECurrency */ { 35, dissect_AOCECurrencyArg_PDU, NULL }, |
2684 | | /* aOCEChargingUnit */ { 36, dissect_AOCEChargingUnitArg_PDU, NULL }, |
2685 | | /* cUGcall */ { 2, dissect_CUGcallArg_PDU, NULL }, |
2686 | | /* beginCONF */ { 40, dissect_BeginCONFArg_PDU, dissect_BeginCONFRes_PDU }, |
2687 | | /* addCONF */ { 41, dissect_AddCONFArg_PDU, dissect_AddCONFRes_PDU }, |
2688 | | /* splitCONF */ { 42, dissect_SplitCONFArg_PDU, NULL }, |
2689 | | /* dropCONF */ { 43, dissect_DropCONFArg_PDU, NULL }, |
2690 | | /* isolateCONF */ { 44, dissect_IsolateCONFArg_PDU, NULL }, |
2691 | | /* reattachCONF */ { 45, dissect_ReattachCONFArg_PDU, NULL }, |
2692 | | /* partyDISC */ { 46, dissect_PartyDISCArg_PDU, NULL }, |
2693 | | /* activationDiversion */ { 7, dissect_ActivationDiversionArg_PDU, NULL }, |
2694 | | /* deactivationDiversion */ { 8, dissect_DeactivationDiversionArg_PDU, NULL }, |
2695 | | /* activationStatusNotificationDiv */ { 9, dissect_ActivationStatusNotificationDivArg_PDU, NULL }, |
2696 | | /* deactivationStatusNotificationDiv */ { 10, dissect_DeactivationStatusNotificationDivArg_PDU, NULL }, |
2697 | | /* interrogationDiversion */ { 11, dissect_InterrogationDiversionArg_PDU, dissect_InterrogationDiversionRes_PDU }, |
2698 | | /* interrogateServedUserNumbers */ { 17, NULL, dissect_InterrogateServedUserNumbersRes_PDU }, |
2699 | | /* diversionInformation */ { 12, dissect_DiversionInformationArg_PDU, NULL }, |
2700 | | /* callDeflection */ { 13, dissect_CallDeflectionArg_PDU, NULL }, |
2701 | | /* callRerouteing */ { 14, dissect_CallRerouteingArg_PDU, NULL }, |
2702 | | /* divertingLegInformation1 */ { 18, dissect_DivertingLegInformation1Arg_PDU, NULL }, |
2703 | | /* divertingLegInformation2 */ { 15, dissect_DivertingLegInformation2Arg_PDU, NULL }, |
2704 | | /* divertingLegInformation3 */ { 19, dissect_DivertingLegInformation3Arg_PDU, NULL }, |
2705 | | /* mCIDRequest */ { 3, NULL, NULL }, |
2706 | | /* userUserService */ { 1, dissect_UserUserServiceArg_PDU, NULL }, |
2707 | | /* mLPPLFBQuery */ { 24, dissect_MLPPLFBArg_PDU, dissect_MLPPLFBResp_PDU }, |
2708 | | /* mLPPCallRequest */ { 25, dissect_MLPPParams_PDU, dissect_StatusRequest_PDU }, |
2709 | | /* mLPPCallPreemption */ { 26, dissect_PreemptParams_PDU, NULL }, |
2710 | | }; |
2711 | | |
2712 | | |
2713 | | static const isdn_sup_global_op_t isdn_sup_global_op_tab[] = { |
2714 | | |
2715 | | /* callFPH */ { fPHOID".1", dissect_CalledFreephoneNrArg_PDU, NULL }, |
2716 | | /* monitor-T-FPH */ { fPHOID".2", dissect_Monitor_T_FPHArg_PDU, NULL }, |
2717 | | /* free-T-FPH */ { fPHOID".3", dissect_Free_T_FPHArg_PDU, NULL }, |
2718 | | /* call-T-FPH */ { fPHOID".4", dissect_Call_T_FPHArg_PDU, NULL }, |
2719 | | }; |
2720 | | |
2721 | | static const isdn_sup_err_t isdn_sup_err_tab[] = { |
2722 | | /* notSubscribed */ { 0, NULL }, |
2723 | | /* notAvailable */ { 3, NULL }, |
2724 | | /* notImplemented */ { 4, NULL }, |
2725 | | /* invalidServedUserNr */ { 6, NULL }, |
2726 | | /* invalidCallState */ { 7, NULL }, |
2727 | | /* basicServiceNotProvided */ { 8, NULL }, |
2728 | | /* notIncomingCall */ { 9, NULL }, |
2729 | | /* supplementaryServiceInteractionNotAllowed */ { 10, NULL }, |
2730 | | /* resourceUnavailable */ { 11, NULL }, |
2731 | | /* noChargingInfoAvailable */ { 26, NULL }, |
2732 | | /* invalidOrUnregisteredCUGIndex */ { 16, NULL }, |
2733 | | /* requestedBasicServiceViolatesCUGConstraints */ { 17, NULL }, |
2734 | | /* outgoingCallsBarredWithinCUG */ { 18, NULL }, |
2735 | | /* incomingCallsBarredWithinCUG */ { 19, NULL }, |
2736 | | /* userNotMemberOfCUG */ { 20, NULL }, |
2737 | | /* inconsistencyInDesignatedFacilityAndSubscriberClass */ { 21, NULL }, |
2738 | | /* illConferenceId */ { 28, NULL }, |
2739 | | /* illPartyId */ { 29, NULL }, |
2740 | | /* numberOfPartiesExceeded */ { 30, NULL }, |
2741 | | /* notActive */ { 31, NULL }, |
2742 | | /* notAllowed */ { 32, NULL }, |
2743 | | /* invalidDivertedToNr */ { 12, NULL }, |
2744 | | /* specialServiceNr */ { 14, NULL }, |
2745 | | /* diversionToServedUserNr */ { 15, NULL }, |
2746 | | /* incomingCallAccepted */ { 23, NULL }, |
2747 | | /* numberOfDiversionsExceeded */ { 24, NULL }, |
2748 | | /* notActivated */ { 46, NULL }, |
2749 | | /* requestAlreadyAccepted */ { 48, NULL }, |
2750 | | /* rejectedByTheNetwork */ { 1, NULL }, |
2751 | | /* rejectedByTheUser */ { 2, NULL }, |
2752 | | /* unauthorizedPrecedenceLevel */ { 44, NULL }, |
2753 | | }; |
2754 | | |
2755 | | |
2756 | 0 | static const isdn_sup_op_t *get_op(int32_t opcode) { |
2757 | 0 | int i; |
2758 | | |
2759 | | /* search from the end to get the last occurrence if the operation is redefined in some newer specification */ |
2760 | 0 | for (i = array_length(isdn_sup_op_tab) - 1; i >= 0; i--) |
2761 | 0 | if (isdn_sup_op_tab[i].opcode == opcode) |
2762 | 0 | return &isdn_sup_op_tab[i]; |
2763 | 0 | return NULL; |
2764 | 0 | } |
2765 | | |
2766 | 0 | static const isdn_sup_err_t *get_err(int32_t errcode) { |
2767 | 0 | int i; |
2768 | | |
2769 | | /* search from the end to get the last occurrence if the operation is redefined in some newer specification */ |
2770 | 0 | for (i = array_length(isdn_sup_err_tab) - 1; i >= 0; i--) |
2771 | 0 | if (isdn_sup_err_tab[i].errcode == errcode) |
2772 | 0 | return &isdn_sup_err_tab[i]; |
2773 | 0 | return NULL; |
2774 | 0 | } |
2775 | | |
2776 | | /*--- dissect_isdn_sup_arg ------------------------------------------------------*/ |
2777 | | static int |
2778 | 0 | dissect_isdn_sup_arg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { |
2779 | 0 | int offset = 0; |
2780 | 0 | rose_ctx_t *rctx; |
2781 | 0 | int32_t opcode = 0; |
2782 | 0 | const char *p; |
2783 | 0 | const isdn_sup_op_t *op_ptr; |
2784 | 0 | proto_item *ti; |
2785 | 0 | proto_tree *isdn_sup_tree; |
2786 | | |
2787 | | /* Reject the packet if data is NULL */ |
2788 | 0 | if (data == NULL) |
2789 | 0 | return 0; |
2790 | 0 | rctx = get_rose_ctx(data); |
2791 | 0 | DISSECTOR_ASSERT(rctx); |
2792 | |
|
2793 | 0 | if (rctx->d.pdu != 1) /* invoke */ |
2794 | 0 | return offset; |
2795 | 0 | if (rctx->d.code == 0) { /* local */ |
2796 | 0 | opcode = rctx->d.code_local; |
2797 | 0 | } else { |
2798 | 0 | return offset; |
2799 | 0 | } |
2800 | 0 | op_ptr = get_op(opcode); |
2801 | 0 | if (!op_ptr) |
2802 | 0 | return offset; |
2803 | | |
2804 | 0 | ti = proto_tree_add_item(tree, proto_isdn_sup, tvb, offset, -1, ENC_NA); |
2805 | 0 | isdn_sup_tree = proto_item_add_subtree(ti, ett_isdn_sup); |
2806 | |
|
2807 | 0 | proto_tree_add_uint(isdn_sup_tree, hf_isdn_sup_operation, tvb, 0, 0, opcode); |
2808 | 0 | p = try_val_to_str(opcode, VALS(isdn_sup_str_operation)); |
2809 | 0 | if (p) { |
2810 | 0 | proto_item_append_text(ti, ": %s", p); |
2811 | 0 | proto_item_append_text(rctx->d.code_item, " - %s", p); |
2812 | 0 | if (rctx->apdu_depth >= 0) |
2813 | 0 | proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p); |
2814 | 0 | } |
2815 | |
|
2816 | 0 | if (op_ptr->arg_pdu) |
2817 | 0 | offset = op_ptr->arg_pdu(tvb, pinfo, isdn_sup_tree, NULL); |
2818 | 0 | else |
2819 | 0 | if (tvb_reported_length_remaining(tvb, offset) > 0) { |
2820 | 0 | proto_tree_add_expert(tree, pinfo, &ei_isdn_sup_unsupported_error_type, tvb, offset, -1); |
2821 | 0 | offset += tvb_reported_length_remaining(tvb, offset); |
2822 | 0 | } |
2823 | |
|
2824 | 0 | return offset; |
2825 | 0 | } |
2826 | | |
2827 | | /*--- dissect_isdn_sup_res -------------------------------------------------------*/ |
2828 | | static int |
2829 | 0 | dissect_isdn_sup_res(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { |
2830 | 0 | int offset = 0; |
2831 | 0 | rose_ctx_t *rctx; |
2832 | 0 | int32_t opcode = 0; |
2833 | 0 | const char *p; |
2834 | 0 | const isdn_sup_op_t *op_ptr; |
2835 | 0 | proto_item *ti; |
2836 | 0 | proto_tree *isdn_sup_tree; |
2837 | | |
2838 | | /* Reject the packet if data is NULL */ |
2839 | 0 | if (data == NULL) |
2840 | 0 | return 0; |
2841 | 0 | rctx = get_rose_ctx(data); |
2842 | 0 | DISSECTOR_ASSERT(rctx); |
2843 | |
|
2844 | 0 | if (rctx->d.pdu != 2) /* returnResult */ |
2845 | 0 | return offset; |
2846 | 0 | if (rctx->d.code != 0) /* local */ |
2847 | 0 | return offset; |
2848 | 0 | opcode = rctx->d.code_local; |
2849 | 0 | op_ptr = get_op(opcode); |
2850 | 0 | if (!op_ptr) |
2851 | 0 | return offset; |
2852 | | |
2853 | 0 | ti = proto_tree_add_item(tree, proto_isdn_sup, tvb, offset, -1, ENC_NA); |
2854 | 0 | isdn_sup_tree = proto_item_add_subtree(ti, ett_isdn_sup); |
2855 | |
|
2856 | 0 | proto_tree_add_uint(isdn_sup_tree, hf_isdn_sup_operation, tvb, 0, 0, opcode); |
2857 | 0 | p = try_val_to_str(opcode, VALS(isdn_sup_str_operation)); |
2858 | 0 | if (p) { |
2859 | 0 | proto_item_append_text(ti, ": %s", p); |
2860 | 0 | proto_item_append_text(rctx->d.code_item, " - %s", p); |
2861 | 0 | if (rctx->apdu_depth >= 0) |
2862 | 0 | proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p); |
2863 | 0 | } |
2864 | |
|
2865 | 0 | if (op_ptr->res_pdu) |
2866 | 0 | offset = op_ptr->res_pdu(tvb, pinfo, isdn_sup_tree, NULL); |
2867 | 0 | else |
2868 | 0 | if (tvb_reported_length_remaining(tvb, offset) > 0) { |
2869 | 0 | proto_tree_add_expert(tree, pinfo, &ei_isdn_sup_unsupported_result_type, tvb, offset, -1); |
2870 | 0 | offset += tvb_reported_length_remaining(tvb, offset); |
2871 | 0 | } |
2872 | |
|
2873 | 0 | return offset; |
2874 | 0 | } |
2875 | | |
2876 | | |
2877 | | /*--- dissect_isdn_sup_err ------------------------------------------------------*/ |
2878 | | static int |
2879 | 0 | dissect_isdn_sup_err(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { |
2880 | 0 | int offset = 0; |
2881 | 0 | rose_ctx_t *rctx; |
2882 | 0 | int32_t errcode; |
2883 | 0 | const isdn_sup_err_t *err_ptr; |
2884 | 0 | const char *p; |
2885 | 0 | proto_item *ti; |
2886 | 0 | proto_tree *isdn_sup_tree; |
2887 | | |
2888 | | /* Reject the packet if data is NULL */ |
2889 | 0 | if (data == NULL) |
2890 | 0 | return 0; |
2891 | 0 | rctx = get_rose_ctx(data); |
2892 | 0 | DISSECTOR_ASSERT(rctx); |
2893 | |
|
2894 | 0 | if (rctx->d.pdu != 3) /* returnError */ |
2895 | 0 | return offset; |
2896 | 0 | if (rctx->d.code != 0) /* local */ |
2897 | 0 | return offset; |
2898 | 0 | errcode = rctx->d.code_local; |
2899 | 0 | err_ptr = get_err(errcode); |
2900 | 0 | if (!err_ptr) |
2901 | 0 | return offset; |
2902 | | |
2903 | 0 | ti = proto_tree_add_item(tree, proto_isdn_sup, tvb, offset, -1, ENC_NA); |
2904 | 0 | isdn_sup_tree = proto_item_add_subtree(ti, ett_isdn_sup); |
2905 | |
|
2906 | 0 | proto_tree_add_uint(isdn_sup_tree, hf_isdn_sup_error, tvb, 0, 0, errcode); |
2907 | 0 | p = try_val_to_str(errcode, VALS(isdn_sup_str_error)); |
2908 | 0 | if (p) { |
2909 | 0 | proto_item_append_text(ti, ": %s", p); |
2910 | 0 | proto_item_append_text(rctx->d.code_item, " - %s", p); |
2911 | 0 | if (rctx->apdu_depth >= 0) |
2912 | 0 | proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p); |
2913 | 0 | } |
2914 | |
|
2915 | 0 | if (err_ptr->err_pdu) |
2916 | 0 | offset = err_ptr->err_pdu(tvb, pinfo, isdn_sup_tree, NULL); |
2917 | 0 | else |
2918 | 0 | if (tvb_reported_length_remaining(tvb, offset) > 0) { |
2919 | 0 | proto_tree_add_expert(tree, pinfo, &ei_isdn_sup_unsupported_error_type, tvb, offset, -1); |
2920 | 0 | offset += tvb_reported_length_remaining(tvb, offset); |
2921 | 0 | } |
2922 | |
|
2923 | 0 | return offset; |
2924 | 0 | } |
2925 | | |
2926 | | |
2927 | | /*--- proto_reg_handoff_isdn_sup ---------------------------------------*/ |
2928 | | |
2929 | 14 | void proto_reg_handoff_isdn_sup(void) { |
2930 | 14 | int i; |
2931 | | #if 0 |
2932 | | dissector_handle_t q931_handle; |
2933 | | q931_handle = find_dissector("q931"); |
2934 | | #endif |
2935 | | |
2936 | 462 | for (i=0; i<(int)array_length(isdn_sup_op_tab); i++) { |
2937 | 448 | dissector_add_uint("q932.ros.etsi.local.arg", isdn_sup_op_tab[i].opcode, isdn_sup_arg_handle); |
2938 | 448 | dissector_add_uint("q932.ros.etsi.local.res", isdn_sup_op_tab[i].opcode, isdn_sup_res_handle); |
2939 | 448 | } |
2940 | | |
2941 | 70 | for (i=0; i<(int)array_length(isdn_sup_global_op_tab); i++) { |
2942 | 56 | if(isdn_sup_global_op_tab[i].arg_pdu) |
2943 | 56 | dissector_add_string("q932.ros.global.arg", isdn_sup_global_op_tab[i].oid, create_dissector_handle(isdn_sup_global_op_tab[i].arg_pdu, proto_isdn_sup)); |
2944 | 56 | if(isdn_sup_global_op_tab[i].res_pdu) |
2945 | 0 | dissector_add_string("q932.ros.global.res", isdn_sup_global_op_tab[i].oid, create_dissector_handle(isdn_sup_global_op_tab[i].res_pdu, proto_isdn_sup)); |
2946 | 56 | } |
2947 | | |
2948 | 448 | for (i=0; i<(int)array_length(isdn_sup_err_tab); i++) { |
2949 | 434 | dissector_add_uint("q932.ros.etsi.local.err", isdn_sup_err_tab[i].errcode, isdn_sup_err_handle); |
2950 | 434 | } |
2951 | | |
2952 | | |
2953 | 14 | } |
2954 | | |
2955 | 14 | void proto_register_isdn_sup(void) { |
2956 | | |
2957 | | /* List of fields */ |
2958 | 14 | static hf_register_info hf[] = { |
2959 | 14 | { &hf_isdn_sup, |
2960 | 14 | { "isdn_sup", "isdn_sup.1", |
2961 | 14 | FT_INT32, BASE_DEC, NULL, 0, |
2962 | 14 | NULL, HFILL } |
2963 | 14 | }, |
2964 | 14 | { &hf_isdn_sup_operation, |
2965 | 14 | { "Operation", "isdn_sup.operation", |
2966 | 14 | FT_UINT8, BASE_DEC, VALS(isdn_sup_str_operation), 0x0, |
2967 | 14 | NULL, HFILL } |
2968 | 14 | }, |
2969 | 14 | { &hf_isdn_sup_error, |
2970 | 14 | { "Error", "isdn_sup.error", |
2971 | 14 | FT_UINT8, BASE_DEC, VALS(isdn_sup_str_error), 0x0, |
2972 | 14 | NULL, HFILL } |
2973 | 14 | }, |
2974 | | |
2975 | 14 | { &hf_isdn_sup_ChargingRequestArg_PDU, |
2976 | 14 | { "ChargingRequestArg", "isdn-sup.ChargingRequestArg", |
2977 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_ChargingCase_vals), 0, |
2978 | 14 | NULL, HFILL }}, |
2979 | 14 | { &hf_isdn_sup_ChargingRequestRes_PDU, |
2980 | 14 | { "ChargingRequestRes", "isdn-sup.ChargingRequestRes", |
2981 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_ChargingRequestRes_vals), 0, |
2982 | 14 | NULL, HFILL }}, |
2983 | 14 | { &hf_isdn_sup_AOCSCurrencyArg_PDU, |
2984 | 14 | { "AOCSCurrencyArg", "isdn-sup.AOCSCurrencyArg", |
2985 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_AOCSCurrencyArg_vals), 0, |
2986 | 14 | NULL, HFILL }}, |
2987 | 14 | { &hf_isdn_sup_AOCSSpecialArrArg_PDU, |
2988 | 14 | { "AOCSSpecialArrArg", "isdn-sup.AOCSSpecialArrArg", |
2989 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_AOCSSpecialArrArg_vals), 0, |
2990 | 14 | NULL, HFILL }}, |
2991 | 14 | { &hf_isdn_sup_AOCDCurrencyArg_PDU, |
2992 | 14 | { "AOCDCurrencyArg", "isdn-sup.AOCDCurrencyArg", |
2993 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_AOCDCurrencyArg_vals), 0, |
2994 | 14 | NULL, HFILL }}, |
2995 | 14 | { &hf_isdn_sup_AOCDChargingUnitArg_PDU, |
2996 | 14 | { "AOCDChargingUnitArg", "isdn-sup.AOCDChargingUnitArg", |
2997 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_AOCDChargingUnitArg_vals), 0, |
2998 | 14 | NULL, HFILL }}, |
2999 | 14 | { &hf_isdn_sup_AOCECurrencyArg_PDU, |
3000 | 14 | { "AOCECurrencyArg", "isdn-sup.AOCECurrencyArg", |
3001 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_AOCECurrencyArg_vals), 0, |
3002 | 14 | NULL, HFILL }}, |
3003 | 14 | { &hf_isdn_sup_AOCEChargingUnitArg_PDU, |
3004 | 14 | { "AOCEChargingUnitArg", "isdn-sup.AOCEChargingUnitArg", |
3005 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_AOCEChargingUnitArg_vals), 0, |
3006 | 14 | NULL, HFILL }}, |
3007 | 14 | { &hf_isdn_sup_CUGcallArg_PDU, |
3008 | 14 | { "CUGcallArg", "isdn-sup.CUGcallArg_element", |
3009 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3010 | 14 | NULL, HFILL }}, |
3011 | 14 | { &hf_isdn_sup_BeginCONFArg_PDU, |
3012 | 14 | { "BeginCONFArg", "isdn-sup.BeginCONFArg", |
3013 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3014 | 14 | NULL, HFILL }}, |
3015 | 14 | { &hf_isdn_sup_BeginCONFRes_PDU, |
3016 | 14 | { "BeginCONFRes", "isdn-sup.BeginCONFRes_element", |
3017 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3018 | 14 | NULL, HFILL }}, |
3019 | 14 | { &hf_isdn_sup_AddCONFArg_PDU, |
3020 | 14 | { "AddCONFArg", "isdn-sup.AddCONFArg", |
3021 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3022 | 14 | NULL, HFILL }}, |
3023 | 14 | { &hf_isdn_sup_AddCONFRes_PDU, |
3024 | 14 | { "AddCONFRes", "isdn-sup.AddCONFRes", |
3025 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3026 | 14 | NULL, HFILL }}, |
3027 | 14 | { &hf_isdn_sup_SplitCONFArg_PDU, |
3028 | 14 | { "SplitCONFArg", "isdn-sup.SplitCONFArg_element", |
3029 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3030 | 14 | NULL, HFILL }}, |
3031 | 14 | { &hf_isdn_sup_DropCONFArg_PDU, |
3032 | 14 | { "DropCONFArg", "isdn-sup.DropCONFArg", |
3033 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3034 | 14 | NULL, HFILL }}, |
3035 | 14 | { &hf_isdn_sup_IsolateCONFArg_PDU, |
3036 | 14 | { "IsolateCONFArg", "isdn-sup.IsolateCONFArg", |
3037 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3038 | 14 | NULL, HFILL }}, |
3039 | 14 | { &hf_isdn_sup_ReattachCONFArg_PDU, |
3040 | 14 | { "ReattachCONFArg", "isdn-sup.ReattachCONFArg", |
3041 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3042 | 14 | NULL, HFILL }}, |
3043 | 14 | { &hf_isdn_sup_PartyDISCArg_PDU, |
3044 | 14 | { "PartyDISCArg", "isdn-sup.PartyDISCArg", |
3045 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3046 | 14 | NULL, HFILL }}, |
3047 | 14 | { &hf_isdn_sup_ActivationDiversionArg_PDU, |
3048 | 14 | { "ActivationDiversionArg", "isdn-sup.ActivationDiversionArg_element", |
3049 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3050 | 14 | NULL, HFILL }}, |
3051 | 14 | { &hf_isdn_sup_DeactivationDiversionArg_PDU, |
3052 | 14 | { "DeactivationDiversionArg", "isdn-sup.DeactivationDiversionArg_element", |
3053 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3054 | 14 | NULL, HFILL }}, |
3055 | 14 | { &hf_isdn_sup_ActivationStatusNotificationDivArg_PDU, |
3056 | 14 | { "ActivationStatusNotificationDivArg", "isdn-sup.ActivationStatusNotificationDivArg_element", |
3057 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3058 | 14 | NULL, HFILL }}, |
3059 | 14 | { &hf_isdn_sup_DeactivationStatusNotificationDivArg_PDU, |
3060 | 14 | { "DeactivationStatusNotificationDivArg", "isdn-sup.DeactivationStatusNotificationDivArg_element", |
3061 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3062 | 14 | NULL, HFILL }}, |
3063 | 14 | { &hf_isdn_sup_InterrogationDiversionArg_PDU, |
3064 | 14 | { "InterrogationDiversionArg", "isdn-sup.InterrogationDiversionArg_element", |
3065 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3066 | 14 | NULL, HFILL }}, |
3067 | 14 | { &hf_isdn_sup_InterrogationDiversionRes_PDU, |
3068 | 14 | { "InterrogationDiversionRes", "isdn-sup.InterrogationDiversionRes", |
3069 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3070 | 14 | NULL, HFILL }}, |
3071 | 14 | { &hf_isdn_sup_InterrogateServedUserNumbersRes_PDU, |
3072 | 14 | { "InterrogateServedUserNumbersRes", "isdn-sup.InterrogateServedUserNumbersRes", |
3073 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3074 | 14 | NULL, HFILL }}, |
3075 | 14 | { &hf_isdn_sup_DiversionInformationArg_PDU, |
3076 | 14 | { "DiversionInformationArg", "isdn-sup.DiversionInformationArg_element", |
3077 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3078 | 14 | NULL, HFILL }}, |
3079 | 14 | { &hf_isdn_sup_CallDeflectionArg_PDU, |
3080 | 14 | { "CallDeflectionArg", "isdn-sup.CallDeflectionArg_element", |
3081 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3082 | 14 | NULL, HFILL }}, |
3083 | 14 | { &hf_isdn_sup_CallRerouteingArg_PDU, |
3084 | 14 | { "CallRerouteingArg", "isdn-sup.CallRerouteingArg_element", |
3085 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3086 | 14 | NULL, HFILL }}, |
3087 | 14 | { &hf_isdn_sup_DivertingLegInformation1Arg_PDU, |
3088 | 14 | { "DivertingLegInformation1Arg", "isdn-sup.DivertingLegInformation1Arg_element", |
3089 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3090 | 14 | NULL, HFILL }}, |
3091 | 14 | { &hf_isdn_sup_DivertingLegInformation2Arg_PDU, |
3092 | 14 | { "DivertingLegInformation2Arg", "isdn-sup.DivertingLegInformation2Arg_element", |
3093 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3094 | 14 | NULL, HFILL }}, |
3095 | 14 | { &hf_isdn_sup_DivertingLegInformation3Arg_PDU, |
3096 | 14 | { "DivertingLegInformation3Arg", "isdn-sup.DivertingLegInformation3Arg", |
3097 | 14 | FT_BOOLEAN, BASE_NONE, NULL, 0, |
3098 | 14 | NULL, HFILL }}, |
3099 | 14 | { &hf_isdn_sup_UserUserServiceArg_PDU, |
3100 | 14 | { "UserUserServiceArg", "isdn-sup.UserUserServiceArg_element", |
3101 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3102 | 14 | NULL, HFILL }}, |
3103 | 14 | { &hf_isdn_sup_CalledFreephoneNrArg_PDU, |
3104 | 14 | { "CalledFreephoneNrArg", "isdn-sup.CalledFreephoneNrArg", |
3105 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PartyNumber_vals), 0, |
3106 | 14 | NULL, HFILL }}, |
3107 | 14 | { &hf_isdn_sup_Monitor_T_FPHArg_PDU, |
3108 | 14 | { "Monitor-T-FPHArg", "isdn-sup.Monitor_T_FPHArg_element", |
3109 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3110 | 14 | NULL, HFILL }}, |
3111 | 14 | { &hf_isdn_sup_Free_T_FPHArg_PDU, |
3112 | 14 | { "Free-T-FPHArg", "isdn-sup.Free_T_FPHArg_element", |
3113 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3114 | 14 | NULL, HFILL }}, |
3115 | 14 | { &hf_isdn_sup_Call_T_FPHArg_PDU, |
3116 | 14 | { "Call-T-FPHArg", "isdn-sup.Call_T_FPHArg_element", |
3117 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3118 | 14 | NULL, HFILL }}, |
3119 | 14 | { &hf_isdn_sup_MLPPLFBArg_PDU, |
3120 | 14 | { "MLPPLFBArg", "isdn-sup.MLPPLFBArg_element", |
3121 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3122 | 14 | NULL, HFILL }}, |
3123 | 14 | { &hf_isdn_sup_MLPPLFBResp_PDU, |
3124 | 14 | { "MLPPLFBResp", "isdn-sup.MLPPLFBResp_element", |
3125 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3126 | 14 | NULL, HFILL }}, |
3127 | 14 | { &hf_isdn_sup_MLPPParams_PDU, |
3128 | 14 | { "MLPPParams", "isdn-sup.MLPPParams_element", |
3129 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3130 | 14 | NULL, HFILL }}, |
3131 | 14 | { &hf_isdn_sup_StatusRequest_PDU, |
3132 | 14 | { "StatusRequest", "isdn-sup.StatusRequest", |
3133 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_StatusRequest_vals), 0, |
3134 | 14 | NULL, HFILL }}, |
3135 | 14 | { &hf_isdn_sup_PreemptParams_PDU, |
3136 | 14 | { "PreemptParams", "isdn-sup.PreemptParams", |
3137 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PreemptParams_vals), 0, |
3138 | 14 | NULL, HFILL }}, |
3139 | 14 | { &hf_isdn_sup_presentationallowedaddressscreened, |
3140 | 14 | { "presentationAllowedAddress", "isdn-sup.presentationallowedaddressscreened_element", |
3141 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3142 | 14 | "AddressScreened", HFILL }}, |
3143 | 14 | { &hf_isdn_sup_presentationRestricted, |
3144 | 14 | { "presentationRestricted", "isdn-sup.presentationRestricted_element", |
3145 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3146 | 14 | NULL, HFILL }}, |
3147 | 14 | { &hf_isdn_sup_numberNotAvailableDueToInterworking, |
3148 | 14 | { "numberNotAvailableDueToInterworking", "isdn-sup.numberNotAvailableDueToInterworking_element", |
3149 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3150 | 14 | NULL, HFILL }}, |
3151 | 14 | { &hf_isdn_sup_presentationrestrictedaddressscreened, |
3152 | 14 | { "presentationRestrictedAddress", "isdn-sup.presentationrestrictedaddressscreened_element", |
3153 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3154 | 14 | "AddressScreened", HFILL }}, |
3155 | 14 | { &hf_isdn_sup_presentationAllowedAddress, |
3156 | 14 | { "presentationAllowedAddress", "isdn-sup.presentationAllowedAddress_element", |
3157 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3158 | 14 | "Address", HFILL }}, |
3159 | 14 | { &hf_isdn_sup_presentationRestrictedAddress, |
3160 | 14 | { "presentationRestrictedAddress", "isdn-sup.presentationRestrictedAddress_element", |
3161 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3162 | 14 | "Address", HFILL }}, |
3163 | 14 | { &hf_isdn_sup_presentationallowednumberscreened, |
3164 | 14 | { "presentationAllowedNumber", "isdn-sup.presentationallowednumberscreened_element", |
3165 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3166 | 14 | "NumberScreened", HFILL }}, |
3167 | 14 | { &hf_isdn_sup_presentationrestrictednumberscreened, |
3168 | 14 | { "presentationRestrictedNumber", "isdn-sup.presentationrestrictednumberscreened_element", |
3169 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3170 | 14 | "NumberScreened", HFILL }}, |
3171 | 14 | { &hf_isdn_sup_presentationAllowedNumber, |
3172 | 14 | { "presentationAllowedNumber", "isdn-sup.presentationAllowedNumber", |
3173 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PartyNumber_vals), 0, |
3174 | 14 | "PartyNumber", HFILL }}, |
3175 | 14 | { &hf_isdn_sup_presentationRestrictedNumber, |
3176 | 14 | { "presentationRestrictedNumber", "isdn-sup.presentationRestrictedNumber", |
3177 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PartyNumber_vals), 0, |
3178 | 14 | "PartyNumber", HFILL }}, |
3179 | 14 | { &hf_isdn_sup_partyNumber, |
3180 | 14 | { "partyNumber", "isdn-sup.partyNumber", |
3181 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PartyNumber_vals), 0, |
3182 | 14 | NULL, HFILL }}, |
3183 | 14 | { &hf_isdn_sup_screeningIndicator, |
3184 | 14 | { "screeningIndicator", "isdn-sup.screeningIndicator", |
3185 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_ScreeningIndicator_vals), 0, |
3186 | 14 | NULL, HFILL }}, |
3187 | 14 | { &hf_isdn_sup_partySubaddress, |
3188 | 14 | { "partySubaddress", "isdn-sup.partySubaddress", |
3189 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PartySubaddress_vals), 0, |
3190 | 14 | NULL, HFILL }}, |
3191 | 14 | { &hf_isdn_sup_unknownPartyNumber, |
3192 | 14 | { "unknownPartyNumber", "isdn-sup.unknownPartyNumber", |
3193 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
3194 | 14 | "NumberDigits", HFILL }}, |
3195 | 14 | { &hf_isdn_sup_publicPartyNumber, |
3196 | 14 | { "publicPartyNumber", "isdn-sup.publicPartyNumber_element", |
3197 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3198 | 14 | NULL, HFILL }}, |
3199 | 14 | { &hf_isdn_sup_nsapEncodedNumber, |
3200 | 14 | { "nsapEncodedNumber", "isdn-sup.nsapEncodedNumber", |
3201 | 14 | FT_BYTES, BASE_NONE, NULL, 0, |
3202 | 14 | NULL, HFILL }}, |
3203 | 14 | { &hf_isdn_sup_dataPartyNumber, |
3204 | 14 | { "dataPartyNumber", "isdn-sup.dataPartyNumber", |
3205 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
3206 | 14 | "NumberDigits", HFILL }}, |
3207 | 14 | { &hf_isdn_sup_telexPartyNumber, |
3208 | 14 | { "telexPartyNumber", "isdn-sup.telexPartyNumber", |
3209 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
3210 | 14 | "NumberDigits", HFILL }}, |
3211 | 14 | { &hf_isdn_sup_privatePartyNumber, |
3212 | 14 | { "privatePartyNumber", "isdn-sup.privatePartyNumber_element", |
3213 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3214 | 14 | NULL, HFILL }}, |
3215 | 14 | { &hf_isdn_sup_nationalStandardPartyNumber, |
3216 | 14 | { "nationalStandardPartyNumber", "isdn-sup.nationalStandardPartyNumber", |
3217 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
3218 | 14 | "NumberDigits", HFILL }}, |
3219 | 14 | { &hf_isdn_sup_publicTypeOfNumber, |
3220 | 14 | { "publicTypeOfNumber", "isdn-sup.publicTypeOfNumber", |
3221 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PublicTypeOfNumber_vals), 0, |
3222 | 14 | NULL, HFILL }}, |
3223 | 14 | { &hf_isdn_sup_publicNumberDigits, |
3224 | 14 | { "publicNumberDigits", "isdn-sup.publicNumberDigits", |
3225 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
3226 | 14 | "NumberDigits", HFILL }}, |
3227 | 14 | { &hf_isdn_sup_privateTypeOfNumber, |
3228 | 14 | { "privateTypeOfNumber", "isdn-sup.privateTypeOfNumber", |
3229 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PrivateTypeOfNumber_vals), 0, |
3230 | 14 | NULL, HFILL }}, |
3231 | 14 | { &hf_isdn_sup_privateNumberDigits, |
3232 | 14 | { "privateNumberDigits", "isdn-sup.privateNumberDigits", |
3233 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
3234 | 14 | "NumberDigits", HFILL }}, |
3235 | 14 | { &hf_isdn_sup_userSpecifiedSubaddress, |
3236 | 14 | { "userSpecifiedSubaddress", "isdn-sup.userSpecifiedSubaddress_element", |
3237 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3238 | 14 | NULL, HFILL }}, |
3239 | 14 | { &hf_isdn_sup_nSAPSubaddress, |
3240 | 14 | { "nSAPSubaddress", "isdn-sup.nSAPSubaddress", |
3241 | 14 | FT_BYTES, BASE_NONE, NULL, 0, |
3242 | 14 | NULL, HFILL }}, |
3243 | 14 | { &hf_isdn_sup_subaddressInformation, |
3244 | 14 | { "subaddressInformation", "isdn-sup.subaddressInformation", |
3245 | 14 | FT_BYTES, BASE_NONE, NULL, 0, |
3246 | 14 | NULL, HFILL }}, |
3247 | 14 | { &hf_isdn_sup_oddCountIndicator, |
3248 | 14 | { "oddCountIndicator", "isdn-sup.oddCountIndicator", |
3249 | 14 | FT_BOOLEAN, BASE_NONE, NULL, 0, |
3250 | 14 | "BOOLEAN", HFILL }}, |
3251 | 14 | { &hf_isdn_sup_aOCSCurrencyInfoList, |
3252 | 14 | { "aOCSCurrencyInfoList", "isdn-sup.aOCSCurrencyInfoList", |
3253 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3254 | 14 | NULL, HFILL }}, |
3255 | 14 | { &hf_isdn_sup_aOCSSpecialArrInfo, |
3256 | 14 | { "aOCSSpecialArrInfo", "isdn-sup.aOCSSpecialArrInfo", |
3257 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3258 | 14 | NULL, HFILL }}, |
3259 | 14 | { &hf_isdn_sup_chargingInfoFollows, |
3260 | 14 | { "chargingInfoFollows", "isdn-sup.chargingInfoFollows_element", |
3261 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3262 | 14 | NULL, HFILL }}, |
3263 | 14 | { &hf_isdn_sup_chargeNotAvailable, |
3264 | 14 | { "chargeNotAvailable", "isdn-sup.chargeNotAvailable_element", |
3265 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3266 | 14 | NULL, HFILL }}, |
3267 | 14 | { &hf_isdn_sup_aOCDCurrencyInfo, |
3268 | 14 | { "aOCDCurrencyInfo", "isdn-sup.aOCDCurrencyInfo", |
3269 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_AOCDCurrencyInfo_vals), 0, |
3270 | 14 | NULL, HFILL }}, |
3271 | 14 | { &hf_isdn_sup_aOCDChargingUnitInfo, |
3272 | 14 | { "aOCDChargingUnitInfo", "isdn-sup.aOCDChargingUnitInfo", |
3273 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_AOCDChargingUnitInfo_vals), 0, |
3274 | 14 | NULL, HFILL }}, |
3275 | 14 | { &hf_isdn_sup_aOCECurrencyInfo, |
3276 | 14 | { "aOCECurrencyInfo", "isdn-sup.aOCECurrencyInfo_element", |
3277 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3278 | 14 | NULL, HFILL }}, |
3279 | 14 | { &hf_isdn_sup_aOCEChargingUnitInfo, |
3280 | 14 | { "aOCEChargingUnitInfo", "isdn-sup.aOCEChargingUnitInfo_element", |
3281 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3282 | 14 | NULL, HFILL }}, |
3283 | 14 | { &hf_isdn_sup_AOCSCurrencyInfoList_item, |
3284 | 14 | { "AOCSCurrencyInfo", "isdn-sup.AOCSCurrencyInfo_element", |
3285 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3286 | 14 | NULL, HFILL }}, |
3287 | 14 | { &hf_isdn_sup_chargedItem, |
3288 | 14 | { "chargedItem", "isdn-sup.chargedItem", |
3289 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_ChargedItem_vals), 0, |
3290 | 14 | NULL, HFILL }}, |
3291 | 14 | { &hf_isdn_sup_chargingtype, |
3292 | 14 | { "chargingtype", "isdn-sup.chargingtype", |
3293 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_T_chargingtype_vals), 0, |
3294 | 14 | NULL, HFILL }}, |
3295 | 14 | { &hf_isdn_sup_aocschargingtypespecificCurrency, |
3296 | 14 | { "specificCurrency", "isdn-sup.aocschargingtypespecificCurrency", |
3297 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_AOCSChargingTypeSpecificCurrency_vals), 0, |
3298 | 14 | "AOCSChargingTypeSpecificCurrency", HFILL }}, |
3299 | 14 | { &hf_isdn_sup_durationCurrency, |
3300 | 14 | { "durationCurrency", "isdn-sup.durationCurrency_element", |
3301 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3302 | 14 | NULL, HFILL }}, |
3303 | 14 | { &hf_isdn_sup_flatRateCurrency, |
3304 | 14 | { "flatRateCurrency", "isdn-sup.flatRateCurrency_element", |
3305 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3306 | 14 | NULL, HFILL }}, |
3307 | 14 | { &hf_isdn_sup_volumeRateCurrency, |
3308 | 14 | { "volumeRateCurrency", "isdn-sup.volumeRateCurrency_element", |
3309 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3310 | 14 | NULL, HFILL }}, |
3311 | 14 | { &hf_isdn_sup_specialChargingCode, |
3312 | 14 | { "specialChargingCode", "isdn-sup.specialChargingCode", |
3313 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3314 | 14 | NULL, HFILL }}, |
3315 | 14 | { &hf_isdn_sup_freeOfCharge, |
3316 | 14 | { "freeOfCharge", "isdn-sup.freeOfCharge_element", |
3317 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3318 | 14 | NULL, HFILL }}, |
3319 | 14 | { &hf_isdn_sup_currencyInfoNotAvailable, |
3320 | 14 | { "currencyInfoNotAvailable", "isdn-sup.currencyInfoNotAvailable_element", |
3321 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3322 | 14 | NULL, HFILL }}, |
3323 | 14 | { &hf_isdn_sup_dCurrency, |
3324 | 14 | { "dCurrency", "isdn-sup.dCurrency", |
3325 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
3326 | 14 | "Currency", HFILL }}, |
3327 | 14 | { &hf_isdn_sup_dAmount, |
3328 | 14 | { "dAmount", "isdn-sup.dAmount_element", |
3329 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3330 | 14 | "Amount", HFILL }}, |
3331 | 14 | { &hf_isdn_sup_dChargingType, |
3332 | 14 | { "dChargingType", "isdn-sup.dChargingType", |
3333 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_ChargingType_vals), 0, |
3334 | 14 | "ChargingType", HFILL }}, |
3335 | 14 | { &hf_isdn_sup_dTime, |
3336 | 14 | { "dTime", "isdn-sup.dTime_element", |
3337 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3338 | 14 | "Time", HFILL }}, |
3339 | 14 | { &hf_isdn_sup_dGranularity, |
3340 | 14 | { "dGranularity", "isdn-sup.dGranularity_element", |
3341 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3342 | 14 | "Time", HFILL }}, |
3343 | 14 | { &hf_isdn_sup_fRCurrency, |
3344 | 14 | { "fRCurrency", "isdn-sup.fRCurrency", |
3345 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
3346 | 14 | "Currency", HFILL }}, |
3347 | 14 | { &hf_isdn_sup_fRAmount, |
3348 | 14 | { "fRAmount", "isdn-sup.fRAmount_element", |
3349 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3350 | 14 | "Amount", HFILL }}, |
3351 | 14 | { &hf_isdn_sup_vRCurrency, |
3352 | 14 | { "vRCurrency", "isdn-sup.vRCurrency", |
3353 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
3354 | 14 | "Currency", HFILL }}, |
3355 | 14 | { &hf_isdn_sup_vRAmount, |
3356 | 14 | { "vRAmount", "isdn-sup.vRAmount_element", |
3357 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3358 | 14 | "Amount", HFILL }}, |
3359 | 14 | { &hf_isdn_sup_vRVolumeUnit, |
3360 | 14 | { "vRVolumeUnit", "isdn-sup.vRVolumeUnit", |
3361 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_VolumeUnit_vals), 0, |
3362 | 14 | "VolumeUnit", HFILL }}, |
3363 | 14 | { &hf_isdn_sup_aocdspecificCurrency, |
3364 | 14 | { "specificCurrency", "isdn-sup.aocdspecificCurrency_element", |
3365 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3366 | 14 | "AOCDSpecificCurrency", HFILL }}, |
3367 | 14 | { &hf_isdn_sup_recordedCurrency, |
3368 | 14 | { "recordedCurrency", "isdn-sup.recordedCurrency_element", |
3369 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3370 | 14 | NULL, HFILL }}, |
3371 | 14 | { &hf_isdn_sup_typeOfChargingInfo, |
3372 | 14 | { "typeOfChargingInfo", "isdn-sup.typeOfChargingInfo", |
3373 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_TypeOfChargingInfo_vals), 0, |
3374 | 14 | NULL, HFILL }}, |
3375 | 14 | { &hf_isdn_sup_aOCDBillingId, |
3376 | 14 | { "aOCDBillingId", "isdn-sup.aOCDBillingId", |
3377 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_AOCDBillingId_vals), 0, |
3378 | 14 | NULL, HFILL }}, |
3379 | 14 | { &hf_isdn_sup_aocdspecificchargingunits, |
3380 | 14 | { "specificChargingUnits", "isdn-sup.aocdspecificchargingunits_element", |
3381 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3382 | 14 | "AOCDSpecificChargingUnits", HFILL }}, |
3383 | 14 | { &hf_isdn_sup_recordedUnitsList, |
3384 | 14 | { "recordedUnitsList", "isdn-sup.recordedUnitsList", |
3385 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3386 | 14 | NULL, HFILL }}, |
3387 | 14 | { &hf_isdn_sup_rCurrency, |
3388 | 14 | { "rCurrency", "isdn-sup.rCurrency", |
3389 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
3390 | 14 | "Currency", HFILL }}, |
3391 | 14 | { &hf_isdn_sup_rAmount, |
3392 | 14 | { "rAmount", "isdn-sup.rAmount_element", |
3393 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3394 | 14 | "Amount", HFILL }}, |
3395 | 14 | { &hf_isdn_sup_RecordedUnitsList_item, |
3396 | 14 | { "RecordedUnits", "isdn-sup.RecordedUnits_element", |
3397 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3398 | 14 | NULL, HFILL }}, |
3399 | 14 | { &hf_isdn_sup_recoredunitscc, |
3400 | 14 | { "cc", "isdn-sup.recoredunitscc", |
3401 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_RecoredUnitsCc_vals), 0, |
3402 | 14 | "RecoredUnitsCc", HFILL }}, |
3403 | 14 | { &hf_isdn_sup_recordedNumberOfUnits, |
3404 | 14 | { "recordedNumberOfUnits", "isdn-sup.recordedNumberOfUnits", |
3405 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3406 | 14 | "NumberOfUnits", HFILL }}, |
3407 | 14 | { &hf_isdn_sup_notAvailable, |
3408 | 14 | { "notAvailable", "isdn-sup.notAvailable_element", |
3409 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3410 | 14 | NULL, HFILL }}, |
3411 | 14 | { &hf_isdn_sup_recordedTypeOfUnits, |
3412 | 14 | { "recordedTypeOfUnits", "isdn-sup.recordedTypeOfUnits", |
3413 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3414 | 14 | "TypeOfUnit", HFILL }}, |
3415 | 14 | { &hf_isdn_sup_aocecurrencycc, |
3416 | 14 | { "cc", "isdn-sup.aocecurrencycc", |
3417 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_AOCECurrencyCc_vals), 0, |
3418 | 14 | "AOCECurrencyCc", HFILL }}, |
3419 | 14 | { &hf_isdn_sup_aoceccspecificCurrency, |
3420 | 14 | { "specificCurrency", "isdn-sup.aoceccspecificCurrency_element", |
3421 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3422 | 14 | "AOCECcSpecificCurrency", HFILL }}, |
3423 | 14 | { &hf_isdn_sup_aOCEBillingId, |
3424 | 14 | { "aOCEBillingId", "isdn-sup.aOCEBillingId", |
3425 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_AOCEBillingId_vals), 0, |
3426 | 14 | NULL, HFILL }}, |
3427 | 14 | { &hf_isdn_sup_chargingAssociation, |
3428 | 14 | { "chargingAssociation", "isdn-sup.chargingAssociation", |
3429 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_ChargingAssociation_vals), 0, |
3430 | 14 | NULL, HFILL }}, |
3431 | 14 | { &hf_isdn_sup_aocechargingunitcc, |
3432 | 14 | { "cc", "isdn-sup.aocechargingunitcc", |
3433 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_AOCEChargingUnitCc_vals), 0, |
3434 | 14 | "AOCEChargingUnitCc", HFILL }}, |
3435 | 14 | { &hf_isdn_sup_aoceccspecificchargingunits, |
3436 | 14 | { "specificChargingUnits", "isdn-sup.aoceccspecificchargingunits_element", |
3437 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3438 | 14 | "AOCECcSpecificChargingUnits", HFILL }}, |
3439 | 14 | { &hf_isdn_sup_currencyAmount, |
3440 | 14 | { "currencyAmount", "isdn-sup.currencyAmount", |
3441 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3442 | 14 | NULL, HFILL }}, |
3443 | 14 | { &hf_isdn_sup_multiplier, |
3444 | 14 | { "multiplier", "isdn-sup.multiplier", |
3445 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_Multiplier_vals), 0, |
3446 | 14 | NULL, HFILL }}, |
3447 | 14 | { &hf_isdn_sup_lengthOfTimeUnit, |
3448 | 14 | { "lengthOfTimeUnit", "isdn-sup.lengthOfTimeUnit", |
3449 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3450 | 14 | NULL, HFILL }}, |
3451 | 14 | { &hf_isdn_sup_scale, |
3452 | 14 | { "scale", "isdn-sup.scale", |
3453 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_Scale_vals), 0, |
3454 | 14 | NULL, HFILL }}, |
3455 | 14 | { &hf_isdn_sup_chargeNumber, |
3456 | 14 | { "chargeNumber", "isdn-sup.chargeNumber", |
3457 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PartyNumber_vals), 0, |
3458 | 14 | "PartyNumber", HFILL }}, |
3459 | 14 | { &hf_isdn_sup_chargeIdentifier, |
3460 | 14 | { "chargeIdentifier", "isdn-sup.chargeIdentifier", |
3461 | 14 | FT_INT32, BASE_DEC, NULL, 0, |
3462 | 14 | NULL, HFILL }}, |
3463 | 14 | { &hf_isdn_sup_oARequested, |
3464 | 14 | { "oARequested", "isdn-sup.oARequested", |
3465 | 14 | FT_BOOLEAN, BASE_NONE, NULL, 0, |
3466 | 14 | NULL, HFILL }}, |
3467 | 14 | { &hf_isdn_sup_cUGIndex, |
3468 | 14 | { "cUGIndex", "isdn-sup.cUGIndex", |
3469 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3470 | 14 | NULL, HFILL }}, |
3471 | 14 | { &hf_isdn_sup_conferenceId, |
3472 | 14 | { "conferenceId", "isdn-sup.conferenceId", |
3473 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3474 | 14 | NULL, HFILL }}, |
3475 | 14 | { &hf_isdn_sup_partyId, |
3476 | 14 | { "partyId", "isdn-sup.partyId", |
3477 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3478 | 14 | NULL, HFILL }}, |
3479 | 14 | { &hf_isdn_sup_procedure, |
3480 | 14 | { "procedure", "isdn-sup.procedure", |
3481 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_Procedure_vals), 0, |
3482 | 14 | NULL, HFILL }}, |
3483 | 14 | { &hf_isdn_sup_basicService, |
3484 | 14 | { "basicService", "isdn-sup.basicService", |
3485 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_BasicService_vals), 0, |
3486 | 14 | NULL, HFILL }}, |
3487 | 14 | { &hf_isdn_sup_forwardedToAddress, |
3488 | 14 | { "forwardedToAddress", "isdn-sup.forwardedToAddress_element", |
3489 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3490 | 14 | "Address", HFILL }}, |
3491 | 14 | { &hf_isdn_sup_servedUserNr, |
3492 | 14 | { "servedUserNr", "isdn-sup.servedUserNr", |
3493 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_ServedUserNr_vals), 0, |
3494 | 14 | NULL, HFILL }}, |
3495 | 14 | { &hf_isdn_sup_noReplyTimer, |
3496 | 14 | { "noReplyTimer", "isdn-sup.noReplyTimer", |
3497 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3498 | 14 | NULL, HFILL }}, |
3499 | 14 | { &hf_isdn_sup_forwardedToAddresss, |
3500 | 14 | { "forwardedToAddresss", "isdn-sup.forwardedToAddresss_element", |
3501 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3502 | 14 | "Address", HFILL }}, |
3503 | 14 | { &hf_isdn_sup_diversionReason, |
3504 | 14 | { "diversionReason", "isdn-sup.diversionReason", |
3505 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_DiversionReason_vals), 0, |
3506 | 14 | NULL, HFILL }}, |
3507 | 14 | { &hf_isdn_sup_servedUserSubaddress, |
3508 | 14 | { "servedUserSubaddress", "isdn-sup.servedUserSubaddress", |
3509 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PartySubaddress_vals), 0, |
3510 | 14 | "PartySubaddress", HFILL }}, |
3511 | 14 | { &hf_isdn_sup_callingAddress, |
3512 | 14 | { "callingAddress", "isdn-sup.callingAddress", |
3513 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PresentedAddressScreened_vals), 0, |
3514 | 14 | "PresentedAddressScreened", HFILL }}, |
3515 | 14 | { &hf_isdn_sup_originalCalledNr, |
3516 | 14 | { "originalCalledNr", "isdn-sup.originalCalledNr", |
3517 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PresentedNumberUnscreened_vals), 0, |
3518 | 14 | "PresentedNumberUnscreened", HFILL }}, |
3519 | 14 | { &hf_isdn_sup_lastDivertingNr, |
3520 | 14 | { "lastDivertingNr", "isdn-sup.lastDivertingNr", |
3521 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PresentedNumberUnscreened_vals), 0, |
3522 | 14 | "PresentedNumberUnscreened", HFILL }}, |
3523 | 14 | { &hf_isdn_sup_lastDivertingReason, |
3524 | 14 | { "lastDivertingReason", "isdn-sup.lastDivertingReason", |
3525 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_DiversionReason_vals), 0, |
3526 | 14 | "DiversionReason", HFILL }}, |
3527 | 14 | { &hf_isdn_sup_userInfo, |
3528 | 14 | { "userInfo", "isdn-sup.userInfo", |
3529 | 14 | FT_BYTES, BASE_NONE, NULL, 0, |
3530 | 14 | "Q931InformationElement", HFILL }}, |
3531 | 14 | { &hf_isdn_sup_deflectionAddress, |
3532 | 14 | { "deflectionAddress", "isdn-sup.deflectionAddress_element", |
3533 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3534 | 14 | "Address", HFILL }}, |
3535 | 14 | { &hf_isdn_sup_presentationAllowedDivertedToUser, |
3536 | 14 | { "presentationAllowedDivertedToUser", "isdn-sup.presentationAllowedDivertedToUser", |
3537 | 14 | FT_BOOLEAN, BASE_NONE, NULL, 0, |
3538 | 14 | "PresentationAllowedIndicator", HFILL }}, |
3539 | 14 | { &hf_isdn_sup_rerouteingReason, |
3540 | 14 | { "rerouteingReason", "isdn-sup.rerouteingReason", |
3541 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_DiversionReason_vals), 0, |
3542 | 14 | "DiversionReason", HFILL }}, |
3543 | 14 | { &hf_isdn_sup_calledAddress, |
3544 | 14 | { "calledAddress", "isdn-sup.calledAddress_element", |
3545 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3546 | 14 | "Address", HFILL }}, |
3547 | 14 | { &hf_isdn_sup_rerouteingCounter, |
3548 | 14 | { "rerouteingCounter", "isdn-sup.rerouteingCounter", |
3549 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3550 | 14 | "DiversionCounter", HFILL }}, |
3551 | 14 | { &hf_isdn_sup_q931InfoElement, |
3552 | 14 | { "q931InfoElement", "isdn-sup.q931InfoElement", |
3553 | 14 | FT_BYTES, BASE_NONE, NULL, 0, |
3554 | 14 | "Q931InformationElement", HFILL }}, |
3555 | 14 | { &hf_isdn_sup_lastRerouteingNr, |
3556 | 14 | { "lastRerouteingNr", "isdn-sup.lastRerouteingNr", |
3557 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PresentedNumberUnscreened_vals), 0, |
3558 | 14 | "PresentedNumberUnscreened", HFILL }}, |
3559 | 14 | { &hf_isdn_sup_subscriptionOption, |
3560 | 14 | { "subscriptionOption", "isdn-sup.subscriptionOption", |
3561 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_SubscriptionOption_vals), 0, |
3562 | 14 | NULL, HFILL }}, |
3563 | 14 | { &hf_isdn_sup_callingPartySubaddress, |
3564 | 14 | { "callingPartySubaddress", "isdn-sup.callingPartySubaddress", |
3565 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PartySubaddress_vals), 0, |
3566 | 14 | "PartySubaddress", HFILL }}, |
3567 | 14 | { &hf_isdn_sup_divertedToNumber, |
3568 | 14 | { "divertedToNumber", "isdn-sup.divertedToNumber", |
3569 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PresentedNumberUnscreened_vals), 0, |
3570 | 14 | "PresentedNumberUnscreened", HFILL }}, |
3571 | 14 | { &hf_isdn_sup_diversionCounter, |
3572 | 14 | { "diversionCounter", "isdn-sup.diversionCounter", |
3573 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3574 | 14 | NULL, HFILL }}, |
3575 | 14 | { &hf_isdn_sup_divertingNr, |
3576 | 14 | { "divertingNr", "isdn-sup.divertingNr", |
3577 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PresentedNumberUnscreened_vals), 0, |
3578 | 14 | "PresentedNumberUnscreened", HFILL }}, |
3579 | 14 | { &hf_isdn_sup_IntResultList_item, |
3580 | 14 | { "IntResult", "isdn-sup.IntResult_element", |
3581 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3582 | 14 | NULL, HFILL }}, |
3583 | 14 | { &hf_isdn_sup_individualNumber, |
3584 | 14 | { "individualNumber", "isdn-sup.individualNumber", |
3585 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PartyNumber_vals), 0, |
3586 | 14 | "PartyNumber", HFILL }}, |
3587 | 14 | { &hf_isdn_sup_allNumbers, |
3588 | 14 | { "allNumbers", "isdn-sup.allNumbers_element", |
3589 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3590 | 14 | NULL, HFILL }}, |
3591 | 14 | { &hf_isdn_sup_ServedUserNumberList_item, |
3592 | 14 | { "PartyNumber", "isdn-sup.PartyNumber", |
3593 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PartyNumber_vals), 0, |
3594 | 14 | NULL, HFILL }}, |
3595 | 14 | { &hf_isdn_sup_service, |
3596 | 14 | { "service", "isdn-sup.service", |
3597 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_Service_vals), 0, |
3598 | 14 | NULL, HFILL }}, |
3599 | 14 | { &hf_isdn_sup_preferred, |
3600 | 14 | { "preferred", "isdn-sup.preferred", |
3601 | 14 | FT_BOOLEAN, BASE_NONE, NULL, 0, |
3602 | 14 | NULL, HFILL }}, |
3603 | 14 | { &hf_isdn_sup_servedUserDestination, |
3604 | 14 | { "servedUserDestination", "isdn-sup.servedUserDestination", |
3605 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PartyNumber_vals), 0, |
3606 | 14 | "PartyNumber", HFILL }}, |
3607 | 14 | { &hf_isdn_sup_queueIdentity, |
3608 | 14 | { "queueIdentity", "isdn-sup.queueIdentity", |
3609 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3610 | 14 | NULL, HFILL }}, |
3611 | 14 | { &hf_isdn_sup_fPHReference, |
3612 | 14 | { "fPHReference", "isdn-sup.fPHReference", |
3613 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
3614 | 14 | NULL, HFILL }}, |
3615 | 14 | { &hf_isdn_sup_calledFreephoneNr, |
3616 | 14 | { "calledFreephoneNr", "isdn-sup.calledFreephoneNr", |
3617 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PartyNumber_vals), 0, |
3618 | 14 | NULL, HFILL }}, |
3619 | 14 | { &hf_isdn_sup_mlppParams, |
3620 | 14 | { "mlppParams", "isdn-sup.mlppParams_element", |
3621 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
3622 | 14 | NULL, HFILL }}, |
3623 | 14 | { &hf_isdn_sup_ieArg, |
3624 | 14 | { "ieArg", "isdn-sup.ieArg", |
3625 | 14 | FT_BYTES, BASE_NONE, NULL, 0, |
3626 | 14 | NULL, HFILL }}, |
3627 | 14 | { &hf_isdn_sup_precLevel, |
3628 | 14 | { "precLevel", "isdn-sup.precLevel", |
3629 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_PrecLevel_vals), 0, |
3630 | 14 | NULL, HFILL }}, |
3631 | 14 | { &hf_isdn_sup_lfbIndictn, |
3632 | 14 | { "lfbIndictn", "isdn-sup.lfbIndictn", |
3633 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_LFBIndictn_vals), 0, |
3634 | 14 | NULL, HFILL }}, |
3635 | 14 | { &hf_isdn_sup_mlppSvcDomn, |
3636 | 14 | { "mlppSvcDomn", "isdn-sup.mlppSvcDomn", |
3637 | 14 | FT_BYTES, BASE_NONE, NULL, 0, |
3638 | 14 | NULL, HFILL }}, |
3639 | 14 | { &hf_isdn_sup_statusQuery, |
3640 | 14 | { "statusQuery", "isdn-sup.statusQuery", |
3641 | 14 | FT_UINT32, BASE_DEC, VALS(isdn_sup_StatusQuery_vals), 0, |
3642 | 14 | NULL, HFILL }}, |
3643 | 14 | { &hf_isdn_sup_location, |
3644 | 14 | { "location", "isdn-sup.location", |
3645 | 14 | FT_BYTES, BASE_NONE, NULL, 0, |
3646 | 14 | NULL, HFILL }}, |
3647 | 14 | }; |
3648 | | |
3649 | | /* List of subtrees */ |
3650 | 14 | static int *ett[] = { |
3651 | 14 | &ett_isdn_sup, |
3652 | | |
3653 | 14 | &ett_isdn_sup_PresentedAddressScreened, |
3654 | 14 | &ett_isdn_sup_PresentedAddressUnscreened, |
3655 | 14 | &ett_isdn_sup_PresentedNumberScreened, |
3656 | 14 | &ett_isdn_sup_PresentedNumberUnscreened, |
3657 | 14 | &ett_isdn_sup_AddressScreened, |
3658 | 14 | &ett_isdn_sup_NumberScreened, |
3659 | 14 | &ett_isdn_sup_Address, |
3660 | 14 | &ett_isdn_sup_PartyNumber, |
3661 | 14 | &ett_isdn_sup_PublicPartyNumber, |
3662 | 14 | &ett_isdn_sup_PrivatePartyNumber, |
3663 | 14 | &ett_isdn_sup_PartySubaddress, |
3664 | 14 | &ett_isdn_sup_UserSpecifiedSubaddress, |
3665 | 14 | &ett_isdn_sup_ChargingRequestRes, |
3666 | 14 | &ett_isdn_sup_AOCSCurrencyArg, |
3667 | 14 | &ett_isdn_sup_AOCSSpecialArrArg, |
3668 | 14 | &ett_isdn_sup_AOCDCurrencyArg, |
3669 | 14 | &ett_isdn_sup_AOCDChargingUnitArg, |
3670 | 14 | &ett_isdn_sup_AOCECurrencyArg, |
3671 | 14 | &ett_isdn_sup_AOCEChargingUnitArg, |
3672 | 14 | &ett_isdn_sup_AOCSCurrencyInfoList, |
3673 | 14 | &ett_isdn_sup_AOCSCurrencyInfo, |
3674 | 14 | &ett_isdn_sup_T_chargingtype, |
3675 | 14 | &ett_isdn_sup_AOCSChargingTypeSpecificCurrency, |
3676 | 14 | &ett_isdn_sup_DurationCurrency, |
3677 | 14 | &ett_isdn_sup_FlatRateCurrency, |
3678 | 14 | &ett_isdn_sup_VolumeRateCurrency, |
3679 | 14 | &ett_isdn_sup_AOCDCurrencyInfo, |
3680 | 14 | &ett_isdn_sup_AOCDSpecificCurrency, |
3681 | 14 | &ett_isdn_sup_AOCDChargingUnitInfo, |
3682 | 14 | &ett_isdn_sup_AOCDSpecificChargingUnits, |
3683 | 14 | &ett_isdn_sup_RecordedCurrency, |
3684 | 14 | &ett_isdn_sup_RecordedUnitsList, |
3685 | 14 | &ett_isdn_sup_RecordedUnits, |
3686 | 14 | &ett_isdn_sup_RecoredUnitsCc, |
3687 | 14 | &ett_isdn_sup_AOCECurrencyInfo, |
3688 | 14 | &ett_isdn_sup_AOCECurrencyCc, |
3689 | 14 | &ett_isdn_sup_AOCECcSpecificCurrency, |
3690 | 14 | &ett_isdn_sup_AOCEChargingUnitInfo, |
3691 | 14 | &ett_isdn_sup_AOCEChargingUnitCc, |
3692 | 14 | &ett_isdn_sup_AOCECcSpecificChargingUnits, |
3693 | 14 | &ett_isdn_sup_Amount, |
3694 | 14 | &ett_isdn_sup_Time, |
3695 | 14 | &ett_isdn_sup_ChargingAssociation, |
3696 | 14 | &ett_isdn_sup_CUGcallArg, |
3697 | 14 | &ett_isdn_sup_BeginCONFRes, |
3698 | 14 | &ett_isdn_sup_SplitCONFArg, |
3699 | 14 | &ett_isdn_sup_ActivationDiversionArg, |
3700 | 14 | &ett_isdn_sup_DeactivationDiversionArg, |
3701 | 14 | &ett_isdn_sup_ActivationStatusNotificationDivArg, |
3702 | 14 | &ett_isdn_sup_DeactivationStatusNotificationDivArg, |
3703 | 14 | &ett_isdn_sup_InterrogationDiversionArg, |
3704 | 14 | &ett_isdn_sup_DiversionInformationArg, |
3705 | 14 | &ett_isdn_sup_CallDeflectionArg, |
3706 | 14 | &ett_isdn_sup_CallRerouteingArg, |
3707 | 14 | &ett_isdn_sup_DivertingLegInformation1Arg, |
3708 | 14 | &ett_isdn_sup_DivertingLegInformation2Arg, |
3709 | 14 | &ett_isdn_sup_IntResultList, |
3710 | 14 | &ett_isdn_sup_IntResult, |
3711 | 14 | &ett_isdn_sup_ServedUserNr, |
3712 | 14 | &ett_isdn_sup_ServedUserNumberList, |
3713 | 14 | &ett_isdn_sup_UserUserServiceArg, |
3714 | 14 | &ett_isdn_sup_Monitor_T_FPHArg, |
3715 | 14 | &ett_isdn_sup_Free_T_FPHArg, |
3716 | 14 | &ett_isdn_sup_Call_T_FPHArg, |
3717 | 14 | &ett_isdn_sup_MLPPLFBArg, |
3718 | 14 | &ett_isdn_sup_MLPPParams, |
3719 | 14 | &ett_isdn_sup_MLPPLFBResp, |
3720 | 14 | }; |
3721 | | |
3722 | 14 | static ei_register_info ei[] = { |
3723 | | #if 0 |
3724 | | { &ei_isdn_sup_unsupported_arg_type, { "isdn_sup.unsupported.arg_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED ARGUMENT TYPE (ETSI sup)", EXPFILL }}, |
3725 | | #endif |
3726 | 14 | { &ei_isdn_sup_unsupported_result_type, { "isdn_sup.unsupported.result_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED RESULT TYPE (ETSI sup)", EXPFILL }}, |
3727 | 14 | { &ei_isdn_sup_unsupported_error_type, { "isdn_sup.unsupported.error_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED ERROR TYPE (ETSI sup)", EXPFILL }}, |
3728 | 14 | }; |
3729 | | |
3730 | 14 | expert_module_t* expert_isdn_sup; |
3731 | | |
3732 | | /* Register protocol */ |
3733 | 14 | proto_isdn_sup = proto_register_protocol(PNAME, PSNAME, PFNAME); |
3734 | | |
3735 | | /* Register fields and subtrees */ |
3736 | 14 | proto_register_field_array(proto_isdn_sup, hf, array_length(hf)); |
3737 | 14 | proto_register_subtree_array(ett, array_length(ett)); |
3738 | 14 | expert_isdn_sup = expert_register_protocol(proto_isdn_sup); |
3739 | 14 | expert_register_field_array(expert_isdn_sup, ei, array_length(ei)); |
3740 | | |
3741 | | /* Register dissectors */ |
3742 | 14 | isdn_sup_arg_handle = register_dissector(PFNAME "_arg", dissect_isdn_sup_arg, proto_isdn_sup); |
3743 | 14 | isdn_sup_res_handle = register_dissector(PFNAME "_res", dissect_isdn_sup_res, proto_isdn_sup); |
3744 | 14 | isdn_sup_err_handle = register_dissector(PFNAME "_err", dissect_isdn_sup_err, proto_isdn_sup); |
3745 | 14 | } |