Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-h450.c
blob2a800a869a37547691b76402eaa1e218ec183af3
1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-h450.c */
4 /* asn2wrs.py -q -L -c ./h450.cnf -s ./packet-h450-template -D . -O ../.. H4501-Supplementary-ServiceAPDU-Structure.asn Addressing-Data-Elements.asn H225-generic-parameters-definition.asn Manufacturer-specific-service-extension-definition.asn H4501-General-Error-List.asn Call-Transfer-Operations.asn Call-Diversion-Operations.asn Call-Hold-Operations.asn Call-Park-Pickup-Operations.asn Call-Waiting-Operations.asn Message-Waiting-Indication-Operations.asn Name-Operations.asn Call-Completion-Operations.asn Call-Offer-Operations.asn Call-Intrusion-Operations.asn Common-Information-Operations.asn */
6 /* packet-h450.c
7 * Routines for h450 packet dissection
8 * Based on the previous h450 dissector by:
9 * 2003 Graeme Reid (graeme.reid@norwoodsystems.com)
10 * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
12 * Wireshark - Network traffic analyzer
13 * By Gerald Combs <gerald@wireshark.org>
14 * Copyright 1998 Gerald Combs
16 * SPDX-License-Identifier: GPL-2.0-or-later
18 * Credit to Tomas Kukosa for developing the asn2wrs compiler.
22 #include "config.h"
24 #include <epan/packet.h>
25 #include <epan/expert.h>
27 #include <epan/asn1.h>
28 #include <wsutil/array.h>
30 #include "packet-per.h"
31 #include "packet-h225.h"
33 #include "packet-h450-ros.h"
35 #define PNAME "H.450 Supplementary Services"
36 #define PSNAME "H.450"
37 #define PFNAME "h450"
39 void proto_register_h450(void);
40 void proto_reg_handoff_h450(void);
42 static dissector_handle_t h450_arg_handle;
43 static dissector_handle_t h450_res_handle;
44 static dissector_handle_t h450_err_handle;
46 /* Initialize the protocol and registered fields */
47 static int proto_h450;
48 static int hf_h450_operation;
49 static int hf_h450_error;
51 /* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
53 static int hf_h450_h450_H4501SupplementaryService_PDU; /* H4501SupplementaryService */
54 static int hf_h450_networkFacilityExtension; /* NetworkFacilityExtension */
55 static int hf_h450_interpretationApdu; /* InterpretationApdu */
56 static int hf_h450_serviceApdu; /* ServiceApdus */
57 static int hf_h450_sourceEntity; /* EntityType */
58 static int hf_h450_sourceEntityAddress; /* AddressInformation */
59 static int hf_h450_destinationEntity; /* EntityType */
60 static int hf_h450_destinationEntityAddress; /* AddressInformation */
61 static int hf_h450_endpoint; /* NULL */
62 static int hf_h450_anyEntity; /* NULL */
63 static int hf_h450_discardAnyUnrecognizedInvokePdu; /* NULL */
64 static int hf_h450_clearCallIfAnyInvokePduNotRecognized; /* NULL */
65 static int hf_h450_rejectAnyUnrecognizedInvokePdu; /* NULL */
66 static int hf_h450_rosApdus; /* T_rosApdus */
67 static int hf_h450_rosApdus_item; /* T_rosApdus_item */
68 static int hf_h450_destinationAddress; /* SEQUENCE_OF_AliasAddress */
69 static int hf_h450_destinationAddress_item; /* AliasAddress */
70 static int hf_h450_remoteExtensionAddress; /* AliasAddress */
71 static int hf_h450_destinationAddressPresentationIndicator; /* PresentationIndicator */
72 static int hf_h450_destinationAddressScreeningIndicator; /* ScreeningIndicator */
73 static int hf_h450_remoteExtensionAddressPresentationIndicator; /* PresentationIndicator */
74 static int hf_h450_remoteExtensionAddressScreeningIndicator; /* ScreeningIndicator */
75 static int hf_h450_userSpecifiedSubaddress; /* UserSpecifiedSubaddress */
76 static int hf_h450_nsapSubaddress; /* NSAPSubaddress */
77 static int hf_h450_subaddressInformation; /* SubaddressInformation */
78 static int hf_h450_oddCountIndicator; /* BOOLEAN */
79 static int hf_h450_extensionId; /* OBJECT_IDENTIFIER */
80 static int hf_h450_extensionArgument; /* T_extensionArgument */
82 /* --- Module Call-Transfer-Operations --- --- --- */
84 static int hf_h450_2_h450_2_DummyArg_PDU; /* DummyArg */
85 static int hf_h450_2_h450_2_CTIdentifyRes_PDU; /* CTIdentifyRes */
86 static int hf_h450_2_h450_2_CTInitiateArg_PDU; /* CTInitiateArg */
87 static int hf_h450_2_h450_2_DummyRes_PDU; /* DummyRes */
88 static int hf_h450_2_h450_2_CTSetupArg_PDU; /* CTSetupArg */
89 static int hf_h450_2_h450_2_CTUpdateArg_PDU; /* CTUpdateArg */
90 static int hf_h450_2_h450_2_SubaddressTransferArg_PDU; /* SubaddressTransferArg */
91 static int hf_h450_2_h450_2_CTCompleteArg_PDU; /* CTCompleteArg */
92 static int hf_h450_2_h450_2_CTActiveArg_PDU; /* CTActiveArg */
93 static int hf_h450_2_h450_2_PAR_unspecified_PDU; /* PAR_unspecified */
94 static int hf_h450_2_extensionSeq; /* ExtensionSeq */
95 static int hf_h450_2_nonStandardData; /* NonStandardParameter */
96 static int hf_h450_2_callIdentity; /* CallIdentity */
97 static int hf_h450_2_reroutingNumber; /* EndpointAddress */
98 static int hf_h450_2_cTInitiateArg_argumentExtension; /* T_cTInitiateArg_argumentExtension */
99 static int hf_h450_2_transferringNumber; /* EndpointAddress */
100 static int hf_h450_2_cTSetupArg_argumentExtension; /* T_cTSetupArg_argumentExtension */
101 static int hf_h450_2_resultExtension; /* T_resultExtension */
102 static int hf_h450_2_redirectionNumber; /* EndpointAddress */
103 static int hf_h450_2_redirectionInfo; /* BMPString_SIZE_1_128 */
104 static int hf_h450_2_basicCallInfoElements; /* H225InformationElement */
105 static int hf_h450_2_cTUpdateArg_argumentExtension; /* T_cTUpdateArg_argumentExtension */
106 static int hf_h450_2_redirectionSubaddress; /* PartySubaddress */
107 static int hf_h450_2_subaddressTransferArg_argumentExtension; /* T_subaddressTransferArg_argumentExtension */
108 static int hf_h450_2_endDesignation; /* EndDesignation */
109 static int hf_h450_2_callStatus; /* CallStatus */
110 static int hf_h450_2_cTCompleteArg_argumentExtension; /* T_cTCompleteArg_argumentExtension */
111 static int hf_h450_2_connectedAddress; /* EndpointAddress */
112 static int hf_h450_2_connectedInfo; /* BMPString_SIZE_1_128 */
113 static int hf_h450_2_cTActiveArg_argumentExtension; /* T_cTActiveArg_argumentExtension */
114 static int hf_h450_2_ExtensionSeq_item; /* Extension */
115 static int hf_h450_2_unspecified_extension; /* Extension */
116 static int hf_h450_2_nonStandard; /* NonStandardParameter */
118 /* --- Module Call-Diversion-Operations --- --- --- */
120 static int hf_h450_3_h450_3_ARG_activateDiversionQ_PDU; /* ARG_activateDiversionQ */
121 static int hf_h450_3_h450_3_RES_activateDiversionQ_PDU; /* RES_activateDiversionQ */
122 static int hf_h450_3_h450_3_ARG_deactivateDiversionQ_PDU; /* ARG_deactivateDiversionQ */
123 static int hf_h450_3_h450_3_RES_deactivateDiversionQ_PDU; /* RES_deactivateDiversionQ */
124 static int hf_h450_3_h450_3_ARG_interrogateDiversionQ_PDU; /* ARG_interrogateDiversionQ */
125 static int hf_h450_3_h450_3_IntResultList_PDU; /* IntResultList */
126 static int hf_h450_3_h450_3_ARG_checkRestriction_PDU; /* ARG_checkRestriction */
127 static int hf_h450_3_h450_3_RES_checkRestriction_PDU; /* RES_checkRestriction */
128 static int hf_h450_3_h450_3_ARG_callRerouting_PDU; /* ARG_callRerouting */
129 static int hf_h450_3_h450_3_RES_callRerouting_PDU; /* RES_callRerouting */
130 static int hf_h450_3_h450_3_ARG_divertingLegInformation1_PDU; /* ARG_divertingLegInformation1 */
131 static int hf_h450_3_h450_3_ARG_divertingLegInformation2_PDU; /* ARG_divertingLegInformation2 */
132 static int hf_h450_3_h450_3_ARG_divertingLegInformation3_PDU; /* ARG_divertingLegInformation3 */
133 static int hf_h450_3_h450_3_ARG_divertingLegInformation4_PDU; /* ARG_divertingLegInformation4 */
134 static int hf_h450_3_h450_3_ARG_cfnrDivertedLegFailed_PDU; /* ARG_cfnrDivertedLegFailed */
135 static int hf_h450_3_h450_3_PAR_unspecified_PDU; /* PAR_unspecified */
136 static int hf_h450_3_procedure; /* Procedure */
137 static int hf_h450_3_basicService; /* BasicService */
138 static int hf_h450_3_divertedToAddress; /* EndpointAddress */
139 static int hf_h450_3_servedUserNr; /* EndpointAddress */
140 static int hf_h450_3_activatingUserNr; /* EndpointAddress */
141 static int hf_h450_3_activateDiversionQArg_extension; /* ActivateDiversionQArg_extension */
142 static int hf_h450_3_extensionSeq; /* ExtensionSeq */
143 static int hf_h450_3_nonStandardData; /* NonStandardParameter */
144 static int hf_h450_3_deactivatingUserNr; /* EndpointAddress */
145 static int hf_h450_3_deactivateDiversionQArg_extension; /* DeactivateDiversionQArg_extension */
146 static int hf_h450_3_interrogatingUserNr; /* EndpointAddress */
147 static int hf_h450_3_interrogateDiversionQ_extension; /* InterrogateDiversionQ_extension */
148 static int hf_h450_3_divertedToNr; /* EndpointAddress */
149 static int hf_h450_3_checkRestrictionArg_extension; /* CheckRestrictionArg_extension */
150 static int hf_h450_3_reroutingReason; /* DiversionReason */
151 static int hf_h450_3_originalReroutingReason; /* DiversionReason */
152 static int hf_h450_3_calledAddress; /* EndpointAddress */
153 static int hf_h450_3_diversionCounter; /* INTEGER_1_15 */
154 static int hf_h450_3_h225InfoElement; /* H225InformationElement */
155 static int hf_h450_3_lastReroutingNr; /* EndpointAddress */
156 static int hf_h450_3_subscriptionOption; /* SubscriptionOption */
157 static int hf_h450_3_callingPartySubaddress; /* PartySubaddress */
158 static int hf_h450_3_callingNumber; /* EndpointAddress */
159 static int hf_h450_3_callingInfo; /* BMPString_SIZE_1_128 */
160 static int hf_h450_3_originalCalledNr; /* EndpointAddress */
161 static int hf_h450_3_redirectingInfo; /* BMPString_SIZE_1_128 */
162 static int hf_h450_3_originalCalledInfo; /* BMPString_SIZE_1_128 */
163 static int hf_h450_3_callReroutingArg_extension; /* CallReroutingArg_extension */
164 static int hf_h450_3_diversionReason; /* DiversionReason */
165 static int hf_h450_3_nominatedNr; /* EndpointAddress */
166 static int hf_h450_3_nominatedInfo; /* BMPString_SIZE_1_128 */
167 static int hf_h450_3_redirectingNr; /* EndpointAddress */
168 static int hf_h450_3_divertingLegInformation1Arg_extension; /* DivertingLegInformation1Arg_extension */
169 static int hf_h450_3_originalDiversionReason; /* DiversionReason */
170 static int hf_h450_3_divertingNr; /* EndpointAddress */
171 static int hf_h450_3_divertingLegInformation2Arg_extension; /* DivertingLegInformation2Arg_extension */
172 static int hf_h450_3_presentationAllowedIndicator; /* PresentationAllowedIndicator */
173 static int hf_h450_3_redirectionNr; /* EndpointAddress */
174 static int hf_h450_3_redirectionInfo; /* BMPString_SIZE_1_128 */
175 static int hf_h450_3_divertingLegInformation3Arg_extension; /* DivertingLegInformation3Arg_extension */
176 static int hf_h450_3_callingNr; /* EndpointAddress */
177 static int hf_h450_3_divertingLegInformation4Arg_extension; /* DivertingLegInformation4Arg_extension */
178 static int hf_h450_3_IntResultList_item; /* IntResult */
179 static int hf_h450_3_remoteEnabled; /* BOOLEAN */
180 static int hf_h450_3_intResult_extension; /* IntResult_extension */
181 static int hf_h450_3_unspecified_extension; /* Extension */
182 static int hf_h450_3_nonStandard; /* NonStandardParameter */
183 static int hf_h450_3_ExtensionSeq_item; /* Extension */
185 /* --- Module Call-Hold-Operations --- --- --- */
187 static int hf_h450_4_h450_4_HoldNotificArg_PDU; /* HoldNotificArg */
188 static int hf_h450_4_h450_4_RetrieveNotificArg_PDU; /* RetrieveNotificArg */
189 static int hf_h450_4_h450_4_RemoteHoldArg_PDU; /* RemoteHoldArg */
190 static int hf_h450_4_h450_4_RemoteHoldRes_PDU; /* RemoteHoldRes */
191 static int hf_h450_4_h450_4_RemoteRetrieveArg_PDU; /* RemoteRetrieveArg */
192 static int hf_h450_4_h450_4_RemoteRetrieveRes_PDU; /* RemoteRetrieveRes */
193 static int hf_h450_4_h450_4_PAR_undefined_PDU; /* PAR_undefined */
194 static int hf_h450_4_holdNotificArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
195 static int hf_h450_4_holdNotificArg_extensionArg_item; /* MixedExtension */
196 static int hf_h450_4_retrieveNotificArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
197 static int hf_h450_4_retrieveNotificArg_extensionArg_item; /* MixedExtension */
198 static int hf_h450_4_remoteHoldArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
199 static int hf_h450_4_remoteHoldArg_extensionArg_item; /* MixedExtension */
200 static int hf_h450_4_extensionRes; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
201 static int hf_h450_4_extensionRes_item; /* MixedExtension */
202 static int hf_h450_4_remoteRetrieveArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
203 static int hf_h450_4_remoteRetrieveArg_extensionArg_item; /* MixedExtension */
204 static int hf_h450_4_mixedExtension_extension; /* Extension */
205 static int hf_h450_4_nonStandardData; /* NonStandardParameter */
206 static int hf_h450_4_PAR_undefined_item; /* MixedExtension */
208 /* --- Module Call-Park-Pickup-Operations --- --- --- */
210 static int hf_h450_5_h450_5_CpRequestArg_PDU; /* CpRequestArg */
211 static int hf_h450_5_h450_5_CpRequestRes_PDU; /* CpRequestRes */
212 static int hf_h450_5_h450_5_CpSetupArg_PDU; /* CpSetupArg */
213 static int hf_h450_5_h450_5_CpSetupRes_PDU; /* CpSetupRes */
214 static int hf_h450_5_h450_5_GroupIndicationOnArg_PDU; /* GroupIndicationOnArg */
215 static int hf_h450_5_h450_5_GroupIndicationOnRes_PDU; /* GroupIndicationOnRes */
216 static int hf_h450_5_h450_5_GroupIndicationOffArg_PDU; /* GroupIndicationOffArg */
217 static int hf_h450_5_h450_5_GroupIndicationOffRes_PDU; /* GroupIndicationOffRes */
218 static int hf_h450_5_h450_5_PickrequArg_PDU; /* PickrequArg */
219 static int hf_h450_5_h450_5_PickrequRes_PDU; /* PickrequRes */
220 static int hf_h450_5_h450_5_PickupArg_PDU; /* PickupArg */
221 static int hf_h450_5_h450_5_PickupRes_PDU; /* PickupRes */
222 static int hf_h450_5_h450_5_PickExeArg_PDU; /* PickExeArg */
223 static int hf_h450_5_h450_5_PickExeRes_PDU; /* PickExeRes */
224 static int hf_h450_5_h450_5_CpNotifyArg_PDU; /* CpNotifyArg */
225 static int hf_h450_5_h450_5_CpickupNotifyArg_PDU; /* CpickupNotifyArg */
226 static int hf_h450_5_h450_5_PAR_undefined_PDU; /* PAR_undefined */
227 static int hf_h450_5_parkingNumber; /* EndpointAddress */
228 static int hf_h450_5_parkedNumber; /* EndpointAddress */
229 static int hf_h450_5_parkedToNumber; /* EndpointAddress */
230 static int hf_h450_5_parkedToPosition; /* ParkedToPosition */
231 static int hf_h450_5_cpRequestArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
232 static int hf_h450_5_cpRequestArg_extensionArg_item; /* MixedExtension */
233 static int hf_h450_5_parkCondition; /* ParkCondition */
234 static int hf_h450_5_extensionRes; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
235 static int hf_h450_5_extensionRes_item; /* MixedExtension */
236 static int hf_h450_5_cpSetupArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
237 static int hf_h450_5_cpSetupArg_extensionArg_item; /* MixedExtension */
238 static int hf_h450_5_callPickupId; /* CallIdentifier */
239 static int hf_h450_5_groupMemberUserNr; /* EndpointAddress */
240 static int hf_h450_5_retrieveCallType; /* CallType */
241 static int hf_h450_5_partyToRetrieve; /* EndpointAddress */
242 static int hf_h450_5_retrieveAddress; /* EndpointAddress */
243 static int hf_h450_5_parkPosition; /* ParkedToPosition */
244 static int hf_h450_5_groupIndicationOnArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
245 static int hf_h450_5_groupIndicationOnArg_extensionArg_item; /* MixedExtension */
246 static int hf_h450_5_groupIndicationOffArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
247 static int hf_h450_5_groupIndicationOffArg_extensionArg_item; /* MixedExtension */
248 static int hf_h450_5_picking_upNumber; /* EndpointAddress */
249 static int hf_h450_5_pickrequArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
250 static int hf_h450_5_pickrequArg_extensionArg_item; /* MixedExtension */
251 static int hf_h450_5_pickupArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
252 static int hf_h450_5_pickupArg_extensionArg_item; /* MixedExtension */
253 static int hf_h450_5_pickExeArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
254 static int hf_h450_5_pickExeArg_extensionArg_item; /* MixedExtension */
255 static int hf_h450_5_cpNotifyArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
256 static int hf_h450_5_cpNotifyArg_extensionArg_item; /* MixedExtension */
257 static int hf_h450_5_cpickupNotifyArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
258 static int hf_h450_5_cpickupNotifyArg_extensionArg_item; /* MixedExtension */
259 static int hf_h450_5_PAR_undefined_item; /* MixedExtension */
261 /* --- Module Call-Waiting-Operations --- --- --- */
263 static int hf_h450_6_h450_6_CallWaitingArg_PDU; /* CallWaitingArg */
264 static int hf_h450_6_nbOfAddWaitingCalls; /* INTEGER_0_255 */
265 static int hf_h450_6_callWaitingArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
266 static int hf_h450_6_callWaitingArg_extensionArg_item; /* MixedExtension */
268 /* --- Module Message-Waiting-Indication-Operations --- --- --- */
270 static int hf_h450_7_h450_7_MWIActivateArg_PDU; /* MWIActivateArg */
271 static int hf_h450_7_h450_7_DummyRes_PDU; /* DummyRes */
272 static int hf_h450_7_h450_7_MWIDeactivateArg_PDU; /* MWIDeactivateArg */
273 static int hf_h450_7_h450_7_MWIInterrogateArg_PDU; /* MWIInterrogateArg */
274 static int hf_h450_7_h450_7_MWIInterrogateRes_PDU; /* MWIInterrogateRes */
275 static int hf_h450_7_h450_7_PAR_undefined_PDU; /* PAR_undefined */
276 static int hf_h450_7_servedUserNr; /* EndpointAddress */
277 static int hf_h450_7_basicService; /* BasicService */
278 static int hf_h450_7_msgCentreId; /* MsgCentreId */
279 static int hf_h450_7_nbOfMessages; /* NbOfMessages */
280 static int hf_h450_7_originatingNr; /* EndpointAddress */
281 static int hf_h450_7_timestamp; /* TimeStamp */
282 static int hf_h450_7_priority; /* INTEGER_0_9 */
283 static int hf_h450_7_mWIActivateArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
284 static int hf_h450_7_mWIActivateArg_extensionArg_item; /* MixedExtension */
285 static int hf_h450_7_DummyRes_item; /* MixedExtension */
286 static int hf_h450_7_callbackReq; /* BOOLEAN */
287 static int hf_h450_7_mWIDeactivateArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
288 static int hf_h450_7_mWIDeactivateArg_extensionArg_item; /* MixedExtension */
289 static int hf_h450_7_mWIInterrogateArg_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
290 static int hf_h450_7_mWIInterrogateArg_extensionArg_item; /* MixedExtension */
291 static int hf_h450_7_MWIInterrogateRes_item; /* MWIInterrogateResElt */
292 static int hf_h450_7_mWIInterrogateResElt_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
293 static int hf_h450_7_mWIInterrogateResElt_extensionArg_item; /* MixedExtension */
294 static int hf_h450_7_integer; /* INTEGER_0_65535 */
295 static int hf_h450_7_partyNumber; /* EndpointAddress */
296 static int hf_h450_7_numericString; /* NumericString_SIZE_1_10 */
297 static int hf_h450_7_PAR_undefined_item; /* MixedExtension */
299 /* --- Module Name-Operations --- --- --- */
301 static int hf_h450_8_h450_8_ARG_callingName_PDU; /* ARG_callingName */
302 static int hf_h450_8_h450_8_ARG_alertingName_PDU; /* ARG_alertingName */
303 static int hf_h450_8_h450_8_ARG_connectedName_PDU; /* ARG_connectedName */
304 static int hf_h450_8_h450_8_ARG_busyName_PDU; /* ARG_busyName */
305 static int hf_h450_8_name; /* Name */
306 static int hf_h450_8_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
307 static int hf_h450_8_extensionArg_item; /* MixedExtension */
308 static int hf_h450_8_namePresentationAllowed; /* NamePresentationAllowed */
309 static int hf_h450_8_namePresentationRestricted; /* NamePresentationRestricted */
310 static int hf_h450_8_nameNotAvailable; /* NULL */
311 static int hf_h450_8_simpleName; /* SimpleName */
312 static int hf_h450_8_extendedName; /* ExtendedName */
313 static int hf_h450_8_restrictedNull; /* NULL */
315 /* --- Module Call-Completion-Operations --- --- --- */
317 static int hf_h450_9_h450_9_CcRequestArg_PDU; /* CcRequestArg */
318 static int hf_h450_9_h450_9_CcRequestRes_PDU; /* CcRequestRes */
319 static int hf_h450_9_h450_9_CcArg_PDU; /* CcArg */
320 static int hf_h450_9_h450_9_CcShortArg_PDU; /* CcShortArg */
321 static int hf_h450_9_numberA; /* EndpointAddress */
322 static int hf_h450_9_numberB; /* EndpointAddress */
323 static int hf_h450_9_ccIdentifier; /* CallIdentifier */
324 static int hf_h450_9_service; /* BasicService */
325 static int hf_h450_9_can_retain_service; /* BOOLEAN */
326 static int hf_h450_9_retain_sig_connection; /* BOOLEAN */
327 static int hf_h450_9_ccRequestArg_extension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
328 static int hf_h450_9_ccRequestArg_extension_item; /* MixedExtension */
329 static int hf_h450_9_retain_service; /* BOOLEAN */
330 static int hf_h450_9_ccRequestRes_extension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
331 static int hf_h450_9_ccRequestRes_extension_item; /* MixedExtension */
332 static int hf_h450_9_shortArg; /* CcShortArg */
333 static int hf_h450_9_longArg; /* CcLongArg */
334 static int hf_h450_9_ccShortArg_extension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
335 static int hf_h450_9_ccShortArg_extension_item; /* MixedExtension */
336 static int hf_h450_9_ccLongArg_extension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
337 static int hf_h450_9_ccLongArg_extension_item; /* MixedExtension */
339 /* --- Module Call-Offer-Operations --- --- --- */
341 static int hf_h450_10_h450_10_CoReqOptArg_PDU; /* CoReqOptArg */
342 static int hf_h450_10_h450_10_RUAlertOptArg_PDU; /* RUAlertOptArg */
343 static int hf_h450_10_h450_10_CfbOvrOptArg_PDU; /* CfbOvrOptArg */
344 static int hf_h450_10_coReqOptArg_extension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
345 static int hf_h450_10_coReqOptArg_extension_item; /* MixedExtension */
346 static int hf_h450_10_rUAlertOptArg_extension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
347 static int hf_h450_10_rUAlertOptArg_extension_item; /* MixedExtension */
348 static int hf_h450_10_cfbOvrOptArg_extension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
349 static int hf_h450_10_cfbOvrOptArg_extension_item; /* MixedExtension */
351 /* --- Module Call-Intrusion-Operations --- --- --- */
353 static int hf_h450_11_h450_11_CIRequestArg_PDU; /* CIRequestArg */
354 static int hf_h450_11_h450_11_CIRequestRes_PDU; /* CIRequestRes */
355 static int hf_h450_11_h450_11_CIGetCIPLOptArg_PDU; /* CIGetCIPLOptArg */
356 static int hf_h450_11_h450_11_CIGetCIPLRes_PDU; /* CIGetCIPLRes */
357 static int hf_h450_11_h450_11_CIIsOptArg_PDU; /* CIIsOptArg */
358 static int hf_h450_11_h450_11_CIIsOptRes_PDU; /* CIIsOptRes */
359 static int hf_h450_11_h450_11_CIFrcRelArg_PDU; /* CIFrcRelArg */
360 static int hf_h450_11_h450_11_CIFrcRelOptRes_PDU; /* CIFrcRelOptRes */
361 static int hf_h450_11_h450_11_CIWobOptArg_PDU; /* CIWobOptArg */
362 static int hf_h450_11_h450_11_CIWobOptRes_PDU; /* CIWobOptRes */
363 static int hf_h450_11_h450_11_CISilentArg_PDU; /* CISilentArg */
364 static int hf_h450_11_h450_11_CISilentOptRes_PDU; /* CISilentOptRes */
365 static int hf_h450_11_h450_11_CINotificationArg_PDU; /* CINotificationArg */
366 static int hf_h450_11_ciCapabilityLevel; /* CICapabilityLevel */
367 static int hf_h450_11_cIRequestArg_argumentExtension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
368 static int hf_h450_11_cIRequestArg_argumentExtension_item; /* MixedExtension */
369 static int hf_h450_11_ciStatusInformation; /* CIStatusInformation */
370 static int hf_h450_11_cIRequestRes_resultExtension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
371 static int hf_h450_11_cIRequestRes_resultExtension_item; /* MixedExtension */
372 static int hf_h450_11_cIGetCIPLOptArg_argumentExtension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
373 static int hf_h450_11_cIGetCIPLOptArg_argumentExtension_item; /* MixedExtension */
374 static int hf_h450_11_ciProtectionLevel; /* CIProtectionLevel */
375 static int hf_h450_11_silentMonitoringPermitted; /* NULL */
376 static int hf_h450_11_cIGetCIPLRes_resultExtension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
377 static int hf_h450_11_cIGetCIPLRes_resultExtension_item; /* MixedExtension */
378 static int hf_h450_11_cIIsOptArg_argumentExtension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
379 static int hf_h450_11_cIIsOptArg_argumentExtension_item; /* MixedExtension */
380 static int hf_h450_11_cIIsOptRes_resultExtension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
381 static int hf_h450_11_cIIsOptRes_resultExtension_item; /* MixedExtension */
382 static int hf_h450_11_cIFrcRelArg_argumentExtension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
383 static int hf_h450_11_cIFrcRelArg_argumentExtension_item; /* MixedExtension */
384 static int hf_h450_11_cIFrcRelOptRes_resultExtension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
385 static int hf_h450_11_cIFrcRelOptRes_resultExtension_item; /* MixedExtension */
386 static int hf_h450_11_cIWobOptArg_argumentExtension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
387 static int hf_h450_11_cIWobOptArg_argumentExtension_item; /* MixedExtension */
388 static int hf_h450_11_cIWobOptRes_resultExtension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
389 static int hf_h450_11_cIWobOptRes_resultExtension_item; /* MixedExtension */
390 static int hf_h450_11_specificCall; /* CallIdentifier */
391 static int hf_h450_11_cISilentArg_argumentExtension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
392 static int hf_h450_11_cISilentArg_argumentExtension_item; /* MixedExtension */
393 static int hf_h450_11_cISilentOptRes_resultExtension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
394 static int hf_h450_11_cISilentOptRes_resultExtension_item; /* MixedExtension */
395 static int hf_h450_11_cINotificationArg_argumentExtension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
396 static int hf_h450_11_cINotificationArg_argumentExtension_item; /* MixedExtension */
397 static int hf_h450_11_callIntrusionImpending; /* NULL */
398 static int hf_h450_11_callIntruded; /* NULL */
399 static int hf_h450_11_callIsolated; /* NULL */
400 static int hf_h450_11_callForceReleased; /* NULL */
401 static int hf_h450_11_callIntrusionComplete; /* NULL */
402 static int hf_h450_11_callIntrusionEnd; /* NULL */
404 /* --- Module Common-Information-Operations --- --- --- */
406 static int hf_h450_12_h450_12_DummyArg_PDU; /* DummyArg */
407 static int hf_h450_12_h450_12_CmnArg_PDU; /* CmnArg */
408 static int hf_h450_12_featureList; /* FeatureList */
409 static int hf_h450_12_featureValues; /* FeatureValues */
410 static int hf_h450_12_featureControl; /* FeatureControl */
411 static int hf_h450_12_cmnArg_extension; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
412 static int hf_h450_12_cmnArg_extension_item; /* MixedExtension */
413 static int hf_h450_12_extensionArg; /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
414 static int hf_h450_12_extensionArg_item; /* MixedExtension */
415 static int hf_h450_12_ssCFreRoutingSupported; /* NULL */
416 static int hf_h450_12_ssCTreRoutingSupported; /* NULL */
417 static int hf_h450_12_ssCCBSPossible; /* NULL */
418 static int hf_h450_12_ssCCNRPossible; /* NULL */
419 static int hf_h450_12_ssCOSupported; /* NULL */
420 static int hf_h450_12_ssCIForcedReleaseSupported; /* NULL */
421 static int hf_h450_12_ssCIIsolationSupported; /* NULL */
422 static int hf_h450_12_ssCIWaitOnBusySupported; /* NULL */
423 static int hf_h450_12_ssCISilentMonitoringSupported; /* NULL */
424 static int hf_h450_12_ssCIConferenceSupported; /* NULL */
425 static int hf_h450_12_ssCHFarHoldSupported; /* NULL */
426 static int hf_h450_12_ssMWICallbackSupported; /* NULL */
427 static int hf_h450_12_ssCPCallParkSupported; /* NULL */
428 static int hf_h450_12_partyCategory; /* PartyCategory */
429 static int hf_h450_12_ssCIprotectionLevel; /* SSCIProtectionLevel */
430 static int hf_h450_12_ssCHDoNotHold; /* NULL */
431 static int hf_h450_12_ssCTDoNotTransfer; /* NULL */
432 static int hf_h450_12_ssMWICallbackCall; /* NULL */
433 static int hf_h450_12_ssCISilentMonitorPermitted; /* NULL */
435 /* Initialize the subtree pointers */
437 /* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
439 static int ett_h450_H4501SupplementaryService;
440 static int ett_h450_NetworkFacilityExtension;
441 static int ett_h450_EntityType;
442 static int ett_h450_InterpretationApdu;
443 static int ett_h450_ServiceApdus;
444 static int ett_h450_T_rosApdus;
445 static int ett_h450_EndpointAddress;
446 static int ett_h450_SEQUENCE_OF_AliasAddress;
447 static int ett_h450_PartySubaddress;
448 static int ett_h450_UserSpecifiedSubaddress;
449 static int ett_h450_Extension;
451 /* --- Module Call-Transfer-Operations --- --- --- */
453 static int ett_h450_2_DummyArg;
454 static int ett_h450_2_DummyRes;
455 static int ett_h450_2_CTInitiateArg;
456 static int ett_h450_2_T_cTInitiateArg_argumentExtension;
457 static int ett_h450_2_CTSetupArg;
458 static int ett_h450_2_T_cTSetupArg_argumentExtension;
459 static int ett_h450_2_CTIdentifyRes;
460 static int ett_h450_2_T_resultExtension;
461 static int ett_h450_2_CTUpdateArg;
462 static int ett_h450_2_T_cTUpdateArg_argumentExtension;
463 static int ett_h450_2_SubaddressTransferArg;
464 static int ett_h450_2_T_subaddressTransferArg_argumentExtension;
465 static int ett_h450_2_CTCompleteArg;
466 static int ett_h450_2_T_cTCompleteArg_argumentExtension;
467 static int ett_h450_2_CTActiveArg;
468 static int ett_h450_2_T_cTActiveArg_argumentExtension;
469 static int ett_h450_2_ExtensionSeq;
470 static int ett_h450_2_PAR_unspecified;
472 /* --- Module Call-Diversion-Operations --- --- --- */
474 static int ett_h450_3_ARG_activateDiversionQ;
475 static int ett_h450_3_ActivateDiversionQArg_extension;
476 static int ett_h450_3_RES_activateDiversionQ;
477 static int ett_h450_3_ARG_deactivateDiversionQ;
478 static int ett_h450_3_DeactivateDiversionQArg_extension;
479 static int ett_h450_3_RES_deactivateDiversionQ;
480 static int ett_h450_3_ARG_interrogateDiversionQ;
481 static int ett_h450_3_InterrogateDiversionQ_extension;
482 static int ett_h450_3_ARG_checkRestriction;
483 static int ett_h450_3_CheckRestrictionArg_extension;
484 static int ett_h450_3_RES_checkRestriction;
485 static int ett_h450_3_ARG_callRerouting;
486 static int ett_h450_3_CallReroutingArg_extension;
487 static int ett_h450_3_RES_callRerouting;
488 static int ett_h450_3_ARG_divertingLegInformation1;
489 static int ett_h450_3_DivertingLegInformation1Arg_extension;
490 static int ett_h450_3_ARG_divertingLegInformation2;
491 static int ett_h450_3_DivertingLegInformation2Arg_extension;
492 static int ett_h450_3_ARG_divertingLegInformation3;
493 static int ett_h450_3_DivertingLegInformation3Arg_extension;
494 static int ett_h450_3_ARG_divertingLegInformation4;
495 static int ett_h450_3_DivertingLegInformation4Arg_extension;
496 static int ett_h450_3_ARG_cfnrDivertedLegFailed;
497 static int ett_h450_3_IntResultList;
498 static int ett_h450_3_IntResult;
499 static int ett_h450_3_IntResult_extension;
500 static int ett_h450_3_PAR_unspecified;
501 static int ett_h450_3_ExtensionSeq;
503 /* --- Module Call-Hold-Operations --- --- --- */
505 static int ett_h450_4_HoldNotificArg;
506 static int ett_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension;
507 static int ett_h450_4_RetrieveNotificArg;
508 static int ett_h450_4_RemoteHoldArg;
509 static int ett_h450_4_RemoteHoldRes;
510 static int ett_h450_4_RemoteRetrieveArg;
511 static int ett_h450_4_RemoteRetrieveRes;
512 static int ett_h450_4_MixedExtension;
513 static int ett_h450_4_PAR_undefined;
515 /* --- Module Call-Park-Pickup-Operations --- --- --- */
517 static int ett_h450_5_CpRequestArg;
518 static int ett_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension;
519 static int ett_h450_5_CpRequestRes;
520 static int ett_h450_5_CpSetupArg;
521 static int ett_h450_5_CpSetupRes;
522 static int ett_h450_5_GroupIndicationOnArg;
523 static int ett_h450_5_GroupIndicationOnRes;
524 static int ett_h450_5_GroupIndicationOffArg;
525 static int ett_h450_5_GroupIndicationOffRes;
526 static int ett_h450_5_PickrequArg;
527 static int ett_h450_5_PickrequRes;
528 static int ett_h450_5_PickupArg;
529 static int ett_h450_5_PickupRes;
530 static int ett_h450_5_PickExeArg;
531 static int ett_h450_5_PickExeRes;
532 static int ett_h450_5_CpNotifyArg;
533 static int ett_h450_5_CpickupNotifyArg;
534 static int ett_h450_5_PAR_undefined;
536 /* --- Module Call-Waiting-Operations --- --- --- */
538 static int ett_h450_6_CallWaitingArg;
539 static int ett_h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension;
541 /* --- Module Message-Waiting-Indication-Operations --- --- --- */
543 static int ett_h450_7_MWIActivateArg;
544 static int ett_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension;
545 static int ett_h450_7_DummyRes;
546 static int ett_h450_7_MWIDeactivateArg;
547 static int ett_h450_7_MWIInterrogateArg;
548 static int ett_h450_7_MWIInterrogateRes;
549 static int ett_h450_7_MWIInterrogateResElt;
550 static int ett_h450_7_MsgCentreId;
551 static int ett_h450_7_PAR_undefined;
553 /* --- Module Name-Operations --- --- --- */
555 static int ett_h450_8_ARG_callingName;
556 static int ett_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension;
557 static int ett_h450_8_ARG_alertingName;
558 static int ett_h450_8_ARG_connectedName;
559 static int ett_h450_8_ARG_busyName;
560 static int ett_h450_8_Name;
561 static int ett_h450_8_NamePresentationAllowed;
562 static int ett_h450_8_NamePresentationRestricted;
564 /* --- Module Call-Completion-Operations --- --- --- */
566 static int ett_h450_9_CcRequestArg;
567 static int ett_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension;
568 static int ett_h450_9_CcRequestRes;
569 static int ett_h450_9_CcArg;
570 static int ett_h450_9_CcShortArg;
571 static int ett_h450_9_CcLongArg;
573 /* --- Module Call-Offer-Operations --- --- --- */
575 static int ett_h450_10_CoReqOptArg;
576 static int ett_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension;
577 static int ett_h450_10_RUAlertOptArg;
578 static int ett_h450_10_CfbOvrOptArg;
580 /* --- Module Call-Intrusion-Operations --- --- --- */
582 static int ett_h450_11_CIRequestArg;
583 static int ett_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension;
584 static int ett_h450_11_CIRequestRes;
585 static int ett_h450_11_CIGetCIPLOptArg;
586 static int ett_h450_11_CIGetCIPLRes;
587 static int ett_h450_11_CIIsOptArg;
588 static int ett_h450_11_CIIsOptRes;
589 static int ett_h450_11_CIFrcRelArg;
590 static int ett_h450_11_CIFrcRelOptRes;
591 static int ett_h450_11_CIWobOptArg;
592 static int ett_h450_11_CIWobOptRes;
593 static int ett_h450_11_CISilentArg;
594 static int ett_h450_11_CISilentOptRes;
595 static int ett_h450_11_CINotificationArg;
596 static int ett_h450_11_CIStatusInformation;
598 /* --- Module Common-Information-Operations --- --- --- */
600 static int ett_h450_12_CmnArg;
601 static int ett_h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension;
602 static int ett_h450_12_DummyArg;
603 static int ett_h450_12_FeatureList;
604 static int ett_h450_12_FeatureValues;
605 static int ett_h450_12_FeatureControl;
607 static expert_field ei_h450_unsupported_arg_type;
608 static expert_field ei_h450_unsupported_result_type;
609 static expert_field ei_h450_unsupported_error_type;
611 static const value_string h450_str_operation[] = {
613 /* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
615 /* Unknown or empty loop list OPERATION */
617 /* --- Module Call-Transfer-Operations --- --- --- */
619 { 7, "callTransferIdentify" },
620 { 8, "callTransferAbandon" },
621 { 9, "callTransferInitiate" },
622 { 10, "callTransferSetup" },
623 { 13, "callTransferUpdate" },
624 { 14, "subaddressTransfer" },
625 { 12, "callTransferComplete" },
626 { 11, "callTransferActive" },
628 /* --- Module Call-Diversion-Operations --- --- --- */
630 { 15, "activateDiversionQ" },
631 { 16, "deactivateDiversionQ" },
632 { 17, "interrogateDiversionQ" },
633 { 18, "checkRestriction" },
634 { 19, "callRerouting" },
635 { 20, "divertingLegInformation1" },
636 { 21, "divertingLegInformation2" },
637 { 22, "divertingLegInformation3" },
638 { 100, "divertingLegInformation4" },
639 { 23, "cfnrDivertedLegFailed" },
641 /* --- Module Call-Hold-Operations --- --- --- */
643 { 101, "holdNotific" },
644 { 102, "retrieveNotific" },
645 { 103, "remoteHold" },
646 { 104, "remoteRetrieve" },
648 /* --- Module Call-Park-Pickup-Operations --- --- --- */
650 { 106, "cpRequest" },
651 { 107, "cpSetup" },
652 { 108, "groupIndicationOn" },
653 { 109, "groupIndicationOff" },
654 { 110, "pickrequ" },
655 { 111, "pickup" },
656 { 112, "pickExe" },
657 { 113, "cpNotify" },
658 { 114, "cpickupNotify" },
660 /* --- Module Call-Waiting-Operations --- --- --- */
662 { 105, "callWaiting" },
664 /* --- Module Message-Waiting-Indication-Operations --- --- --- */
666 { 80, "mwiActivate" },
667 { 81, "mwiDeactivate" },
668 { 82, "mwiInterrogate" },
670 /* --- Module Name-Operations --- --- --- */
672 { 0, "callingName" },
673 { 1, "alertingName" },
674 { 2, "connectedName" },
675 { 3, "busyName" },
677 /* --- Module Call-Completion-Operations --- --- --- */
679 { 40, "ccbsRequest" },
680 { 27, "ccnrRequest" },
681 { 28, "ccCancel" },
682 { 29, "ccExecPossible" },
683 { 31, "ccRingout" },
684 { 32, "ccSuspend" },
685 { 33, "ccResume" },
687 /* --- Module Call-Offer-Operations --- --- --- */
689 { 34, "callOfferRequest" },
690 { 115, "remoteUserAlerting" },
691 { 49, "cfbOverride" },
693 /* --- Module Call-Intrusion-Operations --- --- --- */
695 { 43, "callIntrusionRequest" },
696 { 44, "callIntrusionGetCIPL" },
697 { 45, "callIntrusionIsolate" },
698 { 46, "callIntrusionForcedRelease" },
699 { 47, "callIntrusionWOBRequest" },
700 { 116, "callIntrusionSilentMonitor" },
701 { 117, "callIntrusionNotification" },
703 /* --- Module Common-Information-Operations --- --- --- */
705 { 84, "cmnRequest" },
706 { 85, "cmnInform" },
707 { 0, NULL}
710 static const value_string h450_str_error[] = {
712 /* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
714 { 0, "userNotSubscribed" },
715 { 1, "rejectedByNetwork" },
716 { 2, "rejectedByUser" },
717 { 3, "notAvailable" },
718 { 5, "insufficientInformation" },
719 { 6, "invalidServedUserNumber" },
720 { 7, "invalidCallState" },
721 { 8, "basicServiceNotProvided" },
722 { 9, "notIncomingCall" },
723 { 10, "supplementaryServiceInteractionNotAllowed" },
724 { 11, "resourceUnavailable" },
725 { 25, "callFailure" },
726 { 43, "proceduralError" },
728 /* --- Module Call-Transfer-Operations --- --- --- */
730 { 1008, "unspecified" },
731 { 1004, "invalidReroutingNumber" },
732 { 1005, "unrecognizedCallIdentity" },
733 { 1006, "establishmentFailure" },
735 /* --- Module Call-Diversion-Operations --- --- --- */
737 { 12, "invalidDivertedNumber" },
738 { 14, "specialServiceNumber" },
739 { 15, "diversionToServedUserNumber" },
740 { 24, "numberOfDiversionsExceeded" },
741 { 1000, "temporarilyUnavailable" },
742 { 1007, "notAuthorized" },
743 { 1008, "unspecified" },
745 /* --- Module Call-Hold-Operations --- --- --- */
747 { 2002, "undefined" },
749 /* --- Module Call-Park-Pickup-Operations --- --- --- */
751 { 2000, "callPickupIdInvalid" },
752 { 2001, "callAlreadyPickedUp" },
753 { 2002, "undefined" },
755 /* --- Module Call-Waiting-Operations --- --- --- */
757 /* Unknown or empty loop list ERROR */
759 /* --- Module Message-Waiting-Indication-Operations --- --- --- */
761 { 2002, "undefined" },
762 { 1018, "invalidMsgCentreId" },
763 { 31, "notActivated" },
765 /* --- Module Name-Operations --- --- --- */
767 /* Unknown or empty loop list ERROR */
769 /* --- Module Call-Completion-Operations --- --- --- */
771 { 1010, "shortTermRejection" },
772 { 1011, "longTermRejection" },
773 { 1012, "remoteUserBusyAgain" },
774 { 1013, "failureToMatch" },
776 /* --- Module Call-Offer-Operations --- --- --- */
778 /* Unknown or empty loop list ERROR */
780 /* --- Module Call-Intrusion-Operations --- --- --- */
782 { 1009, "notBusy" },
783 { 1000, "temporarilyUnavailable" },
784 { 1007, "notAuthorized" },
786 /* --- Module Common-Information-Operations --- --- --- */
788 /* Unknown or empty loop list ERROR */
789 { 0, NULL}
792 /* ROSE context */
793 static rose_ctx_t h450_rose_ctx;
795 /* Global variables */
798 /* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
802 static int
803 dissect_h450_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
804 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
806 return offset;
810 static const value_string h450_EntityType_vals[] = {
811 { 0, "endpoint" },
812 { 1, "anyEntity" },
813 { 0, NULL }
816 static const per_choice_t h450_EntityType_choice[] = {
817 { 0, &hf_h450_endpoint , ASN1_EXTENSION_ROOT , dissect_h450_NULL },
818 { 1, &hf_h450_anyEntity , ASN1_EXTENSION_ROOT , dissect_h450_NULL },
819 { 0, NULL, 0, NULL }
822 static int
823 dissect_h450_EntityType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
824 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
825 ett_h450_EntityType, h450_EntityType_choice,
826 NULL);
828 return offset;
833 static int
834 dissect_h450_AddressInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
835 offset = dissect_h225_AliasAddress(tvb, offset, actx, tree, hf_index);
837 return offset;
841 static const per_sequence_t h450_NetworkFacilityExtension_sequence[] = {
842 { &hf_h450_sourceEntity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EntityType },
843 { &hf_h450_sourceEntityAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_AddressInformation },
844 { &hf_h450_destinationEntity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EntityType },
845 { &hf_h450_destinationEntityAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_AddressInformation },
846 { NULL, 0, 0, NULL }
849 static int
850 dissect_h450_NetworkFacilityExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
851 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
852 ett_h450_NetworkFacilityExtension, h450_NetworkFacilityExtension_sequence);
854 return offset;
858 static const value_string h450_InterpretationApdu_vals[] = {
859 { 0, "discardAnyUnrecognizedInvokePdu" },
860 { 1, "clearCallIfAnyInvokePduNotRecognized" },
861 { 2, "rejectAnyUnrecognizedInvokePdu" },
862 { 0, NULL }
865 static const per_choice_t h450_InterpretationApdu_choice[] = {
866 { 0, &hf_h450_discardAnyUnrecognizedInvokePdu, ASN1_EXTENSION_ROOT , dissect_h450_NULL },
867 { 1, &hf_h450_clearCallIfAnyInvokePduNotRecognized, ASN1_EXTENSION_ROOT , dissect_h450_NULL },
868 { 2, &hf_h450_rejectAnyUnrecognizedInvokePdu, ASN1_EXTENSION_ROOT , dissect_h450_NULL },
869 { 0, NULL, 0, NULL }
872 static int
873 dissect_h450_InterpretationApdu(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
874 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
875 ett_h450_InterpretationApdu, h450_InterpretationApdu_choice,
876 NULL);
878 return offset;
883 static int
884 dissect_h450_T_rosApdus_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
885 h450_rose_ctx.apdu_depth = 1;
886 actx->rose_ctx = &h450_rose_ctx;
887 offset = dissect_h450_ros_ROS(tvb, offset, actx, tree, hf_index);
889 return offset;
893 static const per_sequence_t h450_T_rosApdus_sequence_of[1] = {
894 { &hf_h450_rosApdus_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_T_rosApdus_item },
897 static int
898 dissect_h450_T_rosApdus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
899 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
900 ett_h450_T_rosApdus, h450_T_rosApdus_sequence_of,
901 1, NO_BOUND, false);
903 return offset;
907 static const value_string h450_ServiceApdus_vals[] = {
908 { 0, "rosApdus" },
909 { 0, NULL }
912 static const per_choice_t h450_ServiceApdus_choice[] = {
913 { 0, &hf_h450_rosApdus , ASN1_EXTENSION_ROOT , dissect_h450_T_rosApdus },
914 { 0, NULL, 0, NULL }
917 static int
918 dissect_h450_ServiceApdus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
919 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
920 ett_h450_ServiceApdus, h450_ServiceApdus_choice,
921 NULL);
923 return offset;
927 static const per_sequence_t h450_H4501SupplementaryService_sequence[] = {
928 { &hf_h450_networkFacilityExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_NetworkFacilityExtension },
929 { &hf_h450_interpretationApdu, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_InterpretationApdu },
930 { &hf_h450_serviceApdu , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_ServiceApdus },
931 { NULL, 0, 0, NULL }
934 static int
935 dissect_h450_H4501SupplementaryService(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
936 proto_item *hidden_item;
938 hidden_item = proto_tree_add_item(tree, proto_h450, tvb, offset, -1, ENC_NA);
939 proto_item_set_hidden(hidden_item);
940 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
941 ett_h450_H4501SupplementaryService, h450_H4501SupplementaryService_sequence);
943 return offset;
947 static const per_sequence_t h450_SEQUENCE_OF_AliasAddress_sequence_of[1] = {
948 { &hf_h450_destinationAddress_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
951 static int
952 dissect_h450_SEQUENCE_OF_AliasAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
953 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
954 ett_h450_SEQUENCE_OF_AliasAddress, h450_SEQUENCE_OF_AliasAddress_sequence_of);
956 return offset;
960 static const per_sequence_t h450_EndpointAddress_sequence[] = {
961 { &hf_h450_destinationAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_SEQUENCE_OF_AliasAddress },
962 { &hf_h450_remoteExtensionAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_AliasAddress },
963 { &hf_h450_destinationAddressPresentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_PresentationIndicator },
964 { &hf_h450_destinationAddressScreeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ScreeningIndicator },
965 { &hf_h450_remoteExtensionAddressPresentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_PresentationIndicator },
966 { &hf_h450_remoteExtensionAddressScreeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ScreeningIndicator },
967 { NULL, 0, 0, NULL }
970 static int
971 dissect_h450_EndpointAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
972 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
973 ett_h450_EndpointAddress, h450_EndpointAddress_sequence);
975 return offset;
980 static int
981 dissect_h450_SubaddressInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
982 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
983 1, 20, false, NULL);
985 return offset;
990 static int
991 dissect_h450_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
992 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
994 return offset;
998 static const per_sequence_t h450_UserSpecifiedSubaddress_sequence[] = {
999 { &hf_h450_subaddressInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_SubaddressInformation },
1000 { &hf_h450_oddCountIndicator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_BOOLEAN },
1001 { NULL, 0, 0, NULL }
1004 static int
1005 dissect_h450_UserSpecifiedSubaddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1006 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1007 ett_h450_UserSpecifiedSubaddress, h450_UserSpecifiedSubaddress_sequence);
1009 return offset;
1014 static int
1015 dissect_h450_NSAPSubaddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1016 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1017 1, 20, false, NULL);
1019 return offset;
1023 static const value_string h450_PartySubaddress_vals[] = {
1024 { 0, "userSpecifiedSubaddress" },
1025 { 1, "nsapSubaddress" },
1026 { 0, NULL }
1029 static const per_choice_t h450_PartySubaddress_choice[] = {
1030 { 0, &hf_h450_userSpecifiedSubaddress, ASN1_EXTENSION_ROOT , dissect_h450_UserSpecifiedSubaddress },
1031 { 1, &hf_h450_nsapSubaddress , ASN1_EXTENSION_ROOT , dissect_h450_NSAPSubaddress },
1032 { 0, NULL, 0, NULL }
1035 static int
1036 dissect_h450_PartySubaddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1037 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1038 ett_h450_PartySubaddress, h450_PartySubaddress_choice,
1039 NULL);
1041 return offset;
1046 static int
1047 dissect_h450_PresentationAllowedIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1048 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
1050 return offset;
1055 static int
1056 dissect_h450_H225InformationElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1057 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1058 NO_BOUND, NO_BOUND, false, NULL);
1060 return offset;
1065 static int
1066 dissect_h450_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1067 offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
1069 return offset;
1074 static int
1075 dissect_h450_T_extensionArgument(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1076 offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL);
1078 return offset;
1082 static const per_sequence_t h450_Extension_sequence[] = {
1083 { &hf_h450_extensionId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_OBJECT_IDENTIFIER },
1084 { &hf_h450_extensionArgument, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_T_extensionArgument },
1085 { NULL, 0, 0, NULL }
1088 static int
1089 dissect_h450_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1090 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1091 ett_h450_Extension, h450_Extension_sequence);
1093 return offset;
1096 /*--- PDUs ---*/
1098 static int dissect_h450_H4501SupplementaryService_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1099 int offset = 0;
1100 asn1_ctx_t asn1_ctx;
1101 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
1102 offset = dissect_h450_H4501SupplementaryService(tvb, offset, &asn1_ctx, tree, hf_h450_h450_H4501SupplementaryService_PDU);
1103 offset += 7; offset >>= 3;
1104 return offset;
1108 /* --- Module Call-Transfer-Operations --- --- --- */
1111 static const per_sequence_t h450_2_ExtensionSeq_sequence_of[1] = {
1112 { &hf_h450_2_ExtensionSeq_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_Extension },
1115 static int
1116 dissect_h450_2_ExtensionSeq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1117 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1118 ett_h450_2_ExtensionSeq, h450_2_ExtensionSeq_sequence_of);
1120 return offset;
1124 static const value_string h450_2_DummyArg_vals[] = {
1125 { 0, "extensionSeq" },
1126 { 1, "nonStandardData" },
1127 { 0, NULL }
1130 static const per_choice_t h450_2_DummyArg_choice[] = {
1131 { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq },
1132 { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1133 { 0, NULL, 0, NULL }
1136 static int
1137 dissect_h450_2_DummyArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1138 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1139 ett_h450_2_DummyArg, h450_2_DummyArg_choice,
1140 NULL);
1142 return offset;
1146 static const value_string h450_2_DummyRes_vals[] = {
1147 { 0, "extensionSeq" },
1148 { 1, "nonStandardData" },
1149 { 0, NULL }
1152 static const per_choice_t h450_2_DummyRes_choice[] = {
1153 { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq },
1154 { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1155 { 0, NULL, 0, NULL }
1158 static int
1159 dissect_h450_2_DummyRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1160 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1161 ett_h450_2_DummyRes, h450_2_DummyRes_choice,
1162 NULL);
1164 return offset;
1169 static int
1170 dissect_h450_2_CallIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1171 offset = dissect_per_NumericString(tvb, offset, actx, tree, hf_index,
1172 0, 4, false,
1173 NULL);
1175 return offset;
1179 static const value_string h450_2_T_cTInitiateArg_argumentExtension_vals[] = {
1180 { 0, "extensionSeq" },
1181 { 1, "nonStandardData" },
1182 { 0, NULL }
1185 static const per_choice_t h450_2_T_cTInitiateArg_argumentExtension_choice[] = {
1186 { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq },
1187 { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1188 { 0, NULL, 0, NULL }
1191 static int
1192 dissect_h450_2_T_cTInitiateArg_argumentExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1193 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1194 ett_h450_2_T_cTInitiateArg_argumentExtension, h450_2_T_cTInitiateArg_argumentExtension_choice,
1195 NULL);
1197 return offset;
1201 static const per_sequence_t h450_2_CTInitiateArg_sequence[] = {
1202 { &hf_h450_2_callIdentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_2_CallIdentity },
1203 { &hf_h450_2_reroutingNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1204 { &hf_h450_2_cTInitiateArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_T_cTInitiateArg_argumentExtension },
1205 { NULL, 0, 0, NULL }
1208 static int
1209 dissect_h450_2_CTInitiateArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1210 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1211 ett_h450_2_CTInitiateArg, h450_2_CTInitiateArg_sequence);
1213 return offset;
1217 static const value_string h450_2_T_cTSetupArg_argumentExtension_vals[] = {
1218 { 0, "extensionSeq" },
1219 { 1, "nonStandardData" },
1220 { 0, NULL }
1223 static const per_choice_t h450_2_T_cTSetupArg_argumentExtension_choice[] = {
1224 { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq },
1225 { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1226 { 0, NULL, 0, NULL }
1229 static int
1230 dissect_h450_2_T_cTSetupArg_argumentExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1231 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1232 ett_h450_2_T_cTSetupArg_argumentExtension, h450_2_T_cTSetupArg_argumentExtension_choice,
1233 NULL);
1235 return offset;
1239 static const per_sequence_t h450_2_CTSetupArg_sequence[] = {
1240 { &hf_h450_2_callIdentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_2_CallIdentity },
1241 { &hf_h450_2_transferringNumber, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress },
1242 { &hf_h450_2_cTSetupArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_T_cTSetupArg_argumentExtension },
1243 { NULL, 0, 0, NULL }
1246 static int
1247 dissect_h450_2_CTSetupArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1248 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1249 ett_h450_2_CTSetupArg, h450_2_CTSetupArg_sequence);
1251 return offset;
1255 static const value_string h450_2_T_resultExtension_vals[] = {
1256 { 0, "extensionSeq" },
1257 { 1, "nonStandardData" },
1258 { 0, NULL }
1261 static const per_choice_t h450_2_T_resultExtension_choice[] = {
1262 { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq },
1263 { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1264 { 0, NULL, 0, NULL }
1267 static int
1268 dissect_h450_2_T_resultExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1269 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1270 ett_h450_2_T_resultExtension, h450_2_T_resultExtension_choice,
1271 NULL);
1273 return offset;
1277 static const per_sequence_t h450_2_CTIdentifyRes_sequence[] = {
1278 { &hf_h450_2_callIdentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_2_CallIdentity },
1279 { &hf_h450_2_reroutingNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1280 { &hf_h450_2_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_T_resultExtension },
1281 { NULL, 0, 0, NULL }
1284 static int
1285 dissect_h450_2_CTIdentifyRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1286 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1287 ett_h450_2_CTIdentifyRes, h450_2_CTIdentifyRes_sequence);
1289 return offset;
1294 static int
1295 dissect_h450_2_BMPString_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1296 offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
1297 1, 128, false);
1299 return offset;
1303 static const value_string h450_2_T_cTUpdateArg_argumentExtension_vals[] = {
1304 { 0, "extensionSeq" },
1305 { 1, "nonStandardData" },
1306 { 0, NULL }
1309 static const per_choice_t h450_2_T_cTUpdateArg_argumentExtension_choice[] = {
1310 { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq },
1311 { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1312 { 0, NULL, 0, NULL }
1315 static int
1316 dissect_h450_2_T_cTUpdateArg_argumentExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1317 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1318 ett_h450_2_T_cTUpdateArg_argumentExtension, h450_2_T_cTUpdateArg_argumentExtension_choice,
1319 NULL);
1321 return offset;
1325 static const per_sequence_t h450_2_CTUpdateArg_sequence[] = {
1326 { &hf_h450_2_redirectionNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1327 { &hf_h450_2_redirectionInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_BMPString_SIZE_1_128 },
1328 { &hf_h450_2_basicCallInfoElements, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_H225InformationElement },
1329 { &hf_h450_2_cTUpdateArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_T_cTUpdateArg_argumentExtension },
1330 { NULL, 0, 0, NULL }
1333 static int
1334 dissect_h450_2_CTUpdateArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1335 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1336 ett_h450_2_CTUpdateArg, h450_2_CTUpdateArg_sequence);
1338 return offset;
1342 static const value_string h450_2_T_subaddressTransferArg_argumentExtension_vals[] = {
1343 { 0, "extensionSeq" },
1344 { 1, "nonStandardData" },
1345 { 0, NULL }
1348 static const per_choice_t h450_2_T_subaddressTransferArg_argumentExtension_choice[] = {
1349 { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq },
1350 { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1351 { 0, NULL, 0, NULL }
1354 static int
1355 dissect_h450_2_T_subaddressTransferArg_argumentExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1356 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1357 ett_h450_2_T_subaddressTransferArg_argumentExtension, h450_2_T_subaddressTransferArg_argumentExtension_choice,
1358 NULL);
1360 return offset;
1364 static const per_sequence_t h450_2_SubaddressTransferArg_sequence[] = {
1365 { &hf_h450_2_redirectionSubaddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_PartySubaddress },
1366 { &hf_h450_2_subaddressTransferArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_T_subaddressTransferArg_argumentExtension },
1367 { NULL, 0, 0, NULL }
1370 static int
1371 dissect_h450_2_SubaddressTransferArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1372 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1373 ett_h450_2_SubaddressTransferArg, h450_2_SubaddressTransferArg_sequence);
1375 return offset;
1379 static const value_string h450_2_EndDesignation_vals[] = {
1380 { 0, "primaryEnd" },
1381 { 1, "secondaryEnd" },
1382 { 0, NULL }
1386 static int
1387 dissect_h450_2_EndDesignation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1388 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1389 2, NULL, true, 0, NULL);
1391 return offset;
1395 static const value_string h450_2_CallStatus_vals[] = {
1396 { 0, "answered" },
1397 { 1, "alerting" },
1398 { 0, NULL }
1402 static int
1403 dissect_h450_2_CallStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1404 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1405 2, NULL, true, 0, NULL);
1407 return offset;
1411 static const value_string h450_2_T_cTCompleteArg_argumentExtension_vals[] = {
1412 { 0, "extensionSeq" },
1413 { 1, "nonStandardData" },
1414 { 0, NULL }
1417 static const per_choice_t h450_2_T_cTCompleteArg_argumentExtension_choice[] = {
1418 { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq },
1419 { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1420 { 0, NULL, 0, NULL }
1423 static int
1424 dissect_h450_2_T_cTCompleteArg_argumentExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1425 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1426 ett_h450_2_T_cTCompleteArg_argumentExtension, h450_2_T_cTCompleteArg_argumentExtension_choice,
1427 NULL);
1429 return offset;
1433 static const per_sequence_t h450_2_CTCompleteArg_sequence[] = {
1434 { &hf_h450_2_endDesignation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_2_EndDesignation },
1435 { &hf_h450_2_redirectionNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1436 { &hf_h450_2_basicCallInfoElements, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_H225InformationElement },
1437 { &hf_h450_2_redirectionInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_BMPString_SIZE_1_128 },
1438 { &hf_h450_2_callStatus , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_CallStatus },
1439 { &hf_h450_2_cTCompleteArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_T_cTCompleteArg_argumentExtension },
1440 { NULL, 0, 0, NULL }
1443 static int
1444 dissect_h450_2_CTCompleteArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1445 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1446 ett_h450_2_CTCompleteArg, h450_2_CTCompleteArg_sequence);
1448 return offset;
1452 static const value_string h450_2_T_cTActiveArg_argumentExtension_vals[] = {
1453 { 0, "extensionSeq" },
1454 { 1, "nonStandardData" },
1455 { 0, NULL }
1458 static const per_choice_t h450_2_T_cTActiveArg_argumentExtension_choice[] = {
1459 { 0, &hf_h450_2_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_2_ExtensionSeq },
1460 { 1, &hf_h450_2_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1461 { 0, NULL, 0, NULL }
1464 static int
1465 dissect_h450_2_T_cTActiveArg_argumentExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1466 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1467 ett_h450_2_T_cTActiveArg_argumentExtension, h450_2_T_cTActiveArg_argumentExtension_choice,
1468 NULL);
1470 return offset;
1474 static const per_sequence_t h450_2_CTActiveArg_sequence[] = {
1475 { &hf_h450_2_connectedAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1476 { &hf_h450_2_basicCallInfoElements, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_H225InformationElement },
1477 { &hf_h450_2_connectedInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_BMPString_SIZE_1_128 },
1478 { &hf_h450_2_cTActiveArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_2_T_cTActiveArg_argumentExtension },
1479 { NULL, 0, 0, NULL }
1482 static int
1483 dissect_h450_2_CTActiveArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1484 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1485 ett_h450_2_CTActiveArg, h450_2_CTActiveArg_sequence);
1487 return offset;
1491 static const value_string h450_2_PAR_unspecified_vals[] = {
1492 { 0, "extension" },
1493 { 1, "nonStandard" },
1494 { 0, NULL }
1497 static const per_choice_t h450_2_PAR_unspecified_choice[] = {
1498 { 0, &hf_h450_2_unspecified_extension, ASN1_NO_EXTENSIONS , dissect_h450_Extension },
1499 { 1, &hf_h450_2_nonStandard , ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1500 { 0, NULL, 0, NULL }
1503 static int
1504 dissect_h450_2_PAR_unspecified(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1505 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1506 ett_h450_2_PAR_unspecified, h450_2_PAR_unspecified_choice,
1507 NULL);
1509 return offset;
1512 /*--- PDUs ---*/
1514 static int dissect_h450_2_DummyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1515 int offset = 0;
1516 asn1_ctx_t asn1_ctx;
1517 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
1518 offset = dissect_h450_2_DummyArg(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_DummyArg_PDU);
1519 offset += 7; offset >>= 3;
1520 return offset;
1522 static int dissect_h450_2_CTIdentifyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1523 int offset = 0;
1524 asn1_ctx_t asn1_ctx;
1525 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
1526 offset = dissect_h450_2_CTIdentifyRes(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_CTIdentifyRes_PDU);
1527 offset += 7; offset >>= 3;
1528 return offset;
1530 static int dissect_h450_2_CTInitiateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1531 int offset = 0;
1532 asn1_ctx_t asn1_ctx;
1533 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
1534 offset = dissect_h450_2_CTInitiateArg(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_CTInitiateArg_PDU);
1535 offset += 7; offset >>= 3;
1536 return offset;
1538 static int dissect_h450_2_DummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1539 int offset = 0;
1540 asn1_ctx_t asn1_ctx;
1541 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
1542 offset = dissect_h450_2_DummyRes(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_DummyRes_PDU);
1543 offset += 7; offset >>= 3;
1544 return offset;
1546 static int dissect_h450_2_CTSetupArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1547 int offset = 0;
1548 asn1_ctx_t asn1_ctx;
1549 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
1550 offset = dissect_h450_2_CTSetupArg(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_CTSetupArg_PDU);
1551 offset += 7; offset >>= 3;
1552 return offset;
1554 static int dissect_h450_2_CTUpdateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1555 int offset = 0;
1556 asn1_ctx_t asn1_ctx;
1557 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
1558 offset = dissect_h450_2_CTUpdateArg(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_CTUpdateArg_PDU);
1559 offset += 7; offset >>= 3;
1560 return offset;
1562 static int dissect_h450_2_SubaddressTransferArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1563 int offset = 0;
1564 asn1_ctx_t asn1_ctx;
1565 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
1566 offset = dissect_h450_2_SubaddressTransferArg(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_SubaddressTransferArg_PDU);
1567 offset += 7; offset >>= 3;
1568 return offset;
1570 static int dissect_h450_2_CTCompleteArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1571 int offset = 0;
1572 asn1_ctx_t asn1_ctx;
1573 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
1574 offset = dissect_h450_2_CTCompleteArg(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_CTCompleteArg_PDU);
1575 offset += 7; offset >>= 3;
1576 return offset;
1578 static int dissect_h450_2_CTActiveArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1579 int offset = 0;
1580 asn1_ctx_t asn1_ctx;
1581 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
1582 offset = dissect_h450_2_CTActiveArg(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_CTActiveArg_PDU);
1583 offset += 7; offset >>= 3;
1584 return offset;
1586 static int dissect_h450_2_PAR_unspecified_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1587 int offset = 0;
1588 asn1_ctx_t asn1_ctx;
1589 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
1590 offset = dissect_h450_2_PAR_unspecified(tvb, offset, &asn1_ctx, tree, hf_h450_2_h450_2_PAR_unspecified_PDU);
1591 offset += 7; offset >>= 3;
1592 return offset;
1596 /* --- Module Call-Diversion-Operations --- --- --- */
1599 static const value_string h450_3_Procedure_vals[] = {
1600 { 0, "cfu" },
1601 { 1, "cfb" },
1602 { 2, "cfnr" },
1603 { 0, NULL }
1607 static int
1608 dissect_h450_3_Procedure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1609 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1610 3, NULL, true, 0, NULL);
1612 return offset;
1616 static const value_string h450_3_BasicService_vals[] = {
1617 { 0, "allServices" },
1618 { 0, NULL }
1622 static int
1623 dissect_h450_3_BasicService(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1624 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1625 1, NULL, true, 0, NULL);
1627 return offset;
1631 static const per_sequence_t h450_3_ExtensionSeq_sequence_of[1] = {
1632 { &hf_h450_3_ExtensionSeq_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_Extension },
1635 static int
1636 dissect_h450_3_ExtensionSeq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1637 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1638 ett_h450_3_ExtensionSeq, h450_3_ExtensionSeq_sequence_of);
1640 return offset;
1644 static const value_string h450_3_ActivateDiversionQArg_extension_vals[] = {
1645 { 0, "extensionSeq" },
1646 { 1, "nonStandardData" },
1647 { 0, NULL }
1650 static const per_choice_t h450_3_ActivateDiversionQArg_extension_choice[] = {
1651 { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq },
1652 { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1653 { 0, NULL, 0, NULL }
1656 static int
1657 dissect_h450_3_ActivateDiversionQArg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1658 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1659 ett_h450_3_ActivateDiversionQArg_extension, h450_3_ActivateDiversionQArg_extension_choice,
1660 NULL);
1662 return offset;
1666 static const per_sequence_t h450_3_ARG_activateDiversionQ_sequence[] = {
1667 { &hf_h450_3_procedure , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_Procedure },
1668 { &hf_h450_3_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_BasicService },
1669 { &hf_h450_3_divertedToAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1670 { &hf_h450_3_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1671 { &hf_h450_3_activatingUserNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1672 { &hf_h450_3_activateDiversionQArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_ActivateDiversionQArg_extension },
1673 { NULL, 0, 0, NULL }
1676 static int
1677 dissect_h450_3_ARG_activateDiversionQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1678 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1679 ett_h450_3_ARG_activateDiversionQ, h450_3_ARG_activateDiversionQ_sequence);
1681 return offset;
1685 static const value_string h450_3_RES_activateDiversionQ_vals[] = {
1686 { 0, "extensionSeq" },
1687 { 1, "nonStandardData" },
1688 { 0, NULL }
1691 static const per_choice_t h450_3_RES_activateDiversionQ_choice[] = {
1692 { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq },
1693 { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1694 { 0, NULL, 0, NULL }
1697 static int
1698 dissect_h450_3_RES_activateDiversionQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1699 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1700 ett_h450_3_RES_activateDiversionQ, h450_3_RES_activateDiversionQ_choice,
1701 NULL);
1703 return offset;
1707 static const value_string h450_3_DeactivateDiversionQArg_extension_vals[] = {
1708 { 0, "extensionSeq" },
1709 { 1, "nonStandardData" },
1710 { 0, NULL }
1713 static const per_choice_t h450_3_DeactivateDiversionQArg_extension_choice[] = {
1714 { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq },
1715 { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1716 { 0, NULL, 0, NULL }
1719 static int
1720 dissect_h450_3_DeactivateDiversionQArg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1721 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1722 ett_h450_3_DeactivateDiversionQArg_extension, h450_3_DeactivateDiversionQArg_extension_choice,
1723 NULL);
1725 return offset;
1729 static const per_sequence_t h450_3_ARG_deactivateDiversionQ_sequence[] = {
1730 { &hf_h450_3_procedure , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_Procedure },
1731 { &hf_h450_3_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_BasicService },
1732 { &hf_h450_3_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1733 { &hf_h450_3_deactivatingUserNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1734 { &hf_h450_3_deactivateDiversionQArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_DeactivateDiversionQArg_extension },
1735 { NULL, 0, 0, NULL }
1738 static int
1739 dissect_h450_3_ARG_deactivateDiversionQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1740 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1741 ett_h450_3_ARG_deactivateDiversionQ, h450_3_ARG_deactivateDiversionQ_sequence);
1743 return offset;
1747 static const value_string h450_3_RES_deactivateDiversionQ_vals[] = {
1748 { 0, "extensionSeq" },
1749 { 1, "nonStandardData" },
1750 { 0, NULL }
1753 static const per_choice_t h450_3_RES_deactivateDiversionQ_choice[] = {
1754 { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq },
1755 { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1756 { 0, NULL, 0, NULL }
1759 static int
1760 dissect_h450_3_RES_deactivateDiversionQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1761 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1762 ett_h450_3_RES_deactivateDiversionQ, h450_3_RES_deactivateDiversionQ_choice,
1763 NULL);
1765 return offset;
1769 static const value_string h450_3_InterrogateDiversionQ_extension_vals[] = {
1770 { 0, "extensionSeq" },
1771 { 1, "nonStandardData" },
1772 { 0, NULL }
1775 static const per_choice_t h450_3_InterrogateDiversionQ_extension_choice[] = {
1776 { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq },
1777 { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1778 { 0, NULL, 0, NULL }
1781 static int
1782 dissect_h450_3_InterrogateDiversionQ_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1783 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1784 ett_h450_3_InterrogateDiversionQ_extension, h450_3_InterrogateDiversionQ_extension_choice,
1785 NULL);
1787 return offset;
1791 static const per_sequence_t h450_3_ARG_interrogateDiversionQ_sequence[] = {
1792 { &hf_h450_3_procedure , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_Procedure },
1793 { &hf_h450_3_basicService , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BasicService },
1794 { &hf_h450_3_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1795 { &hf_h450_3_interrogatingUserNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1796 { &hf_h450_3_interrogateDiversionQ_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_InterrogateDiversionQ_extension },
1797 { NULL, 0, 0, NULL }
1800 static int
1801 dissect_h450_3_ARG_interrogateDiversionQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1802 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1803 ett_h450_3_ARG_interrogateDiversionQ, h450_3_ARG_interrogateDiversionQ_sequence);
1805 return offset;
1809 static const value_string h450_3_CheckRestrictionArg_extension_vals[] = {
1810 { 0, "extensionSeq" },
1811 { 1, "nonStandardData" },
1812 { 0, NULL }
1815 static const per_choice_t h450_3_CheckRestrictionArg_extension_choice[] = {
1816 { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq },
1817 { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1818 { 0, NULL, 0, NULL }
1821 static int
1822 dissect_h450_3_CheckRestrictionArg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1823 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1824 ett_h450_3_CheckRestrictionArg_extension, h450_3_CheckRestrictionArg_extension_choice,
1825 NULL);
1827 return offset;
1831 static const per_sequence_t h450_3_ARG_checkRestriction_sequence[] = {
1832 { &hf_h450_3_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1833 { &hf_h450_3_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_BasicService },
1834 { &hf_h450_3_divertedToNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1835 { &hf_h450_3_checkRestrictionArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_CheckRestrictionArg_extension },
1836 { NULL, 0, 0, NULL }
1839 static int
1840 dissect_h450_3_ARG_checkRestriction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1841 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1842 ett_h450_3_ARG_checkRestriction, h450_3_ARG_checkRestriction_sequence);
1844 return offset;
1848 static const value_string h450_3_RES_checkRestriction_vals[] = {
1849 { 0, "extensionSeq" },
1850 { 1, "nonStandardData" },
1851 { 0, NULL }
1854 static const per_choice_t h450_3_RES_checkRestriction_choice[] = {
1855 { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq },
1856 { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1857 { 0, NULL, 0, NULL }
1860 static int
1861 dissect_h450_3_RES_checkRestriction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1862 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1863 ett_h450_3_RES_checkRestriction, h450_3_RES_checkRestriction_choice,
1864 NULL);
1866 return offset;
1870 static const value_string h450_3_DiversionReason_vals[] = {
1871 { 0, "unknown" },
1872 { 1, "cfu" },
1873 { 2, "cfb" },
1874 { 3, "cfnr" },
1875 { 0, NULL }
1879 static int
1880 dissect_h450_3_DiversionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1881 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1882 4, NULL, true, 0, NULL);
1884 return offset;
1889 static int
1890 dissect_h450_3_INTEGER_1_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1891 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1892 1U, 15U, NULL, false);
1894 return offset;
1898 static const value_string h450_3_SubscriptionOption_vals[] = {
1899 { 0, "noNotification" },
1900 { 1, "notificationWithoutDivertedToNr" },
1901 { 2, "notificationWithDivertedToNr" },
1902 { 0, NULL }
1906 static int
1907 dissect_h450_3_SubscriptionOption(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1908 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1909 3, NULL, true, 0, NULL);
1911 return offset;
1916 static int
1917 dissect_h450_3_BMPString_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1918 offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
1919 1, 128, false);
1921 return offset;
1925 static const value_string h450_3_CallReroutingArg_extension_vals[] = {
1926 { 0, "extensionSeq" },
1927 { 1, "nonStandardData" },
1928 { 0, NULL }
1931 static const per_choice_t h450_3_CallReroutingArg_extension_choice[] = {
1932 { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq },
1933 { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1934 { 0, NULL, 0, NULL }
1937 static int
1938 dissect_h450_3_CallReroutingArg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1939 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1940 ett_h450_3_CallReroutingArg_extension, h450_3_CallReroutingArg_extension_choice,
1941 NULL);
1943 return offset;
1947 static const per_sequence_t h450_3_ARG_callRerouting_sequence[] = {
1948 { &hf_h450_3_reroutingReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_DiversionReason },
1949 { &hf_h450_3_originalReroutingReason, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_DiversionReason },
1950 { &hf_h450_3_calledAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1951 { &hf_h450_3_diversionCounter, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_INTEGER_1_15 },
1952 { &hf_h450_3_h225InfoElement, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_H225InformationElement },
1953 { &hf_h450_3_lastReroutingNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1954 { &hf_h450_3_subscriptionOption, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_SubscriptionOption },
1955 { &hf_h450_3_callingPartySubaddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_PartySubaddress },
1956 { &hf_h450_3_callingNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1957 { &hf_h450_3_callingInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 },
1958 { &hf_h450_3_originalCalledNr, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress },
1959 { &hf_h450_3_redirectingInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 },
1960 { &hf_h450_3_originalCalledInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 },
1961 { &hf_h450_3_callReroutingArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_CallReroutingArg_extension },
1962 { NULL, 0, 0, NULL }
1965 static int
1966 dissect_h450_3_ARG_callRerouting(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1967 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1968 ett_h450_3_ARG_callRerouting, h450_3_ARG_callRerouting_sequence);
1970 return offset;
1974 static const value_string h450_3_RES_callRerouting_vals[] = {
1975 { 0, "extensionSeq" },
1976 { 1, "nonStandardData" },
1977 { 0, NULL }
1980 static const per_choice_t h450_3_RES_callRerouting_choice[] = {
1981 { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq },
1982 { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
1983 { 0, NULL, 0, NULL }
1986 static int
1987 dissect_h450_3_RES_callRerouting(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1988 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1989 ett_h450_3_RES_callRerouting, h450_3_RES_callRerouting_choice,
1990 NULL);
1992 return offset;
1996 static const value_string h450_3_DivertingLegInformation1Arg_extension_vals[] = {
1997 { 0, "extensionSeq" },
1998 { 1, "nonStandardData" },
1999 { 0, NULL }
2002 static const per_choice_t h450_3_DivertingLegInformation1Arg_extension_choice[] = {
2003 { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq },
2004 { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
2005 { 0, NULL, 0, NULL }
2008 static int
2009 dissect_h450_3_DivertingLegInformation1Arg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2010 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2011 ett_h450_3_DivertingLegInformation1Arg_extension, h450_3_DivertingLegInformation1Arg_extension_choice,
2012 NULL);
2014 return offset;
2018 static const per_sequence_t h450_3_ARG_divertingLegInformation1_sequence[] = {
2019 { &hf_h450_3_diversionReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_DiversionReason },
2020 { &hf_h450_3_subscriptionOption, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_SubscriptionOption },
2021 { &hf_h450_3_nominatedNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2022 { &hf_h450_3_nominatedInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 },
2023 { &hf_h450_3_redirectingNr, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress },
2024 { &hf_h450_3_redirectingInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 },
2025 { &hf_h450_3_divertingLegInformation1Arg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_DivertingLegInformation1Arg_extension },
2026 { NULL, 0, 0, NULL }
2029 static int
2030 dissect_h450_3_ARG_divertingLegInformation1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2031 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2032 ett_h450_3_ARG_divertingLegInformation1, h450_3_ARG_divertingLegInformation1_sequence);
2034 return offset;
2038 static const value_string h450_3_DivertingLegInformation2Arg_extension_vals[] = {
2039 { 0, "extensionSeq" },
2040 { 1, "nonStandardData" },
2041 { 0, NULL }
2044 static const per_choice_t h450_3_DivertingLegInformation2Arg_extension_choice[] = {
2045 { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq },
2046 { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
2047 { 0, NULL, 0, NULL }
2050 static int
2051 dissect_h450_3_DivertingLegInformation2Arg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2052 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2053 ett_h450_3_DivertingLegInformation2Arg_extension, h450_3_DivertingLegInformation2Arg_extension_choice,
2054 NULL);
2056 return offset;
2060 static const per_sequence_t h450_3_ARG_divertingLegInformation2_sequence[] = {
2061 { &hf_h450_3_diversionCounter, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_INTEGER_1_15 },
2062 { &hf_h450_3_diversionReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_DiversionReason },
2063 { &hf_h450_3_originalDiversionReason, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_DiversionReason },
2064 { &hf_h450_3_divertingNr , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress },
2065 { &hf_h450_3_originalCalledNr, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress },
2066 { &hf_h450_3_redirectingInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 },
2067 { &hf_h450_3_originalCalledInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 },
2068 { &hf_h450_3_divertingLegInformation2Arg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_DivertingLegInformation2Arg_extension },
2069 { NULL, 0, 0, NULL }
2072 static int
2073 dissect_h450_3_ARG_divertingLegInformation2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2074 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2075 ett_h450_3_ARG_divertingLegInformation2, h450_3_ARG_divertingLegInformation2_sequence);
2077 return offset;
2081 static const value_string h450_3_DivertingLegInformation3Arg_extension_vals[] = {
2082 { 0, "extensionSeq" },
2083 { 1, "nonStandardData" },
2084 { 0, NULL }
2087 static const per_choice_t h450_3_DivertingLegInformation3Arg_extension_choice[] = {
2088 { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq },
2089 { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
2090 { 0, NULL, 0, NULL }
2093 static int
2094 dissect_h450_3_DivertingLegInformation3Arg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2095 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2096 ett_h450_3_DivertingLegInformation3Arg_extension, h450_3_DivertingLegInformation3Arg_extension_choice,
2097 NULL);
2099 return offset;
2103 static const per_sequence_t h450_3_ARG_divertingLegInformation3_sequence[] = {
2104 { &hf_h450_3_presentationAllowedIndicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_PresentationAllowedIndicator },
2105 { &hf_h450_3_redirectionNr, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress },
2106 { &hf_h450_3_redirectionInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 },
2107 { &hf_h450_3_divertingLegInformation3Arg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_DivertingLegInformation3Arg_extension },
2108 { NULL, 0, 0, NULL }
2111 static int
2112 dissect_h450_3_ARG_divertingLegInformation3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2113 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2114 ett_h450_3_ARG_divertingLegInformation3, h450_3_ARG_divertingLegInformation3_sequence);
2116 return offset;
2120 static const value_string h450_3_DivertingLegInformation4Arg_extension_vals[] = {
2121 { 0, "extensionSeq" },
2122 { 1, "nonStandardData" },
2123 { 0, NULL }
2126 static const per_choice_t h450_3_DivertingLegInformation4Arg_extension_choice[] = {
2127 { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq },
2128 { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
2129 { 0, NULL, 0, NULL }
2132 static int
2133 dissect_h450_3_DivertingLegInformation4Arg_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2134 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2135 ett_h450_3_DivertingLegInformation4Arg_extension, h450_3_DivertingLegInformation4Arg_extension_choice,
2136 NULL);
2138 return offset;
2142 static const per_sequence_t h450_3_ARG_divertingLegInformation4_sequence[] = {
2143 { &hf_h450_3_diversionReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_DiversionReason },
2144 { &hf_h450_3_subscriptionOption, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_SubscriptionOption },
2145 { &hf_h450_3_callingNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2146 { &hf_h450_3_callingInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 },
2147 { &hf_h450_3_nominatedNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2148 { &hf_h450_3_nominatedInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BMPString_SIZE_1_128 },
2149 { &hf_h450_3_divertingLegInformation4Arg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_DivertingLegInformation4Arg_extension },
2150 { NULL, 0, 0, NULL }
2153 static int
2154 dissect_h450_3_ARG_divertingLegInformation4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2155 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2156 ett_h450_3_ARG_divertingLegInformation4, h450_3_ARG_divertingLegInformation4_sequence);
2158 return offset;
2162 static const value_string h450_3_ARG_cfnrDivertedLegFailed_vals[] = {
2163 { 0, "extensionSeq" },
2164 { 1, "nonStandardData" },
2165 { 0, NULL }
2168 static const per_choice_t h450_3_ARG_cfnrDivertedLegFailed_choice[] = {
2169 { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq },
2170 { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
2171 { 0, NULL, 0, NULL }
2174 static int
2175 dissect_h450_3_ARG_cfnrDivertedLegFailed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2176 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2177 ett_h450_3_ARG_cfnrDivertedLegFailed, h450_3_ARG_cfnrDivertedLegFailed_choice,
2178 NULL);
2180 return offset;
2185 static int
2186 dissect_h450_3_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2187 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
2189 return offset;
2193 static const value_string h450_3_IntResult_extension_vals[] = {
2194 { 0, "extensionSeq" },
2195 { 1, "nonStandardData" },
2196 { 0, NULL }
2199 static const per_choice_t h450_3_IntResult_extension_choice[] = {
2200 { 0, &hf_h450_3_extensionSeq , ASN1_NO_EXTENSIONS , dissect_h450_3_ExtensionSeq },
2201 { 1, &hf_h450_3_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
2202 { 0, NULL, 0, NULL }
2205 static int
2206 dissect_h450_3_IntResult_extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2207 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2208 ett_h450_3_IntResult_extension, h450_3_IntResult_extension_choice,
2209 NULL);
2211 return offset;
2215 static const per_sequence_t h450_3_IntResult_sequence[] = {
2216 { &hf_h450_3_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2217 { &hf_h450_3_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_BasicService },
2218 { &hf_h450_3_procedure , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_3_Procedure },
2219 { &hf_h450_3_divertedToAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2220 { &hf_h450_3_remoteEnabled, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_BOOLEAN },
2221 { &hf_h450_3_intResult_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_3_IntResult_extension },
2222 { NULL, 0, 0, NULL }
2225 static int
2226 dissect_h450_3_IntResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2227 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2228 ett_h450_3_IntResult, h450_3_IntResult_sequence);
2230 return offset;
2234 static const per_sequence_t h450_3_IntResultList_set_of[1] = {
2235 { &hf_h450_3_IntResultList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_3_IntResult },
2238 static int
2239 dissect_h450_3_IntResultList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2240 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
2241 ett_h450_3_IntResultList, h450_3_IntResultList_set_of,
2242 0, 29, false);
2244 return offset;
2248 static const value_string h450_3_PAR_unspecified_vals[] = {
2249 { 0, "extension" },
2250 { 1, "nonStandard" },
2251 { 0, NULL }
2254 static const per_choice_t h450_3_PAR_unspecified_choice[] = {
2255 { 0, &hf_h450_3_unspecified_extension, ASN1_NO_EXTENSIONS , dissect_h450_Extension },
2256 { 1, &hf_h450_3_nonStandard , ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
2257 { 0, NULL, 0, NULL }
2260 static int
2261 dissect_h450_3_PAR_unspecified(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2262 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2263 ett_h450_3_PAR_unspecified, h450_3_PAR_unspecified_choice,
2264 NULL);
2266 return offset;
2269 /*--- PDUs ---*/
2271 static int dissect_h450_3_ARG_activateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2272 int offset = 0;
2273 asn1_ctx_t asn1_ctx;
2274 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2275 offset = dissect_h450_3_ARG_activateDiversionQ(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_activateDiversionQ_PDU);
2276 offset += 7; offset >>= 3;
2277 return offset;
2279 static int dissect_h450_3_RES_activateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2280 int offset = 0;
2281 asn1_ctx_t asn1_ctx;
2282 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2283 offset = dissect_h450_3_RES_activateDiversionQ(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_RES_activateDiversionQ_PDU);
2284 offset += 7; offset >>= 3;
2285 return offset;
2287 static int dissect_h450_3_ARG_deactivateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2288 int offset = 0;
2289 asn1_ctx_t asn1_ctx;
2290 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2291 offset = dissect_h450_3_ARG_deactivateDiversionQ(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_deactivateDiversionQ_PDU);
2292 offset += 7; offset >>= 3;
2293 return offset;
2295 static int dissect_h450_3_RES_deactivateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2296 int offset = 0;
2297 asn1_ctx_t asn1_ctx;
2298 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2299 offset = dissect_h450_3_RES_deactivateDiversionQ(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_RES_deactivateDiversionQ_PDU);
2300 offset += 7; offset >>= 3;
2301 return offset;
2303 static int dissect_h450_3_ARG_interrogateDiversionQ_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2304 int offset = 0;
2305 asn1_ctx_t asn1_ctx;
2306 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2307 offset = dissect_h450_3_ARG_interrogateDiversionQ(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_interrogateDiversionQ_PDU);
2308 offset += 7; offset >>= 3;
2309 return offset;
2311 static int dissect_h450_3_IntResultList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2312 int offset = 0;
2313 asn1_ctx_t asn1_ctx;
2314 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2315 offset = dissect_h450_3_IntResultList(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_IntResultList_PDU);
2316 offset += 7; offset >>= 3;
2317 return offset;
2319 static int dissect_h450_3_ARG_checkRestriction_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2320 int offset = 0;
2321 asn1_ctx_t asn1_ctx;
2322 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2323 offset = dissect_h450_3_ARG_checkRestriction(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_checkRestriction_PDU);
2324 offset += 7; offset >>= 3;
2325 return offset;
2327 static int dissect_h450_3_RES_checkRestriction_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2328 int offset = 0;
2329 asn1_ctx_t asn1_ctx;
2330 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2331 offset = dissect_h450_3_RES_checkRestriction(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_RES_checkRestriction_PDU);
2332 offset += 7; offset >>= 3;
2333 return offset;
2335 static int dissect_h450_3_ARG_callRerouting_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2336 int offset = 0;
2337 asn1_ctx_t asn1_ctx;
2338 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2339 offset = dissect_h450_3_ARG_callRerouting(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_callRerouting_PDU);
2340 offset += 7; offset >>= 3;
2341 return offset;
2343 static int dissect_h450_3_RES_callRerouting_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2344 int offset = 0;
2345 asn1_ctx_t asn1_ctx;
2346 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2347 offset = dissect_h450_3_RES_callRerouting(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_RES_callRerouting_PDU);
2348 offset += 7; offset >>= 3;
2349 return offset;
2351 static int dissect_h450_3_ARG_divertingLegInformation1_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2352 int offset = 0;
2353 asn1_ctx_t asn1_ctx;
2354 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2355 offset = dissect_h450_3_ARG_divertingLegInformation1(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_divertingLegInformation1_PDU);
2356 offset += 7; offset >>= 3;
2357 return offset;
2359 static int dissect_h450_3_ARG_divertingLegInformation2_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2360 int offset = 0;
2361 asn1_ctx_t asn1_ctx;
2362 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2363 offset = dissect_h450_3_ARG_divertingLegInformation2(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_divertingLegInformation2_PDU);
2364 offset += 7; offset >>= 3;
2365 return offset;
2367 static int dissect_h450_3_ARG_divertingLegInformation3_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2368 int offset = 0;
2369 asn1_ctx_t asn1_ctx;
2370 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2371 offset = dissect_h450_3_ARG_divertingLegInformation3(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_divertingLegInformation3_PDU);
2372 offset += 7; offset >>= 3;
2373 return offset;
2375 static int dissect_h450_3_ARG_divertingLegInformation4_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2376 int offset = 0;
2377 asn1_ctx_t asn1_ctx;
2378 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2379 offset = dissect_h450_3_ARG_divertingLegInformation4(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_divertingLegInformation4_PDU);
2380 offset += 7; offset >>= 3;
2381 return offset;
2383 static int dissect_h450_3_ARG_cfnrDivertedLegFailed_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2384 int offset = 0;
2385 asn1_ctx_t asn1_ctx;
2386 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2387 offset = dissect_h450_3_ARG_cfnrDivertedLegFailed(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_ARG_cfnrDivertedLegFailed_PDU);
2388 offset += 7; offset >>= 3;
2389 return offset;
2391 static int dissect_h450_3_PAR_unspecified_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2392 int offset = 0;
2393 asn1_ctx_t asn1_ctx;
2394 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2395 offset = dissect_h450_3_PAR_unspecified(tvb, offset, &asn1_ctx, tree, hf_h450_3_h450_3_PAR_unspecified_PDU);
2396 offset += 7; offset >>= 3;
2397 return offset;
2401 /* --- Module Call-Hold-Operations --- --- --- */
2404 static const value_string h450_4_MixedExtension_vals[] = {
2405 { 0, "extension" },
2406 { 1, "nonStandardData" },
2407 { 0, NULL }
2410 static const per_choice_t h450_4_MixedExtension_choice[] = {
2411 { 0, &hf_h450_4_mixedExtension_extension, ASN1_NO_EXTENSIONS , dissect_h450_Extension },
2412 { 1, &hf_h450_4_nonStandardData, ASN1_NO_EXTENSIONS , dissect_h225_NonStandardParameter },
2413 { 0, NULL, 0, NULL }
2416 static int
2417 dissect_h450_4_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2418 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2419 ett_h450_4_MixedExtension, h450_4_MixedExtension_choice,
2420 NULL);
2422 return offset;
2426 static const per_sequence_t h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = {
2427 { &hf_h450_4_holdNotificArg_extensionArg_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension },
2430 static int
2431 dissect_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2432 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2433 ett_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of,
2434 0, 255, false);
2436 return offset;
2440 static const per_sequence_t h450_4_HoldNotificArg_sequence[] = {
2441 { &hf_h450_4_holdNotificArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2442 { NULL, 0, 0, NULL }
2445 static int
2446 dissect_h450_4_HoldNotificArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2447 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2448 ett_h450_4_HoldNotificArg, h450_4_HoldNotificArg_sequence);
2450 return offset;
2454 static const per_sequence_t h450_4_RetrieveNotificArg_sequence[] = {
2455 { &hf_h450_4_retrieveNotificArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2456 { NULL, 0, 0, NULL }
2459 static int
2460 dissect_h450_4_RetrieveNotificArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2461 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2462 ett_h450_4_RetrieveNotificArg, h450_4_RetrieveNotificArg_sequence);
2464 return offset;
2468 static const per_sequence_t h450_4_RemoteHoldArg_sequence[] = {
2469 { &hf_h450_4_remoteHoldArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2470 { NULL, 0, 0, NULL }
2473 static int
2474 dissect_h450_4_RemoteHoldArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2475 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2476 ett_h450_4_RemoteHoldArg, h450_4_RemoteHoldArg_sequence);
2478 return offset;
2482 static const per_sequence_t h450_4_RemoteHoldRes_sequence[] = {
2483 { &hf_h450_4_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2484 { NULL, 0, 0, NULL }
2487 static int
2488 dissect_h450_4_RemoteHoldRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2489 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2490 ett_h450_4_RemoteHoldRes, h450_4_RemoteHoldRes_sequence);
2492 return offset;
2496 static const per_sequence_t h450_4_RemoteRetrieveArg_sequence[] = {
2497 { &hf_h450_4_remoteRetrieveArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2498 { NULL, 0, 0, NULL }
2501 static int
2502 dissect_h450_4_RemoteRetrieveArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2503 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2504 ett_h450_4_RemoteRetrieveArg, h450_4_RemoteRetrieveArg_sequence);
2506 return offset;
2510 static const per_sequence_t h450_4_RemoteRetrieveRes_sequence[] = {
2511 { &hf_h450_4_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2512 { NULL, 0, 0, NULL }
2515 static int
2516 dissect_h450_4_RemoteRetrieveRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2517 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2518 ett_h450_4_RemoteRetrieveRes, h450_4_RemoteRetrieveRes_sequence);
2520 return offset;
2524 static const per_sequence_t h450_4_PAR_undefined_sequence_of[1] = {
2525 { &hf_h450_4_PAR_undefined_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension },
2528 static int
2529 dissect_h450_4_PAR_undefined(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2530 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2531 ett_h450_4_PAR_undefined, h450_4_PAR_undefined_sequence_of,
2532 0, 255, false);
2534 return offset;
2537 /*--- PDUs ---*/
2539 static int dissect_h450_4_HoldNotificArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2540 int offset = 0;
2541 asn1_ctx_t asn1_ctx;
2542 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2543 offset = dissect_h450_4_HoldNotificArg(tvb, offset, &asn1_ctx, tree, hf_h450_4_h450_4_HoldNotificArg_PDU);
2544 offset += 7; offset >>= 3;
2545 return offset;
2547 static int dissect_h450_4_RetrieveNotificArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2548 int offset = 0;
2549 asn1_ctx_t asn1_ctx;
2550 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2551 offset = dissect_h450_4_RetrieveNotificArg(tvb, offset, &asn1_ctx, tree, hf_h450_4_h450_4_RetrieveNotificArg_PDU);
2552 offset += 7; offset >>= 3;
2553 return offset;
2555 static int dissect_h450_4_RemoteHoldArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2556 int offset = 0;
2557 asn1_ctx_t asn1_ctx;
2558 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2559 offset = dissect_h450_4_RemoteHoldArg(tvb, offset, &asn1_ctx, tree, hf_h450_4_h450_4_RemoteHoldArg_PDU);
2560 offset += 7; offset >>= 3;
2561 return offset;
2563 static int dissect_h450_4_RemoteHoldRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2564 int offset = 0;
2565 asn1_ctx_t asn1_ctx;
2566 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2567 offset = dissect_h450_4_RemoteHoldRes(tvb, offset, &asn1_ctx, tree, hf_h450_4_h450_4_RemoteHoldRes_PDU);
2568 offset += 7; offset >>= 3;
2569 return offset;
2571 static int dissect_h450_4_RemoteRetrieveArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2572 int offset = 0;
2573 asn1_ctx_t asn1_ctx;
2574 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2575 offset = dissect_h450_4_RemoteRetrieveArg(tvb, offset, &asn1_ctx, tree, hf_h450_4_h450_4_RemoteRetrieveArg_PDU);
2576 offset += 7; offset >>= 3;
2577 return offset;
2579 static int dissect_h450_4_RemoteRetrieveRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2580 int offset = 0;
2581 asn1_ctx_t asn1_ctx;
2582 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2583 offset = dissect_h450_4_RemoteRetrieveRes(tvb, offset, &asn1_ctx, tree, hf_h450_4_h450_4_RemoteRetrieveRes_PDU);
2584 offset += 7; offset >>= 3;
2585 return offset;
2587 static int dissect_h450_4_PAR_undefined_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2588 int offset = 0;
2589 asn1_ctx_t asn1_ctx;
2590 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2591 offset = dissect_h450_4_PAR_undefined(tvb, offset, &asn1_ctx, tree, hf_h450_4_h450_4_PAR_undefined_PDU);
2592 offset += 7; offset >>= 3;
2593 return offset;
2597 /* --- Module Call-Park-Pickup-Operations --- --- --- */
2601 static int
2602 dissect_h450_5_ParkedToPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2603 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2604 0U, 65535U, NULL, false);
2606 return offset;
2610 static const per_sequence_t h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = {
2611 { &hf_h450_5_cpRequestArg_extensionArg_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension },
2614 static int
2615 dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2616 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2617 ett_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of,
2618 0, 255, false);
2620 return offset;
2624 static const per_sequence_t h450_5_CpRequestArg_sequence[] = {
2625 { &hf_h450_5_parkingNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2626 { &hf_h450_5_parkedNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2627 { &hf_h450_5_parkedToNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2628 { &hf_h450_5_parkedToPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_ParkedToPosition },
2629 { &hf_h450_5_cpRequestArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2630 { NULL, 0, 0, NULL }
2633 static int
2634 dissect_h450_5_CpRequestArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2635 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2636 ett_h450_5_CpRequestArg, h450_5_CpRequestArg_sequence);
2638 return offset;
2642 static const value_string h450_5_ParkCondition_vals[] = {
2643 { 0, "unspecified" },
2644 { 1, "parkedToUserIdle" },
2645 { 2, "parkedToUserBusy" },
2646 { 3, "parkedToGroup" },
2647 { 0, NULL }
2651 static int
2652 dissect_h450_5_ParkCondition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2653 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2654 4, NULL, true, 0, NULL);
2656 return offset;
2660 static const per_sequence_t h450_5_CpRequestRes_sequence[] = {
2661 { &hf_h450_5_parkedToNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2662 { &hf_h450_5_parkedToPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_ParkedToPosition },
2663 { &hf_h450_5_parkCondition, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_5_ParkCondition },
2664 { &hf_h450_5_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2665 { NULL, 0, 0, NULL }
2668 static int
2669 dissect_h450_5_CpRequestRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2670 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2671 ett_h450_5_CpRequestRes, h450_5_CpRequestRes_sequence);
2673 return offset;
2677 static const per_sequence_t h450_5_CpSetupArg_sequence[] = {
2678 { &hf_h450_5_parkingNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2679 { &hf_h450_5_parkedNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2680 { &hf_h450_5_parkedToNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2681 { &hf_h450_5_parkedToPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_ParkedToPosition },
2682 { &hf_h450_5_cpSetupArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2683 { NULL, 0, 0, NULL }
2686 static int
2687 dissect_h450_5_CpSetupArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2688 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2689 ett_h450_5_CpSetupArg, h450_5_CpSetupArg_sequence);
2691 return offset;
2695 static const per_sequence_t h450_5_CpSetupRes_sequence[] = {
2696 { &hf_h450_5_parkedToNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2697 { &hf_h450_5_parkedToPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_ParkedToPosition },
2698 { &hf_h450_5_parkCondition, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_5_ParkCondition },
2699 { &hf_h450_5_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2700 { NULL, 0, 0, NULL }
2703 static int
2704 dissect_h450_5_CpSetupRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2705 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2706 ett_h450_5_CpSetupRes, h450_5_CpSetupRes_sequence);
2708 return offset;
2712 static const value_string h450_5_CallType_vals[] = {
2713 { 0, "parkedCall" },
2714 { 1, "alertingCall" },
2715 { 0, NULL }
2719 static int
2720 dissect_h450_5_CallType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2721 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2722 2, NULL, true, 0, NULL);
2724 return offset;
2728 static const per_sequence_t h450_5_GroupIndicationOnArg_sequence[] = {
2729 { &hf_h450_5_callPickupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
2730 { &hf_h450_5_groupMemberUserNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2731 { &hf_h450_5_retrieveCallType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_5_CallType },
2732 { &hf_h450_5_partyToRetrieve, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2733 { &hf_h450_5_retrieveAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2734 { &hf_h450_5_parkPosition , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_ParkedToPosition },
2735 { &hf_h450_5_groupIndicationOnArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2736 { NULL, 0, 0, NULL }
2739 static int
2740 dissect_h450_5_GroupIndicationOnArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2741 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2742 ett_h450_5_GroupIndicationOnArg, h450_5_GroupIndicationOnArg_sequence);
2744 return offset;
2748 static const per_sequence_t h450_5_GroupIndicationOnRes_sequence[] = {
2749 { &hf_h450_5_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2750 { NULL, 0, 0, NULL }
2753 static int
2754 dissect_h450_5_GroupIndicationOnRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2755 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2756 ett_h450_5_GroupIndicationOnRes, h450_5_GroupIndicationOnRes_sequence);
2758 return offset;
2762 static const per_sequence_t h450_5_GroupIndicationOffArg_sequence[] = {
2763 { &hf_h450_5_callPickupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
2764 { &hf_h450_5_groupMemberUserNr, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2765 { &hf_h450_5_groupIndicationOffArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2766 { NULL, 0, 0, NULL }
2769 static int
2770 dissect_h450_5_GroupIndicationOffArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2771 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2772 ett_h450_5_GroupIndicationOffArg, h450_5_GroupIndicationOffArg_sequence);
2774 return offset;
2778 static const per_sequence_t h450_5_GroupIndicationOffRes_sequence[] = {
2779 { &hf_h450_5_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2780 { NULL, 0, 0, NULL }
2783 static int
2784 dissect_h450_5_GroupIndicationOffRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2785 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2786 ett_h450_5_GroupIndicationOffRes, h450_5_GroupIndicationOffRes_sequence);
2788 return offset;
2792 static const per_sequence_t h450_5_PickrequArg_sequence[] = {
2793 { &hf_h450_5_picking_upNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2794 { &hf_h450_5_callPickupId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallIdentifier },
2795 { &hf_h450_5_partyToRetrieve, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress },
2796 { &hf_h450_5_retrieveAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2797 { &hf_h450_5_parkPosition , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_ParkedToPosition },
2798 { &hf_h450_5_pickrequArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2799 { NULL, 0, 0, NULL }
2802 static int
2803 dissect_h450_5_PickrequArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2804 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2805 ett_h450_5_PickrequArg, h450_5_PickrequArg_sequence);
2807 return offset;
2811 static const per_sequence_t h450_5_PickrequRes_sequence[] = {
2812 { &hf_h450_5_callPickupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
2813 { &hf_h450_5_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2814 { NULL, 0, 0, NULL }
2817 static int
2818 dissect_h450_5_PickrequRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2819 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2820 ett_h450_5_PickrequRes, h450_5_PickrequRes_sequence);
2822 return offset;
2826 static const per_sequence_t h450_5_PickupArg_sequence[] = {
2827 { &hf_h450_5_callPickupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
2828 { &hf_h450_5_picking_upNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2829 { &hf_h450_5_pickupArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2830 { NULL, 0, 0, NULL }
2833 static int
2834 dissect_h450_5_PickupArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2835 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2836 ett_h450_5_PickupArg, h450_5_PickupArg_sequence);
2838 return offset;
2842 static const per_sequence_t h450_5_PickupRes_sequence[] = {
2843 { &hf_h450_5_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2844 { NULL, 0, 0, NULL }
2847 static int
2848 dissect_h450_5_PickupRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2849 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2850 ett_h450_5_PickupRes, h450_5_PickupRes_sequence);
2852 return offset;
2856 static const per_sequence_t h450_5_PickExeArg_sequence[] = {
2857 { &hf_h450_5_callPickupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
2858 { &hf_h450_5_picking_upNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2859 { &hf_h450_5_partyToRetrieve, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2860 { &hf_h450_5_pickExeArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2861 { NULL, 0, 0, NULL }
2864 static int
2865 dissect_h450_5_PickExeArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2866 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2867 ett_h450_5_PickExeArg, h450_5_PickExeArg_sequence);
2869 return offset;
2873 static const per_sequence_t h450_5_PickExeRes_sequence[] = {
2874 { &hf_h450_5_extensionRes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2875 { NULL, 0, 0, NULL }
2878 static int
2879 dissect_h450_5_PickExeRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2880 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2881 ett_h450_5_PickExeRes, h450_5_PickExeRes_sequence);
2883 return offset;
2887 static const per_sequence_t h450_5_CpNotifyArg_sequence[] = {
2888 { &hf_h450_5_parkingNumber, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress },
2889 { &hf_h450_5_cpNotifyArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2890 { NULL, 0, 0, NULL }
2893 static int
2894 dissect_h450_5_CpNotifyArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2895 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2896 ett_h450_5_CpNotifyArg, h450_5_CpNotifyArg_sequence);
2898 return offset;
2902 static const per_sequence_t h450_5_CpickupNotifyArg_sequence[] = {
2903 { &hf_h450_5_picking_upNumber, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress },
2904 { &hf_h450_5_cpickupNotifyArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2905 { NULL, 0, 0, NULL }
2908 static int
2909 dissect_h450_5_CpickupNotifyArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2910 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2911 ett_h450_5_CpickupNotifyArg, h450_5_CpickupNotifyArg_sequence);
2913 return offset;
2917 static const per_sequence_t h450_5_PAR_undefined_sequence_of[1] = {
2918 { &hf_h450_5_PAR_undefined_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension },
2921 static int
2922 dissect_h450_5_PAR_undefined(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2923 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2924 ett_h450_5_PAR_undefined, h450_5_PAR_undefined_sequence_of,
2925 0, 255, false);
2927 return offset;
2930 /*--- PDUs ---*/
2932 static int dissect_h450_5_CpRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2933 int offset = 0;
2934 asn1_ctx_t asn1_ctx;
2935 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2936 offset = dissect_h450_5_CpRequestArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_CpRequestArg_PDU);
2937 offset += 7; offset >>= 3;
2938 return offset;
2940 static int dissect_h450_5_CpRequestRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2941 int offset = 0;
2942 asn1_ctx_t asn1_ctx;
2943 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2944 offset = dissect_h450_5_CpRequestRes(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_CpRequestRes_PDU);
2945 offset += 7; offset >>= 3;
2946 return offset;
2948 static int dissect_h450_5_CpSetupArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2949 int offset = 0;
2950 asn1_ctx_t asn1_ctx;
2951 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2952 offset = dissect_h450_5_CpSetupArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_CpSetupArg_PDU);
2953 offset += 7; offset >>= 3;
2954 return offset;
2956 static int dissect_h450_5_CpSetupRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2957 int offset = 0;
2958 asn1_ctx_t asn1_ctx;
2959 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2960 offset = dissect_h450_5_CpSetupRes(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_CpSetupRes_PDU);
2961 offset += 7; offset >>= 3;
2962 return offset;
2964 static int dissect_h450_5_GroupIndicationOnArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2965 int offset = 0;
2966 asn1_ctx_t asn1_ctx;
2967 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2968 offset = dissect_h450_5_GroupIndicationOnArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_GroupIndicationOnArg_PDU);
2969 offset += 7; offset >>= 3;
2970 return offset;
2972 static int dissect_h450_5_GroupIndicationOnRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2973 int offset = 0;
2974 asn1_ctx_t asn1_ctx;
2975 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2976 offset = dissect_h450_5_GroupIndicationOnRes(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_GroupIndicationOnRes_PDU);
2977 offset += 7; offset >>= 3;
2978 return offset;
2980 static int dissect_h450_5_GroupIndicationOffArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2981 int offset = 0;
2982 asn1_ctx_t asn1_ctx;
2983 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2984 offset = dissect_h450_5_GroupIndicationOffArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_GroupIndicationOffArg_PDU);
2985 offset += 7; offset >>= 3;
2986 return offset;
2988 static int dissect_h450_5_GroupIndicationOffRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2989 int offset = 0;
2990 asn1_ctx_t asn1_ctx;
2991 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
2992 offset = dissect_h450_5_GroupIndicationOffRes(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_GroupIndicationOffRes_PDU);
2993 offset += 7; offset >>= 3;
2994 return offset;
2996 static int dissect_h450_5_PickrequArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2997 int offset = 0;
2998 asn1_ctx_t asn1_ctx;
2999 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3000 offset = dissect_h450_5_PickrequArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_PickrequArg_PDU);
3001 offset += 7; offset >>= 3;
3002 return offset;
3004 static int dissect_h450_5_PickrequRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3005 int offset = 0;
3006 asn1_ctx_t asn1_ctx;
3007 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3008 offset = dissect_h450_5_PickrequRes(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_PickrequRes_PDU);
3009 offset += 7; offset >>= 3;
3010 return offset;
3012 static int dissect_h450_5_PickupArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3013 int offset = 0;
3014 asn1_ctx_t asn1_ctx;
3015 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3016 offset = dissect_h450_5_PickupArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_PickupArg_PDU);
3017 offset += 7; offset >>= 3;
3018 return offset;
3020 static int dissect_h450_5_PickupRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3021 int offset = 0;
3022 asn1_ctx_t asn1_ctx;
3023 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3024 offset = dissect_h450_5_PickupRes(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_PickupRes_PDU);
3025 offset += 7; offset >>= 3;
3026 return offset;
3028 static int dissect_h450_5_PickExeArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3029 int offset = 0;
3030 asn1_ctx_t asn1_ctx;
3031 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3032 offset = dissect_h450_5_PickExeArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_PickExeArg_PDU);
3033 offset += 7; offset >>= 3;
3034 return offset;
3036 static int dissect_h450_5_PickExeRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3037 int offset = 0;
3038 asn1_ctx_t asn1_ctx;
3039 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3040 offset = dissect_h450_5_PickExeRes(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_PickExeRes_PDU);
3041 offset += 7; offset >>= 3;
3042 return offset;
3044 static int dissect_h450_5_CpNotifyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3045 int offset = 0;
3046 asn1_ctx_t asn1_ctx;
3047 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3048 offset = dissect_h450_5_CpNotifyArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_CpNotifyArg_PDU);
3049 offset += 7; offset >>= 3;
3050 return offset;
3052 static int dissect_h450_5_CpickupNotifyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3053 int offset = 0;
3054 asn1_ctx_t asn1_ctx;
3055 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3056 offset = dissect_h450_5_CpickupNotifyArg(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_CpickupNotifyArg_PDU);
3057 offset += 7; offset >>= 3;
3058 return offset;
3060 static int dissect_h450_5_PAR_undefined_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3061 int offset = 0;
3062 asn1_ctx_t asn1_ctx;
3063 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3064 offset = dissect_h450_5_PAR_undefined(tvb, offset, &asn1_ctx, tree, hf_h450_5_h450_5_PAR_undefined_PDU);
3065 offset += 7; offset >>= 3;
3066 return offset;
3070 /* --- Module Call-Waiting-Operations --- --- --- */
3074 static int
3075 dissect_h450_6_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3076 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3077 0U, 255U, NULL, false);
3079 return offset;
3083 static const per_sequence_t h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = {
3084 { &hf_h450_6_callWaitingArg_extensionArg_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension },
3087 static int
3088 dissect_h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3089 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3090 ett_h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of,
3091 0, 255, false);
3093 return offset;
3097 static const per_sequence_t h450_6_CallWaitingArg_sequence[] = {
3098 { &hf_h450_6_nbOfAddWaitingCalls, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_6_INTEGER_0_255 },
3099 { &hf_h450_6_callWaitingArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3100 { NULL, 0, 0, NULL }
3103 static int
3104 dissect_h450_6_CallWaitingArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3105 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3106 ett_h450_6_CallWaitingArg, h450_6_CallWaitingArg_sequence);
3108 return offset;
3111 /*--- PDUs ---*/
3113 static int dissect_h450_6_CallWaitingArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3114 int offset = 0;
3115 asn1_ctx_t asn1_ctx;
3116 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3117 offset = dissect_h450_6_CallWaitingArg(tvb, offset, &asn1_ctx, tree, hf_h450_6_h450_6_CallWaitingArg_PDU);
3118 offset += 7; offset >>= 3;
3119 return offset;
3123 /* --- Module Message-Waiting-Indication-Operations --- --- --- */
3126 static const value_string h450_7_BasicService_vals[] = {
3127 { 0, "allServices" },
3128 { 1, "speech" },
3129 { 2, "unrestrictedDigitalInformation" },
3130 { 3, "audio3100Hz" },
3131 { 32, "telephony" },
3132 { 33, "teletex" },
3133 { 34, "telefaxGroup4Class1" },
3134 { 35, "videotexSyntaxBased" },
3135 { 36, "videotelephony" },
3136 { 37, "telefaxGroup2-3" },
3137 { 38, "reservedNotUsed1" },
3138 { 39, "reservedNotUsed2" },
3139 { 40, "reservedNotUsed3" },
3140 { 41, "reservedNotUsed4" },
3141 { 42, "reservedNotUsed5" },
3142 { 51, "email" },
3143 { 52, "video" },
3144 { 53, "fileTransfer" },
3145 { 54, "shortMessageService" },
3146 { 55, "speechAndVideo" },
3147 { 56, "speechAndFax" },
3148 { 57, "speechAndEmail" },
3149 { 58, "videoAndFax" },
3150 { 59, "videoAndEmail" },
3151 { 60, "faxAndEmail" },
3152 { 61, "speechVideoAndFax" },
3153 { 62, "speechVideoAndEmail" },
3154 { 63, "speechFaxAndEmail" },
3155 { 64, "videoFaxAndEmail" },
3156 { 65, "speechVideoFaxAndEmail" },
3157 { 66, "multimediaUnknown" },
3158 { 67, "serviceUnknown" },
3159 { 68, "futureReserve1" },
3160 { 69, "futureReserve2" },
3161 { 70, "futureReserve3" },
3162 { 71, "futureReserve4" },
3163 { 72, "futureReserve5" },
3164 { 73, "futureReserve6" },
3165 { 74, "futureReserve7" },
3166 { 75, "futureReserve8" },
3167 { 0, NULL }
3170 static uint32_t h450_7_BasicService_value_map[40+0] = {0, 1, 2, 3, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75};
3172 static int
3173 dissect_h450_7_BasicService(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3174 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3175 40, NULL, false, 0, h450_7_BasicService_value_map);
3177 return offset;
3182 static int
3183 dissect_h450_7_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3184 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3185 0U, 65535U, NULL, false);
3187 return offset;
3192 static int
3193 dissect_h450_7_NumericString_SIZE_1_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3194 offset = dissect_per_NumericString(tvb, offset, actx, tree, hf_index,
3195 1, 10, false,
3196 NULL);
3198 return offset;
3202 static const value_string h450_7_MsgCentreId_vals[] = {
3203 { 0, "integer" },
3204 { 1, "partyNumber" },
3205 { 2, "numericString" },
3206 { 0, NULL }
3209 static const per_choice_t h450_7_MsgCentreId_choice[] = {
3210 { 0, &hf_h450_7_integer , ASN1_NO_EXTENSIONS , dissect_h450_7_INTEGER_0_65535 },
3211 { 1, &hf_h450_7_partyNumber , ASN1_NO_EXTENSIONS , dissect_h450_EndpointAddress },
3212 { 2, &hf_h450_7_numericString, ASN1_NO_EXTENSIONS , dissect_h450_7_NumericString_SIZE_1_10 },
3213 { 0, NULL, 0, NULL }
3216 static int
3217 dissect_h450_7_MsgCentreId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3218 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3219 ett_h450_7_MsgCentreId, h450_7_MsgCentreId_choice,
3220 NULL);
3222 return offset;
3227 static int
3228 dissect_h450_7_NbOfMessages(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3229 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3230 0U, 65535U, NULL, false);
3232 return offset;
3237 static int
3238 dissect_h450_7_TimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3239 offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
3240 12, 19, false,
3241 NULL);
3243 return offset;
3248 static int
3249 dissect_h450_7_INTEGER_0_9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3250 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3251 0U, 9U, NULL, false);
3253 return offset;
3257 static const per_sequence_t h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = {
3258 { &hf_h450_7_mWIActivateArg_extensionArg_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension },
3261 static int
3262 dissect_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3263 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3264 ett_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of,
3265 0, 255, false);
3267 return offset;
3271 static const per_sequence_t h450_7_MWIActivateArg_sequence[] = {
3272 { &hf_h450_7_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
3273 { &hf_h450_7_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_7_BasicService },
3274 { &hf_h450_7_msgCentreId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_MsgCentreId },
3275 { &hf_h450_7_nbOfMessages , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_NbOfMessages },
3276 { &hf_h450_7_originatingNr, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress },
3277 { &hf_h450_7_timestamp , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_TimeStamp },
3278 { &hf_h450_7_priority , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_INTEGER_0_9 },
3279 { &hf_h450_7_mWIActivateArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3280 { NULL, 0, 0, NULL }
3283 static int
3284 dissect_h450_7_MWIActivateArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3285 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3286 ett_h450_7_MWIActivateArg, h450_7_MWIActivateArg_sequence);
3288 return offset;
3292 static const per_sequence_t h450_7_DummyRes_sequence_of[1] = {
3293 { &hf_h450_7_DummyRes_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension },
3296 static int
3297 dissect_h450_7_DummyRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3298 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3299 ett_h450_7_DummyRes, h450_7_DummyRes_sequence_of,
3300 0, 255, false);
3302 return offset;
3307 static int
3308 dissect_h450_7_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3309 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
3311 return offset;
3315 static const per_sequence_t h450_7_MWIDeactivateArg_sequence[] = {
3316 { &hf_h450_7_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
3317 { &hf_h450_7_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_7_BasicService },
3318 { &hf_h450_7_msgCentreId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_MsgCentreId },
3319 { &hf_h450_7_callbackReq , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_BOOLEAN },
3320 { &hf_h450_7_mWIDeactivateArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3321 { NULL, 0, 0, NULL }
3324 static int
3325 dissect_h450_7_MWIDeactivateArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3326 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3327 ett_h450_7_MWIDeactivateArg, h450_7_MWIDeactivateArg_sequence);
3329 return offset;
3333 static const per_sequence_t h450_7_MWIInterrogateArg_sequence[] = {
3334 { &hf_h450_7_servedUserNr , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
3335 { &hf_h450_7_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_7_BasicService },
3336 { &hf_h450_7_msgCentreId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_MsgCentreId },
3337 { &hf_h450_7_callbackReq , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_BOOLEAN },
3338 { &hf_h450_7_mWIInterrogateArg_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3339 { NULL, 0, 0, NULL }
3342 static int
3343 dissect_h450_7_MWIInterrogateArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3344 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3345 ett_h450_7_MWIInterrogateArg, h450_7_MWIInterrogateArg_sequence);
3347 return offset;
3351 static const per_sequence_t h450_7_MWIInterrogateResElt_sequence[] = {
3352 { &hf_h450_7_basicService , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_7_BasicService },
3353 { &hf_h450_7_msgCentreId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_MsgCentreId },
3354 { &hf_h450_7_nbOfMessages , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_NbOfMessages },
3355 { &hf_h450_7_originatingNr, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress },
3356 { &hf_h450_7_timestamp , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_TimeStamp },
3357 { &hf_h450_7_priority , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_INTEGER_0_9 },
3358 { &hf_h450_7_mWIInterrogateResElt_extensionArg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3359 { NULL, 0, 0, NULL }
3362 static int
3363 dissect_h450_7_MWIInterrogateResElt(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3364 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3365 ett_h450_7_MWIInterrogateResElt, h450_7_MWIInterrogateResElt_sequence);
3367 return offset;
3371 static const per_sequence_t h450_7_MWIInterrogateRes_sequence_of[1] = {
3372 { &hf_h450_7_MWIInterrogateRes_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_7_MWIInterrogateResElt },
3375 static int
3376 dissect_h450_7_MWIInterrogateRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3377 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3378 ett_h450_7_MWIInterrogateRes, h450_7_MWIInterrogateRes_sequence_of,
3379 1, 64, false);
3381 return offset;
3385 static const per_sequence_t h450_7_PAR_undefined_sequence_of[1] = {
3386 { &hf_h450_7_PAR_undefined_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension },
3389 static int
3390 dissect_h450_7_PAR_undefined(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3391 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3392 ett_h450_7_PAR_undefined, h450_7_PAR_undefined_sequence_of,
3393 0, 255, false);
3395 return offset;
3398 /*--- PDUs ---*/
3400 static int dissect_h450_7_MWIActivateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3401 int offset = 0;
3402 asn1_ctx_t asn1_ctx;
3403 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3404 offset = dissect_h450_7_MWIActivateArg(tvb, offset, &asn1_ctx, tree, hf_h450_7_h450_7_MWIActivateArg_PDU);
3405 offset += 7; offset >>= 3;
3406 return offset;
3408 static int dissect_h450_7_DummyRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3409 int offset = 0;
3410 asn1_ctx_t asn1_ctx;
3411 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3412 offset = dissect_h450_7_DummyRes(tvb, offset, &asn1_ctx, tree, hf_h450_7_h450_7_DummyRes_PDU);
3413 offset += 7; offset >>= 3;
3414 return offset;
3416 static int dissect_h450_7_MWIDeactivateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3417 int offset = 0;
3418 asn1_ctx_t asn1_ctx;
3419 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3420 offset = dissect_h450_7_MWIDeactivateArg(tvb, offset, &asn1_ctx, tree, hf_h450_7_h450_7_MWIDeactivateArg_PDU);
3421 offset += 7; offset >>= 3;
3422 return offset;
3424 static int dissect_h450_7_MWIInterrogateArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3425 int offset = 0;
3426 asn1_ctx_t asn1_ctx;
3427 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3428 offset = dissect_h450_7_MWIInterrogateArg(tvb, offset, &asn1_ctx, tree, hf_h450_7_h450_7_MWIInterrogateArg_PDU);
3429 offset += 7; offset >>= 3;
3430 return offset;
3432 static int dissect_h450_7_MWIInterrogateRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3433 int offset = 0;
3434 asn1_ctx_t asn1_ctx;
3435 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3436 offset = dissect_h450_7_MWIInterrogateRes(tvb, offset, &asn1_ctx, tree, hf_h450_7_h450_7_MWIInterrogateRes_PDU);
3437 offset += 7; offset >>= 3;
3438 return offset;
3440 static int dissect_h450_7_PAR_undefined_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3441 int offset = 0;
3442 asn1_ctx_t asn1_ctx;
3443 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3444 offset = dissect_h450_7_PAR_undefined(tvb, offset, &asn1_ctx, tree, hf_h450_7_h450_7_PAR_undefined_PDU);
3445 offset += 7; offset >>= 3;
3446 return offset;
3450 /* --- Module Name-Operations --- --- --- */
3454 static int
3455 dissect_h450_8_SimpleName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3456 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3457 1, 50, false, NULL);
3459 return offset;
3464 static int
3465 dissect_h450_8_ExtendedName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3466 offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3467 1, 256, false);
3469 return offset;
3473 static const value_string h450_8_NamePresentationAllowed_vals[] = {
3474 { 0, "simpleName" },
3475 { 1, "extendedName" },
3476 { 0, NULL }
3479 static const per_choice_t h450_8_NamePresentationAllowed_choice[] = {
3480 { 0, &hf_h450_8_simpleName , ASN1_EXTENSION_ROOT , dissect_h450_8_SimpleName },
3481 { 1, &hf_h450_8_extendedName , ASN1_EXTENSION_ROOT , dissect_h450_8_ExtendedName },
3482 { 0, NULL, 0, NULL }
3485 static int
3486 dissect_h450_8_NamePresentationAllowed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3487 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3488 ett_h450_8_NamePresentationAllowed, h450_8_NamePresentationAllowed_choice,
3489 NULL);
3491 return offset;
3496 static int
3497 dissect_h450_8_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3498 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
3500 return offset;
3504 static const value_string h450_8_NamePresentationRestricted_vals[] = {
3505 { 0, "simpleName" },
3506 { 1, "extendedName" },
3507 { 2, "restrictedNull" },
3508 { 0, NULL }
3511 static const per_choice_t h450_8_NamePresentationRestricted_choice[] = {
3512 { 0, &hf_h450_8_simpleName , ASN1_EXTENSION_ROOT , dissect_h450_8_SimpleName },
3513 { 1, &hf_h450_8_extendedName , ASN1_EXTENSION_ROOT , dissect_h450_8_ExtendedName },
3514 { 2, &hf_h450_8_restrictedNull, ASN1_EXTENSION_ROOT , dissect_h450_8_NULL },
3515 { 0, NULL, 0, NULL }
3518 static int
3519 dissect_h450_8_NamePresentationRestricted(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3520 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3521 ett_h450_8_NamePresentationRestricted, h450_8_NamePresentationRestricted_choice,
3522 NULL);
3524 return offset;
3528 static const value_string h450_8_Name_vals[] = {
3529 { 0, "namePresentationAllowed" },
3530 { 1, "namePresentationRestricted" },
3531 { 2, "nameNotAvailable" },
3532 { 0, NULL }
3535 static const per_choice_t h450_8_Name_choice[] = {
3536 { 0, &hf_h450_8_namePresentationAllowed, ASN1_EXTENSION_ROOT , dissect_h450_8_NamePresentationAllowed },
3537 { 1, &hf_h450_8_namePresentationRestricted, ASN1_EXTENSION_ROOT , dissect_h450_8_NamePresentationRestricted },
3538 { 2, &hf_h450_8_nameNotAvailable, ASN1_EXTENSION_ROOT , dissect_h450_8_NULL },
3539 { 0, NULL, 0, NULL }
3542 static int
3543 dissect_h450_8_Name(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3544 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3545 ett_h450_8_Name, h450_8_Name_choice,
3546 NULL);
3548 return offset;
3552 static const per_sequence_t h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = {
3553 { &hf_h450_8_extensionArg_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension },
3556 static int
3557 dissect_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3558 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3559 ett_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of,
3560 0, 255, false);
3562 return offset;
3566 static const per_sequence_t h450_8_ARG_callingName_sequence[] = {
3567 { &hf_h450_8_name , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_8_Name },
3568 { &hf_h450_8_extensionArg , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3569 { NULL, 0, 0, NULL }
3572 static int
3573 dissect_h450_8_ARG_callingName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3574 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3575 ett_h450_8_ARG_callingName, h450_8_ARG_callingName_sequence);
3577 return offset;
3581 static const per_sequence_t h450_8_ARG_alertingName_sequence[] = {
3582 { &hf_h450_8_name , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_8_Name },
3583 { &hf_h450_8_extensionArg , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3584 { NULL, 0, 0, NULL }
3587 static int
3588 dissect_h450_8_ARG_alertingName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3589 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3590 ett_h450_8_ARG_alertingName, h450_8_ARG_alertingName_sequence);
3592 return offset;
3596 static const per_sequence_t h450_8_ARG_connectedName_sequence[] = {
3597 { &hf_h450_8_name , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_8_Name },
3598 { &hf_h450_8_extensionArg , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3599 { NULL, 0, 0, NULL }
3602 static int
3603 dissect_h450_8_ARG_connectedName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3604 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3605 ett_h450_8_ARG_connectedName, h450_8_ARG_connectedName_sequence);
3607 return offset;
3611 static const per_sequence_t h450_8_ARG_busyName_sequence[] = {
3612 { &hf_h450_8_name , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_8_Name },
3613 { &hf_h450_8_extensionArg , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3614 { NULL, 0, 0, NULL }
3617 static int
3618 dissect_h450_8_ARG_busyName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3619 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3620 ett_h450_8_ARG_busyName, h450_8_ARG_busyName_sequence);
3622 return offset;
3625 /*--- PDUs ---*/
3627 static int dissect_h450_8_ARG_callingName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3628 int offset = 0;
3629 asn1_ctx_t asn1_ctx;
3630 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3631 offset = dissect_h450_8_ARG_callingName(tvb, offset, &asn1_ctx, tree, hf_h450_8_h450_8_ARG_callingName_PDU);
3632 offset += 7; offset >>= 3;
3633 return offset;
3635 static int dissect_h450_8_ARG_alertingName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3636 int offset = 0;
3637 asn1_ctx_t asn1_ctx;
3638 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3639 offset = dissect_h450_8_ARG_alertingName(tvb, offset, &asn1_ctx, tree, hf_h450_8_h450_8_ARG_alertingName_PDU);
3640 offset += 7; offset >>= 3;
3641 return offset;
3643 static int dissect_h450_8_ARG_connectedName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3644 int offset = 0;
3645 asn1_ctx_t asn1_ctx;
3646 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3647 offset = dissect_h450_8_ARG_connectedName(tvb, offset, &asn1_ctx, tree, hf_h450_8_h450_8_ARG_connectedName_PDU);
3648 offset += 7; offset >>= 3;
3649 return offset;
3651 static int dissect_h450_8_ARG_busyName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3652 int offset = 0;
3653 asn1_ctx_t asn1_ctx;
3654 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3655 offset = dissect_h450_8_ARG_busyName(tvb, offset, &asn1_ctx, tree, hf_h450_8_h450_8_ARG_busyName_PDU);
3656 offset += 7; offset >>= 3;
3657 return offset;
3661 /* --- Module Call-Completion-Operations --- --- --- */
3665 static int
3666 dissect_h450_9_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3667 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
3669 return offset;
3673 static const per_sequence_t h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = {
3674 { &hf_h450_9_ccRequestArg_extension_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension },
3677 static int
3678 dissect_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3679 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3680 ett_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of,
3681 0, 255, false);
3683 return offset;
3687 static const per_sequence_t h450_9_CcRequestArg_sequence[] = {
3688 { &hf_h450_9_numberA , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
3689 { &hf_h450_9_numberB , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
3690 { &hf_h450_9_ccIdentifier , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallIdentifier },
3691 { &hf_h450_9_service , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_7_BasicService },
3692 { &hf_h450_9_can_retain_service, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_9_BOOLEAN },
3693 { &hf_h450_9_retain_sig_connection, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_9_BOOLEAN },
3694 { &hf_h450_9_ccRequestArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3695 { NULL, 0, 0, NULL }
3698 static int
3699 dissect_h450_9_CcRequestArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3700 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3701 ett_h450_9_CcRequestArg, h450_9_CcRequestArg_sequence);
3703 return offset;
3707 static const per_sequence_t h450_9_CcRequestRes_sequence[] = {
3708 { &hf_h450_9_retain_service, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_9_BOOLEAN },
3709 { &hf_h450_9_ccRequestRes_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3710 { NULL, 0, 0, NULL }
3713 static int
3714 dissect_h450_9_CcRequestRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3715 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3716 ett_h450_9_CcRequestRes, h450_9_CcRequestRes_sequence);
3718 return offset;
3722 static const per_sequence_t h450_9_CcShortArg_sequence[] = {
3723 { &hf_h450_9_ccIdentifier , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallIdentifier },
3724 { &hf_h450_9_ccShortArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3725 { NULL, 0, 0, NULL }
3728 static int
3729 dissect_h450_9_CcShortArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3730 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3731 ett_h450_9_CcShortArg, h450_9_CcShortArg_sequence);
3733 return offset;
3737 static const per_sequence_t h450_9_CcLongArg_sequence[] = {
3738 { &hf_h450_9_numberA , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress },
3739 { &hf_h450_9_numberB , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_EndpointAddress },
3740 { &hf_h450_9_ccIdentifier , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallIdentifier },
3741 { &hf_h450_9_service , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_7_BasicService },
3742 { &hf_h450_9_ccLongArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3743 { NULL, 0, 0, NULL }
3746 static int
3747 dissect_h450_9_CcLongArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3748 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3749 ett_h450_9_CcLongArg, h450_9_CcLongArg_sequence);
3751 return offset;
3755 static const value_string h450_9_CcArg_vals[] = {
3756 { 0, "shortArg" },
3757 { 1, "longArg" },
3758 { 0, NULL }
3761 static const per_choice_t h450_9_CcArg_choice[] = {
3762 { 0, &hf_h450_9_shortArg , ASN1_EXTENSION_ROOT , dissect_h450_9_CcShortArg },
3763 { 1, &hf_h450_9_longArg , ASN1_EXTENSION_ROOT , dissect_h450_9_CcLongArg },
3764 { 0, NULL, 0, NULL }
3767 static int
3768 dissect_h450_9_CcArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3769 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3770 ett_h450_9_CcArg, h450_9_CcArg_choice,
3771 NULL);
3773 return offset;
3776 /*--- PDUs ---*/
3778 static int dissect_h450_9_CcRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3779 int offset = 0;
3780 asn1_ctx_t asn1_ctx;
3781 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3782 offset = dissect_h450_9_CcRequestArg(tvb, offset, &asn1_ctx, tree, hf_h450_9_h450_9_CcRequestArg_PDU);
3783 offset += 7; offset >>= 3;
3784 return offset;
3786 static int dissect_h450_9_CcRequestRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3787 int offset = 0;
3788 asn1_ctx_t asn1_ctx;
3789 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3790 offset = dissect_h450_9_CcRequestRes(tvb, offset, &asn1_ctx, tree, hf_h450_9_h450_9_CcRequestRes_PDU);
3791 offset += 7; offset >>= 3;
3792 return offset;
3794 static int dissect_h450_9_CcArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3795 int offset = 0;
3796 asn1_ctx_t asn1_ctx;
3797 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3798 offset = dissect_h450_9_CcArg(tvb, offset, &asn1_ctx, tree, hf_h450_9_h450_9_CcArg_PDU);
3799 offset += 7; offset >>= 3;
3800 return offset;
3802 static int dissect_h450_9_CcShortArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3803 int offset = 0;
3804 asn1_ctx_t asn1_ctx;
3805 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3806 offset = dissect_h450_9_CcShortArg(tvb, offset, &asn1_ctx, tree, hf_h450_9_h450_9_CcShortArg_PDU);
3807 offset += 7; offset >>= 3;
3808 return offset;
3812 /* --- Module Call-Offer-Operations --- --- --- */
3815 static const per_sequence_t h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = {
3816 { &hf_h450_10_coReqOptArg_extension_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension },
3819 static int
3820 dissect_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3821 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3822 ett_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of,
3823 0, 255, false);
3825 return offset;
3829 static const per_sequence_t h450_10_CoReqOptArg_sequence[] = {
3830 { &hf_h450_10_coReqOptArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3831 { NULL, 0, 0, NULL }
3834 static int
3835 dissect_h450_10_CoReqOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3836 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3837 ett_h450_10_CoReqOptArg, h450_10_CoReqOptArg_sequence);
3839 return offset;
3843 static const per_sequence_t h450_10_RUAlertOptArg_sequence[] = {
3844 { &hf_h450_10_rUAlertOptArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3845 { NULL, 0, 0, NULL }
3848 static int
3849 dissect_h450_10_RUAlertOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3850 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3851 ett_h450_10_RUAlertOptArg, h450_10_RUAlertOptArg_sequence);
3853 return offset;
3857 static const per_sequence_t h450_10_CfbOvrOptArg_sequence[] = {
3858 { &hf_h450_10_cfbOvrOptArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3859 { NULL, 0, 0, NULL }
3862 static int
3863 dissect_h450_10_CfbOvrOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3864 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3865 ett_h450_10_CfbOvrOptArg, h450_10_CfbOvrOptArg_sequence);
3867 return offset;
3870 /*--- PDUs ---*/
3872 static int dissect_h450_10_CoReqOptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3873 int offset = 0;
3874 asn1_ctx_t asn1_ctx;
3875 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3876 offset = dissect_h450_10_CoReqOptArg(tvb, offset, &asn1_ctx, tree, hf_h450_10_h450_10_CoReqOptArg_PDU);
3877 offset += 7; offset >>= 3;
3878 return offset;
3880 static int dissect_h450_10_RUAlertOptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3881 int offset = 0;
3882 asn1_ctx_t asn1_ctx;
3883 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3884 offset = dissect_h450_10_RUAlertOptArg(tvb, offset, &asn1_ctx, tree, hf_h450_10_h450_10_RUAlertOptArg_PDU);
3885 offset += 7; offset >>= 3;
3886 return offset;
3888 static int dissect_h450_10_CfbOvrOptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
3889 int offset = 0;
3890 asn1_ctx_t asn1_ctx;
3891 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
3892 offset = dissect_h450_10_CfbOvrOptArg(tvb, offset, &asn1_ctx, tree, hf_h450_10_h450_10_CfbOvrOptArg_PDU);
3893 offset += 7; offset >>= 3;
3894 return offset;
3898 /* --- Module Call-Intrusion-Operations --- --- --- */
3901 static const value_string h450_11_CICapabilityLevel_vals[] = {
3902 { 1, "intrusionLowCap" },
3903 { 2, "intrusionMediumCap" },
3904 { 3, "intrusionHighCap" },
3905 { 0, NULL }
3909 static int
3910 dissect_h450_11_CICapabilityLevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3911 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3912 1U, 3U, NULL, false);
3914 return offset;
3918 static const per_sequence_t h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = {
3919 { &hf_h450_11_cIRequestArg_argumentExtension_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension },
3922 static int
3923 dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3924 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3925 ett_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of,
3926 0, 255, false);
3928 return offset;
3932 static const per_sequence_t h450_11_CIRequestArg_sequence[] = {
3933 { &hf_h450_11_ciCapabilityLevel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_11_CICapabilityLevel },
3934 { &hf_h450_11_cIRequestArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3935 { NULL, 0, 0, NULL }
3938 static int
3939 dissect_h450_11_CIRequestArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3940 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3941 ett_h450_11_CIRequestArg, h450_11_CIRequestArg_sequence);
3943 return offset;
3948 static int
3949 dissect_h450_11_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3950 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
3952 return offset;
3956 static const value_string h450_11_CIStatusInformation_vals[] = {
3957 { 0, "callIntrusionImpending" },
3958 { 1, "callIntruded" },
3959 { 2, "callIsolated" },
3960 { 3, "callForceReleased" },
3961 { 4, "callIntrusionComplete" },
3962 { 5, "callIntrusionEnd" },
3963 { 0, NULL }
3966 static const per_choice_t h450_11_CIStatusInformation_choice[] = {
3967 { 0, &hf_h450_11_callIntrusionImpending, ASN1_EXTENSION_ROOT , dissect_h450_11_NULL },
3968 { 1, &hf_h450_11_callIntruded, ASN1_EXTENSION_ROOT , dissect_h450_11_NULL },
3969 { 2, &hf_h450_11_callIsolated, ASN1_EXTENSION_ROOT , dissect_h450_11_NULL },
3970 { 3, &hf_h450_11_callForceReleased, ASN1_EXTENSION_ROOT , dissect_h450_11_NULL },
3971 { 4, &hf_h450_11_callIntrusionComplete, ASN1_EXTENSION_ROOT , dissect_h450_11_NULL },
3972 { 5, &hf_h450_11_callIntrusionEnd, ASN1_EXTENSION_ROOT , dissect_h450_11_NULL },
3973 { 0, NULL, 0, NULL }
3976 static int
3977 dissect_h450_11_CIStatusInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3978 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3979 ett_h450_11_CIStatusInformation, h450_11_CIStatusInformation_choice,
3980 NULL);
3982 return offset;
3986 static const per_sequence_t h450_11_CIRequestRes_sequence[] = {
3987 { &hf_h450_11_ciStatusInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_11_CIStatusInformation },
3988 { &hf_h450_11_cIRequestRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3989 { NULL, 0, 0, NULL }
3992 static int
3993 dissect_h450_11_CIRequestRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3994 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3995 ett_h450_11_CIRequestRes, h450_11_CIRequestRes_sequence);
3997 return offset;
4001 static const per_sequence_t h450_11_CIGetCIPLOptArg_sequence[] = {
4002 { &hf_h450_11_cIGetCIPLOptArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension },
4003 { NULL, 0, 0, NULL }
4006 static int
4007 dissect_h450_11_CIGetCIPLOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4008 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4009 ett_h450_11_CIGetCIPLOptArg, h450_11_CIGetCIPLOptArg_sequence);
4011 return offset;
4015 static const value_string h450_11_CIProtectionLevel_vals[] = {
4016 { 0, "lowProtection" },
4017 { 1, "mediumProtection" },
4018 { 2, "highProtection" },
4019 { 3, "fullProtection" },
4020 { 0, NULL }
4024 static int
4025 dissect_h450_11_CIProtectionLevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4026 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4027 0U, 3U, NULL, false);
4029 return offset;
4033 static const per_sequence_t h450_11_CIGetCIPLRes_sequence[] = {
4034 { &hf_h450_11_ciProtectionLevel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_11_CIProtectionLevel },
4035 { &hf_h450_11_silentMonitoringPermitted, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_NULL },
4036 { &hf_h450_11_cIGetCIPLRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension },
4037 { NULL, 0, 0, NULL }
4040 static int
4041 dissect_h450_11_CIGetCIPLRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4042 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4043 ett_h450_11_CIGetCIPLRes, h450_11_CIGetCIPLRes_sequence);
4045 return offset;
4049 static const per_sequence_t h450_11_CIIsOptArg_sequence[] = {
4050 { &hf_h450_11_cIIsOptArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension },
4051 { NULL, 0, 0, NULL }
4054 static int
4055 dissect_h450_11_CIIsOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4056 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4057 ett_h450_11_CIIsOptArg, h450_11_CIIsOptArg_sequence);
4059 return offset;
4063 static const per_sequence_t h450_11_CIIsOptRes_sequence[] = {
4064 { &hf_h450_11_cIIsOptRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension },
4065 { NULL, 0, 0, NULL }
4068 static int
4069 dissect_h450_11_CIIsOptRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4070 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4071 ett_h450_11_CIIsOptRes, h450_11_CIIsOptRes_sequence);
4073 return offset;
4077 static const per_sequence_t h450_11_CIFrcRelArg_sequence[] = {
4078 { &hf_h450_11_ciCapabilityLevel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_11_CICapabilityLevel },
4079 { &hf_h450_11_cIFrcRelArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension },
4080 { NULL, 0, 0, NULL }
4083 static int
4084 dissect_h450_11_CIFrcRelArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4085 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4086 ett_h450_11_CIFrcRelArg, h450_11_CIFrcRelArg_sequence);
4088 return offset;
4092 static const per_sequence_t h450_11_CIFrcRelOptRes_sequence[] = {
4093 { &hf_h450_11_cIFrcRelOptRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension },
4094 { NULL, 0, 0, NULL }
4097 static int
4098 dissect_h450_11_CIFrcRelOptRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4099 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4100 ett_h450_11_CIFrcRelOptRes, h450_11_CIFrcRelOptRes_sequence);
4102 return offset;
4106 static const per_sequence_t h450_11_CIWobOptArg_sequence[] = {
4107 { &hf_h450_11_cIWobOptArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension },
4108 { NULL, 0, 0, NULL }
4111 static int
4112 dissect_h450_11_CIWobOptArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4113 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4114 ett_h450_11_CIWobOptArg, h450_11_CIWobOptArg_sequence);
4116 return offset;
4120 static const per_sequence_t h450_11_CIWobOptRes_sequence[] = {
4121 { &hf_h450_11_cIWobOptRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension },
4122 { NULL, 0, 0, NULL }
4125 static int
4126 dissect_h450_11_CIWobOptRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4127 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4128 ett_h450_11_CIWobOptRes, h450_11_CIWobOptRes_sequence);
4130 return offset;
4134 static const per_sequence_t h450_11_CISilentArg_sequence[] = {
4135 { &hf_h450_11_ciCapabilityLevel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_11_CICapabilityLevel },
4136 { &hf_h450_11_specificCall, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallIdentifier },
4137 { &hf_h450_11_cISilentArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension },
4138 { NULL, 0, 0, NULL }
4141 static int
4142 dissect_h450_11_CISilentArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4143 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4144 ett_h450_11_CISilentArg, h450_11_CISilentArg_sequence);
4146 return offset;
4150 static const per_sequence_t h450_11_CISilentOptRes_sequence[] = {
4151 { &hf_h450_11_cISilentOptRes_resultExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension },
4152 { NULL, 0, 0, NULL }
4155 static int
4156 dissect_h450_11_CISilentOptRes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4157 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4158 ett_h450_11_CISilentOptRes, h450_11_CISilentOptRes_sequence);
4160 return offset;
4164 static const per_sequence_t h450_11_CINotificationArg_sequence[] = {
4165 { &hf_h450_11_ciStatusInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h450_11_CIStatusInformation },
4166 { &hf_h450_11_cINotificationArg_argumentExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension },
4167 { NULL, 0, 0, NULL }
4170 static int
4171 dissect_h450_11_CINotificationArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4172 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4173 ett_h450_11_CINotificationArg, h450_11_CINotificationArg_sequence);
4175 return offset;
4178 /*--- PDUs ---*/
4180 static int dissect_h450_11_CIRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4181 int offset = 0;
4182 asn1_ctx_t asn1_ctx;
4183 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4184 offset = dissect_h450_11_CIRequestArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIRequestArg_PDU);
4185 offset += 7; offset >>= 3;
4186 return offset;
4188 static int dissect_h450_11_CIRequestRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4189 int offset = 0;
4190 asn1_ctx_t asn1_ctx;
4191 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4192 offset = dissect_h450_11_CIRequestRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIRequestRes_PDU);
4193 offset += 7; offset >>= 3;
4194 return offset;
4196 static int dissect_h450_11_CIGetCIPLOptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4197 int offset = 0;
4198 asn1_ctx_t asn1_ctx;
4199 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4200 offset = dissect_h450_11_CIGetCIPLOptArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIGetCIPLOptArg_PDU);
4201 offset += 7; offset >>= 3;
4202 return offset;
4204 static int dissect_h450_11_CIGetCIPLRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4205 int offset = 0;
4206 asn1_ctx_t asn1_ctx;
4207 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4208 offset = dissect_h450_11_CIGetCIPLRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIGetCIPLRes_PDU);
4209 offset += 7; offset >>= 3;
4210 return offset;
4212 static int dissect_h450_11_CIIsOptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4213 int offset = 0;
4214 asn1_ctx_t asn1_ctx;
4215 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4216 offset = dissect_h450_11_CIIsOptArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIIsOptArg_PDU);
4217 offset += 7; offset >>= 3;
4218 return offset;
4220 static int dissect_h450_11_CIIsOptRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4221 int offset = 0;
4222 asn1_ctx_t asn1_ctx;
4223 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4224 offset = dissect_h450_11_CIIsOptRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIIsOptRes_PDU);
4225 offset += 7; offset >>= 3;
4226 return offset;
4228 static int dissect_h450_11_CIFrcRelArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4229 int offset = 0;
4230 asn1_ctx_t asn1_ctx;
4231 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4232 offset = dissect_h450_11_CIFrcRelArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIFrcRelArg_PDU);
4233 offset += 7; offset >>= 3;
4234 return offset;
4236 static int dissect_h450_11_CIFrcRelOptRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4237 int offset = 0;
4238 asn1_ctx_t asn1_ctx;
4239 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4240 offset = dissect_h450_11_CIFrcRelOptRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIFrcRelOptRes_PDU);
4241 offset += 7; offset >>= 3;
4242 return offset;
4244 static int dissect_h450_11_CIWobOptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4245 int offset = 0;
4246 asn1_ctx_t asn1_ctx;
4247 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4248 offset = dissect_h450_11_CIWobOptArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIWobOptArg_PDU);
4249 offset += 7; offset >>= 3;
4250 return offset;
4252 static int dissect_h450_11_CIWobOptRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4253 int offset = 0;
4254 asn1_ctx_t asn1_ctx;
4255 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4256 offset = dissect_h450_11_CIWobOptRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CIWobOptRes_PDU);
4257 offset += 7; offset >>= 3;
4258 return offset;
4260 static int dissect_h450_11_CISilentArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4261 int offset = 0;
4262 asn1_ctx_t asn1_ctx;
4263 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4264 offset = dissect_h450_11_CISilentArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CISilentArg_PDU);
4265 offset += 7; offset >>= 3;
4266 return offset;
4268 static int dissect_h450_11_CISilentOptRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4269 int offset = 0;
4270 asn1_ctx_t asn1_ctx;
4271 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4272 offset = dissect_h450_11_CISilentOptRes(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CISilentOptRes_PDU);
4273 offset += 7; offset >>= 3;
4274 return offset;
4276 static int dissect_h450_11_CINotificationArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4277 int offset = 0;
4278 asn1_ctx_t asn1_ctx;
4279 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4280 offset = dissect_h450_11_CINotificationArg(tvb, offset, &asn1_ctx, tree, hf_h450_11_h450_11_CINotificationArg_PDU);
4281 offset += 7; offset >>= 3;
4282 return offset;
4286 /* --- Module Common-Information-Operations --- --- --- */
4290 static int
4291 dissect_h450_12_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4292 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
4294 return offset;
4298 static const per_sequence_t h450_12_FeatureList_sequence[] = {
4299 { &hf_h450_12_ssCFreRoutingSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4300 { &hf_h450_12_ssCTreRoutingSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4301 { &hf_h450_12_ssCCBSPossible, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4302 { &hf_h450_12_ssCCNRPossible, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4303 { &hf_h450_12_ssCOSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4304 { &hf_h450_12_ssCIForcedReleaseSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4305 { &hf_h450_12_ssCIIsolationSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4306 { &hf_h450_12_ssCIWaitOnBusySupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4307 { &hf_h450_12_ssCISilentMonitoringSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4308 { &hf_h450_12_ssCIConferenceSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4309 { &hf_h450_12_ssCHFarHoldSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4310 { &hf_h450_12_ssMWICallbackSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4311 { &hf_h450_12_ssCPCallParkSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4312 { NULL, 0, 0, NULL }
4315 static int
4316 dissect_h450_12_FeatureList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4317 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4318 ett_h450_12_FeatureList, h450_12_FeatureList_sequence);
4320 return offset;
4324 static const value_string h450_12_PartyCategory_vals[] = {
4325 { 0, "unknown" },
4326 { 1, "extension" },
4327 { 2, "attendant" },
4328 { 3, "emergExt" },
4329 { 0, NULL }
4333 static int
4334 dissect_h450_12_PartyCategory(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4335 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4336 4, NULL, true, 0, NULL);
4338 return offset;
4343 static int
4344 dissect_h450_12_SSCIProtectionLevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4345 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4346 0U, 3U, NULL, false);
4348 return offset;
4352 static const per_sequence_t h450_12_FeatureValues_sequence[] = {
4353 { &hf_h450_12_partyCategory, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_PartyCategory },
4354 { &hf_h450_12_ssCIprotectionLevel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_SSCIProtectionLevel },
4355 { NULL, 0, 0, NULL }
4358 static int
4359 dissect_h450_12_FeatureValues(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4360 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4361 ett_h450_12_FeatureValues, h450_12_FeatureValues_sequence);
4363 return offset;
4367 static const per_sequence_t h450_12_FeatureControl_sequence[] = {
4368 { &hf_h450_12_ssCHDoNotHold, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4369 { &hf_h450_12_ssCTDoNotTransfer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4370 { &hf_h450_12_ssMWICallbackCall, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4371 { &hf_h450_12_ssCISilentMonitorPermitted, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_NULL },
4372 { NULL, 0, 0, NULL }
4375 static int
4376 dissect_h450_12_FeatureControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4377 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4378 ett_h450_12_FeatureControl, h450_12_FeatureControl_sequence);
4380 return offset;
4384 static const per_sequence_t h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = {
4385 { &hf_h450_12_cmnArg_extension_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h450_4_MixedExtension },
4388 static int
4389 dissect_h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4390 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4391 ett_h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension, h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of,
4392 0, 255, false);
4394 return offset;
4398 static const per_sequence_t h450_12_CmnArg_sequence[] = {
4399 { &hf_h450_12_featureList , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_FeatureList },
4400 { &hf_h450_12_featureValues, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_FeatureValues },
4401 { &hf_h450_12_featureControl, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_FeatureControl },
4402 { &hf_h450_12_cmnArg_extension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension },
4403 { NULL, 0, 0, NULL }
4406 static int
4407 dissect_h450_12_CmnArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4408 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4409 ett_h450_12_CmnArg, h450_12_CmnArg_sequence);
4411 return offset;
4415 static const per_sequence_t h450_12_DummyArg_sequence[] = {
4416 { &hf_h450_12_extensionArg, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension },
4417 { NULL, 0, 0, NULL }
4420 static int
4421 dissect_h450_12_DummyArg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4422 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4423 ett_h450_12_DummyArg, h450_12_DummyArg_sequence);
4425 return offset;
4428 /*--- PDUs ---*/
4430 static int dissect_h450_12_DummyArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4431 int offset = 0;
4432 asn1_ctx_t asn1_ctx;
4433 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4434 offset = dissect_h450_12_DummyArg(tvb, offset, &asn1_ctx, tree, hf_h450_12_h450_12_DummyArg_PDU);
4435 offset += 7; offset >>= 3;
4436 return offset;
4438 static int dissect_h450_12_CmnArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4439 int offset = 0;
4440 asn1_ctx_t asn1_ctx;
4441 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
4442 offset = dissect_h450_12_CmnArg(tvb, offset, &asn1_ctx, tree, hf_h450_12_h450_12_CmnArg_PDU);
4443 offset += 7; offset >>= 3;
4444 return offset;
4448 typedef struct _h450_op_t {
4449 int32_t opcode;
4450 dissector_t arg_pdu;
4451 dissector_t res_pdu;
4452 } h450_op_t;
4454 static const h450_op_t h450_op_tab[] = {
4456 /* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
4458 /* Unknown or empty loop list OPERATION */
4460 /* --- Module Call-Transfer-Operations --- --- --- */
4462 /* callTransferIdentify */ { 7, dissect_h450_2_DummyArg_PDU, dissect_h450_2_CTIdentifyRes_PDU },
4463 /* callTransferAbandon */ { 8, dissect_h450_2_DummyArg_PDU, NULL },
4464 /* callTransferInitiate */ { 9, dissect_h450_2_CTInitiateArg_PDU, dissect_h450_2_DummyRes_PDU },
4465 /* callTransferSetup */ { 10, dissect_h450_2_CTSetupArg_PDU, dissect_h450_2_DummyRes_PDU },
4466 /* callTransferUpdate */ { 13, dissect_h450_2_CTUpdateArg_PDU, NULL },
4467 /* subaddressTransfer */ { 14, dissect_h450_2_SubaddressTransferArg_PDU, NULL },
4468 /* callTransferComplete */ { 12, dissect_h450_2_CTCompleteArg_PDU, NULL },
4469 /* callTransferActive */ { 11, dissect_h450_2_CTActiveArg_PDU, NULL },
4471 /* --- Module Call-Diversion-Operations --- --- --- */
4473 /* activateDiversionQ */ { 15, dissect_h450_3_ARG_activateDiversionQ_PDU, dissect_h450_3_RES_activateDiversionQ_PDU },
4474 /* deactivateDiversionQ */ { 16, dissect_h450_3_ARG_deactivateDiversionQ_PDU, dissect_h450_3_RES_deactivateDiversionQ_PDU },
4475 /* interrogateDiversionQ */ { 17, dissect_h450_3_ARG_interrogateDiversionQ_PDU, dissect_h450_3_IntResultList_PDU },
4476 /* checkRestriction */ { 18, dissect_h450_3_ARG_checkRestriction_PDU, dissect_h450_3_RES_checkRestriction_PDU },
4477 /* callRerouting */ { 19, dissect_h450_3_ARG_callRerouting_PDU, dissect_h450_3_RES_callRerouting_PDU },
4478 /* divertingLegInformation1 */ { 20, dissect_h450_3_ARG_divertingLegInformation1_PDU, NULL },
4479 /* divertingLegInformation2 */ { 21, dissect_h450_3_ARG_divertingLegInformation2_PDU, NULL },
4480 /* divertingLegInformation3 */ { 22, dissect_h450_3_ARG_divertingLegInformation3_PDU, NULL },
4481 /* divertingLegInformation4 */ { 100, dissect_h450_3_ARG_divertingLegInformation4_PDU, NULL },
4482 /* cfnrDivertedLegFailed */ { 23, dissect_h450_3_ARG_cfnrDivertedLegFailed_PDU, NULL },
4484 /* --- Module Call-Hold-Operations --- --- --- */
4486 /* holdNotific */ { 101, dissect_h450_4_HoldNotificArg_PDU, NULL },
4487 /* retrieveNotific */ { 102, dissect_h450_4_RetrieveNotificArg_PDU, NULL },
4488 /* remoteHold */ { 103, dissect_h450_4_RemoteHoldArg_PDU, dissect_h450_4_RemoteHoldRes_PDU },
4489 /* remoteRetrieve */ { 104, dissect_h450_4_RemoteRetrieveArg_PDU, dissect_h450_4_RemoteRetrieveRes_PDU },
4491 /* --- Module Call-Park-Pickup-Operations --- --- --- */
4493 /* cpRequest */ { 106, dissect_h450_5_CpRequestArg_PDU, dissect_h450_5_CpRequestRes_PDU },
4494 /* cpSetup */ { 107, dissect_h450_5_CpSetupArg_PDU, dissect_h450_5_CpSetupRes_PDU },
4495 /* groupIndicationOn */ { 108, dissect_h450_5_GroupIndicationOnArg_PDU, dissect_h450_5_GroupIndicationOnRes_PDU },
4496 /* groupIndicationOff */ { 109, dissect_h450_5_GroupIndicationOffArg_PDU, dissect_h450_5_GroupIndicationOffRes_PDU },
4497 /* pickrequ */ { 110, dissect_h450_5_PickrequArg_PDU, dissect_h450_5_PickrequRes_PDU },
4498 /* pickup */ { 111, dissect_h450_5_PickupArg_PDU, dissect_h450_5_PickupRes_PDU },
4499 /* pickExe */ { 112, dissect_h450_5_PickExeArg_PDU, dissect_h450_5_PickExeRes_PDU },
4500 /* cpNotify */ { 113, dissect_h450_5_CpNotifyArg_PDU, NULL },
4501 /* cpickupNotify */ { 114, dissect_h450_5_CpickupNotifyArg_PDU, NULL },
4503 /* --- Module Call-Waiting-Operations --- --- --- */
4505 /* callWaiting */ { 105, dissect_h450_6_CallWaitingArg_PDU, NULL },
4507 /* --- Module Message-Waiting-Indication-Operations --- --- --- */
4509 /* mwiActivate */ { 80, dissect_h450_7_MWIActivateArg_PDU, dissect_h450_7_DummyRes_PDU },
4510 /* mwiDeactivate */ { 81, dissect_h450_7_MWIDeactivateArg_PDU, dissect_h450_7_DummyRes_PDU },
4511 /* mwiInterrogate */ { 82, dissect_h450_7_MWIInterrogateArg_PDU, dissect_h450_7_MWIInterrogateRes_PDU },
4513 /* --- Module Name-Operations --- --- --- */
4515 /* callingName */ { 0, dissect_h450_8_ARG_callingName_PDU, NULL },
4516 /* alertingName */ { 1, dissect_h450_8_ARG_alertingName_PDU, NULL },
4517 /* connectedName */ { 2, dissect_h450_8_ARG_connectedName_PDU, NULL },
4518 /* busyName */ { 3, dissect_h450_8_ARG_busyName_PDU, NULL },
4520 /* --- Module Call-Completion-Operations --- --- --- */
4522 /* ccbsRequest */ { 40, dissect_h450_9_CcRequestArg_PDU, dissect_h450_9_CcRequestRes_PDU },
4523 /* ccnrRequest */ { 27, dissect_h450_9_CcRequestArg_PDU, dissect_h450_9_CcRequestRes_PDU },
4524 /* ccCancel */ { 28, dissect_h450_9_CcArg_PDU, NULL },
4525 /* ccExecPossible */ { 29, dissect_h450_9_CcArg_PDU, NULL },
4526 /* ccRingout */ { 31, dissect_h450_9_CcShortArg_PDU, NULL },
4527 /* ccSuspend */ { 32, dissect_h450_9_CcShortArg_PDU, NULL },
4528 /* ccResume */ { 33, dissect_h450_9_CcArg_PDU, NULL },
4530 /* --- Module Call-Offer-Operations --- --- --- */
4532 /* callOfferRequest */ { 34, dissect_h450_10_CoReqOptArg_PDU, NULL },
4533 /* remoteUserAlerting */ { 115, dissect_h450_10_RUAlertOptArg_PDU, NULL },
4534 /* cfbOverride */ { 49, dissect_h450_10_CfbOvrOptArg_PDU, NULL },
4536 /* --- Module Call-Intrusion-Operations --- --- --- */
4538 /* callIntrusionRequest */ { 43, dissect_h450_11_CIRequestArg_PDU, dissect_h450_11_CIRequestRes_PDU },
4539 /* callIntrusionGetCIPL */ { 44, dissect_h450_11_CIGetCIPLOptArg_PDU, dissect_h450_11_CIGetCIPLRes_PDU },
4540 /* callIntrusionIsolate */ { 45, dissect_h450_11_CIIsOptArg_PDU, dissect_h450_11_CIIsOptRes_PDU },
4541 /* callIntrusionForcedRelease */ { 46, dissect_h450_11_CIFrcRelArg_PDU, dissect_h450_11_CIFrcRelOptRes_PDU },
4542 /* callIntrusionWOBRequest */ { 47, dissect_h450_11_CIWobOptArg_PDU, dissect_h450_11_CIWobOptRes_PDU },
4543 /* callIntrusionSilentMonitor */ { 116, dissect_h450_11_CISilentArg_PDU, dissect_h450_11_CISilentOptRes_PDU },
4544 /* callIntrusionNotification */ { 117, dissect_h450_11_CINotificationArg_PDU, NULL },
4546 /* --- Module Common-Information-Operations --- --- --- */
4548 /* cmnRequest */ { 84, dissect_h450_12_DummyArg_PDU, dissect_h450_12_CmnArg_PDU },
4549 /* cmnInform */ { 85, dissect_h450_12_CmnArg_PDU, NULL },
4552 typedef struct _h450_err_t {
4553 int32_t errcode;
4554 dissector_t err_pdu;
4555 } h450_err_t;
4557 static const h450_err_t h450_err_tab[] = {
4559 /* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
4561 /* userNotSubscribed */ { 0, NULL },
4562 /* rejectedByNetwork */ { 1, NULL },
4563 /* rejectedByUser */ { 2, NULL },
4564 /* notAvailable */ { 3, NULL },
4565 /* insufficientInformation */ { 5, NULL },
4566 /* invalidServedUserNumber */ { 6, NULL },
4567 /* invalidCallState */ { 7, NULL },
4568 /* basicServiceNotProvided */ { 8, NULL },
4569 /* notIncomingCall */ { 9, NULL },
4570 /* supplementaryServiceInteractionNotAllowed */ { 10, NULL },
4571 /* resourceUnavailable */ { 11, NULL },
4572 /* callFailure */ { 25, NULL },
4573 /* proceduralError */ { 43, NULL },
4575 /* --- Module Call-Transfer-Operations --- --- --- */
4577 /* unspecified */ { 1008, dissect_h450_2_PAR_unspecified_PDU },
4578 /* invalidReroutingNumber */ { 1004, NULL },
4579 /* unrecognizedCallIdentity */ { 1005, NULL },
4580 /* establishmentFailure */ { 1006, NULL },
4582 /* --- Module Call-Diversion-Operations --- --- --- */
4584 /* invalidDivertedNumber */ { 12, NULL },
4585 /* specialServiceNumber */ { 14, NULL },
4586 /* diversionToServedUserNumber */ { 15, NULL },
4587 /* numberOfDiversionsExceeded */ { 24, NULL },
4588 /* temporarilyUnavailable */ { 1000, NULL },
4589 /* notAuthorized */ { 1007, NULL },
4590 /* unspecified */ { 1008, dissect_h450_3_PAR_unspecified_PDU },
4592 /* --- Module Call-Hold-Operations --- --- --- */
4594 /* undefined */ { 2002, dissect_h450_4_PAR_undefined_PDU },
4596 /* --- Module Call-Park-Pickup-Operations --- --- --- */
4598 /* callPickupIdInvalid */ { 2000, NULL },
4599 /* callAlreadyPickedUp */ { 2001, NULL },
4600 /* undefined */ { 2002, dissect_h450_5_PAR_undefined_PDU },
4602 /* --- Module Call-Waiting-Operations --- --- --- */
4604 /* Unknown or empty loop list ERROR */
4606 /* --- Module Message-Waiting-Indication-Operations --- --- --- */
4608 /* undefined */ { 2002, dissect_h450_7_PAR_undefined_PDU },
4609 /* invalidMsgCentreId */ { 1018, NULL },
4610 /* notActivated */ { 31, NULL },
4612 /* --- Module Name-Operations --- --- --- */
4614 /* Unknown or empty loop list ERROR */
4616 /* --- Module Call-Completion-Operations --- --- --- */
4618 /* shortTermRejection */ { 1010, NULL },
4619 /* longTermRejection */ { 1011, NULL },
4620 /* remoteUserBusyAgain */ { 1012, NULL },
4621 /* failureToMatch */ { 1013, NULL },
4623 /* --- Module Call-Offer-Operations --- --- --- */
4625 /* Unknown or empty loop list ERROR */
4627 /* --- Module Call-Intrusion-Operations --- --- --- */
4629 /* notBusy */ { 1009, NULL },
4630 /* temporarilyUnavailable */ { 1000, NULL },
4631 /* notAuthorized */ { 1007, NULL },
4633 /* --- Module Common-Information-Operations --- --- --- */
4635 /* Unknown or empty loop list ERROR */
4638 static const h450_op_t *get_op(int32_t opcode) {
4639 int i;
4641 /* search from the end to get the last occurrence if the operation is redefined in some newer specification */
4642 for (i = array_length(h450_op_tab) - 1; i >= 0; i--)
4643 if (h450_op_tab[i].opcode == opcode)
4644 return &h450_op_tab[i];
4645 return NULL;
4648 static const h450_err_t *get_err(int32_t errcode) {
4649 int i;
4651 /* search from the end to get the last occurrence if the operation is redefined in some newer specification */
4652 for (i = array_length(h450_err_tab) - 1; i >= 0; i--)
4653 if (h450_err_tab[i].errcode == errcode)
4654 return &h450_err_tab[i];
4655 return NULL;
4658 /*--- dissect_h450_arg ------------------------------------------------------*/
4659 static int
4660 dissect_h450_arg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
4661 proto_item *hidden_item;
4662 int offset = 0;
4663 rose_ctx_t *rctx;
4664 int32_t opcode;
4665 const h450_op_t *op_ptr;
4666 const char *p;
4668 /* Reject the packet if data is NULL */
4669 if (data == NULL)
4670 return 0;
4671 rctx = get_rose_ctx(data);
4672 DISSECTOR_ASSERT(rctx);
4674 if (rctx->d.pdu != 1) /* invoke */
4675 return offset;
4676 if (rctx->d.code != 0) /* local */
4677 return offset;
4678 opcode = rctx->d.code_local;
4679 op_ptr = get_op(opcode);
4680 if (!op_ptr)
4681 return offset;
4683 hidden_item = proto_tree_add_uint(tree, hf_h450_operation, tvb, 0, 0, opcode);
4684 proto_item_set_hidden(hidden_item);
4685 p = try_val_to_str(opcode, VALS(h450_str_operation));
4686 if (p) {
4687 proto_item_append_text(rctx->d.code_item, " - %s", p);
4688 if (rctx->apdu_depth >= 0)
4689 proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
4692 if (op_ptr->arg_pdu && (tvb_reported_length_remaining(tvb, offset) > 0))
4693 offset = op_ptr->arg_pdu(tvb, pinfo, tree, NULL);
4694 else
4695 if (tvb_reported_length_remaining(tvb, offset) > 0) {
4696 proto_tree_add_expert(tree, pinfo, &ei_h450_unsupported_arg_type, tvb, offset, -1);
4697 offset += tvb_reported_length_remaining(tvb, offset);
4700 return offset;
4703 /*--- dissect_h450_res ------------------------------------------------------*/
4704 static int
4705 dissect_h450_res(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
4706 proto_item *hidden_item;
4707 int offset = 0;
4708 rose_ctx_t *rctx;
4709 int32_t opcode;
4710 const h450_op_t *op_ptr;
4711 const char *p;
4713 /* Reject the packet if data is NULL */
4714 if (data == NULL)
4715 return 0;
4716 rctx = get_rose_ctx(data);
4717 DISSECTOR_ASSERT(rctx);
4719 if (rctx->d.pdu != 2) /* returnResult */
4720 return offset;
4721 if (rctx->d.code != 0) /* local */
4722 return offset;
4723 opcode = rctx->d.code_local;
4724 op_ptr = get_op(opcode);
4725 if (!op_ptr)
4726 return offset;
4728 hidden_item = proto_tree_add_uint(tree, hf_h450_operation, tvb, 0, 0, opcode);
4729 proto_item_set_hidden(hidden_item);
4730 p = try_val_to_str(opcode, VALS(h450_str_operation));
4731 if (p) {
4732 proto_item_append_text(rctx->d.code_item, " - %s", p);
4733 if (rctx->apdu_depth >= 0)
4734 proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
4737 if (op_ptr->res_pdu && (tvb_reported_length_remaining(tvb, offset) > 0))
4738 offset = op_ptr->res_pdu(tvb, pinfo, tree, NULL);
4739 else
4740 if (tvb_reported_length_remaining(tvb, offset) > 0) {
4741 proto_tree_add_expert(tree, pinfo, &ei_h450_unsupported_result_type, tvb, offset, -1);
4742 offset += tvb_reported_length_remaining(tvb, offset);
4745 return offset;
4748 /*--- dissect_h450_err ------------------------------------------------------*/
4749 static int
4750 dissect_h450_err(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
4751 proto_item *hidden_item;
4752 int offset = 0;
4753 rose_ctx_t *rctx;
4754 int32_t errcode;
4755 const h450_err_t *err_ptr;
4756 const char *p;
4758 /* Reject the packet if data is NULL */
4759 if (data == NULL)
4760 return 0;
4761 rctx = get_rose_ctx(data);
4762 DISSECTOR_ASSERT(rctx);
4764 if (rctx->d.pdu != 3) /* returnError */
4765 return offset;
4766 if (rctx->d.code != 0) /* local */
4767 return offset;
4768 errcode = rctx->d.code_local;
4769 err_ptr = get_err(errcode);
4770 if (!err_ptr)
4771 return offset;
4773 hidden_item = proto_tree_add_uint(tree, hf_h450_error, tvb, 0, 0, errcode);
4774 proto_item_set_hidden(hidden_item);
4775 p = try_val_to_str(errcode, VALS(h450_str_error));
4776 if (p) {
4777 proto_item_append_text(rctx->d.code_item, " - %s", p);
4778 if (rctx->apdu_depth >= 0)
4779 proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
4782 if (err_ptr->err_pdu && (tvb_reported_length_remaining(tvb, offset) > 0))
4783 offset = err_ptr->err_pdu(tvb, pinfo, tree, NULL);
4784 else
4785 if (tvb_reported_length_remaining(tvb, offset) > 0) {
4786 proto_tree_add_expert(tree, pinfo, &ei_h450_unsupported_error_type, tvb, offset, -1);
4787 offset += tvb_reported_length_remaining(tvb, offset);
4790 return offset;
4793 /*--- proto_register_h450 -------------------------------------------*/
4794 void proto_register_h450(void) {
4796 /* List of fields */
4797 static hf_register_info hf[] = {
4798 { &hf_h450_operation, { "Operation", "h450.operation",
4799 FT_UINT8, BASE_DEC, VALS(h450_str_operation), 0x0,
4800 NULL, HFILL }},
4801 { &hf_h450_error, { "Error", "h450.error",
4802 FT_UINT16, BASE_DEC, VALS(h450_str_error), 0x0,
4803 NULL, HFILL }},
4805 /* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
4807 { &hf_h450_h450_H4501SupplementaryService_PDU,
4808 { "H4501SupplementaryService", "h450.H4501SupplementaryService_element",
4809 FT_NONE, BASE_NONE, NULL, 0,
4810 NULL, HFILL }},
4811 { &hf_h450_networkFacilityExtension,
4812 { "networkFacilityExtension", "h450.networkFacilityExtension_element",
4813 FT_NONE, BASE_NONE, NULL, 0,
4814 NULL, HFILL }},
4815 { &hf_h450_interpretationApdu,
4816 { "interpretationApdu", "h450.interpretationApdu",
4817 FT_UINT32, BASE_DEC, VALS(h450_InterpretationApdu_vals), 0,
4818 NULL, HFILL }},
4819 { &hf_h450_serviceApdu,
4820 { "serviceApdu", "h450.serviceApdu",
4821 FT_UINT32, BASE_DEC, VALS(h450_ServiceApdus_vals), 0,
4822 "ServiceApdus", HFILL }},
4823 { &hf_h450_sourceEntity,
4824 { "sourceEntity", "h450.sourceEntity",
4825 FT_UINT32, BASE_DEC, VALS(h450_EntityType_vals), 0,
4826 "EntityType", HFILL }},
4827 { &hf_h450_sourceEntityAddress,
4828 { "sourceEntityAddress", "h450.sourceEntityAddress",
4829 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
4830 "AddressInformation", HFILL }},
4831 { &hf_h450_destinationEntity,
4832 { "destinationEntity", "h450.destinationEntity",
4833 FT_UINT32, BASE_DEC, VALS(h450_EntityType_vals), 0,
4834 "EntityType", HFILL }},
4835 { &hf_h450_destinationEntityAddress,
4836 { "destinationEntityAddress", "h450.destinationEntityAddress",
4837 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
4838 "AddressInformation", HFILL }},
4839 { &hf_h450_endpoint,
4840 { "endpoint", "h450.endpoint_element",
4841 FT_NONE, BASE_NONE, NULL, 0,
4842 NULL, HFILL }},
4843 { &hf_h450_anyEntity,
4844 { "anyEntity", "h450.anyEntity_element",
4845 FT_NONE, BASE_NONE, NULL, 0,
4846 NULL, HFILL }},
4847 { &hf_h450_discardAnyUnrecognizedInvokePdu,
4848 { "discardAnyUnrecognizedInvokePdu", "h450.discardAnyUnrecognizedInvokePdu_element",
4849 FT_NONE, BASE_NONE, NULL, 0,
4850 NULL, HFILL }},
4851 { &hf_h450_clearCallIfAnyInvokePduNotRecognized,
4852 { "clearCallIfAnyInvokePduNotRecognized", "h450.clearCallIfAnyInvokePduNotRecognized_element",
4853 FT_NONE, BASE_NONE, NULL, 0,
4854 NULL, HFILL }},
4855 { &hf_h450_rejectAnyUnrecognizedInvokePdu,
4856 { "rejectAnyUnrecognizedInvokePdu", "h450.rejectAnyUnrecognizedInvokePdu_element",
4857 FT_NONE, BASE_NONE, NULL, 0,
4858 NULL, HFILL }},
4859 { &hf_h450_rosApdus,
4860 { "rosApdus", "h450.rosApdus",
4861 FT_UINT32, BASE_DEC, NULL, 0,
4862 NULL, HFILL }},
4863 { &hf_h450_rosApdus_item,
4864 { "rosApdus item", "h450.rosApdus_item",
4865 FT_UINT32, BASE_DEC, VALS(h450_ros_ROS_vals), 0,
4866 NULL, HFILL }},
4867 { &hf_h450_destinationAddress,
4868 { "destinationAddress", "h450.destinationAddress",
4869 FT_UINT32, BASE_DEC, NULL, 0,
4870 "SEQUENCE_OF_AliasAddress", HFILL }},
4871 { &hf_h450_destinationAddress_item,
4872 { "AliasAddress", "h450.AliasAddress",
4873 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
4874 NULL, HFILL }},
4875 { &hf_h450_remoteExtensionAddress,
4876 { "remoteExtensionAddress", "h450.remoteExtensionAddress",
4877 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
4878 "AliasAddress", HFILL }},
4879 { &hf_h450_destinationAddressPresentationIndicator,
4880 { "destinationAddressPresentationIndicator", "h450.destinationAddressPresentationIndicator",
4881 FT_UINT32, BASE_DEC, VALS(h225_PresentationIndicator_vals), 0,
4882 "PresentationIndicator", HFILL }},
4883 { &hf_h450_destinationAddressScreeningIndicator,
4884 { "destinationAddressScreeningIndicator", "h450.destinationAddressScreeningIndicator",
4885 FT_UINT32, BASE_DEC, VALS(h225_ScreeningIndicator_vals), 0,
4886 "ScreeningIndicator", HFILL }},
4887 { &hf_h450_remoteExtensionAddressPresentationIndicator,
4888 { "remoteExtensionAddressPresentationIndicator", "h450.remoteExtensionAddressPresentationIndicator",
4889 FT_UINT32, BASE_DEC, VALS(h225_PresentationIndicator_vals), 0,
4890 "PresentationIndicator", HFILL }},
4891 { &hf_h450_remoteExtensionAddressScreeningIndicator,
4892 { "remoteExtensionAddressScreeningIndicator", "h450.remoteExtensionAddressScreeningIndicator",
4893 FT_UINT32, BASE_DEC, VALS(h225_ScreeningIndicator_vals), 0,
4894 "ScreeningIndicator", HFILL }},
4895 { &hf_h450_userSpecifiedSubaddress,
4896 { "userSpecifiedSubaddress", "h450.userSpecifiedSubaddress_element",
4897 FT_NONE, BASE_NONE, NULL, 0,
4898 NULL, HFILL }},
4899 { &hf_h450_nsapSubaddress,
4900 { "nsapSubaddress", "h450.nsapSubaddress",
4901 FT_BYTES, BASE_NONE, NULL, 0,
4902 NULL, HFILL }},
4903 { &hf_h450_subaddressInformation,
4904 { "subaddressInformation", "h450.subaddressInformation",
4905 FT_BYTES, BASE_NONE, NULL, 0,
4906 NULL, HFILL }},
4907 { &hf_h450_oddCountIndicator,
4908 { "oddCountIndicator", "h450.oddCountIndicator",
4909 FT_BOOLEAN, BASE_NONE, NULL, 0,
4910 "BOOLEAN", HFILL }},
4911 { &hf_h450_extensionId,
4912 { "extensionId", "h450.extensionId",
4913 FT_OID, BASE_NONE, NULL, 0,
4914 "OBJECT_IDENTIFIER", HFILL }},
4915 { &hf_h450_extensionArgument,
4916 { "extensionArgument", "h450.extensionArgument_element",
4917 FT_NONE, BASE_NONE, NULL, 0,
4918 NULL, HFILL }},
4920 /* --- Module Call-Transfer-Operations --- --- --- */
4922 { &hf_h450_2_h450_2_DummyArg_PDU,
4923 { "DummyArg", "h450.2.DummyArg",
4924 FT_UINT32, BASE_DEC, VALS(h450_2_DummyArg_vals), 0,
4925 NULL, HFILL }},
4926 { &hf_h450_2_h450_2_CTIdentifyRes_PDU,
4927 { "CTIdentifyRes", "h450.2.CTIdentifyRes_element",
4928 FT_NONE, BASE_NONE, NULL, 0,
4929 NULL, HFILL }},
4930 { &hf_h450_2_h450_2_CTInitiateArg_PDU,
4931 { "CTInitiateArg", "h450.2.CTInitiateArg_element",
4932 FT_NONE, BASE_NONE, NULL, 0,
4933 NULL, HFILL }},
4934 { &hf_h450_2_h450_2_DummyRes_PDU,
4935 { "DummyRes", "h450.2.DummyRes",
4936 FT_UINT32, BASE_DEC, VALS(h450_2_DummyRes_vals), 0,
4937 NULL, HFILL }},
4938 { &hf_h450_2_h450_2_CTSetupArg_PDU,
4939 { "CTSetupArg", "h450.2.CTSetupArg_element",
4940 FT_NONE, BASE_NONE, NULL, 0,
4941 NULL, HFILL }},
4942 { &hf_h450_2_h450_2_CTUpdateArg_PDU,
4943 { "CTUpdateArg", "h450.2.CTUpdateArg_element",
4944 FT_NONE, BASE_NONE, NULL, 0,
4945 NULL, HFILL }},
4946 { &hf_h450_2_h450_2_SubaddressTransferArg_PDU,
4947 { "SubaddressTransferArg", "h450.2.SubaddressTransferArg_element",
4948 FT_NONE, BASE_NONE, NULL, 0,
4949 NULL, HFILL }},
4950 { &hf_h450_2_h450_2_CTCompleteArg_PDU,
4951 { "CTCompleteArg", "h450.2.CTCompleteArg_element",
4952 FT_NONE, BASE_NONE, NULL, 0,
4953 NULL, HFILL }},
4954 { &hf_h450_2_h450_2_CTActiveArg_PDU,
4955 { "CTActiveArg", "h450.2.CTActiveArg_element",
4956 FT_NONE, BASE_NONE, NULL, 0,
4957 NULL, HFILL }},
4958 { &hf_h450_2_h450_2_PAR_unspecified_PDU,
4959 { "PAR-unspecified", "h450.2.PAR_unspecified",
4960 FT_UINT32, BASE_DEC, VALS(h450_2_PAR_unspecified_vals), 0,
4961 NULL, HFILL }},
4962 { &hf_h450_2_extensionSeq,
4963 { "extensionSeq", "h450.2.extensionSeq",
4964 FT_UINT32, BASE_DEC, NULL, 0,
4965 NULL, HFILL }},
4966 { &hf_h450_2_nonStandardData,
4967 { "nonStandardData", "h450.2.nonStandardData_element",
4968 FT_NONE, BASE_NONE, NULL, 0,
4969 "NonStandardParameter", HFILL }},
4970 { &hf_h450_2_callIdentity,
4971 { "callIdentity", "h450.2.callIdentity",
4972 FT_STRING, BASE_NONE, NULL, 0,
4973 NULL, HFILL }},
4974 { &hf_h450_2_reroutingNumber,
4975 { "reroutingNumber", "h450.2.reroutingNumber_element",
4976 FT_NONE, BASE_NONE, NULL, 0,
4977 "EndpointAddress", HFILL }},
4978 { &hf_h450_2_cTInitiateArg_argumentExtension,
4979 { "argumentExtension", "h450.2.argumentExtension",
4980 FT_UINT32, BASE_DEC, VALS(h450_2_T_cTInitiateArg_argumentExtension_vals), 0,
4981 "T_cTInitiateArg_argumentExtension", HFILL }},
4982 { &hf_h450_2_transferringNumber,
4983 { "transferringNumber", "h450.2.transferringNumber_element",
4984 FT_NONE, BASE_NONE, NULL, 0,
4985 "EndpointAddress", HFILL }},
4986 { &hf_h450_2_cTSetupArg_argumentExtension,
4987 { "argumentExtension", "h450.2.argumentExtension",
4988 FT_UINT32, BASE_DEC, VALS(h450_2_T_cTSetupArg_argumentExtension_vals), 0,
4989 "T_cTSetupArg_argumentExtension", HFILL }},
4990 { &hf_h450_2_resultExtension,
4991 { "resultExtension", "h450.2.resultExtension",
4992 FT_UINT32, BASE_DEC, VALS(h450_2_T_resultExtension_vals), 0,
4993 NULL, HFILL }},
4994 { &hf_h450_2_redirectionNumber,
4995 { "redirectionNumber", "h450.2.redirectionNumber_element",
4996 FT_NONE, BASE_NONE, NULL, 0,
4997 "EndpointAddress", HFILL }},
4998 { &hf_h450_2_redirectionInfo,
4999 { "redirectionInfo", "h450.2.redirectionInfo",
5000 FT_STRING, BASE_NONE, NULL, 0,
5001 "BMPString_SIZE_1_128", HFILL }},
5002 { &hf_h450_2_basicCallInfoElements,
5003 { "basicCallInfoElements", "h450.2.basicCallInfoElements",
5004 FT_BYTES, BASE_NONE, NULL, 0,
5005 "H225InformationElement", HFILL }},
5006 { &hf_h450_2_cTUpdateArg_argumentExtension,
5007 { "argumentExtension", "h450.2.argumentExtension",
5008 FT_UINT32, BASE_DEC, VALS(h450_2_T_cTUpdateArg_argumentExtension_vals), 0,
5009 "T_cTUpdateArg_argumentExtension", HFILL }},
5010 { &hf_h450_2_redirectionSubaddress,
5011 { "redirectionSubaddress", "h450.2.redirectionSubaddress",
5012 FT_UINT32, BASE_DEC, VALS(h450_PartySubaddress_vals), 0,
5013 "PartySubaddress", HFILL }},
5014 { &hf_h450_2_subaddressTransferArg_argumentExtension,
5015 { "argumentExtension", "h450.2.argumentExtension",
5016 FT_UINT32, BASE_DEC, VALS(h450_2_T_subaddressTransferArg_argumentExtension_vals), 0,
5017 "T_subaddressTransferArg_argumentExtension", HFILL }},
5018 { &hf_h450_2_endDesignation,
5019 { "endDesignation", "h450.2.endDesignation",
5020 FT_UINT32, BASE_DEC, VALS(h450_2_EndDesignation_vals), 0,
5021 NULL, HFILL }},
5022 { &hf_h450_2_callStatus,
5023 { "callStatus", "h450.2.callStatus",
5024 FT_UINT32, BASE_DEC, VALS(h450_2_CallStatus_vals), 0,
5025 NULL, HFILL }},
5026 { &hf_h450_2_cTCompleteArg_argumentExtension,
5027 { "argumentExtension", "h450.2.argumentExtension",
5028 FT_UINT32, BASE_DEC, VALS(h450_2_T_cTCompleteArg_argumentExtension_vals), 0,
5029 "T_cTCompleteArg_argumentExtension", HFILL }},
5030 { &hf_h450_2_connectedAddress,
5031 { "connectedAddress", "h450.2.connectedAddress_element",
5032 FT_NONE, BASE_NONE, NULL, 0,
5033 "EndpointAddress", HFILL }},
5034 { &hf_h450_2_connectedInfo,
5035 { "connectedInfo", "h450.2.connectedInfo",
5036 FT_STRING, BASE_NONE, NULL, 0,
5037 "BMPString_SIZE_1_128", HFILL }},
5038 { &hf_h450_2_cTActiveArg_argumentExtension,
5039 { "argumentExtension", "h450.2.argumentExtension",
5040 FT_UINT32, BASE_DEC, VALS(h450_2_T_cTActiveArg_argumentExtension_vals), 0,
5041 "T_cTActiveArg_argumentExtension", HFILL }},
5042 { &hf_h450_2_ExtensionSeq_item,
5043 { "Extension", "h450.2.Extension_element",
5044 FT_NONE, BASE_NONE, NULL, 0,
5045 NULL, HFILL }},
5046 { &hf_h450_2_unspecified_extension,
5047 { "extension", "h450.2.extension_element",
5048 FT_NONE, BASE_NONE, NULL, 0,
5049 NULL, HFILL }},
5050 { &hf_h450_2_nonStandard,
5051 { "nonStandard", "h450.2.nonStandard_element",
5052 FT_NONE, BASE_NONE, NULL, 0,
5053 "NonStandardParameter", HFILL }},
5055 /* --- Module Call-Diversion-Operations --- --- --- */
5057 { &hf_h450_3_h450_3_ARG_activateDiversionQ_PDU,
5058 { "ARG-activateDiversionQ", "h450.3.ARG_activateDiversionQ_element",
5059 FT_NONE, BASE_NONE, NULL, 0,
5060 NULL, HFILL }},
5061 { &hf_h450_3_h450_3_RES_activateDiversionQ_PDU,
5062 { "RES-activateDiversionQ", "h450.3.RES_activateDiversionQ",
5063 FT_UINT32, BASE_DEC, VALS(h450_3_RES_activateDiversionQ_vals), 0,
5064 NULL, HFILL }},
5065 { &hf_h450_3_h450_3_ARG_deactivateDiversionQ_PDU,
5066 { "ARG-deactivateDiversionQ", "h450.3.ARG_deactivateDiversionQ_element",
5067 FT_NONE, BASE_NONE, NULL, 0,
5068 NULL, HFILL }},
5069 { &hf_h450_3_h450_3_RES_deactivateDiversionQ_PDU,
5070 { "RES-deactivateDiversionQ", "h450.3.RES_deactivateDiversionQ",
5071 FT_UINT32, BASE_DEC, VALS(h450_3_RES_deactivateDiversionQ_vals), 0,
5072 NULL, HFILL }},
5073 { &hf_h450_3_h450_3_ARG_interrogateDiversionQ_PDU,
5074 { "ARG-interrogateDiversionQ", "h450.3.ARG_interrogateDiversionQ_element",
5075 FT_NONE, BASE_NONE, NULL, 0,
5076 NULL, HFILL }},
5077 { &hf_h450_3_h450_3_IntResultList_PDU,
5078 { "IntResultList", "h450.3.IntResultList",
5079 FT_UINT32, BASE_DEC, NULL, 0,
5080 NULL, HFILL }},
5081 { &hf_h450_3_h450_3_ARG_checkRestriction_PDU,
5082 { "ARG-checkRestriction", "h450.3.ARG_checkRestriction_element",
5083 FT_NONE, BASE_NONE, NULL, 0,
5084 NULL, HFILL }},
5085 { &hf_h450_3_h450_3_RES_checkRestriction_PDU,
5086 { "RES-checkRestriction", "h450.3.RES_checkRestriction",
5087 FT_UINT32, BASE_DEC, VALS(h450_3_RES_checkRestriction_vals), 0,
5088 NULL, HFILL }},
5089 { &hf_h450_3_h450_3_ARG_callRerouting_PDU,
5090 { "ARG-callRerouting", "h450.3.ARG_callRerouting_element",
5091 FT_NONE, BASE_NONE, NULL, 0,
5092 NULL, HFILL }},
5093 { &hf_h450_3_h450_3_RES_callRerouting_PDU,
5094 { "RES-callRerouting", "h450.3.RES_callRerouting",
5095 FT_UINT32, BASE_DEC, VALS(h450_3_RES_callRerouting_vals), 0,
5096 NULL, HFILL }},
5097 { &hf_h450_3_h450_3_ARG_divertingLegInformation1_PDU,
5098 { "ARG-divertingLegInformation1", "h450.3.ARG_divertingLegInformation1_element",
5099 FT_NONE, BASE_NONE, NULL, 0,
5100 NULL, HFILL }},
5101 { &hf_h450_3_h450_3_ARG_divertingLegInformation2_PDU,
5102 { "ARG-divertingLegInformation2", "h450.3.ARG_divertingLegInformation2_element",
5103 FT_NONE, BASE_NONE, NULL, 0,
5104 NULL, HFILL }},
5105 { &hf_h450_3_h450_3_ARG_divertingLegInformation3_PDU,
5106 { "ARG-divertingLegInformation3", "h450.3.ARG_divertingLegInformation3_element",
5107 FT_NONE, BASE_NONE, NULL, 0,
5108 NULL, HFILL }},
5109 { &hf_h450_3_h450_3_ARG_divertingLegInformation4_PDU,
5110 { "ARG-divertingLegInformation4", "h450.3.ARG_divertingLegInformation4_element",
5111 FT_NONE, BASE_NONE, NULL, 0,
5112 NULL, HFILL }},
5113 { &hf_h450_3_h450_3_ARG_cfnrDivertedLegFailed_PDU,
5114 { "ARG-cfnrDivertedLegFailed", "h450.3.ARG_cfnrDivertedLegFailed",
5115 FT_UINT32, BASE_DEC, VALS(h450_3_ARG_cfnrDivertedLegFailed_vals), 0,
5116 NULL, HFILL }},
5117 { &hf_h450_3_h450_3_PAR_unspecified_PDU,
5118 { "PAR-unspecified", "h450.3.PAR_unspecified",
5119 FT_UINT32, BASE_DEC, VALS(h450_3_PAR_unspecified_vals), 0,
5120 NULL, HFILL }},
5121 { &hf_h450_3_procedure,
5122 { "procedure", "h450.3.procedure",
5123 FT_UINT32, BASE_DEC, VALS(h450_3_Procedure_vals), 0,
5124 NULL, HFILL }},
5125 { &hf_h450_3_basicService,
5126 { "basicService", "h450.3.basicService",
5127 FT_UINT32, BASE_DEC, VALS(h450_3_BasicService_vals), 0,
5128 NULL, HFILL }},
5129 { &hf_h450_3_divertedToAddress,
5130 { "divertedToAddress", "h450.3.divertedToAddress_element",
5131 FT_NONE, BASE_NONE, NULL, 0,
5132 "EndpointAddress", HFILL }},
5133 { &hf_h450_3_servedUserNr,
5134 { "servedUserNr", "h450.3.servedUserNr_element",
5135 FT_NONE, BASE_NONE, NULL, 0,
5136 "EndpointAddress", HFILL }},
5137 { &hf_h450_3_activatingUserNr,
5138 { "activatingUserNr", "h450.3.activatingUserNr_element",
5139 FT_NONE, BASE_NONE, NULL, 0,
5140 "EndpointAddress", HFILL }},
5141 { &hf_h450_3_activateDiversionQArg_extension,
5142 { "extension", "h450.3.extension",
5143 FT_UINT32, BASE_DEC, VALS(h450_3_ActivateDiversionQArg_extension_vals), 0,
5144 "ActivateDiversionQArg_extension", HFILL }},
5145 { &hf_h450_3_extensionSeq,
5146 { "extensionSeq", "h450.3.extensionSeq",
5147 FT_UINT32, BASE_DEC, NULL, 0,
5148 NULL, HFILL }},
5149 { &hf_h450_3_nonStandardData,
5150 { "nonStandardData", "h450.3.nonStandardData_element",
5151 FT_NONE, BASE_NONE, NULL, 0,
5152 "NonStandardParameter", HFILL }},
5153 { &hf_h450_3_deactivatingUserNr,
5154 { "deactivatingUserNr", "h450.3.deactivatingUserNr_element",
5155 FT_NONE, BASE_NONE, NULL, 0,
5156 "EndpointAddress", HFILL }},
5157 { &hf_h450_3_deactivateDiversionQArg_extension,
5158 { "extension", "h450.3.extension",
5159 FT_UINT32, BASE_DEC, VALS(h450_3_DeactivateDiversionQArg_extension_vals), 0,
5160 "DeactivateDiversionQArg_extension", HFILL }},
5161 { &hf_h450_3_interrogatingUserNr,
5162 { "interrogatingUserNr", "h450.3.interrogatingUserNr_element",
5163 FT_NONE, BASE_NONE, NULL, 0,
5164 "EndpointAddress", HFILL }},
5165 { &hf_h450_3_interrogateDiversionQ_extension,
5166 { "extension", "h450.3.extension",
5167 FT_UINT32, BASE_DEC, VALS(h450_3_InterrogateDiversionQ_extension_vals), 0,
5168 "InterrogateDiversionQ_extension", HFILL }},
5169 { &hf_h450_3_divertedToNr,
5170 { "divertedToNr", "h450.3.divertedToNr_element",
5171 FT_NONE, BASE_NONE, NULL, 0,
5172 "EndpointAddress", HFILL }},
5173 { &hf_h450_3_checkRestrictionArg_extension,
5174 { "extension", "h450.3.extension",
5175 FT_UINT32, BASE_DEC, VALS(h450_3_CheckRestrictionArg_extension_vals), 0,
5176 "CheckRestrictionArg_extension", HFILL }},
5177 { &hf_h450_3_reroutingReason,
5178 { "reroutingReason", "h450.3.reroutingReason",
5179 FT_UINT32, BASE_DEC, VALS(h450_3_DiversionReason_vals), 0,
5180 "DiversionReason", HFILL }},
5181 { &hf_h450_3_originalReroutingReason,
5182 { "originalReroutingReason", "h450.3.originalReroutingReason",
5183 FT_UINT32, BASE_DEC, VALS(h450_3_DiversionReason_vals), 0,
5184 "DiversionReason", HFILL }},
5185 { &hf_h450_3_calledAddress,
5186 { "calledAddress", "h450.3.calledAddress_element",
5187 FT_NONE, BASE_NONE, NULL, 0,
5188 "EndpointAddress", HFILL }},
5189 { &hf_h450_3_diversionCounter,
5190 { "diversionCounter", "h450.3.diversionCounter",
5191 FT_UINT32, BASE_DEC, NULL, 0,
5192 "INTEGER_1_15", HFILL }},
5193 { &hf_h450_3_h225InfoElement,
5194 { "h225InfoElement", "h450.3.h225InfoElement",
5195 FT_BYTES, BASE_NONE, NULL, 0,
5196 "H225InformationElement", HFILL }},
5197 { &hf_h450_3_lastReroutingNr,
5198 { "lastReroutingNr", "h450.3.lastReroutingNr_element",
5199 FT_NONE, BASE_NONE, NULL, 0,
5200 "EndpointAddress", HFILL }},
5201 { &hf_h450_3_subscriptionOption,
5202 { "subscriptionOption", "h450.3.subscriptionOption",
5203 FT_UINT32, BASE_DEC, VALS(h450_3_SubscriptionOption_vals), 0,
5204 NULL, HFILL }},
5205 { &hf_h450_3_callingPartySubaddress,
5206 { "callingPartySubaddress", "h450.3.callingPartySubaddress",
5207 FT_UINT32, BASE_DEC, VALS(h450_PartySubaddress_vals), 0,
5208 "PartySubaddress", HFILL }},
5209 { &hf_h450_3_callingNumber,
5210 { "callingNumber", "h450.3.callingNumber_element",
5211 FT_NONE, BASE_NONE, NULL, 0,
5212 "EndpointAddress", HFILL }},
5213 { &hf_h450_3_callingInfo,
5214 { "callingInfo", "h450.3.callingInfo",
5215 FT_STRING, BASE_NONE, NULL, 0,
5216 "BMPString_SIZE_1_128", HFILL }},
5217 { &hf_h450_3_originalCalledNr,
5218 { "originalCalledNr", "h450.3.originalCalledNr_element",
5219 FT_NONE, BASE_NONE, NULL, 0,
5220 "EndpointAddress", HFILL }},
5221 { &hf_h450_3_redirectingInfo,
5222 { "redirectingInfo", "h450.3.redirectingInfo",
5223 FT_STRING, BASE_NONE, NULL, 0,
5224 "BMPString_SIZE_1_128", HFILL }},
5225 { &hf_h450_3_originalCalledInfo,
5226 { "originalCalledInfo", "h450.3.originalCalledInfo",
5227 FT_STRING, BASE_NONE, NULL, 0,
5228 "BMPString_SIZE_1_128", HFILL }},
5229 { &hf_h450_3_callReroutingArg_extension,
5230 { "extension", "h450.3.extension",
5231 FT_UINT32, BASE_DEC, VALS(h450_3_CallReroutingArg_extension_vals), 0,
5232 "CallReroutingArg_extension", HFILL }},
5233 { &hf_h450_3_diversionReason,
5234 { "diversionReason", "h450.3.diversionReason",
5235 FT_UINT32, BASE_DEC, VALS(h450_3_DiversionReason_vals), 0,
5236 NULL, HFILL }},
5237 { &hf_h450_3_nominatedNr,
5238 { "nominatedNr", "h450.3.nominatedNr_element",
5239 FT_NONE, BASE_NONE, NULL, 0,
5240 "EndpointAddress", HFILL }},
5241 { &hf_h450_3_nominatedInfo,
5242 { "nominatedInfo", "h450.3.nominatedInfo",
5243 FT_STRING, BASE_NONE, NULL, 0,
5244 "BMPString_SIZE_1_128", HFILL }},
5245 { &hf_h450_3_redirectingNr,
5246 { "redirectingNr", "h450.3.redirectingNr_element",
5247 FT_NONE, BASE_NONE, NULL, 0,
5248 "EndpointAddress", HFILL }},
5249 { &hf_h450_3_divertingLegInformation1Arg_extension,
5250 { "extension", "h450.3.extension",
5251 FT_UINT32, BASE_DEC, VALS(h450_3_DivertingLegInformation1Arg_extension_vals), 0,
5252 "DivertingLegInformation1Arg_extension", HFILL }},
5253 { &hf_h450_3_originalDiversionReason,
5254 { "originalDiversionReason", "h450.3.originalDiversionReason",
5255 FT_UINT32, BASE_DEC, VALS(h450_3_DiversionReason_vals), 0,
5256 "DiversionReason", HFILL }},
5257 { &hf_h450_3_divertingNr,
5258 { "divertingNr", "h450.3.divertingNr_element",
5259 FT_NONE, BASE_NONE, NULL, 0,
5260 "EndpointAddress", HFILL }},
5261 { &hf_h450_3_divertingLegInformation2Arg_extension,
5262 { "extension", "h450.3.extension",
5263 FT_UINT32, BASE_DEC, VALS(h450_3_DivertingLegInformation2Arg_extension_vals), 0,
5264 "DivertingLegInformation2Arg_extension", HFILL }},
5265 { &hf_h450_3_presentationAllowedIndicator,
5266 { "presentationAllowedIndicator", "h450.3.presentationAllowedIndicator",
5267 FT_BOOLEAN, BASE_NONE, NULL, 0,
5268 NULL, HFILL }},
5269 { &hf_h450_3_redirectionNr,
5270 { "redirectionNr", "h450.3.redirectionNr_element",
5271 FT_NONE, BASE_NONE, NULL, 0,
5272 "EndpointAddress", HFILL }},
5273 { &hf_h450_3_redirectionInfo,
5274 { "redirectionInfo", "h450.3.redirectionInfo",
5275 FT_STRING, BASE_NONE, NULL, 0,
5276 "BMPString_SIZE_1_128", HFILL }},
5277 { &hf_h450_3_divertingLegInformation3Arg_extension,
5278 { "extension", "h450.3.extension",
5279 FT_UINT32, BASE_DEC, VALS(h450_3_DivertingLegInformation3Arg_extension_vals), 0,
5280 "DivertingLegInformation3Arg_extension", HFILL }},
5281 { &hf_h450_3_callingNr,
5282 { "callingNr", "h450.3.callingNr_element",
5283 FT_NONE, BASE_NONE, NULL, 0,
5284 "EndpointAddress", HFILL }},
5285 { &hf_h450_3_divertingLegInformation4Arg_extension,
5286 { "extension", "h450.3.extension",
5287 FT_UINT32, BASE_DEC, VALS(h450_3_DivertingLegInformation4Arg_extension_vals), 0,
5288 "DivertingLegInformation4Arg_extension", HFILL }},
5289 { &hf_h450_3_IntResultList_item,
5290 { "IntResult", "h450.3.IntResult_element",
5291 FT_NONE, BASE_NONE, NULL, 0,
5292 NULL, HFILL }},
5293 { &hf_h450_3_remoteEnabled,
5294 { "remoteEnabled", "h450.3.remoteEnabled",
5295 FT_BOOLEAN, BASE_NONE, NULL, 0,
5296 "BOOLEAN", HFILL }},
5297 { &hf_h450_3_intResult_extension,
5298 { "extension", "h450.3.extension",
5299 FT_UINT32, BASE_DEC, VALS(h450_3_IntResult_extension_vals), 0,
5300 "IntResult_extension", HFILL }},
5301 { &hf_h450_3_unspecified_extension,
5302 { "extension", "h450.3.extension_element",
5303 FT_NONE, BASE_NONE, NULL, 0,
5304 NULL, HFILL }},
5305 { &hf_h450_3_nonStandard,
5306 { "nonStandard", "h450.3.nonStandard_element",
5307 FT_NONE, BASE_NONE, NULL, 0,
5308 "NonStandardParameter", HFILL }},
5309 { &hf_h450_3_ExtensionSeq_item,
5310 { "Extension", "h450.3.Extension_element",
5311 FT_NONE, BASE_NONE, NULL, 0,
5312 NULL, HFILL }},
5314 /* --- Module Call-Hold-Operations --- --- --- */
5316 { &hf_h450_4_h450_4_HoldNotificArg_PDU,
5317 { "HoldNotificArg", "h450.4.HoldNotificArg_element",
5318 FT_NONE, BASE_NONE, NULL, 0,
5319 NULL, HFILL }},
5320 { &hf_h450_4_h450_4_RetrieveNotificArg_PDU,
5321 { "RetrieveNotificArg", "h450.4.RetrieveNotificArg_element",
5322 FT_NONE, BASE_NONE, NULL, 0,
5323 NULL, HFILL }},
5324 { &hf_h450_4_h450_4_RemoteHoldArg_PDU,
5325 { "RemoteHoldArg", "h450.4.RemoteHoldArg_element",
5326 FT_NONE, BASE_NONE, NULL, 0,
5327 NULL, HFILL }},
5328 { &hf_h450_4_h450_4_RemoteHoldRes_PDU,
5329 { "RemoteHoldRes", "h450.4.RemoteHoldRes_element",
5330 FT_NONE, BASE_NONE, NULL, 0,
5331 NULL, HFILL }},
5332 { &hf_h450_4_h450_4_RemoteRetrieveArg_PDU,
5333 { "RemoteRetrieveArg", "h450.4.RemoteRetrieveArg_element",
5334 FT_NONE, BASE_NONE, NULL, 0,
5335 NULL, HFILL }},
5336 { &hf_h450_4_h450_4_RemoteRetrieveRes_PDU,
5337 { "RemoteRetrieveRes", "h450.4.RemoteRetrieveRes_element",
5338 FT_NONE, BASE_NONE, NULL, 0,
5339 NULL, HFILL }},
5340 { &hf_h450_4_h450_4_PAR_undefined_PDU,
5341 { "PAR-undefined", "h450.4.PAR_undefined",
5342 FT_UINT32, BASE_DEC, NULL, 0,
5343 NULL, HFILL }},
5344 { &hf_h450_4_holdNotificArg_extensionArg,
5345 { "extensionArg", "h450.4.extensionArg",
5346 FT_UINT32, BASE_DEC, NULL, 0,
5347 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5348 { &hf_h450_4_holdNotificArg_extensionArg_item,
5349 { "MixedExtension", "h450.4.MixedExtension",
5350 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5351 NULL, HFILL }},
5352 { &hf_h450_4_retrieveNotificArg_extensionArg,
5353 { "extensionArg", "h450.4.extensionArg",
5354 FT_UINT32, BASE_DEC, NULL, 0,
5355 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5356 { &hf_h450_4_retrieveNotificArg_extensionArg_item,
5357 { "MixedExtension", "h450.4.MixedExtension",
5358 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5359 NULL, HFILL }},
5360 { &hf_h450_4_remoteHoldArg_extensionArg,
5361 { "extensionArg", "h450.4.extensionArg",
5362 FT_UINT32, BASE_DEC, NULL, 0,
5363 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5364 { &hf_h450_4_remoteHoldArg_extensionArg_item,
5365 { "MixedExtension", "h450.4.MixedExtension",
5366 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5367 NULL, HFILL }},
5368 { &hf_h450_4_extensionRes,
5369 { "extensionRes", "h450.4.extensionRes",
5370 FT_UINT32, BASE_DEC, NULL, 0,
5371 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5372 { &hf_h450_4_extensionRes_item,
5373 { "MixedExtension", "h450.4.MixedExtension",
5374 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5375 NULL, HFILL }},
5376 { &hf_h450_4_remoteRetrieveArg_extensionArg,
5377 { "extensionArg", "h450.4.extensionArg",
5378 FT_UINT32, BASE_DEC, NULL, 0,
5379 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5380 { &hf_h450_4_remoteRetrieveArg_extensionArg_item,
5381 { "MixedExtension", "h450.4.MixedExtension",
5382 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5383 NULL, HFILL }},
5384 { &hf_h450_4_mixedExtension_extension,
5385 { "extension", "h450.4.extension_element",
5386 FT_NONE, BASE_NONE, NULL, 0,
5387 NULL, HFILL }},
5388 { &hf_h450_4_nonStandardData,
5389 { "nonStandardData", "h450.4.nonStandardData_element",
5390 FT_NONE, BASE_NONE, NULL, 0,
5391 "NonStandardParameter", HFILL }},
5392 { &hf_h450_4_PAR_undefined_item,
5393 { "MixedExtension", "h450.4.MixedExtension",
5394 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5395 NULL, HFILL }},
5397 /* --- Module Call-Park-Pickup-Operations --- --- --- */
5399 { &hf_h450_5_h450_5_CpRequestArg_PDU,
5400 { "CpRequestArg", "h450.5.CpRequestArg_element",
5401 FT_NONE, BASE_NONE, NULL, 0,
5402 NULL, HFILL }},
5403 { &hf_h450_5_h450_5_CpRequestRes_PDU,
5404 { "CpRequestRes", "h450.5.CpRequestRes_element",
5405 FT_NONE, BASE_NONE, NULL, 0,
5406 NULL, HFILL }},
5407 { &hf_h450_5_h450_5_CpSetupArg_PDU,
5408 { "CpSetupArg", "h450.5.CpSetupArg_element",
5409 FT_NONE, BASE_NONE, NULL, 0,
5410 NULL, HFILL }},
5411 { &hf_h450_5_h450_5_CpSetupRes_PDU,
5412 { "CpSetupRes", "h450.5.CpSetupRes_element",
5413 FT_NONE, BASE_NONE, NULL, 0,
5414 NULL, HFILL }},
5415 { &hf_h450_5_h450_5_GroupIndicationOnArg_PDU,
5416 { "GroupIndicationOnArg", "h450.5.GroupIndicationOnArg_element",
5417 FT_NONE, BASE_NONE, NULL, 0,
5418 NULL, HFILL }},
5419 { &hf_h450_5_h450_5_GroupIndicationOnRes_PDU,
5420 { "GroupIndicationOnRes", "h450.5.GroupIndicationOnRes_element",
5421 FT_NONE, BASE_NONE, NULL, 0,
5422 NULL, HFILL }},
5423 { &hf_h450_5_h450_5_GroupIndicationOffArg_PDU,
5424 { "GroupIndicationOffArg", "h450.5.GroupIndicationOffArg_element",
5425 FT_NONE, BASE_NONE, NULL, 0,
5426 NULL, HFILL }},
5427 { &hf_h450_5_h450_5_GroupIndicationOffRes_PDU,
5428 { "GroupIndicationOffRes", "h450.5.GroupIndicationOffRes_element",
5429 FT_NONE, BASE_NONE, NULL, 0,
5430 NULL, HFILL }},
5431 { &hf_h450_5_h450_5_PickrequArg_PDU,
5432 { "PickrequArg", "h450.5.PickrequArg_element",
5433 FT_NONE, BASE_NONE, NULL, 0,
5434 NULL, HFILL }},
5435 { &hf_h450_5_h450_5_PickrequRes_PDU,
5436 { "PickrequRes", "h450.5.PickrequRes_element",
5437 FT_NONE, BASE_NONE, NULL, 0,
5438 NULL, HFILL }},
5439 { &hf_h450_5_h450_5_PickupArg_PDU,
5440 { "PickupArg", "h450.5.PickupArg_element",
5441 FT_NONE, BASE_NONE, NULL, 0,
5442 NULL, HFILL }},
5443 { &hf_h450_5_h450_5_PickupRes_PDU,
5444 { "PickupRes", "h450.5.PickupRes_element",
5445 FT_NONE, BASE_NONE, NULL, 0,
5446 NULL, HFILL }},
5447 { &hf_h450_5_h450_5_PickExeArg_PDU,
5448 { "PickExeArg", "h450.5.PickExeArg_element",
5449 FT_NONE, BASE_NONE, NULL, 0,
5450 NULL, HFILL }},
5451 { &hf_h450_5_h450_5_PickExeRes_PDU,
5452 { "PickExeRes", "h450.5.PickExeRes_element",
5453 FT_NONE, BASE_NONE, NULL, 0,
5454 NULL, HFILL }},
5455 { &hf_h450_5_h450_5_CpNotifyArg_PDU,
5456 { "CpNotifyArg", "h450.5.CpNotifyArg_element",
5457 FT_NONE, BASE_NONE, NULL, 0,
5458 NULL, HFILL }},
5459 { &hf_h450_5_h450_5_CpickupNotifyArg_PDU,
5460 { "CpickupNotifyArg", "h450.5.CpickupNotifyArg_element",
5461 FT_NONE, BASE_NONE, NULL, 0,
5462 NULL, HFILL }},
5463 { &hf_h450_5_h450_5_PAR_undefined_PDU,
5464 { "PAR-undefined", "h450.5.PAR_undefined",
5465 FT_UINT32, BASE_DEC, NULL, 0,
5466 NULL, HFILL }},
5467 { &hf_h450_5_parkingNumber,
5468 { "parkingNumber", "h450.5.parkingNumber_element",
5469 FT_NONE, BASE_NONE, NULL, 0,
5470 "EndpointAddress", HFILL }},
5471 { &hf_h450_5_parkedNumber,
5472 { "parkedNumber", "h450.5.parkedNumber_element",
5473 FT_NONE, BASE_NONE, NULL, 0,
5474 "EndpointAddress", HFILL }},
5475 { &hf_h450_5_parkedToNumber,
5476 { "parkedToNumber", "h450.5.parkedToNumber_element",
5477 FT_NONE, BASE_NONE, NULL, 0,
5478 "EndpointAddress", HFILL }},
5479 { &hf_h450_5_parkedToPosition,
5480 { "parkedToPosition", "h450.5.parkedToPosition",
5481 FT_UINT32, BASE_DEC, NULL, 0,
5482 NULL, HFILL }},
5483 { &hf_h450_5_cpRequestArg_extensionArg,
5484 { "extensionArg", "h450.5.extensionArg",
5485 FT_UINT32, BASE_DEC, NULL, 0,
5486 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5487 { &hf_h450_5_cpRequestArg_extensionArg_item,
5488 { "MixedExtension", "h450.5.MixedExtension",
5489 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5490 NULL, HFILL }},
5491 { &hf_h450_5_parkCondition,
5492 { "parkCondition", "h450.5.parkCondition",
5493 FT_UINT32, BASE_DEC, VALS(h450_5_ParkCondition_vals), 0,
5494 NULL, HFILL }},
5495 { &hf_h450_5_extensionRes,
5496 { "extensionRes", "h450.5.extensionRes",
5497 FT_UINT32, BASE_DEC, NULL, 0,
5498 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5499 { &hf_h450_5_extensionRes_item,
5500 { "MixedExtension", "h450.5.MixedExtension",
5501 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5502 NULL, HFILL }},
5503 { &hf_h450_5_cpSetupArg_extensionArg,
5504 { "extensionArg", "h450.5.extensionArg",
5505 FT_UINT32, BASE_DEC, NULL, 0,
5506 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5507 { &hf_h450_5_cpSetupArg_extensionArg_item,
5508 { "MixedExtension", "h450.5.MixedExtension",
5509 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5510 NULL, HFILL }},
5511 { &hf_h450_5_callPickupId,
5512 { "callPickupId", "h450.5.callPickupId_element",
5513 FT_NONE, BASE_NONE, NULL, 0,
5514 "CallIdentifier", HFILL }},
5515 { &hf_h450_5_groupMemberUserNr,
5516 { "groupMemberUserNr", "h450.5.groupMemberUserNr_element",
5517 FT_NONE, BASE_NONE, NULL, 0,
5518 "EndpointAddress", HFILL }},
5519 { &hf_h450_5_retrieveCallType,
5520 { "retrieveCallType", "h450.5.retrieveCallType",
5521 FT_UINT32, BASE_DEC, VALS(h450_5_CallType_vals), 0,
5522 "CallType", HFILL }},
5523 { &hf_h450_5_partyToRetrieve,
5524 { "partyToRetrieve", "h450.5.partyToRetrieve_element",
5525 FT_NONE, BASE_NONE, NULL, 0,
5526 "EndpointAddress", HFILL }},
5527 { &hf_h450_5_retrieveAddress,
5528 { "retrieveAddress", "h450.5.retrieveAddress_element",
5529 FT_NONE, BASE_NONE, NULL, 0,
5530 "EndpointAddress", HFILL }},
5531 { &hf_h450_5_parkPosition,
5532 { "parkPosition", "h450.5.parkPosition",
5533 FT_UINT32, BASE_DEC, NULL, 0,
5534 "ParkedToPosition", HFILL }},
5535 { &hf_h450_5_groupIndicationOnArg_extensionArg,
5536 { "extensionArg", "h450.5.extensionArg",
5537 FT_UINT32, BASE_DEC, NULL, 0,
5538 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5539 { &hf_h450_5_groupIndicationOnArg_extensionArg_item,
5540 { "MixedExtension", "h450.5.MixedExtension",
5541 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5542 NULL, HFILL }},
5543 { &hf_h450_5_groupIndicationOffArg_extensionArg,
5544 { "extensionArg", "h450.5.extensionArg",
5545 FT_UINT32, BASE_DEC, NULL, 0,
5546 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5547 { &hf_h450_5_groupIndicationOffArg_extensionArg_item,
5548 { "MixedExtension", "h450.5.MixedExtension",
5549 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5550 NULL, HFILL }},
5551 { &hf_h450_5_picking_upNumber,
5552 { "picking-upNumber", "h450.5.picking_upNumber_element",
5553 FT_NONE, BASE_NONE, NULL, 0,
5554 "EndpointAddress", HFILL }},
5555 { &hf_h450_5_pickrequArg_extensionArg,
5556 { "extensionArg", "h450.5.extensionArg",
5557 FT_UINT32, BASE_DEC, NULL, 0,
5558 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5559 { &hf_h450_5_pickrequArg_extensionArg_item,
5560 { "MixedExtension", "h450.5.MixedExtension",
5561 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5562 NULL, HFILL }},
5563 { &hf_h450_5_pickupArg_extensionArg,
5564 { "extensionArg", "h450.5.extensionArg",
5565 FT_UINT32, BASE_DEC, NULL, 0,
5566 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5567 { &hf_h450_5_pickupArg_extensionArg_item,
5568 { "MixedExtension", "h450.5.MixedExtension",
5569 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5570 NULL, HFILL }},
5571 { &hf_h450_5_pickExeArg_extensionArg,
5572 { "extensionArg", "h450.5.extensionArg",
5573 FT_UINT32, BASE_DEC, NULL, 0,
5574 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5575 { &hf_h450_5_pickExeArg_extensionArg_item,
5576 { "MixedExtension", "h450.5.MixedExtension",
5577 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5578 NULL, HFILL }},
5579 { &hf_h450_5_cpNotifyArg_extensionArg,
5580 { "extensionArg", "h450.5.extensionArg",
5581 FT_UINT32, BASE_DEC, NULL, 0,
5582 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5583 { &hf_h450_5_cpNotifyArg_extensionArg_item,
5584 { "MixedExtension", "h450.5.MixedExtension",
5585 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5586 NULL, HFILL }},
5587 { &hf_h450_5_cpickupNotifyArg_extensionArg,
5588 { "extensionArg", "h450.5.extensionArg",
5589 FT_UINT32, BASE_DEC, NULL, 0,
5590 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5591 { &hf_h450_5_cpickupNotifyArg_extensionArg_item,
5592 { "MixedExtension", "h450.5.MixedExtension",
5593 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5594 NULL, HFILL }},
5595 { &hf_h450_5_PAR_undefined_item,
5596 { "MixedExtension", "h450.5.MixedExtension",
5597 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5598 NULL, HFILL }},
5600 /* --- Module Call-Waiting-Operations --- --- --- */
5602 { &hf_h450_6_h450_6_CallWaitingArg_PDU,
5603 { "CallWaitingArg", "h450.6.CallWaitingArg_element",
5604 FT_NONE, BASE_NONE, NULL, 0,
5605 NULL, HFILL }},
5606 { &hf_h450_6_nbOfAddWaitingCalls,
5607 { "nbOfAddWaitingCalls", "h450.6.nbOfAddWaitingCalls",
5608 FT_UINT32, BASE_DEC, NULL, 0,
5609 "INTEGER_0_255", HFILL }},
5610 { &hf_h450_6_callWaitingArg_extensionArg,
5611 { "extensionArg", "h450.6.extensionArg",
5612 FT_UINT32, BASE_DEC, NULL, 0,
5613 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5614 { &hf_h450_6_callWaitingArg_extensionArg_item,
5615 { "MixedExtension", "h450.6.MixedExtension",
5616 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5617 NULL, HFILL }},
5619 /* --- Module Message-Waiting-Indication-Operations --- --- --- */
5621 { &hf_h450_7_h450_7_MWIActivateArg_PDU,
5622 { "MWIActivateArg", "h450.7.MWIActivateArg_element",
5623 FT_NONE, BASE_NONE, NULL, 0,
5624 NULL, HFILL }},
5625 { &hf_h450_7_h450_7_DummyRes_PDU,
5626 { "DummyRes", "h450.7.DummyRes",
5627 FT_UINT32, BASE_DEC, NULL, 0,
5628 NULL, HFILL }},
5629 { &hf_h450_7_h450_7_MWIDeactivateArg_PDU,
5630 { "MWIDeactivateArg", "h450.7.MWIDeactivateArg_element",
5631 FT_NONE, BASE_NONE, NULL, 0,
5632 NULL, HFILL }},
5633 { &hf_h450_7_h450_7_MWIInterrogateArg_PDU,
5634 { "MWIInterrogateArg", "h450.7.MWIInterrogateArg_element",
5635 FT_NONE, BASE_NONE, NULL, 0,
5636 NULL, HFILL }},
5637 { &hf_h450_7_h450_7_MWIInterrogateRes_PDU,
5638 { "MWIInterrogateRes", "h450.7.MWIInterrogateRes",
5639 FT_UINT32, BASE_DEC, NULL, 0,
5640 NULL, HFILL }},
5641 { &hf_h450_7_h450_7_PAR_undefined_PDU,
5642 { "PAR-undefined", "h450.7.PAR_undefined",
5643 FT_UINT32, BASE_DEC, NULL, 0,
5644 NULL, HFILL }},
5645 { &hf_h450_7_servedUserNr,
5646 { "servedUserNr", "h450.7.servedUserNr_element",
5647 FT_NONE, BASE_NONE, NULL, 0,
5648 "EndpointAddress", HFILL }},
5649 { &hf_h450_7_basicService,
5650 { "basicService", "h450.7.basicService",
5651 FT_UINT32, BASE_DEC, VALS(h450_7_BasicService_vals), 0,
5652 NULL, HFILL }},
5653 { &hf_h450_7_msgCentreId,
5654 { "msgCentreId", "h450.7.msgCentreId",
5655 FT_UINT32, BASE_DEC, VALS(h450_7_MsgCentreId_vals), 0,
5656 NULL, HFILL }},
5657 { &hf_h450_7_nbOfMessages,
5658 { "nbOfMessages", "h450.7.nbOfMessages",
5659 FT_UINT32, BASE_DEC, NULL, 0,
5660 NULL, HFILL }},
5661 { &hf_h450_7_originatingNr,
5662 { "originatingNr", "h450.7.originatingNr_element",
5663 FT_NONE, BASE_NONE, NULL, 0,
5664 "EndpointAddress", HFILL }},
5665 { &hf_h450_7_timestamp,
5666 { "timestamp", "h450.7.timestamp",
5667 FT_STRING, BASE_NONE, NULL, 0,
5668 NULL, HFILL }},
5669 { &hf_h450_7_priority,
5670 { "priority", "h450.7.priority",
5671 FT_UINT32, BASE_DEC, NULL, 0,
5672 "INTEGER_0_9", HFILL }},
5673 { &hf_h450_7_mWIActivateArg_extensionArg,
5674 { "extensionArg", "h450.7.extensionArg",
5675 FT_UINT32, BASE_DEC, NULL, 0,
5676 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5677 { &hf_h450_7_mWIActivateArg_extensionArg_item,
5678 { "MixedExtension", "h450.7.MixedExtension",
5679 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5680 NULL, HFILL }},
5681 { &hf_h450_7_DummyRes_item,
5682 { "MixedExtension", "h450.7.MixedExtension",
5683 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5684 NULL, HFILL }},
5685 { &hf_h450_7_callbackReq,
5686 { "callbackReq", "h450.7.callbackReq",
5687 FT_BOOLEAN, BASE_NONE, NULL, 0,
5688 "BOOLEAN", HFILL }},
5689 { &hf_h450_7_mWIDeactivateArg_extensionArg,
5690 { "extensionArg", "h450.7.extensionArg",
5691 FT_UINT32, BASE_DEC, NULL, 0,
5692 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5693 { &hf_h450_7_mWIDeactivateArg_extensionArg_item,
5694 { "MixedExtension", "h450.7.MixedExtension",
5695 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5696 NULL, HFILL }},
5697 { &hf_h450_7_mWIInterrogateArg_extensionArg,
5698 { "extensionArg", "h450.7.extensionArg",
5699 FT_UINT32, BASE_DEC, NULL, 0,
5700 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5701 { &hf_h450_7_mWIInterrogateArg_extensionArg_item,
5702 { "MixedExtension", "h450.7.MixedExtension",
5703 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5704 NULL, HFILL }},
5705 { &hf_h450_7_MWIInterrogateRes_item,
5706 { "MWIInterrogateResElt", "h450.7.MWIInterrogateResElt_element",
5707 FT_NONE, BASE_NONE, NULL, 0,
5708 NULL, HFILL }},
5709 { &hf_h450_7_mWIInterrogateResElt_extensionArg,
5710 { "extensionArg", "h450.7.extensionArg",
5711 FT_UINT32, BASE_DEC, NULL, 0,
5712 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5713 { &hf_h450_7_mWIInterrogateResElt_extensionArg_item,
5714 { "MixedExtension", "h450.7.MixedExtension",
5715 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5716 NULL, HFILL }},
5717 { &hf_h450_7_integer,
5718 { "integer", "h450.7.integer",
5719 FT_UINT32, BASE_DEC, NULL, 0,
5720 "INTEGER_0_65535", HFILL }},
5721 { &hf_h450_7_partyNumber,
5722 { "partyNumber", "h450.7.partyNumber_element",
5723 FT_NONE, BASE_NONE, NULL, 0,
5724 "EndpointAddress", HFILL }},
5725 { &hf_h450_7_numericString,
5726 { "numericString", "h450.7.numericString",
5727 FT_STRING, BASE_NONE, NULL, 0,
5728 "NumericString_SIZE_1_10", HFILL }},
5729 { &hf_h450_7_PAR_undefined_item,
5730 { "MixedExtension", "h450.7.MixedExtension",
5731 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5732 NULL, HFILL }},
5734 /* --- Module Name-Operations --- --- --- */
5736 { &hf_h450_8_h450_8_ARG_callingName_PDU,
5737 { "ARG-callingName", "h450.8.ARG_callingName_element",
5738 FT_NONE, BASE_NONE, NULL, 0,
5739 NULL, HFILL }},
5740 { &hf_h450_8_h450_8_ARG_alertingName_PDU,
5741 { "ARG-alertingName", "h450.8.ARG_alertingName_element",
5742 FT_NONE, BASE_NONE, NULL, 0,
5743 NULL, HFILL }},
5744 { &hf_h450_8_h450_8_ARG_connectedName_PDU,
5745 { "ARG-connectedName", "h450.8.ARG_connectedName_element",
5746 FT_NONE, BASE_NONE, NULL, 0,
5747 NULL, HFILL }},
5748 { &hf_h450_8_h450_8_ARG_busyName_PDU,
5749 { "ARG-busyName", "h450.8.ARG_busyName_element",
5750 FT_NONE, BASE_NONE, NULL, 0,
5751 NULL, HFILL }},
5752 { &hf_h450_8_name,
5753 { "name", "h450.8.name",
5754 FT_UINT32, BASE_DEC, VALS(h450_8_Name_vals), 0,
5755 NULL, HFILL }},
5756 { &hf_h450_8_extensionArg,
5757 { "extensionArg", "h450.8.extensionArg",
5758 FT_UINT32, BASE_DEC, NULL, 0,
5759 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5760 { &hf_h450_8_extensionArg_item,
5761 { "MixedExtension", "h450.8.MixedExtension",
5762 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5763 NULL, HFILL }},
5764 { &hf_h450_8_namePresentationAllowed,
5765 { "namePresentationAllowed", "h450.8.namePresentationAllowed",
5766 FT_UINT32, BASE_DEC, VALS(h450_8_NamePresentationAllowed_vals), 0,
5767 NULL, HFILL }},
5768 { &hf_h450_8_namePresentationRestricted,
5769 { "namePresentationRestricted", "h450.8.namePresentationRestricted",
5770 FT_UINT32, BASE_DEC, VALS(h450_8_NamePresentationRestricted_vals), 0,
5771 NULL, HFILL }},
5772 { &hf_h450_8_nameNotAvailable,
5773 { "nameNotAvailable", "h450.8.nameNotAvailable_element",
5774 FT_NONE, BASE_NONE, NULL, 0,
5775 NULL, HFILL }},
5776 { &hf_h450_8_simpleName,
5777 { "simpleName", "h450.8.simpleName",
5778 FT_BYTES, BASE_NONE, NULL, 0,
5779 NULL, HFILL }},
5780 { &hf_h450_8_extendedName,
5781 { "extendedName", "h450.8.extendedName",
5782 FT_STRING, BASE_NONE, NULL, 0,
5783 NULL, HFILL }},
5784 { &hf_h450_8_restrictedNull,
5785 { "restrictedNull", "h450.8.restrictedNull_element",
5786 FT_NONE, BASE_NONE, NULL, 0,
5787 NULL, HFILL }},
5789 /* --- Module Call-Completion-Operations --- --- --- */
5791 { &hf_h450_9_h450_9_CcRequestArg_PDU,
5792 { "CcRequestArg", "h450.9.CcRequestArg_element",
5793 FT_NONE, BASE_NONE, NULL, 0,
5794 NULL, HFILL }},
5795 { &hf_h450_9_h450_9_CcRequestRes_PDU,
5796 { "CcRequestRes", "h450.9.CcRequestRes_element",
5797 FT_NONE, BASE_NONE, NULL, 0,
5798 NULL, HFILL }},
5799 { &hf_h450_9_h450_9_CcArg_PDU,
5800 { "CcArg", "h450.9.CcArg",
5801 FT_UINT32, BASE_DEC, VALS(h450_9_CcArg_vals), 0,
5802 NULL, HFILL }},
5803 { &hf_h450_9_h450_9_CcShortArg_PDU,
5804 { "CcShortArg", "h450.9.CcShortArg_element",
5805 FT_NONE, BASE_NONE, NULL, 0,
5806 NULL, HFILL }},
5807 { &hf_h450_9_numberA,
5808 { "numberA", "h450.9.numberA_element",
5809 FT_NONE, BASE_NONE, NULL, 0,
5810 "EndpointAddress", HFILL }},
5811 { &hf_h450_9_numberB,
5812 { "numberB", "h450.9.numberB_element",
5813 FT_NONE, BASE_NONE, NULL, 0,
5814 "EndpointAddress", HFILL }},
5815 { &hf_h450_9_ccIdentifier,
5816 { "ccIdentifier", "h450.9.ccIdentifier_element",
5817 FT_NONE, BASE_NONE, NULL, 0,
5818 "CallIdentifier", HFILL }},
5819 { &hf_h450_9_service,
5820 { "service", "h450.9.service",
5821 FT_UINT32, BASE_DEC, VALS(h450_7_BasicService_vals), 0,
5822 "BasicService", HFILL }},
5823 { &hf_h450_9_can_retain_service,
5824 { "can-retain-service", "h450.9.can_retain_service",
5825 FT_BOOLEAN, BASE_NONE, NULL, 0,
5826 "BOOLEAN", HFILL }},
5827 { &hf_h450_9_retain_sig_connection,
5828 { "retain-sig-connection", "h450.9.retain_sig_connection",
5829 FT_BOOLEAN, BASE_NONE, NULL, 0,
5830 "BOOLEAN", HFILL }},
5831 { &hf_h450_9_ccRequestArg_extension,
5832 { "extension", "h450.9.extension",
5833 FT_UINT32, BASE_DEC, NULL, 0,
5834 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5835 { &hf_h450_9_ccRequestArg_extension_item,
5836 { "MixedExtension", "h450.9.MixedExtension",
5837 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5838 NULL, HFILL }},
5839 { &hf_h450_9_retain_service,
5840 { "retain-service", "h450.9.retain_service",
5841 FT_BOOLEAN, BASE_NONE, NULL, 0,
5842 "BOOLEAN", HFILL }},
5843 { &hf_h450_9_ccRequestRes_extension,
5844 { "extension", "h450.9.extension",
5845 FT_UINT32, BASE_DEC, NULL, 0,
5846 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5847 { &hf_h450_9_ccRequestRes_extension_item,
5848 { "MixedExtension", "h450.9.MixedExtension",
5849 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5850 NULL, HFILL }},
5851 { &hf_h450_9_shortArg,
5852 { "shortArg", "h450.9.shortArg_element",
5853 FT_NONE, BASE_NONE, NULL, 0,
5854 "CcShortArg", HFILL }},
5855 { &hf_h450_9_longArg,
5856 { "longArg", "h450.9.longArg_element",
5857 FT_NONE, BASE_NONE, NULL, 0,
5858 "CcLongArg", HFILL }},
5859 { &hf_h450_9_ccShortArg_extension,
5860 { "extension", "h450.9.extension",
5861 FT_UINT32, BASE_DEC, NULL, 0,
5862 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5863 { &hf_h450_9_ccShortArg_extension_item,
5864 { "MixedExtension", "h450.9.MixedExtension",
5865 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5866 NULL, HFILL }},
5867 { &hf_h450_9_ccLongArg_extension,
5868 { "extension", "h450.9.extension",
5869 FT_UINT32, BASE_DEC, NULL, 0,
5870 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5871 { &hf_h450_9_ccLongArg_extension_item,
5872 { "MixedExtension", "h450.9.MixedExtension",
5873 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5874 NULL, HFILL }},
5876 /* --- Module Call-Offer-Operations --- --- --- */
5878 { &hf_h450_10_h450_10_CoReqOptArg_PDU,
5879 { "CoReqOptArg", "h450.10.CoReqOptArg_element",
5880 FT_NONE, BASE_NONE, NULL, 0,
5881 NULL, HFILL }},
5882 { &hf_h450_10_h450_10_RUAlertOptArg_PDU,
5883 { "RUAlertOptArg", "h450.10.RUAlertOptArg_element",
5884 FT_NONE, BASE_NONE, NULL, 0,
5885 NULL, HFILL }},
5886 { &hf_h450_10_h450_10_CfbOvrOptArg_PDU,
5887 { "CfbOvrOptArg", "h450.10.CfbOvrOptArg_element",
5888 FT_NONE, BASE_NONE, NULL, 0,
5889 NULL, HFILL }},
5890 { &hf_h450_10_coReqOptArg_extension,
5891 { "extension", "h450.10.extension",
5892 FT_UINT32, BASE_DEC, NULL, 0,
5893 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5894 { &hf_h450_10_coReqOptArg_extension_item,
5895 { "MixedExtension", "h450.10.MixedExtension",
5896 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5897 NULL, HFILL }},
5898 { &hf_h450_10_rUAlertOptArg_extension,
5899 { "extension", "h450.10.extension",
5900 FT_UINT32, BASE_DEC, NULL, 0,
5901 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5902 { &hf_h450_10_rUAlertOptArg_extension_item,
5903 { "MixedExtension", "h450.10.MixedExtension",
5904 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5905 NULL, HFILL }},
5906 { &hf_h450_10_cfbOvrOptArg_extension,
5907 { "extension", "h450.10.extension",
5908 FT_UINT32, BASE_DEC, NULL, 0,
5909 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5910 { &hf_h450_10_cfbOvrOptArg_extension_item,
5911 { "MixedExtension", "h450.10.MixedExtension",
5912 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5913 NULL, HFILL }},
5915 /* --- Module Call-Intrusion-Operations --- --- --- */
5917 { &hf_h450_11_h450_11_CIRequestArg_PDU,
5918 { "CIRequestArg", "h450.11.CIRequestArg_element",
5919 FT_NONE, BASE_NONE, NULL, 0,
5920 NULL, HFILL }},
5921 { &hf_h450_11_h450_11_CIRequestRes_PDU,
5922 { "CIRequestRes", "h450.11.CIRequestRes_element",
5923 FT_NONE, BASE_NONE, NULL, 0,
5924 NULL, HFILL }},
5925 { &hf_h450_11_h450_11_CIGetCIPLOptArg_PDU,
5926 { "CIGetCIPLOptArg", "h450.11.CIGetCIPLOptArg_element",
5927 FT_NONE, BASE_NONE, NULL, 0,
5928 NULL, HFILL }},
5929 { &hf_h450_11_h450_11_CIGetCIPLRes_PDU,
5930 { "CIGetCIPLRes", "h450.11.CIGetCIPLRes_element",
5931 FT_NONE, BASE_NONE, NULL, 0,
5932 NULL, HFILL }},
5933 { &hf_h450_11_h450_11_CIIsOptArg_PDU,
5934 { "CIIsOptArg", "h450.11.CIIsOptArg_element",
5935 FT_NONE, BASE_NONE, NULL, 0,
5936 NULL, HFILL }},
5937 { &hf_h450_11_h450_11_CIIsOptRes_PDU,
5938 { "CIIsOptRes", "h450.11.CIIsOptRes_element",
5939 FT_NONE, BASE_NONE, NULL, 0,
5940 NULL, HFILL }},
5941 { &hf_h450_11_h450_11_CIFrcRelArg_PDU,
5942 { "CIFrcRelArg", "h450.11.CIFrcRelArg_element",
5943 FT_NONE, BASE_NONE, NULL, 0,
5944 NULL, HFILL }},
5945 { &hf_h450_11_h450_11_CIFrcRelOptRes_PDU,
5946 { "CIFrcRelOptRes", "h450.11.CIFrcRelOptRes_element",
5947 FT_NONE, BASE_NONE, NULL, 0,
5948 NULL, HFILL }},
5949 { &hf_h450_11_h450_11_CIWobOptArg_PDU,
5950 { "CIWobOptArg", "h450.11.CIWobOptArg_element",
5951 FT_NONE, BASE_NONE, NULL, 0,
5952 NULL, HFILL }},
5953 { &hf_h450_11_h450_11_CIWobOptRes_PDU,
5954 { "CIWobOptRes", "h450.11.CIWobOptRes_element",
5955 FT_NONE, BASE_NONE, NULL, 0,
5956 NULL, HFILL }},
5957 { &hf_h450_11_h450_11_CISilentArg_PDU,
5958 { "CISilentArg", "h450.11.CISilentArg_element",
5959 FT_NONE, BASE_NONE, NULL, 0,
5960 NULL, HFILL }},
5961 { &hf_h450_11_h450_11_CISilentOptRes_PDU,
5962 { "CISilentOptRes", "h450.11.CISilentOptRes_element",
5963 FT_NONE, BASE_NONE, NULL, 0,
5964 NULL, HFILL }},
5965 { &hf_h450_11_h450_11_CINotificationArg_PDU,
5966 { "CINotificationArg", "h450.11.CINotificationArg_element",
5967 FT_NONE, BASE_NONE, NULL, 0,
5968 NULL, HFILL }},
5969 { &hf_h450_11_ciCapabilityLevel,
5970 { "ciCapabilityLevel", "h450.11.ciCapabilityLevel",
5971 FT_UINT32, BASE_DEC, VALS(h450_11_CICapabilityLevel_vals), 0,
5972 NULL, HFILL }},
5973 { &hf_h450_11_cIRequestArg_argumentExtension,
5974 { "argumentExtension", "h450.11.argumentExtension",
5975 FT_UINT32, BASE_DEC, NULL, 0,
5976 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5977 { &hf_h450_11_cIRequestArg_argumentExtension_item,
5978 { "MixedExtension", "h450.11.MixedExtension",
5979 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5980 NULL, HFILL }},
5981 { &hf_h450_11_ciStatusInformation,
5982 { "ciStatusInformation", "h450.11.ciStatusInformation",
5983 FT_UINT32, BASE_DEC, VALS(h450_11_CIStatusInformation_vals), 0,
5984 NULL, HFILL }},
5985 { &hf_h450_11_cIRequestRes_resultExtension,
5986 { "resultExtension", "h450.11.resultExtension",
5987 FT_UINT32, BASE_DEC, NULL, 0,
5988 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5989 { &hf_h450_11_cIRequestRes_resultExtension_item,
5990 { "MixedExtension", "h450.11.MixedExtension",
5991 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
5992 NULL, HFILL }},
5993 { &hf_h450_11_cIGetCIPLOptArg_argumentExtension,
5994 { "argumentExtension", "h450.11.argumentExtension",
5995 FT_UINT32, BASE_DEC, NULL, 0,
5996 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5997 { &hf_h450_11_cIGetCIPLOptArg_argumentExtension_item,
5998 { "MixedExtension", "h450.11.MixedExtension",
5999 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
6000 NULL, HFILL }},
6001 { &hf_h450_11_ciProtectionLevel,
6002 { "ciProtectionLevel", "h450.11.ciProtectionLevel",
6003 FT_UINT32, BASE_DEC, VALS(h450_11_CIProtectionLevel_vals), 0,
6004 NULL, HFILL }},
6005 { &hf_h450_11_silentMonitoringPermitted,
6006 { "silentMonitoringPermitted", "h450.11.silentMonitoringPermitted_element",
6007 FT_NONE, BASE_NONE, NULL, 0,
6008 NULL, HFILL }},
6009 { &hf_h450_11_cIGetCIPLRes_resultExtension,
6010 { "resultExtension", "h450.11.resultExtension",
6011 FT_UINT32, BASE_DEC, NULL, 0,
6012 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
6013 { &hf_h450_11_cIGetCIPLRes_resultExtension_item,
6014 { "MixedExtension", "h450.11.MixedExtension",
6015 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
6016 NULL, HFILL }},
6017 { &hf_h450_11_cIIsOptArg_argumentExtension,
6018 { "argumentExtension", "h450.11.argumentExtension",
6019 FT_UINT32, BASE_DEC, NULL, 0,
6020 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
6021 { &hf_h450_11_cIIsOptArg_argumentExtension_item,
6022 { "MixedExtension", "h450.11.MixedExtension",
6023 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
6024 NULL, HFILL }},
6025 { &hf_h450_11_cIIsOptRes_resultExtension,
6026 { "resultExtension", "h450.11.resultExtension",
6027 FT_UINT32, BASE_DEC, NULL, 0,
6028 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
6029 { &hf_h450_11_cIIsOptRes_resultExtension_item,
6030 { "MixedExtension", "h450.11.MixedExtension",
6031 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
6032 NULL, HFILL }},
6033 { &hf_h450_11_cIFrcRelArg_argumentExtension,
6034 { "argumentExtension", "h450.11.argumentExtension",
6035 FT_UINT32, BASE_DEC, NULL, 0,
6036 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
6037 { &hf_h450_11_cIFrcRelArg_argumentExtension_item,
6038 { "MixedExtension", "h450.11.MixedExtension",
6039 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
6040 NULL, HFILL }},
6041 { &hf_h450_11_cIFrcRelOptRes_resultExtension,
6042 { "resultExtension", "h450.11.resultExtension",
6043 FT_UINT32, BASE_DEC, NULL, 0,
6044 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
6045 { &hf_h450_11_cIFrcRelOptRes_resultExtension_item,
6046 { "MixedExtension", "h450.11.MixedExtension",
6047 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
6048 NULL, HFILL }},
6049 { &hf_h450_11_cIWobOptArg_argumentExtension,
6050 { "argumentExtension", "h450.11.argumentExtension",
6051 FT_UINT32, BASE_DEC, NULL, 0,
6052 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
6053 { &hf_h450_11_cIWobOptArg_argumentExtension_item,
6054 { "MixedExtension", "h450.11.MixedExtension",
6055 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
6056 NULL, HFILL }},
6057 { &hf_h450_11_cIWobOptRes_resultExtension,
6058 { "resultExtension", "h450.11.resultExtension",
6059 FT_UINT32, BASE_DEC, NULL, 0,
6060 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
6061 { &hf_h450_11_cIWobOptRes_resultExtension_item,
6062 { "MixedExtension", "h450.11.MixedExtension",
6063 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
6064 NULL, HFILL }},
6065 { &hf_h450_11_specificCall,
6066 { "specificCall", "h450.11.specificCall_element",
6067 FT_NONE, BASE_NONE, NULL, 0,
6068 "CallIdentifier", HFILL }},
6069 { &hf_h450_11_cISilentArg_argumentExtension,
6070 { "argumentExtension", "h450.11.argumentExtension",
6071 FT_UINT32, BASE_DEC, NULL, 0,
6072 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
6073 { &hf_h450_11_cISilentArg_argumentExtension_item,
6074 { "MixedExtension", "h450.11.MixedExtension",
6075 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
6076 NULL, HFILL }},
6077 { &hf_h450_11_cISilentOptRes_resultExtension,
6078 { "resultExtension", "h450.11.resultExtension",
6079 FT_UINT32, BASE_DEC, NULL, 0,
6080 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
6081 { &hf_h450_11_cISilentOptRes_resultExtension_item,
6082 { "MixedExtension", "h450.11.MixedExtension",
6083 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
6084 NULL, HFILL }},
6085 { &hf_h450_11_cINotificationArg_argumentExtension,
6086 { "argumentExtension", "h450.11.argumentExtension",
6087 FT_UINT32, BASE_DEC, NULL, 0,
6088 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
6089 { &hf_h450_11_cINotificationArg_argumentExtension_item,
6090 { "MixedExtension", "h450.11.MixedExtension",
6091 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
6092 NULL, HFILL }},
6093 { &hf_h450_11_callIntrusionImpending,
6094 { "callIntrusionImpending", "h450.11.callIntrusionImpending_element",
6095 FT_NONE, BASE_NONE, NULL, 0,
6096 NULL, HFILL }},
6097 { &hf_h450_11_callIntruded,
6098 { "callIntruded", "h450.11.callIntruded_element",
6099 FT_NONE, BASE_NONE, NULL, 0,
6100 NULL, HFILL }},
6101 { &hf_h450_11_callIsolated,
6102 { "callIsolated", "h450.11.callIsolated_element",
6103 FT_NONE, BASE_NONE, NULL, 0,
6104 NULL, HFILL }},
6105 { &hf_h450_11_callForceReleased,
6106 { "callForceReleased", "h450.11.callForceReleased_element",
6107 FT_NONE, BASE_NONE, NULL, 0,
6108 NULL, HFILL }},
6109 { &hf_h450_11_callIntrusionComplete,
6110 { "callIntrusionComplete", "h450.11.callIntrusionComplete_element",
6111 FT_NONE, BASE_NONE, NULL, 0,
6112 NULL, HFILL }},
6113 { &hf_h450_11_callIntrusionEnd,
6114 { "callIntrusionEnd", "h450.11.callIntrusionEnd_element",
6115 FT_NONE, BASE_NONE, NULL, 0,
6116 NULL, HFILL }},
6118 /* --- Module Common-Information-Operations --- --- --- */
6120 { &hf_h450_12_h450_12_DummyArg_PDU,
6121 { "DummyArg", "h450.12.DummyArg_element",
6122 FT_NONE, BASE_NONE, NULL, 0,
6123 NULL, HFILL }},
6124 { &hf_h450_12_h450_12_CmnArg_PDU,
6125 { "CmnArg", "h450.12.CmnArg_element",
6126 FT_NONE, BASE_NONE, NULL, 0,
6127 NULL, HFILL }},
6128 { &hf_h450_12_featureList,
6129 { "featureList", "h450.12.featureList_element",
6130 FT_NONE, BASE_NONE, NULL, 0,
6131 NULL, HFILL }},
6132 { &hf_h450_12_featureValues,
6133 { "featureValues", "h450.12.featureValues_element",
6134 FT_NONE, BASE_NONE, NULL, 0,
6135 NULL, HFILL }},
6136 { &hf_h450_12_featureControl,
6137 { "featureControl", "h450.12.featureControl_element",
6138 FT_NONE, BASE_NONE, NULL, 0,
6139 NULL, HFILL }},
6140 { &hf_h450_12_cmnArg_extension,
6141 { "extension", "h450.12.extension",
6142 FT_UINT32, BASE_DEC, NULL, 0,
6143 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
6144 { &hf_h450_12_cmnArg_extension_item,
6145 { "MixedExtension", "h450.12.MixedExtension",
6146 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
6147 NULL, HFILL }},
6148 { &hf_h450_12_extensionArg,
6149 { "extensionArg", "h450.12.extensionArg",
6150 FT_UINT32, BASE_DEC, NULL, 0,
6151 "SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
6152 { &hf_h450_12_extensionArg_item,
6153 { "MixedExtension", "h450.12.MixedExtension",
6154 FT_UINT32, BASE_DEC, VALS(h450_4_MixedExtension_vals), 0,
6155 NULL, HFILL }},
6156 { &hf_h450_12_ssCFreRoutingSupported,
6157 { "ssCFreRoutingSupported", "h450.12.ssCFreRoutingSupported_element",
6158 FT_NONE, BASE_NONE, NULL, 0,
6159 NULL, HFILL }},
6160 { &hf_h450_12_ssCTreRoutingSupported,
6161 { "ssCTreRoutingSupported", "h450.12.ssCTreRoutingSupported_element",
6162 FT_NONE, BASE_NONE, NULL, 0,
6163 NULL, HFILL }},
6164 { &hf_h450_12_ssCCBSPossible,
6165 { "ssCCBSPossible", "h450.12.ssCCBSPossible_element",
6166 FT_NONE, BASE_NONE, NULL, 0,
6167 NULL, HFILL }},
6168 { &hf_h450_12_ssCCNRPossible,
6169 { "ssCCNRPossible", "h450.12.ssCCNRPossible_element",
6170 FT_NONE, BASE_NONE, NULL, 0,
6171 NULL, HFILL }},
6172 { &hf_h450_12_ssCOSupported,
6173 { "ssCOSupported", "h450.12.ssCOSupported_element",
6174 FT_NONE, BASE_NONE, NULL, 0,
6175 NULL, HFILL }},
6176 { &hf_h450_12_ssCIForcedReleaseSupported,
6177 { "ssCIForcedReleaseSupported", "h450.12.ssCIForcedReleaseSupported_element",
6178 FT_NONE, BASE_NONE, NULL, 0,
6179 NULL, HFILL }},
6180 { &hf_h450_12_ssCIIsolationSupported,
6181 { "ssCIIsolationSupported", "h450.12.ssCIIsolationSupported_element",
6182 FT_NONE, BASE_NONE, NULL, 0,
6183 NULL, HFILL }},
6184 { &hf_h450_12_ssCIWaitOnBusySupported,
6185 { "ssCIWaitOnBusySupported", "h450.12.ssCIWaitOnBusySupported_element",
6186 FT_NONE, BASE_NONE, NULL, 0,
6187 NULL, HFILL }},
6188 { &hf_h450_12_ssCISilentMonitoringSupported,
6189 { "ssCISilentMonitoringSupported", "h450.12.ssCISilentMonitoringSupported_element",
6190 FT_NONE, BASE_NONE, NULL, 0,
6191 NULL, HFILL }},
6192 { &hf_h450_12_ssCIConferenceSupported,
6193 { "ssCIConferenceSupported", "h450.12.ssCIConferenceSupported_element",
6194 FT_NONE, BASE_NONE, NULL, 0,
6195 NULL, HFILL }},
6196 { &hf_h450_12_ssCHFarHoldSupported,
6197 { "ssCHFarHoldSupported", "h450.12.ssCHFarHoldSupported_element",
6198 FT_NONE, BASE_NONE, NULL, 0,
6199 NULL, HFILL }},
6200 { &hf_h450_12_ssMWICallbackSupported,
6201 { "ssMWICallbackSupported", "h450.12.ssMWICallbackSupported_element",
6202 FT_NONE, BASE_NONE, NULL, 0,
6203 NULL, HFILL }},
6204 { &hf_h450_12_ssCPCallParkSupported,
6205 { "ssCPCallParkSupported", "h450.12.ssCPCallParkSupported_element",
6206 FT_NONE, BASE_NONE, NULL, 0,
6207 NULL, HFILL }},
6208 { &hf_h450_12_partyCategory,
6209 { "partyCategory", "h450.12.partyCategory",
6210 FT_UINT32, BASE_DEC, VALS(h450_12_PartyCategory_vals), 0,
6211 NULL, HFILL }},
6212 { &hf_h450_12_ssCIprotectionLevel,
6213 { "ssCIprotectionLevel", "h450.12.ssCIprotectionLevel",
6214 FT_UINT32, BASE_DEC, NULL, 0,
6215 NULL, HFILL }},
6216 { &hf_h450_12_ssCHDoNotHold,
6217 { "ssCHDoNotHold", "h450.12.ssCHDoNotHold_element",
6218 FT_NONE, BASE_NONE, NULL, 0,
6219 NULL, HFILL }},
6220 { &hf_h450_12_ssCTDoNotTransfer,
6221 { "ssCTDoNotTransfer", "h450.12.ssCTDoNotTransfer_element",
6222 FT_NONE, BASE_NONE, NULL, 0,
6223 NULL, HFILL }},
6224 { &hf_h450_12_ssMWICallbackCall,
6225 { "ssMWICallbackCall", "h450.12.ssMWICallbackCall_element",
6226 FT_NONE, BASE_NONE, NULL, 0,
6227 NULL, HFILL }},
6228 { &hf_h450_12_ssCISilentMonitorPermitted,
6229 { "ssCISilentMonitorPermitted", "h450.12.ssCISilentMonitorPermitted_element",
6230 FT_NONE, BASE_NONE, NULL, 0,
6231 NULL, HFILL }},
6234 /* List of subtrees */
6235 static int *ett[] = {
6237 /* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
6239 &ett_h450_H4501SupplementaryService,
6240 &ett_h450_NetworkFacilityExtension,
6241 &ett_h450_EntityType,
6242 &ett_h450_InterpretationApdu,
6243 &ett_h450_ServiceApdus,
6244 &ett_h450_T_rosApdus,
6245 &ett_h450_EndpointAddress,
6246 &ett_h450_SEQUENCE_OF_AliasAddress,
6247 &ett_h450_PartySubaddress,
6248 &ett_h450_UserSpecifiedSubaddress,
6249 &ett_h450_Extension,
6251 /* --- Module Call-Transfer-Operations --- --- --- */
6253 &ett_h450_2_DummyArg,
6254 &ett_h450_2_DummyRes,
6255 &ett_h450_2_CTInitiateArg,
6256 &ett_h450_2_T_cTInitiateArg_argumentExtension,
6257 &ett_h450_2_CTSetupArg,
6258 &ett_h450_2_T_cTSetupArg_argumentExtension,
6259 &ett_h450_2_CTIdentifyRes,
6260 &ett_h450_2_T_resultExtension,
6261 &ett_h450_2_CTUpdateArg,
6262 &ett_h450_2_T_cTUpdateArg_argumentExtension,
6263 &ett_h450_2_SubaddressTransferArg,
6264 &ett_h450_2_T_subaddressTransferArg_argumentExtension,
6265 &ett_h450_2_CTCompleteArg,
6266 &ett_h450_2_T_cTCompleteArg_argumentExtension,
6267 &ett_h450_2_CTActiveArg,
6268 &ett_h450_2_T_cTActiveArg_argumentExtension,
6269 &ett_h450_2_ExtensionSeq,
6270 &ett_h450_2_PAR_unspecified,
6272 /* --- Module Call-Diversion-Operations --- --- --- */
6274 &ett_h450_3_ARG_activateDiversionQ,
6275 &ett_h450_3_ActivateDiversionQArg_extension,
6276 &ett_h450_3_RES_activateDiversionQ,
6277 &ett_h450_3_ARG_deactivateDiversionQ,
6278 &ett_h450_3_DeactivateDiversionQArg_extension,
6279 &ett_h450_3_RES_deactivateDiversionQ,
6280 &ett_h450_3_ARG_interrogateDiversionQ,
6281 &ett_h450_3_InterrogateDiversionQ_extension,
6282 &ett_h450_3_ARG_checkRestriction,
6283 &ett_h450_3_CheckRestrictionArg_extension,
6284 &ett_h450_3_RES_checkRestriction,
6285 &ett_h450_3_ARG_callRerouting,
6286 &ett_h450_3_CallReroutingArg_extension,
6287 &ett_h450_3_RES_callRerouting,
6288 &ett_h450_3_ARG_divertingLegInformation1,
6289 &ett_h450_3_DivertingLegInformation1Arg_extension,
6290 &ett_h450_3_ARG_divertingLegInformation2,
6291 &ett_h450_3_DivertingLegInformation2Arg_extension,
6292 &ett_h450_3_ARG_divertingLegInformation3,
6293 &ett_h450_3_DivertingLegInformation3Arg_extension,
6294 &ett_h450_3_ARG_divertingLegInformation4,
6295 &ett_h450_3_DivertingLegInformation4Arg_extension,
6296 &ett_h450_3_ARG_cfnrDivertedLegFailed,
6297 &ett_h450_3_IntResultList,
6298 &ett_h450_3_IntResult,
6299 &ett_h450_3_IntResult_extension,
6300 &ett_h450_3_PAR_unspecified,
6301 &ett_h450_3_ExtensionSeq,
6303 /* --- Module Call-Hold-Operations --- --- --- */
6305 &ett_h450_4_HoldNotificArg,
6306 &ett_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension,
6307 &ett_h450_4_RetrieveNotificArg,
6308 &ett_h450_4_RemoteHoldArg,
6309 &ett_h450_4_RemoteHoldRes,
6310 &ett_h450_4_RemoteRetrieveArg,
6311 &ett_h450_4_RemoteRetrieveRes,
6312 &ett_h450_4_MixedExtension,
6313 &ett_h450_4_PAR_undefined,
6315 /* --- Module Call-Park-Pickup-Operations --- --- --- */
6317 &ett_h450_5_CpRequestArg,
6318 &ett_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension,
6319 &ett_h450_5_CpRequestRes,
6320 &ett_h450_5_CpSetupArg,
6321 &ett_h450_5_CpSetupRes,
6322 &ett_h450_5_GroupIndicationOnArg,
6323 &ett_h450_5_GroupIndicationOnRes,
6324 &ett_h450_5_GroupIndicationOffArg,
6325 &ett_h450_5_GroupIndicationOffRes,
6326 &ett_h450_5_PickrequArg,
6327 &ett_h450_5_PickrequRes,
6328 &ett_h450_5_PickupArg,
6329 &ett_h450_5_PickupRes,
6330 &ett_h450_5_PickExeArg,
6331 &ett_h450_5_PickExeRes,
6332 &ett_h450_5_CpNotifyArg,
6333 &ett_h450_5_CpickupNotifyArg,
6334 &ett_h450_5_PAR_undefined,
6336 /* --- Module Call-Waiting-Operations --- --- --- */
6338 &ett_h450_6_CallWaitingArg,
6339 &ett_h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension,
6341 /* --- Module Message-Waiting-Indication-Operations --- --- --- */
6343 &ett_h450_7_MWIActivateArg,
6344 &ett_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension,
6345 &ett_h450_7_DummyRes,
6346 &ett_h450_7_MWIDeactivateArg,
6347 &ett_h450_7_MWIInterrogateArg,
6348 &ett_h450_7_MWIInterrogateRes,
6349 &ett_h450_7_MWIInterrogateResElt,
6350 &ett_h450_7_MsgCentreId,
6351 &ett_h450_7_PAR_undefined,
6353 /* --- Module Name-Operations --- --- --- */
6355 &ett_h450_8_ARG_callingName,
6356 &ett_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension,
6357 &ett_h450_8_ARG_alertingName,
6358 &ett_h450_8_ARG_connectedName,
6359 &ett_h450_8_ARG_busyName,
6360 &ett_h450_8_Name,
6361 &ett_h450_8_NamePresentationAllowed,
6362 &ett_h450_8_NamePresentationRestricted,
6364 /* --- Module Call-Completion-Operations --- --- --- */
6366 &ett_h450_9_CcRequestArg,
6367 &ett_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension,
6368 &ett_h450_9_CcRequestRes,
6369 &ett_h450_9_CcArg,
6370 &ett_h450_9_CcShortArg,
6371 &ett_h450_9_CcLongArg,
6373 /* --- Module Call-Offer-Operations --- --- --- */
6375 &ett_h450_10_CoReqOptArg,
6376 &ett_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension,
6377 &ett_h450_10_RUAlertOptArg,
6378 &ett_h450_10_CfbOvrOptArg,
6380 /* --- Module Call-Intrusion-Operations --- --- --- */
6382 &ett_h450_11_CIRequestArg,
6383 &ett_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension,
6384 &ett_h450_11_CIRequestRes,
6385 &ett_h450_11_CIGetCIPLOptArg,
6386 &ett_h450_11_CIGetCIPLRes,
6387 &ett_h450_11_CIIsOptArg,
6388 &ett_h450_11_CIIsOptRes,
6389 &ett_h450_11_CIFrcRelArg,
6390 &ett_h450_11_CIFrcRelOptRes,
6391 &ett_h450_11_CIWobOptArg,
6392 &ett_h450_11_CIWobOptRes,
6393 &ett_h450_11_CISilentArg,
6394 &ett_h450_11_CISilentOptRes,
6395 &ett_h450_11_CINotificationArg,
6396 &ett_h450_11_CIStatusInformation,
6398 /* --- Module Common-Information-Operations --- --- --- */
6400 &ett_h450_12_CmnArg,
6401 &ett_h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension,
6402 &ett_h450_12_DummyArg,
6403 &ett_h450_12_FeatureList,
6404 &ett_h450_12_FeatureValues,
6405 &ett_h450_12_FeatureControl,
6408 static ei_register_info ei[] = {
6409 { &ei_h450_unsupported_arg_type, { "h450.unsupported.arg_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED ARGUMENT TYPE (H.450)", EXPFILL }},
6410 { &ei_h450_unsupported_result_type, { "h450.unsupported.result_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED RESULT TYPE (H.450)", EXPFILL }},
6411 { &ei_h450_unsupported_error_type, { "h450.unsupported.error_type", PI_UNDECODED, PI_WARN, "UNSUPPORTED ERROR TYPE (H.450)", EXPFILL }},
6414 expert_module_t* expert_h450;
6416 /* Register protocol */
6417 proto_h450 = proto_register_protocol(PNAME, PSNAME, PFNAME);
6418 register_dissector("h4501", dissect_h450_H4501SupplementaryService_PDU, proto_h450);
6419 /* Register fields and subtrees */
6420 proto_register_field_array(proto_h450, hf, array_length(hf));
6421 proto_register_subtree_array(ett, array_length(ett));
6422 expert_h450 = expert_register_protocol(proto_h450);
6423 expert_register_field_array(expert_h450, ei, array_length(ei));
6425 rose_ctx_init(&h450_rose_ctx);
6427 /* Register dissectors */
6428 h450_arg_handle = register_dissector("h4501_arg", dissect_h450_arg, proto_h450);
6429 h450_res_handle = register_dissector("h4501_res", dissect_h450_res, proto_h450);
6430 h450_err_handle = register_dissector("h4501_err", dissect_h450_err, proto_h450);
6432 /* Register dissector tables */
6433 h450_rose_ctx.arg_global_dissector_table = register_dissector_table("h450.ros.global.arg", "H.450 Operation Argument (global opcode)", proto_h450, FT_STRING, STRING_CASE_SENSITIVE);
6434 h450_rose_ctx.res_global_dissector_table = register_dissector_table("h450.ros.global.res", "H.450 Operation Result (global opcode)", proto_h450, FT_STRING, STRING_CASE_SENSITIVE);
6435 h450_rose_ctx.arg_local_dissector_table = register_dissector_table("h450.ros.local.arg", "H.450 Operation Argument (local opcode)", proto_h450, FT_UINT32, BASE_HEX);
6436 h450_rose_ctx.res_local_dissector_table = register_dissector_table("h450.ros.local.res", "H.450 Operation Result (local opcode)", proto_h450, FT_UINT32, BASE_HEX);
6437 h450_rose_ctx.err_global_dissector_table = register_dissector_table("h450.ros.global.err", "H.450 Error (global opcode)", proto_h450, FT_STRING, STRING_CASE_SENSITIVE);
6438 h450_rose_ctx.err_local_dissector_table = register_dissector_table("h450.ros.local.err", "H.450 Error (local opcode)", proto_h450, FT_UINT32, BASE_HEX);
6443 /*--- proto_reg_handoff_h450 ---------------------------------------*/
6444 void
6445 proto_reg_handoff_h450(void)
6447 int i;
6449 for (i=0; i<(int)array_length(h450_op_tab); i++) {
6450 dissector_add_uint("h450.ros.local.arg", h450_op_tab[i].opcode, h450_arg_handle);
6451 dissector_add_uint("h450.ros.local.res", h450_op_tab[i].opcode, h450_res_handle);
6453 for (i=0; i<(int)array_length(h450_err_tab); i++) {
6454 dissector_add_uint("h450.ros.local.err", h450_err_tab[i].errcode, h450_err_handle);