Define "char_def_alphabet_ext_decode()" with a return type - and define
[obnox/wireshark/wip.git] / epan / dissectors / packet-h450.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* .\packet-h450.c                                                            */
4 /* ../../tools/asn2wrs.py -e -p h450 -c h450.cnf -s packet-h450-template h4501.asn */
5
6 /* Input file: packet-h450-template.c */
7
8 #line 1 "packet-h450-template.c"
9 /* packet-h450.c
10  * Routines for h450 packet dissection
11  * Based on the previous h450 dissector by:
12  * 2003  Graeme Reid (graeme.reid@norwoodsystems.com)
13  * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
14  *
15  * $Id$
16  *
17  * Wireshark - Network traffic analyzer
18  * By Gerald Combs <gerald@wireshark.org>
19  * Copyright 1998 Gerald Combs
20  *
21  * This program is free software; you can redistribute it and/or
22  * modify it under the terms of the GNU General Public License
23  * as published by the Free Software Foundation; either version 2
24  * of the License, or (at your option) any later version.
25  *
26  * This program is distributed in the hope that it will be useful,
27  * but WITHOUT ANY WARRANTY; without even the implied warranty of
28  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
29  * GNU General Public License for more details.
30  *
31  * You should have received a copy of the GNU General Public License
32  * along with this program; if not, write to the Free Software
33  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
34  *
35  * Credit to Tomas Kukosa for developing the asn2wrs compiler.
36  *
37  */
38
39 #ifdef HAVE_CONFIG_H
40 # include "config.h"
41 #endif
42
43 #include <glib.h>
44 #include <epan/packet.h>
45 #include <epan/conversation.h>
46
47 #include <stdio.h>
48 #include <string.h>
49
50 #include "packet-h450.h"
51
52 #include "packet-ber.h"
53 #include "packet-per.h"
54 #include "packet-h225.h"
55
56 #define PNAME  "h450"
57 #define PSNAME "h450"
58 #define PFNAME "h450"
59 /* H.450.2 Call Transfer constants */
60 #define CallTransferIdentify        7
61 #define CallTransferAbandon         8
62 #define CallTransferInitiate        9
63 #define CallTransferSetup           10
64 #define CallTransferUpdate          13
65 #define SubaddressTransfer          14
66 #define CallTransferComplete        12
67 #define CallTransferActive          11
68
69 /* H.450.3 Call Diversion constants */
70 #define ActivateDiversionQ          15
71 #define DeactivateDiversionQ        16
72 #define InterrogateDiversionQ       17
73 #define CheckRestriction            18
74 #define CallRerouting               19
75 #define DivertingLegInformation1    20
76 #define DivertingLegInformation2    21
77 #define DivertingLegInformation3    22
78 #define DivertingLegInformation4    100
79 #define CfnrDivertedLegFailed       23
80
81 /* H.450.4 Call Hold constants */
82 #define HoldNotific                 101
83 #define RetrieveNotific             102
84 #define RemoteHold                  103
85 #define RemoteRetrieve              104
86
87 /* H.450.5 Call Park and Pickup constants */
88 #define CpRequest                   106
89 #define CpSetup                     107
90 #define GroupIndicationOn           108
91 #define GroupIndicationOff          109
92 #define Pickrequ                    110
93 #define Pickup                      111
94 #define PickExe                     112
95 #define CpNotify                    113
96 #define CpickupNotify               114
97
98 /* H.450.6 Call Waiting constants */
99 #define CallWaiting                 105
100
101 /* H.450.7 Message Waiting Indication constants */
102 #define MWIActivate                 80
103 #define MWIDeactivate               81
104 #define MWIInterrogate              82 
105
106 /* H.450.8 Name Identification constants */
107 #define NIcallingName               0
108 #define NIalertingName              1
109 #define NIconnectedName             2
110 #define NIbusyName                  3 
111
112 /* H.450.9 Call Completion constants */
113 #define CCBSRequest                 40
114 #define CCNRRequest                 27
115 #define CCCancel                    28
116 #define CCExecPossible              29
117 #define CCRingout                   31
118 #define CCSuspend                   32
119 #define CCResume                    33 
120
121 /* H.450.10 Call Offer constants */
122 #define CallOfferRequest            34
123 #define RemoteUserAlerting          115
124 #define CFBOverride                 49 
125
126 /* H.450.11 Call Intrusion constants */
127 #define CallIntrusionRequest        43
128 #define CallIntrusionGetCIPL        44
129 #define CallIntrusionIsolate        45
130 #define CallIntrusionForcedRelease  46
131 #define CallIntrusionWOBRequest     47
132 #define CallIntrusionSilentMonitor  116
133 #define CallIntrusionNotification   117
134
135 /* H.450.12 Common Information Operations constants */
136 #define CmnRequest                                      84
137 #define CmnInform                                       85
138
139 /* TODO - define other H.450.x constants here */
140 static dissector_handle_t h4501_handle=NULL;
141
142 /* Initialize the protocol and registered fields */
143 static int proto_h4501 = -1;
144
145 static int hf_h4501 = -1;
146 static int hf_h4501_dummy = -1;
147 static int hf_h4501_constrained_invokeId = -1;
148 static int hf_h4501_invokeId = -1;
149 static int hf_h4501_localOpcode = -1;
150 static int hf_h4501_globalCode = -1;
151 static int hf_h4501_globalargument = -1;
152 static int hf_h4501_opcode = -1;
153 static int hf_h4501_ReturnResult_result = -1;
154 static int hf_h4501_result = -1;
155 static int hf_h4501_ReturnResult = -1;
156 static int hf_h4501_localErrorCode = -1;
157 static int hf_h4501_errorCode = -1;
158 static int hf_h4501_parameter = -1;
159 static int hf_h4501_ReturnError = -1;
160 static int hf_h4501_GeneralProblem = -1;
161 static int hf_h4501_InvokeProblem = -1;
162 static int hf_h4501_ReturnResultProblem = -1;
163 static int hf_h4501_ReturnErrorProblem = -1;
164 static int hf_h4501_problem = -1;
165 static int hf_h4501_Reject = -1;
166
167 static int hf_h4502_CTIdentifyRes = -1;
168 static int hf_h4502_DummyRes = -1;
169 static int hf_h4502_DummyArg = -1;
170
171 static int hf_h4503DeactivateDiversionQArg = -1;
172 static int hf_h4503InterrogateDiversionQ = -1;
173 static int hf_h4503CheckRestrictionArg = -1;
174 static int hf_h4503CallReroutingArg = -1;
175 static int hf_h4503DivertingLegInformation1Arg = -1;
176 static int hf_h4503DivertingLegInformation2Arg = -1;
177 static int hf_h4503DivertingLegInformation3Arg = -1;
178 static int hf_h4503DivertingLegInformation4Arg = -1;
179 static int hf_h4503CfnrDivertedLegFailedArg = -1;
180
181 static int hf_h4504_HoldNotificArg = -1;
182 static int hf_h4504_RetrieveNotificArg = -1;
183 static int hf_h4504_RemoteHoldArg = -1;
184 static int hf_h4504_RemoteRetrieveArg = -1;
185 static int hf_h4504_RemoteRetrieveRes = -1;
186
187 static int hf_h4507_MWIActivateArg = -1;
188 static int hf_h4507_MWIDeactivateArg = -1;
189 static int hf_h4507_MwiDummyRes = -1;
190 static int hf_h4507_MWIInterrogateArg = -1;
191 static int hf_h4507_MWIInterrogateRes = -1;
192
193 static int hf_h4508_CallingNameArg = -1;
194 static int hf_h4508_AlertingNameArg = -1;
195 static int hf_h4508_ConnectedNameArg = -1;
196 static int hf_h4508_BusyNameArg = -1;
197 static int hf_h45012_CmnRequest = -1;
198 static int hf_h45012_CmnInform = -1;
199
200 static int hf_h4501_Invoke = -1;
201 static int hf_h4501_ROS = -1;
202
203
204 /*--- Included file: packet-h450-hf.c ---*/
205 #line 1 "packet-h450-hf.c"
206 static int hf_h450_CallTransferIdentify_PDU = -1;  /* CallTransferIdentify */
207 static int hf_h450_CallTransferAbandon_PDU = -1;  /* CallTransferAbandon */
208 static int hf_h450_CallTransferInitiate_PDU = -1;  /* CallTransferInitiate */
209 static int hf_h450_CallTransferSetup_PDU = -1;    /* CallTransferSetup */
210 static int hf_h450_CallTransferUpdate_PDU = -1;   /* CallTransferUpdate */
211 static int hf_h450_SubaddressTransfer_PDU = -1;   /* SubaddressTransfer */
212 static int hf_h450_CallTransferComplete_PDU = -1;  /* CallTransferComplete */
213 static int hf_h450_CallTransferActive_PDU = -1;   /* CallTransferActive */
214 static int hf_h450_ActivateDiversionQArg_PDU = -1;  /* ActivateDiversionQArg */
215 static int hf_h450_ActivateDiversionQRes_PDU = -1;  /* ActivateDiversionQRes */
216 static int hf_h450_DeactivateDiversionQRes_PDU = -1;  /* DeactivateDiversionQRes */
217 static int hf_h450_InterrogateDiversionQRes_PDU = -1;  /* InterrogateDiversionQRes */
218 static int hf_h450_CheckRestrictionRes_PDU = -1;  /* CheckRestrictionRes */
219 static int hf_h450_CallReroutingRes_PDU = -1;     /* CallReroutingRes */
220 static int hf_h450_networkFacilityExtension = -1;  /* NetworkFacilityExtension */
221 static int hf_h450_interpretationApdu = -1;       /* InterpretationApdu */
222 static int hf_h450_serviceApdu = -1;              /* ServiceApdus */
223 static int hf_h450_sourceEntity = -1;             /* EntityType */
224 static int hf_h450_sourceEntityAddress = -1;      /* AddressInformation */
225 static int hf_h450_destinationEntity = -1;        /* EntityType */
226 static int hf_h450_destinationEntityAddress = -1;  /* AddressInformation */
227 static int hf_h450_endpoint = -1;                 /* NULL */
228 static int hf_h450_anyEntity = -1;                /* NULL */
229 static int hf_h450_discardAnyUnrecognizedInvokePdu = -1;  /* NULL */
230 static int hf_h450_clearCallIfAnyInvokePduNotRecognized = -1;  /* NULL */
231 static int hf_h450_rejectAnyUnrecognizedInvokePdu = -1;  /* NULL */
232 static int hf_h450_rosApdus = -1;                 /* SEQUENCE_OF_ROSxxx */
233 static int hf_h450_rosApdus_item = -1;            /* ROSxxx */
234 static int hf_h450_addressScreened_presentationAllowedAddress = -1;  /* AddressScreened */
235 static int hf_h450_presentationRestricted = -1;   /* NULL */
236 static int hf_h450_numberNotAvailableDueToInterworking = -1;  /* NULL */
237 static int hf_h450_addressScreened_presentationRestrictedAddress = -1;  /* AddressScreened */
238 static int hf_h450_addressUnscreened_presentationAllowedAddress = -1;  /* Address */
239 static int hf_h450_addressUnscreened_presentationRestrictedAddress = -1;  /* Address */
240 static int hf_h450_numberScreened_presentationAllowedAddress = -1;  /* NumberScreened */
241 static int hf_h450_numberScreened_presentationRestrictedAddress = -1;  /* NumberScreened */
242 static int hf_h450_numberUnscreened_presentationAllowedAddress = -1;  /* PartyNumber */
243 static int hf_h450_numberUnscreened_presentationRestrictedAddress = -1;  /* PartyNumber */
244 static int hf_h450_partyNumber = -1;              /* PartyNumber */
245 static int hf_h450_screeningIndicator = -1;       /* ScreeningIndicator */
246 static int hf_h450_partySubaddress = -1;          /* PartySubaddress */
247 static int hf_h450_destinationAddress = -1;       /* SEQUENCE_OF_AliasAddress */
248 static int hf_h450_destinationAddress_item = -1;  /* AliasAddress */
249 static int hf_h450_remoteExtensionAddress = -1;   /* AliasAddress */
250 static int hf_h450_destinationAddressPresentationIndicator = -1;  /* PresentationIndicator */
251 static int hf_h450_destinationAddressScreeningIndicator = -1;  /* ScreeningIndicator */
252 static int hf_h450_remoteExtensionAddressPresentationIndicator = -1;  /* PresentationIndicator */
253 static int hf_h450_remoteExtensionAddressScreeningIndicator = -1;  /* ScreeningIndicator */
254 static int hf_h450_userSpecifiedSubaddress = -1;  /* UserSpecifiedSubaddress */
255 static int hf_h450_nsapSubaddress = -1;           /* NSAPSubaddress */
256 static int hf_h450_subaddressInformation = -1;    /* SubaddressInformation */
257 static int hf_h450_oddCountIndicator = -1;        /* BOOLEAN */
258 static int hf_h450_extensionSeq = -1;             /* ExtensionSeq */
259 static int hf_h450_nonStandardData = -1;          /* NonStandardParameter */
260 static int hf_h450_callIdentity = -1;             /* CallIdentity */
261 static int hf_h450_reroutingNumber = -1;          /* EndpointAddress */
262 static int hf_h450_cTInitiateArg_argumentExtension = -1;  /* ArgumentExtension */
263 static int hf_h450_transferringNumber = -1;       /* EndpointAddress */
264 static int hf_h450_cTSetupArg_argumentExtension = -1;  /* ArgumentExtension */
265 static int hf_h450_resultExtension = -1;          /* T_resultExtension */
266 static int hf_h450_redirectionNumber = -1;        /* EndpointAddress */
267 static int hf_h450_redirectionInfo = -1;          /* BMPString_SIZE_1_128 */
268 static int hf_h450_basicCallInfoElements = -1;    /* H225InformationElement */
269 static int hf_h450_cTUpdateArg_argumentExtension = -1;  /* ArgumentExtension */
270 static int hf_h450_redirectionSubaddress = -1;    /* PartySubaddress */
271 static int hf_h450_subaddressTransferArg_argumentExtension = -1;  /* ArgumentExtension */
272 static int hf_h450_endDesignation = -1;           /* EndDesignation */
273 static int hf_h450_callStatus = -1;               /* CallStatus */
274 static int hf_h450_cTCompleteArg_argumentExtension = -1;  /* ArgumentExtension */
275 static int hf_h450_connectedAddress = -1;         /* EndpointAddress */
276 static int hf_h450_connectedInfo = -1;            /* BMPString_SIZE_1_128 */
277 static int hf_h450_cTActiveArg_argumentExtension = -1;  /* ArgumentExtension */
278 static int hf_h450_ExtensionSeq_item = -1;        /* Extension */
279 static int hf_h450_procedure = -1;                /* Procedure */
280 static int hf_h450_basicService = -1;             /* BasicService */
281 static int hf_h450_divertedToAddress = -1;        /* EndpointAddress */
282 static int hf_h450_servedUserNr = -1;             /* EndpointAddress */
283 static int hf_h450_activatingUserNr = -1;         /* EndpointAddress */
284 static int hf_h450_activateDiversionQArg_extension = -1;  /* ActivateDiversionQArg_extension */
285 static int hf_h450_deactivatingUserNr = -1;       /* EndpointAddress */
286 static int hf_h450_deactivateDiversionQArg_extension = -1;  /* DeactivateDiversionQArg_extension */
287 static int hf_h450_interrogatingUserNr = -1;      /* EndpointAddress */
288 static int hf_h450_interrogateDiversionQ_extension = -1;  /* InterrogateDiversionQ_extension */
289 static int hf_h450_divertedToNr = -1;             /* EndpointAddress */
290 static int hf_h450_checkRestrictionArg_extension = -1;  /* CheckRestrictionArg_extension */
291 static int hf_h450_reroutingReason = -1;          /* DiversionReason */
292 static int hf_h450_originalReroutingReason = -1;  /* DiversionReason */
293 static int hf_h450_calledAddress = -1;            /* EndpointAddress */
294 static int hf_h450_diversionCounter = -1;         /* INTEGER_1_15 */
295 static int hf_h450_h225InfoElement = -1;          /* H225InformationElement */
296 static int hf_h450_lastReroutingNr = -1;          /* EndpointAddress */
297 static int hf_h450_subscriptionOption = -1;       /* SubscriptionOption */
298 static int hf_h450_callingPartySubaddress = -1;   /* PartySubaddress */
299 static int hf_h450_callingNumber = -1;            /* EndpointAddress */
300 static int hf_h450_callingInfo = -1;              /* BMPString_SIZE_1_128 */
301 static int hf_h450_originalCalledNr = -1;         /* EndpointAddress */
302 static int hf_h450_redirectingInfo = -1;          /* BMPString_SIZE_1_128 */
303 static int hf_h450_originalCalledInfo = -1;       /* BMPString_SIZE_1_128 */
304 static int hf_h450_callReroutingArg_extension = -1;  /* CallReroutingArg_extension */
305 static int hf_h450_diversionReason = -1;          /* DiversionReason */
306 static int hf_h450_nominatedNr = -1;              /* EndpointAddress */
307 static int hf_h450_nominatedInfo = -1;            /* BMPString_SIZE_1_128 */
308 static int hf_h450_redirectingNr = -1;            /* EndpointAddress */
309 static int hf_h450_divertingLegInformation1Arg_extension = -1;  /* DivertingLegInformation1Arg_extension */
310 static int hf_h450_originalDiversionReason = -1;  /* DiversionReason */
311 static int hf_h450_divertingNr = -1;              /* EndpointAddress */
312 static int hf_h450_extension = -1;                /* DivertingLegInformation2Arg_extension */
313 static int hf_h450_presentationAllowedIndicator = -1;  /* PresentationAllowedIndicator */
314 static int hf_h450_redirectionNr = -1;            /* EndpointAddress */
315 static int hf_h450_divertingLegInformation3Arg_extension = -1;  /* DivertingLegInformation3Arg_extension */
316 static int hf_h450_callingNr = -1;                /* EndpointAddress */
317 static int hf_h450_divertingLegInformation4Arg_extension = -1;  /* DivertingLegInformation4Arg_extension */
318 static int hf_h450_IntResultList_item = -1;       /* IntResult */
319 static int hf_h450_remoteEnabled = -1;            /* BOOLEAN */
320 static int hf_h450_intResult_extension = -1;      /* IntResult_extension */
321 static int hf_h450_holdNotificArg_extensionArg = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
322 static int hf_h450_holdNotificArg_extensionArg_item = -1;  /* MixedExtension */
323 static int hf_h450_retrieveNotificArg_extensionArg = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
324 static int hf_h450_retrieveNotificArg_extensionArg_item = -1;  /* MixedExtension */
325 static int hf_h450_remoteHoldArg_extensionArg = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
326 static int hf_h450_remoteHoldArg_extensionArg_item = -1;  /* MixedExtension */
327 static int hf_h450_extensionRes = -1;             /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
328 static int hf_h450_extensionRes_item = -1;        /* MixedExtension */
329 static int hf_h450_remoteRetrieveArg_extensionArg = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
330 static int hf_h450_remoteRetrieveArg_extensionArg_item = -1;  /* MixedExtension */
331 static int hf_h450_mixedExtension_extension = -1;  /* Extension */
332 static int hf_h450_parkingNumber = -1;            /* EndpointAddress */
333 static int hf_h450_parkedNumber = -1;             /* EndpointAddress */
334 static int hf_h450_parkedToNumber = -1;           /* EndpointAddress */
335 static int hf_h450_parkedToPosition = -1;         /* ParkedToPosition */
336 static int hf_h450_cpRequestArg_extensionArg = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
337 static int hf_h450_cpRequestArg_extensionArg_item = -1;  /* MixedExtension */
338 static int hf_h450_parkCondition = -1;            /* ParkCondition */
339 static int hf_h450_cpSetupArg_extensionArg = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
340 static int hf_h450_cpSetupArg_extensionArg_item = -1;  /* MixedExtension */
341 static int hf_h450_callPickupId = -1;             /* CallIdentifier */
342 static int hf_h450_groupMemberUserNr = -1;        /* EndpointAddress */
343 static int hf_h450_retrieveCallType = -1;         /* CallType */
344 static int hf_h450_partyToRetrieve = -1;          /* EndpointAddress */
345 static int hf_h450_retrieveAddress = -1;          /* EndpointAddress */
346 static int hf_h450_parkPosition = -1;             /* ParkedToPosition */
347 static int hf_h450_groupIndicationOnArg_extensionArg = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
348 static int hf_h450_groupIndicationOnArg_extensionArg_item = -1;  /* MixedExtension */
349 static int hf_h450_groupIndicationOffArg_extensionArg = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
350 static int hf_h450_groupIndicationOffArg_extensionArg_item = -1;  /* MixedExtension */
351 static int hf_h450_picking_upNumber = -1;         /* EndpointAddress */
352 static int hf_h450_pickrequArg_extensionArg = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
353 static int hf_h450_pickrequArg_extensionArg_item = -1;  /* MixedExtension */
354 static int hf_h450_pickupArg_extensionArg = -1;   /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
355 static int hf_h450_pickupArg_extensionArg_item = -1;  /* MixedExtension */
356 static int hf_h450_pickExeArg_extensionArg = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
357 static int hf_h450_pickExeArg_extensionArg_item = -1;  /* MixedExtension */
358 static int hf_h450_cpNotifyArg_extensionArg = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
359 static int hf_h450_cpNotifyArg_extensionArg_item = -1;  /* MixedExtension */
360 static int hf_h450_cpickupNotifyArg_extensionArg = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
361 static int hf_h450_cpickupNotifyArg_extensionArg_item = -1;  /* MixedExtension */
362 static int hf_h450_nbOfAddWaitingCalls = -1;      /* INTEGER_0_255 */
363 static int hf_h450_callWaitingArg_extensionArg = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
364 static int hf_h450_callWaitingArg_extensionArg_item = -1;  /* MixedExtension */
365 static int hf_h450_msgCentreId = -1;              /* MsgCentreId */
366 static int hf_h450_nbOfMessages = -1;             /* NbOfMessages */
367 static int hf_h450_originatingNr = -1;            /* EndpointAddress */
368 static int hf_h450_timestamp = -1;                /* TimeStamp */
369 static int hf_h450_priority = -1;                 /* INTEGER_0_9 */
370 static int hf_h450_mWIActivateArg_extensionArg = -1;  /* ExtensionArg */
371 static int hf_h450_MwiDummyRes_item = -1;         /* MixedExtension */
372 static int hf_h450_callbackReq = -1;              /* BOOLEAN */
373 static int hf_h450_mWIDeactivateArg_extensionArg = -1;  /* ExtensionArg */
374 static int hf_h450_mWIInterrogateArg_extensionArg = -1;  /* ExtensionArg */
375 static int hf_h450_MWIInterrogateRes_item = -1;   /* MWIInterrogateResElt */
376 static int hf_h450_mWIInterrogateResElt_extensionArg = -1;  /* ExtensionArg */
377 static int hf_h450_integer = -1;                  /* INTEGER_0_65535 */
378 static int hf_h450_mwipartyNumber = -1;           /* EndpointAddress */
379 static int hf_h450_numericString = -1;            /* NumericString_SIZE_1_10 */
380 static int hf_h450_ExtensionArg_item = -1;        /* MixedExtension */
381 static int hf_h450_name = -1;                     /* Name */
382 static int hf_h450_nameArg_extensionArg = -1;     /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
383 static int hf_h450_nameArg_extensionArg_item = -1;  /* MixedExtension */
384 static int hf_h450_namePresentationAllowed = -1;  /* NamePresentationAllowed */
385 static int hf_h450_namePresentationRestricted = -1;  /* NamePresentationRestricted */
386 static int hf_h450_nameNotAvailable = -1;         /* NULL */
387 static int hf_h450_simpleName = -1;               /* SimpleName */
388 static int hf_h450_extendedName = -1;             /* ExtendedName */
389 static int hf_h450_restrictedNull = -1;           /* NULL */
390 static int hf_h450_numberA = -1;                  /* EndpointAddress */
391 static int hf_h450_numberB = -1;                  /* EndpointAddress */
392 static int hf_h450_ccIdentifier = -1;             /* CallIdentifier */
393 static int hf_h450_service = -1;                  /* BasicService */
394 static int hf_h450_can_retain_service = -1;       /* BOOLEAN */
395 static int hf_h450_retain_sig_connection = -1;    /* BOOLEAN */
396 static int hf_h450_ccRequestArg_extension = -1;   /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
397 static int hf_h450_ccRequestArg_extension_item = -1;  /* MixedExtension */
398 static int hf_h450_retain_service = -1;           /* BOOLEAN */
399 static int hf_h450_ccRequestRes_extension = -1;   /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
400 static int hf_h450_ccRequestRes_extension_item = -1;  /* MixedExtension */
401 static int hf_h450_shortArg = -1;                 /* CcShortArg */
402 static int hf_h450_longArg = -1;                  /* CcLongArg */
403 static int hf_h450_ccShortArg_extension = -1;     /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
404 static int hf_h450_ccShortArg_extension_item = -1;  /* MixedExtension */
405 static int hf_h450_ccLongArg_extension = -1;      /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
406 static int hf_h450_ccLongArg_extension_item = -1;  /* MixedExtension */
407 static int hf_h450_coReqOptArg_extension = -1;    /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
408 static int hf_h450_coReqOptArg_extension_item = -1;  /* MixedExtension */
409 static int hf_h450_rUAlertOptArg_extension = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
410 static int hf_h450_rUAlertOptArg_extension_item = -1;  /* MixedExtension */
411 static int hf_h450_cfbOvrOptArg_extension = -1;   /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
412 static int hf_h450_cfbOvrOptArg_extension_item = -1;  /* MixedExtension */
413 static int hf_h450_ciCapabilityLevel = -1;        /* CICapabilityLevel */
414 static int hf_h450_cIRequestArg_argumentExtension = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
415 static int hf_h450_cIRequestArg_argumentExtension_item = -1;  /* MixedExtension */
416 static int hf_h450_ciStatusInformation = -1;      /* CIStatusInformation */
417 static int hf_h450_cIRequestRes_resultExtension = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
418 static int hf_h450_cIRequestRes_resultExtension_item = -1;  /* MixedExtension */
419 static int hf_h450_cIGetCIPLOptArg_argumentExtension = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
420 static int hf_h450_cIGetCIPLOptArg_argumentExtension_item = -1;  /* MixedExtension */
421 static int hf_h450_ciProtectionLevel = -1;        /* CIProtectionLevel */
422 static int hf_h450_silentMonitoringPermitted = -1;  /* NULL */
423 static int hf_h450_cIGetCIPLRes_resultExtension = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
424 static int hf_h450_cIGetCIPLRes_resultExtension_item = -1;  /* MixedExtension */
425 static int hf_h450_cIIsOptArg_argumentExtension = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
426 static int hf_h450_cIIsOptArg_argumentExtension_item = -1;  /* MixedExtension */
427 static int hf_h450_cIIsOptRes_resultExtension = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
428 static int hf_h450_cIIsOptRes_resultExtension_item = -1;  /* MixedExtension */
429 static int hf_h450_cIFrcRelArg_argumentExtension = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
430 static int hf_h450_cIFrcRelArg_argumentExtension_item = -1;  /* MixedExtension */
431 static int hf_h450_cIFrcRelOptRes_resultExtension = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
432 static int hf_h450_cIFrcRelOptRes_resultExtension_item = -1;  /* MixedExtension */
433 static int hf_h450_cIWobOptArg_argumentExtension = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
434 static int hf_h450_cIWobOptArg_argumentExtension_item = -1;  /* MixedExtension */
435 static int hf_h450_cIWobOptRes_resultExtension = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
436 static int hf_h450_cIWobOptRes_resultExtension_item = -1;  /* MixedExtension */
437 static int hf_h450_specificCall = -1;             /* CallIdentifier */
438 static int hf_h450_cISilentArg_argumentExtension = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
439 static int hf_h450_cISilentArg_argumentExtension_item = -1;  /* MixedExtension */
440 static int hf_h450_cISilentOptRes_resultExtension = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
441 static int hf_h450_cISilentOptRes_resultExtension_item = -1;  /* MixedExtension */
442 static int hf_h450_cINotificationArg_argumentExtension = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
443 static int hf_h450_cINotificationArg_argumentExtension_item = -1;  /* MixedExtension */
444 static int hf_h450_callIntrusionImpending = -1;   /* NULL */
445 static int hf_h450_callIntruded = -1;             /* NULL */
446 static int hf_h450_callIsolated = -1;             /* NULL */
447 static int hf_h450_callForceReleased = -1;        /* NULL */
448 static int hf_h450_callIntrusionComplete = -1;    /* NULL */
449 static int hf_h450_callIntrusionEnd = -1;         /* NULL */
450 static int hf_h450_featureList = -1;              /* FeatureList */
451 static int hf_h450_featureValues = -1;            /* FeatureValues */
452 static int hf_h450_featureControl = -1;           /* FeatureControl */
453 static int hf_h450_cmnArg_extension = -1;         /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
454 static int hf_h450_cmnArg_extension_item = -1;    /* MixedExtension */
455 static int hf_h450_cmnRequestArg_extensionArg = -1;  /* SEQUENCE_SIZE_0_255_OF_MixedExtension */
456 static int hf_h450_cmnRequestArg_extensionArg_item = -1;  /* MixedExtension */
457 static int hf_h450_ssCFreRoutingSupported = -1;   /* NULL */
458 static int hf_h450_ssCTreRoutingSupported = -1;   /* NULL */
459 static int hf_h450_ssCCBSPossible = -1;           /* NULL */
460 static int hf_h450_ssCCNRPossible = -1;           /* NULL */
461 static int hf_h450_ssCOSupported = -1;            /* NULL */
462 static int hf_h450_ssCIForcedReleaseSupported = -1;  /* NULL */
463 static int hf_h450_ssCIIsolationSupported = -1;   /* NULL */
464 static int hf_h450_ssCIWaitOnBusySupported = -1;  /* NULL */
465 static int hf_h450_ssCISilentMonitoringSupported = -1;  /* NULL */
466 static int hf_h450_ssCIConferenceSupported = -1;  /* NULL */
467 static int hf_h450_ssCHFarHoldSupported = -1;     /* NULL */
468 static int hf_h450_ssMWICallbackSupported = -1;   /* NULL */
469 static int hf_h450_ssCPCallParkSupported = -1;    /* NULL */
470 static int hf_h450_partyCategory = -1;            /* PartyCategory */
471 static int hf_h450_ssCIprotectionLevel = -1;      /* SSCIProtectionLevel */
472 static int hf_h450_ssCHDoNotHold = -1;            /* NULL */
473 static int hf_h450_ssCTDoNotTransfer = -1;        /* NULL */
474 static int hf_h450_ssMWICallbackCall = -1;        /* NULL */
475 static int hf_h450_ssCISilentMonitorPermitted = -1;  /* NULL */
476 static int hf_h450_unspecified_extension = -1;    /* Extension */
477 static int hf_h450_nonStandard = -1;              /* NonStandardParameter */
478 static int hf_h450_extensionId = -1;              /* OBJECT_IDENTIFIER */
479 static int hf_h450_extensionArgument = -1;        /* ExtensionArgument */
480
481 /*--- End of included file: packet-h450-hf.c ---*/
482 #line 196 "packet-h450-template.c"
483
484 /* Initialize the subtree pointers */
485 static gint ett_h4501 = -1;
486 static gint ett_h4501_opcode = -1;
487 static gint ett_h4501_result = -1;
488 static gint ett_h4501_errorCode = -1;
489
490 static gint ett_h4501_problem = -1;
491 static gint ett_h4501_Reject = -1;
492 static gint ett_h4501_ReturnError = -1;
493 static gint ett_h4501_ReturnResult = -1;
494 static gint ett_h4501_Invoke = -1;
495 static gint ett_h4501_ROS = -1;
496
497
498 /*--- Included file: packet-h450-ett.c ---*/
499 #line 1 "packet-h450-ett.c"
500 static gint ett_h450_H4501SupplementaryService = -1;
501 static gint ett_h450_NetworkFacilityExtension = -1;
502 static gint ett_h450_EntityType = -1;
503 static gint ett_h450_InterpretationApdu = -1;
504 static gint ett_h450_ServiceApdus = -1;
505 static gint ett_h450_SEQUENCE_OF_ROSxxx = -1;
506 static gint ett_h450_PresentedAddressScreened = -1;
507 static gint ett_h450_PresentedAddressUnscreened = -1;
508 static gint ett_h450_PresentedNumberScreened = -1;
509 static gint ett_h450_PresentedNumberUnscreened = -1;
510 static gint ett_h450_AddressScreened = -1;
511 static gint ett_h450_NumberScreened = -1;
512 static gint ett_h450_Address = -1;
513 static gint ett_h450_EndpointAddress = -1;
514 static gint ett_h450_SEQUENCE_OF_AliasAddress = -1;
515 static gint ett_h450_PartySubaddress = -1;
516 static gint ett_h450_UserSpecifiedSubaddress = -1;
517 static gint ett_h450_DummyArg = -1;
518 static gint ett_h450_DummyRes = -1;
519 static gint ett_h450_CTInitiateArg = -1;
520 static gint ett_h450_ArgumentExtension = -1;
521 static gint ett_h450_CTSetupArg = -1;
522 static gint ett_h450_CTIdentifyRes = -1;
523 static gint ett_h450_T_resultExtension = -1;
524 static gint ett_h450_CTUpdateArg = -1;
525 static gint ett_h450_SubaddressTransferArg = -1;
526 static gint ett_h450_CTCompleteArg = -1;
527 static gint ett_h450_CTActiveArg = -1;
528 static gint ett_h450_ExtensionSeq = -1;
529 static gint ett_h450_ActivateDiversionQArg = -1;
530 static gint ett_h450_ActivateDiversionQArg_extension = -1;
531 static gint ett_h450_ActivateDiversionQRes = -1;
532 static gint ett_h450_DeactivateDiversionQArg = -1;
533 static gint ett_h450_DeactivateDiversionQArg_extension = -1;
534 static gint ett_h450_DeactivateDiversionQRes = -1;
535 static gint ett_h450_InterrogateDiversionQ = -1;
536 static gint ett_h450_InterrogateDiversionQ_extension = -1;
537 static gint ett_h450_CheckRestrictionArg = -1;
538 static gint ett_h450_CheckRestrictionArg_extension = -1;
539 static gint ett_h450_CheckRestrictionRes = -1;
540 static gint ett_h450_CallReroutingArg = -1;
541 static gint ett_h450_CallReroutingArg_extension = -1;
542 static gint ett_h450_CallReroutingRes = -1;
543 static gint ett_h450_DivertingLegInformation1Arg = -1;
544 static gint ett_h450_DivertingLegInformation1Arg_extension = -1;
545 static gint ett_h450_DivertingLegInformation2Arg = -1;
546 static gint ett_h450_DivertingLegInformation2Arg_extension = -1;
547 static gint ett_h450_DivertingLegInformation3Arg = -1;
548 static gint ett_h450_DivertingLegInformation3Arg_extension = -1;
549 static gint ett_h450_DivertingLegInformation4Arg = -1;
550 static gint ett_h450_DivertingLegInformation4Arg_extension = -1;
551 static gint ett_h450_CfnrDivertedLegFailedArg = -1;
552 static gint ett_h450_IntResultList = -1;
553 static gint ett_h450_IntResult = -1;
554 static gint ett_h450_IntResult_extension = -1;
555 static gint ett_h450_HoldNotificArg = -1;
556 static gint ett_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension = -1;
557 static gint ett_h450_RetrieveNotificArg = -1;
558 static gint ett_h450_RemoteHoldArg = -1;
559 static gint ett_h450_RemoteHoldRes = -1;
560 static gint ett_h450_RemoteRetrieveArg = -1;
561 static gint ett_h450_RemoteRetrieveRes = -1;
562 static gint ett_h450_MixedExtension = -1;
563 static gint ett_h450_CpRequestArg = -1;
564 static gint ett_h450_CpRequestRes = -1;
565 static gint ett_h450_CpSetupArg = -1;
566 static gint ett_h450_CpSetupRes = -1;
567 static gint ett_h450_GroupIndicationOnArg = -1;
568 static gint ett_h450_GroupIndicationOnRes = -1;
569 static gint ett_h450_GroupIndicationOffArg = -1;
570 static gint ett_h450_GroupIndicationOffRes = -1;
571 static gint ett_h450_PickrequArg = -1;
572 static gint ett_h450_PickrequRes = -1;
573 static gint ett_h450_PickupArg = -1;
574 static gint ett_h450_PickupRes = -1;
575 static gint ett_h450_PickExeArg = -1;
576 static gint ett_h450_PickExeRes = -1;
577 static gint ett_h450_CpNotifyArg = -1;
578 static gint ett_h450_CpickupNotifyArg = -1;
579 static gint ett_h450_CallWaitingArg = -1;
580 static gint ett_h450_MWIActivateArg = -1;
581 static gint ett_h450_MwiDummyRes = -1;
582 static gint ett_h450_MWIDeactivateArg = -1;
583 static gint ett_h450_MWIInterrogateArg = -1;
584 static gint ett_h450_MWIInterrogateRes = -1;
585 static gint ett_h450_MWIInterrogateResElt = -1;
586 static gint ett_h450_MsgCentreId = -1;
587 static gint ett_h450_ExtensionArg = -1;
588 static gint ett_h450_NameArg = -1;
589 static gint ett_h450_Name = -1;
590 static gint ett_h450_NamePresentationAllowed = -1;
591 static gint ett_h450_NamePresentationRestricted = -1;
592 static gint ett_h450_CcRequestArg = -1;
593 static gint ett_h450_CcRequestRes = -1;
594 static gint ett_h450_CcArg = -1;
595 static gint ett_h450_CcShortArg = -1;
596 static gint ett_h450_CcLongArg = -1;
597 static gint ett_h450_CoReqOptArg = -1;
598 static gint ett_h450_RUAlertOptArg = -1;
599 static gint ett_h450_CfbOvrOptArg = -1;
600 static gint ett_h450_CIRequestArg = -1;
601 static gint ett_h450_CIRequestRes = -1;
602 static gint ett_h450_CIGetCIPLOptArg = -1;
603 static gint ett_h450_CIGetCIPLRes = -1;
604 static gint ett_h450_CIIsOptArg = -1;
605 static gint ett_h450_CIIsOptRes = -1;
606 static gint ett_h450_CIFrcRelArg = -1;
607 static gint ett_h450_CIFrcRelOptRes = -1;
608 static gint ett_h450_CIWobOptArg = -1;
609 static gint ett_h450_CIWobOptRes = -1;
610 static gint ett_h450_CISilentArg = -1;
611 static gint ett_h450_CISilentOptRes = -1;
612 static gint ett_h450_CINotificationArg = -1;
613 static gint ett_h450_CIStatusInformation = -1;
614 static gint ett_h450_CmnArg = -1;
615 static gint ett_h450_CmnRequestArg = -1;
616 static gint ett_h450_FeatureList = -1;
617 static gint ett_h450_FeatureValues = -1;
618 static gint ett_h450_FeatureControl = -1;
619 static gint ett_h450_Unspecified = -1;
620 static gint ett_h450_Extension = -1;
621
622 /*--- End of included file: packet-h450-ett.c ---*/
623 #line 211 "packet-h450-template.c"
624
625 /* Global variables */
626 static guint32 localOpcode;
627 static guint32 localErrorCode;
628 static const char *globalcode_oid_str;
629 static gboolean is_globalcode;
630
631 static const value_string localOpcode_vals[] = {
632    /* H.450.2 Call Transfer opcodes */
633    { CallTransferIdentify,    "callTransferIdentify"},
634    { CallTransferAbandon,     "callTransferAbandon"},
635    { CallTransferInitiate,    "callTransferInitiate"},
636    { CallTransferSetup,       "callTransferSetup"},
637    { CallTransferUpdate,      "callTransferUpdate"},
638    { SubaddressTransfer,      "subaddressTransfer"},
639    { CallTransferComplete,    "callTransferComplete"},
640    { CallTransferActive,      "callTransferActive"},
641
642    /* H.450.3 Call Diversion opcodes */
643    { ActivateDiversionQ,      "activateDiversionQ"},
644    { DeactivateDiversionQ,    "deactivateDiversionQ"},
645    { InterrogateDiversionQ,   "interrogateDiversionQ"},
646    { CheckRestriction,        "checkRestriction"},
647    { CallRerouting,           "callRerouting"},
648    { DivertingLegInformation1,"divertingLegInformation1"},
649    { DivertingLegInformation2,"divertingLegInformation2"},
650    { DivertingLegInformation3,"divertingLegInformation3"},
651    { DivertingLegInformation4,"divertingLegInformation4"},
652    { CfnrDivertedLegFailed,   "cfnrDivertedLegFailed"},
653
654    /* H.450.4 Call Hold opcodes */
655    { HoldNotific,             "holdNotific"},
656    { RetrieveNotific,         "retrieveNotific"},
657    { RemoteHold,              "remoteHold"},
658    { RemoteRetrieve,          "remoteRetrieve"},
659
660    /* H.450.5 Call Park and Pickup opcodes */
661    { CpRequest,               "cpRequest"},
662    { CpSetup,                 "cpSetup"},
663    { GroupIndicationOn,       "groupIndicationOn"},
664    { GroupIndicationOff,      "groupIndicationOff"},
665    { Pickrequ,                "pickrequ"},
666    { Pickup,                  "pickup"},
667    { PickExe,                 "pickExe"},
668    { CpNotify,                "cpNotify"},
669    { CpickupNotify,           "cpickupNotify"},
670
671    /* H.450.6 Call Waiting opcodes */
672    { CallWaiting,             "callWaiting"},
673
674    /* H.450.7 Message Waiting Indication constants */
675    { MWIActivate,             "mwiActivate"},
676    { MWIDeactivate,           "mwiDeactivate"},
677    { MWIInterrogate,          "mwiInterrogate"}, 
678
679    /* H.450.8 Name Identification constants */
680    { NIcallingName,           "niCallingName"},
681    { NIalertingName,          "niAlertingName"},
682    { NIconnectedName,         "niConnectedName"},
683    { NIbusyName,              "niBusyName"}, 
684
685    /* H.450.9 Call Completion constants */
686    { CCBSRequest,             "ccbsRequest"},
687    { CCNRRequest,             "ccnrRequest"},
688    { CCCancel,                "ccCancel"},
689    { CCExecPossible,          "ccExecPossible"},
690    { CCRingout,               "ccRingout"},
691    { CCSuspend,               "ccSuspend"},
692    { CCResume,                "ccResume"}, 
693
694    /* H.450.10 Call Offer constants */
695    { CallOfferRequest,        "callOfferRequest"},
696    { RemoteUserAlerting,      "remoteUserAlerting"},
697    { CFBOverride,             "cfbOverride"}, 
698
699    /* H.450.11 Call Intrusion constants */
700    { CallIntrusionRequest,      "callIntrusionRequest"},
701    { CallIntrusionGetCIPL,      "callIntrusionGetCIPL"},
702    { CallIntrusionIsolate,      "callIntrusionIsolate"},
703    { CallIntrusionForcedRelease,"callIntrusionForcedRelease"},
704    { CallIntrusionWOBRequest,   "callIntrusionWOBRequest"},
705    { CallIntrusionSilentMonitor,"callIntrusionSilentMonitor"},
706    { CallIntrusionNotification, "callIntrusionNotification"},
707
708    /* TODO - add other H.450.x invoke opcodes here */
709 /* H.450.12 Common Information Operations constants */
710    { CmnRequest,                                "CmnRequest"},
711    { CmnInform,                                 "CmnInform"},
712         {  0, NULL }
713 };
714
715 static int dissect_h4501_Argument(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
716 static int dissect_ros_ROSxxx(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_ind _U_);
717
718
719
720
721 /*--- Included file: packet-h450-fn.c ---*/
722 #line 1 "packet-h450-fn.c"
723
724
725 static int
726 dissect_h450_NULL(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
727   offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
728
729   return offset;
730 }
731
732
733 static const value_string h450_EntityType_vals[] = {
734   {   0, "endpoint" },
735   {   1, "anyEntity" },
736   { 0, NULL }
737 };
738
739 static const per_choice_t EntityType_choice[] = {
740   {   0, &hf_h450_endpoint       , ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
741   {   1, &hf_h450_anyEntity      , ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
742   { 0, NULL, 0, NULL }
743 };
744
745 static int
746 dissect_h450_EntityType(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
747   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
748                                  ett_h450_EntityType, EntityType_choice,
749                                  NULL);
750
751   return offset;
752 }
753
754
755
756 static int
757 dissect_h450_AddressInformation(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
758   offset = dissect_h225_AliasAddress(tvb, offset, actx, tree, hf_index);
759
760   return offset;
761 }
762
763
764 static const per_sequence_t NetworkFacilityExtension_sequence[] = {
765   { &hf_h450_sourceEntity   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EntityType },
766   { &hf_h450_sourceEntityAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_AddressInformation },
767   { &hf_h450_destinationEntity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EntityType },
768   { &hf_h450_destinationEntityAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_AddressInformation },
769   { NULL, 0, 0, NULL }
770 };
771
772 static int
773 dissect_h450_NetworkFacilityExtension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
774   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
775                                    ett_h450_NetworkFacilityExtension, NetworkFacilityExtension_sequence);
776
777   return offset;
778 }
779
780
781 static const value_string h450_InterpretationApdu_vals[] = {
782   {   0, "discardAnyUnrecognizedInvokePdu" },
783   {   1, "clearCallIfAnyInvokePduNotRecognized" },
784   {   2, "rejectAnyUnrecognizedInvokePdu" },
785   { 0, NULL }
786 };
787
788 static const per_choice_t InterpretationApdu_choice[] = {
789   {   0, &hf_h450_discardAnyUnrecognizedInvokePdu, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
790   {   1, &hf_h450_clearCallIfAnyInvokePduNotRecognized, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
791   {   2, &hf_h450_rejectAnyUnrecognizedInvokePdu, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
792   { 0, NULL, 0, NULL }
793 };
794
795 static int
796 dissect_h450_InterpretationApdu(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
797   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
798                                  ett_h450_InterpretationApdu, InterpretationApdu_choice,
799                                  NULL);
800
801   return offset;
802 }
803
804
805 static const per_sequence_t SEQUENCE_OF_ROSxxx_sequence_of[1] = {
806   { &hf_h450_rosApdus_item  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_ros_ROSxxx },
807 };
808
809 static int
810 dissect_h450_SEQUENCE_OF_ROSxxx(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
811   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
812                                       ett_h450_SEQUENCE_OF_ROSxxx, SEQUENCE_OF_ROSxxx_sequence_of);
813
814   return offset;
815 }
816
817
818 static const value_string h450_ServiceApdus_vals[] = {
819   {   0, "rosApdus" },
820   { 0, NULL }
821 };
822
823 static const per_choice_t ServiceApdus_choice[] = {
824   {   0, &hf_h450_rosApdus       , ASN1_EXTENSION_ROOT    , dissect_h450_SEQUENCE_OF_ROSxxx },
825   { 0, NULL, 0, NULL }
826 };
827
828 static int
829 dissect_h450_ServiceApdus(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
830   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
831                                  ett_h450_ServiceApdus, ServiceApdus_choice,
832                                  NULL);
833
834   return offset;
835 }
836
837
838 static const per_sequence_t H4501SupplementaryService_sequence[] = {
839   { &hf_h450_networkFacilityExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NetworkFacilityExtension },
840   { &hf_h450_interpretationApdu, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_InterpretationApdu },
841   { &hf_h450_serviceApdu    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_ServiceApdus },
842   { NULL, 0, 0, NULL }
843 };
844
845 static int
846 dissect_h450_H4501SupplementaryService(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
847   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
848                                    ett_h450_H4501SupplementaryService, H4501SupplementaryService_sequence);
849
850   return offset;
851 }
852
853
854
855 static int
856 dissect_h450_Notassignedlocalopcode(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
857   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
858                                        NO_BOUND, NO_BOUND, NULL);
859
860   return offset;
861 }
862
863
864
865 static int
866 dissect_h450_SubaddressInformation(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
867   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
868                                        1, 20, NULL);
869
870   return offset;
871 }
872
873
874
875 static int
876 dissect_h450_BOOLEAN(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
877   offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
878
879   return offset;
880 }
881
882
883 static const per_sequence_t UserSpecifiedSubaddress_sequence[] = {
884   { &hf_h450_subaddressInformation, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_SubaddressInformation },
885   { &hf_h450_oddCountIndicator, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BOOLEAN },
886   { NULL, 0, 0, NULL }
887 };
888
889 static int
890 dissect_h450_UserSpecifiedSubaddress(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
891   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
892                                    ett_h450_UserSpecifiedSubaddress, UserSpecifiedSubaddress_sequence);
893
894   return offset;
895 }
896
897
898
899 static int
900 dissect_h450_NSAPSubaddress(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
901   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
902                                        1, 20, NULL);
903
904   return offset;
905 }
906
907
908 static const value_string h450_PartySubaddress_vals[] = {
909   {   0, "userSpecifiedSubaddress" },
910   {   1, "nsapSubaddress" },
911   { 0, NULL }
912 };
913
914 static const per_choice_t PartySubaddress_choice[] = {
915   {   0, &hf_h450_userSpecifiedSubaddress, ASN1_EXTENSION_ROOT    , dissect_h450_UserSpecifiedSubaddress },
916   {   1, &hf_h450_nsapSubaddress , ASN1_EXTENSION_ROOT    , dissect_h450_NSAPSubaddress },
917   { 0, NULL, 0, NULL }
918 };
919
920 static int
921 dissect_h450_PartySubaddress(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
922   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
923                                  ett_h450_PartySubaddress, PartySubaddress_choice,
924                                  NULL);
925
926   return offset;
927 }
928
929
930 static const per_sequence_t AddressScreened_sequence[] = {
931   { &hf_h450_partyNumber    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
932   { &hf_h450_screeningIndicator, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ScreeningIndicator },
933   { &hf_h450_partySubaddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_PartySubaddress },
934   { NULL, 0, 0, NULL }
935 };
936
937 static int
938 dissect_h450_AddressScreened(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
939   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
940                                    ett_h450_AddressScreened, AddressScreened_sequence);
941
942   return offset;
943 }
944
945
946 static const value_string h450_PresentedAddressScreened_vals[] = {
947   {   0, "presentationAllowedAddress" },
948   {   1, "presentationRestricted" },
949   {   2, "numberNotAvailableDueToInterworking" },
950   {   3, "presentationRestrictedAddress" },
951   { 0, NULL }
952 };
953
954 static const per_choice_t PresentedAddressScreened_choice[] = {
955   {   0, &hf_h450_addressScreened_presentationAllowedAddress, ASN1_EXTENSION_ROOT    , dissect_h450_AddressScreened },
956   {   1, &hf_h450_presentationRestricted, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
957   {   2, &hf_h450_numberNotAvailableDueToInterworking, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
958   {   3, &hf_h450_addressScreened_presentationRestrictedAddress, ASN1_EXTENSION_ROOT    , dissect_h450_AddressScreened },
959   { 0, NULL, 0, NULL }
960 };
961
962 static int
963 dissect_h450_PresentedAddressScreened(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
964   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
965                                  ett_h450_PresentedAddressScreened, PresentedAddressScreened_choice,
966                                  NULL);
967
968   return offset;
969 }
970
971
972 static const per_sequence_t Address_sequence[] = {
973   { &hf_h450_partyNumber    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
974   { &hf_h450_partySubaddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_PartySubaddress },
975   { NULL, 0, 0, NULL }
976 };
977
978 static int
979 dissect_h450_Address(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
980   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
981                                    ett_h450_Address, Address_sequence);
982
983   return offset;
984 }
985
986
987 static const value_string h450_PresentedAddressUnscreened_vals[] = {
988   {   0, "presentationAllowedAddress" },
989   {   1, "presentationRestricted" },
990   {   2, "numberNotAvailableDueToInterworking" },
991   {   3, "presentationRestrictedAddress" },
992   { 0, NULL }
993 };
994
995 static const per_choice_t PresentedAddressUnscreened_choice[] = {
996   {   0, &hf_h450_addressUnscreened_presentationAllowedAddress, ASN1_EXTENSION_ROOT    , dissect_h450_Address },
997   {   1, &hf_h450_presentationRestricted, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
998   {   2, &hf_h450_numberNotAvailableDueToInterworking, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
999   {   3, &hf_h450_addressUnscreened_presentationRestrictedAddress, ASN1_EXTENSION_ROOT    , dissect_h450_Address },
1000   { 0, NULL, 0, NULL }
1001 };
1002
1003 static int
1004 dissect_h450_PresentedAddressUnscreened(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1005   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1006                                  ett_h450_PresentedAddressUnscreened, PresentedAddressUnscreened_choice,
1007                                  NULL);
1008
1009   return offset;
1010 }
1011
1012
1013 static const per_sequence_t NumberScreened_sequence[] = {
1014   { &hf_h450_partyNumber    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
1015   { &hf_h450_screeningIndicator, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ScreeningIndicator },
1016   { NULL, 0, 0, NULL }
1017 };
1018
1019 static int
1020 dissect_h450_NumberScreened(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1021   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1022                                    ett_h450_NumberScreened, NumberScreened_sequence);
1023
1024   return offset;
1025 }
1026
1027
1028 static const value_string h450_PresentedNumberScreened_vals[] = {
1029   {   0, "presentationAllowedAddress" },
1030   {   1, "presentationRestricted" },
1031   {   2, "numberNotAvailableDueToInterworking" },
1032   {   3, "presentationRestrictedAddress" },
1033   { 0, NULL }
1034 };
1035
1036 static const per_choice_t PresentedNumberScreened_choice[] = {
1037   {   0, &hf_h450_numberScreened_presentationAllowedAddress, ASN1_EXTENSION_ROOT    , dissect_h450_NumberScreened },
1038   {   1, &hf_h450_presentationRestricted, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
1039   {   2, &hf_h450_numberNotAvailableDueToInterworking, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
1040   {   3, &hf_h450_numberScreened_presentationRestrictedAddress, ASN1_EXTENSION_ROOT    , dissect_h450_NumberScreened },
1041   { 0, NULL, 0, NULL }
1042 };
1043
1044 static int
1045 dissect_h450_PresentedNumberScreened(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1046   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1047                                  ett_h450_PresentedNumberScreened, PresentedNumberScreened_choice,
1048                                  NULL);
1049
1050   return offset;
1051 }
1052
1053
1054 static const value_string h450_PresentedNumberUnscreened_vals[] = {
1055   {   0, "presentationAllowedAddress" },
1056   {   1, "presentationRestricted" },
1057   {   2, "numberNotAvailableDueToInterworking" },
1058   {   3, "presentationRestrictedAddress" },
1059   { 0, NULL }
1060 };
1061
1062 static const per_choice_t PresentedNumberUnscreened_choice[] = {
1063   {   0, &hf_h450_numberUnscreened_presentationAllowedAddress, ASN1_EXTENSION_ROOT    , dissect_h225_PartyNumber },
1064   {   1, &hf_h450_presentationRestricted, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
1065   {   2, &hf_h450_numberNotAvailableDueToInterworking, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
1066   {   3, &hf_h450_numberUnscreened_presentationRestrictedAddress, ASN1_EXTENSION_ROOT    , dissect_h225_PartyNumber },
1067   { 0, NULL, 0, NULL }
1068 };
1069
1070 static int
1071 dissect_h450_PresentedNumberUnscreened(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1072   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1073                                  ett_h450_PresentedNumberUnscreened, PresentedNumberUnscreened_choice,
1074                                  NULL);
1075
1076   return offset;
1077 }
1078
1079
1080 static const per_sequence_t SEQUENCE_OF_AliasAddress_sequence_of[1] = {
1081   { &hf_h450_destinationAddress_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
1082 };
1083
1084 static int
1085 dissect_h450_SEQUENCE_OF_AliasAddress(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1086   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1087                                       ett_h450_SEQUENCE_OF_AliasAddress, SEQUENCE_OF_AliasAddress_sequence_of);
1088
1089   return offset;
1090 }
1091
1092
1093 static const per_sequence_t EndpointAddress_sequence[] = {
1094   { &hf_h450_destinationAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_SEQUENCE_OF_AliasAddress },
1095   { &hf_h450_remoteExtensionAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_AliasAddress },
1096   { &hf_h450_destinationAddressPresentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
1097   { &hf_h450_destinationAddressScreeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
1098   { &hf_h450_remoteExtensionAddressPresentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
1099   { &hf_h450_remoteExtensionAddressScreeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
1100   { NULL, 0, 0, NULL }
1101 };
1102
1103 static int
1104 dissect_h450_EndpointAddress(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1105   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1106                                    ett_h450_EndpointAddress, EndpointAddress_sequence);
1107
1108   return offset;
1109 }
1110
1111
1112
1113 static int
1114 dissect_h450_PresentationAllowedIndicator(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1115   offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
1116
1117   return offset;
1118 }
1119
1120
1121
1122 static int
1123 dissect_h450_OBJECT_IDENTIFIER(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1124   offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
1125
1126   return offset;
1127 }
1128
1129
1130
1131 static int
1132 dissect_h450_ExtensionArgument(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1133   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1134                                        NO_BOUND, NO_BOUND, NULL);
1135
1136   return offset;
1137 }
1138
1139
1140 static const per_sequence_t Extension_sequence[] = {
1141   { &hf_h450_extensionId    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h450_OBJECT_IDENTIFIER },
1142   { &hf_h450_extensionArgument, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h450_ExtensionArgument },
1143   { NULL, 0, 0, NULL }
1144 };
1145
1146 static int
1147 dissect_h450_Extension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1148   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1149                                    ett_h450_Extension, Extension_sequence);
1150
1151   return offset;
1152 }
1153
1154
1155 static const per_sequence_t ExtensionSeq_sequence_of[1] = {
1156   { &hf_h450_ExtensionSeq_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h450_Extension },
1157 };
1158
1159 static int
1160 dissect_h450_ExtensionSeq(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1161   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1162                                       ett_h450_ExtensionSeq, ExtensionSeq_sequence_of);
1163
1164   return offset;
1165 }
1166
1167
1168 static const value_string h450_DummyArg_vals[] = {
1169   {   0, "extensionSeq" },
1170   {   1, "nonStandardData" },
1171   { 0, NULL }
1172 };
1173
1174 static const per_choice_t DummyArg_choice[] = {
1175   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
1176   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
1177   { 0, NULL, 0, NULL }
1178 };
1179
1180 static int
1181 dissect_h450_DummyArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1182   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1183                                  ett_h450_DummyArg, DummyArg_choice,
1184                                  NULL);
1185
1186   return offset;
1187 }
1188
1189
1190
1191 static int
1192 dissect_h450_CallTransferIdentify(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1193   offset = dissect_h450_DummyArg(tvb, offset, actx, tree, hf_index);
1194
1195   return offset;
1196 }
1197
1198
1199
1200 static int
1201 dissect_h450_CallTransferAbandon(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1202   offset = dissect_h450_DummyArg(tvb, offset, actx, tree, hf_index);
1203
1204   return offset;
1205 }
1206
1207
1208
1209 static int
1210 dissect_h450_CallIdentity(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1211   offset = dissect_per_NumericString(tvb, offset, actx, tree, hf_index,
1212                                           0, 4);
1213
1214   return offset;
1215 }
1216
1217
1218 static const value_string h450_ArgumentExtension_vals[] = {
1219   {   0, "extensionSeq" },
1220   {   1, "nonStandardData" },
1221   { 0, NULL }
1222 };
1223
1224 static const per_choice_t ArgumentExtension_choice[] = {
1225   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
1226   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
1227   { 0, NULL, 0, NULL }
1228 };
1229
1230 static int
1231 dissect_h450_ArgumentExtension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1232   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1233                                  ett_h450_ArgumentExtension, ArgumentExtension_choice,
1234                                  NULL);
1235
1236   return offset;
1237 }
1238
1239
1240 static const per_sequence_t CTInitiateArg_sequence[] = {
1241   { &hf_h450_callIdentity   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_CallIdentity },
1242   { &hf_h450_reroutingNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1243   { &hf_h450_cTInitiateArg_argumentExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ArgumentExtension },
1244   { NULL, 0, 0, NULL }
1245 };
1246
1247 static int
1248 dissect_h450_CTInitiateArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1249   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1250                                    ett_h450_CTInitiateArg, CTInitiateArg_sequence);
1251
1252   return offset;
1253 }
1254
1255
1256
1257 static int
1258 dissect_h450_CallTransferInitiate(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1259   offset = dissect_h450_CTInitiateArg(tvb, offset, actx, tree, hf_index);
1260
1261   return offset;
1262 }
1263
1264
1265 static const per_sequence_t CTSetupArg_sequence[] = {
1266   { &hf_h450_callIdentity   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_CallIdentity },
1267   { &hf_h450_transferringNumber, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_EndpointAddress },
1268   { &hf_h450_cTSetupArg_argumentExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ArgumentExtension },
1269   { NULL, 0, 0, NULL }
1270 };
1271
1272 static int
1273 dissect_h450_CTSetupArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1274   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1275                                    ett_h450_CTSetupArg, CTSetupArg_sequence);
1276
1277   return offset;
1278 }
1279
1280
1281
1282 static int
1283 dissect_h450_CallTransferSetup(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1284   offset = dissect_h450_CTSetupArg(tvb, offset, actx, tree, hf_index);
1285
1286   return offset;
1287 }
1288
1289
1290
1291 static int
1292 dissect_h450_BMPString_SIZE_1_128(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1293   offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
1294                                           1, 128);
1295
1296   return offset;
1297 }
1298
1299
1300
1301 static int
1302 dissect_h450_H225InformationElement(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1303   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1304                                        NO_BOUND, NO_BOUND, NULL);
1305
1306   return offset;
1307 }
1308
1309
1310 static const per_sequence_t CTUpdateArg_sequence[] = {
1311   { &hf_h450_redirectionNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1312   { &hf_h450_redirectionInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BMPString_SIZE_1_128 },
1313   { &hf_h450_basicCallInfoElements, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_H225InformationElement },
1314   { &hf_h450_cTUpdateArg_argumentExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ArgumentExtension },
1315   { NULL, 0, 0, NULL }
1316 };
1317
1318 static int
1319 dissect_h450_CTUpdateArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1320   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1321                                    ett_h450_CTUpdateArg, CTUpdateArg_sequence);
1322
1323   return offset;
1324 }
1325
1326
1327
1328 static int
1329 dissect_h450_CallTransferUpdate(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1330   offset = dissect_h450_CTUpdateArg(tvb, offset, actx, tree, hf_index);
1331
1332   return offset;
1333 }
1334
1335
1336 static const per_sequence_t SubaddressTransferArg_sequence[] = {
1337   { &hf_h450_redirectionSubaddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_PartySubaddress },
1338   { &hf_h450_subaddressTransferArg_argumentExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ArgumentExtension },
1339   { NULL, 0, 0, NULL }
1340 };
1341
1342 static int
1343 dissect_h450_SubaddressTransferArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1344   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1345                                    ett_h450_SubaddressTransferArg, SubaddressTransferArg_sequence);
1346
1347   return offset;
1348 }
1349
1350
1351
1352 static int
1353 dissect_h450_SubaddressTransfer(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1354   offset = dissect_h450_SubaddressTransferArg(tvb, offset, actx, tree, hf_index);
1355
1356   return offset;
1357 }
1358
1359
1360 static const value_string h450_EndDesignation_vals[] = {
1361   {   0, "primaryEnd" },
1362   {   1, "secondaryEnd" },
1363   { 0, NULL }
1364 };
1365
1366
1367 static int
1368 dissect_h450_EndDesignation(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1369   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1370                                      2, NULL, TRUE, 0, NULL);
1371
1372   return offset;
1373 }
1374
1375
1376 static const value_string h450_CallStatus_vals[] = {
1377   {   0, "answered" },
1378   {   1, "alerting" },
1379   { 0, NULL }
1380 };
1381
1382
1383 static int
1384 dissect_h450_CallStatus(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1385   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1386                                      2, NULL, TRUE, 0, NULL);
1387
1388   return offset;
1389 }
1390
1391
1392 static const per_sequence_t CTCompleteArg_sequence[] = {
1393   { &hf_h450_endDesignation , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndDesignation },
1394   { &hf_h450_redirectionNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1395   { &hf_h450_basicCallInfoElements, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_H225InformationElement },
1396   { &hf_h450_redirectionInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BMPString_SIZE_1_128 },
1397   { &hf_h450_callStatus     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_CallStatus },
1398   { &hf_h450_cTCompleteArg_argumentExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ArgumentExtension },
1399   { NULL, 0, 0, NULL }
1400 };
1401
1402 static int
1403 dissect_h450_CTCompleteArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1404   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1405                                    ett_h450_CTCompleteArg, CTCompleteArg_sequence);
1406
1407   return offset;
1408 }
1409
1410
1411
1412 static int
1413 dissect_h450_CallTransferComplete(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1414   offset = dissect_h450_CTCompleteArg(tvb, offset, actx, tree, hf_index);
1415
1416   return offset;
1417 }
1418
1419
1420 static const per_sequence_t CTActiveArg_sequence[] = {
1421   { &hf_h450_connectedAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1422   { &hf_h450_basicCallInfoElements, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_H225InformationElement },
1423   { &hf_h450_connectedInfo  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BMPString_SIZE_1_128 },
1424   { &hf_h450_cTActiveArg_argumentExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ArgumentExtension },
1425   { NULL, 0, 0, NULL }
1426 };
1427
1428 static int
1429 dissect_h450_CTActiveArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1430   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1431                                    ett_h450_CTActiveArg, CTActiveArg_sequence);
1432
1433   return offset;
1434 }
1435
1436
1437
1438 static int
1439 dissect_h450_CallTransferActive(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1440   offset = dissect_h450_CTActiveArg(tvb, offset, actx, tree, hf_index);
1441
1442   return offset;
1443 }
1444
1445
1446 static const value_string h450_DummyRes_vals[] = {
1447   {   0, "extensionSeq" },
1448   {   1, "nonStandardData" },
1449   { 0, NULL }
1450 };
1451
1452 static const per_choice_t DummyRes_choice[] = {
1453   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
1454   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
1455   { 0, NULL, 0, NULL }
1456 };
1457
1458 static int
1459 dissect_h450_DummyRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1460   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1461                                  ett_h450_DummyRes, DummyRes_choice,
1462                                  NULL);
1463
1464   return offset;
1465 }
1466
1467
1468 static const value_string h450_T_resultExtension_vals[] = {
1469   {   0, "extensionSeq" },
1470   {   1, "nonStandardData" },
1471   { 0, NULL }
1472 };
1473
1474 static const per_choice_t T_resultExtension_choice[] = {
1475   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
1476   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
1477   { 0, NULL, 0, NULL }
1478 };
1479
1480 static int
1481 dissect_h450_T_resultExtension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1482   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1483                                  ett_h450_T_resultExtension, T_resultExtension_choice,
1484                                  NULL);
1485
1486   return offset;
1487 }
1488
1489
1490 static const per_sequence_t CTIdentifyRes_sequence[] = {
1491   { &hf_h450_callIdentity   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_CallIdentity },
1492   { &hf_h450_reroutingNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1493   { &hf_h450_resultExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_T_resultExtension },
1494   { NULL, 0, 0, NULL }
1495 };
1496
1497 static int
1498 dissect_h450_CTIdentifyRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1499   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1500                                    ett_h450_CTIdentifyRes, CTIdentifyRes_sequence);
1501
1502   return offset;
1503 }
1504
1505
1506 static const value_string h450_Procedure_vals[] = {
1507   {   0, "cfu" },
1508   {   1, "cfb" },
1509   {   2, "cfnr" },
1510   { 0, NULL }
1511 };
1512
1513
1514 static int
1515 dissect_h450_Procedure(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1516   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1517                                      3, NULL, TRUE, 0, NULL);
1518
1519   return offset;
1520 }
1521
1522
1523 static const value_string h450_BasicService_vals[] = {
1524   {   0, "allServices" },
1525   {   1, "speech" },
1526   {   2, "unrestrictedDigitalInformation" },
1527   {   3, "audio3100Hz" },
1528   {  32, "telephony" },
1529   {  33, "teletex" },
1530   {  34, "telefaxGroup4Class1" },
1531   {  35, "videotexSyntaxBased" },
1532   {  36, "videotelephony" },
1533   {  37, "telefaxGroup2-3" },
1534   {  38, "reservedNotUsed1" },
1535   {  39, "reservedNotUsed2" },
1536   {  40, "reservedNotUsed3" },
1537   {  41, "reservedNotUsed4" },
1538   {  42, "reservedNotUsed5" },
1539   {  51, "email" },
1540   {  52, "video" },
1541   {  53, "fileTransfer" },
1542   {  54, "shortMessageService" },
1543   {  55, "speechAndVideo" },
1544   {  56, "speechAndFax" },
1545   {  57, "speechAndEmail" },
1546   {  58, "videoAndFax" },
1547   {  59, "videoAndEmail" },
1548   {  60, "faxAndEmail" },
1549   {  61, "speechVideoAndFax" },
1550   {  62, "speechVideoAndEmail" },
1551   {  63, "speechFaxAndEmail" },
1552   {  64, "videoFaxAndEmail" },
1553   {  65, "speechVideoFaxAndEmail" },
1554   {  66, "multimediaUnknown" },
1555   {  67, "serviceUnknown" },
1556   {  68, "futureReserve1" },
1557   {  69, "futureReserve2" },
1558   {  70, "futureReserve3" },
1559   {  71, "futureReserve4" },
1560   {  72, "futureReserve5" },
1561   {  73, "futureReserve6" },
1562   {  74, "futureReserve7" },
1563   {  75, "futureReserve8" },
1564   { 0, NULL }
1565 };
1566
1567 static guint32 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};
1568
1569 static int
1570 dissect_h450_BasicService(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1571   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1572                                      40, NULL, FALSE, 0, BasicService_value_map);
1573
1574   return offset;
1575 }
1576
1577
1578 static const value_string h450_ActivateDiversionQArg_extension_vals[] = {
1579   {   0, "extensionSeq" },
1580   {   1, "nonStandardData" },
1581   { 0, NULL }
1582 };
1583
1584 static const per_choice_t ActivateDiversionQArg_extension_choice[] = {
1585   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
1586   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
1587   { 0, NULL, 0, NULL }
1588 };
1589
1590 static int
1591 dissect_h450_ActivateDiversionQArg_extension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1592   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1593                                  ett_h450_ActivateDiversionQArg_extension, ActivateDiversionQArg_extension_choice,
1594                                  NULL);
1595
1596   return offset;
1597 }
1598
1599
1600 static const per_sequence_t ActivateDiversionQArg_sequence[] = {
1601   { &hf_h450_procedure      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_Procedure },
1602   { &hf_h450_basicService   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_BasicService },
1603   { &hf_h450_divertedToAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1604   { &hf_h450_servedUserNr   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1605   { &hf_h450_activatingUserNr, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1606   { &hf_h450_activateDiversionQArg_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ActivateDiversionQArg_extension },
1607   { NULL, 0, 0, NULL }
1608 };
1609
1610 static int
1611 dissect_h450_ActivateDiversionQArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1612   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1613                                    ett_h450_ActivateDiversionQArg, ActivateDiversionQArg_sequence);
1614
1615   return offset;
1616 }
1617
1618
1619 static const value_string h450_ActivateDiversionQRes_vals[] = {
1620   {   0, "extensionSeq" },
1621   {   1, "nonStandardData" },
1622   { 0, NULL }
1623 };
1624
1625 static const per_choice_t ActivateDiversionQRes_choice[] = {
1626   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
1627   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
1628   { 0, NULL, 0, NULL }
1629 };
1630
1631 static int
1632 dissect_h450_ActivateDiversionQRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1633   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1634                                  ett_h450_ActivateDiversionQRes, ActivateDiversionQRes_choice,
1635                                  NULL);
1636
1637   return offset;
1638 }
1639
1640
1641 static const value_string h450_DeactivateDiversionQArg_extension_vals[] = {
1642   {   0, "extensionSeq" },
1643   {   1, "nonStandardData" },
1644   { 0, NULL }
1645 };
1646
1647 static const per_choice_t DeactivateDiversionQArg_extension_choice[] = {
1648   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
1649   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
1650   { 0, NULL, 0, NULL }
1651 };
1652
1653 static int
1654 dissect_h450_DeactivateDiversionQArg_extension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1655   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1656                                  ett_h450_DeactivateDiversionQArg_extension, DeactivateDiversionQArg_extension_choice,
1657                                  NULL);
1658
1659   return offset;
1660 }
1661
1662
1663 static const per_sequence_t DeactivateDiversionQArg_sequence[] = {
1664   { &hf_h450_procedure      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_Procedure },
1665   { &hf_h450_basicService   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_BasicService },
1666   { &hf_h450_servedUserNr   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1667   { &hf_h450_deactivatingUserNr, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1668   { &hf_h450_deactivateDiversionQArg_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_DeactivateDiversionQArg_extension },
1669   { NULL, 0, 0, NULL }
1670 };
1671
1672 static int
1673 dissect_h450_DeactivateDiversionQArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1674   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1675                                    ett_h450_DeactivateDiversionQArg, DeactivateDiversionQArg_sequence);
1676
1677   return offset;
1678 }
1679
1680
1681 static const value_string h450_DeactivateDiversionQRes_vals[] = {
1682   {   0, "extensionSeq" },
1683   {   1, "nonStandardData" },
1684   { 0, NULL }
1685 };
1686
1687 static const per_choice_t DeactivateDiversionQRes_choice[] = {
1688   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
1689   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
1690   { 0, NULL, 0, NULL }
1691 };
1692
1693 static int
1694 dissect_h450_DeactivateDiversionQRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1695   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1696                                  ett_h450_DeactivateDiversionQRes, DeactivateDiversionQRes_choice,
1697                                  NULL);
1698
1699   return offset;
1700 }
1701
1702
1703 static const value_string h450_InterrogateDiversionQ_extension_vals[] = {
1704   {   0, "extensionSeq" },
1705   {   1, "nonStandardData" },
1706   { 0, NULL }
1707 };
1708
1709 static const per_choice_t InterrogateDiversionQ_extension_choice[] = {
1710   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
1711   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
1712   { 0, NULL, 0, NULL }
1713 };
1714
1715 static int
1716 dissect_h450_InterrogateDiversionQ_extension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1717   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1718                                  ett_h450_InterrogateDiversionQ_extension, InterrogateDiversionQ_extension_choice,
1719                                  NULL);
1720
1721   return offset;
1722 }
1723
1724
1725 static const per_sequence_t InterrogateDiversionQ_sequence[] = {
1726   { &hf_h450_procedure      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_Procedure },
1727   { &hf_h450_basicService   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BasicService },
1728   { &hf_h450_servedUserNr   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1729   { &hf_h450_interrogatingUserNr, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1730   { &hf_h450_interrogateDiversionQ_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_InterrogateDiversionQ_extension },
1731   { NULL, 0, 0, NULL }
1732 };
1733
1734 static int
1735 dissect_h450_InterrogateDiversionQ(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1736   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1737                                    ett_h450_InterrogateDiversionQ, InterrogateDiversionQ_sequence);
1738
1739   return offset;
1740 }
1741
1742
1743 static const value_string h450_IntResult_extension_vals[] = {
1744   {   0, "extensionSeq" },
1745   {   1, "nonStandardData" },
1746   { 0, NULL }
1747 };
1748
1749 static const per_choice_t IntResult_extension_choice[] = {
1750   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
1751   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
1752   { 0, NULL, 0, NULL }
1753 };
1754
1755 static int
1756 dissect_h450_IntResult_extension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1757   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1758                                  ett_h450_IntResult_extension, IntResult_extension_choice,
1759                                  NULL);
1760
1761   return offset;
1762 }
1763
1764
1765 static const per_sequence_t IntResult_sequence[] = {
1766   { &hf_h450_servedUserNr   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1767   { &hf_h450_basicService   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_BasicService },
1768   { &hf_h450_procedure      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_Procedure },
1769   { &hf_h450_divertedToAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1770   { &hf_h450_remoteEnabled  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BOOLEAN },
1771   { &hf_h450_intResult_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_IntResult_extension },
1772   { NULL, 0, 0, NULL }
1773 };
1774
1775 static int
1776 dissect_h450_IntResult(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1777   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1778                                    ett_h450_IntResult, IntResult_sequence);
1779
1780   return offset;
1781 }
1782
1783
1784 static const per_sequence_t IntResultList_set_of[1] = {
1785   { &hf_h450_IntResultList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h450_IntResult },
1786 };
1787
1788 static int
1789 dissect_h450_IntResultList(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1790   offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
1791                                              ett_h450_IntResultList, IntResultList_set_of,
1792                                              0, 29);
1793
1794   return offset;
1795 }
1796
1797
1798
1799 static int
1800 dissect_h450_InterrogateDiversionQRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1801   offset = dissect_h450_IntResultList(tvb, offset, actx, tree, hf_index);
1802
1803   return offset;
1804 }
1805
1806
1807 static const value_string h450_CheckRestrictionArg_extension_vals[] = {
1808   {   0, "extensionSeq" },
1809   {   1, "nonStandardData" },
1810   { 0, NULL }
1811 };
1812
1813 static const per_choice_t CheckRestrictionArg_extension_choice[] = {
1814   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
1815   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
1816   { 0, NULL, 0, NULL }
1817 };
1818
1819 static int
1820 dissect_h450_CheckRestrictionArg_extension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1821   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1822                                  ett_h450_CheckRestrictionArg_extension, CheckRestrictionArg_extension_choice,
1823                                  NULL);
1824
1825   return offset;
1826 }
1827
1828
1829 static const per_sequence_t CheckRestrictionArg_sequence[] = {
1830   { &hf_h450_servedUserNr   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1831   { &hf_h450_basicService   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_BasicService },
1832   { &hf_h450_divertedToNr   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1833   { &hf_h450_checkRestrictionArg_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_CheckRestrictionArg_extension },
1834   { NULL, 0, 0, NULL }
1835 };
1836
1837 static int
1838 dissect_h450_CheckRestrictionArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1839   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1840                                    ett_h450_CheckRestrictionArg, CheckRestrictionArg_sequence);
1841
1842   return offset;
1843 }
1844
1845
1846 static const value_string h450_CheckRestrictionRes_vals[] = {
1847   {   0, "extensionSeq" },
1848   {   1, "nonStandardData" },
1849   { 0, NULL }
1850 };
1851
1852 static const per_choice_t CheckRestrictionRes_choice[] = {
1853   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
1854   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
1855   { 0, NULL, 0, NULL }
1856 };
1857
1858 static int
1859 dissect_h450_CheckRestrictionRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1860   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1861                                  ett_h450_CheckRestrictionRes, CheckRestrictionRes_choice,
1862                                  NULL);
1863
1864   return offset;
1865 }
1866
1867
1868 static const value_string h450_DiversionReason_vals[] = {
1869   {   0, "unknown" },
1870   {   1, "cfu" },
1871   {   2, "cfb" },
1872   {   3, "cfnr" },
1873   { 0, NULL }
1874 };
1875
1876
1877 static int
1878 dissect_h450_DiversionReason(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1879   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1880                                      4, NULL, TRUE, 0, NULL);
1881
1882   return offset;
1883 }
1884
1885
1886
1887 static int
1888 dissect_h450_INTEGER_1_15(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1889   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1890                                               1U, 15U, NULL, FALSE);
1891
1892   return offset;
1893 }
1894
1895
1896 static const value_string h450_SubscriptionOption_vals[] = {
1897   {   0, "noNotification" },
1898   {   1, "notificationWithoutDivertedToNr" },
1899   {   2, "notificationWithDivertedToNr" },
1900   { 0, NULL }
1901 };
1902
1903
1904 static int
1905 dissect_h450_SubscriptionOption(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1906   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1907                                      3, NULL, TRUE, 0, NULL);
1908
1909   return offset;
1910 }
1911
1912
1913 static const value_string h450_CallReroutingArg_extension_vals[] = {
1914   {   0, "extensionSeq" },
1915   {   1, "nonStandardData" },
1916   { 0, NULL }
1917 };
1918
1919 static const per_choice_t CallReroutingArg_extension_choice[] = {
1920   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
1921   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
1922   { 0, NULL, 0, NULL }
1923 };
1924
1925 static int
1926 dissect_h450_CallReroutingArg_extension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1927   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1928                                  ett_h450_CallReroutingArg_extension, CallReroutingArg_extension_choice,
1929                                  NULL);
1930
1931   return offset;
1932 }
1933
1934
1935 static const per_sequence_t CallReroutingArg_sequence[] = {
1936   { &hf_h450_reroutingReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_DiversionReason },
1937   { &hf_h450_originalReroutingReason, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_DiversionReason },
1938   { &hf_h450_calledAddress  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1939   { &hf_h450_diversionCounter, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_INTEGER_1_15 },
1940   { &hf_h450_h225InfoElement, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_H225InformationElement },
1941   { &hf_h450_lastReroutingNr, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1942   { &hf_h450_subscriptionOption, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_SubscriptionOption },
1943   { &hf_h450_callingPartySubaddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_PartySubaddress },
1944   { &hf_h450_callingNumber  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
1945   { &hf_h450_callingInfo    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BMPString_SIZE_1_128 },
1946   { &hf_h450_originalCalledNr, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_EndpointAddress },
1947   { &hf_h450_redirectingInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BMPString_SIZE_1_128 },
1948   { &hf_h450_originalCalledInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BMPString_SIZE_1_128 },
1949   { &hf_h450_callReroutingArg_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_CallReroutingArg_extension },
1950   { NULL, 0, 0, NULL }
1951 };
1952
1953 static int
1954 dissect_h450_CallReroutingArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1955   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1956                                    ett_h450_CallReroutingArg, CallReroutingArg_sequence);
1957
1958   return offset;
1959 }
1960
1961
1962 static const value_string h450_CallReroutingRes_vals[] = {
1963   {   0, "extensionSeq" },
1964   {   1, "nonStandardData" },
1965   { 0, NULL }
1966 };
1967
1968 static const per_choice_t CallReroutingRes_choice[] = {
1969   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
1970   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
1971   { 0, NULL, 0, NULL }
1972 };
1973
1974 static int
1975 dissect_h450_CallReroutingRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1976   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1977                                  ett_h450_CallReroutingRes, CallReroutingRes_choice,
1978                                  NULL);
1979
1980   return offset;
1981 }
1982
1983
1984 static const value_string h450_DivertingLegInformation1Arg_extension_vals[] = {
1985   {   0, "extensionSeq" },
1986   {   1, "nonStandardData" },
1987   { 0, NULL }
1988 };
1989
1990 static const per_choice_t DivertingLegInformation1Arg_extension_choice[] = {
1991   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
1992   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
1993   { 0, NULL, 0, NULL }
1994 };
1995
1996 static int
1997 dissect_h450_DivertingLegInformation1Arg_extension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1998   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1999                                  ett_h450_DivertingLegInformation1Arg_extension, DivertingLegInformation1Arg_extension_choice,
2000                                  NULL);
2001
2002   return offset;
2003 }
2004
2005
2006 static const per_sequence_t DivertingLegInformation1Arg_sequence[] = {
2007   { &hf_h450_diversionReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_DiversionReason },
2008   { &hf_h450_subscriptionOption, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_SubscriptionOption },
2009   { &hf_h450_nominatedNr    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2010   { &hf_h450_nominatedInfo  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BMPString_SIZE_1_128 },
2011   { &hf_h450_redirectingNr  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_EndpointAddress },
2012   { &hf_h450_redirectingInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BMPString_SIZE_1_128 },
2013   { &hf_h450_divertingLegInformation1Arg_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_DivertingLegInformation1Arg_extension },
2014   { NULL, 0, 0, NULL }
2015 };
2016
2017 static int
2018 dissect_h450_DivertingLegInformation1Arg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2019   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2020                                    ett_h450_DivertingLegInformation1Arg, DivertingLegInformation1Arg_sequence);
2021
2022   return offset;
2023 }
2024
2025
2026 static const value_string h450_DivertingLegInformation2Arg_extension_vals[] = {
2027   {   0, "extensionSeq" },
2028   {   1, "nonStandardData" },
2029   { 0, NULL }
2030 };
2031
2032 static const per_choice_t DivertingLegInformation2Arg_extension_choice[] = {
2033   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
2034   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
2035   { 0, NULL, 0, NULL }
2036 };
2037
2038 static int
2039 dissect_h450_DivertingLegInformation2Arg_extension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2040   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2041                                  ett_h450_DivertingLegInformation2Arg_extension, DivertingLegInformation2Arg_extension_choice,
2042                                  NULL);
2043
2044   return offset;
2045 }
2046
2047
2048 static const per_sequence_t DivertingLegInformation2Arg_sequence[] = {
2049   { &hf_h450_diversionCounter, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_INTEGER_1_15 },
2050   { &hf_h450_diversionReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_DiversionReason },
2051   { &hf_h450_originalDiversionReason, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_DiversionReason },
2052   { &hf_h450_divertingNr    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_EndpointAddress },
2053   { &hf_h450_originalCalledNr, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_EndpointAddress },
2054   { &hf_h450_redirectingInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BMPString_SIZE_1_128 },
2055   { &hf_h450_originalCalledInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BMPString_SIZE_1_128 },
2056   { &hf_h450_extension      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_DivertingLegInformation2Arg_extension },
2057   { NULL, 0, 0, NULL }
2058 };
2059
2060 static int
2061 dissect_h450_DivertingLegInformation2Arg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2062   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2063                                    ett_h450_DivertingLegInformation2Arg, DivertingLegInformation2Arg_sequence);
2064
2065   return offset;
2066 }
2067
2068
2069 static const value_string h450_DivertingLegInformation3Arg_extension_vals[] = {
2070   {   0, "extensionSeq" },
2071   {   1, "nonStandardData" },
2072   { 0, NULL }
2073 };
2074
2075 static const per_choice_t DivertingLegInformation3Arg_extension_choice[] = {
2076   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
2077   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
2078   { 0, NULL, 0, NULL }
2079 };
2080
2081 static int
2082 dissect_h450_DivertingLegInformation3Arg_extension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2083   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2084                                  ett_h450_DivertingLegInformation3Arg_extension, DivertingLegInformation3Arg_extension_choice,
2085                                  NULL);
2086
2087   return offset;
2088 }
2089
2090
2091 static const per_sequence_t DivertingLegInformation3Arg_sequence[] = {
2092   { &hf_h450_presentationAllowedIndicator, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_PresentationAllowedIndicator },
2093   { &hf_h450_redirectionNr  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_EndpointAddress },
2094   { &hf_h450_redirectionInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BMPString_SIZE_1_128 },
2095   { &hf_h450_divertingLegInformation3Arg_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_DivertingLegInformation3Arg_extension },
2096   { NULL, 0, 0, NULL }
2097 };
2098
2099 static int
2100 dissect_h450_DivertingLegInformation3Arg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2101   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2102                                    ett_h450_DivertingLegInformation3Arg, DivertingLegInformation3Arg_sequence);
2103
2104   return offset;
2105 }
2106
2107
2108 static const value_string h450_DivertingLegInformation4Arg_extension_vals[] = {
2109   {   0, "extensionSeq" },
2110   {   1, "nonStandardData" },
2111   { 0, NULL }
2112 };
2113
2114 static const per_choice_t DivertingLegInformation4Arg_extension_choice[] = {
2115   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
2116   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
2117   { 0, NULL, 0, NULL }
2118 };
2119
2120 static int
2121 dissect_h450_DivertingLegInformation4Arg_extension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2122   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2123                                  ett_h450_DivertingLegInformation4Arg_extension, DivertingLegInformation4Arg_extension_choice,
2124                                  NULL);
2125
2126   return offset;
2127 }
2128
2129
2130 static const per_sequence_t DivertingLegInformation4Arg_sequence[] = {
2131   { &hf_h450_diversionReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_DiversionReason },
2132   { &hf_h450_subscriptionOption, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_SubscriptionOption },
2133   { &hf_h450_callingNr      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2134   { &hf_h450_callingInfo    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BMPString_SIZE_1_128 },
2135   { &hf_h450_nominatedNr    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2136   { &hf_h450_nominatedInfo  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BMPString_SIZE_1_128 },
2137   { &hf_h450_divertingLegInformation4Arg_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_DivertingLegInformation4Arg_extension },
2138   { NULL, 0, 0, NULL }
2139 };
2140
2141 static int
2142 dissect_h450_DivertingLegInformation4Arg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2143   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2144                                    ett_h450_DivertingLegInformation4Arg, DivertingLegInformation4Arg_sequence);
2145
2146   return offset;
2147 }
2148
2149
2150 static const value_string h450_CfnrDivertedLegFailedArg_vals[] = {
2151   {   0, "extensionSeq" },
2152   {   1, "nonStandardData" },
2153   { 0, NULL }
2154 };
2155
2156 static const per_choice_t CfnrDivertedLegFailedArg_choice[] = {
2157   {   0, &hf_h450_extensionSeq   , ASN1_NO_EXTENSIONS     , dissect_h450_ExtensionSeq },
2158   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
2159   { 0, NULL, 0, NULL }
2160 };
2161
2162 static int
2163 dissect_h450_CfnrDivertedLegFailedArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2164   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2165                                  ett_h450_CfnrDivertedLegFailedArg, CfnrDivertedLegFailedArg_choice,
2166                                  NULL);
2167
2168   return offset;
2169 }
2170
2171
2172 static const value_string h450_MixedExtension_vals[] = {
2173   {   0, "extension" },
2174   {   1, "nonStandardData" },
2175   { 0, NULL }
2176 };
2177
2178 static const per_choice_t MixedExtension_choice[] = {
2179   {   0, &hf_h450_mixedExtension_extension, ASN1_NO_EXTENSIONS     , dissect_h450_Extension },
2180   {   1, &hf_h450_nonStandardData, ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
2181   { 0, NULL, 0, NULL }
2182 };
2183
2184 static int
2185 dissect_h450_MixedExtension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2186   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2187                                  ett_h450_MixedExtension, MixedExtension_choice,
2188                                  NULL);
2189
2190   return offset;
2191 }
2192
2193
2194 static const per_sequence_t SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of[1] = {
2195   { &hf_h450_holdNotificArg_extensionArg_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h450_MixedExtension },
2196 };
2197
2198 static int
2199 dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2200   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2201                                                   ett_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension, SEQUENCE_SIZE_0_255_OF_MixedExtension_sequence_of,
2202                                                   0, 255);
2203
2204   return offset;
2205 }
2206
2207
2208 static const per_sequence_t HoldNotificArg_sequence[] = {
2209   { &hf_h450_holdNotificArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2210   { NULL, 0, 0, NULL }
2211 };
2212
2213 static int
2214 dissect_h450_HoldNotificArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2215   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2216                                    ett_h450_HoldNotificArg, HoldNotificArg_sequence);
2217
2218   return offset;
2219 }
2220
2221
2222 static const per_sequence_t RetrieveNotificArg_sequence[] = {
2223   { &hf_h450_retrieveNotificArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2224   { NULL, 0, 0, NULL }
2225 };
2226
2227 static int
2228 dissect_h450_RetrieveNotificArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2229   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2230                                    ett_h450_RetrieveNotificArg, RetrieveNotificArg_sequence);
2231
2232   return offset;
2233 }
2234
2235
2236 static const per_sequence_t RemoteHoldArg_sequence[] = {
2237   { &hf_h450_remoteHoldArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2238   { NULL, 0, 0, NULL }
2239 };
2240
2241 static int
2242 dissect_h450_RemoteHoldArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2243   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2244                                    ett_h450_RemoteHoldArg, RemoteHoldArg_sequence);
2245
2246   return offset;
2247 }
2248
2249
2250 static const per_sequence_t RemoteHoldRes_sequence[] = {
2251   { &hf_h450_extensionRes   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2252   { NULL, 0, 0, NULL }
2253 };
2254
2255 static int
2256 dissect_h450_RemoteHoldRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2257   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2258                                    ett_h450_RemoteHoldRes, RemoteHoldRes_sequence);
2259
2260   return offset;
2261 }
2262
2263
2264 static const per_sequence_t RemoteRetrieveArg_sequence[] = {
2265   { &hf_h450_remoteRetrieveArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2266   { NULL, 0, 0, NULL }
2267 };
2268
2269 static int
2270 dissect_h450_RemoteRetrieveArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2271   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2272                                    ett_h450_RemoteRetrieveArg, RemoteRetrieveArg_sequence);
2273
2274   return offset;
2275 }
2276
2277
2278 static const per_sequence_t RemoteRetrieveRes_sequence[] = {
2279   { &hf_h450_extensionRes   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2280   { NULL, 0, 0, NULL }
2281 };
2282
2283 static int
2284 dissect_h450_RemoteRetrieveRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2285   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2286                                    ett_h450_RemoteRetrieveRes, RemoteRetrieveRes_sequence);
2287
2288   return offset;
2289 }
2290
2291
2292
2293 static int
2294 dissect_h450_ParkedToPosition(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2295   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2296                                               0U, 65535U, NULL, FALSE);
2297
2298   return offset;
2299 }
2300
2301
2302 static const per_sequence_t CpRequestArg_sequence[] = {
2303   { &hf_h450_parkingNumber  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2304   { &hf_h450_parkedNumber   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2305   { &hf_h450_parkedToNumber , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2306   { &hf_h450_parkedToPosition, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ParkedToPosition },
2307   { &hf_h450_cpRequestArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2308   { NULL, 0, 0, NULL }
2309 };
2310
2311 static int
2312 dissect_h450_CpRequestArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2313   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2314                                    ett_h450_CpRequestArg, CpRequestArg_sequence);
2315
2316   return offset;
2317 }
2318
2319
2320 static const value_string h450_ParkCondition_vals[] = {
2321   {   0, "unspecified" },
2322   {   1, "parkedToUserIdle" },
2323   {   2, "parkedToUserBusy" },
2324   {   3, "parkedToGroup" },
2325   { 0, NULL }
2326 };
2327
2328
2329 static int
2330 dissect_h450_ParkCondition(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2331   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2332                                      4, NULL, TRUE, 0, NULL);
2333
2334   return offset;
2335 }
2336
2337
2338 static const per_sequence_t CpRequestRes_sequence[] = {
2339   { &hf_h450_parkedToNumber , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2340   { &hf_h450_parkedToPosition, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ParkedToPosition },
2341   { &hf_h450_parkCondition  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_ParkCondition },
2342   { &hf_h450_extensionRes   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2343   { NULL, 0, 0, NULL }
2344 };
2345
2346 static int
2347 dissect_h450_CpRequestRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2348   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2349                                    ett_h450_CpRequestRes, CpRequestRes_sequence);
2350
2351   return offset;
2352 }
2353
2354
2355 static const per_sequence_t CpSetupArg_sequence[] = {
2356   { &hf_h450_parkingNumber  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2357   { &hf_h450_parkedNumber   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2358   { &hf_h450_parkedToNumber , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2359   { &hf_h450_parkedToPosition, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ParkedToPosition },
2360   { &hf_h450_cpSetupArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2361   { NULL, 0, 0, NULL }
2362 };
2363
2364 static int
2365 dissect_h450_CpSetupArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2366   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2367                                    ett_h450_CpSetupArg, CpSetupArg_sequence);
2368
2369   return offset;
2370 }
2371
2372
2373 static const per_sequence_t CpSetupRes_sequence[] = {
2374   { &hf_h450_parkedToNumber , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2375   { &hf_h450_parkedToPosition, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ParkedToPosition },
2376   { &hf_h450_parkCondition  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_ParkCondition },
2377   { &hf_h450_extensionRes   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2378   { NULL, 0, 0, NULL }
2379 };
2380
2381 static int
2382 dissect_h450_CpSetupRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2383   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2384                                    ett_h450_CpSetupRes, CpSetupRes_sequence);
2385
2386   return offset;
2387 }
2388
2389
2390 static const value_string h450_CallType_vals[] = {
2391   {   0, "parkedCall" },
2392   {   1, "alertingCall" },
2393   { 0, NULL }
2394 };
2395
2396
2397 static int
2398 dissect_h450_CallType(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2399   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2400                                      2, NULL, TRUE, 0, NULL);
2401
2402   return offset;
2403 }
2404
2405
2406 static const per_sequence_t GroupIndicationOnArg_sequence[] = {
2407   { &hf_h450_callPickupId   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
2408   { &hf_h450_groupMemberUserNr, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2409   { &hf_h450_retrieveCallType, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_CallType },
2410   { &hf_h450_partyToRetrieve, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2411   { &hf_h450_retrieveAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2412   { &hf_h450_parkPosition   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ParkedToPosition },
2413   { &hf_h450_groupIndicationOnArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2414   { NULL, 0, 0, NULL }
2415 };
2416
2417 static int
2418 dissect_h450_GroupIndicationOnArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2419   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2420                                    ett_h450_GroupIndicationOnArg, GroupIndicationOnArg_sequence);
2421
2422   return offset;
2423 }
2424
2425
2426 static const per_sequence_t GroupIndicationOnRes_sequence[] = {
2427   { &hf_h450_extensionRes   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2428   { NULL, 0, 0, NULL }
2429 };
2430
2431 static int
2432 dissect_h450_GroupIndicationOnRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2433   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2434                                    ett_h450_GroupIndicationOnRes, GroupIndicationOnRes_sequence);
2435
2436   return offset;
2437 }
2438
2439
2440 static const per_sequence_t GroupIndicationOffArg_sequence[] = {
2441   { &hf_h450_callPickupId   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
2442   { &hf_h450_groupMemberUserNr, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2443   { &hf_h450_groupIndicationOffArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2444   { NULL, 0, 0, NULL }
2445 };
2446
2447 static int
2448 dissect_h450_GroupIndicationOffArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2449   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2450                                    ett_h450_GroupIndicationOffArg, GroupIndicationOffArg_sequence);
2451
2452   return offset;
2453 }
2454
2455
2456 static const per_sequence_t GroupIndicationOffRes_sequence[] = {
2457   { &hf_h450_extensionRes   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2458   { NULL, 0, 0, NULL }
2459 };
2460
2461 static int
2462 dissect_h450_GroupIndicationOffRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2463   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2464                                    ett_h450_GroupIndicationOffRes, GroupIndicationOffRes_sequence);
2465
2466   return offset;
2467 }
2468
2469
2470 static const per_sequence_t PickrequArg_sequence[] = {
2471   { &hf_h450_picking_upNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2472   { &hf_h450_callPickupId   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallIdentifier },
2473   { &hf_h450_partyToRetrieve, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_EndpointAddress },
2474   { &hf_h450_retrieveAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2475   { &hf_h450_parkPosition   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ParkedToPosition },
2476   { &hf_h450_pickrequArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2477   { NULL, 0, 0, NULL }
2478 };
2479
2480 static int
2481 dissect_h450_PickrequArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2482   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2483                                    ett_h450_PickrequArg, PickrequArg_sequence);
2484
2485   return offset;
2486 }
2487
2488
2489 static const per_sequence_t PickrequRes_sequence[] = {
2490   { &hf_h450_callPickupId   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
2491   { &hf_h450_extensionRes   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2492   { NULL, 0, 0, NULL }
2493 };
2494
2495 static int
2496 dissect_h450_PickrequRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2497   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2498                                    ett_h450_PickrequRes, PickrequRes_sequence);
2499
2500   return offset;
2501 }
2502
2503
2504 static const per_sequence_t PickupArg_sequence[] = {
2505   { &hf_h450_callPickupId   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
2506   { &hf_h450_picking_upNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2507   { &hf_h450_pickupArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2508   { NULL, 0, 0, NULL }
2509 };
2510
2511 static int
2512 dissect_h450_PickupArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2513   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2514                                    ett_h450_PickupArg, PickupArg_sequence);
2515
2516   return offset;
2517 }
2518
2519
2520 static const per_sequence_t PickupRes_sequence[] = {
2521   { &hf_h450_extensionRes   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2522   { NULL, 0, 0, NULL }
2523 };
2524
2525 static int
2526 dissect_h450_PickupRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2527   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2528                                    ett_h450_PickupRes, PickupRes_sequence);
2529
2530   return offset;
2531 }
2532
2533
2534 static const per_sequence_t PickExeArg_sequence[] = {
2535   { &hf_h450_callPickupId   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
2536   { &hf_h450_picking_upNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2537   { &hf_h450_partyToRetrieve, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2538   { &hf_h450_pickExeArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2539   { NULL, 0, 0, NULL }
2540 };
2541
2542 static int
2543 dissect_h450_PickExeArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2544   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2545                                    ett_h450_PickExeArg, PickExeArg_sequence);
2546
2547   return offset;
2548 }
2549
2550
2551 static const per_sequence_t PickExeRes_sequence[] = {
2552   { &hf_h450_extensionRes   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2553   { NULL, 0, 0, NULL }
2554 };
2555
2556 static int
2557 dissect_h450_PickExeRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2558   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2559                                    ett_h450_PickExeRes, PickExeRes_sequence);
2560
2561   return offset;
2562 }
2563
2564
2565 static const per_sequence_t CpNotifyArg_sequence[] = {
2566   { &hf_h450_parkingNumber  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_EndpointAddress },
2567   { &hf_h450_cpNotifyArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2568   { NULL, 0, 0, NULL }
2569 };
2570
2571 static int
2572 dissect_h450_CpNotifyArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2573   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2574                                    ett_h450_CpNotifyArg, CpNotifyArg_sequence);
2575
2576   return offset;
2577 }
2578
2579
2580 static const per_sequence_t CpickupNotifyArg_sequence[] = {
2581   { &hf_h450_picking_upNumber, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_EndpointAddress },
2582   { &hf_h450_cpickupNotifyArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2583   { NULL, 0, 0, NULL }
2584 };
2585
2586 static int
2587 dissect_h450_CpickupNotifyArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2588   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2589                                    ett_h450_CpickupNotifyArg, CpickupNotifyArg_sequence);
2590
2591   return offset;
2592 }
2593
2594
2595
2596 static int
2597 dissect_h450_INTEGER_0_255(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2598   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2599                                               0U, 255U, NULL, FALSE);
2600
2601   return offset;
2602 }
2603
2604
2605 static const per_sequence_t CallWaitingArg_sequence[] = {
2606   { &hf_h450_nbOfAddWaitingCalls, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_INTEGER_0_255 },
2607   { &hf_h450_callWaitingArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2608   { NULL, 0, 0, NULL }
2609 };
2610
2611 static int
2612 dissect_h450_CallWaitingArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2613   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2614                                    ett_h450_CallWaitingArg, CallWaitingArg_sequence);
2615
2616   return offset;
2617 }
2618
2619
2620
2621 static int
2622 dissect_h450_INTEGER_0_65535(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2623   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2624                                               0U, 65535U, NULL, FALSE);
2625
2626   return offset;
2627 }
2628
2629
2630
2631 static int
2632 dissect_h450_NumericString_SIZE_1_10(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2633   offset = dissect_per_NumericString(tvb, offset, actx, tree, hf_index,
2634                                           1, 10);
2635
2636   return offset;
2637 }
2638
2639
2640 static const value_string h450_MsgCentreId_vals[] = {
2641   {   0, "integer" },
2642   {   1, "mwipartyNumber" },
2643   {   2, "numericString" },
2644   { 0, NULL }
2645 };
2646
2647 static const per_choice_t MsgCentreId_choice[] = {
2648   {   0, &hf_h450_integer        , ASN1_NO_EXTENSIONS     , dissect_h450_INTEGER_0_65535 },
2649   {   1, &hf_h450_mwipartyNumber , ASN1_NO_EXTENSIONS     , dissect_h450_EndpointAddress },
2650   {   2, &hf_h450_numericString  , ASN1_NO_EXTENSIONS     , dissect_h450_NumericString_SIZE_1_10 },
2651   { 0, NULL, 0, NULL }
2652 };
2653
2654 static int
2655 dissect_h450_MsgCentreId(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2656   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2657                                  ett_h450_MsgCentreId, MsgCentreId_choice,
2658                                  NULL);
2659
2660   return offset;
2661 }
2662
2663
2664
2665 static int
2666 dissect_h450_NbOfMessages(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2667   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2668                                               0U, 65535U, NULL, FALSE);
2669
2670   return offset;
2671 }
2672
2673
2674
2675 static int
2676 dissect_h450_TimeStamp(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2677   offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index,
2678                                         12, 19);
2679
2680   return offset;
2681 }
2682
2683
2684
2685 static int
2686 dissect_h450_INTEGER_0_9(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2687   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2688                                               0U, 9U, NULL, FALSE);
2689
2690   return offset;
2691 }
2692
2693
2694 static const per_sequence_t ExtensionArg_sequence_of[1] = {
2695   { &hf_h450_ExtensionArg_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h450_MixedExtension },
2696 };
2697
2698 static int
2699 dissect_h450_ExtensionArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2700   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2701                                                   ett_h450_ExtensionArg, ExtensionArg_sequence_of,
2702                                                   0, 255);
2703
2704   return offset;
2705 }
2706
2707
2708 static const per_sequence_t MWIActivateArg_sequence[] = {
2709   { &hf_h450_servedUserNr   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2710   { &hf_h450_basicService   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_BasicService },
2711   { &hf_h450_msgCentreId    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_MsgCentreId },
2712   { &hf_h450_nbOfMessages   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NbOfMessages },
2713   { &hf_h450_originatingNr  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_EndpointAddress },
2714   { &hf_h450_timestamp      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_TimeStamp },
2715   { &hf_h450_priority       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_INTEGER_0_9 },
2716   { &hf_h450_mWIActivateArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ExtensionArg },
2717   { NULL, 0, 0, NULL }
2718 };
2719
2720 static int
2721 dissect_h450_MWIActivateArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2722   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2723                                    ett_h450_MWIActivateArg, MWIActivateArg_sequence);
2724
2725   return offset;
2726 }
2727
2728
2729
2730 static int
2731 dissect_h450_MwiActivate(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2732   offset = dissect_h450_MWIActivateArg(tvb, offset, actx, tree, hf_index);
2733
2734   return offset;
2735 }
2736
2737
2738 static const per_sequence_t MWIDeactivateArg_sequence[] = {
2739   { &hf_h450_servedUserNr   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2740   { &hf_h450_basicService   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_BasicService },
2741   { &hf_h450_msgCentreId    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_MsgCentreId },
2742   { &hf_h450_callbackReq    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BOOLEAN },
2743   { &hf_h450_mWIDeactivateArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ExtensionArg },
2744   { NULL, 0, 0, NULL }
2745 };
2746
2747 static int
2748 dissect_h450_MWIDeactivateArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2749   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2750                                    ett_h450_MWIDeactivateArg, MWIDeactivateArg_sequence);
2751
2752   return offset;
2753 }
2754
2755
2756
2757 static int
2758 dissect_h450_MwiDeactivate(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2759   offset = dissect_h450_MWIDeactivateArg(tvb, offset, actx, tree, hf_index);
2760
2761   return offset;
2762 }
2763
2764
2765 static const per_sequence_t MWIInterrogateArg_sequence[] = {
2766   { &hf_h450_servedUserNr   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2767   { &hf_h450_basicService   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_BasicService },
2768   { &hf_h450_msgCentreId    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_MsgCentreId },
2769   { &hf_h450_callbackReq    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BOOLEAN },
2770   { &hf_h450_mWIInterrogateArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ExtensionArg },
2771   { NULL, 0, 0, NULL }
2772 };
2773
2774 static int
2775 dissect_h450_MWIInterrogateArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2776   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2777                                    ett_h450_MWIInterrogateArg, MWIInterrogateArg_sequence);
2778
2779   return offset;
2780 }
2781
2782
2783
2784 static int
2785 dissect_h450_MwiInterrogate(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2786   offset = dissect_h450_MWIInterrogateArg(tvb, offset, actx, tree, hf_index);
2787
2788   return offset;
2789 }
2790
2791
2792 static const per_sequence_t MwiDummyRes_sequence_of[1] = {
2793   { &hf_h450_MwiDummyRes_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h450_MixedExtension },
2794 };
2795
2796 static int
2797 dissect_h450_MwiDummyRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2798   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2799                                                   ett_h450_MwiDummyRes, MwiDummyRes_sequence_of,
2800                                                   0, 255);
2801
2802   return offset;
2803 }
2804
2805
2806 static const per_sequence_t MWIInterrogateResElt_sequence[] = {
2807   { &hf_h450_basicService   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_BasicService },
2808   { &hf_h450_msgCentreId    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_MsgCentreId },
2809   { &hf_h450_nbOfMessages   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NbOfMessages },
2810   { &hf_h450_originatingNr  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_EndpointAddress },
2811   { &hf_h450_timestamp      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_TimeStamp },
2812   { &hf_h450_priority       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_INTEGER_0_9 },
2813   { &hf_h450_mWIInterrogateResElt_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_ExtensionArg },
2814   { NULL, 0, 0, NULL }
2815 };
2816
2817 static int
2818 dissect_h450_MWIInterrogateResElt(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2819   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2820                                    ett_h450_MWIInterrogateResElt, MWIInterrogateResElt_sequence);
2821
2822   return offset;
2823 }
2824
2825
2826 static const per_sequence_t MWIInterrogateRes_sequence_of[1] = {
2827   { &hf_h450_MWIInterrogateRes_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h450_MWIInterrogateResElt },
2828 };
2829
2830 static int
2831 dissect_h450_MWIInterrogateRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2832   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
2833                                                   ett_h450_MWIInterrogateRes, MWIInterrogateRes_sequence_of,
2834                                                   1, 64);
2835
2836   return offset;
2837 }
2838
2839
2840
2841 static int
2842 dissect_h450_SimpleName(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2843   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2844                                        1, 50, NULL);
2845
2846   return offset;
2847 }
2848
2849
2850
2851 static int
2852 dissect_h450_ExtendedName(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2853   offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
2854                                           1, 256);
2855
2856   return offset;
2857 }
2858
2859
2860 static const value_string h450_NamePresentationAllowed_vals[] = {
2861   {   0, "simpleName" },
2862   {   1, "extendedName" },
2863   { 0, NULL }
2864 };
2865
2866 static const per_choice_t NamePresentationAllowed_choice[] = {
2867   {   0, &hf_h450_simpleName     , ASN1_EXTENSION_ROOT    , dissect_h450_SimpleName },
2868   {   1, &hf_h450_extendedName   , ASN1_EXTENSION_ROOT    , dissect_h450_ExtendedName },
2869   { 0, NULL, 0, NULL }
2870 };
2871
2872 static int
2873 dissect_h450_NamePresentationAllowed(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2874   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2875                                  ett_h450_NamePresentationAllowed, NamePresentationAllowed_choice,
2876                                  NULL);
2877
2878   return offset;
2879 }
2880
2881
2882 static const value_string h450_NamePresentationRestricted_vals[] = {
2883   {   0, "simpleName" },
2884   {   1, "extendedName" },
2885   {   2, "restrictedNull" },
2886   { 0, NULL }
2887 };
2888
2889 static const per_choice_t NamePresentationRestricted_choice[] = {
2890   {   0, &hf_h450_simpleName     , ASN1_EXTENSION_ROOT    , dissect_h450_SimpleName },
2891   {   1, &hf_h450_extendedName   , ASN1_EXTENSION_ROOT    , dissect_h450_ExtendedName },
2892   {   2, &hf_h450_restrictedNull , ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
2893   { 0, NULL, 0, NULL }
2894 };
2895
2896 static int
2897 dissect_h450_NamePresentationRestricted(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2898   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2899                                  ett_h450_NamePresentationRestricted, NamePresentationRestricted_choice,
2900                                  NULL);
2901
2902   return offset;
2903 }
2904
2905
2906 static const value_string h450_Name_vals[] = {
2907   {   0, "namePresentationAllowed" },
2908   {   1, "namePresentationRestricted" },
2909   {   2, "nameNotAvailable" },
2910   { 0, NULL }
2911 };
2912
2913 static const per_choice_t Name_choice[] = {
2914   {   0, &hf_h450_namePresentationAllowed, ASN1_EXTENSION_ROOT    , dissect_h450_NamePresentationAllowed },
2915   {   1, &hf_h450_namePresentationRestricted, ASN1_EXTENSION_ROOT    , dissect_h450_NamePresentationRestricted },
2916   {   2, &hf_h450_nameNotAvailable, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
2917   { 0, NULL, 0, NULL }
2918 };
2919
2920 static int
2921 dissect_h450_Name(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2922   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2923                                  ett_h450_Name, Name_choice,
2924                                  NULL);
2925
2926   return offset;
2927 }
2928
2929
2930 static const per_sequence_t NameArg_sequence[] = {
2931   { &hf_h450_name           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_Name },
2932   { &hf_h450_nameArg_extensionArg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2933   { NULL, 0, 0, NULL }
2934 };
2935
2936 static int
2937 dissect_h450_NameArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2938   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2939                                    ett_h450_NameArg, NameArg_sequence);
2940
2941   return offset;
2942 }
2943
2944
2945 static const per_sequence_t CcRequestArg_sequence[] = {
2946   { &hf_h450_numberA        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2947   { &hf_h450_numberB        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_EndpointAddress },
2948   { &hf_h450_ccIdentifier   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallIdentifier },
2949   { &hf_h450_service        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_BasicService },
2950   { &hf_h450_can_retain_service, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_BOOLEAN },
2951   { &hf_h450_retain_sig_connection, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BOOLEAN },
2952   { &hf_h450_ccRequestArg_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2953   { NULL, 0, 0, NULL }
2954 };
2955
2956 static int
2957 dissect_h450_CcRequestArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2958   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2959                                    ett_h450_CcRequestArg, CcRequestArg_sequence);
2960
2961   return offset;
2962 }
2963
2964
2965 static const per_sequence_t CcRequestRes_sequence[] = {
2966   { &hf_h450_retain_service , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_BOOLEAN },
2967   { &hf_h450_ccRequestRes_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2968   { NULL, 0, 0, NULL }
2969 };
2970
2971 static int
2972 dissect_h450_CcRequestRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2973   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2974                                    ett_h450_CcRequestRes, CcRequestRes_sequence);
2975
2976   return offset;
2977 }
2978
2979
2980 static const per_sequence_t CcShortArg_sequence[] = {
2981   { &hf_h450_ccIdentifier   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallIdentifier },
2982   { &hf_h450_ccShortArg_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
2983   { NULL, 0, 0, NULL }
2984 };
2985
2986 static int
2987 dissect_h450_CcShortArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
2988   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2989                                    ett_h450_CcShortArg, CcShortArg_sequence);
2990
2991   return offset;
2992 }
2993
2994
2995 static const per_sequence_t CcLongArg_sequence[] = {
2996   { &hf_h450_numberA        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_EndpointAddress },
2997   { &hf_h450_numberB        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_EndpointAddress },
2998   { &hf_h450_ccIdentifier   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallIdentifier },
2999   { &hf_h450_service        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_BasicService },
3000   { &hf_h450_ccLongArg_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3001   { NULL, 0, 0, NULL }
3002 };
3003
3004 static int
3005 dissect_h450_CcLongArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3006   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3007                                    ett_h450_CcLongArg, CcLongArg_sequence);
3008
3009   return offset;
3010 }
3011
3012
3013 static const value_string h450_CcArg_vals[] = {
3014   {   0, "shortArg" },
3015   {   1, "longArg" },
3016   { 0, NULL }
3017 };
3018
3019 static const per_choice_t CcArg_choice[] = {
3020   {   0, &hf_h450_shortArg       , ASN1_EXTENSION_ROOT    , dissect_h450_CcShortArg },
3021   {   1, &hf_h450_longArg        , ASN1_EXTENSION_ROOT    , dissect_h450_CcLongArg },
3022   { 0, NULL, 0, NULL }
3023 };
3024
3025 static int
3026 dissect_h450_CcArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3027   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3028                                  ett_h450_CcArg, CcArg_choice,
3029                                  NULL);
3030
3031   return offset;
3032 }
3033
3034
3035 static const per_sequence_t CoReqOptArg_sequence[] = {
3036   { &hf_h450_coReqOptArg_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3037   { NULL, 0, 0, NULL }
3038 };
3039
3040 static int
3041 dissect_h450_CoReqOptArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3042   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3043                                    ett_h450_CoReqOptArg, CoReqOptArg_sequence);
3044
3045   return offset;
3046 }
3047
3048
3049 static const per_sequence_t RUAlertOptArg_sequence[] = {
3050   { &hf_h450_rUAlertOptArg_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3051   { NULL, 0, 0, NULL }
3052 };
3053
3054 static int
3055 dissect_h450_RUAlertOptArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3056   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3057                                    ett_h450_RUAlertOptArg, RUAlertOptArg_sequence);
3058
3059   return offset;
3060 }
3061
3062
3063 static const per_sequence_t CfbOvrOptArg_sequence[] = {
3064   { &hf_h450_cfbOvrOptArg_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3065   { NULL, 0, 0, NULL }
3066 };
3067
3068 static int
3069 dissect_h450_CfbOvrOptArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3070   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3071                                    ett_h450_CfbOvrOptArg, CfbOvrOptArg_sequence);
3072
3073   return offset;
3074 }
3075
3076
3077 static const value_string h450_CICapabilityLevel_vals[] = {
3078   {   1, "intrusionLowCap" },
3079   {   2, "intrusionMediumCap" },
3080   {   3, "intrusionHighCap" },
3081   { 0, NULL }
3082 };
3083
3084
3085 static int
3086 dissect_h450_CICapabilityLevel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3087   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3088                                               1U, 3U, NULL, FALSE);
3089
3090   return offset;
3091 }
3092
3093
3094 static const per_sequence_t CIRequestArg_sequence[] = {
3095   { &hf_h450_ciCapabilityLevel, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_CICapabilityLevel },
3096   { &hf_h450_cIRequestArg_argumentExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3097   { NULL, 0, 0, NULL }
3098 };
3099
3100 static int
3101 dissect_h450_CIRequestArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3102   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3103                                    ett_h450_CIRequestArg, CIRequestArg_sequence);
3104
3105   return offset;
3106 }
3107
3108
3109 static const value_string h450_CIStatusInformation_vals[] = {
3110   {   0, "callIntrusionImpending" },
3111   {   1, "callIntruded" },
3112   {   2, "callIsolated" },
3113   {   3, "callForceReleased" },
3114   {   4, "callIntrusionComplete" },
3115   {   5, "callIntrusionEnd" },
3116   { 0, NULL }
3117 };
3118
3119 static const per_choice_t CIStatusInformation_choice[] = {
3120   {   0, &hf_h450_callIntrusionImpending, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
3121   {   1, &hf_h450_callIntruded   , ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
3122   {   2, &hf_h450_callIsolated   , ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
3123   {   3, &hf_h450_callForceReleased, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
3124   {   4, &hf_h450_callIntrusionComplete, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
3125   {   5, &hf_h450_callIntrusionEnd, ASN1_EXTENSION_ROOT    , dissect_h450_NULL },
3126   { 0, NULL, 0, NULL }
3127 };
3128
3129 static int
3130 dissect_h450_CIStatusInformation(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3131   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3132                                  ett_h450_CIStatusInformation, CIStatusInformation_choice,
3133                                  NULL);
3134
3135   return offset;
3136 }
3137
3138
3139 static const per_sequence_t CIRequestRes_sequence[] = {
3140   { &hf_h450_ciStatusInformation, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_CIStatusInformation },
3141   { &hf_h450_cIRequestRes_resultExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3142   { NULL, 0, 0, NULL }
3143 };
3144
3145 static int
3146 dissect_h450_CIRequestRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3147   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3148                                    ett_h450_CIRequestRes, CIRequestRes_sequence);
3149
3150   return offset;
3151 }
3152
3153
3154 static const per_sequence_t CIGetCIPLOptArg_sequence[] = {
3155   { &hf_h450_cIGetCIPLOptArg_argumentExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3156   { NULL, 0, 0, NULL }
3157 };
3158
3159 static int
3160 dissect_h450_CIGetCIPLOptArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3161   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3162                                    ett_h450_CIGetCIPLOptArg, CIGetCIPLOptArg_sequence);
3163
3164   return offset;
3165 }
3166
3167
3168 static const value_string h450_CIProtectionLevel_vals[] = {
3169   {   0, "lowProtection" },
3170   {   1, "mediumProtection" },
3171   {   2, "highProtection" },
3172   {   3, "fullProtection" },
3173   { 0, NULL }
3174 };
3175
3176
3177 static int
3178 dissect_h450_CIProtectionLevel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3179   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3180                                               0U, 3U, NULL, FALSE);
3181
3182   return offset;
3183 }
3184
3185
3186 static const per_sequence_t CIGetCIPLRes_sequence[] = {
3187   { &hf_h450_ciProtectionLevel, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_CIProtectionLevel },
3188   { &hf_h450_silentMonitoringPermitted, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3189   { &hf_h450_cIGetCIPLRes_resultExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3190   { NULL, 0, 0, NULL }
3191 };
3192
3193 static int
3194 dissect_h450_CIGetCIPLRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3195   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3196                                    ett_h450_CIGetCIPLRes, CIGetCIPLRes_sequence);
3197
3198   return offset;
3199 }
3200
3201
3202 static const per_sequence_t CIIsOptArg_sequence[] = {
3203   { &hf_h450_cIIsOptArg_argumentExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3204   { NULL, 0, 0, NULL }
3205 };
3206
3207 static int
3208 dissect_h450_CIIsOptArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3209   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3210                                    ett_h450_CIIsOptArg, CIIsOptArg_sequence);
3211
3212   return offset;
3213 }
3214
3215
3216 static const per_sequence_t CIIsOptRes_sequence[] = {
3217   { &hf_h450_cIIsOptRes_resultExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3218   { NULL, 0, 0, NULL }
3219 };
3220
3221 static int
3222 dissect_h450_CIIsOptRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3223   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3224                                    ett_h450_CIIsOptRes, CIIsOptRes_sequence);
3225
3226   return offset;
3227 }
3228
3229
3230 static const per_sequence_t CIFrcRelArg_sequence[] = {
3231   { &hf_h450_ciCapabilityLevel, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_CICapabilityLevel },
3232   { &hf_h450_cIFrcRelArg_argumentExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3233   { NULL, 0, 0, NULL }
3234 };
3235
3236 static int
3237 dissect_h450_CIFrcRelArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3238   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3239                                    ett_h450_CIFrcRelArg, CIFrcRelArg_sequence);
3240
3241   return offset;
3242 }
3243
3244
3245 static const per_sequence_t CIFrcRelOptRes_sequence[] = {
3246   { &hf_h450_cIFrcRelOptRes_resultExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3247   { NULL, 0, 0, NULL }
3248 };
3249
3250 static int
3251 dissect_h450_CIFrcRelOptRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3252   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3253                                    ett_h450_CIFrcRelOptRes, CIFrcRelOptRes_sequence);
3254
3255   return offset;
3256 }
3257
3258
3259 static const per_sequence_t CIWobOptArg_sequence[] = {
3260   { &hf_h450_cIWobOptArg_argumentExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3261   { NULL, 0, 0, NULL }
3262 };
3263
3264 static int
3265 dissect_h450_CIWobOptArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3266   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3267                                    ett_h450_CIWobOptArg, CIWobOptArg_sequence);
3268
3269   return offset;
3270 }
3271
3272
3273 static const per_sequence_t CIWobOptRes_sequence[] = {
3274   { &hf_h450_cIWobOptRes_resultExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3275   { NULL, 0, 0, NULL }
3276 };
3277
3278 static int
3279 dissect_h450_CIWobOptRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3280   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3281                                    ett_h450_CIWobOptRes, CIWobOptRes_sequence);
3282
3283   return offset;
3284 }
3285
3286
3287 static const per_sequence_t CISilentArg_sequence[] = {
3288   { &hf_h450_ciCapabilityLevel, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_CICapabilityLevel },
3289   { &hf_h450_specificCall   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallIdentifier },
3290   { &hf_h450_cISilentArg_argumentExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3291   { NULL, 0, 0, NULL }
3292 };
3293
3294 static int
3295 dissect_h450_CISilentArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3296   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3297                                    ett_h450_CISilentArg, CISilentArg_sequence);
3298
3299   return offset;
3300 }
3301
3302
3303 static const per_sequence_t CISilentOptRes_sequence[] = {
3304   { &hf_h450_cISilentOptRes_resultExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3305   { NULL, 0, 0, NULL }
3306 };
3307
3308 static int
3309 dissect_h450_CISilentOptRes(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3310   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3311                                    ett_h450_CISilentOptRes, CISilentOptRes_sequence);
3312
3313   return offset;
3314 }
3315
3316
3317 static const per_sequence_t CINotificationArg_sequence[] = {
3318   { &hf_h450_ciStatusInformation, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h450_CIStatusInformation },
3319   { &hf_h450_cINotificationArg_argumentExtension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3320   { NULL, 0, 0, NULL }
3321 };
3322
3323 static int
3324 dissect_h450_CINotificationArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3325   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3326                                    ett_h450_CINotificationArg, CINotificationArg_sequence);
3327
3328   return offset;
3329 }
3330
3331
3332 static const per_sequence_t FeatureList_sequence[] = {
3333   { &hf_h450_ssCFreRoutingSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3334   { &hf_h450_ssCTreRoutingSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3335   { &hf_h450_ssCCBSPossible , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3336   { &hf_h450_ssCCNRPossible , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3337   { &hf_h450_ssCOSupported  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3338   { &hf_h450_ssCIForcedReleaseSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3339   { &hf_h450_ssCIIsolationSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3340   { &hf_h450_ssCIWaitOnBusySupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3341   { &hf_h450_ssCISilentMonitoringSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3342   { &hf_h450_ssCIConferenceSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3343   { &hf_h450_ssCHFarHoldSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3344   { &hf_h450_ssMWICallbackSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3345   { &hf_h450_ssCPCallParkSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3346   { NULL, 0, 0, NULL }
3347 };
3348
3349 static int
3350 dissect_h450_FeatureList(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3351   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3352                                    ett_h450_FeatureList, FeatureList_sequence);
3353
3354   return offset;
3355 }
3356
3357
3358 static const value_string h450_PartyCategory_vals[] = {
3359   {   0, "unknown" },
3360   {   1, "extension" },
3361   {   2, "attendant" },
3362   {   3, "emergExt" },
3363   { 0, NULL }
3364 };
3365
3366
3367 static int
3368 dissect_h450_PartyCategory(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3369   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3370                                      4, NULL, TRUE, 0, NULL);
3371
3372   return offset;
3373 }
3374
3375
3376
3377 static int
3378 dissect_h450_SSCIProtectionLevel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3379   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3380                                               0U, 3U, NULL, FALSE);
3381
3382   return offset;
3383 }
3384
3385
3386 static const per_sequence_t FeatureValues_sequence[] = {
3387   { &hf_h450_partyCategory  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_PartyCategory },
3388   { &hf_h450_ssCIprotectionLevel, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SSCIProtectionLevel },
3389   { NULL, 0, 0, NULL }
3390 };
3391
3392 static int
3393 dissect_h450_FeatureValues(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3394   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3395                                    ett_h450_FeatureValues, FeatureValues_sequence);
3396
3397   return offset;
3398 }
3399
3400
3401 static const per_sequence_t FeatureControl_sequence[] = {
3402   { &hf_h450_ssCHDoNotHold  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3403   { &hf_h450_ssCTDoNotTransfer, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3404   { &hf_h450_ssMWICallbackCall, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3405   { &hf_h450_ssCISilentMonitorPermitted, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_NULL },
3406   { NULL, 0, 0, NULL }
3407 };
3408
3409 static int
3410 dissect_h450_FeatureControl(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3411   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3412                                    ett_h450_FeatureControl, FeatureControl_sequence);
3413
3414   return offset;
3415 }
3416
3417
3418 static const per_sequence_t CmnArg_sequence[] = {
3419   { &hf_h450_featureList    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_FeatureList },
3420   { &hf_h450_featureValues  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_FeatureValues },
3421   { &hf_h450_featureControl , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_FeatureControl },
3422   { &hf_h450_cmnArg_extension, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3423   { NULL, 0, 0, NULL }
3424 };
3425
3426 static int
3427 dissect_h450_CmnArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3428   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3429                                    ett_h450_CmnArg, CmnArg_sequence);
3430
3431   return offset;
3432 }
3433
3434
3435 static const per_sequence_t CmnRequestArg_sequence[] = {
3436   { &hf_h450_cmnRequestArg_extensionArg, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension },
3437   { NULL, 0, 0, NULL }
3438 };
3439
3440 static int
3441 dissect_h450_CmnRequestArg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3442   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3443                                    ett_h450_CmnRequestArg, CmnRequestArg_sequence);
3444
3445   return offset;
3446 }
3447
3448
3449 static const value_string h450_Unspecified_vals[] = {
3450   {   0, "extension" },
3451   {   1, "nonStandard" },
3452   { 0, NULL }
3453 };
3454
3455 static const per_choice_t Unspecified_choice[] = {
3456   {   0, &hf_h450_unspecified_extension, ASN1_NO_EXTENSIONS     , dissect_h450_Extension },
3457   {   1, &hf_h450_nonStandard    , ASN1_NO_EXTENSIONS     , dissect_h225_NonStandardParameter },
3458   { 0, NULL, 0, NULL }
3459 };
3460
3461 static int
3462 dissect_h450_Unspecified(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
3463   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3464                                  ett_h450_Unspecified, Unspecified_choice,
3465                                  NULL);
3466
3467   return offset;
3468 }
3469
3470 /*--- PDUs ---*/
3471
3472 static void dissect_CallTransferIdentify_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
3473   asn1_ctx_t asn1_ctx;
3474   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
3475   dissect_h450_CallTransferIdentify(tvb, 0, &asn1_ctx, tree, hf_h450_CallTransferIdentify_PDU);
3476 }
3477 static void dissect_CallTransferAbandon_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
3478   asn1_ctx_t asn1_ctx;
3479   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
3480   dissect_h450_CallTransferAbandon(tvb, 0, &asn1_ctx, tree, hf_h450_CallTransferAbandon_PDU);
3481 }
3482 static void dissect_CallTransferInitiate_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
3483   asn1_ctx_t asn1_ctx;
3484   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
3485   dissect_h450_CallTransferInitiate(tvb, 0, &asn1_ctx, tree, hf_h450_CallTransferInitiate_PDU);
3486 }
3487 static void dissect_CallTransferSetup_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
3488   asn1_ctx_t asn1_ctx;
3489   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
3490   dissect_h450_CallTransferSetup(tvb, 0, &asn1_ctx, tree, hf_h450_CallTransferSetup_PDU);
3491 }
3492 static void dissect_CallTransferUpdate_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
3493   asn1_ctx_t asn1_ctx;
3494   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
3495   dissect_h450_CallTransferUpdate(tvb, 0, &asn1_ctx, tree, hf_h450_CallTransferUpdate_PDU);
3496 }
3497 static void dissect_SubaddressTransfer_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
3498   asn1_ctx_t asn1_ctx;
3499   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
3500   dissect_h450_SubaddressTransfer(tvb, 0, &asn1_ctx, tree, hf_h450_SubaddressTransfer_PDU);
3501 }
3502 static void dissect_CallTransferComplete_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
3503   asn1_ctx_t asn1_ctx;
3504   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
3505   dissect_h450_CallTransferComplete(tvb, 0, &asn1_ctx, tree, hf_h450_CallTransferComplete_PDU);
3506 }
3507 static void dissect_CallTransferActive_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
3508   asn1_ctx_t asn1_ctx;
3509   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
3510   dissect_h450_CallTransferActive(tvb, 0, &asn1_ctx, tree, hf_h450_CallTransferActive_PDU);
3511 }
3512 static void dissect_ActivateDiversionQArg_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
3513   asn1_ctx_t asn1_ctx;
3514   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
3515   dissect_h450_ActivateDiversionQArg(tvb, 0, &asn1_ctx, tree, hf_h450_ActivateDiversionQArg_PDU);
3516 }
3517 static void dissect_ActivateDiversionQRes_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
3518   asn1_ctx_t asn1_ctx;
3519   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
3520   dissect_h450_ActivateDiversionQRes(tvb, 0, &asn1_ctx, tree, hf_h450_ActivateDiversionQRes_PDU);
3521 }
3522 static void dissect_DeactivateDiversionQRes_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
3523   asn1_ctx_t asn1_ctx;
3524   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
3525   dissect_h450_DeactivateDiversionQRes(tvb, 0, &asn1_ctx, tree, hf_h450_DeactivateDiversionQRes_PDU);
3526 }
3527 static void dissect_InterrogateDiversionQRes_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
3528   asn1_ctx_t asn1_ctx;
3529   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
3530   dissect_h450_InterrogateDiversionQRes(tvb, 0, &asn1_ctx, tree, hf_h450_InterrogateDiversionQRes_PDU);
3531 }
3532 static void dissect_CheckRestrictionRes_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
3533   asn1_ctx_t asn1_ctx;
3534   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
3535   dissect_h450_CheckRestrictionRes(tvb, 0, &asn1_ctx, tree, hf_h450_CheckRestrictionRes_PDU);
3536 }
3537 static void dissect_CallReroutingRes_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
3538   asn1_ctx_t asn1_ctx;
3539   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
3540   dissect_h450_CallReroutingRes(tvb, 0, &asn1_ctx, tree, hf_h450_CallReroutingRes_PDU);
3541 }
3542
3543
3544 /*--- End of included file: packet-h450-fn.c ---*/
3545 #line 308 "packet-h450-template.c"
3546
3547 static const value_string InvokeProblem_vals[] = {
3548    {  0, "duplicateInvocation"},
3549    {  1, "unrecognizedOperation"},
3550    {  2, "mistypedArgument"},
3551    {  3, "resourceLimitation"},
3552    {  4, "releaseInProgress"},
3553    {  5, "unrecognizedLinkedId"},
3554    {  6, "linkedResponseUnexpected"},
3555    {  7, "unexpectedLinkedOperation"},
3556    {  0, NULL }
3557 };
3558 static int
3559 dissect_h4501_InvokeProblem(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3560 {
3561    offset=dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0, 7, NULL, FALSE);
3562    return offset;
3563 }
3564
3565
3566 static const value_string ReturnResultProblem_vals[] = {
3567    {  0, "unrecognizedInvocation"},
3568    {  1, "resultResponseUnexpected"},
3569    {  2, "mistypedResult"},
3570    {  0, NULL }
3571 };
3572 static int
3573 dissect_h4501_ReturnResultProblem(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3574 {
3575    offset=dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0, 2, NULL, FALSE);
3576    return offset;
3577 }
3578
3579
3580 static const value_string ReturnErrorProblem_vals[] = {
3581    {  0, "unrecognizedInvocation"},
3582    {  1, "errorResponseUnexpected"},
3583    {  2, "unrecognizedError"},
3584    {  3, "unexpectedError"},
3585    {  4, "mistypedParameter"},
3586    {  0, NULL }
3587 };
3588 static int
3589 dissect_h4501_ReturnErrorProblem(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3590 {
3591    offset=dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0, 4, NULL, FALSE);
3592    return offset;
3593 }
3594
3595 static const value_string GeneralProblem_vals[] = {
3596    {  0, "unrecognizedCompenent"},
3597    {  1, "mistypedCompenent"},
3598    {  2, "badlyStructuredCompenent"},
3599    {  0, NULL }
3600 };
3601 static int
3602 dissect_h4501_GeneralProblem(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3603 {
3604    offset=dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0, 2, NULL, FALSE);
3605    return offset;
3606 }
3607 static int
3608 dissect_h4501_ReturnResult_result(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3609 {
3610    tvbuff_t *result_tvb = NULL;
3611
3612    offset=dissect_per_octet_string(tvb, offset, actx, tree, -1, NO_BOUND, NO_BOUND, &result_tvb);
3613
3614    if(tvb_length(result_tvb)){
3615       switch (localOpcode) {
3616       case CallTransferIdentify:
3617          dissect_h450_CTIdentifyRes(result_tvb, 0, actx, tree, hf_h4502_CTIdentifyRes);
3618          break;
3619
3620       case CallTransferInitiate:
3621       case CallTransferSetup:
3622          dissect_h450_DummyRes(result_tvb, 0, actx , tree, hf_h4502_DummyRes);
3623          break;
3624
3625           case ActivateDiversionQ:
3626                   dissect_ActivateDiversionQRes_PDU(result_tvb, actx->pinfo, tree);
3627                   break;
3628           case DeactivateDiversionQ:
3629                   dissect_DeactivateDiversionQRes_PDU(result_tvb, actx->pinfo, tree);
3630                   break;
3631           case InterrogateDiversionQ:
3632                   dissect_InterrogateDiversionQRes_PDU(result_tvb, actx->pinfo, tree);
3633                   break;
3634           case CheckRestriction:
3635                   dissect_CheckRestrictionRes_PDU(result_tvb, actx->pinfo, tree);
3636                   break;
3637           case CallRerouting:
3638                   dissect_CallReroutingRes_PDU(result_tvb, actx->pinfo, tree);
3639                   break;
3640
3641         case RemoteRetrieve:
3642          dissect_h450_RemoteRetrieveRes(result_tvb, 0, actx , tree, hf_h4504_RemoteRetrieveRes);
3643          break;
3644         case MWIActivate:
3645                 dissect_h450_MwiDummyRes(result_tvb, 0, actx , tree, hf_h4507_MwiDummyRes);
3646                 break;
3647         case MWIDeactivate:
3648                 dissect_h450_MwiDummyRes(result_tvb, 0, actx , tree, hf_h4507_MwiDummyRes);
3649                 break;
3650         case MWIInterrogate:
3651                 dissect_h450_MWIInterrogateRes(result_tvb, 0, actx , tree, hf_h4507_MWIInterrogateRes);
3652                 break;
3653
3654       default:
3655 PER_NOT_DECODED_YET("Unrecognized H.450.x return result");
3656          break;
3657       }
3658    }
3659
3660    return offset;
3661 }
3662
3663 static int
3664 dissect_h4501_LocalOpcode(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3665 {
3666    offset=dissect_per_integer(tvb, offset, actx, tree, hf_index, &localOpcode);
3667    is_globalcode = FALSE;
3668         return offset;
3669 }
3670
3671
3672 static int
3673 dissect_h4501_GlobalCode(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3674 {
3675         offset=dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &globalcode_oid_str);
3676         is_globalcode = TRUE;
3677    return offset;
3678 }
3679
3680
3681 static const value_string opcode_vals[] = {
3682         { 0, "local" },
3683         { 1, "global" },
3684         { 0, NULL}
3685 };
3686 static const per_choice_t opcode_choice[] = {
3687         { 0, &hf_h4501_localOpcode, ASN1_NO_EXTENSIONS,
3688                 dissect_h4501_LocalOpcode },
3689         { 1, &hf_h4501_globalCode, ASN1_NO_EXTENSIONS,
3690                 dissect_h4501_GlobalCode },
3691         { 0, NULL, 0, NULL }
3692 };
3693 static int
3694 dissect_h4501_Opcode(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3695 {
3696    offset=dissect_per_choice(tvb, offset, actx, tree, hf_index, ett_h4501_opcode, opcode_choice, NULL);
3697    return offset;
3698 }
3699
3700 static const per_sequence_t result_sequence[] = {
3701         { &hf_h4501_opcode, ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3702                 dissect_h4501_Opcode },
3703         { &hf_h4501_dummy, ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3704                 dissect_h4501_ReturnResult_result },
3705         { NULL, 0, 0, NULL }
3706 };
3707 static int
3708 dissect_h4501_Result(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3709 {
3710    offset=dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h4501_result, result_sequence);
3711    return offset;
3712 }
3713
3714 static int
3715 dissect_h4501_Parameter(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3716 {
3717    /* TODO - decode return error parameter based on localErrorCode */
3718    offset=dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, NULL);
3719    return offset;
3720 }
3721 static const value_string localErrorCode_vals[] = {
3722    /* H.450.1 general error list */
3723    {    0, "userNotSubscribed"},
3724    {    1, "RejectedByNetwork"},
3725    {    2, "RejectedByUser"},
3726    {    3, "NotAvailable"},
3727    {    5, "InsufficientInformation"},
3728    {    6, "InvalidServedUserNumber"},
3729    {    7, "InvalidCallState"},
3730    {    8, "BasicServiceNotProvided"},
3731    {    9, "NotIncomingCall"},
3732    {   10, "SupplementaryServiceInteractionNotAllowed"},
3733    {   11, "ResourceUnavailable"},
3734    {   25, "CallFailure"},
3735    {   43, "ProceduralError"},
3736
3737    /* H.450.2 Call Transfer return errors */
3738    { 1004, "invalidReroutingNumber"},
3739    { 1005, "unrecognizedCallIdentity"},
3740    { 1006, "establishmentFailure"},
3741    { 1008, "unspecified"},
3742
3743    /* H.450.4 Call Hold return errors */
3744    { 2002, "undefined"},
3745
3746    /* H.450.5 Call Park and Pickup return errors */
3747    { 2000, "callPickupIdInvalid"},
3748    { 2001, "callAlreadyPickedUp"},
3749
3750    /* H.450.7 Message Waiting Indication return errors */
3751    { 1018, "invalidMsgCentreId"},
3752    {   31, "notActivated"},    
3753
3754    /* H.450.9 Call Completion return errors */
3755    { 1010, "shortTermRejection"},
3756    { 1011, "longTermRejection"},
3757    { 1012, "remoteUserBusyAgain"},
3758    { 1013, "failureToMatch"},    
3759
3760    /* H.450.11 Call Intrusion return errors */
3761    { 1009, "notBusy"},
3762    { 1000, "temporarilyUnavailable"},
3763    { 1007, "notAuthorized"},
3764
3765    /* TODO - add other H.450.x error codes here */
3766
3767    {  0, NULL }
3768 };
3769 static int
3770 dissect_h4501_LocalErrorCode(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3771 {
3772    offset=dissect_per_integer(tvb, offset, actx, tree, hf_index, &localErrorCode);
3773         return offset;
3774 }
3775
3776
3777 static const value_string errorCode_vals[] = {
3778         { 0, "local" },
3779         { 1, "global" },
3780         { 0, NULL}
3781 };
3782 static const per_choice_t errorCode_choice[] = {
3783         { 0, &hf_h4501_localErrorCode, ASN1_NO_EXTENSIONS,
3784                 dissect_h4501_LocalErrorCode },
3785         { 1, &hf_h4501_globalCode, ASN1_NO_EXTENSIONS,
3786                 dissect_h4501_GlobalCode },
3787         { 0, NULL, 0, NULL }
3788 };
3789 static int
3790 dissect_h4501_ErrorCode(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3791 {
3792    offset=dissect_per_choice(tvb, offset, actx, tree, hf_index, ett_h4501_errorCode, errorCode_choice, NULL);
3793    return offset;
3794 }
3795
3796 static const value_string problem_vals[] = {
3797         { 0, "general" },
3798         { 1, "invoke" },
3799         { 2, "returnResult" },
3800         { 3, "returnError" },
3801         { 0, NULL}
3802 };
3803 static const per_choice_t problem_choice[] = {
3804         { 0, &hf_h4501_GeneralProblem, ASN1_NO_EXTENSIONS,
3805                 dissect_h4501_GeneralProblem },
3806         { 1, &hf_h4501_InvokeProblem, ASN1_NO_EXTENSIONS,
3807                 dissect_h4501_InvokeProblem },
3808         { 2, &hf_h4501_ReturnResultProblem, ASN1_NO_EXTENSIONS,
3809                 dissect_h4501_ReturnResultProblem },
3810         { 3, &hf_h4501_ReturnErrorProblem, ASN1_NO_EXTENSIONS,
3811                 dissect_h4501_ReturnErrorProblem },
3812         { 0, NULL, 0, NULL }
3813 };
3814 static int
3815 dissect_h4501_Problem(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3816 {
3817    offset=dissect_per_choice(tvb, offset, actx, tree, hf_index, ett_h4501_problem, problem_choice, NULL);
3818    return offset;
3819 }
3820 static int
3821 dissect_h4501_Constrained_invokeId(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3822 {
3823    offset=dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0, 65535, NULL, FALSE);
3824         return offset;
3825 }
3826
3827
3828 static int
3829 dissect_h4501_InvokeId(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3830 {
3831    offset=dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL);
3832         return offset;
3833 }
3834
3835 static const per_sequence_t Reject_sequence[] = {
3836         { &hf_h4501_invokeId, ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
3837                 dissect_h4501_InvokeId },
3838         { &hf_h4501_problem, ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
3839                 dissect_h4501_Problem },
3840         { NULL, 0, 0, NULL }
3841 };
3842 static int
3843 dissect_h4501_Reject(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3844 {
3845    offset=dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h4501_Reject, Reject_sequence);
3846    return offset;
3847 }
3848
3849 static const per_sequence_t ReturnError_sequence[] = {
3850         { &hf_h4501_invokeId, ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
3851                 dissect_h4501_InvokeId },
3852         { &hf_h4501_errorCode, ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
3853                 dissect_h4501_ErrorCode },
3854         { &hf_h4501_parameter, ASN1_NO_EXTENSIONS, ASN1_OPTIONAL,
3855                 dissect_h4501_Parameter },
3856         { NULL, 0, 0, NULL }
3857 };
3858 static int
3859 dissect_h4501_ReturnError(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3860 {
3861    offset=dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h4501_ReturnError, ReturnError_sequence);
3862    return offset;
3863 }
3864
3865 static const per_sequence_t ReturnResult_sequence[] = {
3866         { &hf_h4501_invokeId, ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
3867                 dissect_h4501_InvokeId },
3868         { &hf_h4501_result, ASN1_NO_EXTENSIONS, ASN1_OPTIONAL,
3869                 dissect_h4501_Result },
3870         { NULL, 0, 0, NULL }
3871 };
3872 static int
3873 dissect_h4501_ReturnResult(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3874 {
3875    offset=dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h4501_ReturnResult, ReturnResult_sequence);
3876    return offset;
3877 }
3878
3879 static const per_sequence_t Invoke_sequence[] = {
3880         { &hf_h4501_constrained_invokeId, ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
3881                 dissect_h4501_Constrained_invokeId },
3882         { &hf_h4501_invokeId, ASN1_NO_EXTENSIONS, ASN1_OPTIONAL,
3883                 dissect_h4501_InvokeId },
3884         { &hf_h4501_opcode, ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
3885                 dissect_h4501_Opcode },
3886         { &hf_h4501_dummy, ASN1_NO_EXTENSIONS, ASN1_OPTIONAL,
3887                 dissect_h4501_Argument },
3888         { NULL, 0, 0, NULL }
3889 };
3890 static int
3891 dissect_h4501_Invoke(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3892 {
3893    offset=dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h4501_Invoke, Invoke_sequence);
3894    return offset;
3895 }
3896
3897 static const value_string ROS_vals[] = {
3898         { 1, "invoke" },
3899         { 2, "returnResult" },
3900         { 3, "returnError" },
3901         { 4, "reject" },
3902         { 0, NULL}
3903 };
3904 static const per_choice_t ROS_choice[] = {
3905         { 1, &hf_h4501_Invoke, ASN1_NO_EXTENSIONS,
3906                 dissect_h4501_Invoke },
3907         { 2, &hf_h4501_ReturnResult, ASN1_NO_EXTENSIONS,
3908                 dissect_h4501_ReturnResult },
3909         { 3, &hf_h4501_ReturnError, ASN1_NO_EXTENSIONS,
3910                 dissect_h4501_ReturnError },
3911         { 4, &hf_h4501_Reject, ASN1_NO_EXTENSIONS,
3912                 dissect_h4501_Reject },
3913         { 0, NULL, 0, NULL }
3914 };
3915 static int
3916 dissect_h4501_ROS(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree)
3917 {
3918    offset=dissect_per_choice(tvb, offset, actx, tree, hf_h4501_ROS, ett_h4501_ROS, ROS_choice, NULL);
3919    return offset;
3920 }
3921
3922 static int
3923 dissect_h4501_Argument(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
3924 {
3925    tvbuff_t *argument_tvb = NULL;
3926
3927   if ( is_globalcode ){
3928           /* TODO call oid dissector
3929            * call_ber_oid_callback isn't realy apropriate ?
3930            */
3931           offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_h4501_globalargument, NO_BOUND, NO_BOUND, NULL);
3932           is_globalcode = FALSE;
3933           return offset;
3934
3935   }
3936
3937    offset=dissect_per_octet_string(tvb, offset, actx, tree, -1, NO_BOUND, NO_BOUND, &argument_tvb);
3938
3939    if(tvb_length(argument_tvb)){
3940       switch (localOpcode) {
3941                   /* h450.2 */
3942                   case CallTransferIdentify:  /* Localvalue 7 */
3943                           dissect_CallTransferIdentify_PDU(argument_tvb, actx->pinfo, tree);
3944                           break;
3945               case CallTransferAbandon:   /* Localvalue 8 */
3946                           dissect_CallTransferAbandon_PDU(argument_tvb, actx->pinfo, tree);
3947                           break;
3948                    case CallTransferInitiate:  /* Localvalue 9 */
3949                           dissect_CallTransferInitiate_PDU(argument_tvb, actx->pinfo, tree);
3950                           break;
3951               case CallTransferSetup:           /* Localvalue 10 */
3952                           dissect_CallTransferSetup_PDU(argument_tvb, actx->pinfo, tree);
3953                           break;
3954               case CallTransferUpdate:          /* Localvalue 13 */
3955                           dissect_CallTransferUpdate_PDU(argument_tvb, actx->pinfo, tree);
3956                           break;
3957                   case SubaddressTransfer:              /* Localvalue 14 */
3958                           dissect_SubaddressTransfer_PDU(argument_tvb, actx->pinfo, tree);
3959                           break;
3960               case CallTransferComplete:        /* Localvalue 12 */
3961                           dissect_CallTransferComplete_PDU(argument_tvb, actx->pinfo, tree);
3962                           break;
3963               case CallTransferActive:          /* Localvalue 11 */
3964                           dissect_CallTransferActive_PDU(argument_tvb, actx->pinfo, tree);
3965                           break;
3966                   /* h450.3*/
3967                   case ActivateDiversionQ:          /* Localvalue 15 */
3968                           dissect_ActivateDiversionQArg_PDU(argument_tvb, actx->pinfo, tree);
3969                           break;
3970                   case DeactivateDiversionQ:        /* Localvalue 16 */
3971                  dissect_h450_DeactivateDiversionQArg(argument_tvb, 0, actx , tree, hf_h4503DeactivateDiversionQArg);
3972                      break;
3973                   case InterrogateDiversionQ:       /* Localvalue 17 */
3974                  dissect_h450_InterrogateDiversionQ(argument_tvb, 0, actx , tree, hf_h4503InterrogateDiversionQ);
3975                      break;
3976                   case CheckRestriction:            /* Localvalue 18 */
3977                  dissect_h450_CheckRestrictionArg(argument_tvb, 0, actx , tree, hf_h4503CheckRestrictionArg);
3978                      break;
3979                   case CallRerouting:               /* Localvalue 19 */
3980                  dissect_h450_CallReroutingArg(argument_tvb, 0, actx , tree, hf_h4503CallReroutingArg);
3981                      break;
3982                   case DivertingLegInformation1:    /* Localvalue 20 */
3983                  dissect_h450_DivertingLegInformation1Arg(argument_tvb, 0, actx , tree, hf_h4503DivertingLegInformation1Arg);
3984                      break;
3985                   case DivertingLegInformation2:   /* Localvalue 21 */
3986                  dissect_h450_DivertingLegInformation2Arg(argument_tvb, 0, actx , tree, hf_h4503DivertingLegInformation2Arg);
3987                      break;
3988                   case DivertingLegInformation3:   /* Localvalue 22 */
3989                  dissect_h450_DivertingLegInformation3Arg(argument_tvb, 0, actx , tree, hf_h4503DivertingLegInformation3Arg);
3990                      break;
3991                   case DivertingLegInformation4:    /* Localvalue 100 */
3992                  dissect_h450_DivertingLegInformation4Arg(argument_tvb, 0, actx , tree, hf_h4503DivertingLegInformation4Arg);
3993                      break;
3994                   case CfnrDivertedLegFailed:       /* Localvalue 23 */
3995                  dissect_h450_CfnrDivertedLegFailedArg(argument_tvb, 0, actx , tree, hf_h4503CfnrDivertedLegFailedArg);
3996                      break;
3997                   /* H.450.4 Call Hold */
3998               case HoldNotific:                         /* Localvalue 101 */
3999                            dissect_h450_HoldNotificArg(argument_tvb, 0, actx , tree, hf_h4504_HoldNotificArg);
4000                      break;
4001               case RetrieveNotific:                     /* Localvalue 102 */
4002                            dissect_h450_RetrieveNotificArg(argument_tvb, 0, actx , tree, hf_h4504_RetrieveNotificArg);
4003                      break;
4004               case RemoteHold:                          /* Localvalue 103 */
4005                            dissect_h450_RemoteHoldArg(argument_tvb, 0, actx , tree, hf_h4504_RemoteHoldArg);
4006                      break;
4007               case RemoteRetrieve:                      /* Localvalue 104 */
4008                            dissect_h450_RemoteRetrieveArg(argument_tvb, 0, actx , tree, hf_h4504_RemoteRetrieveArg);
4009                      break;
4010
4011 /* H.450.5 Call Park and Pickup constants */
4012                   case CpRequest:                   /* Localvalue 106 */
4013                   case CpSetup:                     /* Localvalue 107 */
4014                   case GroupIndicationOn:           /* Localvalue 108 */
4015                   case GroupIndicationOff:          /* Localvalue 109 */
4016                   case Pickrequ:                    /* Localvalue 110 */
4017                   case Pickup:                      /* Localvalue 111 */
4018                   case PickExe:                     /* Localvalue 112 */
4019                   case CpNotify:                    /* Localvalue 113 */
4020                   case CpickupNotify:               /* Localvalue 114 */
4021
4022 /* H.450.6 Call Waiting constants */
4023                   case CallWaiting:                 /* Localvalue 105 */
4024 PER_NOT_DECODED_YET("Unrecognized H.450.x operation");
4025                  break;
4026
4027                   /* H.450.7 Message Waiting Indication  */
4028                   case MWIActivate:                             /* Localvalue 80 */
4029                            dissect_h450_MWIActivateArg(argument_tvb, 0, actx , tree, hf_h4507_MWIActivateArg);
4030                      break;
4031                   case MWIDeactivate:                   /* Localvalue 81 */
4032                            dissect_h450_MWIDeactivateArg(argument_tvb, 0, actx , tree, hf_h4507_MWIDeactivateArg);
4033                      break;
4034                   case MWIInterrogate:                  /* Localvalue 82 */
4035                            dissect_h450_MWIInterrogateArg(argument_tvb, 0, actx , tree, hf_h4507_MWIInterrogateArg);
4036                      break;
4037
4038                   /* H.450.8 Name Identification */
4039                   case NIcallingName:                   /* Localvalue 0 */
4040                           dissect_h450_NameArg(argument_tvb, 0, actx , tree, hf_h4508_CallingNameArg);
4041                           break;
4042                   case NIalertingName:                  /* Localvalue 1 */
4043                           dissect_h450_NameArg(argument_tvb, 0, actx , tree, hf_h4508_AlertingNameArg);
4044                           break;
4045                   case NIconnectedName:                 /* Localvalue 2 */
4046                           dissect_h450_NameArg(argument_tvb, 0, actx , tree, hf_h4508_ConnectedNameArg);
4047                           break;
4048                   case NIbusyName:                      /* Localvalue 3 */
4049                           dissect_h450_NameArg(argument_tvb, 0, actx , tree, hf_h4508_BusyNameArg);
4050                           break;
4051
4052 /* H.450.9 Call Completion constants */
4053                   case CCBSRequest:                 /* Localvalue 40 */
4054                   case CCNRRequest:                 /* Localvalue 27 */
4055                   case CCCancel:                    /* Localvalue 28 */
4056                   case CCExecPossible:              /* Localvalue 29 */
4057                   case CCRingout:                   /* Localvalue 31 */
4058                   case CCSuspend:                   /* Localvalue 32 */
4059                   case CCResume:                    /* Localvalue 33 */ 
4060
4061 /* H.450.10 Call Offer constants */
4062                   case CallOfferRequest:            /* Localvalue 34 */
4063                   case RemoteUserAlerting:          /* Localvalue 115 */
4064                   case CFBOverride:                 /* Localvalue 49  */
4065
4066 /* H.450.11 Call Intrusion constants */
4067                   case CallIntrusionRequest:        /* Localvalue 43 */
4068                   case CallIntrusionGetCIPL:        /* Localvalue 44 */
4069                   case CallIntrusionIsolate:        /* Localvalue 45 */
4070                   case CallIntrusionForcedRelease:  /* Localvalue 46 */
4071                   case CallIntrusionWOBRequest:     /* Localvalue 47 */
4072                   case CallIntrusionSilentMonitor:  /* Localvalue 116 */
4073                   case CallIntrusionNotification:   /* Localvalue 117 */
4074 PER_NOT_DECODED_YET("Unrecognized H.450.x operation");
4075 break;
4076 /* H.450.12 Common Information Operations constants */
4077                   case CmnRequest:                                      /* Localvalue 84 */
4078                           dissect_h450_CmnRequestArg(argument_tvb, 0, actx , tree, hf_h45012_CmnRequest);
4079                           break;
4080                   case CmnInform:                                       /* Localvalue 85 */
4081                           dissect_h450_CmnArg(argument_tvb, 0, actx , tree, hf_h45012_CmnInform);
4082                           break;
4083
4084               /* TODO - decode other H.450.x invoke arguments here */
4085              default:
4086 PER_NOT_DECODED_YET("Unrecognized H.450.x operation");
4087                  break;
4088           }
4089   }
4090    return offset;
4091 }
4092 static int 
4093 dissect_ros_ROSxxx(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_ind _U_){
4094
4095         offset = dissect_h4501_ROS(tvb, offset, actx, tree);
4096         return offset;
4097
4098 }
4099 static void
4100 dissect_h4501(tvbuff_t *tvb, packet_info *pinfo, proto_tree* tree)
4101 {
4102    proto_item *it;
4103    proto_tree *tr;
4104    guint32 offset=0;
4105    asn1_ctx_t asn1_ctx;
4106
4107    it=proto_tree_add_protocol_format(tree, proto_h4501, tvb, 0, -1, "H.450.1");
4108    tr=proto_item_add_subtree(it, ett_h4501);
4109
4110    asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
4111    dissect_h450_H4501SupplementaryService(tvb, offset, &asn1_ctx, tr, hf_h4501);
4112 }
4113
4114 /*--- proto_register_h450 -------------------------------------------*/
4115 void proto_register_h450(void) {
4116
4117   /* List of fields */
4118         static hf_register_info hf[] = {
4119    { &hf_h4501,
4120       { "SupplementaryService", "h4501.SupplementaryService", FT_NONE, BASE_NONE,
4121       NULL, 0, "SupplementaryService sequence", HFILL }},
4122    { &hf_h4501_dummy,
4123       { "dummy", "h4501.dummy", FT_NONE, BASE_NONE,
4124       NULL, 0, "Dummy", HFILL }},
4125    { &hf_h4501_constrained_invokeId,
4126       { "invokeId", "h4501.invokeId", FT_UINT32, BASE_DEC,
4127       NULL, 0, "constrained_invokeId", HFILL }},
4128    { &hf_h4501_invokeId,
4129       { "invokeId", "h4501.invokeId", FT_INT32, BASE_DEC,
4130       NULL, 0, "invokeId", HFILL }},
4131    { &hf_h4501_localOpcode,
4132       { "localOpcode", "h4501.localOpcode", FT_INT32, BASE_DEC,
4133       VALS(localOpcode_vals), 0, "local", HFILL }},
4134    { &hf_h4501_globalCode,
4135       { "globalCode", "h4501.globalCode", FT_STRING, BASE_HEX,
4136       NULL, 0, "global", HFILL }},
4137    { &hf_h4501_globalargument,
4138       { "argumentArgument", "h4501.globalArgument", FT_BYTES, BASE_HEX,
4139       NULL, 0, "argument", HFILL }},
4140    { &hf_h4501_opcode,
4141       { "opcode", "h4501.opcode", FT_UINT32, BASE_DEC,
4142       VALS(opcode_vals), 0, "opcode choice", HFILL }},
4143    { &hf_h4501_ReturnResult_result,
4144       { "ReturnResult_result", "h4501.ReturnResult.result", FT_BYTES, BASE_HEX,
4145       NULL, 0, "result", HFILL }},
4146    { &hf_h4501_result,
4147       { "result", "h4501.result", FT_NONE, BASE_NONE,
4148       NULL, 0, "result sequence of", HFILL }},
4149    { &hf_h4501_ReturnResult,
4150       { "ReturnResult", "h4501.ReturnResult", FT_NONE, BASE_NONE,
4151       NULL, 0, "ReturnResult sequence of", HFILL }},
4152    { &hf_h4501_localErrorCode,
4153       { "localErrorCode", "h4501.localErrorCode", FT_INT32, BASE_DEC,
4154       VALS(localErrorCode_vals), 0, "local", HFILL }},
4155    { &hf_h4501_errorCode,
4156       { "errorCode", "h4501.errorCode", FT_UINT32, BASE_DEC,
4157       VALS(errorCode_vals), 0, "errorCode", HFILL }},
4158    { &hf_h4501_parameter,
4159       { "parameter", "h4501.parameter", FT_BYTES, BASE_HEX,
4160       NULL, 0, "parameter", HFILL }},
4161    { &hf_h4501_ReturnError,
4162       { "ReturnError", "h4501.ReturnError", FT_NONE, BASE_NONE,
4163       NULL, 0, "ReturnError sequence of", HFILL }},
4164    { &hf_h4501_GeneralProblem,
4165       { "GeneralProblem", "h4501.GeneralProblem", FT_UINT32, BASE_DEC,
4166       VALS(GeneralProblem_vals), 0, "GeneralProblem", HFILL }},
4167    { &hf_h4501_InvokeProblem,
4168       { "InvokeProblem", "h4501.InvokeProblem", FT_UINT32, BASE_DEC,
4169       VALS(InvokeProblem_vals), 0, "InvokeProblem", HFILL }},
4170    { &hf_h4501_ReturnResultProblem,
4171       { "ReturnResultProblem", "h4501.ReturnResultProblem", FT_UINT32, BASE_DEC,
4172       VALS(ReturnResultProblem_vals), 0, "ReturnResultProblem", HFILL }},
4173    { &hf_h4501_ReturnErrorProblem,
4174       { "ReturnErrorProblem", "h4501.ReturnErrorProblem", FT_UINT32, BASE_DEC,
4175       VALS(ReturnErrorProblem_vals), 0, "ReturnErrorProblem", HFILL }},
4176    { &hf_h4501_problem,
4177       { "problem", "h4501.problem", FT_UINT32, BASE_DEC,
4178       VALS(problem_vals), 0, "problem choice", HFILL }},
4179    { &hf_h4501_Reject,
4180       { "Reject", "h4501.Reject", FT_NONE, BASE_NONE,
4181       NULL, 0, "Reject sequence of", HFILL }},
4182    { &hf_h4501_ROS,
4183       { "ROS", "h4501.ROS", FT_UINT32, BASE_DEC,
4184       VALS(ROS_vals), 0, "ROS choice", HFILL }},
4185    { &hf_h4501_Invoke,
4186       { "Invoke", "h4501.Invoke", FT_NONE, BASE_NONE,
4187       NULL, 0, "Invoke sequence of", HFILL }},
4188    { &hf_h4502_CTIdentifyRes,
4189       { "CTIdentifyRes", "h4502.CTIdentifyRes", FT_NONE, BASE_NONE,
4190       NULL, 0, "CTIdentifyRes sequence of", HFILL }},
4191    { &hf_h4502_DummyRes,
4192       { "DummyRes", "h4502.DummyRes", FT_UINT32, BASE_DEC,
4193       VALS(h450_DummyRes_vals), 0, "DummyRes Choice", HFILL }},
4194    { &hf_h4502_DummyArg,
4195       { "DummyArg", "h4502.DummyArg", FT_UINT32, BASE_DEC,
4196       VALS(h450_DummyArg_vals), 0, "DummyArg choice", HFILL }},
4197    { &hf_h4503DeactivateDiversionQArg,
4198       { "DeactivateDiversionQArg", "h4503.DeactivateDiversionQArg", FT_NONE, BASE_NONE,
4199       NULL, 0, "ActivateDiversionQArg sequence of", HFILL }},
4200    { &hf_h4503InterrogateDiversionQ,
4201       { "InterrogateDiversionQ", "h4503.InterrogateDiversionQ", FT_NONE, BASE_NONE,
4202       NULL, 0, "InterrogateDiversionQ sequence of", HFILL }},
4203    { &hf_h4503CheckRestrictionArg,
4204       { "CheckRestrictionArg", "h4503.CheckRestrictionArg", FT_NONE, BASE_NONE,
4205       NULL, 0, "CheckRestrictionArg sequence of", HFILL }},
4206    { &hf_h4503CallReroutingArg,
4207       { "CallReroutingArg", "h4503.CallReroutingArg", FT_NONE, BASE_NONE,
4208       NULL, 0, "ActivateDiversionQArg sequence of", HFILL }},
4209    { &hf_h4503DivertingLegInformation1Arg,
4210       { "DivertingLegInformation1Arg", "h4503.DivertingLegInformation1Arg", FT_NONE, BASE_NONE,
4211       NULL, 0, "DivertingLegInformation1Arg sequence of", HFILL }},
4212    { &hf_h4503DivertingLegInformation2Arg,
4213       { "DivertingLegInformation2Arg", "h4503.DivertingLegInformation2Arg", FT_NONE, BASE_NONE,
4214       NULL, 0, "DivertingLegInformation1Arg sequence of", HFILL }},
4215    { &hf_h4503DivertingLegInformation3Arg,
4216       { "DivertingLegInformation3Arg", "h4503.DivertingLegInformation3Arg", FT_NONE, BASE_NONE,
4217       NULL, 0, "DivertingLegInformation1Arg sequence of", HFILL }},
4218    { &hf_h4503DivertingLegInformation4Arg,
4219       { "DivertingLegInformation4Arg", "h4503.DivertingLegInformation4Arg", FT_NONE, BASE_NONE,
4220       NULL, 0, "DivertingLegInformation4Arg sequence of", HFILL }},
4221    { &hf_h4503CfnrDivertedLegFailedArg,
4222       { "CfnrDivertedLegFailedArg", "h4503.CfnrDivertedLegFailedArg", FT_NONE, BASE_NONE,
4223       NULL, 0, "ActivateDiversionQArg sequence of", HFILL }},
4224
4225    { &hf_h4504_HoldNotificArg,
4226       { "HoldNotificArg", "h4504.HoldNotificArg", FT_NONE, BASE_NONE,
4227       NULL, 0, "HoldNotificArg sequence of", HFILL }},
4228    { &hf_h4504_RetrieveNotificArg,
4229       { "RetrieveNotificArg", "h4504.RetrieveNotificArg", FT_NONE, BASE_NONE,
4230       NULL, 0, "RetrieveNotificArg sequence of", HFILL }},
4231    { &hf_h4504_RemoteHoldArg,
4232       { "RemoteHoldArg", "h4504.RemoteHoldArg", FT_NONE, BASE_NONE,
4233       NULL, 0, "RemoteHoldArg sequence of", HFILL }},
4234    { &hf_h4504_RemoteRetrieveArg,
4235       { "RemoteRetrieveArg", "h4504.RemoteRetrieveArg", FT_NONE, BASE_NONE,
4236       NULL, 0, "RemoteRetrieveArg sequence of", HFILL }},
4237    { &hf_h4504_RemoteRetrieveRes,
4238       { "RemoteRetrieveRes", "h4504.RemoteRetrieveRes", FT_NONE, BASE_NONE,
4239       NULL, 0, "RemoteRetrieveRes sequence of", HFILL }},
4240
4241    { &hf_h4507_MWIActivateArg,
4242       { "MWIActivateArg", "h4507.MWIActivateArg", FT_NONE, BASE_NONE,
4243       NULL, 0, "MWIActivateArg sequence of", HFILL }},
4244    { &hf_h4507_MwiDummyRes,
4245       { "MwiDummyRes", "h4507.MwiDummyRes", FT_NONE, BASE_NONE,
4246       NULL, 0, "MwiDummyRes sequence of", HFILL }},
4247    { &hf_h4507_MWIDeactivateArg,
4248       { "MWIDeactivateArg", "h4507.MWIDeactivateArg", FT_NONE, BASE_NONE,
4249       NULL, 0, "MWIDeactivateArg sequence of", HFILL }},
4250    { &hf_h4507_MWIInterrogateArg,
4251       { "MWIInterrogateArg", "h4507.MWIInterrogateArg", FT_NONE, BASE_NONE,
4252       NULL, 0, "MWIInterrogateArg sequence of", HFILL }},
4253    { &hf_h4507_MWIInterrogateRes,
4254       { "MWIInterrogateRes", "h4507.MWIInterrogateRes", FT_NONE, BASE_NONE,
4255       NULL, 0, "MWIInterrogateRes sequence of", HFILL }},
4256
4257    { &hf_h4508_CallingNameArg,
4258       { "CallingNameArg", "h4508.CallingNameArg", FT_NONE, BASE_NONE,
4259       NULL, 0, "CallingNameArg sequence of", HFILL }},
4260    { &hf_h4508_AlertingNameArg,
4261       { "AlertingNameArg", "h4508.AlertingNameArg", FT_NONE, BASE_NONE,
4262       NULL, 0, "AlertingNameArg sequence of", HFILL }},
4263    { &hf_h4508_ConnectedNameArg,
4264       { "ConnectedNameArg", "h4508.ConnectedNameArg", FT_NONE, BASE_NONE,
4265       NULL, 0, "ConnectedNameArg sequence of", HFILL }},
4266    { &hf_h4508_BusyNameArg,
4267       { "BusyNameArg", "h4508.BusyNameArg", FT_NONE, BASE_NONE,
4268       NULL, 0, "BusyNameArg sequence of", HFILL }},
4269    { &hf_h45012_CmnRequest,
4270       { "CmnRequest", "h4508.CmnRequest", FT_NONE, BASE_NONE,
4271       NULL, 0, "CmnRequest sequence of", HFILL }},
4272    { &hf_h45012_CmnInform,
4273       { "CmnRequest", "h4508.CmnRequest", FT_NONE, BASE_NONE,
4274       NULL, 0, "CmnRequest sequence of", HFILL }},
4275
4276
4277 /*--- Included file: packet-h450-hfarr.c ---*/
4278 #line 1 "packet-h450-hfarr.c"
4279     { &hf_h450_CallTransferIdentify_PDU,
4280       { "CallTransferIdentify", "h450.CallTransferIdentify",
4281         FT_UINT32, BASE_DEC, VALS(h450_DummyArg_vals), 0,
4282         "h450.CallTransferIdentify", HFILL }},
4283     { &hf_h450_CallTransferAbandon_PDU,
4284       { "CallTransferAbandon", "h450.CallTransferAbandon",
4285         FT_UINT32, BASE_DEC, VALS(h450_DummyArg_vals), 0,
4286         "h450.CallTransferAbandon", HFILL }},
4287     { &hf_h450_CallTransferInitiate_PDU,
4288       { "CallTransferInitiate", "h450.CallTransferInitiate",
4289         FT_NONE, BASE_NONE, NULL, 0,
4290         "h450.CallTransferInitiate", HFILL }},
4291     { &hf_h450_CallTransferSetup_PDU,
4292       { "CallTransferSetup", "h450.CallTransferSetup",
4293         FT_NONE, BASE_NONE, NULL, 0,
4294         "h450.CallTransferSetup", HFILL }},
4295     { &hf_h450_CallTransferUpdate_PDU,
4296       { "CallTransferUpdate", "h450.CallTransferUpdate",
4297         FT_NONE, BASE_NONE, NULL, 0,
4298         "h450.CallTransferUpdate", HFILL }},
4299     { &hf_h450_SubaddressTransfer_PDU,
4300       { "SubaddressTransfer", "h450.SubaddressTransfer",
4301         FT_NONE, BASE_NONE, NULL, 0,
4302         "h450.SubaddressTransfer", HFILL }},
4303     { &hf_h450_CallTransferComplete_PDU,
4304       { "CallTransferComplete", "h450.CallTransferComplete",
4305         FT_NONE, BASE_NONE, NULL, 0,
4306         "h450.CallTransferComplete", HFILL }},
4307     { &hf_h450_CallTransferActive_PDU,
4308       { "CallTransferActive", "h450.CallTransferActive",
4309         FT_NONE, BASE_NONE, NULL, 0,
4310         "h450.CallTransferActive", HFILL }},
4311     { &hf_h450_ActivateDiversionQArg_PDU,
4312       { "ActivateDiversionQArg", "h450.ActivateDiversionQArg",
4313         FT_NONE, BASE_NONE, NULL, 0,
4314         "h450.ActivateDiversionQArg", HFILL }},
4315     { &hf_h450_ActivateDiversionQRes_PDU,
4316       { "ActivateDiversionQRes", "h450.ActivateDiversionQRes",
4317         FT_UINT32, BASE_DEC, VALS(h450_ActivateDiversionQRes_vals), 0,
4318         "h450.ActivateDiversionQRes", HFILL }},
4319     { &hf_h450_DeactivateDiversionQRes_PDU,
4320       { "DeactivateDiversionQRes", "h450.DeactivateDiversionQRes",
4321         FT_UINT32, BASE_DEC, VALS(h450_DeactivateDiversionQRes_vals), 0,
4322         "h450.DeactivateDiversionQRes", HFILL }},
4323     { &hf_h450_InterrogateDiversionQRes_PDU,
4324       { "InterrogateDiversionQRes", "h450.InterrogateDiversionQRes",
4325         FT_UINT32, BASE_DEC, NULL, 0,
4326         "h450.InterrogateDiversionQRes", HFILL }},
4327     { &hf_h450_CheckRestrictionRes_PDU,
4328       { "CheckRestrictionRes", "h450.CheckRestrictionRes",
4329         FT_UINT32, BASE_DEC, VALS(h450_CheckRestrictionRes_vals), 0,
4330         "h450.CheckRestrictionRes", HFILL }},
4331     { &hf_h450_CallReroutingRes_PDU,
4332       { "CallReroutingRes", "h450.CallReroutingRes",
4333         FT_UINT32, BASE_DEC, VALS(h450_CallReroutingRes_vals), 0,
4334         "h450.CallReroutingRes", HFILL }},
4335     { &hf_h450_networkFacilityExtension,
4336       { "networkFacilityExtension", "h450.networkFacilityExtension",
4337         FT_NONE, BASE_NONE, NULL, 0,
4338         "h450.NetworkFacilityExtension", HFILL }},
4339     { &hf_h450_interpretationApdu,
4340       { "interpretationApdu", "h450.interpretationApdu",
4341         FT_UINT32, BASE_DEC, VALS(h450_InterpretationApdu_vals), 0,
4342         "h450.InterpretationApdu", HFILL }},
4343     { &hf_h450_serviceApdu,
4344       { "serviceApdu", "h450.serviceApdu",
4345         FT_UINT32, BASE_DEC, VALS(h450_ServiceApdus_vals), 0,
4346         "h450.ServiceApdus", HFILL }},
4347     { &hf_h450_sourceEntity,
4348       { "sourceEntity", "h450.sourceEntity",
4349         FT_UINT32, BASE_DEC, VALS(h450_EntityType_vals), 0,
4350         "h450.EntityType", HFILL }},
4351     { &hf_h450_sourceEntityAddress,
4352       { "sourceEntityAddress", "h450.sourceEntityAddress",
4353         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
4354         "h450.AddressInformation", HFILL }},
4355     { &hf_h450_destinationEntity,
4356       { "destinationEntity", "h450.destinationEntity",
4357         FT_UINT32, BASE_DEC, VALS(h450_EntityType_vals), 0,
4358         "h450.EntityType", HFILL }},
4359     { &hf_h450_destinationEntityAddress,
4360       { "destinationEntityAddress", "h450.destinationEntityAddress",
4361         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
4362         "h450.AddressInformation", HFILL }},
4363     { &hf_h450_endpoint,
4364       { "endpoint", "h450.endpoint",
4365         FT_NONE, BASE_NONE, NULL, 0,
4366         "h450.NULL", HFILL }},
4367     { &hf_h450_anyEntity,
4368       { "anyEntity", "h450.anyEntity",
4369         FT_NONE, BASE_NONE, NULL, 0,
4370         "h450.NULL", HFILL }},
4371     { &hf_h450_discardAnyUnrecognizedInvokePdu,
4372       { "discardAnyUnrecognizedInvokePdu", "h450.discardAnyUnrecognizedInvokePdu",
4373         FT_NONE, BASE_NONE, NULL, 0,
4374         "h450.NULL", HFILL }},
4375     { &hf_h450_clearCallIfAnyInvokePduNotRecognized,
4376       { "clearCallIfAnyInvokePduNotRecognized", "h450.clearCallIfAnyInvokePduNotRecognized",
4377         FT_NONE, BASE_NONE, NULL, 0,
4378         "h450.NULL", HFILL }},
4379     { &hf_h450_rejectAnyUnrecognizedInvokePdu,
4380       { "rejectAnyUnrecognizedInvokePdu", "h450.rejectAnyUnrecognizedInvokePdu",
4381         FT_NONE, BASE_NONE, NULL, 0,
4382         "h450.NULL", HFILL }},
4383     { &hf_h450_rosApdus,
4384       { "rosApdus", "h450.rosApdus",
4385         FT_UINT32, BASE_DEC, NULL, 0,
4386         "h450.SEQUENCE_OF_ROSxxx", HFILL }},
4387     { &hf_h450_rosApdus_item,
4388       { "Item", "h450.rosApdus_item",
4389         FT_NONE, BASE_NONE, NULL, 0,
4390         "ros.ROSxxx", HFILL }},
4391     { &hf_h450_addressScreened_presentationAllowedAddress,
4392       { "presentationAllowedAddress", "h450.presentationAllowedAddress",
4393         FT_NONE, BASE_NONE, NULL, 0,
4394         "h450.AddressScreened", HFILL }},
4395     { &hf_h450_presentationRestricted,
4396       { "presentationRestricted", "h450.presentationRestricted",
4397         FT_NONE, BASE_NONE, NULL, 0,
4398         "h450.NULL", HFILL }},
4399     { &hf_h450_numberNotAvailableDueToInterworking,
4400       { "numberNotAvailableDueToInterworking", "h450.numberNotAvailableDueToInterworking",
4401         FT_NONE, BASE_NONE, NULL, 0,
4402         "h450.NULL", HFILL }},
4403     { &hf_h450_addressScreened_presentationRestrictedAddress,
4404       { "presentationRestrictedAddress", "h450.presentationRestrictedAddress",
4405         FT_NONE, BASE_NONE, NULL, 0,
4406         "h450.AddressScreened", HFILL }},
4407     { &hf_h450_addressUnscreened_presentationAllowedAddress,
4408       { "presentationAllowedAddress", "h450.presentationAllowedAddress",
4409         FT_NONE, BASE_NONE, NULL, 0,
4410         "h450.Address", HFILL }},
4411     { &hf_h450_addressUnscreened_presentationRestrictedAddress,
4412       { "presentationRestrictedAddress", "h450.presentationRestrictedAddress",
4413         FT_NONE, BASE_NONE, NULL, 0,
4414         "h450.Address", HFILL }},
4415     { &hf_h450_numberScreened_presentationAllowedAddress,
4416       { "presentationAllowedAddress", "h450.presentationAllowedAddress",
4417         FT_NONE, BASE_NONE, NULL, 0,
4418         "h450.NumberScreened", HFILL }},
4419     { &hf_h450_numberScreened_presentationRestrictedAddress,
4420       { "presentationRestrictedAddress", "h450.presentationRestrictedAddress",
4421         FT_NONE, BASE_NONE, NULL, 0,
4422         "h450.NumberScreened", HFILL }},
4423     { &hf_h450_numberUnscreened_presentationAllowedAddress,
4424       { "presentationAllowedAddress", "h450.presentationAllowedAddress",
4425         FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
4426         "h225.PartyNumber", HFILL }},
4427     { &hf_h450_numberUnscreened_presentationRestrictedAddress,
4428       { "presentationRestrictedAddress", "h450.presentationRestrictedAddress",
4429         FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
4430         "h225.PartyNumber", HFILL }},
4431     { &hf_h450_partyNumber,
4432       { "partyNumber", "h450.partyNumber",
4433         FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
4434         "h225.PartyNumber", HFILL }},
4435     { &hf_h450_screeningIndicator,
4436       { "screeningIndicator", "h450.screeningIndicator",
4437         FT_UINT32, BASE_DEC, VALS(h225_ScreeningIndicator_vals), 0,
4438         "h225.ScreeningIndicator", HFILL }},
4439     { &hf_h450_partySubaddress,
4440       { "partySubaddress", "h450.partySubaddress",
4441         FT_UINT32, BASE_DEC, VALS(h450_PartySubaddress_vals), 0,
4442         "h450.PartySubaddress", HFILL }},
4443     { &hf_h450_destinationAddress,
4444       { "destinationAddress", "h450.destinationAddress",
4445         FT_UINT32, BASE_DEC, NULL, 0,
4446         "h450.SEQUENCE_OF_AliasAddress", HFILL }},
4447     { &hf_h450_destinationAddress_item,
4448       { "Item", "h450.destinationAddress_item",
4449         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
4450         "h225.AliasAddress", HFILL }},
4451     { &hf_h450_remoteExtensionAddress,
4452       { "remoteExtensionAddress", "h450.remoteExtensionAddress",
4453         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
4454         "h225.AliasAddress", HFILL }},
4455     { &hf_h450_destinationAddressPresentationIndicator,
4456       { "destinationAddressPresentationIndicator", "h450.destinationAddressPresentationIndicator",
4457         FT_UINT32, BASE_DEC, VALS(h225_PresentationIndicator_vals), 0,
4458         "h225.PresentationIndicator", HFILL }},
4459     { &hf_h450_destinationAddressScreeningIndicator,
4460       { "destinationAddressScreeningIndicator", "h450.destinationAddressScreeningIndicator",
4461         FT_UINT32, BASE_DEC, VALS(h225_ScreeningIndicator_vals), 0,
4462         "h225.ScreeningIndicator", HFILL }},
4463     { &hf_h450_remoteExtensionAddressPresentationIndicator,
4464       { "remoteExtensionAddressPresentationIndicator", "h450.remoteExtensionAddressPresentationIndicator",
4465         FT_UINT32, BASE_DEC, VALS(h225_PresentationIndicator_vals), 0,
4466         "h225.PresentationIndicator", HFILL }},
4467     { &hf_h450_remoteExtensionAddressScreeningIndicator,
4468       { "remoteExtensionAddressScreeningIndicator", "h450.remoteExtensionAddressScreeningIndicator",
4469         FT_UINT32, BASE_DEC, VALS(h225_ScreeningIndicator_vals), 0,
4470         "h225.ScreeningIndicator", HFILL }},
4471     { &hf_h450_userSpecifiedSubaddress,
4472       { "userSpecifiedSubaddress", "h450.userSpecifiedSubaddress",
4473         FT_NONE, BASE_NONE, NULL, 0,
4474         "h450.UserSpecifiedSubaddress", HFILL }},
4475     { &hf_h450_nsapSubaddress,
4476       { "nsapSubaddress", "h450.nsapSubaddress",
4477         FT_BYTES, BASE_HEX, NULL, 0,
4478         "h450.NSAPSubaddress", HFILL }},
4479     { &hf_h450_subaddressInformation,
4480       { "subaddressInformation", "h450.subaddressInformation",
4481         FT_BYTES, BASE_HEX, NULL, 0,
4482         "h450.SubaddressInformation", HFILL }},
4483     { &hf_h450_oddCountIndicator,
4484       { "oddCountIndicator", "h450.oddCountIndicator",
4485         FT_BOOLEAN, 8, NULL, 0,
4486         "h450.BOOLEAN", HFILL }},
4487     { &hf_h450_extensionSeq,
4488       { "extensionSeq", "h450.extensionSeq",
4489         FT_UINT32, BASE_DEC, NULL, 0,
4490         "h450.ExtensionSeq", HFILL }},
4491     { &hf_h450_nonStandardData,
4492       { "nonStandardData", "h450.nonStandardData",
4493         FT_NONE, BASE_NONE, NULL, 0,
4494         "h225.NonStandardParameter", HFILL }},
4495     { &hf_h450_callIdentity,
4496       { "callIdentity", "h450.callIdentity",
4497         FT_STRING, BASE_NONE, NULL, 0,
4498         "h450.CallIdentity", HFILL }},
4499     { &hf_h450_reroutingNumber,
4500       { "reroutingNumber", "h450.reroutingNumber",
4501         FT_NONE, BASE_NONE, NULL, 0,
4502         "h450.EndpointAddress", HFILL }},
4503     { &hf_h450_cTInitiateArg_argumentExtension,
4504       { "argumentExtension", "h450.argumentExtension",
4505         FT_UINT32, BASE_DEC, VALS(h450_ArgumentExtension_vals), 0,
4506         "h450.ArgumentExtension", HFILL }},
4507     { &hf_h450_transferringNumber,
4508       { "transferringNumber", "h450.transferringNumber",
4509         FT_NONE, BASE_NONE, NULL, 0,
4510         "h450.EndpointAddress", HFILL }},
4511     { &hf_h450_cTSetupArg_argumentExtension,
4512       { "argumentExtension", "h450.argumentExtension",
4513         FT_UINT32, BASE_DEC, VALS(h450_ArgumentExtension_vals), 0,
4514         "h450.ArgumentExtension", HFILL }},
4515     { &hf_h450_resultExtension,
4516       { "resultExtension", "h450.resultExtension",
4517         FT_UINT32, BASE_DEC, VALS(h450_T_resultExtension_vals), 0,
4518         "h450.T_resultExtension", HFILL }},
4519     { &hf_h450_redirectionNumber,
4520       { "redirectionNumber", "h450.redirectionNumber",
4521         FT_NONE, BASE_NONE, NULL, 0,
4522         "h450.EndpointAddress", HFILL }},
4523     { &hf_h450_redirectionInfo,
4524       { "redirectionInfo", "h450.redirectionInfo",
4525         FT_STRING, BASE_NONE, NULL, 0,
4526         "h450.BMPString_SIZE_1_128", HFILL }},
4527     { &hf_h450_basicCallInfoElements,
4528       { "basicCallInfoElements", "h450.basicCallInfoElements",
4529         FT_BYTES, BASE_HEX, NULL, 0,
4530         "h450.H225InformationElement", HFILL }},
4531     { &hf_h450_cTUpdateArg_argumentExtension,
4532       { "argumentExtension", "h450.argumentExtension",
4533         FT_UINT32, BASE_DEC, VALS(h450_ArgumentExtension_vals), 0,
4534         "h450.ArgumentExtension", HFILL }},
4535     { &hf_h450_redirectionSubaddress,
4536       { "redirectionSubaddress", "h450.redirectionSubaddress",
4537         FT_UINT32, BASE_DEC, VALS(h450_PartySubaddress_vals), 0,
4538         "h450.PartySubaddress", HFILL }},
4539     { &hf_h450_subaddressTransferArg_argumentExtension,
4540       { "argumentExtension", "h450.argumentExtension",
4541         FT_UINT32, BASE_DEC, VALS(h450_ArgumentExtension_vals), 0,
4542         "h450.ArgumentExtension", HFILL }},
4543     { &hf_h450_endDesignation,
4544       { "endDesignation", "h450.endDesignation",
4545         FT_UINT32, BASE_DEC, VALS(h450_EndDesignation_vals), 0,
4546         "h450.EndDesignation", HFILL }},
4547     { &hf_h450_callStatus,
4548       { "callStatus", "h450.callStatus",
4549         FT_UINT32, BASE_DEC, VALS(h450_CallStatus_vals), 0,
4550         "h450.CallStatus", HFILL }},
4551     { &hf_h450_cTCompleteArg_argumentExtension,
4552       { "argumentExtension", "h450.argumentExtension",
4553         FT_UINT32, BASE_DEC, VALS(h450_ArgumentExtension_vals), 0,
4554         "h450.ArgumentExtension", HFILL }},
4555     { &hf_h450_connectedAddress,
4556       { "connectedAddress", "h450.connectedAddress",
4557         FT_NONE, BASE_NONE, NULL, 0,
4558         "h450.EndpointAddress", HFILL }},
4559     { &hf_h450_connectedInfo,
4560       { "connectedInfo", "h450.connectedInfo",
4561         FT_STRING, BASE_NONE, NULL, 0,
4562         "h450.BMPString_SIZE_1_128", HFILL }},
4563     { &hf_h450_cTActiveArg_argumentExtension,
4564       { "argumentExtension", "h450.argumentExtension",
4565         FT_UINT32, BASE_DEC, VALS(h450_ArgumentExtension_vals), 0,
4566         "h450.ArgumentExtension", HFILL }},
4567     { &hf_h450_ExtensionSeq_item,
4568       { "Item", "h450.ExtensionSeq_item",
4569         FT_NONE, BASE_NONE, NULL, 0,
4570         "h450.Extension", HFILL }},
4571     { &hf_h450_procedure,
4572       { "procedure", "h450.procedure",
4573         FT_UINT32, BASE_DEC, VALS(h450_Procedure_vals), 0,
4574         "h450.Procedure", HFILL }},
4575     { &hf_h450_basicService,
4576       { "basicService", "h450.basicService",
4577         FT_UINT32, BASE_DEC, VALS(h450_BasicService_vals), 0,
4578         "h450.BasicService", HFILL }},
4579     { &hf_h450_divertedToAddress,
4580       { "divertedToAddress", "h450.divertedToAddress",
4581         FT_NONE, BASE_NONE, NULL, 0,
4582         "h450.EndpointAddress", HFILL }},
4583     { &hf_h450_servedUserNr,
4584       { "servedUserNr", "h450.servedUserNr",
4585         FT_NONE, BASE_NONE, NULL, 0,
4586         "h450.EndpointAddress", HFILL }},
4587     { &hf_h450_activatingUserNr,
4588       { "activatingUserNr", "h450.activatingUserNr",
4589         FT_NONE, BASE_NONE, NULL, 0,
4590         "h450.EndpointAddress", HFILL }},
4591     { &hf_h450_activateDiversionQArg_extension,
4592       { "extension", "h450.extension",
4593         FT_UINT32, BASE_DEC, VALS(h450_ActivateDiversionQArg_extension_vals), 0,
4594         "h450.ActivateDiversionQArg_extension", HFILL }},
4595     { &hf_h450_deactivatingUserNr,
4596       { "deactivatingUserNr", "h450.deactivatingUserNr",
4597         FT_NONE, BASE_NONE, NULL, 0,
4598         "h450.EndpointAddress", HFILL }},
4599     { &hf_h450_deactivateDiversionQArg_extension,
4600       { "extension", "h450.extension",
4601         FT_UINT32, BASE_DEC, VALS(h450_DeactivateDiversionQArg_extension_vals), 0,
4602         "h450.DeactivateDiversionQArg_extension", HFILL }},
4603     { &hf_h450_interrogatingUserNr,
4604       { "interrogatingUserNr", "h450.interrogatingUserNr",
4605         FT_NONE, BASE_NONE, NULL, 0,
4606         "h450.EndpointAddress", HFILL }},
4607     { &hf_h450_interrogateDiversionQ_extension,
4608       { "extension", "h450.extension",
4609         FT_UINT32, BASE_DEC, VALS(h450_InterrogateDiversionQ_extension_vals), 0,
4610         "h450.InterrogateDiversionQ_extension", HFILL }},
4611     { &hf_h450_divertedToNr,
4612       { "divertedToNr", "h450.divertedToNr",
4613         FT_NONE, BASE_NONE, NULL, 0,
4614         "h450.EndpointAddress", HFILL }},
4615     { &hf_h450_checkRestrictionArg_extension,
4616       { "extension", "h450.extension",
4617         FT_UINT32, BASE_DEC, VALS(h450_CheckRestrictionArg_extension_vals), 0,
4618         "h450.CheckRestrictionArg_extension", HFILL }},
4619     { &hf_h450_reroutingReason,
4620       { "reroutingReason", "h450.reroutingReason",
4621         FT_UINT32, BASE_DEC, VALS(h450_DiversionReason_vals), 0,
4622         "h450.DiversionReason", HFILL }},
4623     { &hf_h450_originalReroutingReason,
4624       { "originalReroutingReason", "h450.originalReroutingReason",
4625         FT_UINT32, BASE_DEC, VALS(h450_DiversionReason_vals), 0,
4626         "h450.DiversionReason", HFILL }},
4627     { &hf_h450_calledAddress,
4628       { "calledAddress", "h450.calledAddress",
4629         FT_NONE, BASE_NONE, NULL, 0,
4630         "h450.EndpointAddress", HFILL }},
4631     { &hf_h450_diversionCounter,
4632       { "diversionCounter", "h450.diversionCounter",
4633         FT_UINT32, BASE_DEC, NULL, 0,
4634         "h450.INTEGER_1_15", HFILL }},
4635     { &hf_h450_h225InfoElement,
4636       { "h225InfoElement", "h450.h225InfoElement",
4637         FT_BYTES, BASE_HEX, NULL, 0,
4638         "h450.H225InformationElement", HFILL }},
4639     { &hf_h450_lastReroutingNr,
4640       { "lastReroutingNr", "h450.lastReroutingNr",
4641         FT_NONE, BASE_NONE, NULL, 0,
4642         "h450.EndpointAddress", HFILL }},
4643     { &hf_h450_subscriptionOption,
4644       { "subscriptionOption", "h450.subscriptionOption",
4645         FT_UINT32, BASE_DEC, VALS(h450_SubscriptionOption_vals), 0,
4646         "h450.SubscriptionOption", HFILL }},
4647     { &hf_h450_callingPartySubaddress,
4648       { "callingPartySubaddress", "h450.callingPartySubaddress",
4649         FT_UINT32, BASE_DEC, VALS(h450_PartySubaddress_vals), 0,
4650         "h450.PartySubaddress", HFILL }},
4651     { &hf_h450_callingNumber,
4652       { "callingNumber", "h450.callingNumber",
4653         FT_NONE, BASE_NONE, NULL, 0,
4654         "h450.EndpointAddress", HFILL }},
4655     { &hf_h450_callingInfo,
4656       { "callingInfo", "h450.callingInfo",
4657         FT_STRING, BASE_NONE, NULL, 0,
4658         "h450.BMPString_SIZE_1_128", HFILL }},
4659     { &hf_h450_originalCalledNr,
4660       { "originalCalledNr", "h450.originalCalledNr",
4661         FT_NONE, BASE_NONE, NULL, 0,
4662         "h450.EndpointAddress", HFILL }},
4663     { &hf_h450_redirectingInfo,
4664       { "redirectingInfo", "h450.redirectingInfo",
4665         FT_STRING, BASE_NONE, NULL, 0,
4666         "h450.BMPString_SIZE_1_128", HFILL }},
4667     { &hf_h450_originalCalledInfo,
4668       { "originalCalledInfo", "h450.originalCalledInfo",
4669         FT_STRING, BASE_NONE, NULL, 0,
4670         "h450.BMPString_SIZE_1_128", HFILL }},
4671     { &hf_h450_callReroutingArg_extension,
4672       { "extension", "h450.extension",
4673         FT_UINT32, BASE_DEC, VALS(h450_CallReroutingArg_extension_vals), 0,
4674         "h450.CallReroutingArg_extension", HFILL }},
4675     { &hf_h450_diversionReason,
4676       { "diversionReason", "h450.diversionReason",
4677         FT_UINT32, BASE_DEC, VALS(h450_DiversionReason_vals), 0,
4678         "h450.DiversionReason", HFILL }},
4679     { &hf_h450_nominatedNr,
4680       { "nominatedNr", "h450.nominatedNr",
4681         FT_NONE, BASE_NONE, NULL, 0,
4682         "h450.EndpointAddress", HFILL }},
4683     { &hf_h450_nominatedInfo,
4684       { "nominatedInfo", "h450.nominatedInfo",
4685         FT_STRING, BASE_NONE, NULL, 0,
4686         "h450.BMPString_SIZE_1_128", HFILL }},
4687     { &hf_h450_redirectingNr,
4688       { "redirectingNr", "h450.redirectingNr",
4689         FT_NONE, BASE_NONE, NULL, 0,
4690         "h450.EndpointAddress", HFILL }},
4691     { &hf_h450_divertingLegInformation1Arg_extension,
4692       { "extension", "h450.extension",
4693         FT_UINT32, BASE_DEC, VALS(h450_DivertingLegInformation1Arg_extension_vals), 0,
4694         "h450.DivertingLegInformation1Arg_extension", HFILL }},
4695     { &hf_h450_originalDiversionReason,
4696       { "originalDiversionReason", "h450.originalDiversionReason",
4697         FT_UINT32, BASE_DEC, VALS(h450_DiversionReason_vals), 0,
4698         "h450.DiversionReason", HFILL }},
4699     { &hf_h450_divertingNr,
4700       { "divertingNr", "h450.divertingNr",
4701         FT_NONE, BASE_NONE, NULL, 0,
4702         "h450.EndpointAddress", HFILL }},
4703     { &hf_h450_extension,
4704       { "extension", "h450.extension",
4705         FT_UINT32, BASE_DEC, VALS(h450_DivertingLegInformation2Arg_extension_vals), 0,
4706         "h450.DivertingLegInformation2Arg_extension", HFILL }},
4707     { &hf_h450_presentationAllowedIndicator,
4708       { "presentationAllowedIndicator", "h450.presentationAllowedIndicator",
4709         FT_BOOLEAN, 8, NULL, 0,
4710         "h450.PresentationAllowedIndicator", HFILL }},
4711     { &hf_h450_redirectionNr,
4712       { "redirectionNr", "h450.redirectionNr",
4713         FT_NONE, BASE_NONE, NULL, 0,
4714         "h450.EndpointAddress", HFILL }},
4715     { &hf_h450_divertingLegInformation3Arg_extension,
4716       { "extension", "h450.extension",
4717         FT_UINT32, BASE_DEC, VALS(h450_DivertingLegInformation3Arg_extension_vals), 0,
4718         "h450.DivertingLegInformation3Arg_extension", HFILL }},
4719     { &hf_h450_callingNr,
4720       { "callingNr", "h450.callingNr",
4721         FT_NONE, BASE_NONE, NULL, 0,
4722         "h450.EndpointAddress", HFILL }},
4723     { &hf_h450_divertingLegInformation4Arg_extension,
4724       { "extension", "h450.extension",
4725         FT_UINT32, BASE_DEC, VALS(h450_DivertingLegInformation4Arg_extension_vals), 0,
4726         "h450.DivertingLegInformation4Arg_extension", HFILL }},
4727     { &hf_h450_IntResultList_item,
4728       { "Item", "h450.IntResultList_item",
4729         FT_NONE, BASE_NONE, NULL, 0,
4730         "h450.IntResult", HFILL }},
4731     { &hf_h450_remoteEnabled,
4732       { "remoteEnabled", "h450.remoteEnabled",
4733         FT_BOOLEAN, 8, NULL, 0,
4734         "h450.BOOLEAN", HFILL }},
4735     { &hf_h450_intResult_extension,
4736       { "extension", "h450.extension",
4737         FT_UINT32, BASE_DEC, VALS(h450_IntResult_extension_vals), 0,
4738         "h450.IntResult_extension", HFILL }},
4739     { &hf_h450_holdNotificArg_extensionArg,
4740       { "extensionArg", "h450.extensionArg",
4741         FT_UINT32, BASE_DEC, NULL, 0,
4742         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4743     { &hf_h450_holdNotificArg_extensionArg_item,
4744       { "Item", "h450.extensionArg_item",
4745         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4746         "h450.MixedExtension", HFILL }},
4747     { &hf_h450_retrieveNotificArg_extensionArg,
4748       { "extensionArg", "h450.extensionArg",
4749         FT_UINT32, BASE_DEC, NULL, 0,
4750         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4751     { &hf_h450_retrieveNotificArg_extensionArg_item,
4752       { "Item", "h450.extensionArg_item",
4753         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4754         "h450.MixedExtension", HFILL }},
4755     { &hf_h450_remoteHoldArg_extensionArg,
4756       { "extensionArg", "h450.extensionArg",
4757         FT_UINT32, BASE_DEC, NULL, 0,
4758         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4759     { &hf_h450_remoteHoldArg_extensionArg_item,
4760       { "Item", "h450.extensionArg_item",
4761         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4762         "h450.MixedExtension", HFILL }},
4763     { &hf_h450_extensionRes,
4764       { "extensionRes", "h450.extensionRes",
4765         FT_UINT32, BASE_DEC, NULL, 0,
4766         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4767     { &hf_h450_extensionRes_item,
4768       { "Item", "h450.extensionRes_item",
4769         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4770         "h450.MixedExtension", HFILL }},
4771     { &hf_h450_remoteRetrieveArg_extensionArg,
4772       { "extensionArg", "h450.extensionArg",
4773         FT_UINT32, BASE_DEC, NULL, 0,
4774         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4775     { &hf_h450_remoteRetrieveArg_extensionArg_item,
4776       { "Item", "h450.extensionArg_item",
4777         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4778         "h450.MixedExtension", HFILL }},
4779     { &hf_h450_mixedExtension_extension,
4780       { "extension", "h450.extension",
4781         FT_NONE, BASE_NONE, NULL, 0,
4782         "h450.Extension", HFILL }},
4783     { &hf_h450_parkingNumber,
4784       { "parkingNumber", "h450.parkingNumber",
4785         FT_NONE, BASE_NONE, NULL, 0,
4786         "h450.EndpointAddress", HFILL }},
4787     { &hf_h450_parkedNumber,
4788       { "parkedNumber", "h450.parkedNumber",
4789         FT_NONE, BASE_NONE, NULL, 0,
4790         "h450.EndpointAddress", HFILL }},
4791     { &hf_h450_parkedToNumber,
4792       { "parkedToNumber", "h450.parkedToNumber",
4793         FT_NONE, BASE_NONE, NULL, 0,
4794         "h450.EndpointAddress", HFILL }},
4795     { &hf_h450_parkedToPosition,
4796       { "parkedToPosition", "h450.parkedToPosition",
4797         FT_UINT32, BASE_DEC, NULL, 0,
4798         "h450.ParkedToPosition", HFILL }},
4799     { &hf_h450_cpRequestArg_extensionArg,
4800       { "extensionArg", "h450.extensionArg",
4801         FT_UINT32, BASE_DEC, NULL, 0,
4802         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4803     { &hf_h450_cpRequestArg_extensionArg_item,
4804       { "Item", "h450.extensionArg_item",
4805         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4806         "h450.MixedExtension", HFILL }},
4807     { &hf_h450_parkCondition,
4808       { "parkCondition", "h450.parkCondition",
4809         FT_UINT32, BASE_DEC, VALS(h450_ParkCondition_vals), 0,
4810         "h450.ParkCondition", HFILL }},
4811     { &hf_h450_cpSetupArg_extensionArg,
4812       { "extensionArg", "h450.extensionArg",
4813         FT_UINT32, BASE_DEC, NULL, 0,
4814         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4815     { &hf_h450_cpSetupArg_extensionArg_item,
4816       { "Item", "h450.extensionArg_item",
4817         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4818         "h450.MixedExtension", HFILL }},
4819     { &hf_h450_callPickupId,
4820       { "callPickupId", "h450.callPickupId",
4821         FT_NONE, BASE_NONE, NULL, 0,
4822         "h225.CallIdentifier", HFILL }},
4823     { &hf_h450_groupMemberUserNr,
4824       { "groupMemberUserNr", "h450.groupMemberUserNr",
4825         FT_NONE, BASE_NONE, NULL, 0,
4826         "h450.EndpointAddress", HFILL }},
4827     { &hf_h450_retrieveCallType,
4828       { "retrieveCallType", "h450.retrieveCallType",
4829         FT_UINT32, BASE_DEC, VALS(h450_CallType_vals), 0,
4830         "h450.CallType", HFILL }},
4831     { &hf_h450_partyToRetrieve,
4832       { "partyToRetrieve", "h450.partyToRetrieve",
4833         FT_NONE, BASE_NONE, NULL, 0,
4834         "h450.EndpointAddress", HFILL }},
4835     { &hf_h450_retrieveAddress,
4836       { "retrieveAddress", "h450.retrieveAddress",
4837         FT_NONE, BASE_NONE, NULL, 0,
4838         "h450.EndpointAddress", HFILL }},
4839     { &hf_h450_parkPosition,
4840       { "parkPosition", "h450.parkPosition",
4841         FT_UINT32, BASE_DEC, NULL, 0,
4842         "h450.ParkedToPosition", HFILL }},
4843     { &hf_h450_groupIndicationOnArg_extensionArg,
4844       { "extensionArg", "h450.extensionArg",
4845         FT_UINT32, BASE_DEC, NULL, 0,
4846         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4847     { &hf_h450_groupIndicationOnArg_extensionArg_item,
4848       { "Item", "h450.extensionArg_item",
4849         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4850         "h450.MixedExtension", HFILL }},
4851     { &hf_h450_groupIndicationOffArg_extensionArg,
4852       { "extensionArg", "h450.extensionArg",
4853         FT_UINT32, BASE_DEC, NULL, 0,
4854         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4855     { &hf_h450_groupIndicationOffArg_extensionArg_item,
4856       { "Item", "h450.extensionArg_item",
4857         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4858         "h450.MixedExtension", HFILL }},
4859     { &hf_h450_picking_upNumber,
4860       { "picking-upNumber", "h450.picking_upNumber",
4861         FT_NONE, BASE_NONE, NULL, 0,
4862         "h450.EndpointAddress", HFILL }},
4863     { &hf_h450_pickrequArg_extensionArg,
4864       { "extensionArg", "h450.extensionArg",
4865         FT_UINT32, BASE_DEC, NULL, 0,
4866         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4867     { &hf_h450_pickrequArg_extensionArg_item,
4868       { "Item", "h450.extensionArg_item",
4869         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4870         "h450.MixedExtension", HFILL }},
4871     { &hf_h450_pickupArg_extensionArg,
4872       { "extensionArg", "h450.extensionArg",
4873         FT_UINT32, BASE_DEC, NULL, 0,
4874         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4875     { &hf_h450_pickupArg_extensionArg_item,
4876       { "Item", "h450.extensionArg_item",
4877         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4878         "h450.MixedExtension", HFILL }},
4879     { &hf_h450_pickExeArg_extensionArg,
4880       { "extensionArg", "h450.extensionArg",
4881         FT_UINT32, BASE_DEC, NULL, 0,
4882         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4883     { &hf_h450_pickExeArg_extensionArg_item,
4884       { "Item", "h450.extensionArg_item",
4885         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4886         "h450.MixedExtension", HFILL }},
4887     { &hf_h450_cpNotifyArg_extensionArg,
4888       { "extensionArg", "h450.extensionArg",
4889         FT_UINT32, BASE_DEC, NULL, 0,
4890         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4891     { &hf_h450_cpNotifyArg_extensionArg_item,
4892       { "Item", "h450.extensionArg_item",
4893         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4894         "h450.MixedExtension", HFILL }},
4895     { &hf_h450_cpickupNotifyArg_extensionArg,
4896       { "extensionArg", "h450.extensionArg",
4897         FT_UINT32, BASE_DEC, NULL, 0,
4898         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4899     { &hf_h450_cpickupNotifyArg_extensionArg_item,
4900       { "Item", "h450.extensionArg_item",
4901         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4902         "h450.MixedExtension", HFILL }},
4903     { &hf_h450_nbOfAddWaitingCalls,
4904       { "nbOfAddWaitingCalls", "h450.nbOfAddWaitingCalls",
4905         FT_UINT32, BASE_DEC, NULL, 0,
4906         "h450.INTEGER_0_255", HFILL }},
4907     { &hf_h450_callWaitingArg_extensionArg,
4908       { "extensionArg", "h450.extensionArg",
4909         FT_UINT32, BASE_DEC, NULL, 0,
4910         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4911     { &hf_h450_callWaitingArg_extensionArg_item,
4912       { "Item", "h450.extensionArg_item",
4913         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4914         "h450.MixedExtension", HFILL }},
4915     { &hf_h450_msgCentreId,
4916       { "msgCentreId", "h450.msgCentreId",
4917         FT_UINT32, BASE_DEC, VALS(h450_MsgCentreId_vals), 0,
4918         "h450.MsgCentreId", HFILL }},
4919     { &hf_h450_nbOfMessages,
4920       { "nbOfMessages", "h450.nbOfMessages",
4921         FT_UINT32, BASE_DEC, NULL, 0,
4922         "h450.NbOfMessages", HFILL }},
4923     { &hf_h450_originatingNr,
4924       { "originatingNr", "h450.originatingNr",
4925         FT_NONE, BASE_NONE, NULL, 0,
4926         "h450.EndpointAddress", HFILL }},
4927     { &hf_h450_timestamp,
4928       { "timestamp", "h450.timestamp",
4929         FT_STRING, BASE_NONE, NULL, 0,
4930         "h450.TimeStamp", HFILL }},
4931     { &hf_h450_priority,
4932       { "priority", "h450.priority",
4933         FT_UINT32, BASE_DEC, NULL, 0,
4934         "h450.INTEGER_0_9", HFILL }},
4935     { &hf_h450_mWIActivateArg_extensionArg,
4936       { "extensionArg", "h450.extensionArg",
4937         FT_UINT32, BASE_DEC, NULL, 0,
4938         "h450.ExtensionArg", HFILL }},
4939     { &hf_h450_MwiDummyRes_item,
4940       { "Item", "h450.MwiDummyRes_item",
4941         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4942         "h450.MixedExtension", HFILL }},
4943     { &hf_h450_callbackReq,
4944       { "callbackReq", "h450.callbackReq",
4945         FT_BOOLEAN, 8, NULL, 0,
4946         "h450.BOOLEAN", HFILL }},
4947     { &hf_h450_mWIDeactivateArg_extensionArg,
4948       { "extensionArg", "h450.extensionArg",
4949         FT_UINT32, BASE_DEC, NULL, 0,
4950         "h450.ExtensionArg", HFILL }},
4951     { &hf_h450_mWIInterrogateArg_extensionArg,
4952       { "extensionArg", "h450.extensionArg",
4953         FT_UINT32, BASE_DEC, NULL, 0,
4954         "h450.ExtensionArg", HFILL }},
4955     { &hf_h450_MWIInterrogateRes_item,
4956       { "Item", "h450.MWIInterrogateRes_item",
4957         FT_NONE, BASE_NONE, NULL, 0,
4958         "h450.MWIInterrogateResElt", HFILL }},
4959     { &hf_h450_mWIInterrogateResElt_extensionArg,
4960       { "extensionArg", "h450.extensionArg",
4961         FT_UINT32, BASE_DEC, NULL, 0,
4962         "h450.ExtensionArg", HFILL }},
4963     { &hf_h450_integer,
4964       { "integer", "h450.integer",
4965         FT_UINT32, BASE_DEC, NULL, 0,
4966         "h450.INTEGER_0_65535", HFILL }},
4967     { &hf_h450_mwipartyNumber,
4968       { "mwipartyNumber", "h450.mwipartyNumber",
4969         FT_NONE, BASE_NONE, NULL, 0,
4970         "h450.EndpointAddress", HFILL }},
4971     { &hf_h450_numericString,
4972       { "numericString", "h450.numericString",
4973         FT_STRING, BASE_NONE, NULL, 0,
4974         "h450.NumericString_SIZE_1_10", HFILL }},
4975     { &hf_h450_ExtensionArg_item,
4976       { "Item", "h450.ExtensionArg_item",
4977         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4978         "h450.MixedExtension", HFILL }},
4979     { &hf_h450_name,
4980       { "name", "h450.name",
4981         FT_UINT32, BASE_DEC, VALS(h450_Name_vals), 0,
4982         "h450.Name", HFILL }},
4983     { &hf_h450_nameArg_extensionArg,
4984       { "extensionArg", "h450.extensionArg",
4985         FT_UINT32, BASE_DEC, NULL, 0,
4986         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
4987     { &hf_h450_nameArg_extensionArg_item,
4988       { "Item", "h450.extensionArg_item",
4989         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
4990         "h450.MixedExtension", HFILL }},
4991     { &hf_h450_namePresentationAllowed,
4992       { "namePresentationAllowed", "h450.namePresentationAllowed",
4993         FT_UINT32, BASE_DEC, VALS(h450_NamePresentationAllowed_vals), 0,
4994         "h450.NamePresentationAllowed", HFILL }},
4995     { &hf_h450_namePresentationRestricted,
4996       { "namePresentationRestricted", "h450.namePresentationRestricted",
4997         FT_UINT32, BASE_DEC, VALS(h450_NamePresentationRestricted_vals), 0,
4998         "h450.NamePresentationRestricted", HFILL }},
4999     { &hf_h450_nameNotAvailable,
5000       { "nameNotAvailable", "h450.nameNotAvailable",
5001         FT_NONE, BASE_NONE, NULL, 0,
5002         "h450.NULL", HFILL }},
5003     { &hf_h450_simpleName,
5004       { "simpleName", "h450.simpleName",
5005         FT_BYTES, BASE_HEX, NULL, 0,
5006         "h450.SimpleName", HFILL }},
5007     { &hf_h450_extendedName,
5008       { "extendedName", "h450.extendedName",
5009         FT_STRING, BASE_NONE, NULL, 0,
5010         "h450.ExtendedName", HFILL }},
5011     { &hf_h450_restrictedNull,
5012       { "restrictedNull", "h450.restrictedNull",
5013         FT_NONE, BASE_NONE, NULL, 0,
5014         "h450.NULL", HFILL }},
5015     { &hf_h450_numberA,
5016       { "numberA", "h450.numberA",
5017         FT_NONE, BASE_NONE, NULL, 0,
5018         "h450.EndpointAddress", HFILL }},
5019     { &hf_h450_numberB,
5020       { "numberB", "h450.numberB",
5021         FT_NONE, BASE_NONE, NULL, 0,
5022         "h450.EndpointAddress", HFILL }},
5023     { &hf_h450_ccIdentifier,
5024       { "ccIdentifier", "h450.ccIdentifier",
5025         FT_NONE, BASE_NONE, NULL, 0,
5026         "h225.CallIdentifier", HFILL }},
5027     { &hf_h450_service,
5028       { "service", "h450.service",
5029         FT_UINT32, BASE_DEC, VALS(h450_BasicService_vals), 0,
5030         "h450.BasicService", HFILL }},
5031     { &hf_h450_can_retain_service,
5032       { "can-retain-service", "h450.can_retain_service",
5033         FT_BOOLEAN, 8, NULL, 0,
5034         "h450.BOOLEAN", HFILL }},
5035     { &hf_h450_retain_sig_connection,
5036       { "retain-sig-connection", "h450.retain_sig_connection",
5037         FT_BOOLEAN, 8, NULL, 0,
5038         "h450.BOOLEAN", HFILL }},
5039     { &hf_h450_ccRequestArg_extension,
5040       { "extension", "h450.extension",
5041         FT_UINT32, BASE_DEC, NULL, 0,
5042         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5043     { &hf_h450_ccRequestArg_extension_item,
5044       { "Item", "h450.extension_item",
5045         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5046         "h450.MixedExtension", HFILL }},
5047     { &hf_h450_retain_service,
5048       { "retain-service", "h450.retain_service",
5049         FT_BOOLEAN, 8, NULL, 0,
5050         "h450.BOOLEAN", HFILL }},
5051     { &hf_h450_ccRequestRes_extension,
5052       { "extension", "h450.extension",
5053         FT_UINT32, BASE_DEC, NULL, 0,
5054         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5055     { &hf_h450_ccRequestRes_extension_item,
5056       { "Item", "h450.extension_item",
5057         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5058         "h450.MixedExtension", HFILL }},
5059     { &hf_h450_shortArg,
5060       { "shortArg", "h450.shortArg",
5061         FT_NONE, BASE_NONE, NULL, 0,
5062         "h450.CcShortArg", HFILL }},
5063     { &hf_h450_longArg,
5064       { "longArg", "h450.longArg",
5065         FT_NONE, BASE_NONE, NULL, 0,
5066         "h450.CcLongArg", HFILL }},
5067     { &hf_h450_ccShortArg_extension,
5068       { "extension", "h450.extension",
5069         FT_UINT32, BASE_DEC, NULL, 0,
5070         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5071     { &hf_h450_ccShortArg_extension_item,
5072       { "Item", "h450.extension_item",
5073         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5074         "h450.MixedExtension", HFILL }},
5075     { &hf_h450_ccLongArg_extension,
5076       { "extension", "h450.extension",
5077         FT_UINT32, BASE_DEC, NULL, 0,
5078         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5079     { &hf_h450_ccLongArg_extension_item,
5080       { "Item", "h450.extension_item",
5081         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5082         "h450.MixedExtension", HFILL }},
5083     { &hf_h450_coReqOptArg_extension,
5084       { "extension", "h450.extension",
5085         FT_UINT32, BASE_DEC, NULL, 0,
5086         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5087     { &hf_h450_coReqOptArg_extension_item,
5088       { "Item", "h450.extension_item",
5089         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5090         "h450.MixedExtension", HFILL }},
5091     { &hf_h450_rUAlertOptArg_extension,
5092       { "extension", "h450.extension",
5093         FT_UINT32, BASE_DEC, NULL, 0,
5094         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5095     { &hf_h450_rUAlertOptArg_extension_item,
5096       { "Item", "h450.extension_item",
5097         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5098         "h450.MixedExtension", HFILL }},
5099     { &hf_h450_cfbOvrOptArg_extension,
5100       { "extension", "h450.extension",
5101         FT_UINT32, BASE_DEC, NULL, 0,
5102         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5103     { &hf_h450_cfbOvrOptArg_extension_item,
5104       { "Item", "h450.extension_item",
5105         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5106         "h450.MixedExtension", HFILL }},
5107     { &hf_h450_ciCapabilityLevel,
5108       { "ciCapabilityLevel", "h450.ciCapabilityLevel",
5109         FT_UINT32, BASE_DEC, VALS(h450_CICapabilityLevel_vals), 0,
5110         "h450.CICapabilityLevel", HFILL }},
5111     { &hf_h450_cIRequestArg_argumentExtension,
5112       { "argumentExtension", "h450.argumentExtension",
5113         FT_UINT32, BASE_DEC, NULL, 0,
5114         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5115     { &hf_h450_cIRequestArg_argumentExtension_item,
5116       { "Item", "h450.argumentExtension_item",
5117         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5118         "h450.MixedExtension", HFILL }},
5119     { &hf_h450_ciStatusInformation,
5120       { "ciStatusInformation", "h450.ciStatusInformation",
5121         FT_UINT32, BASE_DEC, VALS(h450_CIStatusInformation_vals), 0,
5122         "h450.CIStatusInformation", HFILL }},
5123     { &hf_h450_cIRequestRes_resultExtension,
5124       { "resultExtension", "h450.resultExtension",
5125         FT_UINT32, BASE_DEC, NULL, 0,
5126         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5127     { &hf_h450_cIRequestRes_resultExtension_item,
5128       { "Item", "h450.resultExtension_item",
5129         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5130         "h450.MixedExtension", HFILL }},
5131     { &hf_h450_cIGetCIPLOptArg_argumentExtension,
5132       { "argumentExtension", "h450.argumentExtension",
5133         FT_UINT32, BASE_DEC, NULL, 0,
5134         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5135     { &hf_h450_cIGetCIPLOptArg_argumentExtension_item,
5136       { "Item", "h450.argumentExtension_item",
5137         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5138         "h450.MixedExtension", HFILL }},
5139     { &hf_h450_ciProtectionLevel,
5140       { "ciProtectionLevel", "h450.ciProtectionLevel",
5141         FT_UINT32, BASE_DEC, VALS(h450_CIProtectionLevel_vals), 0,
5142         "h450.CIProtectionLevel", HFILL }},
5143     { &hf_h450_silentMonitoringPermitted,
5144       { "silentMonitoringPermitted", "h450.silentMonitoringPermitted",
5145         FT_NONE, BASE_NONE, NULL, 0,
5146         "h450.NULL", HFILL }},
5147     { &hf_h450_cIGetCIPLRes_resultExtension,
5148       { "resultExtension", "h450.resultExtension",
5149         FT_UINT32, BASE_DEC, NULL, 0,
5150         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5151     { &hf_h450_cIGetCIPLRes_resultExtension_item,
5152       { "Item", "h450.resultExtension_item",
5153         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5154         "h450.MixedExtension", HFILL }},
5155     { &hf_h450_cIIsOptArg_argumentExtension,
5156       { "argumentExtension", "h450.argumentExtension",
5157         FT_UINT32, BASE_DEC, NULL, 0,
5158         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5159     { &hf_h450_cIIsOptArg_argumentExtension_item,
5160       { "Item", "h450.argumentExtension_item",
5161         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5162         "h450.MixedExtension", HFILL }},
5163     { &hf_h450_cIIsOptRes_resultExtension,
5164       { "resultExtension", "h450.resultExtension",
5165         FT_UINT32, BASE_DEC, NULL, 0,
5166         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5167     { &hf_h450_cIIsOptRes_resultExtension_item,
5168       { "Item", "h450.resultExtension_item",
5169         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5170         "h450.MixedExtension", HFILL }},
5171     { &hf_h450_cIFrcRelArg_argumentExtension,
5172       { "argumentExtension", "h450.argumentExtension",
5173         FT_UINT32, BASE_DEC, NULL, 0,
5174         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5175     { &hf_h450_cIFrcRelArg_argumentExtension_item,
5176       { "Item", "h450.argumentExtension_item",
5177         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5178         "h450.MixedExtension", HFILL }},
5179     { &hf_h450_cIFrcRelOptRes_resultExtension,
5180       { "resultExtension", "h450.resultExtension",
5181         FT_UINT32, BASE_DEC, NULL, 0,
5182         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5183     { &hf_h450_cIFrcRelOptRes_resultExtension_item,
5184       { "Item", "h450.resultExtension_item",
5185         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5186         "h450.MixedExtension", HFILL }},
5187     { &hf_h450_cIWobOptArg_argumentExtension,
5188       { "argumentExtension", "h450.argumentExtension",
5189         FT_UINT32, BASE_DEC, NULL, 0,
5190         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5191     { &hf_h450_cIWobOptArg_argumentExtension_item,
5192       { "Item", "h450.argumentExtension_item",
5193         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5194         "h450.MixedExtension", HFILL }},
5195     { &hf_h450_cIWobOptRes_resultExtension,
5196       { "resultExtension", "h450.resultExtension",
5197         FT_UINT32, BASE_DEC, NULL, 0,
5198         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5199     { &hf_h450_cIWobOptRes_resultExtension_item,
5200       { "Item", "h450.resultExtension_item",
5201         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5202         "h450.MixedExtension", HFILL }},
5203     { &hf_h450_specificCall,
5204       { "specificCall", "h450.specificCall",
5205         FT_NONE, BASE_NONE, NULL, 0,
5206         "h225.CallIdentifier", HFILL }},
5207     { &hf_h450_cISilentArg_argumentExtension,
5208       { "argumentExtension", "h450.argumentExtension",
5209         FT_UINT32, BASE_DEC, NULL, 0,
5210         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5211     { &hf_h450_cISilentArg_argumentExtension_item,
5212       { "Item", "h450.argumentExtension_item",
5213         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5214         "h450.MixedExtension", HFILL }},
5215     { &hf_h450_cISilentOptRes_resultExtension,
5216       { "resultExtension", "h450.resultExtension",
5217         FT_UINT32, BASE_DEC, NULL, 0,
5218         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5219     { &hf_h450_cISilentOptRes_resultExtension_item,
5220       { "Item", "h450.resultExtension_item",
5221         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5222         "h450.MixedExtension", HFILL }},
5223     { &hf_h450_cINotificationArg_argumentExtension,
5224       { "argumentExtension", "h450.argumentExtension",
5225         FT_UINT32, BASE_DEC, NULL, 0,
5226         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5227     { &hf_h450_cINotificationArg_argumentExtension_item,
5228       { "Item", "h450.argumentExtension_item",
5229         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5230         "h450.MixedExtension", HFILL }},
5231     { &hf_h450_callIntrusionImpending,
5232       { "callIntrusionImpending", "h450.callIntrusionImpending",
5233         FT_NONE, BASE_NONE, NULL, 0,
5234         "h450.NULL", HFILL }},
5235     { &hf_h450_callIntruded,
5236       { "callIntruded", "h450.callIntruded",
5237         FT_NONE, BASE_NONE, NULL, 0,
5238         "h450.NULL", HFILL }},
5239     { &hf_h450_callIsolated,
5240       { "callIsolated", "h450.callIsolated",
5241         FT_NONE, BASE_NONE, NULL, 0,
5242         "h450.NULL", HFILL }},
5243     { &hf_h450_callForceReleased,
5244       { "callForceReleased", "h450.callForceReleased",
5245         FT_NONE, BASE_NONE, NULL, 0,
5246         "h450.NULL", HFILL }},
5247     { &hf_h450_callIntrusionComplete,
5248       { "callIntrusionComplete", "h450.callIntrusionComplete",
5249         FT_NONE, BASE_NONE, NULL, 0,
5250         "h450.NULL", HFILL }},
5251     { &hf_h450_callIntrusionEnd,
5252       { "callIntrusionEnd", "h450.callIntrusionEnd",
5253         FT_NONE, BASE_NONE, NULL, 0,
5254         "h450.NULL", HFILL }},
5255     { &hf_h450_featureList,
5256       { "featureList", "h450.featureList",
5257         FT_NONE, BASE_NONE, NULL, 0,
5258         "h450.FeatureList", HFILL }},
5259     { &hf_h450_featureValues,
5260       { "featureValues", "h450.featureValues",
5261         FT_NONE, BASE_NONE, NULL, 0,
5262         "h450.FeatureValues", HFILL }},
5263     { &hf_h450_featureControl,
5264       { "featureControl", "h450.featureControl",
5265         FT_NONE, BASE_NONE, NULL, 0,
5266         "h450.FeatureControl", HFILL }},
5267     { &hf_h450_cmnArg_extension,
5268       { "extension", "h450.extension",
5269         FT_UINT32, BASE_DEC, NULL, 0,
5270         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5271     { &hf_h450_cmnArg_extension_item,
5272       { "Item", "h450.extension_item",
5273         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5274         "h450.MixedExtension", HFILL }},
5275     { &hf_h450_cmnRequestArg_extensionArg,
5276       { "extensionArg", "h450.extensionArg",
5277         FT_UINT32, BASE_DEC, NULL, 0,
5278         "h450.SEQUENCE_SIZE_0_255_OF_MixedExtension", HFILL }},
5279     { &hf_h450_cmnRequestArg_extensionArg_item,
5280       { "Item", "h450.extensionArg_item",
5281         FT_UINT32, BASE_DEC, VALS(h450_MixedExtension_vals), 0,
5282         "h450.MixedExtension", HFILL }},
5283     { &hf_h450_ssCFreRoutingSupported,
5284       { "ssCFreRoutingSupported", "h450.ssCFreRoutingSupported",
5285         FT_NONE, BASE_NONE, NULL, 0,
5286         "h450.NULL", HFILL }},
5287     { &hf_h450_ssCTreRoutingSupported,
5288       { "ssCTreRoutingSupported", "h450.ssCTreRoutingSupported",
5289         FT_NONE, BASE_NONE, NULL, 0,
5290         "h450.NULL", HFILL }},
5291     { &hf_h450_ssCCBSPossible,
5292       { "ssCCBSPossible", "h450.ssCCBSPossible",
5293         FT_NONE, BASE_NONE, NULL, 0,
5294         "h450.NULL", HFILL }},
5295     { &hf_h450_ssCCNRPossible,
5296       { "ssCCNRPossible", "h450.ssCCNRPossible",
5297         FT_NONE, BASE_NONE, NULL, 0,
5298         "h450.NULL", HFILL }},
5299     { &hf_h450_ssCOSupported,
5300       { "ssCOSupported", "h450.ssCOSupported",
5301         FT_NONE, BASE_NONE, NULL, 0,
5302         "h450.NULL", HFILL }},
5303     { &hf_h450_ssCIForcedReleaseSupported,
5304       { "ssCIForcedReleaseSupported", "h450.ssCIForcedReleaseSupported",
5305         FT_NONE, BASE_NONE, NULL, 0,
5306         "h450.NULL", HFILL }},
5307     { &hf_h450_ssCIIsolationSupported,
5308       { "ssCIIsolationSupported", "h450.ssCIIsolationSupported",
5309         FT_NONE, BASE_NONE, NULL, 0,
5310         "h450.NULL", HFILL }},
5311     { &hf_h450_ssCIWaitOnBusySupported,
5312       { "ssCIWaitOnBusySupported", "h450.ssCIWaitOnBusySupported",
5313         FT_NONE, BASE_NONE, NULL, 0,
5314         "h450.NULL", HFILL }},
5315     { &hf_h450_ssCISilentMonitoringSupported,
5316       { "ssCISilentMonitoringSupported", "h450.ssCISilentMonitoringSupported",
5317         FT_NONE, BASE_NONE, NULL, 0,
5318         "h450.NULL", HFILL }},
5319     { &hf_h450_ssCIConferenceSupported,
5320       { "ssCIConferenceSupported", "h450.ssCIConferenceSupported",
5321         FT_NONE, BASE_NONE, NULL, 0,
5322         "h450.NULL", HFILL }},
5323     { &hf_h450_ssCHFarHoldSupported,
5324       { "ssCHFarHoldSupported", "h450.ssCHFarHoldSupported",
5325         FT_NONE, BASE_NONE, NULL, 0,
5326         "h450.NULL", HFILL }},
5327     { &hf_h450_ssMWICallbackSupported,
5328       { "ssMWICallbackSupported", "h450.ssMWICallbackSupported",
5329         FT_NONE, BASE_NONE, NULL, 0,
5330         "h450.NULL", HFILL }},
5331     { &hf_h450_ssCPCallParkSupported,
5332       { "ssCPCallParkSupported", "h450.ssCPCallParkSupported",
5333         FT_NONE, BASE_NONE, NULL, 0,
5334         "h450.NULL", HFILL }},
5335     { &hf_h450_partyCategory,
5336       { "partyCategory", "h450.partyCategory",
5337         FT_UINT32, BASE_DEC, VALS(h450_PartyCategory_vals), 0,
5338         "h450.PartyCategory", HFILL }},
5339     { &hf_h450_ssCIprotectionLevel,
5340       { "ssCIprotectionLevel", "h450.ssCIprotectionLevel",
5341         FT_UINT32, BASE_DEC, NULL, 0,
5342         "h450.SSCIProtectionLevel", HFILL }},
5343     { &hf_h450_ssCHDoNotHold,
5344       { "ssCHDoNotHold", "h450.ssCHDoNotHold",
5345         FT_NONE, BASE_NONE, NULL, 0,
5346         "h450.NULL", HFILL }},
5347     { &hf_h450_ssCTDoNotTransfer,
5348       { "ssCTDoNotTransfer", "h450.ssCTDoNotTransfer",
5349         FT_NONE, BASE_NONE, NULL, 0,
5350         "h450.NULL", HFILL }},
5351     { &hf_h450_ssMWICallbackCall,
5352       { "ssMWICallbackCall", "h450.ssMWICallbackCall",
5353         FT_NONE, BASE_NONE, NULL, 0,
5354         "h450.NULL", HFILL }},
5355     { &hf_h450_ssCISilentMonitorPermitted,
5356       { "ssCISilentMonitorPermitted", "h450.ssCISilentMonitorPermitted",
5357         FT_NONE, BASE_NONE, NULL, 0,
5358         "h450.NULL", HFILL }},
5359     { &hf_h450_unspecified_extension,
5360       { "extension", "h450.extension",
5361         FT_NONE, BASE_NONE, NULL, 0,
5362         "h450.Extension", HFILL }},
5363     { &hf_h450_nonStandard,
5364       { "nonStandard", "h450.nonStandard",
5365         FT_NONE, BASE_NONE, NULL, 0,
5366         "h225.NonStandardParameter", HFILL }},
5367     { &hf_h450_extensionId,
5368       { "extensionId", "h450.extensionId",
5369         FT_OID, BASE_NONE, NULL, 0,
5370         "h450.OBJECT_IDENTIFIER", HFILL }},
5371     { &hf_h450_extensionArgument,
5372       { "extensionArgument", "h450.extensionArgument",
5373         FT_BYTES, BASE_HEX, NULL, 0,
5374         "h450.ExtensionArgument", HFILL }},
5375
5376 /*--- End of included file: packet-h450-hfarr.c ---*/
5377 #line 1039 "packet-h450-template.c"
5378   };
5379
5380   /* List of subtrees */
5381   static gint *ett[] = {
5382           &ett_h4501,
5383           &ett_h4501_opcode,
5384           &ett_h4501_result,
5385           &ett_h4501_errorCode,
5386
5387           &ett_h4501_problem,
5388           &ett_h4501_Reject,
5389           &ett_h4501_ReturnError,
5390           &ett_h4501_ReturnResult,
5391           &ett_h4501_Invoke,
5392           &ett_h4501_ROS,
5393
5394 /*--- Included file: packet-h450-ettarr.c ---*/
5395 #line 1 "packet-h450-ettarr.c"
5396     &ett_h450_H4501SupplementaryService,
5397     &ett_h450_NetworkFacilityExtension,
5398     &ett_h450_EntityType,
5399     &ett_h450_InterpretationApdu,
5400     &ett_h450_ServiceApdus,
5401     &ett_h450_SEQUENCE_OF_ROSxxx,
5402     &ett_h450_PresentedAddressScreened,
5403     &ett_h450_PresentedAddressUnscreened,
5404     &ett_h450_PresentedNumberScreened,
5405     &ett_h450_PresentedNumberUnscreened,
5406     &ett_h450_AddressScreened,
5407     &ett_h450_NumberScreened,
5408     &ett_h450_Address,
5409     &ett_h450_EndpointAddress,
5410     &ett_h450_SEQUENCE_OF_AliasAddress,
5411     &ett_h450_PartySubaddress,
5412     &ett_h450_UserSpecifiedSubaddress,
5413     &ett_h450_DummyArg,
5414     &ett_h450_DummyRes,
5415     &ett_h450_CTInitiateArg,
5416     &ett_h450_ArgumentExtension,
5417     &ett_h450_CTSetupArg,
5418     &ett_h450_CTIdentifyRes,
5419     &ett_h450_T_resultExtension,
5420     &ett_h450_CTUpdateArg,
5421     &ett_h450_SubaddressTransferArg,
5422     &ett_h450_CTCompleteArg,
5423     &ett_h450_CTActiveArg,
5424     &ett_h450_ExtensionSeq,
5425     &ett_h450_ActivateDiversionQArg,
5426     &ett_h450_ActivateDiversionQArg_extension,
5427     &ett_h450_ActivateDiversionQRes,
5428     &ett_h450_DeactivateDiversionQArg,
5429     &ett_h450_DeactivateDiversionQArg_extension,
5430     &ett_h450_DeactivateDiversionQRes,
5431     &ett_h450_InterrogateDiversionQ,
5432     &ett_h450_InterrogateDiversionQ_extension,
5433     &ett_h450_CheckRestrictionArg,
5434     &ett_h450_CheckRestrictionArg_extension,
5435     &ett_h450_CheckRestrictionRes,
5436     &ett_h450_CallReroutingArg,
5437     &ett_h450_CallReroutingArg_extension,
5438     &ett_h450_CallReroutingRes,
5439     &ett_h450_DivertingLegInformation1Arg,
5440     &ett_h450_DivertingLegInformation1Arg_extension,
5441     &ett_h450_DivertingLegInformation2Arg,
5442     &ett_h450_DivertingLegInformation2Arg_extension,
5443     &ett_h450_DivertingLegInformation3Arg,
5444     &ett_h450_DivertingLegInformation3Arg_extension,
5445     &ett_h450_DivertingLegInformation4Arg,
5446     &ett_h450_DivertingLegInformation4Arg_extension,
5447     &ett_h450_CfnrDivertedLegFailedArg,
5448     &ett_h450_IntResultList,
5449     &ett_h450_IntResult,
5450     &ett_h450_IntResult_extension,
5451     &ett_h450_HoldNotificArg,
5452     &ett_h450_SEQUENCE_SIZE_0_255_OF_MixedExtension,
5453     &ett_h450_RetrieveNotificArg,
5454     &ett_h450_RemoteHoldArg,
5455     &ett_h450_RemoteHoldRes,
5456     &ett_h450_RemoteRetrieveArg,
5457     &ett_h450_RemoteRetrieveRes,
5458     &ett_h450_MixedExtension,
5459     &ett_h450_CpRequestArg,
5460     &ett_h450_CpRequestRes,
5461     &ett_h450_CpSetupArg,
5462     &ett_h450_CpSetupRes,
5463     &ett_h450_GroupIndicationOnArg,
5464     &ett_h450_GroupIndicationOnRes,
5465     &ett_h450_GroupIndicationOffArg,
5466     &ett_h450_GroupIndicationOffRes,
5467     &ett_h450_PickrequArg,
5468     &ett_h450_PickrequRes,
5469     &ett_h450_PickupArg,
5470     &ett_h450_PickupRes,
5471     &ett_h450_PickExeArg,
5472     &ett_h450_PickExeRes,
5473     &ett_h450_CpNotifyArg,
5474     &ett_h450_CpickupNotifyArg,
5475     &ett_h450_CallWaitingArg,
5476     &ett_h450_MWIActivateArg,
5477     &ett_h450_MwiDummyRes,
5478     &ett_h450_MWIDeactivateArg,
5479     &ett_h450_MWIInterrogateArg,
5480     &ett_h450_MWIInterrogateRes,
5481     &ett_h450_MWIInterrogateResElt,
5482     &ett_h450_MsgCentreId,
5483     &ett_h450_ExtensionArg,
5484     &ett_h450_NameArg,
5485     &ett_h450_Name,
5486     &ett_h450_NamePresentationAllowed,
5487     &ett_h450_NamePresentationRestricted,
5488     &ett_h450_CcRequestArg,
5489     &ett_h450_CcRequestRes,
5490     &ett_h450_CcArg,
5491     &ett_h450_CcShortArg,
5492     &ett_h450_CcLongArg,
5493     &ett_h450_CoReqOptArg,
5494     &ett_h450_RUAlertOptArg,
5495     &ett_h450_CfbOvrOptArg,
5496     &ett_h450_CIRequestArg,
5497     &ett_h450_CIRequestRes,
5498     &ett_h450_CIGetCIPLOptArg,
5499     &ett_h450_CIGetCIPLRes,
5500     &ett_h450_CIIsOptArg,
5501     &ett_h450_CIIsOptRes,
5502     &ett_h450_CIFrcRelArg,
5503     &ett_h450_CIFrcRelOptRes,
5504     &ett_h450_CIWobOptArg,
5505     &ett_h450_CIWobOptRes,
5506     &ett_h450_CISilentArg,
5507     &ett_h450_CISilentOptRes,
5508     &ett_h450_CINotificationArg,
5509     &ett_h450_CIStatusInformation,
5510     &ett_h450_CmnArg,
5511     &ett_h450_CmnRequestArg,
5512     &ett_h450_FeatureList,
5513     &ett_h450_FeatureValues,
5514     &ett_h450_FeatureControl,
5515     &ett_h450_Unspecified,
5516     &ett_h450_Extension,
5517
5518 /*--- End of included file: packet-h450-ettarr.c ---*/
5519 #line 1055 "packet-h450-template.c"
5520   };
5521
5522
5523   /* Register protocol */
5524   proto_h4501 = proto_register_protocol(PNAME, PSNAME, PFNAME);
5525   /* Register fields and subtrees */
5526   proto_register_field_array(proto_h4501, hf, array_length(hf));
5527   proto_register_subtree_array(ett, array_length(ett));
5528
5529  
5530   register_dissector("h4501", dissect_h4501, proto_h4501);
5531
5532
5533 }
5534
5535
5536 /*--- proto_reg_handoff_h4501 ---------------------------------------*/
5537 void
5538 proto_reg_handoff_h4501(void)
5539 {
5540
5541         h4501_handle = find_dissector("h4501");
5542
5543 }