Get rid of dissect_ber_boolean_value() and change the signature of
[obnox/wireshark/wip.git] / epan / dissectors / packet-gsm_map.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* packet-gsm_map.c                                                           */
4 /* ../../tools/asn2wrs.py -b -e -c gsmmap.cnf -s packet-gsmmap-template ../ros/Remote-Operations-Information-Objects.asn MobileDomainDefinitions.asn MAP-ApplicationContexts.asn MAP-SS-Code.asn MAP-BS-Code.asn MAP-TS-Code.asn MAP-ExtensionDataTypes.asn MAP-CommonDataTypes.asn MAP-SS-DataTypes.asn MAP-ER-DataTypes.asn MAP-SM-DataTypes.asn MAP-OM-DataTypes.asn MAP-MS-DataTypes.asn MAP-CH-DataTypes.asn MAP-LCS-DataTypes.asn MAP-GR-DataTypes.asn MAP-DialogueInformation.asn MAP-LocationServiceOperations.asn MAP-Group-Call-Operations.asn MAP-ShortMessageServiceOperations.asn MAP-SupplementaryServiceOperations.asn MAP-CallHandlingOperations.asn MAP-OperationAndMaintenanceOperations.asn MAP-MobileServiceOperations.asn MAP-Errors.asn MAP-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn */
5
6 /* Input file: packet-gsmmap-template.c */
7
8 #line 1 "packet-gsmmap-template.c"
9 /* packet-gsm_map-template.c
10  * Routines for GSM MobileApplication packet dissection
11  * including GSM SS.
12  * Copyright 2004 - 2007 , Anders Broman <anders.broman [AT] ericsson.com>
13  * Based on the dissector by:
14  * Felix Fei <felix.fei [AT] utstar.com>
15  * and Michael Lum <mlum [AT] telostech.com>
16  *
17  * $Id$
18  *
19  * Wireshark - Network traffic analyzer
20  * By Gerald Combs <gerald@wireshark.org>
21  * Copyright 1998 Gerald Combs
22  *
23  * This program is free software; you can redistribute it and/or
24  * modify it under the terms of the GNU General Public License
25  * as published by the Free Software Foundation; either version 2
26  * of the License, or (at your option) any later version.
27  *
28  * This program is distributed in the hope that it will be useful,
29  * but WITHOUT ANY WARRANTY; without even the implied warranty of
30  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
31  * GNU General Public License for more details.
32  *
33  * You should have received a copy of the GNU General Public License
34  * along with this program; if not, write to the Free Software
35  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
36  * References GSM MAP: 
37  * ETSI TS 129 002
38  * Updated to ETSI TS 129 002 V7.5.0 (3GPP TS 29.002 V7.5.0 (2006-09) Release 7)
39  * Updated to ETSI TS 129 002 V8.1.0 (3GPP TS 29.002 V8.1.0 (2007-06) Release 8)
40  * References GSM SS
41  * References: 3GPP TS 24.080
42  */
43
44 #ifdef HAVE_CONFIG_H
45 # include "config.h"
46 #endif
47
48 #include <glib.h>
49 #include <math.h>
50 #include <epan/packet.h>
51 #include <epan/prefs.h>
52 #include <epan/conversation.h>
53 #include <epan/tap.h>
54 #include <epan/emem.h>
55 #include <epan/oids.h>
56 #include "epan/expert.h"
57
58 #include <stdio.h>
59 #include <string.h>
60
61 #include <epan/asn1.h>
62 #include "packet-ber.h"
63 #include "packet-per.h"
64 #include "packet-q931.h"
65 #include "packet-gsm_map.h"
66 #include "packet-gsm_a.h"
67 #include "packet-tcap.h"
68 #include "packet-e164.h"
69 #include "packet-e212.h"
70 #include "packet-smpp.h"
71 #include "packet-gsm_sms.h"
72 #include "packet-ranap.h"
73
74 #define PNAME  "GSM Mobile Application"
75 #define PSNAME "GSM_MAP"
76 #define PFNAME "gsm_map"
77
78 /* Initialize the protocol and registered fields */
79 int proto_gsm_map = -1;
80 int proto_gsm_map_dialogue = -1;
81
82 static int hf_gsm_old_Component_PDU = -1;
83 static int hf_gsm_map_getPassword = -1;
84 static int hf_gsm_map_currentPassword = -1;
85 static int hf_gsm_map_extension = -1;
86 static int hf_gsm_map_nature_of_number = -1;
87 static int hf_gsm_map_number_plan = -1;
88 static int hf_gsm_map_isdn_address_digits = -1;
89 static int hf_gsm_map_address_digits = -1;
90 static int hf_gsm_map_servicecentreaddress_digits = -1;
91 static int hf_gsm_map_imsi_digits = -1;
92 static int hf_gsm_map_TBCD_digits = -1;
93 static int hf_gsm_map_Ss_Status_unused = -1;
94 static int hf_gsm_map_Ss_Status_q_bit = -1;
95 static int hf_gsm_map_Ss_Status_p_bit = -1;
96 static int hf_gsm_map_Ss_Status_r_bit = -1;
97 static int hf_gsm_map_Ss_Status_a_bit = -1;
98 static int hf_gsm_map_notification_to_forwarding_party = -1;
99 static int hf_gsm_map_redirecting_presentation = -1;
100 static int hf_gsm_map_notification_to_calling_party = -1;
101 static int hf_gsm_map_forwarding_reason = -1;
102 static int hf_gsm_map_pdp_type_org = -1;
103 static int hf_gsm_map_etsi_pdp_type_number = -1;
104 static int hf_gsm_map_ietf_pdp_type_number = -1;
105 static int hf_gsm_map_ext_qos_subscribed_pri = -1;
106
107 static int hf_gsm_map_qos_traffic_cls = -1;
108 static int hf_gsm_map_qos_del_order = -1;
109 static int hf_gsm_map_qos_del_of_err_sdu = -1;
110 static int hf_gsm_map_qos_ber = -1;
111 static int hf_gsm_map_qos_sdu_err_rat = -1;
112 static int hf_gsm_map_qos_traff_hdl_pri = -1;
113 static int hf_gsm_map_qos_max_sdu = -1;
114 static int hf_gsm_map_max_brate_ulink = -1;
115 static int hf_gsm_map_max_brate_dlink = -1;
116 static int hf_gsm_map_qos_transfer_delay = -1;
117 static int hf_gsm_map_guaranteed_max_brate_ulink = -1;
118 static int hf_gsm_map_guaranteed_max_brate_dlink = -1;
119 static int hf_gsm_map_GSNAddress_IPv4 = -1;
120 static int hf_gsm_map_GSNAddress_IPv6 = -1;
121 static int hf_geo_loc_type_of_shape = -1;
122 static int hf_geo_loc_sign_of_lat       = -1;
123 static int hf_geo_loc_deg_of_lat =-1;
124 static int hf_geo_loc_deg_of_long =-1;
125 static int hf_geo_loc_uncertainty_code = -1;
126 static int hf_geo_loc_uncertainty_semi_major = -1;
127 static int hf_geo_loc_uncertainty_semi_minor = -1;
128 static int hf_geo_loc_orientation_of_major_axis = -1;
129 static int hf_geo_loc_uncertainty_altitude = -1;
130 static int hf_geo_loc_confidence = -1;
131 static int hf_geo_loc_no_of_points = -1;
132 static int hf_geo_loc_D = -1;
133 static int hf_geo_loc_altitude = -1;
134 static int hf_geo_loc_inner_radius = -1;
135 static int hf_geo_loc_uncertainty_radius = -1;
136 static int hf_geo_loc_offset_angle = -1;
137 static int hf_geo_loc_included_angle = -1;
138 static int hf_gsm_map_ranap_service_Handover = -1;
139 static int hf_gsm_mapIntegrityProtectionInformation = -1;
140 static int hf_gsm_mapEncryptionInformation = -1;
141 static int hf_gsm_map_PlmnContainer_PDU = -1;
142 static int hf_gsm_ss_SS_UserData = -1;
143
144 /*--- Included file: packet-gsm_map-hf.c ---*/
145 #line 1 "packet-gsm_map-hf.c"
146
147 /* --- Module Remote-Operations-Information-Objects --- --- ---               */
148
149 static int hf_Remote_Operations_Information_Objects_local = -1;  /* INTEGER */
150 static int hf_Remote_Operations_Information_Objects_global = -1;  /* OBJECT_IDENTIFIER */
151
152 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
153
154 static int hf_gsm_map_privateExtensionList = -1;  /* PrivateExtensionList */
155 static int hf_gsm_map_pcs_Extensions = -1;        /* PCS_Extensions */
156 static int hf_gsm_map_slr_Arg_PCS_Extensions = -1;  /* SLR_Arg_PCS_Extensions */
157 static int hf_gsm_map_PrivateExtensionList_item = -1;  /* PrivateExtension */
158 static int hf_gsm_map_extId = -1;                 /* T_extId */
159 static int hf_gsm_map_extType = -1;               /* T_extType */
160 static int hf_gsm_map_na_ESRK_Request = -1;       /* NULL */
161
162 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
163
164 static int hf_gsm_map_protocolId = -1;            /* ProtocolId */
165 static int hf_gsm_map_signalInfo = -1;            /* SignalInfo */
166 static int hf_gsm_map_extensionContainer = -1;    /* ExtensionContainer */
167 static int hf_gsm_map_ext_ProtocolId = -1;        /* Ext_ProtocolId */
168 static int hf_gsm_map_accessNetworkProtocolId = -1;  /* AccessNetworkProtocolId */
169 static int hf_gsm_map_signalInfo_01 = -1;         /* LongSignalInfo */
170 static int hf_gsm_map_imsi = -1;                  /* IMSI */
171 static int hf_gsm_map_imsi_WithLMSI = -1;         /* IMSI_WithLMSI */
172 static int hf_gsm_map_lmsi = -1;                  /* LMSI */
173 static int hf_gsm_map_tmsi = -1;                  /* TMSI */
174 static int hf_gsm_map_HLR_List_item = -1;         /* HLR_Id */
175 static int hf_gsm_map_naea_PreferredCIC = -1;     /* NAEA_CIC */
176 static int hf_gsm_map_msisdn = -1;                /* ISDN_AddressString */
177 static int hf_gsm_map_externalAddress = -1;       /* ISDN_AddressString */
178 static int hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength = -1;  /* CellGlobalIdOrServiceAreaIdFixedLength */
179 static int hf_gsm_map_laiFixedLength = -1;        /* LAIFixedLength */
180 static int hf_gsm_map_bearerService = -1;         /* BearerServiceCode */
181 static int hf_gsm_map_teleservice = -1;           /* TeleserviceCode */
182 static int hf_gsm_map_ext_BearerService = -1;     /* Ext_BearerServiceCode */
183 static int hf_gsm_map_ext_Teleservice = -1;       /* Ext_TeleserviceCode */
184 static int hf_gsm_map_maximumentitledPriority = -1;  /* EMLPP_Priority */
185 static int hf_gsm_map_defaultPriority = -1;       /* EMLPP_Priority */
186 static int hf_gsm_map_ss_Code = -1;               /* SS_Code */
187 static int hf_gsm_map_ss_Status = -1;             /* Ext_SS_Status */
188 static int hf_gsm_map_nbrSB = -1;                 /* MaxMC_Bearers */
189 static int hf_gsm_map_nbrUser = -1;               /* MC_Bearers */
190
191 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
192
193 static int hf_gsm_map_ss_ss_Code = -1;            /* SS_Code */
194 static int hf_gsm_map_ss_basicService = -1;       /* BasicServiceCode */
195 static int hf_gsm_map_ss_forwardedToNumber = -1;  /* AddressString */
196 static int hf_gsm_map_ss_forwardedToSubaddress = -1;  /* ISDN_SubaddressString */
197 static int hf_gsm_map_ss_noReplyConditionTime = -1;  /* NoReplyConditionTime */
198 static int hf_gsm_map_ss_defaultPriority = -1;    /* EMLPP_Priority */
199 static int hf_gsm_map_ss_nbrUser = -1;            /* MC_Bearers */
200 static int hf_gsm_map_ss_longFTN_Supported = -1;  /* NULL */
201 static int hf_gsm_map_ss_forwardingInfo = -1;     /* ForwardingInfo */
202 static int hf_gsm_map_ss_callBarringInfo = -1;    /* CallBarringInfo */
203 static int hf_gsm_map_ss_ss_Data = -1;            /* SS_Data */
204 static int hf_gsm_map_ss_forwardingFeatureList = -1;  /* ForwardingFeatureList */
205 static int hf_gsm_map_ss_ForwardingFeatureList_item = -1;  /* ForwardingFeature */
206 static int hf_gsm_map_ss_ss_Status = -1;          /* SS_Status */
207 static int hf_gsm_map_ss_forwardedToNumber_01 = -1;  /* ISDN_AddressString */
208 static int hf_gsm_map_ss_forwardingOptions = -1;  /* ForwardingOptions */
209 static int hf_gsm_map_ss_longForwardedToNumber = -1;  /* FTN_AddressString */
210 static int hf_gsm_map_ss_callBarringFeatureList = -1;  /* CallBarringFeatureList */
211 static int hf_gsm_map_ss_CallBarringFeatureList_item = -1;  /* CallBarringFeature */
212 static int hf_gsm_map_ss_ss_SubscriptionOption = -1;  /* SS_SubscriptionOption */
213 static int hf_gsm_map_ss_basicServiceGroupList = -1;  /* BasicServiceGroupList */
214 static int hf_gsm_map_ss_cliRestrictionOption = -1;  /* CliRestrictionOption */
215 static int hf_gsm_map_ss_overrideCategory = -1;   /* OverrideCategory */
216 static int hf_gsm_map_ss_maximumEntitledPriority = -1;  /* EMLPP_Priority */
217 static int hf_gsm_map_ss_ccbs_FeatureList = -1;   /* CCBS_FeatureList */
218 static int hf_gsm_map_ss_nbrSB = -1;              /* MaxMC_Bearers */
219 static int hf_gsm_map_ss_nbrSN = -1;              /* MC_Bearers */
220 static int hf_gsm_map_ss_CCBS_FeatureList_item = -1;  /* CCBS_Feature */
221 static int hf_gsm_map_ss_ccbs_Index = -1;         /* CCBS_Index */
222 static int hf_gsm_map_ss_b_subscriberNumber = -1;  /* ISDN_AddressString */
223 static int hf_gsm_map_ss_b_subscriberSubaddress = -1;  /* ISDN_SubaddressString */
224 static int hf_gsm_map_ss_basicServiceGroup = -1;  /* BasicServiceCode */
225 static int hf_gsm_map_ss_genericServiceInfo = -1;  /* GenericServiceInfo */
226 static int hf_gsm_map_ss_ussd_DataCodingScheme = -1;  /* USSD_DataCodingScheme */
227 static int hf_gsm_map_ss_ussd_String = -1;        /* USSD_String */
228 static int hf_gsm_map_ss_alertingPattern = -1;    /* AlertingPattern */
229 static int hf_gsm_map_ss_msisdn = -1;             /* ISDN_AddressString */
230 static int hf_gsm_map_ss_SS_List_item = -1;       /* SS_Code */
231 static int hf_gsm_map_ss_SS_InfoList_item = -1;   /* SS_Info */
232 static int hf_gsm_map_ss_BasicServiceGroupList_item = -1;  /* BasicServiceCode */
233 static int hf_gsm_map_ss_imsi = -1;               /* IMSI */
234 static int hf_gsm_map_ss_ss_Event = -1;           /* SS_Code */
235 static int hf_gsm_map_ss_ss_EventSpecification = -1;  /* SS_EventSpecification */
236 static int hf_gsm_map_ss_extensionContainer = -1;  /* ExtensionContainer */
237 static int hf_gsm_map_ss_ccbs_RequestState = -1;  /* CCBS_RequestState */
238 static int hf_gsm_map_ss_SS_EventSpecification_item = -1;  /* AddressString */
239 static int hf_gsm_map_ss_ccbs_Data = -1;          /* CCBS_Data */
240 static int hf_gsm_map_ss_ccbs_Feature = -1;       /* CCBS_Feature */
241 static int hf_gsm_map_ss_translatedB_Number = -1;  /* ISDN_AddressString */
242 static int hf_gsm_map_ss_serviceIndicator = -1;   /* ServiceIndicator */
243 static int hf_gsm_map_ss_callInfo = -1;           /* ExternalSignalInfo */
244 static int hf_gsm_map_ss_networkSignalInfo = -1;  /* ExternalSignalInfo */
245 /* named bits */
246 static int hf_gsm_map_ss_ServiceIndicator_clir_invoked = -1;
247 static int hf_gsm_map_ss_ServiceIndicator_camel_invoked = -1;
248
249 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
250
251 static int hf_gsm_map_er_roamingNotAllowedCause = -1;  /* RoamingNotAllowedCause */
252 static int hf_gsm_map_er_extensionContainer = -1;  /* ExtensionContainer */
253 static int hf_gsm_map_er_additionalRoamingNotAllowedCause = -1;  /* AdditionalRoamingNotAllowedCause */
254 static int hf_gsm_map_er_callBarringCause = -1;   /* CallBarringCause */
255 static int hf_gsm_map_er_extensibleCallBarredParam = -1;  /* ExtensibleCallBarredParam */
256 static int hf_gsm_map_er_unauthorisedMessageOriginator = -1;  /* NULL */
257 static int hf_gsm_map_er_cug_RejectCause = -1;    /* CUG_RejectCause */
258 static int hf_gsm_map_er_ss_Code = -1;            /* SS_Code */
259 static int hf_gsm_map_er_basicService = -1;       /* BasicServiceCode */
260 static int hf_gsm_map_er_ss_Status = -1;          /* SS_Status */
261 static int hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause = -1;  /* SM_EnumeratedDeliveryFailureCause */
262 static int hf_gsm_map_er_diagnosticInfo = -1;     /* SignalInfo */
263 static int hf_gsm_map_er_absentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
264 static int hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
265 static int hf_gsm_map_er_networkResource = -1;    /* NetworkResource */
266 static int hf_gsm_map_er_extensibleSystemFailureParam = -1;  /* ExtensibleSystemFailureParam */
267 static int hf_gsm_map_er_additionalNetworkResource = -1;  /* AdditionalNetworkResource */
268 static int hf_gsm_map_er_shapeOfLocationEstimateNotSupported = -1;  /* NULL */
269 static int hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode = -1;  /* NULL */
270 static int hf_gsm_map_er_unknownSubscriberDiagnostic = -1;  /* UnknownSubscriberDiagnostic */
271 static int hf_gsm_map_er_absentSubscriberReason = -1;  /* AbsentSubscriberReason */
272 static int hf_gsm_map_er_ccbs_Possible = -1;      /* NULL */
273 static int hf_gsm_map_er_ccbs_Busy = -1;          /* NULL */
274 static int hf_gsm_map_er_gprsConnectionSuspended = -1;  /* NULL */
275 static int hf_gsm_map_er_unauthorizedLCSClient_Diagnostic = -1;  /* UnauthorizedLCSClient_Diagnostic */
276 static int hf_gsm_map_er_positionMethodFailure_Diagnostic = -1;  /* PositionMethodFailure_Diagnostic */
277
278 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
279
280 static int hf_gsm_map_sm_msisdn = -1;             /* ISDN_AddressString */
281 static int hf_gsm_map_sm_sm_RP_PRI = -1;          /* BOOLEAN */
282 static int hf_gsm_map_sm_serviceCentreAddress = -1;  /* AddressString */
283 static int hf_gsm_map_sm_extensionContainer = -1;  /* ExtensionContainer */
284 static int hf_gsm_map_sm_gprsSupportIndicator = -1;  /* NULL */
285 static int hf_gsm_map_sm_sm_RP_MTI = -1;          /* SM_RP_MTI */
286 static int hf_gsm_map_sm_sm_RP_SMEA = -1;         /* SM_RP_SMEA */
287 static int hf_gsm_map_sm_imsi = -1;               /* IMSI */
288 static int hf_gsm_map_sm_locationInfoWithLMSI = -1;  /* LocationInfoWithLMSI */
289 static int hf_gsm_map_sm_networkNode_Number = -1;  /* ISDN_AddressString */
290 static int hf_gsm_map_sm_lmsi = -1;               /* LMSI */
291 static int hf_gsm_map_sm_gprsNodeIndicator = -1;  /* NULL */
292 static int hf_gsm_map_sm_additional_Number = -1;  /* Additional_Number */
293 static int hf_gsm_map_sm_msc_Number = -1;         /* ISDN_AddressString */
294 static int hf_gsm_map_sm_sgsn_Number = -1;        /* ISDN_AddressString */
295 static int hf_gsm_map_sm_sm_RP_DA = -1;           /* SM_RP_DA */
296 static int hf_gsm_map_sm_sm_RP_OA = -1;           /* SM_RP_OA */
297 static int hf_gsm_map_sm_sm_RP_UI = -1;           /* SignalInfo */
298 static int hf_gsm_map_sm_moreMessagesToSend = -1;  /* NULL */
299 static int hf_gsm_map_sm_serviceCentreAddressDA = -1;  /* AddressString */
300 static int hf_gsm_map_sm_noSM_RP_DA = -1;         /* NULL */
301 static int hf_gsm_map_sm_msisdn_01 = -1;          /* T_msisdn */
302 static int hf_gsm_map_sm_serviceCentreAddressOA = -1;  /* T_serviceCentreAddressOA */
303 static int hf_gsm_map_sm_noSM_RP_OA = -1;         /* NULL */
304 static int hf_gsm_map_sm_sm_DeliveryOutcome = -1;  /* SM_DeliveryOutcome */
305 static int hf_gsm_map_sm_absentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
306 static int hf_gsm_map_sm_deliveryOutcomeIndicator = -1;  /* NULL */
307 static int hf_gsm_map_sm_additionalSM_DeliveryOutcome = -1;  /* SM_DeliveryOutcome */
308 static int hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
309 static int hf_gsm_map_sm_storedMSISDN = -1;       /* ISDN_AddressString */
310 static int hf_gsm_map_sm_mw_Status = -1;          /* MW_Status */
311 static int hf_gsm_map_sm_alertReason = -1;        /* AlertReason */
312 static int hf_gsm_map_sm_alertReasonIndicator = -1;  /* NULL */
313 static int hf_gsm_map_sm_asciCallReference = -1;  /* ASCI_CallReference */
314 static int hf_gsm_map_sm_dispatcherList = -1;     /* DispatcherList */
315 static int hf_gsm_map_sm_ongoingCall = -1;        /* NULL */
316 static int hf_gsm_map_sm_DispatcherList_item = -1;  /* ISDN_AddressString */
317 /* named bits */
318 static int hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded = -1;
319 static int hf_gsm_map_sm_MW_Status_mnrf_Set = -1;
320 static int hf_gsm_map_sm_MW_Status_mcef_Set = -1;
321 static int hf_gsm_map_sm_MW_Status_mnrg_Set = -1;
322
323 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
324
325 static int hf_gsm_map_om_imsi = -1;               /* IMSI */
326 static int hf_gsm_map_om_traceReference = -1;     /* TraceReference */
327 static int hf_gsm_map_om_traceType = -1;          /* TraceType */
328 static int hf_gsm_map_om_omc_Id = -1;             /* AddressString */
329 static int hf_gsm_map_om_extensionContainer = -1;  /* ExtensionContainer */
330 static int hf_gsm_map_om_traceReference2 = -1;    /* TraceReference2 */
331 static int hf_gsm_map_om_traceDepthList = -1;     /* TraceDepthList */
332 static int hf_gsm_map_om_traceNE_TypeList = -1;   /* TraceNE_TypeList */
333 static int hf_gsm_map_om_traceInterfaceList = -1;  /* TraceInterfaceList */
334 static int hf_gsm_map_om_traceEventList = -1;     /* TraceEventList */
335 static int hf_gsm_map_om_msc_s_TraceDepth = -1;   /* TraceDepth */
336 static int hf_gsm_map_om_mgw_TraceDepth = -1;     /* TraceDepth */
337 static int hf_gsm_map_om_sgsn_TraceDepth = -1;    /* TraceDepth */
338 static int hf_gsm_map_om_ggsn_TraceDepth = -1;    /* TraceDepth */
339 static int hf_gsm_map_om_rnc_TraceDepth = -1;     /* TraceDepth */
340 static int hf_gsm_map_om_bmsc_TraceDepth = -1;    /* TraceDepth */
341 static int hf_gsm_map_om_msc_s_List = -1;         /* MSC_S_InterfaceList */
342 static int hf_gsm_map_om_mgw_List = -1;           /* MGW_InterfaceList */
343 static int hf_gsm_map_om_sgsn_List = -1;          /* SGSN_InterfaceList */
344 static int hf_gsm_map_om_ggsn_List = -1;          /* GGSN_InterfaceList */
345 static int hf_gsm_map_om_rnc_List = -1;           /* RNC_InterfaceList */
346 static int hf_gsm_map_om_bmsc_List = -1;          /* BMSC_InterfaceList */
347 static int hf_gsm_map_om_msc_s_List_01 = -1;      /* MSC_S_EventList */
348 static int hf_gsm_map_om_mgw_List_01 = -1;        /* MGW_EventList */
349 static int hf_gsm_map_om_sgsn_List_01 = -1;       /* SGSN_EventList */
350 static int hf_gsm_map_om_ggsn_List_01 = -1;       /* GGSN_EventList */
351 static int hf_gsm_map_om_bmsc_List_01 = -1;       /* BMSC_EventList */
352 static int hf_gsm_map_om_traceRecordingSessionReference = -1;  /* TraceRecordingSessionReference */
353 static int hf_gsm_map_om_rnc_InterfaceList = -1;  /* RNC_InterfaceList */
354 static int hf_gsm_map_om_msc_s_InterfaceList = -1;  /* MSC_S_InterfaceList */
355 static int hf_gsm_map_om_msc_s_EventList = -1;    /* MSC_S_EventList */
356 static int hf_gsm_map_om_mgw_InterfaceList = -1;  /* MGW_InterfaceList */
357 static int hf_gsm_map_om_mgw_EventList = -1;      /* MGW_EventList */
358 static int hf_gsm_map_om_traceSupportIndicator = -1;  /* NULL */
359 /* named bits */
360 static int hf_gsm_map_om_TraceNE_TypeList_msc_s = -1;
361 static int hf_gsm_map_om_TraceNE_TypeList_mgw = -1;
362 static int hf_gsm_map_om_TraceNE_TypeList_sgsn = -1;
363 static int hf_gsm_map_om_TraceNE_TypeList_ggsn = -1;
364 static int hf_gsm_map_om_TraceNE_TypeList_rnc = -1;
365 static int hf_gsm_map_om_TraceNE_TypeList_bm_sc = -1;
366 static int hf_gsm_map_om_MSC_S_InterfaceList_a = -1;
367 static int hf_gsm_map_om_MSC_S_InterfaceList_iu = -1;
368 static int hf_gsm_map_om_MSC_S_InterfaceList_mc = -1;
369 static int hf_gsm_map_om_MSC_S_InterfaceList_map_g = -1;
370 static int hf_gsm_map_om_MSC_S_InterfaceList_map_b = -1;
371 static int hf_gsm_map_om_MSC_S_InterfaceList_map_e = -1;
372 static int hf_gsm_map_om_MSC_S_InterfaceList_map_f = -1;
373 static int hf_gsm_map_om_MSC_S_InterfaceList_cap = -1;
374 static int hf_gsm_map_om_MSC_S_InterfaceList_map_d = -1;
375 static int hf_gsm_map_om_MSC_S_InterfaceList_map_c = -1;
376 static int hf_gsm_map_om_MGW_InterfaceList_mc = -1;
377 static int hf_gsm_map_om_MGW_InterfaceList_nb_up = -1;
378 static int hf_gsm_map_om_MGW_InterfaceList_iu_up = -1;
379 static int hf_gsm_map_om_SGSN_InterfaceList_gb = -1;
380 static int hf_gsm_map_om_SGSN_InterfaceList_iu = -1;
381 static int hf_gsm_map_om_SGSN_InterfaceList_gn = -1;
382 static int hf_gsm_map_om_SGSN_InterfaceList_map_gr = -1;
383 static int hf_gsm_map_om_SGSN_InterfaceList_map_gd = -1;
384 static int hf_gsm_map_om_SGSN_InterfaceList_map_gf = -1;
385 static int hf_gsm_map_om_SGSN_InterfaceList_gs = -1;
386 static int hf_gsm_map_om_SGSN_InterfaceList_ge = -1;
387 static int hf_gsm_map_om_GGSN_InterfaceList_gn = -1;
388 static int hf_gsm_map_om_GGSN_InterfaceList_gi = -1;
389 static int hf_gsm_map_om_GGSN_InterfaceList_gmb = -1;
390 static int hf_gsm_map_om_RNC_InterfaceList_iu = -1;
391 static int hf_gsm_map_om_RNC_InterfaceList_iur = -1;
392 static int hf_gsm_map_om_RNC_InterfaceList_iub = -1;
393 static int hf_gsm_map_om_RNC_InterfaceList_uu = -1;
394 static int hf_gsm_map_om_BMSC_InterfaceList_gmb = -1;
395 static int hf_gsm_map_om_MSC_S_EventList_mo_mtCall = -1;
396 static int hf_gsm_map_om_MSC_S_EventList_mo_mt_sms = -1;
397 static int hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach = -1;
398 static int hf_gsm_map_om_MSC_S_EventList_handovers = -1;
399 static int hf_gsm_map_om_MSC_S_EventList_ss = -1;
400 static int hf_gsm_map_om_MGW_EventList_context = -1;
401 static int hf_gsm_map_om_SGSN_EventList_pdpContext = -1;
402 static int hf_gsm_map_om_SGSN_EventList_mo_mt_sms = -1;
403 static int hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach = -1;
404 static int hf_gsm_map_om_SGSN_EventList_mbmsContext = -1;
405 static int hf_gsm_map_om_GGSN_EventList_pdpContext = -1;
406 static int hf_gsm_map_om_GGSN_EventList_mbmsContext = -1;
407 static int hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation = -1;
408
409 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
410
411 static int hf_gsm_map_ms_imsi = -1;               /* IMSI */
412 static int hf_gsm_map_ms_msc_Number = -1;         /* ISDN_AddressString */
413 static int hf_gsm_map_ms_vlr_Number = -1;         /* ISDN_AddressString */
414 static int hf_gsm_map_ms_lmsi = -1;               /* LMSI */
415 static int hf_gsm_map_ms_extensionContainer = -1;  /* ExtensionContainer */
416 static int hf_gsm_map_ms_vlr_Capability = -1;     /* VLR_Capability */
417 static int hf_gsm_map_ms_informPreviousNetworkEntity = -1;  /* NULL */
418 static int hf_gsm_map_ms_cs_LCS_NotSupportedByUE = -1;  /* NULL */
419 static int hf_gsm_map_ms_v_gmlc_Address = -1;     /* GSN_Address */
420 static int hf_gsm_map_ms_add_info = -1;           /* ADD_Info */
421 static int hf_gsm_map_ms_supportedCamelPhases = -1;  /* SupportedCamelPhases */
422 static int hf_gsm_map_ms_solsaSupportIndicator = -1;  /* NULL */
423 static int hf_gsm_map_ms_istSupportIndicator = -1;  /* IST_SupportIndicator */
424 static int hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity = -1;  /* SuperChargerInfo */
425 static int hf_gsm_map_ms_longFTN_Supported = -1;  /* NULL */
426 static int hf_gsm_map_ms_supportedLCS_CapabilitySets = -1;  /* SupportedLCS_CapabilitySets */
427 static int hf_gsm_map_ms_offeredCamel4CSIs = -1;  /* OfferedCamel4CSIs */
428 static int hf_gsm_map_ms_supportedRAT_TypesIndicator = -1;  /* SupportedRAT_Types */
429 static int hf_gsm_map_ms_longGroupID_Supported = -1;  /* NULL */
430 static int hf_gsm_map_ms_sendSubscriberData = -1;  /* NULL */
431 static int hf_gsm_map_ms_subscriberDataStored = -1;  /* AgeIndicator */
432 static int hf_gsm_map_ms_hlr_Number = -1;         /* ISDN_AddressString */
433 static int hf_gsm_map_ms_add_Capability = -1;     /* NULL */
434 static int hf_gsm_map_ms_imeisv = -1;             /* IMEI */
435 static int hf_gsm_map_ms_skipSubscriberDataUpdate = -1;  /* NULL */
436 static int hf_gsm_map_ms_identity = -1;           /* Identity */
437 static int hf_gsm_map_ms_cancellationType = -1;   /* CancellationType */
438 static int hf_gsm_map_ms_sgsn_Number = -1;        /* ISDN_AddressString */
439 static int hf_gsm_map_ms_freezeTMSI = -1;         /* NULL */
440 static int hf_gsm_map_ms_freezeP_TMSI = -1;       /* NULL */
441 static int hf_gsm_map_ms_tmsi = -1;               /* TMSI */
442 static int hf_gsm_map_ms_numberOfRequestedVectors = -1;  /* NumberOfRequestedVectors */
443 static int hf_gsm_map_ms_segmentationProhibited = -1;  /* NULL */
444 static int hf_gsm_map_ms_previous_LAI = -1;       /* LAIFixedLength */
445 static int hf_gsm_map_ms_hopCounter = -1;         /* HopCounter */
446 static int hf_gsm_map_ms_authenticationSetList = -1;  /* AuthenticationSetList */
447 static int hf_gsm_map_ms_currentSecurityContext = -1;  /* CurrentSecurityContext */
448 static int hf_gsm_map_ms_tripletList = -1;        /* TripletList */
449 static int hf_gsm_map_ms_quintupletList = -1;     /* QuintupletList */
450 static int hf_gsm_map_ms_TripletList_item = -1;   /* AuthenticationTriplet */
451 static int hf_gsm_map_ms_QuintupletList_item = -1;  /* AuthenticationQuintuplet */
452 static int hf_gsm_map_ms_rand = -1;               /* RAND */
453 static int hf_gsm_map_ms_sres = -1;               /* SRES */
454 static int hf_gsm_map_ms_kc = -1;                 /* Kc */
455 static int hf_gsm_map_ms_xres = -1;               /* XRES */
456 static int hf_gsm_map_ms_ck = -1;                 /* CK */
457 static int hf_gsm_map_ms_ik = -1;                 /* IK */
458 static int hf_gsm_map_ms_autn = -1;               /* AUTN */
459 static int hf_gsm_map_ms_gsm_SecurityContextData = -1;  /* GSM_SecurityContextData */
460 static int hf_gsm_map_ms_umts_SecurityContextData = -1;  /* UMTS_SecurityContextData */
461 static int hf_gsm_map_ms_cksn = -1;               /* Cksn */
462 static int hf_gsm_map_ms_ksi = -1;                /* KSI */
463 static int hf_gsm_map_ms_failureCause = -1;       /* FailureCause */
464 static int hf_gsm_map_ms_re_attempt = -1;         /* BOOLEAN */
465 static int hf_gsm_map_ms_accessType = -1;         /* AccessType */
466 static int hf_gsm_map_ms_sgsn_Address = -1;       /* GSN_Address */
467 static int hf_gsm_map_ms_sgsn_Capability = -1;    /* SGSN_Capability */
468 static int hf_gsm_map_ms_ps_LCS_NotSupportedByUE = -1;  /* NULL */
469 static int hf_gsm_map_ms_gprsEnhancementsSupportIndicator = -1;  /* NULL */
470 static int hf_gsm_map_ms_smsCallBarringSupportIndicator = -1;  /* NULL */
471 static int hf_gsm_map_ms_an_APDU = -1;            /* AccessNetworkSignalInfo */
472 static int hf_gsm_map_ms_integrityProtectionInfo = -1;  /* IntegrityProtectionInformation */
473 static int hf_gsm_map_ms_encryptionInfo = -1;     /* EncryptionInformation */
474 static int hf_gsm_map_ms_keyStatus = -1;          /* KeyStatus */
475 static int hf_gsm_map_ms_allowedGSM_Algorithms = -1;  /* AllowedGSM_Algorithms */
476 static int hf_gsm_map_ms_allowedUMTS_Algorithms = -1;  /* AllowedUMTS_Algorithms */
477 static int hf_gsm_map_ms_radioResourceInformation = -1;  /* RadioResourceInformation */
478 static int hf_gsm_map_ms_radioResourceList = -1;  /* RadioResourceList */
479 static int hf_gsm_map_ms_bssmap_ServiceHandover = -1;  /* BSSMAP_ServiceHandover */
480 static int hf_gsm_map_ms_ranap_ServiceHandover = -1;  /* RANAP_ServiceHandover */
481 static int hf_gsm_map_ms_bssmap_ServiceHandoverList = -1;  /* BSSMAP_ServiceHandoverList */
482 static int hf_gsm_map_ms_currentlyUsedCodec = -1;  /* Codec */
483 static int hf_gsm_map_ms_iuSupportedCodecsList = -1;  /* SupportedCodecsList */
484 static int hf_gsm_map_ms_rab_ConfigurationIndicator = -1;  /* NULL */
485 static int hf_gsm_map_ms_iuSelectedCodec = -1;    /* Codec */
486 static int hf_gsm_map_ms_alternativeChannelType = -1;  /* RadioResourceInformation */
487 static int hf_gsm_map_ms_tracePropagationList = -1;  /* TracePropagationList */
488 static int hf_gsm_map_ms_integrityProtectionAlgorithms = -1;  /* PermittedIntegrityProtectionAlgorithms */
489 static int hf_gsm_map_ms_encryptionAlgorithms = -1;  /* PermittedEncryptionAlgorithms */
490 static int hf_gsm_map_ms_targetCellId = -1;       /* GlobalCellId */
491 static int hf_gsm_map_ms_ho_NumberNotRequired = -1;  /* NULL */
492 static int hf_gsm_map_ms_targetRNCId = -1;        /* RNCId */
493 static int hf_gsm_map_ms_multipleBearerRequested = -1;  /* NULL */
494 static int hf_gsm_map_ms_rab_Id = -1;             /* RAB_Id */
495 static int hf_gsm_map_ms_asciCallReference = -1;  /* ASCI_CallReference */
496 static int hf_gsm_map_ms_geran_classmark = -1;    /* GERAN_Classmark */
497 static int hf_gsm_map_ms_iuCurrentlyUsedCodec = -1;  /* Codec */
498 static int hf_gsm_map_ms_uesbi_Iu = -1;           /* UESBI_Iu */
499 static int hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item = -1;  /* BSSMAP_ServiceHandoverInfo */
500 static int hf_gsm_map_ms_RadioResourceList_item = -1;  /* RadioResource */
501 static int hf_gsm_map_ms_handoverNumber = -1;     /* ISDN_AddressString */
502 static int hf_gsm_map_ms_relocationNumberList = -1;  /* RelocationNumberList */
503 static int hf_gsm_map_ms_multicallBearerInfo = -1;  /* MulticallBearerInfo */
504 static int hf_gsm_map_ms_multipleBearerNotSupported = -1;  /* NULL */
505 static int hf_gsm_map_ms_selectedUMTS_Algorithms = -1;  /* SelectedUMTS_Algorithms */
506 static int hf_gsm_map_ms_chosenRadioResourceInformation = -1;  /* ChosenRadioResourceInformation */
507 static int hf_gsm_map_ms_iuAvailableCodecsList = -1;  /* CodecList */
508 static int hf_gsm_map_ms_integrityProtectionAlgorithm = -1;  /* ChosenIntegrityProtectionAlgorithm */
509 static int hf_gsm_map_ms_encryptionAlgorithm = -1;  /* ChosenEncryptionAlgorithm */
510 static int hf_gsm_map_ms_chosenChannelInfo = -1;  /* ChosenChannelInfo */
511 static int hf_gsm_map_ms_chosenSpeechVersion = -1;  /* ChosenSpeechVersion */
512 static int hf_gsm_map_ms_targetMSC_Number = -1;   /* ISDN_AddressString */
513 static int hf_gsm_map_ms_selectedRab_Id = -1;     /* RAB_Id */
514 static int hf_gsm_map_ms_selectedGSM_Algorithm = -1;  /* SelectedGSM_Algorithm */
515 static int hf_gsm_map_ms_iUSelectedCodec = -1;    /* Codec */
516 static int hf_gsm_map_ms_utranCodecList = -1;     /* CodecList */
517 static int hf_gsm_map_ms_geranCodecList = -1;     /* CodecList */
518 static int hf_gsm_map_ms_codec1 = -1;             /* Codec */
519 static int hf_gsm_map_ms_codec2 = -1;             /* Codec */
520 static int hf_gsm_map_ms_codec3 = -1;             /* Codec */
521 static int hf_gsm_map_ms_codec4 = -1;             /* Codec */
522 static int hf_gsm_map_ms_codec5 = -1;             /* Codec */
523 static int hf_gsm_map_ms_codec6 = -1;             /* Codec */
524 static int hf_gsm_map_ms_codec7 = -1;             /* Codec */
525 static int hf_gsm_map_ms_codec8 = -1;             /* Codec */
526 static int hf_gsm_map_ms_RelocationNumberList_item = -1;  /* RelocationNumber */
527 static int hf_gsm_map_ms_immediateResponsePreferred = -1;  /* NULL */
528 static int hf_gsm_map_ms_re_synchronisationInfo = -1;  /* Re_synchronisationInfo */
529 static int hf_gsm_map_ms_requestingNodeType = -1;  /* RequestingNodeType */
530 static int hf_gsm_map_ms_requestingPLMN_Id = -1;  /* PLMN_Id */
531 static int hf_gsm_map_ms_auts = -1;               /* AUTS */
532 static int hf_gsm_map_ms_imei = -1;               /* IMEI */
533 static int hf_gsm_map_ms_requestedEquipmentInfo = -1;  /* RequestedEquipmentInfo */
534 static int hf_gsm_map_ms_equipmentStatus = -1;    /* EquipmentStatus */
535 static int hf_gsm_map_ms_bmuef = -1;              /* UESBI_Iu */
536 static int hf_gsm_map_ms_uesbi_IuA = -1;          /* UESBI_IuA */
537 static int hf_gsm_map_ms_uesbi_IuB = -1;          /* UESBI_IuB */
538 static int hf_gsm_map_ms_gmlc_List = -1;          /* GMLC_List */
539 static int hf_gsm_map_ms_lcs_PrivacyExceptionList = -1;  /* LCS_PrivacyExceptionList */
540 static int hf_gsm_map_ms_molr_List = -1;          /* MOLR_List */
541 static int hf_gsm_map_ms_add_lcs_PrivacyExceptionList = -1;  /* LCS_PrivacyExceptionList */
542 static int hf_gsm_map_ms_GMLC_List_item = -1;     /* ISDN_AddressString */
543 static int hf_gsm_map_ms_GPRSDataList_item = -1;  /* PDP_Context */
544 static int hf_gsm_map_ms_pdp_ContextId = -1;      /* ContextId */
545 static int hf_gsm_map_ms_pdp_Type = -1;           /* PDP_Type */
546 static int hf_gsm_map_ms_pdp_Address = -1;        /* PDP_Address */
547 static int hf_gsm_map_ms_qos_Subscribed = -1;     /* QoS_Subscribed */
548 static int hf_gsm_map_ms_vplmnAddressAllowed = -1;  /* NULL */
549 static int hf_gsm_map_ms_apn = -1;                /* APN */
550 static int hf_gsm_map_ms_ext_QoS_Subscribed = -1;  /* Ext_QoS_Subscribed */
551 static int hf_gsm_map_ms_pdp_ChargingCharacteristics = -1;  /* ChargingCharacteristics */
552 static int hf_gsm_map_ms_ext2_QoS_Subscribed = -1;  /* Ext2_QoS_Subscribed */
553 static int hf_gsm_map_ms_completeDataListIncluded = -1;  /* NULL */
554 static int hf_gsm_map_ms_gprsDataList = -1;       /* GPRSDataList */
555 static int hf_gsm_map_ms_gprs_CSI = -1;           /* GPRS_CSI */
556 static int hf_gsm_map_ms_mo_sms_CSI = -1;         /* SMS_CSI */
557 static int hf_gsm_map_ms_mt_sms_CSI = -1;         /* SMS_CSI */
558 static int hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList = -1;  /* MT_smsCAMELTDP_CriteriaList */
559 static int hf_gsm_map_ms_mg_csi = -1;             /* MG_CSI */
560 static int hf_gsm_map_ms_gprs_CamelTDPDataList = -1;  /* GPRS_CamelTDPDataList */
561 static int hf_gsm_map_ms_camelCapabilityHandling = -1;  /* CamelCapabilityHandling */
562 static int hf_gsm_map_ms_notificationToCSE = -1;  /* NULL */
563 static int hf_gsm_map_ms_csi_Active = -1;         /* NULL */
564 static int hf_gsm_map_ms_GPRS_CamelTDPDataList_item = -1;  /* GPRS_CamelTDPData */
565 static int hf_gsm_map_ms_gprs_TriggerDetectionPoint = -1;  /* GPRS_TriggerDetectionPoint */
566 static int hf_gsm_map_ms_serviceKey = -1;         /* ServiceKey */
567 static int hf_gsm_map_ms_gsmSCF_Address = -1;     /* ISDN_AddressString */
568 static int hf_gsm_map_ms_defaultSessionHandling = -1;  /* DefaultGPRS_Handling */
569 static int hf_gsm_map_ms_LSADataList_item = -1;   /* LSAData */
570 static int hf_gsm_map_ms_lsaIdentity = -1;        /* LSAIdentity */
571 static int hf_gsm_map_ms_lsaAttributes = -1;      /* LSAAttributes */
572 static int hf_gsm_map_ms_lsaActiveModeIndicator = -1;  /* NULL */
573 static int hf_gsm_map_ms_lsaOnlyAccessIndicator = -1;  /* LSAOnlyAccessIndicator */
574 static int hf_gsm_map_ms_lsaDataList = -1;        /* LSADataList */
575 static int hf_gsm_map_ms_msisdn = -1;             /* ISDN_AddressString */
576 static int hf_gsm_map_ms_category = -1;           /* Category */
577 static int hf_gsm_map_ms_subscriberStatus = -1;   /* SubscriberStatus */
578 static int hf_gsm_map_ms_bearerServiceList = -1;  /* BearerServiceList */
579 static int hf_gsm_map_ms_teleserviceList = -1;    /* TeleserviceList */
580 static int hf_gsm_map_ms_provisionedSS = -1;      /* Ext_SS_InfoList */
581 static int hf_gsm_map_ms_odb_Data = -1;           /* ODB_Data */
582 static int hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature = -1;  /* NULL */
583 static int hf_gsm_map_ms_regionalSubscriptionData = -1;  /* ZoneCodeList */
584 static int hf_gsm_map_ms_vbsSubscriptionData = -1;  /* VBSDataList */
585 static int hf_gsm_map_ms_vgcsSubscriptionData = -1;  /* VGCSDataList */
586 static int hf_gsm_map_ms_vlrCamelSubscriptionInfo = -1;  /* VlrCamelSubscriptionInfo */
587 static int hf_gsm_map_ms_BearerServiceList_item = -1;  /* Ext_BearerServiceCode */
588 static int hf_gsm_map_ms_TeleserviceList_item = -1;  /* Ext_TeleserviceCode */
589 static int hf_gsm_map_ms_odb_GeneralData = -1;    /* ODB_GeneralData */
590 static int hf_gsm_map_ms_odb_HPLMN_Data = -1;     /* ODB_HPLMN_Data */
591 static int hf_gsm_map_ms_Ext_SS_InfoList_item = -1;  /* Ext_SS_Info */
592 static int hf_gsm_map_ms_forwardingInfo = -1;     /* Ext_ForwInfo */
593 static int hf_gsm_map_ms_callBarringInfo = -1;    /* Ext_CallBarInfo */
594 static int hf_gsm_map_ms_cug_Info = -1;           /* CUG_Info */
595 static int hf_gsm_map_ms_ss_Data = -1;            /* Ext_SS_Data */
596 static int hf_gsm_map_ms_emlpp_Info = -1;         /* EMLPP_Info */
597 static int hf_gsm_map_ms_ss_Code = -1;            /* SS_Code */
598 static int hf_gsm_map_ms_forwardingFeatureList = -1;  /* Ext_ForwFeatureList */
599 static int hf_gsm_map_ms_Ext_ForwFeatureList_item = -1;  /* Ext_ForwFeature */
600 static int hf_gsm_map_ms_basicService = -1;       /* Ext_BasicServiceCode */
601 static int hf_gsm_map_ms_ss_Status = -1;          /* Ext_SS_Status */
602 static int hf_gsm_map_ms_forwardedToNumber = -1;  /* ISDN_AddressString */
603 static int hf_gsm_map_ms_forwardedToSubaddress = -1;  /* ISDN_SubaddressString */
604 static int hf_gsm_map_ms_forwardingOptions = -1;  /* T_forwardingOptions */
605 static int hf_gsm_map_ms_noReplyConditionTime = -1;  /* Ext_NoRepCondTime */
606 static int hf_gsm_map_ms_longForwardedToNumber = -1;  /* FTN_AddressString */
607 static int hf_gsm_map_ms_callBarringFeatureList = -1;  /* Ext_CallBarFeatureList */
608 static int hf_gsm_map_ms_Ext_CallBarFeatureList_item = -1;  /* Ext_CallBarringFeature */
609 static int hf_gsm_map_ms_cug_SubscriptionList = -1;  /* CUG_SubscriptionList */
610 static int hf_gsm_map_ms_cug_FeatureList = -1;    /* CUG_FeatureList */
611 static int hf_gsm_map_ms_CUG_SubscriptionList_item = -1;  /* CUG_Subscription */
612 static int hf_gsm_map_ms_cug_Index = -1;          /* CUG_Index */
613 static int hf_gsm_map_ms_cug_Interlock = -1;      /* CUG_Interlock */
614 static int hf_gsm_map_ms_intraCUG_Options = -1;   /* IntraCUG_Options */
615 static int hf_gsm_map_ms_basicServiceGroupList = -1;  /* Ext_BasicServiceGroupList */
616 static int hf_gsm_map_ms_CUG_FeatureList_item = -1;  /* CUG_Feature */
617 static int hf_gsm_map_ms_Ext_BasicServiceGroupList_item = -1;  /* Ext_BasicServiceCode */
618 static int hf_gsm_map_ms_preferentialCUG_Indicator = -1;  /* CUG_Index */
619 static int hf_gsm_map_ms_interCUG_Restrictions = -1;  /* InterCUG_Restrictions */
620 static int hf_gsm_map_ms_ss_SubscriptionOption = -1;  /* SS_SubscriptionOption */
621 static int hf_gsm_map_ms_LCS_PrivacyExceptionList_item = -1;  /* LCS_PrivacyClass */
622 static int hf_gsm_map_ms_notificationToMSUser = -1;  /* NotificationToMSUser */
623 static int hf_gsm_map_ms_externalClientList = -1;  /* ExternalClientList */
624 static int hf_gsm_map_ms_plmnClientList = -1;     /* PLMNClientList */
625 static int hf_gsm_map_ms_ext_externalClientList = -1;  /* Ext_ExternalClientList */
626 static int hf_gsm_map_ms_serviceTypeList = -1;    /* ServiceTypeList */
627 static int hf_gsm_map_ms_ExternalClientList_item = -1;  /* ExternalClient */
628 static int hf_gsm_map_ms_PLMNClientList_item = -1;  /* LCSClientInternalID */
629 static int hf_gsm_map_ms_Ext_ExternalClientList_item = -1;  /* ExternalClient */
630 static int hf_gsm_map_ms_clientIdentity = -1;     /* LCSClientExternalID */
631 static int hf_gsm_map_ms_gmlc_Restriction = -1;   /* GMLC_Restriction */
632 static int hf_gsm_map_ms_ServiceTypeList_item = -1;  /* ServiceType */
633 static int hf_gsm_map_ms_serviceTypeIdentity = -1;  /* LCSServiceTypeID */
634 static int hf_gsm_map_ms_MOLR_List_item = -1;     /* MOLR_Class */
635 static int hf_gsm_map_ms_ZoneCodeList_item = -1;  /* ZoneCode */
636 static int hf_gsm_map_ms_ss_List = -1;            /* SS_List */
637 static int hf_gsm_map_ms_regionalSubscriptionResponse = -1;  /* RegionalSubscriptionResponse */
638 static int hf_gsm_map_ms_basicServiceList = -1;   /* BasicServiceList */
639 static int hf_gsm_map_ms_regionalSubscriptionIdentifier = -1;  /* ZoneCode */
640 static int hf_gsm_map_ms_vbsGroupIndication = -1;  /* NULL */
641 static int hf_gsm_map_ms_vgcsGroupIndication = -1;  /* NULL */
642 static int hf_gsm_map_ms_camelSubscriptionInfoWithdraw = -1;  /* NULL */
643 static int hf_gsm_map_ms_gprsSubscriptionDataWithdraw = -1;  /* GPRSSubscriptionDataWithdraw */
644 static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature = -1;  /* NULL */
645 static int hf_gsm_map_ms_lsaInformationWithdraw = -1;  /* LSAInformationWithdraw */
646 static int hf_gsm_map_ms_gmlc_ListWithdraw = -1;  /* NULL */
647 static int hf_gsm_map_ms_istInformationWithdraw = -1;  /* NULL */
648 static int hf_gsm_map_ms_specificCSI_Withdraw = -1;  /* SpecificCSI_Withdraw */
649 static int hf_gsm_map_ms_chargingCharacteristicsWithdraw = -1;  /* NULL */
650 static int hf_gsm_map_ms_allGPRSData = -1;        /* NULL */
651 static int hf_gsm_map_ms_contextIdList = -1;      /* ContextIdList */
652 static int hf_gsm_map_ms_ContextIdList_item = -1;  /* ContextId */
653 static int hf_gsm_map_ms_allLSAData = -1;         /* NULL */
654 static int hf_gsm_map_ms_lsaIdentityList = -1;    /* LSAIdentityList */
655 static int hf_gsm_map_ms_LSAIdentityList_item = -1;  /* LSAIdentity */
656 static int hf_gsm_map_ms_BasicServiceList_item = -1;  /* Ext_BasicServiceCode */
657 static int hf_gsm_map_ms_o_CSI = -1;              /* O_CSI */
658 static int hf_gsm_map_ms_ss_CSI = -1;             /* SS_CSI */
659 static int hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
660 static int hf_gsm_map_ms_tif_CSI = -1;            /* NULL */
661 static int hf_gsm_map_ms_m_CSI = -1;              /* M_CSI */
662 static int hf_gsm_map_ms_vt_CSI = -1;             /* T_CSI */
663 static int hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
664 static int hf_gsm_map_ms_d_CSI = -1;              /* D_CSI */
665 static int hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item = -1;  /* MT_smsCAMELTDP_Criteria */
666 static int hf_gsm_map_ms_sms_TriggerDetectionPoint = -1;  /* SMS_TriggerDetectionPoint */
667 static int hf_gsm_map_ms_tpdu_TypeCriterion = -1;  /* TPDU_TypeCriterion */
668 static int hf_gsm_map_ms_TPDU_TypeCriterion_item = -1;  /* MT_SMS_TPDU_Type */
669 static int hf_gsm_map_ms_dp_AnalysedInfoCriteriaList = -1;  /* DP_AnalysedInfoCriteriaList */
670 static int hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item = -1;  /* DP_AnalysedInfoCriterium */
671 static int hf_gsm_map_ms_dialledNumber = -1;      /* ISDN_AddressString */
672 static int hf_gsm_map_ms_defaultCallHandling = -1;  /* DefaultCallHandling */
673 static int hf_gsm_map_ms_ss_CamelData = -1;       /* SS_CamelData */
674 static int hf_gsm_map_ms_ss_EventList = -1;       /* SS_EventList */
675 static int hf_gsm_map_ms_SS_EventList_item = -1;  /* SS_Code */
676 static int hf_gsm_map_ms_o_BcsmCamelTDPDataList = -1;  /* O_BcsmCamelTDPDataList */
677 static int hf_gsm_map_ms_csiActive = -1;          /* NULL */
678 static int hf_gsm_map_ms_O_BcsmCamelTDPDataList_item = -1;  /* O_BcsmCamelTDPData */
679 static int hf_gsm_map_ms_o_BcsmTriggerDetectionPoint = -1;  /* O_BcsmTriggerDetectionPoint */
680 static int hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item = -1;  /* O_BcsmCamelTDP_Criteria */
681 static int hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item = -1;  /* T_BCSM_CAMEL_TDP_Criteria */
682 static int hf_gsm_map_ms_destinationNumberCriteria = -1;  /* DestinationNumberCriteria */
683 static int hf_gsm_map_ms_basicServiceCriteria = -1;  /* BasicServiceCriteria */
684 static int hf_gsm_map_ms_callTypeCriteria = -1;   /* CallTypeCriteria */
685 static int hf_gsm_map_ms_o_CauseValueCriteria = -1;  /* O_CauseValueCriteria */
686 static int hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint = -1;  /* T_BcsmTriggerDetectionPoint */
687 static int hf_gsm_map_ms_t_CauseValueCriteria = -1;  /* T_CauseValueCriteria */
688 static int hf_gsm_map_ms_matchType = -1;          /* MatchType */
689 static int hf_gsm_map_ms_destinationNumberList = -1;  /* DestinationNumberList */
690 static int hf_gsm_map_ms_destinationNumberLengthList = -1;  /* DestinationNumberLengthList */
691 static int hf_gsm_map_ms_DestinationNumberList_item = -1;  /* ISDN_AddressString */
692 static int hf_gsm_map_ms_DestinationNumberLengthList_item = -1;  /* INTEGER_1_maxNumOfISDN_AddressDigits */
693 static int hf_gsm_map_ms_BasicServiceCriteria_item = -1;  /* Ext_BasicServiceCode */
694 static int hf_gsm_map_ms_O_CauseValueCriteria_item = -1;  /* CauseValue */
695 static int hf_gsm_map_ms_T_CauseValueCriteria_item = -1;  /* CauseValue */
696 static int hf_gsm_map_ms_sms_CAMEL_TDP_DataList = -1;  /* SMS_CAMEL_TDP_DataList */
697 static int hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item = -1;  /* SMS_CAMEL_TDP_Data */
698 static int hf_gsm_map_ms_defaultSMS_Handling = -1;  /* DefaultSMS_Handling */
699 static int hf_gsm_map_ms_mobilityTriggers = -1;   /* MobilityTriggers */
700 static int hf_gsm_map_ms_MobilityTriggers_item = -1;  /* MM_Code */
701 static int hf_gsm_map_ms_t_BcsmCamelTDPDataList = -1;  /* T_BcsmCamelTDPDataList */
702 static int hf_gsm_map_ms_T_BcsmCamelTDPDataList_item = -1;  /* T_BcsmCamelTDPData */
703 static int hf_gsm_map_ms_t_BcsmTriggerDetectionPoint = -1;  /* T_BcsmTriggerDetectionPoint */
704 static int hf_gsm_map_ms_ggsn_Address = -1;       /* GSN_Address */
705 static int hf_gsm_map_ms_ggsn_Number = -1;        /* ISDN_AddressString */
706 static int hf_gsm_map_ms_mobileNotReachableReason = -1;  /* AbsentSubscriberDiagnosticSM */
707 static int hf_gsm_map_ms_hlr_List = -1;           /* HLR_List */
708 static int hf_gsm_map_ms_msNotReachable = -1;     /* NULL */
709 static int hf_gsm_map_ms_VBSDataList_item = -1;   /* VoiceBroadcastData */
710 static int hf_gsm_map_ms_VGCSDataList_item = -1;  /* VoiceGroupCallData */
711 static int hf_gsm_map_ms_groupId = -1;            /* GroupId */
712 static int hf_gsm_map_ms_additionalSubscriptions = -1;  /* AdditionalSubscriptions */
713 static int hf_gsm_map_ms_additionalInfo = -1;     /* AdditionalInfo */
714 static int hf_gsm_map_ms_longGroupId = -1;        /* Long_GroupId */
715 static int hf_gsm_map_ms_groupid = -1;            /* GroupId */
716 static int hf_gsm_map_ms_broadcastInitEntitlement = -1;  /* NULL */
717 static int hf_gsm_map_ms_requestedInfo = -1;      /* RequestedInfo */
718 static int hf_gsm_map_ms_subscriberInfo = -1;     /* SubscriberInfo */
719 static int hf_gsm_map_ms_locationInformation = -1;  /* LocationInformation */
720 static int hf_gsm_map_ms_subscriberState = -1;    /* SubscriberState */
721 static int hf_gsm_map_ms_locationInformationGPRS = -1;  /* LocationInformationGPRS */
722 static int hf_gsm_map_ms_ps_SubscriberState = -1;  /* PS_SubscriberState */
723 static int hf_gsm_map_ms_ms_Classmark2 = -1;      /* MS_Classmark2 */
724 static int hf_gsm_map_ms_gprs_MS_Class = -1;      /* GPRSMSClass */
725 static int hf_gsm_map_ms_mnpInfoRes = -1;         /* MNPInfoRes */
726 static int hf_gsm_map_ms_routeingNumber = -1;     /* RouteingNumber */
727 static int hf_gsm_map_ms_numberPortabilityStatus = -1;  /* NumberPortabilityStatus */
728 static int hf_gsm_map_ms_mSNetworkCapability = -1;  /* MSNetworkCapability */
729 static int hf_gsm_map_ms_mSRadioAccessCapability = -1;  /* MSRadioAccessCapability */
730 static int hf_gsm_map_ms_locationInformation_01 = -1;  /* NULL */
731 static int hf_gsm_map_ms_subscriberState_01 = -1;  /* NULL */
732 static int hf_gsm_map_ms_currentLocation = -1;    /* NULL */
733 static int hf_gsm_map_ms_requestedDomain = -1;    /* DomainType */
734 static int hf_gsm_map_ms_imei_01 = -1;            /* NULL */
735 static int hf_gsm_map_ms_ms_classmark = -1;       /* NULL */
736 static int hf_gsm_map_ms_mnpRequestedInfo = -1;   /* NULL */
737 static int hf_gsm_map_ms_ageOfLocationInformation = -1;  /* AgeOfLocationInformation */
738 static int hf_gsm_map_ms_geographicalInformation = -1;  /* GeographicalInformation */
739 static int hf_gsm_map_ms_vlr_number = -1;         /* ISDN_AddressString */
740 static int hf_gsm_map_ms_locationNumber = -1;     /* LocationNumber */
741 static int hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI = -1;  /* CellGlobalIdOrServiceAreaIdOrLAI */
742 static int hf_gsm_map_ms_selectedLSA_Id = -1;     /* LSAIdentity */
743 static int hf_gsm_map_ms_geodeticInformation = -1;  /* GeodeticInformation */
744 static int hf_gsm_map_ms_currentLocationRetrieved = -1;  /* NULL */
745 static int hf_gsm_map_ms_sai_Present = -1;        /* NULL */
746 static int hf_gsm_map_ms_routeingAreaIdentity = -1;  /* RAIdentity */
747 static int hf_gsm_map_ms_selectedLSAIdentity = -1;  /* LSAIdentity */
748 static int hf_gsm_map_ms_assumedIdle = -1;        /* NULL */
749 static int hf_gsm_map_ms_camelBusy = -1;          /* NULL */
750 static int hf_gsm_map_ms_netDetNotReachable = -1;  /* NotReachableReason */
751 static int hf_gsm_map_ms_notProvidedFromVLR = -1;  /* NULL */
752 static int hf_gsm_map_ms_notProvidedFromSGSN = -1;  /* NULL */
753 static int hf_gsm_map_ms_ps_Detached = -1;        /* NULL */
754 static int hf_gsm_map_ms_ps_AttachedNotReachableForPaging = -1;  /* NULL */
755 static int hf_gsm_map_ms_ps_AttachedReachableForPaging = -1;  /* NULL */
756 static int hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging = -1;  /* PDP_ContextInfoList */
757 static int hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging = -1;  /* PDP_ContextInfoList */
758 static int hf_gsm_map_ms_PDP_ContextInfoList_item = -1;  /* PDP_ContextInfo */
759 static int hf_gsm_map_ms_pdp_ContextIdentifier = -1;  /* ContextId */
760 static int hf_gsm_map_ms_pdp_ContextActive = -1;  /* NULL */
761 static int hf_gsm_map_ms_apn_Subscribed = -1;     /* APN */
762 static int hf_gsm_map_ms_apn_InUse = -1;          /* APN */
763 static int hf_gsm_map_ms_nsapi = -1;              /* NSAPI */
764 static int hf_gsm_map_ms_transactionId = -1;      /* TransactionId */
765 static int hf_gsm_map_ms_teid_ForGnAndGp = -1;    /* TEID */
766 static int hf_gsm_map_ms_teid_ForIu = -1;         /* TEID */
767 static int hf_gsm_map_ms_qos_Subscribed_01 = -1;  /* Ext_QoS_Subscribed */
768 static int hf_gsm_map_ms_qos_Requested = -1;      /* Ext_QoS_Subscribed */
769 static int hf_gsm_map_ms_qos_Negotiated = -1;     /* Ext_QoS_Subscribed */
770 static int hf_gsm_map_ms_chargingId = -1;         /* GPRSChargingID */
771 static int hf_gsm_map_ms_chargingCharacteristics = -1;  /* ChargingCharacteristics */
772 static int hf_gsm_map_ms_rnc_Address = -1;        /* GSN_Address */
773 static int hf_gsm_map_ms_qos2_Subscribed = -1;    /* Ext2_QoS_Subscribed */
774 static int hf_gsm_map_ms_qos2_Requested = -1;     /* Ext2_QoS_Subscribed */
775 static int hf_gsm_map_ms_qos2_Negotiated = -1;    /* Ext2_QoS_Subscribed */
776 static int hf_gsm_map_ms_subscriberIdentity = -1;  /* SubscriberIdentity */
777 static int hf_gsm_map_ms_requestedSubscriptionInfo = -1;  /* RequestedSubscriptionInfo */
778 static int hf_gsm_map_ms_callForwardingData = -1;  /* CallForwardingData */
779 static int hf_gsm_map_ms_callBarringData = -1;    /* CallBarringData */
780 static int hf_gsm_map_ms_odb_Info = -1;           /* ODB_Info */
781 static int hf_gsm_map_ms_camel_SubscriptionInfo = -1;  /* CAMEL_SubscriptionInfo */
782 static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases = -1;  /* SupportedCamelPhases */
783 static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases = -1;  /* SupportedCamelPhases */
784 static int hf_gsm_map_ms_offeredCamel4CSIsInVLR = -1;  /* OfferedCamel4CSIs */
785 static int hf_gsm_map_ms_offeredCamel4CSIsInSGSN = -1;  /* OfferedCamel4CSIs */
786 static int hf_gsm_map_ms_msisdn_BS_List = -1;     /* MSISDN_BS_List */
787 static int hf_gsm_map_ms_requestedSS_Info = -1;   /* SS_ForBS_Code */
788 static int hf_gsm_map_ms_odb = -1;                /* NULL */
789 static int hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo = -1;  /* RequestedCAMEL_SubscriptionInfo */
790 static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01 = -1;  /* NULL */
791 static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01 = -1;  /* NULL */
792 static int hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo = -1;  /* AdditionalRequestedCAMEL_SubscriptionInfo */
793 static int hf_gsm_map_ms_msisdn_BS_List_01 = -1;  /* NULL */
794 static int hf_gsm_map_ms_MSISDN_BS_List_item = -1;  /* MSISDN_BS */
795 static int hf_gsm_map_ms_password = -1;           /* Password */
796 static int hf_gsm_map_ms_wrongPasswordAttemptsCounter = -1;  /* WrongPasswordAttemptsCounter */
797 static int hf_gsm_map_ms_t_CSI = -1;              /* T_CSI */
798 static int hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
799 static int hf_gsm_map_ms_tif_CSI_NotificationToCSE = -1;  /* NULL */
800 static int hf_gsm_map_ms_specificCSIDeletedList = -1;  /* SpecificCSI_Withdraw */
801 static int hf_gsm_map_ms_o_IM_CSI = -1;           /* O_CSI */
802 static int hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
803 static int hf_gsm_map_ms_d_IM_CSI = -1;           /* D_CSI */
804 static int hf_gsm_map_ms_vt_IM_CSI = -1;          /* T_CSI */
805 static int hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
806 static int hf_gsm_map_ms_modificationRequestFor_CF_Info = -1;  /* ModificationRequestFor_CF_Info */
807 static int hf_gsm_map_ms_modificationRequestFor_CB_Info = -1;  /* ModificationRequestFor_CB_Info */
808 static int hf_gsm_map_ms_modificationRequestFor_CSI = -1;  /* ModificationRequestFor_CSI */
809 static int hf_gsm_map_ms_modificationRequestFor_ODB_data = -1;  /* ModificationRequestFor_ODB_data */
810 static int hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data = -1;  /* ModificationRequestFor_IP_SM_GW_Data */
811 static int hf_gsm_map_ms_ss_InfoFor_CSE = -1;     /* Ext_SS_InfoFor_CSE */
812 static int hf_gsm_map_ms_forwardedToNumber_01 = -1;  /* AddressString */
813 static int hf_gsm_map_ms_modifyNotificationToCSE = -1;  /* ModificationInstruction */
814 static int hf_gsm_map_ms_odb_data = -1;           /* ODB_Data */
815 static int hf_gsm_map_ms_requestedCamel_SubscriptionInfo = -1;  /* RequestedCAMEL_SubscriptionInfo */
816 static int hf_gsm_map_ms_modifyCSI_State = -1;    /* ModificationInstruction */
817 static int hf_gsm_map_ms_modifyRegistrationStatus = -1;  /* ModificationInstruction */
818 static int hf_gsm_map_ms_forwardingInfoFor_CSE = -1;  /* Ext_ForwardingInfoFor_CSE */
819 static int hf_gsm_map_ms_callBarringInfoFor_CSE = -1;  /* Ext_CallBarringInfoFor_CSE */
820 static int hf_gsm_map_ms_allInformationSent = -1;  /* NULL */
821 static int hf_gsm_map_ms_eventMet = -1;           /* MM_Code */
822 static int hf_gsm_map_ms_supportedCAMELPhases = -1;  /* SupportedCamelPhases */
823 static int hf_gsm_map_ms_offeredCamel4Functionalities = -1;  /* OfferedCamel4Functionalities */
824 static int hf_gsm_map_ms_naea_PreferredCI = -1;   /* NAEA_PreferredCI */
825 static int hf_gsm_map_ms_gprsSubscriptionData = -1;  /* GPRSSubscriptionData */
826 static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature = -1;  /* NULL */
827 static int hf_gsm_map_ms_networkAccessMode = -1;  /* NetworkAccessMode */
828 static int hf_gsm_map_ms_lsaInformation = -1;     /* LSAInformation */
829 static int hf_gsm_map_ms_lmu_Indicator = -1;      /* NULL */
830 static int hf_gsm_map_ms_lcsInformation = -1;     /* LCSInformation */
831 static int hf_gsm_map_ms_istAlertTimer = -1;      /* IST_AlertTimerValue */
832 static int hf_gsm_map_ms_superChargerSupportedInHLR = -1;  /* AgeIndicator */
833 static int hf_gsm_map_ms_mc_SS_Info = -1;         /* MC_SS_Info */
834 static int hf_gsm_map_ms_cs_AllocationRetentionPriority = -1;  /* CS_AllocationRetentionPriority */
835 static int hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo = -1;  /* SGSN_CAMEL_SubscriptionInfo */
836 static int hf_gsm_map_ms_accessRestrictionData = -1;  /* AccessRestrictionData */
837 /* named bits */
838 static int hf_gsm_map_ms_SupportedRAT_Types_utran = -1;
839 static int hf_gsm_map_ms_SupportedRAT_Types_geran = -1;
840 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1 = -1;
841 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2 = -1;
842 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3 = -1;
843 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4 = -1;
844 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5 = -1;
845 static int hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus = -1;
846 static int hf_gsm_map_ms_RequestedEquipmentInfo_bmuef = -1;
847 static int hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed = -1;
848 static int hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed = -1;
849 static int hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred = -1;
850 static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred = -1;
851 static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred = -1;
852 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred = -1;
853 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred = -1;
854 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred = -1;
855 static int hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred = -1;
856 static int hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred = -1;
857 static int hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred = -1;
858 static int hf_gsm_map_ms_ODB_GeneralData_allECT_Barred = -1;
859 static int hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred = -1;
860 static int hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred = -1;
861 static int hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred = -1;
862 static int hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred = -1;
863 static int hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred = -1;
864 static int hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred = -1;
865 static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred = -1;
866 static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred = -1;
867 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred = -1;
868 static int hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred = -1;
869 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred = -1;
870 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred = -1;
871 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred = -1;
872 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred = -1;
873 static int hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred = -1;
874 static int hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred = -1;
875 static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred = -1;
876 static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred = -1;
877 static int hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred = -1;
878 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1 = -1;
879 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2 = -1;
880 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3 = -1;
881 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4 = -1;
882 static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi = -1;
883 static int hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi = -1;
884 static int hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi = -1;
885 static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi = -1;
886 static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi = -1;
887 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi = -1;
888 static int hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi = -1;
889 static int hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi = -1;
890 static int hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi = -1;
891 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi = -1;
892 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi = -1;
893 static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI = -1;
894 static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI = -1;
895 static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI = -1;
896 static int hf_gsm_map_ms_SupportedCamelPhases_phase1 = -1;
897 static int hf_gsm_map_ms_SupportedCamelPhases_phase2 = -1;
898 static int hf_gsm_map_ms_SupportedCamelPhases_phase3 = -1;
899 static int hf_gsm_map_ms_SupportedCamelPhases_phase4 = -1;
900 static int hf_gsm_map_ms_OfferedCamel4CSIs_o_csi = -1;
901 static int hf_gsm_map_ms_OfferedCamel4CSIs_d_csi = -1;
902 static int hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi = -1;
903 static int hf_gsm_map_ms_OfferedCamel4CSIs_t_csi = -1;
904 static int hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi = -1;
905 static int hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi = -1;
906 static int hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements = -1;
907 static int hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt = -1;
908 static int hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg = -1;
909 static int hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg = -1;
910 static int hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg = -1;
911 static int hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased = -1;
912 static int hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument = -1;
913 static int hf_gsm_map_ms_OfferedCamel4Functionalities_playTone = -1;
914 static int hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall = -1;
915 static int hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator = -1;
916 static int hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP = -1;
917 static int hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting = -1;
918 static int hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP = -1;
919 static int hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions = -1;
920 static int hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements = -1;
921 static int hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements = -1;
922 static int hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices = -1;
923 static int hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices = -1;
924 static int hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP = -1;
925 static int hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP = -1;
926 static int hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation = -1;
927 static int hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest = -1;
928 static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest = -1;
929 static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset = -1;
930
931 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
932
933 static int hf_gsm_map_ch_cug_Interlock = -1;      /* CUG_Interlock */
934 static int hf_gsm_map_ch_cug_OutgoingAccess = -1;  /* NULL */
935 static int hf_gsm_map_ch_extensionContainer = -1;  /* ExtensionContainer */
936 static int hf_gsm_map_ch_msisdn = -1;             /* ISDN_AddressString */
937 static int hf_gsm_map_ch_cug_CheckInfo = -1;      /* CUG_CheckInfo */
938 static int hf_gsm_map_ch_numberOfForwarding = -1;  /* NumberOfForwarding */
939 static int hf_gsm_map_ch_interrogationType = -1;  /* InterrogationType */
940 static int hf_gsm_map_ch_or_Interrogation = -1;   /* NULL */
941 static int hf_gsm_map_ch_or_Capability = -1;      /* OR_Phase */
942 static int hf_gsm_map_ch_gmsc_OrGsmSCF_Address = -1;  /* ISDN_AddressString */
943 static int hf_gsm_map_ch_callReferenceNumber = -1;  /* CallReferenceNumber */
944 static int hf_gsm_map_ch_forwardingReason = -1;   /* ForwardingReason */
945 static int hf_gsm_map_ch_basicServiceGroup = -1;  /* Ext_BasicServiceCode */
946 static int hf_gsm_map_ch_networkSignalInfo = -1;  /* ExternalSignalInfo */
947 static int hf_gsm_map_ch_camelInfo = -1;          /* CamelInfo */
948 static int hf_gsm_map_ch_suppressionOfAnnouncement = -1;  /* SuppressionOfAnnouncement */
949 static int hf_gsm_map_ch_alertingPattern = -1;    /* AlertingPattern */
950 static int hf_gsm_map_ch_ccbs_Call = -1;          /* NULL */
951 static int hf_gsm_map_ch_supportedCCBS_Phase = -1;  /* SupportedCCBS_Phase */
952 static int hf_gsm_map_ch_additionalSignalInfo = -1;  /* Ext_ExternalSignalInfo */
953 static int hf_gsm_map_ch_istSupportIndicator = -1;  /* IST_SupportIndicator */
954 static int hf_gsm_map_ch_pre_pagingSupported = -1;  /* NULL */
955 static int hf_gsm_map_ch_callDiversionTreatmentIndicator = -1;  /* CallDiversionTreatmentIndicator */
956 static int hf_gsm_map_ch_longFTN_Supported = -1;  /* NULL */
957 static int hf_gsm_map_ch_suppress_VT_CSI = -1;    /* NULL */
958 static int hf_gsm_map_ch_suppressIncomingCallBarring = -1;  /* NULL */
959 static int hf_gsm_map_ch_gsmSCF_InitiatedCall = -1;  /* NULL */
960 static int hf_gsm_map_ch_basicServiceGroup2 = -1;  /* Ext_BasicServiceCode */
961 static int hf_gsm_map_ch_networkSignalInfo2 = -1;  /* ExternalSignalInfo */
962 static int hf_gsm_map_ch_suppressMTSS = -1;       /* SuppressMTSS */
963 static int hf_gsm_map_ch_imsi = -1;               /* IMSI */
964 static int hf_gsm_map_ch_extendedRoutingInfo = -1;  /* ExtendedRoutingInfo */
965 static int hf_gsm_map_ch_cugSubscriptionFlag = -1;  /* NULL */
966 static int hf_gsm_map_ch_subscriberInfo = -1;     /* SubscriberInfo */
967 static int hf_gsm_map_ch_ss_List = -1;            /* SS_List */
968 static int hf_gsm_map_ch_basicService = -1;       /* Ext_BasicServiceCode */
969 static int hf_gsm_map_ch_forwardingInterrogationRequired = -1;  /* NULL */
970 static int hf_gsm_map_ch_vmsc_Address = -1;       /* ISDN_AddressString */
971 static int hf_gsm_map_ch_naea_PreferredCI = -1;   /* NAEA_PreferredCI */
972 static int hf_gsm_map_ch_ccbs_Indicators = -1;    /* CCBS_Indicators */
973 static int hf_gsm_map_ch_numberPortabilityStatus = -1;  /* NumberPortabilityStatus */
974 static int hf_gsm_map_ch_istAlertTimer = -1;      /* IST_AlertTimerValue */
975 static int hf_gsm_map_ch_supportedCamelPhasesInVMSC = -1;  /* SupportedCamelPhases */
976 static int hf_gsm_map_ch_offeredCamel4CSIsInVMSC = -1;  /* OfferedCamel4CSIs */
977 static int hf_gsm_map_ch_routingInfo2 = -1;       /* RoutingInfo */
978 static int hf_gsm_map_ch_ss_List2 = -1;           /* SS_List */
979 static int hf_gsm_map_ch_basicService2 = -1;      /* Ext_BasicServiceCode */
980 static int hf_gsm_map_ch_allowedServices = -1;    /* AllowedServices */
981 static int hf_gsm_map_ch_unavailabilityCause = -1;  /* UnavailabilityCause */
982 static int hf_gsm_map_ch_releaseResourcesSupported = -1;  /* NULL */
983 static int hf_gsm_map_ch_gsm_BearerCapability = -1;  /* ExternalSignalInfo */
984 static int hf_gsm_map_ch_ccbs_Possible = -1;      /* NULL */
985 static int hf_gsm_map_ch_keepCCBS_CallIndicator = -1;  /* NULL */
986 static int hf_gsm_map_ch_roamingNumber = -1;      /* ISDN_AddressString */
987 static int hf_gsm_map_ch_forwardingData = -1;     /* ForwardingData */
988 static int hf_gsm_map_ch_forwardedToNumber = -1;  /* ISDN_AddressString */
989 static int hf_gsm_map_ch_forwardedToSubaddress = -1;  /* ISDN_SubaddressString */
990 static int hf_gsm_map_ch_forwardingOptions = -1;  /* ForwardingOptions */
991 static int hf_gsm_map_ch_longForwardedToNumber = -1;  /* FTN_AddressString */
992 static int hf_gsm_map_ch_msc_Number = -1;         /* ISDN_AddressString */
993 static int hf_gsm_map_ch_lmsi = -1;               /* LMSI */
994 static int hf_gsm_map_ch_gmsc_Address = -1;       /* ISDN_AddressString */
995 static int hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode = -1;  /* SupportedCamelPhases */
996 static int hf_gsm_map_ch_orNotSupportedInGMSC = -1;  /* NULL */
997 static int hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode = -1;  /* OfferedCamel4CSIs */
998 static int hf_gsm_map_ch_o_CSI = -1;              /* O_CSI */
999 static int hf_gsm_map_ch_uu_Data = -1;            /* UU_Data */
1000 static int hf_gsm_map_ch_allInformationSent = -1;  /* NULL */
1001 static int hf_gsm_map_ch_d_csi = -1;              /* D_CSI */
1002 static int hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
1003 static int hf_gsm_map_ch_uuIndicator = -1;        /* UUIndicator */
1004 static int hf_gsm_map_ch_uui = -1;                /* UUI */
1005 static int hf_gsm_map_ch_uusCFInteraction = -1;   /* NULL */
1006 static int hf_gsm_map_ch_supportedCamelPhases = -1;  /* SupportedCamelPhases */
1007 static int hf_gsm_map_ch_suppress_T_CSI = -1;     /* NULL */
1008 static int hf_gsm_map_ch_offeredCamel4CSIs = -1;  /* OfferedCamel4CSIs */
1009 static int hf_gsm_map_ch_routingInfo = -1;        /* RoutingInfo */
1010 static int hf_gsm_map_ch_camelRoutingInfo = -1;   /* CamelRoutingInfo */
1011 static int hf_gsm_map_ch_gmscCamelSubscriptionInfo = -1;  /* GmscCamelSubscriptionInfo */
1012 static int hf_gsm_map_ch_t_CSI = -1;              /* T_CSI */
1013 static int hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
1014 static int hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
1015 static int hf_gsm_map_ch_ccbs_Monitoring = -1;    /* ReportingState */
1016 static int hf_gsm_map_ch_ccbs_SubscriberStatus = -1;  /* CCBS_SubscriberStatus */
1017 static int hf_gsm_map_ch_eventReportData = -1;    /* EventReportData */
1018 static int hf_gsm_map_ch_callReportdata = -1;     /* CallReportData */
1019 static int hf_gsm_map_ch_monitoringMode = -1;     /* MonitoringMode */
1020 static int hf_gsm_map_ch_callOutcome = -1;        /* CallOutcome */
1021 static int hf_gsm_map_ch_callInfo = -1;           /* ExternalSignalInfo */
1022 static int hf_gsm_map_ch_ccbs_Feature = -1;       /* CCBS_Feature */
1023 static int hf_gsm_map_ch_translatedB_Number = -1;  /* ISDN_AddressString */
1024 static int hf_gsm_map_ch_replaceB_Number = -1;    /* NULL */
1025 static int hf_gsm_map_ch_ruf_Outcome = -1;        /* RUF_Outcome */
1026 static int hf_gsm_map_ch_istInformationWithdraw = -1;  /* NULL */
1027 static int hf_gsm_map_ch_callTerminationIndicator = -1;  /* CallTerminationIndicator */
1028 static int hf_gsm_map_ch_msrn = -1;               /* ISDN_AddressString */
1029 /* named bits */
1030 static int hf_gsm_map_ch_SuppressMTSS_suppressCUG = -1;
1031 static int hf_gsm_map_ch_SuppressMTSS_suppressCCBS = -1;
1032 static int hf_gsm_map_ch_AllowedServices_firstServiceAllowed = -1;
1033 static int hf_gsm_map_ch_AllowedServices_secondServiceAllowed = -1;
1034
1035 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
1036
1037 static int hf_gsm_map_lcs_mlcNumber = -1;         /* ISDN_AddressString */
1038 static int hf_gsm_map_lcs_targetMS = -1;          /* SubscriberIdentity */
1039 static int hf_gsm_map_lcs_extensionContainer = -1;  /* ExtensionContainer */
1040 static int hf_gsm_map_lcs_lcsLocationInfo = -1;   /* LCSLocationInfo */
1041 static int hf_gsm_map_lcs_v_gmlc_Address = -1;    /* GSN_Address */
1042 static int hf_gsm_map_lcs_h_gmlc_Address = -1;    /* GSN_Address */
1043 static int hf_gsm_map_lcs_ppr_Address = -1;       /* GSN_Address */
1044 static int hf_gsm_map_lcs_additional_v_gmlc_Address = -1;  /* GSN_Address */
1045 static int hf_gsm_map_lcs_networkNode_Number = -1;  /* ISDN_AddressString */
1046 static int hf_gsm_map_lcs_lmsi = -1;              /* LMSI */
1047 static int hf_gsm_map_lcs_gprsNodeIndicator = -1;  /* NULL */
1048 static int hf_gsm_map_lcs_additional_Number = -1;  /* Additional_Number */
1049 static int hf_gsm_map_lcs_supportedLCS_CapabilitySets = -1;  /* SupportedLCS_CapabilitySets */
1050 static int hf_gsm_map_lcs_additional_LCS_CapabilitySets = -1;  /* SupportedLCS_CapabilitySets */
1051 static int hf_gsm_map_lcs_locationType = -1;      /* LocationType */
1052 static int hf_gsm_map_lcs_mlc_Number = -1;        /* ISDN_AddressString */
1053 static int hf_gsm_map_lcs_lcs_ClientID = -1;      /* LCS_ClientID */
1054 static int hf_gsm_map_lcs_privacyOverride = -1;   /* NULL */
1055 static int hf_gsm_map_lcs_imsi = -1;              /* IMSI */
1056 static int hf_gsm_map_lcs_msisdn = -1;            /* ISDN_AddressString */
1057 static int hf_gsm_map_lcs_imei = -1;              /* IMEI */
1058 static int hf_gsm_map_lcs_lcs_Priority = -1;      /* LCS_Priority */
1059 static int hf_gsm_map_lcs_lcs_QoS = -1;           /* LCS_QoS */
1060 static int hf_gsm_map_lcs_supportedGADShapes = -1;  /* SupportedGADShapes */
1061 static int hf_gsm_map_lcs_lcs_ReferenceNumber = -1;  /* LCS_ReferenceNumber */
1062 static int hf_gsm_map_lcs_lcsServiceTypeID = -1;  /* LCSServiceTypeID */
1063 static int hf_gsm_map_lcs_lcsCodeword = -1;       /* LCSCodeword */
1064 static int hf_gsm_map_lcs_lcs_PrivacyCheck = -1;  /* LCS_PrivacyCheck */
1065 static int hf_gsm_map_lcs_areaEventInfo = -1;     /* AreaEventInfo */
1066 static int hf_gsm_map_lcs_mo_lrShortCircuitIndicator = -1;  /* NULL */
1067 static int hf_gsm_map_lcs_periodicLDRInfo = -1;   /* PeriodicLDRInfo */
1068 static int hf_gsm_map_lcs_reportingPLMNList = -1;  /* ReportingPLMNList */
1069 static int hf_gsm_map_lcs_locationEstimateType = -1;  /* LocationEstimateType */
1070 static int hf_gsm_map_lcs_deferredLocationEventType = -1;  /* DeferredLocationEventType */
1071 static int hf_gsm_map_lcs_lcsClientType = -1;     /* LCSClientType */
1072 static int hf_gsm_map_lcs_lcsClientExternalID = -1;  /* LCSClientExternalID */
1073 static int hf_gsm_map_lcs_lcsClientDialedByMS = -1;  /* AddressString */
1074 static int hf_gsm_map_lcs_lcsClientInternalID = -1;  /* LCSClientInternalID */
1075 static int hf_gsm_map_lcs_lcsClientName = -1;     /* LCSClientName */
1076 static int hf_gsm_map_lcs_lcsAPN = -1;            /* APN */
1077 static int hf_gsm_map_lcs_lcsRequestorID = -1;    /* LCSRequestorID */
1078 static int hf_gsm_map_lcs_dataCodingScheme = -1;  /* USSD_DataCodingScheme */
1079 static int hf_gsm_map_lcs_nameString = -1;        /* NameString */
1080 static int hf_gsm_map_lcs_lcs_FormatIndicator = -1;  /* LCS_FormatIndicator */
1081 static int hf_gsm_map_lcs_requestorIDString = -1;  /* RequestorIDString */
1082 static int hf_gsm_map_lcs_horizontal_accuracy = -1;  /* Horizontal_Accuracy */
1083 static int hf_gsm_map_lcs_verticalCoordinateRequest = -1;  /* NULL */
1084 static int hf_gsm_map_lcs_vertical_accuracy = -1;  /* Vertical_Accuracy */
1085 static int hf_gsm_map_lcs_responseTime = -1;      /* ResponseTime */
1086 static int hf_gsm_map_lcs_velocityRequest = -1;   /* NULL */
1087 static int hf_gsm_map_lcs_responseTimeCategory = -1;  /* ResponseTimeCategory */
1088 static int hf_gsm_map_lcs_lcsCodewordString = -1;  /* LCSCodewordString */
1089 static int hf_gsm_map_lcs_callSessionUnrelated = -1;  /* PrivacyCheckRelatedAction */
1090 static int hf_gsm_map_lcs_callSessionRelated = -1;  /* PrivacyCheckRelatedAction */
1091 static int hf_gsm_map_lcs_areaDefinition = -1;    /* AreaDefinition */
1092 static int hf_gsm_map_lcs_occurrenceInfo = -1;    /* OccurrenceInfo */
1093 static int hf_gsm_map_lcs_intervalTime = -1;      /* IntervalTime */
1094 static int hf_gsm_map_lcs_areaList = -1;          /* AreaList */
1095 static int hf_gsm_map_lcs_AreaList_item = -1;     /* Area */
1096 static int hf_gsm_map_lcs_areaType = -1;          /* AreaType */
1097 static int hf_gsm_map_lcs_areaIdentification = -1;  /* AreaIdentification */
1098 static int hf_gsm_map_lcs_reportingAmount = -1;   /* ReportingAmount */
1099 static int hf_gsm_map_lcs_reportingInterval = -1;  /* ReportingInterval */
1100 static int hf_gsm_map_lcs_plmn_ListPrioritized = -1;  /* NULL */
1101 static int hf_gsm_map_lcs_plmn_List = -1;         /* PLMNList */
1102 static int hf_gsm_map_lcs_PLMNList_item = -1;     /* ReportingPLMN */
1103 static int hf_gsm_map_lcs_plmn_Id = -1;           /* PLMN_Id */
1104 static int hf_gsm_map_lcs_ran_Technology = -1;    /* RAN_Technology */
1105 static int hf_gsm_map_lcs_ran_PeriodicLocationSupport = -1;  /* NULL */
1106 static int hf_gsm_map_lcs_locationEstimate = -1;  /* Ext_GeographicalInformation */
1107 static int hf_gsm_map_lcs_ageOfLocationEstimate = -1;  /* AgeOfLocationInformation */
1108 static int hf_gsm_map_lcs_add_LocationEstimate = -1;  /* Add_GeographicalInformation */
1109 static int hf_gsm_map_lcs_deferredmt_lrResponseIndicator = -1;  /* NULL */
1110 static int hf_gsm_map_lcs_geranPositioningData = -1;  /* PositioningDataInformation */
1111 static int hf_gsm_map_lcs_utranPositioningData = -1;  /* UtranPositioningDataInfo */
1112 static int hf_gsm_map_lcs_cellIdOrSai = -1;       /* CellGlobalIdOrServiceAreaIdOrLAI */
1113 static int hf_gsm_map_lcs_sai_Present = -1;       /* NULL */
1114 static int hf_gsm_map_lcs_accuracyFulfilmentIndicator = -1;  /* AccuracyFulfilmentIndicator */
1115 static int hf_gsm_map_lcs_velocityEstimate = -1;  /* VelocityEstimate */
1116 static int hf_gsm_map_lcs_lcs_Event = -1;         /* LCS_Event */
1117 static int hf_gsm_map_lcs_na_ESRD = -1;           /* ISDN_AddressString */
1118 static int hf_gsm_map_lcs_na_ESRK = -1;           /* ISDN_AddressString */
1119 static int hf_gsm_map_lcs_slr_ArgExtensionContainer = -1;  /* SLR_ArgExtensionContainer */
1120 static int hf_gsm_map_lcs_deferredmt_lrData = -1;  /* Deferredmt_lrData */
1121 static int hf_gsm_map_lcs_pseudonymIndicator = -1;  /* NULL */
1122 static int hf_gsm_map_lcs_sequenceNumber = -1;    /* SequenceNumber */
1123 static int hf_gsm_map_lcs_terminationCause = -1;  /* TerminationCause */
1124 /* named bits */
1125 static int hf_gsm_map_lcs_DeferredLocationEventType_msAvailable = -1;
1126 static int hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea = -1;
1127 static int hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea = -1;
1128 static int hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea = -1;
1129 static int hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR = -1;
1130 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint = -1;
1131 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle = -1;
1132 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse = -1;
1133 static int hf_gsm_map_lcs_SupportedGADShapes_polygon = -1;
1134 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude = -1;
1135 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid = -1;
1136 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc = -1;
1137
1138 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
1139
1140 static int hf_gsm_map_gr_teleservice = -1;        /* Ext_TeleserviceCode */
1141 static int hf_gsm_map_gr_asciCallReference = -1;  /* ASCI_CallReference */
1142 static int hf_gsm_map_gr_codec_Info = -1;         /* CODEC_Info */
1143 static int hf_gsm_map_gr_cipheringAlgorithm = -1;  /* CipheringAlgorithm */
1144 static int hf_gsm_map_gr_groupKeyNumber_Vk_Id = -1;  /* GroupKeyNumber */
1145 static int hf_gsm_map_gr_groupKey = -1;           /* Kc */
1146 static int hf_gsm_map_gr_priority = -1;           /* EMLPP_Priority */
1147 static int hf_gsm_map_gr_uplinkFree = -1;         /* NULL */
1148 static int hf_gsm_map_gr_extensionContainer = -1;  /* ExtensionContainer */
1149 static int hf_gsm_map_gr_vstk = -1;               /* VSTK */
1150 static int hf_gsm_map_gr_vstk_rand = -1;          /* VSTK_RAND */
1151 static int hf_gsm_map_gr_groupCallNumber = -1;    /* ISDN_AddressString */
1152 static int hf_gsm_map_gr_imsi = -1;               /* IMSI */
1153 static int hf_gsm_map_gr_talkerPriority = -1;     /* TalkerPriority */
1154 static int hf_gsm_map_gr_additionalInfo = -1;     /* AdditionalInfo */
1155 static int hf_gsm_map_gr_uplinkRequestAck = -1;   /* NULL */
1156 static int hf_gsm_map_gr_uplinkReleaseIndication = -1;  /* NULL */
1157 static int hf_gsm_map_gr_uplinkRejectCommand = -1;  /* NULL */
1158 static int hf_gsm_map_gr_uplinkSeizedCommand = -1;  /* NULL */
1159 static int hf_gsm_map_gr_uplinkReleaseCommand = -1;  /* NULL */
1160 static int hf_gsm_map_gr_stateAttributes = -1;    /* StateAttributes */
1161 static int hf_gsm_map_gr_emergencyModeResetCommandFlag = -1;  /* NULL */
1162 static int hf_gsm_map_gr_sm_RP_UI = -1;           /* SignalInfo */
1163 static int hf_gsm_map_gr_notificationData = -1;   /* SignalInfo */
1164 static int hf_gsm_map_gr_uplinkRequest = -1;      /* NULL */
1165 static int hf_gsm_map_gr_releaseGroupCall = -1;   /* NULL */
1166 static int hf_gsm_map_gr_downlinkAttached = -1;   /* NULL */
1167 static int hf_gsm_map_gr_uplinkAttached = -1;     /* NULL */
1168 static int hf_gsm_map_gr_dualCommunication = -1;  /* NULL */
1169 static int hf_gsm_map_gr_callOriginator = -1;     /* NULL */
1170 static int hf_gsm_map_gr_requestedInfo = -1;      /* RequestedInfo */
1171 static int hf_gsm_map_gr_groupId = -1;            /* Long_GroupId */
1172 static int hf_gsm_map_gr_cellId = -1;             /* GlobalCellId */
1173 static int hf_gsm_map_gr_tmsi = -1;               /* TMSI */
1174 static int hf_gsm_map_gr_cksn = -1;               /* Cksn */
1175 static int hf_gsm_map_gr_anchorMSC_Address = -1;  /* ISDN_AddressString */
1176 static int hf_gsm_map_gr_additionalSubscriptions = -1;  /* AdditionalSubscriptions */
1177 static int hf_gsm_map_gr_kc = -1;                 /* Kc */
1178
1179 /* --- Module MAP-DialogueInformation --- --- ---                             */
1180
1181 static int hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU = -1;  /* MAP_DialoguePDU */
1182 static int hf_gsm_map_dialogue_map_open = -1;     /* MAP_OpenInfo */
1183 static int hf_gsm_map_dialogue_map_accept = -1;   /* MAP_AcceptInfo */
1184 static int hf_gsm_map_dialogue_map_close = -1;    /* MAP_CloseInfo */
1185 static int hf_gsm_map_dialogue_map_refuse = -1;   /* MAP_RefuseInfo */
1186 static int hf_gsm_map_dialogue_map_userAbort = -1;  /* MAP_UserAbortInfo */
1187 static int hf_gsm_map_dialogue_map_providerAbort = -1;  /* MAP_ProviderAbortInfo */
1188 static int hf_gsm_map_dialogue_destinationReference = -1;  /* AddressString */
1189 static int hf_gsm_map_dialogue_originationReference = -1;  /* AddressString */
1190 static int hf_gsm_map_dialogue_extensionContainer = -1;  /* ExtensionContainer */
1191 static int hf_gsm_map_dialogue_reason = -1;       /* Reason */
1192 static int hf_gsm_map_dialogue_alternativeApplicationContext = -1;  /* OBJECT_IDENTIFIER */
1193 static int hf_gsm_map_dialogue_map_UserAbortChoice = -1;  /* MAP_UserAbortChoice */
1194 static int hf_gsm_map_dialogue_userSpecificReason = -1;  /* NULL */
1195 static int hf_gsm_map_dialogue_userResourceLimitation = -1;  /* NULL */
1196 static int hf_gsm_map_dialogue_resourceUnavailable = -1;  /* ResourceUnavailableReason */
1197 static int hf_gsm_map_dialogue_applicationProcedureCancellation = -1;  /* ProcedureCancellationReason */
1198 static int hf_gsm_map_dialogue_map_ProviderAbortReason = -1;  /* MAP_ProviderAbortReason */
1199
1200 /* --- Module DummyMAP --- --- ---                                            */
1201
1202 static int hf_gsm_old_invoke = -1;                /* Invoke */
1203 static int hf_gsm_old_returnResultLast = -1;      /* ReturnResult */
1204 static int hf_gsm_old_returnError = -1;           /* ReturnError */
1205 static int hf_gsm_old_reject = -1;                /* Reject */
1206 static int hf_gsm_old_returnResultNotLast = -1;   /* ReturnResult */
1207 static int hf_gsm_old_invokeID = -1;              /* InvokeIdType */
1208 static int hf_gsm_old_linkedID = -1;              /* InvokeIdType */
1209 static int hf_gsm_old_opCode = -1;                /* MAP_OPERATION */
1210 static int hf_gsm_old_invokeparameter = -1;       /* InvokeParameter */
1211 static int hf_gsm_old_resultretres = -1;          /* T_resultretres */
1212 static int hf_gsm_old_returnparameter = -1;       /* ReturnResultParameter */
1213 static int hf_gsm_old_errorCode = -1;             /* MAP_ERROR */
1214 static int hf_gsm_old_parameter = -1;             /* ReturnErrorParameter */
1215 static int hf_gsm_old_invokeIDRej = -1;           /* T_invokeIDRej */
1216 static int hf_gsm_old_derivable = -1;             /* InvokeIdType */
1217 static int hf_gsm_old_not_derivable = -1;         /* NULL */
1218 static int hf_gsm_old_problem = -1;               /* T_problem */
1219 static int hf_gsm_old_generalProblem = -1;        /* GeneralProblem */
1220 static int hf_gsm_old_invokeProblem = -1;         /* InvokeProblem */
1221 static int hf_gsm_old_returnResultProblem = -1;   /* ReturnResultProblem */
1222 static int hf_gsm_old_returnErrorProblem = -1;    /* ReturnErrorProblem */
1223 static int hf_gsm_old_localValue = -1;            /* OperationLocalvalue */
1224 static int hf_gsm_old_globalValue = -1;           /* OBJECT_IDENTIFIER */
1225 static int hf_gsm_old_localValue_01 = -1;         /* LocalErrorcode */
1226 static int hf_gsm_old_protocolId = -1;            /* ProtocolId */
1227 static int hf_gsm_old_signalInfo = -1;            /* SignalInfo */
1228 static int hf_gsm_old_extensionContainer = -1;    /* ExtensionContainer */
1229 static int hf_gsm_old_gsm_BearerCapability = -1;  /* ExternalSignalInfo */
1230 static int hf_gsm_old_isdn_BearerCapability = -1;  /* ExternalSignalInfo */
1231 static int hf_gsm_old_call_Direction = -1;        /* CallDirection */
1232 static int hf_gsm_old_b_Subscriber_Address = -1;  /* ISDN_AddressString */
1233 static int hf_gsm_old_chosenChannel = -1;         /* ExternalSignalInfo */
1234 static int hf_gsm_old_lowerLayerCompatibility = -1;  /* ExternalSignalInfo */
1235 static int hf_gsm_old_highLayerCompatibility = -1;  /* ExternalSignalInfo */
1236 static int hf_gsm_old_sIWFSNumber = -1;           /* ISDN_AddressString */
1237 static int hf_gsm_old_imsi = -1;                  /* IMSI */
1238 static int hf_gsm_old_vlr_Number = -1;            /* ISDN_AddressString */
1239 static int hf_gsm_old_targetCellId = -1;          /* GlobalCellId */
1240 static int hf_gsm_old_ho_NumberNotRequired = -1;  /* NULL */
1241 static int hf_gsm_old_bss_APDU = -1;              /* Bss_APDU */
1242 static int hf_gsm_old_handoverNumber = -1;        /* ISDN_AddressString */
1243 static int hf_gsm_old_SendAuthenticationInfoResOld_item = -1;  /* SendAuthenticationInfoResOld_item */
1244 static int hf_gsm_old_rand = -1;                  /* RAND */
1245 static int hf_gsm_old_sres = -1;                  /* SRES */
1246 static int hf_gsm_old_kc = -1;                    /* Kc */
1247 static int hf_gsm_old_tripletList = -1;           /* TripletListold */
1248 static int hf_gsm_old_TripletListold_item = -1;   /* AuthenticationTriplet_v2 */
1249 static int hf_gsm_old_channelType = -1;           /* ExternalSignalInfo */
1250 static int hf_gsm_old_securityHeader = -1;        /* SecurityHeader */
1251 static int hf_gsm_old_protectedPayload = -1;      /* ProtectedPayload */
1252 static int hf_gsm_old_securityParametersIndex = -1;  /* SecurityParametersIndex */
1253 static int hf_gsm_old_originalComponentIdentifier = -1;  /* OriginalComponentIdentifier */
1254 static int hf_gsm_old_initialisationVector = -1;  /* InitialisationVector */
1255 static int hf_gsm_old_operationCode = -1;         /* OperationCode */
1256 static int hf_gsm_old_errorCode_01 = -1;          /* ErrorCode */
1257 static int hf_gsm_old_userInfo = -1;              /* NULL */
1258 static int hf_gsm_old_localValue_02 = -1;         /* INTEGER */
1259 static int hf_gsm_old_msisdn = -1;                /* ISDN_AddressString */
1260 static int hf_gsm_old_category = -1;              /* Category */
1261 static int hf_gsm_old_basicService = -1;          /* BasicServiceCode */
1262 static int hf_gsm_old_operatorSS_Code = -1;       /* T_operatorSS_Code */
1263 static int hf_gsm_old_operatorSS_Code_item = -1;  /* OCTET_STRING_SIZE_1 */
1264 static int hf_gsm_old_sm_RP_DA = -1;              /* SM_RP_DAold */
1265 static int hf_gsm_old_sm_RP_OA = -1;              /* SM_RP_OAold */
1266 static int hf_gsm_old_sm_RP_UI = -1;              /* SignalInfo */
1267 static int hf_gsm_old_moreMessagesToSend = -1;    /* NULL */
1268 static int hf_gsm_old_lmsi = -1;                  /* LMSI */
1269 static int hf_gsm_old_serviceCentreAddressDA = -1;  /* AddressString */
1270 static int hf_gsm_old_noSM_RP_DA = -1;            /* NULL */
1271 static int hf_gsm_old_msisdn_01 = -1;             /* T_msisdn */
1272 static int hf_gsm_old_serviceCentreAddressOA = -1;  /* T_serviceCentreAddressOA */
1273 static int hf_gsm_old_noSM_RP_OA = -1;            /* NULL */
1274 static int hf_gsm_old_cug_CheckInfo = -1;         /* CUG_CheckInfo */
1275 static int hf_gsm_old_numberOfForwarding = -1;    /* NumberOfForwarding */
1276 static int hf_gsm_old_networkSignalInfo = -1;     /* ExternalSignalInfo */
1277 static int hf_gsm_old_routingInfo = -1;           /* RoutingInfo */
1278
1279 /* --- Module SS-DataTypes --- --- ---                                        */
1280
1281 static int hf_gsm_ss_ss_Code = -1;                /* SS_Code */
1282 static int hf_gsm_ss_ss_Status = -1;              /* SS_Status */
1283 static int hf_gsm_ss_ss_Notification = -1;        /* SS_Notification */
1284 static int hf_gsm_ss_callIsWaiting_Indicator = -1;  /* NULL */
1285 static int hf_gsm_ss_callOnHold_Indicator = -1;   /* CallOnHold_Indicator */
1286 static int hf_gsm_ss_mpty_Indicator = -1;         /* NULL */
1287 static int hf_gsm_ss_cug_Index = -1;              /* CUG_Index */
1288 static int hf_gsm_ss_clirSuppressionRejected = -1;  /* NULL */
1289 static int hf_gsm_ss_ect_Indicator = -1;          /* ECT_Indicator */
1290 static int hf_gsm_ss_nameIndicator = -1;          /* NameIndicator */
1291 static int hf_gsm_ss_ccbs_Feature = -1;           /* CCBS_Feature */
1292 static int hf_gsm_ss_alertingPattern = -1;        /* AlertingPattern */
1293 static int hf_gsm_ss_multicall_Indicator = -1;    /* Multicall_Indicator */
1294 static int hf_gsm_ss_chargingInformation = -1;    /* ChargingInformation */
1295 static int hf_gsm_ss_e1 = -1;                     /* E1 */
1296 static int hf_gsm_ss_e2 = -1;                     /* E2 */
1297 static int hf_gsm_ss_e3 = -1;                     /* E3 */
1298 static int hf_gsm_ss_e4 = -1;                     /* E4 */
1299 static int hf_gsm_ss_e5 = -1;                     /* E5 */
1300 static int hf_gsm_ss_e6 = -1;                     /* E6 */
1301 static int hf_gsm_ss_e7 = -1;                     /* E7 */
1302 static int hf_gsm_ss_suppressPrefCUG = -1;        /* NULL */
1303 static int hf_gsm_ss_suppressOA = -1;             /* NULL */
1304 static int hf_gsm_ss_ect_CallState = -1;          /* ECT_CallState */
1305 static int hf_gsm_ss_rdn = -1;                    /* RDN */
1306 static int hf_gsm_ss_callingName = -1;            /* Name */
1307 static int hf_gsm_ss_namePresentationAllowed = -1;  /* NameSet */
1308 static int hf_gsm_ss_presentationRestricted = -1;  /* NULL */
1309 static int hf_gsm_ss_nameUnavailable = -1;        /* NULL */
1310 static int hf_gsm_ss_namePresentationRestricted = -1;  /* NameSet */
1311 static int hf_gsm_ss_dataCodingScheme = -1;       /* USSD_DataCodingScheme */
1312 static int hf_gsm_ss_lengthInCharacters = -1;     /* INTEGER */
1313 static int hf_gsm_ss_nameString = -1;             /* USSD_String */
1314 static int hf_gsm_ss_presentationAllowedAddress = -1;  /* RemotePartyNumber */
1315 static int hf_gsm_ss_numberNotAvailableDueToInterworking = -1;  /* NULL */
1316 static int hf_gsm_ss_presentationRestrictedAddress = -1;  /* RemotePartyNumber */
1317 static int hf_gsm_ss_partyNumber = -1;            /* ISDN_AddressString */
1318 static int hf_gsm_ss_partyNumberSubaddress = -1;  /* ISDN_SubaddressString */
1319 static int hf_gsm_ss_deflectedToNumber = -1;      /* AddressString */
1320 static int hf_gsm_ss_deflectedToSubaddress = -1;  /* ISDN_SubaddressString */
1321 static int hf_gsm_ss_uUS_Service = -1;            /* UUS_Service */
1322 static int hf_gsm_ss_uUS_Required = -1;           /* BOOLEAN */
1323 static int hf_gsm_ss_notificationType = -1;       /* NotificationToMSUser */
1324 static int hf_gsm_ss_locationType = -1;           /* LocationType */
1325 static int hf_gsm_ss_lcsClientExternalID = -1;    /* LCSClientExternalID */
1326 static int hf_gsm_ss_lcsClientName = -1;          /* LCSClientName */
1327 static int hf_gsm_ss_lcsRequestorID = -1;         /* LCSRequestorID */
1328 static int hf_gsm_ss_lcsCodeword = -1;            /* LCSCodeword */
1329 static int hf_gsm_ss_lcsServiceTypeID = -1;       /* LCSServiceTypeID */
1330 static int hf_gsm_ss_verificationResponse = -1;   /* VerificationResponse */
1331 static int hf_gsm_ss_molr_Type = -1;              /* MOLR_Type */
1332 static int hf_gsm_ss_locationMethod = -1;         /* LocationMethod */
1333 static int hf_gsm_ss_lcs_QoS = -1;                /* LCS_QoS */
1334 static int hf_gsm_ss_mlc_Number = -1;             /* ISDN_AddressString */
1335 static int hf_gsm_ss_gpsAssistanceData = -1;      /* GPSAssistanceData */
1336 static int hf_gsm_ss_supportedGADShapes = -1;     /* SupportedGADShapes */
1337 static int hf_gsm_ss_ageOfLocationInfo = -1;      /* AgeOfLocationInformation */
1338 static int hf_gsm_ss_pseudonymIndicator = -1;     /* NULL */
1339 static int hf_gsm_ss_h_gmlc_address = -1;         /* GSN_Address */
1340 static int hf_gsm_ss_locationEstimate = -1;       /* Ext_GeographicalInformation */
1341 static int hf_gsm_ss_velocityEstimate = -1;       /* VelocityEstimate */
1342 static int hf_gsm_ss_referenceNumber = -1;        /* LCS_ReferenceNumber */
1343 static int hf_gsm_ss_periodicLDRInfo = -1;        /* PeriodicLDRInfo */
1344 static int hf_gsm_ss_locationUpdateRequest = -1;  /* NULL */
1345 static int hf_gsm_ss_sequenceNumber = -1;         /* SequenceNumber */
1346 static int hf_gsm_ss_terminationCause = -1;       /* TerminationCause */
1347 static int hf_gsm_ss_mo_lrShortCircuit = -1;      /* NULL */
1348 static int hf_gsm_ss_decipheringKeys = -1;        /* DecipheringKeys */
1349 static int hf_gsm_ss_add_LocationEstimate = -1;   /* Add_GeographicalInformation */
1350 static int hf_gsm_ss_reportingPLMNList = -1;      /* ReportingPLMNList */
1351 static int hf_gsm_ss_deferredLocationEventType = -1;  /* DeferredLocationEventType */
1352 static int hf_gsm_ss_areaEventInfo = -1;          /* AreaEventInfo */
1353 static int hf_gsm_ss_qoS = -1;                    /* LCS_QoS */
1354
1355 /*--- End of included file: packet-gsm_map-hf.c ---*/
1356 #line 136 "packet-gsmmap-template.c"
1357
1358 /* Initialize the subtree pointers */
1359 static gint ett_gsm_map = -1;
1360 static gint ett_gsm_map_InvokeId = -1;
1361 static gint ett_gsm_map_InvokePDU = -1;
1362 static gint ett_gsm_map_ReturnResultPDU = -1;
1363 static gint ett_gsm_map_ReturnErrorPDU = -1;
1364 static gint ett_gsm_map_ReturnResult_result = -1;
1365 static gint ett_gsm_map_ReturnError_result = -1;
1366 static gint ett_gsm_map_GSMMAPPDU = -1;
1367 static gint ett_gsm_map_ext_qos_subscribed = -1;
1368 static gint ett_gsm_map_pdptypenumber = -1;
1369 static gint ett_gsm_map_RAIdentity = -1; 
1370 static gint ett_gsm_map_LAIFixedLength = -1;
1371 static gint ett_gsm_map_isdn_address_string = -1;
1372 static gint ett_gsm_map_geo_desc = -1;
1373 static gint ett_gsm_map_LongSignalInfo = -1;
1374 static gint ett_gsm_map_RadioResourceInformation =-1;
1375 static gint ett_gsm_map_MSNetworkCapability =-1;
1376 static gint ett_gsm_map_MSRadioAccessCapability = -1;
1377 static gint ett_gsm_map_externalsignalinfo = -1;
1378
1379
1380 /*--- Included file: packet-gsm_map-ett.c ---*/
1381 #line 1 "packet-gsm_map-ett.c"
1382
1383 /* --- Module Remote-Operations-Information-Objects --- --- ---               */
1384
1385 static gint ett_Remote_Operations_Information_Objects_Code = -1;
1386
1387 /* --- Module MobileDomainDefinitions --- --- ---                             */
1388
1389
1390 /* --- Module MAP-ApplicationContexts --- --- ---                             */
1391
1392
1393 /* --- Module MAP-SS-Code --- --- ---                                         */
1394
1395
1396 /* --- Module MAP-BS-Code --- --- ---                                         */
1397
1398
1399 /* --- Module MAP-TS-Code --- --- ---                                         */
1400
1401
1402 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
1403
1404 static gint ett_gsm_map_ExtensionContainer = -1;
1405 static gint ett_gsm_map_SLR_ArgExtensionContainer = -1;
1406 static gint ett_gsm_map_PrivateExtensionList = -1;
1407 static gint ett_gsm_map_PrivateExtension = -1;
1408 static gint ett_gsm_map_PCS_Extensions = -1;
1409 static gint ett_gsm_map_SLR_Arg_PCS_Extensions = -1;
1410
1411 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
1412
1413 static gint ett_gsm_map_ExternalSignalInfo = -1;
1414 static gint ett_gsm_map_Ext_ExternalSignalInfo = -1;
1415 static gint ett_gsm_map_AccessNetworkSignalInfo = -1;
1416 static gint ett_gsm_map_Identity = -1;
1417 static gint ett_gsm_map_IMSI_WithLMSI = -1;
1418 static gint ett_gsm_map_SubscriberId = -1;
1419 static gint ett_gsm_map_HLR_List = -1;
1420 static gint ett_gsm_map_NAEA_PreferredCI = -1;
1421 static gint ett_gsm_map_SubscriberIdentity = -1;
1422 static gint ett_gsm_map_LCSClientExternalID = -1;
1423 static gint ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI = -1;
1424 static gint ett_gsm_map_BasicServiceCode = -1;
1425 static gint ett_gsm_map_Ext_BasicServiceCode = -1;
1426 static gint ett_gsm_map_EMLPP_Info = -1;
1427 static gint ett_gsm_map_MC_SS_Info = -1;
1428
1429 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
1430
1431 static gint ett_gsm_map_ss_RegisterSS_Arg = -1;
1432 static gint ett_gsm_map_ss_SS_Info = -1;
1433 static gint ett_gsm_map_ss_ForwardingInfo = -1;
1434 static gint ett_gsm_map_ss_ForwardingFeatureList = -1;
1435 static gint ett_gsm_map_ss_ForwardingFeature = -1;
1436 static gint ett_gsm_map_ss_CallBarringInfo = -1;
1437 static gint ett_gsm_map_ss_CallBarringFeatureList = -1;
1438 static gint ett_gsm_map_ss_CallBarringFeature = -1;
1439 static gint ett_gsm_map_ss_SS_Data = -1;
1440 static gint ett_gsm_map_ss_SS_SubscriptionOption = -1;
1441 static gint ett_gsm_map_ss_SS_ForBS_Code = -1;
1442 static gint ett_gsm_map_ss_GenericServiceInfo = -1;
1443 static gint ett_gsm_map_ss_CCBS_FeatureList = -1;
1444 static gint ett_gsm_map_ss_CCBS_Feature = -1;
1445 static gint ett_gsm_map_ss_InterrogateSS_Res = -1;
1446 static gint ett_gsm_map_ss_USSD_Arg = -1;
1447 static gint ett_gsm_map_ss_USSD_Res = -1;
1448 static gint ett_gsm_map_ss_SS_List = -1;
1449 static gint ett_gsm_map_ss_SS_InfoList = -1;
1450 static gint ett_gsm_map_ss_BasicServiceGroupList = -1;
1451 static gint ett_gsm_map_ss_SS_InvocationNotificationArg = -1;
1452 static gint ett_gsm_map_ss_SS_InvocationNotificationRes = -1;
1453 static gint ett_gsm_map_ss_SS_EventSpecification = -1;
1454 static gint ett_gsm_map_ss_RegisterCC_EntryArg = -1;
1455 static gint ett_gsm_map_ss_CCBS_Data = -1;
1456 static gint ett_gsm_map_ss_ServiceIndicator = -1;
1457 static gint ett_gsm_map_ss_RegisterCC_EntryRes = -1;
1458 static gint ett_gsm_map_ss_EraseCC_EntryArg = -1;
1459 static gint ett_gsm_map_ss_EraseCC_EntryRes = -1;
1460
1461 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
1462
1463 static gint ett_gsm_map_er_RoamingNotAllowedParam = -1;
1464 static gint ett_gsm_map_er_CallBarredParam = -1;
1465 static gint ett_gsm_map_er_ExtensibleCallBarredParam = -1;
1466 static gint ett_gsm_map_er_CUG_RejectParam = -1;
1467 static gint ett_gsm_map_er_SS_IncompatibilityCause = -1;
1468 static gint ett_gsm_map_er_SM_DeliveryFailureCause = -1;
1469 static gint ett_gsm_map_er_AbsentSubscriberSM_Param = -1;
1470 static gint ett_gsm_map_er_SystemFailureParam = -1;
1471 static gint ett_gsm_map_er_ExtensibleSystemFailureParam = -1;
1472 static gint ett_gsm_map_er_DataMissingParam = -1;
1473 static gint ett_gsm_map_er_UnexpectedDataParam = -1;
1474 static gint ett_gsm_map_er_FacilityNotSupParam = -1;
1475 static gint ett_gsm_map_er_OR_NotAllowedParam = -1;
1476 static gint ett_gsm_map_er_UnknownSubscriberParam = -1;
1477 static gint ett_gsm_map_er_NumberChangedParam = -1;
1478 static gint ett_gsm_map_er_UnidentifiedSubParam = -1;
1479 static gint ett_gsm_map_er_IllegalSubscriberParam = -1;
1480 static gint ett_gsm_map_er_IllegalEquipmentParam = -1;
1481 static gint ett_gsm_map_er_BearerServNotProvParam = -1;
1482 static gint ett_gsm_map_er_TeleservNotProvParam = -1;
1483 static gint ett_gsm_map_er_TracingBufferFullParam = -1;
1484 static gint ett_gsm_map_er_NoRoamingNbParam = -1;
1485 static gint ett_gsm_map_er_AbsentSubscriberParam = -1;
1486 static gint ett_gsm_map_er_BusySubscriberParam = -1;
1487 static gint ett_gsm_map_er_NoSubscriberReplyParam = -1;
1488 static gint ett_gsm_map_er_ForwardingViolationParam = -1;
1489 static gint ett_gsm_map_er_ForwardingFailedParam = -1;
1490 static gint ett_gsm_map_er_ATI_NotAllowedParam = -1;
1491 static gint ett_gsm_map_er_ATSI_NotAllowedParam = -1;
1492 static gint ett_gsm_map_er_ATM_NotAllowedParam = -1;
1493 static gint ett_gsm_map_er_IllegalSS_OperationParam = -1;
1494 static gint ett_gsm_map_er_SS_NotAvailableParam = -1;
1495 static gint ett_gsm_map_er_SS_SubscriptionViolationParam = -1;
1496 static gint ett_gsm_map_er_InformationNotAvailableParam = -1;
1497 static gint ett_gsm_map_er_SubBusyForMT_SMS_Param = -1;
1498 static gint ett_gsm_map_er_MessageWaitListFullParam = -1;
1499 static gint ett_gsm_map_er_ResourceLimitationParam = -1;
1500 static gint ett_gsm_map_er_NoGroupCallNbParam = -1;
1501 static gint ett_gsm_map_er_IncompatibleTerminalParam = -1;
1502 static gint ett_gsm_map_er_ShortTermDenialParam = -1;
1503 static gint ett_gsm_map_er_LongTermDenialParam = -1;
1504 static gint ett_gsm_map_er_UnauthorizedRequestingNetwork_Param = -1;
1505 static gint ett_gsm_map_er_UnauthorizedLCSClient_Param = -1;
1506 static gint ett_gsm_map_er_PositionMethodFailure_Param = -1;
1507 static gint ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param = -1;
1508 static gint ett_gsm_map_er_MM_EventNotSupported_Param = -1;
1509 static gint ett_gsm_map_er_TargetCellOutsideGCA_Param = -1;
1510 static gint ett_gsm_map_er_OngoingGroupCallParam = -1;
1511
1512 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
1513
1514 static gint ett_gsm_map_sm_RoutingInfoForSM_Arg = -1;
1515 static gint ett_gsm_map_sm_RoutingInfoForSM_Res = -1;
1516 static gint ett_gsm_map_sm_LocationInfoWithLMSI = -1;
1517 static gint ett_gsm_map_sm_Additional_Number = -1;
1518 static gint ett_gsm_map_sm_MO_ForwardSM_Arg = -1;
1519 static gint ett_gsm_map_sm_MO_ForwardSM_Res = -1;
1520 static gint ett_gsm_map_sm_MT_ForwardSM_Arg = -1;
1521 static gint ett_gsm_map_sm_MT_ForwardSM_Res = -1;
1522 static gint ett_gsm_map_sm_SM_RP_DA = -1;
1523 static gint ett_gsm_map_sm_SM_RP_OA = -1;
1524 static gint ett_gsm_map_sm_ReportSM_DeliveryStatusArg = -1;
1525 static gint ett_gsm_map_sm_ReportSM_DeliveryStatusRes = -1;
1526 static gint ett_gsm_map_sm_AlertServiceCentreArg = -1;
1527 static gint ett_gsm_map_sm_InformServiceCentreArg = -1;
1528 static gint ett_gsm_map_sm_MW_Status = -1;
1529 static gint ett_gsm_map_sm_ReadyForSM_Arg = -1;
1530 static gint ett_gsm_map_sm_ReadyForSM_Res = -1;
1531 static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg = -1;
1532 static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Res = -1;
1533 static gint ett_gsm_map_sm_DispatcherList = -1;
1534
1535 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
1536
1537 static gint ett_gsm_map_om_ActivateTraceModeArg = -1;
1538 static gint ett_gsm_map_om_TraceDepthList = -1;
1539 static gint ett_gsm_map_om_TraceNE_TypeList = -1;
1540 static gint ett_gsm_map_om_TraceInterfaceList = -1;
1541 static gint ett_gsm_map_om_MSC_S_InterfaceList = -1;
1542 static gint ett_gsm_map_om_MGW_InterfaceList = -1;
1543 static gint ett_gsm_map_om_SGSN_InterfaceList = -1;
1544 static gint ett_gsm_map_om_GGSN_InterfaceList = -1;
1545 static gint ett_gsm_map_om_RNC_InterfaceList = -1;
1546 static gint ett_gsm_map_om_BMSC_InterfaceList = -1;
1547 static gint ett_gsm_map_om_TraceEventList = -1;
1548 static gint ett_gsm_map_om_MSC_S_EventList = -1;
1549 static gint ett_gsm_map_om_MGW_EventList = -1;
1550 static gint ett_gsm_map_om_SGSN_EventList = -1;
1551 static gint ett_gsm_map_om_GGSN_EventList = -1;
1552 static gint ett_gsm_map_om_BMSC_EventList = -1;
1553 static gint ett_gsm_map_om_TracePropagationList = -1;
1554 static gint ett_gsm_map_om_ActivateTraceModeRes = -1;
1555 static gint ett_gsm_map_om_DeactivateTraceModeArg = -1;
1556 static gint ett_gsm_map_om_DeactivateTraceModeRes = -1;
1557
1558 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
1559
1560 static gint ett_gsm_map_ms_UpdateLocationArg = -1;
1561 static gint ett_gsm_map_ms_VLR_Capability = -1;
1562 static gint ett_gsm_map_ms_SupportedRAT_Types = -1;
1563 static gint ett_gsm_map_ms_SuperChargerInfo = -1;
1564 static gint ett_gsm_map_ms_SupportedLCS_CapabilitySets = -1;
1565 static gint ett_gsm_map_ms_UpdateLocationRes = -1;
1566 static gint ett_gsm_map_ms_ADD_Info = -1;
1567 static gint ett_gsm_map_ms_CancelLocationArg_U = -1;
1568 static gint ett_gsm_map_ms_CancelLocationRes = -1;
1569 static gint ett_gsm_map_ms_PurgeMS_Arg_U = -1;
1570 static gint ett_gsm_map_ms_PurgeMS_Res = -1;
1571 static gint ett_gsm_map_ms_SendIdentificationArg = -1;
1572 static gint ett_gsm_map_ms_SendIdentificationRes_U = -1;
1573 static gint ett_gsm_map_ms_AuthenticationSetList = -1;
1574 static gint ett_gsm_map_ms_TripletList = -1;
1575 static gint ett_gsm_map_ms_QuintupletList = -1;
1576 static gint ett_gsm_map_ms_AuthenticationTriplet = -1;
1577 static gint ett_gsm_map_ms_AuthenticationQuintuplet = -1;
1578 static gint ett_gsm_map_ms_CurrentSecurityContext = -1;
1579 static gint ett_gsm_map_ms_GSM_SecurityContextData = -1;
1580 static gint ett_gsm_map_ms_UMTS_SecurityContextData = -1;
1581 static gint ett_gsm_map_ms_AuthenticationFailureReportArg = -1;
1582 static gint ett_gsm_map_ms_AuthenticationFailureReportRes = -1;
1583 static gint ett_gsm_map_ms_UpdateGprsLocationArg = -1;
1584 static gint ett_gsm_map_ms_SGSN_Capability = -1;
1585 static gint ett_gsm_map_ms_UpdateGprsLocationRes = -1;
1586 static gint ett_gsm_map_ms_ForwardAccessSignalling_Arg_U = -1;
1587 static gint ett_gsm_map_ms_AllowedUMTS_Algorithms = -1;
1588 static gint ett_gsm_map_ms_PrepareHO_Arg_U = -1;
1589 static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverList = -1;
1590 static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo = -1;
1591 static gint ett_gsm_map_ms_RadioResourceList = -1;
1592 static gint ett_gsm_map_ms_RadioResource = -1;
1593 static gint ett_gsm_map_ms_PrepareHO_Res_U = -1;
1594 static gint ett_gsm_map_ms_SelectedUMTS_Algorithms = -1;
1595 static gint ett_gsm_map_ms_ChosenRadioResourceInformation = -1;
1596 static gint ett_gsm_map_ms_PrepareSubsequentHO_Arg_U = -1;
1597 static gint ett_gsm_map_ms_PrepareSubsequentHO_Res_U = -1;
1598 static gint ett_gsm_map_ms_ProcessAccessSignalling_Arg_U = -1;
1599 static gint ett_gsm_map_ms_SupportedCodecsList = -1;
1600 static gint ett_gsm_map_ms_CodecList = -1;
1601 static gint ett_gsm_map_ms_SendEndSignal_Arg_U = -1;
1602 static gint ett_gsm_map_ms_SendEndSignal_Res = -1;
1603 static gint ett_gsm_map_ms_RelocationNumberList = -1;
1604 static gint ett_gsm_map_ms_RelocationNumber = -1;
1605 static gint ett_gsm_map_ms_SendAuthenticationInfoArg = -1;
1606 static gint ett_gsm_map_ms_Re_synchronisationInfo = -1;
1607 static gint ett_gsm_map_ms_SendAuthenticationInfoRes_U = -1;
1608 static gint ett_gsm_map_ms_CheckIMEI_Arg = -1;
1609 static gint ett_gsm_map_ms_CheckIMEI_Res = -1;
1610 static gint ett_gsm_map_ms_RequestedEquipmentInfo = -1;
1611 static gint ett_gsm_map_ms_UESBI_Iu = -1;
1612 static gint ett_gsm_map_ms_InsertSubscriberDataArg = -1;
1613 static gint ett_gsm_map_ms_AccessRestrictionData = -1;
1614 static gint ett_gsm_map_ms_LCSInformation = -1;
1615 static gint ett_gsm_map_ms_GMLC_List = -1;
1616 static gint ett_gsm_map_ms_GPRSDataList = -1;
1617 static gint ett_gsm_map_ms_PDP_Context = -1;
1618 static gint ett_gsm_map_ms_GPRSSubscriptionData = -1;
1619 static gint ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo = -1;
1620 static gint ett_gsm_map_ms_GPRS_CSI = -1;
1621 static gint ett_gsm_map_ms_GPRS_CamelTDPDataList = -1;
1622 static gint ett_gsm_map_ms_GPRS_CamelTDPData = -1;
1623 static gint ett_gsm_map_ms_LSADataList = -1;
1624 static gint ett_gsm_map_ms_LSAData = -1;
1625 static gint ett_gsm_map_ms_LSAInformation = -1;
1626 static gint ett_gsm_map_ms_SubscriberData = -1;
1627 static gint ett_gsm_map_ms_BearerServiceList = -1;
1628 static gint ett_gsm_map_ms_TeleserviceList = -1;
1629 static gint ett_gsm_map_ms_ODB_Data = -1;
1630 static gint ett_gsm_map_ms_ODB_GeneralData = -1;
1631 static gint ett_gsm_map_ms_ODB_HPLMN_Data = -1;
1632 static gint ett_gsm_map_ms_Ext_SS_InfoList = -1;
1633 static gint ett_gsm_map_ms_Ext_SS_Info = -1;
1634 static gint ett_gsm_map_ms_Ext_ForwInfo = -1;
1635 static gint ett_gsm_map_ms_Ext_ForwFeatureList = -1;
1636 static gint ett_gsm_map_ms_Ext_ForwFeature = -1;
1637 static gint ett_gsm_map_ms_Ext_CallBarInfo = -1;
1638 static gint ett_gsm_map_ms_Ext_CallBarFeatureList = -1;
1639 static gint ett_gsm_map_ms_Ext_CallBarringFeature = -1;
1640 static gint ett_gsm_map_ms_CUG_Info = -1;
1641 static gint ett_gsm_map_ms_CUG_SubscriptionList = -1;
1642 static gint ett_gsm_map_ms_CUG_Subscription = -1;
1643 static gint ett_gsm_map_ms_CUG_FeatureList = -1;
1644 static gint ett_gsm_map_ms_Ext_BasicServiceGroupList = -1;
1645 static gint ett_gsm_map_ms_CUG_Feature = -1;
1646 static gint ett_gsm_map_ms_Ext_SS_Data = -1;
1647 static gint ett_gsm_map_ms_LCS_PrivacyExceptionList = -1;
1648 static gint ett_gsm_map_ms_LCS_PrivacyClass = -1;
1649 static gint ett_gsm_map_ms_ExternalClientList = -1;
1650 static gint ett_gsm_map_ms_PLMNClientList = -1;
1651 static gint ett_gsm_map_ms_Ext_ExternalClientList = -1;
1652 static gint ett_gsm_map_ms_ExternalClient = -1;
1653 static gint ett_gsm_map_ms_ServiceTypeList = -1;
1654 static gint ett_gsm_map_ms_ServiceType = -1;
1655 static gint ett_gsm_map_ms_MOLR_List = -1;
1656 static gint ett_gsm_map_ms_MOLR_Class = -1;
1657 static gint ett_gsm_map_ms_ZoneCodeList = -1;
1658 static gint ett_gsm_map_ms_InsertSubscriberDataRes = -1;
1659 static gint ett_gsm_map_ms_DeleteSubscriberDataArg = -1;
1660 static gint ett_gsm_map_ms_SpecificCSI_Withdraw = -1;
1661 static gint ett_gsm_map_ms_GPRSSubscriptionDataWithdraw = -1;
1662 static gint ett_gsm_map_ms_ContextIdList = -1;
1663 static gint ett_gsm_map_ms_LSAInformationWithdraw = -1;
1664 static gint ett_gsm_map_ms_LSAIdentityList = -1;
1665 static gint ett_gsm_map_ms_BasicServiceList = -1;
1666 static gint ett_gsm_map_ms_DeleteSubscriberDataRes = -1;
1667 static gint ett_gsm_map_ms_VlrCamelSubscriptionInfo = -1;
1668 static gint ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList = -1;
1669 static gint ett_gsm_map_ms_MT_smsCAMELTDP_Criteria = -1;
1670 static gint ett_gsm_map_ms_TPDU_TypeCriterion = -1;
1671 static gint ett_gsm_map_ms_D_CSI = -1;
1672 static gint ett_gsm_map_ms_DP_AnalysedInfoCriteriaList = -1;
1673 static gint ett_gsm_map_ms_DP_AnalysedInfoCriterium = -1;
1674 static gint ett_gsm_map_ms_SS_CSI = -1;
1675 static gint ett_gsm_map_ms_SS_CamelData = -1;
1676 static gint ett_gsm_map_ms_SS_EventList = -1;
1677 static gint ett_gsm_map_ms_O_CSI = -1;
1678 static gint ett_gsm_map_ms_O_BcsmCamelTDPDataList = -1;
1679 static gint ett_gsm_map_ms_O_BcsmCamelTDPData = -1;
1680 static gint ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList = -1;
1681 static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList = -1;
1682 static gint ett_gsm_map_ms_O_BcsmCamelTDP_Criteria = -1;
1683 static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria = -1;
1684 static gint ett_gsm_map_ms_DestinationNumberCriteria = -1;
1685 static gint ett_gsm_map_ms_DestinationNumberList = -1;
1686 static gint ett_gsm_map_ms_DestinationNumberLengthList = -1;
1687 static gint ett_gsm_map_ms_BasicServiceCriteria = -1;
1688 static gint ett_gsm_map_ms_O_CauseValueCriteria = -1;
1689 static gint ett_gsm_map_ms_T_CauseValueCriteria = -1;
1690 static gint ett_gsm_map_ms_SupportedCamelPhases = -1;
1691 static gint ett_gsm_map_ms_OfferedCamel4CSIs = -1;
1692 static gint ett_gsm_map_ms_OfferedCamel4Functionalities = -1;
1693 static gint ett_gsm_map_ms_SMS_CSI = -1;
1694 static gint ett_gsm_map_ms_SMS_CAMEL_TDP_DataList = -1;
1695 static gint ett_gsm_map_ms_SMS_CAMEL_TDP_Data = -1;
1696 static gint ett_gsm_map_ms_M_CSI = -1;
1697 static gint ett_gsm_map_ms_MG_CSI = -1;
1698 static gint ett_gsm_map_ms_MobilityTriggers = -1;
1699 static gint ett_gsm_map_ms_T_CSI = -1;
1700 static gint ett_gsm_map_ms_T_BcsmCamelTDPDataList = -1;
1701 static gint ett_gsm_map_ms_T_BcsmCamelTDPData = -1;
1702 static gint ett_gsm_map_ms_SendRoutingInfoForGprsArg = -1;
1703 static gint ett_gsm_map_ms_SendRoutingInfoForGprsRes = -1;
1704 static gint ett_gsm_map_ms_FailureReportArg = -1;
1705 static gint ett_gsm_map_ms_FailureReportRes = -1;
1706 static gint ett_gsm_map_ms_NoteMsPresentForGprsArg = -1;
1707 static gint ett_gsm_map_ms_NoteMsPresentForGprsRes = -1;
1708 static gint ett_gsm_map_ms_ResetArg = -1;
1709 static gint ett_gsm_map_ms_RestoreDataArg = -1;
1710 static gint ett_gsm_map_ms_RestoreDataRes = -1;
1711 static gint ett_gsm_map_ms_VBSDataList = -1;
1712 static gint ett_gsm_map_ms_VGCSDataList = -1;
1713 static gint ett_gsm_map_ms_VoiceGroupCallData = -1;
1714 static gint ett_gsm_map_ms_AdditionalSubscriptions = -1;
1715 static gint ett_gsm_map_ms_VoiceBroadcastData = -1;
1716 static gint ett_gsm_map_ms_ProvideSubscriberInfoArg = -1;
1717 static gint ett_gsm_map_ms_ProvideSubscriberInfoRes = -1;
1718 static gint ett_gsm_map_ms_SubscriberInfo = -1;
1719 static gint ett_gsm_map_ms_MNPInfoRes = -1;
1720 static gint ett_gsm_map_ms_GPRSMSClass = -1;
1721 static gint ett_gsm_map_ms_RequestedInfo = -1;
1722 static gint ett_gsm_map_ms_LocationInformation = -1;
1723 static gint ett_gsm_map_ms_LocationInformationGPRS = -1;
1724 static gint ett_gsm_map_ms_SubscriberState = -1;
1725 static gint ett_gsm_map_ms_PS_SubscriberState = -1;
1726 static gint ett_gsm_map_ms_PDP_ContextInfoList = -1;
1727 static gint ett_gsm_map_ms_PDP_ContextInfo = -1;
1728 static gint ett_gsm_map_ms_AnyTimeInterrogationArg = -1;
1729 static gint ett_gsm_map_ms_AnyTimeInterrogationRes = -1;
1730 static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg = -1;
1731 static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes = -1;
1732 static gint ett_gsm_map_ms_RequestedSubscriptionInfo = -1;
1733 static gint ett_gsm_map_ms_MSISDN_BS_List = -1;
1734 static gint ett_gsm_map_ms_MSISDN_BS = -1;
1735 static gint ett_gsm_map_ms_CallForwardingData = -1;
1736 static gint ett_gsm_map_ms_CallBarringData = -1;
1737 static gint ett_gsm_map_ms_ODB_Info = -1;
1738 static gint ett_gsm_map_ms_CAMEL_SubscriptionInfo = -1;
1739 static gint ett_gsm_map_ms_AnyTimeModificationArg = -1;
1740 static gint ett_gsm_map_ms_AnyTimeModificationRes = -1;
1741 static gint ett_gsm_map_ms_ModificationRequestFor_CF_Info = -1;
1742 static gint ett_gsm_map_ms_ModificationRequestFor_CB_Info = -1;
1743 static gint ett_gsm_map_ms_ModificationRequestFor_ODB_data = -1;
1744 static gint ett_gsm_map_ms_ModificationRequestFor_CSI = -1;
1745 static gint ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data = -1;
1746 static gint ett_gsm_map_ms_NoteSubscriberDataModifiedArg = -1;
1747 static gint ett_gsm_map_ms_NoteSubscriberDataModifiedRes = -1;
1748 static gint ett_gsm_map_ms_NoteMM_EventArg = -1;
1749 static gint ett_gsm_map_ms_NoteMM_EventRes = -1;
1750 static gint ett_gsm_map_ms_Ext_SS_InfoFor_CSE = -1;
1751 static gint ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE = -1;
1752 static gint ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE = -1;
1753
1754 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
1755
1756 static gint ett_gsm_map_ch_CUG_CheckInfo = -1;
1757 static gint ett_gsm_map_ch_SendRoutingInfoArg = -1;
1758 static gint ett_gsm_map_ch_SuppressMTSS = -1;
1759 static gint ett_gsm_map_ch_SendRoutingInfoRes_U = -1;
1760 static gint ett_gsm_map_ch_AllowedServices = -1;
1761 static gint ett_gsm_map_ch_CCBS_Indicators = -1;
1762 static gint ett_gsm_map_ch_RoutingInfo = -1;
1763 static gint ett_gsm_map_ch_ForwardingData = -1;
1764 static gint ett_gsm_map_ch_ProvideRoamingNumberArg = -1;
1765 static gint ett_gsm_map_ch_ProvideRoamingNumberRes = -1;
1766 static gint ett_gsm_map_ch_ResumeCallHandlingArg = -1;
1767 static gint ett_gsm_map_ch_UU_Data = -1;
1768 static gint ett_gsm_map_ch_ResumeCallHandlingRes = -1;
1769 static gint ett_gsm_map_ch_CamelInfo = -1;
1770 static gint ett_gsm_map_ch_ExtendedRoutingInfo = -1;
1771 static gint ett_gsm_map_ch_CamelRoutingInfo = -1;
1772 static gint ett_gsm_map_ch_GmscCamelSubscriptionInfo = -1;
1773 static gint ett_gsm_map_ch_SetReportingStateArg = -1;
1774 static gint ett_gsm_map_ch_SetReportingStateRes = -1;
1775 static gint ett_gsm_map_ch_StatusReportArg = -1;
1776 static gint ett_gsm_map_ch_EventReportData = -1;
1777 static gint ett_gsm_map_ch_CallReportData = -1;
1778 static gint ett_gsm_map_ch_StatusReportRes = -1;
1779 static gint ett_gsm_map_ch_RemoteUserFreeArg = -1;
1780 static gint ett_gsm_map_ch_RemoteUserFreeRes = -1;
1781 static gint ett_gsm_map_ch_IST_AlertArg = -1;
1782 static gint ett_gsm_map_ch_IST_AlertRes = -1;
1783 static gint ett_gsm_map_ch_IST_CommandArg = -1;
1784 static gint ett_gsm_map_ch_IST_CommandRes = -1;
1785 static gint ett_gsm_map_ch_ReleaseResourcesArg = -1;
1786 static gint ett_gsm_map_ch_ReleaseResourcesRes = -1;
1787
1788 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
1789
1790 static gint ett_gsm_map_lcs_RoutingInfoForLCS_Arg = -1;
1791 static gint ett_gsm_map_lcs_RoutingInfoForLCS_Res = -1;
1792 static gint ett_gsm_map_lcs_LCSLocationInfo = -1;
1793 static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Arg = -1;
1794 static gint ett_gsm_map_lcs_LocationType = -1;
1795 static gint ett_gsm_map_lcs_DeferredLocationEventType = -1;
1796 static gint ett_gsm_map_lcs_LCS_ClientID = -1;
1797 static gint ett_gsm_map_lcs_LCSClientName = -1;
1798 static gint ett_gsm_map_lcs_LCSRequestorID = -1;
1799 static gint ett_gsm_map_lcs_LCS_QoS = -1;
1800 static gint ett_gsm_map_lcs_ResponseTime = -1;
1801 static gint ett_gsm_map_lcs_SupportedGADShapes = -1;
1802 static gint ett_gsm_map_lcs_LCSCodeword = -1;
1803 static gint ett_gsm_map_lcs_LCS_PrivacyCheck = -1;
1804 static gint ett_gsm_map_lcs_AreaEventInfo = -1;
1805 static gint ett_gsm_map_lcs_AreaDefinition = -1;
1806 static gint ett_gsm_map_lcs_AreaList = -1;
1807 static gint ett_gsm_map_lcs_Area = -1;
1808 static gint ett_gsm_map_lcs_PeriodicLDRInfo = -1;
1809 static gint ett_gsm_map_lcs_ReportingPLMNList = -1;
1810 static gint ett_gsm_map_lcs_PLMNList = -1;
1811 static gint ett_gsm_map_lcs_ReportingPLMN = -1;
1812 static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Res = -1;
1813 static gint ett_gsm_map_lcs_SubscriberLocationReport_Arg = -1;
1814 static gint ett_gsm_map_lcs_Deferredmt_lrData = -1;
1815 static gint ett_gsm_map_lcs_SubscriberLocationReport_Res = -1;
1816
1817 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
1818
1819 static gint ett_gsm_map_gr_PrepareGroupCallArg = -1;
1820 static gint ett_gsm_map_gr_PrepareGroupCallRes = -1;
1821 static gint ett_gsm_map_gr_SendGroupCallEndSignalArg = -1;
1822 static gint ett_gsm_map_gr_SendGroupCallEndSignalRes = -1;
1823 static gint ett_gsm_map_gr_ForwardGroupCallSignallingArg = -1;
1824 static gint ett_gsm_map_gr_ProcessGroupCallSignallingArg = -1;
1825 static gint ett_gsm_map_gr_StateAttributes = -1;
1826 static gint ett_gsm_map_gr_SendGroupCallInfoArg = -1;
1827 static gint ett_gsm_map_gr_SendGroupCallInfoRes = -1;
1828
1829 /* --- Module MAP-DialogueInformation --- --- ---                             */
1830
1831 static gint ett_gsm_map_dialogue_MAP_DialoguePDU = -1;
1832 static gint ett_gsm_map_dialogue_MAP_OpenInfo = -1;
1833 static gint ett_gsm_map_dialogue_MAP_AcceptInfo = -1;
1834 static gint ett_gsm_map_dialogue_MAP_CloseInfo = -1;
1835 static gint ett_gsm_map_dialogue_MAP_RefuseInfo = -1;
1836 static gint ett_gsm_map_dialogue_MAP_UserAbortInfo = -1;
1837 static gint ett_gsm_map_dialogue_MAP_UserAbortChoice = -1;
1838 static gint ett_gsm_map_dialogue_MAP_ProviderAbortInfo = -1;
1839
1840 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
1841
1842
1843 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
1844
1845
1846 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
1847
1848
1849 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
1850
1851
1852 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
1853
1854
1855 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
1856
1857
1858 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
1859
1860
1861 /* --- Module MAP-Errors --- --- ---                                          */
1862
1863
1864 /* --- Module MAP-Protocol --- --- ---                                        */
1865
1866
1867 /* --- Module DummyMAP --- --- ---                                            */
1868
1869 static gint ett_gsm_old_Component = -1;
1870 static gint ett_gsm_old_Invoke = -1;
1871 static gint ett_gsm_old_ReturnResult = -1;
1872 static gint ett_gsm_old_T_resultretres = -1;
1873 static gint ett_gsm_old_ReturnError = -1;
1874 static gint ett_gsm_old_Reject = -1;
1875 static gint ett_gsm_old_T_invokeIDRej = -1;
1876 static gint ett_gsm_old_T_problem = -1;
1877 static gint ett_gsm_old_MAP_OPERATION = -1;
1878 static gint ett_gsm_old_MAP_ERROR = -1;
1879 static gint ett_gsm_old_Bss_APDU = -1;
1880 static gint ett_gsm_old_ProvideSIWFSNumberArg = -1;
1881 static gint ett_gsm_old_ProvideSIWFSNumberRes = -1;
1882 static gint ett_gsm_old_PurgeMSArgV2 = -1;
1883 static gint ett_gsm_old_PrepareHO_ArgOld = -1;
1884 static gint ett_gsm_old_PrepareHO_ResOld = -1;
1885 static gint ett_gsm_old_SendAuthenticationInfoResOld = -1;
1886 static gint ett_gsm_old_SendAuthenticationInfoResOld_item = -1;
1887 static gint ett_gsm_old_SendIdentificationResV2 = -1;
1888 static gint ett_gsm_old_TripletListold = -1;
1889 static gint ett_gsm_old_AuthenticationTriplet_v2 = -1;
1890 static gint ett_gsm_old_SIWFSSignallingModifyArg = -1;
1891 static gint ett_gsm_old_SIWFSSignallingModifyRes = -1;
1892 static gint ett_gsm_old_SecureTransportArg = -1;
1893 static gint ett_gsm_old_SecureTransportErrorParam = -1;
1894 static gint ett_gsm_old_SecureTransportRes = -1;
1895 static gint ett_gsm_old_SecurityHeader = -1;
1896 static gint ett_gsm_old_OriginalComponentIdentifier = -1;
1897 static gint ett_gsm_old_OperationCode = -1;
1898 static gint ett_gsm_old_ErrorCode = -1;
1899 static gint ett_gsm_old_PlmnContainer_U = -1;
1900 static gint ett_gsm_old_T_operatorSS_Code = -1;
1901 static gint ett_gsm_old_ForwardSM_Arg = -1;
1902 static gint ett_gsm_old_SM_RP_DAold = -1;
1903 static gint ett_gsm_old_SM_RP_OAold = -1;
1904 static gint ett_gsm_old_SendRoutingInfoArgV2 = -1;
1905 static gint ett_gsm_old_SendRoutingInfoResV2 = -1;
1906
1907 /* --- Module SS-DataTypes --- --- ---                                        */
1908
1909 static gint ett_gsm_ss_NotifySS_Arg = -1;
1910 static gint ett_gsm_ss_ForwardChargeAdviceArg = -1;
1911 static gint ett_gsm_ss_ChargingInformation = -1;
1912 static gint ett_gsm_ss_ForwardCUG_InfoArg = -1;
1913 static gint ett_gsm_ss_ECT_Indicator = -1;
1914 static gint ett_gsm_ss_NameIndicator = -1;
1915 static gint ett_gsm_ss_Name = -1;
1916 static gint ett_gsm_ss_NameSet = -1;
1917 static gint ett_gsm_ss_RDN = -1;
1918 static gint ett_gsm_ss_RemotePartyNumber = -1;
1919 static gint ett_gsm_ss_AccessRegisterCCEntryArg = -1;
1920 static gint ett_gsm_ss_CallDeflectionArg = -1;
1921 static gint ett_gsm_ss_UserUserServiceArg = -1;
1922 static gint ett_gsm_ss_LocationNotificationArg = -1;
1923 static gint ett_gsm_ss_LocationNotificationRes = -1;
1924 static gint ett_gsm_ss_LCS_MOLRArg = -1;
1925 static gint ett_gsm_ss_LCS_MOLRRes = -1;
1926 static gint ett_gsm_ss_LCS_AreaEventRequestArg = -1;
1927 static gint ett_gsm_ss_LCS_AreaEventReportArg = -1;
1928 static gint ett_gsm_ss_LCS_AreaEventCancellationArg = -1;
1929 static gint ett_gsm_ss_LCS_PeriodicLocationRequestArg = -1;
1930 static gint ett_gsm_ss_LCS_PeriodicLocationRequestRes = -1;
1931 static gint ett_gsm_ss_LCS_LocationUpdateArg = -1;
1932 static gint ett_gsm_ss_LCS_LocationUpdateRes = -1;
1933 static gint ett_gsm_ss_LCS_PeriodicLocationCancellationArg = -1;
1934
1935 /* --- Module SS-Operations --- --- ---                                       */
1936
1937
1938 /*--- End of included file: packet-gsm_map-ett.c ---*/
1939 #line 159 "packet-gsmmap-template.c"
1940
1941 static dissector_table_t        sms_dissector_table;    /* SMS TPDU */
1942 static dissector_handle_t       data_handle;
1943 static dissector_handle_t       ranap_handle;
1944 static dissector_handle_t       map_handle;
1945
1946 /* Preferenc settings default */
1947 #define MAX_SSN 254
1948 static range_t *global_ssn_range;
1949 static range_t *ssn_range;
1950
1951 /* Global variables */
1952 static guint32 opcode=0;
1953 static guint32 errorCode;
1954 static proto_tree *top_tree;
1955 static int application_context_version;
1956 static guint ProtocolId; 
1957 guint protocolId;
1958 guint AccessNetworkProtocolId;
1959 const char *obj_id = NULL;
1960 static int gsm_map_tap = -1;
1961
1962 /* Forward declarations */
1963 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
1964 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
1965 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
1966 const gchar* gsm_map_opr_code(guint32 val);
1967
1968 /* Value strings */
1969
1970 const value_string gsm_map_PDP_Type_Organisation_vals[] = {
1971   {  0, "ETSI" },
1972   {  1, "IETF" },
1973   { 0, NULL }
1974 };
1975
1976 const value_string gsm_map_ietf_defined_pdp_vals[] = {
1977   {  0x21, "IPv4 Address" },
1978   {  0x57, "IPv6 Address" },
1979   { 0, NULL }
1980 };
1981
1982 const value_string gsm_map_etsi_defined_pdp_vals[] = {
1983   {  1, "PPP" },
1984   { 0, NULL }
1985 };
1986
1987 char * unpack_digits(tvbuff_t *tvb, int offset){
1988
1989         int length;
1990         guint8 octet;
1991         int i=0;
1992         char *digit_str;
1993
1994         length = tvb_length(tvb);
1995         if (length < offset)
1996                 return "";
1997         digit_str = ep_alloc((length - offset)*2+1);
1998
1999         while ( offset < length ){
2000
2001                 octet = tvb_get_guint8(tvb,offset);
2002                 digit_str[i] = ((octet & 0x0f) + '0');
2003                 i++;
2004
2005                 /*
2006                  * unpack second value in byte
2007                  */
2008                 octet = octet >> 4;
2009
2010                 if (octet == 0x0f)      /* odd number bytes - hit filler */
2011                         break;
2012
2013                 digit_str[i] = ((octet & 0x0f) + '0');
2014                 i++;
2015                 offset++;
2016
2017         }
2018         digit_str[i]= '\0';
2019         return digit_str;
2020 }
2021
2022 /* returns value in kb/s */
2023 static guint
2024 gsm_map_calc_bitrate(guint8 value){
2025
2026         guint8 granularity;
2027         guint returnvalue; 
2028
2029         if (value == 0xff)
2030                 return 0;
2031
2032         granularity = value >> 6;
2033         returnvalue = value & 0x7f;
2034         switch (granularity){
2035         case 0:
2036                 break;
2037         case 1:
2038                 returnvalue = ((returnvalue - 0x40) << 3)+64;
2039                 break;
2040         case 2:
2041                 returnvalue = (returnvalue << 6)+576;
2042                 break;
2043         case 3:
2044                 returnvalue = (returnvalue << 6)+576;
2045                 break;
2046         }
2047         return returnvalue;
2048
2049 }
2050
2051 static void 
2052 dissect_gsm_map_ext_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx){
2053         int offset = 0;
2054     proto_tree *subtree;
2055         guint8 octet;
2056         guint16 value;
2057
2058         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext_qos_subscribed);
2059         /*  OCTET 1:
2060                 Allocation/Retention Priority (This octet encodes each priority level defined in
2061                 23.107 as the binary value of the priority level, declaration in 29.060)
2062                 Octets 2-9 are coded according to 3GPP TS 24.008[35] Quality of Service Octets
2063                 6-13.
2064          */
2065         /* Allocation/Retention Priority */
2066         proto_tree_add_item(subtree, hf_gsm_map_ext_qos_subscribed_pri, tvb, offset, 1, FALSE);
2067         offset++;
2068
2069         /* Quality of Service Octets 6-13.( Octet 2 - 9 Here) */
2070
2071         /* Traffic class, octet 6 (see 3GPP TS 23.107) Bits 8 7 6 */
2072         proto_tree_add_item(subtree, hf_gsm_map_qos_traffic_cls, tvb, offset, 1, FALSE);
2073         /* Delivery order, octet 6 (see 3GPP TS 23.107) Bits 5 4 */
2074         proto_tree_add_item(subtree, hf_gsm_map_qos_del_order, tvb, offset, 1, FALSE);
2075         /* Delivery of erroneous SDUs, octet 6 (see 3GPP TS 23.107) Bits 3 2 1 */
2076         proto_tree_add_item(subtree, hf_gsm_map_qos_del_of_err_sdu, tvb, offset, 1, FALSE);
2077         offset++;
2078
2079         /* Maximum SDU size, octet 7 (see 3GPP TS 23.107) */
2080         octet = tvb_get_guint8(tvb,offset);
2081         switch (octet){
2082         case 0:
2083                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum SDU size/Reserved");
2084                 break;
2085         case 0x93:
2086                 value = 1502;
2087                 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2088                 break;
2089         case 0x98:
2090                 value = 1510;
2091                 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2092                 break;
2093         case 0x99:
2094                 value = 1532;
2095                 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2096                 break;
2097         default:
2098                 if (octet<0x97){
2099                         value = octet * 10;
2100                         proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2101                 }else{
2102                         proto_tree_add_text(subtree, tvb, offset, 1, "Maximum SDU size value 0x%x not defined in TS 24.008",octet);
2103                 }                       
2104         }
2105         offset++;
2106
2107         /* Maximum bit rate for uplink, octet 8 */
2108         octet = tvb_get_guint8(tvb,offset);
2109         if (octet == 0 ){
2110                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for uplink/Reserved"  );
2111         }else{
2112                 proto_tree_add_uint(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2113         }
2114         offset++;
2115         /* Maximum bit rate for downlink, octet 9 (see 3GPP TS 23.107) */
2116         octet = tvb_get_guint8(tvb,offset);
2117         if (octet == 0 ){
2118                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for downlink/Reserved"  );
2119         }else{
2120                 proto_tree_add_uint(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2121         }
2122         offset++;
2123         /* Residual Bit Error Rate (BER), octet 10 (see 3GPP TS 23.107) Bits 8 7 6 5 */ 
2124         proto_tree_add_item(subtree, hf_gsm_map_qos_ber, tvb, offset, 1, FALSE);
2125         /* SDU error ratio, octet 10 (see 3GPP TS 23.107) */
2126         proto_tree_add_item(subtree, hf_gsm_map_qos_sdu_err_rat, tvb, offset, 1, FALSE);
2127         offset++;
2128
2129         /* Transfer delay, octet 11 (See 3GPP TS 23.107) Bits 8 7 6 5 4 3 */
2130         proto_tree_add_item(subtree, hf_gsm_map_qos_transfer_delay, tvb, offset, 1, FALSE);
2131         /* Traffic handling priority, octet 11 (see 3GPP TS 23.107) Bits 2 1 */
2132         proto_tree_add_item(subtree, hf_gsm_map_qos_traff_hdl_pri, tvb, offset, 1, FALSE);
2133         offset++;
2134
2135         /*      Guaranteed bit rate for uplink, octet 12 (See 3GPP TS 23.107)
2136                 Coding is identical to that of Maximum bit rate for uplink.
2137          */
2138         octet = tvb_get_guint8(tvb,offset);
2139         if (octet == 0 ){
2140                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for uplink/Reserved"  );
2141         }else{
2142                 proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2143         }
2144         offset++;
2145
2146         /*      Guaranteed bit rate for downlink, octet 13(See 3GPP TS 23.107)
2147                 Coding is identical to that of Maximum bit rate for uplink.
2148          */
2149         octet = tvb_get_guint8(tvb,offset);
2150         if (octet == 0 ){
2151                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for downlink/Reserved"  );
2152         }else{
2153                 proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2154         }
2155
2156 }
2157
2158 #define  ELLIPSOID_POINT 0
2159
2160
2161 /* TS 23 032 Table 2a: Coding of Type of Shape */
2162 static const value_string type_of_shape_vals[] = {
2163         { ELLIPSOID_POINT,              "Ellipsoid Point"},
2164         { 1,            "Ellipsoid point with uncertainty Circle"},
2165         { 3,            "Ellipsoid point with uncertainty Ellipse"},
2166         { 5,            "Polygon"},
2167         { 8,            "Ellipsoid point with altitude"},
2168         { 9,            "Ellipsoid point with altitude and uncertainty Ellipsoid"},
2169         { 10,           "Ellipsoid Arc"},
2170         { 0,    NULL }
2171 };
2172
2173 /* 3GPP TS 23.032 7.3.1 */
2174 static const value_string sign_of_latitude_vals[] = {
2175         { 0,            "North"},
2176         { 1,            "South"},
2177         { 0,    NULL }
2178 };
2179
2180 static const value_string dir_of_alt_vals[] = {
2181         { 0,            "Altitude expresses height"},
2182         { 1,            "Altitude expresses depth"},
2183         { 0,    NULL }
2184 };
2185
2186
2187 void
2188 dissect_geographical_description(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree){
2189
2190         proto_item *lat_item, *long_item, *major_item, *minor_item, *alt_item;
2191         /*proto_tree *subtree; */
2192
2193         guint8 type_of_shape;
2194         guint8 no_of_points;
2195         int offset = 0;
2196         int length;
2197         guint8 value;
2198         guint32 value32;
2199
2200         /*subtree = proto_item_add_subtree(item, ett_gsm_map_geo_desc);*/
2201
2202         length = tvb_reported_length_remaining(tvb,0);
2203         /* Geographical Location 
2204          * The Location Estimate field is composed of 1 or more octets with an internal structure 
2205          * according to section 7 in [23.032].
2206          */
2207         proto_tree_add_item(tree, hf_geo_loc_type_of_shape, tvb, 0, 1, FALSE);
2208         if (length<2)
2209                 return;
2210         type_of_shape = tvb_get_guint8(tvb,offset)>>4;
2211         switch (type_of_shape){
2212         case ELLIPSOID_POINT:   /* Ellipsoid Point */
2213         case 2:                                 /* Ellipsoid Point with uncertainty Circle */
2214         case 3:                                 /* Ellipsoid Point with uncertainty Ellipse */
2215         case 8:                                 /* Ellipsoid Point with Altitude */
2216         case 9:                                 /* Ellipsoid Point with altitude and uncertainty ellipsoid */
2217         case 10:                                /* Ellipsoid Arc */
2218                 offset++;
2219                 if (length<4)
2220                         return;
2221                 proto_tree_add_item(tree, hf_geo_loc_sign_of_lat, tvb, offset, 1, FALSE);
2222
2223                 value32 = tvb_get_ntoh24(tvb,offset)&0x7fffff;
2224                 /* convert degrees (X/0x7fffff) * 90 = degrees */
2225                 lat_item = proto_tree_add_item(tree, hf_geo_loc_deg_of_lat, tvb, offset, 3, FALSE);
2226                 proto_item_append_text(lat_item,"(%.5f degrees)", (((double)value32/8388607) * 90));
2227                 if (length<7)
2228                         return;
2229                 offset = offset + 3;
2230                 value32 = tvb_get_ntoh24(tvb,offset)&0x7fffff;
2231                 long_item = proto_tree_add_item(tree, hf_geo_loc_deg_of_long, tvb, offset, 3, FALSE);
2232                 /* (X/0xffffff) *360 = degrees */
2233                 proto_item_append_text(long_item,"(%.5f degrees)", (((double)value32/16777215) * 360));
2234                 offset = offset + 3;
2235                 if(type_of_shape==2){
2236                         /* Ellipsoid Point with uncertainty Circle */
2237                         if (length<8)
2238                                 return;
2239                         /* Uncertainty code */
2240                         proto_tree_add_item(tree, hf_geo_loc_uncertainty_code, tvb, offset, 1, FALSE);
2241                 }else if(type_of_shape==3){
2242                         /* Ellipsoid Point with uncertainty Ellipse */
2243                         /* Uncertainty semi-major octet 10
2244                          * To convert to metres 10*(((1.1)^X)-1) 
2245                          */
2246                         value = tvb_get_guint8(tvb,offset)&0x7f; 
2247                         major_item = proto_tree_add_item(tree, hf_geo_loc_uncertainty_semi_major, tvb, offset, 1, FALSE);
2248                         proto_item_append_text(major_item,"(%.1f m)", 10 * (pow(1.1, (double)value) - 1));
2249                         offset++;
2250                         /* Uncertainty semi-minor Octet 11
2251                          * To convert to metres 10*(((1.1)^X)-1) 
2252                          */
2253                         value = tvb_get_guint8(tvb,offset)&0x7f; 
2254                         minor_item = proto_tree_add_item(tree, hf_geo_loc_uncertainty_semi_minor, tvb, offset, 1, FALSE);
2255                         proto_item_append_text(minor_item,"(%.1f m)", 10 * (pow(1.1, (double)value) - 1));
2256                         offset++;
2257                         /* Orientation of major axis octet 12
2258                          * allowed value from 0-179 to convert 
2259                          * to actual degrees multiply by 2.
2260                          */
2261                         value = tvb_get_guint8(tvb,offset)&0x7f;
2262                         proto_tree_add_uint(tree, hf_geo_loc_orientation_of_major_axis, tvb, offset, 1, value*2);
2263                         offset++;
2264                         /* Confidence */
2265                         proto_tree_add_item(tree, hf_geo_loc_confidence, tvb, offset, 1, FALSE);
2266                 }else if(type_of_shape==8){
2267                         /* Ellipsoid Point with Altitude */
2268                         /*D: Direction of Altitude */
2269                         proto_tree_add_item(tree, hf_geo_loc_D, tvb, offset, 1, FALSE);
2270                         /* Altitude */
2271                         proto_tree_add_item(tree, hf_geo_loc_altitude, tvb, offset, 2, FALSE);
2272                 }else if(type_of_shape==9){
2273                         /* Ellipsoid Point with altitude and uncertainty ellipsoid */
2274                         /*D: Direction of Altitude octet 8,9 */
2275                         proto_tree_add_item(tree, hf_geo_loc_D, tvb, offset, 1, FALSE);
2276                         /* Altitude Octet 8,9*/
2277                         proto_tree_add_item(tree, hf_geo_loc_altitude, tvb, offset, 2, FALSE);
2278                         offset = offset +2;
2279                         /* Uncertainty semi-major octet 10
2280                          * To convert to metres 10*(((1.1)^X)-1) 
2281                          */
2282                         value = tvb_get_guint8(tvb,offset)&0x7f; 
2283                         major_item = proto_tree_add_item(tree, hf_geo_loc_uncertainty_semi_major, tvb, offset, 1, FALSE);
2284                         proto_item_append_text(major_item,"(%.1f m)", 10 * (pow(1.1, (double)value) - 1));
2285                         offset++;
2286                         /* Uncertainty semi-minor Octet 11
2287                          * To convert to metres 10*(((1.1)^X)-1) 
2288                          */
2289                         value = tvb_get_guint8(tvb,offset)&0x7f; 
2290                         minor_item = proto_tree_add_item(tree, hf_geo_loc_uncertainty_semi_minor, tvb, offset, 1, FALSE);
2291                         proto_item_append_text(minor_item,"(%.1f m)", 10 * (pow(1.1, (double)value) - 1));
2292                         offset++;
2293                         /* Orientation of major axis octet 12
2294                          * allowed value from 0-179 to convert 
2295                          * to actual degrees multiply by 2.
2296                          */
2297                         value = tvb_get_guint8(tvb,offset)&0x7f;
2298                         proto_tree_add_uint(tree, hf_geo_loc_orientation_of_major_axis, tvb, offset, 1, value*2);
2299                         offset++;
2300                         /* Uncertainty Altitude 13
2301                          * to convert to metres 45*(((1.025)^X)-1) 
2302                          */
2303                         value = tvb_get_guint8(tvb,offset)&0x7f; 
2304                         alt_item = proto_tree_add_item(tree, hf_geo_loc_uncertainty_altitude, tvb, offset, 1, FALSE);
2305                         proto_item_append_text(alt_item,"(%.1f m)", 45 * (pow(1.025, (double)value) - 1));
2306                         offset++;
2307                         /* Confidence octet 14
2308                          */
2309                         proto_tree_add_item(tree, hf_geo_loc_confidence, tvb, offset, 1, FALSE);
2310                 }else if(type_of_shape==10){
2311                         /* Ellipsoid Arc */
2312                         offset++;
2313                         /* Inner radius */
2314                         proto_tree_add_item(tree, hf_geo_loc_inner_radius, tvb, offset, 2, FALSE);
2315                         offset= offset +2;
2316                         /* Uncertainty radius */
2317                         proto_tree_add_item(tree, hf_geo_loc_uncertainty_radius, tvb, offset, 1, FALSE);
2318                         offset++;
2319                         /* Offset angle */
2320                         proto_tree_add_item(tree, hf_geo_loc_offset_angle, tvb, offset, 1, FALSE);
2321                         offset++;
2322                         /* Included angle */
2323                         proto_tree_add_item(tree, hf_geo_loc_included_angle, tvb, offset, 1, FALSE);
2324                         offset++;
2325                         /* Confidence */
2326                         proto_tree_add_item(tree, hf_geo_loc_confidence, tvb, offset, 1, FALSE);
2327                 }
2328
2329                 break;
2330         case 5:                                 /* Polygon */
2331                 /* Number of points */
2332                 no_of_points = tvb_get_guint8(tvb,offset)&0x0f;
2333                 proto_tree_add_item(tree, hf_geo_loc_no_of_points, tvb, offset, 1, FALSE);
2334                 /*
2335                 while ( no_of_points > 0){
2336                         offset++;
2337
2338                         no_of_points--;
2339                 }
2340                 */
2341                 break;
2342         default:
2343                 break;
2344         }
2345
2346 }
2347
2348 /*--- Included file: packet-gsm_map-fn.c ---*/
2349 #line 1 "packet-gsm_map-fn.c"
2350
2351 /* --- Module Remote-Operations-Information-Objects --- --- ---               */
2352
2353
2354
2355 static int
2356 dissect_Remote_Operations_Information_Objects_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2357   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2358                                   NULL);
2359
2360   return offset;
2361 }
2362
2363
2364
2365 static int
2366 dissect_Remote_Operations_Information_Objects_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2367   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2368
2369   return offset;
2370 }
2371
2372
2373 static const value_string Remote_Operations_Information_Objects_Code_vals[] = {
2374   {   0, "local" },
2375   {   1, "global" },
2376   { 0, NULL }
2377 };
2378
2379 static const ber_choice_t Remote_Operations_Information_Objects_Code_choice[] = {
2380   {   0, &hf_Remote_Operations_Information_Objects_local, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_Remote_Operations_Information_Objects_INTEGER },
2381   {   1, &hf_Remote_Operations_Information_Objects_global, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_Remote_Operations_Information_Objects_OBJECT_IDENTIFIER },
2382   { 0, NULL, 0, 0, 0, NULL }
2383 };
2384
2385 static int
2386 dissect_Remote_Operations_Information_Objects_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2387   offset = dissect_ber_choice(actx, tree, tvb, offset,
2388                                  Remote_Operations_Information_Objects_Code_choice, hf_index, ett_Remote_Operations_Information_Objects_Code,
2389                                  NULL);
2390
2391   return offset;
2392 }
2393
2394
2395
2396 static int
2397 dissect_Remote_Operations_Information_Objects_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2398   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2399                                   NULL);
2400
2401   return offset;
2402 }
2403
2404
2405 /* --- Module MobileDomainDefinitions --- --- ---                             */
2406
2407
2408 static const value_string MobileDomainDefinitions_CommonComponentId_vals[] = {
2409   {   0, "ac-Id" },
2410   {   1, "as-Id" },
2411   {   2, "ase-Id" },
2412   {   3, "moduleId" },
2413   {   4, "er-Id" },
2414   { 0, NULL }
2415 };
2416
2417
2418 static int
2419 dissect_MobileDomainDefinitions_CommonComponentId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2420   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2421                                   NULL);
2422
2423   return offset;
2424 }
2425
2426
2427 /* --- Module MAP-ApplicationContexts --- --- ---                             */
2428
2429
2430 /* --- Module MAP-SS-Code --- --- ---                                         */
2431
2432
2433
2434 int
2435 dissect_gsm_map_SS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2436   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2437                                        NULL);
2438
2439   return offset;
2440 }
2441
2442
2443 /* --- Module MAP-BS-Code --- --- ---                                         */
2444
2445
2446
2447 static int
2448 dissect_gsm_map_BearerServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2449   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2450                                        NULL);
2451
2452   return offset;
2453 }
2454
2455
2456
2457 static int
2458 dissect_gsm_map_Ext_BearerServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2459   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2460                                        NULL);
2461
2462   return offset;
2463 }
2464
2465
2466 /* --- Module MAP-TS-Code --- --- ---                                         */
2467
2468
2469
2470 static int
2471 dissect_gsm_map_TeleserviceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2472   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2473                                        NULL);
2474
2475   return offset;
2476 }
2477
2478
2479
2480 static int
2481 dissect_gsm_map_Ext_TeleserviceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2482   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2483                                        NULL);
2484
2485   return offset;
2486 }
2487
2488
2489 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
2490
2491
2492
2493 static int
2494 dissect_gsm_map_T_extId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2495   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &obj_id);
2496
2497   return offset;
2498 }
2499
2500
2501
2502 static int
2503 dissect_gsm_map_T_extType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2504 #line 155 "gsmmap.cnf"
2505   proto_tree_add_text(tree, tvb, offset, -1, "Extension Data");
2506   if (obj_id){
2507          offset=call_ber_oid_callback(obj_id, tvb, offset, actx->pinfo, tree);
2508   }else{
2509          call_dissector(data_handle, tvb, actx->pinfo, tree);
2510          offset = tvb_length_remaining(tvb,offset);
2511   }     
2512
2513
2514
2515   return offset;
2516 }
2517
2518
2519 static const ber_sequence_t gsm_map_PrivateExtension_sequence[] = {
2520   { &hf_gsm_map_extId       , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extId },
2521   { &hf_gsm_map_extType     , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extType },
2522   { NULL, 0, 0, 0, NULL }
2523 };
2524
2525 static int
2526 dissect_gsm_map_PrivateExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2527   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2528                                    gsm_map_PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension);
2529
2530   return offset;
2531 }
2532
2533
2534 static const ber_sequence_t gsm_map_PrivateExtensionList_sequence_of[1] = {
2535   { &hf_gsm_map_PrivateExtensionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PrivateExtension },
2536 };
2537
2538 static int
2539 dissect_gsm_map_PrivateExtensionList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2540   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2541                                       gsm_map_PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList);
2542
2543   return offset;
2544 }
2545
2546
2547 static const ber_sequence_t gsm_map_PCS_Extensions_sequence[] = {
2548   { NULL, 0, 0, 0, NULL }
2549 };
2550
2551 static int
2552 dissect_gsm_map_PCS_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2553   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2554                                    gsm_map_PCS_Extensions_sequence, hf_index, ett_gsm_map_PCS_Extensions);
2555
2556   return offset;
2557 }
2558
2559
2560 static const ber_sequence_t gsm_map_ExtensionContainer_sequence[] = {
2561   { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList },
2562   { &hf_gsm_map_pcs_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PCS_Extensions },
2563   { NULL, 0, 0, 0, NULL }
2564 };
2565
2566 int
2567 dissect_gsm_map_ExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2568   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2569                                    gsm_map_ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer);
2570
2571   return offset;
2572 }
2573
2574
2575
2576 static int
2577 dissect_gsm_map_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2578   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
2579
2580   return offset;
2581 }
2582
2583
2584 static const ber_sequence_t gsm_map_SLR_Arg_PCS_Extensions_sequence[] = {
2585   { &hf_gsm_map_na_ESRK_Request, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NULL },
2586   { NULL, 0, 0, 0, NULL }
2587 };
2588
2589 static int
2590 dissect_gsm_map_SLR_Arg_PCS_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2591   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2592                                    gsm_map_SLR_Arg_PCS_Extensions_sequence, hf_index, ett_gsm_map_SLR_Arg_PCS_Extensions);
2593
2594   return offset;
2595 }
2596
2597
2598 static const ber_sequence_t gsm_map_SLR_ArgExtensionContainer_sequence[] = {
2599   { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList },
2600   { &hf_gsm_map_slr_Arg_PCS_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_Arg_PCS_Extensions },
2601   { NULL, 0, 0, 0, NULL }
2602 };
2603
2604 static int
2605 dissect_gsm_map_SLR_ArgExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2606   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2607                                    gsm_map_SLR_ArgExtensionContainer_sequence, hf_index, ett_gsm_map_SLR_ArgExtensionContainer);
2608
2609   return offset;
2610 }
2611
2612
2613 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
2614
2615
2616
2617 static int
2618 dissect_gsm_map_TBCD_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2619 #line 194 "gsmmap.cnf"
2620  tvbuff_t       *parameter_tvb;
2621  char           *digit_str;
2622
2623    offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2624                                        &parameter_tvb);
2625
2626
2627  if (!parameter_tvb)
2628         return offset;
2629
2630  digit_str = unpack_digits(parameter_tvb, 0);
2631  proto_tree_add_string(tree, hf_gsm_map_TBCD_digits, parameter_tvb, 0, -1, digit_str);
2632
2633
2634
2635   return offset;
2636 }
2637
2638
2639
2640 int
2641 dissect_gsm_map_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2642 #line 164 "gsmmap.cnf"
2643
2644  tvbuff_t       *parameter_tvb;
2645  char           *digit_str;
2646  guint8         octet;
2647  guint8         na;
2648  guint8         np;
2649  proto_tree *subtree;
2650
2651   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2652                                        &parameter_tvb);
2653
2654
2655  if (!parameter_tvb)
2656         return offset;
2657
2658  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_isdn_address_string);
2659
2660  proto_tree_add_item(subtree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
2661  proto_tree_add_item(subtree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
2662  proto_tree_add_item(subtree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
2663
2664  digit_str = unpack_digits(parameter_tvb, 1);
2665
2666  proto_tree_add_string(subtree, hf_gsm_map_address_digits, parameter_tvb, 1, -1, digit_str);
2667
2668  octet = tvb_get_guint8(parameter_tvb,0);
2669  na = (octet & 0x70)>>4;
2670  np = octet & 0x0f;
2671  if ((na == 1) && (np==1))/*International Number & E164*/
2672         dissect_e164_cc(parameter_tvb, subtree, 1, TRUE);
2673
2674
2675
2676   return offset;
2677 }
2678
2679
2680
2681 int
2682 dissect_gsm_map_ISDN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2683   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
2684
2685   return offset;
2686 }
2687
2688
2689
2690 static int
2691 dissect_gsm_map_FTN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2692   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
2693
2694   return offset;
2695 }
2696
2697
2698
2699 int
2700 dissect_gsm_map_ISDN_SubaddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2701   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2702                                        NULL);
2703
2704   return offset;
2705 }
2706
2707
2708 static const value_string gsm_map_ProtocolId_vals[] = {
2709   {   1, "gsm-0408" },
2710   {   2, "gsm-0806" },
2711   {   3, "gsm-BSSMAP" },
2712   {   4, "ets-300102-1" },
2713   { 0, NULL }
2714 };
2715
2716
2717 static int
2718 dissect_gsm_map_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2719   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2720                                   &ProtocolId);
2721
2722   return offset;
2723 }
2724
2725
2726
2727 static int
2728 dissect_gsm_map_SignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2729 #line 266 "gsmmap.cnf"
2730  tvbuff_t       *parameter_tvb;
2731
2732    offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2733                                        &parameter_tvb);
2734
2735         actx->value_ptr = parameter_tvb;
2736
2737
2738
2739   return offset;
2740 }
2741
2742
2743 static const ber_sequence_t gsm_map_ExternalSignalInfo_sequence[] = {
2744   { &hf_gsm_map_protocolId  , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId },
2745   { &hf_gsm_map_signalInfo  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
2746   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
2747   { NULL, 0, 0, 0, NULL }
2748 };
2749
2750 static int
2751 dissect_gsm_map_ExternalSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2752 #line 539 "gsmmap.cnf"
2753  guint8         octet;
2754  guint8         length;
2755  tvbuff_t       *next_tvb;
2756  proto_tree *subtree;
2757
2758  ProtocolId = 0xffffffff;
2759   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2760                                    gsm_map_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_ExternalSignalInfo);
2761  
2762 if (!actx->value_ptr)
2763         return offset;
2764  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo);
2765  switch (ProtocolId){
2766         /* gsm-0408 */
2767         case 1:
2768                 break;
2769         /* gsm-0806 */
2770         case 2:
2771                 break;
2772         /* gsm-BSSMAP TODO Is it correct to stripp off two first octets here?*/
2773         case 3:
2774                 octet = tvb_get_guint8(actx->value_ptr,0);
2775                 length = tvb_get_guint8(actx->value_ptr,1);
2776                 if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
2777                         next_tvb = tvb_new_subset(actx->value_ptr, 2, -1, -1);
2778                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
2779                 }
2780                 break;
2781         /* ets-300102-1 (~Q.931 ) */
2782         case 4:
2783                 octet = tvb_get_guint8(actx->value_ptr,0);
2784                 length = tvb_get_guint8(actx->value_ptr,1);
2785                 if ( octet == 4 )
2786                         dissect_q931_bearer_capability_ie(actx->value_ptr, 2, length, subtree);
2787                 break;
2788         default:
2789                 break;
2790 }
2791
2792
2793
2794
2795   return offset;
2796 }
2797
2798
2799 static const value_string gsm_map_Ext_ProtocolId_vals[] = {
2800   {   1, "ets-300356" },
2801   { 0, NULL }
2802 };
2803
2804
2805 static int
2806 dissect_gsm_map_Ext_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2807   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2808                                   NULL);
2809
2810   return offset;
2811 }
2812
2813
2814 static const ber_sequence_t gsm_map_Ext_ExternalSignalInfo_sequence[] = {
2815   { &hf_gsm_map_ext_ProtocolId, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_ProtocolId },
2816   { &hf_gsm_map_signalInfo  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
2817   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
2818   { NULL, 0, 0, 0, NULL }
2819 };
2820
2821 static int
2822 dissect_gsm_map_Ext_ExternalSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2823   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2824                                    gsm_map_Ext_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_Ext_ExternalSignalInfo);
2825
2826   return offset;
2827 }
2828
2829
2830 static const value_string gsm_map_AccessNetworkProtocolId_vals[] = {
2831   {   1, "ts3G-48006" },
2832   {   2, "ts3G-25413" },
2833   { 0, NULL }
2834 };
2835
2836
2837 static int
2838 dissect_gsm_map_AccessNetworkProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2839   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2840                                   NULL);
2841
2842   return offset;
2843 }
2844
2845
2846
2847 static int
2848 dissect_gsm_map_LongSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2849 #line 213 "gsmmap.cnf"
2850
2851  tvbuff_t       *parameter_tvb;
2852  guint8         octet;
2853  guint8         length;
2854  tvbuff_t       *next_tvb;
2855  proto_tree *subtree;
2856
2857
2858   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2859                                        &parameter_tvb);
2860
2861
2862  if (!parameter_tvb)
2863         return offset;
2864
2865  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LongSignalInfo); 
2866
2867  switch (AccessNetworkProtocolId){
2868         /* ts3G-48006 */
2869         case 1:
2870                 octet = tvb_get_guint8(parameter_tvb,0);
2871                 length = tvb_get_guint8(parameter_tvb,1);
2872                 if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
2873                         /* gsm-BSSMAP? */
2874                         next_tvb = tvb_new_subset(parameter_tvb, 2, -1, -1);
2875                         dissect_bssmap(next_tvb, actx->pinfo, tree);
2876                 }
2877                 break;
2878         /* ts3G-25413 */
2879         case 2:
2880                 call_dissector(ranap_handle, parameter_tvb, actx->pinfo, tree); 
2881                 break;
2882         default:
2883                 break;
2884
2885  }
2886
2887
2888   return offset;
2889 }
2890
2891
2892 static const ber_sequence_t gsm_map_AccessNetworkSignalInfo_sequence[] = {
2893   { &hf_gsm_map_accessNetworkProtocolId, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkProtocolId },
2894   { &hf_gsm_map_signalInfo_01, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LongSignalInfo },
2895   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
2896   { NULL, 0, 0, 0, NULL }
2897 };
2898
2899 static int
2900 dissect_gsm_map_AccessNetworkSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2901   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2902                                    gsm_map_AccessNetworkSignalInfo_sequence, hf_index, ett_gsm_map_AccessNetworkSignalInfo);
2903
2904   return offset;
2905 }
2906
2907
2908
2909 int
2910 dissect_gsm_map_AlertingPattern(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2911   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2912                                        NULL);
2913
2914   return offset;
2915 }
2916
2917
2918
2919 int
2920 dissect_gsm_map_IMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2921   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
2922
2923   return offset;
2924 }
2925
2926
2927
2928 static int
2929 dissect_gsm_map_LMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2930   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2931                                        NULL);
2932
2933   return offset;
2934 }
2935
2936
2937 static const ber_sequence_t gsm_map_IMSI_WithLMSI_sequence[] = {
2938   { &hf_gsm_map_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
2939   { &hf_gsm_map_lmsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
2940   { NULL, 0, 0, 0, NULL }
2941 };
2942
2943 static int
2944 dissect_gsm_map_IMSI_WithLMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2945   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2946                                    gsm_map_IMSI_WithLMSI_sequence, hf_index, ett_gsm_map_IMSI_WithLMSI);
2947
2948   return offset;
2949 }
2950
2951
2952 static const value_string gsm_map_Identity_vals[] = {
2953   {   0, "imsi" },
2954   {   1, "imsi-WithLMSI" },
2955   { 0, NULL }
2956 };
2957
2958 static const ber_choice_t gsm_map_Identity_choice[] = {
2959   {   0, &hf_gsm_map_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
2960   {   1, &hf_gsm_map_imsi_WithLMSI, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI_WithLMSI },
2961   { 0, NULL, 0, 0, 0, NULL }
2962 };
2963
2964 static int
2965 dissect_gsm_map_Identity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2966   offset = dissect_ber_choice(actx, tree, tvb, offset,
2967                                  gsm_map_Identity_choice, hf_index, ett_gsm_map_Identity,
2968                                  NULL);
2969
2970   return offset;
2971 }
2972
2973
2974
2975 static int
2976 dissect_gsm_map_ASCI_CallReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2977   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
2978
2979   return offset;
2980 }
2981
2982
2983
2984 static int
2985 dissect_gsm_map_TMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2986   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2987                                        NULL);
2988
2989   return offset;
2990 }
2991
2992
2993 static const value_string gsm_map_SubscriberId_vals[] = {
2994   {   0, "imsi" },
2995   {   1, "tmsi" },
2996   { 0, NULL }
2997 };
2998
2999 static const ber_choice_t gsm_map_SubscriberId_choice[] = {
3000   {   0, &hf_gsm_map_imsi        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
3001   {   1, &hf_gsm_map_tmsi        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_TMSI },
3002   { 0, NULL, 0, 0, 0, NULL }
3003 };
3004
3005 static int
3006 dissect_gsm_map_SubscriberId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3007   offset = dissect_ber_choice(actx, tree, tvb, offset,
3008                                  gsm_map_SubscriberId_choice, hf_index, ett_gsm_map_SubscriberId,
3009                                  NULL);
3010
3011   return offset;
3012 }
3013
3014
3015
3016 int
3017 dissect_gsm_map_IMEI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3018   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
3019
3020   return offset;
3021 }
3022
3023
3024
3025 static int
3026 dissect_gsm_map_HLR_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3027   offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
3028
3029   return offset;
3030 }
3031
3032
3033 static const ber_sequence_t gsm_map_HLR_List_sequence_of[1] = {
3034   { &hf_gsm_map_HLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_Id },
3035 };
3036
3037 static int
3038 dissect_gsm_map_HLR_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3039   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3040                                       gsm_map_HLR_List_sequence_of, hf_index, ett_gsm_map_HLR_List);
3041
3042   return offset;
3043 }
3044
3045
3046
3047 static int
3048 dissect_gsm_map_GlobalCellId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3049   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3050                                        NULL);
3051
3052   return offset;
3053 }
3054
3055
3056 static const value_string gsm_map_NetworkResource_vals[] = {
3057   {   0, "plmn" },
3058   {   1, "hlr" },
3059   {   2, "vlr" },
3060   {   3, "pvlr" },
3061   {   4, "controllingMSC" },
3062   {   5, "vmsc" },
3063   {   6, "eir" },
3064   {   7, "rss" },
3065   { 0, NULL }
3066 };
3067
3068
3069 static int
3070 dissect_gsm_map_NetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3071   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3072                                   NULL);
3073
3074   return offset;
3075 }
3076
3077
3078 static const value_string gsm_map_AdditionalNetworkResource_vals[] = {
3079   {   0, "sgsn" },
3080   {   1, "ggsn" },
3081   {   2, "gmlc" },
3082   {   3, "gsmSCF" },
3083   {   4, "nplr" },
3084   {   5, "auc" },
3085   { 0, NULL }
3086 };
3087
3088
3089 static int
3090 dissect_gsm_map_AdditionalNetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3091   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3092                                   NULL);
3093
3094   return offset;
3095 }
3096
3097
3098
3099 static int
3100 dissect_gsm_map_NAEA_CIC(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3101   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3102                                        NULL);
3103
3104   return offset;
3105 }
3106
3107
3108 static const ber_sequence_t gsm_map_NAEA_PreferredCI_sequence[] = {
3109   { &hf_gsm_map_naea_PreferredCIC, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_CIC },
3110   { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
3111   { NULL, 0, 0, 0, NULL }
3112 };
3113
3114 static int
3115 dissect_gsm_map_NAEA_PreferredCI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3116   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3117                                    gsm_map_NAEA_PreferredCI_sequence, hf_index, ett_gsm_map_NAEA_PreferredCI);
3118
3119   return offset;
3120 }
3121
3122
3123 static const value_string gsm_map_SubscriberIdentity_vals[] = {
3124   {   0, "imsi" },
3125   {   1, "msisdn" },
3126   { 0, NULL }
3127 };
3128
3129 static const ber_choice_t gsm_map_SubscriberIdentity_choice[] = {
3130   {   0, &hf_gsm_map_imsi        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
3131   {   1, &hf_gsm_map_msisdn      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3132   { 0, NULL, 0, 0, 0, NULL }
3133 };
3134
3135 static int
3136 dissect_gsm_map_SubscriberIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3137   offset = dissect_ber_choice(actx, tree, tvb, offset,
3138                                  gsm_map_SubscriberIdentity_choice, hf_index, ett_gsm_map_SubscriberIdentity,
3139                                  NULL);
3140
3141   return offset;
3142 }
3143
3144
3145 static const ber_sequence_t gsm_map_LCSClientExternalID_sequence[] = {
3146   { &hf_gsm_map_externalAddress, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3147   { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
3148   { NULL, 0, 0, 0, NULL }
3149 };
3150
3151 int
3152 dissect_gsm_map_LCSClientExternalID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3153   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3154                                    gsm_map_LCSClientExternalID_sequence, hf_index, ett_gsm_map_LCSClientExternalID);
3155
3156   return offset;
3157 }
3158
3159
3160 static const value_string gsm_map_LCSClientInternalID_vals[] = {
3161   {   0, "broadcastService" },
3162   {   1, "o-andM-HPLMN" },
3163   {   2, "o-andM-VPLMN" },
3164   {   3, "anonymousLocation" },
3165   {   4, "targetMSsubscribedService" },
3166   { 0, NULL }
3167 };
3168
3169
3170 static int
3171 dissect_gsm_map_LCSClientInternalID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3172   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3173                                   NULL);
3174
3175   return offset;
3176 }
3177
3178
3179 const value_string gsm_map_LCSServiceTypeID_vals[] = {
3180   {   0, "emergencyServices" },
3181   {   1, "emergencyAlertServices" },
3182   {   2, "personTracking" },
3183   {   3, "fleetManagement" },
3184   {   4, "assetManagement" },
3185   {   5, "trafficCongestionReporting" },
3186   {   6, "roadsideAssistance" },
3187   {   7, "routingToNearestCommercialEnterprise" },
3188   {   8, "navigation" },
3189   {   9, "citySightseeing" },
3190   {  10, "localizedAdvertising" },
3191   {  11, "mobileYellowPages" },
3192   {  12, "trafficAndPublicTransportationInfo" },
3193   {  13, "weather" },
3194   {  14, "assetAndServiceFinding" },
3195   {  15, "gaming" },
3196   {  16, "findYourFriend" },
3197   {  17, "dating" },
3198   {  18, "chatting" },
3199   {  19, "routeFinding" },
3200   {  20, "whereAmI" },
3201   {  64, "serv64" },
3202   {  65, "serv65" },
3203   {  66, "serv66" },
3204   {  67, "serv67" },
3205   {  68, "serv68" },
3206   {  69, "serv69" },
3207   {  70, "serv70" },
3208   {  71, "serv71" },
3209   {  72, "serv72" },
3210   {  73, "serv73" },
3211   {  74, "serv74" },
3212   {  75, "serv75" },
3213   {  76, "serv76" },
3214   {  77, "serv77" },
3215   {  78, "serv78" },
3216   {  79, "serv79" },
3217   {  80, "serv80" },
3218   {  81, "serv81" },
3219   {  82, "serv82" },
3220   {  83, "serv83" },
3221   {  84, "serv84" },
3222   {  85, "serv85" },
3223   {  86, "serv86" },
3224   {  87, "serv87" },
3225   {  88, "serv88" },
3226   {  89, "serv89" },
3227   {  90, "serv90" },
3228   {  91, "serv91" },
3229   {  92, "serv92" },
3230   {  93, "serv93" },
3231   {  94, "serv94" },
3232   {  95, "serv95" },
3233   {  96, "serv96" },
3234   {  97, "serv97" },
3235   {  98, "serv98" },
3236   {  99, "serv99" },
3237   { 100, "serv100" },
3238   { 101, "serv101" },
3239   { 102, "serv102" },
3240   { 103, "serv103" },
3241   { 104, "serv104" },
3242   { 105, "serv105" },
3243   { 106, "serv106" },
3244   { 107, "serv107" },
3245   { 108, "serv108" },
3246   { 109, "serv109" },
3247   { 110, "serv110" },
3248   { 111, "serv111" },
3249   { 112, "serv112" },
3250   { 113, "serv113" },
3251   { 114, "serv114" },
3252   { 115, "serv115" },
3253   { 116, "serv116" },
3254   { 117, "serv117" },
3255   { 118, "serv118" },
3256   { 119, "serv119" },
3257   { 120, "serv120" },
3258   { 121, "serv121" },
3259   { 122, "serv122" },
3260   { 123, "serv123" },
3261   { 124, "serv124" },
3262   { 125, "serv125" },
3263   { 126, "serv126" },
3264   { 127, "serv127" },
3265   { 0, NULL }
3266 };
3267
3268
3269 int
3270 dissect_gsm_map_LCSServiceTypeID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3271   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3272                                   NULL);
3273
3274   return offset;
3275 }
3276
3277
3278
3279 static int
3280 dissect_gsm_map_PLMN_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3281   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3282                                        NULL);
3283
3284   return offset;
3285 }
3286
3287
3288
3289 int
3290 dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3291   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3292                                        NULL);
3293
3294   return offset;
3295 }
3296
3297
3298
3299 int
3300 dissect_gsm_map_LAIFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3301 #line 477 "gsmmap.cnf"
3302
3303         tvbuff_t        *parameter_tvb; 
3304         proto_tree *subtree; 
3305
3306   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3307                                        &parameter_tvb);
3308  
3309
3310          if (!parameter_tvb) 
3311                 return offset; 
3312         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LAIFixedLength); 
3313         dissect_e212_mcc_mnc(parameter_tvb, subtree, 0); 
3314
3315
3316
3317   return offset;
3318 }
3319
3320
3321 static const value_string gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals[] = {
3322   {   0, "cellGlobalIdOrServiceAreaIdFixedLength" },
3323   {   1, "laiFixedLength" },
3324   { 0, NULL }
3325 };
3326
3327 static const ber_choice_t gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice[] = {
3328   {   0, &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength },
3329   {   1, &hf_gsm_map_laiFixedLength, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
3330   { 0, NULL, 0, 0, 0, NULL }
3331 };
3332
3333 static int
3334 dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3335   offset = dissect_ber_choice(actx, tree, tvb, offset,
3336                                  gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice, hf_index, ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
3337                                  NULL);
3338
3339   return offset;
3340 }
3341
3342
3343 static const value_string gsm_map_BasicServiceCode_vals[] = {
3344   {   2, "bearerService" },
3345   {   3, "teleservice" },
3346   { 0, NULL }
3347 };
3348
3349 static const ber_choice_t gsm_map_BasicServiceCode_choice[] = {
3350   {   2, &hf_gsm_map_bearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_BearerServiceCode },
3351   {   3, &hf_gsm_map_teleservice , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_TeleserviceCode },
3352   { 0, NULL, 0, 0, 0, NULL }
3353 };
3354
3355 static int
3356 dissect_gsm_map_BasicServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3357   offset = dissect_ber_choice(actx, tree, tvb, offset,
3358                                  gsm_map_BasicServiceCode_choice, hf_index, ett_gsm_map_BasicServiceCode,
3359                                  NULL);
3360
3361   return offset;
3362 }
3363
3364
3365 const value_string gsm_map_Ext_BasicServiceCode_vals[] = {
3366   {   2, "ext-BearerService" },
3367   {   3, "ext-Teleservice" },
3368   { 0, NULL }
3369 };
3370
3371 static const ber_choice_t gsm_map_Ext_BasicServiceCode_choice[] = {
3372   {   2, &hf_gsm_map_ext_BearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BearerServiceCode },
3373   {   3, &hf_gsm_map_ext_Teleservice, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_TeleserviceCode },
3374   { 0, NULL, 0, 0, 0, NULL }
3375 };
3376
3377 int
3378 dissect_gsm_map_Ext_BasicServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3379   offset = dissect_ber_choice(actx, tree, tvb, offset,
3380                                  gsm_map_Ext_BasicServiceCode_choice, hf_index, ett_gsm_map_Ext_BasicServiceCode,
3381                                  NULL);
3382
3383   return offset;
3384 }
3385
3386
3387 static const value_string gsm_map_EMLPP_Priority_vals[] = {
3388   {   6, "priorityLevelA" },
3389   {   5, "priorityLevelB" },
3390   {   0, "priorityLevel0" },
3391   {   1, "priorityLevel1" },
3392   {   2, "priorityLevel2" },
3393   {   3, "priorityLevel3" },
3394   {   4, "priorityLevel4" },
3395   { 0, NULL }
3396 };
3397
3398
3399 static int
3400 dissect_gsm_map_EMLPP_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3401   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3402                                   NULL);
3403
3404   return offset;
3405 }
3406
3407
3408 static const ber_sequence_t gsm_map_EMLPP_Info_sequence[] = {
3409   { &hf_gsm_map_maximumentitledPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
3410   { &hf_gsm_map_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
3411   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
3412   { NULL, 0, 0, 0, NULL }
3413 };
3414
3415 static int
3416 dissect_gsm_map_EMLPP_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3417   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3418                                    gsm_map_EMLPP_Info_sequence, hf_index, ett_gsm_map_EMLPP_Info);
3419
3420   return offset;
3421 }
3422
3423
3424
3425 static int
3426 dissect_gsm_map_Ext_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3427 #line 319 "gsmmap.cnf"
3428  /* Note Ext-SS-Status can have more than one byte */
3429
3430  tvbuff_t       *parameter_tvb;
3431  guint8         octet;
3432
3433   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3434                                        &parameter_tvb);
3435
3436
3437  if (!parameter_tvb)
3438         return offset;
3439
3440  octet = tvb_get_guint8(parameter_tvb,0);
3441
3442  proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
3443  if ((octet & 0x01)== 1)        
3444         proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
3445                                                                                 
3446  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);                                                                    
3447  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);                                                                    
3448  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);                                                                    
3449
3450
3451
3452   return offset;
3453 }
3454
3455
3456
3457 static int
3458 dissect_gsm_map_MaxMC_Bearers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3459   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3460                                   NULL);
3461
3462   return offset;
3463 }
3464
3465
3466
3467 static int
3468 dissect_gsm_map_MC_Bearers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3469   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3470                                   NULL);
3471
3472   return offset;
3473 }
3474
3475
3476 static const ber_sequence_t gsm_map_MC_SS_Info_sequence[] = {
3477   { &hf_gsm_map_ss_Code     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
3478   { &hf_gsm_map_ss_Status   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
3479   { &hf_gsm_map_nbrSB       , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers },
3480   { &hf_gsm_map_nbrUser     , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3481   { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
3482   { NULL, 0, 0, 0, NULL }
3483 };
3484
3485 static int
3486 dissect_gsm_map_MC_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3487   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3488                                    gsm_map_MC_SS_Info_sequence, hf_index, ett_gsm_map_MC_SS_Info);
3489
3490   return offset;
3491 }
3492
3493
3494
3495 int
3496 dissect_gsm_map_AgeOfLocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3497   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3498                                   NULL);
3499
3500   return offset;
3501 }
3502
3503
3504 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
3505
3506
3507
3508 static int
3509 dissect_gsm_map_ss_NoReplyConditionTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3510   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3511                                   NULL);
3512
3513   return offset;
3514 }
3515
3516
3517
3518 static int
3519 dissect_gsm_map_ss_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3520   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
3521
3522   return offset;
3523 }
3524
3525
3526 static const ber_sequence_t gsm_map_ss_RegisterSS_Arg_sequence[] = {
3527   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3528   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3529   { &hf_gsm_map_ss_forwardedToNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
3530   { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
3531   { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime },
3532   { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
3533   { &hf_gsm_map_ss_nbrUser  , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3534   { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL },
3535   { NULL, 0, 0, 0, NULL }
3536 };
3537
3538 int
3539 dissect_gsm_map_ss_RegisterSS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3540   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3541                                    gsm_map_ss_RegisterSS_Arg_sequence, hf_index, ett_gsm_map_ss_RegisterSS_Arg);
3542
3543   return offset;
3544 }
3545
3546
3547
3548 int
3549 dissect_gsm_map_ss_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3550 #line 299 "gsmmap.cnf"
3551
3552  tvbuff_t       *parameter_tvb;
3553  guint8         octet;
3554
3555   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3556                                        &parameter_tvb);
3557
3558
3559  if (!parameter_tvb)
3560         return offset;
3561
3562  octet = tvb_get_guint8(parameter_tvb,0);
3563
3564  proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
3565  if ((octet & 0x01)== 1)        
3566         proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
3567                                                                                 
3568  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);                                                                    
3569  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);                                                                    
3570  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);                                                                    
3571
3572
3573
3574   return offset;
3575 }
3576
3577
3578
3579 static int
3580 dissect_gsm_map_ss_ForwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3581   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3582                                        NULL);
3583
3584 #line 384 "gsmmap.cnf"
3585
3586         proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE);
3587         proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE);
3588         proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE);
3589         proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE);
3590
3591   return offset;
3592 }
3593
3594
3595 static const ber_sequence_t gsm_map_ss_ForwardingFeature_sequence[] = {
3596   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3597   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
3598   { &hf_gsm_map_ss_forwardedToNumber_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3599   { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
3600   { &hf_gsm_map_ss_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions },
3601   { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime },
3602   { &hf_gsm_map_ss_longForwardedToNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
3603   { NULL, 0, 0, 0, NULL }
3604 };
3605
3606 static int
3607 dissect_gsm_map_ss_ForwardingFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3608   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3609                                    gsm_map_ss_ForwardingFeature_sequence, hf_index, ett_gsm_map_ss_ForwardingFeature);
3610
3611   return offset;
3612 }
3613
3614
3615 static const ber_sequence_t gsm_map_ss_ForwardingFeatureList_sequence_of[1] = {
3616   { &hf_gsm_map_ss_ForwardingFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeature },
3617 };
3618
3619 static int
3620 dissect_gsm_map_ss_ForwardingFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3621   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3622                                       gsm_map_ss_ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_ss_ForwardingFeatureList);
3623
3624   return offset;
3625 }
3626
3627
3628 static const ber_sequence_t gsm_map_ss_ForwardingInfo_sequence[] = {
3629   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3630   { &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeatureList },
3631   { NULL, 0, 0, 0, NULL }
3632 };
3633
3634 static int
3635 dissect_gsm_map_ss_ForwardingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3636   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3637                                    gsm_map_ss_ForwardingInfo_sequence, hf_index, ett_gsm_map_ss_ForwardingInfo);
3638
3639   return offset;
3640 }
3641
3642
3643 static const ber_sequence_t gsm_map_ss_CallBarringFeature_sequence[] = {
3644   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3645   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
3646   { NULL, 0, 0, 0, NULL }
3647 };
3648
3649 static int
3650 dissect_gsm_map_ss_CallBarringFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3651   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3652                                    gsm_map_ss_CallBarringFeature_sequence, hf_index, ett_gsm_map_ss_CallBarringFeature);
3653
3654   return offset;
3655 }
3656
3657
3658 static const ber_sequence_t gsm_map_ss_CallBarringFeatureList_sequence_of[1] = {
3659   { &hf_gsm_map_ss_CallBarringFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeature },
3660 };
3661
3662 static int
3663 dissect_gsm_map_ss_CallBarringFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3664   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3665                                       gsm_map_ss_CallBarringFeatureList_sequence_of, hf_index, ett_gsm_map_ss_CallBarringFeatureList);
3666
3667   return offset;
3668 }
3669
3670
3671 static const ber_sequence_t gsm_map_ss_CallBarringInfo_sequence[] = {
3672   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3673   { &hf_gsm_map_ss_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeatureList },
3674   { NULL, 0, 0, 0, NULL }
3675 };
3676
3677 static int
3678 dissect_gsm_map_ss_CallBarringInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3679   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3680                                    gsm_map_ss_CallBarringInfo_sequence, hf_index, ett_gsm_map_ss_CallBarringInfo);
3681
3682   return offset;
3683 }
3684
3685
3686 static const value_string gsm_map_ss_CliRestrictionOption_vals[] = {
3687   {   0, "permanent" },
3688   {   1, "temporaryDefaultRestricted" },
3689   {   2, "temporaryDefaultAllowed" },
3690   { 0, NULL }
3691 };
3692
3693
3694 static int
3695 dissect_gsm_map_ss_CliRestrictionOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3696   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3697                                   NULL);
3698
3699   return offset;
3700 }
3701
3702
3703 static const value_string gsm_map_ss_OverrideCategory_vals[] = {
3704   {   0, "overrideEnabled" },
3705   {   1, "overrideDisabled" },
3706   { 0, NULL }
3707 };
3708
3709
3710 static int
3711 dissect_gsm_map_ss_OverrideCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3712   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3713                                   NULL);
3714
3715   return offset;
3716 }
3717
3718
3719 static const value_string gsm_map_ss_SS_SubscriptionOption_vals[] = {
3720   {   2, "cliRestrictionOption" },
3721   {   1, "overrideCategory" },
3722   { 0, NULL }
3723 };
3724
3725 static const ber_choice_t gsm_map_ss_SS_SubscriptionOption_choice[] = {
3726   {   2, &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption },
3727   {   1, &hf_gsm_map_ss_overrideCategory, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory },
3728   { 0, NULL, 0, 0, 0, NULL }
3729 };
3730
3731 static int
3732 dissect_gsm_map_ss_SS_SubscriptionOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3733   offset = dissect_ber_choice(actx, tree, tvb, offset,
3734                                  gsm_map_ss_SS_SubscriptionOption_choice, hf_index, ett_gsm_map_ss_SS_SubscriptionOption,
3735                                  NULL);
3736
3737   return offset;
3738 }
3739
3740
3741 static const ber_sequence_t gsm_map_ss_BasicServiceGroupList_sequence_of[1] = {
3742   { &hf_gsm_map_ss_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3743 };
3744
3745 static int
3746 dissect_gsm_map_ss_BasicServiceGroupList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3747   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3748                                       gsm_map_ss_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ss_BasicServiceGroupList);
3749
3750   return offset;
3751 }
3752
3753
3754 static const ber_sequence_t gsm_map_ss_SS_Data_sequence[] = {
3755   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3756   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
3757   { &hf_gsm_map_ss_ss_SubscriptionOption, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ss_SS_SubscriptionOption },
3758   { &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_BasicServiceGroupList },
3759   { &hf_gsm_map_ss_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
3760   { &hf_gsm_map_ss_nbrUser  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3761   { NULL, 0, 0, 0, NULL }
3762 };
3763
3764 static int
3765 dissect_gsm_map_ss_SS_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3766   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3767                                    gsm_map_ss_SS_Data_sequence, hf_index, ett_gsm_map_ss_SS_Data);
3768
3769   return offset;
3770 }
3771
3772
3773 const value_string gsm_map_ss_SS_Info_vals[] = {
3774   {   0, "forwardingInfo" },
3775   {   1, "callBarringInfo" },
3776   {   3, "ss-Data" },
3777   { 0, NULL }
3778 };
3779
3780 static const ber_choice_t gsm_map_ss_SS_Info_choice[] = {
3781   {   0, &hf_gsm_map_ss_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingInfo },
3782   {   1, &hf_gsm_map_ss_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CallBarringInfo },
3783   {   3, &hf_gsm_map_ss_ss_Data  , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Data },
3784   { 0, NULL, 0, 0, 0, NULL }
3785 };
3786
3787 int
3788 dissect_gsm_map_ss_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3789   offset = dissect_ber_choice(actx, tree, tvb, offset,
3790                                  gsm_map_ss_SS_Info_choice, hf_index, ett_gsm_map_ss_SS_Info,
3791                                  NULL);
3792
3793   return offset;
3794 }
3795
3796
3797 static const ber_sequence_t gsm_map_ss_SS_ForBS_Code_sequence[] = {
3798   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3799   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3800   { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL },
3801   { NULL, 0, 0, 0, NULL }
3802 };
3803
3804 int
3805 dissect_gsm_map_ss_SS_ForBS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3806   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3807                                    gsm_map_ss_SS_ForBS_Code_sequence, hf_index, ett_gsm_map_ss_SS_ForBS_Code);
3808
3809   return offset;
3810 }
3811
3812
3813
3814 static int
3815 dissect_gsm_map_ss_CCBS_Index(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3816   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3817                                   NULL);
3818
3819   return offset;
3820 }
3821
3822
3823 static const ber_sequence_t gsm_map_ss_CCBS_Feature_sequence[] = {
3824   { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index },
3825   { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3826   { &hf_gsm_map_ss_b_subscriberSubaddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
3827   { &hf_gsm_map_ss_basicServiceGroup, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_BasicServiceCode },
3828   { NULL, 0, 0, 0, NULL }
3829 };
3830
3831 int
3832 dissect_gsm_map_ss_CCBS_Feature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3833   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3834                                    gsm_map_ss_CCBS_Feature_sequence, hf_index, ett_gsm_map_ss_CCBS_Feature);
3835
3836   return offset;
3837 }
3838
3839
3840 static const ber_sequence_t gsm_map_ss_CCBS_FeatureList_sequence_of[1] = {
3841   { &hf_gsm_map_ss_CCBS_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CCBS_Feature },
3842 };
3843
3844 static int
3845 dissect_gsm_map_ss_CCBS_FeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3846   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3847                                       gsm_map_ss_CCBS_FeatureList_sequence_of, hf_index, ett_gsm_map_ss_CCBS_FeatureList);
3848
3849   return offset;
3850 }
3851
3852
3853 static const ber_sequence_t gsm_map_ss_GenericServiceInfo_sequence[] = {
3854   { &hf_gsm_map_ss_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_Status },
3855   { &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CliRestrictionOption },
3856   { &hf_gsm_map_ss_maximumEntitledPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
3857   { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
3858   { &hf_gsm_map_ss_ccbs_FeatureList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_FeatureList },
3859   { &hf_gsm_map_ss_nbrSB    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers },
3860   { &hf_gsm_map_ss_nbrUser  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3861   { &hf_gsm_map_ss_nbrSN    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3862   { NULL, 0, 0, 0, NULL }
3863 };
3864
3865 static int
3866 dissect_gsm_map_ss_GenericServiceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3867   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3868                                    gsm_map_ss_GenericServiceInfo_sequence, hf_index, ett_gsm_map_ss_GenericServiceInfo);
3869
3870   return offset;
3871 }
3872
3873
3874 const value_string gsm_map_ss_InterrogateSS_Res_vals[] = {
3875   {   0, "ss-Status" },
3876   {   2, "basicServiceGroupList" },
3877   {   3, "forwardingFeatureList" },
3878   {   4, "genericServiceInfo" },
3879   { 0, NULL }
3880 };
3881
3882 static const ber_choice_t gsm_map_ss_InterrogateSS_Res_choice[] = {
3883   {   0, &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
3884   {   2, &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_BasicServiceGroupList },
3885   {   3, &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingFeatureList },
3886   {   4, &hf_gsm_map_ss_genericServiceInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_GenericServiceInfo },
3887   { 0, NULL, 0, 0, 0, NULL }
3888 };
3889
3890 int
3891 dissect_gsm_map_ss_InterrogateSS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3892   offset = dissect_ber_choice(actx, tree, tvb, offset,
3893                                  gsm_map_ss_InterrogateSS_Res_choice, hf_index, ett_gsm_map_ss_InterrogateSS_Res,
3894                                  NULL);
3895
3896   return offset;
3897 }
3898
3899
3900
3901 int
3902 dissect_gsm_map_ss_USSD_DataCodingScheme(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3903 #line 346 "gsmmap.cnf"
3904  /*The structure of the USSD-DataCodingScheme is defined by
3905   * the Cell Broadcast Data Coding Scheme as described in
3906   * TS 3GPP TS 23.038
3907   * TODO: Should smpp_handle_dcs return encoding type? - like 7bit Alphabet
3908   */
3909   int CodingScheme_offset = 0;
3910   tvbuff_t      *parameter_tvb;
3911   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3912                                        &parameter_tvb);
3913
3914   if (!parameter_tvb)
3915      return offset;
3916   smpp_handle_dcs(tree, parameter_tvb, &CodingScheme_offset);
3917
3918
3919
3920   return offset;
3921 }
3922
3923
3924
3925 int
3926 dissect_gsm_map_ss_USSD_String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3927 #line 359 "gsmmap.cnf"
3928
3929   tvbuff_t      *parameter_tvb;
3930   int                   length;
3931   guint8                out_len;
3932   /* XXX - The maximum item label length is 240.  Does this really need to be 1024? 
3933    * use ep_alloc ?
3934    * TODO: Shouldent this function use USSD-DataCodingScheme to chose decoding method???
3935    */
3936   static unsigned char bigbuf[1024];
3937
3938   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3939                                        &parameter_tvb);
3940
3941   if (!parameter_tvb)
3942      return offset;
3943
3944   length = tvb_length_remaining(parameter_tvb,0);
3945
3946   out_len = gsm_sms_char_7bit_unpack(0, length, sizeof(bigbuf),
3947               tvb_get_ptr(parameter_tvb, 0, length), bigbuf);
3948
3949   bigbuf[out_len] = '\0';
3950   gsm_sms_char_ascii_decode(bigbuf, bigbuf, out_len);
3951   bigbuf[1023] = '\0';
3952   proto_tree_add_text(tree, parameter_tvb, 0, length, "USSD String: %s", bigbuf);
3953
3954
3955
3956   return offset;
3957 }
3958
3959
3960 static const ber_sequence_t gsm_map_ss_USSD_Arg_sequence[] = {
3961   { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
3962   { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String },
3963   { &hf_gsm_map_ss_alertingPattern, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AlertingPattern },
3964   { &hf_gsm_map_ss_msisdn   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3965   { NULL, 0, 0, 0, NULL }
3966 };
3967
3968 int
3969 dissect_gsm_map_ss_USSD_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3970   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3971                                    gsm_map_ss_USSD_Arg_sequence, hf_index, ett_gsm_map_ss_USSD_Arg);
3972
3973   return offset;
3974 }
3975
3976
3977 static const ber_sequence_t gsm_map_ss_USSD_Res_sequence[] = {
3978   { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
3979   { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String },
3980   { NULL, 0, 0, 0, NULL }
3981 };
3982
3983 int
3984 dissect_gsm_map_ss_USSD_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3985   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3986                                    gsm_map_ss_USSD_Res_sequence, hf_index, ett_gsm_map_ss_USSD_Res);
3987
3988   return offset;
3989 }
3990
3991
3992
3993 static int
3994 dissect_gsm_map_ss_Password(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3995   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
3996                                             actx, tree, tvb, offset, hf_index,
3997                                             NULL);
3998
3999   return offset;
4000 }
4001
4002
4003 static const value_string gsm_map_ss_GuidanceInfo_vals[] = {
4004   {   0, "enterPW" },
4005   {   1, "enterNewPW" },
4006   {   2, "enterNewPW-Again" },
4007   { 0, NULL }
4008 };
4009
4010
4011 static int
4012 dissect_gsm_map_ss_GuidanceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4013   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4014                                   NULL);
4015
4016   return offset;
4017 }
4018
4019
4020 static const ber_sequence_t gsm_map_ss_SS_List_sequence_of[1] = {
4021   { &hf_gsm_map_ss_SS_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
4022 };
4023
4024 static int
4025 dissect_gsm_map_ss_SS_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4026   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4027                                       gsm_map_ss_SS_List_sequence_of, hf_index, ett_gsm_map_ss_SS_List);
4028
4029   return offset;
4030 }
4031
4032
4033 static const ber_sequence_t gsm_map_ss_SS_InfoList_sequence_of[1] = {
4034   { &hf_gsm_map_ss_SS_InfoList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ss_SS_Info },
4035 };
4036
4037 static int
4038 dissect_gsm_map_ss_SS_InfoList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4039   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4040                                       gsm_map_ss_SS_InfoList_sequence_of, hf_index, ett_gsm_map_ss_SS_InfoList);
4041
4042   return offset;
4043 }
4044
4045
4046 static const ber_sequence_t gsm_map_ss_SS_EventSpecification_sequence_of[1] = {
4047   { &hf_gsm_map_ss_SS_EventSpecification_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
4048 };
4049
4050 static int
4051 dissect_gsm_map_ss_SS_EventSpecification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4052   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4053                                       gsm_map_ss_SS_EventSpecification_sequence_of, hf_index, ett_gsm_map_ss_SS_EventSpecification);
4054
4055   return offset;
4056 }
4057
4058
4059 static const value_string gsm_map_ss_CCBS_RequestState_vals[] = {
4060   {   0, "request" },
4061   {   1, "recall" },
4062   {   2, "active" },
4063   {   3, "completed" },
4064   {   4, "suspended" },
4065   {   5, "frozen" },
4066   {   6, "deleted" },
4067   { 0, NULL }
4068 };
4069
4070
4071 static int
4072 dissect_gsm_map_ss_CCBS_RequestState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4073   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4074                                   NULL);
4075
4076   return offset;
4077 }
4078
4079
4080 static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationArg_sequence[] = {
4081   { &hf_gsm_map_ss_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
4082   { &hf_gsm_map_ss_msisdn   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4083   { &hf_gsm_map_ss_ss_Event , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4084   { &hf_gsm_map_ss_ss_EventSpecification, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_EventSpecification },
4085   { &hf_gsm_map_ss_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
4086   { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4087   { &hf_gsm_map_ss_ccbs_RequestState, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_RequestState },
4088   { NULL, 0, 0, 0, NULL }
4089 };
4090
4091 static int
4092 dissect_gsm_map_ss_SS_InvocationNotificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4093   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4094                                    gsm_map_ss_SS_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationArg);
4095
4096   return offset;
4097 }
4098
4099
4100 static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationRes_sequence[] = {
4101   { &hf_gsm_map_ss_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4102   { NULL, 0, 0, 0, NULL }
4103 };
4104
4105 static int
4106 dissect_gsm_map_ss_SS_InvocationNotificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4107   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4108                                    gsm_map_ss_SS_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationRes);
4109
4110   return offset;
4111 }
4112
4113
4114 static const asn_namedbit gsm_map_ss_ServiceIndicator_bits[] = {
4115   {  0, &hf_gsm_map_ss_ServiceIndicator_clir_invoked, -1, -1, "clir-invoked", NULL },
4116   {  1, &hf_gsm_map_ss_ServiceIndicator_camel_invoked, -1, -1, "camel-invoked", NULL },
4117   { 0, NULL, 0, 0, NULL, NULL }
4118 };
4119
4120 static int
4121 dissect_gsm_map_ss_ServiceIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4122   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
4123                                     gsm_map_ss_ServiceIndicator_bits, hf_index, ett_gsm_map_ss_ServiceIndicator,
4124                                     NULL);
4125
4126   return offset;
4127 }
4128
4129
4130 static const ber_sequence_t gsm_map_ss_CCBS_Data_sequence[] = {
4131   { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
4132   { &hf_gsm_map_ss_translatedB_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4133   { &hf_gsm_map_ss_serviceIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ServiceIndicator },
4134   { &hf_gsm_map_ss_callInfo , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
4135   { &hf_gsm_map_ss_networkSignalInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
4136   { NULL, 0, 0, 0, NULL }
4137 };
4138
4139 static int
4140 dissect_gsm_map_ss_CCBS_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4141   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4142                                    gsm_map_ss_CCBS_Data_sequence, hf_index, ett_gsm_map_ss_CCBS_Data);
4143
4144   return offset;
4145 }
4146
4147
4148 static const ber_sequence_t gsm_map_ss_RegisterCC_EntryArg_sequence[] = {
4149   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4150   { &hf_gsm_map_ss_ccbs_Data, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Data },
4151   { NULL, 0, 0, 0, NULL }
4152 };
4153
4154 static int
4155 dissect_gsm_map_ss_RegisterCC_EntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4156   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4157                                    gsm_map_ss_RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryArg);
4158
4159   return offset;
4160 }
4161
4162
4163 static const ber_sequence_t gsm_map_ss_RegisterCC_EntryRes_sequence[] = {
4164   { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
4165   { NULL, 0, 0, 0, NULL }
4166 };
4167
4168 int
4169 dissect_gsm_map_ss_RegisterCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4170   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4171                                    gsm_map_ss_RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryRes);
4172
4173   return offset;
4174 }
4175
4176
4177 static const ber_sequence_t gsm_map_ss_EraseCC_EntryArg_sequence[] = {
4178   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4179   { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index },
4180   { NULL, 0, 0, 0, NULL }
4181 };
4182
4183 int
4184 dissect_gsm_map_ss_EraseCC_EntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4185   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4186                                    gsm_map_ss_EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryArg);
4187
4188   return offset;
4189 }
4190
4191
4192 static const ber_sequence_t gsm_map_ss_EraseCC_EntryRes_sequence[] = {
4193   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4194   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4195   { NULL, 0, 0, 0, NULL }
4196 };
4197
4198 int
4199 dissect_gsm_map_ss_EraseCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4200   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4201                                    gsm_map_ss_EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryRes);
4202
4203   return offset;
4204 }
4205
4206
4207 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
4208
4209
4210 static const value_string gsm_map_er_RoamingNotAllowedCause_vals[] = {
4211   {   0, "plmnRoamingNotAllowed" },
4212   {   3, "operatorDeterminedBarring" },
4213   { 0, NULL }
4214 };
4215
4216
4217 static int
4218 dissect_gsm_map_er_RoamingNotAllowedCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4219   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4220                                   NULL);
4221
4222   return offset;
4223 }
4224
4225
4226 static const value_string gsm_map_er_AdditionalRoamingNotAllowedCause_vals[] = {
4227   {   0, "supportedRAT-TypesNotAllowed" },
4228   { 0, NULL }
4229 };
4230
4231
4232 static int
4233 dissect_gsm_map_er_AdditionalRoamingNotAllowedCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4234   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4235                                   NULL);
4236
4237   return offset;
4238 }
4239
4240
4241 static const ber_sequence_t gsm_map_er_RoamingNotAllowedParam_sequence[] = {
4242   { &hf_gsm_map_er_roamingNotAllowedCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_RoamingNotAllowedCause },
4243   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4244   { &hf_gsm_map_er_additionalRoamingNotAllowedCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AdditionalRoamingNotAllowedCause },
4245   { NULL, 0, 0, 0, NULL }
4246 };
4247
4248 static int
4249 dissect_gsm_map_er_RoamingNotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4250   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4251                                    gsm_map_er_RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_er_RoamingNotAllowedParam);
4252
4253   return offset;
4254 }
4255
4256
4257 static const value_string gsm_map_er_CallBarringCause_vals[] = {
4258   {   0, "barringServiceActive" },
4259   {   1, "operatorBarring" },
4260   { 0, NULL }
4261 };
4262
4263
4264 static int
4265 dissect_gsm_map_er_CallBarringCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4266   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4267                                   NULL);
4268
4269   return offset;
4270 }
4271
4272
4273
4274 static int
4275 dissect_gsm_map_er_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4276   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4277
4278   return offset;
4279 }
4280
4281
4282 static const ber_sequence_t gsm_map_er_ExtensibleCallBarredParam_sequence[] = {
4283   { &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause },
4284   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4285   { &hf_gsm_map_er_unauthorisedMessageOriginator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4286   { NULL, 0, 0, 0, NULL }
4287 };
4288
4289 static int
4290 dissect_gsm_map_er_ExtensibleCallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4291   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4292                                    gsm_map_er_ExtensibleCallBarredParam_sequence, hf_index, ett_gsm_map_er_ExtensibleCallBarredParam);
4293
4294   return offset;
4295 }
4296
4297
4298 static const value_string gsm_map_er_CallBarredParam_vals[] = {
4299   {   0, "callBarringCause" },
4300   {   1, "extensibleCallBarredParam" },
4301   { 0, NULL }
4302 };
4303
4304 static const ber_choice_t gsm_map_er_CallBarredParam_choice[] = {
4305   {   0, &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause },
4306   {   1, &hf_gsm_map_er_extensibleCallBarredParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleCallBarredParam },
4307   { 0, NULL, 0, 0, 0, NULL }
4308 };
4309
4310 static int
4311 dissect_gsm_map_er_CallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4312   offset = dissect_ber_choice(actx, tree, tvb, offset,
4313                                  gsm_map_er_CallBarredParam_choice, hf_index, ett_gsm_map_er_CallBarredParam,
4314                                  NULL);
4315
4316   return offset;
4317 }
4318
4319
4320 static const value_string gsm_map_er_CUG_RejectCause_vals[] = {
4321   {   0, "incomingCallsBarredWithinCUG" },
4322   {   1, "subscriberNotMemberOfCUG" },
4323   {   5, "requestedBasicServiceViolatesCUG-Constraints" },
4324   {   7, "calledPartySS-InteractionViolation" },
4325   { 0, NULL }
4326 };
4327
4328
4329 static int
4330 dissect_gsm_map_er_CUG_RejectCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4331   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4332                                   NULL);
4333
4334   return offset;
4335 }
4336
4337
4338 static const ber_sequence_t gsm_map_er_CUG_RejectParam_sequence[] = {
4339   { &hf_gsm_map_er_cug_RejectCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CUG_RejectCause },
4340   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4341   { NULL, 0, 0, 0, NULL }
4342 };
4343
4344 static int
4345 dissect_gsm_map_er_CUG_RejectParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4346   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4347                                    gsm_map_er_CUG_RejectParam_sequence, hf_index, ett_gsm_map_er_CUG_RejectParam);
4348
4349   return offset;
4350 }
4351
4352
4353 static const ber_sequence_t gsm_map_er_SS_IncompatibilityCause_sequence[] = {
4354   { &hf_gsm_map_er_ss_Code  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4355   { &hf_gsm_map_er_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
4356   { &hf_gsm_map_er_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4357   { NULL, 0, 0, 0, NULL }
4358 };
4359
4360 static int
4361 dissect_gsm_map_er_SS_IncompatibilityCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4362   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4363                                    gsm_map_er_SS_IncompatibilityCause_sequence, hf_index, ett_gsm_map_er_SS_IncompatibilityCause);
4364
4365   return offset;
4366 }
4367
4368
4369 static const value_string gsm_map_er_PW_RegistrationFailureCause_vals[] = {
4370   {   0, "undetermined" },
4371   {   1, "invalidFormat" },
4372   {   2, "newPasswordsMismatch" },
4373   { 0, NULL }
4374 };
4375
4376
4377 static int
4378 dissect_gsm_map_er_PW_RegistrationFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4379   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4380                                   NULL);
4381
4382   return offset;
4383 }
4384
4385
4386 static const value_string gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals[] = {
4387   {   0, "memoryCapacityExceeded" },
4388   {   1, "equipmentProtocolError" },
4389   {   2, "equipmentNotSM-Equipped" },
4390   {   3, "unknownServiceCentre" },
4391   {   4, "sc-Congestion" },
4392   {   5, "invalidSME-Address" },
4393   {   6, "subscriberNotSC-Subscriber" },
4394   { 0, NULL }
4395 };
4396
4397
4398 static int
4399 dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4400   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4401                                   NULL);
4402
4403   return offset;
4404 }
4405
4406
4407 static const ber_sequence_t gsm_map_er_SM_DeliveryFailureCause_sequence[] = {
4408   { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause },
4409   { &hf_gsm_map_er_diagnosticInfo, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
4410   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4411   { NULL, 0, 0, 0, NULL }
4412 };
4413
4414 static int
4415 dissect_gsm_map_er_SM_DeliveryFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4416   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4417                                    gsm_map_er_SM_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_er_SM_DeliveryFailureCause);
4418
4419   return offset;
4420 }
4421
4422
4423
4424 static int
4425 dissect_gsm_map_er_AbsentSubscriberDiagnosticSM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4426   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4427                                   NULL);
4428
4429   return offset;
4430 }
4431
4432
4433 static const ber_sequence_t gsm_map_er_AbsentSubscriberSM_Param_sequence[] = {
4434   { &hf_gsm_map_er_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
4435   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4436   { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
4437   { NULL, 0, 0, 0, NULL }
4438 };
4439
4440 static int
4441 dissect_gsm_map_er_AbsentSubscriberSM_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4442   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4443                                    gsm_map_er_AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberSM_Param);
4444
4445   return offset;
4446 }
4447
4448
4449 static const ber_sequence_t gsm_map_er_ExtensibleSystemFailureParam_sequence[] = {
4450   { &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
4451   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4452   { &hf_gsm_map_er_additionalNetworkResource, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AdditionalNetworkResource },
4453   { NULL, 0, 0, 0, NULL }
4454 };
4455
4456 static int
4457 dissect_gsm_map_er_ExtensibleSystemFailureParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4458   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4459                                    gsm_map_er_ExtensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_er_ExtensibleSystemFailureParam);
4460
4461   return offset;
4462 }
4463
4464
4465 static const value_string gsm_map_er_SystemFailureParam_vals[] = {
4466   {   0, "networkResource" },
4467   {   1, "extensibleSystemFailureParam" },
4468   { 0, NULL }
4469 };
4470
4471 static const ber_choice_t gsm_map_er_SystemFailureParam_choice[] = {
4472   {   0, &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
4473   {   1, &hf_gsm_map_er_extensibleSystemFailureParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleSystemFailureParam },
4474   { 0, NULL, 0, 0, 0, NULL }
4475 };
4476
4477 static int
4478 dissect_gsm_map_er_SystemFailureParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4479   offset = dissect_ber_choice(actx, tree, tvb, offset,
4480                                  gsm_map_er_SystemFailureParam_choice, hf_index, ett_gsm_map_er_SystemFailureParam,
4481                                  NULL);
4482
4483   return offset;
4484 }
4485
4486
4487 static const ber_sequence_t gsm_map_er_DataMissingParam_sequence[] = {
4488   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4489   { NULL, 0, 0, 0, NULL }
4490 };
4491
4492 static int
4493 dissect_gsm_map_er_DataMissingParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4494   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4495                                    gsm_map_er_DataMissingParam_sequence, hf_index, ett_gsm_map_er_DataMissingParam);
4496
4497   return offset;
4498 }
4499
4500
4501 static const ber_sequence_t gsm_map_er_UnexpectedDataParam_sequence[] = {
4502   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4503   { NULL, 0, 0, 0, NULL }
4504 };
4505
4506 static int
4507 dissect_gsm_map_er_UnexpectedDataParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4508   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4509                                    gsm_map_er_UnexpectedDataParam_sequence, hf_index, ett_gsm_map_er_UnexpectedDataParam);
4510
4511   return offset;
4512 }
4513
4514
4515 static const ber_sequence_t gsm_map_er_FacilityNotSupParam_sequence[] = {
4516   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4517   { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4518   { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4519   { NULL, 0, 0, 0, NULL }
4520 };
4521
4522 static int
4523 dissect_gsm_map_er_FacilityNotSupParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4524   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4525                                    gsm_map_er_FacilityNotSupParam_sequence, hf_index, ett_gsm_map_er_FacilityNotSupParam);
4526
4527   return offset;
4528 }
4529
4530
4531 static const ber_sequence_t gsm_map_er_OR_NotAllowedParam_sequence[] = {
4532   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4533   { NULL, 0, 0, 0, NULL }
4534 };
4535
4536 static int
4537 dissect_gsm_map_er_OR_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4538   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4539                                    gsm_map_er_OR_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_OR_NotAllowedParam);
4540
4541   return offset;
4542 }
4543
4544
4545 static const value_string gsm_map_er_UnknownSubscriberDiagnostic_vals[] = {
4546   {   0, "imsiUnknown" },
4547   {   1, "gprsSubscriptionUnknown" },
4548   {   2, "npdbMismatch" },
4549   { 0, NULL }
4550 };
4551
4552
4553 static int
4554 dissect_gsm_map_er_UnknownSubscriberDiagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4555   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4556                                   NULL);
4557
4558   return offset;
4559 }
4560
4561
4562 static const ber_sequence_t gsm_map_er_UnknownSubscriberParam_sequence[] = {
4563   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4564   { &hf_gsm_map_er_unknownSubscriberDiagnostic, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_UnknownSubscriberDiagnostic },
4565   { NULL, 0, 0, 0, NULL }
4566 };
4567
4568 static int
4569 dissect_gsm_map_er_UnknownSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4570   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4571                                    gsm_map_er_UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_er_UnknownSubscriberParam);
4572
4573   return offset;
4574 }
4575
4576
4577 static const ber_sequence_t gsm_map_er_NumberChangedParam_sequence[] = {
4578   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4579   { NULL, 0, 0, 0, NULL }
4580 };
4581
4582 static int
4583 dissect_gsm_map_er_NumberChangedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4584   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4585                                    gsm_map_er_NumberChangedParam_sequence, hf_index, ett_gsm_map_er_NumberChangedParam);
4586
4587   return offset;
4588 }
4589
4590
4591 static const ber_sequence_t gsm_map_er_UnidentifiedSubParam_sequence[] = {
4592   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4593   { NULL, 0, 0, 0, NULL }
4594 };
4595
4596 static int
4597 dissect_gsm_map_er_UnidentifiedSubParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4598   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4599                                    gsm_map_er_UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_er_UnidentifiedSubParam);
4600
4601   return offset;
4602 }
4603
4604
4605 static const ber_sequence_t gsm_map_er_IllegalSubscriberParam_sequence[] = {
4606   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4607   { NULL, 0, 0, 0, NULL }
4608 };
4609
4610 static int
4611 dissect_gsm_map_er_IllegalSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4612   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4613                                    gsm_map_er_IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_er_IllegalSubscriberParam);
4614
4615   return offset;
4616 }
4617
4618
4619 static const ber_sequence_t gsm_map_er_IllegalEquipmentParam_sequence[] = {
4620   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4621   { NULL, 0, 0, 0, NULL }
4622 };
4623
4624 static int
4625 dissect_gsm_map_er_IllegalEquipmentParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4626   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4627                                    gsm_map_er_IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_er_IllegalEquipmentParam);
4628
4629   return offset;
4630 }
4631
4632
4633 static const ber_sequence_t gsm_map_er_BearerServNotProvParam_sequence[] = {
4634   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4635   { NULL, 0, 0, 0, NULL }
4636 };
4637
4638 static int
4639 dissect_gsm_map_er_BearerServNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4640   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4641                                    gsm_map_er_BearerServNotProvParam_sequence, hf_index, ett_gsm_map_er_BearerServNotProvParam);
4642
4643   return offset;
4644 }
4645
4646
4647 static const ber_sequence_t gsm_map_er_TeleservNotProvParam_sequence[] = {
4648   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4649   { NULL, 0, 0, 0, NULL }
4650 };
4651
4652 static int
4653 dissect_gsm_map_er_TeleservNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4654   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4655                                    gsm_map_er_TeleservNotProvParam_sequence, hf_index, ett_gsm_map_er_TeleservNotProvParam);
4656
4657   return offset;
4658 }
4659
4660
4661 static const ber_sequence_t gsm_map_er_TracingBufferFullParam_sequence[] = {
4662   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4663   { NULL, 0, 0, 0, NULL }
4664 };
4665
4666 static int
4667 dissect_gsm_map_er_TracingBufferFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4668   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4669                                    gsm_map_er_TracingBufferFullParam_sequence, hf_index, ett_gsm_map_er_TracingBufferFullParam);
4670
4671   return offset;
4672 }
4673
4674
4675 static const ber_sequence_t gsm_map_er_NoRoamingNbParam_sequence[] = {
4676   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4677   { NULL, 0, 0, 0, NULL }
4678 };
4679
4680 static int
4681 dissect_gsm_map_er_NoRoamingNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4682   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4683                                    gsm_map_er_NoRoamingNbParam_sequence, hf_index, ett_gsm_map_er_NoRoamingNbParam);
4684
4685   return offset;
4686 }
4687
4688
4689 static const value_string gsm_map_er_AbsentSubscriberReason_vals[] = {
4690   {   0, "imsiDetach" },
4691   {   1, "restrictedArea" },
4692   {   2, "noPageResponse" },
4693   {   3, "purgedMS" },
4694   { 0, NULL }
4695 };
4696
4697
4698 static int
4699 dissect_gsm_map_er_AbsentSubscriberReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4700   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4701                                   NULL);
4702
4703   return offset;
4704 }
4705
4706
4707 static const ber_sequence_t gsm_map_er_AbsentSubscriberParam_sequence[] = {
4708   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4709   { &hf_gsm_map_er_absentSubscriberReason, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberReason },
4710   { NULL, 0, 0, 0, NULL }
4711 };
4712
4713 static int
4714 dissect_gsm_map_er_AbsentSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4715   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4716                                    gsm_map_er_AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberParam);
4717
4718   return offset;
4719 }
4720
4721
4722 static const ber_sequence_t gsm_map_er_BusySubscriberParam_sequence[] = {
4723   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4724   { &hf_gsm_map_er_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4725   { &hf_gsm_map_er_ccbs_Busy, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4726   { NULL, 0, 0, 0, NULL }
4727 };
4728
4729 static int
4730 dissect_gsm_map_er_BusySubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4731   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4732                                    gsm_map_er_BusySubscriberParam_sequence, hf_index, ett_gsm_map_er_BusySubscriberParam);
4733
4734   return offset;
4735 }
4736
4737
4738 static const ber_sequence_t gsm_map_er_NoSubscriberReplyParam_sequence[] = {
4739   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4740   { NULL, 0, 0, 0, NULL }
4741 };
4742
4743 static int
4744 dissect_gsm_map_er_NoSubscriberReplyParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4745   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4746                                    gsm_map_er_NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_er_NoSubscriberReplyParam);
4747
4748   return offset;
4749 }
4750
4751
4752 static const ber_sequence_t gsm_map_er_ForwardingViolationParam_sequence[] = {
4753   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4754   { NULL, 0, 0, 0, NULL }
4755 };
4756
4757 static int
4758 dissect_gsm_map_er_ForwardingViolationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4759   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4760                                    gsm_map_er_ForwardingViolationParam_sequence, hf_index, ett_gsm_map_er_ForwardingViolationParam);
4761
4762   return offset;
4763 }
4764
4765
4766 static const ber_sequence_t gsm_map_er_ForwardingFailedParam_sequence[] = {
4767   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4768   { NULL, 0, 0, 0, NULL }
4769 };
4770
4771 static int
4772 dissect_gsm_map_er_ForwardingFailedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4773   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4774                                    gsm_map_er_ForwardingFailedParam_sequence, hf_index, ett_gsm_map_er_ForwardingFailedParam);
4775
4776   return offset;
4777 }
4778
4779
4780 static const ber_sequence_t gsm_map_er_ATI_NotAllowedParam_sequence[] = {
4781   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4782   { NULL, 0, 0, 0, NULL }
4783 };
4784
4785 static int
4786 dissect_gsm_map_er_ATI_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4787   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4788                                    gsm_map_er_ATI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATI_NotAllowedParam);
4789
4790   return offset;
4791 }
4792
4793
4794 static const ber_sequence_t gsm_map_er_ATSI_NotAllowedParam_sequence[] = {
4795   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4796   { NULL, 0, 0, 0, NULL }
4797 };
4798
4799 static int
4800 dissect_gsm_map_er_ATSI_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4801   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4802                                    gsm_map_er_ATSI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATSI_NotAllowedParam);
4803
4804   return offset;
4805 }
4806
4807
4808 static const ber_sequence_t gsm_map_er_ATM_NotAllowedParam_sequence[] = {
4809   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4810   { NULL, 0, 0, 0, NULL }
4811 };
4812
4813 static int
4814 dissect_gsm_map_er_ATM_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4815   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4816                                    gsm_map_er_ATM_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATM_NotAllowedParam);
4817
4818   return offset;
4819 }
4820
4821
4822 static const ber_sequence_t gsm_map_er_IllegalSS_OperationParam_sequence[] = {
4823   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4824   { NULL, 0, 0, 0, NULL }
4825 };
4826
4827 static int
4828 dissect_gsm_map_er_IllegalSS_OperationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4829   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4830                                    gsm_map_er_IllegalSS_OperationParam_sequence, hf_index, ett_gsm_map_er_IllegalSS_OperationParam);
4831
4832   return offset;
4833 }
4834
4835
4836 static const ber_sequence_t gsm_map_er_SS_NotAvailableParam_sequence[] = {
4837   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4838   { NULL, 0, 0, 0, NULL }
4839 };
4840
4841 static int
4842 dissect_gsm_map_er_SS_NotAvailableParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4843   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4844                                    gsm_map_er_SS_NotAvailableParam_sequence, hf_index, ett_gsm_map_er_SS_NotAvailableParam);
4845
4846   return offset;
4847 }
4848
4849
4850 static const ber_sequence_t gsm_map_er_SS_SubscriptionViolationParam_sequence[] = {
4851   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4852   { NULL, 0, 0, 0, NULL }
4853 };
4854
4855 static int
4856 dissect_gsm_map_er_SS_SubscriptionViolationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4857   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4858                                    gsm_map_er_SS_SubscriptionViolationParam_sequence, hf_index, ett_gsm_map_er_SS_SubscriptionViolationParam);
4859
4860   return offset;
4861 }
4862
4863
4864 static const ber_sequence_t gsm_map_er_InformationNotAvailableParam_sequence[] = {
4865   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4866   { NULL, 0, 0, 0, NULL }
4867 };
4868
4869 static int
4870 dissect_gsm_map_er_InformationNotAvailableParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4871   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4872                                    gsm_map_er_InformationNotAvailableParam_sequence, hf_index, ett_gsm_map_er_InformationNotAvailableParam);
4873
4874   return offset;
4875 }
4876
4877
4878 static const ber_sequence_t gsm_map_er_SubBusyForMT_SMS_Param_sequence[] = {
4879   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4880   { &hf_gsm_map_er_gprsConnectionSuspended, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_NULL },
4881   { NULL, 0, 0, 0, NULL }
4882 };
4883
4884 static int
4885 dissect_gsm_map_er_SubBusyForMT_SMS_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4886   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4887                                    gsm_map_er_SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_er_SubBusyForMT_SMS_Param);
4888
4889   return offset;
4890 }
4891
4892
4893 static const ber_sequence_t gsm_map_er_MessageWaitListFullParam_sequence[] = {
4894   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4895   { NULL, 0, 0, 0, NULL }
4896 };
4897
4898 static int
4899 dissect_gsm_map_er_MessageWaitListFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4900   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4901                                    gsm_map_er_MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_er_MessageWaitListFullParam);
4902
4903   return offset;
4904 }
4905
4906
4907 static const ber_sequence_t gsm_map_er_ResourceLimitationParam_sequence[] = {
4908   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4909   { NULL, 0, 0, 0, NULL }
4910 };
4911
4912 static int
4913 dissect_gsm_map_er_ResourceLimitationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4914   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4915                                    gsm_map_er_ResourceLimitationParam_sequence, hf_index, ett_gsm_map_er_ResourceLimitationParam);
4916
4917   return offset;
4918 }
4919
4920
4921 static const ber_sequence_t gsm_map_er_NoGroupCallNbParam_sequence[] = {
4922   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4923   { NULL, 0, 0, 0, NULL }
4924 };
4925
4926 static int
4927 dissect_gsm_map_er_NoGroupCallNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4928   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4929                                    gsm_map_er_NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_er_NoGroupCallNbParam);
4930
4931   return offset;
4932 }
4933
4934
4935 static const ber_sequence_t gsm_map_er_IncompatibleTerminalParam_sequence[] = {
4936   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4937   { NULL, 0, 0, 0, NULL }
4938 };
4939
4940 static int
4941 dissect_gsm_map_er_IncompatibleTerminalParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4942   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4943                                    gsm_map_er_IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_er_IncompatibleTerminalParam);
4944
4945   return offset;
4946 }
4947
4948
4949 static const ber_sequence_t gsm_map_er_ShortTermDenialParam_sequence[] = {
4950   { NULL, 0, 0, 0, NULL }
4951 };
4952
4953 static int
4954 dissect_gsm_map_er_ShortTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4955   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4956                                    gsm_map_er_ShortTermDenialParam_sequence, hf_index, ett_gsm_map_er_ShortTermDenialParam);
4957
4958   return offset;
4959 }
4960
4961
4962 static const ber_sequence_t gsm_map_er_LongTermDenialParam_sequence[] = {
4963   { NULL, 0, 0, 0, NULL }
4964 };
4965
4966 static int
4967 dissect_gsm_map_er_LongTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4968   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4969                                    gsm_map_er_LongTermDenialParam_sequence, hf_index, ett_gsm_map_er_LongTermDenialParam);
4970
4971   return offset;
4972 }
4973
4974
4975 static const ber_sequence_t gsm_map_er_UnauthorizedRequestingNetwork_Param_sequence[] = {
4976   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4977   { NULL, 0, 0, 0, NULL }
4978 };
4979
4980 static int
4981 dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4982   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4983                                    gsm_map_er_UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedRequestingNetwork_Param);
4984
4985   return offset;
4986 }
4987
4988
4989 static const value_string gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals[] = {
4990   {   0, "noAdditionalInformation" },
4991   {   1, "clientNotInMSPrivacyExceptionList" },
4992   {   2, "callToClientNotSetup" },
4993   {   3, "privacyOverrideNotApplicable" },
4994   {   4, "disallowedByLocalRegulatoryRequirements" },
4995   {   5, "unauthorizedPrivacyClass" },
4996   {   6, "unauthorizedCallSessionUnrelatedExternalClient" },
4997   {   7, "unauthorizedCallSessionRelatedExternalClient" },
4998   { 0, NULL }
4999 };
5000
5001
5002 static int
5003 dissect_gsm_map_er_UnauthorizedLCSClient_Diagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5004   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5005                                   NULL);
5006
5007   return offset;
5008 }
5009
5010
5011 static const ber_sequence_t gsm_map_er_UnauthorizedLCSClient_Param_sequence[] = {
5012   { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_UnauthorizedLCSClient_Diagnostic },
5013   { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5014   { NULL, 0, 0, 0, NULL }
5015 };
5016
5017 static int
5018 dissect_gsm_map_er_UnauthorizedLCSClient_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5019   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5020                                    gsm_map_er_UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedLCSClient_Param);
5021
5022   return offset;
5023 }
5024
5025
5026 static const value_string gsm_map_er_PositionMethodFailure_Diagnostic_vals[] = {
5027   {   0, "congestion" },
5028   {   1, "insufficientResources" },
5029   {   2, "insufficientMeasurementData" },
5030   {   3, "inconsistentMeasurementData" },
5031   {   4, "locationProcedureNotCompleted" },
5032   {   5, "locationProcedureNotSupportedByTargetMS" },
5033   {   6, "qoSNotAttainable" },
5034   {   7, "positionMethodNotAvailableInNetwork" },
5035   {   8, "positionMethodNotAvailableInLocationArea" },
5036   { 0, NULL }
5037 };
5038
5039
5040 static int
5041 dissect_gsm_map_er_PositionMethodFailure_Diagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5042   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5043                                   NULL);
5044
5045   return offset;
5046 }
5047
5048
5049 static const ber_sequence_t gsm_map_er_PositionMethodFailure_Param_sequence[] = {
5050   { &hf_gsm_map_er_positionMethodFailure_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_PositionMethodFailure_Diagnostic },
5051   { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5052   { NULL, 0, 0, 0, NULL }
5053 };
5054
5055 static int
5056 dissect_gsm_map_er_PositionMethodFailure_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5057   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5058                                    gsm_map_er_PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_er_PositionMethodFailure_Param);
5059
5060   return offset;
5061 }
5062
5063
5064 static const ber_sequence_t gsm_map_er_UnknownOrUnreachableLCSClient_Param_sequence[] = {
5065   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5066   { NULL, 0, 0, 0, NULL }
5067 };
5068
5069 static int
5070 dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5071   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5072                                    gsm_map_er_UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param);
5073
5074   return offset;
5075 }
5076
5077
5078 static const ber_sequence_t gsm_map_er_MM_EventNotSupported_Param_sequence[] = {
5079   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5080   { NULL, 0, 0, 0, NULL }
5081 };
5082
5083 static int
5084 dissect_gsm_map_er_MM_EventNotSupported_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5085   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5086                                    gsm_map_er_MM_EventNotSupported_Param_sequence, hf_index, ett_gsm_map_er_MM_EventNotSupported_Param);
5087
5088   return offset;
5089 }
5090
5091
5092 static const ber_sequence_t gsm_map_er_TargetCellOutsideGCA_Param_sequence[] = {
5093   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5094   { NULL, 0, 0, 0, NULL }
5095 };
5096
5097 static int
5098 dissect_gsm_map_er_TargetCellOutsideGCA_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5099   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5100                                    gsm_map_er_TargetCellOutsideGCA_Param_sequence, hf_index, ett_gsm_map_er_TargetCellOutsideGCA_Param);
5101
5102   return offset;
5103 }
5104
5105
5106 static const ber_sequence_t gsm_map_er_OngoingGroupCallParam_sequence[] = {
5107   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5108   { NULL, 0, 0, 0, NULL }
5109 };
5110
5111 static int
5112 dissect_gsm_map_er_OngoingGroupCallParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5113   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5114                                    gsm_map_er_OngoingGroupCallParam_sequence, hf_index, ett_gsm_map_er_OngoingGroupCallParam);
5115
5116   return offset;
5117 }
5118
5119
5120 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
5121
5122
5123
5124 static int
5125 dissect_gsm_map_sm_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5126   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
5127
5128   return offset;
5129 }
5130
5131
5132
5133 static int
5134 dissect_gsm_map_sm_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5135   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5136
5137   return offset;
5138 }
5139
5140
5141
5142 static int
5143 dissect_gsm_map_sm_SM_RP_MTI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5144   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5145                                   NULL);
5146
5147   return offset;
5148 }
5149
5150
5151
5152 static int
5153 dissect_gsm_map_sm_SM_RP_SMEA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5154   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5155                                        NULL);
5156
5157   return offset;
5158 }
5159
5160
5161 static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Arg_sequence[] = {
5162   { &hf_gsm_map_sm_msisdn   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5163   { &hf_gsm_map_sm_sm_RP_PRI, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_BOOLEAN },
5164   { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
5165   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5166   { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5167   { &hf_gsm_map_sm_sm_RP_MTI, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_MTI },
5168   { &hf_gsm_map_sm_sm_RP_SMEA, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_SMEA },
5169   { NULL, 0, 0, 0, NULL }
5170 };
5171
5172 static int
5173 dissect_gsm_map_sm_RoutingInfoForSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5174   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5175                                    gsm_map_sm_RoutingInfoForSM_Arg_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Arg);
5176
5177   return offset;
5178 }
5179
5180
5181 static const value_string gsm_map_sm_Additional_Number_vals[] = {
5182   {   0, "msc-Number" },
5183   {   1, "sgsn-Number" },
5184   { 0, NULL }
5185 };
5186
5187 static const ber_choice_t gsm_map_sm_Additional_Number_choice[] = {
5188   {   0, &hf_gsm_map_sm_msc_Number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5189   {   1, &hf_gsm_map_sm_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5190   { 0, NULL, 0, 0, 0, NULL }
5191 };
5192
5193 static int
5194 dissect_gsm_map_sm_Additional_Number(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5195   offset = dissect_ber_choice(actx, tree, tvb, offset,
5196                                  gsm_map_sm_Additional_Number_choice, hf_index, ett_gsm_map_sm_Additional_Number,
5197                                  NULL);
5198
5199   return offset;
5200 }
5201
5202
5203 static const ber_sequence_t gsm_map_sm_LocationInfoWithLMSI_sequence[] = {
5204   { &hf_gsm_map_sm_networkNode_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5205   { &hf_gsm_map_sm_lmsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
5206   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5207   { &hf_gsm_map_sm_gprsNodeIndicator, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5208   { &hf_gsm_map_sm_additional_Number, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_Additional_Number },
5209   { NULL, 0, 0, 0, NULL }
5210 };
5211
5212 static int
5213 dissect_gsm_map_sm_LocationInfoWithLMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5214   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5215                                    gsm_map_sm_LocationInfoWithLMSI_sequence, hf_index, ett_gsm_map_sm_LocationInfoWithLMSI);
5216
5217   return offset;
5218 }
5219
5220
5221 static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Res_sequence[] = {
5222   { &hf_gsm_map_sm_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
5223   { &hf_gsm_map_sm_locationInfoWithLMSI, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_LocationInfoWithLMSI },
5224   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5225   { NULL, 0, 0, 0, NULL }
5226 };
5227
5228 static int
5229 dissect_gsm_map_sm_RoutingInfoForSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5230   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5231                                    gsm_map_sm_RoutingInfoForSM_Res_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Res);
5232
5233   return offset;
5234 }
5235
5236
5237 static const value_string gsm_map_sm_SM_RP_DA_vals[] = {
5238   {   0, "imsi" },
5239   {   1, "lmsi" },
5240   {   4, "serviceCentreAddressDA" },
5241   {   5, "noSM-RP-DA" },
5242   { 0, NULL }
5243 };
5244
5245 static const ber_choice_t gsm_map_sm_SM_RP_DA_choice[] = {
5246   {   0, &hf_gsm_map_sm_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5247   {   1, &hf_gsm_map_sm_lmsi     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
5248   {   4, &hf_gsm_map_sm_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
5249   {   5, &hf_gsm_map_sm_noSM_RP_DA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5250   { 0, NULL, 0, 0, 0, NULL }
5251 };
5252
5253 static int
5254 dissect_gsm_map_sm_SM_RP_DA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5255   offset = dissect_ber_choice(actx, tree, tvb, offset,
5256                                  gsm_map_sm_SM_RP_DA_choice, hf_index, ett_gsm_map_sm_SM_RP_DA,
5257                                  NULL);
5258
5259   return offset;
5260 }
5261
5262
5263
5264 static int
5265 dissect_gsm_map_sm_T_msisdn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5266 #line 262 "gsmmap.cnf"
5267 actx->pinfo->p2p_dir = P2P_DIR_RECV;
5268    offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
5269
5270
5271
5272
5273   return offset;
5274 }
5275
5276
5277
5278 static int
5279 dissect_gsm_map_sm_T_serviceCentreAddressOA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5280 #line 254 "gsmmap.cnf"
5281         actx->pinfo->p2p_dir = P2P_DIR_SENT;
5282   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
5283
5284
5285
5286
5287   return offset;
5288 }
5289
5290
5291 static const value_string gsm_map_sm_SM_RP_OA_vals[] = {
5292   {   2, "msisdn" },
5293   {   4, "serviceCentreAddressOA" },
5294   {   5, "noSM-RP-OA" },
5295   { 0, NULL }
5296 };
5297
5298 static const ber_choice_t gsm_map_sm_SM_RP_OA_choice[] = {
5299   {   2, &hf_gsm_map_sm_msisdn_01, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_msisdn },
5300   {   4, &hf_gsm_map_sm_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_serviceCentreAddressOA },
5301   {   5, &hf_gsm_map_sm_noSM_RP_OA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5302   { 0, NULL, 0, 0, 0, NULL }
5303 };
5304
5305 static int
5306 dissect_gsm_map_sm_SM_RP_OA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5307   offset = dissect_ber_choice(actx, tree, tvb, offset,
5308                                  gsm_map_sm_SM_RP_OA_choice, hf_index, ett_gsm_map_sm_SM_RP_OA,
5309                                  NULL);
5310
5311   return offset;
5312 }
5313
5314
5315 static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Arg_sequence[] = {
5316   { &hf_gsm_map_sm_sm_RP_DA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_SM_RP_DA },
5317   { &hf_gsm_map_sm_sm_RP_OA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_SM_RP_OA },
5318   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5319   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5320   { &hf_gsm_map_sm_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
5321   { NULL, 0, 0, 0, NULL }
5322 };
5323
5324 static int
5325 dissect_gsm_map_sm_MO_ForwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5326 #line 281 "gsmmap.cnf"
5327
5328         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5329   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5330                                    gsm_map_sm_MO_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Arg);
5331
5332
5333         if (!actx->value_ptr)
5334                 return offset;
5335         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5336
5337
5338
5339   return offset;
5340 }
5341
5342
5343 static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Res_sequence[] = {
5344   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5345   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5346   { NULL, 0, 0, 0, NULL }
5347 };
5348
5349 static int
5350 dissect_gsm_map_sm_MO_ForwardSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5351   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5352                                    gsm_map_sm_MO_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Res);
5353
5354   return offset;
5355 }
5356
5357
5358 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Arg_sequence[] = {
5359   { &hf_gsm_map_sm_sm_RP_DA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_SM_RP_DA },
5360   { &hf_gsm_map_sm_sm_RP_OA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_SM_RP_OA },
5361   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5362   { &hf_gsm_map_sm_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
5363   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5364   { NULL, 0, 0, 0, NULL }
5365 };
5366
5367 static int
5368 dissect_gsm_map_sm_MT_ForwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5369 #line 290 "gsmmap.cnf"
5370
5371         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5372   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5373                                    gsm_map_sm_MT_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Arg);
5374
5375
5376         if (!actx->value_ptr)
5377                 return offset;
5378         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5379
5380
5381
5382   return offset;
5383 }
5384
5385
5386 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Res_sequence[] = {
5387   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5388   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5389   { NULL, 0, 0, 0, NULL }
5390 };
5391
5392 static int
5393 dissect_gsm_map_sm_MT_ForwardSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5394   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5395                                    gsm_map_sm_MT_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Res);
5396
5397   return offset;
5398 }
5399
5400
5401 static const value_string gsm_map_sm_SM_DeliveryOutcome_vals[] = {
5402   {   0, "memoryCapacityExceeded" },
5403   {   1, "absentSubscriber" },
5404   {   2, "successfulTransfer" },
5405   { 0, NULL }
5406 };
5407
5408
5409 static int
5410 dissect_gsm_map_sm_SM_DeliveryOutcome(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5411   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5412                                   NULL);
5413
5414   return offset;
5415 }
5416
5417
5418 static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusArg_sequence[] = {
5419   { &hf_gsm_map_sm_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5420   { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
5421   { &hf_gsm_map_sm_sm_DeliveryOutcome, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
5422   { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5423   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5424   { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5425   { &hf_gsm_map_sm_deliveryOutcomeIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5426   { &hf_gsm_map_sm_additionalSM_DeliveryOutcome, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
5427   { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5428   { NULL, 0, 0, 0, NULL }
5429 };
5430
5431 static int
5432 dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5433   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5434                                    gsm_map_sm_ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusArg);
5435
5436   return offset;
5437 }
5438
5439
5440 static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusRes_sequence[] = {
5441   { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5442   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5443   { NULL, 0, 0, 0, NULL }
5444 };
5445
5446 static int
5447 dissect_gsm_map_sm_ReportSM_DeliveryStatusRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5448   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5449                                    gsm_map_sm_ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusRes);
5450
5451   return offset;
5452 }
5453
5454
5455 static const ber_sequence_t gsm_map_sm_AlertServiceCentreArg_sequence[] = {
5456   { &hf_gsm_map_sm_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5457   { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
5458   { NULL, 0, 0, 0, NULL }
5459 };
5460
5461 static int
5462 dissect_gsm_map_sm_AlertServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5463   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5464                                    gsm_map_sm_AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_AlertServiceCentreArg);
5465
5466   return offset;
5467 }
5468
5469
5470 static const asn_namedbit gsm_map_sm_MW_Status_bits[] = {
5471   {  0, &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded, -1, -1, "sc-AddressNotIncluded", NULL },
5472   {  1, &hf_gsm_map_sm_MW_Status_mnrf_Set, -1, -1, "mnrf-Set", NULL },
5473   {  2, &hf_gsm_map_sm_MW_Status_mcef_Set, -1, -1, "mcef-Set", NULL },
5474   {  3, &hf_gsm_map_sm_MW_Status_mnrg_Set, -1, -1, "mnrg-Set", NULL },
5475   { 0, NULL, 0, 0, NULL, NULL }
5476 };
5477
5478 static int
5479 dissect_gsm_map_sm_MW_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5480   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5481                                     gsm_map_sm_MW_Status_bits, hf_index, ett_gsm_map_sm_MW_Status,
5482                                     NULL);
5483
5484   return offset;
5485 }
5486
5487
5488 static const ber_sequence_t gsm_map_sm_InformServiceCentreArg_sequence[] = {
5489   { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5490   { &hf_gsm_map_sm_mw_Status, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_MW_Status },
5491   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5492   { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5493   { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5494   { NULL, 0, 0, 0, NULL }
5495 };
5496
5497 static int
5498 dissect_gsm_map_sm_InformServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5499   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5500                                    gsm_map_sm_InformServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_InformServiceCentreArg);
5501
5502   return offset;
5503 }
5504
5505
5506 static const value_string gsm_map_sm_AlertReason_vals[] = {
5507   {   0, "ms-Present" },
5508   {   1, "memoryAvailable" },
5509   { 0, NULL }
5510 };
5511
5512
5513 static int
5514 dissect_gsm_map_sm_AlertReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5515   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5516                                   NULL);
5517
5518   return offset;
5519 }
5520
5521
5522 static const ber_sequence_t gsm_map_sm_ReadyForSM_Arg_sequence[] = {
5523   { &hf_gsm_map_sm_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5524   { &hf_gsm_map_sm_alertReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_AlertReason },
5525   { &hf_gsm_map_sm_alertReasonIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
5526   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5527   { NULL, 0, 0, 0, NULL }
5528 };
5529
5530 static int
5531 dissect_gsm_map_sm_ReadyForSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5532   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5533                                    gsm_map_sm_ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Arg);
5534
5535   return offset;
5536 }
5537
5538
5539 static const ber_sequence_t gsm_map_sm_ReadyForSM_Res_sequence[] = {
5540   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5541   { NULL, 0, 0, 0, NULL }
5542 };
5543
5544 static int
5545 dissect_gsm_map_sm_ReadyForSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5546   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5547                                    gsm_map_sm_ReadyForSM_Res_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Res);
5548
5549   return offset;
5550 }
5551
5552
5553 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence[] = {
5554   { &hf_gsm_map_sm_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference },
5555   { &hf_gsm_map_sm_sm_RP_OA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_SM_RP_OA },
5556   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5557   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5558   { NULL, 0, 0, 0, NULL }
5559 };
5560
5561 static int
5562 dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5563   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5564                                    gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg);
5565
5566   return offset;
5567 }
5568
5569
5570 static const ber_sequence_t gsm_map_sm_DispatcherList_sequence_of[1] = {
5571   { &hf_gsm_map_sm_DispatcherList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5572 };
5573
5574 static int
5575 dissect_gsm_map_sm_DispatcherList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5576   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5577                                       gsm_map_sm_DispatcherList_sequence_of, hf_index, ett_gsm_map_sm_DispatcherList);
5578
5579   return offset;
5580 }
5581
5582
5583 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence[] = {
5584   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
5585   { &hf_gsm_map_sm_dispatcherList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_DispatcherList },
5586   { &hf_gsm_map_sm_ongoingCall, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
5587   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5588   { NULL, 0, 0, 0, NULL }
5589 };
5590
5591 static int
5592 dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5593   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5594                                    gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Res);
5595
5596   return offset;
5597 }
5598
5599
5600 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
5601
5602
5603
5604 static int
5605 dissect_gsm_map_om_TraceReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5606   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5607                                        NULL);
5608
5609   return offset;
5610 }
5611
5612
5613
5614 static int
5615 dissect_gsm_map_om_TraceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5616   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5617                                   NULL);
5618
5619   return offset;
5620 }
5621
5622
5623
5624 static int
5625 dissect_gsm_map_om_TraceReference2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5626   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5627                                        NULL);
5628
5629   return offset;
5630 }
5631
5632
5633 static const value_string gsm_map_om_TraceDepth_vals[] = {
5634   {   0, "minimum" },
5635   {   1, "medium" },
5636   {   2, "maximum" },
5637   { 0, NULL }
5638 };
5639
5640
5641 static int
5642 dissect_gsm_map_om_TraceDepth(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5643   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5644                                   NULL);
5645
5646   return offset;
5647 }
5648
5649
5650 static const ber_sequence_t gsm_map_om_TraceDepthList_sequence[] = {
5651   { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5652   { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5653   { &hf_gsm_map_om_sgsn_TraceDepth, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5654   { &hf_gsm_map_om_ggsn_TraceDepth, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5655   { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5656   { &hf_gsm_map_om_bmsc_TraceDepth, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5657   { NULL, 0, 0, 0, NULL }
5658 };
5659
5660 static int
5661 dissect_gsm_map_om_TraceDepthList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5662   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5663                                    gsm_map_om_TraceDepthList_sequence, hf_index, ett_gsm_map_om_TraceDepthList);
5664
5665   return offset;
5666 }
5667
5668
5669 static const asn_namedbit gsm_map_om_TraceNE_TypeList_bits[] = {
5670   {  0, &hf_gsm_map_om_TraceNE_TypeList_msc_s, -1, -1, "msc-s", NULL },
5671   {  1, &hf_gsm_map_om_TraceNE_TypeList_mgw, -1, -1, "mgw", NULL },
5672   {  2, &hf_gsm_map_om_TraceNE_TypeList_sgsn, -1, -1, "sgsn", NULL },
5673   {  3, &hf_gsm_map_om_TraceNE_TypeList_ggsn, -1, -1, "ggsn", NULL },
5674   {  4, &hf_gsm_map_om_TraceNE_TypeList_rnc, -1, -1, "rnc", NULL },
5675   {  5, &hf_gsm_map_om_TraceNE_TypeList_bm_sc, -1, -1, "bm-sc", NULL },
5676   { 0, NULL, 0, 0, NULL, NULL }
5677 };
5678
5679 static int
5680 dissect_gsm_map_om_TraceNE_TypeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5681   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5682                                     gsm_map_om_TraceNE_TypeList_bits, hf_index, ett_gsm_map_om_TraceNE_TypeList,
5683                                     NULL);
5684
5685   return offset;
5686 }
5687
5688
5689 static const asn_namedbit gsm_map_om_MSC_S_InterfaceList_bits[] = {
5690   {  0, &hf_gsm_map_om_MSC_S_InterfaceList_a, -1, -1, "a", NULL },
5691   {  1, &hf_gsm_map_om_MSC_S_InterfaceList_iu, -1, -1, "iu", NULL },
5692   {  2, &hf_gsm_map_om_MSC_S_InterfaceList_mc, -1, -1, "mc", NULL },
5693   {  3, &hf_gsm_map_om_MSC_S_InterfaceList_map_g, -1, -1, "map-g", NULL },
5694   {  4, &hf_gsm_map_om_MSC_S_InterfaceList_map_b, -1, -1, "map-b", NULL },
5695   {  5, &hf_gsm_map_om_MSC_S_InterfaceList_map_e, -1, -1, "map-e", NULL },
5696   {  6, &hf_gsm_map_om_MSC_S_InterfaceList_map_f, -1, -1, "map-f", NULL },
5697   {  7, &hf_gsm_map_om_MSC_S_InterfaceList_cap, -1, -1, "cap", NULL },
5698   {  8, &hf_gsm_map_om_MSC_S_InterfaceList_map_d, -1, -1, "map-d", NULL },
5699   {  9, &hf_gsm_map_om_MSC_S_InterfaceList_map_c, -1, -1, "map-c", NULL },
5700   { 0, NULL, 0, 0, NULL, NULL }
5701 };
5702
5703 static int
5704 dissect_gsm_map_om_MSC_S_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5705   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5706                                     gsm_map_om_MSC_S_InterfaceList_bits, hf_index, ett_gsm_map_om_MSC_S_InterfaceList,
5707                                     NULL);
5708
5709   return offset;
5710 }
5711
5712
5713 static const asn_namedbit gsm_map_om_MGW_InterfaceList_bits[] = {
5714   {  0, &hf_gsm_map_om_MGW_InterfaceList_mc, -1, -1, "mc", NULL },
5715   {  1, &hf_gsm_map_om_MGW_InterfaceList_nb_up, -1, -1, "nb-up", NULL },
5716   {  2, &hf_gsm_map_om_MGW_InterfaceList_iu_up, -1, -1, "iu-up", NULL },
5717   { 0, NULL, 0, 0, NULL, NULL }
5718 };
5719
5720 static int
5721 dissect_gsm_map_om_MGW_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5722   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5723                                     gsm_map_om_MGW_InterfaceList_bits, hf_index, ett_gsm_map_om_MGW_InterfaceList,
5724                                     NULL);
5725
5726   return offset;
5727 }
5728
5729
5730 static const asn_namedbit gsm_map_om_SGSN_InterfaceList_bits[] = {
5731   {  0, &hf_gsm_map_om_SGSN_InterfaceList_gb, -1, -1, "gb", NULL },
5732   {  1, &hf_gsm_map_om_SGSN_InterfaceList_iu, -1, -1, "iu", NULL },
5733   {  2, &hf_gsm_map_om_SGSN_InterfaceList_gn, -1, -1, "gn", NULL },
5734   {  3, &hf_gsm_map_om_SGSN_InterfaceList_map_gr, -1, -1, "map-gr", NULL },
5735   {  4, &hf_gsm_map_om_SGSN_InterfaceList_map_gd, -1, -1, "map-gd", NULL },
5736   {  5, &hf_gsm_map_om_SGSN_InterfaceList_map_gf, -1, -1, "map-gf", NULL },
5737   {  6, &hf_gsm_map_om_SGSN_InterfaceList_gs, -1, -1, "gs", NULL },
5738   {  7, &hf_gsm_map_om_SGSN_InterfaceList_ge, -1, -1, "ge", NULL },
5739   { 0, NULL, 0, 0, NULL, NULL }
5740 };
5741
5742 static int
5743 dissect_gsm_map_om_SGSN_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5744   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5745                                     gsm_map_om_SGSN_InterfaceList_bits, hf_index, ett_gsm_map_om_SGSN_InterfaceList,
5746                                     NULL);
5747
5748   return offset;
5749 }
5750
5751
5752 static const asn_namedbit gsm_map_om_GGSN_InterfaceList_bits[] = {
5753   {  0, &hf_gsm_map_om_GGSN_InterfaceList_gn, -1, -1, "gn", NULL },
5754   {  1, &hf_gsm_map_om_GGSN_InterfaceList_gi, -1, -1, "gi", NULL },
5755   {  2, &hf_gsm_map_om_GGSN_InterfaceList_gmb, -1, -1, "gmb", NULL },
5756   { 0, NULL, 0, 0, NULL, NULL }
5757 };
5758
5759 static int
5760 dissect_gsm_map_om_GGSN_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5761   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5762                                     gsm_map_om_GGSN_InterfaceList_bits, hf_index, ett_gsm_map_om_GGSN_InterfaceList,
5763                                     NULL);
5764
5765   return offset;
5766 }
5767
5768
5769 static const asn_namedbit gsm_map_om_RNC_InterfaceList_bits[] = {
5770   {  0, &hf_gsm_map_om_RNC_InterfaceList_iu, -1, -1, "iu", NULL },
5771   {  1, &hf_gsm_map_om_RNC_InterfaceList_iur, -1, -1, "iur", NULL },
5772   {  2, &hf_gsm_map_om_RNC_InterfaceList_iub, -1, -1, "iub", NULL },
5773   {  3, &hf_gsm_map_om_RNC_InterfaceList_uu, -1, -1, "uu", NULL },
5774   { 0, NULL, 0, 0, NULL, NULL }
5775 };
5776
5777 static int
5778 dissect_gsm_map_om_RNC_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5779   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5780                                     gsm_map_om_RNC_InterfaceList_bits, hf_index, ett_gsm_map_om_RNC_InterfaceList,
5781                                     NULL);
5782
5783   return offset;
5784 }
5785
5786
5787 static const asn_namedbit gsm_map_om_BMSC_InterfaceList_bits[] = {
5788   {  0, &hf_gsm_map_om_BMSC_InterfaceList_gmb, -1, -1, "gmb", NULL },
5789   { 0, NULL, 0, 0, NULL, NULL }
5790 };
5791
5792 static int
5793 dissect_gsm_map_om_BMSC_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5794   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5795                                     gsm_map_om_BMSC_InterfaceList_bits, hf_index, ett_gsm_map_om_BMSC_InterfaceList,
5796                                     NULL);
5797
5798   return offset;
5799 }
5800
5801
5802 static const ber_sequence_t gsm_map_om_TraceInterfaceList_sequence[] = {
5803   { &hf_gsm_map_om_msc_s_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList },
5804   { &hf_gsm_map_om_mgw_List , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList },
5805   { &hf_gsm_map_om_sgsn_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_InterfaceList },
5806   { &hf_gsm_map_om_ggsn_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_InterfaceList },
5807   { &hf_gsm_map_om_rnc_List , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList },
5808   { &hf_gsm_map_om_bmsc_List, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_InterfaceList },
5809   { NULL, 0, 0, 0, NULL }
5810 };
5811
5812 static int
5813 dissect_gsm_map_om_TraceInterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5814   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5815                                    gsm_map_om_TraceInterfaceList_sequence, hf_index, ett_gsm_map_om_TraceInterfaceList);
5816
5817   return offset;
5818 }
5819
5820
5821 static const asn_namedbit gsm_map_om_MSC_S_EventList_bits[] = {
5822   {  0, &hf_gsm_map_om_MSC_S_EventList_mo_mtCall, -1, -1, "mo-mtCall", NULL },
5823   {  1, &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL },
5824   {  2, &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach, -1, -1, "lu-imsiAttach-imsiDetach", NULL },
5825   {  3, &hf_gsm_map_om_MSC_S_EventList_handovers, -1, -1, "handovers", NULL },
5826   {  4, &hf_gsm_map_om_MSC_S_EventList_ss, -1, -1, "ss", NULL },
5827   { 0, NULL, 0, 0, NULL, NULL }
5828 };
5829
5830 static int
5831 dissect_gsm_map_om_MSC_S_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5832   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5833                                     gsm_map_om_MSC_S_EventList_bits, hf_index, ett_gsm_map_om_MSC_S_EventList,
5834                                     NULL);
5835
5836   return offset;
5837 }
5838
5839
5840 static const asn_namedbit gsm_map_om_MGW_EventList_bits[] = {
5841   {  0, &hf_gsm_map_om_MGW_EventList_context, -1, -1, "context", NULL },
5842   { 0, NULL, 0, 0, NULL, NULL }
5843 };
5844
5845 static int
5846 dissect_gsm_map_om_MGW_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5847   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5848                                     gsm_map_om_MGW_EventList_bits, hf_index, ett_gsm_map_om_MGW_EventList,
5849                                     NULL);
5850
5851   return offset;
5852 }
5853
5854
5855 static const asn_namedbit gsm_map_om_SGSN_EventList_bits[] = {
5856   {  0, &hf_gsm_map_om_SGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL },
5857   {  1, &hf_gsm_map_om_SGSN_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL },
5858   {  2, &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach, -1, -1, "rau-gprsAttach-gprsDetach", NULL },
5859   {  3, &hf_gsm_map_om_SGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL },
5860   { 0, NULL, 0, 0, NULL, NULL }
5861 };
5862
5863 static int
5864 dissect_gsm_map_om_SGSN_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5865   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5866                                     gsm_map_om_SGSN_EventList_bits, hf_index, ett_gsm_map_om_SGSN_EventList,
5867                                     NULL);
5868
5869   return offset;
5870 }
5871
5872
5873 static const asn_namedbit gsm_map_om_GGSN_EventList_bits[] = {
5874   {  0, &hf_gsm_map_om_GGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL },
5875   {  1, &hf_gsm_map_om_GGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL },
5876   { 0, NULL, 0, 0, NULL, NULL }
5877 };
5878
5879 static int
5880 dissect_gsm_map_om_GGSN_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5881   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5882                                     gsm_map_om_GGSN_EventList_bits, hf_index, ett_gsm_map_om_GGSN_EventList,
5883                                     NULL);
5884
5885   return offset;
5886 }
5887
5888
5889 static const asn_namedbit gsm_map_om_BMSC_EventList_bits[] = {
5890   {  0, &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation, -1, -1, "mbmsMulticastServiceActivation", NULL },
5891   { 0, NULL, 0, 0, NULL, NULL }
5892 };
5893
5894 static int
5895 dissect_gsm_map_om_BMSC_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5896   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5897                                     gsm_map_om_BMSC_EventList_bits, hf_index, ett_gsm_map_om_BMSC_EventList,
5898                                     NULL);
5899
5900   return offset;
5901 }
5902
5903
5904 static const ber_sequence_t gsm_map_om_TraceEventList_sequence[] = {
5905   { &hf_gsm_map_om_msc_s_List_01, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_EventList },
5906   { &hf_gsm_map_om_mgw_List_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList },
5907   { &hf_gsm_map_om_sgsn_List_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_EventList },
5908   { &hf_gsm_map_om_ggsn_List_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_EventList },
5909   { &hf_gsm_map_om_bmsc_List_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_EventList },
5910   { NULL, 0, 0, 0, NULL }
5911 };
5912
5913 static int
5914 dissect_gsm_map_om_TraceEventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5915   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5916                                    gsm_map_om_TraceEventList_sequence, hf_index, ett_gsm_map_om_TraceEventList);
5917
5918   return offset;
5919 }
5920
5921
5922 static const ber_sequence_t gsm_map_om_ActivateTraceModeArg_sequence[] = {
5923   { &hf_gsm_map_om_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5924   { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
5925   { &hf_gsm_map_om_traceType, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
5926   { &hf_gsm_map_om_omc_Id   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
5927   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5928   { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
5929   { &hf_gsm_map_om_traceDepthList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthList },
5930   { &hf_gsm_map_om_traceNE_TypeList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceNE_TypeList },
5931   { &hf_gsm_map_om_traceInterfaceList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceInterfaceList },
5932   { &hf_gsm_map_om_traceEventList, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceEventList },
5933   { NULL, 0, 0, 0, NULL }
5934 };
5935
5936 static int
5937 dissect_gsm_map_om_ActivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5938   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5939                                    gsm_map_om_ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeArg);
5940
5941   return offset;
5942 }
5943
5944
5945
5946 static int
5947 dissect_gsm_map_om_TraceRecordingSessionReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5948   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5949                                        NULL);
5950
5951   return offset;
5952 }
5953
5954
5955 static const ber_sequence_t gsm_map_om_TracePropagationList_sequence[] = {
5956   { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
5957   { &hf_gsm_map_om_traceType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
5958   { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
5959   { &hf_gsm_map_om_traceRecordingSessionReference, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceRecordingSessionReference },
5960   { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5961   { &hf_gsm_map_om_rnc_InterfaceList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList },
5962   { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5963   { &hf_gsm_map_om_msc_s_InterfaceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList },
5964   { &hf_gsm_map_om_msc_s_EventList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_EventList },
5965   { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5966   { &hf_gsm_map_om_mgw_InterfaceList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList },
5967   { &hf_gsm_map_om_mgw_EventList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList },
5968   { NULL, 0, 0, 0, NULL }
5969 };
5970
5971 static int
5972 dissect_gsm_map_om_TracePropagationList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5973   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5974                                    gsm_map_om_TracePropagationList_sequence, hf_index, ett_gsm_map_om_TracePropagationList);
5975
5976   return offset;
5977 }
5978
5979
5980
5981 static int
5982 dissect_gsm_map_om_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5983   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5984
5985   return offset;
5986 }
5987
5988
5989 static const ber_sequence_t gsm_map_om_ActivateTraceModeRes_sequence[] = {
5990   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5991   { &hf_gsm_map_om_traceSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_NULL },
5992   { NULL, 0, 0, 0, NULL }
5993 };
5994
5995 static int
5996 dissect_gsm_map_om_ActivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5997   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5998                                    gsm_map_om_ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeRes);
5999
6000   return offset;
6001 }
6002
6003
6004 static const ber_sequence_t gsm_map_om_DeactivateTraceModeArg_sequence[] = {
6005   { &hf_gsm_map_om_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
6006   { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
6007   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6008   { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
6009   { NULL, 0, 0, 0, NULL }
6010 };
6011
6012 static int
6013 dissect_gsm_map_om_DeactivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6014   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6015                                    gsm_map_om_DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeArg);
6016
6017   return offset;
6018 }
6019
6020
6021 static const ber_sequence_t gsm_map_om_DeactivateTraceModeRes_sequence[] = {
6022   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6023   { NULL, 0, 0, 0, NULL }
6024 };
6025
6026 static int
6027 dissect_gsm_map_om_DeactivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6028   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6029                                    gsm_map_om_DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeRes);
6030
6031   return offset;
6032 }
6033
6034
6035 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
6036
6037
6038 static const asn_namedbit gsm_map_ms_SupportedCamelPhases_bits[] = {
6039   {  0, &hf_gsm_map_ms_SupportedCamelPhases_phase1, -1, -1, "phase1", NULL },
6040   {  1, &hf_gsm_map_ms_SupportedCamelPhases_phase2, -1, -1, "phase2", NULL },
6041   {  2, &hf_gsm_map_ms_SupportedCamelPhases_phase3, -1, -1, "phase3", NULL },
6042   {  3, &hf_gsm_map_ms_SupportedCamelPhases_phase4, -1, -1, "phase4", NULL },
6043   { 0, NULL, 0, 0, NULL, NULL }
6044 };
6045
6046 int
6047 dissect_gsm_map_ms_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6048   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6049                                     gsm_map_ms_SupportedCamelPhases_bits, hf_index, ett_gsm_map_ms_SupportedCamelPhases,
6050                                     NULL);
6051
6052   return offset;
6053 }
6054
6055
6056
6057 static int
6058 dissect_gsm_map_ms_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6059   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6060
6061   return offset;
6062 }
6063
6064
6065 static const value_string gsm_map_ms_IST_SupportIndicator_vals[] = {
6066   {   0, "basicISTSupported" },
6067   {   1, "istCommandSupported" },
6068   { 0, NULL }
6069 };
6070
6071
6072 static int
6073 dissect_gsm_map_ms_IST_SupportIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6074   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6075                                   NULL);
6076
6077   return offset;
6078 }
6079
6080
6081
6082 static int
6083 dissect_gsm_map_ms_AgeIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6084   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6085                                        NULL);
6086
6087   return offset;
6088 }
6089
6090
6091 static const value_string gsm_map_ms_SuperChargerInfo_vals[] = {
6092   {   0, "sendSubscriberData" },
6093   {   1, "subscriberDataStored" },
6094   { 0, NULL }
6095 };
6096
6097 static const ber_choice_t gsm_map_ms_SuperChargerInfo_choice[] = {
6098   {   0, &hf_gsm_map_ms_sendSubscriberData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6099   {   1, &hf_gsm_map_ms_subscriberDataStored, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator },
6100   { 0, NULL, 0, 0, 0, NULL }
6101 };
6102
6103 static int
6104 dissect_gsm_map_ms_SuperChargerInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6105   offset = dissect_ber_choice(actx, tree, tvb, offset,
6106                                  gsm_map_ms_SuperChargerInfo_choice, hf_index, ett_gsm_map_ms_SuperChargerInfo,
6107                                  NULL);
6108
6109   return offset;
6110 }
6111
6112
6113 static const asn_namedbit gsm_map_ms_SupportedLCS_CapabilitySets_bits[] = {
6114   {  0, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1, -1, -1, "lcsCapabilitySet1", NULL },
6115   {  1, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2, -1, -1, "lcsCapabilitySet2", NULL },
6116   {  2, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3, -1, -1, "lcsCapabilitySet3", NULL },
6117   {  3, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4, -1, -1, "lcsCapabilitySet4", NULL },
6118   {  4, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5, -1, -1, "lcsCapabilitySet5", NULL },
6119   { 0, NULL, 0, 0, NULL, NULL }
6120 };
6121
6122 static int
6123 dissect_gsm_map_ms_SupportedLCS_CapabilitySets(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6124   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6125                                     gsm_map_ms_SupportedLCS_CapabilitySets_bits, hf_index, ett_gsm_map_ms_SupportedLCS_CapabilitySets,
6126                                     NULL);
6127
6128   return offset;
6129 }
6130
6131
6132 static const asn_namedbit gsm_map_ms_OfferedCamel4CSIs_bits[] = {
6133   {  0, &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi, -1, -1, "o-csi", NULL },
6134   {  1, &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi, -1, -1, "d-csi", NULL },
6135   {  2, &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi, -1, -1, "vt-csi", NULL },
6136   {  3, &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi, -1, -1, "t-csi", NULL },
6137   {  4, &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi, -1, -1, "mt-sms-csi", NULL },
6138   {  5, &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi, -1, -1, "mg-csi", NULL },
6139   {  6, &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements, -1, -1, "psi-enhancements", NULL },
6140   { 0, NULL, 0, 0, NULL, NULL }
6141 };
6142
6143 static int
6144 dissect_gsm_map_ms_OfferedCamel4CSIs(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6145   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6146                                     gsm_map_ms_OfferedCamel4CSIs_bits, hf_index, ett_gsm_map_ms_OfferedCamel4CSIs,
6147                                     NULL);
6148
6149   return offset;
6150 }
6151
6152
6153 static const asn_namedbit gsm_map_ms_SupportedRAT_Types_bits[] = {
6154   {  0, &hf_gsm_map_ms_SupportedRAT_Types_utran, -1, -1, "utran", NULL },
6155   {  1, &hf_gsm_map_ms_SupportedRAT_Types_geran, -1, -1, "geran", NULL },
6156   { 0, NULL, 0, 0, NULL, NULL }
6157 };
6158
6159 static int
6160 dissect_gsm_map_ms_SupportedRAT_Types(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6161   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6162                                     gsm_map_ms_SupportedRAT_Types_bits, hf_index, ett_gsm_map_ms_SupportedRAT_Types,
6163                                     NULL);
6164
6165   return offset;
6166 }
6167
6168
6169 static const ber_sequence_t gsm_map_ms_VLR_Capability_sequence[] = {
6170   { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
6171   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6172   { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6173   { &hf_gsm_map_ms_istSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator },
6174   { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo },
6175   { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6176   { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
6177   { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
6178   { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types },
6179   { &hf_gsm_map_ms_longGroupID_Supported, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6180   { NULL, 0, 0, 0, NULL }
6181 };
6182
6183 static int
6184 dissect_gsm_map_ms_VLR_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6185   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6186                                    gsm_map_ms_VLR_Capability_sequence, hf_index, ett_gsm_map_ms_VLR_Capability);
6187
6188   return offset;
6189 }
6190
6191
6192
6193 int
6194 dissect_gsm_map_ms_GSN_Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6195 #line 441 "gsmmap.cnf"
6196
6197         tvbuff_t        *parameter_tvb;
6198         guint8          octet;
6199         proto_tree *subtree;
6200
6201   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6202                                        &parameter_tvb);
6203
6204
6205         if (!parameter_tvb)
6206                 return offset;
6207         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_pdptypenumber);
6208
6209         octet = tvb_get_guint8(parameter_tvb,0);
6210         switch(octet){
6211         case 0x04: /* IPv4 */
6212                 proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE);
6213                 break;
6214         case 0x50: /* IPv4 */
6215                 proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE);
6216                 break;
6217         default:
6218                 break;
6219         }
6220
6221
6222
6223   return offset;
6224 }
6225
6226
6227 static const ber_sequence_t gsm_map_ms_ADD_Info_sequence[] = {
6228   { &hf_gsm_map_ms_imeisv   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
6229   { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6230   { NULL, 0, 0, 0, NULL }
6231 };
6232
6233 static int
6234 dissect_gsm_map_ms_ADD_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6235   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6236                                    gsm_map_ms_ADD_Info_sequence, hf_index, ett_gsm_map_ms_ADD_Info);
6237
6238   return offset;
6239 }
6240
6241
6242 static const ber_sequence_t gsm_map_ms_UpdateLocationArg_sequence[] = {
6243   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6244   { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6245   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6246   { &hf_gsm_map_ms_lmsi     , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
6247   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6248   { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability },
6249   { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6250   { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6251   { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
6252   { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info },
6253   { NULL, 0, 0, 0, NULL }
6254 };
6255
6256 static int
6257 dissect_gsm_map_ms_UpdateLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6258   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6259                                    gsm_map_ms_UpdateLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateLocationArg);
6260
6261   return offset;
6262 }
6263
6264
6265 static const ber_sequence_t gsm_map_ms_UpdateLocationRes_sequence[] = {
6266   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6267   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6268   { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
6269   { NULL, 0, 0, 0, NULL }
6270 };
6271
6272 static int
6273 dissect_gsm_map_ms_UpdateLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6274   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6275                                    gsm_map_ms_UpdateLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateLocationRes);
6276
6277   return offset;
6278 }
6279
6280
6281 static const value_string gsm_map_ms_CancellationType_vals[] = {
6282   {   0, "updateProcedure" },
6283   {   1, "subscriptionWithdraw" },
6284   { 0, NULL }
6285 };
6286
6287
6288 static int
6289 dissect_gsm_map_ms_CancellationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6290   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6291                                   NULL);
6292
6293   return offset;
6294 }
6295
6296
6297 static const ber_sequence_t gsm_map_ms_CancelLocationArg_U_sequence[] = {
6298   { &hf_gsm_map_ms_identity , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Identity },
6299   { &hf_gsm_map_ms_cancellationType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CancellationType },
6300   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6301   { NULL, 0, 0, 0, NULL }
6302 };
6303
6304 static int
6305 dissect_gsm_map_ms_CancelLocationArg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6306   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6307                                    gsm_map_ms_CancelLocationArg_U_sequence, hf_index, ett_gsm_map_ms_CancelLocationArg_U);
6308
6309   return offset;
6310 }
6311
6312
6313
6314 static int
6315 dissect_gsm_map_ms_CancelLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6316   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6317                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_CancelLocationArg_U);
6318
6319   return offset;
6320 }
6321
6322
6323 static const ber_sequence_t gsm_map_ms_CancelLocationRes_sequence[] = {
6324   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6325   { NULL, 0, 0, 0, NULL }
6326 };
6327
6328 static int
6329 dissect_gsm_map_ms_CancelLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6330   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6331                                    gsm_map_ms_CancelLocationRes_sequence, hf_index, ett_gsm_map_ms_CancelLocationRes);
6332
6333   return offset;
6334 }
6335
6336
6337 static const ber_sequence_t gsm_map_ms_PurgeMS_Arg_U_sequence[] = {
6338   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6339   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6340   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6341   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6342   { NULL, 0, 0, 0, NULL }
6343 };
6344
6345 static int
6346 dissect_gsm_map_ms_PurgeMS_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6347   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6348                                    gsm_map_ms_PurgeMS_Arg_U_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Arg_U);
6349
6350   return offset;
6351 }
6352
6353
6354
6355 static int
6356 dissect_gsm_map_ms_PurgeMS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6357   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6358                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PurgeMS_Arg_U);
6359
6360   return offset;
6361 }
6362
6363
6364 static const ber_sequence_t gsm_map_ms_PurgeMS_Res_sequence[] = {
6365   { &hf_gsm_map_ms_freezeTMSI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6366   { &hf_gsm_map_ms_freezeP_TMSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6367   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6368   { NULL, 0, 0, 0, NULL }
6369 };
6370
6371 static int
6372 dissect_gsm_map_ms_PurgeMS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6373   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6374                                    gsm_map_ms_PurgeMS_Res_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Res);
6375
6376   return offset;
6377 }
6378
6379
6380
6381 static int
6382 dissect_gsm_map_ms_NumberOfRequestedVectors(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6383   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6384                                   NULL);
6385
6386   return offset;
6387 }
6388
6389
6390
6391 static int
6392 dissect_gsm_map_ms_HopCounter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6393   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6394                                   NULL);
6395
6396   return offset;
6397 }
6398
6399
6400 static const ber_sequence_t gsm_map_ms_SendIdentificationArg_sequence[] = {
6401   { &hf_gsm_map_ms_tmsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_TMSI },
6402   { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
6403   { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
6404   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6405   { &hf_gsm_map_ms_msc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6406   { &hf_gsm_map_ms_previous_LAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
6407   { &hf_gsm_map_ms_hopCounter, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_HopCounter },
6408   { NULL, 0, 0, 0, NULL }
6409 };
6410
6411 static int
6412 dissect_gsm_map_ms_SendIdentificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6413   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6414                                    gsm_map_ms_SendIdentificationArg_sequence, hf_index, ett_gsm_map_ms_SendIdentificationArg);
6415
6416   return offset;
6417 }
6418
6419
6420
6421 static int
6422 dissect_gsm_map_ms_RAND(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6423   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6424                                        NULL);
6425
6426   return offset;
6427 }
6428
6429
6430
6431 static int
6432 dissect_gsm_map_ms_SRES(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6433   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6434                                        NULL);
6435
6436   return offset;
6437 }
6438
6439
6440
6441 static int
6442 dissect_gsm_map_ms_Kc(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6443   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6444                                        NULL);
6445
6446   return offset;
6447 }
6448
6449
6450 static const ber_sequence_t gsm_map_ms_AuthenticationTriplet_sequence[] = {
6451   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
6452   { &hf_gsm_map_ms_sres     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SRES },
6453   { &hf_gsm_map_ms_kc       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc },
6454   { NULL, 0, 0, 0, NULL }
6455 };
6456
6457 static int
6458 dissect_gsm_map_ms_AuthenticationTriplet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6459   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6460                                    gsm_map_ms_AuthenticationTriplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationTriplet);
6461
6462   return offset;
6463 }
6464
6465
6466 static const ber_sequence_t gsm_map_ms_TripletList_sequence_of[1] = {
6467   { &hf_gsm_map_ms_TripletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationTriplet },
6468 };
6469
6470 static int
6471 dissect_gsm_map_ms_TripletList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6472   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6473                                       gsm_map_ms_TripletList_sequence_of, hf_index, ett_gsm_map_ms_TripletList);
6474
6475   return offset;
6476 }
6477
6478
6479
6480 static int
6481 dissect_gsm_map_ms_XRES(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6482   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6483                                        NULL);
6484
6485   return offset;
6486 }
6487
6488
6489
6490 static int
6491 dissect_gsm_map_ms_CK(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6492   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6493                                        NULL);
6494
6495   return offset;
6496 }
6497
6498
6499
6500 static int
6501 dissect_gsm_map_ms_IK(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6502   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6503                                        NULL);
6504
6505   return offset;
6506 }
6507
6508
6509
6510 static int
6511 dissect_gsm_map_ms_AUTN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6512   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6513                                        NULL);
6514
6515   return offset;
6516 }
6517
6518
6519 static const ber_sequence_t gsm_map_ms_AuthenticationQuintuplet_sequence[] = {
6520   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
6521   { &hf_gsm_map_ms_xres     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_XRES },
6522   { &hf_gsm_map_ms_ck       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK },
6523   { &hf_gsm_map_ms_ik       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK },
6524   { &hf_gsm_map_ms_autn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTN },
6525   { NULL, 0, 0, 0, NULL }
6526 };
6527
6528 static int
6529 dissect_gsm_map_ms_AuthenticationQuintuplet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6530   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6531                                    gsm_map_ms_AuthenticationQuintuplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationQuintuplet);
6532
6533   return offset;
6534 }
6535
6536
6537 static const ber_sequence_t gsm_map_ms_QuintupletList_sequence_of[1] = {
6538   { &hf_gsm_map_ms_QuintupletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationQuintuplet },
6539 };
6540
6541 static int
6542 dissect_gsm_map_ms_QuintupletList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6543   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6544                                       gsm_map_ms_QuintupletList_sequence_of, hf_index, ett_gsm_map_ms_QuintupletList);
6545
6546   return offset;
6547 }
6548
6549
6550 static const value_string gsm_map_ms_AuthenticationSetList_vals[] = {
6551   {   0, "tripletList" },
6552   {   1, "quintupletList" },
6553   { 0, NULL }
6554 };
6555
6556 static const ber_choice_t gsm_map_ms_AuthenticationSetList_choice[] = {
6557   {   0, &hf_gsm_map_ms_tripletList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TripletList },
6558   {   1, &hf_gsm_map_ms_quintupletList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QuintupletList },
6559   { 0, NULL, 0, 0, 0, NULL }
6560 };
6561
6562 static int
6563 dissect_gsm_map_ms_AuthenticationSetList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6564   offset = dissect_ber_choice(actx, tree, tvb, offset,
6565                                  gsm_map_ms_AuthenticationSetList_choice, hf_index, ett_gsm_map_ms_AuthenticationSetList,
6566                                  NULL);
6567
6568   return offset;
6569 }
6570
6571
6572
6573 static int
6574 dissect_gsm_map_ms_Cksn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6575   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6576                                        NULL);
6577
6578   return offset;
6579 }
6580
6581
6582 static const ber_sequence_t gsm_map_ms_GSM_SecurityContextData_sequence[] = {
6583   { &hf_gsm_map_ms_kc       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc },
6584   { &hf_gsm_map_ms_cksn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Cksn },
6585   { NULL, 0, 0, 0, NULL }
6586 };
6587
6588 static int
6589 dissect_gsm_map_ms_GSM_SecurityContextData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6590   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6591                                    gsm_map_ms_GSM_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_GSM_SecurityContextData);
6592
6593   return offset;
6594 }
6595
6596
6597
6598 static int
6599 dissect_gsm_map_ms_KSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6600   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6601                                        NULL);
6602
6603   return offset;
6604 }
6605
6606
6607 static const ber_sequence_t gsm_map_ms_UMTS_SecurityContextData_sequence[] = {
6608   { &hf_gsm_map_ms_ck       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK },
6609   { &hf_gsm_map_ms_ik       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK },
6610   { &hf_gsm_map_ms_ksi      , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_KSI },
6611   { NULL, 0, 0, 0, NULL }
6612 };
6613
6614 static int
6615 dissect_gsm_map_ms_UMTS_SecurityContextData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6616   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6617                                    gsm_map_ms_UMTS_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_UMTS_SecurityContextData);
6618
6619   return offset;
6620 }
6621
6622
6623 static const value_string gsm_map_ms_CurrentSecurityContext_vals[] = {
6624   {   0, "gsm-SecurityContextData" },
6625   {   1, "umts-SecurityContextData" },
6626   { 0, NULL }
6627 };
6628
6629 static const ber_choice_t gsm_map_ms_CurrentSecurityContext_choice[] = {
6630   {   0, &hf_gsm_map_ms_gsm_SecurityContextData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSM_SecurityContextData },
6631   {   1, &hf_gsm_map_ms_umts_SecurityContextData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UMTS_SecurityContextData },
6632   { 0, NULL, 0, 0, 0, NULL }
6633 };
6634
6635 static int
6636 dissect_gsm_map_ms_CurrentSecurityContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6637   offset = dissect_ber_choice(actx, tree, tvb, offset,
6638                                  gsm_map_ms_CurrentSecurityContext_choice, hf_index, ett_gsm_map_ms_CurrentSecurityContext,
6639                                  NULL);
6640
6641   return offset;
6642 }
6643
6644
6645 static const ber_sequence_t gsm_map_ms_SendIdentificationRes_U_sequence[] = {
6646   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6647   { &hf_gsm_map_ms_authenticationSetList, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_AuthenticationSetList },
6648   { &hf_gsm_map_ms_currentSecurityContext, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_CurrentSecurityContext },
6649   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6650   { NULL, 0, 0, 0, NULL }
6651 };
6652
6653 static int
6654 dissect_gsm_map_ms_SendIdentificationRes_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6655   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6656                                    gsm_map_ms_SendIdentificationRes_U_sequence, hf_index, ett_gsm_map_ms_SendIdentificationRes_U);
6657
6658   return offset;
6659 }
6660
6661
6662
6663 static int
6664 dissect_gsm_map_ms_SendIdentificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6665   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6666                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendIdentificationRes_U);
6667
6668   return offset;
6669 }
6670
6671
6672
6673 static int
6674 dissect_gsm_map_ms_AUTS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6675   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6676                                        NULL);
6677
6678   return offset;
6679 }
6680
6681
6682 static const value_string gsm_map_ms_FailureCause_vals[] = {
6683   {   0, "wrongUserResponse" },
6684   {   1, "wrongNetworkSignature" },
6685   { 0, NULL }
6686 };
6687
6688
6689 static int
6690 dissect_gsm_map_ms_FailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6691   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6692                                   NULL);
6693
6694   return offset;
6695 }
6696
6697
6698
6699 static int
6700 dissect_gsm_map_ms_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6701   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
6702
6703   return offset;
6704 }
6705
6706
6707 static const value_string gsm_map_ms_AccessType_vals[] = {
6708   {   0, "call" },
6709   {   1, "emergencyCall" },
6710   {   2, "locationUpdating" },
6711   {   3, "supplementaryService" },
6712   {   4, "shortMessage" },
6713   {   5, "gprsAttach" },
6714   {   6, "routingAreaUpdating" },
6715   {   7, "serviceRequest" },
6716   {   8, "pdpContextActivation" },
6717   {   9, "pdpContextDeactivation" },
6718   {  10, "gprsDetach" },
6719   { 0, NULL }
6720 };
6721
6722
6723 static int
6724 dissect_gsm_map_ms_AccessType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6725   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6726                                   NULL);
6727
6728   return offset;
6729 }
6730
6731
6732 static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportArg_sequence[] = {
6733   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6734   { &hf_gsm_map_ms_failureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_FailureCause },
6735   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6736   { &hf_gsm_map_ms_re_attempt, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BOOLEAN },
6737   { &hf_gsm_map_ms_accessType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AccessType },
6738   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
6739   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6740   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6741   { NULL, 0, 0, 0, NULL }
6742 };
6743
6744 static int
6745 dissect_gsm_map_ms_AuthenticationFailureReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6746   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6747                                    gsm_map_ms_AuthenticationFailureReportArg_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportArg);
6748
6749   return offset;
6750 }
6751
6752
6753 static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportRes_sequence[] = {
6754   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6755   { NULL, 0, 0, 0, NULL }
6756 };
6757
6758 static int
6759 dissect_gsm_map_ms_AuthenticationFailureReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6760   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6761                                    gsm_map_ms_AuthenticationFailureReportRes_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportRes);
6762
6763   return offset;
6764 }
6765
6766
6767 static const ber_sequence_t gsm_map_ms_SGSN_Capability_sequence[] = {
6768   { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
6769   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6770   { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo },
6771   { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6772   { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
6773   { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
6774   { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
6775   { &hf_gsm_map_ms_smsCallBarringSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6776   { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types },
6777   { NULL, 0, 0, 0, NULL }
6778 };
6779
6780 static int
6781 dissect_gsm_map_ms_SGSN_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6782   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6783                                    gsm_map_ms_SGSN_Capability_sequence, hf_index, ett_gsm_map_ms_SGSN_Capability);
6784
6785   return offset;
6786 }
6787
6788
6789 static const ber_sequence_t gsm_map_ms_UpdateGprsLocationArg_sequence[] = {
6790   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6791   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6792   { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GSN_Address },
6793   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6794   { &hf_gsm_map_ms_sgsn_Capability, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_Capability },
6795   { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6796   { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6797   { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
6798   { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info },
6799   { NULL, 0, 0, 0, NULL }
6800 };
6801
6802 static int
6803 dissect_gsm_map_ms_UpdateGprsLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6804   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6805                                    gsm_map_ms_UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationArg);
6806
6807   return offset;
6808 }
6809
6810
6811 static const ber_sequence_t gsm_map_ms_UpdateGprsLocationRes_sequence[] = {
6812   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6813   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6814   { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
6815   { NULL, 0, 0, 0, NULL }
6816 };
6817
6818 static int
6819 dissect_gsm_map_ms_UpdateGprsLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6820   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6821                                    gsm_map_ms_UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationRes);
6822
6823   return offset;
6824 }
6825
6826
6827
6828 static int
6829 dissect_gsm_map_ms_IntegrityProtectionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6830 #line 513 "gsmmap.cnf"
6831     tvbuff_t        *parameter_tvb;
6832         asn1_ctx_t              asn1_ctx;
6833
6834   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6835                                        &parameter_tvb);
6836  
6837
6838         if (!parameter_tvb) 
6839                 return offset;
6840
6841         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
6842         dissect_ranap_IntegrityProtectionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_mapIntegrityProtectionInformation);
6843
6844
6845
6846   return offset;
6847 }
6848
6849
6850
6851 static int
6852 dissect_gsm_map_ms_EncryptionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6853 #line 525 "gsmmap.cnf"
6854     tvbuff_t        *parameter_tvb;
6855         asn1_ctx_t              asn1_ctx;
6856
6857   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6858                                        &parameter_tvb);
6859  
6860
6861         if (!parameter_tvb) 
6862                 return offset;
6863
6864         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
6865         dissect_ranap_EncryptionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_mapEncryptionInformation);
6866
6867
6868
6869   return offset;
6870 }
6871
6872
6873 static const value_string gsm_map_ms_KeyStatus_vals[] = {
6874   {   0, "old" },
6875   {   1, "new" },
6876   { 0, NULL }
6877 };
6878
6879
6880 static int
6881 dissect_gsm_map_ms_KeyStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6882   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6883                                   NULL);
6884
6885   return offset;
6886 }
6887
6888
6889
6890 static int
6891 dissect_gsm_map_ms_AllowedGSM_Algorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6892   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6893                                        NULL);
6894
6895   return offset;
6896 }
6897
6898
6899
6900 static int
6901 dissect_gsm_map_ms_PermittedIntegrityProtectionAlgorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6902   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6903                                        NULL);
6904
6905   return offset;
6906 }
6907
6908
6909
6910 static int
6911 dissect_gsm_map_ms_PermittedEncryptionAlgorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6912   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6913                                        NULL);
6914
6915   return offset;
6916 }
6917
6918
6919 static const ber_sequence_t gsm_map_ms_AllowedUMTS_Algorithms_sequence[] = {
6920   { &hf_gsm_map_ms_integrityProtectionAlgorithms, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedIntegrityProtectionAlgorithms },
6921   { &hf_gsm_map_ms_encryptionAlgorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedEncryptionAlgorithms },
6922   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6923   { NULL, 0, 0, 0, NULL }
6924 };
6925
6926 static int
6927 dissect_gsm_map_ms_AllowedUMTS_Algorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6928   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6929                                    gsm_map_ms_AllowedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_AllowedUMTS_Algorithms);
6930
6931   return offset;
6932 }
6933
6934
6935
6936 static int
6937 dissect_gsm_map_ms_RadioResourceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6938 #line 489 "gsmmap.cnf"
6939     tvbuff_t        *parameter_tvb; 
6940         proto_tree *subtree;
6941
6942   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6943                                        &parameter_tvb);
6944  
6945
6946         if (!parameter_tvb) 
6947                 return offset; 
6948
6949     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RadioResourceInformation); 
6950         be_chan_type(tvb, subtree, 0, tvb_length_remaining(tvb,0), NULL, 0);
6951
6952
6953
6954   return offset;
6955 }
6956
6957
6958
6959 static int
6960 dissect_gsm_map_ms_RAB_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6961   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6962                                   NULL);
6963
6964   return offset;
6965 }
6966
6967
6968 static const ber_sequence_t gsm_map_ms_RadioResource_sequence[] = {
6969   { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResourceInformation },
6970   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
6971   { NULL, 0, 0, 0, NULL }
6972 };
6973
6974 static int
6975 dissect_gsm_map_ms_RadioResource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6976   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6977                                    gsm_map_ms_RadioResource_sequence, hf_index, ett_gsm_map_ms_RadioResource);
6978
6979   return offset;
6980 }
6981
6982
6983 static const ber_sequence_t gsm_map_ms_RadioResourceList_sequence_of[1] = {
6984   { &hf_gsm_map_ms_RadioResourceList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResource },
6985 };
6986
6987 static int
6988 dissect_gsm_map_ms_RadioResourceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6989   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6990                                       gsm_map_ms_RadioResourceList_sequence_of, hf_index, ett_gsm_map_ms_RadioResourceList);
6991
6992   return offset;
6993 }
6994
6995
6996
6997 static int
6998 dissect_gsm_map_ms_BSSMAP_ServiceHandover(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6999   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7000                                        NULL);
7001
7002   return offset;
7003 }
7004
7005
7006
7007 static int
7008 dissect_gsm_map_ms_RANAP_ServiceHandover(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7009 #line 501 "gsmmap.cnf"
7010     tvbuff_t        *parameter_tvb;
7011         asn1_ctx_t              asn1_ctx;
7012
7013   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7014                                        &parameter_tvb);
7015  
7016
7017         if (!parameter_tvb) 
7018                 return offset;
7019
7020         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
7021         dissect_ranap_Service_Handover(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_ranap_service_Handover);
7022
7023
7024
7025   return offset;
7026 }
7027
7028
7029 static const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverInfo_sequence[] = {
7030   { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
7031   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
7032   { NULL, 0, 0, 0, NULL }
7033 };
7034
7035 static int
7036 dissect_gsm_map_ms_BSSMAP_ServiceHandoverInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7037   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7038                                    gsm_map_ms_BSSMAP_ServiceHandoverInfo_sequence, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo);
7039
7040   return offset;
7041 }
7042
7043
7044 static const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of[1] = {
7045   { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverInfo },
7046 };
7047
7048 static int
7049 dissect_gsm_map_ms_BSSMAP_ServiceHandoverList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7050   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7051                                       gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverList);
7052
7053   return offset;
7054 }
7055
7056
7057
7058 static int
7059 dissect_gsm_map_ms_Codec(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7060   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7061                                        NULL);
7062
7063   return offset;
7064 }
7065
7066
7067 static const ber_sequence_t gsm_map_ms_CodecList_sequence[] = {
7068   { &hf_gsm_map_ms_codec1   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7069   { &hf_gsm_map_ms_codec2   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7070   { &hf_gsm_map_ms_codec3   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7071   { &hf_gsm_map_ms_codec4   , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7072   { &hf_gsm_map_ms_codec5   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7073   { &hf_gsm_map_ms_codec6   , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7074   { &hf_gsm_map_ms_codec7   , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7075   { &hf_gsm_map_ms_codec8   , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7076   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7077   { NULL, 0, 0, 0, NULL }
7078 };
7079
7080 static int
7081 dissect_gsm_map_ms_CodecList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7082   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7083                                    gsm_map_ms_CodecList_sequence, hf_index, ett_gsm_map_ms_CodecList);
7084
7085   return offset;
7086 }
7087
7088
7089 static const ber_sequence_t gsm_map_ms_SupportedCodecsList_sequence[] = {
7090   { &hf_gsm_map_ms_utranCodecList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7091   { &hf_gsm_map_ms_geranCodecList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7092   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7093   { NULL, 0, 0, 0, NULL }
7094 };
7095
7096 static int
7097 dissect_gsm_map_ms_SupportedCodecsList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7098   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7099                                    gsm_map_ms_SupportedCodecsList_sequence, hf_index, ett_gsm_map_ms_SupportedCodecsList);
7100
7101   return offset;
7102 }
7103
7104
7105 static const ber_sequence_t gsm_map_ms_ForwardAccessSignalling_Arg_U_sequence[] = {
7106   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7107   { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation },
7108   { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation },
7109   { &hf_gsm_map_ms_keyStatus, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_KeyStatus },
7110   { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms },
7111   { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms },
7112   { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7113   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7114   { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList },
7115   { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
7116   { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover },
7117   { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList },
7118   { &hf_gsm_map_ms_currentlyUsedCodec, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7119   { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList },
7120   { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7121   { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7122   { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7123   { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList },
7124   { NULL, 0, 0, 0, NULL }
7125 };
7126
7127 static int
7128 dissect_gsm_map_ms_ForwardAccessSignalling_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7129   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7130                                    gsm_map_ms_ForwardAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ForwardAccessSignalling_Arg_U);
7131
7132   return offset;
7133 }
7134
7135
7136
7137 static int
7138 dissect_gsm_map_ms_ForwardAccessSignalling_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7139   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7140                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_ForwardAccessSignalling_Arg_U);
7141
7142   return offset;
7143 }
7144
7145
7146
7147 static int
7148 dissect_gsm_map_ms_RNCId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7149   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7150                                        NULL);
7151
7152   return offset;
7153 }
7154
7155
7156
7157 static int
7158 dissect_gsm_map_ms_GERAN_Classmark(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7159   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7160                                        NULL);
7161
7162   return offset;
7163 }
7164
7165
7166
7167 static int
7168 dissect_gsm_map_ms_UESBI_IuA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7169   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7170                                     NULL, hf_index, -1,
7171                                     NULL);
7172
7173   return offset;
7174 }
7175
7176
7177
7178 static int
7179 dissect_gsm_map_ms_UESBI_IuB(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7180   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7181                                     NULL, hf_index, -1,
7182                                     NULL);
7183
7184   return offset;
7185 }
7186
7187
7188 static const ber_sequence_t gsm_map_ms_UESBI_Iu_sequence[] = {
7189   { &hf_gsm_map_ms_uesbi_IuA, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuA },
7190   { &hf_gsm_map_ms_uesbi_IuB, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuB },
7191   { NULL, 0, 0, 0, NULL }
7192 };
7193
7194 static int
7195 dissect_gsm_map_ms_UESBI_Iu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7196   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7197                                    gsm_map_ms_UESBI_Iu_sequence, hf_index, ett_gsm_map_ms_UESBI_Iu);
7198
7199   return offset;
7200 }
7201
7202
7203 static const ber_sequence_t gsm_map_ms_PrepareHO_Arg_U_sequence[] = {
7204   { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
7205   { &hf_gsm_map_ms_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7206   { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId },
7207   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7208   { &hf_gsm_map_ms_multipleBearerRequested, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7209   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
7210   { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation },
7211   { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation },
7212   { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7213   { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms },
7214   { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms },
7215   { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList },
7216   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7217   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
7218   { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
7219   { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover },
7220   { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList },
7221   { &hf_gsm_map_ms_asciCallReference, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference },
7222   { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark },
7223   { &hf_gsm_map_ms_iuCurrentlyUsedCodec, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7224   { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList },
7225   { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7226   { &hf_gsm_map_ms_uesbi_Iu , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_Iu },
7227   { &hf_gsm_map_ms_imeisv   , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
7228   { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7229   { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList },
7230   { NULL, 0, 0, 0, NULL }
7231 };
7232
7233 static int
7234 dissect_gsm_map_ms_PrepareHO_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7235   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7236                                    gsm_map_ms_PrepareHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Arg_U);
7237
7238   return offset;
7239 }
7240
7241
7242
7243 static int
7244 dissect_gsm_map_ms_PrepareHO_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7245   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7246                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareHO_Arg_U);
7247
7248   return offset;
7249 }
7250
7251
7252 static const ber_sequence_t gsm_map_ms_RelocationNumber_sequence[] = {
7253   { &hf_gsm_map_ms_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7254   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
7255   { NULL, 0, 0, 0, NULL }
7256 };
7257
7258 static int
7259 dissect_gsm_map_ms_RelocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7260   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7261                                    gsm_map_ms_RelocationNumber_sequence, hf_index, ett_gsm_map_ms_RelocationNumber);
7262
7263   return offset;
7264 }
7265
7266
7267 static const ber_sequence_t gsm_map_ms_RelocationNumberList_sequence_of[1] = {
7268   { &hf_gsm_map_ms_RelocationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RelocationNumber },
7269 };
7270
7271 static int
7272 dissect_gsm_map_ms_RelocationNumberList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7273   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7274                                       gsm_map_ms_RelocationNumberList_sequence_of, hf_index, ett_gsm_map_ms_RelocationNumberList);
7275
7276   return offset;
7277 }
7278
7279
7280
7281 static int
7282 dissect_gsm_map_ms_MulticallBearerInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7283   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7284                                   NULL);
7285
7286   return offset;
7287 }
7288
7289
7290
7291 static int
7292 dissect_gsm_map_ms_ChosenIntegrityProtectionAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7293   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7294                                        NULL);
7295
7296   return offset;
7297 }
7298
7299
7300
7301 static int
7302 dissect_gsm_map_ms_ChosenEncryptionAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7303   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7304                                        NULL);
7305
7306   return offset;
7307 }
7308
7309
7310 static const ber_sequence_t gsm_map_ms_SelectedUMTS_Algorithms_sequence[] = {
7311   { &hf_gsm_map_ms_integrityProtectionAlgorithm, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenIntegrityProtectionAlgorithm },
7312   { &hf_gsm_map_ms_encryptionAlgorithm, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenEncryptionAlgorithm },
7313   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7314   { NULL, 0, 0, 0, NULL }
7315 };
7316
7317 static int
7318 dissect_gsm_map_ms_SelectedUMTS_Algorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7319   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7320                                    gsm_map_ms_SelectedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_SelectedUMTS_Algorithms);
7321
7322   return offset;
7323 }
7324
7325
7326
7327 static int
7328 dissect_gsm_map_ms_ChosenChannelInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7329   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7330                                        NULL);
7331
7332   return offset;
7333 }
7334
7335
7336
7337 static int
7338 dissect_gsm_map_ms_ChosenSpeechVersion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7339   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7340                                        NULL);
7341
7342   return offset;
7343 }
7344
7345
7346 static const ber_sequence_t gsm_map_ms_ChosenRadioResourceInformation_sequence[] = {
7347   { &hf_gsm_map_ms_chosenChannelInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenChannelInfo },
7348   { &hf_gsm_map_ms_chosenSpeechVersion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenSpeechVersion },
7349   { NULL, 0, 0, 0, NULL }
7350 };
7351
7352 static int
7353 dissect_gsm_map_ms_ChosenRadioResourceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7354   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7355                                    gsm_map_ms_ChosenRadioResourceInformation_sequence, hf_index, ett_gsm_map_ms_ChosenRadioResourceInformation);
7356
7357   return offset;
7358 }
7359
7360
7361 static const ber_sequence_t gsm_map_ms_PrepareHO_Res_U_sequence[] = {
7362   { &hf_gsm_map_ms_handoverNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7363   { &hf_gsm_map_ms_relocationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RelocationNumberList },
7364   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7365   { &hf_gsm_map_ms_multicallBearerInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MulticallBearerInfo },
7366   { &hf_gsm_map_ms_multipleBearerNotSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7367   { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms },
7368   { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation },
7369   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7370   { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7371   { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7372   { NULL, 0, 0, 0, NULL }
7373 };
7374
7375 static int
7376 dissect_gsm_map_ms_PrepareHO_Res_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7377   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7378                                    gsm_map_ms_PrepareHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Res_U);
7379
7380   return offset;
7381 }
7382
7383
7384
7385 static int
7386 dissect_gsm_map_ms_PrepareHO_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7387   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7388                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareHO_Res_U);
7389
7390   return offset;
7391 }
7392
7393
7394 static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Arg_U_sequence[] = {
7395   { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
7396   { &hf_gsm_map_ms_targetMSC_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7397   { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId },
7398   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7399   { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
7400   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7401   { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark },
7402   { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7403   { NULL, 0, 0, 0, NULL }
7404 };
7405
7406 static int
7407 dissect_gsm_map_ms_PrepareSubsequentHO_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7408   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7409                                    gsm_map_ms_PrepareSubsequentHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Arg_U);
7410
7411   return offset;
7412 }
7413
7414
7415
7416 static int
7417 dissect_gsm_map_ms_PrepareSubsequentHO_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7418   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7419                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg_U);
7420
7421   return offset;
7422 }
7423
7424
7425 static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Res_U_sequence[] = {
7426   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7427   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7428   { NULL, 0, 0, 0, NULL }
7429 };
7430
7431 static int
7432 dissect_gsm_map_ms_PrepareSubsequentHO_Res_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7433   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7434                                    gsm_map_ms_PrepareSubsequentHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Res_U);
7435
7436   return offset;
7437 }
7438
7439
7440
7441 static int
7442 dissect_gsm_map_ms_PrepareSubsequentHO_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7443   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7444                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Res_U);
7445
7446   return offset;
7447 }
7448
7449
7450
7451 static int
7452 dissect_gsm_map_ms_SelectedGSM_Algorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7453   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7454                                        NULL);
7455
7456   return offset;
7457 }
7458
7459
7460 static const ber_sequence_t gsm_map_ms_ProcessAccessSignalling_Arg_U_sequence[] = {
7461   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7462   { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms },
7463   { &hf_gsm_map_ms_selectedGSM_Algorithm, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedGSM_Algorithm },
7464   { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation },
7465   { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
7466   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7467   { &hf_gsm_map_ms_iUSelectedCodec, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7468   { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7469   { NULL, 0, 0, 0, NULL }
7470 };
7471
7472 static int
7473 dissect_gsm_map_ms_ProcessAccessSignalling_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7474   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7475                                    gsm_map_ms_ProcessAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ProcessAccessSignalling_Arg_U);
7476
7477   return offset;
7478 }
7479
7480
7481
7482 static int
7483 dissect_gsm_map_ms_ProcessAccessSignalling_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7484   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7485                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_ProcessAccessSignalling_Arg_U);
7486
7487   return offset;
7488 }
7489
7490
7491 static const ber_sequence_t gsm_map_ms_SendEndSignal_Arg_U_sequence[] = {
7492   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7493   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7494   { NULL, 0, 0, 0, NULL }
7495 };
7496
7497 static int
7498 dissect_gsm_map_ms_SendEndSignal_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7499   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7500                                    gsm_map_ms_SendEndSignal_Arg_U_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Arg_U);
7501
7502   return offset;
7503 }
7504
7505
7506
7507 static int
7508 dissect_gsm_map_ms_SendEndSignal_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7509   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7510                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendEndSignal_Arg_U);
7511
7512   return offset;
7513 }
7514
7515
7516 static const ber_sequence_t gsm_map_ms_SendEndSignal_Res_sequence[] = {
7517   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7518   { NULL, 0, 0, 0, NULL }
7519 };
7520
7521 static int
7522 dissect_gsm_map_ms_SendEndSignal_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7523   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7524                                    gsm_map_ms_SendEndSignal_Res_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Res);
7525
7526   return offset;
7527 }
7528
7529
7530 static const ber_sequence_t gsm_map_ms_Re_synchronisationInfo_sequence[] = {
7531   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
7532   { &hf_gsm_map_ms_auts     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTS },
7533   { NULL, 0, 0, 0, NULL }
7534 };
7535
7536 static int
7537 dissect_gsm_map_ms_Re_synchronisationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7538   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7539                                    gsm_map_ms_Re_synchronisationInfo_sequence, hf_index, ett_gsm_map_ms_Re_synchronisationInfo);
7540
7541   return offset;
7542 }
7543
7544
7545 static const value_string gsm_map_ms_RequestingNodeType_vals[] = {
7546   {   0, "vlr" },
7547   {   1, "sgsn" },
7548   {   2, "s-cscf" },
7549   {   3, "bsf" },
7550   {   4, "gan-aaa-server" },
7551   {   5, "wlan-aaa-server" },
7552   { 0, NULL }
7553 };
7554
7555
7556 static int
7557 dissect_gsm_map_ms_RequestingNodeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7558   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7559                                   NULL);
7560
7561   return offset;
7562 }
7563
7564
7565 static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoArg_sequence[] = {
7566   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
7567   { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
7568   { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7569   { &hf_gsm_map_ms_immediateResponsePreferred, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7570   { &hf_gsm_map_ms_re_synchronisationInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Re_synchronisationInfo },
7571   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7572   { &hf_gsm_map_ms_requestingNodeType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestingNodeType },
7573   { &hf_gsm_map_ms_requestingPLMN_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
7574   { NULL, 0, 0, 0, NULL }
7575 };
7576
7577 static int
7578 dissect_gsm_map_ms_SendAuthenticationInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7579   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7580                                    gsm_map_ms_SendAuthenticationInfoArg_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoArg);
7581
7582   return offset;
7583 }
7584
7585
7586 static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoRes_U_sequence[] = {
7587   { &hf_gsm_map_ms_authenticationSetList, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_AuthenticationSetList },
7588   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7589   { NULL, 0, 0, 0, NULL }
7590 };
7591
7592 static int
7593 dissect_gsm_map_ms_SendAuthenticationInfoRes_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7594   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7595                                    gsm_map_ms_SendAuthenticationInfoRes_U_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoRes_U);
7596
7597   return offset;
7598 }
7599
7600
7601
7602 static int
7603 dissect_gsm_map_ms_SendAuthenticationInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7604   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7605                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendAuthenticationInfoRes_U);
7606
7607   return offset;
7608 }
7609
7610
7611 static const asn_namedbit gsm_map_ms_RequestedEquipmentInfo_bits[] = {
7612   {  0, &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus, -1, -1, "equipmentStatus", NULL },
7613   {  1, &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef, -1, -1, "bmuef", NULL },
7614   { 0, NULL, 0, 0, NULL, NULL }
7615 };
7616
7617 static int
7618 dissect_gsm_map_ms_RequestedEquipmentInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7619   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7620                                     gsm_map_ms_RequestedEquipmentInfo_bits, hf_index, ett_gsm_map_ms_RequestedEquipmentInfo,
7621                                     NULL);
7622
7623   return offset;
7624 }
7625
7626
7627 static const ber_sequence_t gsm_map_ms_CheckIMEI_Arg_sequence[] = {
7628   { &hf_gsm_map_ms_imei     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMEI },
7629   { &hf_gsm_map_ms_requestedEquipmentInfo, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RequestedEquipmentInfo },
7630   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7631   { NULL, 0, 0, 0, NULL }
7632 };
7633
7634 static int
7635 dissect_gsm_map_ms_CheckIMEI_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7636   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7637                                    gsm_map_ms_CheckIMEI_Arg_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Arg);
7638
7639   return offset;
7640 }
7641
7642
7643 static const value_string gsm_map_ms_EquipmentStatus_vals[] = {
7644   {   0, "whiteListed" },
7645   {   1, "blackListed" },
7646   {   2, "greyListed" },
7647   { 0, NULL }
7648 };
7649
7650
7651 static int
7652 dissect_gsm_map_ms_EquipmentStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7653   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7654                                   NULL);
7655
7656   return offset;
7657 }
7658
7659
7660 static const ber_sequence_t gsm_map_ms_CheckIMEI_Res_sequence[] = {
7661   { &hf_gsm_map_ms_equipmentStatus, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_EquipmentStatus },
7662   { &hf_gsm_map_ms_bmuef    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_UESBI_Iu },
7663   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7664   { NULL, 0, 0, 0, NULL }
7665 };
7666
7667 static int
7668 dissect_gsm_map_ms_CheckIMEI_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7669   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7670                                    gsm_map_ms_CheckIMEI_Res_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Res);
7671
7672   return offset;
7673 }
7674
7675
7676
7677 static int
7678 dissect_gsm_map_ms_Category(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7679   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7680                                        NULL);
7681
7682   return offset;
7683 }
7684
7685
7686 static const value_string gsm_map_ms_SubscriberStatus_vals[] = {
7687   {   0, "serviceGranted" },
7688   {   1, "operatorDeterminedBarring" },
7689   { 0, NULL }
7690 };
7691
7692
7693 static int
7694 dissect_gsm_map_ms_SubscriberStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7695   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7696                                   NULL);
7697
7698   return offset;
7699 }
7700
7701
7702 static const ber_sequence_t gsm_map_ms_BearerServiceList_sequence_of[1] = {
7703   { &hf_gsm_map_ms_BearerServiceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BearerServiceCode },
7704 };
7705
7706 static int
7707 dissect_gsm_map_ms_BearerServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7708   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7709                                       gsm_map_ms_BearerServiceList_sequence_of, hf_index, ett_gsm_map_ms_BearerServiceList);
7710
7711   return offset;
7712 }
7713
7714
7715 static const ber_sequence_t gsm_map_ms_TeleserviceList_sequence_of[1] = {
7716   { &hf_gsm_map_ms_TeleserviceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
7717 };
7718
7719 static int
7720 dissect_gsm_map_ms_TeleserviceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7721   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7722                                       gsm_map_ms_TeleserviceList_sequence_of, hf_index, ett_gsm_map_ms_TeleserviceList);
7723
7724   return offset;
7725 }
7726
7727
7728
7729 static int
7730 dissect_gsm_map_ms_Ext_ForwOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7731   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7732                                        NULL);
7733
7734   return offset;
7735 }
7736
7737
7738
7739 static int
7740 dissect_gsm_map_ms_T_forwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7741   offset = dissect_gsm_map_ms_Ext_ForwOptions(implicit_tag, tvb, offset, actx, tree, hf_index);
7742
7743 #line 390 "gsmmap.cnf"
7744
7745         proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE);
7746         proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE);
7747         proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE);
7748         proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE);
7749
7750
7751
7752   return offset;
7753 }
7754
7755
7756
7757 static int
7758 dissect_gsm_map_ms_Ext_NoRepCondTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7759   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7760                                   NULL);
7761
7762   return offset;
7763 }
7764
7765
7766 static const ber_sequence_t gsm_map_ms_Ext_ForwFeature_sequence[] = {
7767   { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
7768   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
7769   { &hf_gsm_map_ms_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7770   { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
7771   { &hf_gsm_map_ms_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_forwardingOptions },
7772   { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime },
7773   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7774   { &hf_gsm_map_ms_longForwardedToNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
7775   { NULL, 0, 0, 0, NULL }
7776 };
7777
7778 static int
7779 dissect_gsm_map_ms_Ext_ForwFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7780   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7781                                    gsm_map_ms_Ext_ForwFeature_sequence, hf_index, ett_gsm_map_ms_Ext_ForwFeature);
7782
7783   return offset;
7784 }
7785
7786
7787 static const ber_sequence_t gsm_map_ms_Ext_ForwFeatureList_sequence_of[1] = {
7788   { &hf_gsm_map_ms_Ext_ForwFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeature },
7789 };
7790
7791 static int
7792 dissect_gsm_map_ms_Ext_ForwFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7793   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7794                                       gsm_map_ms_Ext_ForwFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ForwFeatureList);
7795
7796   return offset;
7797 }
7798
7799
7800 static const ber_sequence_t gsm_map_ms_Ext_ForwInfo_sequence[] = {
7801   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
7802   { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
7803   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7804   { NULL, 0, 0, 0, NULL }
7805 };
7806
7807 static int
7808 dissect_gsm_map_ms_Ext_ForwInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7809   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7810                                    gsm_map_ms_Ext_ForwInfo_sequence, hf_index, ett_gsm_map_ms_Ext_ForwInfo);
7811
7812   return offset;
7813 }
7814
7815
7816 static const ber_sequence_t gsm_map_ms_Ext_CallBarringFeature_sequence[] = {
7817   { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
7818   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
7819   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7820   { NULL, 0, 0, 0, NULL }
7821 };
7822
7823 static int
7824 dissect_gsm_map_ms_Ext_CallBarringFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7825   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7826                                    gsm_map_ms_Ext_CallBarringFeature_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringFeature);
7827
7828   return offset;
7829 }
7830
7831
7832 static const ber_sequence_t gsm_map_ms_Ext_CallBarFeatureList_sequence_of[1] = {
7833   { &hf_gsm_map_ms_Ext_CallBarFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarringFeature },
7834 };
7835
7836 static int
7837 dissect_gsm_map_ms_Ext_CallBarFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7838   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7839                                       gsm_map_ms_Ext_CallBarFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_CallBarFeatureList);
7840
7841   return offset;
7842 }
7843
7844
7845 static const ber_sequence_t gsm_map_ms_Ext_CallBarInfo_sequence[] = {
7846   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
7847   { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
7848   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7849   { NULL, 0, 0, 0, NULL }
7850 };
7851
7852 static int
7853 dissect_gsm_map_ms_Ext_CallBarInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7854   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7855                                    gsm_map_ms_Ext_CallBarInfo_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarInfo);
7856
7857   return offset;
7858 }
7859
7860
7861
7862 int
7863 dissect_gsm_map_ms_CUG_Index(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7864   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7865                                   NULL);
7866
7867   return offset;
7868 }
7869
7870
7871
7872 int
7873 dissect_gsm_map_ms_CUG_Interlock(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7874   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7875                                        NULL);
7876
7877   return offset;
7878 }
7879
7880
7881 static const value_string gsm_map_ms_IntraCUG_Options_vals[] = {
7882   {   0, "noCUG-Restrictions" },
7883   {   1, "cugIC-CallBarred" },
7884   {   2, "cugOG-CallBarred" },
7885   { 0, NULL }
7886 };
7887
7888
7889 static int
7890 dissect_gsm_map_ms_IntraCUG_Options(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7891   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7892                                   NULL);
7893
7894   return offset;
7895 }
7896
7897
7898 static const ber_sequence_t gsm_map_ms_Ext_BasicServiceGroupList_sequence_of[1] = {
7899   { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
7900 };
7901
7902 static int
7903 dissect_gsm_map_ms_Ext_BasicServiceGroupList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7904   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7905                                       gsm_map_ms_Ext_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ms_Ext_BasicServiceGroupList);
7906
7907   return offset;
7908 }
7909
7910
7911 static const ber_sequence_t gsm_map_ms_CUG_Subscription_sequence[] = {
7912   { &hf_gsm_map_ms_cug_Index, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Index },
7913   { &hf_gsm_map_ms_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock },
7914   { &hf_gsm_map_ms_intraCUG_Options, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IntraCUG_Options },
7915   { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList },
7916   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7917   { NULL, 0, 0, 0, NULL }
7918 };
7919
7920 static int
7921 dissect_gsm_map_ms_CUG_Subscription(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7922   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7923                                    gsm_map_ms_CUG_Subscription_sequence, hf_index, ett_gsm_map_ms_CUG_Subscription);
7924
7925   return offset;
7926 }
7927
7928
7929 static const ber_sequence_t gsm_map_ms_CUG_SubscriptionList_sequence_of[1] = {
7930   { &hf_gsm_map_ms_CUG_SubscriptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Subscription },
7931 };
7932
7933 static int
7934 dissect_gsm_map_ms_CUG_SubscriptionList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7935   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7936                                       gsm_map_ms_CUG_SubscriptionList_sequence_of, hf_index, ett_gsm_map_ms_CUG_SubscriptionList);
7937
7938   return offset;
7939 }
7940
7941
7942
7943 static int
7944 dissect_gsm_map_ms_InterCUG_Restrictions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7945   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7946                                        NULL);
7947
7948   return offset;
7949 }
7950
7951
7952 static const ber_sequence_t gsm_map_ms_CUG_Feature_sequence[] = {
7953   { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
7954   { &hf_gsm_map_ms_preferentialCUG_Indicator, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Index },
7955   { &hf_gsm_map_ms_interCUG_Restrictions, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_InterCUG_Restrictions },
7956   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7957   { NULL, 0, 0, 0, NULL }
7958 };
7959
7960 static int
7961 dissect_gsm_map_ms_CUG_Feature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7962   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7963                                    gsm_map_ms_CUG_Feature_sequence, hf_index, ett_gsm_map_ms_CUG_Feature);
7964
7965   return offset;
7966 }
7967
7968
7969 static const ber_sequence_t gsm_map_ms_CUG_FeatureList_sequence_of[1] = {
7970   { &hf_gsm_map_ms_CUG_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Feature },
7971 };
7972
7973 static int
7974 dissect_gsm_map_ms_CUG_FeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7975   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7976                                       gsm_map_ms_CUG_FeatureList_sequence_of, hf_index, ett_gsm_map_ms_CUG_FeatureList);
7977
7978   return offset;
7979 }
7980
7981
7982 static const ber_sequence_t gsm_map_ms_CUG_Info_sequence[] = {
7983   { &hf_gsm_map_ms_cug_SubscriptionList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_SubscriptionList },
7984   { &hf_gsm_map_ms_cug_FeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_FeatureList },
7985   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7986   { NULL, 0, 0, 0, NULL }
7987 };
7988
7989 int
7990 dissect_gsm_map_ms_CUG_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7991   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7992                                    gsm_map_ms_CUG_Info_sequence, hf_index, ett_gsm_map_ms_CUG_Info);
7993
7994   return offset;
7995 }
7996
7997
7998 static const ber_sequence_t gsm_map_ms_Ext_SS_Data_sequence[] = {
7999   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
8000   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
8001   { &hf_gsm_map_ms_ss_SubscriptionOption, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_SubscriptionOption },
8002   { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList },
8003   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8004   { NULL, 0, 0, 0, NULL }
8005 };
8006
8007 static int
8008 dissect_gsm_map_ms_Ext_SS_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8009   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8010                                    gsm_map_ms_Ext_SS_Data_sequence, hf_index, ett_gsm_map_ms_Ext_SS_Data);
8011
8012   return offset;
8013 }
8014
8015
8016 static const value_string gsm_map_ms_Ext_SS_Info_vals[] = {
8017   {   0, "forwardingInfo" },
8018   {   1, "callBarringInfo" },
8019   {   2, "cug-Info" },
8020   {   3, "ss-Data" },
8021   {   4, "emlpp-Info" },
8022   { 0, NULL }
8023 };
8024
8025 static const ber_choice_t gsm_map_ms_Ext_SS_Info_choice[] = {
8026   {   0, &hf_gsm_map_ms_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwInfo },
8027   {   1, &hf_gsm_map_ms_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarInfo },
8028   {   2, &hf_gsm_map_ms_cug_Info , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Info },
8029   {   3, &hf_gsm_map_ms_ss_Data  , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_Data },
8030   {   4, &hf_gsm_map_ms_emlpp_Info, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Info },
8031   { 0, NULL, 0, 0, 0, NULL }
8032 };
8033
8034 static int
8035 dissect_gsm_map_ms_Ext_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8036   offset = dissect_ber_choice(actx, tree, tvb, offset,
8037                                  gsm_map_ms_Ext_SS_Info_choice, hf_index, ett_gsm_map_ms_Ext_SS_Info,
8038                                  NULL);
8039
8040   return offset;
8041 }
8042
8043
8044 static const ber_sequence_t gsm_map_ms_Ext_SS_InfoList_sequence_of[1] = {
8045   { &hf_gsm_map_ms_Ext_SS_InfoList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_Ext_SS_Info },
8046 };
8047
8048 static int
8049 dissect_gsm_map_ms_Ext_SS_InfoList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8050   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8051                                       gsm_map_ms_Ext_SS_InfoList_sequence_of, hf_index, ett_gsm_map_ms_Ext_SS_InfoList);
8052
8053   return offset;
8054 }
8055
8056
8057 static const asn_namedbit gsm_map_ms_ODB_GeneralData_bits[] = {
8058   {  0, &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred, -1, -1, "allOG-CallsBarred", NULL },
8059   {  1, &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred, -1, -1, "internationalOGCallsBarred", NULL },
8060   {  2, &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "internationalOGCallsNotToHPLMN-CountryBarred", NULL },
8061   {  6, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred, -1, -1, "interzonalOGCallsBarred", NULL },
8062   {  7, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsNotToHPLMN-CountryBarred", NULL },
8063   {  8, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", NULL },
8064   {  3, &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred, -1, -1, "premiumRateInformationOGCallsBarred", NULL },
8065   {  4, &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred, -1, -1, "premiumRateEntertainementOGCallsBarred", NULL },
8066   {  5, &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred, -1, -1, "ss-AccessBarred", NULL },
8067   {  9, &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred, -1, -1, "allECT-Barred", NULL },
8068   { 10, &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred, -1, -1, "chargeableECT-Barred", NULL },
8069   { 11, &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred, -1, -1, "internationalECT-Barred", NULL },
8070   { 12, &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred, -1, -1, "interzonalECT-Barred", NULL },
8071   { 13, &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred, -1, -1, "doublyChargeableECT-Barred", NULL },
8072   { 14, &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred, -1, -1, "multipleECT-Barred", NULL },
8073   { 15, &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred, -1, -1, "allPacketOrientedServicesBarred", NULL },
8074   { 16, &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred, -1, -1, "roamerAccessToHPLMN-AP-Barred", NULL },
8075   { 17, &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred, -1, -1, "roamerAccessToVPLMN-AP-Barred", NULL },
8076   { 18, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred, -1, -1, "roamingOutsidePLMNOG-CallsBarred", NULL },
8077   { 19, &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred, -1, -1, "allIC-CallsBarred", NULL },
8078   { 20, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred, -1, -1, "roamingOutsidePLMNIC-CallsBarred", NULL },
8079   { 21, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred, -1, -1, "roamingOutsidePLMNICountryIC-CallsBarred", NULL },
8080   { 22, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred, -1, -1, "roamingOutsidePLMN-Barred", NULL },
8081   { 23, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred, -1, -1, "roamingOutsidePLMN-CountryBarred", NULL },
8082   { 24, &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred, -1, -1, "registrationAllCF-Barred", NULL },
8083   { 25, &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred, -1, -1, "registrationCFNotToHPLMN-Barred", NULL },
8084   { 26, &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred, -1, -1, "registrationInterzonalCF-Barred", NULL },
8085   { 27, &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred, -1, -1, "registrationInterzonalCFNotToHPLMN-Barred", NULL },
8086   { 28, &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred, -1, -1, "registrationInternationalCF-Barred", NULL },
8087   { 0, NULL, 0, 0, NULL, NULL }
8088 };
8089
8090 static int
8091 dissect_gsm_map_ms_ODB_GeneralData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8092   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8093                                     gsm_map_ms_ODB_GeneralData_bits, hf_index, ett_gsm_map_ms_ODB_GeneralData,
8094                                     NULL);
8095
8096   return offset;
8097 }
8098
8099
8100 static const asn_namedbit gsm_map_ms_ODB_HPLMN_Data_bits[] = {
8101   {  0, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1, -1, -1, "plmn-SpecificBarringType1", NULL },
8102   {  1, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2, -1, -1, "plmn-SpecificBarringType2", NULL },
8103   {  2, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3, -1, -1, "plmn-SpecificBarringType3", NULL },
8104   {  3, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4, -1, -1, "plmn-SpecificBarringType4", NULL },
8105   { 0, NULL, 0, 0, NULL, NULL }
8106 };
8107
8108 static int
8109 dissect_gsm_map_ms_ODB_HPLMN_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8110   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8111                                     gsm_map_ms_ODB_HPLMN_Data_bits, hf_index, ett_gsm_map_ms_ODB_HPLMN_Data,
8112                                     NULL);
8113
8114   return offset;
8115 }
8116
8117
8118 static const ber_sequence_t gsm_map_ms_ODB_Data_sequence[] = {
8119   { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_GeneralData },
8120   { &hf_gsm_map_ms_odb_HPLMN_Data, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_HPLMN_Data },
8121   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8122   { NULL, 0, 0, 0, NULL }
8123 };
8124
8125 static int
8126 dissect_gsm_map_ms_ODB_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8127   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8128                                    gsm_map_ms_ODB_Data_sequence, hf_index, ett_gsm_map_ms_ODB_Data);
8129
8130   return offset;
8131 }
8132
8133
8134
8135 static int
8136 dissect_gsm_map_ms_ZoneCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8137   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8138                                        NULL);
8139
8140   return offset;
8141 }
8142
8143
8144 static const ber_sequence_t gsm_map_ms_ZoneCodeList_sequence_of[1] = {
8145   { &hf_gsm_map_ms_ZoneCodeList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ZoneCode },
8146 };
8147
8148 static int
8149 dissect_gsm_map_ms_ZoneCodeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8150   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8151                                       gsm_map_ms_ZoneCodeList_sequence_of, hf_index, ett_gsm_map_ms_ZoneCodeList);
8152
8153   return offset;
8154 }
8155
8156
8157
8158 static int
8159 dissect_gsm_map_ms_GroupId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8160   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
8161
8162   return offset;
8163 }
8164
8165
8166 static const ber_sequence_t gsm_map_ms_VoiceBroadcastData_sequence[] = {
8167   { &hf_gsm_map_ms_groupid  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId },
8168   { &hf_gsm_map_ms_broadcastInitEntitlement, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
8169   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8170   { NULL, 0, 0, 0, NULL }
8171 };
8172
8173 static int
8174 dissect_gsm_map_ms_VoiceBroadcastData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8175   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8176                                    gsm_map_ms_VoiceBroadcastData_sequence, hf_index, ett_gsm_map_ms_VoiceBroadcastData);
8177
8178   return offset;
8179 }
8180
8181
8182 static const ber_sequence_t gsm_map_ms_VBSDataList_sequence_of[1] = {
8183   { &hf_gsm_map_ms_VBSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceBroadcastData },
8184 };
8185
8186 static int
8187 dissect_gsm_map_ms_VBSDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8188   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8189                                       gsm_map_ms_VBSDataList_sequence_of, hf_index, ett_gsm_map_ms_VBSDataList);
8190
8191   return offset;
8192 }
8193
8194
8195 static const asn_namedbit gsm_map_ms_AdditionalSubscriptions_bits[] = {
8196   {  0, &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest, -1, -1, "privilegedUplinkRequest", NULL },
8197   {  1, &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest, -1, -1, "emergencyUplinkRequest", NULL },
8198   {  2, &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset, -1, -1, "emergencyReset", NULL },
8199   { 0, NULL, 0, 0, NULL, NULL }
8200 };
8201
8202 static int
8203 dissect_gsm_map_ms_AdditionalSubscriptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8204   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8205                                     gsm_map_ms_AdditionalSubscriptions_bits, hf_index, ett_gsm_map_ms_AdditionalSubscriptions,
8206                                     NULL);
8207
8208   return offset;
8209 }
8210
8211
8212
8213 static int
8214 dissect_gsm_map_ms_AdditionalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8215   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8216                                     NULL, hf_index, -1,
8217                                     NULL);
8218
8219   return offset;
8220 }
8221
8222
8223
8224 static int
8225 dissect_gsm_map_ms_Long_GroupId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8226   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
8227
8228   return offset;
8229 }
8230
8231
8232 static const ber_sequence_t gsm_map_ms_VoiceGroupCallData_sequence[] = {
8233   { &hf_gsm_map_ms_groupId  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId },
8234   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8235   { &hf_gsm_map_ms_additionalSubscriptions, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AdditionalSubscriptions },
8236   { &hf_gsm_map_ms_additionalInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
8237   { &hf_gsm_map_ms_longGroupId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Long_GroupId },
8238   { NULL, 0, 0, 0, NULL }
8239 };
8240
8241 static int
8242 dissect_gsm_map_ms_VoiceGroupCallData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8243   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8244                                    gsm_map_ms_VoiceGroupCallData_sequence, hf_index, ett_gsm_map_ms_VoiceGroupCallData);
8245
8246   return offset;
8247 }
8248
8249
8250 static const ber_sequence_t gsm_map_ms_VGCSDataList_sequence_of[1] = {
8251   { &hf_gsm_map_ms_VGCSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceGroupCallData },
8252 };
8253
8254 static int
8255 dissect_gsm_map_ms_VGCSDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8256   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8257                                       gsm_map_ms_VGCSDataList_sequence_of, hf_index, ett_gsm_map_ms_VGCSDataList);
8258
8259   return offset;
8260 }
8261
8262
8263 static const value_string gsm_map_ms_O_BcsmTriggerDetectionPoint_vals[] = {
8264   {   2, "collectedInfo" },
8265   {   4, "routeSelectFailure" },
8266   { 0, NULL }
8267 };
8268
8269
8270 static int
8271 dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8272   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8273                                   NULL);
8274
8275   return offset;
8276 }
8277
8278
8279
8280 static int
8281 dissect_gsm_map_ms_ServiceKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8282   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8283                                   NULL);
8284
8285   return offset;
8286 }
8287
8288
8289 static const value_string gsm_map_ms_DefaultCallHandling_vals[] = {
8290   {   0, "continueCall" },
8291   {   1, "releaseCall" },
8292   { 0, NULL }
8293 };
8294
8295
8296 static int
8297 dissect_gsm_map_ms_DefaultCallHandling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8298   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8299                                   NULL);
8300
8301   return offset;
8302 }
8303
8304
8305 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPData_sequence[] = {
8306   { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint },
8307   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
8308   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8309   { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling },
8310   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8311   { NULL, 0, 0, 0, NULL }
8312 };
8313
8314 static int
8315 dissect_gsm_map_ms_O_BcsmCamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8316   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8317                                    gsm_map_ms_O_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPData);
8318
8319   return offset;
8320 }
8321
8322
8323 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of[1] = {
8324   { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPData },
8325 };
8326
8327 static int
8328 dissect_gsm_map_ms_O_BcsmCamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8329   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8330                                       gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPDataList);
8331
8332   return offset;
8333 }
8334
8335
8336
8337 static int
8338 dissect_gsm_map_ms_CamelCapabilityHandling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8339   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8340                                   NULL);
8341
8342   return offset;
8343 }
8344
8345
8346 static const ber_sequence_t gsm_map_ms_O_CSI_sequence[] = {
8347   { &hf_gsm_map_ms_o_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPDataList },
8348   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8349   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
8350   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8351   { &hf_gsm_map_ms_csiActive, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8352   { NULL, 0, 0, 0, NULL }
8353 };
8354
8355 static int
8356 dissect_gsm_map_ms_O_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8357   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8358                                    gsm_map_ms_O_CSI_sequence, hf_index, ett_gsm_map_ms_O_CSI);
8359
8360   return offset;
8361 }
8362
8363
8364 static const ber_sequence_t gsm_map_ms_SS_EventList_sequence_of[1] = {
8365   { &hf_gsm_map_ms_SS_EventList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
8366 };
8367
8368 static int
8369 dissect_gsm_map_ms_SS_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8370   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8371                                       gsm_map_ms_SS_EventList_sequence_of, hf_index, ett_gsm_map_ms_SS_EventList);
8372
8373   return offset;
8374 }
8375
8376
8377 static const ber_sequence_t gsm_map_ms_SS_CamelData_sequence[] = {
8378   { &hf_gsm_map_ms_ss_EventList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_EventList },
8379   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
8380   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8381   { NULL, 0, 0, 0, NULL }
8382 };
8383
8384 static int
8385 dissect_gsm_map_ms_SS_CamelData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8386   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8387                                    gsm_map_ms_SS_CamelData_sequence, hf_index, ett_gsm_map_ms_SS_CamelData);
8388
8389   return offset;
8390 }
8391
8392
8393 static const ber_sequence_t gsm_map_ms_SS_CSI_sequence[] = {
8394   { &hf_gsm_map_ms_ss_CamelData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_CamelData },
8395   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8396   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8397   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8398   { NULL, 0, 0, 0, NULL }
8399 };
8400
8401 static int
8402 dissect_gsm_map_ms_SS_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8403   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8404                                    gsm_map_ms_SS_CSI_sequence, hf_index, ett_gsm_map_ms_SS_CSI);
8405
8406   return offset;
8407 }
8408
8409
8410 static const value_string gsm_map_ms_MatchType_vals[] = {
8411   {   0, "inhibiting" },
8412   {   1, "enabling" },
8413   { 0, NULL }
8414 };
8415
8416
8417 static int
8418 dissect_gsm_map_ms_MatchType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8419   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8420                                   NULL);
8421
8422   return offset;
8423 }
8424
8425
8426 static const ber_sequence_t gsm_map_ms_DestinationNumberList_sequence_of[1] = {
8427   { &hf_gsm_map_ms_DestinationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
8428 };
8429
8430 static int
8431 dissect_gsm_map_ms_DestinationNumberList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8432   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8433                                       gsm_map_ms_DestinationNumberList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberList);
8434
8435   return offset;
8436 }
8437
8438
8439
8440 static int
8441 dissect_gsm_map_ms_INTEGER_1_maxNumOfISDN_AddressDigits(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8442   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8443                                   NULL);
8444
8445   return offset;
8446 }
8447
8448
8449 static const ber_sequence_t gsm_map_ms_DestinationNumberLengthList_sequence_of[1] = {
8450   { &hf_gsm_map_ms_DestinationNumberLengthList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_INTEGER_1_maxNumOfISDN_AddressDigits },
8451 };
8452
8453 static int
8454 dissect_gsm_map_ms_DestinationNumberLengthList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8455   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8456                                       gsm_map_ms_DestinationNumberLengthList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberLengthList);
8457
8458   return offset;
8459 }
8460
8461
8462 static const ber_sequence_t gsm_map_ms_DestinationNumberCriteria_sequence[] = {
8463   { &hf_gsm_map_ms_matchType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MatchType },
8464   { &hf_gsm_map_ms_destinationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberList },
8465   { &hf_gsm_map_ms_destinationNumberLengthList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberLengthList },
8466   { NULL, 0, 0, 0, NULL }
8467 };
8468
8469 static int
8470 dissect_gsm_map_ms_DestinationNumberCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8471   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8472                                    gsm_map_ms_DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_ms_DestinationNumberCriteria);
8473
8474   return offset;
8475 }
8476
8477
8478 static const ber_sequence_t gsm_map_ms_BasicServiceCriteria_sequence_of[1] = {
8479   { &hf_gsm_map_ms_BasicServiceCriteria_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
8480 };
8481
8482 static int
8483 dissect_gsm_map_ms_BasicServiceCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8484   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8485                                       gsm_map_ms_BasicServiceCriteria_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceCriteria);
8486
8487   return offset;
8488 }
8489
8490
8491 static const value_string gsm_map_ms_CallTypeCriteria_vals[] = {
8492   {   0, "forwarded" },
8493   {   1, "notForwarded" },
8494   { 0, NULL }
8495 };
8496
8497
8498 static int
8499 dissect_gsm_map_ms_CallTypeCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8500   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8501                                   NULL);
8502
8503   return offset;
8504 }
8505
8506
8507
8508 static int
8509 dissect_gsm_map_ms_CauseValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8510   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8511                                        NULL);
8512
8513   return offset;
8514 }
8515
8516
8517 static const ber_sequence_t gsm_map_ms_O_CauseValueCriteria_sequence_of[1] = {
8518   { &hf_gsm_map_ms_O_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue },
8519 };
8520
8521 static int
8522 dissect_gsm_map_ms_O_CauseValueCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8523   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8524                                       gsm_map_ms_O_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_O_CauseValueCriteria);
8525
8526   return offset;
8527 }
8528
8529
8530 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDP_Criteria_sequence[] = {
8531   { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint },
8532   { &hf_gsm_map_ms_destinationNumberCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberCriteria },
8533   { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria },
8534   { &hf_gsm_map_ms_callTypeCriteria, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallTypeCriteria },
8535   { &hf_gsm_map_ms_o_CauseValueCriteria, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CauseValueCriteria },
8536   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8537   { NULL, 0, 0, 0, NULL }
8538 };
8539
8540 static int
8541 dissect_gsm_map_ms_O_BcsmCamelTDP_Criteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8542   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8543                                    gsm_map_ms_O_BcsmCamelTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDP_Criteria);
8544
8545   return offset;
8546 }
8547
8548
8549 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of[1] = {
8550   { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDP_Criteria },
8551 };
8552
8553 static int
8554 dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8555   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8556                                       gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList);
8557
8558   return offset;
8559 }
8560
8561
8562
8563 static int
8564 dissect_gsm_map_ms_MM_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8565   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8566                                        NULL);
8567
8568   return offset;
8569 }
8570
8571
8572 static const ber_sequence_t gsm_map_ms_MobilityTriggers_sequence_of[1] = {
8573   { &hf_gsm_map_ms_MobilityTriggers_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MM_Code },
8574 };
8575
8576 static int
8577 dissect_gsm_map_ms_MobilityTriggers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8578   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8579                                       gsm_map_ms_MobilityTriggers_sequence_of, hf_index, ett_gsm_map_ms_MobilityTriggers);
8580
8581   return offset;
8582 }
8583
8584
8585 static const ber_sequence_t gsm_map_ms_M_CSI_sequence[] = {
8586   { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers },
8587   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
8588   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8589   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8590   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8591   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8592   { NULL, 0, 0, 0, NULL }
8593 };
8594
8595 static int
8596 dissect_gsm_map_ms_M_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8597   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8598                                    gsm_map_ms_M_CSI_sequence, hf_index, ett_gsm_map_ms_M_CSI);
8599
8600   return offset;
8601 }
8602
8603
8604 static const value_string gsm_map_ms_SMS_TriggerDetectionPoint_vals[] = {
8605   {   1, "sms-CollectedInfo" },
8606   {   2, "sms-DeliveryRequest" },
8607   { 0, NULL }
8608 };
8609
8610
8611 static int
8612 dissect_gsm_map_ms_SMS_TriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8613   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8614                                   NULL);
8615
8616   return offset;
8617 }
8618
8619
8620 static const value_string gsm_map_ms_DefaultSMS_Handling_vals[] = {
8621   {   0, "continueTransaction" },
8622   {   1, "releaseTransaction" },
8623   { 0, NULL }
8624 };
8625
8626
8627 static int
8628 dissect_gsm_map_ms_DefaultSMS_Handling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8629   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8630                                   NULL);
8631
8632   return offset;
8633 }
8634
8635
8636 static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_Data_sequence[] = {
8637   { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint },
8638   { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
8639   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8640   { &hf_gsm_map_ms_defaultSMS_Handling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultSMS_Handling },
8641   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8642   { NULL, 0, 0, 0, NULL }
8643 };
8644
8645 static int
8646 dissect_gsm_map_ms_SMS_CAMEL_TDP_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8647   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8648                                    gsm_map_ms_SMS_CAMEL_TDP_Data_sequence, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_Data);
8649
8650   return offset;
8651 }
8652
8653
8654 static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of[1] = {
8655   { &hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SMS_CAMEL_TDP_Data },
8656 };
8657
8658 static int
8659 dissect_gsm_map_ms_SMS_CAMEL_TDP_DataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8660   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8661                                       gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_DataList);
8662
8663   return offset;
8664 }
8665
8666
8667 static const ber_sequence_t gsm_map_ms_SMS_CSI_sequence[] = {
8668   { &hf_gsm_map_ms_sms_CAMEL_TDP_DataList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CAMEL_TDP_DataList },
8669   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
8670   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8671   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8672   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8673   { NULL, 0, 0, 0, NULL }
8674 };
8675
8676 static int
8677 dissect_gsm_map_ms_SMS_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8678   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8679                                    gsm_map_ms_SMS_CSI_sequence, hf_index, ett_gsm_map_ms_SMS_CSI);
8680
8681   return offset;
8682 }
8683
8684
8685 static const value_string gsm_map_ms_T_BcsmTriggerDetectionPoint_vals[] = {
8686   {  12, "termAttemptAuthorized" },
8687   {  13, "tBusy" },
8688   {  14, "tNoAnswer" },
8689   { 0, NULL }
8690 };
8691
8692
8693 static int
8694 dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8695   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8696                                   NULL);
8697
8698   return offset;
8699 }
8700
8701
8702 static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPData_sequence[] = {
8703   { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint },
8704   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
8705   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8706   { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling },
8707   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8708   { NULL, 0, 0, 0, NULL }
8709 };
8710
8711 static int
8712 dissect_gsm_map_ms_T_BcsmCamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8713   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8714                                    gsm_map_ms_T_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPData);
8715
8716   return offset;
8717 }
8718
8719
8720 static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of[1] = {
8721   { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPData },
8722 };
8723
8724 static int
8725 dissect_gsm_map_ms_T_BcsmCamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8726   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8727                                       gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPDataList);
8728
8729   return offset;
8730 }
8731
8732
8733 static const ber_sequence_t gsm_map_ms_T_CSI_sequence[] = {
8734   { &hf_gsm_map_ms_t_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPDataList },
8735   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8736   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
8737   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8738   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8739   { NULL, 0, 0, 0, NULL }
8740 };
8741
8742 static int
8743 dissect_gsm_map_ms_T_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8744   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8745                                    gsm_map_ms_T_CSI_sequence, hf_index, ett_gsm_map_ms_T_CSI);
8746
8747   return offset;
8748 }
8749
8750
8751 static const ber_sequence_t gsm_map_ms_T_CauseValueCriteria_sequence_of[1] = {
8752   { &hf_gsm_map_ms_T_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue },
8753 };
8754
8755 static int
8756 dissect_gsm_map_ms_T_CauseValueCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8757   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8758                                       gsm_map_ms_T_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_T_CauseValueCriteria);
8759
8760   return offset;
8761 }
8762
8763
8764 static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence[] = {
8765   { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint },
8766   { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria },
8767   { &hf_gsm_map_ms_t_CauseValueCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CauseValueCriteria },
8768   { NULL, 0, 0, 0, NULL }
8769 };
8770
8771 static int
8772 dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8773   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8774                                    gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria);
8775
8776   return offset;
8777 }
8778
8779
8780 static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = {
8781   { &hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria },
8782 };
8783
8784 static int
8785 dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8786   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8787                                       gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList);
8788
8789   return offset;
8790 }
8791
8792
8793 static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriterium_sequence[] = {
8794   { &hf_gsm_map_ms_dialledNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
8795   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
8796   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
8797   { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DefaultCallHandling },
8798   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8799   { NULL, 0, 0, 0, NULL }
8800 };
8801
8802 static int
8803 dissect_gsm_map_ms_DP_AnalysedInfoCriterium(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8804   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8805                                    gsm_map_ms_DP_AnalysedInfoCriterium_sequence, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriterium);
8806
8807   return offset;
8808 }
8809
8810
8811 static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of[1] = {
8812   { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriterium },
8813 };
8814
8815 static int
8816 dissect_gsm_map_ms_DP_AnalysedInfoCriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8817   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8818                                       gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriteriaList);
8819
8820   return offset;
8821 }
8822
8823
8824 static const ber_sequence_t gsm_map_ms_D_CSI_sequence[] = {
8825   { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriteriaList },
8826   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
8827   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8828   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8829   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8830   { NULL, 0, 0, 0, NULL }
8831 };
8832
8833 static int
8834 dissect_gsm_map_ms_D_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8835   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8836                                    gsm_map_ms_D_CSI_sequence, hf_index, ett_gsm_map_ms_D_CSI);
8837
8838   return offset;
8839 }
8840
8841
8842 static const value_string gsm_map_ms_MT_SMS_TPDU_Type_vals[] = {
8843   {   0, "sms-DELIVER" },
8844   {   1, "sms-SUBMIT-REPORT" },
8845   {   2, "sms-STATUS-REPORT" },
8846   { 0, NULL }
8847 };
8848
8849
8850 static int
8851 dissect_gsm_map_ms_MT_SMS_TPDU_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8852   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8853                                   NULL);
8854
8855   return offset;
8856 }
8857
8858
8859 static const ber_sequence_t gsm_map_ms_TPDU_TypeCriterion_sequence_of[1] = {
8860   { &hf_gsm_map_ms_TPDU_TypeCriterion_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MT_SMS_TPDU_Type },
8861 };
8862
8863 static int
8864 dissect_gsm_map_ms_TPDU_TypeCriterion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8865   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8866                                       gsm_map_ms_TPDU_TypeCriterion_sequence_of, hf_index, ett_gsm_map_ms_TPDU_TypeCriterion);
8867
8868   return offset;
8869 }
8870
8871
8872 static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_Criteria_sequence[] = {
8873   { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint },
8874   { &hf_gsm_map_ms_tpdu_TypeCriterion, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TPDU_TypeCriterion },
8875   { NULL, 0, 0, 0, NULL }
8876 };
8877
8878 static int
8879 dissect_gsm_map_ms_MT_smsCAMELTDP_Criteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8880   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8881                                    gsm_map_ms_MT_smsCAMELTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_Criteria);
8882
8883   return offset;
8884 }
8885
8886
8887 static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of[1] = {
8888   { &hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_Criteria },
8889 };
8890
8891 static int
8892 dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8893   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8894                                       gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList);
8895
8896   return offset;
8897 }
8898
8899
8900 static const ber_sequence_t gsm_map_ms_VlrCamelSubscriptionInfo_sequence[] = {
8901   { &hf_gsm_map_ms_o_CSI    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
8902   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8903   { &hf_gsm_map_ms_ss_CSI   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI },
8904   { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
8905   { &hf_gsm_map_ms_tif_CSI  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8906   { &hf_gsm_map_ms_m_CSI    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI },
8907   { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
8908   { &hf_gsm_map_ms_vt_CSI   , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
8909   { &hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList },
8910   { &hf_gsm_map_ms_d_CSI    , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
8911   { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
8912   { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
8913   { NULL, 0, 0, 0, NULL }
8914 };
8915
8916 static int
8917 dissect_gsm_map_ms_VlrCamelSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8918   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8919                                    gsm_map_ms_VlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_VlrCamelSubscriptionInfo);
8920
8921   return offset;
8922 }
8923
8924
8925
8926 static int
8927 dissect_gsm_map_ms_ContextId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8928   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8929                                   NULL);
8930
8931   return offset;
8932 }
8933
8934
8935
8936 static int
8937 dissect_gsm_map_ms_PDP_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8938 #line 398 "gsmmap.cnf"
8939         guint8 pdp_type_org;
8940         tvbuff_t        *parameter_tvb;
8941
8942
8943   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8944                                        &parameter_tvb);
8945
8946
8947  if (!parameter_tvb)
8948         return offset;
8949         proto_tree_add_item(tree, hf_gsm_map_pdp_type_org, parameter_tvb, 0,1,FALSE);
8950         pdp_type_org = tvb_get_guint8(parameter_tvb,1);
8951         switch (pdp_type_org){
8952                 case 0: /* ETSI */
8953                         proto_tree_add_item(tree, hf_gsm_map_etsi_pdp_type_number, parameter_tvb, 0,1,FALSE);
8954                         break;
8955                 case 1: /* IETF */
8956                         proto_tree_add_item(tree, hf_gsm_map_ietf_pdp_type_number, parameter_tvb, 0,1,FALSE);
8957                         break;
8958                 default:
8959                 break;
8960         }
8961
8962
8963
8964   return offset;
8965 }
8966
8967
8968
8969 static int
8970 dissect_gsm_map_ms_PDP_Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8971   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8972                                        NULL);
8973
8974   return offset;
8975 }
8976
8977
8978
8979 int
8980 dissect_gsm_map_ms_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8981 #line 420 "gsmmap.cnf"
8982
8983
8984         tvbuff_t        *parameter_tvb;
8985
8986   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8987                                        &parameter_tvb);
8988
8989
8990          if (!parameter_tvb)
8991                 return offset;
8992         de_sm_qos(parameter_tvb, tree, 0, 3, NULL,0);
8993
8994
8995
8996   return offset;
8997 }
8998
8999
9000
9001 static int
9002 dissect_gsm_map_ms_APN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9003   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9004                                        NULL);
9005
9006   return offset;
9007 }
9008
9009
9010
9011 int
9012 dissect_gsm_map_ms_Ext_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9013 #line 431 "gsmmap.cnf"
9014
9015         tvbuff_t        *parameter_tvb;
9016
9017   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9018                                        &parameter_tvb);
9019
9020
9021         if (!parameter_tvb)
9022                 return offset;
9023         dissect_gsm_map_ext_qos_subscribed(tvb, actx->pinfo, tree, actx);
9024
9025
9026
9027   return offset;
9028 }
9029
9030
9031
9032 static int
9033 dissect_gsm_map_ms_ChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9034   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9035                                        NULL);
9036
9037   return offset;
9038 }
9039
9040
9041
9042 int
9043 dissect_gsm_map_ms_Ext2_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9044   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9045                                        NULL);
9046
9047   return offset;
9048 }
9049
9050
9051 static const ber_sequence_t gsm_map_ms_PDP_Context_sequence[] = {
9052   { &hf_gsm_map_ms_pdp_ContextId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
9053   { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type },
9054   { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
9055   { &hf_gsm_map_ms_qos_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QoS_Subscribed },
9056   { &hf_gsm_map_ms_vplmnAddressAllowed, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9057   { &hf_gsm_map_ms_apn      , BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
9058   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9059   { &hf_gsm_map_ms_ext_QoS_Subscribed, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
9060   { &hf_gsm_map_ms_pdp_ChargingCharacteristics, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
9061   { &hf_gsm_map_ms_ext2_QoS_Subscribed, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
9062   { NULL, 0, 0, 0, NULL }
9063 };
9064
9065 static int
9066 dissect_gsm_map_ms_PDP_Context(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9067   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9068                                    gsm_map_ms_PDP_Context_sequence, hf_index, ett_gsm_map_ms_PDP_Context);
9069
9070   return offset;
9071 }
9072
9073
9074 static const ber_sequence_t gsm_map_ms_GPRSDataList_sequence_of[1] = {
9075   { &hf_gsm_map_ms_GPRSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_Context },
9076 };
9077
9078 static int
9079 dissect_gsm_map_ms_GPRSDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9080   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9081                                       gsm_map_ms_GPRSDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRSDataList);
9082
9083   return offset;
9084 }
9085
9086
9087 static const ber_sequence_t gsm_map_ms_GPRSSubscriptionData_sequence[] = {
9088   { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9089   { &hf_gsm_map_ms_gprsDataList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSDataList },
9090   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9091   { NULL, 0, 0, 0, NULL }
9092 };
9093
9094 static int
9095 dissect_gsm_map_ms_GPRSSubscriptionData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9096   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9097                                    gsm_map_ms_GPRSSubscriptionData_sequence, hf_index, ett_gsm_map_ms_GPRSSubscriptionData);
9098
9099   return offset;
9100 }
9101
9102
9103 static const value_string gsm_map_ms_NetworkAccessMode_vals[] = {
9104   {   0, "bothMSCAndSGSN" },
9105   {   1, "onlyMSC" },
9106   {   2, "onlySGSN" },
9107   { 0, NULL }
9108 };
9109
9110
9111 static int
9112 dissect_gsm_map_ms_NetworkAccessMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9113   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9114                                   NULL);
9115
9116   return offset;
9117 }
9118
9119
9120 static const value_string gsm_map_ms_LSAOnlyAccessIndicator_vals[] = {
9121   {   0, "accessOutsideLSAsAllowed" },
9122   {   1, "accessOutsideLSAsRestricted" },
9123   { 0, NULL }
9124 };
9125
9126
9127 static int
9128 dissect_gsm_map_ms_LSAOnlyAccessIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9129   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9130                                   NULL);
9131
9132   return offset;
9133 }
9134
9135
9136
9137 int
9138 dissect_gsm_map_ms_LSAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9139   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9140                                        NULL);
9141
9142   return offset;
9143 }
9144
9145
9146
9147 static int
9148 dissect_gsm_map_ms_LSAAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9149   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9150                                        NULL);
9151
9152   return offset;
9153 }
9154
9155
9156 static const ber_sequence_t gsm_map_ms_LSAData_sequence[] = {
9157   { &hf_gsm_map_ms_lsaIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
9158   { &hf_gsm_map_ms_lsaAttributes, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAAttributes },
9159   { &hf_gsm_map_ms_lsaActiveModeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9160   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9161   { NULL, 0, 0, 0, NULL }
9162 };
9163
9164 static int
9165 dissect_gsm_map_ms_LSAData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9166   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9167                                    gsm_map_ms_LSAData_sequence, hf_index, ett_gsm_map_ms_LSAData);
9168
9169   return offset;
9170 }
9171
9172
9173 static const ber_sequence_t gsm_map_ms_LSADataList_sequence_of[1] = {
9174   { &hf_gsm_map_ms_LSADataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAData },
9175 };
9176
9177 static int
9178 dissect_gsm_map_ms_LSADataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9179   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9180                                       gsm_map_ms_LSADataList_sequence_of, hf_index, ett_gsm_map_ms_LSADataList);
9181
9182   return offset;
9183 }
9184
9185
9186 static const ber_sequence_t gsm_map_ms_LSAInformation_sequence[] = {
9187   { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9188   { &hf_gsm_map_ms_lsaOnlyAccessIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAOnlyAccessIndicator },
9189   { &hf_gsm_map_ms_lsaDataList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSADataList },
9190   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9191   { NULL, 0, 0, 0, NULL }
9192 };
9193
9194 static int
9195 dissect_gsm_map_ms_LSAInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9196   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9197                                    gsm_map_ms_LSAInformation_sequence, hf_index, ett_gsm_map_ms_LSAInformation);
9198
9199   return offset;
9200 }
9201
9202
9203 static const ber_sequence_t gsm_map_ms_GMLC_List_sequence_of[1] = {
9204   { &hf_gsm_map_ms_GMLC_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9205 };
9206
9207 static int
9208 dissect_gsm_map_ms_GMLC_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9209   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9210                                       gsm_map_ms_GMLC_List_sequence_of, hf_index, ett_gsm_map_ms_GMLC_List);
9211
9212   return offset;
9213 }
9214
9215
9216 const value_string gsm_map_ms_NotificationToMSUser_vals[] = {
9217   {   0, "notifyLocationAllowed" },
9218   {   1, "notifyAndVerify-LocationAllowedIfNoResponse" },
9219   {   2, "notifyAndVerify-LocationNotAllowedIfNoResponse" },
9220   {   3, "locationNotAllowed" },
9221   { 0, NULL }
9222 };
9223
9224
9225 int
9226 dissect_gsm_map_ms_NotificationToMSUser(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9227   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9228                                   NULL);
9229
9230   return offset;
9231 }
9232
9233
9234 static const value_string gsm_map_ms_GMLC_Restriction_vals[] = {
9235   {   0, "gmlc-List" },
9236   {   1, "home-Country" },
9237   { 0, NULL }
9238 };
9239
9240
9241 static int
9242 dissect_gsm_map_ms_GMLC_Restriction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9243   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9244                                   NULL);
9245
9246   return offset;
9247 }
9248
9249
9250 static const ber_sequence_t gsm_map_ms_ExternalClient_sequence[] = {
9251   { &hf_gsm_map_ms_clientIdentity, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientExternalID },
9252   { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction },
9253   { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
9254   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9255   { NULL, 0, 0, 0, NULL }
9256 };
9257
9258 static int
9259 dissect_gsm_map_ms_ExternalClient(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9260   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9261                                    gsm_map_ms_ExternalClient_sequence, hf_index, ett_gsm_map_ms_ExternalClient);
9262
9263   return offset;
9264 }
9265
9266
9267 static const ber_sequence_t gsm_map_ms_ExternalClientList_sequence_of[1] = {
9268   { &hf_gsm_map_ms_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient },
9269 };
9270
9271 static int
9272 dissect_gsm_map_ms_ExternalClientList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9273   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9274                                       gsm_map_ms_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_ExternalClientList);
9275
9276   return offset;
9277 }
9278
9279
9280 static const ber_sequence_t gsm_map_ms_PLMNClientList_sequence_of[1] = {
9281   { &hf_gsm_map_ms_PLMNClientList_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientInternalID },
9282 };
9283
9284 static int
9285 dissect_gsm_map_ms_PLMNClientList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9286   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9287                                       gsm_map_ms_PLMNClientList_sequence_of, hf_index, ett_gsm_map_ms_PLMNClientList);
9288
9289   return offset;
9290 }
9291
9292
9293 static const ber_sequence_t gsm_map_ms_Ext_ExternalClientList_sequence_of[1] = {
9294   { &hf_gsm_map_ms_Ext_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient },
9295 };
9296
9297 static int
9298 dissect_gsm_map_ms_Ext_ExternalClientList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9299   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9300                                       gsm_map_ms_Ext_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ExternalClientList);
9301
9302   return offset;
9303 }
9304
9305
9306 static const ber_sequence_t gsm_map_ms_ServiceType_sequence[] = {
9307   { &hf_gsm_map_ms_serviceTypeIdentity, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSServiceTypeID },
9308   { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction },
9309   { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
9310   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9311   { NULL, 0, 0, 0, NULL }
9312 };
9313
9314 static int
9315 dissect_gsm_map_ms_ServiceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9316   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9317                                    gsm_map_ms_ServiceType_sequence, hf_index, ett_gsm_map_ms_ServiceType);
9318
9319   return offset;
9320 }
9321
9322
9323 static const ber_sequence_t gsm_map_ms_ServiceTypeList_sequence_of[1] = {
9324   { &hf_gsm_map_ms_ServiceTypeList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceType },
9325 };
9326
9327 static int
9328 dissect_gsm_map_ms_ServiceTypeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9329   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9330                                       gsm_map_ms_ServiceTypeList_sequence_of, hf_index, ett_gsm_map_ms_ServiceTypeList);
9331
9332   return offset;
9333 }
9334
9335
9336 static const ber_sequence_t gsm_map_ms_LCS_PrivacyClass_sequence[] = {
9337   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
9338   { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
9339   { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
9340   { &hf_gsm_map_ms_externalClientList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ExternalClientList },
9341   { &hf_gsm_map_ms_plmnClientList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PLMNClientList },
9342   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9343   { &hf_gsm_map_ms_ext_externalClientList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ExternalClientList },
9344   { &hf_gsm_map_ms_serviceTypeList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceTypeList },
9345   { NULL, 0, 0, 0, NULL }
9346 };
9347
9348 static int
9349 dissect_gsm_map_ms_LCS_PrivacyClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9350   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9351                                    gsm_map_ms_LCS_PrivacyClass_sequence, hf_index, ett_gsm_map_ms_LCS_PrivacyClass);
9352
9353   return offset;
9354 }
9355
9356
9357 static const ber_sequence_t gsm_map_ms_LCS_PrivacyExceptionList_sequence_of[1] = {
9358   { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LCS_PrivacyClass },
9359 };
9360
9361 static int
9362 dissect_gsm_map_ms_LCS_PrivacyExceptionList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9363   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9364                                       gsm_map_ms_LCS_PrivacyExceptionList_sequence_of, hf_index, ett_gsm_map_ms_LCS_PrivacyExceptionList);
9365
9366   return offset;
9367 }
9368
9369
9370 static const ber_sequence_t gsm_map_ms_MOLR_Class_sequence[] = {
9371   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
9372   { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
9373   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9374   { NULL, 0, 0, 0, NULL }
9375 };
9376
9377 static int
9378 dissect_gsm_map_ms_MOLR_Class(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9379   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9380                                    gsm_map_ms_MOLR_Class_sequence, hf_index, ett_gsm_map_ms_MOLR_Class);
9381
9382   return offset;
9383 }
9384
9385
9386 static const ber_sequence_t gsm_map_ms_MOLR_List_sequence_of[1] = {
9387   { &hf_gsm_map_ms_MOLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MOLR_Class },
9388 };
9389
9390 static int
9391 dissect_gsm_map_ms_MOLR_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9392   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9393                                       gsm_map_ms_MOLR_List_sequence_of, hf_index, ett_gsm_map_ms_MOLR_List);
9394
9395   return offset;
9396 }
9397
9398
9399 static const ber_sequence_t gsm_map_ms_LCSInformation_sequence[] = {
9400   { &hf_gsm_map_ms_gmlc_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_List },
9401   { &hf_gsm_map_ms_lcs_PrivacyExceptionList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList },
9402   { &hf_gsm_map_ms_molr_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MOLR_List },
9403   { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList },
9404   { NULL, 0, 0, 0, NULL }
9405 };
9406
9407 static int
9408 dissect_gsm_map_ms_LCSInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9409   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9410                                    gsm_map_ms_LCSInformation_sequence, hf_index, ett_gsm_map_ms_LCSInformation);
9411
9412   return offset;
9413 }
9414
9415
9416
9417 static int
9418 dissect_gsm_map_ms_IST_AlertTimerValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9419   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9420                                   NULL);
9421
9422   return offset;
9423 }
9424
9425
9426
9427 static int
9428 dissect_gsm_map_ms_CS_AllocationRetentionPriority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9429   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9430                                        NULL);
9431
9432   return offset;
9433 }
9434
9435
9436 static const value_string gsm_map_ms_GPRS_TriggerDetectionPoint_vals[] = {
9437   {   1, "attach" },
9438   {   2, "attachChangeOfPosition" },
9439   {  11, "pdp-ContextEstablishment" },
9440   {  12, "pdp-ContextEstablishmentAcknowledgement" },
9441   {  14, "pdp-ContextChangeOfPosition" },
9442   { 0, NULL }
9443 };
9444
9445
9446 static int
9447 dissect_gsm_map_ms_GPRS_TriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9448   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9449                                   NULL);
9450
9451   return offset;
9452 }
9453
9454
9455 static const value_string gsm_map_ms_DefaultGPRS_Handling_vals[] = {
9456   {   0, "continueTransaction" },
9457   {   1, "releaseTransaction" },
9458   { 0, NULL }
9459 };
9460
9461
9462 static int
9463 dissect_gsm_map_ms_DefaultGPRS_Handling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9464   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9465                                   NULL);
9466
9467   return offset;
9468 }
9469
9470
9471 static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPData_sequence[] = {
9472   { &hf_gsm_map_ms_gprs_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_TriggerDetectionPoint },
9473   { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
9474   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9475   { &hf_gsm_map_ms_defaultSessionHandling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultGPRS_Handling },
9476   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9477   { NULL, 0, 0, 0, NULL }
9478 };
9479
9480 static int
9481 dissect_gsm_map_ms_GPRS_CamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9482   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9483                                    gsm_map_ms_GPRS_CamelTDPData_sequence, hf_index, ett_gsm_map_ms_GPRS_CamelTDPData);
9484
9485   return offset;
9486 }
9487
9488
9489 static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPDataList_sequence_of[1] = {
9490   { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GPRS_CamelTDPData },
9491 };
9492
9493 static int
9494 dissect_gsm_map_ms_GPRS_CamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9495   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9496                                       gsm_map_ms_GPRS_CamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRS_CamelTDPDataList);
9497
9498   return offset;
9499 }
9500
9501
9502 static const ber_sequence_t gsm_map_ms_GPRS_CSI_sequence[] = {
9503   { &hf_gsm_map_ms_gprs_CamelTDPDataList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CamelTDPDataList },
9504   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
9505   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9506   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9507   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9508   { NULL, 0, 0, 0, NULL }
9509 };
9510
9511 static int
9512 dissect_gsm_map_ms_GPRS_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9513   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9514                                    gsm_map_ms_GPRS_CSI_sequence, hf_index, ett_gsm_map_ms_GPRS_CSI);
9515
9516   return offset;
9517 }
9518
9519
9520 static const ber_sequence_t gsm_map_ms_MG_CSI_sequence[] = {
9521   { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers },
9522   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
9523   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9524   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9525   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9526   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9527   { NULL, 0, 0, 0, NULL }
9528 };
9529
9530 static int
9531 dissect_gsm_map_ms_MG_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9532   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9533                                    gsm_map_ms_MG_CSI_sequence, hf_index, ett_gsm_map_ms_MG_CSI);
9534
9535   return offset;
9536 }
9537
9538
9539 static const ber_sequence_t gsm_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence[] = {
9540   { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI },
9541   { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
9542   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9543   { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
9544   { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
9545   { &hf_gsm_map_ms_mg_csi   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI },
9546   { NULL, 0, 0, 0, NULL }
9547 };
9548
9549 static int
9550 dissect_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9551   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9552                                    gsm_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo);
9553
9554   return offset;
9555 }
9556
9557
9558 static const asn_namedbit gsm_map_ms_AccessRestrictionData_bits[] = {
9559   {  0, &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed, -1, -1, "utranNotAllowed", NULL },
9560   {  1, &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed, -1, -1, "geranNotAllowed", NULL },
9561   { 0, NULL, 0, 0, NULL, NULL }
9562 };
9563
9564 static int
9565 dissect_gsm_map_ms_AccessRestrictionData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9566   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9567                                     gsm_map_ms_AccessRestrictionData_bits, hf_index, ett_gsm_map_ms_AccessRestrictionData,
9568                                     NULL);
9569
9570   return offset;
9571 }
9572
9573
9574 static const ber_sequence_t gsm_map_ms_InsertSubscriberDataArg_sequence[] = {
9575   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
9576   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9577   { &hf_gsm_map_ms_category , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category },
9578   { &hf_gsm_map_ms_subscriberStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberStatus },
9579   { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
9580   { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
9581   { &hf_gsm_map_ms_provisionedSS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_InfoList },
9582   { &hf_gsm_map_ms_odb_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
9583   { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9584   { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList },
9585   { &hf_gsm_map_ms_vbsSubscriptionData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VBSDataList },
9586   { &hf_gsm_map_ms_vgcsSubscriptionData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VGCSDataList },
9587   { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VlrCamelSubscriptionInfo },
9588   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9589   { &hf_gsm_map_ms_naea_PreferredCI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI },
9590   { &hf_gsm_map_ms_gprsSubscriptionData, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSSubscriptionData },
9591   { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9592   { &hf_gsm_map_ms_networkAccessMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NetworkAccessMode },
9593   { &hf_gsm_map_ms_lsaInformation, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAInformation },
9594   { &hf_gsm_map_ms_lmu_Indicator, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9595   { &hf_gsm_map_ms_lcsInformation, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCSInformation },
9596   { &hf_gsm_map_ms_istAlertTimer, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
9597   { &hf_gsm_map_ms_superChargerSupportedInHLR, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator },
9598   { &hf_gsm_map_ms_mc_SS_Info, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_SS_Info },
9599   { &hf_gsm_map_ms_cs_AllocationRetentionPriority, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CS_AllocationRetentionPriority },
9600   { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo },
9601   { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
9602   { &hf_gsm_map_ms_accessRestrictionData, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AccessRestrictionData },
9603   { NULL, 0, 0, 0, NULL }
9604 };
9605
9606 static int
9607 dissect_gsm_map_ms_InsertSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9608   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9609                                    gsm_map_ms_InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataArg);
9610
9611   return offset;
9612 }
9613
9614
9615 static const ber_sequence_t gsm_map_ms_SubscriberData_sequence[] = {
9616   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9617   { &hf_gsm_map_ms_category , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category },
9618   { &hf_gsm_map_ms_subscriberStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberStatus },
9619   { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
9620   { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
9621   { &hf_gsm_map_ms_provisionedSS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_InfoList },
9622   { &hf_gsm_map_ms_odb_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
9623   { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9624   { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList },
9625   { &hf_gsm_map_ms_vbsSubscriptionData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VBSDataList },
9626   { &hf_gsm_map_ms_vgcsSubscriptionData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VGCSDataList },
9627   { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VlrCamelSubscriptionInfo },
9628   { NULL, 0, 0, 0, NULL }
9629 };
9630
9631 static int
9632 dissect_gsm_map_ms_SubscriberData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9633   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9634                                    gsm_map_ms_SubscriberData_sequence, hf_index, ett_gsm_map_ms_SubscriberData);
9635
9636   return offset;
9637 }
9638
9639
9640 static const value_string gsm_map_ms_RegionalSubscriptionResponse_vals[] = {
9641   {   0, "networkNode-AreaRestricted" },
9642   {   1, "tooManyZoneCodes" },
9643   {   2, "zoneCodesConflict" },
9644   {   3, "regionalSubscNotSupported" },
9645   { 0, NULL }
9646 };
9647
9648
9649 static int
9650 dissect_gsm_map_ms_RegionalSubscriptionResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9651   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9652                                   NULL);
9653
9654   return offset;
9655 }
9656
9657
9658 static const ber_sequence_t gsm_map_ms_InsertSubscriberDataRes_sequence[] = {
9659   { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
9660   { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
9661   { &hf_gsm_map_ms_ss_List  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
9662   { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_GeneralData },
9663   { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse },
9664   { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
9665   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9666   { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
9667   { NULL, 0, 0, 0, NULL }
9668 };
9669
9670 static int
9671 dissect_gsm_map_ms_InsertSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9672   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9673                                    gsm_map_ms_InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataRes);
9674
9675   return offset;
9676 }
9677
9678
9679 static const ber_sequence_t gsm_map_ms_BasicServiceList_sequence_of[1] = {
9680   { &hf_gsm_map_ms_BasicServiceList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
9681 };
9682
9683 static int
9684 dissect_gsm_map_ms_BasicServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9685   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9686                                       gsm_map_ms_BasicServiceList_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceList);
9687
9688   return offset;
9689 }
9690
9691
9692 static const ber_sequence_t gsm_map_ms_ContextIdList_sequence_of[1] = {
9693   { &hf_gsm_map_ms_ContextIdList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
9694 };
9695
9696 static int
9697 dissect_gsm_map_ms_ContextIdList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9698   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9699                                       gsm_map_ms_ContextIdList_sequence_of, hf_index, ett_gsm_map_ms_ContextIdList);
9700
9701   return offset;
9702 }
9703
9704
9705 static const value_string gsm_map_ms_GPRSSubscriptionDataWithdraw_vals[] = {
9706   {   0, "allGPRSData" },
9707   {   1, "contextIdList" },
9708   { 0, NULL }
9709 };
9710
9711 static const ber_choice_t gsm_map_ms_GPRSSubscriptionDataWithdraw_choice[] = {
9712   {   0, &hf_gsm_map_ms_allGPRSData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9713   {   1, &hf_gsm_map_ms_contextIdList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextIdList },
9714   { 0, NULL, 0, 0, 0, NULL }
9715 };
9716
9717 static int
9718 dissect_gsm_map_ms_GPRSSubscriptionDataWithdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9719   offset = dissect_ber_choice(actx, tree, tvb, offset,
9720                                  gsm_map_ms_GPRSSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_ms_GPRSSubscriptionDataWithdraw,
9721                                  NULL);
9722
9723   return offset;
9724 }
9725
9726
9727 static const ber_sequence_t gsm_map_ms_LSAIdentityList_sequence_of[1] = {
9728   { &hf_gsm_map_ms_LSAIdentityList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentity },
9729 };
9730
9731 static int
9732 dissect_gsm_map_ms_LSAIdentityList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9733   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9734                                       gsm_map_ms_LSAIdentityList_sequence_of, hf_index, ett_gsm_map_ms_LSAIdentityList);
9735
9736   return offset;
9737 }
9738
9739
9740 static const value_string gsm_map_ms_LSAInformationWithdraw_vals[] = {
9741   {   0, "allLSAData" },
9742   {   1, "lsaIdentityList" },
9743   { 0, NULL }
9744 };
9745
9746 static const ber_choice_t gsm_map_ms_LSAInformationWithdraw_choice[] = {
9747   {   0, &hf_gsm_map_ms_allLSAData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9748   {   1, &hf_gsm_map_ms_lsaIdentityList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentityList },
9749   { 0, NULL, 0, 0, 0, NULL }
9750 };
9751
9752 static int
9753 dissect_gsm_map_ms_LSAInformationWithdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9754   offset = dissect_ber_choice(actx, tree, tvb, offset,
9755                                  gsm_map_ms_LSAInformationWithdraw_choice, hf_index, ett_gsm_map_ms_LSAInformationWithdraw,
9756                                  NULL);
9757
9758   return offset;
9759 }
9760
9761
9762 static const asn_namedbit gsm_map_ms_SpecificCSI_Withdraw_bits[] = {
9763   {  0, &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi, -1, -1, "o-csi", NULL },
9764   {  1, &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi, -1, -1, "ss-csi", NULL },
9765   {  2, &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi, -1, -1, "tif-csi", NULL },
9766   {  3, &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi, -1, -1, "d-csi", NULL },
9767   {  4, &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi, -1, -1, "vt-csi", NULL },
9768   {  5, &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi, -1, -1, "mo-sms-csi", NULL },
9769   {  6, &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi, -1, -1, "m-csi", NULL },
9770   {  7, &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi, -1, -1, "gprs-csi", NULL },
9771   {  8, &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi, -1, -1, "t-csi", NULL },
9772   {  9, &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi, -1, -1, "mt-sms-csi", NULL },
9773   { 10, &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi, -1, -1, "mg-csi", NULL },
9774   { 11, &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI, -1, -1, "o-IM-CSI", NULL },
9775   { 12, &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI, -1, -1, "d-IM-CSI", NULL },
9776   { 13, &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI, -1, -1, "vt-IM-CSI", NULL },
9777   { 0, NULL, 0, 0, NULL, NULL }
9778 };
9779
9780 static int
9781 dissect_gsm_map_ms_SpecificCSI_Withdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9782   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9783                                     gsm_map_ms_SpecificCSI_Withdraw_bits, hf_index, ett_gsm_map_ms_SpecificCSI_Withdraw,
9784                                     NULL);
9785
9786   return offset;
9787 }
9788
9789
9790 static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataArg_sequence[] = {
9791   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
9792   { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList },
9793   { &hf_gsm_map_ms_ss_List  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
9794   { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9795   { &hf_gsm_map_ms_regionalSubscriptionIdentifier, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCode },
9796   { &hf_gsm_map_ms_vbsGroupIndication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9797   { &hf_gsm_map_ms_vgcsGroupIndication, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9798   { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9799   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9800   { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_GPRSSubscriptionDataWithdraw },
9801   { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9802   { &hf_gsm_map_ms_lsaInformationWithdraw, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_LSAInformationWithdraw },
9803   { &hf_gsm_map_ms_gmlc_ListWithdraw, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9804   { &hf_gsm_map_ms_istInformationWithdraw, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9805   { &hf_gsm_map_ms_specificCSI_Withdraw, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw },
9806   { &hf_gsm_map_ms_chargingCharacteristicsWithdraw, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9807   { NULL, 0, 0, 0, NULL }
9808 };
9809
9810 static int
9811 dissect_gsm_map_ms_DeleteSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9812   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9813                                    gsm_map_ms_DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataArg);
9814
9815   return offset;
9816 }
9817
9818
9819 static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataRes_sequence[] = {
9820   { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse },
9821   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9822   { NULL, 0, 0, 0, NULL }
9823 };
9824
9825 static int
9826 dissect_gsm_map_ms_DeleteSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9827   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9828                                    gsm_map_ms_DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataRes);
9829
9830   return offset;
9831 }
9832
9833
9834 static const asn_namedbit gsm_map_ms_OfferedCamel4Functionalities_bits[] = {
9835   {  0, &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt, -1, -1, "initiateCallAttempt", NULL },
9836   {  1, &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg, -1, -1, "splitLeg", NULL },
9837   {  2, &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg, -1, -1, "moveLeg", NULL },
9838   {  3, &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg, -1, -1, "disconnectLeg", NULL },
9839   {  4, &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased, -1, -1, "entityReleased", NULL },
9840   {  5, &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument, -1, -1, "dfc-WithArgument", NULL },
9841   {  6, &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone, -1, -1, "playTone", NULL },
9842   {  7, &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall, -1, -1, "dtmf-MidCall", NULL },
9843   {  8, &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator, -1, -1, "chargingIndicator", NULL },
9844   {  9, &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP, -1, -1, "alertingDP", NULL },
9845   { 10, &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting, -1, -1, "locationAtAlerting", NULL },
9846   { 11, &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP, -1, -1, "changeOfPositionDP", NULL },
9847   { 12, &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions, -1, -1, "or-Interactions", NULL },
9848   { 13, &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements, -1, -1, "warningToneEnhancements", NULL },
9849   { 14, &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements, -1, -1, "cf-Enhancements", NULL },
9850   { 15, &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices, -1, -1, "subscribedEnhancedDialledServices", NULL },
9851   { 16, &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices, -1, -1, "servingNetworkEnhancedDialledServices", NULL },
9852   { 17, &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP, -1, -1, "criteriaForChangeOfPositionDP", NULL },
9853   { 18, &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP, -1, -1, "serviceChangeDP", NULL },
9854   { 19, &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation, -1, -1, "collectInformation", NULL },
9855   { 0, NULL, 0, 0, NULL, NULL }
9856 };
9857
9858 int
9859 dissect_gsm_map_ms_OfferedCamel4Functionalities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9860   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9861                                     gsm_map_ms_OfferedCamel4Functionalities_bits, hf_index, ett_gsm_map_ms_OfferedCamel4Functionalities,
9862                                     NULL);
9863
9864   return offset;
9865 }
9866
9867
9868 static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsArg_sequence[] = {
9869   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
9870   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
9871   { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9872   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9873   { NULL, 0, 0, 0, NULL }
9874 };
9875
9876 static int
9877 dissect_gsm_map_ms_SendRoutingInfoForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9878   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9879                                    gsm_map_ms_SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsArg);
9880
9881   return offset;
9882 }
9883
9884
9885 static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsRes_sequence[] = {
9886   { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
9887   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
9888   { &hf_gsm_map_ms_mobileNotReachableReason, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
9889   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9890   { NULL, 0, 0, 0, NULL }
9891 };
9892
9893 static int
9894 dissect_gsm_map_ms_SendRoutingInfoForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9895   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9896                                    gsm_map_ms_SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsRes);
9897
9898   return offset;
9899 }
9900
9901
9902 static const ber_sequence_t gsm_map_ms_FailureReportArg_sequence[] = {
9903   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
9904   { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9905   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
9906   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9907   { NULL, 0, 0, 0, NULL }
9908 };
9909
9910 static int
9911 dissect_gsm_map_ms_FailureReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9912   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9913                                    gsm_map_ms_FailureReportArg_sequence, hf_index, ett_gsm_map_ms_FailureReportArg);
9914
9915   return offset;
9916 }
9917
9918
9919 static const ber_sequence_t gsm_map_ms_FailureReportRes_sequence[] = {
9920   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
9921   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9922   { NULL, 0, 0, 0, NULL }
9923 };
9924
9925 static int
9926 dissect_gsm_map_ms_FailureReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9927   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9928                                    gsm_map_ms_FailureReportRes_sequence, hf_index, ett_gsm_map_ms_FailureReportRes);
9929
9930   return offset;
9931 }
9932
9933
9934 static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsArg_sequence[] = {
9935   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
9936   { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
9937   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
9938   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9939   { NULL, 0, 0, 0, NULL }
9940 };
9941
9942 static int
9943 dissect_gsm_map_ms_NoteMsPresentForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9944   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9945                                    gsm_map_ms_NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsArg);
9946
9947   return offset;
9948 }
9949
9950
9951 static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsRes_sequence[] = {
9952   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9953   { NULL, 0, 0, 0, NULL }
9954 };
9955
9956 static int
9957 dissect_gsm_map_ms_NoteMsPresentForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9958   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9959                                    gsm_map_ms_NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsRes);
9960
9961   return offset;
9962 }
9963
9964
9965 static const ber_sequence_t gsm_map_ms_ResetArg_sequence[] = {
9966   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9967   { &hf_gsm_map_ms_hlr_List , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_List },
9968   { NULL, 0, 0, 0, NULL }
9969 };
9970
9971 static int
9972 dissect_gsm_map_ms_ResetArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9973   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9974                                    gsm_map_ms_ResetArg_sequence, hf_index, ett_gsm_map_ms_ResetArg);
9975
9976   return offset;
9977 }
9978
9979
9980 static const ber_sequence_t gsm_map_ms_RestoreDataArg_sequence[] = {
9981   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
9982   { &hf_gsm_map_ms_lmsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
9983   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9984   { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability },
9985   { NULL, 0, 0, 0, NULL }
9986 };
9987
9988 static int
9989 dissect_gsm_map_ms_RestoreDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9990   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9991                                    gsm_map_ms_RestoreDataArg_sequence, hf_index, ett_gsm_map_ms_RestoreDataArg);
9992
9993   return offset;
9994 }
9995
9996
9997 static const ber_sequence_t gsm_map_ms_RestoreDataRes_sequence[] = {
9998   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9999   { &hf_gsm_map_ms_msNotReachable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10000   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10001   { NULL, 0, 0, 0, NULL }
10002 };
10003
10004 static int
10005 dissect_gsm_map_ms_RestoreDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10006   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10007                                    gsm_map_ms_RestoreDataRes_sequence, hf_index, ett_gsm_map_ms_RestoreDataRes);
10008
10009   return offset;
10010 }
10011
10012
10013 static const value_string gsm_map_ms_DomainType_vals[] = {
10014   {   0, "cs-Domain" },
10015   {   1, "ps-Domain" },
10016   { 0, NULL }
10017 };
10018
10019
10020 static int
10021 dissect_gsm_map_ms_DomainType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10022   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10023                                   NULL);
10024
10025   return offset;
10026 }
10027
10028
10029 static const ber_sequence_t gsm_map_ms_RequestedInfo_sequence[] = {
10030   { &hf_gsm_map_ms_locationInformation_01, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10031   { &hf_gsm_map_ms_subscriberState_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10032   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10033   { &hf_gsm_map_ms_currentLocation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10034   { &hf_gsm_map_ms_requestedDomain, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DomainType },
10035   { &hf_gsm_map_ms_imei_01  , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10036   { &hf_gsm_map_ms_ms_classmark, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10037   { &hf_gsm_map_ms_mnpRequestedInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10038   { NULL, 0, 0, 0, NULL }
10039 };
10040
10041 static int
10042 dissect_gsm_map_ms_RequestedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10043   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10044                                    gsm_map_ms_RequestedInfo_sequence, hf_index, ett_gsm_map_ms_RequestedInfo);
10045
10046   return offset;
10047 }
10048
10049
10050 static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoArg_sequence[] = {
10051   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10052   { &hf_gsm_map_ms_lmsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
10053   { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo },
10054   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10055   { NULL, 0, 0, 0, NULL }
10056 };
10057
10058 static int
10059 dissect_gsm_map_ms_ProvideSubscriberInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10060   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10061                                    gsm_map_ms_ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoArg);
10062
10063   return offset;
10064 }
10065
10066
10067
10068 int
10069 dissect_gsm_map_ms_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10070   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10071                                        NULL);
10072
10073   return offset;
10074 }
10075
10076
10077
10078 static int
10079 dissect_gsm_map_ms_LocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10080   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10081                                        NULL);
10082
10083   return offset;
10084 }
10085
10086
10087
10088 static int
10089 dissect_gsm_map_ms_GeodeticInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10090   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10091                                        NULL);
10092
10093   return offset;
10094 }
10095
10096
10097 static const ber_sequence_t gsm_map_ms_LocationInformation_sequence[] = {
10098   { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AgeOfLocationInformation },
10099   { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
10100   { &hf_gsm_map_ms_vlr_number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10101   { &hf_gsm_map_ms_locationNumber, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationNumber },
10102   { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
10103   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10104   { &hf_gsm_map_ms_selectedLSA_Id, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
10105   { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10106   { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
10107   { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10108   { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10109   { NULL, 0, 0, 0, NULL }
10110 };
10111
10112 int
10113 dissect_gsm_map_ms_LocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10114   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10115                                    gsm_map_ms_LocationInformation_sequence, hf_index, ett_gsm_map_ms_LocationInformation);
10116
10117   return offset;
10118 }
10119
10120
10121 static const value_string gsm_map_ms_NotReachableReason_vals[] = {
10122   {   0, "msPurged" },
10123   {   1, "imsiDetached" },
10124   {   2, "restrictedArea" },
10125   {   3, "notRegistered" },
10126   { 0, NULL }
10127 };
10128
10129
10130 static int
10131 dissect_gsm_map_ms_NotReachableReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10132   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10133                                   NULL);
10134
10135   return offset;
10136 }
10137
10138
10139 const value_string gsm_map_ms_SubscriberState_vals[] = {
10140   {   0, "assumedIdle" },
10141   {   1, "camelBusy" },
10142   {   2, "netDetNotReachable" },
10143   {   3, "notProvidedFromVLR" },
10144   { 0, NULL }
10145 };
10146
10147 static const ber_choice_t gsm_map_ms_SubscriberState_choice[] = {
10148   {   0, &hf_gsm_map_ms_assumedIdle, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10149   {   1, &hf_gsm_map_ms_camelBusy, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10150   {   2, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason },
10151   {   3, &hf_gsm_map_ms_notProvidedFromVLR, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10152   { 0, NULL, 0, 0, 0, NULL }
10153 };
10154
10155 int
10156 dissect_gsm_map_ms_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10157   offset = dissect_ber_choice(actx, tree, tvb, offset,
10158                                  gsm_map_ms_SubscriberState_choice, hf_index, ett_gsm_map_ms_SubscriberState,
10159                                  NULL);
10160
10161   return offset;
10162 }
10163
10164
10165
10166 int
10167 dissect_gsm_map_ms_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10168 #line 465 "gsmmap.cnf"
10169
10170         tvbuff_t        *parameter_tvb;
10171         proto_tree *subtree;
10172
10173   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10174                                        &parameter_tvb);
10175
10176
10177          if (!parameter_tvb)
10178                 return offset;
10179         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RAIdentity);
10180         de_gmm_rai(parameter_tvb, subtree, 0, 3, NULL,0);
10181
10182
10183
10184   return offset;
10185 }
10186
10187
10188 static const ber_sequence_t gsm_map_ms_LocationInformationGPRS_sequence[] = {
10189   { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
10190   { &hf_gsm_map_ms_routeingAreaIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAIdentity },
10191   { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
10192   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10193   { &hf_gsm_map_ms_selectedLSAIdentity, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
10194   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10195   { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10196   { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
10197   { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10198   { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
10199   { NULL, 0, 0, 0, NULL }
10200 };
10201
10202 static int
10203 dissect_gsm_map_ms_LocationInformationGPRS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10204   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10205                                    gsm_map_ms_LocationInformationGPRS_sequence, hf_index, ett_gsm_map_ms_LocationInformationGPRS);
10206
10207   return offset;
10208 }
10209
10210
10211
10212 static int
10213 dissect_gsm_map_ms_NSAPI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10214   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10215                                   NULL);
10216
10217   return offset;
10218 }
10219
10220
10221
10222 static int
10223 dissect_gsm_map_ms_TransactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10224   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10225                                        NULL);
10226
10227   return offset;
10228 }
10229
10230
10231
10232 static int
10233 dissect_gsm_map_ms_TEID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10234   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10235                                        NULL);
10236
10237   return offset;
10238 }
10239
10240
10241
10242 int
10243 dissect_gsm_map_ms_GPRSChargingID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10244   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10245                                        NULL);
10246
10247   return offset;
10248 }
10249
10250
10251 static const ber_sequence_t gsm_map_ms_PDP_ContextInfo_sequence[] = {
10252   { &hf_gsm_map_ms_pdp_ContextIdentifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
10253   { &hf_gsm_map_ms_pdp_ContextActive, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10254   { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type },
10255   { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
10256   { &hf_gsm_map_ms_apn_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
10257   { &hf_gsm_map_ms_apn_InUse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
10258   { &hf_gsm_map_ms_nsapi    , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NSAPI },
10259   { &hf_gsm_map_ms_transactionId, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TransactionId },
10260   { &hf_gsm_map_ms_teid_ForGnAndGp, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID },
10261   { &hf_gsm_map_ms_teid_ForIu, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID },
10262   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10263   { &hf_gsm_map_ms_qos_Subscribed_01, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
10264   { &hf_gsm_map_ms_qos_Requested, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
10265   { &hf_gsm_map_ms_qos_Negotiated, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
10266   { &hf_gsm_map_ms_chargingId, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSChargingID },
10267   { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
10268   { &hf_gsm_map_ms_rnc_Address, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10269   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10270   { &hf_gsm_map_ms_qos2_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
10271   { &hf_gsm_map_ms_qos2_Requested, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
10272   { &hf_gsm_map_ms_qos2_Negotiated, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
10273   { NULL, 0, 0, 0, NULL }
10274 };
10275
10276 static int
10277 dissect_gsm_map_ms_PDP_ContextInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10278   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10279                                    gsm_map_ms_PDP_ContextInfo_sequence, hf_index, ett_gsm_map_ms_PDP_ContextInfo);
10280
10281   return offset;
10282 }
10283
10284
10285 static const ber_sequence_t gsm_map_ms_PDP_ContextInfoList_sequence_of[1] = {
10286   { &hf_gsm_map_ms_PDP_ContextInfoList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_ContextInfo },
10287 };
10288
10289 static int
10290 dissect_gsm_map_ms_PDP_ContextInfoList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10291   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10292                                       gsm_map_ms_PDP_ContextInfoList_sequence_of, hf_index, ett_gsm_map_ms_PDP_ContextInfoList);
10293
10294   return offset;
10295 }
10296
10297
10298 static const value_string gsm_map_ms_PS_SubscriberState_vals[] = {
10299   {   0, "notProvidedFromSGSN" },
10300   {   1, "ps-Detached" },
10301   {   2, "ps-AttachedNotReachableForPaging" },
10302   {   3, "ps-AttachedReachableForPaging" },
10303   {   4, "ps-PDP-ActiveNotReachableForPaging" },
10304   {   5, "ps-PDP-ActiveReachableForPaging" },
10305   {   6, "netDetNotReachable" },
10306   { 0, NULL }
10307 };
10308
10309 static const ber_choice_t gsm_map_ms_PS_SubscriberState_choice[] = {
10310   {   0, &hf_gsm_map_ms_notProvidedFromSGSN, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10311   {   1, &hf_gsm_map_ms_ps_Detached, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10312   {   2, &hf_gsm_map_ms_ps_AttachedNotReachableForPaging, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10313   {   3, &hf_gsm_map_ms_ps_AttachedReachableForPaging, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10314   {   4, &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList },
10315   {   5, &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList },
10316   {   6, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason },
10317   { 0, NULL, 0, 0, 0, NULL }
10318 };
10319
10320 static int
10321 dissect_gsm_map_ms_PS_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10322   offset = dissect_ber_choice(actx, tree, tvb, offset,
10323                                  gsm_map_ms_PS_SubscriberState_choice, hf_index, ett_gsm_map_ms_PS_SubscriberState,
10324                                  NULL);
10325
10326   return offset;
10327 }
10328
10329
10330
10331 int
10332 dissect_gsm_map_ms_MS_Classmark2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10333   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10334                                        NULL);
10335
10336   return offset;
10337 }
10338
10339
10340
10341 static int
10342 dissect_gsm_map_ms_MSNetworkCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10343   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10344                                        NULL);
10345
10346   return offset;
10347 }
10348
10349
10350
10351 static int
10352 dissect_gsm_map_ms_MSRadioAccessCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10353   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10354                                        NULL);
10355
10356   return offset;
10357 }
10358
10359
10360 static const ber_sequence_t gsm_map_ms_GPRSMSClass_sequence[] = {
10361   { &hf_gsm_map_ms_mSNetworkCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSNetworkCapability },
10362   { &hf_gsm_map_ms_mSRadioAccessCapability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSRadioAccessCapability },
10363   { NULL, 0, 0, 0, NULL }
10364 };
10365
10366 int
10367 dissect_gsm_map_ms_GPRSMSClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10368   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10369                                    gsm_map_ms_GPRSMSClass_sequence, hf_index, ett_gsm_map_ms_GPRSMSClass);
10370
10371   return offset;
10372 }
10373
10374
10375
10376 static int
10377 dissect_gsm_map_ms_RouteingNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10378   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
10379
10380   return offset;
10381 }
10382
10383
10384 static const value_string gsm_map_ms_NumberPortabilityStatus_vals[] = {
10385   {   0, "notKnownToBePorted" },
10386   {   1, "ownNumberPortedOut" },
10387   {   2, "foreignNumberPortedToForeignNetwork" },
10388   {   4, "ownNumberNotPortedOut" },
10389   {   5, "foreignNumberPortedIn" },
10390   { 0, NULL }
10391 };
10392
10393
10394 static int
10395 dissect_gsm_map_ms_NumberPortabilityStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10396   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10397                                   NULL);
10398
10399   return offset;
10400 }
10401
10402
10403 static const ber_sequence_t gsm_map_ms_MNPInfoRes_sequence[] = {
10404   { &hf_gsm_map_ms_routeingNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RouteingNumber },
10405   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10406   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10407   { &hf_gsm_map_ms_numberPortabilityStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus },
10408   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10409   { NULL, 0, 0, 0, NULL }
10410 };
10411
10412 static int
10413 dissect_gsm_map_ms_MNPInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10414   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10415                                    gsm_map_ms_MNPInfoRes_sequence, hf_index, ett_gsm_map_ms_MNPInfoRes);
10416
10417   return offset;
10418 }
10419
10420
10421 static const ber_sequence_t gsm_map_ms_SubscriberInfo_sequence[] = {
10422   { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
10423   { &hf_gsm_map_ms_subscriberState, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SubscriberState },
10424   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10425   { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
10426   { &hf_gsm_map_ms_ps_SubscriberState, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_PS_SubscriberState },
10427   { &hf_gsm_map_ms_imei     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
10428   { &hf_gsm_map_ms_ms_Classmark2, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MS_Classmark2 },
10429   { &hf_gsm_map_ms_gprs_MS_Class, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSMSClass },
10430   { &hf_gsm_map_ms_mnpInfoRes, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MNPInfoRes },
10431   { NULL, 0, 0, 0, NULL }
10432 };
10433
10434 static int
10435 dissect_gsm_map_ms_SubscriberInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10436   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10437                                    gsm_map_ms_SubscriberInfo_sequence, hf_index, ett_gsm_map_ms_SubscriberInfo);
10438
10439   return offset;
10440 }
10441
10442
10443 static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoRes_sequence[] = {
10444   { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo },
10445   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10446   { NULL, 0, 0, 0, NULL }
10447 };
10448
10449 static int
10450 dissect_gsm_map_ms_ProvideSubscriberInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10451   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10452                                    gsm_map_ms_ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoRes);
10453
10454   return offset;
10455 }
10456
10457
10458 static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationArg_sequence[] = {
10459   { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
10460   { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo },
10461   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10462   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10463   { NULL, 0, 0, 0, NULL }
10464 };
10465
10466 static int
10467 dissect_gsm_map_ms_AnyTimeInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10468   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10469                                    gsm_map_ms_AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationArg);
10470
10471   return offset;
10472 }
10473
10474
10475 static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationRes_sequence[] = {
10476   { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo },
10477   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10478   { NULL, 0, 0, 0, NULL }
10479 };
10480
10481 static int
10482 dissect_gsm_map_ms_AnyTimeInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10483   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10484                                    gsm_map_ms_AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationRes);
10485
10486   return offset;
10487 }
10488
10489
10490 static const value_string gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals[] = {
10491   {   0, "o-CSI" },
10492   {   1, "t-CSI" },
10493   {   2, "vt-CSI" },
10494   {   3, "tif-CSI" },
10495   {   4, "gprs-CSI" },
10496   {   5, "mo-sms-CSI" },
10497   {   6, "ss-CSI" },
10498   {   7, "m-CSI" },
10499   {   8, "d-csi" },
10500   { 0, NULL }
10501 };
10502
10503
10504 static int
10505 dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10506   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10507                                   NULL);
10508
10509   return offset;
10510 }
10511
10512
10513 static const value_string gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals[] = {
10514   {   0, "mt-sms-CSI" },
10515   {   1, "mg-csi" },
10516   {   2, "o-IM-CSI" },
10517   {   3, "d-IM-CSI" },
10518   {   4, "vt-IM-CSI" },
10519   { 0, NULL }
10520 };
10521
10522
10523 static int
10524 dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10525   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10526                                   NULL);
10527
10528   return offset;
10529 }
10530
10531
10532 static const ber_sequence_t gsm_map_ms_RequestedSubscriptionInfo_sequence[] = {
10533   { &hf_gsm_map_ms_requestedSS_Info, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_ForBS_Code },
10534   { &hf_gsm_map_ms_odb      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10535   { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo },
10536   { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10537   { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10538   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10539   { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo },
10540   { &hf_gsm_map_ms_msisdn_BS_List_01, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10541   { NULL, 0, 0, 0, NULL }
10542 };
10543
10544 static int
10545 dissect_gsm_map_ms_RequestedSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10546   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10547                                    gsm_map_ms_RequestedSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_RequestedSubscriptionInfo);
10548
10549   return offset;
10550 }
10551
10552
10553 static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationArg_sequence[] = {
10554   { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
10555   { &hf_gsm_map_ms_requestedSubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedSubscriptionInfo },
10556   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10557   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10558   { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10559   { NULL, 0, 0, 0, NULL }
10560 };
10561
10562 static int
10563 dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10564   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10565                                    gsm_map_ms_AnyTimeSubscriptionInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg);
10566
10567   return offset;
10568 }
10569
10570
10571 static const ber_sequence_t gsm_map_ms_CallForwardingData_sequence[] = {
10572   { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
10573   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10574   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10575   { NULL, 0, 0, 0, NULL }
10576 };
10577
10578 static int
10579 dissect_gsm_map_ms_CallForwardingData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10580   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10581                                    gsm_map_ms_CallForwardingData_sequence, hf_index, ett_gsm_map_ms_CallForwardingData);
10582
10583   return offset;
10584 }
10585
10586
10587
10588 static int
10589 dissect_gsm_map_ms_WrongPasswordAttemptsCounter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10590   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10591                                   NULL);
10592
10593   return offset;
10594 }
10595
10596
10597 static const ber_sequence_t gsm_map_ms_CallBarringData_sequence[] = {
10598   { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
10599   { &hf_gsm_map_ms_password , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_Password },
10600   { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
10601   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10602   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10603   { NULL, 0, 0, 0, NULL }
10604 };
10605
10606 static int
10607 dissect_gsm_map_ms_CallBarringData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10608   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10609                                    gsm_map_ms_CallBarringData_sequence, hf_index, ett_gsm_map_ms_CallBarringData);
10610
10611   return offset;
10612 }
10613
10614
10615 static const ber_sequence_t gsm_map_ms_ODB_Info_sequence[] = {
10616   { &hf_gsm_map_ms_odb_Data , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_Data },
10617   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10618   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10619   { NULL, 0, 0, 0, NULL }
10620 };
10621
10622 static int
10623 dissect_gsm_map_ms_ODB_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10624   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10625                                    gsm_map_ms_ODB_Info_sequence, hf_index, ett_gsm_map_ms_ODB_Info);
10626
10627   return offset;
10628 }
10629
10630
10631 static const ber_sequence_t gsm_map_ms_CAMEL_SubscriptionInfo_sequence[] = {
10632   { &hf_gsm_map_ms_o_CSI    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
10633   { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
10634   { &hf_gsm_map_ms_d_CSI    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
10635   { &hf_gsm_map_ms_t_CSI    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
10636   { &hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList },
10637   { &hf_gsm_map_ms_vt_CSI   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
10638   { &hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList },
10639   { &hf_gsm_map_ms_tif_CSI  , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10640   { &hf_gsm_map_ms_tif_CSI_NotificationToCSE, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10641   { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI },
10642   { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
10643   { &hf_gsm_map_ms_ss_CSI   , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI },
10644   { &hf_gsm_map_ms_m_CSI    , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI },
10645   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10646   { &hf_gsm_map_ms_specificCSIDeletedList, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw },
10647   { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
10648   { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
10649   { &hf_gsm_map_ms_mg_csi   , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI },
10650   { &hf_gsm_map_ms_o_IM_CSI , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
10651   { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
10652   { &hf_gsm_map_ms_d_IM_CSI , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
10653   { &hf_gsm_map_ms_vt_IM_CSI, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
10654   { &hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList },
10655   { NULL, 0, 0, 0, NULL }
10656 };
10657
10658 static int
10659 dissect_gsm_map_ms_CAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10660   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10661                                    gsm_map_ms_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_CAMEL_SubscriptionInfo);
10662
10663   return offset;
10664 }
10665
10666
10667 static const ber_sequence_t gsm_map_ms_MSISDN_BS_sequence[] = {
10668   { &hf_gsm_map_ms_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10669   { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList },
10670   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10671   { NULL, 0, 0, 0, NULL }
10672 };
10673
10674 static int
10675 dissect_gsm_map_ms_MSISDN_BS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10676   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10677                                    gsm_map_ms_MSISDN_BS_sequence, hf_index, ett_gsm_map_ms_MSISDN_BS);
10678
10679   return offset;
10680 }
10681
10682
10683 static const ber_sequence_t gsm_map_ms_MSISDN_BS_List_sequence_of[1] = {
10684   { &hf_gsm_map_ms_MSISDN_BS_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MSISDN_BS },
10685 };
10686
10687 static int
10688 dissect_gsm_map_ms_MSISDN_BS_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10689   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10690                                       gsm_map_ms_MSISDN_BS_List_sequence_of, hf_index, ett_gsm_map_ms_MSISDN_BS_List);
10691
10692   return offset;
10693 }
10694
10695
10696 static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationRes_sequence[] = {
10697   { &hf_gsm_map_ms_callForwardingData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallForwardingData },
10698   { &hf_gsm_map_ms_callBarringData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallBarringData },
10699   { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
10700   { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
10701   { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
10702   { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
10703   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10704   { &hf_gsm_map_ms_offeredCamel4CSIsInVLR, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
10705   { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
10706   { &hf_gsm_map_ms_msisdn_BS_List, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSISDN_BS_List },
10707   { NULL, 0, 0, 0, NULL }
10708 };
10709
10710 static int
10711 dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10712   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10713                                    gsm_map_ms_AnyTimeSubscriptionInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes);
10714
10715   return offset;
10716 }
10717
10718
10719 static const value_string gsm_map_ms_ModificationInstruction_vals[] = {
10720   {   0, "deactivate" },
10721   {   1, "activate" },
10722   { 0, NULL }
10723 };
10724
10725
10726 static int
10727 dissect_gsm_map_ms_ModificationInstruction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10728   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10729                                   NULL);
10730
10731   return offset;
10732 }
10733
10734
10735 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CF_Info_sequence[] = {
10736   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
10737   { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
10738   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
10739   { &hf_gsm_map_ms_forwardedToNumber_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
10740   { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
10741   { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime },
10742   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
10743   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10744   { NULL, 0, 0, 0, NULL }
10745 };
10746
10747 static int
10748 dissect_gsm_map_ms_ModificationRequestFor_CF_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10749   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10750                                    gsm_map_ms_ModificationRequestFor_CF_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CF_Info);
10751
10752   return offset;
10753 }
10754
10755
10756 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CB_Info_sequence[] = {
10757   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
10758   { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
10759   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
10760   { &hf_gsm_map_ms_password , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password },
10761   { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
10762   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
10763   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10764   { NULL, 0, 0, 0, NULL }
10765 };
10766
10767 static int
10768 dissect_gsm_map_ms_ModificationRequestFor_CB_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10769   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10770                                    gsm_map_ms_ModificationRequestFor_CB_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CB_Info);
10771
10772   return offset;
10773 }
10774
10775
10776 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CSI_sequence[] = {
10777   { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo },
10778   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
10779   { &hf_gsm_map_ms_modifyCSI_State, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
10780   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10781   { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo },
10782   { NULL, 0, 0, 0, NULL }
10783 };
10784
10785 static int
10786 dissect_gsm_map_ms_ModificationRequestFor_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10787   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10788                                    gsm_map_ms_ModificationRequestFor_CSI_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CSI);
10789
10790   return offset;
10791 }
10792
10793
10794 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_ODB_data_sequence[] = {
10795   { &hf_gsm_map_ms_odb_data , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
10796   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
10797   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10798   { NULL, 0, 0, 0, NULL }
10799 };
10800
10801 static int
10802 dissect_gsm_map_ms_ModificationRequestFor_ODB_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10803   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10804                                    gsm_map_ms_ModificationRequestFor_ODB_data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_ODB_data);
10805
10806   return offset;
10807 }
10808
10809
10810 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence[] = {
10811   { &hf_gsm_map_ms_modifyRegistrationStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
10812   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10813   { NULL, 0, 0, 0, NULL }
10814 };
10815
10816 static int
10817 dissect_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10818   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10819                                    gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data);
10820
10821   return offset;
10822 }
10823
10824
10825 static const ber_sequence_t gsm_map_ms_AnyTimeModificationArg_sequence[] = {
10826   { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
10827   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10828   { &hf_gsm_map_ms_modificationRequestFor_CF_Info, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CF_Info },
10829   { &hf_gsm_map_ms_modificationRequestFor_CB_Info, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CB_Info },
10830   { &hf_gsm_map_ms_modificationRequestFor_CSI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CSI },
10831   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10832   { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10833   { &hf_gsm_map_ms_modificationRequestFor_ODB_data, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_ODB_data },
10834   { &hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data },
10835   { NULL, 0, 0, 0, NULL }
10836 };
10837
10838 static int
10839 dissect_gsm_map_ms_AnyTimeModificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10840   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10841                                    gsm_map_ms_AnyTimeModificationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationArg);
10842
10843   return offset;
10844 }
10845
10846
10847 static const ber_sequence_t gsm_map_ms_Ext_ForwardingInfoFor_CSE_sequence[] = {
10848   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
10849   { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
10850   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10851   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10852   { NULL, 0, 0, 0, NULL }
10853 };
10854
10855 static int
10856 dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10857   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10858                                    gsm_map_ms_Ext_ForwardingInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE);
10859
10860   return offset;
10861 }
10862
10863
10864 static const ber_sequence_t gsm_map_ms_Ext_CallBarringInfoFor_CSE_sequence[] = {
10865   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
10866   { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
10867   { &hf_gsm_map_ms_password , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password },
10868   { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
10869   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10870   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10871   { NULL, 0, 0, 0, NULL }
10872 };
10873
10874 static int
10875 dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10876   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10877                                    gsm_map_ms_Ext_CallBarringInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE);
10878
10879   return offset;
10880 }
10881
10882
10883 static const value_string gsm_map_ms_Ext_SS_InfoFor_CSE_vals[] = {
10884   {   0, "forwardingInfoFor-CSE" },
10885   {   1, "callBarringInfoFor-CSE" },
10886   { 0, NULL }
10887 };
10888
10889 static const ber_choice_t gsm_map_ms_Ext_SS_InfoFor_CSE_choice[] = {
10890   {   0, &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE },
10891   {   1, &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE },
10892   { 0, NULL, 0, 0, 0, NULL }
10893 };
10894
10895 static int
10896 dissect_gsm_map_ms_Ext_SS_InfoFor_CSE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10897   offset = dissect_ber_choice(actx, tree, tvb, offset,
10898                                  gsm_map_ms_Ext_SS_InfoFor_CSE_choice, hf_index, ett_gsm_map_ms_Ext_SS_InfoFor_CSE,
10899                                  NULL);
10900
10901   return offset;
10902 }
10903
10904
10905 static const ber_sequence_t gsm_map_ms_AnyTimeModificationRes_sequence[] = {
10906   { &hf_gsm_map_ms_ss_InfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_Ext_SS_InfoFor_CSE },
10907   { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
10908   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10909   { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
10910   { NULL, 0, 0, 0, NULL }
10911 };
10912
10913 static int
10914 dissect_gsm_map_ms_AnyTimeModificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10915   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10916                                    gsm_map_ms_AnyTimeModificationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationRes);
10917
10918   return offset;
10919 }
10920
10921
10922 static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedArg_sequence[] = {
10923   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
10924   { &hf_gsm_map_ms_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10925   { &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE },
10926   { &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE },
10927   { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
10928   { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
10929   { &hf_gsm_map_ms_allInformationSent, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10930   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10931   { NULL, 0, 0, 0, NULL }
10932 };
10933
10934 static int
10935 dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10936   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10937                                    gsm_map_ms_NoteSubscriberDataModifiedArg_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedArg);
10938
10939   return offset;
10940 }
10941
10942
10943 static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedRes_sequence[] = {
10944   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10945   { NULL, 0, 0, 0, NULL }
10946 };
10947
10948 static int
10949 dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10950   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10951                                    gsm_map_ms_NoteSubscriberDataModifiedRes_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedRes);
10952
10953   return offset;
10954 }
10955
10956
10957 static const ber_sequence_t gsm_map_ms_NoteMM_EventArg_sequence[] = {
10958   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
10959   { &hf_gsm_map_ms_eventMet , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MM_Code },
10960   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10961   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10962   { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
10963   { &hf_gsm_map_ms_supportedCAMELPhases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
10964   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10965   { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
10966   { &hf_gsm_map_ms_offeredCamel4Functionalities, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4Functionalities },
10967   { NULL, 0, 0, 0, NULL }
10968 };
10969
10970 static int
10971 dissect_gsm_map_ms_NoteMM_EventArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10972   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10973                                    gsm_map_ms_NoteMM_EventArg_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventArg);
10974
10975   return offset;
10976 }
10977
10978
10979 static const ber_sequence_t gsm_map_ms_NoteMM_EventRes_sequence[] = {
10980   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10981   { NULL, 0, 0, 0, NULL }
10982 };
10983
10984 static int
10985 dissect_gsm_map_ms_NoteMM_EventRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10986   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10987                                    gsm_map_ms_NoteMM_EventRes_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventRes);
10988
10989   return offset;
10990 }
10991
10992
10993 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
10994
10995
10996
10997 static int
10998 dissect_gsm_map_ch_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10999   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
11000
11001   return offset;
11002 }
11003
11004
11005 static const ber_sequence_t gsm_map_ch_CUG_CheckInfo_sequence[] = {
11006   { &hf_gsm_map_ch_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock },
11007   { &hf_gsm_map_ch_cug_OutgoingAccess, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
11008   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11009   { NULL, 0, 0, 0, NULL }
11010 };
11011
11012 static int
11013 dissect_gsm_map_ch_CUG_CheckInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11014   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11015                                    gsm_map_ch_CUG_CheckInfo_sequence, hf_index, ett_gsm_map_ch_CUG_CheckInfo);
11016
11017   return offset;
11018 }
11019
11020
11021
11022 static int
11023 dissect_gsm_map_ch_NumberOfForwarding(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11024   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11025                                   NULL);
11026
11027   return offset;
11028 }
11029
11030
11031 static const value_string gsm_map_ch_InterrogationType_vals[] = {
11032   {   0, "basicCall" },
11033   {   1, "forwarding" },
11034   { 0, NULL }
11035 };
11036
11037
11038 static int
11039 dissect_gsm_map_ch_InterrogationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11040   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11041                                   NULL);
11042
11043   return offset;
11044 }
11045
11046
11047
11048 static int
11049 dissect_gsm_map_ch_OR_Phase(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11050   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11051                                   NULL);
11052
11053   return offset;
11054 }
11055
11056
11057
11058 int
11059 dissect_gsm_map_ch_CallReferenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11060   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11061                                        NULL);
11062
11063   return offset;
11064 }
11065
11066
11067 static const value_string gsm_map_ch_ForwardingReason_vals[] = {
11068   {   0, "notReachable" },
11069   {   1, "busy" },
11070   {   2, "noReply" },
11071   { 0, NULL }
11072 };
11073
11074
11075 static int
11076 dissect_gsm_map_ch_ForwardingReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11077   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11078                                   NULL);
11079
11080   return offset;
11081 }
11082
11083
11084 static const ber_sequence_t gsm_map_ch_CamelInfo_sequence[] = {
11085   { &hf_gsm_map_ch_supportedCamelPhases, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11086   { &hf_gsm_map_ch_suppress_T_CSI, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
11087   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11088   { &hf_gsm_map_ch_offeredCamel4CSIs, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
11089   { NULL, 0, 0, 0, NULL }
11090 };
11091
11092 static int
11093 dissect_gsm_map_ch_CamelInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11094   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11095                                    gsm_map_ch_CamelInfo_sequence, hf_index, ett_gsm_map_ch_CamelInfo);
11096
11097   return offset;
11098 }
11099
11100
11101
11102 int
11103 dissect_gsm_map_ch_SuppressionOfAnnouncement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11104   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
11105
11106   return offset;
11107 }
11108
11109
11110
11111 static int
11112 dissect_gsm_map_ch_SupportedCCBS_Phase(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11113   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11114                                   NULL);
11115
11116   return offset;
11117 }
11118
11119
11120
11121 static int
11122 dissect_gsm_map_ch_CallDiversionTreatmentIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11123   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11124                                        NULL);
11125
11126   return offset;
11127 }
11128
11129
11130 static const asn_namedbit gsm_map_ch_SuppressMTSS_bits[] = {
11131   {  0, &hf_gsm_map_ch_SuppressMTSS_suppressCUG, -1, -1, "suppressCUG", NULL },
11132   {  1, &hf_gsm_map_ch_SuppressMTSS_suppressCCBS, -1, -1, "suppressCCBS", NULL },
11133   { 0, NULL, 0, 0, NULL, NULL }
11134 };
11135
11136 static int
11137 dissect_gsm_map_ch_SuppressMTSS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11138   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11139                                     gsm_map_ch_SuppressMTSS_bits, hf_index, ett_gsm_map_ch_SuppressMTSS,
11140                                     NULL);
11141
11142   return offset;
11143 }
11144
11145
11146 static const ber_sequence_t gsm_map_ch_SendRoutingInfoArg_sequence[] = {
11147   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11148   { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
11149   { &hf_gsm_map_ch_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding },
11150   { &hf_gsm_map_ch_interrogationType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_InterrogationType },
11151   { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11152   { &hf_gsm_map_ch_or_Capability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_OR_Phase },
11153   { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11154   { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
11155   { &hf_gsm_map_ch_forwardingReason, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingReason },
11156   { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11157   { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11158   { &hf_gsm_map_ch_camelInfo, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelInfo },
11159   { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
11160   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11161   { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
11162   { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11163   { &hf_gsm_map_ch_supportedCCBS_Phase, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SupportedCCBS_Phase },
11164   { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo },
11165   { &hf_gsm_map_ch_istSupportIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator },
11166   { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11167   { &hf_gsm_map_ch_callDiversionTreatmentIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallDiversionTreatmentIndicator },
11168   { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11169   { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11170   { &hf_gsm_map_ch_suppressIncomingCallBarring, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11171   { &hf_gsm_map_ch_gsmSCF_InitiatedCall, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11172   { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11173   { &hf_gsm_map_ch_networkSignalInfo2, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11174   { &hf_gsm_map_ch_suppressMTSS, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressMTSS },
11175   { NULL, 0, 0, 0, NULL }
11176 };
11177
11178 static int
11179 dissect_gsm_map_ch_SendRoutingInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11180   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11181                                    gsm_map_ch_SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoArg);
11182
11183   return offset;
11184 }
11185
11186
11187 static const ber_sequence_t gsm_map_ch_ForwardingData_sequence[] = {
11188   { &hf_gsm_map_ch_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11189   { &hf_gsm_map_ch_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
11190   { &hf_gsm_map_ch_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions },
11191   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11192   { &hf_gsm_map_ch_longForwardedToNumber, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
11193   { NULL, 0, 0, 0, NULL }
11194 };
11195
11196 static int
11197 dissect_gsm_map_ch_ForwardingData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11198   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11199                                    gsm_map_ch_ForwardingData_sequence, hf_index, ett_gsm_map_ch_ForwardingData);
11200
11201   return offset;
11202 }
11203
11204
11205 static const value_string gsm_map_ch_RoutingInfo_vals[] = {
11206   {   0, "roamingNumber" },
11207   {   1, "forwardingData" },
11208   { 0, NULL }
11209 };
11210
11211 static const ber_choice_t gsm_map_ch_RoutingInfo_choice[] = {
11212   {   0, &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11213   {   1, &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData },
11214   { 0, NULL, 0, 0, 0, NULL }
11215 };
11216
11217 static int
11218 dissect_gsm_map_ch_RoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11219   offset = dissect_ber_choice(actx, tree, tvb, offset,
11220                                  gsm_map_ch_RoutingInfo_choice, hf_index, ett_gsm_map_ch_RoutingInfo,
11221                                  NULL);
11222
11223   return offset;
11224 }
11225
11226
11227 static const ber_sequence_t gsm_map_ch_GmscCamelSubscriptionInfo_sequence[] = {
11228   { &hf_gsm_map_ch_t_CSI    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
11229   { &hf_gsm_map_ch_o_CSI    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
11230   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11231   { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
11232   { &hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList },
11233   { &hf_gsm_map_ch_d_csi    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
11234   { NULL, 0, 0, 0, NULL }
11235 };
11236
11237 static int
11238 dissect_gsm_map_ch_GmscCamelSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11239   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11240                                    gsm_map_ch_GmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ch_GmscCamelSubscriptionInfo);
11241
11242   return offset;
11243 }
11244
11245
11246 static const ber_sequence_t gsm_map_ch_CamelRoutingInfo_sequence[] = {
11247   { &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData },
11248   { &hf_gsm_map_ch_gmscCamelSubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_GmscCamelSubscriptionInfo },
11249   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11250   { NULL, 0, 0, 0, NULL }
11251 };
11252
11253 static int
11254 dissect_gsm_map_ch_CamelRoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11255   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11256                                    gsm_map_ch_CamelRoutingInfo_sequence, hf_index, ett_gsm_map_ch_CamelRoutingInfo);
11257
11258   return offset;
11259 }
11260
11261
11262 static const value_string gsm_map_ch_ExtendedRoutingInfo_vals[] = {
11263   {   0, "routingInfo" },
11264   {   1, "camelRoutingInfo" },
11265   { 0, NULL }
11266 };
11267
11268 static const ber_choice_t gsm_map_ch_ExtendedRoutingInfo_choice[] = {
11269   {   0, &hf_gsm_map_ch_routingInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo },
11270   {   1, &hf_gsm_map_ch_camelRoutingInfo, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelRoutingInfo },
11271   { 0, NULL, 0, 0, 0, NULL }
11272 };
11273
11274 static int
11275 dissect_gsm_map_ch_ExtendedRoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11276   offset = dissect_ber_choice(actx, tree, tvb, offset,
11277                                  gsm_map_ch_ExtendedRoutingInfo_choice, hf_index, ett_gsm_map_ch_ExtendedRoutingInfo,
11278                                  NULL);
11279
11280   return offset;
11281 }
11282
11283
11284 static const ber_sequence_t gsm_map_ch_CCBS_Indicators_sequence[] = {
11285   { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11286   { &hf_gsm_map_ch_keepCCBS_CallIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11287   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11288   { NULL, 0, 0, 0, NULL }
11289 };
11290
11291 static int
11292 dissect_gsm_map_ch_CCBS_Indicators(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11293   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11294                                    gsm_map_ch_CCBS_Indicators_sequence, hf_index, ett_gsm_map_ch_CCBS_Indicators);
11295
11296   return offset;
11297 }
11298
11299
11300 static const asn_namedbit gsm_map_ch_AllowedServices_bits[] = {
11301   {  0, &hf_gsm_map_ch_AllowedServices_firstServiceAllowed, -1, -1, "firstServiceAllowed", NULL },
11302   {  1, &hf_gsm_map_ch_AllowedServices_secondServiceAllowed, -1, -1, "secondServiceAllowed", NULL },
11303   { 0, NULL, 0, 0, NULL, NULL }
11304 };
11305
11306 static int
11307 dissect_gsm_map_ch_AllowedServices(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11308   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11309                                     gsm_map_ch_AllowedServices_bits, hf_index, ett_gsm_map_ch_AllowedServices,
11310                                     NULL);
11311
11312   return offset;
11313 }
11314
11315
11316 static const value_string gsm_map_ch_UnavailabilityCause_vals[] = {
11317   {   1, "bearerServiceNotProvisioned" },
11318   {   2, "teleserviceNotProvisioned" },
11319   {   3, "absentSubscriber" },
11320   {   4, "busySubscriber" },
11321   {   5, "callBarred" },
11322   {   6, "cug-Reject" },
11323   { 0, NULL }
11324 };
11325
11326
11327 static int
11328 dissect_gsm_map_ch_UnavailabilityCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11329   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11330                                   NULL);
11331
11332   return offset;
11333 }
11334
11335
11336 static const ber_sequence_t gsm_map_ch_SendRoutingInfoRes_U_sequence[] = {
11337   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11338   { &hf_gsm_map_ch_extendedRoutingInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ch_ExtendedRoutingInfo },
11339   { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
11340   { &hf_gsm_map_ch_cugSubscriptionFlag, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11341   { &hf_gsm_map_ch_subscriberInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberInfo },
11342   { &hf_gsm_map_ch_ss_List  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
11343   { &hf_gsm_map_ch_basicService, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11344   { &hf_gsm_map_ch_forwardingInterrogationRequired, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11345   { &hf_gsm_map_ch_vmsc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11346   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11347   { &hf_gsm_map_ch_naea_PreferredCI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI },
11348   { &hf_gsm_map_ch_ccbs_Indicators, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_Indicators },
11349   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11350   { &hf_gsm_map_ch_numberPortabilityStatus, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus },
11351   { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
11352   { &hf_gsm_map_ch_supportedCamelPhasesInVMSC, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11353   { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
11354   { &hf_gsm_map_ch_routingInfo2, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ch_RoutingInfo },
11355   { &hf_gsm_map_ch_ss_List2 , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
11356   { &hf_gsm_map_ch_basicService2, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11357   { &hf_gsm_map_ch_allowedServices, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_AllowedServices },
11358   { &hf_gsm_map_ch_unavailabilityCause, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UnavailabilityCause },
11359   { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11360   { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11361   { NULL, 0, 0, 0, NULL }
11362 };
11363
11364 static int
11365 dissect_gsm_map_ch_SendRoutingInfoRes_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11366   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11367                                    gsm_map_ch_SendRoutingInfoRes_U_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoRes_U);
11368
11369   return offset;
11370 }
11371
11372
11373
11374 static int
11375 dissect_gsm_map_ch_SendRoutingInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11376   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
11377                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ch_SendRoutingInfoRes_U);
11378
11379   return offset;
11380 }
11381
11382
11383 static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberArg_sequence[] = {
11384   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11385   { &hf_gsm_map_ch_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11386   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11387   { &hf_gsm_map_ch_lmsi     , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
11388   { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11389   { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11390   { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
11391   { &hf_gsm_map_ch_gmsc_Address, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11392   { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
11393   { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11394   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11395   { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
11396   { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11397   { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11398   { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo },
11399   { &hf_gsm_map_ch_orNotSupportedInGMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11400   { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11401   { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11402   { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11403   { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
11404   { NULL, 0, 0, 0, NULL }
11405 };
11406
11407 static int
11408 dissect_gsm_map_ch_ProvideRoamingNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11409   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11410                                    gsm_map_ch_ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberArg);
11411
11412   return offset;
11413 }
11414
11415
11416 static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberRes_sequence[] = {
11417   { &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11418   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11419   { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
11420   { NULL, 0, 0, 0, NULL }
11421 };
11422
11423 static int
11424 dissect_gsm_map_ch_ProvideRoamingNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11425   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11426                                    gsm_map_ch_ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberRes);
11427
11428   return offset;
11429 }
11430
11431
11432
11433 static int
11434 dissect_gsm_map_ch_UUIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11435   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11436                                        NULL);
11437
11438   return offset;
11439 }
11440
11441
11442
11443 static int
11444 dissect_gsm_map_ch_UUI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11445   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11446                                        NULL);
11447
11448   return offset;
11449 }
11450
11451
11452 static const ber_sequence_t gsm_map_ch_UU_Data_sequence[] = {
11453   { &hf_gsm_map_ch_uuIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUIndicator },
11454   { &hf_gsm_map_ch_uui      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUI },
11455   { &hf_gsm_map_ch_uusCFInteraction, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11456   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11457   { NULL, 0, 0, 0, NULL }
11458 };
11459
11460 int
11461 dissect_gsm_map_ch_UU_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11462   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11463                                    gsm_map_ch_UU_Data_sequence, hf_index, ett_gsm_map_ch_UU_Data);
11464
11465   return offset;
11466 }
11467
11468
11469 static const ber_sequence_t gsm_map_ch_ResumeCallHandlingArg_sequence[] = {
11470   { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
11471   { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11472   { &hf_gsm_map_ch_forwardingData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingData },
11473   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11474   { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
11475   { &hf_gsm_map_ch_o_CSI    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
11476   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11477   { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11478   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11479   { &hf_gsm_map_ch_uu_Data  , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UU_Data },
11480   { &hf_gsm_map_ch_allInformationSent, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11481   { &hf_gsm_map_ch_d_csi    , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
11482   { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
11483   { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11484   { NULL, 0, 0, 0, NULL }
11485 };
11486
11487 static int
11488 dissect_gsm_map_ch_ResumeCallHandlingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11489   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11490                                    gsm_map_ch_ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingArg);
11491
11492   return offset;
11493 }
11494
11495
11496 static const ber_sequence_t gsm_map_ch_ResumeCallHandlingRes_sequence[] = {
11497   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11498   { NULL, 0, 0, 0, NULL }
11499 };
11500
11501 static int
11502 dissect_gsm_map_ch_ResumeCallHandlingRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11503   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11504                                    gsm_map_ch_ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingRes);
11505
11506   return offset;
11507 }
11508
11509
11510 static const value_string gsm_map_ch_ReportingState_vals[] = {
11511   {   0, "stopMonitoring" },
11512   {   1, "startMonitoring" },
11513   { 0, NULL }
11514 };
11515
11516
11517 static int
11518 dissect_gsm_map_ch_ReportingState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11519   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11520                                   NULL);
11521
11522   return offset;
11523 }
11524
11525
11526 static const ber_sequence_t gsm_map_ch_SetReportingStateArg_sequence[] = {
11527   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11528   { &hf_gsm_map_ch_lmsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
11529   { &hf_gsm_map_ch_ccbs_Monitoring, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ReportingState },
11530   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11531   { NULL, 0, 0, 0, NULL }
11532 };
11533
11534 static int
11535 dissect_gsm_map_ch_SetReportingStateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11536   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11537                                    gsm_map_ch_SetReportingStateArg_sequence, hf_index, ett_gsm_map_ch_SetReportingStateArg);
11538
11539   return offset;
11540 }
11541
11542
11543 static const value_string gsm_map_ch_CCBS_SubscriberStatus_vals[] = {
11544   {   0, "ccbsNotIdle" },
11545   {   1, "ccbsIdle" },
11546   {   2, "ccbsNotReachable" },
11547   { 0, NULL }
11548 };
11549
11550
11551 static int
11552 dissect_gsm_map_ch_CCBS_SubscriberStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11553   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11554                                   NULL);
11555
11556   return offset;
11557 }
11558
11559
11560 static const ber_sequence_t gsm_map_ch_SetReportingStateRes_sequence[] = {
11561   { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus },
11562   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11563   { NULL, 0, 0, 0, NULL }
11564 };
11565
11566 static int
11567 dissect_gsm_map_ch_SetReportingStateRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11568   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11569                                    gsm_map_ch_SetReportingStateRes_sequence, hf_index, ett_gsm_map_ch_SetReportingStateRes);
11570
11571   return offset;
11572 }
11573
11574
11575 static const ber_sequence_t gsm_map_ch_EventReportData_sequence[] = {
11576   { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus },
11577   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11578   { NULL, 0, 0, 0, NULL }
11579 };
11580
11581 static int
11582 dissect_gsm_map_ch_EventReportData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11583   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11584                                    gsm_map_ch_EventReportData_sequence, hf_index, ett_gsm_map_ch_EventReportData);
11585
11586   return offset;
11587 }
11588
11589
11590 static const value_string gsm_map_ch_MonitoringMode_vals[] = {
11591   {   0, "a-side" },
11592   {   1, "b-side" },
11593   { 0, NULL }
11594 };
11595
11596
11597 static int
11598 dissect_gsm_map_ch_MonitoringMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11599   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11600                                   NULL);
11601
11602   return offset;
11603 }
11604
11605
11606 static const value_string gsm_map_ch_CallOutcome_vals[] = {
11607   {   0, "success" },
11608   {   1, "failure" },
11609   {   2, "busy" },
11610   { 0, NULL }
11611 };
11612
11613
11614 static int
11615 dissect_gsm_map_ch_CallOutcome(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11616   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11617                                   NULL);
11618
11619   return offset;
11620 }
11621
11622
11623 static const ber_sequence_t gsm_map_ch_CallReportData_sequence[] = {
11624   { &hf_gsm_map_ch_monitoringMode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_MonitoringMode },
11625   { &hf_gsm_map_ch_callOutcome, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallOutcome },
11626   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11627   { NULL, 0, 0, 0, NULL }
11628 };
11629
11630 static int
11631 dissect_gsm_map_ch_CallReportData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11632   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11633                                    gsm_map_ch_CallReportData_sequence, hf_index, ett_gsm_map_ch_CallReportData);
11634
11635   return offset;
11636 }
11637
11638
11639 static const ber_sequence_t gsm_map_ch_StatusReportArg_sequence[] = {
11640   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11641   { &hf_gsm_map_ch_eventReportData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_EventReportData },
11642   { &hf_gsm_map_ch_callReportdata, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReportData },
11643   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11644   { NULL, 0, 0, 0, NULL }
11645 };
11646
11647 static int
11648 dissect_gsm_map_ch_StatusReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11649   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11650                                    gsm_map_ch_StatusReportArg_sequence, hf_index, ett_gsm_map_ch_StatusReportArg);
11651
11652   return offset;
11653 }
11654
11655
11656 static const ber_sequence_t gsm_map_ch_StatusReportRes_sequence[] = {
11657   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11658   { NULL, 0, 0, 0, NULL }
11659 };
11660
11661 static int
11662 dissect_gsm_map_ch_StatusReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11663   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11664                                    gsm_map_ch_StatusReportRes_sequence, hf_index, ett_gsm_map_ch_StatusReportRes);
11665
11666   return offset;
11667 }
11668
11669
11670 static const ber_sequence_t gsm_map_ch_RemoteUserFreeArg_sequence[] = {
11671   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11672   { &hf_gsm_map_ch_callInfo , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11673   { &hf_gsm_map_ch_ccbs_Feature, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
11674   { &hf_gsm_map_ch_translatedB_Number, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11675   { &hf_gsm_map_ch_replaceB_Number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11676   { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
11677   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11678   { NULL, 0, 0, 0, NULL }
11679 };
11680
11681 static int
11682 dissect_gsm_map_ch_RemoteUserFreeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11683   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11684                                    gsm_map_ch_RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeArg);
11685
11686   return offset;
11687 }
11688
11689
11690 static const value_string gsm_map_ch_RUF_Outcome_vals[] = {
11691   {   0, "accepted" },
11692   {   1, "rejected" },
11693   {   2, "noResponseFromFreeMS" },
11694   {   3, "noResponseFromBusyMS" },
11695   {   4, "udubFromFreeMS" },
11696   {   5, "udubFromBusyMS" },
11697   { 0, NULL }
11698 };
11699
11700
11701 static int
11702 dissect_gsm_map_ch_RUF_Outcome(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11703   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11704                                   NULL);
11705
11706   return offset;
11707 }
11708
11709
11710 static const ber_sequence_t gsm_map_ch_RemoteUserFreeRes_sequence[] = {
11711   { &hf_gsm_map_ch_ruf_Outcome, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_RUF_Outcome },
11712   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11713   { NULL, 0, 0, 0, NULL }
11714 };
11715
11716 static int
11717 dissect_gsm_map_ch_RemoteUserFreeRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11718   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11719                                    gsm_map_ch_RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeRes);
11720
11721   return offset;
11722 }
11723
11724
11725 static const ber_sequence_t gsm_map_ch_IST_AlertArg_sequence[] = {
11726   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11727   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11728   { NULL, 0, 0, 0, NULL }
11729 };
11730
11731 static int
11732 dissect_gsm_map_ch_IST_AlertArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11733   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11734                                    gsm_map_ch_IST_AlertArg_sequence, hf_index, ett_gsm_map_ch_IST_AlertArg);
11735
11736   return offset;
11737 }
11738
11739
11740 static const value_string gsm_map_ch_CallTerminationIndicator_vals[] = {
11741   {   0, "terminateCallActivityReferred" },
11742   {   1, "terminateAllCallActivities" },
11743   { 0, NULL }
11744 };
11745
11746
11747 static int
11748 dissect_gsm_map_ch_CallTerminationIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11749   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11750                                   NULL);
11751
11752   return offset;
11753 }
11754
11755
11756 static const ber_sequence_t gsm_map_ch_IST_AlertRes_sequence[] = {
11757   { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
11758   { &hf_gsm_map_ch_istInformationWithdraw, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11759   { &hf_gsm_map_ch_callTerminationIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallTerminationIndicator },
11760   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11761   { NULL, 0, 0, 0, NULL }
11762 };
11763
11764 static int
11765 dissect_gsm_map_ch_IST_AlertRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11766   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11767                                    gsm_map_ch_IST_AlertRes_sequence, hf_index, ett_gsm_map_ch_IST_AlertRes);
11768
11769   return offset;
11770 }
11771
11772
11773 static const ber_sequence_t gsm_map_ch_IST_CommandArg_sequence[] = {
11774   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11775   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11776   { NULL, 0, 0, 0, NULL }
11777 };
11778
11779 static int
11780 dissect_gsm_map_ch_IST_CommandArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11781   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11782                                    gsm_map_ch_IST_CommandArg_sequence, hf_index, ett_gsm_map_ch_IST_CommandArg);
11783
11784   return offset;
11785 }
11786
11787
11788 static const ber_sequence_t gsm_map_ch_IST_CommandRes_sequence[] = {
11789   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11790   { NULL, 0, 0, 0, NULL }
11791 };
11792
11793 static int
11794 dissect_gsm_map_ch_IST_CommandRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11795   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11796                                    gsm_map_ch_IST_CommandRes_sequence, hf_index, ett_gsm_map_ch_IST_CommandRes);
11797
11798   return offset;
11799 }
11800
11801
11802 static const ber_sequence_t gsm_map_ch_ReleaseResourcesArg_sequence[] = {
11803   { &hf_gsm_map_ch_msrn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11804   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11805   { NULL, 0, 0, 0, NULL }
11806 };
11807
11808 static int
11809 dissect_gsm_map_ch_ReleaseResourcesArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11810   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11811                                    gsm_map_ch_ReleaseResourcesArg_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesArg);
11812
11813   return offset;
11814 }
11815
11816
11817 static const ber_sequence_t gsm_map_ch_ReleaseResourcesRes_sequence[] = {
11818   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11819   { NULL, 0, 0, 0, NULL }
11820 };
11821
11822 static int
11823 dissect_gsm_map_ch_ReleaseResourcesRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11824   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11825                                    gsm_map_ch_ReleaseResourcesRes_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesRes);
11826
11827   return offset;
11828 }
11829
11830
11831 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
11832
11833
11834 static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Arg_sequence[] = {
11835   { &hf_gsm_map_lcs_mlcNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11836   { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
11837   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11838   { NULL, 0, 0, 0, NULL }
11839 };
11840
11841 static int
11842 dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11843   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11844                                    gsm_map_lcs_RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Arg);
11845
11846   return offset;
11847 }
11848
11849
11850
11851 static int
11852 dissect_gsm_map_lcs_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11853   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
11854
11855   return offset;
11856 }
11857
11858
11859 static const ber_sequence_t gsm_map_lcs_LCSLocationInfo_sequence[] = {
11860   { &hf_gsm_map_lcs_networkNode_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11861   { &hf_gsm_map_lcs_lmsi    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
11862   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11863   { &hf_gsm_map_lcs_gprsNodeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
11864   { &hf_gsm_map_lcs_additional_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_Additional_Number },
11865   { &hf_gsm_map_lcs_supportedLCS_CapabilitySets, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
11866   { &hf_gsm_map_lcs_additional_LCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
11867   { NULL, 0, 0, 0, NULL }
11868 };
11869
11870 static int
11871 dissect_gsm_map_lcs_LCSLocationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11872   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11873                                    gsm_map_lcs_LCSLocationInfo_sequence, hf_index, ett_gsm_map_lcs_LCSLocationInfo);
11874
11875   return offset;
11876 }
11877
11878
11879 static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Res_sequence[] = {
11880   { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
11881   { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo },
11882   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11883   { &hf_gsm_map_lcs_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
11884   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
11885   { &hf_gsm_map_lcs_ppr_Address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
11886   { &hf_gsm_map_lcs_additional_v_gmlc_Address, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
11887   { NULL, 0, 0, 0, NULL }
11888 };
11889
11890 static int
11891 dissect_gsm_map_lcs_RoutingInfoForLCS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11892   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11893                                    gsm_map_lcs_RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Res);
11894
11895   return offset;
11896 }
11897
11898
11899 static const value_string gsm_map_lcs_LocationEstimateType_vals[] = {
11900   {   0, "currentLocation" },
11901   {   1, "currentOrLastKnownLocation" },
11902   {   2, "initialLocation" },
11903   {   3, "activateDeferredLocation" },
11904   {   4, "cancelDeferredLocation" },
11905   {   5, "notificationVerificationOnly" },
11906   { 0, NULL }
11907 };
11908
11909
11910 static int
11911 dissect_gsm_map_lcs_LocationEstimateType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11912   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11913                                   NULL);
11914
11915   return offset;
11916 }
11917
11918
11919 static const asn_namedbit gsm_map_lcs_DeferredLocationEventType_bits[] = {
11920   {  0, &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable, -1, -1, "msAvailable", NULL },
11921   {  1, &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea, -1, -1, "enteringIntoArea", NULL },
11922   {  2, &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea, -1, -1, "leavingFromArea", NULL },
11923   {  3, &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea, -1, -1, "beingInsideArea", NULL },
11924   {  4, &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR, -1, -1, "periodicLDR", NULL },
11925   { 0, NULL, 0, 0, NULL, NULL }
11926 };
11927
11928 int
11929 dissect_gsm_map_lcs_DeferredLocationEventType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11930   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11931                                     gsm_map_lcs_DeferredLocationEventType_bits, hf_index, ett_gsm_map_lcs_DeferredLocationEventType,
11932                                     NULL);
11933
11934   return offset;
11935 }
11936
11937
11938 static const ber_sequence_t gsm_map_lcs_LocationType_sequence[] = {
11939   { &hf_gsm_map_lcs_locationEstimateType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationEstimateType },
11940   { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
11941   { NULL, 0, 0, 0, NULL }
11942 };
11943
11944 int
11945 dissect_gsm_map_lcs_LocationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11946   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11947                                    gsm_map_lcs_LocationType_sequence, hf_index, ett_gsm_map_lcs_LocationType);
11948
11949   return offset;
11950 }
11951
11952
11953 static const value_string gsm_map_lcs_LCSClientType_vals[] = {
11954   {   0, "emergencyServices" },
11955   {   1, "valueAddedServices" },
11956   {   2, "plmnOperatorServices" },
11957   {   3, "lawfulInterceptServices" },
11958   { 0, NULL }
11959 };
11960
11961
11962 static int
11963 dissect_gsm_map_lcs_LCSClientType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11964   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11965                                   NULL);
11966
11967   return offset;
11968 }
11969
11970
11971
11972 static int
11973 dissect_gsm_map_lcs_NameString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11974   offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
11975
11976   return offset;
11977 }
11978
11979
11980 static const value_string gsm_map_lcs_LCS_FormatIndicator_vals[] = {
11981   {   0, "logicalName" },
11982   {   1, "e-mailAddress" },
11983   {   2, "msisdn" },
11984   {   3, "url" },
11985   {   4, "sipUrl" },
11986   { 0, NULL }
11987 };
11988
11989
11990 static int
11991 dissect_gsm_map_lcs_LCS_FormatIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11992   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11993                                   NULL);
11994
11995   return offset;
11996 }
11997
11998
11999 static const ber_sequence_t gsm_map_lcs_LCSClientName_sequence[] = {
12000   { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
12001   { &hf_gsm_map_lcs_nameString, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NameString },
12002   { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator },
12003   { NULL, 0, 0, 0, NULL }
12004 };
12005
12006 int
12007 dissect_gsm_map_lcs_LCSClientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12008   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12009                                    gsm_map_lcs_LCSClientName_sequence, hf_index, ett_gsm_map_lcs_LCSClientName);
12010
12011   return offset;
12012 }
12013
12014
12015
12016 static int
12017 dissect_gsm_map_lcs_RequestorIDString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12018   offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
12019
12020   return offset;
12021 }
12022
12023
12024 static const ber_sequence_t gsm_map_lcs_LCSRequestorID_sequence[] = {
12025   { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
12026   { &hf_gsm_map_lcs_requestorIDString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RequestorIDString },
12027   { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator },
12028   { NULL, 0, 0, 0, NULL }
12029 };
12030
12031 int
12032 dissect_gsm_map_lcs_LCSRequestorID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12033   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12034                                    gsm_map_lcs_LCSRequestorID_sequence, hf_index, ett_gsm_map_lcs_LCSRequestorID);
12035
12036   return offset;
12037 }
12038
12039
12040 static const ber_sequence_t gsm_map_lcs_LCS_ClientID_sequence[] = {
12041   { &hf_gsm_map_lcs_lcsClientType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientType },
12042   { &hf_gsm_map_lcs_lcsClientExternalID, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
12043   { &hf_gsm_map_lcs_lcsClientDialedByMS, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
12044   { &hf_gsm_map_lcs_lcsClientInternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientInternalID },
12045   { &hf_gsm_map_lcs_lcsClientName, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName },
12046   { &hf_gsm_map_lcs_lcsAPN  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
12047   { &hf_gsm_map_lcs_lcsRequestorID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID },
12048   { NULL, 0, 0, 0, NULL }
12049 };
12050
12051 static int
12052 dissect_gsm_map_lcs_LCS_ClientID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12053   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12054                                    gsm_map_lcs_LCS_ClientID_sequence, hf_index, ett_gsm_map_lcs_LCS_ClientID);
12055
12056   return offset;
12057 }
12058
12059
12060
12061 static int
12062 dissect_gsm_map_lcs_LCS_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12063   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12064                                        NULL);
12065
12066   return offset;
12067 }
12068
12069
12070
12071 static int
12072 dissect_gsm_map_lcs_Horizontal_Accuracy(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12073   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12074                                        NULL);
12075
12076   return offset;
12077 }
12078
12079
12080
12081 static int
12082 dissect_gsm_map_lcs_Vertical_Accuracy(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12083   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12084                                        NULL);
12085
12086   return offset;
12087 }
12088
12089
12090 static const value_string gsm_map_lcs_ResponseTimeCategory_vals[] = {
12091   {   0, "lowdelay" },
12092   {   1, "delaytolerant" },
12093   { 0, NULL }
12094 };
12095
12096
12097 static int
12098 dissect_gsm_map_lcs_ResponseTimeCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12099   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12100                                   NULL);
12101
12102   return offset;
12103 }
12104
12105
12106 static const ber_sequence_t gsm_map_lcs_ResponseTime_sequence[] = {
12107   { &hf_gsm_map_lcs_responseTimeCategory, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ResponseTimeCategory },
12108   { NULL, 0, 0, 0, NULL }
12109 };
12110
12111 static int
12112 dissect_gsm_map_lcs_ResponseTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12113   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12114                                    gsm_map_lcs_ResponseTime_sequence, hf_index, ett_gsm_map_lcs_ResponseTime);
12115
12116   return offset;
12117 }
12118
12119
12120 static const ber_sequence_t gsm_map_lcs_LCS_QoS_sequence[] = {
12121   { &hf_gsm_map_lcs_horizontal_accuracy, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Horizontal_Accuracy },
12122   { &hf_gsm_map_lcs_verticalCoordinateRequest, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12123   { &hf_gsm_map_lcs_vertical_accuracy, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Vertical_Accuracy },
12124   { &hf_gsm_map_lcs_responseTime, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ResponseTime },
12125   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12126   { &hf_gsm_map_lcs_velocityRequest, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12127   { NULL, 0, 0, 0, NULL }
12128 };
12129
12130 int
12131 dissect_gsm_map_lcs_LCS_QoS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12132   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12133                                    gsm_map_lcs_LCS_QoS_sequence, hf_index, ett_gsm_map_lcs_LCS_QoS);
12134
12135   return offset;
12136 }
12137
12138
12139 static const asn_namedbit gsm_map_lcs_SupportedGADShapes_bits[] = {
12140   {  0, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint, -1, -1, "ellipsoidPoint", NULL },
12141   {  1, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle, -1, -1, "ellipsoidPointWithUncertaintyCircle", NULL },
12142   {  2, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse, -1, -1, "ellipsoidPointWithUncertaintyEllipse", NULL },
12143   {  3, &hf_gsm_map_lcs_SupportedGADShapes_polygon, -1, -1, "polygon", NULL },
12144   {  4, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude, -1, -1, "ellipsoidPointWithAltitude", NULL },
12145   {  5, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid, -1, -1, "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", NULL },
12146   {  6, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc, -1, -1, "ellipsoidArc", NULL },
12147   { 0, NULL, 0, 0, NULL, NULL }
12148 };
12149
12150 int
12151 dissect_gsm_map_lcs_SupportedGADShapes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12152   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
12153                                     gsm_map_lcs_SupportedGADShapes_bits, hf_index, ett_gsm_map_lcs_SupportedGADShapes,
12154                                     NULL);
12155
12156   return offset;
12157 }
12158
12159
12160
12161 int
12162 dissect_gsm_map_lcs_LCS_ReferenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12163   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12164                                        NULL);
12165
12166   return offset;
12167 }
12168
12169
12170
12171 static int
12172 dissect_gsm_map_lcs_LCSCodewordString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12173   offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
12174
12175   return offset;
12176 }
12177
12178
12179 static const ber_sequence_t gsm_map_lcs_LCSCodeword_sequence[] = {
12180   { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
12181   { &hf_gsm_map_lcs_lcsCodewordString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodewordString },
12182   { NULL, 0, 0, 0, NULL }
12183 };
12184
12185 int
12186 dissect_gsm_map_lcs_LCSCodeword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12187   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12188                                    gsm_map_lcs_LCSCodeword_sequence, hf_index, ett_gsm_map_lcs_LCSCodeword);
12189
12190   return offset;
12191 }
12192
12193
12194 static const value_string gsm_map_lcs_PrivacyCheckRelatedAction_vals[] = {
12195   {   0, "allowedWithoutNotification" },
12196   {   1, "allowedWithNotification" },
12197   {   2, "allowedIfNoResponse" },
12198   {   3, "restrictedIfNoResponse" },
12199   {   4, "notAllowed" },
12200   { 0, NULL }
12201 };
12202
12203
12204 static int
12205 dissect_gsm_map_lcs_PrivacyCheckRelatedAction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12206   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12207                                   NULL);
12208
12209   return offset;
12210 }
12211
12212
12213 static const ber_sequence_t gsm_map_lcs_LCS_PrivacyCheck_sequence[] = {
12214   { &hf_gsm_map_lcs_callSessionUnrelated, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction },
12215   { &hf_gsm_map_lcs_callSessionRelated, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction },
12216   { NULL, 0, 0, 0, NULL }
12217 };
12218
12219 static int
12220 dissect_gsm_map_lcs_LCS_PrivacyCheck(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12221   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12222                                    gsm_map_lcs_LCS_PrivacyCheck_sequence, hf_index, ett_gsm_map_lcs_LCS_PrivacyCheck);
12223
12224   return offset;
12225 }
12226
12227
12228 static const value_string gsm_map_lcs_AreaType_vals[] = {
12229   {   0, "countryCode" },
12230   {   1, "plmnId" },
12231   {   2, "locationAreaId" },
12232   {   3, "routingAreaId" },
12233   {   4, "cellGlobalId" },
12234   {   5, "utranCellId" },
12235   { 0, NULL }
12236 };
12237
12238
12239 static int
12240 dissect_gsm_map_lcs_AreaType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12241   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12242                                   NULL);
12243
12244   return offset;
12245 }
12246
12247
12248
12249 static int
12250 dissect_gsm_map_lcs_AreaIdentification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12251   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12252                                        NULL);
12253
12254   return offset;
12255 }
12256
12257
12258 static const ber_sequence_t gsm_map_lcs_Area_sequence[] = {
12259   { &hf_gsm_map_lcs_areaType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaType },
12260   { &hf_gsm_map_lcs_areaIdentification, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaIdentification },
12261   { NULL, 0, 0, 0, NULL }
12262 };
12263
12264 static int
12265 dissect_gsm_map_lcs_Area(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12266   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12267                                    gsm_map_lcs_Area_sequence, hf_index, ett_gsm_map_lcs_Area);
12268
12269   return offset;
12270 }
12271
12272
12273 static const ber_sequence_t gsm_map_lcs_AreaList_sequence_of[1] = {
12274   { &hf_gsm_map_lcs_AreaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Area },
12275 };
12276
12277 static int
12278 dissect_gsm_map_lcs_AreaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12279   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12280                                       gsm_map_lcs_AreaList_sequence_of, hf_index, ett_gsm_map_lcs_AreaList);
12281
12282   return offset;
12283 }
12284
12285
12286 static const ber_sequence_t gsm_map_lcs_AreaDefinition_sequence[] = {
12287   { &hf_gsm_map_lcs_areaList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaList },
12288   { NULL, 0, 0, 0, NULL }
12289 };
12290
12291 static int
12292 dissect_gsm_map_lcs_AreaDefinition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12293   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12294                                    gsm_map_lcs_AreaDefinition_sequence, hf_index, ett_gsm_map_lcs_AreaDefinition);
12295
12296   return offset;
12297 }
12298
12299
12300 static const value_string gsm_map_lcs_OccurrenceInfo_vals[] = {
12301   {   0, "oneTimeEvent" },
12302   {   1, "multipleTimeEvent" },
12303   { 0, NULL }
12304 };
12305
12306
12307 static int
12308 dissect_gsm_map_lcs_OccurrenceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12309   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12310                                   NULL);
12311
12312   return offset;
12313 }
12314
12315
12316
12317 static int
12318 dissect_gsm_map_lcs_IntervalTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12319   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12320                                   NULL);
12321
12322   return offset;
12323 }
12324
12325
12326 static const ber_sequence_t gsm_map_lcs_AreaEventInfo_sequence[] = {
12327   { &hf_gsm_map_lcs_areaDefinition, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaDefinition },
12328   { &hf_gsm_map_lcs_occurrenceInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_OccurrenceInfo },
12329   { &hf_gsm_map_lcs_intervalTime, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_IntervalTime },
12330   { NULL, 0, 0, 0, NULL }
12331 };
12332
12333 int
12334 dissect_gsm_map_lcs_AreaEventInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12335   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12336                                    gsm_map_lcs_AreaEventInfo_sequence, hf_index, ett_gsm_map_lcs_AreaEventInfo);
12337
12338   return offset;
12339 }
12340
12341
12342
12343 static int
12344 dissect_gsm_map_lcs_ReportingAmount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12345   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12346                                   NULL);
12347
12348   return offset;
12349 }
12350
12351
12352
12353 static int
12354 dissect_gsm_map_lcs_ReportingInterval(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12355   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12356                                   NULL);
12357
12358   return offset;
12359 }
12360
12361
12362 static const ber_sequence_t gsm_map_lcs_PeriodicLDRInfo_sequence[] = {
12363   { &hf_gsm_map_lcs_reportingAmount, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingAmount },
12364   { &hf_gsm_map_lcs_reportingInterval, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingInterval },
12365   { NULL, 0, 0, 0, NULL }
12366 };
12367
12368 static int
12369 dissect_gsm_map_lcs_PeriodicLDRInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12370   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12371                                    gsm_map_lcs_PeriodicLDRInfo_sequence, hf_index, ett_gsm_map_lcs_PeriodicLDRInfo);
12372
12373   return offset;
12374 }
12375
12376
12377 static const value_string gsm_map_lcs_RAN_Technology_vals[] = {
12378   {   0, "gsm" },
12379   {   1, "umts" },
12380   { 0, NULL }
12381 };
12382
12383
12384 static int
12385 dissect_gsm_map_lcs_RAN_Technology(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12386   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12387                                   NULL);
12388
12389   return offset;
12390 }
12391
12392
12393 static const ber_sequence_t gsm_map_lcs_ReportingPLMN_sequence[] = {
12394   { &hf_gsm_map_lcs_plmn_Id , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
12395   { &hf_gsm_map_lcs_ran_Technology, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RAN_Technology },
12396   { &hf_gsm_map_lcs_ran_PeriodicLocationSupport, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12397   { NULL, 0, 0, 0, NULL }
12398 };
12399
12400 static int
12401 dissect_gsm_map_lcs_ReportingPLMN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12402   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12403                                    gsm_map_lcs_ReportingPLMN_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMN);
12404
12405   return offset;
12406 }
12407
12408
12409 static const ber_sequence_t gsm_map_lcs_PLMNList_sequence_of[1] = {
12410   { &hf_gsm_map_lcs_PLMNList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingPLMN },
12411 };
12412
12413 static int
12414 dissect_gsm_map_lcs_PLMNList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12415   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12416                                       gsm_map_lcs_PLMNList_sequence_of, hf_index, ett_gsm_map_lcs_PLMNList);
12417
12418   return offset;
12419 }
12420
12421
12422 static const ber_sequence_t gsm_map_lcs_ReportingPLMNList_sequence[] = {
12423   { &hf_gsm_map_lcs_plmn_ListPrioritized, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12424   { &hf_gsm_map_lcs_plmn_List, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PLMNList },
12425   { NULL, 0, 0, 0, NULL }
12426 };
12427
12428 static int
12429 dissect_gsm_map_lcs_ReportingPLMNList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12430   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12431                                    gsm_map_lcs_ReportingPLMNList_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMNList);
12432
12433   return offset;
12434 }
12435
12436
12437 static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Arg_sequence[] = {
12438   { &hf_gsm_map_lcs_locationType, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LocationType },
12439   { &hf_gsm_map_lcs_mlc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12440   { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ClientID },
12441   { &hf_gsm_map_lcs_privacyOverride, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12442   { &hf_gsm_map_lcs_imsi    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12443   { &hf_gsm_map_lcs_msisdn  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12444   { &hf_gsm_map_lcs_lmsi    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
12445   { &hf_gsm_map_lcs_imei    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
12446   { &hf_gsm_map_lcs_lcs_Priority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_Priority },
12447   { &hf_gsm_map_lcs_lcs_QoS , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
12448   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12449   { &hf_gsm_map_lcs_supportedGADShapes, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
12450   { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
12451   { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
12452   { &hf_gsm_map_lcs_lcsCodeword, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword },
12453   { &hf_gsm_map_lcs_lcs_PrivacyCheck, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_PrivacyCheck },
12454   { &hf_gsm_map_lcs_areaEventInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo },
12455   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12456   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12457   { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
12458   { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
12459   { NULL, 0, 0, 0, NULL }
12460 };
12461
12462 static int
12463 dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12464   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12465                                    gsm_map_lcs_ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Arg);
12466
12467   return offset;
12468 }
12469
12470
12471
12472 int
12473 dissect_gsm_map_lcs_Ext_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12474   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12475                                        NULL);
12476
12477   return offset;
12478 }
12479
12480
12481
12482 int
12483 dissect_gsm_map_lcs_Add_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12484   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12485                                        NULL);
12486
12487   return offset;
12488 }
12489
12490
12491
12492 static int
12493 dissect_gsm_map_lcs_PositioningDataInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12494   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12495                                        NULL);
12496
12497   return offset;
12498 }
12499
12500
12501
12502 static int
12503 dissect_gsm_map_lcs_UtranPositioningDataInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12504   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12505                                        NULL);
12506
12507   return offset;
12508 }
12509
12510
12511 static const value_string gsm_map_lcs_AccuracyFulfilmentIndicator_vals[] = {
12512   {   0, "requestedAccuracyFulfilled" },
12513   {   1, "requestedAccuracyNotFulfilled" },
12514   { 0, NULL }
12515 };
12516
12517
12518 static int
12519 dissect_gsm_map_lcs_AccuracyFulfilmentIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12520   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12521                                   NULL);
12522
12523   return offset;
12524 }
12525
12526
12527
12528 int
12529 dissect_gsm_map_lcs_VelocityEstimate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12530   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12531                                        NULL);
12532
12533   return offset;
12534 }
12535
12536
12537 static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Res_sequence[] = {
12538   { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
12539   { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
12540   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12541   { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
12542   { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12543   { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation },
12544   { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo },
12545   { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
12546   { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12547   { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator },
12548   { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
12549   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12550   { NULL, 0, 0, 0, NULL }
12551 };
12552
12553 static int
12554 dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12555   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12556                                    gsm_map_lcs_ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Res);
12557
12558   return offset;
12559 }
12560
12561
12562 static const value_string gsm_map_lcs_LCS_Event_vals[] = {
12563   {   0, "emergencyCallOrigination" },
12564   {   1, "emergencyCallRelease" },
12565   {   2, "mo-lr" },
12566   {   3, "deferredmt-lrResponse" },
12567   {   4, "deferredmo-lrTTTPInitiation" },
12568   { 0, NULL }
12569 };
12570
12571
12572 static int
12573 dissect_gsm_map_lcs_LCS_Event(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12574   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12575                                   NULL);
12576
12577   return offset;
12578 }
12579
12580
12581 static const value_string gsm_map_lcs_TerminationCause_vals[] = {
12582   {   0, "normal" },
12583   {   1, "errorundefined" },
12584   {   2, "internalTimeout" },
12585   {   3, "congestion" },
12586   {   4, "mt-lrRestart" },
12587   {   5, "privacyViolation" },
12588   {   6, "shapeOfLocationEstimateNotSupported" },
12589   {   7, "subscriberTermination" },
12590   {   8, "uETermination" },
12591   {   9, "networkTermination" },
12592   { 0, NULL }
12593 };
12594
12595
12596 static int
12597 dissect_gsm_map_lcs_TerminationCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12598   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12599                                   NULL);
12600
12601   return offset;
12602 }
12603
12604
12605 static const ber_sequence_t gsm_map_lcs_Deferredmt_lrData_sequence[] = {
12606   { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
12607   { &hf_gsm_map_lcs_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_TerminationCause },
12608   { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo },
12609   { NULL, 0, 0, 0, NULL }
12610 };
12611
12612 static int
12613 dissect_gsm_map_lcs_Deferredmt_lrData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12614   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12615                                    gsm_map_lcs_Deferredmt_lrData_sequence, hf_index, ett_gsm_map_lcs_Deferredmt_lrData);
12616
12617   return offset;
12618 }
12619
12620
12621
12622 static int
12623 dissect_gsm_map_lcs_SequenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12624   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12625                                   NULL);
12626
12627   return offset;
12628 }
12629
12630
12631 static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Arg_sequence[] = {
12632   { &hf_gsm_map_lcs_lcs_Event, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_Event },
12633   { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_ClientID },
12634   { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCSLocationInfo },
12635   { &hf_gsm_map_lcs_msisdn  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12636   { &hf_gsm_map_lcs_imsi    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12637   { &hf_gsm_map_lcs_imei    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
12638   { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12639   { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12640   { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
12641   { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
12642   { &hf_gsm_map_lcs_slr_ArgExtensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_ArgExtensionContainer },
12643   { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
12644   { &hf_gsm_map_lcs_deferredmt_lrData, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Deferredmt_lrData },
12645   { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
12646   { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation },
12647   { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo },
12648   { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
12649   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12650   { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
12651   { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12652   { &hf_gsm_map_lcs_pseudonymIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12653   { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator },
12654   { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
12655   { &hf_gsm_map_lcs_sequenceNumber, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
12656   { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
12657   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12658   { NULL, 0, 0, 0, NULL }
12659 };
12660
12661 static int
12662 dissect_gsm_map_lcs_SubscriberLocationReport_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12663   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12664                                    gsm_map_lcs_SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Arg);
12665
12666   return offset;
12667 }
12668
12669
12670 static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Res_sequence[] = {
12671   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12672   { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12673   { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12674   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12675   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12676   { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
12677   { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
12678   { NULL, 0, 0, 0, NULL }
12679 };
12680
12681 static int
12682 dissect_gsm_map_lcs_SubscriberLocationReport_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12683   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12684                                    gsm_map_lcs_SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Res);
12685
12686   return offset;
12687 }
12688
12689
12690 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
12691
12692
12693
12694 static int
12695 dissect_gsm_map_gr_CODEC_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12696   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12697                                        NULL);
12698
12699   return offset;
12700 }
12701
12702
12703
12704 static int
12705 dissect_gsm_map_gr_CipheringAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12706   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12707                                        NULL);
12708
12709   return offset;
12710 }
12711
12712
12713
12714 static int
12715 dissect_gsm_map_gr_GroupKeyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12716   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12717                                   NULL);
12718
12719   return offset;
12720 }
12721
12722
12723
12724 static int
12725 dissect_gsm_map_gr_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12726   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
12727
12728   return offset;
12729 }
12730
12731
12732
12733 static int
12734 dissect_gsm_map_gr_VSTK(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12735   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12736                                        NULL);
12737
12738   return offset;
12739 }
12740
12741
12742
12743 static int
12744 dissect_gsm_map_gr_VSTK_RAND(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12745   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12746                                        NULL);
12747
12748   return offset;
12749 }
12750
12751
12752 static const ber_sequence_t gsm_map_gr_PrepareGroupCallArg_sequence[] = {
12753   { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
12754   { &hf_gsm_map_gr_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference },
12755   { &hf_gsm_map_gr_codec_Info, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CODEC_Info },
12756   { &hf_gsm_map_gr_cipheringAlgorithm, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CipheringAlgorithm },
12757   { &hf_gsm_map_gr_groupKeyNumber_Vk_Id, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_GroupKeyNumber },
12758   { &hf_gsm_map_gr_groupKey , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc },
12759   { &hf_gsm_map_gr_priority , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
12760   { &hf_gsm_map_gr_uplinkFree, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
12761   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12762   { &hf_gsm_map_gr_vstk     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK },
12763   { &hf_gsm_map_gr_vstk_rand, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK_RAND },
12764   { NULL, 0, 0, 0, NULL }
12765 };
12766
12767 static int
12768 dissect_gsm_map_gr_PrepareGroupCallArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12769   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12770                                    gsm_map_gr_PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallArg);
12771
12772   return offset;
12773 }
12774
12775
12776 static const ber_sequence_t gsm_map_gr_PrepareGroupCallRes_sequence[] = {
12777   { &hf_gsm_map_gr_groupCallNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12778   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12779   { NULL, 0, 0, 0, NULL }
12780 };
12781
12782 static int
12783 dissect_gsm_map_gr_PrepareGroupCallRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12784   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12785                                    gsm_map_gr_PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallRes);
12786
12787   return offset;
12788 }
12789
12790
12791 static const value_string gsm_map_gr_TalkerPriority_vals[] = {
12792   {   0, "normal" },
12793   {   1, "privileged" },
12794   {   2, "emergency" },
12795   { 0, NULL }
12796 };
12797
12798
12799 static int
12800 dissect_gsm_map_gr_TalkerPriority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12801   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12802                                   NULL);
12803
12804   return offset;
12805 }
12806
12807
12808 static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalArg_sequence[] = {
12809   { &hf_gsm_map_gr_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
12810   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12811   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
12812   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
12813   { NULL, 0, 0, 0, NULL }
12814 };
12815
12816 static int
12817 dissect_gsm_map_gr_SendGroupCallEndSignalArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12818   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12819                                    gsm_map_gr_SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalArg);
12820
12821   return offset;
12822 }
12823
12824
12825 static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalRes_sequence[] = {
12826   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12827   { NULL, 0, 0, 0, NULL }
12828 };
12829
12830 static int
12831 dissect_gsm_map_gr_SendGroupCallEndSignalRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12832   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12833                                    gsm_map_gr_SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalRes);
12834
12835   return offset;
12836 }
12837
12838
12839 static const ber_sequence_t gsm_map_gr_StateAttributes_sequence[] = {
12840   { &hf_gsm_map_gr_downlinkAttached, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
12841   { &hf_gsm_map_gr_uplinkAttached, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
12842   { &hf_gsm_map_gr_dualCommunication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
12843   { &hf_gsm_map_gr_callOriginator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
12844   { NULL, 0, 0, 0, NULL }
12845 };
12846
12847 static int
12848 dissect_gsm_map_gr_StateAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12849   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12850                                    gsm_map_gr_StateAttributes_sequence, hf_index, ett_gsm_map_gr_StateAttributes);
12851
12852   return offset;
12853 }
12854
12855
12856 static const ber_sequence_t gsm_map_gr_ForwardGroupCallSignallingArg_sequence[] = {
12857   { &hf_gsm_map_gr_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
12858   { &hf_gsm_map_gr_uplinkRequestAck, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
12859   { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
12860   { &hf_gsm_map_gr_uplinkRejectCommand, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
12861   { &hf_gsm_map_gr_uplinkSeizedCommand, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
12862   { &hf_gsm_map_gr_uplinkReleaseCommand, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
12863   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12864   { &hf_gsm_map_gr_stateAttributes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_StateAttributes },
12865   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
12866   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
12867   { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
12868   { &hf_gsm_map_gr_sm_RP_UI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
12869   { &hf_gsm_map_gr_notificationData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
12870   { NULL, 0, 0, 0, NULL }
12871 };
12872
12873 static int
12874 dissect_gsm_map_gr_ForwardGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12875   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12876                                    gsm_map_gr_ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ForwardGroupCallSignallingArg);
12877
12878   return offset;
12879 }
12880
12881
12882 static const ber_sequence_t gsm_map_gr_ProcessGroupCallSignallingArg_sequence[] = {
12883   { &hf_gsm_map_gr_uplinkRequest, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
12884   { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
12885   { &hf_gsm_map_gr_releaseGroupCall, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
12886   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12887   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
12888   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
12889   { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
12890   { &hf_gsm_map_gr_notificationData, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
12891   { NULL, 0, 0, 0, NULL }
12892 };
12893
12894 static int
12895 dissect_gsm_map_gr_ProcessGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12896   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12897                                    gsm_map_gr_ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ProcessGroupCallSignallingArg);
12898
12899   return offset;
12900 }
12901
12902
12903 static const value_string gsm_map_gr_RequestedInfo_vals[] = {
12904   {   0, "anchorMSC-AddressAndASCI-CallReference" },
12905   {   1, "imsiAndAdditionalInfoAndAdditionalSubscription" },
12906   { 0, NULL }
12907 };
12908
12909
12910 static int
12911 dissect_gsm_map_gr_RequestedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12912   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12913                                   NULL);
12914
12915   return offset;
12916 }
12917
12918
12919 static const ber_sequence_t gsm_map_gr_SendGroupCallInfoArg_sequence[] = {
12920   { &hf_gsm_map_gr_requestedInfo, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_RequestedInfo },
12921   { &hf_gsm_map_gr_groupId  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Long_GroupId },
12922   { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
12923   { &hf_gsm_map_gr_cellId   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
12924   { &hf_gsm_map_gr_imsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12925   { &hf_gsm_map_gr_tmsi     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TMSI },
12926   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
12927   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
12928   { &hf_gsm_map_gr_cksn     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Cksn },
12929   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12930   { NULL, 0, 0, 0, NULL }
12931 };
12932
12933 static int
12934 dissect_gsm_map_gr_SendGroupCallInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12935   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12936                                    gsm_map_gr_SendGroupCallInfoArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoArg);
12937
12938   return offset;
12939 }
12940
12941
12942 static const ber_sequence_t gsm_map_gr_SendGroupCallInfoRes_sequence[] = {
12943   { &hf_gsm_map_gr_anchorMSC_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12944   { &hf_gsm_map_gr_asciCallReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference },
12945   { &hf_gsm_map_gr_imsi     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12946   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
12947   { &hf_gsm_map_gr_additionalSubscriptions, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalSubscriptions },
12948   { &hf_gsm_map_gr_kc       , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc },
12949   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12950   { NULL, 0, 0, 0, NULL }
12951 };
12952
12953 static int
12954 dissect_gsm_map_gr_SendGroupCallInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12955   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12956                                    gsm_map_gr_SendGroupCallInfoRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoRes);
12957
12958   return offset;
12959 }
12960
12961
12962 /* --- Module MAP-DialogueInformation --- --- ---                             */
12963
12964
12965 static const ber_sequence_t gsm_map_dialogue_MAP_OpenInfo_sequence[] = {
12966   { &hf_gsm_map_dialogue_destinationReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
12967   { &hf_gsm_map_dialogue_originationReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
12968   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12969   { NULL, 0, 0, 0, NULL }
12970 };
12971
12972 static int
12973 dissect_gsm_map_dialogue_MAP_OpenInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12974   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12975                                    gsm_map_dialogue_MAP_OpenInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_OpenInfo);
12976
12977   return offset;
12978 }
12979
12980
12981 static const ber_sequence_t gsm_map_dialogue_MAP_AcceptInfo_sequence[] = {
12982   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12983   { NULL, 0, 0, 0, NULL }
12984 };
12985
12986 static int
12987 dissect_gsm_map_dialogue_MAP_AcceptInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12988   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12989                                    gsm_map_dialogue_MAP_AcceptInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_AcceptInfo);
12990
12991   return offset;
12992 }
12993
12994
12995 static const ber_sequence_t gsm_map_dialogue_MAP_CloseInfo_sequence[] = {
12996   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12997   { NULL, 0, 0, 0, NULL }
12998 };
12999
13000 static int
13001 dissect_gsm_map_dialogue_MAP_CloseInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13002   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13003                                    gsm_map_dialogue_MAP_CloseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_CloseInfo);
13004
13005   return offset;
13006 }
13007
13008
13009 static const value_string gsm_map_dialogue_Reason_vals[] = {
13010   {   0, "noReasonGiven" },
13011   {   1, "invalidDestinationReference" },
13012   {   2, "invalidOriginatingReference" },
13013   { 0, NULL }
13014 };
13015
13016
13017 static int
13018 dissect_gsm_map_dialogue_Reason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13019   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13020                                   NULL);
13021
13022   return offset;
13023 }
13024
13025
13026
13027 static int
13028 dissect_gsm_map_dialogue_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13029   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
13030
13031   return offset;
13032 }
13033
13034
13035 static const ber_sequence_t gsm_map_dialogue_MAP_RefuseInfo_sequence[] = {
13036   { &hf_gsm_map_dialogue_reason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_Reason },
13037   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13038   { &hf_gsm_map_dialogue_alternativeApplicationContext, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_OBJECT_IDENTIFIER },
13039   { NULL, 0, 0, 0, NULL }
13040 };
13041
13042 static int
13043 dissect_gsm_map_dialogue_MAP_RefuseInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13044   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13045                                    gsm_map_dialogue_MAP_RefuseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_RefuseInfo);
13046
13047   return offset;
13048 }
13049
13050
13051
13052 static int
13053 dissect_gsm_map_dialogue_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13054   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
13055
13056   return offset;
13057 }
13058
13059
13060 static const value_string gsm_map_dialogue_ResourceUnavailableReason_vals[] = {
13061   {   0, "shortTermResourceLimitation" },
13062   {   1, "longTermResourceLimitation" },
13063   { 0, NULL }
13064 };
13065
13066
13067 static int
13068 dissect_gsm_map_dialogue_ResourceUnavailableReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13069   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13070                                   NULL);
13071
13072   return offset;
13073 }
13074
13075
13076 static const value_string gsm_map_dialogue_ProcedureCancellationReason_vals[] = {
13077   {   0, "handoverCancellation" },
13078   {   1, "radioChannelRelease" },
13079   {   2, "networkPathRelease" },
13080   {   3, "callRelease" },
13081   {   4, "associatedProcedureFailure" },
13082   {   5, "tandemDialogueRelease" },
13083   {   6, "remoteOperationsFailure" },
13084   { 0, NULL }
13085 };
13086
13087
13088 static int
13089 dissect_gsm_map_dialogue_ProcedureCancellationReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13090   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13091                                   NULL);
13092
13093   return offset;
13094 }
13095
13096
13097 static const value_string gsm_map_dialogue_MAP_UserAbortChoice_vals[] = {
13098   {   0, "userSpecificReason" },
13099   {   1, "userResourceLimitation" },
13100   {   2, "resourceUnavailable" },
13101   {   3, "applicationProcedureCancellation" },
13102   { 0, NULL }
13103 };
13104
13105 static const ber_choice_t gsm_map_dialogue_MAP_UserAbortChoice_choice[] = {
13106   {   0, &hf_gsm_map_dialogue_userSpecificReason, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL },
13107   {   1, &hf_gsm_map_dialogue_userResourceLimitation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL },
13108   {   2, &hf_gsm_map_dialogue_resourceUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ResourceUnavailableReason },
13109   {   3, &hf_gsm_map_dialogue_applicationProcedureCancellation, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ProcedureCancellationReason },
13110   { 0, NULL, 0, 0, 0, NULL }
13111 };
13112
13113 static int
13114 dissect_gsm_map_dialogue_MAP_UserAbortChoice(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13115   offset = dissect_ber_choice(actx, tree, tvb, offset,
13116                                  gsm_map_dialogue_MAP_UserAbortChoice_choice, hf_index, ett_gsm_map_dialogue_MAP_UserAbortChoice,
13117                                  NULL);
13118
13119   return offset;
13120 }
13121
13122
13123 static const ber_sequence_t gsm_map_dialogue_MAP_UserAbortInfo_sequence[] = {
13124   { &hf_gsm_map_dialogue_map_UserAbortChoice, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_dialogue_MAP_UserAbortChoice },
13125   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13126   { NULL, 0, 0, 0, NULL }
13127 };
13128
13129 static int
13130 dissect_gsm_map_dialogue_MAP_UserAbortInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13131   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13132                                    gsm_map_dialogue_MAP_UserAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_UserAbortInfo);
13133
13134   return offset;
13135 }
13136
13137
13138 static const value_string gsm_map_dialogue_MAP_ProviderAbortReason_vals[] = {
13139   {   0, "abnormalDialogue" },
13140   {   1, "invalidPDU" },
13141   { 0, NULL }
13142 };
13143
13144
13145 static int
13146 dissect_gsm_map_dialogue_MAP_ProviderAbortReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13147   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13148                                   NULL);
13149
13150   return offset;
13151 }
13152
13153
13154 static const ber_sequence_t gsm_map_dialogue_MAP_ProviderAbortInfo_sequence[] = {
13155   { &hf_gsm_map_dialogue_map_ProviderAbortReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortReason },
13156   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13157   { NULL, 0, 0, 0, NULL }
13158 };
13159
13160 static int
13161 dissect_gsm_map_dialogue_MAP_ProviderAbortInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13162   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13163                                    gsm_map_dialogue_MAP_ProviderAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_ProviderAbortInfo);
13164
13165   return offset;
13166 }
13167
13168
13169 static const value_string gsm_map_dialogue_MAP_DialoguePDU_vals[] = {
13170   {   0, "map-open" },
13171   {   1, "map-accept" },
13172   {   2, "map-close" },
13173   {   3, "map-refuse" },
13174   {   4, "map-userAbort" },
13175   {   5, "map-providerAbort" },
13176   { 0, NULL }
13177 };
13178
13179 static const ber_choice_t gsm_map_dialogue_MAP_DialoguePDU_choice[] = {
13180   {   0, &hf_gsm_map_dialogue_map_open, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_OpenInfo },
13181   {   1, &hf_gsm_map_dialogue_map_accept, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_AcceptInfo },
13182   {   2, &hf_gsm_map_dialogue_map_close, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_CloseInfo },
13183   {   3, &hf_gsm_map_dialogue_map_refuse, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_RefuseInfo },
13184   {   4, &hf_gsm_map_dialogue_map_userAbort, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_UserAbortInfo },
13185   {   5, &hf_gsm_map_dialogue_map_providerAbort, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortInfo },
13186   { 0, NULL, 0, 0, 0, NULL }
13187 };
13188
13189 static int
13190 dissect_gsm_map_dialogue_MAP_DialoguePDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13191   offset = dissect_ber_choice(actx, tree, tvb, offset,
13192                                  gsm_map_dialogue_MAP_DialoguePDU_choice, hf_index, ett_gsm_map_dialogue_MAP_DialoguePDU,
13193                                  NULL);
13194
13195   return offset;
13196 }
13197
13198 /*--- PDUs ---*/
13199
13200 static void dissect_gsm_map_dialogue_MAP_DialoguePDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
13201   asn1_ctx_t asn1_ctx;
13202   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
13203   dissect_gsm_map_dialogue_MAP_DialoguePDU(FALSE, tvb, 0, &asn1_ctx, tree, hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU);
13204 }
13205
13206
13207 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
13208
13209
13210 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
13211
13212
13213 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
13214
13215
13216 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
13217
13218
13219 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
13220
13221
13222 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
13223
13224
13225 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
13226
13227
13228 /* --- Module MAP-Errors --- --- ---                                          */
13229
13230
13231 /* --- Module MAP-Protocol --- --- ---                                        */
13232
13233
13234 /* --- Module DummyMAP --- --- ---                                            */
13235
13236
13237
13238 static int
13239 dissect_gsm_old_InvokeIdType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13240   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13241                                   NULL);
13242
13243   return offset;
13244 }
13245
13246
13247 static const value_string gsm_old_GSMMAPOperationLocalvalue_vals[] = {
13248   {   2, "updateLocation" },
13249   {   3, "cancelLocation" },
13250   {   4, "provideRoamingNumber" },
13251   {   5, "noteSubscriberDataModified" },
13252   {   6, "resumeCallHandling" },
13253   {   7, "insertSubscriberData" },
13254   {   8, "deleteSubscriberData" },
13255   {   9, "sendParameters" },
13256   {  10, "registerSS" },
13257   {  11, "eraseSS" },
13258   {  12, "activateSS" },
13259   {  13, "deactivateSS" },
13260   {  14, "interrogateSS" },
13261   {  15, "authenticationFailureReport" },
13262   {  16, "notifySS" },
13263   {  17, "registerPassword" },
13264   {  18, "getPassword" },
13265   {  19, "processUnstructuredSS-Data" },
13266   {  20, "releaseResources" },
13267   {  21, "mt-ForwardSM-VGCS" },
13268   {  22, "sendRoutingInfo" },
13269   {  23, "updateGprsLocation" },
13270   {  24, "sendRoutingInfoForGprs" },
13271   {  25, "failureReport" },
13272   {  26, "noteMsPresentForGprs" },
13273   {  28, "performHandover" },
13274   {  29, "sendEndSignal" },
13275   {  30, "performSubsequentHandover" },
13276   {  31, "provideSIWFSNumber" },
13277   {  32, "sIWFSSignallingModify" },
13278   {  33, "processAccessSignalling" },
13279   {  34, "forwardAccessSignalling" },
13280   {  35, "noteInternalHandover" },
13281   {  37, "reset" },
13282   {  38, "forwardCheckSS" },
13283   {  39, "prepareGroupCall" },
13284   {  40, "sendGroupCallEndSignal" },
13285   {  41, "processGroupCallSignalling" },
13286   {  42, "forwardGroupCallSignalling" },
13287   {  43, "checkIMEI" },
13288   {  44, "mt-forwardSM" },
13289   {  45, "sendRoutingInfoForSM" },
13290   {  46, "mo-forwardSM" },
13291   {  47, "reportSM-DeliveryStatus" },
13292   {  48, "noteSubscriberPresent" },
13293   {  49, "alertServiceCentreWithoutResult" },
13294   {  50, "activateTraceMode" },
13295   {  51, "deactivateTraceMode" },
13296   {  52, "traceSubscriberActivity" },
13297   {  54, "beginSubscriberActivity" },
13298   {  55, "sendIdentification" },
13299   {  56, "sendAuthenticationInfo" },
13300   {  57, "restoreData" },
13301   {  58, "sendIMSI" },
13302   {  59, "processUnstructuredSS-Request" },
13303   {  60, "unstructuredSS-Request" },
13304   {  61, "unstructuredSS-Notify" },
13305   {  62, "anyTimeSubscriptionInterrogation" },
13306   {  63, "informServiceCentre" },
13307   {  64, "alertServiceCentre" },
13308   {  65, "anyTimeModification" },
13309   {  66, "readyForSM" },
13310   {  67, "purgeMS" },
13311   {  68, "prepareHandover" },
13312   {  69, "prepareSubsequentHandover" },
13313   {  70, "provideSubscriberInfo" },
13314   {  71, "anyTimeInterrogation" },
13315   {  72, "ss-InvocationNotification" },
13316   {  73, "setReportingState" },
13317   {  74, "statusReport" },
13318   {  75, "remoteUserFree" },
13319   {  76, "registerCC-Entry" },
13320   {  77, "eraseCC-Entry" },
13321   {  78, "secureTransportClass1" },
13322   {  79, "secureTransportClass2" },
13323   {  80, "secureTransportClass3" },
13324   {  81, "secureTransportClass4" },
13325   {  83, "provideSubscriberLocation" },
13326   {  84, "sendGroupCallInfo" },
13327   {  85, "sendRoutingInfoForLCS" },
13328   {  86, "subscriberLocationReport" },
13329   {  87, "ist-Alert" },
13330   {  88, "ist-Command" },
13331   {  89, "noteMM-Event" },
13332   { 109, "lcs-PeriodicLocationCancellation" },
13333   { 110, "lcs-LocationUpdate" },
13334   { 111, "lcs-PeriodicLocationRequest" },
13335   { 112, "lcs-AreaEventCancellation" },
13336   { 113, "lcs-AreaEventReport" },
13337   { 114, "lcs-AreaEventRequest" },
13338   { 115, "lcs-MOLR" },
13339   { 116, "lcs-LocationNotification" },
13340   { 117, "callDeflection" },
13341   { 118, "userUserService" },
13342   { 119, "accessRegisterCCEntry" },
13343   { 120, "forwardCUG-Info" },
13344   { 121, "splitMPTY" },
13345   { 122, "retrieveMPTY" },
13346   { 123, "holdMPTY" },
13347   { 124, "buildMPTY" },
13348   { 125, "forwardChargeAdvice" },
13349   { 126, "explicitCT" },
13350   { 0, NULL }
13351 };
13352
13353
13354 static int
13355 dissect_gsm_old_GSMMAPOperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13356 #line 140 "gsmmap.cnf"
13357
13358   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13359                                   &opcode);
13360  
13361   if (check_col(actx->pinfo->cinfo, COL_INFO)){
13362     col_append_str(actx->pinfo->cinfo, COL_INFO, gsm_map_opr_code(opcode));
13363   }
13364
13365
13366
13367   return offset;
13368 }
13369
13370
13371
13372 static int
13373 dissect_gsm_old_OperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13374   offset = dissect_gsm_old_GSMMAPOperationLocalvalue(implicit_tag, tvb, offset, actx, tree, hf_index);
13375
13376   return offset;
13377 }
13378
13379
13380
13381 static int
13382 dissect_gsm_old_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13383   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
13384
13385   return offset;
13386 }
13387
13388
13389 static const value_string gsm_old_MAP_OPERATION_vals[] = {
13390   {   0, "localValue" },
13391   {   1, "globalValue" },
13392   { 0, NULL }
13393 };
13394
13395 static const ber_choice_t gsm_old_MAP_OPERATION_choice[] = {
13396   {   0, &hf_gsm_old_localValue  , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OperationLocalvalue },
13397   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
13398   { 0, NULL, 0, 0, 0, NULL }
13399 };
13400
13401 static int
13402 dissect_gsm_old_MAP_OPERATION(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13403   offset = dissect_ber_choice(actx, tree, tvb, offset,
13404                                  gsm_old_MAP_OPERATION_choice, hf_index, ett_gsm_old_MAP_OPERATION,
13405                                  NULL);
13406
13407   return offset;
13408 }
13409
13410
13411
13412 static int
13413 dissect_gsm_old_InvokeParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13414 #line 127 "gsmmap.cnf"
13415         offset = dissect_invokeData(tree, tvb, offset, actx);
13416
13417
13418
13419   return offset;
13420 }
13421
13422
13423 static const ber_sequence_t gsm_old_Invoke_sequence[] = {
13424   { &hf_gsm_old_invokeID    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
13425   { &hf_gsm_old_linkedID    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeIdType },
13426   { &hf_gsm_old_opCode      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION },
13427   { &hf_gsm_old_invokeparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeParameter },
13428   { NULL, 0, 0, 0, NULL }
13429 };
13430
13431 static int
13432 dissect_gsm_old_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13433   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13434                                    gsm_old_Invoke_sequence, hf_index, ett_gsm_old_Invoke);
13435
13436   return offset;
13437 }
13438
13439
13440
13441 static int
13442 dissect_gsm_old_ReturnResultParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13443 #line 130 "gsmmap.cnf"
13444         offset = dissect_returnResultData(tree, tvb, offset, actx);
13445
13446
13447
13448   return offset;
13449 }
13450
13451
13452 static const ber_sequence_t gsm_old_T_resultretres_sequence[] = {
13453   { &hf_gsm_old_opCode      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION },
13454   { &hf_gsm_old_returnparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnResultParameter },
13455   { NULL, 0, 0, 0, NULL }
13456 };
13457
13458 static int
13459 dissect_gsm_old_T_resultretres(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13460   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13461                                    gsm_old_T_resultretres_sequence, hf_index, ett_gsm_old_T_resultretres);
13462
13463   return offset;
13464 }
13465
13466
13467 static const ber_sequence_t gsm_old_ReturnResult_sequence[] = {
13468   { &hf_gsm_old_invokeID    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
13469   { &hf_gsm_old_resultretres, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_T_resultretres },
13470   { NULL, 0, 0, 0, NULL }
13471 };
13472
13473 static int
13474 dissect_gsm_old_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13475   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13476                                    gsm_old_ReturnResult_sequence, hf_index, ett_gsm_old_ReturnResult);
13477
13478   return offset;
13479 }
13480
13481
13482 const value_string gsm_old_GSMMAPLocalErrorcode_vals[] = {
13483   {  34, "systemFailure" },
13484   {  35, "dataMissing" },
13485   {  36, "unexpectedDataValue" },
13486   {  21, "facilityNotSupported" },
13487   {  28, "incompatibleTerminal" },
13488   {  51, "resourceLimitation" },
13489   {   1, "unknownSubscriber" },
13490   {  44, "numberChanged" },
13491   {   3, "unknownMSC" },
13492   {   5, "unidentifiedSubscriber" },
13493   {   7, "unknownEquipment" },
13494   {   8, "roamingNotAllowed" },
13495   {   9, "illegalSubscriber" },
13496   {  12, "illegalEquipment" },
13497   {  10, "bearerServiceNotProvisioned" },
13498   {  11, "teleserviceNotProvisioned" },
13499   {  25, "noHandoverNumberAvailable" },
13500   {  26, "subsequentHandoverFailure" },
13501   {  42, "targetCellOutsideGroupCallArea" },
13502   {  40, "tracingBufferFull" },
13503   {  39, "noRoamingNumberAvailable" },
13504   {  27, "absentSubscriber" },
13505   {  45, "busySubscriber" },
13506   {  46, "noSubscriberReply" },
13507   {  13, "callBarred" },
13508   {  14, "forwardingViolation" },
13509   {  47, "forwardingFailed" },
13510   {  15, "cug-Reject" },
13511   {  48, "or-NotAllowed" },
13512   {  49, "ati-NotAllowed" },
13513   {  60, "atsi-NotAllowed" },
13514   {  61, "atm-NotAllowed" },
13515   {  62, "informationNotAvailabl" },
13516   {  16, "illegalSS-Operation" },
13517   {  17, "ss-ErrorStatus" },
13518   {  18, "ss-NotAvailable" },
13519   {  19, "ss-SubscriptionViolatio" },
13520   {  20, "ss-Incompatibility" },
13521   {  71, "unknownAlphabe" },
13522   {  72, "ussd-Busy" },
13523   {  37, "pw-RegistrationFailur" },
13524   {  38, "negativePW-Check" },
13525   {  43, "numberOfPW-AttemptsViolation" },
13526   {  29, "shortTermDenial" },
13527   {  30, "longTermDenial" },
13528   {  31, "subscriberBusyForMT-SMS" },
13529   {  32, "sm-DeliveryFailure" },
13530   {  33, "messageWaitingListFull" },
13531   {   6, "absentSubscriberSM" },
13532   {  50, "noGroupCallNumberAvailable" },
13533   {  52, "unauthorizedRequestingNetwork" },
13534   {  53, "unauthorizedLCSClient" },
13535   {  54, "positionMethodFailure" },
13536   {  58, "unknownOrUnreachableLCSClient" },
13537   {  59, "mm-EventNotSupported" },
13538   {   4, "secureTransportError" },
13539   { 0, NULL }
13540 };
13541
13542
13543 int
13544 dissect_gsm_old_GSMMAPLocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13545   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13546                                   &errorCode);
13547
13548   return offset;
13549 }
13550
13551
13552
13553 static int
13554 dissect_gsm_old_LocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13555   offset = dissect_gsm_old_GSMMAPLocalErrorcode(implicit_tag, tvb, offset, actx, tree, hf_index);
13556
13557   return offset;
13558 }
13559
13560
13561 static const value_string gsm_old_MAP_ERROR_vals[] = {
13562   {   0, "localValue" },
13563   {   1, "globalValue" },
13564   { 0, NULL }
13565 };
13566
13567 static const ber_choice_t gsm_old_MAP_ERROR_choice[] = {
13568   {   0, &hf_gsm_old_localValue_01, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_LocalErrorcode },
13569   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
13570   { 0, NULL, 0, 0, 0, NULL }
13571 };
13572
13573 static int
13574 dissect_gsm_old_MAP_ERROR(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13575   offset = dissect_ber_choice(actx, tree, tvb, offset,
13576                                  gsm_old_MAP_ERROR_choice, hf_index, ett_gsm_old_MAP_ERROR,
13577                                  NULL);
13578
13579   return offset;
13580 }
13581
13582
13583
13584 static int
13585 dissect_gsm_old_ReturnErrorParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13586 #line 133 "gsmmap.cnf"
13587         offset = dissect_returnErrorData(tree, tvb, offset, actx);
13588
13589
13590
13591   return offset;
13592 }
13593
13594
13595 static const ber_sequence_t gsm_old_ReturnError_sequence[] = {
13596   { &hf_gsm_old_invokeID    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
13597   { &hf_gsm_old_errorCode   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_ERROR },
13598   { &hf_gsm_old_parameter   , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnErrorParameter },
13599   { NULL, 0, 0, 0, NULL }
13600 };
13601
13602 static int
13603 dissect_gsm_old_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13604   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13605                                    gsm_old_ReturnError_sequence, hf_index, ett_gsm_old_ReturnError);
13606
13607   return offset;
13608 }
13609
13610
13611
13612 static int
13613 dissect_gsm_old_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13614   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
13615
13616   return offset;
13617 }
13618
13619
13620 static const value_string gsm_old_T_invokeIDRej_vals[] = {
13621   {   0, "derivable" },
13622   {   1, "not-derivable" },
13623   { 0, NULL }
13624 };
13625
13626 static const ber_choice_t gsm_old_T_invokeIDRej_choice[] = {
13627   {   0, &hf_gsm_old_derivable   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
13628   {   1, &hf_gsm_old_not_derivable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
13629   { 0, NULL, 0, 0, 0, NULL }
13630 };
13631
13632 static int
13633 dissect_gsm_old_T_invokeIDRej(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13634   offset = dissect_ber_choice(actx, tree, tvb, offset,
13635                                  gsm_old_T_invokeIDRej_choice, hf_index, ett_gsm_old_T_invokeIDRej,
13636                                  NULL);
13637
13638   return offset;
13639 }
13640
13641
13642 static const value_string gsm_old_GeneralProblem_vals[] = {
13643   {   0, "unrecognizedComponent" },
13644   {   1, "mistypedComponent" },
13645   {   2, "badlyStructuredComponent" },
13646   { 0, NULL }
13647 };
13648
13649
13650 static int
13651 dissect_gsm_old_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13652   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13653                                   NULL);
13654
13655   return offset;
13656 }
13657
13658
13659 static const value_string gsm_old_InvokeProblem_vals[] = {
13660   {   0, "duplicateInvokeID" },
13661   {   1, "unrecognizedOperation" },
13662   {   2, "mistypedParameter" },
13663   {   3, "resourceLimitation" },
13664   {   4, "initiatingRelease" },
13665   {   5, "unrecognizedLinkedID" },
13666   {   6, "linkedResponseUnexpected" },
13667   {   7, "unexpectedLinkedOperation" },
13668   { 0, NULL }
13669 };
13670
13671
13672 static int
13673 dissect_gsm_old_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13674   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13675                                   NULL);
13676
13677   return offset;
13678 }
13679
13680
13681 static const value_string gsm_old_ReturnResultProblem_vals[] = {
13682   {   0, "unrecognizedInvokeID" },
13683   {   1, "returnResultUnexpected" },
13684   {   2, "mistypedParameter" },
13685   { 0, NULL }
13686 };
13687
13688
13689 static int
13690 dissect_gsm_old_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13691   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13692                                   NULL);
13693
13694   return offset;
13695 }
13696
13697
13698 static const value_string gsm_old_ReturnErrorProblem_vals[] = {
13699   {   0, "unrecognizedInvokeID" },
13700   {   1, "returnErrorUnexpected" },
13701   {   2, "unrecognizedError" },
13702   {   3, "unexpectedError" },
13703   {   4, "mistypedParameter" },
13704   { 0, NULL }
13705 };
13706
13707
13708 static int
13709 dissect_gsm_old_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13710   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13711                                   NULL);
13712
13713   return offset;
13714 }
13715
13716
13717 static const value_string gsm_old_T_problem_vals[] = {
13718   {   0, "generalProblem" },
13719   {   1, "invokeProblem" },
13720   {   2, "returnResultProblem" },
13721   {   3, "returnErrorProblem" },
13722   { 0, NULL }
13723 };
13724
13725 static const ber_choice_t gsm_old_T_problem_choice[] = {
13726   {   0, &hf_gsm_old_generalProblem, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_GeneralProblem },
13727   {   1, &hf_gsm_old_invokeProblem, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeProblem },
13728   {   2, &hf_gsm_old_returnResultProblem, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResultProblem },
13729   {   3, &hf_gsm_old_returnErrorProblem, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnErrorProblem },
13730   { 0, NULL, 0, 0, 0, NULL }
13731 };
13732
13733 static int
13734 dissect_gsm_old_T_problem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13735   offset = dissect_ber_choice(actx, tree, tvb, offset,
13736                                  gsm_old_T_problem_choice, hf_index, ett_gsm_old_T_problem,
13737                                  NULL);
13738
13739   return offset;
13740 }
13741
13742
13743 static const ber_sequence_t gsm_old_Reject_sequence[] = {
13744   { &hf_gsm_old_invokeIDRej , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_invokeIDRej },
13745   { &hf_gsm_old_problem     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_problem },
13746   { NULL, 0, 0, 0, NULL }
13747 };
13748
13749 static int
13750 dissect_gsm_old_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13751   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13752                                    gsm_old_Reject_sequence, hf_index, ett_gsm_old_Reject);
13753
13754   return offset;
13755 }
13756
13757
13758 static const value_string gsm_old_Component_vals[] = {
13759   {   1, "invoke" },
13760   {   2, "returnResultLast" },
13761   {   3, "returnError" },
13762   {   4, "reject" },
13763   {   7, "returnResultNotLast" },
13764   { 0, NULL }
13765 };
13766
13767 static const ber_choice_t gsm_old_Component_choice[] = {
13768   {   1, &hf_gsm_old_invoke      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_Invoke },
13769   {   2, &hf_gsm_old_returnResultLast, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult },
13770   {   3, &hf_gsm_old_returnError , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnError },
13771   {   4, &hf_gsm_old_reject      , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_Reject },
13772   {   7, &hf_gsm_old_returnResultNotLast, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult },
13773   { 0, NULL, 0, 0, 0, NULL }
13774 };
13775
13776 static int
13777 dissect_gsm_old_Component(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13778   offset = dissect_ber_choice(actx, tree, tvb, offset,
13779                                  gsm_old_Component_choice, hf_index, ett_gsm_old_Component,
13780                                  NULL);
13781
13782   return offset;
13783 }
13784
13785
13786 static const ber_sequence_t gsm_old_Bss_APDU_sequence[] = {
13787   { &hf_gsm_old_protocolId  , -1 /*imported*/, -1 /*imported*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId },
13788   { &hf_gsm_old_signalInfo  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
13789   { &hf_gsm_old_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13790   { NULL, 0, 0, 0, NULL }
13791 };
13792
13793 static int
13794 dissect_gsm_old_Bss_APDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13795   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13796                                    gsm_old_Bss_APDU_sequence, hf_index, ett_gsm_old_Bss_APDU);
13797
13798   return offset;
13799 }
13800
13801
13802
13803 static int
13804 dissect_gsm_old_CallDirection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13805   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13806                                        NULL);
13807
13808   return offset;
13809 }
13810
13811
13812 static const ber_sequence_t gsm_old_ProvideSIWFSNumberArg_sequence[] = {
13813   { &hf_gsm_old_gsm_BearerCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
13814   { &hf_gsm_old_isdn_BearerCapability, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
13815   { &hf_gsm_old_call_Direction, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_CallDirection },
13816   { &hf_gsm_old_b_Subscriber_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13817   { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
13818   { &hf_gsm_old_lowerLayerCompatibility, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
13819   { &hf_gsm_old_highLayerCompatibility, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
13820   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13821   { NULL, 0, 0, 0, NULL }
13822 };
13823
13824 static int
13825 dissect_gsm_old_ProvideSIWFSNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13826   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13827                                    gsm_old_ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberArg);
13828
13829   return offset;
13830 }
13831
13832
13833 static const ber_sequence_t gsm_old_ProvideSIWFSNumberRes_sequence[] = {
13834   { &hf_gsm_old_sIWFSNumber , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13835   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13836   { NULL, 0, 0, 0, NULL }
13837 };
13838
13839 static int
13840 dissect_gsm_old_ProvideSIWFSNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13841   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13842                                    gsm_old_ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberRes);
13843
13844   return offset;
13845 }
13846
13847
13848 static const ber_sequence_t gsm_old_PurgeMSArgV2_sequence[] = {
13849   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
13850   { &hf_gsm_old_vlr_Number  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
13851   { NULL, 0, 0, 0, NULL }
13852 };
13853
13854 static int
13855 dissect_gsm_old_PurgeMSArgV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13856   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13857                                    gsm_old_PurgeMSArgV2_sequence, hf_index, ett_gsm_old_PurgeMSArgV2);
13858
13859   return offset;
13860 }
13861
13862
13863 static const ber_sequence_t gsm_old_PrepareHO_ArgOld_sequence[] = {
13864   { &hf_gsm_old_targetCellId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_GlobalCellId },
13865   { &hf_gsm_old_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
13866   { &hf_gsm_old_bss_APDU    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU },
13867   { NULL, 0, 0, 0, NULL }
13868 };
13869
13870 static int
13871 dissect_gsm_old_PrepareHO_ArgOld(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13872   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13873                                    gsm_old_PrepareHO_ArgOld_sequence, hf_index, ett_gsm_old_PrepareHO_ArgOld);
13874
13875   return offset;
13876 }
13877
13878
13879 static const ber_sequence_t gsm_old_PrepareHO_ResOld_sequence[] = {
13880   { &hf_gsm_old_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
13881   { &hf_gsm_old_bss_APDU    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU },
13882   { NULL, 0, 0, 0, NULL }
13883 };
13884
13885 static int
13886 dissect_gsm_old_PrepareHO_ResOld(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13887   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13888                                    gsm_old_PrepareHO_ResOld_sequence, hf_index, ett_gsm_old_PrepareHO_ResOld);
13889
13890   return offset;
13891 }
13892
13893
13894
13895 static int
13896 dissect_gsm_old_RAND(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13897   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13898                                        NULL);
13899
13900   return offset;
13901 }
13902
13903
13904
13905 static int
13906 dissect_gsm_old_SRES(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13907   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13908                                        NULL);
13909
13910   return offset;
13911 }
13912
13913
13914
13915 static int
13916 dissect_gsm_old_Kc(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13917   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13918                                        NULL);
13919
13920   return offset;
13921 }
13922
13923
13924 static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_item_sequence[] = {
13925   { &hf_gsm_old_rand        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND },
13926   { &hf_gsm_old_sres        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES },
13927   { &hf_gsm_old_kc          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc },
13928   { NULL, 0, 0, 0, NULL }
13929 };
13930
13931 static int
13932 dissect_gsm_old_SendAuthenticationInfoResOld_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13933   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13934                                    gsm_old_SendAuthenticationInfoResOld_item_sequence, hf_index, ett_gsm_old_SendAuthenticationInfoResOld_item);
13935
13936   return offset;
13937 }
13938
13939
13940 static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_sequence_of[1] = {
13941   { &hf_gsm_old_SendAuthenticationInfoResOld_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SendAuthenticationInfoResOld_item },
13942 };
13943
13944 static int
13945 dissect_gsm_old_SendAuthenticationInfoResOld(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13946   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13947                                       gsm_old_SendAuthenticationInfoResOld_sequence_of, hf_index, ett_gsm_old_SendAuthenticationInfoResOld);
13948
13949   return offset;
13950 }
13951
13952
13953 static const ber_sequence_t gsm_old_AuthenticationTriplet_v2_sequence[] = {
13954   { &hf_gsm_old_rand        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND },
13955   { &hf_gsm_old_sres        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES },
13956   { &hf_gsm_old_kc          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc },
13957   { NULL, 0, 0, 0, NULL }
13958 };
13959
13960 static int
13961 dissect_gsm_old_AuthenticationTriplet_v2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13962   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13963                                    gsm_old_AuthenticationTriplet_v2_sequence, hf_index, ett_gsm_old_AuthenticationTriplet_v2);
13964
13965   return offset;
13966 }
13967
13968
13969 static const ber_sequence_t gsm_old_TripletListold_sequence_of[1] = {
13970   { &hf_gsm_old_TripletListold_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_AuthenticationTriplet_v2 },
13971 };
13972
13973 static int
13974 dissect_gsm_old_TripletListold(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13975   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13976                                       gsm_old_TripletListold_sequence_of, hf_index, ett_gsm_old_TripletListold);
13977
13978   return offset;
13979 }
13980
13981
13982 static const ber_sequence_t gsm_old_SendIdentificationResV2_sequence[] = {
13983   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
13984   { &hf_gsm_old_tripletList , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_TripletListold },
13985   { NULL, 0, 0, 0, NULL }
13986 };
13987
13988 static int
13989 dissect_gsm_old_SendIdentificationResV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13990   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13991                                    gsm_old_SendIdentificationResV2_sequence, hf_index, ett_gsm_old_SendIdentificationResV2);
13992
13993   return offset;
13994 }
13995
13996
13997 static const ber_sequence_t gsm_old_SIWFSSignallingModifyArg_sequence[] = {
13998   { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
13999   { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14000   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14001   { NULL, 0, 0, 0, NULL }
14002 };
14003
14004 static int
14005 dissect_gsm_old_SIWFSSignallingModifyArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14006   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14007                                    gsm_old_SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyArg);
14008
14009   return offset;
14010 }
14011
14012
14013 static const ber_sequence_t gsm_old_SIWFSSignallingModifyRes_sequence[] = {
14014   { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14015   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14016   { NULL, 0, 0, 0, NULL }
14017 };
14018
14019 static int
14020 dissect_gsm_old_SIWFSSignallingModifyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14021   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14022                                    gsm_old_SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyRes);
14023
14024   return offset;
14025 }
14026
14027
14028
14029 int
14030 dissect_gsm_old_NewPassword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14031   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
14032                                             actx, tree, tvb, offset, hf_index,
14033                                             NULL);
14034
14035   return offset;
14036 }
14037
14038
14039 const value_string gsm_old_GetPasswordArg_vals[] = {
14040   {   0, "enterPW" },
14041   {   1, "enterNewPW" },
14042   {   2, "enterNewPW-Again" },
14043   { 0, NULL }
14044 };
14045
14046
14047 int
14048 dissect_gsm_old_GetPasswordArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14049   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14050                                   NULL);
14051
14052   return offset;
14053 }
14054
14055
14056
14057 int
14058 dissect_gsm_old_CurrentPassword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14059   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
14060                                             actx, tree, tvb, offset, hf_index,
14061                                             NULL);
14062
14063   return offset;
14064 }
14065
14066
14067
14068 static int
14069 dissect_gsm_old_SecurityParametersIndex(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14070   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14071                                        NULL);
14072
14073   return offset;
14074 }
14075
14076
14077
14078 static int
14079 dissect_gsm_old_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14080   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14081                                   NULL);
14082
14083   return offset;
14084 }
14085
14086
14087 static const value_string gsm_old_OperationCode_vals[] = {
14088   {   0, "localValue" },
14089   {   1, "globalValue" },
14090   { 0, NULL }
14091 };
14092
14093 static const ber_choice_t gsm_old_OperationCode_choice[] = {
14094   {   0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER },
14095   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
14096   { 0, NULL, 0, 0, 0, NULL }
14097 };
14098
14099 static int
14100 dissect_gsm_old_OperationCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14101   offset = dissect_ber_choice(actx, tree, tvb, offset,
14102                                  gsm_old_OperationCode_choice, hf_index, ett_gsm_old_OperationCode,
14103                                  NULL);
14104
14105   return offset;
14106 }
14107
14108
14109 static const value_string gsm_old_ErrorCode_vals[] = {
14110   {   0, "localValue" },
14111   {   1, "globalValue" },
14112   { 0, NULL }
14113 };
14114
14115 static const ber_choice_t gsm_old_ErrorCode_choice[] = {
14116   {   0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER },
14117   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
14118   { 0, NULL, 0, 0, 0, NULL }
14119 };
14120
14121 static int
14122 dissect_gsm_old_ErrorCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14123   offset = dissect_ber_choice(actx, tree, tvb, offset,
14124                                  gsm_old_ErrorCode_choice, hf_index, ett_gsm_old_ErrorCode,
14125                                  NULL);
14126
14127   return offset;
14128 }
14129
14130
14131 static const value_string gsm_old_OriginalComponentIdentifier_vals[] = {
14132   {   0, "operationCode" },
14133   {   1, "errorCode" },
14134   {   2, "userInfo" },
14135   { 0, NULL }
14136 };
14137
14138 static const ber_choice_t gsm_old_OriginalComponentIdentifier_choice[] = {
14139   {   0, &hf_gsm_old_operationCode, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_OperationCode },
14140   {   1, &hf_gsm_old_errorCode_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_ErrorCode },
14141   {   2, &hf_gsm_old_userInfo    , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
14142   { 0, NULL, 0, 0, 0, NULL }
14143 };
14144
14145 static int
14146 dissect_gsm_old_OriginalComponentIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14147   offset = dissect_ber_choice(actx, tree, tvb, offset,
14148                                  gsm_old_OriginalComponentIdentifier_choice, hf_index, ett_gsm_old_OriginalComponentIdentifier,
14149                                  NULL);
14150
14151   return offset;
14152 }
14153
14154
14155
14156 static int
14157 dissect_gsm_old_InitialisationVector(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14158   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14159                                        NULL);
14160
14161   return offset;
14162 }
14163
14164
14165 static const ber_sequence_t gsm_old_SecurityHeader_sequence[] = {
14166   { &hf_gsm_old_securityParametersIndex, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityParametersIndex },
14167   { &hf_gsm_old_originalComponentIdentifier, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_OriginalComponentIdentifier },
14168   { &hf_gsm_old_initialisationVector, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InitialisationVector },
14169   { NULL, 0, 0, 0, NULL }
14170 };
14171
14172 int
14173 dissect_gsm_old_SecurityHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14174   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14175                                    gsm_old_SecurityHeader_sequence, hf_index, ett_gsm_old_SecurityHeader);
14176
14177   return offset;
14178 }
14179
14180
14181
14182 int
14183 dissect_gsm_old_ProtectedPayload(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14184   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14185                                        NULL);
14186
14187   return offset;
14188 }
14189
14190
14191 static const ber_sequence_t gsm_old_SecureTransportArg_sequence[] = {
14192   { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
14193   { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
14194   { NULL, 0, 0, 0, NULL }
14195 };
14196
14197 static int
14198 dissect_gsm_old_SecureTransportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14199   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14200                                    gsm_old_SecureTransportArg_sequence, hf_index, ett_gsm_old_SecureTransportArg);
14201
14202   return offset;
14203 }
14204
14205
14206 static const ber_sequence_t gsm_old_SecureTransportErrorParam_sequence[] = {
14207   { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
14208   { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
14209   { NULL, 0, 0, 0, NULL }
14210 };
14211
14212 static int
14213 dissect_gsm_old_SecureTransportErrorParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14214   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14215                                    gsm_old_SecureTransportErrorParam_sequence, hf_index, ett_gsm_old_SecureTransportErrorParam);
14216
14217   return offset;
14218 }
14219
14220
14221 static const ber_sequence_t gsm_old_SecureTransportRes_sequence[] = {
14222   { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
14223   { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
14224   { NULL, 0, 0, 0, NULL }
14225 };
14226
14227 static int
14228 dissect_gsm_old_SecureTransportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14229   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14230                                    gsm_old_SecureTransportRes_sequence, hf_index, ett_gsm_old_SecureTransportRes);
14231
14232   return offset;
14233 }
14234
14235
14236
14237 static int
14238 dissect_gsm_old_Category(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14239   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14240                                        NULL);
14241
14242   return offset;
14243 }
14244
14245
14246
14247 static int
14248 dissect_gsm_old_OCTET_STRING_SIZE_1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14249   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14250                                        NULL);
14251
14252   return offset;
14253 }
14254
14255
14256 static const ber_sequence_t gsm_old_T_operatorSS_Code_sequence_of[1] = {
14257   { &hf_gsm_old_operatorSS_Code_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OCTET_STRING_SIZE_1 },
14258 };
14259
14260 static int
14261 dissect_gsm_old_T_operatorSS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14262   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
14263                                       gsm_old_T_operatorSS_Code_sequence_of, hf_index, ett_gsm_old_T_operatorSS_Code);
14264
14265   return offset;
14266 }
14267
14268
14269 static const ber_sequence_t gsm_old_PlmnContainer_U_sequence[] = {
14270   { &hf_gsm_old_msisdn      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14271   { &hf_gsm_old_category    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_Category },
14272   { &hf_gsm_old_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
14273   { &hf_gsm_old_operatorSS_Code, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_T_operatorSS_Code },
14274   { NULL, 0, 0, 0, NULL }
14275 };
14276
14277 static int
14278 dissect_gsm_old_PlmnContainer_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14279   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14280                                    gsm_old_PlmnContainer_U_sequence, hf_index, ett_gsm_old_PlmnContainer_U);
14281
14282   return offset;
14283 }
14284
14285
14286
14287 static int
14288 dissect_gsm_old_PlmnContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14289   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
14290                                       hf_index, BER_CLASS_PRI, 2, TRUE, dissect_gsm_old_PlmnContainer_U);
14291
14292   return offset;
14293 }
14294
14295
14296 static const value_string gsm_old_SM_RP_DAold_vals[] = {
14297   {   0, "imsi" },
14298   {   1, "lmsi" },
14299   {   4, "serviceCentreAddressDA" },
14300   {   5, "noSM-RP-DA" },
14301   { 0, NULL }
14302 };
14303
14304 static const ber_choice_t gsm_old_SM_RP_DAold_choice[] = {
14305   {   0, &hf_gsm_old_imsi        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
14306   {   1, &hf_gsm_old_lmsi        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
14307   {   4, &hf_gsm_old_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
14308   {   5, &hf_gsm_old_noSM_RP_DA  , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
14309   { 0, NULL, 0, 0, 0, NULL }
14310 };
14311
14312 static int
14313 dissect_gsm_old_SM_RP_DAold(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14314   offset = dissect_ber_choice(actx, tree, tvb, offset,
14315                                  gsm_old_SM_RP_DAold_choice, hf_index, ett_gsm_old_SM_RP_DAold,
14316                                  NULL);
14317
14318   return offset;
14319 }
14320
14321
14322
14323 static int
14324 dissect_gsm_old_T_msisdn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14325 #line 258 "gsmmap.cnf"
14326 actx->pinfo->p2p_dir = P2P_DIR_RECV;
14327    offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
14328
14329
14330
14331
14332   return offset;
14333 }
14334
14335
14336
14337 static int
14338 dissect_gsm_old_T_serviceCentreAddressOA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14339 #line 250 "gsmmap.cnf"
14340         actx->pinfo->p2p_dir = P2P_DIR_SENT;
14341   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
14342
14343
14344
14345
14346   return offset;
14347 }
14348
14349
14350 static const value_string gsm_old_SM_RP_OAold_vals[] = {
14351   {   2, "msisdn" },
14352   {   4, "serviceCentreAddressOA" },
14353   {   5, "noSM-RP-OA" },
14354   { 0, NULL }
14355 };
14356
14357 static const ber_choice_t gsm_old_SM_RP_OAold_choice[] = {
14358   {   2, &hf_gsm_old_msisdn_01   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_msisdn },
14359   {   4, &hf_gsm_old_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_serviceCentreAddressOA },
14360   {   5, &hf_gsm_old_noSM_RP_OA  , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
14361   { 0, NULL, 0, 0, 0, NULL }
14362 };
14363
14364 static int
14365 dissect_gsm_old_SM_RP_OAold(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14366   offset = dissect_ber_choice(actx, tree, tvb, offset,
14367                                  gsm_old_SM_RP_OAold_choice, hf_index, ett_gsm_old_SM_RP_OAold,
14368                                  NULL);
14369
14370   return offset;
14371 }
14372
14373
14374 static const ber_sequence_t gsm_old_ForwardSM_Arg_sequence[] = {
14375   { &hf_gsm_old_sm_RP_DA    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_DAold },
14376   { &hf_gsm_old_sm_RP_OA    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_OAold },
14377   { &hf_gsm_old_sm_RP_UI    , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
14378   { &hf_gsm_old_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
14379   { NULL, 0, 0, 0, NULL }
14380 };
14381
14382 static int
14383 dissect_gsm_old_ForwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14384 #line 272 "gsmmap.cnf"
14385
14386         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
14387   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14388                                    gsm_old_ForwardSM_Arg_sequence, hf_index, ett_gsm_old_ForwardSM_Arg);
14389
14390
14391         if (!actx->value_ptr)
14392                 return offset;
14393         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
14394
14395
14396
14397   return offset;
14398 }
14399
14400
14401 static const ber_sequence_t gsm_old_SendRoutingInfoArgV2_sequence[] = {
14402   { &hf_gsm_old_msisdn      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14403   { &hf_gsm_old_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
14404   { &hf_gsm_old_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding },
14405   { &hf_gsm_old_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14406   { NULL, 0, 0, 0, NULL }
14407 };
14408
14409 static int
14410 dissect_gsm_old_SendRoutingInfoArgV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14411   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14412                                    gsm_old_SendRoutingInfoArgV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoArgV2);
14413
14414   return offset;
14415 }
14416
14417
14418 static const ber_sequence_t gsm_old_SendRoutingInfoResV2_sequence[] = {
14419   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
14420   { &hf_gsm_old_routingInfo , -1 /*imported*/, -1 /*imported*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo },
14421   { &hf_gsm_old_cug_CheckInfo, -1 /*imported*/, -1 /*imported*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_CUG_CheckInfo },
14422   { NULL, 0, 0, 0, NULL }
14423 };
14424
14425 static int
14426 dissect_gsm_old_SendRoutingInfoResV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14427   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14428                                    gsm_old_SendRoutingInfoResV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoResV2);
14429
14430   return offset;
14431 }
14432
14433
14434 /* --- Module SS-DataTypes --- --- ---                                        */
14435
14436
14437
14438 static int
14439 dissect_gsm_ss_SS_UserData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14440   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
14441                                             actx, tree, tvb, offset, hf_index,
14442                                             NULL);
14443
14444   return offset;
14445 }
14446
14447
14448
14449 static int
14450 dissect_gsm_ss_SS_Notification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14451   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14452                                        NULL);
14453
14454   return offset;
14455 }
14456
14457
14458
14459 static int
14460 dissect_gsm_ss_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14461   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
14462
14463   return offset;
14464 }
14465
14466
14467 static const value_string gsm_ss_CallOnHold_Indicator_vals[] = {
14468   {   0, "callRetrieved" },
14469   {   1, "callOnHold" },
14470   { 0, NULL }
14471 };
14472
14473
14474 static int
14475 dissect_gsm_ss_CallOnHold_Indicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14476   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14477                                   NULL);
14478
14479   return offset;
14480 }
14481
14482
14483 static const value_string gsm_ss_ECT_CallState_vals[] = {
14484   {   0, "alerting" },
14485   {   1, "active" },
14486   { 0, NULL }
14487 };
14488
14489
14490 static int
14491 dissect_gsm_ss_ECT_CallState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14492   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14493                                   NULL);
14494
14495   return offset;
14496 }
14497
14498
14499 static const ber_sequence_t gsm_ss_RemotePartyNumber_sequence[] = {
14500   { &hf_gsm_ss_partyNumber  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14501   { &hf_gsm_ss_partyNumberSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
14502   { NULL, 0, 0, 0, NULL }
14503 };
14504
14505 static int
14506 dissect_gsm_ss_RemotePartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14507   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14508                                    gsm_ss_RemotePartyNumber_sequence, hf_index, ett_gsm_ss_RemotePartyNumber);
14509
14510   return offset;
14511 }
14512
14513
14514 static const value_string gsm_ss_RDN_vals[] = {
14515   {   0, "presentationAllowedAddress" },
14516   {   1, "presentationRestricted" },
14517   {   2, "numberNotAvailableDueToInterworking" },
14518   {   3, "presentationRestrictedAddress" },
14519   { 0, NULL }
14520 };
14521
14522 static const ber_choice_t gsm_ss_RDN_choice[] = {
14523   {   0, &hf_gsm_ss_presentationAllowedAddress, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber },
14524   {   1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14525   {   2, &hf_gsm_ss_numberNotAvailableDueToInterworking, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14526   {   3, &hf_gsm_ss_presentationRestrictedAddress, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber },
14527   { 0, NULL, 0, 0, 0, NULL }
14528 };
14529
14530 static int
14531 dissect_gsm_ss_RDN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14532   offset = dissect_ber_choice(actx, tree, tvb, offset,
14533                                  gsm_ss_RDN_choice, hf_index, ett_gsm_ss_RDN,
14534                                  NULL);
14535
14536   return offset;
14537 }
14538
14539
14540 static const ber_sequence_t gsm_ss_ECT_Indicator_sequence[] = {
14541   { &hf_gsm_ss_ect_CallState, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_CallState },
14542   { &hf_gsm_ss_rdn          , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_RDN },
14543   { NULL, 0, 0, 0, NULL }
14544 };
14545
14546 static int
14547 dissect_gsm_ss_ECT_Indicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14548   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14549                                    gsm_ss_ECT_Indicator_sequence, hf_index, ett_gsm_ss_ECT_Indicator);
14550
14551   return offset;
14552 }
14553
14554
14555
14556 static int
14557 dissect_gsm_ss_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14558   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14559                                   NULL);
14560
14561   return offset;
14562 }
14563
14564
14565 static const ber_sequence_t gsm_ss_NameSet_sequence[] = {
14566   { &hf_gsm_ss_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
14567   { &hf_gsm_ss_lengthInCharacters, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_INTEGER },
14568   { &hf_gsm_ss_nameString   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_String },
14569   { NULL, 0, 0, 0, NULL }
14570 };
14571
14572 static int
14573 dissect_gsm_ss_NameSet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14574   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14575                                    gsm_ss_NameSet_sequence, hf_index, ett_gsm_ss_NameSet);
14576
14577   return offset;
14578 }
14579
14580
14581 static const value_string gsm_ss_Name_vals[] = {
14582   {   0, "namePresentationAllowed" },
14583   {   1, "presentationRestricted" },
14584   {   2, "nameUnavailable" },
14585   {   3, "namePresentationRestricted" },
14586   { 0, NULL }
14587 };
14588
14589 static const ber_choice_t gsm_ss_Name_choice[] = {
14590   {   0, &hf_gsm_ss_namePresentationAllowed, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet },
14591   {   1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14592   {   2, &hf_gsm_ss_nameUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14593   {   3, &hf_gsm_ss_namePresentationRestricted, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet },
14594   { 0, NULL, 0, 0, 0, NULL }
14595 };
14596
14597 static int
14598 dissect_gsm_ss_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14599   offset = dissect_ber_choice(actx, tree, tvb, offset,
14600                                  gsm_ss_Name_choice, hf_index, ett_gsm_ss_Name,
14601                                  NULL);
14602
14603   return offset;
14604 }
14605
14606
14607 static const ber_sequence_t gsm_ss_NameIndicator_sequence[] = {
14608   { &hf_gsm_ss_callingName  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_Name },
14609   { NULL, 0, 0, 0, NULL }
14610 };
14611
14612 static int
14613 dissect_gsm_ss_NameIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14614   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14615                                    gsm_ss_NameIndicator_sequence, hf_index, ett_gsm_ss_NameIndicator);
14616
14617   return offset;
14618 }
14619
14620
14621 static const value_string gsm_ss_Multicall_Indicator_vals[] = {
14622   {   0, "nbr-SNexceeded" },
14623   {   1, "nbr-Userexceeded" },
14624   { 0, NULL }
14625 };
14626
14627
14628 static int
14629 dissect_gsm_ss_Multicall_Indicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14630   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14631                                   NULL);
14632
14633   return offset;
14634 }
14635
14636
14637 static const ber_sequence_t gsm_ss_NotifySS_Arg_sequence[] = {
14638   { &hf_gsm_ss_ss_Code      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
14639   { &hf_gsm_ss_ss_Status    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
14640   { &hf_gsm_ss_ss_Notification, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_SS_Notification },
14641   { &hf_gsm_ss_callIsWaiting_Indicator, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14642   { &hf_gsm_ss_callOnHold_Indicator, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_CallOnHold_Indicator },
14643   { &hf_gsm_ss_mpty_Indicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14644   { &hf_gsm_ss_cug_Index    , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index },
14645   { &hf_gsm_ss_clirSuppressionRejected, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14646   { &hf_gsm_ss_ect_Indicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_Indicator },
14647   { &hf_gsm_ss_nameIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameIndicator },
14648   { &hf_gsm_ss_ccbs_Feature , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
14649   { &hf_gsm_ss_alertingPattern, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
14650   { &hf_gsm_ss_multicall_Indicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Multicall_Indicator },
14651   { NULL, 0, 0, 0, NULL }
14652 };
14653
14654 static int
14655 dissect_gsm_ss_NotifySS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14656   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14657                                    gsm_ss_NotifySS_Arg_sequence, hf_index, ett_gsm_ss_NotifySS_Arg);
14658
14659   return offset;
14660 }
14661
14662
14663
14664 static int
14665 dissect_gsm_ss_E1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14666   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14667                                   NULL);
14668
14669   return offset;
14670 }
14671
14672
14673
14674 static int
14675 dissect_gsm_ss_E2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14676   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14677                                   NULL);
14678
14679   return offset;
14680 }
14681
14682
14683
14684 static int
14685 dissect_gsm_ss_E3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14686   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14687                                   NULL);
14688
14689   return offset;
14690 }
14691
14692
14693
14694 static int
14695 dissect_gsm_ss_E4(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14696   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14697                                   NULL);
14698
14699   return offset;
14700 }
14701
14702
14703
14704 static int
14705 dissect_gsm_ss_E5(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14706   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14707                                   NULL);
14708
14709   return offset;
14710 }
14711
14712
14713
14714 static int
14715 dissect_gsm_ss_E6(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14716   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14717                                   NULL);
14718
14719   return offset;
14720 }
14721
14722
14723
14724 static int
14725 dissect_gsm_ss_E7(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14726   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14727                                   NULL);
14728
14729   return offset;
14730 }
14731
14732
14733 static const ber_sequence_t gsm_ss_ChargingInformation_sequence[] = {
14734   { &hf_gsm_ss_e1           , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E1 },
14735   { &hf_gsm_ss_e2           , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E2 },
14736   { &hf_gsm_ss_e3           , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E3 },
14737   { &hf_gsm_ss_e4           , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E4 },
14738   { &hf_gsm_ss_e5           , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E5 },
14739   { &hf_gsm_ss_e6           , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E6 },
14740   { &hf_gsm_ss_e7           , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E7 },
14741   { NULL, 0, 0, 0, NULL }
14742 };
14743
14744 static int
14745 dissect_gsm_ss_ChargingInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14746   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14747                                    gsm_ss_ChargingInformation_sequence, hf_index, ett_gsm_ss_ChargingInformation);
14748
14749   return offset;
14750 }
14751
14752
14753 static const ber_sequence_t gsm_ss_ForwardChargeAdviceArg_sequence[] = {
14754   { &hf_gsm_ss_ss_Code      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
14755   { &hf_gsm_ss_chargingInformation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ChargingInformation },
14756   { NULL, 0, 0, 0, NULL }
14757 };
14758
14759 static int
14760 dissect_gsm_ss_ForwardChargeAdviceArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14761   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14762                                    gsm_ss_ForwardChargeAdviceArg_sequence, hf_index, ett_gsm_ss_ForwardChargeAdviceArg);
14763
14764   return offset;
14765 }
14766
14767
14768 static const ber_sequence_t gsm_ss_ForwardCUG_InfoArg_sequence[] = {
14769   { &hf_gsm_ss_cug_Index    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index },
14770   { &hf_gsm_ss_suppressPrefCUG, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14771   { &hf_gsm_ss_suppressOA   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14772   { NULL, 0, 0, 0, NULL }
14773 };
14774
14775 static int
14776 dissect_gsm_ss_ForwardCUG_InfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14777   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14778                                    gsm_ss_ForwardCUG_InfoArg_sequence, hf_index, ett_gsm_ss_ForwardCUG_InfoArg);
14779
14780   return offset;
14781 }
14782
14783
14784 static const ber_sequence_t gsm_ss_AccessRegisterCCEntryArg_sequence[] = {
14785   { NULL, 0, 0, 0, NULL }
14786 };
14787
14788 static int
14789 dissect_gsm_ss_AccessRegisterCCEntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14790   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14791                                    gsm_ss_AccessRegisterCCEntryArg_sequence, hf_index, ett_gsm_ss_AccessRegisterCCEntryArg);
14792
14793   return offset;
14794 }
14795
14796
14797 static const ber_sequence_t gsm_ss_CallDeflectionArg_sequence[] = {
14798   { &hf_gsm_ss_deflectedToNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
14799   { &hf_gsm_ss_deflectedToSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
14800   { NULL, 0, 0, 0, NULL }
14801 };
14802
14803 static int
14804 dissect_gsm_ss_CallDeflectionArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14805   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14806                                    gsm_ss_CallDeflectionArg_sequence, hf_index, ett_gsm_ss_CallDeflectionArg);
14807
14808   return offset;
14809 }
14810
14811
14812 static const value_string gsm_ss_UUS_Service_vals[] = {
14813   {   1, "uUS1" },
14814   {   2, "uUS2" },
14815   {   3, "uUS3" },
14816   { 0, NULL }
14817 };
14818
14819
14820 static int
14821 dissect_gsm_ss_UUS_Service(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14822   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14823                                   NULL);
14824
14825   return offset;
14826 }
14827
14828
14829
14830 static int
14831 dissect_gsm_ss_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14832   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
14833
14834   return offset;
14835 }
14836
14837
14838 static const ber_sequence_t gsm_ss_UserUserServiceArg_sequence[] = {
14839   { &hf_gsm_ss_uUS_Service  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_UUS_Service },
14840   { &hf_gsm_ss_uUS_Required , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_BOOLEAN },
14841   { NULL, 0, 0, 0, NULL }
14842 };
14843
14844 static int
14845 dissect_gsm_ss_UserUserServiceArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14846   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14847                                    gsm_ss_UserUserServiceArg_sequence, hf_index, ett_gsm_ss_UserUserServiceArg);
14848
14849   return offset;
14850 }
14851
14852
14853 static const ber_sequence_t gsm_ss_LocationNotificationArg_sequence[] = {
14854   { &hf_gsm_ss_notificationType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
14855   { &hf_gsm_ss_locationType , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType },
14856   { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
14857   { &hf_gsm_ss_lcsClientName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName },
14858   { &hf_gsm_ss_lcsRequestorID, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID },
14859   { &hf_gsm_ss_lcsCodeword  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword },
14860   { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
14861   { NULL, 0, 0, 0, NULL }
14862 };
14863
14864 static int
14865 dissect_gsm_ss_LocationNotificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14866   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14867                                    gsm_ss_LocationNotificationArg_sequence, hf_index, ett_gsm_ss_LocationNotificationArg);
14868
14869   return offset;
14870 }
14871
14872
14873 static const value_string gsm_ss_VerificationResponse_vals[] = {
14874   {   0, "permissionDenied" },
14875   {   1, "permissionGranted" },
14876   { 0, NULL }
14877 };
14878
14879
14880 static int
14881 dissect_gsm_ss_VerificationResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14882   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14883                                   NULL);
14884
14885   return offset;
14886 }
14887
14888
14889 static const ber_sequence_t gsm_ss_LocationNotificationRes_sequence[] = {
14890   { &hf_gsm_ss_verificationResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_VerificationResponse },
14891   { NULL, 0, 0, 0, NULL }
14892 };
14893
14894 static int
14895 dissect_gsm_ss_LocationNotificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14896   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14897                                    gsm_ss_LocationNotificationRes_sequence, hf_index, ett_gsm_ss_LocationNotificationRes);
14898
14899   return offset;
14900 }
14901
14902
14903 static const value_string gsm_ss_MOLR_Type_vals[] = {
14904   {   0, "locationEstimate" },
14905   {   1, "assistanceData" },
14906   {   2, "deCipheringKeys" },
14907   {   3, "deferredMo-lrTTTPInitiation" },
14908   {   4, "deferredMo-lrSelfLocationInitiation" },
14909   {   5, "deferredMt-lrOrmo-lrTTTPLocationEstimate" },
14910   {   6, "deferredMt-lrOrmo-lrCancellation" },
14911   { 0, NULL }
14912 };
14913
14914
14915 static int
14916 dissect_gsm_ss_MOLR_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14917   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14918                                   NULL);
14919
14920   return offset;
14921 }
14922
14923
14924 static const value_string gsm_ss_LocationMethod_vals[] = {
14925   {   0, "msBasedEOTD" },
14926   {   1, "msAssistedEOTD" },
14927   {   2, "assistedGPS" },
14928   {   3, "msBasedOTDOA" },
14929   { 0, NULL }
14930 };
14931
14932
14933 static int
14934 dissect_gsm_ss_LocationMethod(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14935   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14936                                   NULL);
14937
14938   return offset;
14939 }
14940
14941
14942
14943 static int
14944 dissect_gsm_ss_GPSAssistanceData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14945   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14946                                        NULL);
14947
14948   return offset;
14949 }
14950
14951
14952 static const value_string gsm_ss_TerminationCause_vals[] = {
14953   {   0, "subscriberTermination" },
14954   {   1, "uETermination" },
14955   { 0, NULL }
14956 };
14957
14958
14959 static int
14960 dissect_gsm_ss_TerminationCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14961   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14962                                   NULL);
14963
14964   return offset;
14965 }
14966
14967
14968 static const ber_sequence_t gsm_ss_LCS_MOLRArg_sequence[] = {
14969   { &hf_gsm_ss_molr_Type    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_MOLR_Type },
14970   { &hf_gsm_ss_locationMethod, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LocationMethod },
14971   { &hf_gsm_ss_lcs_QoS      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
14972   { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
14973   { &hf_gsm_ss_mlc_Number   , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14974   { &hf_gsm_ss_gpsAssistanceData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_GPSAssistanceData },
14975   { &hf_gsm_ss_supportedGADShapes, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
14976   { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
14977   { &hf_gsm_ss_ageOfLocationInfo, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
14978   { &hf_gsm_ss_locationType , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType },
14979   { &hf_gsm_ss_pseudonymIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14980   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
14981   { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
14982   { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
14983   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
14984   { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
14985   { &hf_gsm_ss_locationUpdateRequest, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14986   { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
14987   { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
14988   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14989   { NULL, 0, 0, 0, NULL }
14990 };
14991
14992 static int
14993 dissect_gsm_ss_LCS_MOLRArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14994   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14995                                    gsm_ss_LCS_MOLRArg_sequence, hf_index, ett_gsm_ss_LCS_MOLRArg);
14996
14997   return offset;
14998 }
14999
15000
15001
15002 static int
15003 dissect_gsm_ss_DecipheringKeys(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15004   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15005                                        NULL);
15006
15007   return offset;
15008 }
15009
15010
15011 static const ber_sequence_t gsm_ss_LCS_MOLRRes_sequence[] = {
15012   { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
15013   { &hf_gsm_ss_decipheringKeys, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DecipheringKeys },
15014   { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
15015   { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
15016   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15017   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15018   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15019   { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
15020   { NULL, 0, 0, 0, NULL }
15021 };
15022
15023 static int
15024 dissect_gsm_ss_LCS_MOLRRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15025   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15026                                    gsm_ss_LCS_MOLRRes_sequence, hf_index, ett_gsm_ss_LCS_MOLRRes);
15027
15028   return offset;
15029 }
15030
15031
15032 static const ber_sequence_t gsm_ss_LCS_AreaEventRequestArg_sequence[] = {
15033   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15034   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15035   { &hf_gsm_ss_deferredLocationEventType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
15036   { &hf_gsm_ss_areaEventInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo },
15037   { NULL, 0, 0, 0, NULL }
15038 };
15039
15040 static int
15041 dissect_gsm_ss_LCS_AreaEventRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15042   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15043                                    gsm_ss_LCS_AreaEventRequestArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventRequestArg);
15044
15045   return offset;
15046 }
15047
15048
15049 static const ber_sequence_t gsm_ss_LCS_AreaEventReportArg_sequence[] = {
15050   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15051   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15052   { NULL, 0, 0, 0, NULL }
15053 };
15054
15055 static int
15056 dissect_gsm_ss_LCS_AreaEventReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15057   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15058                                    gsm_ss_LCS_AreaEventReportArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventReportArg);
15059
15060   return offset;
15061 }
15062
15063
15064 static const ber_sequence_t gsm_ss_LCS_AreaEventCancellationArg_sequence[] = {
15065   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15066   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15067   { NULL, 0, 0, 0, NULL }
15068 };
15069
15070 static int
15071 dissect_gsm_ss_LCS_AreaEventCancellationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15072   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15073                                    gsm_ss_LCS_AreaEventCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventCancellationArg);
15074
15075   return offset;
15076 }
15077
15078
15079 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestArg_sequence[] = {
15080   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15081   { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
15082   { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
15083   { &hf_gsm_ss_qoS          , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
15084   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15085   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15086   { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
15087   { NULL, 0, 0, 0, NULL }
15088 };
15089
15090 static int
15091 dissect_gsm_ss_LCS_PeriodicLocationRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15092   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15093                                    gsm_ss_LCS_PeriodicLocationRequestArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestArg);
15094
15095   return offset;
15096 }
15097
15098
15099 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestRes_sequence[] = {
15100   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15101   { NULL, 0, 0, 0, NULL }
15102 };
15103
15104 static int
15105 dissect_gsm_ss_LCS_PeriodicLocationRequestRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15106   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15107                                    gsm_ss_LCS_PeriodicLocationRequestRes_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestRes);
15108
15109   return offset;
15110 }
15111
15112
15113 static const ber_sequence_t gsm_ss_LCS_LocationUpdateArg_sequence[] = {
15114   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15115   { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
15116   { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
15117   { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
15118   { NULL, 0, 0, 0, NULL }
15119 };
15120
15121 static int
15122 dissect_gsm_ss_LCS_LocationUpdateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15123   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15124                                    gsm_ss_LCS_LocationUpdateArg_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateArg);
15125
15126   return offset;
15127 }
15128
15129
15130 static const ber_sequence_t gsm_ss_LCS_LocationUpdateRes_sequence[] = {
15131   { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
15132   { NULL, 0, 0, 0, NULL }
15133 };
15134
15135 static int
15136 dissect_gsm_ss_LCS_LocationUpdateRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15137   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15138                                    gsm_ss_LCS_LocationUpdateRes_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateRes);
15139
15140   return offset;
15141 }
15142
15143
15144 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationCancellationArg_sequence[] = {
15145   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15146   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15147   { NULL, 0, 0, 0, NULL }
15148 };
15149
15150 static int
15151 dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15152   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15153                                    gsm_ss_LCS_PeriodicLocationCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationCancellationArg);
15154
15155   return offset;
15156 }
15157
15158
15159 /* --- Module SS-Operations --- --- ---                                       */
15160
15161
15162 /*--- End of included file: packet-gsm_map-fn.c ---*/
15163 #line 567 "packet-gsmmap-template.c"
15164
15165 /* Specific translation for MAP V3 */
15166 const value_string gsm_map_V1V2_opr_code_strings[] = {
15167   {  44, "forwardSM" },
15168   {  45, "sendRoutingInfoForSM" },
15169   {  46, "forwardSM" },
15170   { 0, NULL }
15171 };
15172 /* Generic translation for MAP operation */
15173 const value_string gsm_map_opr_code_strings[] = {
15174
15175 /*--- Included file: packet-gsm_map-table.c ---*/
15176 #line 1 "packet-gsm_map-table.c"
15177
15178 /* --- Module Remote-Operations-Information-Objects --- --- ---               */
15179
15180 /* Unknown or empty loop list OPERATION */
15181
15182 /* --- Module MobileDomainDefinitions --- --- ---                             */
15183
15184 /* Unknown or empty loop list OPERATION */
15185
15186 /* --- Module MAP-ApplicationContexts --- --- ---                             */
15187
15188 /* Unknown or empty loop list OPERATION */
15189
15190 /* --- Module MAP-SS-Code --- --- ---                                         */
15191
15192 /* Unknown or empty loop list OPERATION */
15193
15194 /* --- Module MAP-BS-Code --- --- ---                                         */
15195
15196 /* Unknown or empty loop list OPERATION */
15197
15198 /* --- Module MAP-TS-Code --- --- ---                                         */
15199
15200 /* Unknown or empty loop list OPERATION */
15201
15202 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
15203
15204 /* Unknown or empty loop list OPERATION */
15205
15206 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
15207
15208 /* Unknown or empty loop list OPERATION */
15209
15210 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
15211
15212 /* Unknown or empty loop list OPERATION */
15213
15214 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
15215
15216 /* Unknown or empty loop list OPERATION */
15217
15218 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
15219
15220 /* Unknown or empty loop list OPERATION */
15221
15222 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
15223
15224 /* Unknown or empty loop list OPERATION */
15225
15226 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
15227
15228 /* Unknown or empty loop list OPERATION */
15229
15230 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
15231
15232 /* Unknown or empty loop list OPERATION */
15233
15234 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
15235
15236 /* Unknown or empty loop list OPERATION */
15237
15238 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
15239
15240 /* Unknown or empty loop list OPERATION */
15241
15242 /* --- Module MAP-DialogueInformation --- --- ---                             */
15243
15244 /* Unknown or empty loop list OPERATION */
15245
15246 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
15247
15248         { 85, "sendRoutingInfoForLCS" },
15249         { 83, "provideSubscriberLocation" },
15250         { 86, "subscriberLocationReport" },
15251
15252 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
15253
15254         { 39, "prepareGroupCall" },
15255         { 40, "sendGroupCallEndSignal" },
15256         { 41, "processGroupCallSignalling" },
15257         { 42, "forwardGroupCallSignalling" },
15258         { 84, "sendGroupCallInfo" },
15259
15260 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
15261
15262         { 45, "sendRoutingInfoForSM" },
15263         { 46, "mo_ForwardSM" },
15264         { 44, "mt_ForwardSM" },
15265         { 47, "reportSM_DeliveryStatus" },
15266         { 64, "alertServiceCentre" },
15267         { 63, "informServiceCentre" },
15268         { 66, "readyForSM" },
15269         { 21, "mt_ForwardSM_VGCS" },
15270
15271 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
15272
15273         { 10, "registerSS" },
15274         { 11, "eraseSS" },
15275         { 12, "activateSS" },
15276         { 13, "deactivateSS" },
15277         { 14, "interrogateSS" },
15278         { 59, "processUnstructuredSS_Request" },
15279         { 60, "unstructuredSS_Request" },
15280         { 61, "unstructuredSS_Notify" },
15281         { 17, "registerPassword" },
15282         { 18, "getPassword" },
15283         { 72, "ss_InvocationNotification" },
15284         { 76, "registerCC_Entry" },
15285         { 77, "eraseCC_Entry" },
15286
15287 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
15288
15289         { 22, "sendRoutingInfo" },
15290         { 4, "provideRoamingNumber" },
15291         { 6, "resumeCallHandling" },
15292         { 73, "setReportingState" },
15293         { 74, "statusReport" },
15294         { 75, "remoteUserFree" },
15295         { 87, "ist_Alert" },
15296         { 88, "ist_Command" },
15297         { 20, "releaseResources" },
15298
15299 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
15300
15301         { 50, "activateTraceMode" },
15302         { 51, "deactivateTraceMode" },
15303         { 58, "sendIMSI" },
15304
15305 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
15306
15307         { 2, "updateLocation" },
15308         { 3, "cancelLocation" },
15309         { 67, "purgeMS" },
15310         { 55, "sendIdentification" },
15311         { 23, "updateGprsLocation" },
15312         { 70, "provideSubscriberInfo" },
15313         { 71, "anyTimeInterrogation" },
15314         { 62, "anyTimeSubscriptionInterrogation" },
15315         { 65, "anyTimeModification" },
15316         { 5, "noteSubscriberDataModified" },
15317         { 68, "prepareHandover" },
15318         { 29, "sendEndSignal" },
15319         { 33, "processAccessSignalling" },
15320         { 34, "forwardAccessSignalling" },
15321         { 69, "prepareSubsequentHandover" },
15322         { 56, "sendAuthenticationInfo" },
15323         { 15, "authenticationFailureReport" },
15324         { 43, "checkIMEI" },
15325         { 7, "insertSubscriberData" },
15326         { 8, "deleteSubscriberData" },
15327         { 37, "reset" },
15328         { 38, "forwardCheckSS_Indication" },
15329         { 57, "restoreData" },
15330         { 24, "sendRoutingInfoForGprs" },
15331         { 25, "failureReport" },
15332         { 26, "noteMsPresentForGprs" },
15333         { 89, "noteMM_Event" },
15334
15335 /* --- Module MAP-Errors --- --- ---                                          */
15336
15337 /* Unknown or empty loop list OPERATION */
15338
15339 /* --- Module MAP-Protocol --- --- ---                                        */
15340
15341 /* Unknown or empty loop list OPERATION */
15342
15343 /* --- Module DummyMAP --- --- ---                                            */
15344
15345 /* Unknown or empty loop list OPERATION */
15346
15347 /* --- Module SS-DataTypes --- --- ---                                        */
15348
15349 /* Unknown or empty loop list OPERATION */
15350
15351 /* --- Module SS-Operations --- --- ---                                       */
15352
15353         { 19, "processUnstructuredSS_Data" },
15354         { 16, "notifySS" },
15355         { 125, "forwardChargeAdvice" },
15356         { 120, "forwardCUG_Info" },
15357         { 124, "buildMPTY" },
15358         { 123, "holdMPTY" },
15359         { 122, "retrieveMPTY" },
15360         { 121, "splitMPTY" },
15361         { 126, "explicitCT" },
15362         { 119, "accessRegisterCCEntry" },
15363         { 117, "callDeflection" },
15364         { 118, "userUserService" },
15365         { 116, "lcs_LocationNotification" },
15366         { 115, "lcs_MOLR" },
15367         { 114, "lcs_AreaEventRequest" },
15368         { 113, "lcs_AreaEventReport" },
15369         { 112, "lcs_AreaEventCancellation" },
15370         { 111, "lcs_PeriodicLocationRequest" },
15371         { 110, "lcs_LocationUpdate" },
15372         { 109, "lcs_PeriodicLocationCancellation" },
15373
15374 /*--- End of included file: packet-gsm_map-table.c ---*/
15375 #line 578 "packet-gsmmap-template.c"
15376   { 0, NULL }
15377 };
15378 static const value_string gsm_map_err_code_string_vals[] = {
15379
15380 /*--- Included file: packet-gsm_map-table.c ---*/
15381 #line 1 "packet-gsm_map-table.c"
15382
15383 /* --- Module Remote-Operations-Information-Objects --- --- ---               */
15384
15385 /* Unknown or empty loop list OPERATION */
15386
15387 /* --- Module MobileDomainDefinitions --- --- ---                             */
15388
15389 /* Unknown or empty loop list OPERATION */
15390
15391 /* --- Module MAP-ApplicationContexts --- --- ---                             */
15392
15393 /* Unknown or empty loop list OPERATION */
15394
15395 /* --- Module MAP-SS-Code --- --- ---                                         */
15396
15397 /* Unknown or empty loop list OPERATION */
15398
15399 /* --- Module MAP-BS-Code --- --- ---                                         */
15400
15401 /* Unknown or empty loop list OPERATION */
15402
15403 /* --- Module MAP-TS-Code --- --- ---                                         */
15404
15405 /* Unknown or empty loop list OPERATION */
15406
15407 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
15408
15409 /* Unknown or empty loop list OPERATION */
15410
15411 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
15412
15413 /* Unknown or empty loop list OPERATION */
15414
15415 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
15416
15417 /* Unknown or empty loop list OPERATION */
15418
15419 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
15420
15421 /* Unknown or empty loop list OPERATION */
15422
15423 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
15424
15425 /* Unknown or empty loop list OPERATION */
15426
15427 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
15428
15429 /* Unknown or empty loop list OPERATION */
15430
15431 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
15432
15433 /* Unknown or empty loop list OPERATION */
15434
15435 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
15436
15437 /* Unknown or empty loop list OPERATION */
15438
15439 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
15440
15441 /* Unknown or empty loop list OPERATION */
15442
15443 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
15444
15445 /* Unknown or empty loop list OPERATION */
15446
15447 /* --- Module MAP-DialogueInformation --- --- ---                             */
15448
15449 /* Unknown or empty loop list OPERATION */
15450
15451 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
15452
15453         { 85, "sendRoutingInfoForLCS" },
15454         { 83, "provideSubscriberLocation" },
15455         { 86, "subscriberLocationReport" },
15456
15457 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
15458
15459         { 39, "prepareGroupCall" },
15460         { 40, "sendGroupCallEndSignal" },
15461         { 41, "processGroupCallSignalling" },
15462         { 42, "forwardGroupCallSignalling" },
15463         { 84, "sendGroupCallInfo" },
15464
15465 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
15466
15467         { 45, "sendRoutingInfoForSM" },
15468         { 46, "mo_ForwardSM" },
15469         { 44, "mt_ForwardSM" },
15470         { 47, "reportSM_DeliveryStatus" },
15471         { 64, "alertServiceCentre" },
15472         { 63, "informServiceCentre" },
15473         { 66, "readyForSM" },
15474         { 21, "mt_ForwardSM_VGCS" },
15475
15476 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
15477
15478         { 10, "registerSS" },
15479         { 11, "eraseSS" },
15480         { 12, "activateSS" },
15481         { 13, "deactivateSS" },
15482         { 14, "interrogateSS" },
15483         { 59, "processUnstructuredSS_Request" },
15484         { 60, "unstructuredSS_Request" },
15485         { 61, "unstructuredSS_Notify" },
15486         { 17, "registerPassword" },
15487         { 18, "getPassword" },
15488         { 72, "ss_InvocationNotification" },
15489         { 76, "registerCC_Entry" },
15490         { 77, "eraseCC_Entry" },
15491
15492 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
15493
15494         { 22, "sendRoutingInfo" },
15495         { 4, "provideRoamingNumber" },
15496         { 6, "resumeCallHandling" },
15497         { 73, "setReportingState" },
15498         { 74, "statusReport" },
15499         { 75, "remoteUserFree" },
15500         { 87, "ist_Alert" },
15501         { 88, "ist_Command" },
15502         { 20, "releaseResources" },
15503
15504 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
15505
15506         { 50, "activateTraceMode" },
15507         { 51, "deactivateTraceMode" },
15508         { 58, "sendIMSI" },
15509
15510 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
15511
15512         { 2, "updateLocation" },
15513         { 3, "cancelLocation" },
15514         { 67, "purgeMS" },
15515         { 55, "sendIdentification" },
15516         { 23, "updateGprsLocation" },
15517         { 70, "provideSubscriberInfo" },
15518         { 71, "anyTimeInterrogation" },
15519         { 62, "anyTimeSubscriptionInterrogation" },
15520         { 65, "anyTimeModification" },
15521         { 5, "noteSubscriberDataModified" },
15522         { 68, "prepareHandover" },
15523         { 29, "sendEndSignal" },
15524         { 33, "processAccessSignalling" },
15525         { 34, "forwardAccessSignalling" },
15526         { 69, "prepareSubsequentHandover" },
15527         { 56, "sendAuthenticationInfo" },
15528         { 15, "authenticationFailureReport" },
15529         { 43, "checkIMEI" },
15530         { 7, "insertSubscriberData" },
15531         { 8, "deleteSubscriberData" },
15532         { 37, "reset" },
15533         { 38, "forwardCheckSS_Indication" },
15534         { 57, "restoreData" },
15535         { 24, "sendRoutingInfoForGprs" },
15536         { 25, "failureReport" },
15537         { 26, "noteMsPresentForGprs" },
15538         { 89, "noteMM_Event" },
15539
15540 /* --- Module MAP-Errors --- --- ---                                          */
15541
15542 /* Unknown or empty loop list OPERATION */
15543
15544 /* --- Module MAP-Protocol --- --- ---                                        */
15545
15546 /* Unknown or empty loop list OPERATION */
15547
15548 /* --- Module DummyMAP --- --- ---                                            */
15549
15550 /* Unknown or empty loop list OPERATION */
15551
15552 /* --- Module SS-DataTypes --- --- ---                                        */
15553
15554 /* Unknown or empty loop list OPERATION */
15555
15556 /* --- Module SS-Operations --- --- ---                                       */
15557
15558         { 19, "processUnstructuredSS_Data" },
15559         { 16, "notifySS" },
15560         { 125, "forwardChargeAdvice" },
15561         { 120, "forwardCUG_Info" },
15562         { 124, "buildMPTY" },
15563         { 123, "holdMPTY" },
15564         { 122, "retrieveMPTY" },
15565         { 121, "splitMPTY" },
15566         { 126, "explicitCT" },
15567         { 119, "accessRegisterCCEntry" },
15568         { 117, "callDeflection" },
15569         { 118, "userUserService" },
15570         { 116, "lcs_LocationNotification" },
15571         { 115, "lcs_MOLR" },
15572         { 114, "lcs_AreaEventRequest" },
15573         { 113, "lcs_AreaEventReport" },
15574         { 112, "lcs_AreaEventCancellation" },
15575         { 111, "lcs_PeriodicLocationRequest" },
15576         { 110, "lcs_LocationUpdate" },
15577         { 109, "lcs_PeriodicLocationCancellation" },
15578
15579 /*--- End of included file: packet-gsm_map-table.c ---*/
15580 #line 582 "packet-gsmmap-template.c"
15581     { 0, NULL }
15582 };
15583 static const true_false_string gsm_map_extension_value = {
15584   "No Extension",
15585   "Extension"
15586 };
15587 static const value_string gsm_map_nature_of_number_values[] = {
15588         {   0x00,       "unknown" },
15589         {   0x01,       "International Number" },
15590         {   0x02,       "National Significant Number" },
15591         {   0x03,       "Network Specific Number" },
15592         {   0x04,       "Subscriber Number" },
15593         {   0x05,       "Reserved" },
15594         {   0x06,       "Abbreviated Number" },
15595         {   0x07,       "Reserved for extension" },
15596         { 0, NULL }
15597 };
15598 static const value_string gsm_map_number_plan_values[] = {
15599         {   0x00,       "unknown" },
15600         {   0x01,       "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
15601         {   0x02,       "spare" },
15602         {   0x03,       "Data Numbering (ITU-T Rec. X.121)" },
15603         {   0x04,       "Telex Numbering (ITU-T Rec. F.69)" },
15604         {   0x05,       "spare" },
15605         {   0x06,       "Land Mobile Numbering (ITU-T Rec. E.212)" },
15606         {   0x07,       "spare" },
15607         {   0x08,       "National Numbering" },
15608         {   0x09,       "Private Numbering" },
15609         {   0x0f,       "Reserved for extension" },
15610         { 0, NULL }
15611 };
15612
15613 static const true_false_string gsm_map_Ss_Status_q_bit_values = {
15614   "Quiescent",
15615   "Operative"
15616 };
15617 static const true_false_string gsm_map_Ss_Status_p_values = {
15618   "Provisioned",
15619   "Not Provisioned"
15620 };
15621 static const true_false_string gsm_map_Ss_Status_r_values = {
15622   "Registered",
15623   "Not Registered"
15624 };
15625 static const true_false_string gsm_map_Ss_Status_a_values = {
15626   "Active",
15627   "not Active"
15628 };
15629
15630 /*
15631  * Translate the MAP operation code value to a text string
15632  * Take into account the MAP version for ForwardSM
15633  */
15634 const gchar* gsm_map_opr_code(guint32 val) {
15635   switch (val) { 
15636   case 44: /*mt-forwardSM*/
15637   case 46: /*mo-forwardSM*/
15638     if (application_context_version < 3) {
15639       return val_to_str(val, gsm_map_V1V2_opr_code_strings, "Unknown GSM-MAP (%u)");
15640     }
15641     /* Else use the default map operation translation */
15642   default:
15643     return val_to_str(val, gsm_old_GSMMAPOperationLocalvalue_vals, "Unknown GSM-MAP opcode (%u)");
15644     break;
15645   }
15646 }
15647
15648 /* Prototype for a decoding function */
15649 typedef int (* dissect_function_t)( gboolean,
15650                                     tvbuff_t *,
15651                                     int ,
15652                                         asn1_ctx_t *,
15653                                     proto_tree *,
15654                                     int);
15655
15656 /*
15657  * Dissect Multiple Choice Message
15658  * This function is used to decode a message, when several encoding may be used.
15659  * For exemple, in the last MAP version, the Cancel Location is defined like this:
15660  * CancelLocationArg ::= [3] IMPLICIT SEQUENCE
15661  * But in the previous MAP version, it was a CHOICE between a SEQUENCE and an IMSI
15662  * As ASN1 encoders (or software) still uses the old encoding, this function allows
15663  * the decoding of both versions.
15664  * Moreover, some optimizations (or bad practice ?) in ASN1 encoder, removes the 
15665  * SEQUENCE tag, when only one parameter is present in the SEQUENCE.
15666  * This explain why the function expects 3 parameters:
15667  * - a [3] SEQUENCE corresponding the recent ASN1 MAP encoding
15668  * - a SEQUENCE for old style
15669  * - and a single parameter, for old version or optimizations
15670  *
15671  * The analyze of the first ASN1 tag, indicate what kind of decoding should be used, 
15672  * if the decoding function is provided (so not a NULL function)
15673  */
15674 static int dissect_mc_message(tvbuff_t *tvb,
15675                               int offset,
15676                                   asn1_ctx_t *actx,
15677                               proto_tree *tree,
15678                               gboolean implicit_param _U_, dissect_function_t parameter, int hf_index_param _U_,
15679                               gboolean implicit_seq   _U_, dissect_function_t sequence,  int hf_index_seq   _U_,
15680                               gboolean implicit_seq3 _U_, dissect_function_t sequence3, int hf_index_seq3 _U_ )
15681 {
15682   guint8 octet;
15683   gint8 bug_class;
15684   gboolean bug_pc, bug_ind_field;
15685   gint32 bug_tag;
15686   guint32 bug_len;
15687   proto_item *cause;
15688
15689   octet = tvb_get_guint8(tvb,0);
15690   if ( (octet & 0xf) == 3) {
15691     /* XXX  asn2wrs can not yet handle tagged assignment yes so this
15692      * XXX is some conformance file magic to work around that bug
15693      */
15694     offset = get_ber_identifier(tvb, offset, &bug_class, &bug_pc, &bug_tag);
15695     offset = get_ber_length(tvb, offset, &bug_len, &bug_ind_field);
15696     if (sequence3 != NULL) {
15697       offset= (sequence3) (implicit_seq3, tvb, offset, actx, tree, hf_index_seq3);
15698     } else {
15699       cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented [3] sequence, cannot decode");
15700       proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR);
15701       expert_add_info_format(actx->pinfo, cause, PI_UNDECODED, PI_ERROR, "Unknown or not implemented [3] sequence");
15702     }
15703   } else if (octet == 0x30) {
15704     if (sequence != NULL) {
15705       offset= (sequence) (implicit_seq, tvb, 0, actx, tree, hf_index_seq);
15706     } else {
15707       cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented sequence");
15708       proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR);
15709       expert_add_info_format(actx->pinfo, cause, PI_UNDECODED, PI_ERROR, "Unknown or not implemented sequence");
15710     }
15711   } else {
15712     if (parameter != NULL) {
15713       offset= (parameter) (implicit_param, tvb, offset, actx, tree, hf_index_param);
15714     } else {
15715       cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented parameter");
15716       proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR);
15717       expert_add_info_format(actx->pinfo, cause, PI_UNDECODED, PI_ERROR, "Unknown or not implemented parameter");
15718     }
15719   }
15720   return offset;
15721 }
15722
15723 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
15724  
15725   proto_item *cause;
15726
15727   switch(opcode){
15728   case  2: /*updateLocation*/   
15729     offset=dissect_gsm_map_ms_UpdateLocationArg(FALSE, tvb, offset, actx, tree, -1);
15730     break;
15731   case  3: /*cancelLocation*/
15732     offset=dissect_mc_message(tvb, offset, actx, tree,    
15733                               FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
15734                               FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
15735                               TRUE , dissect_gsm_map_ms_CancelLocationArg, -1);/*undefined*/
15736     break;
15737   case  4: /*provideRoamingNumber*/
15738     offset=dissect_gsm_map_ch_ProvideRoamingNumberArg(FALSE, tvb, offset, actx, tree, -1);
15739     break;
15740   case  5: /*noteSubscriberDataModified*/
15741     offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(FALSE, tvb, offset, actx, tree, -1);
15742     break;
15743   case  6: /*resumeCallHandling*/
15744     offset=dissect_gsm_map_ch_ResumeCallHandlingArg(FALSE, tvb, offset, actx, tree, -1);
15745     break;
15746   case  7: /*insertSubscriberData*/
15747     offset=dissect_gsm_map_ms_InsertSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
15748     break;
15749   case  8: /*deleteSubscriberData*/
15750     offset=dissect_gsm_map_ms_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
15751     break;
15752     /* TODO find out why this isn't in the ASN1 file */
15753     /* reserved sendParameters (9) */
15754   case  10: /*registerSS*/
15755     offset=dissect_gsm_map_ss_RegisterSS_Arg(FALSE, tvb, offset, actx, tree, -1);
15756     break;
15757   case  11: /*eraseSS*/
15758     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
15759     break;
15760   case 12: /*activateSS*/
15761     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
15762     break;
15763   case 13: /*deactivateSS*/
15764     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
15765     break;
15766   case 14: /*interrogateSS*/
15767     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
15768     break;
15769   case 15: /*authenticationFailureReport*/
15770     offset=dissect_gsm_map_ms_AuthenticationFailureReportArg(FALSE, tvb, offset, actx, tree, -1);
15771     break;
15772   case 16: /*SS-protocol notifySS*/
15773     offset=dissect_gsm_ss_NotifySS_Arg(FALSE, tvb, offset, actx, tree, -1);
15774     break;
15775   case 17: /*registerPassword*/
15776     offset=dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
15777     break;
15778   case 18: /*getPassword*/
15779     offset=dissect_gsm_old_GetPasswordArg(FALSE, tvb, offset, actx, tree, hf_gsm_map_getPassword);
15780     break;
15781   case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
15782     offset=dissect_gsm_ss_SS_UserData(FALSE, tvb, offset, actx, tree, hf_gsm_ss_SS_UserData);
15783     break;
15784   case 20: /*releaseResources*/
15785     offset=dissect_gsm_map_ch_ReleaseResourcesArg(FALSE, tvb, offset, actx, tree, -1);
15786     break;
15787   case 21: /*mt-ForwardSM-VGCS*/
15788     offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(FALSE, tvb, offset, actx, tree, -1);
15789     break;
15790   case 22: /*sendRoutingInfo*/
15791           if (application_context_version == 3){
15792                   offset=dissect_gsm_map_ch_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1);
15793           }else{
15794                   offset=dissect_gsm_old_SendRoutingInfoArgV2(FALSE, tvb, offset, actx, tree, -1);
15795           }
15796     break;
15797   case 23: /*updateGprsLocation*/
15798     offset=dissect_gsm_map_ms_UpdateGprsLocationArg(FALSE, tvb, offset, actx, tree, -1);
15799     break;
15800   case 24: /*sendRoutingInfoForGprs*/
15801     offset=dissect_gsm_map_ms_SendRoutingInfoForGprsArg(FALSE, tvb, offset, actx, tree, -1);
15802     break;
15803   case 25: /*failureReport*/
15804     offset=dissect_gsm_map_ms_FailureReportArg(FALSE, tvb, offset, actx, tree, -1);
15805     break;
15806   case 26: /*noteMsPresentForGprs*/
15807     offset=dissect_gsm_map_ms_NoteMsPresentForGprsArg(FALSE, tvb, offset, actx, tree, -1);
15808     break;
15809     /* undefined 27 */
15810     /* reserved performHandover (28) */
15811   case 29: /*sendEndSignal*/
15812     offset=dissect_mc_message(tvb, offset, actx, tree,    
15813                               FALSE, NULL, -1,
15814                               FALSE, dissect_gsm_old_Bss_APDU, -1,
15815                               TRUE , dissect_gsm_map_ms_SendEndSignal_Arg, -1);
15816     break;
15817     /* reserved performSubsequentHandover (30) */
15818   case 31: /*provideSIWFSNumber*/
15819     offset=dissect_gsm_old_ProvideSIWFSNumberArg(FALSE, tvb, offset, actx, tree, -1);
15820     break;
15821   case 32: /*sIWFSSignallingModify*/
15822     offset=dissect_gsm_old_SIWFSSignallingModifyArg(FALSE, tvb, offset, actx, tree, -1);
15823     break;
15824   case 33: /*processAccessSignalling*/
15825     offset=dissect_mc_message(tvb, offset, actx, tree,    
15826                               FALSE, NULL, -1,
15827                               FALSE, dissect_gsm_old_Bss_APDU, -1,
15828                               TRUE , dissect_gsm_map_ms_ProcessAccessSignalling_Arg, -1);
15829     break;
15830   case 34: /*forwardAccessSignalling*/
15831     offset=dissect_mc_message(tvb, offset, actx, tree,    
15832                               FALSE, NULL, -1,
15833                               FALSE, dissect_gsm_old_Bss_APDU, -1,
15834                               TRUE , dissect_gsm_map_ms_ForwardAccessSignalling_Arg, -1);
15835     break;
15836     /* reserved noteInternalHandover (35) */
15837     /* undefined 36 */
15838   case 37: /*reset*/
15839     offset=dissect_gsm_map_ms_ResetArg(FALSE, tvb, offset, actx, tree, -1);
15840     break;
15841   case 38: /*forwardCheckSS-Indication*/
15842     return offset;
15843     break;
15844   case 39: /*prepareGroupCall*/
15845     offset=dissect_gsm_map_gr_PrepareGroupCallArg(FALSE, tvb, offset, actx, tree, -1);
15846     break;
15847   case 40: /*sendGroupCallEndSignal*/
15848     offset = dissect_gsm_map_gr_SendGroupCallEndSignalArg(FALSE, tvb, offset, actx, tree, -1);
15849     break;
15850   case 41: /*processGroupCallSignalling*/
15851     offset = dissect_gsm_map_gr_ProcessGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1);
15852     break;
15853   case 42: /*forwardGroupCallSignalling*/
15854     offset=dissect_gsm_map_gr_ForwardGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1);
15855     break;
15856   case 43: /*checkIMEI*/
15857     offset=dissect_mc_message(tvb, offset, actx, tree,    
15858                               FALSE, dissect_gsm_map_IMEI, hf_gsm_map_ms_imei,
15859                               FALSE, dissect_gsm_map_ms_CheckIMEI_Arg, -1,
15860                               TRUE , NULL, -1); /* no [3] SEQUENCE */
15861     break;
15862   case 44: /*mt-forwardSM(v3) or ForwardSM(v1/v2)*/
15863     if (application_context_version == 3)
15864       offset=dissect_gsm_map_sm_MT_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
15865     else {
15866       offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
15867     }
15868     break;
15869   case 45: /*sendRoutingInfoForSM*/
15870     offset=dissect_gsm_map_sm_RoutingInfoForSM_Arg(FALSE, tvb, offset, actx, tree, -1);
15871     break;
15872   case 46: /*mo-forwardSM(v3) or ForwardSM(v1/v2)*/
15873     if (application_context_version == 3)
15874       offset=dissect_gsm_map_sm_MO_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
15875     else {
15876       offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
15877     }
15878     break;
15879   case 47: /*reportSM-DeliveryStatus*/
15880     offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, actx, tree, -1);
15881     break;
15882     /* reserved noteSubscriberPresent (48) */
15883     /* reserved alertServiceCentreWithoutResult (49) */
15884   case 50: /*activateTraceMode*/
15885     offset=dissect_gsm_map_om_ActivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1);
15886     break;
15887   case 51: /*deactivateTraceMode*/
15888     offset=dissect_gsm_map_om_DeactivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1);
15889     break;
15890     /* reserved traceSubscriberActivity (52) */
15891     /* undefined 53 */
15892     /* reserved beginSubscriberActivity (54) */
15893   case 55: /*sendIdentification*/
15894     offset=dissect_mc_message(tvb, offset, actx, tree,    
15895                               FALSE, dissect_gsm_map_TMSI, hf_gsm_map_tmsi,
15896                               FALSE, dissect_gsm_map_ms_SendIdentificationArg, -1,
15897                               TRUE,  NULL, -1);
15898     break;
15899   case 56: /*sendAuthenticationInfo*/ 
15900     offset=dissect_mc_message(tvb, offset, actx, tree,    
15901                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
15902                               FALSE, dissect_gsm_map_ms_SendAuthenticationInfoArg, -1,
15903                               TRUE,  NULL, -1);
15904     break;
15905   case 57: /*restoreData*/
15906     offset=dissect_gsm_map_ms_RestoreDataArg(FALSE, tvb, offset, actx, tree, -1);
15907     break;
15908   case 58: /*sendIMSI*/
15909     offset = dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_msisdn);
15910     break;
15911   case 59: /*processUnstructuredSS-Request*/
15912     offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
15913     break;
15914   case 60: /*unstructuredSS-Request*/
15915     offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
15916     break;
15917   case 61: /*unstructuredSS-Notify*/
15918     offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
15919     break;
15920   case 62: /*AnyTimeSubscriptionInterrogation*/
15921     offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(FALSE, tvb, offset, actx, tree, -1);
15922     break;
15923   case 63: /*informServiceCentre*/
15924     offset=dissect_gsm_map_sm_InformServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
15925     break;
15926   case 64: /*alertServiceCentre*/
15927     offset=dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
15928     break;
15929   case 65: /*AnyTimeModification*/
15930     offset=dissect_gsm_map_ms_AnyTimeModificationArg(FALSE, tvb, offset, actx, tree, -1);
15931     break;
15932   case 66: /*readyForSM*/
15933     offset=dissect_gsm_map_sm_ReadyForSM_Arg(FALSE, tvb, offset, actx, tree, -1);
15934     break;
15935   case 67: /*purgeMS*/
15936     offset=dissect_mc_message(tvb, offset, actx, tree,    
15937                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
15938                               FALSE, dissect_gsm_old_PurgeMSArgV2, -1, /*undefined*/
15939                               TRUE , dissect_gsm_map_ms_PurgeMS_Arg, -1);
15940     break;
15941   case 68: /*prepareHandover*/
15942     offset=dissect_mc_message(tvb, offset, actx, tree,    
15943                               FALSE, NULL, -1,
15944                               FALSE, dissect_gsm_old_PrepareHO_ArgOld, -1,
15945                               TRUE, dissect_gsm_map_ms_PrepareHO_Arg, -1);
15946     break;
15947   case 69: /*prepareSubsequentHandover*/
15948     offset=dissect_mc_message(tvb, offset, actx, tree,    
15949                               FALSE, NULL, -1,
15950                               FALSE, NULL, -1,
15951                               TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg, -1);
15952     break;
15953   case 70: /*provideSubscriberInfo*/
15954     offset=dissect_gsm_map_ms_ProvideSubscriberInfoArg(FALSE, tvb, offset, actx, tree, -1);
15955     break;
15956   case 71: /*anyTimeInterrogation*/
15957     offset=dissect_gsm_map_ms_AnyTimeInterrogationArg(FALSE, tvb, offset, actx, tree, -1);
15958     break;
15959   case 72: /*ss-InvocationNotificatio*/
15960     offset=dissect_gsm_map_ss_SS_InvocationNotificationArg(FALSE, tvb, offset, actx, tree, -1);
15961     break;
15962   case 73: /*setReportingState*/
15963     offset=dissect_gsm_map_ch_SetReportingStateArg(FALSE, tvb, offset, actx, tree, -1);
15964     break;
15965   case 74: /*statusReport*/
15966     offset=dissect_gsm_map_ch_StatusReportArg(FALSE, tvb, offset, actx, tree, -1);
15967     break;
15968   case 75: /*remoteUserFree*/
15969     offset=dissect_gsm_map_ch_RemoteUserFreeArg(FALSE, tvb, offset, actx, tree, -1);
15970     break;
15971   case 76: /*registerCC-Entry*/
15972     offset=dissect_gsm_map_ss_RegisterCC_EntryArg(FALSE, tvb, offset, actx, tree, -1);
15973     break;
15974   case 77: /*eraseCC-Entry*/
15975     offset=dissect_gsm_map_ss_EraseCC_EntryArg(FALSE, tvb, offset, actx, tree, -1);
15976     break;
15977   case 78: /*secureTransportClass1*/
15978   case 79: /*secureTransportClass1*/
15979   case 80: /*secureTransportClass1*/
15980   case 81: /*secureTransportClass1*/
15981     offset=dissect_gsm_old_SecureTransportArg(FALSE, tvb, offset, actx, tree, -1);
15982     break;
15983     /* undefined 82 */
15984   case 83: /*provideSubscriberLocation*/
15985     offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, actx, tree, -1);
15986     break;
15987   case 84: /*sendGroupCallInfo*/
15988     offset=dissect_gsm_map_gr_SendGroupCallInfoArg(FALSE, tvb, offset, actx, tree, -1);
15989     break;
15990   case 85: /*sendRoutingInfoForLCS*/
15991     offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(FALSE, tvb, offset, actx, tree, -1);
15992     break;
15993   case 86: /*subscriberLocationReport*/
15994     offset=dissect_gsm_map_lcs_SubscriberLocationReport_Arg(FALSE, tvb, offset, actx, tree, -1);
15995     break;
15996   case 87: /*ist-Alert*/
15997     offset=dissect_gsm_map_ch_IST_AlertArg(FALSE, tvb, offset, actx, tree, -1);
15998     break;
15999   case 88: /*ist-Command*/
16000     offset=dissect_gsm_map_ch_IST_CommandArg(FALSE, tvb, offset, actx, tree, -1);
16001     break;
16002   case 89: /*noteMM-Event*/
16003     offset=dissect_gsm_map_ms_NoteMM_EventArg(FALSE, tvb, offset, actx, tree, -1);
16004     break;
16005   case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
16006     offset=dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(FALSE, tvb, offset, actx, tree, -1);
16007     break;
16008   case 110: /*SS-protocol lcs-LocationUpdate*/
16009     offset=dissect_gsm_ss_LCS_LocationUpdateArg(FALSE, tvb, offset, actx, tree, -1);
16010     break;
16011   case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
16012     offset=dissect_gsm_ss_LCS_PeriodicLocationRequestArg(FALSE, tvb, offset, actx, tree, -1);
16013     break;
16014   case 112: /*SS-protocol lcs-AreaEventCancellation*/
16015     offset=dissect_gsm_ss_LCS_AreaEventCancellationArg(FALSE, tvb, offset, actx, tree, -1);
16016     break;
16017   case 113: /*SS-protocol lcs-AreaEventReport*/
16018     offset=dissect_gsm_ss_LCS_AreaEventReportArg(FALSE, tvb, offset, actx, tree, -1);
16019     break;
16020   case 114: /*SS-protocol lcs-AreaEventRequest*/
16021     offset=dissect_gsm_ss_LCS_AreaEventRequestArg(FALSE, tvb, offset, actx, tree, -1);
16022     break;
16023   case 115: /*SS-protocol lcs-MOLR*/
16024     offset=dissect_gsm_ss_LCS_MOLRArg(FALSE, tvb, offset, actx, tree, -1);
16025     break;
16026   case 116: /*SS-protocol lcs-LocationNotification*/
16027     offset=dissect_gsm_ss_LocationNotificationArg(FALSE, tvb, offset, actx, tree, -1);
16028     break;
16029   case 117: /*SS-protocol callDeflection*/
16030     offset=dissect_gsm_ss_CallDeflectionArg(FALSE, tvb, offset, actx, tree, -1);
16031     break;
16032   case 118: /*SS-protocol userUserService*/
16033     offset=dissect_gsm_ss_UserUserServiceArg(FALSE, tvb, offset, actx, tree, -1);
16034     break;
16035   case 119: /*SS-protocol accessRegisterCCEntry*/
16036     offset=dissect_gsm_ss_AccessRegisterCCEntryArg(FALSE, tvb, offset, actx, tree, -1);
16037     break;
16038   case 120: /*SS-protocol forwardCUG-Info*/
16039         application_context_version = 3;
16040     offset=dissect_gsm_ss_ForwardCUG_InfoArg(FALSE, tvb, offset, actx, tree, -1);
16041     break;
16042   case 121: /*SS-protocol splitMPTY no Argument*/
16043     break;
16044   case 122: /*SS-protocol retrieveMPTY no Argument*/
16045     break;
16046   case 123: /*SS-protocol holdMPTY no Argument*/
16047     break;
16048   case 124: /*SS-protocol buildMPTY no Argument*/
16049     break;
16050   case 125: /*SS-protocol forwardChargeAdvice*/
16051     offset=dissect_gsm_ss_ForwardChargeAdviceArg(FALSE, tvb, offset, actx, tree, -1);
16052     break;
16053   case 126: /*SS-protocol explicitCT no Argument*/
16054     break;
16055   default:
16056     cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
16057     proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
16058     expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",opcode);
16059   }
16060   return offset;
16061 }
16062
16063
16064 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
16065
16066   proto_item *cause;
16067         
16068   switch(opcode){
16069   case  2: /*updateLocation*/ 
16070     offset=dissect_mc_message(tvb, offset, actx, tree,    
16071                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
16072                               FALSE, dissect_gsm_map_ms_UpdateLocationRes, -1,
16073                               TRUE , NULL, -1);
16074     break;
16075   case  3: /*cancelLocation*/
16076     offset=dissect_gsm_map_ms_CancelLocationRes(FALSE, tvb, offset, actx, tree, -1);
16077     break;
16078   case  4: /*provideRoamingNumber*/
16079     offset=dissect_gsm_map_ch_ProvideRoamingNumberRes(FALSE, tvb, offset, actx, tree, -1);
16080     break;
16081   case  5: /*noteSubscriberDataModified*/
16082     offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(FALSE, tvb, offset, actx, tree, -1);
16083     break;
16084   case  6: /*resumeCallHandling*/
16085     offset=dissect_gsm_map_ch_ResumeCallHandlingRes(FALSE, tvb, offset, actx, tree, -1);
16086     break;
16087   case  7: /*insertSubscriberData*/
16088     offset=dissect_gsm_map_ms_InsertSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
16089     break;
16090   case  8: /*deleteSubscriberData*/
16091     offset=dissect_gsm_map_ms_DeleteSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
16092     break;
16093         /* TODO find out why this isn't in the ASN1 file
16094   case  9: sendParameters
16095     offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
16096     break;
16097         */
16098   case  10: /*registerSS*/
16099     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
16100     break;
16101   case  11: /*eraseSS*/
16102     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
16103     break;
16104   case 12: /*activateSS*/
16105     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
16106     break;
16107   case 13: /*deactivateSS*/
16108     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
16109     break;
16110   case 14: /*interrogateSS*/
16111     offset=dissect_gsm_map_ss_InterrogateSS_Res(FALSE, tvb, offset, actx, tree, -1);
16112     break;
16113   case 15: /*authenticationFailureReport*/
16114     offset=dissect_gsm_map_ms_AuthenticationFailureReportRes(FALSE, tvb, offset, actx, tree, -1);
16115     break;
16116   case 17: /*registerPassword*/
16117     /* change hf_gsm_map_ss_Code to something with password */
16118     offset=dissect_gsm_old_NewPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
16119     break;
16120   case 18: /*getPassword*/
16121     offset=dissect_gsm_old_CurrentPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_currentPassword);
16122     break;
16123   case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
16124     offset=dissect_gsm_ss_SS_UserData(FALSE, tvb, offset, actx, tree, hf_gsm_ss_SS_UserData);
16125     break;
16126   case 20: /*releaseResources*/
16127     offset=dissect_gsm_map_ch_ReleaseResourcesRes(FALSE, tvb, offset, actx, tree, -1);
16128     break;
16129   case 21: /*mt-ForwardSM-VGCS*/
16130     offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(FALSE, tvb, offset, actx, tree, -1);
16131     break;
16132   case 22: /*sendRoutingInfo*/ 
16133     offset=dissect_mc_message(tvb, offset, actx, tree,    
16134                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
16135                               FALSE, dissect_gsm_old_SendRoutingInfoResV2, -1,
16136                               TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
16137     break;
16138   case 23: /*updateGprsLocation*/
16139     offset=dissect_gsm_map_ms_UpdateGprsLocationRes(FALSE, tvb, offset, actx, tree, -1);
16140     break;
16141   case 24: /*sendRoutingInfoForGprs*/
16142     offset=dissect_gsm_map_ms_SendRoutingInfoForGprsRes(FALSE, tvb, offset, actx, tree, -1);
16143     break;
16144   case 25: /*failureReport*/
16145     offset=dissect_gsm_map_ms_FailureReportRes(FALSE, tvb, offset, actx, tree, -1);
16146     break;
16147   case 26: /*noteMsPresentForGprs*/
16148     offset=dissect_gsm_map_ms_NoteMsPresentForGprsRes(FALSE, tvb, offset, actx, tree, -1);
16149     break;
16150   case 29: /*sendEndSignal*/
16151           /* Taken from MAP-MobileServiceOperations{ 0 identified-organization (4) etsi (0) mobileDomain 
16152            * (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) version9 (9) }
16153            */
16154     offset=dissect_gsm_map_ms_SendEndSignal_Res(FALSE, tvb, offset, actx, tree, -1);
16155     break;
16156   case 31: /*provideSIWFSNumber*/
16157     offset=dissect_gsm_old_ProvideSIWFSNumberRes(FALSE, tvb, offset, actx, tree, -1);
16158     break;
16159   case 32: /*provideSIWFSSignallingModify*/
16160     offset=dissect_gsm_old_SIWFSSignallingModifyRes(FALSE, tvb, offset, actx, tree, -1);
16161     break;
16162   case 39: /*prepareGroupCall*/
16163     offset=dissect_gsm_map_gr_PrepareGroupCallRes(FALSE, tvb, offset, actx, tree, -1);
16164     break;
16165   case 40: /*sendGroupCallEndSignal*/
16166     offset=dissect_gsm_map_gr_SendGroupCallEndSignalRes(FALSE, tvb, offset, actx, tree, -1);
16167     break;
16168   case 43: /*checkIMEI*/ 
16169     offset=dissect_mc_message(tvb, offset, actx, tree,    
16170                               FALSE, dissect_gsm_map_ms_EquipmentStatus, hf_gsm_map_ms_equipmentStatus,
16171                               FALSE, dissect_gsm_map_ms_CheckIMEI_Res, -1,
16172                               TRUE,  NULL, -1);
16173     break;
16174   case 44: /*mt-forwardSM*/
16175     offset=dissect_gsm_map_sm_MT_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1);
16176     break;
16177   case 45: /*sendRoutingInfoForSM*/
16178     offset=dissect_gsm_map_sm_RoutingInfoForSM_Res(FALSE, tvb, offset, actx, tree, -1);
16179     break;
16180   case 46: /*mo-forwardSM*/
16181     offset=dissect_gsm_map_sm_MO_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1);
16182     break;
16183   case 47: /*reportSM-DeliveryStatus*/
16184     offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusRes(FALSE, tvb, offset, actx, tree, -1);
16185     break;
16186   case 48: /*noteSubscriberPresent*/
16187     break;
16188   case 50: /*activateTraceMode*/
16189     offset=dissect_gsm_map_om_ActivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1);
16190     break;
16191   case 51: /*deactivateTraceMode*/
16192     offset=dissect_gsm_map_om_DeactivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1);
16193     break;
16194   case 55: /*sendIdentification */
16195     offset=dissect_mc_message(tvb, offset, actx, tree,    
16196                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
16197                               FALSE, dissect_gsm_old_SendIdentificationResV2, -1,/*undefined*/
16198                               TRUE,  dissect_gsm_map_ms_SendIdentificationRes, -1);
16199     break;
16200   case 56: /*sendAuthenticationInfo*/ 
16201     offset=dissect_mc_message(tvb, offset, actx, tree,    
16202                               FALSE, NULL, -1,
16203                               FALSE, dissect_gsm_old_SendAuthenticationInfoResOld, -1,
16204                               TRUE , dissect_gsm_map_ms_SendAuthenticationInfoRes, -1);
16205     break;
16206   case 57: /*restoreData*/
16207     offset=dissect_gsm_map_ms_RestoreDataRes(FALSE, tvb, offset, actx, tree, -1);
16208     break;
16209   case 58: /*sendIMSI*/
16210     offset=dissect_gsm_map_IMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_ms_imsi);
16211     break;
16212   case 59: /*unstructuredSS-Request*/
16213     offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1);
16214     break;
16215   case 60: /*unstructuredSS-Request*/
16216     offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1);
16217     break;
16218   case 61: /*unstructuredSS-Notify*/
16219     /* TRUE ? */
16220     proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
16221     break;
16222   case 62: /*AnyTimeSubscriptionInterrogation*/
16223     offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationRes(FALSE, tvb, offset, actx, tree, -1);
16224     break;
16225   case 64: /*alertServiceCentre*/
16226     /* TRUE */
16227     break;
16228   case 65: /*AnyTimeModification*/
16229     offset=dissect_gsm_map_ms_AnyTimeModificationRes(FALSE, tvb, offset, actx, tree, -1);
16230     break;
16231   case 66: /*readyForSM*/
16232     offset=dissect_gsm_map_sm_ReadyForSM_Res(FALSE, tvb, offset, actx, tree, -1);
16233     break;
16234   case 67: /*purgeMS*/
16235     offset=dissect_gsm_map_ms_PurgeMS_Res(FALSE, tvb, offset, actx, tree, -1);
16236     break;
16237   case 68: /*prepareHandover*/ 
16238     offset=dissect_mc_message(tvb, offset, actx, tree,    
16239                               FALSE, NULL, -1,
16240                               FALSE, dissect_gsm_old_PrepareHO_ResOld, -1,
16241                               TRUE , dissect_gsm_map_ms_PrepareHO_Res, -1);
16242     break;
16243   case 69: /*prepareSubsequentHandover*/
16244     offset=dissect_mc_message(tvb, offset, actx, tree,    
16245                               FALSE, NULL, -1,
16246                               FALSE, NULL, -1,
16247                               TRUE , dissect_gsm_map_ms_PrepareSubsequentHO_Res, -1);
16248     break;
16249   case 70: /*provideSubscriberInfo*/
16250     offset=dissect_gsm_map_ms_ProvideSubscriberInfoRes(FALSE, tvb, offset, actx, tree, -1);
16251     break;
16252   case 71: /*anyTimeInterrogation*/
16253     offset=dissect_gsm_map_ms_AnyTimeInterrogationRes(FALSE, tvb, offset, actx, tree, -1);
16254     break;
16255   case 72: /*ss-InvocationNotificatio*/
16256     offset=dissect_gsm_map_ss_SS_InvocationNotificationRes(FALSE, tvb, offset, actx, tree, -1);
16257     break;
16258   case 73: /*setReportingState*/
16259     offset=dissect_gsm_map_ch_SetReportingStateRes(FALSE, tvb, offset, actx, tree, -1);
16260     break;
16261   case 74: /*statusReport*/
16262     offset=dissect_gsm_map_ch_StatusReportRes(FALSE, tvb, offset, actx, tree, -1);
16263     break;
16264   case 75: /*remoteUserFree*/
16265     offset=dissect_gsm_map_ch_RemoteUserFreeRes(FALSE, tvb, offset, actx, tree, -1);
16266     break;
16267   case 76: /*registerCC-Entry*/
16268     offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
16269     break;
16270   case 77: /*eraseCC-Entry*/
16271     offset=dissect_gsm_map_ss_EraseCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
16272     break;
16273   case 78: /*secureTransportClass1*/
16274   case 79: /*secureTransportClass2*/
16275   case 80: /*secureTransportClass3*/
16276   case 81: /*secureTransportClass4*/
16277     offset=dissect_gsm_old_SecureTransportRes(FALSE, tvb, offset, actx, tree, -1);
16278     break;
16279   case 83: /*provideSubscriberLocation*/
16280     offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(FALSE, tvb, offset, actx, tree, -1);
16281     break;
16282   case 84: /*sendGroupCallInfo*/
16283     offset=dissect_gsm_map_gr_SendGroupCallInfoRes(FALSE, tvb, offset, actx, tree, -1);
16284     break;
16285   case 85: /*sendRoutingInfoForLCS*/
16286     offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Res(FALSE, tvb, offset, actx, tree, -1);
16287     break;
16288   case 86: /*subscriberLocationReport*/
16289     offset=dissect_gsm_map_lcs_SubscriberLocationReport_Res(FALSE, tvb, offset, actx, tree, -1);
16290     break;
16291   case 87: /*ist-Alert*/
16292     offset=dissect_gsm_map_ch_IST_AlertRes(FALSE, tvb, offset, actx, tree, -1);
16293     break;
16294   case 88: /*ist-Command*/
16295     offset=dissect_gsm_map_ch_IST_CommandRes(FALSE, tvb, offset, actx, tree, -1);
16296     break;
16297   case 89: /*noteMM-Event*/
16298     offset=dissect_gsm_map_ms_NoteMM_EventRes(FALSE, tvb, offset, actx, tree, -1);
16299     break;
16300   case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
16301           /* No parameter */
16302     break;
16303   case 110: /*SS-protocol lcs-LocationUpdate*/
16304           offset=dissect_gsm_ss_LCS_LocationUpdateRes(FALSE, tvb, offset, actx, tree, -1);
16305     break;
16306   case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
16307     offset=dissect_gsm_ss_LCS_PeriodicLocationRequestRes(FALSE, tvb, offset, actx, tree, -1);
16308     break;
16309   case 112: /*SS-protocol lcs-AreaEventCancellation*/
16310     break;
16311   case 113: /*SS-protocol lcs-AreaEventReport*/
16312     break;
16313   case 114: /*SS-protocol lcs-AreaEventRequest No RESULT data*/
16314     break;
16315   case 115: /*SS-protocol lcs-MOLR*/
16316     offset=dissect_gsm_ss_LCS_MOLRRes(FALSE, tvb, offset, actx, tree, -1);
16317     break;
16318   case 116: /*SS-protocol lcs-LocationNotification*/
16319     offset=dissect_gsm_ss_LocationNotificationRes(FALSE, tvb, offset, actx, tree, -1);
16320     break;
16321   case 117: /*SS-protocol callDeflection no RESULT*/
16322     break;
16323   case 118: /*SS-protocol userUserService no RESULT*/
16324     break;
16325   case 119: /*SS-protocol accessRegisterCCEntry*/
16326     offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
16327     break;
16328   case 120: /*SS-protocol forwardCUG-Info*/
16329           /* No RETURN RESULT*/
16330     break;
16331   case 121: /*SS-protocol splitMPTY no RESULT*/
16332     break;
16333   case 122: /*SS-protocol retrieveMPTY no RESULT*/
16334     break;
16335   case 123: /*SS-protocol holdMPTY no RESULT*/
16336     break;
16337   case 124: /*SS-protocol buildMPTY no RESULT*/
16338     break;
16339   case 125: /*SS-protocol forwardChargeAdvice no RESULT*/
16340     break;
16341   case 126: /*SS-protocol explicitCT no RESULT*/
16342     break;
16343
16344  default:
16345    cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
16346    proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
16347    expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",opcode);
16348   }
16349   return offset;
16350 }
16351
16352
16353
16354 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
16355   proto_item *cause;
16356         
16357   switch(errorCode){
16358   case 1: /* UnknownSubscriberParam */
16359           offset=dissect_gsm_map_er_UnknownSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
16360           break;
16361   case 4: /* SecureTransportErrorParam */
16362           offset=dissect_gsm_old_SecureTransportErrorParam(FALSE, tvb, offset, actx, tree, -1);
16363           break;
16364   case 5: /* UnidentifiedSubParam */
16365           offset=dissect_gsm_map_er_UnidentifiedSubParam(FALSE, tvb, offset, actx, tree, -1);
16366           break;
16367   case 6: /* AbsentSubscriberSM-Param */
16368           offset=dissect_gsm_map_er_AbsentSubscriberSM_Param(FALSE, tvb, offset, actx, tree, -1);
16369           break;
16370   case 8: /* RoamingNotAllowedParam */
16371           offset=dissect_gsm_map_er_RoamingNotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
16372           break;
16373   case 9: /* IllegalSubscriberParam */
16374           offset=dissect_gsm_map_er_IllegalSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
16375           break;
16376   case 10: /* BearerServNotProvParam */
16377           offset=dissect_gsm_map_er_BearerServNotProvParam(FALSE, tvb, offset, actx, tree, -1);
16378           break;
16379   case 11: /* TeleservNotProvParam */
16380           offset=dissect_gsm_map_er_TeleservNotProvParam(FALSE, tvb, offset, actx, tree, -1);
16381           break;
16382   case 12: /* IllegalEquipmentParam */
16383           offset=dissect_gsm_map_er_IllegalEquipmentParam(FALSE, tvb, offset, actx, tree, -1);
16384           break;
16385   case 13: /* CallBarredParam */
16386           offset=dissect_gsm_map_er_CallBarredParam(FALSE, tvb, offset, actx, tree, -1);
16387           break;
16388   case 14: /* ForwardingViolationParam */
16389           offset=dissect_gsm_map_er_ForwardingViolationParam(FALSE, tvb, offset, actx, tree, -1);
16390           break;
16391   case 15: /* CUG-RejectParam */
16392           offset=dissect_gsm_map_er_CUG_RejectParam(FALSE, tvb, offset, actx, tree, -1);
16393           break;
16394   case 16: /* IllegalSS-OperationParam */
16395           offset=dissect_gsm_map_er_IllegalSS_OperationParam(FALSE, tvb, offset, actx, tree, -1);
16396           break;
16397   case 17: /* SS-ErrorStatus */
16398           offset=dissect_gsm_map_ss_SS_Status(FALSE, tvb, offset, actx, tree, -1);
16399           break;
16400   case 18: /* SS-NotAvailableParam */
16401           offset=dissect_gsm_map_er_SS_NotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
16402           break;
16403   case 19: /* SS-SubscriptionViolationParam */
16404           offset=dissect_gsm_map_er_SS_SubscriptionViolationParam(FALSE, tvb, offset, actx, tree, -1);
16405           break;
16406   case 20: /* SS-IncompatibilityCause */
16407           offset=dissect_gsm_map_er_SS_IncompatibilityCause(FALSE, tvb, offset, actx, tree, -1);
16408           break;
16409   case 21: /* FacilityNotSupParam */
16410           offset=dissect_gsm_map_er_FacilityNotSupParam(FALSE, tvb, offset, actx, tree, -1);
16411           break;
16412   case 22: /* OngoingGroupCallParam */
16413           offset=dissect_gsm_map_er_OngoingGroupCallParam(FALSE, tvb, offset, actx, tree, -1);
16414           break;
16415   case 27: /* AbsentSubscriberParam */
16416           offset=dissect_gsm_map_er_AbsentSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
16417           break;
16418   case 28: /* IncompatibleTerminalParam */
16419           offset=dissect_gsm_map_er_IncompatibleTerminalParam(FALSE, tvb, offset, actx, tree, -1);
16420           break;
16421   case 29: /* ShortTermDenialParam */
16422           offset=dissect_gsm_map_er_ShortTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
16423           break;
16424   case 30: /* LongTermDenialParam */
16425           offset=dissect_gsm_map_er_LongTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
16426           break;
16427   case 31: /* SubBusyForMT-SMS-Param */
16428           offset=dissect_gsm_map_er_SubBusyForMT_SMS_Param(FALSE, tvb, offset, actx, tree, -1);
16429           break;
16430   case 32: /* SM-DeliveryFailureCause */
16431           offset=dissect_gsm_map_er_SM_DeliveryFailureCause(FALSE, tvb, offset, actx, tree, -1);
16432           break;
16433   case 33: /* MessageWaitListFullParam */
16434           offset=dissect_gsm_map_er_MessageWaitListFullParam(FALSE, tvb, offset, actx, tree, -1);
16435           break;
16436   case 34: /* SystemFailureParam */
16437           offset=dissect_gsm_map_er_SystemFailureParam(FALSE, tvb, offset, actx, tree, -1);
16438           break;
16439   case 35: /* DataMissingParam */
16440           offset=dissect_gsm_map_er_DataMissingParam(FALSE, tvb, offset, actx, tree, -1);
16441           break;
16442   case 36: /* UnexpectedDataParam */
16443           offset=dissect_gsm_map_er_UnexpectedDataParam(FALSE, tvb, offset, actx, tree, -1);
16444           break;
16445   case 37: /* PW-RegistrationFailureCause */
16446           offset=dissect_gsm_map_er_PW_RegistrationFailureCause(FALSE, tvb, offset, actx, tree, -1);
16447           break;
16448   case 39: /* NoRoamingNbParam */
16449           offset=dissect_gsm_map_er_NoRoamingNbParam(FALSE, tvb, offset, actx, tree, -1);
16450           break;
16451   case 40: /* TracingBufferFullParam */
16452           offset=dissect_gsm_map_er_TracingBufferFullParam(FALSE, tvb, offset, actx, tree, -1);
16453           break;
16454   case 42: /* TargetCellOutsideGCA-Param */
16455           offset=dissect_gsm_map_er_TargetCellOutsideGCA_Param(FALSE, tvb, offset, actx, tree, -1);
16456           break;
16457   case 44: /* NumberChangedParam */
16458           offset=dissect_gsm_map_er_NumberChangedParam(FALSE, tvb, offset, actx, tree, -1);
16459           break;
16460   case 45: /* BusySubscriberParam */
16461           offset=dissect_gsm_map_er_BusySubscriberParam(FALSE, tvb, offset, actx, tree, -1);
16462           break;
16463   case 46: /* NoSubscriberReplyParam */
16464           offset=dissect_gsm_map_er_NoSubscriberReplyParam(FALSE, tvb, offset, actx, tree, -1);
16465           break;
16466   case 47: /* ForwardingFailedParam */
16467           offset=dissect_gsm_map_er_ForwardingFailedParam(FALSE, tvb, offset, actx, tree, -1);
16468           break;
16469   case 48: /* OR-NotAllowedParam */
16470           offset=dissect_gsm_map_er_OR_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
16471           break;
16472   case 49: /* ATI-NotAllowedParam */
16473           offset=dissect_gsm_map_er_ATI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
16474           break;
16475   case 50: /* NoGroupCallNbParam */
16476           offset=dissect_gsm_map_er_NoGroupCallNbParam(FALSE, tvb, offset, actx, tree, -1);
16477           break;
16478   case 51: /* ResourceLimitationParam */
16479           offset=dissect_gsm_map_er_ResourceLimitationParam(FALSE, tvb, offset, actx, tree, -1);
16480           break;
16481   case 52: /* UnauthorizedRequestingNetwork-Param */
16482           offset=dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(FALSE, tvb, offset, actx, tree, -1);
16483           break;
16484   case 53: /* UnauthorizedLCSClient-Param */
16485           offset=dissect_gsm_map_er_UnauthorizedLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
16486           break;
16487   case 54: /* PositionMethodFailure-Param */
16488           offset=dissect_gsm_map_er_PositionMethodFailure_Param(FALSE, tvb, offset, actx, tree, -1);
16489           break;
16490   case 58: /* UnknownOrUnreachableLCSClient-Param */
16491           offset=dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
16492           break;
16493   case 59: /* MM-EventNotSupported-Param */
16494           offset=dissect_gsm_map_er_MM_EventNotSupported_Param(FALSE, tvb, offset, actx, tree, -1);
16495           break;
16496   case 60: /* ATSI-NotAllowedParam */
16497           offset=dissect_gsm_map_er_ATSI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
16498           break;
16499   case 61: /* ATM-NotAllowedParam */
16500           offset=dissect_gsm_map_er_ATM_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
16501           break;
16502   case 62: /* InformationNotAvailableParam */
16503           offset=dissect_gsm_map_er_InformationNotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
16504           break;
16505   default:
16506     cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnErrorData blob");
16507     proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
16508     expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",errorCode);
16509     break;
16510   }
16511   return offset;
16512 }
16513
16514 /* Private extension container for PLMN Data */
16515 static void dissect_gsm_mapext_PlmnContainer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) {
16516   proto_item    *item=NULL;
16517   proto_tree    *tree=NULL;
16518   asn1_ctx_t asn1_ctx;
16519   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);  
16520   /* create display subtree for the protocol */
16521   if(parent_tree){
16522     item = proto_tree_add_text(parent_tree, tvb, 0, -1, "MAP Ext. Plmn Container");
16523     tree = proto_item_add_subtree(item, ett_gsm_old_PlmnContainer_U);
16524   }
16525   dissect_gsm_old_PlmnContainer(FALSE, tvb, 0, &asn1_ctx, tree, -1);
16526 }
16527
16528
16529 static guint8 gsmmap_pdu_type = 0;
16530 static guint8 gsm_map_pdu_size = 0;
16531
16532 static int
16533 dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) {
16534
16535   char *version_ptr;
16536   struct tcap_private_t * p_private_tcap;
16537
16538   opcode = 0;
16539   application_context_version = 0;
16540   if (actx->pinfo->private_data != NULL){
16541     p_private_tcap=actx->pinfo->private_data;
16542     if (p_private_tcap->acv==TRUE ){
16543       version_ptr = strrchr(p_private_tcap->oid,'.');
16544       if (version_ptr){
16545                   application_context_version = atoi(version_ptr+1);
16546           }
16547     }
16548   }
16549
16550   gsmmap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
16551   /* Get the length and add 2 */
16552   gsm_map_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
16553
16554   if (check_col(actx->pinfo->cinfo, COL_INFO)){
16555     col_set_str(actx->pinfo->cinfo, COL_INFO, val_to_str(gsmmap_pdu_type, gsm_old_Component_vals, "Unknown GSM-MAP PDU (%u)"));
16556         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " ");
16557   }
16558   offset = dissect_gsm_old_Component(FALSE, tvb, 0, actx, tree, hf_gsm_old_Component_PDU);
16559   return offset;
16560 /*
16561   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
16562                               GSMMAPPDU_choice, hf_index, ett_gsm_map_GSMMAPPDU, NULL);
16563 */
16564
16565   return offset;
16566 }
16567
16568 static void
16569 dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
16570 {
16571     proto_item          *item=NULL;
16572     proto_tree          *tree=NULL;
16573     /* Used for gsm_map TAP */
16574     static              gsm_map_tap_rec_t tap_rec;
16575     gint                op_idx;
16576         asn1_ctx_t asn1_ctx;
16577
16578         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
16579
16580
16581     if (check_col(pinfo->cinfo, COL_PROTOCOL))
16582     {
16583         col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
16584     }
16585
16586     top_tree = parent_tree;
16587
16588     /* create display subtree for the protocol */
16589     if(parent_tree){
16590         item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, FALSE);
16591         tree = proto_item_add_subtree(item, ett_gsm_map);
16592     }
16593
16594     dissect_gsm_map_GSMMAPPDU(FALSE, tvb, 0, &asn1_ctx, tree, -1);
16595     match_strval_idx(opcode, gsm_map_opr_code_strings, &op_idx);
16596
16597     tap_rec.invoke = FALSE;
16598     if ( gsmmap_pdu_type  == 1 )
16599         tap_rec.invoke = TRUE;
16600     tap_rec.opr_code_idx = op_idx;
16601     tap_rec.size = gsm_map_pdu_size;
16602
16603     tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
16604 }
16605
16606 const value_string ssCode_vals[] = {
16607   { 0x00, "allSS - all SS" },
16608   { 0x10 ,"allLineIdentificationSS - all line identification SS" },
16609   { 0x11 ,"clip - calling line identification presentation" },
16610   { 0x12 ,"clir - calling line identification restriction" },
16611   { 0x13 ,"colp - connected line identification presentation" },
16612   { 0x14 ,"colr - connected line identification restriction" },
16613   { 0x15 ,"mci - malicious call identification" },
16614   { 0x18 ,"allNameIdentificationSS - all name indentification SS" },
16615   { 0x19 ,"cnap - calling name presentation" },
16616   { 0x20 ,"allForwardingSS - all forwarding SS" },
16617   { 0x21 ,"cfu - call forwarding unconditional" },
16618   { 0x28 ,"allCondForwardingSS - all conditional forwarding SS" },
16619   { 0x29 ,"cfb - call forwarding busy" },
16620   { 0x2a ,"cfnry - call forwarding on no reply" },
16621   { 0x2b ,"cfnrc - call forwarding on mobile subscriber not reachable" },
16622   { 0x24 ,"cd - call deflection" },
16623   { 0x30 ,"allCallOfferingSS - all call offering SS includes also all forwarding SS" },
16624   { 0x31 ,"ect - explicit call transfer" },
16625   { 0x32 ,"mah - mobile access hunting" },
16626   { 0x40 ,"allCallCompletionSS - all Call completion SS" },
16627   { 0x41 ,"cw - call waiting" },
16628   { 0x42 ,"hold - call hold" },
16629   { 0x43 ,"ccbs-A - completion of call to busy subscribers, originating side" },
16630   { 0x44 ,"ccbs-B - completion of call to busy subscribers, destination side" },
16631   { 0x45 ,"mc - multicall" },
16632   { 0x50 ,"allMultiPartySS - all multiparty SS" },
16633   { 0x51 ,"multiPTY - multiparty" },
16634   { 0x60 ,"allCommunityOfInterestSS - all community of interest SS" },
16635   { 0x61 ,"cug - closed user group" },
16636   { 0x70 ,"allChargingSS - all charging SS" },
16637   { 0x71 ,"aoci - advice of charge information" },
16638   { 0x72 ,"aocc - advice of charge charging" },
16639   { 0x80 ,"allAdditionalInfoTransferSS - all additional information transfer SS" },
16640   { 0x81 ,"uus1 - UUS1 user-to-user signalling" },
16641   { 0x82 ,"uus2 - UUS2 user-to-user signalling" },
16642   { 0x83 ,"uus3 - UUS3 user-to-user signalling" },
16643   { 0x90 ,"allCallRestrictionSS - all Callrestriction SS" },
16644   { 0x91 ,"barringOfOutgoingCalls" },
16645   { 0x92 ,"baoc - barring of all outgoing calls" },
16646   { 0x93 ,"boic - barring of outgoing international calls" },
16647   { 0x94 ,"boicExHC - barring of outgoing international calls except those directed to the home PLMN" },
16648   { 0x99 ,"barringOfIncomingCalls" },
16649   { 0x9a ,"baic - barring of all incoming calls" },
16650   { 0x9b ,"bicRoam - barring of incoming calls when roaming outside home PLMN Country" },
16651   { 0xf0 ,"allPLMN-specificSS" },
16652   { 0xa0 ,"allCallPrioritySS - all call priority SS" },
16653   { 0xa1 ,"emlpp - enhanced Multilevel Precedence Pre-emption (EMLPP) service" },
16654   { 0xb0 ,"allLCSPrivacyException - all LCS Privacy Exception Classes" },
16655   { 0xb1 ,"universal - allow location by any LCS client" },
16656   { 0xb2 ,"callrelated - allow location by any value added LCS client to which a call is established from the target MS" },
16657   { 0xb3 ,"callunrelated - allow location by designated external value added LCS clients" },
16658   { 0xb4 ,"plmnoperator - allow location by designated PLMN operator LCS clients" },
16659   { 0xb5 ,"serviceType - allow location by LCS clients of a designated LCS service type" },
16660   { 0xc0 ,"allMOLR-SS - all Mobile Originating Location Request Classes" },
16661   { 0xc1 ,"basicSelfLocation - allow an MS to request its own location" },
16662   { 0xc2 ,"autonomousSelfLocation - allow an MS to perform self location without interaction with the PLMN for a predetermined period of time" },
16663   { 0xc3 ,"transferToThirdParty - allow an MS to request transfer of its location to another LCS client" },
16664
16665   { 0xf1 ,"plmn-specificSS-1" },
16666   { 0xf2 ,"plmn-specificSS-2" },
16667   { 0xf3 ,"plmn-specificSS-3" },
16668   { 0xf4 ,"plmn-specificSS-4" },
16669   { 0xf5 ,"plmn-specificSS-5" },
16670   { 0xf6 ,"plmn-specificSS-6" },
16671   { 0xf7 ,"plmn-specificSS-7" },
16672   { 0xf8 ,"plmn-specificSS-8" },
16673   { 0xf9 ,"plmn-specificSS-9" },
16674   { 0xfa ,"plmn-specificSS-a" },
16675   { 0xfb ,"plmn-specificSS-b" },
16676   { 0xfc ,"plmn-specificSS-c" },
16677   { 0xfd ,"plmn-specificSS-d" },
16678   { 0xfe ,"plmn-specificSS-e" },
16679   { 0xff ,"plmn-specificSS-f" },
16680   { 0, NULL }
16681 };
16682
16683 static const value_string Teleservice_vals[] = {
16684 {0x00, "allTeleservices" },
16685 {0x10, "allSpeechTransmissionServices" },
16686 {0x11, "telephony" },
16687 {0x12, "emergencyCalls" },
16688 {0x20, "allShortMessageServices" },
16689 {0x21, "shortMessageMT-PP" },
16690 {0x22, "shortMessageMO-PP" },
16691 {0x60, "allFacsimileTransmissionServices" },
16692 {0x61, "facsimileGroup3AndAlterSpeech" },
16693 {0x62, "automaticFacsimileGroup3" },
16694 {0x63, "facsimileGroup4" },
16695
16696 {0x70, "allDataTeleservices" },
16697 {0x80, "allTeleservices-ExeptSMS" },
16698
16699 {0x90, "allVoiceGroupCallServices" },
16700 {0x91, "voiceGroupCall" },
16701 {0x92, "voiceBroadcastCall" },
16702
16703 {0xd0, "allPLMN-specificTS" },
16704 {0xd1, "plmn-specificTS-1" },
16705 {0xd2, "plmn-specificTS-2" },
16706 {0xd3, "plmn-specificTS-3" },
16707 {0xd4, "plmn-specificTS-4" },
16708 {0xd5, "plmn-specificTS-5" },
16709 {0xd6, "plmn-specificTS-6" },
16710 {0xd7, "plmn-specificTS-7" },
16711 {0xd8, "plmn-specificTS-8" },
16712 {0xd9, "plmn-specificTS-9" },
16713 {0xda, "plmn-specificTS-A" },
16714 {0xdb, "plmn-specificTS-B" },
16715 {0xdc, "plmn-specificTS-C" },
16716 {0xdd, "plmn-specificTS-D" },
16717 {0xde, "plmn-specificTS-E" },
16718 {0xdf, "plmn-specificTS-F" },
16719   { 0, NULL }
16720 };
16721
16722 static const value_string Bearerservice_vals[] = {
16723 {0x00, "allBearerServices" },
16724 {0x10, "allDataCDA-Services" },
16725 {0x11, "dataCDA-300bps" },
16726 {0x12, "dataCDA-1200bps" },
16727 {0x13, "dataCDA-1200-75bps" },
16728 {0x14, "dataCDA-2400bps" },
16729 {0x15, "dataCDA-4800bps" },
16730 {0x16, "dataCDA-9600bps" },
16731 {0x17, "general-dataCDA" },
16732
16733 {0x18, "allDataCDS-Services" },
16734 {0x1A, "dataCDS-1200bps" },
16735 {0x1C, "dataCDS-2400bps" },
16736 {0x1D, "dataCDS-4800bps" },
16737 {0x1E, "dataCDS-9600bps" },
16738 {0x1F, "general-dataCDS" },
16739
16740 {0x20, "allPadAccessCA-Services" },
16741 {0x21, "padAccessCA-300bps" },
16742 {0x22, "padAccessCA-1200bps" },
16743 {0x23, "padAccessCA-1200-75bps" },
16744 {0x24, "padAccessCA-2400bps" },
16745 {0x25, "padAccessCA-4800bps" },
16746 {0x26, "padAccessCA-9600bps" },
16747 {0x27, "general-padAccessCA" },
16748
16749 {0x28, "allDataPDS-Services" },
16750 {0x2C, "dataPDS-2400bps" },
16751 {0x2D, "dataPDS-4800bps" },
16752 {0x2E, "dataPDS-9600bps" },
16753 {0x2F, "general-dataPDS" },
16754
16755 {0x30, "allAlternateSpeech-DataCDA" },
16756 {0x38, "allAlternateSpeech-DataCDS" },
16757 {0x40, "allSpeechFollowedByDataCDA" },
16758 {0x48, "allSpeechFollowedByDataCDS" },
16759
16760 {0x50, "allDataCircuitAsynchronous" },
16761 {0x60, "allAsynchronousServices" },
16762 {0x58, "allDataCircuitSynchronous" },
16763 {0x68, "allSynchronousServices" },
16764
16765 {0xD0, "allPLMN-specificBS" },
16766 {0xD1, "plmn-specificBS-1" },
16767 {0xD2, "plmn-specificBS-2" },
16768 {0xD3, "plmn-specificBS-3" },
16769 {0xD4, "plmn-specificBS-4" },
16770 {0xD5, "plmn-specificBS-5" },
16771 {0xD6, "plmn-specificBS-6" },
16772 {0xD7, "plmn-specificBS-7" },
16773 {0xD8, "plmn-specificBS-8" },
16774 {0xD9, "plmn-specificBS-9" },
16775 {0xDA, "plmn-specificBS-A" },
16776 {0xDB, "plmn-specificBS-B" },
16777 {0xDC, "plmn-specificBS-C" },
16778 {0xDD, "plmn-specificBS-D" },
16779 {0xDE, "plmn-specificBS-E" },
16780 {0xDF, "plmn-specificBS-F" },
16781
16782 { 0, NULL }
16783 };
16784
16785 /* ForwardingOptions 
16786
16787 -- bit 8: notification to forwarding party
16788 -- 0 no notification
16789 -- 1 notification
16790 */
16791 static const true_false_string notification_value  = {
16792   "Notification",
16793   "No notification"
16794 };
16795 /*
16796 -- bit 7: redirecting presentation
16797 -- 0 no presentation
16798 -- 1 presentation
16799 */
16800 static const true_false_string redirecting_presentation_value  = {
16801   "Presentation",
16802   "No presentationn"
16803 };
16804 /*
16805 -- bit 6: notification to calling party
16806 -- 0 no notification
16807 -- 1 notification
16808 */
16809 /*
16810 -- bit 5: 0 (unused)
16811 -- bits 43: forwarding reason
16812 -- 00 ms not reachable
16813 -- 01 ms busy
16814 -- 10 no reply
16815 -- 11 unconditional when used in a SRI Result,
16816 -- or call deflection when used in a RCH Argument
16817 */
16818 static const value_string forwarding_reason_values[] = {
16819 {0x0, "ms not reachable" },
16820 {0x1, "ms busy" },
16821 {0x2, "no reply" },
16822 {0x3, "unconditional when used in a SRI Result or call deflection when used in a RCH Argument" },
16823 { 0, NULL }
16824 };
16825 /*
16826 -- bits 21: 00 (unused)
16827 */
16828
16829 static const value_string pdp_type_org_values[] = {
16830 {0x0, "ETSI" },
16831 {0x1, "IETF" },
16832 {0xf, "Empty PDP type" },
16833 { 0, NULL }
16834 };
16835
16836 static const value_string etsi_pdp_type_number_values[] = {
16837 {0x0, "Reserved, used in earlier version of this protocol" },
16838 {0x1, "PPP" },
16839 { 0, NULL }
16840 };
16841
16842 static const value_string ietf_pdp_type_number_values[] = {
16843 {0x21, "IPv4 Address" },
16844 {0x57, "IPv6 Address" },
16845 { 0, NULL }
16846 };
16847
16848 /*
16849 ChargingCharacteristics ::= OCTET STRING (SIZE (2))
16850 -- Octets are coded according to 3GPP TS 32.015.
16851 -- From 3GPP TS 32.015.
16852 --
16853 -- Descriptions for the bits of the flag set:
16854 --
16855 -- Bit 1: H (Hot billing) := '00000001'B
16856 -- Bit 2: F (Flat rate) := '00000010'B
16857 -- Bit 3: P (Prepaid service) := '00000100'B
16858 -- Bit 4: N (Normal billing) := '00001000'B
16859 -- Bit 5: - (Reserved, set to 0) := '00010000'B
16860 -- Bit 6: - (Reserved, set to 0) := '00100000'B
16861 -- Bit 7: - (Reserved, set to 0) := '01000000'B
16862 -- Bit 8: - (Reserved, set to 0) := '10000000'B
16863 */
16864 static const value_string chargingcharacteristics_values[] = {
16865 {0x1, "H (Hot billing)" },
16866 {0x2, "F (Flat rate)" },
16867 {0x4, "P (Prepaid service)" },
16868 {0x8, "N (Normal billing)" },
16869 { 0, NULL }
16870 };
16871 /*--- proto_reg_handoff_gsm_map ---------------------------------------*/
16872 static void range_delete_callback(guint32 ssn)
16873 {
16874     if (ssn) {
16875         delete_itu_tcap_subdissector(ssn, map_handle);
16876     }
16877 }
16878
16879 static void range_add_callback(guint32 ssn)
16880 {
16881     if (ssn) {
16882         add_itu_tcap_subdissector(ssn, map_handle);
16883     }
16884 }
16885
16886 void proto_reg_handoff_gsm_map(void) {
16887
16888     static int map_prefs_initialized = FALSE;
16889     data_handle = find_dissector("data");
16890     ranap_handle = find_dissector("ranap");
16891
16892     if (!map_prefs_initialized) {
16893         map_prefs_initialized = TRUE;
16894         map_handle = create_dissector_handle(dissect_gsm_map, proto_gsm_map);
16895   register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map,"networkLocUpContext-v3");  
16896   register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"networkLocUpContext-v2" );
16897   register_ber_oid_dissector_handle("0.4.0.0.1.0.1.1", map_handle, proto_gsm_map,"networkLocUpContext-v1" );
16898   register_ber_oid_dissector_handle("0.4.0.0.1.0.2.3", map_handle, proto_gsm_map,"locationCancellationContext-v3" );
16899   register_ber_oid_dissector_handle("0.4.0.0.1.0.2.2", map_handle, proto_gsm_map,"locationCancellationContext-v2" );
16900   register_ber_oid_dissector_handle("0.4.0.0.1.0.2.1", map_handle, proto_gsm_map,"locationCancellationContext-v1" );
16901   register_ber_oid_dissector_handle("0.4.0.0.1.0.3.3", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v3" );
16902   register_ber_oid_dissector_handle("0.4.0.0.1.0.3.2", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v2" );
16903   register_ber_oid_dissector_handle("0.4.0.0.1.0.3.1", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v1" );
16904   register_ber_oid_dissector_handle("0.4.0.0.1.0.4.3", map_handle, proto_gsm_map,"istAlertingContext-v3" );
16905   register_ber_oid_dissector_handle("0.4.0.0.1.0.5.3", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v3" );
16906   register_ber_oid_dissector_handle("0.4.0.0.1.0.5.2", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v2" );
16907   register_ber_oid_dissector_handle("0.4.0.0.1.0.5.1", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v1" );
16908   register_ber_oid_dissector_handle("0.4.0.0.1.0.6.4", map_handle, proto_gsm_map,"callControlTransferContext-v4" );
16909   register_ber_oid_dissector_handle("0.4.0.0.1.0.6.3", map_handle, proto_gsm_map,"callControlTransferContext-v3" );
16910   register_ber_oid_dissector_handle("0.4.0.0.1.0.7.3", map_handle, proto_gsm_map,"reportingContext-v3" );
16911   register_ber_oid_dissector_handle("0.4.0.0.1.0.8.3", map_handle, proto_gsm_map,"callCompletionContext-v3" );
16912   register_ber_oid_dissector_handle("0.4.0.0.1.0.9.3", map_handle, proto_gsm_map,"serviceTerminationContext-v3" );
16913   register_ber_oid_dissector_handle("0.4.0.0.1.0.10.2", map_handle, proto_gsm_map,"resetContext-v2" );
16914   register_ber_oid_dissector_handle("0.4.0.0.1.0.10.1", map_handle, proto_gsm_map,"resetContext-v1" );
16915   register_ber_oid_dissector_handle("0.4.0.0.1.0.11.3", map_handle, proto_gsm_map,"handoverControlContext-v3" );
16916   register_ber_oid_dissector_handle("0.4.0.0.1.0.11.2", map_handle, proto_gsm_map,"handoverControlContext-v2" );
16917   register_ber_oid_dissector_handle("0.4.0.0.1.0.11.1", map_handle, proto_gsm_map,"handoverControlContext-v1" );
16918   register_ber_oid_dissector_handle("0.4.0.0.1.0.12.3", map_handle, proto_gsm_map,"sIWFSAllocationContext-v3" );
16919   register_ber_oid_dissector_handle("0.4.0.0.1.0.13.3", map_handle, proto_gsm_map,"equipmentMngtContext-v3" );
16920   register_ber_oid_dissector_handle("0.4.0.0.1.0.13.2", map_handle, proto_gsm_map,"equipmentMngtContext-v2" );
16921   register_ber_oid_dissector_handle("0.4.0.0.1.0.13.1", map_handle, proto_gsm_map,"equipmentMngtContext-v1" );
16922   register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"infoRetrievalContext-v3" );
16923   register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"infoRetrievalContext-v2" );
16924   register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"infoRetrievalContext-v1" );
16925   /* fallback to infoRetrieval(14) version1(1) and not interVlrInfoRetrieval(15) version1(1) */
16926   /*register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"map-ac interVlrInfoRetrieval(15) version1(1)" );*/
16927   register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v2" );
16928   register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v3" );
16929   register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"subscriberDataMngtContext-v3" );
16930   register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"subscriberDataMngtContext-v2" );
16931   register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"subscriberDataMngtContext-v1" );
16932   register_ber_oid_dissector_handle("0.4.0.0.1.0.17.3", map_handle, proto_gsm_map,"tracingContext-v3" );
16933   register_ber_oid_dissector_handle("0.4.0.0.1.0.17.2", map_handle, proto_gsm_map,"tracingContext-v2" );
16934   register_ber_oid_dissector_handle("0.4.0.0.1.0.17.1", map_handle, proto_gsm_map,"tracingContext-v1" );
16935   register_ber_oid_dissector_handle("0.4.0.0.1.0.18.2", map_handle, proto_gsm_map,"networkFunctionalSsContext-v2" );
16936   register_ber_oid_dissector_handle("0.4.0.0.1.0.18.1", map_handle, proto_gsm_map,"networkFunctionalSsContext-v1" );
16937   register_ber_oid_dissector_handle("0.4.0.0.1.0.19.2", map_handle, proto_gsm_map,"networkUnstructuredSsContext-v2" );
16938   register_ber_oid_dissector_handle("0.4.0.0.1.0.20.3", map_handle, proto_gsm_map,"shortMsgGatewayContext-v3" );
16939   register_ber_oid_dissector_handle("0.4.0.0.1.0.20.2", map_handle, proto_gsm_map,"shortMsgGatewayContext-v2" );
16940   register_ber_oid_dissector_handle("0.4.0.0.1.0.20.1", map_handle, proto_gsm_map,"shortMsgGatewayContext-v1" );
16941   register_ber_oid_dissector_handle("0.4.0.0.1.0.21.3", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v3" );
16942   register_ber_oid_dissector_handle("0.4.0.0.1.0.21.2", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v2" );
16943   register_ber_oid_dissector_handle("0.4.0.0.1.0.21.1", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v1" );
16944   register_ber_oid_dissector_handle("0.4.0.0.1.0.22.3", map_handle, proto_gsm_map,"subscriberDataModificationNotificationContext-v3" );
16945   register_ber_oid_dissector_handle("0.4.0.0.1.0.23.2", map_handle, proto_gsm_map,"shortMsgAlertContext-v2" );
16946   register_ber_oid_dissector_handle("0.4.0.0.1.0.23.1", map_handle, proto_gsm_map,"shortMsgAlertContext-v1" );
16947   register_ber_oid_dissector_handle("0.4.0.0.1.0.24.3", map_handle, proto_gsm_map,"mwdMngtContext-v3" );
16948   register_ber_oid_dissector_handle("0.4.0.0.1.0.24.2", map_handle, proto_gsm_map,"mwdMngtContext-v2" );
16949   register_ber_oid_dissector_handle("0.4.0.0.1.0.24.1", map_handle, proto_gsm_map,"mwdMngtContext-v1" );
16950   register_ber_oid_dissector_handle("0.4.0.0.1.0.25.3", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v3" );
16951   register_ber_oid_dissector_handle("0.4.0.0.1.0.25.2", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v2" );
16952   register_ber_oid_dissector_handle("0.4.0.0.1.0.26.2", map_handle, proto_gsm_map,"imsiRetrievalContext-v2" );
16953   register_ber_oid_dissector_handle("0.4.0.0.1.0.27.2", map_handle, proto_gsm_map,"msPurgingContext-v2" );
16954   register_ber_oid_dissector_handle("0.4.0.0.1.0.27.3", map_handle, proto_gsm_map,"msPurgingContext-v3" );
16955   register_ber_oid_dissector_handle("0.4.0.0.1.0.28.3", map_handle, proto_gsm_map,"subscriberInfoEnquiryContext-v3" );
16956   register_ber_oid_dissector_handle("0.4.0.0.1.0.29.3", map_handle, proto_gsm_map,"anyTimeInfoEnquiryContext-v3" );
16957   register_ber_oid_dissector_handle("0.4.0.0.1.0.31.3", map_handle, proto_gsm_map,"groupCallControlContext-v3" );
16958   register_ber_oid_dissector_handle("0.4.0.0.1.0.32.3", map_handle, proto_gsm_map,"gprsLocationUpdateContext-v3" );
16959   register_ber_oid_dissector_handle("0.4.0.0.1.0.33.4", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v4" );
16960   register_ber_oid_dissector_handle("0.4.0.0.1.0.33.3", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v3" );
16961   register_ber_oid_dissector_handle("0.4.0.0.1.0.34.3", map_handle, proto_gsm_map,"failureReportContext-v3" );
16962   register_ber_oid_dissector_handle("0.4.0.0.1.0.35.3", map_handle, proto_gsm_map,"gprsNotifyContext-v3" );
16963   register_ber_oid_dissector_handle("0.4.0.0.1.0.36.3", map_handle, proto_gsm_map,"ss-InvocationNotificationContext-v3" );
16964   register_ber_oid_dissector_handle("0.4.0.0.1.0.37.3", map_handle, proto_gsm_map,"locationSvcGatewayContext-v3" );
16965   register_ber_oid_dissector_handle("0.4.0.0.1.0.38.3", map_handle, proto_gsm_map,"locationSvcEnquiryContext-v3" );
16966   register_ber_oid_dissector_handle("0.4.0.0.1.0.39.3", map_handle, proto_gsm_map,"authenticationFailureReportContext-v3" );
16967   register_ber_oid_dissector_handle("0.4.0.0.1.0.40.3", map_handle, proto_gsm_map,"secureTransportHandlingContext-v3" );
16968   register_ber_oid_dissector_handle("0.4.0.0.1.0.41.3", map_handle, proto_gsm_map,"shortMsgMT-Relay-VGCS-Context-v3" );
16969   register_ber_oid_dissector_handle("0.4.0.0.1.0.42.3", map_handle, proto_gsm_map,"mm-EventReportingContext-v3" );
16970   register_ber_oid_dissector_handle("0.4.0.0.1.0.43.3", map_handle, proto_gsm_map,"anyTimeInfoHandlingContext-v3" );
16971   register_ber_oid_dissector_handle("0.4.0.0.1.0.44.3", map_handle, proto_gsm_map,"resourceManagementContext-v3" );
16972   register_ber_oid_dissector_handle("0.4.0.0.1.0.45.3", map_handle, proto_gsm_map,"groupCallInfoRetrievalContext-v3" );
16973   /* Private extension container */
16974   register_ber_oid_dissector("1.3.12.2.1006.53.2.1.3", dissect_gsm_mapext_PlmnContainer, proto_gsm_map,"alcatel-E10-MAP-extension-PlmnContainer" );
16975     }
16976     else {
16977         range_foreach(ssn_range, range_delete_callback);
16978     }
16979
16980     g_free(ssn_range);
16981     ssn_range = range_copy(global_ssn_range);
16982
16983     range_foreach(ssn_range, range_add_callback);
16984
16985 }
16986
16987 /*--- proto_register_gsm_map -------------------------------------------*/
16988 void proto_register_gsm_map(void) {
16989         module_t *gsm_map_module;
16990
16991   /* List of fields */
16992   static hf_register_info hf[] = {
16993     { &hf_gsm_old_Component_PDU,
16994       { "Component", "gsm_old.Component",
16995         FT_UINT32, BASE_DEC, VALS(gsm_old_Component_vals), 0,
16996         "gsm_old.Component", HFILL }},
16997     { &hf_gsm_map_currentPassword,
16998       { "currentPassword", "gsm_map.currentPassword",
16999         FT_STRING, BASE_NONE, NULL, 0,
17000         "", HFILL }},
17001     { &hf_gsm_map_extension,
17002       { "Extension", "gsm_map.extension",
17003         FT_BOOLEAN, 8, TFS(&gsm_map_extension_value), 0x80,
17004         "Extension", HFILL }},
17005     { &hf_gsm_map_nature_of_number,
17006       { "Nature of number", "gsm_map.nature_of_number",
17007         FT_UINT8, BASE_HEX, VALS(gsm_map_nature_of_number_values), 0x70,
17008         "Nature of number", HFILL }},
17009     { &hf_gsm_map_number_plan,
17010       { "Number plan", "gsm_map.number_plan",
17011         FT_UINT8, BASE_HEX, VALS(gsm_map_number_plan_values), 0x0f,
17012         "Number plan", HFILL }},
17013         { &hf_gsm_map_isdn_address_digits,
17014       { "ISDN Address digits", "gsm_map.isdn.address.digits",
17015         FT_STRING, BASE_NONE, NULL, 0,
17016         "ISDN Address digits", HFILL }},
17017         { &hf_gsm_map_address_digits,
17018       { "Address digits", "gsm_map.address.digits",
17019         FT_STRING, BASE_NONE, NULL, 0,
17020         "Address digits", HFILL }},
17021         { &hf_gsm_map_servicecentreaddress_digits,
17022       { "ServiceCentreAddress digits", "gsm_map.servicecentreaddress_digits",
17023         FT_STRING, BASE_NONE, NULL, 0,
17024         "ServiceCentreAddress digits", HFILL }},
17025         { &hf_gsm_map_imsi_digits,
17026       { "IMSI digits", "gsm_map.imsi_digits",
17027         FT_STRING, BASE_NONE, NULL, 0,
17028         "IMSI digits", HFILL }},
17029         { &hf_gsm_map_TBCD_digits,
17030       { "TBCD digits", "gsm_map.imsi_digits",
17031         FT_STRING, BASE_NONE, NULL, 0,
17032         "TBCD digits", HFILL }},
17033         { &hf_gsm_map_Ss_Status_unused,
17034       { "Unused", "gsm_map.unused",
17035         FT_UINT8, BASE_HEX, NULL, 0xf0,
17036         "Unused", HFILL }},
17037         { &hf_gsm_map_Ss_Status_q_bit,
17038       { "Q bit", "gsm_map.ss_status_q_bit",
17039         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_q_bit_values), 0x08,
17040         "Q bit", HFILL }},
17041         { &hf_gsm_map_Ss_Status_p_bit,
17042       { "P bit", "gsm_map.ss_status_p_bit",
17043         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_p_values), 0x04,
17044         "P bit", HFILL }},
17045         { &hf_gsm_map_Ss_Status_r_bit,
17046       { "R bit", "gsm_map.ss_status_r_bit",
17047         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_r_values), 0x02,
17048         "R bit", HFILL }},
17049         { &hf_gsm_map_Ss_Status_a_bit,
17050       { "A bit", "gsm_map.ss_status_a_bit",
17051         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_a_values), 0x01,
17052         "A bit", HFILL }},
17053         { &hf_gsm_map_notification_to_forwarding_party,
17054       { "Notification to forwarding party", "gsm_map.notification_to_forwarding_party",
17055         FT_BOOLEAN, 8, TFS(&notification_value), 0x80,
17056         "Notification to forwarding party", HFILL }},
17057         { &hf_gsm_map_redirecting_presentation,
17058       { "Redirecting presentation", "gsm_map.redirecting_presentation",
17059         FT_BOOLEAN, 8, TFS(&redirecting_presentation_value), 0x40,
17060         "Redirecting presentation", HFILL }},
17061         { &hf_gsm_map_notification_to_calling_party,
17062       { "Notification to calling party", "gsm_map.notification_to_clling_party",
17063         FT_BOOLEAN, 8, TFS(&notification_value), 0x20,
17064         "Notification to calling party", HFILL }},
17065     { &hf_gsm_map_forwarding_reason,
17066       { "Forwarding reason", "gsm_map.forwarding_reason",
17067         FT_UINT8, BASE_HEX, VALS(forwarding_reason_values), 0x0c,
17068         "forwarding reason", HFILL }},
17069     { &hf_gsm_map_pdp_type_org,
17070       { "PDP Type Organization", "gsm_map.pdp_type_org",
17071         FT_UINT8, BASE_HEX, VALS(pdp_type_org_values), 0x0f,
17072         "PDP Type Organization", HFILL }},
17073     { &hf_gsm_map_etsi_pdp_type_number,
17074       { "PDP Type Number", "gsm_map.pdp_type_org",
17075         FT_UINT8, BASE_HEX, VALS(etsi_pdp_type_number_values), 0,
17076         "ETSI PDP Type Number", HFILL }},
17077     { &hf_gsm_map_ietf_pdp_type_number,
17078       { "PDP Type Number", "gsm_map.ietf_pdp_type_number",
17079         FT_UINT8, BASE_HEX, VALS(ietf_pdp_type_number_values), 0,
17080         "IETF PDP Type Number", HFILL }},
17081     { &hf_gsm_map_ext_qos_subscribed_pri,
17082       { "Allocation/Retention priority", "gsm_map.ext_qos_subscribed_pri",
17083         FT_UINT8, BASE_DEC, NULL, 0xff,
17084         "Allocation/Retention priority", HFILL }},
17085     { &hf_gsm_map_qos_traffic_cls,
17086       { "Traffic class", "gsm_map.qos.traffic_cls",
17087         FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0xe0,
17088         "Traffic class", HFILL }},
17089     { &hf_gsm_map_qos_del_order,
17090       { "Delivery order", "gsm_map.qos.del_order",
17091         FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0x18,
17092         "Delivery order", HFILL }},
17093     { &hf_gsm_map_qos_del_of_err_sdu,
17094       { "Delivery of erroneous SDUs", "gsm_map.qos.del_of_err_sdu",
17095         FT_UINT8, BASE_DEC, VALS(gsm_a_qos_del_of_err_sdu_vals), 0x03,
17096         "Delivery of erroneous SDUs", HFILL }},
17097     { &hf_gsm_map_qos_ber,
17098       { "Residual Bit Error Rate (BER)", "gsm_map.qos.ber",
17099         FT_UINT8, BASE_DEC, VALS(gsm_a_qos_ber_vals), 0xf0,
17100         "Residual Bit Error Rate (BER)", HFILL }},
17101     { &hf_gsm_map_qos_sdu_err_rat,
17102       { "SDU error ratio", "gsm_map.qos.sdu_err_rat",
17103         FT_UINT8, BASE_DEC, VALS(gsm_a_qos_sdu_err_rat_vals), 0x0f,
17104         "SDU error ratio", HFILL }},
17105     { &hf_gsm_map_qos_traff_hdl_pri,
17106       { "Traffic handling priority", "gsm_map.qos.traff_hdl_pri",
17107         FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traff_hdl_pri_vals), 0x03,
17108         "Traffic handling priority", HFILL }},
17109
17110     { &hf_gsm_map_qos_max_sdu,
17111       { "Maximum SDU size", "gsm_map.qos.max_sdu",
17112         FT_UINT32, BASE_DEC, NULL, 0x0,
17113         "Maximum SDU size", HFILL }},           
17114     { &hf_gsm_map_max_brate_ulink,
17115       { "Maximum bit rate for uplink in kbit/s", "gsm_map.qos.max_brate_ulink",
17116         FT_UINT32, BASE_DEC, NULL, 0x0,
17117         "Maximum bit rate for uplink", HFILL }},
17118     { &hf_gsm_map_max_brate_dlink,
17119       { "Maximum bit rate for downlink in kbit/s", "gsm_map.qos.max_brate_dlink",
17120         FT_UINT32, BASE_DEC, NULL, 0x0,
17121         "Maximum bit rate for downlink", HFILL }},
17122     { &hf_gsm_map_qos_transfer_delay,
17123       { "Transfer delay (Raw data see TS 24.008 for interpretation)", "gsm_map.qos.transfer_delay",
17124         FT_UINT8, BASE_DEC, NULL, 0xfc,
17125         "Transfer delay", HFILL }},
17126     { &hf_gsm_map_guaranteed_max_brate_ulink,
17127       { "Guaranteed bit rate for uplink in kbit/s", "gsm_map.qos.brate_ulink",
17128         FT_UINT32, BASE_DEC, NULL, 0x0,
17129         "Guaranteed bit rate for uplink", HFILL }},
17130     { &hf_gsm_map_guaranteed_max_brate_dlink,
17131       { "Guaranteed bit rate for downlink in kbit/s", "gsm_map.qos.brate_dlink",
17132         FT_UINT32, BASE_DEC, NULL, 0x0,
17133         "Guaranteed bit rate for downlink", HFILL }},
17134    { &hf_gsm_map_GSNAddress_IPv4,
17135       { "GSN-Address IPv4",  "gsm_map.gsnaddress_ipv4",
17136           FT_IPv4, BASE_NONE, NULL, 0,
17137           "IPAddress IPv4", HFILL }},
17138    { &hf_gsm_map_GSNAddress_IPv6,
17139       { "GSN Address IPv6",  "gsm_map.gsnaddress_ipv6",
17140           FT_IPv4, BASE_NONE, NULL, 0,
17141           "IPAddress IPv6", HFILL }},
17142         { &hf_geo_loc_type_of_shape,
17143                 { "Location estimate","gad.location_estimate",
17144                 FT_UINT8,BASE_DEC, VALS(type_of_shape_vals), 0xf0,          
17145                 "Location estimate", HFILL }
17146         },
17147         { &hf_geo_loc_sign_of_lat,
17148                 { "Sign of latitude","gad.sign_of_latitude",
17149                 FT_UINT8,BASE_DEC, VALS(sign_of_latitude_vals), 0x80,          
17150                 "Sign of latitude", HFILL }
17151         },
17152         { &hf_geo_loc_deg_of_lat,
17153                 { "Degrees of latitude","gad.sign_of_latitude",
17154                 FT_UINT24,BASE_DEC, NULL, 0x7fffff,          
17155                 "Degrees of latitude", HFILL }
17156         },
17157         { &hf_geo_loc_deg_of_long,
17158                 { "Degrees of longitude","gad.sign_of_longitude",
17159                 FT_UINT24,BASE_DEC, NULL, 0xffffff,          
17160                 "Degrees of longitude", HFILL }
17161         },
17162         { &hf_geo_loc_uncertainty_code,
17163                 { "Uncertainty code","gad.uncertainty_code",
17164                 FT_UINT8,BASE_DEC, NULL, 0x7f,          
17165                 "Uncertainty code", HFILL }
17166         },
17167         { &hf_geo_loc_uncertainty_semi_major,
17168                 { "Uncertainty semi-major","gad.uncertainty_semi_major",
17169                 FT_UINT8,BASE_DEC, NULL, 0x7f,          
17170                 "Uncertainty semi-major", HFILL }
17171         },
17172         { &hf_geo_loc_uncertainty_semi_minor,
17173                 { "Uncertainty semi-minor","gad.uncertainty_semi_minor",
17174                 FT_UINT8,BASE_DEC, NULL, 0x7f,          
17175                 "Uncertainty semi-minor", HFILL }
17176         },
17177         { &hf_geo_loc_orientation_of_major_axis,
17178                 { "Orientation of major axis","gad.orientation_of_major_axis",
17179                 FT_UINT8,BASE_DEC, NULL, 0x0,          
17180                 "Orientation of major axis", HFILL }
17181         },
17182         { &hf_geo_loc_uncertainty_altitude,
17183                 { "Uncertainty Altitude","gad.uncertainty_altitude",
17184                 FT_UINT8,BASE_DEC, NULL, 0x7f,          
17185                 "Uncertainty Altitude", HFILL }
17186         },
17187         { &hf_geo_loc_confidence,
17188                 { "Confidence(%)","gad.confidence",
17189                 FT_UINT8,BASE_DEC, NULL, 0x7f,          
17190                 "Confidence(%)", HFILL }
17191         },
17192         { &hf_geo_loc_no_of_points,
17193                 { "Number of points","gad.no_of_points",
17194                 FT_UINT8,BASE_DEC, NULL, 0x0f,          
17195                 "Number of points", HFILL }
17196         },
17197         { &hf_geo_loc_D,
17198                 { "D: Direction of Altitude","gad.D",
17199                 FT_UINT16,BASE_DEC, VALS(dir_of_alt_vals), 0x8000,          
17200                 "D: Direction of Altitude", HFILL }
17201         },
17202         { &hf_geo_loc_altitude,
17203                 { "Altitude in meters","gad.altitude",
17204                 FT_UINT16,BASE_DEC, NULL, 0x7fff,          
17205                 "Altitude", HFILL }
17206         },
17207         { &hf_geo_loc_inner_radius,
17208                 { "Inner radius","gad.altitude",
17209                 FT_UINT16,BASE_DEC, NULL, 0x0,          
17210                 "Inner radius", HFILL }
17211         },
17212         { &hf_geo_loc_uncertainty_radius,
17213                 { "Uncertainty radius","gad.no_of_points",
17214                 FT_UINT8,BASE_DEC, NULL, 0x7f,          
17215                 "Uncertainty radius", HFILL }
17216         },
17217         { &hf_geo_loc_offset_angle,
17218                 { "Offset angle","gad.offset_angle",
17219                 FT_UINT8,BASE_DEC, NULL, 0x0,          
17220                 "Offset angle", HFILL }
17221         },
17222         { &hf_geo_loc_included_angle,
17223                 { "Included angle","gad.included_angle",
17224                 FT_UINT8,BASE_DEC, NULL, 0x0,          
17225                 "Included angle", HFILL }
17226         },
17227
17228     { &hf_gsm_map_ranap_service_Handover,
17229       { "service-Handover", "gsm_map.ranap.service_Handover",
17230         FT_UINT32, BASE_DEC, VALS(ranap_Service_Handover_vals), 0,
17231         "gsm_map.ranap.Service_Handover", HFILL }},
17232     { &hf_gsm_mapIntegrityProtectionInformation,
17233       { "IntegrityProtectionInformation", "gsm_map.ranap.IntegrityProtectionInformation",
17234         FT_NONE, BASE_NONE, NULL, 0,
17235         "gsm_map.ranap.IntegrityProtectionInformation", HFILL }},
17236     { &hf_gsm_mapEncryptionInformation,
17237       { "EncryptionInformation", "gsm_map.ranap.EncryptionInformation",
17238         FT_NONE, BASE_NONE, NULL, 0,
17239         "gsm_map.ranap.EncryptionInformation", HFILL }},
17240     { &hf_gsm_map_PlmnContainer_PDU,
17241       { "PlmnContainer", "gsm_map.PlmnContainer",
17242         FT_NONE, BASE_NONE, NULL, 0,
17243         "gsm_map.PlmnContainer", HFILL }},
17244     { &hf_gsm_ss_SS_UserData,
17245       { "SS-UserData", "gsm_ss.SS_UserData",
17246         FT_STRING, BASE_NONE, NULL, 0,
17247         "gsm_ss.SS_UserData", HFILL }},
17248
17249
17250
17251 /*--- Included file: packet-gsm_map-hfarr.c ---*/
17252 #line 1 "packet-gsm_map-hfarr.c"
17253
17254 /* --- Module Remote-Operations-Information-Objects --- --- ---               */
17255
17256     { &hf_Remote_Operations_Information_Objects_local,
17257       { "local", "Remote-Operations-Information-Objects.local",
17258         FT_INT32, BASE_DEC, NULL, 0,
17259         "Remote_Operations_Information_Objects.INTEGER", HFILL }},
17260     { &hf_Remote_Operations_Information_Objects_global,
17261       { "global", "Remote-Operations-Information-Objects.global",
17262         FT_OID, BASE_NONE, NULL, 0,
17263         "Remote_Operations_Information_Objects.OBJECT_IDENTIFIER", HFILL }},
17264
17265 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
17266
17267     { &hf_gsm_map_privateExtensionList,
17268       { "privateExtensionList", "gsm_map.privateExtensionList",
17269         FT_UINT32, BASE_DEC, NULL, 0,
17270         "gsm_map.PrivateExtensionList", HFILL }},
17271     { &hf_gsm_map_pcs_Extensions,
17272       { "pcs-Extensions", "gsm_map.pcs_Extensions",
17273         FT_NONE, BASE_NONE, NULL, 0,
17274         "gsm_map.PCS_Extensions", HFILL }},
17275     { &hf_gsm_map_slr_Arg_PCS_Extensions,
17276       { "slr-Arg-PCS-Extensions", "gsm_map.slr_Arg_PCS_Extensions",
17277         FT_NONE, BASE_NONE, NULL, 0,
17278         "gsm_map.SLR_Arg_PCS_Extensions", HFILL }},
17279     { &hf_gsm_map_PrivateExtensionList_item,
17280       { "Item", "gsm_map.PrivateExtensionList_item",
17281         FT_NONE, BASE_NONE, NULL, 0,
17282         "gsm_map.PrivateExtension", HFILL }},
17283     { &hf_gsm_map_extId,
17284       { "extId", "gsm_map.extId",
17285         FT_OID, BASE_NONE, NULL, 0,
17286         "gsm_map.T_extId", HFILL }},
17287     { &hf_gsm_map_extType,
17288       { "extType", "gsm_map.extType",
17289         FT_NONE, BASE_NONE, NULL, 0,
17290         "gsm_map.T_extType", HFILL }},
17291     { &hf_gsm_map_na_ESRK_Request,
17292       { "na-ESRK-Request", "gsm_map.na_ESRK_Request",
17293         FT_NONE, BASE_NONE, NULL, 0,
17294         "gsm_map.NULL", HFILL }},
17295
17296 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
17297
17298     { &hf_gsm_map_protocolId,
17299       { "protocolId", "gsm_map.protocolId",
17300         FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
17301         "gsm_map.ProtocolId", HFILL }},
17302     { &hf_gsm_map_signalInfo,
17303       { "signalInfo", "gsm_map.signalInfo",
17304         FT_BYTES, BASE_HEX, NULL, 0,
17305         "gsm_map.SignalInfo", HFILL }},
17306     { &hf_gsm_map_extensionContainer,
17307       { "extensionContainer", "gsm_map.extensionContainer",
17308         FT_NONE, BASE_NONE, NULL, 0,
17309         "gsm_map.ExtensionContainer", HFILL }},
17310     { &hf_gsm_map_ext_ProtocolId,
17311       { "ext-ProtocolId", "gsm_map.ext_ProtocolId",
17312         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_ProtocolId_vals), 0,
17313         "gsm_map.Ext_ProtocolId", HFILL }},
17314     { &hf_gsm_map_accessNetworkProtocolId,
17315       { "accessNetworkProtocolId", "gsm_map.accessNetworkProtocolId",
17316         FT_UINT32, BASE_DEC, VALS(gsm_map_AccessNetworkProtocolId_vals), 0,
17317         "gsm_map.AccessNetworkProtocolId", HFILL }},
17318     { &hf_gsm_map_signalInfo_01,
17319       { "signalInfo", "gsm_map.signalInfo",
17320         FT_BYTES, BASE_HEX, NULL, 0,
17321         "gsm_map.LongSignalInfo", HFILL }},
17322     { &hf_gsm_map_imsi,
17323       { "imsi", "gsm_map.imsi",
17324         FT_BYTES, BASE_HEX, NULL, 0,
17325         "gsm_map.IMSI", HFILL }},
17326     { &hf_gsm_map_imsi_WithLMSI,
17327       { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI",
17328         FT_NONE, BASE_NONE, NULL, 0,
17329         "gsm_map.IMSI_WithLMSI", HFILL }},
17330     { &hf_gsm_map_lmsi,
17331       { "lmsi", "gsm_map.lmsi",
17332         FT_BYTES, BASE_HEX, NULL, 0,
17333         "gsm_map.LMSI", HFILL }},
17334     { &hf_gsm_map_tmsi,
17335       { "tmsi", "gsm_map.tmsi",
17336         FT_BYTES, BASE_HEX, NULL, 0,
17337         "gsm_map.TMSI", HFILL }},
17338     { &hf_gsm_map_HLR_List_item,
17339       { "Item", "gsm_map.HLR_List_item",
17340         FT_BYTES, BASE_HEX, NULL, 0,
17341         "gsm_map.HLR_Id", HFILL }},
17342     { &hf_gsm_map_naea_PreferredCIC,
17343       { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC",
17344         FT_BYTES, BASE_HEX, NULL, 0,
17345         "gsm_map.NAEA_CIC", HFILL }},
17346     { &hf_gsm_map_msisdn,
17347       { "msisdn", "gsm_map.msisdn",
17348         FT_BYTES, BASE_HEX, NULL, 0,
17349         "gsm_map.ISDN_AddressString", HFILL }},
17350     { &hf_gsm_map_externalAddress,
17351       { "externalAddress", "gsm_map.externalAddress",
17352         FT_BYTES, BASE_HEX, NULL, 0,
17353         "gsm_map.ISDN_AddressString", HFILL }},
17354     { &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength,
17355       { "cellGlobalIdOrServiceAreaIdFixedLength", "gsm_map.cellGlobalIdOrServiceAreaIdFixedLength",
17356         FT_BYTES, BASE_HEX, NULL, 0,
17357         "gsm_map.CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
17358     { &hf_gsm_map_laiFixedLength,
17359       { "laiFixedLength", "gsm_map.laiFixedLength",
17360         FT_BYTES, BASE_HEX, NULL, 0,
17361         "gsm_map.LAIFixedLength", HFILL }},
17362     { &hf_gsm_map_bearerService,
17363       { "bearerService", "gsm_map.bearerService",
17364         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
17365         "gsm_map.BearerServiceCode", HFILL }},
17366     { &hf_gsm_map_teleservice,
17367       { "teleservice", "gsm_map.teleservice",
17368         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
17369         "gsm_map.TeleserviceCode", HFILL }},
17370     { &hf_gsm_map_ext_BearerService,
17371       { "ext-BearerService", "gsm_map.ext_BearerService",
17372         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
17373         "gsm_map.Ext_BearerServiceCode", HFILL }},
17374     { &hf_gsm_map_ext_Teleservice,
17375       { "ext-Teleservice", "gsm_map.ext_Teleservice",
17376         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
17377         "gsm_map.Ext_TeleserviceCode", HFILL }},
17378     { &hf_gsm_map_maximumentitledPriority,
17379       { "maximumentitledPriority", "gsm_map.maximumentitledPriority",
17380         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
17381         "gsm_map.EMLPP_Priority", HFILL }},
17382     { &hf_gsm_map_defaultPriority,
17383       { "defaultPriority", "gsm_map.defaultPriority",
17384         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
17385         "gsm_map.EMLPP_Priority", HFILL }},
17386     { &hf_gsm_map_ss_Code,
17387       { "ss-Code", "gsm_map.ss_Code",
17388         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
17389         "gsm_map.SS_Code", HFILL }},
17390     { &hf_gsm_map_ss_Status,
17391       { "ss-Status", "gsm_map.ss_Status",
17392         FT_BYTES, BASE_HEX, NULL, 0,
17393         "gsm_map.Ext_SS_Status", HFILL }},
17394     { &hf_gsm_map_nbrSB,
17395       { "nbrSB", "gsm_map.nbrSB",
17396         FT_UINT32, BASE_DEC, NULL, 0,
17397         "gsm_map.MaxMC_Bearers", HFILL }},
17398     { &hf_gsm_map_nbrUser,
17399       { "nbrUser", "gsm_map.nbrUser",
17400         FT_UINT32, BASE_DEC, NULL, 0,
17401         "gsm_map.MC_Bearers", HFILL }},
17402
17403 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
17404
17405     { &hf_gsm_map_ss_ss_Code,
17406       { "ss-Code", "gsm_map.ss.ss_Code",
17407         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
17408         "gsm_map.SS_Code", HFILL }},
17409     { &hf_gsm_map_ss_basicService,
17410       { "basicService", "gsm_map.ss.basicService",
17411         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
17412         "gsm_map.BasicServiceCode", HFILL }},
17413     { &hf_gsm_map_ss_forwardedToNumber,
17414       { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
17415         FT_BYTES, BASE_HEX, NULL, 0,
17416         "gsm_map.AddressString", HFILL }},
17417     { &hf_gsm_map_ss_forwardedToSubaddress,
17418       { "forwardedToSubaddress", "gsm_map.ss.forwardedToSubaddress",
17419         FT_BYTES, BASE_HEX, NULL, 0,
17420         "gsm_map.ISDN_SubaddressString", HFILL }},
17421     { &hf_gsm_map_ss_noReplyConditionTime,
17422       { "noReplyConditionTime", "gsm_map.ss.noReplyConditionTime",
17423         FT_UINT32, BASE_DEC, NULL, 0,
17424         "gsm_map_ss.NoReplyConditionTime", HFILL }},
17425     { &hf_gsm_map_ss_defaultPriority,
17426       { "defaultPriority", "gsm_map.ss.defaultPriority",
17427         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
17428         "gsm_map.EMLPP_Priority", HFILL }},
17429     { &hf_gsm_map_ss_nbrUser,
17430       { "nbrUser", "gsm_map.ss.nbrUser",
17431         FT_UINT32, BASE_DEC, NULL, 0,
17432         "gsm_map.MC_Bearers", HFILL }},
17433     { &hf_gsm_map_ss_longFTN_Supported,
17434       { "longFTN-Supported", "gsm_map.ss.longFTN_Supported",
17435         FT_NONE, BASE_NONE, NULL, 0,
17436         "gsm_map_ss.NULL", HFILL }},
17437     { &hf_gsm_map_ss_forwardingInfo,
17438       { "forwardingInfo", "gsm_map.ss.forwardingInfo",
17439         FT_NONE, BASE_NONE, NULL, 0,
17440         "gsm_map_ss.ForwardingInfo", HFILL }},
17441     { &hf_gsm_map_ss_callBarringInfo,
17442       { "callBarringInfo", "gsm_map.ss.callBarringInfo",
17443         FT_NONE, BASE_NONE, NULL, 0,
17444         "gsm_map_ss.CallBarringInfo", HFILL }},
17445     { &hf_gsm_map_ss_ss_Data,
17446       { "ss-Data", "gsm_map.ss.ss_Data",
17447         FT_NONE, BASE_NONE, NULL, 0,
17448         "gsm_map_ss.SS_Data", HFILL }},
17449     { &hf_gsm_map_ss_forwardingFeatureList,
17450       { "forwardingFeatureList", "gsm_map.ss.forwardingFeatureList",
17451         FT_UINT32, BASE_DEC, NULL, 0,
17452         "gsm_map_ss.ForwardingFeatureList", HFILL }},
17453     { &hf_gsm_map_ss_ForwardingFeatureList_item,
17454       { "Item", "gsm_map.ss.ForwardingFeatureList_item",
17455         FT_NONE, BASE_NONE, NULL, 0,
17456         "gsm_map_ss.ForwardingFeature", HFILL }},
17457     { &hf_gsm_map_ss_ss_Status,
17458       { "ss-Status", "gsm_map.ss.ss_Status",
17459         FT_BYTES, BASE_HEX, NULL, 0,
17460         "gsm_map_ss.SS_Status", HFILL }},
17461     { &hf_gsm_map_ss_forwardedToNumber_01,
17462       { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
17463         FT_BYTES, BASE_HEX, NULL, 0,
17464         "gsm_map.ISDN_AddressString", HFILL }},
17465     { &hf_gsm_map_ss_forwardingOptions,
17466       { "forwardingOptions", "gsm_map.ss.forwardingOptions",
17467         FT_BYTES, BASE_HEX, NULL, 0,
17468         "gsm_map_ss.ForwardingOptions", HFILL }},
17469     { &hf_gsm_map_ss_longForwardedToNumber,
17470       { "longForwardedToNumber", "gsm_map.ss.longForwardedToNumber",
17471         FT_BYTES, BASE_HEX, NULL, 0,
17472         "gsm_map.FTN_AddressString", HFILL }},
17473     { &hf_gsm_map_ss_callBarringFeatureList,
17474       { "callBarringFeatureList", "gsm_map.ss.callBarringFeatureList",
17475         FT_UINT32, BASE_DEC, NULL, 0,
17476         "gsm_map_ss.CallBarringFeatureList", HFILL }},
17477     { &hf_gsm_map_ss_CallBarringFeatureList_item,
17478       { "Item", "gsm_map.ss.CallBarringFeatureList_item",
17479         FT_NONE, BASE_NONE, NULL, 0,
17480         "gsm_map_ss.CallBarringFeature", HFILL }},
17481     { &hf_gsm_map_ss_ss_SubscriptionOption,
17482       { "ss-SubscriptionOption", "gsm_map.ss.ss_SubscriptionOption",
17483         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
17484         "gsm_map_ss.SS_SubscriptionOption", HFILL }},
17485     { &hf_gsm_map_ss_basicServiceGroupList,
17486       { "basicServiceGroupList", "gsm_map.ss.basicServiceGroupList",
17487         FT_UINT32, BASE_DEC, NULL, 0,
17488         "gsm_map_ss.BasicServiceGroupList", HFILL }},
17489     { &hf_gsm_map_ss_cliRestrictionOption,
17490       { "cliRestrictionOption", "gsm_map.ss.cliRestrictionOption",
17491         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CliRestrictionOption_vals), 0,
17492         "gsm_map_ss.CliRestrictionOption", HFILL }},
17493     { &hf_gsm_map_ss_overrideCategory,
17494       { "overrideCategory", "gsm_map.ss.overrideCategory",
17495         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_OverrideCategory_vals), 0,
17496         "gsm_map_ss.OverrideCategory", HFILL }},
17497     { &hf_gsm_map_ss_maximumEntitledPriority,
17498       { "maximumEntitledPriority", "gsm_map.ss.maximumEntitledPriority",
17499         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
17500         "gsm_map.EMLPP_Priority", HFILL }},
17501     { &hf_gsm_map_ss_ccbs_FeatureList,
17502       { "ccbs-FeatureList", "gsm_map.ss.ccbs_FeatureList",
17503         FT_UINT32, BASE_DEC, NULL, 0,
17504         "gsm_map_ss.CCBS_FeatureList", HFILL }},
17505     { &hf_gsm_map_ss_nbrSB,
17506       { "nbrSB", "gsm_map.ss.nbrSB",
17507         FT_UINT32, BASE_DEC, NULL, 0,
17508         "gsm_map.MaxMC_Bearers", HFILL }},
17509     { &hf_gsm_map_ss_nbrSN,
17510       { "nbrSN", "gsm_map.ss.nbrSN",
17511         FT_UINT32, BASE_DEC, NULL, 0,
17512         "gsm_map.MC_Bearers", HFILL }},
17513     { &hf_gsm_map_ss_CCBS_FeatureList_item,
17514       { "Item", "gsm_map.ss.CCBS_FeatureList_item",
17515         FT_NONE, BASE_NONE, NULL, 0,
17516         "gsm_map_ss.CCBS_Feature", HFILL }},
17517     { &hf_gsm_map_ss_ccbs_Index,
17518       { "ccbs-Index", "gsm_map.ss.ccbs_Index",
17519         FT_UINT32, BASE_DEC, NULL, 0,
17520         "gsm_map_ss.CCBS_Index", HFILL }},
17521     { &hf_gsm_map_ss_b_subscriberNumber,
17522       { "b-subscriberNumber", "gsm_map.ss.b_subscriberNumber",
17523         FT_BYTES, BASE_HEX, NULL, 0,
17524         "gsm_map.ISDN_AddressString", HFILL }},
17525     { &hf_gsm_map_ss_b_subscriberSubaddress,
17526       { "b-subscriberSubaddress", "gsm_map.ss.b_subscriberSubaddress",
17527         FT_BYTES, BASE_HEX, NULL, 0,
17528         "gsm_map.ISDN_SubaddressString", HFILL }},
17529     { &hf_gsm_map_ss_basicServiceGroup,
17530       { "basicServiceGroup", "gsm_map.ss.basicServiceGroup",
17531         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
17532         "gsm_map.BasicServiceCode", HFILL }},
17533     { &hf_gsm_map_ss_genericServiceInfo,
17534       { "genericServiceInfo", "gsm_map.ss.genericServiceInfo",
17535         FT_NONE, BASE_NONE, NULL, 0,
17536         "gsm_map_ss.GenericServiceInfo", HFILL }},
17537     { &hf_gsm_map_ss_ussd_DataCodingScheme,
17538       { "ussd-DataCodingScheme", "gsm_map.ss.ussd_DataCodingScheme",
17539         FT_BYTES, BASE_HEX, NULL, 0,
17540         "gsm_map_ss.USSD_DataCodingScheme", HFILL }},
17541     { &hf_gsm_map_ss_ussd_String,
17542       { "ussd-String", "gsm_map.ss.ussd_String",
17543         FT_BYTES, BASE_HEX, NULL, 0,
17544         "gsm_map_ss.USSD_String", HFILL }},
17545     { &hf_gsm_map_ss_alertingPattern,
17546       { "alertingPattern", "gsm_map.ss.alertingPattern",
17547         FT_BYTES, BASE_HEX, NULL, 0,
17548         "gsm_map.AlertingPattern", HFILL }},
17549     { &hf_gsm_map_ss_msisdn,
17550       { "msisdn", "gsm_map.ss.msisdn",
17551         FT_BYTES, BASE_HEX, NULL, 0,
17552         "gsm_map.ISDN_AddressString", HFILL }},
17553     { &hf_gsm_map_ss_SS_List_item,
17554       { "Item", "gsm_map.ss.SS_List_item",
17555         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
17556         "gsm_map.SS_Code", HFILL }},
17557     { &hf_gsm_map_ss_SS_InfoList_item,
17558       { "Item", "gsm_map.ss.SS_InfoList_item",
17559         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_Info_vals), 0,
17560         "gsm_map_ss.SS_Info", HFILL }},
17561     { &hf_gsm_map_ss_BasicServiceGroupList_item,
17562       { "Item", "gsm_map.ss.BasicServiceGroupList_item",
17563         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
17564         "gsm_map.BasicServiceCode", HFILL }},
17565     { &hf_gsm_map_ss_imsi,
17566       { "imsi", "gsm_map.ss.imsi",
17567         FT_BYTES, BASE_HEX, NULL, 0,
17568         "gsm_map.IMSI", HFILL }},
17569     { &hf_gsm_map_ss_ss_Event,
17570       { "ss-Event", "gsm_map.ss.ss_Event",
17571         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
17572         "gsm_map.SS_Code", HFILL }},
17573     { &hf_gsm_map_ss_ss_EventSpecification,
17574       { "ss-EventSpecification", "gsm_map.ss.ss_EventSpecification",
17575         FT_UINT32, BASE_DEC, NULL, 0,
17576         "gsm_map_ss.SS_EventSpecification", HFILL }},
17577     { &hf_gsm_map_ss_extensionContainer,
17578       { "extensionContainer", "gsm_map.ss.extensionContainer",
17579         FT_NONE, BASE_NONE, NULL, 0,
17580         "gsm_map.ExtensionContainer", HFILL }},
17581     { &hf_gsm_map_ss_ccbs_RequestState,
17582       { "ccbs-RequestState", "gsm_map.ss.ccbs_RequestState",
17583         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CCBS_RequestState_vals), 0,
17584         "gsm_map_ss.CCBS_RequestState", HFILL }},
17585     { &hf_gsm_map_ss_SS_EventSpecification_item,
17586       { "Item", "gsm_map.ss.SS_EventSpecification_item",
17587         FT_BYTES, BASE_HEX, NULL, 0,
17588         "gsm_map.AddressString", HFILL }},
17589     { &hf_gsm_map_ss_ccbs_Data,
17590       { "ccbs-Data", "gsm_map.ss.ccbs_Data",
17591         FT_NONE, BASE_NONE, NULL, 0,
17592         "gsm_map_ss.CCBS_Data", HFILL }},
17593     { &hf_gsm_map_ss_ccbs_Feature,
17594       { "ccbs-Feature", "gsm_map.ss.ccbs_Feature",
17595         FT_NONE, BASE_NONE, NULL, 0,
17596         "gsm_map_ss.CCBS_Feature", HFILL }},
17597     { &hf_gsm_map_ss_translatedB_Number,
17598       { "translatedB-Number", "gsm_map.ss.translatedB_Number",
17599         FT_BYTES, BASE_HEX, NULL, 0,
17600         "gsm_map.ISDN_AddressString", HFILL }},
17601     { &hf_gsm_map_ss_serviceIndicator,
17602       { "serviceIndicator", "gsm_map.ss.serviceIndicator",
17603         FT_BYTES, BASE_HEX, NULL, 0,
17604         "gsm_map_ss.ServiceIndicator", HFILL }},
17605     { &hf_gsm_map_ss_callInfo,
17606       { "callInfo", "gsm_map.ss.callInfo",
17607         FT_NONE, BASE_NONE, NULL, 0,
17608         "gsm_map.ExternalSignalInfo", HFILL }},
17609     { &hf_gsm_map_ss_networkSignalInfo,
17610       { "networkSignalInfo", "gsm_map.ss.networkSignalInfo",
17611         FT_NONE, BASE_NONE, NULL, 0,
17612         "gsm_map.ExternalSignalInfo", HFILL }},
17613     { &hf_gsm_map_ss_ServiceIndicator_clir_invoked,
17614       { "clir-invoked", "gsm_map.ss.clir-invoked",
17615         FT_BOOLEAN, 8, NULL, 0x80,
17616         "", HFILL }},
17617     { &hf_gsm_map_ss_ServiceIndicator_camel_invoked,
17618       { "camel-invoked", "gsm_map.ss.camel-invoked",
17619         FT_BOOLEAN, 8, NULL, 0x40,
17620         "", HFILL }},
17621
17622 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
17623
17624     { &hf_gsm_map_er_roamingNotAllowedCause,
17625       { "roamingNotAllowedCause", "gsm_map.er.roamingNotAllowedCause",
17626         FT_UINT32, BASE_DEC, VALS(gsm_map_er_RoamingNotAllowedCause_vals), 0,
17627         "gsm_map_er.RoamingNotAllowedCause", HFILL }},
17628     { &hf_gsm_map_er_extensionContainer,
17629       { "extensionContainer", "gsm_map.er.extensionContainer",
17630         FT_NONE, BASE_NONE, NULL, 0,
17631         "gsm_map.ExtensionContainer", HFILL }},
17632     { &hf_gsm_map_er_additionalRoamingNotAllowedCause,
17633       { "additionalRoamingNotAllowedCause", "gsm_map.er.additionalRoamingNotAllowedCause",
17634         FT_UINT32, BASE_DEC, VALS(gsm_map_er_AdditionalRoamingNotAllowedCause_vals), 0,
17635         "gsm_map_er.AdditionalRoamingNotAllowedCause", HFILL }},
17636     { &hf_gsm_map_er_callBarringCause,
17637       { "callBarringCause", "gsm_map.er.callBarringCause",
17638         FT_UINT32, BASE_DEC, VALS(gsm_map_er_CallBarringCause_vals), 0,
17639         "gsm_map_er.CallBarringCause", HFILL }},
17640     { &hf_gsm_map_er_extensibleCallBarredParam,
17641       { "extensibleCallBarredParam", "gsm_map.er.extensibleCallBarredParam",
17642         FT_NONE, BASE_NONE, NULL, 0,
17643         "gsm_map_er.ExtensibleCallBarredParam", HFILL }},
17644     { &hf_gsm_map_er_unauthorisedMessageOriginator,
17645       { "unauthorisedMessageOriginator", "gsm_map.er.unauthorisedMessageOriginator",
17646         FT_NONE, BASE_NONE, NULL, 0,
17647         "gsm_map_er.NULL", HFILL }},
17648     { &hf_gsm_map_er_cug_RejectCause,
17649       { "cug-RejectCause", "gsm_map.er.cug_RejectCause",
17650         FT_UINT32, BASE_DEC, VALS(gsm_map_er_CUG_RejectCause_vals), 0,
17651         "gsm_map_er.CUG_RejectCause", HFILL }},
17652     { &hf_gsm_map_er_ss_Code,
17653       { "ss-Code", "gsm_map.er.ss_Code",
17654         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
17655         "gsm_map.SS_Code", HFILL }},
17656     { &hf_gsm_map_er_basicService,
17657       { "basicService", "gsm_map.er.basicService",
17658         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
17659         "gsm_map.BasicServiceCode", HFILL }},
17660     { &hf_gsm_map_er_ss_Status,
17661       { "ss-Status", "gsm_map.er.ss_Status",
17662         FT_BYTES, BASE_HEX, NULL, 0,
17663         "gsm_map_ss.SS_Status", HFILL }},
17664     { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause,
17665       { "sm-EnumeratedDeliveryFailureCause", "gsm_map.er.sm_EnumeratedDeliveryFailureCause",
17666         FT_UINT32, BASE_DEC, VALS(gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals), 0,
17667         "gsm_map_er.SM_EnumeratedDeliveryFailureCause", HFILL }},
17668     { &hf_gsm_map_er_diagnosticInfo,
17669       { "diagnosticInfo", "gsm_map.er.diagnosticInfo",
17670         FT_BYTES, BASE_HEX, NULL, 0,
17671         "gsm_map.SignalInfo", HFILL }},
17672     { &hf_gsm_map_er_absentSubscriberDiagnosticSM,
17673       { "absentSubscriberDiagnosticSM", "gsm_map.er.absentSubscriberDiagnosticSM",
17674         FT_UINT32, BASE_DEC, NULL, 0,
17675         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
17676     { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM,
17677       { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.er.additionalAbsentSubscriberDiagnosticSM",
17678         FT_UINT32, BASE_DEC, NULL, 0,
17679         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
17680     { &hf_gsm_map_er_networkResource,
17681       { "networkResource", "gsm_map.er.networkResource",
17682         FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0,
17683         "gsm_map.NetworkResource", HFILL }},
17684     { &hf_gsm_map_er_extensibleSystemFailureParam,
17685       { "extensibleSystemFailureParam", "gsm_map.er.extensibleSystemFailureParam",
17686         FT_NONE, BASE_NONE, NULL, 0,
17687         "gsm_map_er.ExtensibleSystemFailureParam", HFILL }},
17688     { &hf_gsm_map_er_additionalNetworkResource,
17689       { "additionalNetworkResource", "gsm_map.er.additionalNetworkResource",
17690         FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalNetworkResource_vals), 0,
17691         "gsm_map.AdditionalNetworkResource", HFILL }},
17692     { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported,
17693       { "shapeOfLocationEstimateNotSupported", "gsm_map.er.shapeOfLocationEstimateNotSupported",
17694         FT_NONE, BASE_NONE, NULL, 0,
17695         "gsm_map_er.NULL", HFILL }},
17696     { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode,
17697       { "neededLcsCapabilityNotSupportedInServingNode", "gsm_map.er.neededLcsCapabilityNotSupportedInServingNode",
17698         FT_NONE, BASE_NONE, NULL, 0,
17699         "gsm_map_er.NULL", HFILL }},
17700     { &hf_gsm_map_er_unknownSubscriberDiagnostic,
17701       { "unknownSubscriberDiagnostic", "gsm_map.er.unknownSubscriberDiagnostic",
17702         FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnknownSubscriberDiagnostic_vals), 0,
17703         "gsm_map_er.UnknownSubscriberDiagnostic", HFILL }},
17704     { &hf_gsm_map_er_absentSubscriberReason,
17705       { "absentSubscriberReason", "gsm_map.er.absentSubscriberReason",
17706         FT_UINT32, BASE_DEC, VALS(gsm_map_er_AbsentSubscriberReason_vals), 0,
17707         "gsm_map_er.AbsentSubscriberReason", HFILL }},
17708     { &hf_gsm_map_er_ccbs_Possible,
17709       { "ccbs-Possible", "gsm_map.er.ccbs_Possible",
17710         FT_NONE, BASE_NONE, NULL, 0,
17711         "gsm_map_er.NULL", HFILL }},
17712     { &hf_gsm_map_er_ccbs_Busy,
17713       { "ccbs-Busy", "gsm_map.er.ccbs_Busy",
17714         FT_NONE, BASE_NONE, NULL, 0,
17715         "gsm_map_er.NULL", HFILL }},
17716     { &hf_gsm_map_er_gprsConnectionSuspended,
17717       { "gprsConnectionSuspended", "gsm_map.er.gprsConnectionSuspended",
17718         FT_NONE, BASE_NONE, NULL, 0,
17719         "gsm_map_er.NULL", HFILL }},
17720     { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic,
17721       { "unauthorizedLCSClient-Diagnostic", "gsm_map.er.unauthorizedLCSClient_Diagnostic",
17722         FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals), 0,
17723         "gsm_map_er.UnauthorizedLCSClient_Diagnostic", HFILL }},
17724     { &hf_gsm_map_er_positionMethodFailure_Diagnostic,
17725       { "positionMethodFailure-Diagnostic", "gsm_map.er.positionMethodFailure_Diagnostic",
17726         FT_UINT32, BASE_DEC, VALS(gsm_map_er_PositionMethodFailure_Diagnostic_vals), 0,
17727         "gsm_map_er.PositionMethodFailure_Diagnostic", HFILL }},
17728
17729 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
17730
17731     { &hf_gsm_map_sm_msisdn,
17732       { "msisdn", "gsm_map.sm.msisdn",
17733         FT_BYTES, BASE_HEX, NULL, 0,
17734         "gsm_map.ISDN_AddressString", HFILL }},
17735     { &hf_gsm_map_sm_sm_RP_PRI,
17736       { "sm-RP-PRI", "gsm_map.sm.sm_RP_PRI",
17737         FT_BOOLEAN, 8, NULL, 0,
17738         "gsm_map_sm.BOOLEAN", HFILL }},
17739     { &hf_gsm_map_sm_serviceCentreAddress,
17740       { "serviceCentreAddress", "gsm_map.sm.serviceCentreAddress",
17741         FT_BYTES, BASE_HEX, NULL, 0,
17742         "gsm_map.AddressString", HFILL }},
17743     { &hf_gsm_map_sm_extensionContainer,
17744       { "extensionContainer", "gsm_map.sm.extensionContainer",
17745         FT_NONE, BASE_NONE, NULL, 0,
17746         "gsm_map.ExtensionContainer", HFILL }},
17747     { &hf_gsm_map_sm_gprsSupportIndicator,
17748       { "gprsSupportIndicator", "gsm_map.sm.gprsSupportIndicator",
17749         FT_NONE, BASE_NONE, NULL, 0,
17750         "gsm_map_sm.NULL", HFILL }},
17751     { &hf_gsm_map_sm_sm_RP_MTI,
17752       { "sm-RP-MTI", "gsm_map.sm.sm_RP_MTI",
17753         FT_UINT32, BASE_DEC, NULL, 0,
17754         "gsm_map_sm.SM_RP_MTI", HFILL }},
17755     { &hf_gsm_map_sm_sm_RP_SMEA,
17756       { "sm-RP-SMEA", "gsm_map.sm.sm_RP_SMEA",
17757         FT_BYTES, BASE_HEX, NULL, 0,
17758         "gsm_map_sm.SM_RP_SMEA", HFILL }},
17759     { &hf_gsm_map_sm_imsi,
17760       { "imsi", "gsm_map.sm.imsi",
17761         FT_BYTES, BASE_HEX, NULL, 0,
17762         "gsm_map.IMSI", HFILL }},
17763     { &hf_gsm_map_sm_locationInfoWithLMSI,
17764       { "locationInfoWithLMSI", "gsm_map.sm.locationInfoWithLMSI",
17765         FT_NONE, BASE_NONE, NULL, 0,
17766         "gsm_map_sm.LocationInfoWithLMSI", HFILL }},
17767     { &hf_gsm_map_sm_networkNode_Number,
17768       { "networkNode-Number", "gsm_map.sm.networkNode_Number",
17769         FT_BYTES, BASE_HEX, NULL, 0,
17770         "gsm_map.ISDN_AddressString", HFILL }},
17771     { &hf_gsm_map_sm_lmsi,
17772       { "lmsi", "gsm_map.sm.lmsi",
17773         FT_BYTES, BASE_HEX, NULL, 0,
17774         "gsm_map.LMSI", HFILL }},
17775     { &hf_gsm_map_sm_gprsNodeIndicator,
17776       { "gprsNodeIndicator", "gsm_map.sm.gprsNodeIndicator",
17777         FT_NONE, BASE_NONE, NULL, 0,
17778         "gsm_map_sm.NULL", HFILL }},
17779     { &hf_gsm_map_sm_additional_Number,
17780       { "additional-Number", "gsm_map.sm.additional_Number",
17781         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
17782         "gsm_map_sm.Additional_Number", HFILL }},
17783     { &hf_gsm_map_sm_msc_Number,
17784       { "msc-Number", "gsm_map.sm.msc_Number",
17785         FT_BYTES, BASE_HEX, NULL, 0,
17786         "gsm_map.ISDN_AddressString", HFILL }},
17787     { &hf_gsm_map_sm_sgsn_Number,
17788       { "sgsn-Number", "gsm_map.sm.sgsn_Number",
17789         FT_BYTES, BASE_HEX, NULL, 0,
17790         "gsm_map.ISDN_AddressString", HFILL }},
17791     { &hf_gsm_map_sm_sm_RP_DA,
17792       { "sm-RP-DA", "gsm_map.sm.sm_RP_DA",
17793         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_DA_vals), 0,
17794         "gsm_map_sm.SM_RP_DA", HFILL }},
17795     { &hf_gsm_map_sm_sm_RP_OA,
17796       { "sm-RP-OA", "gsm_map.sm.sm_RP_OA",
17797         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_OA_vals), 0,
17798         "gsm_map_sm.SM_RP_OA", HFILL }},
17799     { &hf_gsm_map_sm_sm_RP_UI,
17800       { "sm-RP-UI", "gsm_map.sm.sm_RP_UI",
17801         FT_BYTES, BASE_HEX, NULL, 0,
17802         "gsm_map.SignalInfo", HFILL }},
17803     { &hf_gsm_map_sm_moreMessagesToSend,
17804       { "moreMessagesToSend", "gsm_map.sm.moreMessagesToSend",
17805         FT_NONE, BASE_NONE, NULL, 0,
17806         "gsm_map_sm.NULL", HFILL }},
17807     { &hf_gsm_map_sm_serviceCentreAddressDA,
17808       { "serviceCentreAddressDA", "gsm_map.sm.serviceCentreAddressDA",
17809         FT_BYTES, BASE_HEX, NULL, 0,
17810         "gsm_map.AddressString", HFILL }},
17811     { &hf_gsm_map_sm_noSM_RP_DA,
17812       { "noSM-RP-DA", "gsm_map.sm.noSM_RP_DA",
17813         FT_NONE, BASE_NONE, NULL, 0,
17814         "gsm_map_sm.NULL", HFILL }},
17815     { &hf_gsm_map_sm_msisdn_01,
17816       { "msisdn", "gsm_map.sm.msisdn",
17817         FT_BYTES, BASE_HEX, NULL, 0,
17818         "gsm_map_sm.T_msisdn", HFILL }},
17819     { &hf_gsm_map_sm_serviceCentreAddressOA,
17820       { "serviceCentreAddressOA", "gsm_map.sm.serviceCentreAddressOA",
17821         FT_BYTES, BASE_HEX, NULL, 0,
17822         "gsm_map_sm.T_serviceCentreAddressOA", HFILL }},
17823     { &hf_gsm_map_sm_noSM_RP_OA,
17824       { "noSM-RP-OA", "gsm_map.sm.noSM_RP_OA",
17825         FT_NONE, BASE_NONE, NULL, 0,
17826         "gsm_map_sm.NULL", HFILL }},
17827     { &hf_gsm_map_sm_sm_DeliveryOutcome,
17828       { "sm-DeliveryOutcome", "gsm_map.sm.sm_DeliveryOutcome",
17829         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
17830         "gsm_map_sm.SM_DeliveryOutcome", HFILL }},
17831     { &hf_gsm_map_sm_absentSubscriberDiagnosticSM,
17832       { "absentSubscriberDiagnosticSM", "gsm_map.sm.absentSubscriberDiagnosticSM",
17833         FT_UINT32, BASE_DEC, NULL, 0,
17834         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
17835     { &hf_gsm_map_sm_deliveryOutcomeIndicator,
17836       { "deliveryOutcomeIndicator", "gsm_map.sm.deliveryOutcomeIndicator",
17837         FT_NONE, BASE_NONE, NULL, 0,
17838         "gsm_map_sm.NULL", HFILL }},
17839     { &hf_gsm_map_sm_additionalSM_DeliveryOutcome,
17840       { "additionalSM-DeliveryOutcome", "gsm_map.sm.additionalSM_DeliveryOutcome",
17841         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
17842         "gsm_map_sm.SM_DeliveryOutcome", HFILL }},
17843     { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM,
17844       { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.sm.additionalAbsentSubscriberDiagnosticSM",
17845         FT_UINT32, BASE_DEC, NULL, 0,
17846         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
17847     { &hf_gsm_map_sm_storedMSISDN,
17848       { "storedMSISDN", "gsm_map.sm.storedMSISDN",
17849         FT_BYTES, BASE_HEX, NULL, 0,
17850         "gsm_map.ISDN_AddressString", HFILL }},
17851     { &hf_gsm_map_sm_mw_Status,
17852       { "mw-Status", "gsm_map.sm.mw_Status",
17853         FT_BYTES, BASE_HEX, NULL, 0,
17854         "gsm_map_sm.MW_Status", HFILL }},
17855     { &hf_gsm_map_sm_alertReason,
17856       { "alertReason", "gsm_map.sm.alertReason",
17857         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_AlertReason_vals), 0,
17858         "gsm_map_sm.AlertReason", HFILL }},
17859     { &hf_gsm_map_sm_alertReasonIndicator,
17860       { "alertReasonIndicator", "gsm_map.sm.alertReasonIndicator",
17861         FT_NONE, BASE_NONE, NULL, 0,
17862         "gsm_map_sm.NULL", HFILL }},
17863     { &hf_gsm_map_sm_asciCallReference,
17864       { "asciCallReference", "gsm_map.sm.asciCallReference",
17865         FT_BYTES, BASE_HEX, NULL, 0,
17866         "gsm_map.ASCI_CallReference", HFILL }},
17867     { &hf_gsm_map_sm_dispatcherList,
17868       { "dispatcherList", "gsm_map.sm.dispatcherList",
17869         FT_UINT32, BASE_DEC, NULL, 0,
17870         "gsm_map_sm.DispatcherList", HFILL }},
17871     { &hf_gsm_map_sm_ongoingCall,
17872       { "ongoingCall", "gsm_map.sm.ongoingCall",
17873         FT_NONE, BASE_NONE, NULL, 0,
17874         "gsm_map_sm.NULL", HFILL }},
17875     { &hf_gsm_map_sm_DispatcherList_item,
17876       { "Item", "gsm_map.sm.DispatcherList_item",
17877         FT_BYTES, BASE_HEX, NULL, 0,
17878         "gsm_map.ISDN_AddressString", HFILL }},
17879     { &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded,
17880       { "sc-AddressNotIncluded", "gsm_map.sm.sc-AddressNotIncluded",
17881         FT_BOOLEAN, 8, NULL, 0x80,
17882         "", HFILL }},
17883     { &hf_gsm_map_sm_MW_Status_mnrf_Set,
17884       { "mnrf-Set", "gsm_map.sm.mnrf-Set",
17885         FT_BOOLEAN, 8, NULL, 0x40,
17886         "", HFILL }},
17887     { &hf_gsm_map_sm_MW_Status_mcef_Set,
17888       { "mcef-Set", "gsm_map.sm.mcef-Set",
17889         FT_BOOLEAN, 8, NULL, 0x20,
17890         "", HFILL }},
17891     { &hf_gsm_map_sm_MW_Status_mnrg_Set,
17892       { "mnrg-Set", "gsm_map.sm.mnrg-Set",
17893         FT_BOOLEAN, 8, NULL, 0x10,
17894         "", HFILL }},
17895
17896 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
17897
17898     { &hf_gsm_map_om_imsi,
17899       { "imsi", "gsm_map.om.imsi",
17900         FT_BYTES, BASE_HEX, NULL, 0,
17901         "gsm_map.IMSI", HFILL }},
17902     { &hf_gsm_map_om_traceReference,
17903       { "traceReference", "gsm_map.om.traceReference",
17904         FT_BYTES, BASE_HEX, NULL, 0,
17905         "gsm_map_om.TraceReference", HFILL }},
17906     { &hf_gsm_map_om_traceType,
17907       { "traceType", "gsm_map.om.traceType",
17908         FT_UINT32, BASE_DEC, NULL, 0,
17909         "gsm_map_om.TraceType", HFILL }},
17910     { &hf_gsm_map_om_omc_Id,
17911       { "omc-Id", "gsm_map.om.omc_Id",
17912         FT_BYTES, BASE_HEX, NULL, 0,
17913         "gsm_map.AddressString", HFILL }},
17914     { &hf_gsm_map_om_extensionContainer,
17915       { "extensionContainer", "gsm_map.om.extensionContainer",
17916         FT_NONE, BASE_NONE, NULL, 0,
17917         "gsm_map.ExtensionContainer", HFILL }},
17918     { &hf_gsm_map_om_traceReference2,
17919       { "traceReference2", "gsm_map.om.traceReference2",
17920         FT_BYTES, BASE_HEX, NULL, 0,
17921         "gsm_map_om.TraceReference2", HFILL }},
17922     { &hf_gsm_map_om_traceDepthList,
17923       { "traceDepthList", "gsm_map.om.traceDepthList",
17924         FT_NONE, BASE_NONE, NULL, 0,
17925         "gsm_map_om.TraceDepthList", HFILL }},
17926     { &hf_gsm_map_om_traceNE_TypeList,
17927       { "traceNE-TypeList", "gsm_map.om.traceNE_TypeList",
17928         FT_BYTES, BASE_HEX, NULL, 0,
17929         "gsm_map_om.TraceNE_TypeList", HFILL }},
17930     { &hf_gsm_map_om_traceInterfaceList,
17931       { "traceInterfaceList", "gsm_map.om.traceInterfaceList",
17932         FT_NONE, BASE_NONE, NULL, 0,
17933         "gsm_map_om.TraceInterfaceList", HFILL }},
17934     { &hf_gsm_map_om_traceEventList,
17935       { "traceEventList", "gsm_map.om.traceEventList",
17936         FT_NONE, BASE_NONE, NULL, 0,
17937         "gsm_map_om.TraceEventList", HFILL }},
17938     { &hf_gsm_map_om_msc_s_TraceDepth,
17939       { "msc-s-TraceDepth", "gsm_map.om.msc_s_TraceDepth",
17940         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
17941         "gsm_map_om.TraceDepth", HFILL }},
17942     { &hf_gsm_map_om_mgw_TraceDepth,
17943       { "mgw-TraceDepth", "gsm_map.om.mgw_TraceDepth",
17944         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
17945         "gsm_map_om.TraceDepth", HFILL }},
17946     { &hf_gsm_map_om_sgsn_TraceDepth,
17947       { "sgsn-TraceDepth", "gsm_map.om.sgsn_TraceDepth",
17948         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
17949         "gsm_map_om.TraceDepth", HFILL }},
17950     { &hf_gsm_map_om_ggsn_TraceDepth,
17951       { "ggsn-TraceDepth", "gsm_map.om.ggsn_TraceDepth",
17952         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
17953         "gsm_map_om.TraceDepth", HFILL }},
17954     { &hf_gsm_map_om_rnc_TraceDepth,
17955       { "rnc-TraceDepth", "gsm_map.om.rnc_TraceDepth",
17956         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
17957         "gsm_map_om.TraceDepth", HFILL }},
17958     { &hf_gsm_map_om_bmsc_TraceDepth,
17959       { "bmsc-TraceDepth", "gsm_map.om.bmsc_TraceDepth",
17960         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
17961         "gsm_map_om.TraceDepth", HFILL }},
17962     { &hf_gsm_map_om_msc_s_List,
17963       { "msc-s-List", "gsm_map.om.msc_s_List",
17964         FT_BYTES, BASE_HEX, NULL, 0,
17965         "gsm_map_om.MSC_S_InterfaceList", HFILL }},
17966     { &hf_gsm_map_om_mgw_List,
17967       { "mgw-List", "gsm_map.om.mgw_List",
17968         FT_BYTES, BASE_HEX, NULL, 0,
17969         "gsm_map_om.MGW_InterfaceList", HFILL }},
17970     { &hf_gsm_map_om_sgsn_List,
17971       { "sgsn-List", "gsm_map.om.sgsn_List",
17972         FT_BYTES, BASE_HEX, NULL, 0,
17973         "gsm_map_om.SGSN_InterfaceList", HFILL }},
17974     { &hf_gsm_map_om_ggsn_List,
17975       { "ggsn-List", "gsm_map.om.ggsn_List",
17976         FT_BYTES, BASE_HEX, NULL, 0,
17977         "gsm_map_om.GGSN_InterfaceList", HFILL }},
17978     { &hf_gsm_map_om_rnc_List,
17979       { "rnc-List", "gsm_map.om.rnc_List",
17980         FT_BYTES, BASE_HEX, NULL, 0,
17981         "gsm_map_om.RNC_InterfaceList", HFILL }},
17982     { &hf_gsm_map_om_bmsc_List,
17983       { "bmsc-List", "gsm_map.om.bmsc_List",
17984         FT_BYTES, BASE_HEX, NULL, 0,
17985         "gsm_map_om.BMSC_InterfaceList", HFILL }},
17986     { &hf_gsm_map_om_msc_s_List_01,
17987       { "msc-s-List", "gsm_map.om.msc_s_List",
17988         FT_BYTES, BASE_HEX, NULL, 0,
17989         "gsm_map_om.MSC_S_EventList", HFILL }},
17990     { &hf_gsm_map_om_mgw_List_01,
17991       { "mgw-List", "gsm_map.om.mgw_List",
17992         FT_BYTES, BASE_HEX, NULL, 0,
17993         "gsm_map_om.MGW_EventList", HFILL }},
17994     { &hf_gsm_map_om_sgsn_List_01,
17995       { "sgsn-List", "gsm_map.om.sgsn_List",
17996         FT_BYTES, BASE_HEX, NULL, 0,
17997         "gsm_map_om.SGSN_EventList", HFILL }},
17998     { &hf_gsm_map_om_ggsn_List_01,
17999       { "ggsn-List", "gsm_map.om.ggsn_List",
18000         FT_BYTES, BASE_HEX, NULL, 0,
18001         "gsm_map_om.GGSN_EventList", HFILL }},
18002     { &hf_gsm_map_om_bmsc_List_01,
18003       { "bmsc-List", "gsm_map.om.bmsc_List",
18004         FT_BYTES, BASE_HEX, NULL, 0,
18005         "gsm_map_om.BMSC_EventList", HFILL }},
18006     { &hf_gsm_map_om_traceRecordingSessionReference,
18007       { "traceRecordingSessionReference", "gsm_map.om.traceRecordingSessionReference",
18008         FT_BYTES, BASE_HEX, NULL, 0,
18009         "gsm_map_om.TraceRecordingSessionReference", HFILL }},
18010     { &hf_gsm_map_om_rnc_InterfaceList,
18011       { "rnc-InterfaceList", "gsm_map.om.rnc_InterfaceList",
18012         FT_BYTES, BASE_HEX, NULL, 0,
18013         "gsm_map_om.RNC_InterfaceList", HFILL }},
18014     { &hf_gsm_map_om_msc_s_InterfaceList,
18015       { "msc-s-InterfaceList", "gsm_map.om.msc_s_InterfaceList",
18016         FT_BYTES, BASE_HEX, NULL, 0,
18017         "gsm_map_om.MSC_S_InterfaceList", HFILL }},
18018     { &hf_gsm_map_om_msc_s_EventList,
18019       { "msc-s-EventList", "gsm_map.om.msc_s_EventList",
18020         FT_BYTES, BASE_HEX, NULL, 0,
18021         "gsm_map_om.MSC_S_EventList", HFILL }},
18022     { &hf_gsm_map_om_mgw_InterfaceList,
18023       { "mgw-InterfaceList", "gsm_map.om.mgw_InterfaceList",
18024         FT_BYTES, BASE_HEX, NULL, 0,
18025         "gsm_map_om.MGW_InterfaceList", HFILL }},
18026     { &hf_gsm_map_om_mgw_EventList,
18027       { "mgw-EventList", "gsm_map.om.mgw_EventList",
18028         FT_BYTES, BASE_HEX, NULL, 0,
18029         "gsm_map_om.MGW_EventList", HFILL }},
18030     { &hf_gsm_map_om_traceSupportIndicator,
18031       { "traceSupportIndicator", "gsm_map.om.traceSupportIndicator",
18032         FT_NONE, BASE_NONE, NULL, 0,
18033         "gsm_map_om.NULL", HFILL }},
18034     { &hf_gsm_map_om_TraceNE_TypeList_msc_s,
18035       { "msc-s", "gsm_map.om.msc-s",
18036         FT_BOOLEAN, 8, NULL, 0x80,
18037         "", HFILL }},
18038     { &hf_gsm_map_om_TraceNE_TypeList_mgw,
18039       { "mgw", "gsm_map.om.mgw",
18040         FT_BOOLEAN, 8, NULL, 0x40,
18041         "", HFILL }},
18042     { &hf_gsm_map_om_TraceNE_TypeList_sgsn,
18043       { "sgsn", "gsm_map.om.sgsn",
18044         FT_BOOLEAN, 8, NULL, 0x20,
18045         "", HFILL }},
18046     { &hf_gsm_map_om_TraceNE_TypeList_ggsn,
18047       { "ggsn", "gsm_map.om.ggsn",
18048         FT_BOOLEAN, 8, NULL, 0x10,
18049         "", HFILL }},
18050     { &hf_gsm_map_om_TraceNE_TypeList_rnc,
18051       { "rnc", "gsm_map.om.rnc",
18052         FT_BOOLEAN, 8, NULL, 0x08,
18053         "", HFILL }},
18054     { &hf_gsm_map_om_TraceNE_TypeList_bm_sc,
18055       { "bm-sc", "gsm_map.om.bm-sc",
18056         FT_BOOLEAN, 8, NULL, 0x04,
18057         "", HFILL }},
18058     { &hf_gsm_map_om_MSC_S_InterfaceList_a,
18059       { "a", "gsm_map.om.a",
18060         FT_BOOLEAN, 8, NULL, 0x80,
18061         "", HFILL }},
18062     { &hf_gsm_map_om_MSC_S_InterfaceList_iu,
18063       { "iu", "gsm_map.om.iu",
18064         FT_BOOLEAN, 8, NULL, 0x40,
18065         "", HFILL }},
18066     { &hf_gsm_map_om_MSC_S_InterfaceList_mc,
18067       { "mc", "gsm_map.om.mc",
18068         FT_BOOLEAN, 8, NULL, 0x20,
18069         "", HFILL }},
18070     { &hf_gsm_map_om_MSC_S_InterfaceList_map_g,
18071       { "map-g", "gsm_map.om.map-g",
18072         FT_BOOLEAN, 8, NULL, 0x10,
18073         "", HFILL }},
18074     { &hf_gsm_map_om_MSC_S_InterfaceList_map_b,
18075       { "map-b", "gsm_map.om.map-b",
18076         FT_BOOLEAN, 8, NULL, 0x08,
18077         "", HFILL }},
18078     { &hf_gsm_map_om_MSC_S_InterfaceList_map_e,
18079       { "map-e", "gsm_map.om.map-e",
18080         FT_BOOLEAN, 8, NULL, 0x04,
18081         "", HFILL }},
18082     { &hf_gsm_map_om_MSC_S_InterfaceList_map_f,
18083       { "map-f", "gsm_map.om.map-f",
18084         FT_BOOLEAN, 8, NULL, 0x02,
18085         "", HFILL }},
18086     { &hf_gsm_map_om_MSC_S_InterfaceList_cap,
18087       { "cap", "gsm_map.om.cap",
18088         FT_BOOLEAN, 8, NULL, 0x01,
18089         "", HFILL }},
18090     { &hf_gsm_map_om_MSC_S_InterfaceList_map_d,
18091       { "map-d", "gsm_map.om.map-d",
18092         FT_BOOLEAN, 8, NULL, 0x80,
18093         "", HFILL }},
18094     { &hf_gsm_map_om_MSC_S_InterfaceList_map_c,
18095       { "map-c", "gsm_map.om.map-c",
18096         FT_BOOLEAN, 8, NULL, 0x40,
18097         "", HFILL }},
18098     { &hf_gsm_map_om_MGW_InterfaceList_mc,
18099       { "mc", "gsm_map.om.mc",
18100         FT_BOOLEAN, 8, NULL, 0x80,
18101         "", HFILL }},
18102     { &hf_gsm_map_om_MGW_InterfaceList_nb_up,
18103       { "nb-up", "gsm_map.om.nb-up",
18104         FT_BOOLEAN, 8, NULL, 0x40,
18105         "", HFILL }},
18106     { &hf_gsm_map_om_MGW_InterfaceList_iu_up,
18107       { "iu-up", "gsm_map.om.iu-up",
18108         FT_BOOLEAN, 8, NULL, 0x20,
18109         "", HFILL }},
18110     { &hf_gsm_map_om_SGSN_InterfaceList_gb,
18111       { "gb", "gsm_map.om.gb",
18112         FT_BOOLEAN, 8, NULL, 0x80,
18113         "", HFILL }},
18114     { &hf_gsm_map_om_SGSN_InterfaceList_iu,
18115       { "iu", "gsm_map.om.iu",
18116         FT_BOOLEAN, 8, NULL, 0x40,
18117         "", HFILL }},
18118     { &hf_gsm_map_om_SGSN_InterfaceList_gn,
18119       { "gn", "gsm_map.om.gn",
18120         FT_BOOLEAN, 8, NULL, 0x20,
18121         "", HFILL }},
18122     { &hf_gsm_map_om_SGSN_InterfaceList_map_gr,
18123       { "map-gr", "gsm_map.om.map-gr",
18124         FT_BOOLEAN, 8, NULL, 0x10,
18125         "", HFILL }},
18126     { &hf_gsm_map_om_SGSN_InterfaceList_map_gd,
18127       { "map-gd", "gsm_map.om.map-gd",
18128         FT_BOOLEAN, 8, NULL, 0x08,
18129         "", HFILL }},
18130     { &hf_gsm_map_om_SGSN_InterfaceList_map_gf,
18131       { "map-gf", "gsm_map.om.map-gf",
18132         FT_BOOLEAN, 8, NULL, 0x04,
18133         "", HFILL }},
18134     { &hf_gsm_map_om_SGSN_InterfaceList_gs,
18135       { "gs", "gsm_map.om.gs",
18136         FT_BOOLEAN, 8, NULL, 0x02,
18137         "", HFILL }},
18138     { &hf_gsm_map_om_SGSN_InterfaceList_ge,
18139       { "ge", "gsm_map.om.ge",
18140         FT_BOOLEAN, 8, NULL, 0x01,
18141         "", HFILL }},
18142     { &hf_gsm_map_om_GGSN_InterfaceList_gn,
18143       { "gn", "gsm_map.om.gn",
18144         FT_BOOLEAN, 8, NULL, 0x80,
18145         "", HFILL }},
18146     { &hf_gsm_map_om_GGSN_InterfaceList_gi,
18147       { "gi", "gsm_map.om.gi",
18148         FT_BOOLEAN, 8, NULL, 0x40,
18149         "", HFILL }},
18150     { &hf_gsm_map_om_GGSN_InterfaceList_gmb,
18151       { "gmb", "gsm_map.om.gmb",
18152         FT_BOOLEAN, 8, NULL, 0x20,
18153         "", HFILL }},
18154     { &hf_gsm_map_om_RNC_InterfaceList_iu,
18155       { "iu", "gsm_map.om.iu",
18156         FT_BOOLEAN, 8, NULL, 0x80,
18157         "", HFILL }},
18158     { &hf_gsm_map_om_RNC_InterfaceList_iur,
18159       { "iur", "gsm_map.om.iur",
18160         FT_BOOLEAN, 8, NULL, 0x40,
18161         "", HFILL }},
18162     { &hf_gsm_map_om_RNC_InterfaceList_iub,
18163       { "iub", "gsm_map.om.iub",
18164         FT_BOOLEAN, 8, NULL, 0x20,
18165         "", HFILL }},
18166     { &hf_gsm_map_om_RNC_InterfaceList_uu,
18167       { "uu", "gsm_map.om.uu",
18168         FT_BOOLEAN, 8, NULL, 0x10,
18169         "", HFILL }},
18170     { &hf_gsm_map_om_BMSC_InterfaceList_gmb,
18171       { "gmb", "gsm_map.om.gmb",
18172         FT_BOOLEAN, 8, NULL, 0x80,
18173         "", HFILL }},
18174     { &hf_gsm_map_om_MSC_S_EventList_mo_mtCall,
18175       { "mo-mtCall", "gsm_map.om.mo-mtCall",
18176         FT_BOOLEAN, 8, NULL, 0x80,
18177         "", HFILL }},
18178     { &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms,
18179       { "mo-mt-sms", "gsm_map.om.mo-mt-sms",
18180         FT_BOOLEAN, 8, NULL, 0x40,
18181         "", HFILL }},
18182     { &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach,
18183       { "lu-imsiAttach-imsiDetach", "gsm_map.om.lu-imsiAttach-imsiDetach",
18184         FT_BOOLEAN, 8, NULL, 0x20,
18185         "", HFILL }},
18186     { &hf_gsm_map_om_MSC_S_EventList_handovers,
18187       { "handovers", "gsm_map.om.handovers",
18188         FT_BOOLEAN, 8, NULL, 0x10,
18189         "", HFILL }},
18190     { &hf_gsm_map_om_MSC_S_EventList_ss,
18191       { "ss", "gsm_map.om.ss",
18192         FT_BOOLEAN, 8, NULL, 0x08,
18193         "", HFILL }},
18194     { &hf_gsm_map_om_MGW_EventList_context,
18195       { "context", "gsm_map.om.context",
18196         FT_BOOLEAN, 8, NULL, 0x80,
18197         "", HFILL }},
18198     { &hf_gsm_map_om_SGSN_EventList_pdpContext,
18199       { "pdpContext", "gsm_map.om.pdpContext",
18200         FT_BOOLEAN, 8, NULL, 0x80,
18201         "", HFILL }},
18202     { &hf_gsm_map_om_SGSN_EventList_mo_mt_sms,
18203       { "mo-mt-sms", "gsm_map.om.mo-mt-sms",
18204         FT_BOOLEAN, 8, NULL, 0x40,
18205         "", HFILL }},
18206     { &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach,
18207       { "rau-gprsAttach-gprsDetach", "gsm_map.om.rau-gprsAttach-gprsDetach",
18208         FT_BOOLEAN, 8, NULL, 0x20,
18209         "", HFILL }},
18210     { &hf_gsm_map_om_SGSN_EventList_mbmsContext,
18211       { "mbmsContext", "gsm_map.om.mbmsContext",
18212         FT_BOOLEAN, 8, NULL, 0x10,
18213         "", HFILL }},
18214     { &hf_gsm_map_om_GGSN_EventList_pdpContext,
18215       { "pdpContext", "gsm_map.om.pdpContext",
18216         FT_BOOLEAN, 8, NULL, 0x80,
18217         "", HFILL }},
18218     { &hf_gsm_map_om_GGSN_EventList_mbmsContext,
18219       { "mbmsContext", "gsm_map.om.mbmsContext",
18220         FT_BOOLEAN, 8, NULL, 0x40,
18221         "", HFILL }},
18222     { &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation,
18223       { "mbmsMulticastServiceActivation", "gsm_map.om.mbmsMulticastServiceActivation",
18224         FT_BOOLEAN, 8, NULL, 0x80,
18225         "", HFILL }},
18226
18227 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
18228
18229     { &hf_gsm_map_ms_imsi,
18230       { "imsi", "gsm_map.ms.imsi",
18231         FT_BYTES, BASE_HEX, NULL, 0,
18232         "gsm_map.IMSI", HFILL }},
18233     { &hf_gsm_map_ms_msc_Number,
18234       { "msc-Number", "gsm_map.ms.msc_Number",
18235         FT_BYTES, BASE_HEX, NULL, 0,
18236         "gsm_map.ISDN_AddressString", HFILL }},
18237     { &hf_gsm_map_ms_vlr_Number,
18238       { "vlr-Number", "gsm_map.ms.vlr_Number",
18239         FT_BYTES, BASE_HEX, NULL, 0,
18240         "gsm_map.ISDN_AddressString", HFILL }},
18241     { &hf_gsm_map_ms_lmsi,
18242       { "lmsi", "gsm_map.ms.lmsi",
18243         FT_BYTES, BASE_HEX, NULL, 0,
18244         "gsm_map.LMSI", HFILL }},
18245     { &hf_gsm_map_ms_extensionContainer,
18246       { "extensionContainer", "gsm_map.ms.extensionContainer",
18247         FT_NONE, BASE_NONE, NULL, 0,
18248         "gsm_map.ExtensionContainer", HFILL }},
18249     { &hf_gsm_map_ms_vlr_Capability,
18250       { "vlr-Capability", "gsm_map.ms.vlr_Capability",
18251         FT_NONE, BASE_NONE, NULL, 0,
18252         "gsm_map_ms.VLR_Capability", HFILL }},
18253     { &hf_gsm_map_ms_informPreviousNetworkEntity,
18254       { "informPreviousNetworkEntity", "gsm_map.ms.informPreviousNetworkEntity",
18255         FT_NONE, BASE_NONE, NULL, 0,
18256         "gsm_map_ms.NULL", HFILL }},
18257     { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE,
18258       { "cs-LCS-NotSupportedByUE", "gsm_map.ms.cs_LCS_NotSupportedByUE",
18259         FT_NONE, BASE_NONE, NULL, 0,
18260         "gsm_map_ms.NULL", HFILL }},
18261     { &hf_gsm_map_ms_v_gmlc_Address,
18262       { "v-gmlc-Address", "gsm_map.ms.v_gmlc_Address",
18263         FT_BYTES, BASE_HEX, NULL, 0,
18264         "gsm_map_ms.GSN_Address", HFILL }},
18265     { &hf_gsm_map_ms_add_info,
18266       { "add-info", "gsm_map.ms.add_info",
18267         FT_NONE, BASE_NONE, NULL, 0,
18268         "gsm_map_ms.ADD_Info", HFILL }},
18269     { &hf_gsm_map_ms_supportedCamelPhases,
18270       { "supportedCamelPhases", "gsm_map.ms.supportedCamelPhases",
18271         FT_BYTES, BASE_HEX, NULL, 0,
18272         "gsm_map_ms.SupportedCamelPhases", HFILL }},
18273     { &hf_gsm_map_ms_solsaSupportIndicator,
18274       { "solsaSupportIndicator", "gsm_map.ms.solsaSupportIndicator",
18275         FT_NONE, BASE_NONE, NULL, 0,
18276         "gsm_map_ms.NULL", HFILL }},
18277     { &hf_gsm_map_ms_istSupportIndicator,
18278       { "istSupportIndicator", "gsm_map.ms.istSupportIndicator",
18279         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
18280         "gsm_map_ms.IST_SupportIndicator", HFILL }},
18281     { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity,
18282       { "superChargerSupportedInServingNetworkEntity", "gsm_map.ms.superChargerSupportedInServingNetworkEntity",
18283         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SuperChargerInfo_vals), 0,
18284         "gsm_map_ms.SuperChargerInfo", HFILL }},
18285     { &hf_gsm_map_ms_longFTN_Supported,
18286       { "longFTN-Supported", "gsm_map.ms.longFTN_Supported",
18287         FT_NONE, BASE_NONE, NULL, 0,
18288         "gsm_map_ms.NULL", HFILL }},
18289     { &hf_gsm_map_ms_supportedLCS_CapabilitySets,
18290       { "supportedLCS-CapabilitySets", "gsm_map.ms.supportedLCS_CapabilitySets",
18291         FT_BYTES, BASE_HEX, NULL, 0,
18292         "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }},
18293     { &hf_gsm_map_ms_offeredCamel4CSIs,
18294       { "offeredCamel4CSIs", "gsm_map.ms.offeredCamel4CSIs",
18295         FT_BYTES, BASE_HEX, NULL, 0,
18296         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
18297     { &hf_gsm_map_ms_supportedRAT_TypesIndicator,
18298       { "supportedRAT-TypesIndicator", "gsm_map.ms.supportedRAT_TypesIndicator",
18299         FT_BYTES, BASE_HEX, NULL, 0,
18300         "gsm_map_ms.SupportedRAT_Types", HFILL }},
18301     { &hf_gsm_map_ms_longGroupID_Supported,
18302       { "longGroupID-Supported", "gsm_map.ms.longGroupID_Supported",
18303         FT_NONE, BASE_NONE, NULL, 0,
18304         "gsm_map_ms.NULL", HFILL }},
18305     { &hf_gsm_map_ms_sendSubscriberData,
18306       { "sendSubscriberData", "gsm_map.ms.sendSubscriberData",
18307         FT_NONE, BASE_NONE, NULL, 0,
18308         "gsm_map_ms.NULL", HFILL }},
18309     { &hf_gsm_map_ms_subscriberDataStored,
18310       { "subscriberDataStored", "gsm_map.ms.subscriberDataStored",
18311         FT_BYTES, BASE_HEX, NULL, 0,
18312         "gsm_map_ms.AgeIndicator", HFILL }},
18313     { &hf_gsm_map_ms_hlr_Number,
18314       { "hlr-Number", "gsm_map.ms.hlr_Number",
18315         FT_BYTES, BASE_HEX, NULL, 0,
18316         "gsm_map.ISDN_AddressString", HFILL }},
18317     { &hf_gsm_map_ms_add_Capability,
18318       { "add-Capability", "gsm_map.ms.add_Capability",
18319         FT_NONE, BASE_NONE, NULL, 0,
18320         "gsm_map_ms.NULL", HFILL }},
18321     { &hf_gsm_map_ms_imeisv,
18322       { "imeisv", "gsm_map.ms.imeisv",
18323         FT_BYTES, BASE_HEX, NULL, 0,
18324         "gsm_map.IMEI", HFILL }},
18325     { &hf_gsm_map_ms_skipSubscriberDataUpdate,
18326       { "skipSubscriberDataUpdate", "gsm_map.ms.skipSubscriberDataUpdate",
18327         FT_NONE, BASE_NONE, NULL, 0,
18328         "gsm_map_ms.NULL", HFILL }},
18329     { &hf_gsm_map_ms_identity,
18330       { "identity", "gsm_map.ms.identity",
18331         FT_UINT32, BASE_DEC, VALS(gsm_map_Identity_vals), 0,
18332         "gsm_map.Identity", HFILL }},
18333     { &hf_gsm_map_ms_cancellationType,
18334       { "cancellationType", "gsm_map.ms.cancellationType",
18335         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CancellationType_vals), 0,
18336         "gsm_map_ms.CancellationType", HFILL }},
18337     { &hf_gsm_map_ms_sgsn_Number,
18338       { "sgsn-Number", "gsm_map.ms.sgsn_Number",
18339         FT_BYTES, BASE_HEX, NULL, 0,
18340         "gsm_map.ISDN_AddressString", HFILL }},
18341     { &hf_gsm_map_ms_freezeTMSI,
18342       { "freezeTMSI", "gsm_map.ms.freezeTMSI",
18343         FT_NONE, BASE_NONE, NULL, 0,
18344         "gsm_map_ms.NULL", HFILL }},
18345     { &hf_gsm_map_ms_freezeP_TMSI,
18346       { "freezeP-TMSI", "gsm_map.ms.freezeP_TMSI",
18347         FT_NONE, BASE_NONE, NULL, 0,
18348         "gsm_map_ms.NULL", HFILL }},
18349     { &hf_gsm_map_ms_tmsi,
18350       { "tmsi", "gsm_map.ms.tmsi",
18351         FT_BYTES, BASE_HEX, NULL, 0,
18352         "gsm_map.TMSI", HFILL }},
18353     { &hf_gsm_map_ms_numberOfRequestedVectors,
18354       { "numberOfRequestedVectors", "gsm_map.ms.numberOfRequestedVectors",
18355         FT_UINT32, BASE_DEC, NULL, 0,
18356         "gsm_map_ms.NumberOfRequestedVectors", HFILL }},
18357     { &hf_gsm_map_ms_segmentationProhibited,
18358       { "segmentationProhibited", "gsm_map.ms.segmentationProhibited",
18359         FT_NONE, BASE_NONE, NULL, 0,
18360         "gsm_map_ms.NULL", HFILL }},
18361     { &hf_gsm_map_ms_previous_LAI,
18362       { "previous-LAI", "gsm_map.ms.previous_LAI",
18363         FT_BYTES, BASE_HEX, NULL, 0,
18364         "gsm_map.LAIFixedLength", HFILL }},
18365     { &hf_gsm_map_ms_hopCounter,
18366       { "hopCounter", "gsm_map.ms.hopCounter",
18367         FT_UINT32, BASE_DEC, NULL, 0,
18368         "gsm_map_ms.HopCounter", HFILL }},
18369     { &hf_gsm_map_ms_authenticationSetList,
18370       { "authenticationSetList", "gsm_map.ms.authenticationSetList",
18371         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AuthenticationSetList_vals), 0,
18372         "gsm_map_ms.AuthenticationSetList", HFILL }},
18373     { &hf_gsm_map_ms_currentSecurityContext,
18374       { "currentSecurityContext", "gsm_map.ms.currentSecurityContext",
18375         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CurrentSecurityContext_vals), 0,
18376         "gsm_map_ms.CurrentSecurityContext", HFILL }},
18377     { &hf_gsm_map_ms_tripletList,
18378       { "tripletList", "gsm_map.ms.tripletList",
18379         FT_UINT32, BASE_DEC, NULL, 0,
18380         "gsm_map_ms.TripletList", HFILL }},
18381     { &hf_gsm_map_ms_quintupletList,
18382       { "quintupletList", "gsm_map.ms.quintupletList",
18383         FT_UINT32, BASE_DEC, NULL, 0,
18384         "gsm_map_ms.QuintupletList", HFILL }},
18385     { &hf_gsm_map_ms_TripletList_item,
18386       { "Item", "gsm_map.ms.TripletList_item",
18387         FT_NONE, BASE_NONE, NULL, 0,
18388         "gsm_map_ms.AuthenticationTriplet", HFILL }},
18389     { &hf_gsm_map_ms_QuintupletList_item,
18390       { "Item", "gsm_map.ms.QuintupletList_item",
18391         FT_NONE, BASE_NONE, NULL, 0,
18392         "gsm_map_ms.AuthenticationQuintuplet", HFILL }},
18393     { &hf_gsm_map_ms_rand,
18394       { "rand", "gsm_map.ms.rand",
18395         FT_BYTES, BASE_HEX, NULL, 0,
18396         "gsm_map_ms.RAND", HFILL }},
18397     { &hf_gsm_map_ms_sres,
18398       { "sres", "gsm_map.ms.sres",
18399         FT_BYTES, BASE_HEX, NULL, 0,
18400         "gsm_map_ms.SRES", HFILL }},
18401     { &hf_gsm_map_ms_kc,
18402       { "kc", "gsm_map.ms.kc",
18403         FT_BYTES, BASE_HEX, NULL, 0,
18404         "gsm_map_ms.Kc", HFILL }},
18405     { &hf_gsm_map_ms_xres,
18406       { "xres", "gsm_map.ms.xres",
18407         FT_BYTES, BASE_HEX, NULL, 0,
18408         "gsm_map_ms.XRES", HFILL }},
18409     { &hf_gsm_map_ms_ck,
18410       { "ck", "gsm_map.ms.ck",
18411         FT_BYTES, BASE_HEX, NULL, 0,
18412         "gsm_map_ms.CK", HFILL }},
18413     { &hf_gsm_map_ms_ik,
18414       { "ik", "gsm_map.ms.ik",
18415         FT_BYTES, BASE_HEX, NULL, 0,
18416         "gsm_map_ms.IK", HFILL }},
18417     { &hf_gsm_map_ms_autn,
18418       { "autn", "gsm_map.ms.autn",
18419         FT_BYTES, BASE_HEX, NULL, 0,
18420         "gsm_map_ms.AUTN", HFILL }},
18421     { &hf_gsm_map_ms_gsm_SecurityContextData,
18422       { "gsm-SecurityContextData", "gsm_map.ms.gsm_SecurityContextData",
18423         FT_NONE, BASE_NONE, NULL, 0,
18424         "gsm_map_ms.GSM_SecurityContextData", HFILL }},
18425     { &hf_gsm_map_ms_umts_SecurityContextData,
18426       { "umts-SecurityContextData", "gsm_map.ms.umts_SecurityContextData",
18427         FT_NONE, BASE_NONE, NULL, 0,
18428         "gsm_map_ms.UMTS_SecurityContextData", HFILL }},
18429     { &hf_gsm_map_ms_cksn,
18430       { "cksn", "gsm_map.ms.cksn",
18431         FT_BYTES, BASE_HEX, NULL, 0,
18432         "gsm_map_ms.Cksn", HFILL }},
18433     { &hf_gsm_map_ms_ksi,
18434       { "ksi", "gsm_map.ms.ksi",
18435         FT_BYTES, BASE_HEX, NULL, 0,
18436         "gsm_map_ms.KSI", HFILL }},
18437     { &hf_gsm_map_ms_failureCause,
18438       { "failureCause", "gsm_map.ms.failureCause",
18439         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_FailureCause_vals), 0,
18440         "gsm_map_ms.FailureCause", HFILL }},
18441     { &hf_gsm_map_ms_re_attempt,
18442       { "re-attempt", "gsm_map.ms.re_attempt",
18443         FT_BOOLEAN, 8, NULL, 0,
18444         "gsm_map_ms.BOOLEAN", HFILL }},
18445     { &hf_gsm_map_ms_accessType,
18446       { "accessType", "gsm_map.ms.accessType",
18447         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AccessType_vals), 0,
18448         "gsm_map_ms.AccessType", HFILL }},
18449     { &hf_gsm_map_ms_sgsn_Address,
18450       { "sgsn-Address", "gsm_map.ms.sgsn_Address",
18451         FT_BYTES, BASE_HEX, NULL, 0,
18452         "gsm_map_ms.GSN_Address", HFILL }},
18453     { &hf_gsm_map_ms_sgsn_Capability,
18454       { "sgsn-Capability", "gsm_map.ms.sgsn_Capability",
18455         FT_NONE, BASE_NONE, NULL, 0,
18456         "gsm_map_ms.SGSN_Capability", HFILL }},
18457     { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE,
18458       { "ps-LCS-NotSupportedByUE", "gsm_map.ms.ps_LCS_NotSupportedByUE",
18459         FT_NONE, BASE_NONE, NULL, 0,
18460         "gsm_map_ms.NULL", HFILL }},
18461     { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator,
18462       { "gprsEnhancementsSupportIndicator", "gsm_map.ms.gprsEnhancementsSupportIndicator",
18463         FT_NONE, BASE_NONE, NULL, 0,
18464         "gsm_map_ms.NULL", HFILL }},
18465     { &hf_gsm_map_ms_smsCallBarringSupportIndicator,
18466       { "smsCallBarringSupportIndicator", "gsm_map.ms.smsCallBarringSupportIndicator",
18467         FT_NONE, BASE_NONE, NULL, 0,
18468         "gsm_map_ms.NULL", HFILL }},
18469     { &hf_gsm_map_ms_an_APDU,
18470       { "an-APDU", "gsm_map.ms.an_APDU",
18471         FT_NONE, BASE_NONE, NULL, 0,
18472         "gsm_map.AccessNetworkSignalInfo", HFILL }},
18473     { &hf_gsm_map_ms_integrityProtectionInfo,
18474       { "integrityProtectionInfo", "gsm_map.ms.integrityProtectionInfo",
18475         FT_BYTES, BASE_HEX, NULL, 0,
18476         "gsm_map_ms.IntegrityProtectionInformation", HFILL }},
18477     { &hf_gsm_map_ms_encryptionInfo,
18478       { "encryptionInfo", "gsm_map.ms.encryptionInfo",
18479         FT_BYTES, BASE_HEX, NULL, 0,
18480         "gsm_map_ms.EncryptionInformation", HFILL }},
18481     { &hf_gsm_map_ms_keyStatus,
18482       { "keyStatus", "gsm_map.ms.keyStatus",
18483         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_KeyStatus_vals), 0,
18484         "gsm_map_ms.KeyStatus", HFILL }},
18485     { &hf_gsm_map_ms_allowedGSM_Algorithms,
18486       { "allowedGSM-Algorithms", "gsm_map.ms.allowedGSM_Algorithms",
18487         FT_BYTES, BASE_HEX, NULL, 0,
18488         "gsm_map_ms.AllowedGSM_Algorithms", HFILL }},
18489     { &hf_gsm_map_ms_allowedUMTS_Algorithms,
18490       { "allowedUMTS-Algorithms", "gsm_map.ms.allowedUMTS_Algorithms",
18491         FT_NONE, BASE_NONE, NULL, 0,
18492         "gsm_map_ms.AllowedUMTS_Algorithms", HFILL }},
18493     { &hf_gsm_map_ms_radioResourceInformation,
18494       { "radioResourceInformation", "gsm_map.ms.radioResourceInformation",
18495         FT_BYTES, BASE_HEX, NULL, 0,
18496         "gsm_map_ms.RadioResourceInformation", HFILL }},
18497     { &hf_gsm_map_ms_radioResourceList,
18498       { "radioResourceList", "gsm_map.ms.radioResourceList",
18499         FT_UINT32, BASE_DEC, NULL, 0,
18500         "gsm_map_ms.RadioResourceList", HFILL }},
18501     { &hf_gsm_map_ms_bssmap_ServiceHandover,
18502       { "bssmap-ServiceHandover", "gsm_map.ms.bssmap_ServiceHandover",
18503         FT_BYTES, BASE_HEX, NULL, 0,
18504         "gsm_map_ms.BSSMAP_ServiceHandover", HFILL }},
18505     { &hf_gsm_map_ms_ranap_ServiceHandover,
18506       { "ranap-ServiceHandover", "gsm_map.ms.ranap_ServiceHandover",
18507         FT_BYTES, BASE_HEX, NULL, 0,
18508         "gsm_map_ms.RANAP_ServiceHandover", HFILL }},
18509     { &hf_gsm_map_ms_bssmap_ServiceHandoverList,
18510       { "bssmap-ServiceHandoverList", "gsm_map.ms.bssmap_ServiceHandoverList",
18511         FT_UINT32, BASE_DEC, NULL, 0,
18512         "gsm_map_ms.BSSMAP_ServiceHandoverList", HFILL }},
18513     { &hf_gsm_map_ms_currentlyUsedCodec,
18514       { "currentlyUsedCodec", "gsm_map.ms.currentlyUsedCodec",
18515         FT_BYTES, BASE_HEX, NULL, 0,
18516         "gsm_map_ms.Codec", HFILL }},
18517     { &hf_gsm_map_ms_iuSupportedCodecsList,
18518       { "iuSupportedCodecsList", "gsm_map.ms.iuSupportedCodecsList",
18519         FT_NONE, BASE_NONE, NULL, 0,
18520         "gsm_map_ms.SupportedCodecsList", HFILL }},
18521     { &hf_gsm_map_ms_rab_ConfigurationIndicator,
18522       { "rab-ConfigurationIndicator", "gsm_map.ms.rab_ConfigurationIndicator",
18523         FT_NONE, BASE_NONE, NULL, 0,
18524         "gsm_map_ms.NULL", HFILL }},
18525     { &hf_gsm_map_ms_iuSelectedCodec,
18526       { "iuSelectedCodec", "gsm_map.ms.iuSelectedCodec",
18527         FT_BYTES, BASE_HEX, NULL, 0,
18528         "gsm_map_ms.Codec", HFILL }},
18529     { &hf_gsm_map_ms_alternativeChannelType,
18530       { "alternativeChannelType", "gsm_map.ms.alternativeChannelType",
18531         FT_BYTES, BASE_HEX, NULL, 0,
18532         "gsm_map_ms.RadioResourceInformation", HFILL }},
18533     { &hf_gsm_map_ms_tracePropagationList,
18534       { "tracePropagationList", "gsm_map.ms.tracePropagationList",
18535         FT_NONE, BASE_NONE, NULL, 0,
18536         "gsm_map_om.TracePropagationList", HFILL }},
18537     { &hf_gsm_map_ms_integrityProtectionAlgorithms,
18538       { "integrityProtectionAlgorithms", "gsm_map.ms.integrityProtectionAlgorithms",
18539         FT_BYTES, BASE_HEX, NULL, 0,
18540         "gsm_map_ms.PermittedIntegrityProtectionAlgorithms", HFILL }},
18541     { &hf_gsm_map_ms_encryptionAlgorithms,
18542       { "encryptionAlgorithms", "gsm_map.ms.encryptionAlgorithms",
18543         FT_BYTES, BASE_HEX, NULL, 0,
18544         "gsm_map_ms.PermittedEncryptionAlgorithms", HFILL }},
18545     { &hf_gsm_map_ms_targetCellId,
18546       { "targetCellId", "gsm_map.ms.targetCellId",
18547         FT_BYTES, BASE_HEX, NULL, 0,
18548         "gsm_map.GlobalCellId", HFILL }},
18549     { &hf_gsm_map_ms_ho_NumberNotRequired,
18550       { "ho-NumberNotRequired", "gsm_map.ms.ho_NumberNotRequired",
18551         FT_NONE, BASE_NONE, NULL, 0,
18552         "gsm_map_ms.NULL", HFILL }},
18553     { &hf_gsm_map_ms_targetRNCId,
18554       { "targetRNCId", "gsm_map.ms.targetRNCId",
18555         FT_BYTES, BASE_HEX, NULL, 0,
18556         "gsm_map_ms.RNCId", HFILL }},
18557     { &hf_gsm_map_ms_multipleBearerRequested,
18558       { "multipleBearerRequested", "gsm_map.ms.multipleBearerRequested",
18559         FT_NONE, BASE_NONE, NULL, 0,
18560         "gsm_map_ms.NULL", HFILL }},
18561     { &hf_gsm_map_ms_rab_Id,
18562       { "rab-Id", "gsm_map.ms.rab_Id",
18563         FT_UINT32, BASE_DEC, NULL, 0,
18564         "gsm_map_ms.RAB_Id", HFILL }},
18565     { &hf_gsm_map_ms_asciCallReference,
18566       { "asciCallReference", "gsm_map.ms.asciCallReference",
18567         FT_BYTES, BASE_HEX, NULL, 0,
18568         "gsm_map.ASCI_CallReference", HFILL }},
18569     { &hf_gsm_map_ms_geran_classmark,
18570       { "geran-classmark", "gsm_map.ms.geran_classmark",
18571         FT_BYTES, BASE_HEX, NULL, 0,
18572         "gsm_map_ms.GERAN_Classmark", HFILL }},
18573     { &hf_gsm_map_ms_iuCurrentlyUsedCodec,
18574       { "iuCurrentlyUsedCodec", "gsm_map.ms.iuCurrentlyUsedCodec",
18575         FT_BYTES, BASE_HEX, NULL, 0,
18576         "gsm_map_ms.Codec", HFILL }},
18577     { &hf_gsm_map_ms_uesbi_Iu,
18578       { "uesbi-Iu", "gsm_map.ms.uesbi_Iu",
18579         FT_NONE, BASE_NONE, NULL, 0,
18580         "gsm_map_ms.UESBI_Iu", HFILL }},
18581     { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item,
18582       { "Item", "gsm_map.ms.BSSMAP_ServiceHandoverList_item",
18583         FT_NONE, BASE_NONE, NULL, 0,
18584         "gsm_map_ms.BSSMAP_ServiceHandoverInfo", HFILL }},
18585     { &hf_gsm_map_ms_RadioResourceList_item,
18586       { "Item", "gsm_map.ms.RadioResourceList_item",
18587         FT_NONE, BASE_NONE, NULL, 0,
18588         "gsm_map_ms.RadioResource", HFILL }},
18589     { &hf_gsm_map_ms_handoverNumber,
18590       { "handoverNumber", "gsm_map.ms.handoverNumber",
18591         FT_BYTES, BASE_HEX, NULL, 0,
18592         "gsm_map.ISDN_AddressString", HFILL }},
18593     { &hf_gsm_map_ms_relocationNumberList,
18594       { "relocationNumberList", "gsm_map.ms.relocationNumberList",
18595         FT_UINT32, BASE_DEC, NULL, 0,
18596         "gsm_map_ms.RelocationNumberList", HFILL }},
18597     { &hf_gsm_map_ms_multicallBearerInfo,
18598       { "multicallBearerInfo", "gsm_map.ms.multicallBearerInfo",
18599         FT_UINT32, BASE_DEC, NULL, 0,
18600         "gsm_map_ms.MulticallBearerInfo", HFILL }},
18601     { &hf_gsm_map_ms_multipleBearerNotSupported,
18602       { "multipleBearerNotSupported", "gsm_map.ms.multipleBearerNotSupported",
18603         FT_NONE, BASE_NONE, NULL, 0,
18604         "gsm_map_ms.NULL", HFILL }},
18605     { &hf_gsm_map_ms_selectedUMTS_Algorithms,
18606       { "selectedUMTS-Algorithms", "gsm_map.ms.selectedUMTS_Algorithms",
18607         FT_NONE, BASE_NONE, NULL, 0,
18608         "gsm_map_ms.SelectedUMTS_Algorithms", HFILL }},
18609     { &hf_gsm_map_ms_chosenRadioResourceInformation,
18610       { "chosenRadioResourceInformation", "gsm_map.ms.chosenRadioResourceInformation",
18611         FT_NONE, BASE_NONE, NULL, 0,
18612         "gsm_map_ms.ChosenRadioResourceInformation", HFILL }},
18613     { &hf_gsm_map_ms_iuAvailableCodecsList,
18614       { "iuAvailableCodecsList", "gsm_map.ms.iuAvailableCodecsList",
18615         FT_NONE, BASE_NONE, NULL, 0,
18616         "gsm_map_ms.CodecList", HFILL }},
18617     { &hf_gsm_map_ms_integrityProtectionAlgorithm,
18618       { "integrityProtectionAlgorithm", "gsm_map.ms.integrityProtectionAlgorithm",
18619         FT_BYTES, BASE_HEX, NULL, 0,
18620         "gsm_map_ms.ChosenIntegrityProtectionAlgorithm", HFILL }},
18621     { &hf_gsm_map_ms_encryptionAlgorithm,
18622       { "encryptionAlgorithm", "gsm_map.ms.encryptionAlgorithm",
18623         FT_BYTES, BASE_HEX, NULL, 0,
18624         "gsm_map_ms.ChosenEncryptionAlgorithm", HFILL }},
18625     { &hf_gsm_map_ms_chosenChannelInfo,
18626       { "chosenChannelInfo", "gsm_map.ms.chosenChannelInfo",
18627         FT_BYTES, BASE_HEX, NULL, 0,
18628         "gsm_map_ms.ChosenChannelInfo", HFILL }},
18629     { &hf_gsm_map_ms_chosenSpeechVersion,
18630       { "chosenSpeechVersion", "gsm_map.ms.chosenSpeechVersion",
18631         FT_BYTES, BASE_HEX, NULL, 0,
18632         "gsm_map_ms.ChosenSpeechVersion", HFILL }},
18633     { &hf_gsm_map_ms_targetMSC_Number,
18634       { "targetMSC-Number", "gsm_map.ms.targetMSC_Number",
18635         FT_BYTES, BASE_HEX, NULL, 0,
18636         "gsm_map.ISDN_AddressString", HFILL }},
18637     { &hf_gsm_map_ms_selectedRab_Id,
18638       { "selectedRab-Id", "gsm_map.ms.selectedRab_Id",
18639         FT_UINT32, BASE_DEC, NULL, 0,
18640         "gsm_map_ms.RAB_Id", HFILL }},
18641     { &hf_gsm_map_ms_selectedGSM_Algorithm,
18642       { "selectedGSM-Algorithm", "gsm_map.ms.selectedGSM_Algorithm",
18643         FT_BYTES, BASE_HEX, NULL, 0,
18644         "gsm_map_ms.SelectedGSM_Algorithm", HFILL }},
18645     { &hf_gsm_map_ms_iUSelectedCodec,
18646       { "iUSelectedCodec", "gsm_map.ms.iUSelectedCodec",
18647         FT_BYTES, BASE_HEX, NULL, 0,
18648         "gsm_map_ms.Codec", HFILL }},
18649     { &hf_gsm_map_ms_utranCodecList,
18650       { "utranCodecList", "gsm_map.ms.utranCodecList",
18651         FT_NONE, BASE_NONE, NULL, 0,
18652         "gsm_map_ms.CodecList", HFILL }},
18653     { &hf_gsm_map_ms_geranCodecList,
18654       { "geranCodecList", "gsm_map.ms.geranCodecList",
18655         FT_NONE, BASE_NONE, NULL, 0,
18656         "gsm_map_ms.CodecList", HFILL }},
18657     { &hf_gsm_map_ms_codec1,
18658       { "codec1", "gsm_map.ms.codec1",
18659         FT_BYTES, BASE_HEX, NULL, 0,
18660         "gsm_map_ms.Codec", HFILL }},
18661     { &hf_gsm_map_ms_codec2,
18662       { "codec2", "gsm_map.ms.codec2",
18663         FT_BYTES, BASE_HEX, NULL, 0,
18664         "gsm_map_ms.Codec", HFILL }},
18665     { &hf_gsm_map_ms_codec3,
18666       { "codec3", "gsm_map.ms.codec3",
18667         FT_BYTES, BASE_HEX, NULL, 0,
18668         "gsm_map_ms.Codec", HFILL }},
18669     { &hf_gsm_map_ms_codec4,
18670       { "codec4", "gsm_map.ms.codec4",
18671         FT_BYTES, BASE_HEX, NULL, 0,
18672         "gsm_map_ms.Codec", HFILL }},
18673     { &hf_gsm_map_ms_codec5,
18674       { "codec5", "gsm_map.ms.codec5",
18675         FT_BYTES, BASE_HEX, NULL, 0,
18676         "gsm_map_ms.Codec", HFILL }},
18677     { &hf_gsm_map_ms_codec6,
18678       { "codec6", "gsm_map.ms.codec6",
18679         FT_BYTES, BASE_HEX, NULL, 0,
18680         "gsm_map_ms.Codec", HFILL }},
18681     { &hf_gsm_map_ms_codec7,
18682       { "codec7", "gsm_map.ms.codec7",
18683         FT_BYTES, BASE_HEX, NULL, 0,
18684         "gsm_map_ms.Codec", HFILL }},
18685     { &hf_gsm_map_ms_codec8,
18686       { "codec8", "gsm_map.ms.codec8",
18687         FT_BYTES, BASE_HEX, NULL, 0,
18688         "gsm_map_ms.Codec", HFILL }},
18689     { &hf_gsm_map_ms_RelocationNumberList_item,
18690       { "Item", "gsm_map.ms.RelocationNumberList_item",
18691         FT_NONE, BASE_NONE, NULL, 0,
18692         "gsm_map_ms.RelocationNumber", HFILL }},
18693     { &hf_gsm_map_ms_immediateResponsePreferred,
18694       { "immediateResponsePreferred", "gsm_map.ms.immediateResponsePreferred",
18695         FT_NONE, BASE_NONE, NULL, 0,
18696         "gsm_map_ms.NULL", HFILL }},
18697     { &hf_gsm_map_ms_re_synchronisationInfo,
18698       { "re-synchronisationInfo", "gsm_map.ms.re_synchronisationInfo",
18699         FT_NONE, BASE_NONE, NULL, 0,
18700         "gsm_map_ms.Re_synchronisationInfo", HFILL }},
18701     { &hf_gsm_map_ms_requestingNodeType,
18702       { "requestingNodeType", "gsm_map.ms.requestingNodeType",
18703         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestingNodeType_vals), 0,
18704         "gsm_map_ms.RequestingNodeType", HFILL }},
18705     { &hf_gsm_map_ms_requestingPLMN_Id,
18706       { "requestingPLMN-Id", "gsm_map.ms.requestingPLMN_Id",
18707         FT_BYTES, BASE_HEX, NULL, 0,
18708         "gsm_map.PLMN_Id", HFILL }},
18709     { &hf_gsm_map_ms_auts,
18710       { "auts", "gsm_map.ms.auts",
18711         FT_BYTES, BASE_HEX, NULL, 0,
18712         "gsm_map_ms.AUTS", HFILL }},
18713     { &hf_gsm_map_ms_imei,
18714       { "imei", "gsm_map.ms.imei",
18715         FT_BYTES, BASE_HEX, NULL, 0,
18716         "gsm_map.IMEI", HFILL }},
18717     { &hf_gsm_map_ms_requestedEquipmentInfo,
18718       { "requestedEquipmentInfo", "gsm_map.ms.requestedEquipmentInfo",
18719         FT_BYTES, BASE_HEX, NULL, 0,
18720         "gsm_map_ms.RequestedEquipmentInfo", HFILL }},
18721     { &hf_gsm_map_ms_equipmentStatus,
18722       { "equipmentStatus", "gsm_map.ms.equipmentStatus",
18723         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EquipmentStatus_vals), 0,
18724         "gsm_map_ms.EquipmentStatus", HFILL }},
18725     { &hf_gsm_map_ms_bmuef,
18726       { "bmuef", "gsm_map.ms.bmuef",
18727         FT_NONE, BASE_NONE, NULL, 0,
18728         "gsm_map_ms.UESBI_Iu", HFILL }},
18729     { &hf_gsm_map_ms_uesbi_IuA,
18730       { "uesbi-IuA", "gsm_map.ms.uesbi_IuA",
18731         FT_BYTES, BASE_HEX, NULL, 0,
18732         "gsm_map_ms.UESBI_IuA", HFILL }},
18733     { &hf_gsm_map_ms_uesbi_IuB,
18734       { "uesbi-IuB", "gsm_map.ms.uesbi_IuB",
18735         FT_BYTES, BASE_HEX, NULL, 0,
18736         "gsm_map_ms.UESBI_IuB", HFILL }},
18737     { &hf_gsm_map_ms_gmlc_List,
18738       { "gmlc-List", "gsm_map.ms.gmlc_List",
18739         FT_UINT32, BASE_DEC, NULL, 0,
18740         "gsm_map_ms.GMLC_List", HFILL }},
18741     { &hf_gsm_map_ms_lcs_PrivacyExceptionList,
18742       { "lcs-PrivacyExceptionList", "gsm_map.ms.lcs_PrivacyExceptionList",
18743         FT_UINT32, BASE_DEC, NULL, 0,
18744         "gsm_map_ms.LCS_PrivacyExceptionList", HFILL }},
18745     { &hf_gsm_map_ms_molr_List,
18746       { "molr-List", "gsm_map.ms.molr_List",
18747         FT_UINT32, BASE_DEC, NULL, 0,
18748         "gsm_map_ms.MOLR_List", HFILL }},
18749     { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList,
18750       { "add-lcs-PrivacyExceptionList", "gsm_map.ms.add_lcs_PrivacyExceptionList",
18751         FT_UINT32, BASE_DEC, NULL, 0,
18752         "gsm_map_ms.LCS_PrivacyExceptionList", HFILL }},
18753     { &hf_gsm_map_ms_GMLC_List_item,
18754       { "Item", "gsm_map.ms.GMLC_List_item",
18755         FT_BYTES, BASE_HEX, NULL, 0,
18756         "gsm_map.ISDN_AddressString", HFILL }},
18757     { &hf_gsm_map_ms_GPRSDataList_item,
18758       { "Item", "gsm_map.ms.GPRSDataList_item",
18759         FT_NONE, BASE_NONE, NULL, 0,
18760         "gsm_map_ms.PDP_Context", HFILL }},
18761     { &hf_gsm_map_ms_pdp_ContextId,
18762       { "pdp-ContextId", "gsm_map.ms.pdp_ContextId",
18763         FT_UINT32, BASE_DEC, NULL, 0,
18764         "gsm_map_ms.ContextId", HFILL }},
18765     { &hf_gsm_map_ms_pdp_Type,
18766       { "pdp-Type", "gsm_map.ms.pdp_Type",
18767         FT_BYTES, BASE_HEX, NULL, 0,
18768         "gsm_map_ms.PDP_Type", HFILL }},
18769     { &hf_gsm_map_ms_pdp_Address,
18770       { "pdp-Address", "gsm_map.ms.pdp_Address",
18771         FT_BYTES, BASE_HEX, NULL, 0,
18772         "gsm_map_ms.PDP_Address", HFILL }},
18773     { &hf_gsm_map_ms_qos_Subscribed,
18774       { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
18775         FT_BYTES, BASE_HEX, NULL, 0,
18776         "gsm_map_ms.QoS_Subscribed", HFILL }},
18777     { &hf_gsm_map_ms_vplmnAddressAllowed,
18778       { "vplmnAddressAllowed", "gsm_map.ms.vplmnAddressAllowed",
18779         FT_NONE, BASE_NONE, NULL, 0,
18780         "gsm_map_ms.NULL", HFILL }},
18781     { &hf_gsm_map_ms_apn,
18782       { "apn", "gsm_map.ms.apn",
18783         FT_BYTES, BASE_HEX, NULL, 0,
18784         "gsm_map_ms.APN", HFILL }},
18785     { &hf_gsm_map_ms_ext_QoS_Subscribed,
18786       { "ext-QoS-Subscribed", "gsm_map.ms.ext_QoS_Subscribed",
18787         FT_BYTES, BASE_HEX, NULL, 0,
18788         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
18789     { &hf_gsm_map_ms_pdp_ChargingCharacteristics,
18790       { "pdp-ChargingCharacteristics", "gsm_map.ms.pdp_ChargingCharacteristics",
18791         FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
18792         "gsm_map_ms.ChargingCharacteristics", HFILL }},
18793     { &hf_gsm_map_ms_ext2_QoS_Subscribed,
18794       { "ext2-QoS-Subscribed", "gsm_map.ms.ext2_QoS_Subscribed",
18795         FT_BYTES, BASE_HEX, NULL, 0,
18796         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
18797     { &hf_gsm_map_ms_completeDataListIncluded,
18798       { "completeDataListIncluded", "gsm_map.ms.completeDataListIncluded",
18799         FT_NONE, BASE_NONE, NULL, 0,
18800         "gsm_map_ms.NULL", HFILL }},
18801     { &hf_gsm_map_ms_gprsDataList,
18802       { "gprsDataList", "gsm_map.ms.gprsDataList",
18803         FT_UINT32, BASE_DEC, NULL, 0,
18804         "gsm_map_ms.GPRSDataList", HFILL }},
18805     { &hf_gsm_map_ms_gprs_CSI,
18806       { "gprs-CSI", "gsm_map.ms.gprs_CSI",
18807         FT_NONE, BASE_NONE, NULL, 0,
18808         "gsm_map_ms.GPRS_CSI", HFILL }},
18809     { &hf_gsm_map_ms_mo_sms_CSI,
18810       { "mo-sms-CSI", "gsm_map.ms.mo_sms_CSI",
18811         FT_NONE, BASE_NONE, NULL, 0,
18812         "gsm_map_ms.SMS_CSI", HFILL }},
18813     { &hf_gsm_map_ms_mt_sms_CSI,
18814       { "mt-sms-CSI", "gsm_map.ms.mt_sms_CSI",
18815         FT_NONE, BASE_NONE, NULL, 0,
18816         "gsm_map_ms.SMS_CSI", HFILL }},
18817     { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList,
18818       { "mt-smsCAMELTDP-CriteriaList", "gsm_map.ms.mt_smsCAMELTDP_CriteriaList",
18819         FT_UINT32, BASE_DEC, NULL, 0,
18820         "gsm_map_ms.MT_smsCAMELTDP_CriteriaList", HFILL }},
18821     { &hf_gsm_map_ms_mg_csi,
18822       { "mg-csi", "gsm_map.ms.mg_csi",
18823         FT_NONE, BASE_NONE, NULL, 0,
18824         "gsm_map_ms.MG_CSI", HFILL }},
18825     { &hf_gsm_map_ms_gprs_CamelTDPDataList,
18826       { "gprs-CamelTDPDataList", "gsm_map.ms.gprs_CamelTDPDataList",
18827         FT_UINT32, BASE_DEC, NULL, 0,
18828         "gsm_map_ms.GPRS_CamelTDPDataList", HFILL }},
18829     { &hf_gsm_map_ms_camelCapabilityHandling,
18830       { "camelCapabilityHandling", "gsm_map.ms.camelCapabilityHandling",
18831         FT_UINT32, BASE_DEC, NULL, 0,
18832         "gsm_map_ms.CamelCapabilityHandling", HFILL }},
18833     { &hf_gsm_map_ms_notificationToCSE,
18834       { "notificationToCSE", "gsm_map.ms.notificationToCSE",
18835         FT_NONE, BASE_NONE, NULL, 0,
18836         "gsm_map_ms.NULL", HFILL }},
18837     { &hf_gsm_map_ms_csi_Active,
18838       { "csi-Active", "gsm_map.ms.csi_Active",
18839         FT_NONE, BASE_NONE, NULL, 0,
18840         "gsm_map_ms.NULL", HFILL }},
18841     { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item,
18842       { "Item", "gsm_map.ms.GPRS_CamelTDPDataList_item",
18843         FT_NONE, BASE_NONE, NULL, 0,
18844         "gsm_map_ms.GPRS_CamelTDPData", HFILL }},
18845     { &hf_gsm_map_ms_gprs_TriggerDetectionPoint,
18846       { "gprs-TriggerDetectionPoint", "gsm_map.ms.gprs_TriggerDetectionPoint",
18847         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRS_TriggerDetectionPoint_vals), 0,
18848         "gsm_map_ms.GPRS_TriggerDetectionPoint", HFILL }},
18849     { &hf_gsm_map_ms_serviceKey,
18850       { "serviceKey", "gsm_map.ms.serviceKey",
18851         FT_UINT32, BASE_DEC, NULL, 0,
18852         "gsm_map_ms.ServiceKey", HFILL }},
18853     { &hf_gsm_map_ms_gsmSCF_Address,
18854       { "gsmSCF-Address", "gsm_map.ms.gsmSCF_Address",
18855         FT_BYTES, BASE_HEX, NULL, 0,
18856         "gsm_map.ISDN_AddressString", HFILL }},
18857     { &hf_gsm_map_ms_defaultSessionHandling,
18858       { "defaultSessionHandling", "gsm_map.ms.defaultSessionHandling",
18859         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultGPRS_Handling_vals), 0,
18860         "gsm_map_ms.DefaultGPRS_Handling", HFILL }},
18861     { &hf_gsm_map_ms_LSADataList_item,
18862       { "Item", "gsm_map.ms.LSADataList_item",
18863         FT_NONE, BASE_NONE, NULL, 0,
18864         "gsm_map_ms.LSAData", HFILL }},
18865     { &hf_gsm_map_ms_lsaIdentity,
18866       { "lsaIdentity", "gsm_map.ms.lsaIdentity",
18867         FT_BYTES, BASE_HEX, NULL, 0,
18868         "gsm_map_ms.LSAIdentity", HFILL }},
18869     { &hf_gsm_map_ms_lsaAttributes,
18870       { "lsaAttributes", "gsm_map.ms.lsaAttributes",
18871         FT_BYTES, BASE_HEX, NULL, 0,
18872         "gsm_map_ms.LSAAttributes", HFILL }},
18873     { &hf_gsm_map_ms_lsaActiveModeIndicator,
18874       { "lsaActiveModeIndicator", "gsm_map.ms.lsaActiveModeIndicator",
18875         FT_NONE, BASE_NONE, NULL, 0,
18876         "gsm_map_ms.NULL", HFILL }},
18877     { &hf_gsm_map_ms_lsaOnlyAccessIndicator,
18878       { "lsaOnlyAccessIndicator", "gsm_map.ms.lsaOnlyAccessIndicator",
18879         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAOnlyAccessIndicator_vals), 0,
18880         "gsm_map_ms.LSAOnlyAccessIndicator", HFILL }},
18881     { &hf_gsm_map_ms_lsaDataList,
18882       { "lsaDataList", "gsm_map.ms.lsaDataList",
18883         FT_UINT32, BASE_DEC, NULL, 0,
18884         "gsm_map_ms.LSADataList", HFILL }},
18885     { &hf_gsm_map_ms_msisdn,
18886       { "msisdn", "gsm_map.ms.msisdn",
18887         FT_BYTES, BASE_HEX, NULL, 0,
18888         "gsm_map.ISDN_AddressString", HFILL }},
18889     { &hf_gsm_map_ms_category,
18890       { "category", "gsm_map.ms.category",
18891         FT_BYTES, BASE_HEX, NULL, 0,
18892         "gsm_map_ms.Category", HFILL }},
18893     { &hf_gsm_map_ms_subscriberStatus,
18894       { "subscriberStatus", "gsm_map.ms.subscriberStatus",
18895         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberStatus_vals), 0,
18896         "gsm_map_ms.SubscriberStatus", HFILL }},
18897     { &hf_gsm_map_ms_bearerServiceList,
18898       { "bearerServiceList", "gsm_map.ms.bearerServiceList",
18899         FT_UINT32, BASE_DEC, NULL, 0,
18900         "gsm_map_ms.BearerServiceList", HFILL }},
18901     { &hf_gsm_map_ms_teleserviceList,
18902       { "teleserviceList", "gsm_map.ms.teleserviceList",
18903         FT_UINT32, BASE_DEC, NULL, 0,
18904         "gsm_map_ms.TeleserviceList", HFILL }},
18905     { &hf_gsm_map_ms_provisionedSS,
18906       { "provisionedSS", "gsm_map.ms.provisionedSS",
18907         FT_UINT32, BASE_DEC, NULL, 0,
18908         "gsm_map_ms.Ext_SS_InfoList", HFILL }},
18909     { &hf_gsm_map_ms_odb_Data,
18910       { "odb-Data", "gsm_map.ms.odb_Data",
18911         FT_NONE, BASE_NONE, NULL, 0,
18912         "gsm_map_ms.ODB_Data", HFILL }},
18913     { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature,
18914       { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictionDueToUnsupportedFeature",
18915         FT_NONE, BASE_NONE, NULL, 0,
18916         "gsm_map_ms.NULL", HFILL }},
18917     { &hf_gsm_map_ms_regionalSubscriptionData,
18918       { "regionalSubscriptionData", "gsm_map.ms.regionalSubscriptionData",
18919         FT_UINT32, BASE_DEC, NULL, 0,
18920         "gsm_map_ms.ZoneCodeList", HFILL }},
18921     { &hf_gsm_map_ms_vbsSubscriptionData,
18922       { "vbsSubscriptionData", "gsm_map.ms.vbsSubscriptionData",
18923         FT_UINT32, BASE_DEC, NULL, 0,
18924         "gsm_map_ms.VBSDataList", HFILL }},
18925     { &hf_gsm_map_ms_vgcsSubscriptionData,
18926       { "vgcsSubscriptionData", "gsm_map.ms.vgcsSubscriptionData",
18927         FT_UINT32, BASE_DEC, NULL, 0,
18928         "gsm_map_ms.VGCSDataList", HFILL }},
18929     { &hf_gsm_map_ms_vlrCamelSubscriptionInfo,
18930       { "vlrCamelSubscriptionInfo", "gsm_map.ms.vlrCamelSubscriptionInfo",
18931         FT_NONE, BASE_NONE, NULL, 0,
18932         "gsm_map_ms.VlrCamelSubscriptionInfo", HFILL }},
18933     { &hf_gsm_map_ms_BearerServiceList_item,
18934       { "Item", "gsm_map.ms.BearerServiceList_item",
18935         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
18936         "gsm_map.Ext_BearerServiceCode", HFILL }},
18937     { &hf_gsm_map_ms_TeleserviceList_item,
18938       { "Item", "gsm_map.ms.TeleserviceList_item",
18939         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
18940         "gsm_map.Ext_TeleserviceCode", HFILL }},
18941     { &hf_gsm_map_ms_odb_GeneralData,
18942       { "odb-GeneralData", "gsm_map.ms.odb_GeneralData",
18943         FT_BYTES, BASE_HEX, NULL, 0,
18944         "gsm_map_ms.ODB_GeneralData", HFILL }},
18945     { &hf_gsm_map_ms_odb_HPLMN_Data,
18946       { "odb-HPLMN-Data", "gsm_map.ms.odb_HPLMN_Data",
18947         FT_BYTES, BASE_HEX, NULL, 0,
18948         "gsm_map_ms.ODB_HPLMN_Data", HFILL }},
18949     { &hf_gsm_map_ms_Ext_SS_InfoList_item,
18950       { "Item", "gsm_map.ms.Ext_SS_InfoList_item",
18951         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_Info_vals), 0,
18952         "gsm_map_ms.Ext_SS_Info", HFILL }},
18953     { &hf_gsm_map_ms_forwardingInfo,
18954       { "forwardingInfo", "gsm_map.ms.forwardingInfo",
18955         FT_NONE, BASE_NONE, NULL, 0,
18956         "gsm_map_ms.Ext_ForwInfo", HFILL }},
18957     { &hf_gsm_map_ms_callBarringInfo,
18958       { "callBarringInfo", "gsm_map.ms.callBarringInfo",
18959         FT_NONE, BASE_NONE, NULL, 0,
18960         "gsm_map_ms.Ext_CallBarInfo", HFILL }},
18961     { &hf_gsm_map_ms_cug_Info,
18962       { "cug-Info", "gsm_map.ms.cug_Info",
18963         FT_NONE, BASE_NONE, NULL, 0,
18964         "gsm_map_ms.CUG_Info", HFILL }},
18965     { &hf_gsm_map_ms_ss_Data,
18966       { "ss-Data", "gsm_map.ms.ss_Data",
18967         FT_NONE, BASE_NONE, NULL, 0,
18968         "gsm_map_ms.Ext_SS_Data", HFILL }},
18969     { &hf_gsm_map_ms_emlpp_Info,
18970       { "emlpp-Info", "gsm_map.ms.emlpp_Info",
18971         FT_NONE, BASE_NONE, NULL, 0,
18972         "gsm_map.EMLPP_Info", HFILL }},
18973     { &hf_gsm_map_ms_ss_Code,
18974       { "ss-Code", "gsm_map.ms.ss_Code",
18975         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
18976         "gsm_map.SS_Code", HFILL }},
18977     { &hf_gsm_map_ms_forwardingFeatureList,
18978       { "forwardingFeatureList", "gsm_map.ms.forwardingFeatureList",
18979         FT_UINT32, BASE_DEC, NULL, 0,
18980         "gsm_map_ms.Ext_ForwFeatureList", HFILL }},
18981     { &hf_gsm_map_ms_Ext_ForwFeatureList_item,
18982       { "Item", "gsm_map.ms.Ext_ForwFeatureList_item",
18983         FT_NONE, BASE_NONE, NULL, 0,
18984         "gsm_map_ms.Ext_ForwFeature", HFILL }},
18985     { &hf_gsm_map_ms_basicService,
18986       { "basicService", "gsm_map.ms.basicService",
18987         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
18988         "gsm_map.Ext_BasicServiceCode", HFILL }},
18989     { &hf_gsm_map_ms_ss_Status,
18990       { "ss-Status", "gsm_map.ms.ss_Status",
18991         FT_BYTES, BASE_HEX, NULL, 0,
18992         "gsm_map.Ext_SS_Status", HFILL }},
18993     { &hf_gsm_map_ms_forwardedToNumber,
18994       { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
18995         FT_BYTES, BASE_HEX, NULL, 0,
18996         "gsm_map.ISDN_AddressString", HFILL }},
18997     { &hf_gsm_map_ms_forwardedToSubaddress,
18998       { "forwardedToSubaddress", "gsm_map.ms.forwardedToSubaddress",
18999         FT_BYTES, BASE_HEX, NULL, 0,
19000         "gsm_map.ISDN_SubaddressString", HFILL }},
19001     { &hf_gsm_map_ms_forwardingOptions,
19002       { "forwardingOptions", "gsm_map.ms.forwardingOptions",
19003         FT_BYTES, BASE_HEX, NULL, 0,
19004         "gsm_map_ms.T_forwardingOptions", HFILL }},
19005     { &hf_gsm_map_ms_noReplyConditionTime,
19006       { "noReplyConditionTime", "gsm_map.ms.noReplyConditionTime",
19007         FT_UINT32, BASE_DEC, NULL, 0,
19008         "gsm_map_ms.Ext_NoRepCondTime", HFILL }},
19009     { &hf_gsm_map_ms_longForwardedToNumber,
19010       { "longForwardedToNumber", "gsm_map.ms.longForwardedToNumber",
19011         FT_BYTES, BASE_HEX, NULL, 0,
19012         "gsm_map.FTN_AddressString", HFILL }},
19013     { &hf_gsm_map_ms_callBarringFeatureList,
19014       { "callBarringFeatureList", "gsm_map.ms.callBarringFeatureList",
19015         FT_UINT32, BASE_DEC, NULL, 0,
19016         "gsm_map_ms.Ext_CallBarFeatureList", HFILL }},
19017     { &hf_gsm_map_ms_Ext_CallBarFeatureList_item,
19018       { "Item", "gsm_map.ms.Ext_CallBarFeatureList_item",
19019         FT_NONE, BASE_NONE, NULL, 0,
19020         "gsm_map_ms.Ext_CallBarringFeature", HFILL }},
19021     { &hf_gsm_map_ms_cug_SubscriptionList,
19022       { "cug-SubscriptionList", "gsm_map.ms.cug_SubscriptionList",
19023         FT_UINT32, BASE_DEC, NULL, 0,
19024         "gsm_map_ms.CUG_SubscriptionList", HFILL }},
19025     { &hf_gsm_map_ms_cug_FeatureList,
19026       { "cug-FeatureList", "gsm_map.ms.cug_FeatureList",
19027         FT_UINT32, BASE_DEC, NULL, 0,
19028         "gsm_map_ms.CUG_FeatureList", HFILL }},
19029     { &hf_gsm_map_ms_CUG_SubscriptionList_item,
19030       { "Item", "gsm_map.ms.CUG_SubscriptionList_item",
19031         FT_NONE, BASE_NONE, NULL, 0,
19032         "gsm_map_ms.CUG_Subscription", HFILL }},
19033     { &hf_gsm_map_ms_cug_Index,
19034       { "cug-Index", "gsm_map.ms.cug_Index",
19035         FT_UINT32, BASE_DEC, NULL, 0,
19036         "gsm_map_ms.CUG_Index", HFILL }},
19037     { &hf_gsm_map_ms_cug_Interlock,
19038       { "cug-Interlock", "gsm_map.ms.cug_Interlock",
19039         FT_BYTES, BASE_HEX, NULL, 0,
19040         "gsm_map_ms.CUG_Interlock", HFILL }},
19041     { &hf_gsm_map_ms_intraCUG_Options,
19042       { "intraCUG-Options", "gsm_map.ms.intraCUG_Options",
19043         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IntraCUG_Options_vals), 0,
19044         "gsm_map_ms.IntraCUG_Options", HFILL }},
19045     { &hf_gsm_map_ms_basicServiceGroupList,
19046       { "basicServiceGroupList", "gsm_map.ms.basicServiceGroupList",
19047         FT_UINT32, BASE_DEC, NULL, 0,
19048         "gsm_map_ms.Ext_BasicServiceGroupList", HFILL }},
19049     { &hf_gsm_map_ms_CUG_FeatureList_item,
19050       { "Item", "gsm_map.ms.CUG_FeatureList_item",
19051         FT_NONE, BASE_NONE, NULL, 0,
19052         "gsm_map_ms.CUG_Feature", HFILL }},
19053     { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item,
19054       { "Item", "gsm_map.ms.Ext_BasicServiceGroupList_item",
19055         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
19056         "gsm_map.Ext_BasicServiceCode", HFILL }},
19057     { &hf_gsm_map_ms_preferentialCUG_Indicator,
19058       { "preferentialCUG-Indicator", "gsm_map.ms.preferentialCUG_Indicator",
19059         FT_UINT32, BASE_DEC, NULL, 0,
19060         "gsm_map_ms.CUG_Index", HFILL }},
19061     { &hf_gsm_map_ms_interCUG_Restrictions,
19062       { "interCUG-Restrictions", "gsm_map.ms.interCUG_Restrictions",
19063         FT_BYTES, BASE_HEX, NULL, 0,
19064         "gsm_map_ms.InterCUG_Restrictions", HFILL }},
19065     { &hf_gsm_map_ms_ss_SubscriptionOption,
19066       { "ss-SubscriptionOption", "gsm_map.ms.ss_SubscriptionOption",
19067         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
19068         "gsm_map_ss.SS_SubscriptionOption", HFILL }},
19069     { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item,
19070       { "Item", "gsm_map.ms.LCS_PrivacyExceptionList_item",
19071         FT_NONE, BASE_NONE, NULL, 0,
19072         "gsm_map_ms.LCS_PrivacyClass", HFILL }},
19073     { &hf_gsm_map_ms_notificationToMSUser,
19074       { "notificationToMSUser", "gsm_map.ms.notificationToMSUser",
19075         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
19076         "gsm_map_ms.NotificationToMSUser", HFILL }},
19077     { &hf_gsm_map_ms_externalClientList,
19078       { "externalClientList", "gsm_map.ms.externalClientList",
19079         FT_UINT32, BASE_DEC, NULL, 0,
19080         "gsm_map_ms.ExternalClientList", HFILL }},
19081     { &hf_gsm_map_ms_plmnClientList,
19082       { "plmnClientList", "gsm_map.ms.plmnClientList",
19083         FT_UINT32, BASE_DEC, NULL, 0,
19084         "gsm_map_ms.PLMNClientList", HFILL }},
19085     { &hf_gsm_map_ms_ext_externalClientList,
19086       { "ext-externalClientList", "gsm_map.ms.ext_externalClientList",
19087         FT_UINT32, BASE_DEC, NULL, 0,
19088         "gsm_map_ms.Ext_ExternalClientList", HFILL }},
19089     { &hf_gsm_map_ms_serviceTypeList,
19090       { "serviceTypeList", "gsm_map.ms.serviceTypeList",
19091         FT_UINT32, BASE_DEC, NULL, 0,
19092         "gsm_map_ms.ServiceTypeList", HFILL }},
19093     { &hf_gsm_map_ms_ExternalClientList_item,
19094       { "Item", "gsm_map.ms.ExternalClientList_item",
19095         FT_NONE, BASE_NONE, NULL, 0,
19096         "gsm_map_ms.ExternalClient", HFILL }},
19097     { &hf_gsm_map_ms_PLMNClientList_item,
19098       { "Item", "gsm_map.ms.PLMNClientList_item",
19099         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
19100         "gsm_map.LCSClientInternalID", HFILL }},
19101     { &hf_gsm_map_ms_Ext_ExternalClientList_item,
19102       { "Item", "gsm_map.ms.Ext_ExternalClientList_item",
19103         FT_NONE, BASE_NONE, NULL, 0,
19104         "gsm_map_ms.ExternalClient", HFILL }},
19105     { &hf_gsm_map_ms_clientIdentity,
19106       { "clientIdentity", "gsm_map.ms.clientIdentity",
19107         FT_NONE, BASE_NONE, NULL, 0,
19108         "gsm_map.LCSClientExternalID", HFILL }},
19109     { &hf_gsm_map_ms_gmlc_Restriction,
19110       { "gmlc-Restriction", "gsm_map.ms.gmlc_Restriction",
19111         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GMLC_Restriction_vals), 0,
19112         "gsm_map_ms.GMLC_Restriction", HFILL }},
19113     { &hf_gsm_map_ms_ServiceTypeList_item,
19114       { "Item", "gsm_map.ms.ServiceTypeList_item",
19115         FT_NONE, BASE_NONE, NULL, 0,
19116         "gsm_map_ms.ServiceType", HFILL }},
19117     { &hf_gsm_map_ms_serviceTypeIdentity,
19118       { "serviceTypeIdentity", "gsm_map.ms.serviceTypeIdentity",
19119         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
19120         "gsm_map.LCSServiceTypeID", HFILL }},
19121     { &hf_gsm_map_ms_MOLR_List_item,
19122       { "Item", "gsm_map.ms.MOLR_List_item",
19123         FT_NONE, BASE_NONE, NULL, 0,
19124         "gsm_map_ms.MOLR_Class", HFILL }},
19125     { &hf_gsm_map_ms_ZoneCodeList_item,
19126       { "Item", "gsm_map.ms.ZoneCodeList_item",
19127         FT_BYTES, BASE_HEX, NULL, 0,
19128         "gsm_map_ms.ZoneCode", HFILL }},
19129     { &hf_gsm_map_ms_ss_List,
19130       { "ss-List", "gsm_map.ms.ss_List",
19131         FT_UINT32, BASE_DEC, NULL, 0,
19132         "gsm_map_ss.SS_List", HFILL }},
19133     { &hf_gsm_map_ms_regionalSubscriptionResponse,
19134       { "regionalSubscriptionResponse", "gsm_map.ms.regionalSubscriptionResponse",
19135         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RegionalSubscriptionResponse_vals), 0,
19136         "gsm_map_ms.RegionalSubscriptionResponse", HFILL }},
19137     { &hf_gsm_map_ms_basicServiceList,
19138       { "basicServiceList", "gsm_map.ms.basicServiceList",
19139         FT_UINT32, BASE_DEC, NULL, 0,
19140         "gsm_map_ms.BasicServiceList", HFILL }},
19141     { &hf_gsm_map_ms_regionalSubscriptionIdentifier,
19142       { "regionalSubscriptionIdentifier", "gsm_map.ms.regionalSubscriptionIdentifier",
19143         FT_BYTES, BASE_HEX, NULL, 0,
19144         "gsm_map_ms.ZoneCode", HFILL }},
19145     { &hf_gsm_map_ms_vbsGroupIndication,
19146       { "vbsGroupIndication", "gsm_map.ms.vbsGroupIndication",
19147         FT_NONE, BASE_NONE, NULL, 0,
19148         "gsm_map_ms.NULL", HFILL }},
19149     { &hf_gsm_map_ms_vgcsGroupIndication,
19150       { "vgcsGroupIndication", "gsm_map.ms.vgcsGroupIndication",
19151         FT_NONE, BASE_NONE, NULL, 0,
19152         "gsm_map_ms.NULL", HFILL }},
19153     { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw,
19154       { "camelSubscriptionInfoWithdraw", "gsm_map.ms.camelSubscriptionInfoWithdraw",
19155         FT_NONE, BASE_NONE, NULL, 0,
19156         "gsm_map_ms.NULL", HFILL }},
19157     { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw,
19158       { "gprsSubscriptionDataWithdraw", "gsm_map.ms.gprsSubscriptionDataWithdraw",
19159         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRSSubscriptionDataWithdraw_vals), 0,
19160         "gsm_map_ms.GPRSSubscriptionDataWithdraw", HFILL }},
19161     { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature,
19162       { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsuppportedFeature",
19163         FT_NONE, BASE_NONE, NULL, 0,
19164         "gsm_map_ms.NULL", HFILL }},
19165     { &hf_gsm_map_ms_lsaInformationWithdraw,
19166       { "lsaInformationWithdraw", "gsm_map.ms.lsaInformationWithdraw",
19167         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAInformationWithdraw_vals), 0,
19168         "gsm_map_ms.LSAInformationWithdraw", HFILL }},
19169     { &hf_gsm_map_ms_gmlc_ListWithdraw,
19170       { "gmlc-ListWithdraw", "gsm_map.ms.gmlc_ListWithdraw",
19171         FT_NONE, BASE_NONE, NULL, 0,
19172         "gsm_map_ms.NULL", HFILL }},
19173     { &hf_gsm_map_ms_istInformationWithdraw,
19174       { "istInformationWithdraw", "gsm_map.ms.istInformationWithdraw",
19175         FT_NONE, BASE_NONE, NULL, 0,
19176         "gsm_map_ms.NULL", HFILL }},
19177     { &hf_gsm_map_ms_specificCSI_Withdraw,
19178       { "specificCSI-Withdraw", "gsm_map.ms.specificCSI_Withdraw",
19179         FT_BYTES, BASE_HEX, NULL, 0,
19180         "gsm_map_ms.SpecificCSI_Withdraw", HFILL }},
19181     { &hf_gsm_map_ms_chargingCharacteristicsWithdraw,
19182       { "chargingCharacteristicsWithdraw", "gsm_map.ms.chargingCharacteristicsWithdraw",
19183         FT_NONE, BASE_NONE, NULL, 0,
19184         "gsm_map_ms.NULL", HFILL }},
19185     { &hf_gsm_map_ms_allGPRSData,
19186       { "allGPRSData", "gsm_map.ms.allGPRSData",
19187         FT_NONE, BASE_NONE, NULL, 0,
19188         "gsm_map_ms.NULL", HFILL }},
19189     { &hf_gsm_map_ms_contextIdList,
19190       { "contextIdList", "gsm_map.ms.contextIdList",
19191         FT_UINT32, BASE_DEC, NULL, 0,
19192         "gsm_map_ms.ContextIdList", HFILL }},
19193     { &hf_gsm_map_ms_ContextIdList_item,
19194       { "Item", "gsm_map.ms.ContextIdList_item",
19195         FT_UINT32, BASE_DEC, NULL, 0,
19196         "gsm_map_ms.ContextId", HFILL }},
19197     { &hf_gsm_map_ms_allLSAData,
19198       { "allLSAData", "gsm_map.ms.allLSAData",
19199         FT_NONE, BASE_NONE, NULL, 0,
19200         "gsm_map_ms.NULL", HFILL }},
19201     { &hf_gsm_map_ms_lsaIdentityList,
19202       { "lsaIdentityList", "gsm_map.ms.lsaIdentityList",
19203         FT_UINT32, BASE_DEC, NULL, 0,
19204         "gsm_map_ms.LSAIdentityList", HFILL }},
19205     { &hf_gsm_map_ms_LSAIdentityList_item,
19206       { "Item", "gsm_map.ms.LSAIdentityList_item",
19207         FT_BYTES, BASE_HEX, NULL, 0,
19208         "gsm_map_ms.LSAIdentity", HFILL }},
19209     { &hf_gsm_map_ms_BasicServiceList_item,
19210       { "Item", "gsm_map.ms.BasicServiceList_item",
19211         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
19212         "gsm_map.Ext_BasicServiceCode", HFILL }},
19213     { &hf_gsm_map_ms_o_CSI,
19214       { "o-CSI", "gsm_map.ms.o_CSI",
19215         FT_NONE, BASE_NONE, NULL, 0,
19216         "gsm_map_ms.O_CSI", HFILL }},
19217     { &hf_gsm_map_ms_ss_CSI,
19218       { "ss-CSI", "gsm_map.ms.ss_CSI",
19219         FT_NONE, BASE_NONE, NULL, 0,
19220         "gsm_map_ms.SS_CSI", HFILL }},
19221     { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList,
19222       { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_BcsmCamelTDP_CriteriaList",
19223         FT_UINT32, BASE_DEC, NULL, 0,
19224         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
19225     { &hf_gsm_map_ms_tif_CSI,
19226       { "tif-CSI", "gsm_map.ms.tif_CSI",
19227         FT_NONE, BASE_NONE, NULL, 0,
19228         "gsm_map_ms.NULL", HFILL }},
19229     { &hf_gsm_map_ms_m_CSI,
19230       { "m-CSI", "gsm_map.ms.m_CSI",
19231         FT_NONE, BASE_NONE, NULL, 0,
19232         "gsm_map_ms.M_CSI", HFILL }},
19233     { &hf_gsm_map_ms_vt_CSI,
19234       { "vt-CSI", "gsm_map.ms.vt_CSI",
19235         FT_NONE, BASE_NONE, NULL, 0,
19236         "gsm_map_ms.T_CSI", HFILL }},
19237     { &hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList,
19238       { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.t_BCSM_CAMEL_TDP_CriteriaList",
19239         FT_UINT32, BASE_DEC, NULL, 0,
19240         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
19241     { &hf_gsm_map_ms_d_CSI,
19242       { "d-CSI", "gsm_map.ms.d_CSI",
19243         FT_NONE, BASE_NONE, NULL, 0,
19244         "gsm_map_ms.D_CSI", HFILL }},
19245     { &hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item,
19246       { "Item", "gsm_map.ms.MT_smsCAMELTDP_CriteriaList_item",
19247         FT_NONE, BASE_NONE, NULL, 0,
19248         "gsm_map_ms.MT_smsCAMELTDP_Criteria", HFILL }},
19249     { &hf_gsm_map_ms_sms_TriggerDetectionPoint,
19250       { "sms-TriggerDetectionPoint", "gsm_map.ms.sms_TriggerDetectionPoint",
19251         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SMS_TriggerDetectionPoint_vals), 0,
19252         "gsm_map_ms.SMS_TriggerDetectionPoint", HFILL }},
19253     { &hf_gsm_map_ms_tpdu_TypeCriterion,
19254       { "tpdu-TypeCriterion", "gsm_map.ms.tpdu_TypeCriterion",
19255         FT_UINT32, BASE_DEC, NULL, 0,
19256         "gsm_map_ms.TPDU_TypeCriterion", HFILL }},
19257     { &hf_gsm_map_ms_TPDU_TypeCriterion_item,
19258       { "Item", "gsm_map.ms.TPDU_TypeCriterion_item",
19259         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MT_SMS_TPDU_Type_vals), 0,
19260         "gsm_map_ms.MT_SMS_TPDU_Type", HFILL }},
19261     { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList,
19262       { "dp-AnalysedInfoCriteriaList", "gsm_map.ms.dp_AnalysedInfoCriteriaList",
19263         FT_UINT32, BASE_DEC, NULL, 0,
19264         "gsm_map_ms.DP_AnalysedInfoCriteriaList", HFILL }},
19265     { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item,
19266       { "Item", "gsm_map.ms.DP_AnalysedInfoCriteriaList_item",
19267         FT_NONE, BASE_NONE, NULL, 0,
19268         "gsm_map_ms.DP_AnalysedInfoCriterium", HFILL }},
19269     { &hf_gsm_map_ms_dialledNumber,
19270       { "dialledNumber", "gsm_map.ms.dialledNumber",
19271         FT_BYTES, BASE_HEX, NULL, 0,
19272         "gsm_map.ISDN_AddressString", HFILL }},
19273     { &hf_gsm_map_ms_defaultCallHandling,
19274       { "defaultCallHandling", "gsm_map.ms.defaultCallHandling",
19275         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultCallHandling_vals), 0,
19276         "gsm_map_ms.DefaultCallHandling", HFILL }},
19277     { &hf_gsm_map_ms_ss_CamelData,
19278       { "ss-CamelData", "gsm_map.ms.ss_CamelData",
19279         FT_NONE, BASE_NONE, NULL, 0,
19280         "gsm_map_ms.SS_CamelData", HFILL }},
19281     { &hf_gsm_map_ms_ss_EventList,
19282       { "ss-EventList", "gsm_map.ms.ss_EventList",
19283         FT_UINT32, BASE_DEC, NULL, 0,
19284         "gsm_map_ms.SS_EventList", HFILL }},
19285     { &hf_gsm_map_ms_SS_EventList_item,
19286       { "Item", "gsm_map.ms.SS_EventList_item",
19287         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
19288         "gsm_map.SS_Code", HFILL }},
19289     { &hf_gsm_map_ms_o_BcsmCamelTDPDataList,
19290       { "o-BcsmCamelTDPDataList", "gsm_map.ms.o_BcsmCamelTDPDataList",
19291         FT_UINT32, BASE_DEC, NULL, 0,
19292         "gsm_map_ms.O_BcsmCamelTDPDataList", HFILL }},
19293     { &hf_gsm_map_ms_csiActive,
19294       { "csiActive", "gsm_map.ms.csiActive",
19295         FT_NONE, BASE_NONE, NULL, 0,
19296         "gsm_map_ms.NULL", HFILL }},
19297     { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item,
19298       { "Item", "gsm_map.ms.O_BcsmCamelTDPDataList_item",
19299         FT_NONE, BASE_NONE, NULL, 0,
19300         "gsm_map_ms.O_BcsmCamelTDPData", HFILL }},
19301     { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint,
19302       { "o-BcsmTriggerDetectionPoint", "gsm_map.ms.o_BcsmTriggerDetectionPoint",
19303         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_O_BcsmTriggerDetectionPoint_vals), 0,
19304         "gsm_map_ms.O_BcsmTriggerDetectionPoint", HFILL }},
19305     { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item,
19306       { "Item", "gsm_map.ms.O_BcsmCamelTDPCriteriaList_item",
19307         FT_NONE, BASE_NONE, NULL, 0,
19308         "gsm_map_ms.O_BcsmCamelTDP_Criteria", HFILL }},
19309     { &hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item,
19310       { "Item", "gsm_map.ms.T_BCSM_CAMEL_TDP_CriteriaList_item",
19311         FT_NONE, BASE_NONE, NULL, 0,
19312         "gsm_map_ms.T_BCSM_CAMEL_TDP_Criteria", HFILL }},
19313     { &hf_gsm_map_ms_destinationNumberCriteria,
19314       { "destinationNumberCriteria", "gsm_map.ms.destinationNumberCriteria",
19315         FT_NONE, BASE_NONE, NULL, 0,
19316         "gsm_map_ms.DestinationNumberCriteria", HFILL }},
19317     { &hf_gsm_map_ms_basicServiceCriteria,
19318       { "basicServiceCriteria", "gsm_map.ms.basicServiceCriteria",
19319         FT_UINT32, BASE_DEC, NULL, 0,
19320         "gsm_map_ms.BasicServiceCriteria", HFILL }},
19321     { &hf_gsm_map_ms_callTypeCriteria,
19322       { "callTypeCriteria", "gsm_map.ms.callTypeCriteria",
19323         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CallTypeCriteria_vals), 0,
19324         "gsm_map_ms.CallTypeCriteria", HFILL }},
19325     { &hf_gsm_map_ms_o_CauseValueCriteria,
19326       { "o-CauseValueCriteria", "gsm_map.ms.o_CauseValueCriteria",
19327         FT_UINT32, BASE_DEC, NULL, 0,
19328         "gsm_map_ms.O_CauseValueCriteria", HFILL }},
19329     { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint,
19330       { "t-BCSM-TriggerDetectionPoint", "gsm_map.ms.t_BCSM_TriggerDetectionPoint",
19331         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
19332         "gsm_map_ms.T_BcsmTriggerDetectionPoint", HFILL }},
19333     { &hf_gsm_map_ms_t_CauseValueCriteria,
19334       { "t-CauseValueCriteria", "gsm_map.ms.t_CauseValueCriteria",
19335         FT_UINT32, BASE_DEC, NULL, 0,
19336         "gsm_map_ms.T_CauseValueCriteria", HFILL }},
19337     { &hf_gsm_map_ms_matchType,
19338       { "matchType", "gsm_map.ms.matchType",
19339         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MatchType_vals), 0,
19340         "gsm_map_ms.MatchType", HFILL }},
19341     { &hf_gsm_map_ms_destinationNumberList,
19342       { "destinationNumberList", "gsm_map.ms.destinationNumberList",
19343         FT_UINT32, BASE_DEC, NULL, 0,
19344         "gsm_map_ms.DestinationNumberList", HFILL }},
19345     { &hf_gsm_map_ms_destinationNumberLengthList,
19346       { "destinationNumberLengthList", "gsm_map.ms.destinationNumberLengthList",
19347         FT_UINT32, BASE_DEC, NULL, 0,
19348         "gsm_map_ms.DestinationNumberLengthList", HFILL }},
19349     { &hf_gsm_map_ms_DestinationNumberList_item,
19350       { "Item", "gsm_map.ms.DestinationNumberList_item",
19351         FT_BYTES, BASE_HEX, NULL, 0,
19352         "gsm_map.ISDN_AddressString", HFILL }},
19353     { &hf_gsm_map_ms_DestinationNumberLengthList_item,
19354       { "Item", "gsm_map.ms.DestinationNumberLengthList_item",
19355         FT_UINT32, BASE_DEC, NULL, 0,
19356         "gsm_map_ms.INTEGER_1_maxNumOfISDN_AddressDigits", HFILL }},
19357     { &hf_gsm_map_ms_BasicServiceCriteria_item,
19358       { "Item", "gsm_map.ms.BasicServiceCriteria_item",
19359         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
19360         "gsm_map.Ext_BasicServiceCode", HFILL }},
19361     { &hf_gsm_map_ms_O_CauseValueCriteria_item,
19362       { "Item", "gsm_map.ms.O_CauseValueCriteria_item",
19363         FT_BYTES, BASE_HEX, NULL, 0,
19364         "gsm_map_ms.CauseValue", HFILL }},
19365     { &hf_gsm_map_ms_T_CauseValueCriteria_item,
19366       { "Item", "gsm_map.ms.T_CauseValueCriteria_item",
19367         FT_BYTES, BASE_HEX, NULL, 0,
19368         "gsm_map_ms.CauseValue", HFILL }},
19369     { &hf_gsm_map_ms_sms_CAMEL_TDP_DataList,
19370       { "sms-CAMEL-TDP-DataList", "gsm_map.ms.sms_CAMEL_TDP_DataList",
19371         FT_UINT32, BASE_DEC, NULL, 0,
19372         "gsm_map_ms.SMS_CAMEL_TDP_DataList", HFILL }},
19373     { &hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item,
19374       { "Item", "gsm_map.ms.SMS_CAMEL_TDP_DataList_item",
19375         FT_NONE, BASE_NONE, NULL, 0,
19376         "gsm_map_ms.SMS_CAMEL_TDP_Data", HFILL }},
19377     { &hf_gsm_map_ms_defaultSMS_Handling,
19378       { "defaultSMS-Handling", "gsm_map.ms.defaultSMS_Handling",
19379         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultSMS_Handling_vals), 0,
19380         "gsm_map_ms.DefaultSMS_Handling", HFILL }},
19381     { &hf_gsm_map_ms_mobilityTriggers,
19382       { "mobilityTriggers", "gsm_map.ms.mobilityTriggers",
19383         FT_UINT32, BASE_DEC, NULL, 0,
19384         "gsm_map_ms.MobilityTriggers", HFILL }},
19385     { &hf_gsm_map_ms_MobilityTriggers_item,
19386       { "Item", "gsm_map.ms.MobilityTriggers_item",
19387         FT_BYTES, BASE_HEX, NULL, 0,
19388         "gsm_map_ms.MM_Code", HFILL }},
19389     { &hf_gsm_map_ms_t_BcsmCamelTDPDataList,
19390       { "t-BcsmCamelTDPDataList", "gsm_map.ms.t_BcsmCamelTDPDataList",
19391         FT_UINT32, BASE_DEC, NULL, 0,
19392         "gsm_map_ms.T_BcsmCamelTDPDataList", HFILL }},
19393     { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item,
19394       { "Item", "gsm_map.ms.T_BcsmCamelTDPDataList_item",
19395         FT_NONE, BASE_NONE, NULL, 0,
19396         "gsm_map_ms.T_BcsmCamelTDPData", HFILL }},
19397     { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint,
19398       { "t-BcsmTriggerDetectionPoint", "gsm_map.ms.t_BcsmTriggerDetectionPoint",
19399         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
19400         "gsm_map_ms.T_BcsmTriggerDetectionPoint", HFILL }},
19401     { &hf_gsm_map_ms_ggsn_Address,
19402       { "ggsn-Address", "gsm_map.ms.ggsn_Address",
19403         FT_BYTES, BASE_HEX, NULL, 0,
19404         "gsm_map_ms.GSN_Address", HFILL }},
19405     { &hf_gsm_map_ms_ggsn_Number,
19406       { "ggsn-Number", "gsm_map.ms.ggsn_Number",
19407         FT_BYTES, BASE_HEX, NULL, 0,
19408         "gsm_map.ISDN_AddressString", HFILL }},
19409     { &hf_gsm_map_ms_mobileNotReachableReason,
19410       { "mobileNotReachableReason", "gsm_map.ms.mobileNotReachableReason",
19411         FT_UINT32, BASE_DEC, NULL, 0,
19412         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
19413     { &hf_gsm_map_ms_hlr_List,
19414       { "hlr-List", "gsm_map.ms.hlr_List",
19415         FT_UINT32, BASE_DEC, NULL, 0,
19416         "gsm_map.HLR_List", HFILL }},
19417     { &hf_gsm_map_ms_msNotReachable,
19418       { "msNotReachable", "gsm_map.ms.msNotReachable",
19419         FT_NONE, BASE_NONE, NULL, 0,
19420         "gsm_map_ms.NULL", HFILL }},
19421     { &hf_gsm_map_ms_VBSDataList_item,
19422       { "Item", "gsm_map.ms.VBSDataList_item",
19423         FT_NONE, BASE_NONE, NULL, 0,
19424         "gsm_map_ms.VoiceBroadcastData", HFILL }},
19425     { &hf_gsm_map_ms_VGCSDataList_item,
19426       { "Item", "gsm_map.ms.VGCSDataList_item",
19427         FT_NONE, BASE_NONE, NULL, 0,
19428         "gsm_map_ms.VoiceGroupCallData", HFILL }},
19429     { &hf_gsm_map_ms_groupId,
19430       { "groupId", "gsm_map.ms.groupId",
19431         FT_BYTES, BASE_HEX, NULL, 0,
19432         "gsm_map_ms.GroupId", HFILL }},
19433     { &hf_gsm_map_ms_additionalSubscriptions,
19434       { "additionalSubscriptions", "gsm_map.ms.additionalSubscriptions",
19435         FT_BYTES, BASE_HEX, NULL, 0,
19436         "gsm_map_ms.AdditionalSubscriptions", HFILL }},
19437     { &hf_gsm_map_ms_additionalInfo,
19438       { "additionalInfo", "gsm_map.ms.additionalInfo",
19439         FT_BYTES, BASE_HEX, NULL, 0,
19440         "gsm_map_ms.AdditionalInfo", HFILL }},
19441     { &hf_gsm_map_ms_longGroupId,
19442       { "longGroupId", "gsm_map.ms.longGroupId",
19443         FT_BYTES, BASE_HEX, NULL, 0,
19444         "gsm_map_ms.Long_GroupId", HFILL }},
19445     { &hf_gsm_map_ms_groupid,
19446       { "groupid", "gsm_map.ms.groupid",
19447         FT_BYTES, BASE_HEX, NULL, 0,
19448         "gsm_map_ms.GroupId", HFILL }},
19449     { &hf_gsm_map_ms_broadcastInitEntitlement,
19450       { "broadcastInitEntitlement", "gsm_map.ms.broadcastInitEntitlement",
19451         FT_NONE, BASE_NONE, NULL, 0,
19452         "gsm_map_ms.NULL", HFILL }},
19453     { &hf_gsm_map_ms_requestedInfo,
19454       { "requestedInfo", "gsm_map.ms.requestedInfo",
19455         FT_NONE, BASE_NONE, NULL, 0,
19456         "gsm_map_ms.RequestedInfo", HFILL }},
19457     { &hf_gsm_map_ms_subscriberInfo,
19458       { "subscriberInfo", "gsm_map.ms.subscriberInfo",
19459         FT_NONE, BASE_NONE, NULL, 0,
19460         "gsm_map_ms.SubscriberInfo", HFILL }},
19461     { &hf_gsm_map_ms_locationInformation,
19462       { "locationInformation", "gsm_map.ms.locationInformation",
19463         FT_NONE, BASE_NONE, NULL, 0,
19464         "gsm_map_ms.LocationInformation", HFILL }},
19465     { &hf_gsm_map_ms_subscriberState,
19466       { "subscriberState", "gsm_map.ms.subscriberState",
19467         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberState_vals), 0,
19468         "gsm_map_ms.SubscriberState", HFILL }},
19469     { &hf_gsm_map_ms_locationInformationGPRS,
19470       { "locationInformationGPRS", "gsm_map.ms.locationInformationGPRS",
19471         FT_NONE, BASE_NONE, NULL, 0,
19472         "gsm_map_ms.LocationInformationGPRS", HFILL }},
19473     { &hf_gsm_map_ms_ps_SubscriberState,
19474       { "ps-SubscriberState", "gsm_map.ms.ps_SubscriberState",
19475         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PS_SubscriberState_vals), 0,
19476         "gsm_map_ms.PS_SubscriberState", HFILL }},
19477     { &hf_gsm_map_ms_ms_Classmark2,
19478       { "ms-Classmark2", "gsm_map.ms.ms_Classmark2",
19479         FT_BYTES, BASE_HEX, NULL, 0,
19480         "gsm_map_ms.MS_Classmark2", HFILL }},
19481     { &hf_gsm_map_ms_gprs_MS_Class,
19482       { "gprs-MS-Class", "gsm_map.ms.gprs_MS_Class",
19483         FT_NONE, BASE_NONE, NULL, 0,
19484         "gsm_map_ms.GPRSMSClass", HFILL }},
19485     { &hf_gsm_map_ms_mnpInfoRes,
19486       { "mnpInfoRes", "gsm_map.ms.mnpInfoRes",
19487         FT_NONE, BASE_NONE, NULL, 0,
19488         "gsm_map_ms.MNPInfoRes", HFILL }},
19489     { &hf_gsm_map_ms_routeingNumber,
19490       { "routeingNumber", "gsm_map.ms.routeingNumber",
19491         FT_BYTES, BASE_HEX, NULL, 0,
19492         "gsm_map_ms.RouteingNumber", HFILL }},
19493     { &hf_gsm_map_ms_numberPortabilityStatus,
19494       { "numberPortabilityStatus", "gsm_map.ms.numberPortabilityStatus",
19495         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
19496         "gsm_map_ms.NumberPortabilityStatus", HFILL }},
19497     { &hf_gsm_map_ms_mSNetworkCapability,
19498       { "mSNetworkCapability", "gsm_map.ms.mSNetworkCapability",
19499         FT_BYTES, BASE_HEX, NULL, 0,
19500         "gsm_map_ms.MSNetworkCapability", HFILL }},
19501     { &hf_gsm_map_ms_mSRadioAccessCapability,
19502       { "mSRadioAccessCapability", "gsm_map.ms.mSRadioAccessCapability",
19503         FT_BYTES, BASE_HEX, NULL, 0,
19504         "gsm_map_ms.MSRadioAccessCapability", HFILL }},
19505     { &hf_gsm_map_ms_locationInformation_01,
19506       { "locationInformation", "gsm_map.ms.locationInformation",
19507         FT_NONE, BASE_NONE, NULL, 0,
19508         "gsm_map_ms.NULL", HFILL }},
19509     { &hf_gsm_map_ms_subscriberState_01,
19510       { "subscriberState", "gsm_map.ms.subscriberState",
19511         FT_NONE, BASE_NONE, NULL, 0,
19512         "gsm_map_ms.NULL", HFILL }},
19513     { &hf_gsm_map_ms_currentLocation,
19514       { "currentLocation", "gsm_map.ms.currentLocation",
19515         FT_NONE, BASE_NONE, NULL, 0,
19516         "gsm_map_ms.NULL", HFILL }},
19517     { &hf_gsm_map_ms_requestedDomain,
19518       { "requestedDomain", "gsm_map.ms.requestedDomain",
19519         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DomainType_vals), 0,
19520         "gsm_map_ms.DomainType", HFILL }},
19521     { &hf_gsm_map_ms_imei_01,
19522       { "imei", "gsm_map.ms.imei",
19523         FT_NONE, BASE_NONE, NULL, 0,
19524         "gsm_map_ms.NULL", HFILL }},
19525     { &hf_gsm_map_ms_ms_classmark,
19526       { "ms-classmark", "gsm_map.ms.ms_classmark",
19527         FT_NONE, BASE_NONE, NULL, 0,
19528         "gsm_map_ms.NULL", HFILL }},
19529     { &hf_gsm_map_ms_mnpRequestedInfo,
19530       { "mnpRequestedInfo", "gsm_map.ms.mnpRequestedInfo",
19531         FT_NONE, BASE_NONE, NULL, 0,
19532         "gsm_map_ms.NULL", HFILL }},
19533     { &hf_gsm_map_ms_ageOfLocationInformation,
19534       { "ageOfLocationInformation", "gsm_map.ms.ageOfLocationInformation",
19535         FT_UINT32, BASE_DEC, NULL, 0,
19536         "gsm_map.AgeOfLocationInformation", HFILL }},
19537     { &hf_gsm_map_ms_geographicalInformation,
19538       { "geographicalInformation", "gsm_map.ms.geographicalInformation",
19539         FT_BYTES, BASE_HEX, NULL, 0,
19540         "gsm_map_ms.GeographicalInformation", HFILL }},
19541     { &hf_gsm_map_ms_vlr_number,
19542       { "vlr-number", "gsm_map.ms.vlr_number",
19543         FT_BYTES, BASE_HEX, NULL, 0,
19544         "gsm_map.ISDN_AddressString", HFILL }},
19545     { &hf_gsm_map_ms_locationNumber,
19546       { "locationNumber", "gsm_map.ms.locationNumber",
19547         FT_BYTES, BASE_HEX, NULL, 0,
19548         "gsm_map_ms.LocationNumber", HFILL }},
19549     { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI,
19550       { "cellGlobalIdOrServiceAreaIdOrLAI", "gsm_map.ms.cellGlobalIdOrServiceAreaIdOrLAI",
19551         FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
19552         "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
19553     { &hf_gsm_map_ms_selectedLSA_Id,
19554       { "selectedLSA-Id", "gsm_map.ms.selectedLSA_Id",
19555         FT_BYTES, BASE_HEX, NULL, 0,
19556         "gsm_map_ms.LSAIdentity", HFILL }},
19557     { &hf_gsm_map_ms_geodeticInformation,
19558       { "geodeticInformation", "gsm_map.ms.geodeticInformation",
19559         FT_BYTES, BASE_HEX, NULL, 0,
19560         "gsm_map_ms.GeodeticInformation", HFILL }},
19561     { &hf_gsm_map_ms_currentLocationRetrieved,
19562       { "currentLocationRetrieved", "gsm_map.ms.currentLocationRetrieved",
19563         FT_NONE, BASE_NONE, NULL, 0,
19564         "gsm_map_ms.NULL", HFILL }},
19565     { &hf_gsm_map_ms_sai_Present,
19566       { "sai-Present", "gsm_map.ms.sai_Present",
19567         FT_NONE, BASE_NONE, NULL, 0,
19568         "gsm_map_ms.NULL", HFILL }},
19569     { &hf_gsm_map_ms_routeingAreaIdentity,
19570       { "routeingAreaIdentity", "gsm_map.ms.routeingAreaIdentity",
19571         FT_BYTES, BASE_HEX, NULL, 0,
19572         "gsm_map_ms.RAIdentity", HFILL }},
19573     { &hf_gsm_map_ms_selectedLSAIdentity,
19574       { "selectedLSAIdentity", "gsm_map.ms.selectedLSAIdentity",
19575         FT_BYTES, BASE_HEX, NULL, 0,
19576         "gsm_map_ms.LSAIdentity", HFILL }},
19577     { &hf_gsm_map_ms_assumedIdle,
19578       { "assumedIdle", "gsm_map.ms.assumedIdle",
19579         FT_NONE, BASE_NONE, NULL, 0,
19580         "gsm_map_ms.NULL", HFILL }},
19581     { &hf_gsm_map_ms_camelBusy,
19582       { "camelBusy", "gsm_map.ms.camelBusy",
19583         FT_NONE, BASE_NONE, NULL, 0,
19584         "gsm_map_ms.NULL", HFILL }},
19585     { &hf_gsm_map_ms_netDetNotReachable,
19586       { "netDetNotReachable", "gsm_map.ms.netDetNotReachable",
19587         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotReachableReason_vals), 0,
19588         "gsm_map_ms.NotReachableReason", HFILL }},
19589     { &hf_gsm_map_ms_notProvidedFromVLR,
19590       { "notProvidedFromVLR", "gsm_map.ms.notProvidedFromVLR",
19591         FT_NONE, BASE_NONE, NULL, 0,
19592         "gsm_map_ms.NULL", HFILL }},
19593     { &hf_gsm_map_ms_notProvidedFromSGSN,
19594       { "notProvidedFromSGSN", "gsm_map.ms.notProvidedFromSGSN",
19595         FT_NONE, BASE_NONE, NULL, 0,
19596         "gsm_map_ms.NULL", HFILL }},
19597     { &hf_gsm_map_ms_ps_Detached,
19598       { "ps-Detached", "gsm_map.ms.ps_Detached",
19599         FT_NONE, BASE_NONE, NULL, 0,
19600         "gsm_map_ms.NULL", HFILL }},
19601     { &hf_gsm_map_ms_ps_AttachedNotReachableForPaging,
19602       { "ps-AttachedNotReachableForPaging", "gsm_map.ms.ps_AttachedNotReachableForPaging",
19603         FT_NONE, BASE_NONE, NULL, 0,
19604         "gsm_map_ms.NULL", HFILL }},
19605     { &hf_gsm_map_ms_ps_AttachedReachableForPaging,
19606       { "ps-AttachedReachableForPaging", "gsm_map.ms.ps_AttachedReachableForPaging",
19607         FT_NONE, BASE_NONE, NULL, 0,
19608         "gsm_map_ms.NULL", HFILL }},
19609     { &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging,
19610       { "ps-PDP-ActiveNotReachableForPaging", "gsm_map.ms.ps_PDP_ActiveNotReachableForPaging",
19611         FT_UINT32, BASE_DEC, NULL, 0,
19612         "gsm_map_ms.PDP_ContextInfoList", HFILL }},
19613     { &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging,
19614       { "ps-PDP-ActiveReachableForPaging", "gsm_map.ms.ps_PDP_ActiveReachableForPaging",
19615         FT_UINT32, BASE_DEC, NULL, 0,
19616         "gsm_map_ms.PDP_ContextInfoList", HFILL }},
19617     { &hf_gsm_map_ms_PDP_ContextInfoList_item,
19618       { "Item", "gsm_map.ms.PDP_ContextInfoList_item",
19619         FT_NONE, BASE_NONE, NULL, 0,
19620         "gsm_map_ms.PDP_ContextInfo", HFILL }},
19621     { &hf_gsm_map_ms_pdp_ContextIdentifier,
19622       { "pdp-ContextIdentifier", "gsm_map.ms.pdp_ContextIdentifier",
19623         FT_UINT32, BASE_DEC, NULL, 0,
19624         "gsm_map_ms.ContextId", HFILL }},
19625     { &hf_gsm_map_ms_pdp_ContextActive,
19626       { "pdp-ContextActive", "gsm_map.ms.pdp_ContextActive",
19627         FT_NONE, BASE_NONE, NULL, 0,
19628         "gsm_map_ms.NULL", HFILL }},
19629     { &hf_gsm_map_ms_apn_Subscribed,
19630       { "apn-Subscribed", "gsm_map.ms.apn_Subscribed",
19631         FT_BYTES, BASE_HEX, NULL, 0,
19632         "gsm_map_ms.APN", HFILL }},
19633     { &hf_gsm_map_ms_apn_InUse,
19634       { "apn-InUse", "gsm_map.ms.apn_InUse",
19635         FT_BYTES, BASE_HEX, NULL, 0,
19636         "gsm_map_ms.APN", HFILL }},
19637     { &hf_gsm_map_ms_nsapi,
19638       { "nsapi", "gsm_map.ms.nsapi",
19639         FT_UINT32, BASE_DEC, NULL, 0,
19640         "gsm_map_ms.NSAPI", HFILL }},
19641     { &hf_gsm_map_ms_transactionId,
19642       { "transactionId", "gsm_map.ms.transactionId",
19643         FT_BYTES, BASE_HEX, NULL, 0,
19644         "gsm_map_ms.TransactionId", HFILL }},
19645     { &hf_gsm_map_ms_teid_ForGnAndGp,
19646       { "teid-ForGnAndGp", "gsm_map.ms.teid_ForGnAndGp",
19647         FT_BYTES, BASE_HEX, NULL, 0,
19648         "gsm_map_ms.TEID", HFILL }},
19649     { &hf_gsm_map_ms_teid_ForIu,
19650       { "teid-ForIu", "gsm_map.ms.teid_ForIu",
19651         FT_BYTES, BASE_HEX, NULL, 0,
19652         "gsm_map_ms.TEID", HFILL }},
19653     { &hf_gsm_map_ms_qos_Subscribed_01,
19654       { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
19655         FT_BYTES, BASE_HEX, NULL, 0,
19656         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
19657     { &hf_gsm_map_ms_qos_Requested,
19658       { "qos-Requested", "gsm_map.ms.qos_Requested",
19659         FT_BYTES, BASE_HEX, NULL, 0,
19660         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
19661     { &hf_gsm_map_ms_qos_Negotiated,
19662       { "qos-Negotiated", "gsm_map.ms.qos_Negotiated",
19663         FT_BYTES, BASE_HEX, NULL, 0,
19664         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
19665     { &hf_gsm_map_ms_chargingId,
19666       { "chargingId", "gsm_map.ms.chargingId",
19667         FT_BYTES, BASE_HEX, NULL, 0,
19668         "gsm_map_ms.GPRSChargingID", HFILL }},
19669     { &hf_gsm_map_ms_chargingCharacteristics,
19670       { "chargingCharacteristics", "gsm_map.ms.chargingCharacteristics",
19671         FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
19672         "gsm_map_ms.ChargingCharacteristics", HFILL }},
19673     { &hf_gsm_map_ms_rnc_Address,
19674       { "rnc-Address", "gsm_map.ms.rnc_Address",
19675         FT_BYTES, BASE_HEX, NULL, 0,
19676         "gsm_map_ms.GSN_Address", HFILL }},
19677     { &hf_gsm_map_ms_qos2_Subscribed,
19678       { "qos2-Subscribed", "gsm_map.ms.qos2_Subscribed",
19679         FT_BYTES, BASE_HEX, NULL, 0,
19680         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
19681     { &hf_gsm_map_ms_qos2_Requested,
19682       { "qos2-Requested", "gsm_map.ms.qos2_Requested",
19683         FT_BYTES, BASE_HEX, NULL, 0,
19684         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
19685     { &hf_gsm_map_ms_qos2_Negotiated,
19686       { "qos2-Negotiated", "gsm_map.ms.qos2_Negotiated",
19687         FT_BYTES, BASE_HEX, NULL, 0,
19688         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
19689     { &hf_gsm_map_ms_subscriberIdentity,
19690       { "subscriberIdentity", "gsm_map.ms.subscriberIdentity",
19691         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
19692         "gsm_map.SubscriberIdentity", HFILL }},
19693     { &hf_gsm_map_ms_requestedSubscriptionInfo,
19694       { "requestedSubscriptionInfo", "gsm_map.ms.requestedSubscriptionInfo",
19695         FT_NONE, BASE_NONE, NULL, 0,
19696         "gsm_map_ms.RequestedSubscriptionInfo", HFILL }},
19697     { &hf_gsm_map_ms_callForwardingData,
19698       { "callForwardingData", "gsm_map.ms.callForwardingData",
19699         FT_NONE, BASE_NONE, NULL, 0,
19700         "gsm_map_ms.CallForwardingData", HFILL }},
19701     { &hf_gsm_map_ms_callBarringData,
19702       { "callBarringData", "gsm_map.ms.callBarringData",
19703         FT_NONE, BASE_NONE, NULL, 0,
19704         "gsm_map_ms.CallBarringData", HFILL }},
19705     { &hf_gsm_map_ms_odb_Info,
19706       { "odb-Info", "gsm_map.ms.odb_Info",
19707         FT_NONE, BASE_NONE, NULL, 0,
19708         "gsm_map_ms.ODB_Info", HFILL }},
19709     { &hf_gsm_map_ms_camel_SubscriptionInfo,
19710       { "camel-SubscriptionInfo", "gsm_map.ms.camel_SubscriptionInfo",
19711         FT_NONE, BASE_NONE, NULL, 0,
19712         "gsm_map_ms.CAMEL_SubscriptionInfo", HFILL }},
19713     { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases,
19714       { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases",
19715         FT_BYTES, BASE_HEX, NULL, 0,
19716         "gsm_map_ms.SupportedCamelPhases", HFILL }},
19717     { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases,
19718       { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases",
19719         FT_BYTES, BASE_HEX, NULL, 0,
19720         "gsm_map_ms.SupportedCamelPhases", HFILL }},
19721     { &hf_gsm_map_ms_offeredCamel4CSIsInVLR,
19722       { "offeredCamel4CSIsInVLR", "gsm_map.ms.offeredCamel4CSIsInVLR",
19723         FT_BYTES, BASE_HEX, NULL, 0,
19724         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
19725     { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN,
19726       { "offeredCamel4CSIsInSGSN", "gsm_map.ms.offeredCamel4CSIsInSGSN",
19727         FT_BYTES, BASE_HEX, NULL, 0,
19728         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
19729     { &hf_gsm_map_ms_msisdn_BS_List,
19730       { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List",
19731         FT_UINT32, BASE_DEC, NULL, 0,
19732         "gsm_map_ms.MSISDN_BS_List", HFILL }},
19733     { &hf_gsm_map_ms_requestedSS_Info,
19734       { "requestedSS-Info", "gsm_map.ms.requestedSS_Info",
19735         FT_NONE, BASE_NONE, NULL, 0,
19736         "gsm_map_ss.SS_ForBS_Code", HFILL }},
19737     { &hf_gsm_map_ms_odb,
19738       { "odb", "gsm_map.ms.odb",
19739         FT_NONE, BASE_NONE, NULL, 0,
19740         "gsm_map_ms.NULL", HFILL }},
19741     { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo,
19742       { "requestedCAMEL-SubscriptionInfo", "gsm_map.ms.requestedCAMEL_SubscriptionInfo",
19743         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
19744         "gsm_map_ms.RequestedCAMEL_SubscriptionInfo", HFILL }},
19745     { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01,
19746       { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases",
19747         FT_NONE, BASE_NONE, NULL, 0,
19748         "gsm_map_ms.NULL", HFILL }},
19749     { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01,
19750       { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases",
19751         FT_NONE, BASE_NONE, NULL, 0,
19752         "gsm_map_ms.NULL", HFILL }},
19753     { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo,
19754       { "additionalRequestedCAMEL-SubscriptionInfo", "gsm_map.ms.additionalRequestedCAMEL_SubscriptionInfo",
19755         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals), 0,
19756         "gsm_map_ms.AdditionalRequestedCAMEL_SubscriptionInfo", HFILL }},
19757     { &hf_gsm_map_ms_msisdn_BS_List_01,
19758       { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List",
19759         FT_NONE, BASE_NONE, NULL, 0,
19760         "gsm_map_ms.NULL", HFILL }},
19761     { &hf_gsm_map_ms_MSISDN_BS_List_item,
19762       { "Item", "gsm_map.ms.MSISDN_BS_List_item",
19763         FT_NONE, BASE_NONE, NULL, 0,
19764         "gsm_map_ms.MSISDN_BS", HFILL }},
19765     { &hf_gsm_map_ms_password,
19766       { "password", "gsm_map.ms.password",
19767         FT_STRING, BASE_NONE, NULL, 0,
19768         "gsm_map_ss.Password", HFILL }},
19769     { &hf_gsm_map_ms_wrongPasswordAttemptsCounter,
19770       { "wrongPasswordAttemptsCounter", "gsm_map.ms.wrongPasswordAttemptsCounter",
19771         FT_UINT32, BASE_DEC, NULL, 0,
19772         "gsm_map_ms.WrongPasswordAttemptsCounter", HFILL }},
19773     { &hf_gsm_map_ms_t_CSI,
19774       { "t-CSI", "gsm_map.ms.t_CSI",
19775         FT_NONE, BASE_NONE, NULL, 0,
19776         "gsm_map_ms.T_CSI", HFILL }},
19777     { &hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList,
19778       { "vt-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_BCSM_CAMEL_TDP_CriteriaList",
19779         FT_UINT32, BASE_DEC, NULL, 0,
19780         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
19781     { &hf_gsm_map_ms_tif_CSI_NotificationToCSE,
19782       { "tif-CSI-NotificationToCSE", "gsm_map.ms.tif_CSI_NotificationToCSE",
19783         FT_NONE, BASE_NONE, NULL, 0,
19784         "gsm_map_ms.NULL", HFILL }},
19785     { &hf_gsm_map_ms_specificCSIDeletedList,
19786       { "specificCSIDeletedList", "gsm_map.ms.specificCSIDeletedList",
19787         FT_BYTES, BASE_HEX, NULL, 0,
19788         "gsm_map_ms.SpecificCSI_Withdraw", HFILL }},
19789     { &hf_gsm_map_ms_o_IM_CSI,
19790       { "o-IM-CSI", "gsm_map.ms.o_IM_CSI",
19791         FT_NONE, BASE_NONE, NULL, 0,
19792         "gsm_map_ms.O_CSI", HFILL }},
19793     { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList,
19794       { "o-IM-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_IM_BcsmCamelTDP_CriteriaList",
19795         FT_UINT32, BASE_DEC, NULL, 0,
19796         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
19797     { &hf_gsm_map_ms_d_IM_CSI,
19798       { "d-IM-CSI", "gsm_map.ms.d_IM_CSI",
19799         FT_NONE, BASE_NONE, NULL, 0,
19800         "gsm_map_ms.D_CSI", HFILL }},
19801     { &hf_gsm_map_ms_vt_IM_CSI,
19802       { "vt-IM-CSI", "gsm_map.ms.vt_IM_CSI",
19803         FT_NONE, BASE_NONE, NULL, 0,
19804         "gsm_map_ms.T_CSI", HFILL }},
19805     { &hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList,
19806       { "vt-IM-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_IM_BCSM_CAMEL_TDP_CriteriaList",
19807         FT_UINT32, BASE_DEC, NULL, 0,
19808         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
19809     { &hf_gsm_map_ms_modificationRequestFor_CF_Info,
19810       { "modificationRequestFor-CF-Info", "gsm_map.ms.modificationRequestFor_CF_Info",
19811         FT_NONE, BASE_NONE, NULL, 0,
19812         "gsm_map_ms.ModificationRequestFor_CF_Info", HFILL }},
19813     { &hf_gsm_map_ms_modificationRequestFor_CB_Info,
19814       { "modificationRequestFor-CB-Info", "gsm_map.ms.modificationRequestFor_CB_Info",
19815         FT_NONE, BASE_NONE, NULL, 0,
19816         "gsm_map_ms.ModificationRequestFor_CB_Info", HFILL }},
19817     { &hf_gsm_map_ms_modificationRequestFor_CSI,
19818       { "modificationRequestFor-CSI", "gsm_map.ms.modificationRequestFor_CSI",
19819         FT_NONE, BASE_NONE, NULL, 0,
19820         "gsm_map_ms.ModificationRequestFor_CSI", HFILL }},
19821     { &hf_gsm_map_ms_modificationRequestFor_ODB_data,
19822       { "modificationRequestFor-ODB-data", "gsm_map.ms.modificationRequestFor_ODB_data",
19823         FT_NONE, BASE_NONE, NULL, 0,
19824         "gsm_map_ms.ModificationRequestFor_ODB_data", HFILL }},
19825     { &hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data,
19826       { "modificationRequestFor-IP-SM-GW-Data", "gsm_map.ms.modificationRequestFor_IP_SM_GW_Data",
19827         FT_NONE, BASE_NONE, NULL, 0,
19828         "gsm_map_ms.ModificationRequestFor_IP_SM_GW_Data", HFILL }},
19829     { &hf_gsm_map_ms_ss_InfoFor_CSE,
19830       { "ss-InfoFor-CSE", "gsm_map.ms.ss_InfoFor_CSE",
19831         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_InfoFor_CSE_vals), 0,
19832         "gsm_map_ms.Ext_SS_InfoFor_CSE", HFILL }},
19833     { &hf_gsm_map_ms_forwardedToNumber_01,
19834       { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
19835         FT_BYTES, BASE_HEX, NULL, 0,
19836         "gsm_map.AddressString", HFILL }},
19837     { &hf_gsm_map_ms_modifyNotificationToCSE,
19838       { "modifyNotificationToCSE", "gsm_map.ms.modifyNotificationToCSE",
19839         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
19840         "gsm_map_ms.ModificationInstruction", HFILL }},
19841     { &hf_gsm_map_ms_odb_data,
19842       { "odb-data", "gsm_map.ms.odb_data",
19843         FT_NONE, BASE_NONE, NULL, 0,
19844         "gsm_map_ms.ODB_Data", HFILL }},
19845     { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo,
19846       { "requestedCamel-SubscriptionInfo", "gsm_map.ms.requestedCamel_SubscriptionInfo",
19847         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
19848         "gsm_map_ms.RequestedCAMEL_SubscriptionInfo", HFILL }},
19849     { &hf_gsm_map_ms_modifyCSI_State,
19850       { "modifyCSI-State", "gsm_map.ms.modifyCSI_State",
19851         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
19852         "gsm_map_ms.ModificationInstruction", HFILL }},
19853     { &hf_gsm_map_ms_modifyRegistrationStatus,
19854       { "modifyRegistrationStatus", "gsm_map.ms.modifyRegistrationStatus",
19855         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
19856         "gsm_map_ms.ModificationInstruction", HFILL }},
19857     { &hf_gsm_map_ms_forwardingInfoFor_CSE,
19858       { "forwardingInfoFor-CSE", "gsm_map.ms.forwardingInfoFor_CSE",
19859         FT_NONE, BASE_NONE, NULL, 0,
19860         "gsm_map_ms.Ext_ForwardingInfoFor_CSE", HFILL }},
19861     { &hf_gsm_map_ms_callBarringInfoFor_CSE,
19862       { "callBarringInfoFor-CSE", "gsm_map.ms.callBarringInfoFor_CSE",
19863         FT_NONE, BASE_NONE, NULL, 0,
19864         "gsm_map_ms.Ext_CallBarringInfoFor_CSE", HFILL }},
19865     { &hf_gsm_map_ms_allInformationSent,
19866       { "allInformationSent", "gsm_map.ms.allInformationSent",
19867         FT_NONE, BASE_NONE, NULL, 0,
19868         "gsm_map_ms.NULL", HFILL }},
19869     { &hf_gsm_map_ms_eventMet,
19870       { "eventMet", "gsm_map.ms.eventMet",
19871         FT_BYTES, BASE_HEX, NULL, 0,
19872         "gsm_map_ms.MM_Code", HFILL }},
19873     { &hf_gsm_map_ms_supportedCAMELPhases,
19874       { "supportedCAMELPhases", "gsm_map.ms.supportedCAMELPhases",
19875         FT_BYTES, BASE_HEX, NULL, 0,
19876         "gsm_map_ms.SupportedCamelPhases", HFILL }},
19877     { &hf_gsm_map_ms_offeredCamel4Functionalities,
19878       { "offeredCamel4Functionalities", "gsm_map.ms.offeredCamel4Functionalities",
19879         FT_BYTES, BASE_HEX, NULL, 0,
19880         "gsm_map_ms.OfferedCamel4Functionalities", HFILL }},
19881     { &hf_gsm_map_ms_naea_PreferredCI,
19882       { "naea-PreferredCI", "gsm_map.ms.naea_PreferredCI",
19883         FT_NONE, BASE_NONE, NULL, 0,
19884         "gsm_map.NAEA_PreferredCI", HFILL }},
19885     { &hf_gsm_map_ms_gprsSubscriptionData,
19886       { "gprsSubscriptionData", "gsm_map.ms.gprsSubscriptionData",
19887         FT_NONE, BASE_NONE, NULL, 0,
19888         "gsm_map_ms.GPRSSubscriptionData", HFILL }},
19889     { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature,
19890       { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsupportedFeature",
19891         FT_NONE, BASE_NONE, NULL, 0,
19892         "gsm_map_ms.NULL", HFILL }},
19893     { &hf_gsm_map_ms_networkAccessMode,
19894       { "networkAccessMode", "gsm_map.ms.networkAccessMode",
19895         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NetworkAccessMode_vals), 0,
19896         "gsm_map_ms.NetworkAccessMode", HFILL }},
19897     { &hf_gsm_map_ms_lsaInformation,
19898       { "lsaInformation", "gsm_map.ms.lsaInformation",
19899         FT_NONE, BASE_NONE, NULL, 0,
19900         "gsm_map_ms.LSAInformation", HFILL }},
19901     { &hf_gsm_map_ms_lmu_Indicator,
19902       { "lmu-Indicator", "gsm_map.ms.lmu_Indicator",
19903         FT_NONE, BASE_NONE, NULL, 0,
19904         "gsm_map_ms.NULL", HFILL }},
19905     { &hf_gsm_map_ms_lcsInformation,
19906       { "lcsInformation", "gsm_map.ms.lcsInformation",
19907         FT_NONE, BASE_NONE, NULL, 0,
19908         "gsm_map_ms.LCSInformation", HFILL }},
19909     { &hf_gsm_map_ms_istAlertTimer,
19910       { "istAlertTimer", "gsm_map.ms.istAlertTimer",
19911         FT_UINT32, BASE_DEC, NULL, 0,
19912         "gsm_map_ms.IST_AlertTimerValue", HFILL }},
19913     { &hf_gsm_map_ms_superChargerSupportedInHLR,
19914       { "superChargerSupportedInHLR", "gsm_map.ms.superChargerSupportedInHLR",
19915         FT_BYTES, BASE_HEX, NULL, 0,
19916         "gsm_map_ms.AgeIndicator", HFILL }},
19917     { &hf_gsm_map_ms_mc_SS_Info,
19918       { "mc-SS-Info", "gsm_map.ms.mc_SS_Info",
19919         FT_NONE, BASE_NONE, NULL, 0,
19920         "gsm_map.MC_SS_Info", HFILL }},
19921     { &hf_gsm_map_ms_cs_AllocationRetentionPriority,
19922       { "cs-AllocationRetentionPriority", "gsm_map.ms.cs_AllocationRetentionPriority",
19923         FT_BYTES, BASE_HEX, NULL, 0,
19924         "gsm_map_ms.CS_AllocationRetentionPriority", HFILL }},
19925     { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo,
19926       { "sgsn-CAMEL-SubscriptionInfo", "gsm_map.ms.sgsn_CAMEL_SubscriptionInfo",
19927         FT_NONE, BASE_NONE, NULL, 0,
19928         "gsm_map_ms.SGSN_CAMEL_SubscriptionInfo", HFILL }},
19929     { &hf_gsm_map_ms_accessRestrictionData,
19930       { "accessRestrictionData", "gsm_map.ms.accessRestrictionData",
19931         FT_BYTES, BASE_HEX, NULL, 0,
19932         "gsm_map_ms.AccessRestrictionData", HFILL }},
19933     { &hf_gsm_map_ms_SupportedRAT_Types_utran,
19934       { "utran", "gsm_map.ms.utran",
19935         FT_BOOLEAN, 8, NULL, 0x80,
19936         "", HFILL }},
19937     { &hf_gsm_map_ms_SupportedRAT_Types_geran,
19938       { "geran", "gsm_map.ms.geran",
19939         FT_BOOLEAN, 8, NULL, 0x40,
19940         "", HFILL }},
19941     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1,
19942       { "lcsCapabilitySet1", "gsm_map.ms.lcsCapabilitySet1",
19943         FT_BOOLEAN, 8, NULL, 0x80,
19944         "", HFILL }},
19945     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2,
19946       { "lcsCapabilitySet2", "gsm_map.ms.lcsCapabilitySet2",
19947         FT_BOOLEAN, 8, NULL, 0x40,
19948         "", HFILL }},
19949     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3,
19950       { "lcsCapabilitySet3", "gsm_map.ms.lcsCapabilitySet3",
19951         FT_BOOLEAN, 8, NULL, 0x20,
19952         "", HFILL }},
19953     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4,
19954       { "lcsCapabilitySet4", "gsm_map.ms.lcsCapabilitySet4",
19955         FT_BOOLEAN, 8, NULL, 0x10,
19956         "", HFILL }},
19957     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5,
19958       { "lcsCapabilitySet5", "gsm_map.ms.lcsCapabilitySet5",
19959         FT_BOOLEAN, 8, NULL, 0x08,
19960         "", HFILL }},
19961     { &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus,
19962       { "equipmentStatus", "gsm_map.ms.equipmentStatus",
19963         FT_BOOLEAN, 8, NULL, 0x80,
19964         "", HFILL }},
19965     { &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef,
19966       { "bmuef", "gsm_map.ms.bmuef",
19967         FT_BOOLEAN, 8, NULL, 0x40,
19968         "", HFILL }},
19969     { &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed,
19970       { "utranNotAllowed", "gsm_map.ms.utranNotAllowed",
19971         FT_BOOLEAN, 8, NULL, 0x80,
19972         "", HFILL }},
19973     { &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed,
19974       { "geranNotAllowed", "gsm_map.ms.geranNotAllowed",
19975         FT_BOOLEAN, 8, NULL, 0x40,
19976         "", HFILL }},
19977     { &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred,
19978       { "allOG-CallsBarred", "gsm_map.ms.allOG-CallsBarred",
19979         FT_BOOLEAN, 8, NULL, 0x80,
19980         "", HFILL }},
19981     { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred,
19982       { "internationalOGCallsBarred", "gsm_map.ms.internationalOGCallsBarred",
19983         FT_BOOLEAN, 8, NULL, 0x40,
19984         "", HFILL }},
19985     { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred,
19986       { "internationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.internationalOGCallsNotToHPLMN-CountryBarred",
19987         FT_BOOLEAN, 8, NULL, 0x20,
19988         "", HFILL }},
19989     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred,
19990       { "interzonalOGCallsBarred", "gsm_map.ms.interzonalOGCallsBarred",
19991         FT_BOOLEAN, 8, NULL, 0x02,
19992         "", HFILL }},
19993     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred,
19994       { "interzonalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.interzonalOGCallsNotToHPLMN-CountryBarred",
19995         FT_BOOLEAN, 8, NULL, 0x01,
19996         "", HFILL }},
19997     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred,
19998       { "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred",
19999         FT_BOOLEAN, 8, NULL, 0x80,
20000         "", HFILL }},
20001     { &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred,
20002       { "premiumRateInformationOGCallsBarred", "gsm_map.ms.premiumRateInformationOGCallsBarred",
20003         FT_BOOLEAN, 8, NULL, 0x10,
20004         "", HFILL }},
20005     { &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred,
20006       { "premiumRateEntertainementOGCallsBarred", "gsm_map.ms.premiumRateEntertainementOGCallsBarred",
20007         FT_BOOLEAN, 8, NULL, 0x08,
20008         "", HFILL }},
20009     { &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred,
20010       { "ss-AccessBarred", "gsm_map.ms.ss-AccessBarred",
20011         FT_BOOLEAN, 8, NULL, 0x04,
20012         "", HFILL }},
20013     { &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred,
20014       { "allECT-Barred", "gsm_map.ms.allECT-Barred",
20015         FT_BOOLEAN, 8, NULL, 0x40,
20016         "", HFILL }},
20017     { &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred,
20018       { "chargeableECT-Barred", "gsm_map.ms.chargeableECT-Barred",
20019         FT_BOOLEAN, 8, NULL, 0x20,
20020         "", HFILL }},
20021     { &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred,
20022       { "internationalECT-Barred", "gsm_map.ms.internationalECT-Barred",
20023         FT_BOOLEAN, 8, NULL, 0x10,
20024         "", HFILL }},
20025     { &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred,
20026       { "interzonalECT-Barred", "gsm_map.ms.interzonalECT-Barred",
20027         FT_BOOLEAN, 8, NULL, 0x08,
20028         "", HFILL }},
20029     { &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred,
20030       { "doublyChargeableECT-Barred", "gsm_map.ms.doublyChargeableECT-Barred",
20031         FT_BOOLEAN, 8, NULL, 0x04,
20032         "", HFILL }},
20033     { &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred,
20034       { "multipleECT-Barred", "gsm_map.ms.multipleECT-Barred",
20035         FT_BOOLEAN, 8, NULL, 0x02,
20036         "", HFILL }},
20037     { &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred,
20038       { "allPacketOrientedServicesBarred", "gsm_map.ms.allPacketOrientedServicesBarred",
20039         FT_BOOLEAN, 8, NULL, 0x01,
20040         "", HFILL }},
20041     { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred,
20042       { "roamerAccessToHPLMN-AP-Barred", "gsm_map.ms.roamerAccessToHPLMN-AP-Barred",
20043         FT_BOOLEAN, 8, NULL, 0x80,
20044         "", HFILL }},
20045     { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred,
20046       { "roamerAccessToVPLMN-AP-Barred", "gsm_map.ms.roamerAccessToVPLMN-AP-Barred",
20047         FT_BOOLEAN, 8, NULL, 0x40,
20048         "", HFILL }},
20049     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred,
20050       { "roamingOutsidePLMNOG-CallsBarred", "gsm_map.ms.roamingOutsidePLMNOG-CallsBarred",
20051         FT_BOOLEAN, 8, NULL, 0x20,
20052         "", HFILL }},
20053     { &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred,
20054       { "allIC-CallsBarred", "gsm_map.ms.allIC-CallsBarred",
20055         FT_BOOLEAN, 8, NULL, 0x10,
20056         "", HFILL }},
20057     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred,
20058       { "roamingOutsidePLMNIC-CallsBarred", "gsm_map.ms.roamingOutsidePLMNIC-CallsBarred",
20059         FT_BOOLEAN, 8, NULL, 0x08,
20060         "", HFILL }},
20061     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred,
20062       { "roamingOutsidePLMNICountryIC-CallsBarred", "gsm_map.ms.roamingOutsidePLMNICountryIC-CallsBarred",
20063         FT_BOOLEAN, 8, NULL, 0x04,
20064         "", HFILL }},
20065     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred,
20066       { "roamingOutsidePLMN-Barred", "gsm_map.ms.roamingOutsidePLMN-Barred",
20067         FT_BOOLEAN, 8, NULL, 0x02,
20068         "", HFILL }},
20069     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred,
20070       { "roamingOutsidePLMN-CountryBarred", "gsm_map.ms.roamingOutsidePLMN-CountryBarred",
20071         FT_BOOLEAN, 8, NULL, 0x01,
20072         "", HFILL }},
20073     { &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred,
20074       { "registrationAllCF-Barred", "gsm_map.ms.registrationAllCF-Barred",
20075         FT_BOOLEAN, 8, NULL, 0x80,
20076         "", HFILL }},
20077     { &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred,
20078       { "registrationCFNotToHPLMN-Barred", "gsm_map.ms.registrationCFNotToHPLMN-Barred",
20079         FT_BOOLEAN, 8, NULL, 0x40,
20080         "", HFILL }},
20081     { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred,
20082       { "registrationInterzonalCF-Barred", "gsm_map.ms.registrationInterzonalCF-Barred",
20083         FT_BOOLEAN, 8, NULL, 0x20,
20084         "", HFILL }},
20085     { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred,
20086       { "registrationInterzonalCFNotToHPLMN-Barred", "gsm_map.ms.registrationInterzonalCFNotToHPLMN-Barred",
20087         FT_BOOLEAN, 8, NULL, 0x10,
20088         "", HFILL }},
20089     { &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred,
20090       { "registrationInternationalCF-Barred", "gsm_map.ms.registrationInternationalCF-Barred",
20091         FT_BOOLEAN, 8, NULL, 0x08,
20092         "", HFILL }},
20093     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1,
20094       { "plmn-SpecificBarringType1", "gsm_map.ms.plmn-SpecificBarringType1",
20095         FT_BOOLEAN, 8, NULL, 0x80,
20096         "", HFILL }},
20097     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2,
20098       { "plmn-SpecificBarringType2", "gsm_map.ms.plmn-SpecificBarringType2",
20099         FT_BOOLEAN, 8, NULL, 0x40,
20100         "", HFILL }},
20101     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3,
20102       { "plmn-SpecificBarringType3", "gsm_map.ms.plmn-SpecificBarringType3",
20103         FT_BOOLEAN, 8, NULL, 0x20,
20104         "", HFILL }},
20105     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4,
20106       { "plmn-SpecificBarringType4", "gsm_map.ms.plmn-SpecificBarringType4",
20107         FT_BOOLEAN, 8, NULL, 0x10,
20108         "", HFILL }},
20109     { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi,
20110       { "o-csi", "gsm_map.ms.o-csi",
20111         FT_BOOLEAN, 8, NULL, 0x80,
20112         "", HFILL }},
20113     { &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi,
20114       { "ss-csi", "gsm_map.ms.ss-csi",
20115         FT_BOOLEAN, 8, NULL, 0x40,
20116         "", HFILL }},
20117     { &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi,
20118       { "tif-csi", "gsm_map.ms.tif-csi",
20119         FT_BOOLEAN, 8, NULL, 0x20,
20120         "", HFILL }},
20121     { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi,
20122       { "d-csi", "gsm_map.ms.d-csi",
20123         FT_BOOLEAN, 8, NULL, 0x10,
20124         "", HFILL }},
20125     { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi,
20126       { "vt-csi", "gsm_map.ms.vt-csi",
20127         FT_BOOLEAN, 8, NULL, 0x08,
20128         "", HFILL }},
20129     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi,
20130       { "mo-sms-csi", "gsm_map.ms.mo-sms-csi",
20131         FT_BOOLEAN, 8, NULL, 0x04,
20132         "", HFILL }},
20133     { &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi,
20134       { "m-csi", "gsm_map.ms.m-csi",
20135         FT_BOOLEAN, 8, NULL, 0x02,
20136         "", HFILL }},
20137     { &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi,
20138       { "gprs-csi", "gsm_map.ms.gprs-csi",
20139         FT_BOOLEAN, 8, NULL, 0x01,
20140         "", HFILL }},
20141     { &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi,
20142       { "t-csi", "gsm_map.ms.t-csi",
20143         FT_BOOLEAN, 8, NULL, 0x80,
20144         "", HFILL }},
20145     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi,
20146       { "mt-sms-csi", "gsm_map.ms.mt-sms-csi",
20147         FT_BOOLEAN, 8, NULL, 0x40,
20148         "", HFILL }},
20149     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi,
20150       { "mg-csi", "gsm_map.ms.mg-csi",
20151         FT_BOOLEAN, 8, NULL, 0x20,
20152         "", HFILL }},
20153     { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI,
20154       { "o-IM-CSI", "gsm_map.ms.o-IM-CSI",
20155         FT_BOOLEAN, 8, NULL, 0x10,
20156         "", HFILL }},
20157     { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI,
20158       { "d-IM-CSI", "gsm_map.ms.d-IM-CSI",
20159         FT_BOOLEAN, 8, NULL, 0x08,
20160         "", HFILL }},
20161     { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI,
20162       { "vt-IM-CSI", "gsm_map.ms.vt-IM-CSI",
20163         FT_BOOLEAN, 8, NULL, 0x04,
20164         "", HFILL }},
20165     { &hf_gsm_map_ms_SupportedCamelPhases_phase1,
20166       { "phase1", "gsm_map.ms.phase1",
20167         FT_BOOLEAN, 8, NULL, 0x80,
20168         "", HFILL }},
20169     { &hf_gsm_map_ms_SupportedCamelPhases_phase2,
20170       { "phase2", "gsm_map.ms.phase2",
20171         FT_BOOLEAN, 8, NULL, 0x40,
20172         "", HFILL }},
20173     { &hf_gsm_map_ms_SupportedCamelPhases_phase3,
20174       { "phase3", "gsm_map.ms.phase3",
20175         FT_BOOLEAN, 8, NULL, 0x20,
20176         "", HFILL }},
20177     { &hf_gsm_map_ms_SupportedCamelPhases_phase4,
20178       { "phase4", "gsm_map.ms.phase4",
20179         FT_BOOLEAN, 8, NULL, 0x10,
20180         "", HFILL }},
20181     { &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi,
20182       { "o-csi", "gsm_map.ms.o-csi",
20183         FT_BOOLEAN, 8, NULL, 0x80,
20184         "", HFILL }},
20185     { &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi,
20186       { "d-csi", "gsm_map.ms.d-csi",
20187         FT_BOOLEAN, 8, NULL, 0x40,
20188         "", HFILL }},
20189     { &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi,
20190       { "vt-csi", "gsm_map.ms.vt-csi",
20191         FT_BOOLEAN, 8, NULL, 0x20,
20192         "", HFILL }},
20193     { &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi,
20194       { "t-csi", "gsm_map.ms.t-csi",
20195         FT_BOOLEAN, 8, NULL, 0x10,
20196         "", HFILL }},
20197     { &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi,
20198       { "mt-sms-csi", "gsm_map.ms.mt-sms-csi",
20199         FT_BOOLEAN, 8, NULL, 0x08,
20200         "", HFILL }},
20201     { &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi,
20202       { "mg-csi", "gsm_map.ms.mg-csi",
20203         FT_BOOLEAN, 8, NULL, 0x04,
20204         "", HFILL }},
20205     { &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements,
20206       { "psi-enhancements", "gsm_map.ms.psi-enhancements",
20207         FT_BOOLEAN, 8, NULL, 0x02,
20208         "", HFILL }},
20209     { &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt,
20210       { "initiateCallAttempt", "gsm_map.ms.initiateCallAttempt",
20211         FT_BOOLEAN, 8, NULL, 0x80,
20212         "", HFILL }},
20213     { &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg,
20214       { "splitLeg", "gsm_map.ms.splitLeg",
20215         FT_BOOLEAN, 8, NULL, 0x40,
20216         "", HFILL }},
20217     { &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg,
20218       { "moveLeg", "gsm_map.ms.moveLeg",
20219         FT_BOOLEAN, 8, NULL, 0x20,
20220         "", HFILL }},
20221     { &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg,
20222       { "disconnectLeg", "gsm_map.ms.disconnectLeg",
20223         FT_BOOLEAN, 8, NULL, 0x10,
20224         "", HFILL }},
20225     { &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased,
20226       { "entityReleased", "gsm_map.ms.entityReleased",
20227         FT_BOOLEAN, 8, NULL, 0x08,
20228         "", HFILL }},
20229     { &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument,
20230       { "dfc-WithArgument", "gsm_map.ms.dfc-WithArgument",
20231         FT_BOOLEAN, 8, NULL, 0x04,
20232         "", HFILL }},
20233     { &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone,
20234       { "playTone", "gsm_map.ms.playTone",
20235         FT_BOOLEAN, 8, NULL, 0x02,
20236         "", HFILL }},
20237     { &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall,
20238       { "dtmf-MidCall", "gsm_map.ms.dtmf-MidCall",
20239         FT_BOOLEAN, 8, NULL, 0x01,
20240         "", HFILL }},
20241     { &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator,
20242       { "chargingIndicator", "gsm_map.ms.chargingIndicator",
20243         FT_BOOLEAN, 8, NULL, 0x80,
20244         "", HFILL }},
20245     { &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP,
20246       { "alertingDP", "gsm_map.ms.alertingDP",
20247         FT_BOOLEAN, 8, NULL, 0x40,
20248         "", HFILL }},
20249     { &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting,
20250       { "locationAtAlerting", "gsm_map.ms.locationAtAlerting",
20251         FT_BOOLEAN, 8, NULL, 0x20,
20252         "", HFILL }},
20253     { &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP,
20254       { "changeOfPositionDP", "gsm_map.ms.changeOfPositionDP",
20255         FT_BOOLEAN, 8, NULL, 0x10,
20256         "", HFILL }},
20257     { &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions,
20258       { "or-Interactions", "gsm_map.ms.or-Interactions",
20259         FT_BOOLEAN, 8, NULL, 0x08,
20260         "", HFILL }},
20261     { &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements,
20262       { "warningToneEnhancements", "gsm_map.ms.warningToneEnhancements",
20263         FT_BOOLEAN, 8, NULL, 0x04,
20264         "", HFILL }},
20265     { &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements,
20266       { "cf-Enhancements", "gsm_map.ms.cf-Enhancements",
20267         FT_BOOLEAN, 8, NULL, 0x02,
20268         "", HFILL }},
20269     { &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices,
20270       { "subscribedEnhancedDialledServices", "gsm_map.ms.subscribedEnhancedDialledServices",
20271         FT_BOOLEAN, 8, NULL, 0x01,
20272         "", HFILL }},
20273     { &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices,
20274       { "servingNetworkEnhancedDialledServices", "gsm_map.ms.servingNetworkEnhancedDialledServices",
20275         FT_BOOLEAN, 8, NULL, 0x80,
20276         "", HFILL }},
20277     { &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP,
20278       { "criteriaForChangeOfPositionDP", "gsm_map.ms.criteriaForChangeOfPositionDP",
20279         FT_BOOLEAN, 8, NULL, 0x40,
20280         "", HFILL }},
20281     { &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP,
20282       { "serviceChangeDP", "gsm_map.ms.serviceChangeDP",
20283         FT_BOOLEAN, 8, NULL, 0x20,
20284         "", HFILL }},
20285     { &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation,
20286       { "collectInformation", "gsm_map.ms.collectInformation",
20287         FT_BOOLEAN, 8, NULL, 0x10,
20288         "", HFILL }},
20289     { &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest,
20290       { "privilegedUplinkRequest", "gsm_map.ms.privilegedUplinkRequest",
20291         FT_BOOLEAN, 8, NULL, 0x80,
20292         "", HFILL }},
20293     { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest,
20294       { "emergencyUplinkRequest", "gsm_map.ms.emergencyUplinkRequest",
20295         FT_BOOLEAN, 8, NULL, 0x40,
20296         "", HFILL }},
20297     { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset,
20298       { "emergencyReset", "gsm_map.ms.emergencyReset",
20299         FT_BOOLEAN, 8, NULL, 0x20,
20300         "", HFILL }},
20301
20302 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
20303
20304     { &hf_gsm_map_ch_cug_Interlock,
20305       { "cug-Interlock", "gsm_map.ch.cug_Interlock",
20306         FT_BYTES, BASE_HEX, NULL, 0,
20307         "gsm_map_ms.CUG_Interlock", HFILL }},
20308     { &hf_gsm_map_ch_cug_OutgoingAccess,
20309       { "cug-OutgoingAccess", "gsm_map.ch.cug_OutgoingAccess",
20310         FT_NONE, BASE_NONE, NULL, 0,
20311         "gsm_map_ch.NULL", HFILL }},
20312     { &hf_gsm_map_ch_extensionContainer,
20313       { "extensionContainer", "gsm_map.ch.extensionContainer",
20314         FT_NONE, BASE_NONE, NULL, 0,
20315         "gsm_map.ExtensionContainer", HFILL }},
20316     { &hf_gsm_map_ch_msisdn,
20317       { "msisdn", "gsm_map.ch.msisdn",
20318         FT_BYTES, BASE_HEX, NULL, 0,
20319         "gsm_map.ISDN_AddressString", HFILL }},
20320     { &hf_gsm_map_ch_cug_CheckInfo,
20321       { "cug-CheckInfo", "gsm_map.ch.cug_CheckInfo",
20322         FT_NONE, BASE_NONE, NULL, 0,
20323         "gsm_map_ch.CUG_CheckInfo", HFILL }},
20324     { &hf_gsm_map_ch_numberOfForwarding,
20325       { "numberOfForwarding", "gsm_map.ch.numberOfForwarding",
20326         FT_UINT32, BASE_DEC, NULL, 0,
20327         "gsm_map_ch.NumberOfForwarding", HFILL }},
20328     { &hf_gsm_map_ch_interrogationType,
20329       { "interrogationType", "gsm_map.ch.interrogationType",
20330         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_InterrogationType_vals), 0,
20331         "gsm_map_ch.InterrogationType", HFILL }},
20332     { &hf_gsm_map_ch_or_Interrogation,
20333       { "or-Interrogation", "gsm_map.ch.or_Interrogation",
20334         FT_NONE, BASE_NONE, NULL, 0,
20335         "gsm_map_ch.NULL", HFILL }},
20336     { &hf_gsm_map_ch_or_Capability,
20337       { "or-Capability", "gsm_map.ch.or_Capability",
20338         FT_UINT32, BASE_DEC, NULL, 0,
20339         "gsm_map_ch.OR_Phase", HFILL }},
20340     { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address,
20341       { "gmsc-OrGsmSCF-Address", "gsm_map.ch.gmsc_OrGsmSCF_Address",
20342         FT_BYTES, BASE_HEX, NULL, 0,
20343         "gsm_map.ISDN_AddressString", HFILL }},
20344     { &hf_gsm_map_ch_callReferenceNumber,
20345       { "callReferenceNumber", "gsm_map.ch.callReferenceNumber",
20346         FT_BYTES, BASE_HEX, NULL, 0,
20347         "gsm_map_ch.CallReferenceNumber", HFILL }},
20348     { &hf_gsm_map_ch_forwardingReason,
20349       { "forwardingReason", "gsm_map.ch.forwardingReason",
20350         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ForwardingReason_vals), 0,
20351         "gsm_map_ch.ForwardingReason", HFILL }},
20352     { &hf_gsm_map_ch_basicServiceGroup,
20353       { "basicServiceGroup", "gsm_map.ch.basicServiceGroup",
20354         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20355         "gsm_map.Ext_BasicServiceCode", HFILL }},
20356     { &hf_gsm_map_ch_networkSignalInfo,
20357       { "networkSignalInfo", "gsm_map.ch.networkSignalInfo",
20358         FT_NONE, BASE_NONE, NULL, 0,
20359         "gsm_map.ExternalSignalInfo", HFILL }},
20360     { &hf_gsm_map_ch_camelInfo,
20361       { "camelInfo", "gsm_map.ch.camelInfo",
20362         FT_NONE, BASE_NONE, NULL, 0,
20363         "gsm_map_ch.CamelInfo", HFILL }},
20364     { &hf_gsm_map_ch_suppressionOfAnnouncement,
20365       { "suppressionOfAnnouncement", "gsm_map.ch.suppressionOfAnnouncement",
20366         FT_NONE, BASE_NONE, NULL, 0,
20367         "gsm_map_ch.SuppressionOfAnnouncement", HFILL }},
20368     { &hf_gsm_map_ch_alertingPattern,
20369       { "alertingPattern", "gsm_map.ch.alertingPattern",
20370         FT_BYTES, BASE_HEX, NULL, 0,
20371         "gsm_map.AlertingPattern", HFILL }},
20372     { &hf_gsm_map_ch_ccbs_Call,
20373       { "ccbs-Call", "gsm_map.ch.ccbs_Call",
20374         FT_NONE, BASE_NONE, NULL, 0,
20375         "gsm_map_ch.NULL", HFILL }},
20376     { &hf_gsm_map_ch_supportedCCBS_Phase,
20377       { "supportedCCBS-Phase", "gsm_map.ch.supportedCCBS_Phase",
20378         FT_UINT32, BASE_DEC, NULL, 0,
20379         "gsm_map_ch.SupportedCCBS_Phase", HFILL }},
20380     { &hf_gsm_map_ch_additionalSignalInfo,
20381       { "additionalSignalInfo", "gsm_map.ch.additionalSignalInfo",
20382         FT_NONE, BASE_NONE, NULL, 0,
20383         "gsm_map.Ext_ExternalSignalInfo", HFILL }},
20384     { &hf_gsm_map_ch_istSupportIndicator,
20385       { "istSupportIndicator", "gsm_map.ch.istSupportIndicator",
20386         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
20387         "gsm_map_ms.IST_SupportIndicator", HFILL }},
20388     { &hf_gsm_map_ch_pre_pagingSupported,
20389       { "pre-pagingSupported", "gsm_map.ch.pre_pagingSupported",
20390         FT_NONE, BASE_NONE, NULL, 0,
20391         "gsm_map_ch.NULL", HFILL }},
20392     { &hf_gsm_map_ch_callDiversionTreatmentIndicator,
20393       { "callDiversionTreatmentIndicator", "gsm_map.ch.callDiversionTreatmentIndicator",
20394         FT_BYTES, BASE_HEX, NULL, 0,
20395         "gsm_map_ch.CallDiversionTreatmentIndicator", HFILL }},
20396     { &hf_gsm_map_ch_longFTN_Supported,
20397       { "longFTN-Supported", "gsm_map.ch.longFTN_Supported",
20398         FT_NONE, BASE_NONE, NULL, 0,
20399         "gsm_map_ch.NULL", HFILL }},
20400     { &hf_gsm_map_ch_suppress_VT_CSI,
20401       { "suppress-VT-CSI", "gsm_map.ch.suppress_VT_CSI",
20402         FT_NONE, BASE_NONE, NULL, 0,
20403         "gsm_map_ch.NULL", HFILL }},
20404     { &hf_gsm_map_ch_suppressIncomingCallBarring,
20405       { "suppressIncomingCallBarring", "gsm_map.ch.suppressIncomingCallBarring",
20406         FT_NONE, BASE_NONE, NULL, 0,
20407         "gsm_map_ch.NULL", HFILL }},
20408     { &hf_gsm_map_ch_gsmSCF_InitiatedCall,
20409       { "gsmSCF-InitiatedCall", "gsm_map.ch.gsmSCF_InitiatedCall",
20410         FT_NONE, BASE_NONE, NULL, 0,
20411         "gsm_map_ch.NULL", HFILL }},
20412     { &hf_gsm_map_ch_basicServiceGroup2,
20413       { "basicServiceGroup2", "gsm_map.ch.basicServiceGroup2",
20414         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20415         "gsm_map.Ext_BasicServiceCode", HFILL }},
20416     { &hf_gsm_map_ch_networkSignalInfo2,
20417       { "networkSignalInfo2", "gsm_map.ch.networkSignalInfo2",
20418         FT_NONE, BASE_NONE, NULL, 0,
20419         "gsm_map.ExternalSignalInfo", HFILL }},
20420     { &hf_gsm_map_ch_suppressMTSS,
20421       { "suppressMTSS", "gsm_map.ch.suppressMTSS",
20422         FT_BYTES, BASE_HEX, NULL, 0,
20423         "gsm_map_ch.SuppressMTSS", HFILL }},
20424     { &hf_gsm_map_ch_imsi,
20425       { "imsi", "gsm_map.ch.imsi",
20426         FT_BYTES, BASE_HEX, NULL, 0,
20427         "gsm_map.IMSI", HFILL }},
20428     { &hf_gsm_map_ch_extendedRoutingInfo,
20429       { "extendedRoutingInfo", "gsm_map.ch.extendedRoutingInfo",
20430         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ExtendedRoutingInfo_vals), 0,
20431         "gsm_map_ch.ExtendedRoutingInfo", HFILL }},
20432     { &hf_gsm_map_ch_cugSubscriptionFlag,
20433       { "cugSubscriptionFlag", "gsm_map.ch.cugSubscriptionFlag",
20434         FT_NONE, BASE_NONE, NULL, 0,
20435         "gsm_map_ch.NULL", HFILL }},
20436     { &hf_gsm_map_ch_subscriberInfo,
20437       { "subscriberInfo", "gsm_map.ch.subscriberInfo",
20438         FT_NONE, BASE_NONE, NULL, 0,
20439         "gsm_map_ms.SubscriberInfo", HFILL }},
20440     { &hf_gsm_map_ch_ss_List,
20441       { "ss-List", "gsm_map.ch.ss_List",
20442         FT_UINT32, BASE_DEC, NULL, 0,
20443         "gsm_map_ss.SS_List", HFILL }},
20444     { &hf_gsm_map_ch_basicService,
20445       { "basicService", "gsm_map.ch.basicService",
20446         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20447         "gsm_map.Ext_BasicServiceCode", HFILL }},
20448     { &hf_gsm_map_ch_forwardingInterrogationRequired,
20449       { "forwardingInterrogationRequired", "gsm_map.ch.forwardingInterrogationRequired",
20450         FT_NONE, BASE_NONE, NULL, 0,
20451         "gsm_map_ch.NULL", HFILL }},
20452     { &hf_gsm_map_ch_vmsc_Address,
20453       { "vmsc-Address", "gsm_map.ch.vmsc_Address",
20454         FT_BYTES, BASE_HEX, NULL, 0,
20455         "gsm_map.ISDN_AddressString", HFILL }},
20456     { &hf_gsm_map_ch_naea_PreferredCI,
20457       { "naea-PreferredCI", "gsm_map.ch.naea_PreferredCI",
20458         FT_NONE, BASE_NONE, NULL, 0,
20459         "gsm_map.NAEA_PreferredCI", HFILL }},
20460     { &hf_gsm_map_ch_ccbs_Indicators,
20461       { "ccbs-Indicators", "gsm_map.ch.ccbs_Indicators",
20462         FT_NONE, BASE_NONE, NULL, 0,
20463         "gsm_map_ch.CCBS_Indicators", HFILL }},
20464     { &hf_gsm_map_ch_numberPortabilityStatus,
20465       { "numberPortabilityStatus", "gsm_map.ch.numberPortabilityStatus",
20466         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
20467         "gsm_map_ms.NumberPortabilityStatus", HFILL }},
20468     { &hf_gsm_map_ch_istAlertTimer,
20469       { "istAlertTimer", "gsm_map.ch.istAlertTimer",
20470         FT_UINT32, BASE_DEC, NULL, 0,
20471         "gsm_map_ms.IST_AlertTimerValue", HFILL }},
20472     { &hf_gsm_map_ch_supportedCamelPhasesInVMSC,
20473       { "supportedCamelPhasesInVMSC", "gsm_map.ch.supportedCamelPhasesInVMSC",
20474         FT_BYTES, BASE_HEX, NULL, 0,
20475         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20476     { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC,
20477       { "offeredCamel4CSIsInVMSC", "gsm_map.ch.offeredCamel4CSIsInVMSC",
20478         FT_BYTES, BASE_HEX, NULL, 0,
20479         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20480     { &hf_gsm_map_ch_routingInfo2,
20481       { "routingInfo2", "gsm_map.ch.routingInfo2",
20482         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
20483         "gsm_map_ch.RoutingInfo", HFILL }},
20484     { &hf_gsm_map_ch_ss_List2,
20485       { "ss-List2", "gsm_map.ch.ss_List2",
20486         FT_UINT32, BASE_DEC, NULL, 0,
20487         "gsm_map_ss.SS_List", HFILL }},
20488     { &hf_gsm_map_ch_basicService2,
20489       { "basicService2", "gsm_map.ch.basicService2",
20490         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20491         "gsm_map.Ext_BasicServiceCode", HFILL }},
20492     { &hf_gsm_map_ch_allowedServices,
20493       { "allowedServices", "gsm_map.ch.allowedServices",
20494         FT_BYTES, BASE_HEX, NULL, 0,
20495         "gsm_map_ch.AllowedServices", HFILL }},
20496     { &hf_gsm_map_ch_unavailabilityCause,
20497       { "unavailabilityCause", "gsm_map.ch.unavailabilityCause",
20498         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_UnavailabilityCause_vals), 0,
20499         "gsm_map_ch.UnavailabilityCause", HFILL }},
20500     { &hf_gsm_map_ch_releaseResourcesSupported,
20501       { "releaseResourcesSupported", "gsm_map.ch.releaseResourcesSupported",
20502         FT_NONE, BASE_NONE, NULL, 0,
20503         "gsm_map_ch.NULL", HFILL }},
20504     { &hf_gsm_map_ch_gsm_BearerCapability,
20505       { "gsm-BearerCapability", "gsm_map.ch.gsm_BearerCapability",
20506         FT_NONE, BASE_NONE, NULL, 0,
20507         "gsm_map.ExternalSignalInfo", HFILL }},
20508     { &hf_gsm_map_ch_ccbs_Possible,
20509       { "ccbs-Possible", "gsm_map.ch.ccbs_Possible",
20510         FT_NONE, BASE_NONE, NULL, 0,
20511         "gsm_map_ch.NULL", HFILL }},
20512     { &hf_gsm_map_ch_keepCCBS_CallIndicator,
20513       { "keepCCBS-CallIndicator", "gsm_map.ch.keepCCBS_CallIndicator",
20514         FT_NONE, BASE_NONE, NULL, 0,
20515         "gsm_map_ch.NULL", HFILL }},
20516     { &hf_gsm_map_ch_roamingNumber,
20517       { "roamingNumber", "gsm_map.ch.roamingNumber",
20518         FT_BYTES, BASE_HEX, NULL, 0,
20519         "gsm_map.ISDN_AddressString", HFILL }},
20520     { &hf_gsm_map_ch_forwardingData,
20521       { "forwardingData", "gsm_map.ch.forwardingData",
20522         FT_NONE, BASE_NONE, NULL, 0,
20523         "gsm_map_ch.ForwardingData", HFILL }},
20524     { &hf_gsm_map_ch_forwardedToNumber,
20525       { "forwardedToNumber", "gsm_map.ch.forwardedToNumber",
20526         FT_BYTES, BASE_HEX, NULL, 0,
20527         "gsm_map.ISDN_AddressString", HFILL }},
20528     { &hf_gsm_map_ch_forwardedToSubaddress,
20529       { "forwardedToSubaddress", "gsm_map.ch.forwardedToSubaddress",
20530         FT_BYTES, BASE_HEX, NULL, 0,
20531         "gsm_map.ISDN_SubaddressString", HFILL }},
20532     { &hf_gsm_map_ch_forwardingOptions,
20533       { "forwardingOptions", "gsm_map.ch.forwardingOptions",
20534         FT_BYTES, BASE_HEX, NULL, 0,
20535         "gsm_map_ss.ForwardingOptions", HFILL }},
20536     { &hf_gsm_map_ch_longForwardedToNumber,
20537       { "longForwardedToNumber", "gsm_map.ch.longForwardedToNumber",
20538         FT_BYTES, BASE_HEX, NULL, 0,
20539         "gsm_map.FTN_AddressString", HFILL }},
20540     { &hf_gsm_map_ch_msc_Number,
20541       { "msc-Number", "gsm_map.ch.msc_Number",
20542         FT_BYTES, BASE_HEX, NULL, 0,
20543         "gsm_map.ISDN_AddressString", HFILL }},
20544     { &hf_gsm_map_ch_lmsi,
20545       { "lmsi", "gsm_map.ch.lmsi",
20546         FT_BYTES, BASE_HEX, NULL, 0,
20547         "gsm_map.LMSI", HFILL }},
20548     { &hf_gsm_map_ch_gmsc_Address,
20549       { "gmsc-Address", "gsm_map.ch.gmsc_Address",
20550         FT_BYTES, BASE_HEX, NULL, 0,
20551         "gsm_map.ISDN_AddressString", HFILL }},
20552     { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode,
20553       { "supportedCamelPhasesInInterrogatingNode", "gsm_map.ch.supportedCamelPhasesInInterrogatingNode",
20554         FT_BYTES, BASE_HEX, NULL, 0,
20555         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20556     { &hf_gsm_map_ch_orNotSupportedInGMSC,
20557       { "orNotSupportedInGMSC", "gsm_map.ch.orNotSupportedInGMSC",
20558         FT_NONE, BASE_NONE, NULL, 0,
20559         "gsm_map_ch.NULL", HFILL }},
20560     { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode,
20561       { "offeredCamel4CSIsInInterrogatingNode", "gsm_map.ch.offeredCamel4CSIsInInterrogatingNode",
20562         FT_BYTES, BASE_HEX, NULL, 0,
20563         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20564     { &hf_gsm_map_ch_o_CSI,
20565       { "o-CSI", "gsm_map.ch.o_CSI",
20566         FT_NONE, BASE_NONE, NULL, 0,
20567         "gsm_map_ms.O_CSI", HFILL }},
20568     { &hf_gsm_map_ch_uu_Data,
20569       { "uu-Data", "gsm_map.ch.uu_Data",
20570         FT_NONE, BASE_NONE, NULL, 0,
20571         "gsm_map_ch.UU_Data", HFILL }},
20572     { &hf_gsm_map_ch_allInformationSent,
20573       { "allInformationSent", "gsm_map.ch.allInformationSent",
20574         FT_NONE, BASE_NONE, NULL, 0,
20575         "gsm_map_ch.NULL", HFILL }},
20576     { &hf_gsm_map_ch_d_csi,
20577       { "d-csi", "gsm_map.ch.d_csi",
20578         FT_NONE, BASE_NONE, NULL, 0,
20579         "gsm_map_ms.D_CSI", HFILL }},
20580     { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList,
20581       { "o-BcsmCamelTDPCriteriaList", "gsm_map.ch.o_BcsmCamelTDPCriteriaList",
20582         FT_UINT32, BASE_DEC, NULL, 0,
20583         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
20584     { &hf_gsm_map_ch_uuIndicator,
20585       { "uuIndicator", "gsm_map.ch.uuIndicator",
20586         FT_BYTES, BASE_HEX, NULL, 0,
20587         "gsm_map_ch.UUIndicator", HFILL }},
20588     { &hf_gsm_map_ch_uui,
20589       { "uui", "gsm_map.ch.uui",
20590         FT_BYTES, BASE_HEX, NULL, 0,
20591         "gsm_map_ch.UUI", HFILL }},
20592     { &hf_gsm_map_ch_uusCFInteraction,
20593       { "uusCFInteraction", "gsm_map.ch.uusCFInteraction",
20594         FT_NONE, BASE_NONE, NULL, 0,
20595         "gsm_map_ch.NULL", HFILL }},
20596     { &hf_gsm_map_ch_supportedCamelPhases,
20597       { "supportedCamelPhases", "gsm_map.ch.supportedCamelPhases",
20598         FT_BYTES, BASE_HEX, NULL, 0,
20599         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20600     { &hf_gsm_map_ch_suppress_T_CSI,
20601       { "suppress-T-CSI", "gsm_map.ch.suppress_T_CSI",
20602         FT_NONE, BASE_NONE, NULL, 0,
20603         "gsm_map_ch.NULL", HFILL }},
20604     { &hf_gsm_map_ch_offeredCamel4CSIs,
20605       { "offeredCamel4CSIs", "gsm_map.ch.offeredCamel4CSIs",
20606         FT_BYTES, BASE_HEX, NULL, 0,
20607         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20608     { &hf_gsm_map_ch_routingInfo,
20609       { "routingInfo", "gsm_map.ch.routingInfo",
20610         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
20611         "gsm_map_ch.RoutingInfo", HFILL }},
20612     { &hf_gsm_map_ch_camelRoutingInfo,
20613       { "camelRoutingInfo", "gsm_map.ch.camelRoutingInfo",
20614         FT_NONE, BASE_NONE, NULL, 0,
20615         "gsm_map_ch.CamelRoutingInfo", HFILL }},
20616     { &hf_gsm_map_ch_gmscCamelSubscriptionInfo,
20617       { "gmscCamelSubscriptionInfo", "gsm_map.ch.gmscCamelSubscriptionInfo",
20618         FT_NONE, BASE_NONE, NULL, 0,
20619         "gsm_map_ch.GmscCamelSubscriptionInfo", HFILL }},
20620     { &hf_gsm_map_ch_t_CSI,
20621       { "t-CSI", "gsm_map.ch.t_CSI",
20622         FT_NONE, BASE_NONE, NULL, 0,
20623         "gsm_map_ms.T_CSI", HFILL }},
20624     { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList,
20625       { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ch.o_BcsmCamelTDP_CriteriaList",
20626         FT_UINT32, BASE_DEC, NULL, 0,
20627         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
20628     { &hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList,
20629       { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ch.t_BCSM_CAMEL_TDP_CriteriaList",
20630         FT_UINT32, BASE_DEC, NULL, 0,
20631         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
20632     { &hf_gsm_map_ch_ccbs_Monitoring,
20633       { "ccbs-Monitoring", "gsm_map.ch.ccbs_Monitoring",
20634         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ReportingState_vals), 0,
20635         "gsm_map_ch.ReportingState", HFILL }},
20636     { &hf_gsm_map_ch_ccbs_SubscriberStatus,
20637       { "ccbs-SubscriberStatus", "gsm_map.ch.ccbs_SubscriberStatus",
20638         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CCBS_SubscriberStatus_vals), 0,
20639         "gsm_map_ch.CCBS_SubscriberStatus", HFILL }},
20640     { &hf_gsm_map_ch_eventReportData,
20641       { "eventReportData", "gsm_map.ch.eventReportData",
20642         FT_NONE, BASE_NONE, NULL, 0,
20643         "gsm_map_ch.EventReportData", HFILL }},
20644     { &hf_gsm_map_ch_callReportdata,
20645       { "callReportdata", "gsm_map.ch.callReportdata",
20646         FT_NONE, BASE_NONE, NULL, 0,
20647         "gsm_map_ch.CallReportData", HFILL }},
20648     { &hf_gsm_map_ch_monitoringMode,
20649       { "monitoringMode", "gsm_map.ch.monitoringMode",
20650         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_MonitoringMode_vals), 0,
20651         "gsm_map_ch.MonitoringMode", HFILL }},
20652     { &hf_gsm_map_ch_callOutcome,
20653       { "callOutcome", "gsm_map.ch.callOutcome",
20654         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallOutcome_vals), 0,
20655         "gsm_map_ch.CallOutcome", HFILL }},
20656     { &hf_gsm_map_ch_callInfo,
20657       { "callInfo", "gsm_map.ch.callInfo",
20658         FT_NONE, BASE_NONE, NULL, 0,
20659         "gsm_map.ExternalSignalInfo", HFILL }},
20660     { &hf_gsm_map_ch_ccbs_Feature,
20661       { "ccbs-Feature", "gsm_map.ch.ccbs_Feature",
20662         FT_NONE, BASE_NONE, NULL, 0,
20663         "gsm_map_ss.CCBS_Feature", HFILL }},
20664     { &hf_gsm_map_ch_translatedB_Number,
20665       { "translatedB-Number", "gsm_map.ch.translatedB_Number",
20666         FT_BYTES, BASE_HEX, NULL, 0,
20667         "gsm_map.ISDN_AddressString", HFILL }},
20668     { &hf_gsm_map_ch_replaceB_Number,
20669       { "replaceB-Number", "gsm_map.ch.replaceB_Number",
20670         FT_NONE, BASE_NONE, NULL, 0,
20671         "gsm_map_ch.NULL", HFILL }},
20672     { &hf_gsm_map_ch_ruf_Outcome,
20673       { "ruf-Outcome", "gsm_map.ch.ruf_Outcome",
20674         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RUF_Outcome_vals), 0,
20675         "gsm_map_ch.RUF_Outcome", HFILL }},
20676     { &hf_gsm_map_ch_istInformationWithdraw,
20677       { "istInformationWithdraw", "gsm_map.ch.istInformationWithdraw",
20678         FT_NONE, BASE_NONE, NULL, 0,
20679         "gsm_map_ch.NULL", HFILL }},
20680     { &hf_gsm_map_ch_callTerminationIndicator,
20681       { "callTerminationIndicator", "gsm_map.ch.callTerminationIndicator",
20682         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallTerminationIndicator_vals), 0,
20683         "gsm_map_ch.CallTerminationIndicator", HFILL }},
20684     { &hf_gsm_map_ch_msrn,
20685       { "msrn", "gsm_map.ch.msrn",
20686         FT_BYTES, BASE_HEX, NULL, 0,
20687         "gsm_map.ISDN_AddressString", HFILL }},
20688     { &hf_gsm_map_ch_SuppressMTSS_suppressCUG,
20689       { "suppressCUG", "gsm_map.ch.suppressCUG",
20690         FT_BOOLEAN, 8, NULL, 0x80,
20691         "", HFILL }},
20692     { &hf_gsm_map_ch_SuppressMTSS_suppressCCBS,
20693       { "suppressCCBS", "gsm_map.ch.suppressCCBS",
20694         FT_BOOLEAN, 8, NULL, 0x40,
20695         "", HFILL }},
20696     { &hf_gsm_map_ch_AllowedServices_firstServiceAllowed,
20697       { "firstServiceAllowed", "gsm_map.ch.firstServiceAllowed",
20698         FT_BOOLEAN, 8, NULL, 0x80,
20699         "", HFILL }},
20700     { &hf_gsm_map_ch_AllowedServices_secondServiceAllowed,
20701       { "secondServiceAllowed", "gsm_map.ch.secondServiceAllowed",
20702         FT_BOOLEAN, 8, NULL, 0x40,
20703         "", HFILL }},
20704
20705 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
20706
20707     { &hf_gsm_map_lcs_mlcNumber,
20708       { "mlcNumber", "gsm_map.lcs.mlcNumber",
20709         FT_BYTES, BASE_HEX, NULL, 0,
20710         "gsm_map.ISDN_AddressString", HFILL }},
20711     { &hf_gsm_map_lcs_targetMS,
20712       { "targetMS", "gsm_map.lcs.targetMS",
20713         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
20714         "gsm_map.SubscriberIdentity", HFILL }},
20715     { &hf_gsm_map_lcs_extensionContainer,
20716       { "extensionContainer", "gsm_map.lcs.extensionContainer",
20717         FT_NONE, BASE_NONE, NULL, 0,
20718         "gsm_map.ExtensionContainer", HFILL }},
20719     { &hf_gsm_map_lcs_lcsLocationInfo,
20720       { "lcsLocationInfo", "gsm_map.lcs.lcsLocationInfo",
20721         FT_NONE, BASE_NONE, NULL, 0,
20722         "gsm_map_lcs.LCSLocationInfo", HFILL }},
20723     { &hf_gsm_map_lcs_v_gmlc_Address,
20724       { "v-gmlc-Address", "gsm_map.lcs.v_gmlc_Address",
20725         FT_BYTES, BASE_HEX, NULL, 0,
20726         "gsm_map_ms.GSN_Address", HFILL }},
20727     { &hf_gsm_map_lcs_h_gmlc_Address,
20728       { "h-gmlc-Address", "gsm_map.lcs.h_gmlc_Address",
20729         FT_BYTES, BASE_HEX, NULL, 0,
20730         "gsm_map_ms.GSN_Address", HFILL }},
20731     { &hf_gsm_map_lcs_ppr_Address,
20732       { "ppr-Address", "gsm_map.lcs.ppr_Address",
20733         FT_BYTES, BASE_HEX, NULL, 0,
20734         "gsm_map_ms.GSN_Address", HFILL }},
20735     { &hf_gsm_map_lcs_additional_v_gmlc_Address,
20736       { "additional-v-gmlc-Address", "gsm_map.lcs.additional_v_gmlc_Address",
20737         FT_BYTES, BASE_HEX, NULL, 0,
20738         "gsm_map_ms.GSN_Address", HFILL }},
20739     { &hf_gsm_map_lcs_networkNode_Number,
20740       { "networkNode-Number", "gsm_map.lcs.networkNode_Number",
20741         FT_BYTES, BASE_HEX, NULL, 0,
20742         "gsm_map.ISDN_AddressString", HFILL }},
20743     { &hf_gsm_map_lcs_lmsi,
20744       { "lmsi", "gsm_map.lcs.lmsi",
20745         FT_BYTES, BASE_HEX, NULL, 0,
20746         "gsm_map.LMSI", HFILL }},
20747     { &hf_gsm_map_lcs_gprsNodeIndicator,
20748       { "gprsNodeIndicator", "gsm_map.lcs.gprsNodeIndicator",
20749         FT_NONE, BASE_NONE, NULL, 0,
20750         "gsm_map_lcs.NULL", HFILL }},
20751     { &hf_gsm_map_lcs_additional_Number,
20752       { "additional-Number", "gsm_map.lcs.additional_Number",
20753         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
20754         "gsm_map_sm.Additional_Number", HFILL }},
20755     { &hf_gsm_map_lcs_supportedLCS_CapabilitySets,
20756       { "supportedLCS-CapabilitySets", "gsm_map.lcs.supportedLCS_CapabilitySets",
20757         FT_BYTES, BASE_HEX, NULL, 0,
20758         "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }},
20759     { &hf_gsm_map_lcs_additional_LCS_CapabilitySets,
20760       { "additional-LCS-CapabilitySets", "gsm_map.lcs.additional_LCS_CapabilitySets",
20761         FT_BYTES, BASE_HEX, NULL, 0,
20762         "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }},
20763     { &hf_gsm_map_lcs_locationType,
20764       { "locationType", "gsm_map.lcs.locationType",
20765         FT_NONE, BASE_NONE, NULL, 0,
20766         "gsm_map_lcs.LocationType", HFILL }},
20767     { &hf_gsm_map_lcs_mlc_Number,
20768       { "mlc-Number", "gsm_map.lcs.mlc_Number",
20769         FT_BYTES, BASE_HEX, NULL, 0,
20770         "gsm_map.ISDN_AddressString", HFILL }},
20771     { &hf_gsm_map_lcs_lcs_ClientID,
20772       { "lcs-ClientID", "gsm_map.lcs.lcs_ClientID",
20773         FT_NONE, BASE_NONE, NULL, 0,
20774         "gsm_map_lcs.LCS_ClientID", HFILL }},
20775     { &hf_gsm_map_lcs_privacyOverride,
20776       { "privacyOverride", "gsm_map.lcs.privacyOverride",
20777         FT_NONE, BASE_NONE, NULL, 0,
20778         "gsm_map_lcs.NULL", HFILL }},
20779     { &hf_gsm_map_lcs_imsi,
20780       { "imsi", "gsm_map.lcs.imsi",
20781         FT_BYTES, BASE_HEX, NULL, 0,
20782         "gsm_map.IMSI", HFILL }},
20783     { &hf_gsm_map_lcs_msisdn,
20784       { "msisdn", "gsm_map.lcs.msisdn",
20785         FT_BYTES, BASE_HEX, NULL, 0,
20786         "gsm_map.ISDN_AddressString", HFILL }},
20787     { &hf_gsm_map_lcs_imei,
20788       { "imei", "gsm_map.lcs.imei",
20789         FT_BYTES, BASE_HEX, NULL, 0,
20790         "gsm_map.IMEI", HFILL }},
20791     { &hf_gsm_map_lcs_lcs_Priority,
20792       { "lcs-Priority", "gsm_map.lcs.lcs_Priority",
20793         FT_BYTES, BASE_HEX, NULL, 0,
20794         "gsm_map_lcs.LCS_Priority", HFILL }},
20795     { &hf_gsm_map_lcs_lcs_QoS,
20796       { "lcs-QoS", "gsm_map.lcs.lcs_QoS",
20797         FT_NONE, BASE_NONE, NULL, 0,
20798         "gsm_map_lcs.LCS_QoS", HFILL }},
20799     { &hf_gsm_map_lcs_supportedGADShapes,
20800       { "supportedGADShapes", "gsm_map.lcs.supportedGADShapes",
20801         FT_BYTES, BASE_HEX, NULL, 0,
20802         "gsm_map_lcs.SupportedGADShapes", HFILL }},
20803     { &hf_gsm_map_lcs_lcs_ReferenceNumber,
20804       { "lcs-ReferenceNumber", "gsm_map.lcs.lcs_ReferenceNumber",
20805         FT_BYTES, BASE_HEX, NULL, 0,
20806         "gsm_map_lcs.LCS_ReferenceNumber", HFILL }},
20807     { &hf_gsm_map_lcs_lcsServiceTypeID,
20808       { "lcsServiceTypeID", "gsm_map.lcs.lcsServiceTypeID",
20809         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
20810         "gsm_map.LCSServiceTypeID", HFILL }},
20811     { &hf_gsm_map_lcs_lcsCodeword,
20812       { "lcsCodeword", "gsm_map.lcs.lcsCodeword",
20813         FT_NONE, BASE_NONE, NULL, 0,
20814         "gsm_map_lcs.LCSCodeword", HFILL }},
20815     { &hf_gsm_map_lcs_lcs_PrivacyCheck,
20816       { "lcs-PrivacyCheck", "gsm_map.lcs.lcs_PrivacyCheck",
20817         FT_NONE, BASE_NONE, NULL, 0,
20818         "gsm_map_lcs.LCS_PrivacyCheck", HFILL }},
20819     { &hf_gsm_map_lcs_areaEventInfo,
20820       { "areaEventInfo", "gsm_map.lcs.areaEventInfo",
20821         FT_NONE, BASE_NONE, NULL, 0,
20822         "gsm_map_lcs.AreaEventInfo", HFILL }},
20823     { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator,
20824       { "mo-lrShortCircuitIndicator", "gsm_map.lcs.mo_lrShortCircuitIndicator",
20825         FT_NONE, BASE_NONE, NULL, 0,
20826         "gsm_map_lcs.NULL", HFILL }},
20827     { &hf_gsm_map_lcs_periodicLDRInfo,
20828       { "periodicLDRInfo", "gsm_map.lcs.periodicLDRInfo",
20829         FT_NONE, BASE_NONE, NULL, 0,
20830         "gsm_map_lcs.PeriodicLDRInfo", HFILL }},
20831     { &hf_gsm_map_lcs_reportingPLMNList,
20832       { "reportingPLMNList", "gsm_map.lcs.reportingPLMNList",
20833         FT_NONE, BASE_NONE, NULL, 0,
20834         "gsm_map_lcs.ReportingPLMNList", HFILL }},
20835     { &hf_gsm_map_lcs_locationEstimateType,
20836       { "locationEstimateType", "gsm_map.lcs.locationEstimateType",
20837         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LocationEstimateType_vals), 0,
20838         "gsm_map_lcs.LocationEstimateType", HFILL }},
20839     { &hf_gsm_map_lcs_deferredLocationEventType,
20840       { "deferredLocationEventType", "gsm_map.lcs.deferredLocationEventType",
20841         FT_BYTES, BASE_HEX, NULL, 0,
20842         "gsm_map_lcs.DeferredLocationEventType", HFILL }},
20843     { &hf_gsm_map_lcs_lcsClientType,
20844       { "lcsClientType", "gsm_map.lcs.lcsClientType",
20845         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCSClientType_vals), 0,
20846         "gsm_map_lcs.LCSClientType", HFILL }},
20847     { &hf_gsm_map_lcs_lcsClientExternalID,
20848       { "lcsClientExternalID", "gsm_map.lcs.lcsClientExternalID",
20849         FT_NONE, BASE_NONE, NULL, 0,
20850         "gsm_map.LCSClientExternalID", HFILL }},
20851     { &hf_gsm_map_lcs_lcsClientDialedByMS,
20852       { "lcsClientDialedByMS", "gsm_map.lcs.lcsClientDialedByMS",
20853         FT_BYTES, BASE_HEX, NULL, 0,
20854         "gsm_map.AddressString", HFILL }},
20855     { &hf_gsm_map_lcs_lcsClientInternalID,
20856       { "lcsClientInternalID", "gsm_map.lcs.lcsClientInternalID",
20857         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
20858         "gsm_map.LCSClientInternalID", HFILL }},
20859     { &hf_gsm_map_lcs_lcsClientName,
20860       { "lcsClientName", "gsm_map.lcs.lcsClientName",
20861         FT_NONE, BASE_NONE, NULL, 0,
20862         "gsm_map_lcs.LCSClientName", HFILL }},
20863     { &hf_gsm_map_lcs_lcsAPN,
20864       { "lcsAPN", "gsm_map.lcs.lcsAPN",
20865         FT_BYTES, BASE_HEX, NULL, 0,
20866         "gsm_map_ms.APN", HFILL }},
20867     { &hf_gsm_map_lcs_lcsRequestorID,
20868       { "lcsRequestorID", "gsm_map.lcs.lcsRequestorID",
20869         FT_NONE, BASE_NONE, NULL, 0,
20870         "gsm_map_lcs.LCSRequestorID", HFILL }},
20871     { &hf_gsm_map_lcs_dataCodingScheme,
20872       { "dataCodingScheme", "gsm_map.lcs.dataCodingScheme",
20873         FT_BYTES, BASE_HEX, NULL, 0,
20874         "gsm_map_ss.USSD_DataCodingScheme", HFILL }},
20875     { &hf_gsm_map_lcs_nameString,
20876       { "nameString", "gsm_map.lcs.nameString",
20877         FT_BYTES, BASE_HEX, NULL, 0,
20878         "gsm_map_lcs.NameString", HFILL }},
20879     { &hf_gsm_map_lcs_lcs_FormatIndicator,
20880       { "lcs-FormatIndicator", "gsm_map.lcs.lcs_FormatIndicator",
20881         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_FormatIndicator_vals), 0,
20882         "gsm_map_lcs.LCS_FormatIndicator", HFILL }},
20883     { &hf_gsm_map_lcs_requestorIDString,
20884       { "requestorIDString", "gsm_map.lcs.requestorIDString",
20885         FT_BYTES, BASE_HEX, NULL, 0,
20886         "gsm_map_lcs.RequestorIDString", HFILL }},
20887     { &hf_gsm_map_lcs_horizontal_accuracy,
20888       { "horizontal-accuracy", "gsm_map.lcs.horizontal_accuracy",
20889         FT_BYTES, BASE_HEX, NULL, 0,
20890         "gsm_map_lcs.Horizontal_Accuracy", HFILL }},
20891     { &hf_gsm_map_lcs_verticalCoordinateRequest,
20892       { "verticalCoordinateRequest", "gsm_map.lcs.verticalCoordinateRequest",
20893         FT_NONE, BASE_NONE, NULL, 0,
20894         "gsm_map_lcs.NULL", HFILL }},
20895     { &hf_gsm_map_lcs_vertical_accuracy,
20896       { "vertical-accuracy", "gsm_map.lcs.vertical_accuracy",
20897         FT_BYTES, BASE_HEX, NULL, 0,
20898         "gsm_map_lcs.Vertical_Accuracy", HFILL }},
20899     { &hf_gsm_map_lcs_responseTime,
20900       { "responseTime", "gsm_map.lcs.responseTime",
20901         FT_NONE, BASE_NONE, NULL, 0,
20902         "gsm_map_lcs.ResponseTime", HFILL }},
20903     { &hf_gsm_map_lcs_velocityRequest,
20904       { "velocityRequest", "gsm_map.lcs.velocityRequest",
20905         FT_NONE, BASE_NONE, NULL, 0,
20906         "gsm_map_lcs.NULL", HFILL }},
20907     { &hf_gsm_map_lcs_responseTimeCategory,
20908       { "responseTimeCategory", "gsm_map.lcs.responseTimeCategory",
20909         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_ResponseTimeCategory_vals), 0,
20910         "gsm_map_lcs.ResponseTimeCategory", HFILL }},
20911     { &hf_gsm_map_lcs_lcsCodewordString,
20912       { "lcsCodewordString", "gsm_map.lcs.lcsCodewordString",
20913         FT_BYTES, BASE_HEX, NULL, 0,
20914         "gsm_map_lcs.LCSCodewordString", HFILL }},
20915     { &hf_gsm_map_lcs_callSessionUnrelated,
20916       { "callSessionUnrelated", "gsm_map.lcs.callSessionUnrelated",
20917         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
20918         "gsm_map_lcs.PrivacyCheckRelatedAction", HFILL }},
20919     { &hf_gsm_map_lcs_callSessionRelated,
20920       { "callSessionRelated", "gsm_map.lcs.callSessionRelated",
20921         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
20922         "gsm_map_lcs.PrivacyCheckRelatedAction", HFILL }},
20923     { &hf_gsm_map_lcs_areaDefinition,
20924       { "areaDefinition", "gsm_map.lcs.areaDefinition",
20925         FT_NONE, BASE_NONE, NULL, 0,
20926         "gsm_map_lcs.AreaDefinition", HFILL }},
20927     { &hf_gsm_map_lcs_occurrenceInfo,
20928       { "occurrenceInfo", "gsm_map.lcs.occurrenceInfo",
20929         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_OccurrenceInfo_vals), 0,
20930         "gsm_map_lcs.OccurrenceInfo", HFILL }},
20931     { &hf_gsm_map_lcs_intervalTime,
20932       { "intervalTime", "gsm_map.lcs.intervalTime",
20933         FT_UINT32, BASE_DEC, NULL, 0,
20934         "gsm_map_lcs.IntervalTime", HFILL }},
20935     { &hf_gsm_map_lcs_areaList,
20936       { "areaList", "gsm_map.lcs.areaList",
20937         FT_UINT32, BASE_DEC, NULL, 0,
20938         "gsm_map_lcs.AreaList", HFILL }},
20939     { &hf_gsm_map_lcs_AreaList_item,
20940       { "Item", "gsm_map.lcs.AreaList_item",
20941         FT_NONE, BASE_NONE, NULL, 0,
20942         "gsm_map_lcs.Area", HFILL }},
20943     { &hf_gsm_map_lcs_areaType,
20944       { "areaType", "gsm_map.lcs.areaType",
20945         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AreaType_vals), 0,
20946         "gsm_map_lcs.AreaType", HFILL }},
20947     { &hf_gsm_map_lcs_areaIdentification,
20948       { "areaIdentification", "gsm_map.lcs.areaIdentification",
20949         FT_BYTES, BASE_HEX, NULL, 0,
20950         "gsm_map_lcs.AreaIdentification", HFILL }},
20951     { &hf_gsm_map_lcs_reportingAmount,
20952       { "reportingAmount", "gsm_map.lcs.reportingAmount",
20953         FT_UINT32, BASE_DEC, NULL, 0,
20954         "gsm_map_lcs.ReportingAmount", HFILL }},
20955     { &hf_gsm_map_lcs_reportingInterval,
20956       { "reportingInterval", "gsm_map.lcs.reportingInterval",
20957         FT_UINT32, BASE_DEC, NULL, 0,
20958         "gsm_map_lcs.ReportingInterval", HFILL }},
20959     { &hf_gsm_map_lcs_plmn_ListPrioritized,
20960       { "plmn-ListPrioritized", "gsm_map.lcs.plmn_ListPrioritized",
20961         FT_NONE, BASE_NONE, NULL, 0,
20962         "gsm_map_lcs.NULL", HFILL }},
20963     { &hf_gsm_map_lcs_plmn_List,
20964       { "plmn-List", "gsm_map.lcs.plmn_List",
20965         FT_UINT32, BASE_DEC, NULL, 0,
20966         "gsm_map_lcs.PLMNList", HFILL }},
20967     { &hf_gsm_map_lcs_PLMNList_item,
20968       { "Item", "gsm_map.lcs.PLMNList_item",
20969         FT_NONE, BASE_NONE, NULL, 0,
20970         "gsm_map_lcs.ReportingPLMN", HFILL }},
20971     { &hf_gsm_map_lcs_plmn_Id,
20972       { "plmn-Id", "gsm_map.lcs.plmn_Id",
20973         FT_BYTES, BASE_HEX, NULL, 0,
20974         "gsm_map.PLMN_Id", HFILL }},
20975     { &hf_gsm_map_lcs_ran_Technology,
20976       { "ran-Technology", "gsm_map.lcs.ran_Technology",
20977         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_RAN_Technology_vals), 0,
20978         "gsm_map_lcs.RAN_Technology", HFILL }},
20979     { &hf_gsm_map_lcs_ran_PeriodicLocationSupport,
20980       { "ran-PeriodicLocationSupport", "gsm_map.lcs.ran_PeriodicLocationSupport",
20981         FT_NONE, BASE_NONE, NULL, 0,
20982         "gsm_map_lcs.NULL", HFILL }},
20983     { &hf_gsm_map_lcs_locationEstimate,
20984       { "locationEstimate", "gsm_map.lcs.locationEstimate",
20985         FT_BYTES, BASE_HEX, NULL, 0,
20986         "gsm_map_lcs.Ext_GeographicalInformation", HFILL }},
20987     { &hf_gsm_map_lcs_ageOfLocationEstimate,
20988       { "ageOfLocationEstimate", "gsm_map.lcs.ageOfLocationEstimate",
20989         FT_UINT32, BASE_DEC, NULL, 0,
20990         "gsm_map.AgeOfLocationInformation", HFILL }},
20991     { &hf_gsm_map_lcs_add_LocationEstimate,
20992       { "add-LocationEstimate", "gsm_map.lcs.add_LocationEstimate",
20993         FT_BYTES, BASE_HEX, NULL, 0,
20994         "gsm_map_lcs.Add_GeographicalInformation", HFILL }},
20995     { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator,
20996       { "deferredmt-lrResponseIndicator", "gsm_map.lcs.deferredmt_lrResponseIndicator",
20997         FT_NONE, BASE_NONE, NULL, 0,
20998         "gsm_map_lcs.NULL", HFILL }},
20999     { &hf_gsm_map_lcs_geranPositioningData,
21000       { "geranPositioningData", "gsm_map.lcs.geranPositioningData",
21001         FT_BYTES, BASE_HEX, NULL, 0,
21002         "gsm_map_lcs.PositioningDataInformation", HFILL }},
21003     { &hf_gsm_map_lcs_utranPositioningData,
21004       { "utranPositioningData", "gsm_map.lcs.utranPositioningData",
21005         FT_BYTES, BASE_HEX, NULL, 0,
21006         "gsm_map_lcs.UtranPositioningDataInfo", HFILL }},
21007     { &hf_gsm_map_lcs_cellIdOrSai,
21008       { "cellIdOrSai", "gsm_map.lcs.cellIdOrSai",
21009         FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
21010         "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
21011     { &hf_gsm_map_lcs_sai_Present,
21012       { "sai-Present", "gsm_map.lcs.sai_Present",
21013         FT_NONE, BASE_NONE, NULL, 0,
21014         "gsm_map_lcs.NULL", HFILL }},
21015     { &hf_gsm_map_lcs_accuracyFulfilmentIndicator,
21016       { "accuracyFulfilmentIndicator", "gsm_map.lcs.accuracyFulfilmentIndicator",
21017         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AccuracyFulfilmentIndicator_vals), 0,
21018         "gsm_map_lcs.AccuracyFulfilmentIndicator", HFILL }},
21019     { &hf_gsm_map_lcs_velocityEstimate,
21020       { "velocityEstimate", "gsm_map.lcs.velocityEstimate",
21021         FT_BYTES, BASE_HEX, NULL, 0,
21022         "gsm_map_lcs.VelocityEstimate", HFILL }},
21023     { &hf_gsm_map_lcs_lcs_Event,
21024       { "lcs-Event", "gsm_map.lcs.lcs_Event",
21025         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_Event_vals), 0,
21026         "gsm_map_lcs.LCS_Event", HFILL }},
21027     { &hf_gsm_map_lcs_na_ESRD,
21028       { "na-ESRD", "gsm_map.lcs.na_ESRD",
21029         FT_BYTES, BASE_HEX, NULL, 0,
21030         "gsm_map.ISDN_AddressString", HFILL }},
21031     { &hf_gsm_map_lcs_na_ESRK,
21032       { "na-ESRK", "gsm_map.lcs.na_ESRK",
21033         FT_BYTES, BASE_HEX, NULL, 0,
21034         "gsm_map.ISDN_AddressString", HFILL }},
21035     { &hf_gsm_map_lcs_slr_ArgExtensionContainer,
21036       { "slr-ArgExtensionContainer", "gsm_map.lcs.slr_ArgExtensionContainer",
21037         FT_NONE, BASE_NONE, NULL, 0,
21038         "gsm_map.SLR_ArgExtensionContainer", HFILL }},
21039     { &hf_gsm_map_lcs_deferredmt_lrData,
21040       { "deferredmt-lrData", "gsm_map.lcs.deferredmt_lrData",
21041         FT_NONE, BASE_NONE, NULL, 0,
21042         "gsm_map_lcs.Deferredmt_lrData", HFILL }},
21043     { &hf_gsm_map_lcs_pseudonymIndicator,
21044       { "pseudonymIndicator", "gsm_map.lcs.pseudonymIndicator",
21045         FT_NONE, BASE_NONE, NULL, 0,
21046         "gsm_map_lcs.NULL", HFILL }},
21047     { &hf_gsm_map_lcs_sequenceNumber,
21048       { "sequenceNumber", "gsm_map.lcs.sequenceNumber",
21049         FT_UINT32, BASE_DEC, NULL, 0,
21050         "gsm_map_lcs.SequenceNumber", HFILL }},
21051     { &hf_gsm_map_lcs_terminationCause,
21052       { "terminationCause", "gsm_map.lcs.terminationCause",
21053         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_TerminationCause_vals), 0,
21054         "gsm_map_lcs.TerminationCause", HFILL }},
21055     { &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable,
21056       { "msAvailable", "gsm_map.lcs.msAvailable",
21057         FT_BOOLEAN, 8, NULL, 0x80,
21058         "", HFILL }},
21059     { &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea,
21060       { "enteringIntoArea", "gsm_map.lcs.enteringIntoArea",
21061         FT_BOOLEAN, 8, NULL, 0x40,
21062         "", HFILL }},
21063     { &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea,
21064       { "leavingFromArea", "gsm_map.lcs.leavingFromArea",
21065         FT_BOOLEAN, 8, NULL, 0x20,
21066         "", HFILL }},
21067     { &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea,
21068       { "beingInsideArea", "gsm_map.lcs.beingInsideArea",
21069         FT_BOOLEAN, 8, NULL, 0x10,
21070         "", HFILL }},
21071     { &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR,
21072       { "periodicLDR", "gsm_map.lcs.periodicLDR",
21073         FT_BOOLEAN, 8, NULL, 0x08,
21074         "", HFILL }},
21075     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint,
21076       { "ellipsoidPoint", "gsm_map.lcs.ellipsoidPoint",
21077         FT_BOOLEAN, 8, NULL, 0x80,
21078         "", HFILL }},
21079     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle,
21080       { "ellipsoidPointWithUncertaintyCircle", "gsm_map.lcs.ellipsoidPointWithUncertaintyCircle",
21081         FT_BOOLEAN, 8, NULL, 0x40,
21082         "", HFILL }},
21083     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse,
21084       { "ellipsoidPointWithUncertaintyEllipse", "gsm_map.lcs.ellipsoidPointWithUncertaintyEllipse",
21085         FT_BOOLEAN, 8, NULL, 0x20,
21086         "", HFILL }},
21087     { &hf_gsm_map_lcs_SupportedGADShapes_polygon,
21088       { "polygon", "gsm_map.lcs.polygon",
21089         FT_BOOLEAN, 8, NULL, 0x10,
21090         "", HFILL }},
21091     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude,
21092       { "ellipsoidPointWithAltitude", "gsm_map.lcs.ellipsoidPointWithAltitude",
21093         FT_BOOLEAN, 8, NULL, 0x08,
21094         "", HFILL }},
21095     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid,
21096       { "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", "gsm_map.lcs.ellipsoidPointWithAltitudeAndUncertaintyElipsoid",
21097         FT_BOOLEAN, 8, NULL, 0x04,
21098         "", HFILL }},
21099     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc,
21100       { "ellipsoidArc", "gsm_map.lcs.ellipsoidArc",
21101         FT_BOOLEAN, 8, NULL, 0x02,
21102         "", HFILL }},
21103
21104 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
21105
21106     { &hf_gsm_map_gr_teleservice,
21107       { "teleservice", "gsm_map.gr.teleservice",
21108         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
21109         "gsm_map.Ext_TeleserviceCode", HFILL }},
21110     { &hf_gsm_map_gr_asciCallReference,
21111       { "asciCallReference", "gsm_map.gr.asciCallReference",
21112         FT_BYTES, BASE_HEX, NULL, 0,
21113         "gsm_map.ASCI_CallReference", HFILL }},
21114     { &hf_gsm_map_gr_codec_Info,
21115       { "codec-Info", "gsm_map.gr.codec_Info",
21116         FT_BYTES, BASE_HEX, NULL, 0,
21117         "gsm_map_gr.CODEC_Info", HFILL }},
21118     { &hf_gsm_map_gr_cipheringAlgorithm,
21119       { "cipheringAlgorithm", "gsm_map.gr.cipheringAlgorithm",
21120         FT_BYTES, BASE_HEX, NULL, 0,
21121         "gsm_map_gr.CipheringAlgorithm", HFILL }},
21122     { &hf_gsm_map_gr_groupKeyNumber_Vk_Id,
21123       { "groupKeyNumber-Vk-Id", "gsm_map.gr.groupKeyNumber_Vk_Id",
21124         FT_UINT32, BASE_DEC, NULL, 0,
21125         "gsm_map_gr.GroupKeyNumber", HFILL }},
21126     { &hf_gsm_map_gr_groupKey,
21127       { "groupKey", "gsm_map.gr.groupKey",
21128         FT_BYTES, BASE_HEX, NULL, 0,
21129         "gsm_map_ms.Kc", HFILL }},
21130     { &hf_gsm_map_gr_priority,
21131       { "priority", "gsm_map.gr.priority",
21132         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
21133         "gsm_map.EMLPP_Priority", HFILL }},
21134     { &hf_gsm_map_gr_uplinkFree,
21135       { "uplinkFree", "gsm_map.gr.uplinkFree",
21136         FT_NONE, BASE_NONE, NULL, 0,
21137         "gsm_map_gr.NULL", HFILL }},
21138     { &hf_gsm_map_gr_extensionContainer,
21139       { "extensionContainer", "gsm_map.gr.extensionContainer",
21140         FT_NONE, BASE_NONE, NULL, 0,
21141         "gsm_map.ExtensionContainer", HFILL }},
21142     { &hf_gsm_map_gr_vstk,
21143       { "vstk", "gsm_map.gr.vstk",
21144         FT_BYTES, BASE_HEX, NULL, 0,
21145         "gsm_map_gr.VSTK", HFILL }},
21146     { &hf_gsm_map_gr_vstk_rand,
21147       { "vstk-rand", "gsm_map.gr.vstk_rand",
21148         FT_BYTES, BASE_HEX, NULL, 0,
21149         "gsm_map_gr.VSTK_RAND", HFILL }},
21150     { &hf_gsm_map_gr_groupCallNumber,
21151       { "groupCallNumber", "gsm_map.gr.groupCallNumber",
21152         FT_BYTES, BASE_HEX, NULL, 0,
21153         "gsm_map.ISDN_AddressString", HFILL }},
21154     { &hf_gsm_map_gr_imsi,
21155       { "imsi", "gsm_map.gr.imsi",
21156         FT_BYTES, BASE_HEX, NULL, 0,
21157         "gsm_map.IMSI", HFILL }},
21158     { &hf_gsm_map_gr_talkerPriority,
21159       { "talkerPriority", "gsm_map.gr.talkerPriority",
21160         FT_UINT32, BASE_DEC, VALS(gsm_map_gr_TalkerPriority_vals), 0,
21161         "gsm_map_gr.TalkerPriority", HFILL }},
21162     { &hf_gsm_map_gr_additionalInfo,
21163       { "additionalInfo", "gsm_map.gr.additionalInfo",
21164         FT_BYTES, BASE_HEX, NULL, 0,
21165         "gsm_map_ms.AdditionalInfo", HFILL }},
21166     { &hf_gsm_map_gr_uplinkRequestAck,
21167       { "uplinkRequestAck", "gsm_map.gr.uplinkRequestAck",
21168         FT_NONE, BASE_NONE, NULL, 0,
21169         "gsm_map_gr.NULL", HFILL }},
21170     { &hf_gsm_map_gr_uplinkReleaseIndication,
21171       { "uplinkReleaseIndication", "gsm_map.gr.uplinkReleaseIndication",
21172         FT_NONE, BASE_NONE, NULL, 0,
21173         "gsm_map_gr.NULL", HFILL }},
21174     { &hf_gsm_map_gr_uplinkRejectCommand,
21175       { "uplinkRejectCommand", "gsm_map.gr.uplinkRejectCommand",
21176         FT_NONE, BASE_NONE, NULL, 0,
21177         "gsm_map_gr.NULL", HFILL }},
21178     { &hf_gsm_map_gr_uplinkSeizedCommand,
21179       { "uplinkSeizedCommand", "gsm_map.gr.uplinkSeizedCommand",
21180         FT_NONE, BASE_NONE, NULL, 0,
21181         "gsm_map_gr.NULL", HFILL }},
21182     { &hf_gsm_map_gr_uplinkReleaseCommand,
21183       { "uplinkReleaseCommand", "gsm_map.gr.uplinkReleaseCommand",
21184         FT_NONE, BASE_NONE, NULL, 0,
21185         "gsm_map_gr.NULL", HFILL }},
21186     { &hf_gsm_map_gr_stateAttributes,
21187       { "stateAttributes", "gsm_map.gr.stateAttributes",
21188         FT_NONE, BASE_NONE, NULL, 0,
21189         "gsm_map_gr.StateAttributes", HFILL }},
21190     { &hf_gsm_map_gr_emergencyModeResetCommandFlag,
21191       { "emergencyModeResetCommandFlag", "gsm_map.gr.emergencyModeResetCommandFlag",
21192         FT_NONE, BASE_NONE, NULL, 0,
21193         "gsm_map_gr.NULL", HFILL }},
21194     { &hf_gsm_map_gr_sm_RP_UI,
21195       { "sm-RP-UI", "gsm_map.gr.sm_RP_UI",
21196         FT_BYTES, BASE_HEX, NULL, 0,
21197         "gsm_map.SignalInfo", HFILL }},
21198     { &hf_gsm_map_gr_notificationData,
21199       { "notificationData", "gsm_map.gr.notificationData",
21200         FT_BYTES, BASE_HEX, NULL, 0,
21201         "gsm_map.SignalInfo", HFILL }},
21202     { &hf_gsm_map_gr_uplinkRequest,
21203       { "uplinkRequest", "gsm_map.gr.uplinkRequest",
21204         FT_NONE, BASE_NONE, NULL, 0,
21205         "gsm_map_gr.NULL", HFILL }},
21206     { &hf_gsm_map_gr_releaseGroupCall,
21207       { "releaseGroupCall", "gsm_map.gr.releaseGroupCall",
21208         FT_NONE, BASE_NONE, NULL, 0,
21209         "gsm_map_gr.NULL", HFILL }},
21210     { &hf_gsm_map_gr_downlinkAttached,
21211       { "downlinkAttached", "gsm_map.gr.downlinkAttached",
21212         FT_NONE, BASE_NONE, NULL, 0,
21213         "gsm_map_gr.NULL", HFILL }},
21214     { &hf_gsm_map_gr_uplinkAttached,
21215       { "uplinkAttached", "gsm_map.gr.uplinkAttached",
21216         FT_NONE, BASE_NONE, NULL, 0,
21217         "gsm_map_gr.NULL", HFILL }},
21218     { &hf_gsm_map_gr_dualCommunication,
21219       { "dualCommunication", "gsm_map.gr.dualCommunication",
21220         FT_NONE, BASE_NONE, NULL, 0,
21221         "gsm_map_gr.NULL", HFILL }},
21222     { &hf_gsm_map_gr_callOriginator,
21223       { "callOriginator", "gsm_map.gr.callOriginator",
21224         FT_NONE, BASE_NONE, NULL, 0,
21225         "gsm_map_gr.NULL", HFILL }},
21226     { &hf_gsm_map_gr_requestedInfo,
21227       { "requestedInfo", "gsm_map.gr.requestedInfo",
21228         FT_UINT32, BASE_DEC, VALS(gsm_map_gr_RequestedInfo_vals), 0,
21229         "gsm_map_gr.RequestedInfo", HFILL }},
21230     { &hf_gsm_map_gr_groupId,
21231       { "groupId", "gsm_map.gr.groupId",
21232         FT_BYTES, BASE_HEX, NULL, 0,
21233         "gsm_map_ms.Long_GroupId", HFILL }},
21234     { &hf_gsm_map_gr_cellId,
21235       { "cellId", "gsm_map.gr.cellId",
21236         FT_BYTES, BASE_HEX, NULL, 0,
21237         "gsm_map.GlobalCellId", HFILL }},
21238     { &hf_gsm_map_gr_tmsi,
21239       { "tmsi", "gsm_map.gr.tmsi",
21240         FT_BYTES, BASE_HEX, NULL, 0,
21241         "gsm_map.TMSI", HFILL }},
21242     { &hf_gsm_map_gr_cksn,
21243       { "cksn", "gsm_map.gr.cksn",
21244         FT_BYTES, BASE_HEX, NULL, 0,
21245         "gsm_map_ms.Cksn", HFILL }},
21246     { &hf_gsm_map_gr_anchorMSC_Address,
21247       { "anchorMSC-Address", "gsm_map.gr.anchorMSC_Address",
21248         FT_BYTES, BASE_HEX, NULL, 0,
21249         "gsm_map.ISDN_AddressString", HFILL }},
21250     { &hf_gsm_map_gr_additionalSubscriptions,
21251       { "additionalSubscriptions", "gsm_map.gr.additionalSubscriptions",
21252         FT_BYTES, BASE_HEX, NULL, 0,
21253         "gsm_map_ms.AdditionalSubscriptions", HFILL }},
21254     { &hf_gsm_map_gr_kc,
21255       { "kc", "gsm_map.gr.kc",
21256         FT_BYTES, BASE_HEX, NULL, 0,
21257         "gsm_map_ms.Kc", HFILL }},
21258
21259 /* --- Module MAP-DialogueInformation --- --- ---                             */
21260
21261     { &hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU,
21262       { "MAP-DialoguePDU", "gsm_map.dialogue.MAP_DialoguePDU",
21263         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_DialoguePDU_vals), 0,
21264         "gsm_map_dialogue.MAP_DialoguePDU", HFILL }},
21265     { &hf_gsm_map_dialogue_map_open,
21266       { "map-open", "gsm_map.dialogue.map_open",
21267         FT_NONE, BASE_NONE, NULL, 0,
21268         "gsm_map_dialogue.MAP_OpenInfo", HFILL }},
21269     { &hf_gsm_map_dialogue_map_accept,
21270       { "map-accept", "gsm_map.dialogue.map_accept",
21271         FT_NONE, BASE_NONE, NULL, 0,
21272         "gsm_map_dialogue.MAP_AcceptInfo", HFILL }},
21273     { &hf_gsm_map_dialogue_map_close,
21274       { "map-close", "gsm_map.dialogue.map_close",
21275         FT_NONE, BASE_NONE, NULL, 0,
21276         "gsm_map_dialogue.MAP_CloseInfo", HFILL }},
21277     { &hf_gsm_map_dialogue_map_refuse,
21278       { "map-refuse", "gsm_map.dialogue.map_refuse",
21279         FT_NONE, BASE_NONE, NULL, 0,
21280         "gsm_map_dialogue.MAP_RefuseInfo", HFILL }},
21281     { &hf_gsm_map_dialogue_map_userAbort,
21282       { "map-userAbort", "gsm_map.dialogue.map_userAbort",
21283         FT_NONE, BASE_NONE, NULL, 0,
21284         "gsm_map_dialogue.MAP_UserAbortInfo", HFILL }},
21285     { &hf_gsm_map_dialogue_map_providerAbort,
21286       { "map-providerAbort", "gsm_map.dialogue.map_providerAbort",
21287         FT_NONE, BASE_NONE, NULL, 0,
21288         "gsm_map_dialogue.MAP_ProviderAbortInfo", HFILL }},
21289     { &hf_gsm_map_dialogue_destinationReference,
21290       { "destinationReference", "gsm_map.dialogue.destinationReference",
21291         FT_BYTES, BASE_HEX, NULL, 0,
21292         "gsm_map.AddressString", HFILL }},
21293     { &hf_gsm_map_dialogue_originationReference,
21294       { "originationReference", "gsm_map.dialogue.originationReference",
21295         FT_BYTES, BASE_HEX, NULL, 0,
21296         "gsm_map.AddressString", HFILL }},
21297     { &hf_gsm_map_dialogue_extensionContainer,
21298       { "extensionContainer", "gsm_map.dialogue.extensionContainer",
21299         FT_NONE, BASE_NONE, NULL, 0,
21300         "gsm_map.ExtensionContainer", HFILL }},
21301     { &hf_gsm_map_dialogue_reason,
21302       { "reason", "gsm_map.dialogue.reason",
21303         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_Reason_vals), 0,
21304         "gsm_map_dialogue.Reason", HFILL }},
21305     { &hf_gsm_map_dialogue_alternativeApplicationContext,
21306       { "alternativeApplicationContext", "gsm_map.dialogue.alternativeApplicationContext",
21307         FT_OID, BASE_NONE, NULL, 0,
21308         "gsm_map_dialogue.OBJECT_IDENTIFIER", HFILL }},
21309     { &hf_gsm_map_dialogue_map_UserAbortChoice,
21310       { "map-UserAbortChoice", "gsm_map.dialogue.map_UserAbortChoice",
21311         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_UserAbortChoice_vals), 0,
21312         "gsm_map_dialogue.MAP_UserAbortChoice", HFILL }},
21313     { &hf_gsm_map_dialogue_userSpecificReason,
21314       { "userSpecificReason", "gsm_map.dialogue.userSpecificReason",
21315         FT_NONE, BASE_NONE, NULL, 0,
21316         "gsm_map_dialogue.NULL", HFILL }},
21317     { &hf_gsm_map_dialogue_userResourceLimitation,
21318       { "userResourceLimitation", "gsm_map.dialogue.userResourceLimitation",
21319         FT_NONE, BASE_NONE, NULL, 0,
21320         "gsm_map_dialogue.NULL", HFILL }},
21321     { &hf_gsm_map_dialogue_resourceUnavailable,
21322       { "resourceUnavailable", "gsm_map.dialogue.resourceUnavailable",
21323         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ResourceUnavailableReason_vals), 0,
21324         "gsm_map_dialogue.ResourceUnavailableReason", HFILL }},
21325     { &hf_gsm_map_dialogue_applicationProcedureCancellation,
21326       { "applicationProcedureCancellation", "gsm_map.dialogue.applicationProcedureCancellation",
21327         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ProcedureCancellationReason_vals), 0,
21328         "gsm_map_dialogue.ProcedureCancellationReason", HFILL }},
21329     { &hf_gsm_map_dialogue_map_ProviderAbortReason,
21330       { "map-ProviderAbortReason", "gsm_map.dialogue.map_ProviderAbortReason",
21331         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_ProviderAbortReason_vals), 0,
21332         "gsm_map_dialogue.MAP_ProviderAbortReason", HFILL }},
21333
21334 /* --- Module DummyMAP --- --- ---                                            */
21335
21336     { &hf_gsm_old_invoke,
21337       { "invoke", "gsm_old.invoke",
21338         FT_NONE, BASE_NONE, NULL, 0,
21339         "gsm_old.Invoke", HFILL }},
21340     { &hf_gsm_old_returnResultLast,
21341       { "returnResultLast", "gsm_old.returnResultLast",
21342         FT_NONE, BASE_NONE, NULL, 0,
21343         "gsm_old.ReturnResult", HFILL }},
21344     { &hf_gsm_old_returnError,
21345       { "returnError", "gsm_old.returnError",
21346         FT_NONE, BASE_NONE, NULL, 0,
21347         "gsm_old.ReturnError", HFILL }},
21348     { &hf_gsm_old_reject,
21349       { "reject", "gsm_old.reject",
21350         FT_NONE, BASE_NONE, NULL, 0,
21351         "gsm_old.Reject", HFILL }},
21352     { &hf_gsm_old_returnResultNotLast,
21353       { "returnResultNotLast", "gsm_old.returnResultNotLast",
21354         FT_NONE, BASE_NONE, NULL, 0,
21355         "gsm_old.ReturnResult", HFILL }},
21356     { &hf_gsm_old_invokeID,
21357       { "invokeID", "gsm_old.invokeID",
21358         FT_INT32, BASE_DEC, NULL, 0,
21359         "gsm_old.InvokeIdType", HFILL }},
21360     { &hf_gsm_old_linkedID,
21361       { "linkedID", "gsm_old.linkedID",
21362         FT_INT32, BASE_DEC, NULL, 0,
21363         "gsm_old.InvokeIdType", HFILL }},
21364     { &hf_gsm_old_opCode,
21365       { "opCode", "gsm_old.opCode",
21366         FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_OPERATION_vals), 0,
21367         "gsm_old.MAP_OPERATION", HFILL }},
21368     { &hf_gsm_old_invokeparameter,
21369       { "invokeparameter", "gsm_old.invokeparameter",
21370         FT_NONE, BASE_NONE, NULL, 0,
21371         "gsm_old.InvokeParameter", HFILL }},
21372     { &hf_gsm_old_resultretres,
21373       { "resultretres", "gsm_old.resultretres",
21374         FT_NONE, BASE_NONE, NULL, 0,
21375         "gsm_old.T_resultretres", HFILL }},
21376     { &hf_gsm_old_returnparameter,
21377       { "returnparameter", "gsm_old.returnparameter",
21378         FT_NONE, BASE_NONE, NULL, 0,
21379         "gsm_old.ReturnResultParameter", HFILL }},
21380     { &hf_gsm_old_errorCode,
21381       { "errorCode", "gsm_old.errorCode",
21382         FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_ERROR_vals), 0,
21383         "gsm_old.MAP_ERROR", HFILL }},
21384     { &hf_gsm_old_parameter,
21385       { "parameter", "gsm_old.parameter",
21386         FT_NONE, BASE_NONE, NULL, 0,
21387         "gsm_old.ReturnErrorParameter", HFILL }},
21388     { &hf_gsm_old_invokeIDRej,
21389       { "invokeIDRej", "gsm_old.invokeIDRej",
21390         FT_UINT32, BASE_DEC, VALS(gsm_old_T_invokeIDRej_vals), 0,
21391         "gsm_old.T_invokeIDRej", HFILL }},
21392     { &hf_gsm_old_derivable,
21393       { "derivable", "gsm_old.derivable",
21394         FT_INT32, BASE_DEC, NULL, 0,
21395         "gsm_old.InvokeIdType", HFILL }},
21396     { &hf_gsm_old_not_derivable,
21397       { "not-derivable", "gsm_old.not_derivable",
21398         FT_NONE, BASE_NONE, NULL, 0,
21399         "gsm_old.NULL", HFILL }},
21400     { &hf_gsm_old_problem,
21401       { "problem", "gsm_old.problem",
21402         FT_UINT32, BASE_DEC, VALS(gsm_old_T_problem_vals), 0,
21403         "gsm_old.T_problem", HFILL }},
21404     { &hf_gsm_old_generalProblem,
21405       { "generalProblem", "gsm_old.generalProblem",
21406         FT_INT32, BASE_DEC, VALS(gsm_old_GeneralProblem_vals), 0,
21407         "gsm_old.GeneralProblem", HFILL }},
21408     { &hf_gsm_old_invokeProblem,
21409       { "invokeProblem", "gsm_old.invokeProblem",
21410         FT_INT32, BASE_DEC, VALS(gsm_old_InvokeProblem_vals), 0,
21411         "gsm_old.InvokeProblem", HFILL }},
21412     { &hf_gsm_old_returnResultProblem,
21413       { "returnResultProblem", "gsm_old.returnResultProblem",
21414         FT_INT32, BASE_DEC, VALS(gsm_old_ReturnResultProblem_vals), 0,
21415         "gsm_old.ReturnResultProblem", HFILL }},
21416     { &hf_gsm_old_returnErrorProblem,
21417       { "returnErrorProblem", "gsm_old.returnErrorProblem",
21418         FT_INT32, BASE_DEC, VALS(gsm_old_ReturnErrorProblem_vals), 0,
21419         "gsm_old.ReturnErrorProblem", HFILL }},
21420     { &hf_gsm_old_localValue,
21421       { "localValue", "gsm_old.localValue",
21422         FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPOperationLocalvalue_vals), 0,
21423         "gsm_old.OperationLocalvalue", HFILL }},
21424     { &hf_gsm_old_globalValue,
21425       { "globalValue", "gsm_old.globalValue",
21426         FT_OID, BASE_NONE, NULL, 0,
21427         "gsm_old.OBJECT_IDENTIFIER", HFILL }},
21428     { &hf_gsm_old_localValue_01,
21429       { "localValue", "gsm_old.localValue",
21430         FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPLocalErrorcode_vals), 0,
21431         "gsm_old.LocalErrorcode", HFILL }},
21432     { &hf_gsm_old_protocolId,
21433       { "protocolId", "gsm_old.protocolId",
21434         FT_NONE, BASE_NONE, NULL, 0,
21435         "gsm_map.ProtocolId", HFILL }},
21436     { &hf_gsm_old_signalInfo,
21437       { "signalInfo", "gsm_old.signalInfo",
21438         FT_BYTES, BASE_HEX, NULL, 0,
21439         "gsm_map.SignalInfo", HFILL }},
21440     { &hf_gsm_old_extensionContainer,
21441       { "extensionContainer", "gsm_old.extensionContainer",
21442         FT_NONE, BASE_NONE, NULL, 0,
21443         "gsm_map.ExtensionContainer", HFILL }},
21444     { &hf_gsm_old_gsm_BearerCapability,
21445       { "gsm-BearerCapability", "gsm_old.gsm_BearerCapability",
21446         FT_NONE, BASE_NONE, NULL, 0,
21447         "gsm_map.ExternalSignalInfo", HFILL }},
21448     { &hf_gsm_old_isdn_BearerCapability,
21449       { "isdn-BearerCapability", "gsm_old.isdn_BearerCapability",
21450         FT_NONE, BASE_NONE, NULL, 0,
21451         "gsm_map.ExternalSignalInfo", HFILL }},
21452     { &hf_gsm_old_call_Direction,
21453       { "call-Direction", "gsm_old.call_Direction",
21454         FT_BYTES, BASE_HEX, NULL, 0,
21455         "gsm_old.CallDirection", HFILL }},
21456     { &hf_gsm_old_b_Subscriber_Address,
21457       { "b-Subscriber-Address", "gsm_old.b_Subscriber_Address",
21458         FT_BYTES, BASE_HEX, NULL, 0,
21459         "gsm_map.ISDN_AddressString", HFILL }},
21460     { &hf_gsm_old_chosenChannel,
21461       { "chosenChannel", "gsm_old.chosenChannel",
21462         FT_NONE, BASE_NONE, NULL, 0,
21463         "gsm_map.ExternalSignalInfo", HFILL }},
21464     { &hf_gsm_old_lowerLayerCompatibility,
21465       { "lowerLayerCompatibility", "gsm_old.lowerLayerCompatibility",
21466         FT_NONE, BASE_NONE, NULL, 0,
21467         "gsm_map.ExternalSignalInfo", HFILL }},
21468     { &hf_gsm_old_highLayerCompatibility,
21469       { "highLayerCompatibility", "gsm_old.highLayerCompatibility",
21470         FT_NONE, BASE_NONE, NULL, 0,
21471         "gsm_map.ExternalSignalInfo", HFILL }},
21472     { &hf_gsm_old_sIWFSNumber,
21473       { "sIWFSNumber", "gsm_old.sIWFSNumber",
21474         FT_BYTES, BASE_HEX, NULL, 0,
21475         "gsm_map.ISDN_AddressString", HFILL }},
21476     { &hf_gsm_old_imsi,
21477       { "imsi", "gsm_old.imsi",
21478         FT_BYTES, BASE_HEX, NULL, 0,
21479         "gsm_map.IMSI", HFILL }},
21480     { &hf_gsm_old_vlr_Number,
21481       { "vlr-Number", "gsm_old.vlr_Number",
21482         FT_BYTES, BASE_HEX, NULL, 0,
21483         "gsm_map.ISDN_AddressString", HFILL }},
21484     { &hf_gsm_old_targetCellId,
21485       { "targetCellId", "gsm_old.targetCellId",
21486         FT_BYTES, BASE_HEX, NULL, 0,
21487         "gsm_map.GlobalCellId", HFILL }},
21488     { &hf_gsm_old_ho_NumberNotRequired,
21489       { "ho-NumberNotRequired", "gsm_old.ho_NumberNotRequired",
21490         FT_NONE, BASE_NONE, NULL, 0,
21491         "gsm_old.NULL", HFILL }},
21492     { &hf_gsm_old_bss_APDU,
21493       { "bss-APDU", "gsm_old.bss_APDU",
21494         FT_NONE, BASE_NONE, NULL, 0,
21495         "gsm_old.Bss_APDU", HFILL }},
21496     { &hf_gsm_old_handoverNumber,
21497       { "handoverNumber", "gsm_old.handoverNumber",
21498         FT_BYTES, BASE_HEX, NULL, 0,
21499         "gsm_map.ISDN_AddressString", HFILL }},
21500     { &hf_gsm_old_SendAuthenticationInfoResOld_item,
21501       { "Item", "gsm_old.SendAuthenticationInfoResOld_item",
21502         FT_NONE, BASE_NONE, NULL, 0,
21503         "gsm_old.SendAuthenticationInfoResOld_item", HFILL }},
21504     { &hf_gsm_old_rand,
21505       { "rand", "gsm_old.rand",
21506         FT_BYTES, BASE_HEX, NULL, 0,
21507         "gsm_old.RAND", HFILL }},
21508     { &hf_gsm_old_sres,
21509       { "sres", "gsm_old.sres",
21510         FT_BYTES, BASE_HEX, NULL, 0,
21511         "gsm_old.SRES", HFILL }},
21512     { &hf_gsm_old_kc,
21513       { "kc", "gsm_old.kc",
21514         FT_BYTES, BASE_HEX, NULL, 0,
21515         "gsm_old.Kc", HFILL }},
21516     { &hf_gsm_old_tripletList,
21517       { "tripletList", "gsm_old.tripletList",
21518         FT_UINT32, BASE_DEC, NULL, 0,
21519         "gsm_old.TripletListold", HFILL }},
21520     { &hf_gsm_old_TripletListold_item,
21521       { "Item", "gsm_old.TripletListold_item",
21522         FT_NONE, BASE_NONE, NULL, 0,
21523         "gsm_old.AuthenticationTriplet_v2", HFILL }},
21524     { &hf_gsm_old_channelType,
21525       { "channelType", "gsm_old.channelType",
21526         FT_NONE, BASE_NONE, NULL, 0,
21527         "gsm_map.ExternalSignalInfo", HFILL }},
21528     { &hf_gsm_old_securityHeader,
21529       { "securityHeader", "gsm_old.securityHeader",
21530         FT_NONE, BASE_NONE, NULL, 0,
21531         "gsm_old.SecurityHeader", HFILL }},
21532     { &hf_gsm_old_protectedPayload,
21533       { "protectedPayload", "gsm_old.protectedPayload",
21534         FT_BYTES, BASE_HEX, NULL, 0,
21535         "gsm_old.ProtectedPayload", HFILL }},
21536     { &hf_gsm_old_securityParametersIndex,
21537       { "securityParametersIndex", "gsm_old.securityParametersIndex",
21538         FT_BYTES, BASE_HEX, NULL, 0,
21539         "gsm_old.SecurityParametersIndex", HFILL }},
21540     { &hf_gsm_old_originalComponentIdentifier,
21541       { "originalComponentIdentifier", "gsm_old.originalComponentIdentifier",
21542         FT_UINT32, BASE_DEC, VALS(gsm_old_OriginalComponentIdentifier_vals), 0,
21543         "gsm_old.OriginalComponentIdentifier", HFILL }},
21544     { &hf_gsm_old_initialisationVector,
21545       { "initialisationVector", "gsm_old.initialisationVector",
21546         FT_BYTES, BASE_HEX, NULL, 0,
21547         "gsm_old.InitialisationVector", HFILL }},
21548     { &hf_gsm_old_operationCode,
21549       { "operationCode", "gsm_old.operationCode",
21550         FT_UINT32, BASE_DEC, VALS(gsm_old_OperationCode_vals), 0,
21551         "gsm_old.OperationCode", HFILL }},
21552     { &hf_gsm_old_errorCode_01,
21553       { "errorCode", "gsm_old.errorCode",
21554         FT_UINT32, BASE_DEC, VALS(gsm_old_ErrorCode_vals), 0,
21555         "gsm_old.ErrorCode", HFILL }},
21556     { &hf_gsm_old_userInfo,
21557       { "userInfo", "gsm_old.userInfo",
21558         FT_NONE, BASE_NONE, NULL, 0,
21559         "gsm_old.NULL", HFILL }},
21560     { &hf_gsm_old_localValue_02,
21561       { "localValue", "gsm_old.localValue",
21562         FT_INT32, BASE_DEC, NULL, 0,
21563         "gsm_old.INTEGER", HFILL }},
21564     { &hf_gsm_old_msisdn,
21565       { "msisdn", "gsm_old.msisdn",
21566         FT_BYTES, BASE_HEX, NULL, 0,
21567         "gsm_map.ISDN_AddressString", HFILL }},
21568     { &hf_gsm_old_category,
21569       { "category", "gsm_old.category",
21570         FT_BYTES, BASE_HEX, NULL, 0,
21571         "gsm_old.Category", HFILL }},
21572     { &hf_gsm_old_basicService,
21573       { "basicService", "gsm_old.basicService",
21574         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
21575         "gsm_map.BasicServiceCode", HFILL }},
21576     { &hf_gsm_old_operatorSS_Code,
21577       { "operatorSS-Code", "gsm_old.operatorSS_Code",
21578         FT_UINT32, BASE_DEC, NULL, 0,
21579         "gsm_old.T_operatorSS_Code", HFILL }},
21580     { &hf_gsm_old_operatorSS_Code_item,
21581       { "Item", "gsm_old.operatorSS_Code_item",
21582         FT_BYTES, BASE_HEX, NULL, 0,
21583         "gsm_old.OCTET_STRING_SIZE_1", HFILL }},
21584     { &hf_gsm_old_sm_RP_DA,
21585       { "sm-RP-DA", "gsm_old.sm_RP_DA",
21586         FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_DAold_vals), 0,
21587         "gsm_old.SM_RP_DAold", HFILL }},
21588     { &hf_gsm_old_sm_RP_OA,
21589       { "sm-RP-OA", "gsm_old.sm_RP_OA",
21590         FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_OAold_vals), 0,
21591         "gsm_old.SM_RP_OAold", HFILL }},
21592     { &hf_gsm_old_sm_RP_UI,
21593       { "sm-RP-UI", "gsm_old.sm_RP_UI",
21594         FT_BYTES, BASE_HEX, NULL, 0,
21595         "gsm_map.SignalInfo", HFILL }},
21596     { &hf_gsm_old_moreMessagesToSend,
21597       { "moreMessagesToSend", "gsm_old.moreMessagesToSend",
21598         FT_NONE, BASE_NONE, NULL, 0,
21599         "gsm_old.NULL", HFILL }},
21600     { &hf_gsm_old_lmsi,
21601       { "lmsi", "gsm_old.lmsi",
21602         FT_BYTES, BASE_HEX, NULL, 0,
21603         "gsm_map.LMSI", HFILL }},
21604     { &hf_gsm_old_serviceCentreAddressDA,
21605       { "serviceCentreAddressDA", "gsm_old.serviceCentreAddressDA",
21606         FT_BYTES, BASE_HEX, NULL, 0,
21607         "gsm_map.AddressString", HFILL }},
21608     { &hf_gsm_old_noSM_RP_DA,
21609       { "noSM-RP-DA", "gsm_old.noSM_RP_DA",
21610         FT_NONE, BASE_NONE, NULL, 0,
21611         "gsm_old.NULL", HFILL }},
21612     { &hf_gsm_old_msisdn_01,
21613       { "msisdn", "gsm_old.msisdn",
21614         FT_BYTES, BASE_HEX, NULL, 0,
21615         "gsm_old.T_msisdn", HFILL }},
21616     { &hf_gsm_old_serviceCentreAddressOA,
21617       { "serviceCentreAddressOA", "gsm_old.serviceCentreAddressOA",
21618         FT_BYTES, BASE_HEX, NULL, 0,
21619         "gsm_old.T_serviceCentreAddressOA", HFILL }},
21620     { &hf_gsm_old_noSM_RP_OA,
21621       { "noSM-RP-OA", "gsm_old.noSM_RP_OA",
21622         FT_NONE, BASE_NONE, NULL, 0,
21623         "gsm_old.NULL", HFILL }},
21624     { &hf_gsm_old_cug_CheckInfo,
21625       { "cug-CheckInfo", "gsm_old.cug_CheckInfo",
21626         FT_NONE, BASE_NONE, NULL, 0,
21627         "gsm_map_ch.CUG_CheckInfo", HFILL }},
21628     { &hf_gsm_old_numberOfForwarding,
21629       { "numberOfForwarding", "gsm_old.numberOfForwarding",
21630         FT_UINT32, BASE_DEC, NULL, 0,
21631         "gsm_map_ch.NumberOfForwarding", HFILL }},
21632     { &hf_gsm_old_networkSignalInfo,
21633       { "networkSignalInfo", "gsm_old.networkSignalInfo",
21634         FT_NONE, BASE_NONE, NULL, 0,
21635         "gsm_map.ExternalSignalInfo", HFILL }},
21636     { &hf_gsm_old_routingInfo,
21637       { "routingInfo", "gsm_old.routingInfo",
21638         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
21639         "gsm_map_ch.RoutingInfo", HFILL }},
21640
21641 /* --- Module SS-DataTypes --- --- ---                                        */
21642
21643     { &hf_gsm_ss_ss_Code,
21644       { "ss-Code", "gsm_ss.ss_Code",
21645         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
21646         "gsm_map.SS_Code", HFILL }},
21647     { &hf_gsm_ss_ss_Status,
21648       { "ss-Status", "gsm_ss.ss_Status",
21649         FT_BYTES, BASE_HEX, NULL, 0,
21650         "gsm_map_ss.SS_Status", HFILL }},
21651     { &hf_gsm_ss_ss_Notification,
21652       { "ss-Notification", "gsm_ss.ss_Notification",
21653         FT_BYTES, BASE_HEX, NULL, 0,
21654         "gsm_ss.SS_Notification", HFILL }},
21655     { &hf_gsm_ss_callIsWaiting_Indicator,
21656       { "callIsWaiting-Indicator", "gsm_ss.callIsWaiting_Indicator",
21657         FT_NONE, BASE_NONE, NULL, 0,
21658         "gsm_ss.NULL", HFILL }},
21659     { &hf_gsm_ss_callOnHold_Indicator,
21660       { "callOnHold-Indicator", "gsm_ss.callOnHold_Indicator",
21661         FT_UINT32, BASE_DEC, VALS(gsm_ss_CallOnHold_Indicator_vals), 0,
21662         "gsm_ss.CallOnHold_Indicator", HFILL }},
21663     { &hf_gsm_ss_mpty_Indicator,
21664       { "mpty-Indicator", "gsm_ss.mpty_Indicator",
21665         FT_NONE, BASE_NONE, NULL, 0,
21666         "gsm_ss.NULL", HFILL }},
21667     { &hf_gsm_ss_cug_Index,
21668       { "cug-Index", "gsm_ss.cug_Index",
21669         FT_UINT32, BASE_DEC, NULL, 0,
21670         "gsm_map_ms.CUG_Index", HFILL }},
21671     { &hf_gsm_ss_clirSuppressionRejected,
21672       { "clirSuppressionRejected", "gsm_ss.clirSuppressionRejected",
21673         FT_NONE, BASE_NONE, NULL, 0,
21674         "gsm_ss.NULL", HFILL }},
21675     { &hf_gsm_ss_ect_Indicator,
21676       { "ect-Indicator", "gsm_ss.ect_Indicator",
21677         FT_NONE, BASE_NONE, NULL, 0,
21678         "gsm_ss.ECT_Indicator", HFILL }},
21679     { &hf_gsm_ss_nameIndicator,
21680       { "nameIndicator", "gsm_ss.nameIndicator",
21681         FT_NONE, BASE_NONE, NULL, 0,
21682         "gsm_ss.NameIndicator", HFILL }},
21683     { &hf_gsm_ss_ccbs_Feature,
21684       { "ccbs-Feature", "gsm_ss.ccbs_Feature",
21685         FT_NONE, BASE_NONE, NULL, 0,
21686         "gsm_map_ss.CCBS_Feature", HFILL }},
21687     { &hf_gsm_ss_alertingPattern,
21688       { "alertingPattern", "gsm_ss.alertingPattern",
21689         FT_BYTES, BASE_HEX, NULL, 0,
21690         "gsm_map.AlertingPattern", HFILL }},
21691     { &hf_gsm_ss_multicall_Indicator,
21692       { "multicall-Indicator", "gsm_ss.multicall_Indicator",
21693         FT_UINT32, BASE_DEC, VALS(gsm_ss_Multicall_Indicator_vals), 0,
21694         "gsm_ss.Multicall_Indicator", HFILL }},
21695     { &hf_gsm_ss_chargingInformation,
21696       { "chargingInformation", "gsm_ss.chargingInformation",
21697         FT_NONE, BASE_NONE, NULL, 0,
21698         "gsm_ss.ChargingInformation", HFILL }},
21699     { &hf_gsm_ss_e1,
21700       { "e1", "gsm_ss.e1",
21701         FT_UINT32, BASE_DEC, NULL, 0,
21702         "gsm_ss.E1", HFILL }},
21703     { &hf_gsm_ss_e2,
21704       { "e2", "gsm_ss.e2",
21705         FT_UINT32, BASE_DEC, NULL, 0,
21706         "gsm_ss.E2", HFILL }},
21707     { &hf_gsm_ss_e3,
21708       { "e3", "gsm_ss.e3",
21709         FT_UINT32, BASE_DEC, NULL, 0,
21710         "gsm_ss.E3", HFILL }},
21711     { &hf_gsm_ss_e4,
21712       { "e4", "gsm_ss.e4",
21713         FT_UINT32, BASE_DEC, NULL, 0,
21714         "gsm_ss.E4", HFILL }},
21715     { &hf_gsm_ss_e5,
21716       { "e5", "gsm_ss.e5",
21717         FT_UINT32, BASE_DEC, NULL, 0,
21718         "gsm_ss.E5", HFILL }},
21719     { &hf_gsm_ss_e6,
21720       { "e6", "gsm_ss.e6",
21721         FT_UINT32, BASE_DEC, NULL, 0,
21722         "gsm_ss.E6", HFILL }},
21723     { &hf_gsm_ss_e7,
21724       { "e7", "gsm_ss.e7",
21725         FT_UINT32, BASE_DEC, NULL, 0,
21726         "gsm_ss.E7", HFILL }},
21727     { &hf_gsm_ss_suppressPrefCUG,
21728       { "suppressPrefCUG", "gsm_ss.suppressPrefCUG",
21729         FT_NONE, BASE_NONE, NULL, 0,
21730         "gsm_ss.NULL", HFILL }},
21731     { &hf_gsm_ss_suppressOA,
21732       { "suppressOA", "gsm_ss.suppressOA",
21733         FT_NONE, BASE_NONE, NULL, 0,
21734         "gsm_ss.NULL", HFILL }},
21735     { &hf_gsm_ss_ect_CallState,
21736       { "ect-CallState", "gsm_ss.ect_CallState",
21737         FT_UINT32, BASE_DEC, VALS(gsm_ss_ECT_CallState_vals), 0,
21738         "gsm_ss.ECT_CallState", HFILL }},
21739     { &hf_gsm_ss_rdn,
21740       { "rdn", "gsm_ss.rdn",
21741         FT_UINT32, BASE_DEC, VALS(gsm_ss_RDN_vals), 0,
21742         "gsm_ss.RDN", HFILL }},
21743     { &hf_gsm_ss_callingName,
21744       { "callingName", "gsm_ss.callingName",
21745         FT_UINT32, BASE_DEC, VALS(gsm_ss_Name_vals), 0,
21746         "gsm_ss.Name", HFILL }},
21747     { &hf_gsm_ss_namePresentationAllowed,
21748       { "namePresentationAllowed", "gsm_ss.namePresentationAllowed",
21749         FT_NONE, BASE_NONE, NULL, 0,
21750         "gsm_ss.NameSet", HFILL }},
21751     { &hf_gsm_ss_presentationRestricted,
21752       { "presentationRestricted", "gsm_ss.presentationRestricted",
21753         FT_NONE, BASE_NONE, NULL, 0,
21754         "gsm_ss.NULL", HFILL }},
21755     { &hf_gsm_ss_nameUnavailable,
21756       { "nameUnavailable", "gsm_ss.nameUnavailable",
21757         FT_NONE, BASE_NONE, NULL, 0,
21758         "gsm_ss.NULL", HFILL }},
21759     { &hf_gsm_ss_namePresentationRestricted,
21760       { "namePresentationRestricted", "gsm_ss.namePresentationRestricted",
21761         FT_NONE, BASE_NONE, NULL, 0,
21762         "gsm_ss.NameSet", HFILL }},
21763     { &hf_gsm_ss_dataCodingScheme,
21764       { "dataCodingScheme", "gsm_ss.dataCodingScheme",
21765         FT_BYTES, BASE_HEX, NULL, 0,
21766         "gsm_map_ss.USSD_DataCodingScheme", HFILL }},
21767     { &hf_gsm_ss_lengthInCharacters,
21768       { "lengthInCharacters", "gsm_ss.lengthInCharacters",
21769         FT_INT32, BASE_DEC, NULL, 0,
21770         "gsm_ss.INTEGER", HFILL }},
21771     { &hf_gsm_ss_nameString,
21772       { "nameString", "gsm_ss.nameString",
21773         FT_BYTES, BASE_HEX, NULL, 0,
21774         "gsm_map_ss.USSD_String", HFILL }},
21775     { &hf_gsm_ss_presentationAllowedAddress,
21776       { "presentationAllowedAddress", "gsm_ss.presentationAllowedAddress",
21777         FT_NONE, BASE_NONE, NULL, 0,
21778         "gsm_ss.RemotePartyNumber", HFILL }},
21779     { &hf_gsm_ss_numberNotAvailableDueToInterworking,
21780       { "numberNotAvailableDueToInterworking", "gsm_ss.numberNotAvailableDueToInterworking",
21781         FT_NONE, BASE_NONE, NULL, 0,
21782         "gsm_ss.NULL", HFILL }},
21783     { &hf_gsm_ss_presentationRestrictedAddress,
21784       { "presentationRestrictedAddress", "gsm_ss.presentationRestrictedAddress",
21785         FT_NONE, BASE_NONE, NULL, 0,
21786         "gsm_ss.RemotePartyNumber", HFILL }},
21787     { &hf_gsm_ss_partyNumber,
21788       { "partyNumber", "gsm_ss.partyNumber",
21789         FT_BYTES, BASE_HEX, NULL, 0,
21790         "gsm_map.ISDN_AddressString", HFILL }},
21791     { &hf_gsm_ss_partyNumberSubaddress,
21792       { "partyNumberSubaddress", "gsm_ss.partyNumberSubaddress",
21793         FT_BYTES, BASE_HEX, NULL, 0,
21794         "gsm_map.ISDN_SubaddressString", HFILL }},
21795     { &hf_gsm_ss_deflectedToNumber,
21796       { "deflectedToNumber", "gsm_ss.deflectedToNumber",
21797         FT_BYTES, BASE_HEX, NULL, 0,
21798         "gsm_map.AddressString", HFILL }},
21799     { &hf_gsm_ss_deflectedToSubaddress,
21800       { "deflectedToSubaddress", "gsm_ss.deflectedToSubaddress",
21801         FT_BYTES, BASE_HEX, NULL, 0,
21802         "gsm_map.ISDN_SubaddressString", HFILL }},
21803     { &hf_gsm_ss_uUS_Service,
21804       { "uUS-Service", "gsm_ss.uUS_Service",
21805         FT_UINT32, BASE_DEC, VALS(gsm_ss_UUS_Service_vals), 0,
21806         "gsm_ss.UUS_Service", HFILL }},
21807     { &hf_gsm_ss_uUS_Required,
21808       { "uUS-Required", "gsm_ss.uUS_Required",
21809         FT_BOOLEAN, 8, NULL, 0,
21810         "gsm_ss.BOOLEAN", HFILL }},
21811     { &hf_gsm_ss_notificationType,
21812       { "notificationType", "gsm_ss.notificationType",
21813         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
21814         "gsm_map_ms.NotificationToMSUser", HFILL }},
21815     { &hf_gsm_ss_locationType,
21816       { "locationType", "gsm_ss.locationType",
21817         FT_NONE, BASE_NONE, NULL, 0,
21818         "gsm_map_lcs.LocationType", HFILL }},
21819     { &hf_gsm_ss_lcsClientExternalID,
21820       { "lcsClientExternalID", "gsm_ss.lcsClientExternalID",
21821         FT_NONE, BASE_NONE, NULL, 0,
21822         "gsm_map.LCSClientExternalID", HFILL }},
21823     { &hf_gsm_ss_lcsClientName,
21824       { "lcsClientName", "gsm_ss.lcsClientName",
21825         FT_NONE, BASE_NONE, NULL, 0,
21826         "gsm_map_lcs.LCSClientName", HFILL }},
21827     { &hf_gsm_ss_lcsRequestorID,
21828       { "lcsRequestorID", "gsm_ss.lcsRequestorID",
21829         FT_NONE, BASE_NONE, NULL, 0,
21830         "gsm_map_lcs.LCSRequestorID", HFILL }},
21831     { &hf_gsm_ss_lcsCodeword,
21832       { "lcsCodeword", "gsm_ss.lcsCodeword",
21833         FT_NONE, BASE_NONE, NULL, 0,
21834         "gsm_map_lcs.LCSCodeword", HFILL }},
21835     { &hf_gsm_ss_lcsServiceTypeID,
21836       { "lcsServiceTypeID", "gsm_ss.lcsServiceTypeID",
21837         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
21838         "gsm_map.LCSServiceTypeID", HFILL }},
21839     { &hf_gsm_ss_verificationResponse,
21840       { "verificationResponse", "gsm_ss.verificationResponse",
21841         FT_UINT32, BASE_DEC, VALS(gsm_ss_VerificationResponse_vals), 0,
21842         "gsm_ss.VerificationResponse", HFILL }},
21843     { &hf_gsm_ss_molr_Type,
21844       { "molr-Type", "gsm_ss.molr_Type",
21845         FT_UINT32, BASE_DEC, VALS(gsm_ss_MOLR_Type_vals), 0,
21846         "gsm_ss.MOLR_Type", HFILL }},
21847     { &hf_gsm_ss_locationMethod,
21848       { "locationMethod", "gsm_ss.locationMethod",
21849         FT_UINT32, BASE_DEC, VALS(gsm_ss_LocationMethod_vals), 0,
21850         "gsm_ss.LocationMethod", HFILL }},
21851     { &hf_gsm_ss_lcs_QoS,
21852       { "lcs-QoS", "gsm_ss.lcs_QoS",
21853         FT_NONE, BASE_NONE, NULL, 0,
21854         "gsm_map_lcs.LCS_QoS", HFILL }},
21855     { &hf_gsm_ss_mlc_Number,
21856       { "mlc-Number", "gsm_ss.mlc_Number",
21857         FT_BYTES, BASE_HEX, NULL, 0,
21858         "gsm_map.ISDN_AddressString", HFILL }},
21859     { &hf_gsm_ss_gpsAssistanceData,
21860       { "gpsAssistanceData", "gsm_ss.gpsAssistanceData",
21861         FT_BYTES, BASE_HEX, NULL, 0,
21862         "gsm_ss.GPSAssistanceData", HFILL }},
21863     { &hf_gsm_ss_supportedGADShapes,
21864       { "supportedGADShapes", "gsm_ss.supportedGADShapes",
21865         FT_BYTES, BASE_HEX, NULL, 0,
21866         "gsm_map_lcs.SupportedGADShapes", HFILL }},
21867     { &hf_gsm_ss_ageOfLocationInfo,
21868       { "ageOfLocationInfo", "gsm_ss.ageOfLocationInfo",
21869         FT_UINT32, BASE_DEC, NULL, 0,
21870         "gsm_map.AgeOfLocationInformation", HFILL }},
21871     { &hf_gsm_ss_pseudonymIndicator,
21872       { "pseudonymIndicator", "gsm_ss.pseudonymIndicator",
21873         FT_NONE, BASE_NONE, NULL, 0,
21874         "gsm_ss.NULL", HFILL }},
21875     { &hf_gsm_ss_h_gmlc_address,
21876       { "h-gmlc-address", "gsm_ss.h_gmlc_address",
21877         FT_BYTES, BASE_HEX, NULL, 0,
21878         "gsm_map_ms.GSN_Address", HFILL }},
21879     { &hf_gsm_ss_locationEstimate,
21880       { "locationEstimate", "gsm_ss.locationEstimate",
21881         FT_BYTES, BASE_HEX, NULL, 0,
21882         "gsm_map_lcs.Ext_GeographicalInformation", HFILL }},
21883     { &hf_gsm_ss_velocityEstimate,
21884       { "velocityEstimate", "gsm_ss.velocityEstimate",
21885         FT_BYTES, BASE_HEX, NULL, 0,
21886         "gsm_map_lcs.VelocityEstimate", HFILL }},
21887     { &hf_gsm_ss_referenceNumber,
21888       { "referenceNumber", "gsm_ss.referenceNumber",
21889         FT_BYTES, BASE_HEX, NULL, 0,
21890         "gsm_map_lcs.LCS_ReferenceNumber", HFILL }},
21891     { &hf_gsm_ss_periodicLDRInfo,
21892       { "periodicLDRInfo", "gsm_ss.periodicLDRInfo",
21893         FT_NONE, BASE_NONE, NULL, 0,
21894         "gsm_map_lcs.PeriodicLDRInfo", HFILL }},
21895     { &hf_gsm_ss_locationUpdateRequest,
21896       { "locationUpdateRequest", "gsm_ss.locationUpdateRequest",
21897         FT_NONE, BASE_NONE, NULL, 0,
21898         "gsm_ss.NULL", HFILL }},
21899     { &hf_gsm_ss_sequenceNumber,
21900       { "sequenceNumber", "gsm_ss.sequenceNumber",
21901         FT_UINT32, BASE_DEC, NULL, 0,
21902         "gsm_map_lcs.SequenceNumber", HFILL }},
21903     { &hf_gsm_ss_terminationCause,
21904       { "terminationCause", "gsm_ss.terminationCause",
21905         FT_UINT32, BASE_DEC, VALS(gsm_ss_TerminationCause_vals), 0,
21906         "gsm_ss.TerminationCause", HFILL }},
21907     { &hf_gsm_ss_mo_lrShortCircuit,
21908       { "mo-lrShortCircuit", "gsm_ss.mo_lrShortCircuit",
21909         FT_NONE, BASE_NONE, NULL, 0,
21910         "gsm_ss.NULL", HFILL }},
21911     { &hf_gsm_ss_decipheringKeys,
21912       { "decipheringKeys", "gsm_ss.decipheringKeys",
21913         FT_BYTES, BASE_HEX, NULL, 0,
21914         "gsm_ss.DecipheringKeys", HFILL }},
21915     { &hf_gsm_ss_add_LocationEstimate,
21916       { "add-LocationEstimate", "gsm_ss.add_LocationEstimate",
21917         FT_BYTES, BASE_HEX, NULL, 0,
21918         "gsm_map_lcs.Add_GeographicalInformation", HFILL }},
21919     { &hf_gsm_ss_reportingPLMNList,
21920       { "reportingPLMNList", "gsm_ss.reportingPLMNList",
21921         FT_NONE, BASE_NONE, NULL, 0,
21922         "gsm_map_lcs.ReportingPLMNList", HFILL }},
21923     { &hf_gsm_ss_deferredLocationEventType,
21924       { "deferredLocationEventType", "gsm_ss.deferredLocationEventType",
21925         FT_BYTES, BASE_HEX, NULL, 0,
21926         "gsm_map_lcs.DeferredLocationEventType", HFILL }},
21927     { &hf_gsm_ss_areaEventInfo,
21928       { "areaEventInfo", "gsm_ss.areaEventInfo",
21929         FT_NONE, BASE_NONE, NULL, 0,
21930         "gsm_map_lcs.AreaEventInfo", HFILL }},
21931     { &hf_gsm_ss_qoS,
21932       { "qoS", "gsm_ss.qoS",
21933         FT_NONE, BASE_NONE, NULL, 0,
21934         "gsm_map_lcs.LCS_QoS", HFILL }},
21935
21936 /*--- End of included file: packet-gsm_map-hfarr.c ---*/
21937 #line 2252 "packet-gsmmap-template.c"
21938   };
21939
21940   /* List of subtrees */
21941   static gint *ett[] = {
21942     &ett_gsm_map,
21943     &ett_gsm_map_InvokeId,
21944     &ett_gsm_map_InvokePDU,
21945     &ett_gsm_map_ReturnResultPDU,
21946         &ett_gsm_map_ReturnErrorPDU,
21947     &ett_gsm_map_ReturnResult_result,
21948         &ett_gsm_map_ReturnError_result,
21949     &ett_gsm_map_GSMMAPPDU,
21950         &ett_gsm_map_ext_qos_subscribed,
21951         &ett_gsm_map_pdptypenumber,
21952         &ett_gsm_map_RAIdentity,
21953         &ett_gsm_map_LAIFixedLength,
21954         &ett_gsm_map_isdn_address_string,
21955         &ett_gsm_map_geo_desc,
21956         &ett_gsm_map_LongSignalInfo,
21957         &ett_gsm_map_RadioResourceInformation,
21958         &ett_gsm_map_MSNetworkCapability,
21959         &ett_gsm_map_MSRadioAccessCapability,
21960         &ett_gsm_map_externalsignalinfo,
21961
21962
21963 /*--- Included file: packet-gsm_map-ettarr.c ---*/
21964 #line 1 "packet-gsm_map-ettarr.c"
21965
21966 /* --- Module Remote-Operations-Information-Objects --- --- ---               */
21967
21968     &ett_Remote_Operations_Information_Objects_Code,
21969
21970 /* --- Module MobileDomainDefinitions --- --- ---                             */
21971
21972
21973 /* --- Module MAP-ApplicationContexts --- --- ---                             */
21974
21975
21976 /* --- Module MAP-SS-Code --- --- ---                                         */
21977
21978
21979 /* --- Module MAP-BS-Code --- --- ---                                         */
21980
21981
21982 /* --- Module MAP-TS-Code --- --- ---                                         */
21983
21984
21985 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
21986
21987     &ett_gsm_map_ExtensionContainer,
21988     &ett_gsm_map_SLR_ArgExtensionContainer,
21989     &ett_gsm_map_PrivateExtensionList,
21990     &ett_gsm_map_PrivateExtension,
21991     &ett_gsm_map_PCS_Extensions,
21992     &ett_gsm_map_SLR_Arg_PCS_Extensions,
21993
21994 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
21995
21996     &ett_gsm_map_ExternalSignalInfo,
21997     &ett_gsm_map_Ext_ExternalSignalInfo,
21998     &ett_gsm_map_AccessNetworkSignalInfo,
21999     &ett_gsm_map_Identity,
22000     &ett_gsm_map_IMSI_WithLMSI,
22001     &ett_gsm_map_SubscriberId,
22002     &ett_gsm_map_HLR_List,
22003     &ett_gsm_map_NAEA_PreferredCI,
22004     &ett_gsm_map_SubscriberIdentity,
22005     &ett_gsm_map_LCSClientExternalID,
22006     &ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
22007     &ett_gsm_map_BasicServiceCode,
22008     &ett_gsm_map_Ext_BasicServiceCode,
22009     &ett_gsm_map_EMLPP_Info,
22010     &ett_gsm_map_MC_SS_Info,
22011
22012 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
22013
22014     &ett_gsm_map_ss_RegisterSS_Arg,
22015     &ett_gsm_map_ss_SS_Info,
22016     &ett_gsm_map_ss_ForwardingInfo,
22017     &ett_gsm_map_ss_ForwardingFeatureList,
22018     &ett_gsm_map_ss_ForwardingFeature,
22019     &ett_gsm_map_ss_CallBarringInfo,
22020     &ett_gsm_map_ss_CallBarringFeatureList,
22021     &ett_gsm_map_ss_CallBarringFeature,
22022     &ett_gsm_map_ss_SS_Data,
22023     &ett_gsm_map_ss_SS_SubscriptionOption,
22024     &ett_gsm_map_ss_SS_ForBS_Code,
22025     &ett_gsm_map_ss_GenericServiceInfo,
22026     &ett_gsm_map_ss_CCBS_FeatureList,
22027     &ett_gsm_map_ss_CCBS_Feature,
22028     &ett_gsm_map_ss_InterrogateSS_Res,
22029     &ett_gsm_map_ss_USSD_Arg,
22030     &ett_gsm_map_ss_USSD_Res,
22031     &ett_gsm_map_ss_SS_List,
22032     &ett_gsm_map_ss_SS_InfoList,
22033     &ett_gsm_map_ss_BasicServiceGroupList,
22034     &ett_gsm_map_ss_SS_InvocationNotificationArg,
22035     &ett_gsm_map_ss_SS_InvocationNotificationRes,
22036     &ett_gsm_map_ss_SS_EventSpecification,
22037     &ett_gsm_map_ss_RegisterCC_EntryArg,
22038     &ett_gsm_map_ss_CCBS_Data,
22039     &ett_gsm_map_ss_ServiceIndicator,
22040     &ett_gsm_map_ss_RegisterCC_EntryRes,
22041     &ett_gsm_map_ss_EraseCC_EntryArg,
22042     &ett_gsm_map_ss_EraseCC_EntryRes,
22043
22044 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
22045
22046     &ett_gsm_map_er_RoamingNotAllowedParam,
22047     &ett_gsm_map_er_CallBarredParam,
22048     &ett_gsm_map_er_ExtensibleCallBarredParam,
22049     &ett_gsm_map_er_CUG_RejectParam,
22050     &ett_gsm_map_er_SS_IncompatibilityCause,
22051     &ett_gsm_map_er_SM_DeliveryFailureCause,
22052     &ett_gsm_map_er_AbsentSubscriberSM_Param,
22053     &ett_gsm_map_er_SystemFailureParam,
22054     &ett_gsm_map_er_ExtensibleSystemFailureParam,
22055     &ett_gsm_map_er_DataMissingParam,
22056     &ett_gsm_map_er_UnexpectedDataParam,
22057     &ett_gsm_map_er_FacilityNotSupParam,
22058     &ett_gsm_map_er_OR_NotAllowedParam,
22059     &ett_gsm_map_er_UnknownSubscriberParam,
22060     &ett_gsm_map_er_NumberChangedParam,
22061     &ett_gsm_map_er_UnidentifiedSubParam,
22062     &ett_gsm_map_er_IllegalSubscriberParam,
22063     &ett_gsm_map_er_IllegalEquipmentParam,
22064     &ett_gsm_map_er_BearerServNotProvParam,
22065     &ett_gsm_map_er_TeleservNotProvParam,
22066     &ett_gsm_map_er_TracingBufferFullParam,
22067     &ett_gsm_map_er_NoRoamingNbParam,
22068     &ett_gsm_map_er_AbsentSubscriberParam,
22069     &ett_gsm_map_er_BusySubscriberParam,
22070     &ett_gsm_map_er_NoSubscriberReplyParam,
22071     &ett_gsm_map_er_ForwardingViolationParam,
22072     &ett_gsm_map_er_ForwardingFailedParam,
22073     &ett_gsm_map_er_ATI_NotAllowedParam,
22074     &ett_gsm_map_er_ATSI_NotAllowedParam,
22075     &ett_gsm_map_er_ATM_NotAllowedParam,
22076     &ett_gsm_map_er_IllegalSS_OperationParam,
22077     &ett_gsm_map_er_SS_NotAvailableParam,
22078     &ett_gsm_map_er_SS_SubscriptionViolationParam,
22079     &ett_gsm_map_er_InformationNotAvailableParam,
22080     &ett_gsm_map_er_SubBusyForMT_SMS_Param,
22081     &ett_gsm_map_er_MessageWaitListFullParam,
22082     &ett_gsm_map_er_ResourceLimitationParam,
22083     &ett_gsm_map_er_NoGroupCallNbParam,
22084     &ett_gsm_map_er_IncompatibleTerminalParam,
22085     &ett_gsm_map_er_ShortTermDenialParam,
22086     &ett_gsm_map_er_LongTermDenialParam,
22087     &ett_gsm_map_er_UnauthorizedRequestingNetwork_Param,
22088     &ett_gsm_map_er_UnauthorizedLCSClient_Param,
22089     &ett_gsm_map_er_PositionMethodFailure_Param,
22090     &ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param,
22091     &ett_gsm_map_er_MM_EventNotSupported_Param,
22092     &ett_gsm_map_er_TargetCellOutsideGCA_Param,
22093     &ett_gsm_map_er_OngoingGroupCallParam,
22094
22095 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
22096
22097     &ett_gsm_map_sm_RoutingInfoForSM_Arg,
22098     &ett_gsm_map_sm_RoutingInfoForSM_Res,
22099     &ett_gsm_map_sm_LocationInfoWithLMSI,
22100     &ett_gsm_map_sm_Additional_Number,
22101     &ett_gsm_map_sm_MO_ForwardSM_Arg,
22102     &ett_gsm_map_sm_MO_ForwardSM_Res,
22103     &ett_gsm_map_sm_MT_ForwardSM_Arg,
22104     &ett_gsm_map_sm_MT_ForwardSM_Res,
22105     &ett_gsm_map_sm_SM_RP_DA,
22106     &ett_gsm_map_sm_SM_RP_OA,
22107     &ett_gsm_map_sm_ReportSM_DeliveryStatusArg,
22108     &ett_gsm_map_sm_ReportSM_DeliveryStatusRes,
22109     &ett_gsm_map_sm_AlertServiceCentreArg,
22110     &ett_gsm_map_sm_InformServiceCentreArg,
22111     &ett_gsm_map_sm_MW_Status,
22112     &ett_gsm_map_sm_ReadyForSM_Arg,
22113     &ett_gsm_map_sm_ReadyForSM_Res,
22114     &ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg,
22115     &ett_gsm_map_sm_MT_ForwardSM_VGCS_Res,
22116     &ett_gsm_map_sm_DispatcherList,
22117
22118 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
22119
22120     &ett_gsm_map_om_ActivateTraceModeArg,
22121     &ett_gsm_map_om_TraceDepthList,
22122     &ett_gsm_map_om_TraceNE_TypeList,
22123     &ett_gsm_map_om_TraceInterfaceList,
22124     &ett_gsm_map_om_MSC_S_InterfaceList,
22125     &ett_gsm_map_om_MGW_InterfaceList,
22126     &ett_gsm_map_om_SGSN_InterfaceList,
22127     &ett_gsm_map_om_GGSN_InterfaceList,
22128     &ett_gsm_map_om_RNC_InterfaceList,
22129     &ett_gsm_map_om_BMSC_InterfaceList,
22130     &ett_gsm_map_om_TraceEventList,
22131     &ett_gsm_map_om_MSC_S_EventList,
22132     &ett_gsm_map_om_MGW_EventList,
22133     &ett_gsm_map_om_SGSN_EventList,
22134     &ett_gsm_map_om_GGSN_EventList,
22135     &ett_gsm_map_om_BMSC_EventList,
22136     &ett_gsm_map_om_TracePropagationList,
22137     &ett_gsm_map_om_ActivateTraceModeRes,
22138     &ett_gsm_map_om_DeactivateTraceModeArg,
22139     &ett_gsm_map_om_DeactivateTraceModeRes,
22140
22141 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
22142
22143     &ett_gsm_map_ms_UpdateLocationArg,
22144     &ett_gsm_map_ms_VLR_Capability,
22145     &ett_gsm_map_ms_SupportedRAT_Types,
22146     &ett_gsm_map_ms_SuperChargerInfo,
22147     &ett_gsm_map_ms_SupportedLCS_CapabilitySets,
22148     &ett_gsm_map_ms_UpdateLocationRes,
22149     &ett_gsm_map_ms_ADD_Info,
22150     &ett_gsm_map_ms_CancelLocationArg_U,
22151     &ett_gsm_map_ms_CancelLocationRes,
22152     &ett_gsm_map_ms_PurgeMS_Arg_U,
22153     &ett_gsm_map_ms_PurgeMS_Res,
22154     &ett_gsm_map_ms_SendIdentificationArg,
22155     &ett_gsm_map_ms_SendIdentificationRes_U,
22156     &ett_gsm_map_ms_AuthenticationSetList,
22157     &ett_gsm_map_ms_TripletList,
22158     &ett_gsm_map_ms_QuintupletList,
22159     &ett_gsm_map_ms_AuthenticationTriplet,
22160     &ett_gsm_map_ms_AuthenticationQuintuplet,
22161     &ett_gsm_map_ms_CurrentSecurityContext,
22162     &ett_gsm_map_ms_GSM_SecurityContextData,
22163     &ett_gsm_map_ms_UMTS_SecurityContextData,
22164     &ett_gsm_map_ms_AuthenticationFailureReportArg,
22165     &ett_gsm_map_ms_AuthenticationFailureReportRes,
22166     &ett_gsm_map_ms_UpdateGprsLocationArg,
22167     &ett_gsm_map_ms_SGSN_Capability,
22168     &ett_gsm_map_ms_UpdateGprsLocationRes,
22169     &ett_gsm_map_ms_ForwardAccessSignalling_Arg_U,
22170     &ett_gsm_map_ms_AllowedUMTS_Algorithms,
22171     &ett_gsm_map_ms_PrepareHO_Arg_U,
22172     &ett_gsm_map_ms_BSSMAP_ServiceHandoverList,
22173     &ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo,
22174     &ett_gsm_map_ms_RadioResourceList,
22175     &ett_gsm_map_ms_RadioResource,
22176     &ett_gsm_map_ms_PrepareHO_Res_U,
22177     &ett_gsm_map_ms_SelectedUMTS_Algorithms,
22178     &ett_gsm_map_ms_ChosenRadioResourceInformation,
22179     &ett_gsm_map_ms_PrepareSubsequentHO_Arg_U,
22180     &ett_gsm_map_ms_PrepareSubsequentHO_Res_U,
22181     &ett_gsm_map_ms_ProcessAccessSignalling_Arg_U,
22182     &ett_gsm_map_ms_SupportedCodecsList,
22183     &ett_gsm_map_ms_CodecList,
22184     &ett_gsm_map_ms_SendEndSignal_Arg_U,
22185     &ett_gsm_map_ms_SendEndSignal_Res,
22186     &ett_gsm_map_ms_RelocationNumberList,
22187     &ett_gsm_map_ms_RelocationNumber,
22188     &ett_gsm_map_ms_SendAuthenticationInfoArg,
22189     &ett_gsm_map_ms_Re_synchronisationInfo,
22190     &ett_gsm_map_ms_SendAuthenticationInfoRes_U,
22191     &ett_gsm_map_ms_CheckIMEI_Arg,
22192     &ett_gsm_map_ms_CheckIMEI_Res,
22193     &ett_gsm_map_ms_RequestedEquipmentInfo,
22194     &ett_gsm_map_ms_UESBI_Iu,
22195     &ett_gsm_map_ms_InsertSubscriberDataArg,
22196     &ett_gsm_map_ms_AccessRestrictionData,
22197     &ett_gsm_map_ms_LCSInformation,
22198     &ett_gsm_map_ms_GMLC_List,
22199     &ett_gsm_map_ms_GPRSDataList,
22200     &ett_gsm_map_ms_PDP_Context,
22201     &ett_gsm_map_ms_GPRSSubscriptionData,
22202     &ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo,
22203     &ett_gsm_map_ms_GPRS_CSI,
22204     &ett_gsm_map_ms_GPRS_CamelTDPDataList,
22205     &ett_gsm_map_ms_GPRS_CamelTDPData,
22206     &ett_gsm_map_ms_LSADataList,
22207     &ett_gsm_map_ms_LSAData,
22208     &ett_gsm_map_ms_LSAInformation,
22209     &ett_gsm_map_ms_SubscriberData,
22210     &ett_gsm_map_ms_BearerServiceList,
22211     &ett_gsm_map_ms_TeleserviceList,
22212     &ett_gsm_map_ms_ODB_Data,
22213     &ett_gsm_map_ms_ODB_GeneralData,
22214     &ett_gsm_map_ms_ODB_HPLMN_Data,
22215     &ett_gsm_map_ms_Ext_SS_InfoList,
22216     &ett_gsm_map_ms_Ext_SS_Info,
22217     &ett_gsm_map_ms_Ext_ForwInfo,
22218     &ett_gsm_map_ms_Ext_ForwFeatureList,
22219     &ett_gsm_map_ms_Ext_ForwFeature,
22220     &ett_gsm_map_ms_Ext_CallBarInfo,
22221     &ett_gsm_map_ms_Ext_CallBarFeatureList,
22222     &ett_gsm_map_ms_Ext_CallBarringFeature,
22223     &ett_gsm_map_ms_CUG_Info,
22224     &ett_gsm_map_ms_CUG_SubscriptionList,
22225     &ett_gsm_map_ms_CUG_Subscription,
22226     &ett_gsm_map_ms_CUG_FeatureList,
22227     &ett_gsm_map_ms_Ext_BasicServiceGroupList,
22228     &ett_gsm_map_ms_CUG_Feature,
22229     &ett_gsm_map_ms_Ext_SS_Data,
22230     &ett_gsm_map_ms_LCS_PrivacyExceptionList,
22231     &ett_gsm_map_ms_LCS_PrivacyClass,
22232     &ett_gsm_map_ms_ExternalClientList,
22233     &ett_gsm_map_ms_PLMNClientList,
22234     &ett_gsm_map_ms_Ext_ExternalClientList,
22235     &ett_gsm_map_ms_ExternalClient,
22236     &ett_gsm_map_ms_ServiceTypeList,
22237     &ett_gsm_map_ms_ServiceType,
22238     &ett_gsm_map_ms_MOLR_List,
22239     &ett_gsm_map_ms_MOLR_Class,
22240     &ett_gsm_map_ms_ZoneCodeList,
22241     &ett_gsm_map_ms_InsertSubscriberDataRes,
22242     &ett_gsm_map_ms_DeleteSubscriberDataArg,
22243     &ett_gsm_map_ms_SpecificCSI_Withdraw,
22244     &ett_gsm_map_ms_GPRSSubscriptionDataWithdraw,
22245     &ett_gsm_map_ms_ContextIdList,
22246     &ett_gsm_map_ms_LSAInformationWithdraw,
22247     &ett_gsm_map_ms_LSAIdentityList,
22248     &ett_gsm_map_ms_BasicServiceList,
22249     &ett_gsm_map_ms_DeleteSubscriberDataRes,
22250     &ett_gsm_map_ms_VlrCamelSubscriptionInfo,
22251     &ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList,
22252     &ett_gsm_map_ms_MT_smsCAMELTDP_Criteria,
22253     &ett_gsm_map_ms_TPDU_TypeCriterion,
22254     &ett_gsm_map_ms_D_CSI,
22255     &ett_gsm_map_ms_DP_AnalysedInfoCriteriaList,
22256     &ett_gsm_map_ms_DP_AnalysedInfoCriterium,
22257     &ett_gsm_map_ms_SS_CSI,
22258     &ett_gsm_map_ms_SS_CamelData,
22259     &ett_gsm_map_ms_SS_EventList,
22260     &ett_gsm_map_ms_O_CSI,
22261     &ett_gsm_map_ms_O_BcsmCamelTDPDataList,
22262     &ett_gsm_map_ms_O_BcsmCamelTDPData,
22263     &ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList,
22264     &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList,
22265     &ett_gsm_map_ms_O_BcsmCamelTDP_Criteria,
22266     &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria,
22267     &ett_gsm_map_ms_DestinationNumberCriteria,
22268     &ett_gsm_map_ms_DestinationNumberList,
22269     &ett_gsm_map_ms_DestinationNumberLengthList,
22270     &ett_gsm_map_ms_BasicServiceCriteria,
22271     &ett_gsm_map_ms_O_CauseValueCriteria,
22272     &ett_gsm_map_ms_T_CauseValueCriteria,
22273     &ett_gsm_map_ms_SupportedCamelPhases,
22274     &ett_gsm_map_ms_OfferedCamel4CSIs,
22275     &ett_gsm_map_ms_OfferedCamel4Functionalities,
22276     &ett_gsm_map_ms_SMS_CSI,
22277     &ett_gsm_map_ms_SMS_CAMEL_TDP_DataList,
22278     &ett_gsm_map_ms_SMS_CAMEL_TDP_Data,
22279     &ett_gsm_map_ms_M_CSI,
22280     &ett_gsm_map_ms_MG_CSI,
22281     &ett_gsm_map_ms_MobilityTriggers,
22282     &ett_gsm_map_ms_T_CSI,
22283     &ett_gsm_map_ms_T_BcsmCamelTDPDataList,
22284     &ett_gsm_map_ms_T_BcsmCamelTDPData,
22285     &ett_gsm_map_ms_SendRoutingInfoForGprsArg,
22286     &ett_gsm_map_ms_SendRoutingInfoForGprsRes,
22287     &ett_gsm_map_ms_FailureReportArg,
22288     &ett_gsm_map_ms_FailureReportRes,
22289     &ett_gsm_map_ms_NoteMsPresentForGprsArg,
22290     &ett_gsm_map_ms_NoteMsPresentForGprsRes,
22291     &ett_gsm_map_ms_ResetArg,
22292     &ett_gsm_map_ms_RestoreDataArg,
22293     &ett_gsm_map_ms_RestoreDataRes,
22294     &ett_gsm_map_ms_VBSDataList,
22295     &ett_gsm_map_ms_VGCSDataList,
22296     &ett_gsm_map_ms_VoiceGroupCallData,
22297     &ett_gsm_map_ms_AdditionalSubscriptions,
22298     &ett_gsm_map_ms_VoiceBroadcastData,
22299     &ett_gsm_map_ms_ProvideSubscriberInfoArg,
22300     &ett_gsm_map_ms_ProvideSubscriberInfoRes,
22301     &ett_gsm_map_ms_SubscriberInfo,
22302     &ett_gsm_map_ms_MNPInfoRes,
22303     &ett_gsm_map_ms_GPRSMSClass,
22304     &ett_gsm_map_ms_RequestedInfo,
22305     &ett_gsm_map_ms_LocationInformation,
22306     &ett_gsm_map_ms_LocationInformationGPRS,
22307     &ett_gsm_map_ms_SubscriberState,
22308     &ett_gsm_map_ms_PS_SubscriberState,
22309     &ett_gsm_map_ms_PDP_ContextInfoList,
22310     &ett_gsm_map_ms_PDP_ContextInfo,
22311     &ett_gsm_map_ms_AnyTimeInterrogationArg,
22312     &ett_gsm_map_ms_AnyTimeInterrogationRes,
22313     &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg,
22314     &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes,
22315     &ett_gsm_map_ms_RequestedSubscriptionInfo,
22316     &ett_gsm_map_ms_MSISDN_BS_List,
22317     &ett_gsm_map_ms_MSISDN_BS,
22318     &ett_gsm_map_ms_CallForwardingData,
22319     &ett_gsm_map_ms_CallBarringData,
22320     &ett_gsm_map_ms_ODB_Info,
22321     &ett_gsm_map_ms_CAMEL_SubscriptionInfo,
22322     &ett_gsm_map_ms_AnyTimeModificationArg,
22323     &ett_gsm_map_ms_AnyTimeModificationRes,
22324     &ett_gsm_map_ms_ModificationRequestFor_CF_Info,
22325     &ett_gsm_map_ms_ModificationRequestFor_CB_Info,
22326     &ett_gsm_map_ms_ModificationRequestFor_ODB_data,
22327     &ett_gsm_map_ms_ModificationRequestFor_CSI,
22328     &ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data,
22329     &ett_gsm_map_ms_NoteSubscriberDataModifiedArg,
22330     &ett_gsm_map_ms_NoteSubscriberDataModifiedRes,
22331     &ett_gsm_map_ms_NoteMM_EventArg,
22332     &ett_gsm_map_ms_NoteMM_EventRes,
22333     &ett_gsm_map_ms_Ext_SS_InfoFor_CSE,
22334     &ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE,
22335     &ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE,
22336
22337 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
22338
22339     &ett_gsm_map_ch_CUG_CheckInfo,
22340     &ett_gsm_map_ch_SendRoutingInfoArg,
22341     &ett_gsm_map_ch_SuppressMTSS,
22342     &ett_gsm_map_ch_SendRoutingInfoRes_U,
22343     &ett_gsm_map_ch_AllowedServices,
22344     &ett_gsm_map_ch_CCBS_Indicators,
22345     &ett_gsm_map_ch_RoutingInfo,
22346     &ett_gsm_map_ch_ForwardingData,
22347     &ett_gsm_map_ch_ProvideRoamingNumberArg,
22348     &ett_gsm_map_ch_ProvideRoamingNumberRes,
22349     &ett_gsm_map_ch_ResumeCallHandlingArg,
22350     &ett_gsm_map_ch_UU_Data,
22351     &ett_gsm_map_ch_ResumeCallHandlingRes,
22352     &ett_gsm_map_ch_CamelInfo,
22353     &ett_gsm_map_ch_ExtendedRoutingInfo,
22354     &ett_gsm_map_ch_CamelRoutingInfo,
22355     &ett_gsm_map_ch_GmscCamelSubscriptionInfo,
22356     &ett_gsm_map_ch_SetReportingStateArg,
22357     &ett_gsm_map_ch_SetReportingStateRes,
22358     &ett_gsm_map_ch_StatusReportArg,
22359     &ett_gsm_map_ch_EventReportData,
22360     &ett_gsm_map_ch_CallReportData,
22361     &ett_gsm_map_ch_StatusReportRes,
22362     &ett_gsm_map_ch_RemoteUserFreeArg,
22363     &ett_gsm_map_ch_RemoteUserFreeRes,
22364     &ett_gsm_map_ch_IST_AlertArg,
22365     &ett_gsm_map_ch_IST_AlertRes,
22366     &ett_gsm_map_ch_IST_CommandArg,
22367     &ett_gsm_map_ch_IST_CommandRes,
22368     &ett_gsm_map_ch_ReleaseResourcesArg,
22369     &ett_gsm_map_ch_ReleaseResourcesRes,
22370
22371 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
22372
22373     &ett_gsm_map_lcs_RoutingInfoForLCS_Arg,
22374     &ett_gsm_map_lcs_RoutingInfoForLCS_Res,
22375     &ett_gsm_map_lcs_LCSLocationInfo,
22376     &ett_gsm_map_lcs_ProvideSubscriberLocation_Arg,
22377     &ett_gsm_map_lcs_LocationType,
22378     &ett_gsm_map_lcs_DeferredLocationEventType,
22379     &ett_gsm_map_lcs_LCS_ClientID,
22380     &ett_gsm_map_lcs_LCSClientName,
22381     &ett_gsm_map_lcs_LCSRequestorID,
22382     &ett_gsm_map_lcs_LCS_QoS,
22383     &ett_gsm_map_lcs_ResponseTime,
22384     &ett_gsm_map_lcs_SupportedGADShapes,
22385     &ett_gsm_map_lcs_LCSCodeword,
22386     &ett_gsm_map_lcs_LCS_PrivacyCheck,
22387     &ett_gsm_map_lcs_AreaEventInfo,
22388     &ett_gsm_map_lcs_AreaDefinition,
22389     &ett_gsm_map_lcs_AreaList,
22390     &ett_gsm_map_lcs_Area,
22391     &ett_gsm_map_lcs_PeriodicLDRInfo,
22392     &ett_gsm_map_lcs_ReportingPLMNList,
22393     &ett_gsm_map_lcs_PLMNList,
22394     &ett_gsm_map_lcs_ReportingPLMN,
22395     &ett_gsm_map_lcs_ProvideSubscriberLocation_Res,
22396     &ett_gsm_map_lcs_SubscriberLocationReport_Arg,
22397     &ett_gsm_map_lcs_Deferredmt_lrData,
22398     &ett_gsm_map_lcs_SubscriberLocationReport_Res,
22399
22400 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
22401
22402     &ett_gsm_map_gr_PrepareGroupCallArg,
22403     &ett_gsm_map_gr_PrepareGroupCallRes,
22404     &ett_gsm_map_gr_SendGroupCallEndSignalArg,
22405     &ett_gsm_map_gr_SendGroupCallEndSignalRes,
22406     &ett_gsm_map_gr_ForwardGroupCallSignallingArg,
22407     &ett_gsm_map_gr_ProcessGroupCallSignallingArg,
22408     &ett_gsm_map_gr_StateAttributes,
22409     &ett_gsm_map_gr_SendGroupCallInfoArg,
22410     &ett_gsm_map_gr_SendGroupCallInfoRes,
22411
22412 /* --- Module MAP-DialogueInformation --- --- ---                             */
22413
22414     &ett_gsm_map_dialogue_MAP_DialoguePDU,
22415     &ett_gsm_map_dialogue_MAP_OpenInfo,
22416     &ett_gsm_map_dialogue_MAP_AcceptInfo,
22417     &ett_gsm_map_dialogue_MAP_CloseInfo,
22418     &ett_gsm_map_dialogue_MAP_RefuseInfo,
22419     &ett_gsm_map_dialogue_MAP_UserAbortInfo,
22420     &ett_gsm_map_dialogue_MAP_UserAbortChoice,
22421     &ett_gsm_map_dialogue_MAP_ProviderAbortInfo,
22422
22423 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
22424
22425
22426 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
22427
22428
22429 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
22430
22431
22432 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
22433
22434
22435 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
22436
22437
22438 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
22439
22440
22441 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
22442
22443
22444 /* --- Module MAP-Errors --- --- ---                                          */
22445
22446
22447 /* --- Module MAP-Protocol --- --- ---                                        */
22448
22449
22450 /* --- Module DummyMAP --- --- ---                                            */
22451
22452     &ett_gsm_old_Component,
22453     &ett_gsm_old_Invoke,
22454     &ett_gsm_old_ReturnResult,
22455     &ett_gsm_old_T_resultretres,
22456     &ett_gsm_old_ReturnError,
22457     &ett_gsm_old_Reject,
22458     &ett_gsm_old_T_invokeIDRej,
22459     &ett_gsm_old_T_problem,
22460     &ett_gsm_old_MAP_OPERATION,
22461     &ett_gsm_old_MAP_ERROR,
22462     &ett_gsm_old_Bss_APDU,
22463     &ett_gsm_old_ProvideSIWFSNumberArg,
22464     &ett_gsm_old_ProvideSIWFSNumberRes,
22465     &ett_gsm_old_PurgeMSArgV2,
22466     &ett_gsm_old_PrepareHO_ArgOld,
22467     &ett_gsm_old_PrepareHO_ResOld,
22468     &ett_gsm_old_SendAuthenticationInfoResOld,
22469     &ett_gsm_old_SendAuthenticationInfoResOld_item,
22470     &ett_gsm_old_SendIdentificationResV2,
22471     &ett_gsm_old_TripletListold,
22472     &ett_gsm_old_AuthenticationTriplet_v2,
22473     &ett_gsm_old_SIWFSSignallingModifyArg,
22474     &ett_gsm_old_SIWFSSignallingModifyRes,
22475     &ett_gsm_old_SecureTransportArg,
22476     &ett_gsm_old_SecureTransportErrorParam,
22477     &ett_gsm_old_SecureTransportRes,
22478     &ett_gsm_old_SecurityHeader,
22479     &ett_gsm_old_OriginalComponentIdentifier,
22480     &ett_gsm_old_OperationCode,
22481     &ett_gsm_old_ErrorCode,
22482     &ett_gsm_old_PlmnContainer_U,
22483     &ett_gsm_old_T_operatorSS_Code,
22484     &ett_gsm_old_ForwardSM_Arg,
22485     &ett_gsm_old_SM_RP_DAold,
22486     &ett_gsm_old_SM_RP_OAold,
22487     &ett_gsm_old_SendRoutingInfoArgV2,
22488     &ett_gsm_old_SendRoutingInfoResV2,
22489
22490 /* --- Module SS-DataTypes --- --- ---                                        */
22491
22492     &ett_gsm_ss_NotifySS_Arg,
22493     &ett_gsm_ss_ForwardChargeAdviceArg,
22494     &ett_gsm_ss_ChargingInformation,
22495     &ett_gsm_ss_ForwardCUG_InfoArg,
22496     &ett_gsm_ss_ECT_Indicator,
22497     &ett_gsm_ss_NameIndicator,
22498     &ett_gsm_ss_Name,
22499     &ett_gsm_ss_NameSet,
22500     &ett_gsm_ss_RDN,
22501     &ett_gsm_ss_RemotePartyNumber,
22502     &ett_gsm_ss_AccessRegisterCCEntryArg,
22503     &ett_gsm_ss_CallDeflectionArg,
22504     &ett_gsm_ss_UserUserServiceArg,
22505     &ett_gsm_ss_LocationNotificationArg,
22506     &ett_gsm_ss_LocationNotificationRes,
22507     &ett_gsm_ss_LCS_MOLRArg,
22508     &ett_gsm_ss_LCS_MOLRRes,
22509     &ett_gsm_ss_LCS_AreaEventRequestArg,
22510     &ett_gsm_ss_LCS_AreaEventReportArg,
22511     &ett_gsm_ss_LCS_AreaEventCancellationArg,
22512     &ett_gsm_ss_LCS_PeriodicLocationRequestArg,
22513     &ett_gsm_ss_LCS_PeriodicLocationRequestRes,
22514     &ett_gsm_ss_LCS_LocationUpdateArg,
22515     &ett_gsm_ss_LCS_LocationUpdateRes,
22516     &ett_gsm_ss_LCS_PeriodicLocationCancellationArg,
22517
22518 /* --- Module SS-Operations --- --- ---                                       */
22519
22520
22521 /*--- End of included file: packet-gsm_map-ettarr.c ---*/
22522 #line 2277 "packet-gsmmap-template.c"
22523   };
22524
22525   /* Register protocol */
22526   proto_gsm_map_dialogue =proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
22527
22528   register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);
22529   
22530   /* Register fields and subtrees */
22531   proto_register_field_array(proto_gsm_map, hf, array_length(hf));
22532   proto_register_subtree_array(ett, array_length(ett));
22533
22534   sms_dissector_table = register_dissector_table("gsm_map.sms_tpdu", 
22535                                                  "GSM SMS TPDU", FT_UINT8,
22536                                                  BASE_DEC);
22537
22538   gsm_map_tap = register_tap("gsm_map");
22539
22540
22541 /*--- Included file: packet-gsm_map-dis-tab.c ---*/
22542 #line 1 "packet-gsm_map-dis-tab.c"
22543
22544 /* --- Module MAP-DialogueInformation --- --- ---                             */
22545
22546   register_ber_oid_dissector("0.4.0.0.1.1.1.1", dissect_gsm_map_dialogue_MAP_DialoguePDU_PDU, proto_gsm_map_dialogue, "map-DialogueAS");
22547
22548
22549 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
22550
22551
22552
22553 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
22554
22555
22556
22557 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
22558
22559
22560
22561 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
22562
22563
22564
22565 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
22566
22567
22568
22569 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
22570
22571
22572
22573 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
22574
22575
22576
22577 /* --- Module MAP-Errors --- --- ---                                          */
22578
22579
22580
22581 /* --- Module MAP-Protocol --- --- ---                                        */
22582
22583
22584
22585 /* --- Module DummyMAP --- --- ---                                            */
22586
22587
22588
22589 /* --- Module SS-DataTypes --- --- ---                                        */
22590
22591
22592
22593 /* --- Module SS-Operations --- --- ---                                       */
22594
22595
22596
22597 /*--- End of included file: packet-gsm_map-dis-tab.c ---*/
22598 #line 2295 "packet-gsmmap-template.c"
22599   oid_add_from_string("ericsson-gsm-Map-Ext","1.2.826.0.1249.58.1.0" );
22600   oid_add_from_string("accessTypeNotAllowed-id","1.3.12.2.1107.3.66.1.2");
22601   /*oid_add_from_string("map-ac networkLocUp(1) version3(3)","0.4.0.0.1.0.1.3" );
22602    *
22603    * Register our configuration options, particularly our ssn:s
22604    * Set default SSNs
22605    */
22606   range_convert_str(&global_ssn_range, "6-9", MAX_SSN);
22607   ssn_range = range_empty();
22608
22609
22610   gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
22611
22612   prefs_register_range_preference(gsm_map_module, "tcap.ssn", "TCAP SSNs",
22613                                   "TCAP Subsystem numbers used for GSM MAP",
22614                                   &global_ssn_range, MAX_SSN);
22615 }
22616
22617