Try to fix "defined but not used" warnings.
[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 /* XXX see bug 1852:
10  *
11  * packet-gsm_map.c: There are 1174 display filter fields registered.  Most are
12  * prefixed appropriately as "gsm_map", but many others are prefixed as
13  * "gsm_old", or even "gad", "gsm_ss", or with no prefix at all.  I don't know
14  * if the ones with "gsm_old" are simply obsolete display filter fields or if
15  * they should be prefixed as "gsm_map.old." or what.  Similar uncertainties
16  * for the others. Someone more knowledgeable than I am with respect to this
17  * dissector should provide a patch for it.
18  */
19
20 /* packet-gsm_map-template.c
21  * Routines for GSM MobileApplication packet dissection
22  * including GSM SS.
23  * Copyright 2004 - 2008 , Anders Broman <anders.broman [AT] ericsson.com>
24  * Based on the dissector by:
25  * Felix Fei <felix.fei [AT] utstar.com>
26  * and Michael Lum <mlum [AT] telostech.com>
27  *
28  * $Id$
29  *
30  * Wireshark - Network traffic analyzer
31  * By Gerald Combs <gerald@wireshark.org>
32  * Copyright 1998 Gerald Combs
33  *
34  * This program is free software; you can redistribute it and/or
35  * modify it under the terms of the GNU General Public License
36  * as published by the Free Software Foundation; either version 2
37  * of the License, or (at your option) any later version.
38  *
39  * This program is distributed in the hope that it will be useful,
40  * but WITHOUT ANY WARRANTY; without even the implied warranty of
41  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
42  * GNU General Public License for more details.
43  *
44  * You should have received a copy of the GNU General Public License
45  * along with this program; if not, write to the Free Software
46  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
47  * References GSM MAP: 
48  * ETSI TS 129 002
49  * Updated to ETSI TS 129 002 V7.5.0 (3GPP TS 29.002 V7.5.0 (2006-09) Release 7)
50  * Updated to ETSI TS 129 002 V8.4.0 (3GPP TS 29.002 V8.1.0 (2007-06) Release 8)
51  * References GSM SS
52  * References: 3GPP TS 24.080
53  */
54
55 #ifdef HAVE_CONFIG_H
56 # include "config.h"
57 #endif
58
59 #include <glib.h>
60 #include <math.h>
61 #include <epan/packet.h>
62 #include <epan/prefs.h>
63 #include <epan/conversation.h>
64 #include <epan/tap.h>
65 #include <epan/emem.h>
66 #include <epan/oids.h>
67 #include "epan/expert.h"
68
69 #include <stdio.h>
70 #include <string.h>
71
72 #include <epan/asn1.h>
73 #include "packet-ber.h"
74 #include "packet-per.h"
75 #include "packet-q931.h"
76 #include "packet-gsm_map.h"
77 #include "packet-gsm_a_common.h"
78 #include "packet-tcap.h"
79 #include "packet-e164.h"
80 #include "packet-e212.h"
81 #include "packet-smpp.h"
82 #include "packet-gsm_sms.h"
83 #include "packet-ranap.h"
84
85 #define PNAME  "GSM Mobile Application"
86 #define PSNAME "GSM_MAP"
87 #define PFNAME "gsm_map"
88
89 /* Initialize the protocol and registered fields */
90 int proto_gsm_map = -1;
91 int proto_gsm_map_dialogue = -1;
92
93 static int hf_gsm_map_old_Component_PDU = -1;
94 static int hf_gsm_map_getPassword = -1;
95 static int hf_gsm_map_currentPassword = -1;
96 static int hf_gsm_map_extension = -1;
97 static int hf_gsm_map_nature_of_number = -1;
98 static int hf_gsm_map_number_plan = -1;
99 static int hf_gsm_map_isdn_address_digits = -1;
100 static int hf_gsm_map_address_digits = -1;
101 static int hf_gsm_map_servicecentreaddress_digits = -1;
102 static int hf_gsm_map_imsi_digits = -1;
103 static int hf_gsm_map_TBCD_digits = -1;
104 static int hf_gsm_map_Ss_Status_unused = -1;
105 static int hf_gsm_map_Ss_Status_q_bit = -1;
106 static int hf_gsm_map_Ss_Status_p_bit = -1;
107 static int hf_gsm_map_Ss_Status_r_bit = -1;
108 static int hf_gsm_map_Ss_Status_a_bit = -1;
109 static int hf_gsm_map_notification_to_forwarding_party = -1;
110 static int hf_gsm_map_redirecting_presentation = -1;
111 static int hf_gsm_map_notification_to_calling_party = -1;
112 static int hf_gsm_map_forwarding_reason = -1;
113 static int hf_gsm_map_pdp_type_org = -1;
114 static int hf_gsm_map_etsi_pdp_type_number = -1;
115 static int hf_gsm_map_ietf_pdp_type_number = -1;
116 static int hf_gsm_map_ext_qos_subscribed_pri = -1;
117
118 static int hf_gsm_map_qos_traffic_cls = -1;
119 static int hf_gsm_map_qos_del_order = -1;
120 static int hf_gsm_map_qos_del_of_err_sdu = -1;
121 static int hf_gsm_map_qos_ber = -1;
122 static int hf_gsm_map_qos_sdu_err_rat = -1;
123 static int hf_gsm_map_qos_traff_hdl_pri = -1;
124 static int hf_gsm_map_qos_max_sdu = -1;
125 static int hf_gsm_map_max_brate_ulink = -1;
126 static int hf_gsm_map_max_brate_dlink = -1;
127 static int hf_gsm_map_qos_transfer_delay = -1;
128 static int hf_gsm_map_guaranteed_max_brate_ulink = -1;
129 static int hf_gsm_map_guaranteed_max_brate_dlink = -1;
130 static int hf_gsm_map_GSNAddress_IPv4 = -1;
131 static int hf_gsm_map_GSNAddress_IPv6 = -1;
132 static int hf_gsm_map_geo_loc_type_of_shape = -1;
133 static int hf_gsm_map_geo_loc_sign_of_lat       = -1;
134 static int hf_gsm_map_geo_loc_deg_of_lat =-1;
135 static int hf_gsm_map_geo_loc_deg_of_long =-1;
136 static int hf_gsm_map_geo_loc_uncertainty_code = -1;
137 static int hf_gsm_map_geo_loc_uncertainty_semi_major = -1;
138 static int hf_gsm_map_geo_loc_uncertainty_semi_minor = -1;
139 static int hf_gsm_map_geo_loc_orientation_of_major_axis = -1;
140 static int hf_gsm_map_geo_loc_uncertainty_altitude = -1;
141 static int hf_gsm_map_geo_loc_confidence = -1;
142 static int hf_gsm_map_geo_loc_no_of_points = -1;
143 static int hf_gsm_map_geo_loc_D = -1;
144 static int hf_gsm_map_geo_loc_altitude = -1;
145 static int hf_gsm_map_geo_loc_inner_radius = -1;
146 static int hf_gsm_map_geo_loc_uncertainty_radius = -1;
147 static int hf_gsm_map_geo_loc_offset_angle = -1;
148 static int hf_gsm_map_geo_loc_included_angle = -1;
149 static int hf_gsm_map_ranap_service_Handover = -1;
150 static int hf_gsm_map_IntegrityProtectionInformation = -1;
151 static int hf_gsm_map_EncryptionInformation = -1;
152 static int hf_gsm_map_PlmnContainer_PDU = -1;
153 static int hf_gsm_map_ss_SS_UserData = -1;
154 static int hf_gsm_map_cbs_coding_grp = -1;
155 static int hf_gsm_map_cbs_coding_grp0_lang = -1;
156 static int hf_gsm_map_cbs_coding_grp1_lang = -1;
157 static int hf_gsm_map_cbs_coding_grp2_lang = -1;
158 static int hf_gsm_map_cbs_coding_grp3_lang = -1;
159 static int hf_gsm_map_cbs_coding_grp4_7_comp = -1;
160 static int hf_gsm_map_cbs_coding_grp4_7_class_ind = -1;
161 static int hf_gsm_map_cbs_coding_grp4_7_char_set = -1;
162 static int hf_gsm_map_cbs_coding_grp4_7_class = -1;
163 static int hf_gsm_map_cbs_coding_grp15_mess_code = -1;
164 static int hf_gsm_map_cbs_coding_grp15_class = -1;
165 static int hf_gsm_map_tmsi = -1;
166
167
168 /*--- Included file: packet-gsm_map-hf.c ---*/
169 #line 1 "packet-gsm_map-hf.c"
170
171 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
172
173 static int hf_gsm_map_privateExtensionList = -1;  /* PrivateExtensionList */
174 static int hf_gsm_map_pcs_Extensions = -1;        /* PCS_Extensions */
175 static int hf_gsm_map_slr_Arg_PCS_Extensions = -1;  /* SLR_Arg_PCS_Extensions */
176 static int hf_gsm_map_PrivateExtensionList_item = -1;  /* PrivateExtension */
177 static int hf_gsm_map_extId = -1;                 /* T_extId */
178 static int hf_gsm_map_extType = -1;               /* T_extType */
179 static int hf_gsm_map_na_ESRK_Request = -1;       /* NULL */
180
181 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
182
183 static int hf_gsm_map_protocolId = -1;            /* ProtocolId */
184 static int hf_gsm_map_signalInfo = -1;            /* SignalInfo */
185 static int hf_gsm_map_extensionContainer = -1;    /* ExtensionContainer */
186 static int hf_gsm_map_ext_ProtocolId = -1;        /* Ext_ProtocolId */
187 static int hf_gsm_map_accessNetworkProtocolId = -1;  /* AccessNetworkProtocolId */
188 static int hf_gsm_map_signalInfo_01 = -1;         /* LongSignalInfo */
189 static int hf_gsm_map_imsi = -1;                  /* IMSI */
190 static int hf_gsm_map_imsi_WithLMSI = -1;         /* IMSI_WithLMSI */
191 static int hf_gsm_map_lmsi = -1;                  /* LMSI */
192 static int hf_gsm_map_HLR_List_item = -1;         /* HLR_Id */
193 static int hf_gsm_map_naea_PreferredCIC = -1;     /* NAEA_CIC */
194 static int hf_gsm_map_msisdn = -1;                /* ISDN_AddressString */
195 static int hf_gsm_map_externalAddress = -1;       /* ISDN_AddressString */
196 static int hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength = -1;  /* CellGlobalIdOrServiceAreaIdFixedLength */
197 static int hf_gsm_map_laiFixedLength = -1;        /* LAIFixedLength */
198 static int hf_gsm_map_bearerService = -1;         /* BearerServiceCode */
199 static int hf_gsm_map_teleservice = -1;           /* TeleserviceCode */
200 static int hf_gsm_map_ext_BearerService = -1;     /* Ext_BearerServiceCode */
201 static int hf_gsm_map_ext_Teleservice = -1;       /* Ext_TeleserviceCode */
202 static int hf_gsm_map_maximumentitledPriority = -1;  /* EMLPP_Priority */
203 static int hf_gsm_map_defaultPriority = -1;       /* EMLPP_Priority */
204 static int hf_gsm_map_ss_Code = -1;               /* SS_Code */
205 static int hf_gsm_map_ss_Status = -1;             /* Ext_SS_Status */
206 static int hf_gsm_map_nbrSB = -1;                 /* MaxMC_Bearers */
207 static int hf_gsm_map_nbrUser = -1;               /* MC_Bearers */
208
209 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
210
211 static int hf_gsm_map_ss_ss_Code = -1;            /* SS_Code */
212 static int hf_gsm_map_ss_basicService = -1;       /* BasicServiceCode */
213 static int hf_gsm_map_ss_forwardedToNumber = -1;  /* AddressString */
214 static int hf_gsm_map_ss_forwardedToSubaddress = -1;  /* ISDN_SubaddressString */
215 static int hf_gsm_map_ss_noReplyConditionTime = -1;  /* NoReplyConditionTime */
216 static int hf_gsm_map_ss_defaultPriority = -1;    /* EMLPP_Priority */
217 static int hf_gsm_map_ss_nbrUser = -1;            /* MC_Bearers */
218 static int hf_gsm_map_ss_longFTN_Supported = -1;  /* NULL */
219 static int hf_gsm_map_ss_forwardingInfo = -1;     /* ForwardingInfo */
220 static int hf_gsm_map_ss_callBarringInfo = -1;    /* CallBarringInfo */
221 static int hf_gsm_map_ss_ss_Data = -1;            /* SS_Data */
222 static int hf_gsm_map_ss_forwardingFeatureList = -1;  /* ForwardingFeatureList */
223 static int hf_gsm_map_ss_ForwardingFeatureList_item = -1;  /* ForwardingFeature */
224 static int hf_gsm_map_ss_ss_Status = -1;          /* SS_Status */
225 static int hf_gsm_map_ss_forwardedToNumber_01 = -1;  /* ISDN_AddressString */
226 static int hf_gsm_map_ss_forwardingOptions = -1;  /* ForwardingOptions */
227 static int hf_gsm_map_ss_longForwardedToNumber = -1;  /* FTN_AddressString */
228 static int hf_gsm_map_ss_callBarringFeatureList = -1;  /* CallBarringFeatureList */
229 static int hf_gsm_map_ss_CallBarringFeatureList_item = -1;  /* CallBarringFeature */
230 static int hf_gsm_map_ss_ss_SubscriptionOption = -1;  /* SS_SubscriptionOption */
231 static int hf_gsm_map_ss_basicServiceGroupList = -1;  /* BasicServiceGroupList */
232 static int hf_gsm_map_ss_cliRestrictionOption = -1;  /* CliRestrictionOption */
233 static int hf_gsm_map_ss_overrideCategory = -1;   /* OverrideCategory */
234 static int hf_gsm_map_ss_maximumEntitledPriority = -1;  /* EMLPP_Priority */
235 static int hf_gsm_map_ss_ccbs_FeatureList = -1;   /* CCBS_FeatureList */
236 static int hf_gsm_map_ss_nbrSB = -1;              /* MaxMC_Bearers */
237 static int hf_gsm_map_ss_nbrSN = -1;              /* MC_Bearers */
238 static int hf_gsm_map_ss_CCBS_FeatureList_item = -1;  /* CCBS_Feature */
239 static int hf_gsm_map_ss_ccbs_Index = -1;         /* CCBS_Index */
240 static int hf_gsm_map_ss_b_subscriberNumber = -1;  /* ISDN_AddressString */
241 static int hf_gsm_map_ss_b_subscriberSubaddress = -1;  /* ISDN_SubaddressString */
242 static int hf_gsm_map_ss_basicServiceGroup = -1;  /* BasicServiceCode */
243 static int hf_gsm_map_ss_genericServiceInfo = -1;  /* GenericServiceInfo */
244 static int hf_gsm_map_ss_ussd_DataCodingScheme = -1;  /* USSD_DataCodingScheme */
245 static int hf_gsm_map_ss_ussd_String = -1;        /* USSD_String */
246 static int hf_gsm_map_ss_alertingPattern = -1;    /* AlertingPattern */
247 static int hf_gsm_map_ss_msisdn = -1;             /* ISDN_AddressString */
248 static int hf_gsm_map_ss_SS_List_item = -1;       /* SS_Code */
249 static int hf_gsm_map_ss_BasicServiceGroupList_item = -1;  /* BasicServiceCode */
250 static int hf_gsm_map_ss_imsi = -1;               /* IMSI */
251 static int hf_gsm_map_ss_ss_Event = -1;           /* SS_Code */
252 static int hf_gsm_map_ss_ss_EventSpecification = -1;  /* SS_EventSpecification */
253 static int hf_gsm_map_ss_extensionContainer = -1;  /* ExtensionContainer */
254 static int hf_gsm_map_ss_ccbs_RequestState = -1;  /* CCBS_RequestState */
255 static int hf_gsm_map_ss_SS_EventSpecification_item = -1;  /* AddressString */
256 static int hf_gsm_map_ss_ccbs_Data = -1;          /* CCBS_Data */
257 static int hf_gsm_map_ss_ccbs_Feature = -1;       /* CCBS_Feature */
258 static int hf_gsm_map_ss_translatedB_Number = -1;  /* ISDN_AddressString */
259 static int hf_gsm_map_ss_serviceIndicator = -1;   /* ServiceIndicator */
260 static int hf_gsm_map_ss_callInfo = -1;           /* ExternalSignalInfo */
261 static int hf_gsm_map_ss_networkSignalInfo = -1;  /* ExternalSignalInfo */
262 /* named bits */
263 static int hf_gsm_map_ss_ServiceIndicator_clir_invoked = -1;
264 static int hf_gsm_map_ss_ServiceIndicator_camel_invoked = -1;
265
266 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
267
268 static int hf_gsm_map_er_roamingNotAllowedCause = -1;  /* RoamingNotAllowedCause */
269 static int hf_gsm_map_er_extensionContainer = -1;  /* ExtensionContainer */
270 static int hf_gsm_map_er_additionalRoamingNotAllowedCause = -1;  /* AdditionalRoamingNotAllowedCause */
271 static int hf_gsm_map_er_callBarringCause = -1;   /* CallBarringCause */
272 static int hf_gsm_map_er_extensibleCallBarredParam = -1;  /* ExtensibleCallBarredParam */
273 static int hf_gsm_map_er_unauthorisedMessageOriginator = -1;  /* NULL */
274 static int hf_gsm_map_er_cug_RejectCause = -1;    /* CUG_RejectCause */
275 static int hf_gsm_map_er_ss_Code = -1;            /* SS_Code */
276 static int hf_gsm_map_er_basicService = -1;       /* BasicServiceCode */
277 static int hf_gsm_map_er_ss_Status = -1;          /* SS_Status */
278 static int hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause = -1;  /* SM_EnumeratedDeliveryFailureCause */
279 static int hf_gsm_map_er_diagnosticInfo = -1;     /* SignalInfo */
280 static int hf_gsm_map_er_absentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
281 static int hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
282 static int hf_gsm_map_er_networkResource = -1;    /* NetworkResource */
283 static int hf_gsm_map_er_extensibleSystemFailureParam = -1;  /* ExtensibleSystemFailureParam */
284 static int hf_gsm_map_er_additionalNetworkResource = -1;  /* AdditionalNetworkResource */
285 static int hf_gsm_map_er_failureCauseParam = -1;  /* FailureCauseParam */
286 static int hf_gsm_map_er_shapeOfLocationEstimateNotSupported = -1;  /* NULL */
287 static int hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode = -1;  /* NULL */
288 static int hf_gsm_map_er_unknownSubscriberDiagnostic = -1;  /* UnknownSubscriberDiagnostic */
289 static int hf_gsm_map_er_absentSubscriberReason = -1;  /* AbsentSubscriberReason */
290 static int hf_gsm_map_er_ccbs_Possible = -1;      /* NULL */
291 static int hf_gsm_map_er_ccbs_Busy = -1;          /* NULL */
292 static int hf_gsm_map_er_gprsConnectionSuspended = -1;  /* NULL */
293 static int hf_gsm_map_er_unauthorizedLCSClient_Diagnostic = -1;  /* UnauthorizedLCSClient_Diagnostic */
294 static int hf_gsm_map_er_positionMethodFailure_Diagnostic = -1;  /* PositionMethodFailure_Diagnostic */
295
296 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
297
298 static int hf_gsm_map_sm_msisdn = -1;             /* ISDN_AddressString */
299 static int hf_gsm_map_sm_sm_RP_PRI = -1;          /* BOOLEAN */
300 static int hf_gsm_map_sm_serviceCentreAddress = -1;  /* AddressString */
301 static int hf_gsm_map_sm_extensionContainer = -1;  /* ExtensionContainer */
302 static int hf_gsm_map_sm_gprsSupportIndicator = -1;  /* NULL */
303 static int hf_gsm_map_sm_sm_RP_MTI = -1;          /* SM_RP_MTI */
304 static int hf_gsm_map_sm_sm_RP_SMEA = -1;         /* SM_RP_SMEA */
305 static int hf_gsm_map_sm_sm_deliveryNotIntended = -1;  /* SM_DeliveryNotIntended */
306 static int hf_gsm_map_sm_imsi = -1;               /* IMSI */
307 static int hf_gsm_map_sm_locationInfoWithLMSI = -1;  /* LocationInfoWithLMSI */
308 static int hf_gsm_map_sm_networkNode_Number = -1;  /* ISDN_AddressString */
309 static int hf_gsm_map_sm_lmsi = -1;               /* LMSI */
310 static int hf_gsm_map_sm_gprsNodeIndicator = -1;  /* NULL */
311 static int hf_gsm_map_sm_additional_Number = -1;  /* Additional_Number */
312 static int hf_gsm_map_sm_msc_Number = -1;         /* ISDN_AddressString */
313 static int hf_gsm_map_sm_sgsn_Number = -1;        /* ISDN_AddressString */
314 static int hf_gsm_map_sm_sm_RP_DA = -1;           /* SM_RP_DA */
315 static int hf_gsm_map_sm_sm_RP_OA = -1;           /* SM_RP_OA */
316 static int hf_gsm_map_sm_sm_RP_UI = -1;           /* SignalInfo */
317 static int hf_gsm_map_sm_moreMessagesToSend = -1;  /* NULL */
318 static int hf_gsm_map_sm_serviceCentreAddressDA = -1;  /* AddressString */
319 static int hf_gsm_map_sm_noSM_RP_DA = -1;         /* NULL */
320 static int hf_gsm_map_sm_msisdn_01 = -1;          /* T_msisdn */
321 static int hf_gsm_map_sm_serviceCentreAddressOA = -1;  /* T_serviceCentreAddressOA */
322 static int hf_gsm_map_sm_noSM_RP_OA = -1;         /* NULL */
323 static int hf_gsm_map_sm_sm_DeliveryOutcome = -1;  /* SM_DeliveryOutcome */
324 static int hf_gsm_map_sm_absentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
325 static int hf_gsm_map_sm_deliveryOutcomeIndicator = -1;  /* NULL */
326 static int hf_gsm_map_sm_additionalSM_DeliveryOutcome = -1;  /* SM_DeliveryOutcome */
327 static int hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
328 static int hf_gsm_map_sm_ip_sm_gw_Indicator = -1;  /* NULL */
329 static int hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome = -1;  /* SM_DeliveryOutcome */
330 static int hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
331 static int hf_gsm_map_sm_storedMSISDN = -1;       /* ISDN_AddressString */
332 static int hf_gsm_map_sm_mw_Status = -1;          /* MW_Status */
333 static int hf_gsm_map_sm_alertReason = -1;        /* AlertReason */
334 static int hf_gsm_map_sm_alertReasonIndicator = -1;  /* NULL */
335 static int hf_gsm_map_sm_additionalAlertReasonIndicator = -1;  /* NULL */
336 static int hf_gsm_map_sm_asciCallReference = -1;  /* ASCI_CallReference */
337 static int hf_gsm_map_sm_dispatcherList = -1;     /* DispatcherList */
338 static int hf_gsm_map_sm_ongoingCall = -1;        /* NULL */
339 static int hf_gsm_map_sm_DispatcherList_item = -1;  /* ISDN_AddressString */
340 /* named bits */
341 static int hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded = -1;
342 static int hf_gsm_map_sm_MW_Status_mnrf_Set = -1;
343 static int hf_gsm_map_sm_MW_Status_mcef_Set = -1;
344 static int hf_gsm_map_sm_MW_Status_mnrg_Set = -1;
345
346 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
347
348 static int hf_gsm_map_om_imsi = -1;               /* IMSI */
349 static int hf_gsm_map_om_traceReference = -1;     /* TraceReference */
350 static int hf_gsm_map_om_traceType = -1;          /* TraceType */
351 static int hf_gsm_map_om_omc_Id = -1;             /* AddressString */
352 static int hf_gsm_map_om_extensionContainer = -1;  /* ExtensionContainer */
353 static int hf_gsm_map_om_traceReference2 = -1;    /* TraceReference2 */
354 static int hf_gsm_map_om_traceDepthList = -1;     /* TraceDepthList */
355 static int hf_gsm_map_om_traceNE_TypeList = -1;   /* TraceNE_TypeList */
356 static int hf_gsm_map_om_traceInterfaceList = -1;  /* TraceInterfaceList */
357 static int hf_gsm_map_om_traceEventList = -1;     /* TraceEventList */
358 static int hf_gsm_map_om_msc_s_TraceDepth = -1;   /* TraceDepth */
359 static int hf_gsm_map_om_mgw_TraceDepth = -1;     /* TraceDepth */
360 static int hf_gsm_map_om_sgsn_TraceDepth = -1;    /* TraceDepth */
361 static int hf_gsm_map_om_ggsn_TraceDepth = -1;    /* TraceDepth */
362 static int hf_gsm_map_om_rnc_TraceDepth = -1;     /* TraceDepth */
363 static int hf_gsm_map_om_bmsc_TraceDepth = -1;    /* TraceDepth */
364 static int hf_gsm_map_om_msc_s_List = -1;         /* MSC_S_InterfaceList */
365 static int hf_gsm_map_om_mgw_List = -1;           /* MGW_InterfaceList */
366 static int hf_gsm_map_om_sgsn_List = -1;          /* SGSN_InterfaceList */
367 static int hf_gsm_map_om_ggsn_List = -1;          /* GGSN_InterfaceList */
368 static int hf_gsm_map_om_rnc_List = -1;           /* RNC_InterfaceList */
369 static int hf_gsm_map_om_bmsc_List = -1;          /* BMSC_InterfaceList */
370 static int hf_gsm_map_om_msc_s_List_01 = -1;      /* MSC_S_EventList */
371 static int hf_gsm_map_om_mgw_List_01 = -1;        /* MGW_EventList */
372 static int hf_gsm_map_om_sgsn_List_01 = -1;       /* SGSN_EventList */
373 static int hf_gsm_map_om_ggsn_List_01 = -1;       /* GGSN_EventList */
374 static int hf_gsm_map_om_bmsc_List_01 = -1;       /* BMSC_EventList */
375 static int hf_gsm_map_om_traceRecordingSessionReference = -1;  /* TraceRecordingSessionReference */
376 static int hf_gsm_map_om_rnc_InterfaceList = -1;  /* RNC_InterfaceList */
377 static int hf_gsm_map_om_msc_s_InterfaceList = -1;  /* MSC_S_InterfaceList */
378 static int hf_gsm_map_om_msc_s_EventList = -1;    /* MSC_S_EventList */
379 static int hf_gsm_map_om_mgw_InterfaceList = -1;  /* MGW_InterfaceList */
380 static int hf_gsm_map_om_mgw_EventList = -1;      /* MGW_EventList */
381 static int hf_gsm_map_om_traceSupportIndicator = -1;  /* NULL */
382 /* named bits */
383 static int hf_gsm_map_om_TraceNE_TypeList_msc_s = -1;
384 static int hf_gsm_map_om_TraceNE_TypeList_mgw = -1;
385 static int hf_gsm_map_om_TraceNE_TypeList_sgsn = -1;
386 static int hf_gsm_map_om_TraceNE_TypeList_ggsn = -1;
387 static int hf_gsm_map_om_TraceNE_TypeList_rnc = -1;
388 static int hf_gsm_map_om_TraceNE_TypeList_bm_sc = -1;
389 static int hf_gsm_map_om_MSC_S_InterfaceList_a = -1;
390 static int hf_gsm_map_om_MSC_S_InterfaceList_iu = -1;
391 static int hf_gsm_map_om_MSC_S_InterfaceList_mc = -1;
392 static int hf_gsm_map_om_MSC_S_InterfaceList_map_g = -1;
393 static int hf_gsm_map_om_MSC_S_InterfaceList_map_b = -1;
394 static int hf_gsm_map_om_MSC_S_InterfaceList_map_e = -1;
395 static int hf_gsm_map_om_MSC_S_InterfaceList_map_f = -1;
396 static int hf_gsm_map_om_MSC_S_InterfaceList_cap = -1;
397 static int hf_gsm_map_om_MSC_S_InterfaceList_map_d = -1;
398 static int hf_gsm_map_om_MSC_S_InterfaceList_map_c = -1;
399 static int hf_gsm_map_om_MGW_InterfaceList_mc = -1;
400 static int hf_gsm_map_om_MGW_InterfaceList_nb_up = -1;
401 static int hf_gsm_map_om_MGW_InterfaceList_iu_up = -1;
402 static int hf_gsm_map_om_SGSN_InterfaceList_gb = -1;
403 static int hf_gsm_map_om_SGSN_InterfaceList_iu = -1;
404 static int hf_gsm_map_om_SGSN_InterfaceList_gn = -1;
405 static int hf_gsm_map_om_SGSN_InterfaceList_map_gr = -1;
406 static int hf_gsm_map_om_SGSN_InterfaceList_map_gd = -1;
407 static int hf_gsm_map_om_SGSN_InterfaceList_map_gf = -1;
408 static int hf_gsm_map_om_SGSN_InterfaceList_gs = -1;
409 static int hf_gsm_map_om_SGSN_InterfaceList_ge = -1;
410 static int hf_gsm_map_om_GGSN_InterfaceList_gn = -1;
411 static int hf_gsm_map_om_GGSN_InterfaceList_gi = -1;
412 static int hf_gsm_map_om_GGSN_InterfaceList_gmb = -1;
413 static int hf_gsm_map_om_RNC_InterfaceList_iu = -1;
414 static int hf_gsm_map_om_RNC_InterfaceList_iur = -1;
415 static int hf_gsm_map_om_RNC_InterfaceList_iub = -1;
416 static int hf_gsm_map_om_RNC_InterfaceList_uu = -1;
417 static int hf_gsm_map_om_BMSC_InterfaceList_gmb = -1;
418 static int hf_gsm_map_om_MSC_S_EventList_mo_mtCall = -1;
419 static int hf_gsm_map_om_MSC_S_EventList_mo_mt_sms = -1;
420 static int hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach = -1;
421 static int hf_gsm_map_om_MSC_S_EventList_handovers = -1;
422 static int hf_gsm_map_om_MSC_S_EventList_ss = -1;
423 static int hf_gsm_map_om_MGW_EventList_context = -1;
424 static int hf_gsm_map_om_SGSN_EventList_pdpContext = -1;
425 static int hf_gsm_map_om_SGSN_EventList_mo_mt_sms = -1;
426 static int hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach = -1;
427 static int hf_gsm_map_om_SGSN_EventList_mbmsContext = -1;
428 static int hf_gsm_map_om_GGSN_EventList_pdpContext = -1;
429 static int hf_gsm_map_om_GGSN_EventList_mbmsContext = -1;
430 static int hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation = -1;
431
432 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
433
434 static int hf_gsm_map_ms_imsi = -1;               /* IMSI */
435 static int hf_gsm_map_ms_msc_Number = -1;         /* ISDN_AddressString */
436 static int hf_gsm_map_ms_vlr_Number = -1;         /* ISDN_AddressString */
437 static int hf_gsm_map_ms_lmsi = -1;               /* LMSI */
438 static int hf_gsm_map_ms_extensionContainer = -1;  /* ExtensionContainer */
439 static int hf_gsm_map_ms_vlr_Capability = -1;     /* VLR_Capability */
440 static int hf_gsm_map_ms_informPreviousNetworkEntity = -1;  /* NULL */
441 static int hf_gsm_map_ms_cs_LCS_NotSupportedByUE = -1;  /* NULL */
442 static int hf_gsm_map_ms_v_gmlc_Address = -1;     /* GSN_Address */
443 static int hf_gsm_map_ms_add_info = -1;           /* ADD_Info */
444 static int hf_gsm_map_ms_supportedCamelPhases = -1;  /* SupportedCamelPhases */
445 static int hf_gsm_map_ms_solsaSupportIndicator = -1;  /* NULL */
446 static int hf_gsm_map_ms_istSupportIndicator = -1;  /* IST_SupportIndicator */
447 static int hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity = -1;  /* SuperChargerInfo */
448 static int hf_gsm_map_ms_longFTN_Supported = -1;  /* NULL */
449 static int hf_gsm_map_ms_supportedLCS_CapabilitySets = -1;  /* SupportedLCS_CapabilitySets */
450 static int hf_gsm_map_ms_offeredCamel4CSIs = -1;  /* OfferedCamel4CSIs */
451 static int hf_gsm_map_ms_supportedRAT_TypesIndicator = -1;  /* SupportedRAT_Types */
452 static int hf_gsm_map_ms_longGroupID_Supported = -1;  /* NULL */
453 static int hf_gsm_map_ms_sendSubscriberData = -1;  /* NULL */
454 static int hf_gsm_map_ms_subscriberDataStored = -1;  /* AgeIndicator */
455 static int hf_gsm_map_ms_hlr_Number = -1;         /* ISDN_AddressString */
456 static int hf_gsm_map_ms_add_Capability = -1;     /* NULL */
457 static int hf_gsm_map_ms_imeisv = -1;             /* IMEI */
458 static int hf_gsm_map_ms_skipSubscriberDataUpdate = -1;  /* NULL */
459 static int hf_gsm_map_ms_identity = -1;           /* Identity */
460 static int hf_gsm_map_ms_cancellationType = -1;   /* CancellationType */
461 static int hf_gsm_map_ms_sgsn_Number = -1;        /* ISDN_AddressString */
462 static int hf_gsm_map_ms_freezeTMSI = -1;         /* NULL */
463 static int hf_gsm_map_ms_freezeP_TMSI = -1;       /* NULL */
464 static int hf_gsm_map_ms_tmsi = -1;               /* TMSI */
465 static int hf_gsm_map_ms_numberOfRequestedVectors = -1;  /* NumberOfRequestedVectors */
466 static int hf_gsm_map_ms_segmentationProhibited = -1;  /* NULL */
467 static int hf_gsm_map_ms_previous_LAI = -1;       /* LAIFixedLength */
468 static int hf_gsm_map_ms_hopCounter = -1;         /* HopCounter */
469 static int hf_gsm_map_ms_authenticationSetList = -1;  /* AuthenticationSetList */
470 static int hf_gsm_map_ms_currentSecurityContext = -1;  /* CurrentSecurityContext */
471 static int hf_gsm_map_ms_tripletList = -1;        /* TripletList */
472 static int hf_gsm_map_ms_quintupletList = -1;     /* QuintupletList */
473 static int hf_gsm_map_ms_TripletList_item = -1;   /* AuthenticationTriplet */
474 static int hf_gsm_map_ms_QuintupletList_item = -1;  /* AuthenticationQuintuplet */
475 static int hf_gsm_map_ms_rand = -1;               /* RAND */
476 static int hf_gsm_map_ms_sres = -1;               /* SRES */
477 static int hf_gsm_map_ms_kc = -1;                 /* Kc */
478 static int hf_gsm_map_ms_xres = -1;               /* XRES */
479 static int hf_gsm_map_ms_ck = -1;                 /* CK */
480 static int hf_gsm_map_ms_ik = -1;                 /* IK */
481 static int hf_gsm_map_ms_autn = -1;               /* AUTN */
482 static int hf_gsm_map_ms_gsm_SecurityContextData = -1;  /* GSM_SecurityContextData */
483 static int hf_gsm_map_ms_umts_SecurityContextData = -1;  /* UMTS_SecurityContextData */
484 static int hf_gsm_map_ms_cksn = -1;               /* Cksn */
485 static int hf_gsm_map_ms_ksi = -1;                /* KSI */
486 static int hf_gsm_map_ms_failureCause = -1;       /* FailureCause */
487 static int hf_gsm_map_ms_re_attempt = -1;         /* BOOLEAN */
488 static int hf_gsm_map_ms_accessType = -1;         /* AccessType */
489 static int hf_gsm_map_ms_sgsn_Address = -1;       /* GSN_Address */
490 static int hf_gsm_map_ms_sgsn_Capability = -1;    /* SGSN_Capability */
491 static int hf_gsm_map_ms_ps_LCS_NotSupportedByUE = -1;  /* NULL */
492 static int hf_gsm_map_ms_gprsEnhancementsSupportIndicator = -1;  /* NULL */
493 static int hf_gsm_map_ms_smsCallBarringSupportIndicator = -1;  /* NULL */
494 static int hf_gsm_map_ms_an_APDU = -1;            /* AccessNetworkSignalInfo */
495 static int hf_gsm_map_ms_integrityProtectionInfo = -1;  /* IntegrityProtectionInformation */
496 static int hf_gsm_map_ms_encryptionInfo = -1;     /* EncryptionInformation */
497 static int hf_gsm_map_ms_keyStatus = -1;          /* KeyStatus */
498 static int hf_gsm_map_ms_allowedGSM_Algorithms = -1;  /* AllowedGSM_Algorithms */
499 static int hf_gsm_map_ms_allowedUMTS_Algorithms = -1;  /* AllowedUMTS_Algorithms */
500 static int hf_gsm_map_ms_radioResourceInformation = -1;  /* RadioResourceInformation */
501 static int hf_gsm_map_ms_radioResourceList = -1;  /* RadioResourceList */
502 static int hf_gsm_map_ms_bssmap_ServiceHandover = -1;  /* BSSMAP_ServiceHandover */
503 static int hf_gsm_map_ms_ranap_ServiceHandover = -1;  /* RANAP_ServiceHandover */
504 static int hf_gsm_map_ms_bssmap_ServiceHandoverList = -1;  /* BSSMAP_ServiceHandoverList */
505 static int hf_gsm_map_ms_currentlyUsedCodec = -1;  /* Codec */
506 static int hf_gsm_map_ms_iuSupportedCodecsList = -1;  /* SupportedCodecsList */
507 static int hf_gsm_map_ms_rab_ConfigurationIndicator = -1;  /* NULL */
508 static int hf_gsm_map_ms_iuSelectedCodec = -1;    /* Codec */
509 static int hf_gsm_map_ms_alternativeChannelType = -1;  /* RadioResourceInformation */
510 static int hf_gsm_map_ms_tracePropagationList = -1;  /* TracePropagationList */
511 static int hf_gsm_map_ms_integrityProtectionAlgorithms = -1;  /* PermittedIntegrityProtectionAlgorithms */
512 static int hf_gsm_map_ms_encryptionAlgorithms = -1;  /* PermittedEncryptionAlgorithms */
513 static int hf_gsm_map_ms_targetCellId = -1;       /* GlobalCellId */
514 static int hf_gsm_map_ms_ho_NumberNotRequired = -1;  /* NULL */
515 static int hf_gsm_map_ms_targetRNCId = -1;        /* RNCId */
516 static int hf_gsm_map_ms_multipleBearerRequested = -1;  /* NULL */
517 static int hf_gsm_map_ms_rab_Id = -1;             /* RAB_Id */
518 static int hf_gsm_map_ms_asciCallReference = -1;  /* ASCI_CallReference */
519 static int hf_gsm_map_ms_geran_classmark = -1;    /* GERAN_Classmark */
520 static int hf_gsm_map_ms_iuCurrentlyUsedCodec = -1;  /* Codec */
521 static int hf_gsm_map_ms_uesbi_Iu = -1;           /* UESBI_Iu */
522 static int hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item = -1;  /* BSSMAP_ServiceHandoverInfo */
523 static int hf_gsm_map_ms_RadioResourceList_item = -1;  /* RadioResource */
524 static int hf_gsm_map_ms_handoverNumber = -1;     /* ISDN_AddressString */
525 static int hf_gsm_map_ms_relocationNumberList = -1;  /* RelocationNumberList */
526 static int hf_gsm_map_ms_multicallBearerInfo = -1;  /* MulticallBearerInfo */
527 static int hf_gsm_map_ms_multipleBearerNotSupported = -1;  /* NULL */
528 static int hf_gsm_map_ms_selectedUMTS_Algorithms = -1;  /* SelectedUMTS_Algorithms */
529 static int hf_gsm_map_ms_chosenRadioResourceInformation = -1;  /* ChosenRadioResourceInformation */
530 static int hf_gsm_map_ms_iuAvailableCodecsList = -1;  /* CodecList */
531 static int hf_gsm_map_ms_integrityProtectionAlgorithm = -1;  /* ChosenIntegrityProtectionAlgorithm */
532 static int hf_gsm_map_ms_encryptionAlgorithm = -1;  /* ChosenEncryptionAlgorithm */
533 static int hf_gsm_map_ms_chosenChannelInfo = -1;  /* ChosenChannelInfo */
534 static int hf_gsm_map_ms_chosenSpeechVersion = -1;  /* ChosenSpeechVersion */
535 static int hf_gsm_map_ms_targetMSC_Number = -1;   /* ISDN_AddressString */
536 static int hf_gsm_map_ms_selectedRab_Id = -1;     /* RAB_Id */
537 static int hf_gsm_map_ms_selectedGSM_Algorithm = -1;  /* SelectedGSM_Algorithm */
538 static int hf_gsm_map_ms_iUSelectedCodec = -1;    /* Codec */
539 static int hf_gsm_map_ms_utranCodecList = -1;     /* CodecList */
540 static int hf_gsm_map_ms_geranCodecList = -1;     /* CodecList */
541 static int hf_gsm_map_ms_codec1 = -1;             /* Codec */
542 static int hf_gsm_map_ms_codec2 = -1;             /* Codec */
543 static int hf_gsm_map_ms_codec3 = -1;             /* Codec */
544 static int hf_gsm_map_ms_codec4 = -1;             /* Codec */
545 static int hf_gsm_map_ms_codec5 = -1;             /* Codec */
546 static int hf_gsm_map_ms_codec6 = -1;             /* Codec */
547 static int hf_gsm_map_ms_codec7 = -1;             /* Codec */
548 static int hf_gsm_map_ms_codec8 = -1;             /* Codec */
549 static int hf_gsm_map_ms_RelocationNumberList_item = -1;  /* RelocationNumber */
550 static int hf_gsm_map_ms_immediateResponsePreferred = -1;  /* NULL */
551 static int hf_gsm_map_ms_re_synchronisationInfo = -1;  /* Re_synchronisationInfo */
552 static int hf_gsm_map_ms_requestingNodeType = -1;  /* RequestingNodeType */
553 static int hf_gsm_map_ms_requestingPLMN_Id = -1;  /* PLMN_Id */
554 static int hf_gsm_map_ms_auts = -1;               /* AUTS */
555 static int hf_gsm_map_ms_imei = -1;               /* IMEI */
556 static int hf_gsm_map_ms_requestedEquipmentInfo = -1;  /* RequestedEquipmentInfo */
557 static int hf_gsm_map_ms_equipmentStatus = -1;    /* EquipmentStatus */
558 static int hf_gsm_map_ms_bmuef = -1;              /* UESBI_Iu */
559 static int hf_gsm_map_ms_uesbi_IuA = -1;          /* UESBI_IuA */
560 static int hf_gsm_map_ms_uesbi_IuB = -1;          /* UESBI_IuB */
561 static int hf_gsm_map_ms_gmlc_List = -1;          /* GMLC_List */
562 static int hf_gsm_map_ms_lcs_PrivacyExceptionList = -1;  /* LCS_PrivacyExceptionList */
563 static int hf_gsm_map_ms_molr_List = -1;          /* MOLR_List */
564 static int hf_gsm_map_ms_add_lcs_PrivacyExceptionList = -1;  /* LCS_PrivacyExceptionList */
565 static int hf_gsm_map_ms_GMLC_List_item = -1;     /* ISDN_AddressString */
566 static int hf_gsm_map_ms_GPRSDataList_item = -1;  /* PDP_Context */
567 static int hf_gsm_map_ms_pdp_ContextId = -1;      /* ContextId */
568 static int hf_gsm_map_ms_pdp_Type = -1;           /* PDP_Type */
569 static int hf_gsm_map_ms_pdp_Address = -1;        /* PDP_Address */
570 static int hf_gsm_map_ms_qos_Subscribed = -1;     /* QoS_Subscribed */
571 static int hf_gsm_map_ms_vplmnAddressAllowed = -1;  /* NULL */
572 static int hf_gsm_map_ms_apn = -1;                /* APN */
573 static int hf_gsm_map_ms_ext_QoS_Subscribed = -1;  /* Ext_QoS_Subscribed */
574 static int hf_gsm_map_ms_pdp_ChargingCharacteristics = -1;  /* ChargingCharacteristics */
575 static int hf_gsm_map_ms_ext2_QoS_Subscribed = -1;  /* Ext2_QoS_Subscribed */
576 static int hf_gsm_map_ms_ext3_QoS_Subscribed = -1;  /* Ext3_QoS_Subscribed */
577 static int hf_gsm_map_ms_completeDataListIncluded = -1;  /* NULL */
578 static int hf_gsm_map_ms_gprsDataList = -1;       /* GPRSDataList */
579 static int hf_gsm_map_ms_gprs_CSI = -1;           /* GPRS_CSI */
580 static int hf_gsm_map_ms_mo_sms_CSI = -1;         /* SMS_CSI */
581 static int hf_gsm_map_ms_mt_sms_CSI = -1;         /* SMS_CSI */
582 static int hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList = -1;  /* MT_smsCAMELTDP_CriteriaList */
583 static int hf_gsm_map_ms_mg_csi = -1;             /* MG_CSI */
584 static int hf_gsm_map_ms_gprs_CamelTDPDataList = -1;  /* GPRS_CamelTDPDataList */
585 static int hf_gsm_map_ms_camelCapabilityHandling = -1;  /* CamelCapabilityHandling */
586 static int hf_gsm_map_ms_notificationToCSE = -1;  /* NULL */
587 static int hf_gsm_map_ms_csi_Active = -1;         /* NULL */
588 static int hf_gsm_map_ms_GPRS_CamelTDPDataList_item = -1;  /* GPRS_CamelTDPData */
589 static int hf_gsm_map_ms_gprs_TriggerDetectionPoint = -1;  /* GPRS_TriggerDetectionPoint */
590 static int hf_gsm_map_ms_serviceKey = -1;         /* ServiceKey */
591 static int hf_gsm_map_ms_gsmSCF_Address = -1;     /* ISDN_AddressString */
592 static int hf_gsm_map_ms_defaultSessionHandling = -1;  /* DefaultGPRS_Handling */
593 static int hf_gsm_map_ms_LSADataList_item = -1;   /* LSAData */
594 static int hf_gsm_map_ms_lsaIdentity = -1;        /* LSAIdentity */
595 static int hf_gsm_map_ms_lsaAttributes = -1;      /* LSAAttributes */
596 static int hf_gsm_map_ms_lsaActiveModeIndicator = -1;  /* NULL */
597 static int hf_gsm_map_ms_lsaOnlyAccessIndicator = -1;  /* LSAOnlyAccessIndicator */
598 static int hf_gsm_map_ms_lsaDataList = -1;        /* LSADataList */
599 static int hf_gsm_map_ms_BearerServiceList_item = -1;  /* Ext_BearerServiceCode */
600 static int hf_gsm_map_ms_TeleserviceList_item = -1;  /* Ext_TeleserviceCode */
601 static int hf_gsm_map_ms_odb_GeneralData = -1;    /* ODB_GeneralData */
602 static int hf_gsm_map_ms_odb_HPLMN_Data = -1;     /* ODB_HPLMN_Data */
603 static int hf_gsm_map_ms_Ext_SS_InfoList_item = -1;  /* Ext_SS_Info */
604 static int hf_gsm_map_ms_forwardingInfo = -1;     /* Ext_ForwInfo */
605 static int hf_gsm_map_ms_callBarringInfo = -1;    /* Ext_CallBarInfo */
606 static int hf_gsm_map_ms_cug_Info = -1;           /* CUG_Info */
607 static int hf_gsm_map_ms_ss_Data = -1;            /* Ext_SS_Data */
608 static int hf_gsm_map_ms_emlpp_Info = -1;         /* EMLPP_Info */
609 static int hf_gsm_map_ms_ss_Code = -1;            /* SS_Code */
610 static int hf_gsm_map_ms_forwardingFeatureList = -1;  /* Ext_ForwFeatureList */
611 static int hf_gsm_map_ms_Ext_ForwFeatureList_item = -1;  /* Ext_ForwFeature */
612 static int hf_gsm_map_ms_basicService = -1;       /* Ext_BasicServiceCode */
613 static int hf_gsm_map_ms_ss_Status = -1;          /* Ext_SS_Status */
614 static int hf_gsm_map_ms_forwardedToNumber = -1;  /* ISDN_AddressString */
615 static int hf_gsm_map_ms_forwardedToSubaddress = -1;  /* ISDN_SubaddressString */
616 static int hf_gsm_map_ms_forwardingOptions = -1;  /* T_forwardingOptions */
617 static int hf_gsm_map_ms_noReplyConditionTime = -1;  /* Ext_NoRepCondTime */
618 static int hf_gsm_map_ms_longForwardedToNumber = -1;  /* FTN_AddressString */
619 static int hf_gsm_map_ms_callBarringFeatureList = -1;  /* Ext_CallBarFeatureList */
620 static int hf_gsm_map_ms_Ext_CallBarFeatureList_item = -1;  /* Ext_CallBarringFeature */
621 static int hf_gsm_map_ms_cug_SubscriptionList = -1;  /* CUG_SubscriptionList */
622 static int hf_gsm_map_ms_cug_FeatureList = -1;    /* CUG_FeatureList */
623 static int hf_gsm_map_ms_CUG_SubscriptionList_item = -1;  /* CUG_Subscription */
624 static int hf_gsm_map_ms_cug_Index = -1;          /* CUG_Index */
625 static int hf_gsm_map_ms_cug_Interlock = -1;      /* CUG_Interlock */
626 static int hf_gsm_map_ms_intraCUG_Options = -1;   /* IntraCUG_Options */
627 static int hf_gsm_map_ms_basicServiceGroupList = -1;  /* Ext_BasicServiceGroupList */
628 static int hf_gsm_map_ms_CUG_FeatureList_item = -1;  /* CUG_Feature */
629 static int hf_gsm_map_ms_Ext_BasicServiceGroupList_item = -1;  /* Ext_BasicServiceCode */
630 static int hf_gsm_map_ms_preferentialCUG_Indicator = -1;  /* CUG_Index */
631 static int hf_gsm_map_ms_interCUG_Restrictions = -1;  /* InterCUG_Restrictions */
632 static int hf_gsm_map_ms_ss_SubscriptionOption = -1;  /* SS_SubscriptionOption */
633 static int hf_gsm_map_ms_LCS_PrivacyExceptionList_item = -1;  /* LCS_PrivacyClass */
634 static int hf_gsm_map_ms_notificationToMSUser = -1;  /* NotificationToMSUser */
635 static int hf_gsm_map_ms_externalClientList = -1;  /* ExternalClientList */
636 static int hf_gsm_map_ms_plmnClientList = -1;     /* PLMNClientList */
637 static int hf_gsm_map_ms_ext_externalClientList = -1;  /* Ext_ExternalClientList */
638 static int hf_gsm_map_ms_serviceTypeList = -1;    /* ServiceTypeList */
639 static int hf_gsm_map_ms_ExternalClientList_item = -1;  /* ExternalClient */
640 static int hf_gsm_map_ms_PLMNClientList_item = -1;  /* LCSClientInternalID */
641 static int hf_gsm_map_ms_Ext_ExternalClientList_item = -1;  /* ExternalClient */
642 static int hf_gsm_map_ms_clientIdentity = -1;     /* LCSClientExternalID */
643 static int hf_gsm_map_ms_gmlc_Restriction = -1;   /* GMLC_Restriction */
644 static int hf_gsm_map_ms_ServiceTypeList_item = -1;  /* ServiceType */
645 static int hf_gsm_map_ms_serviceTypeIdentity = -1;  /* LCSServiceTypeID */
646 static int hf_gsm_map_ms_MOLR_List_item = -1;     /* MOLR_Class */
647 static int hf_gsm_map_ms_ZoneCodeList_item = -1;  /* ZoneCode */
648 static int hf_gsm_map_ms_teleserviceList = -1;    /* TeleserviceList */
649 static int hf_gsm_map_ms_bearerServiceList = -1;  /* BearerServiceList */
650 static int hf_gsm_map_ms_ss_List = -1;            /* SS_List */
651 static int hf_gsm_map_ms_regionalSubscriptionResponse = -1;  /* RegionalSubscriptionResponse */
652 static int hf_gsm_map_ms_basicServiceList = -1;   /* BasicServiceList */
653 static int hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature = -1;  /* NULL */
654 static int hf_gsm_map_ms_regionalSubscriptionIdentifier = -1;  /* ZoneCode */
655 static int hf_gsm_map_ms_vbsGroupIndication = -1;  /* NULL */
656 static int hf_gsm_map_ms_vgcsGroupIndication = -1;  /* NULL */
657 static int hf_gsm_map_ms_camelSubscriptionInfoWithdraw = -1;  /* NULL */
658 static int hf_gsm_map_ms_gprsSubscriptionDataWithdraw = -1;  /* GPRSSubscriptionDataWithdraw */
659 static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature = -1;  /* NULL */
660 static int hf_gsm_map_ms_lsaInformationWithdraw = -1;  /* LSAInformationWithdraw */
661 static int hf_gsm_map_ms_gmlc_ListWithdraw = -1;  /* NULL */
662 static int hf_gsm_map_ms_istInformationWithdraw = -1;  /* NULL */
663 static int hf_gsm_map_ms_specificCSI_Withdraw = -1;  /* SpecificCSI_Withdraw */
664 static int hf_gsm_map_ms_chargingCharacteristicsWithdraw = -1;  /* NULL */
665 static int hf_gsm_map_ms_allGPRSData = -1;        /* NULL */
666 static int hf_gsm_map_ms_contextIdList = -1;      /* ContextIdList */
667 static int hf_gsm_map_ms_ContextIdList_item = -1;  /* ContextId */
668 static int hf_gsm_map_ms_allLSAData = -1;         /* NULL */
669 static int hf_gsm_map_ms_lsaIdentityList = -1;    /* LSAIdentityList */
670 static int hf_gsm_map_ms_LSAIdentityList_item = -1;  /* LSAIdentity */
671 static int hf_gsm_map_ms_BasicServiceList_item = -1;  /* Ext_BasicServiceCode */
672 static int hf_gsm_map_ms_o_CSI = -1;              /* O_CSI */
673 static int hf_gsm_map_ms_ss_CSI = -1;             /* SS_CSI */
674 static int hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
675 static int hf_gsm_map_ms_tif_CSI = -1;            /* NULL */
676 static int hf_gsm_map_ms_m_CSI = -1;              /* M_CSI */
677 static int hf_gsm_map_ms_vt_CSI = -1;             /* T_CSI */
678 static int hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
679 static int hf_gsm_map_ms_d_CSI = -1;              /* D_CSI */
680 static int hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item = -1;  /* MT_smsCAMELTDP_Criteria */
681 static int hf_gsm_map_ms_sms_TriggerDetectionPoint = -1;  /* SMS_TriggerDetectionPoint */
682 static int hf_gsm_map_ms_tpdu_TypeCriterion = -1;  /* TPDU_TypeCriterion */
683 static int hf_gsm_map_ms_TPDU_TypeCriterion_item = -1;  /* MT_SMS_TPDU_Type */
684 static int hf_gsm_map_ms_dp_AnalysedInfoCriteriaList = -1;  /* DP_AnalysedInfoCriteriaList */
685 static int hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item = -1;  /* DP_AnalysedInfoCriterium */
686 static int hf_gsm_map_ms_dialledNumber = -1;      /* ISDN_AddressString */
687 static int hf_gsm_map_ms_defaultCallHandling = -1;  /* DefaultCallHandling */
688 static int hf_gsm_map_ms_ss_CamelData = -1;       /* SS_CamelData */
689 static int hf_gsm_map_ms_ss_EventList = -1;       /* SS_EventList */
690 static int hf_gsm_map_ms_SS_EventList_item = -1;  /* SS_Code */
691 static int hf_gsm_map_ms_o_BcsmCamelTDPDataList = -1;  /* O_BcsmCamelTDPDataList */
692 static int hf_gsm_map_ms_csiActive = -1;          /* NULL */
693 static int hf_gsm_map_ms_O_BcsmCamelTDPDataList_item = -1;  /* O_BcsmCamelTDPData */
694 static int hf_gsm_map_ms_o_BcsmTriggerDetectionPoint = -1;  /* O_BcsmTriggerDetectionPoint */
695 static int hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item = -1;  /* O_BcsmCamelTDP_Criteria */
696 static int hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item = -1;  /* T_BCSM_CAMEL_TDP_Criteria */
697 static int hf_gsm_map_ms_destinationNumberCriteria = -1;  /* DestinationNumberCriteria */
698 static int hf_gsm_map_ms_basicServiceCriteria = -1;  /* BasicServiceCriteria */
699 static int hf_gsm_map_ms_callTypeCriteria = -1;   /* CallTypeCriteria */
700 static int hf_gsm_map_ms_o_CauseValueCriteria = -1;  /* O_CauseValueCriteria */
701 static int hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint = -1;  /* T_BcsmTriggerDetectionPoint */
702 static int hf_gsm_map_ms_t_CauseValueCriteria = -1;  /* T_CauseValueCriteria */
703 static int hf_gsm_map_ms_matchType = -1;          /* MatchType */
704 static int hf_gsm_map_ms_destinationNumberList = -1;  /* DestinationNumberList */
705 static int hf_gsm_map_ms_destinationNumberLengthList = -1;  /* DestinationNumberLengthList */
706 static int hf_gsm_map_ms_DestinationNumberList_item = -1;  /* ISDN_AddressString */
707 static int hf_gsm_map_ms_DestinationNumberLengthList_item = -1;  /* INTEGER_1_maxNumOfISDN_AddressDigits */
708 static int hf_gsm_map_ms_BasicServiceCriteria_item = -1;  /* Ext_BasicServiceCode */
709 static int hf_gsm_map_ms_O_CauseValueCriteria_item = -1;  /* CauseValue */
710 static int hf_gsm_map_ms_T_CauseValueCriteria_item = -1;  /* CauseValue */
711 static int hf_gsm_map_ms_sms_CAMEL_TDP_DataList = -1;  /* SMS_CAMEL_TDP_DataList */
712 static int hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item = -1;  /* SMS_CAMEL_TDP_Data */
713 static int hf_gsm_map_ms_defaultSMS_Handling = -1;  /* DefaultSMS_Handling */
714 static int hf_gsm_map_ms_mobilityTriggers = -1;   /* MobilityTriggers */
715 static int hf_gsm_map_ms_MobilityTriggers_item = -1;  /* MM_Code */
716 static int hf_gsm_map_ms_t_BcsmCamelTDPDataList = -1;  /* T_BcsmCamelTDPDataList */
717 static int hf_gsm_map_ms_T_BcsmCamelTDPDataList_item = -1;  /* T_BcsmCamelTDPData */
718 static int hf_gsm_map_ms_t_BcsmTriggerDetectionPoint = -1;  /* T_BcsmTriggerDetectionPoint */
719 static int hf_gsm_map_ms_ggsn_Address = -1;       /* GSN_Address */
720 static int hf_gsm_map_ms_ggsn_Number = -1;        /* ISDN_AddressString */
721 static int hf_gsm_map_ms_mobileNotReachableReason = -1;  /* AbsentSubscriberDiagnosticSM */
722 static int hf_gsm_map_ms_hlr_List = -1;           /* HLR_List */
723 static int hf_gsm_map_ms_msNotReachable = -1;     /* NULL */
724 static int hf_gsm_map_ms_VBSDataList_item = -1;   /* VoiceBroadcastData */
725 static int hf_gsm_map_ms_VGCSDataList_item = -1;  /* VoiceGroupCallData */
726 static int hf_gsm_map_ms_groupId = -1;            /* GroupId */
727 static int hf_gsm_map_ms_additionalSubscriptions = -1;  /* AdditionalSubscriptions */
728 static int hf_gsm_map_ms_additionalInfo = -1;     /* AdditionalInfo */
729 static int hf_gsm_map_ms_longGroupId = -1;        /* Long_GroupId */
730 static int hf_gsm_map_ms_groupid = -1;            /* GroupId */
731 static int hf_gsm_map_ms_broadcastInitEntitlement = -1;  /* NULL */
732 static int hf_gsm_map_ms_requestedInfo = -1;      /* RequestedInfo */
733 static int hf_gsm_map_ms_subscriberInfo = -1;     /* SubscriberInfo */
734 static int hf_gsm_map_ms_locationInformation = -1;  /* LocationInformation */
735 static int hf_gsm_map_ms_subscriberState = -1;    /* SubscriberState */
736 static int hf_gsm_map_ms_locationInformationGPRS = -1;  /* LocationInformationGPRS */
737 static int hf_gsm_map_ms_ps_SubscriberState = -1;  /* PS_SubscriberState */
738 static int hf_gsm_map_ms_ms_Classmark2 = -1;      /* MS_Classmark2 */
739 static int hf_gsm_map_ms_gprs_MS_Class = -1;      /* GPRSMSClass */
740 static int hf_gsm_map_ms_mnpInfoRes = -1;         /* MNPInfoRes */
741 static int hf_gsm_map_ms_routeingNumber = -1;     /* RouteingNumber */
742 static int hf_gsm_map_ms_msisdn = -1;             /* ISDN_AddressString */
743 static int hf_gsm_map_ms_numberPortabilityStatus = -1;  /* NumberPortabilityStatus */
744 static int hf_gsm_map_ms_mSNetworkCapability = -1;  /* MSNetworkCapability */
745 static int hf_gsm_map_ms_mSRadioAccessCapability = -1;  /* MSRadioAccessCapability */
746 static int hf_gsm_map_ms_locationInformation_01 = -1;  /* NULL */
747 static int hf_gsm_map_ms_subscriberState_01 = -1;  /* NULL */
748 static int hf_gsm_map_ms_currentLocation = -1;    /* NULL */
749 static int hf_gsm_map_ms_requestedDomain = -1;    /* DomainType */
750 static int hf_gsm_map_ms_imei_01 = -1;            /* NULL */
751 static int hf_gsm_map_ms_ms_classmark = -1;       /* NULL */
752 static int hf_gsm_map_ms_mnpRequestedInfo = -1;   /* NULL */
753 static int hf_gsm_map_ms_ageOfLocationInformation = -1;  /* AgeOfLocationInformation */
754 static int hf_gsm_map_ms_geographicalInformation = -1;  /* GeographicalInformation */
755 static int hf_gsm_map_ms_vlr_number = -1;         /* ISDN_AddressString */
756 static int hf_gsm_map_ms_locationNumber = -1;     /* LocationNumber */
757 static int hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI = -1;  /* CellGlobalIdOrServiceAreaIdOrLAI */
758 static int hf_gsm_map_ms_selectedLSA_Id = -1;     /* LSAIdentity */
759 static int hf_gsm_map_ms_geodeticInformation = -1;  /* GeodeticInformation */
760 static int hf_gsm_map_ms_currentLocationRetrieved = -1;  /* NULL */
761 static int hf_gsm_map_ms_sai_Present = -1;        /* NULL */
762 static int hf_gsm_map_ms_routeingAreaIdentity = -1;  /* RAIdentity */
763 static int hf_gsm_map_ms_selectedLSAIdentity = -1;  /* LSAIdentity */
764 static int hf_gsm_map_ms_assumedIdle = -1;        /* NULL */
765 static int hf_gsm_map_ms_camelBusy = -1;          /* NULL */
766 static int hf_gsm_map_ms_netDetNotReachable = -1;  /* NotReachableReason */
767 static int hf_gsm_map_ms_notProvidedFromVLR = -1;  /* NULL */
768 static int hf_gsm_map_ms_notProvidedFromSGSN = -1;  /* NULL */
769 static int hf_gsm_map_ms_ps_Detached = -1;        /* NULL */
770 static int hf_gsm_map_ms_ps_AttachedNotReachableForPaging = -1;  /* NULL */
771 static int hf_gsm_map_ms_ps_AttachedReachableForPaging = -1;  /* NULL */
772 static int hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging = -1;  /* PDP_ContextInfoList */
773 static int hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging = -1;  /* PDP_ContextInfoList */
774 static int hf_gsm_map_ms_PDP_ContextInfoList_item = -1;  /* PDP_ContextInfo */
775 static int hf_gsm_map_ms_pdp_ContextIdentifier = -1;  /* ContextId */
776 static int hf_gsm_map_ms_pdp_ContextActive = -1;  /* NULL */
777 static int hf_gsm_map_ms_apn_Subscribed = -1;     /* APN */
778 static int hf_gsm_map_ms_apn_InUse = -1;          /* APN */
779 static int hf_gsm_map_ms_nsapi = -1;              /* NSAPI */
780 static int hf_gsm_map_ms_transactionId = -1;      /* TransactionId */
781 static int hf_gsm_map_ms_teid_ForGnAndGp = -1;    /* TEID */
782 static int hf_gsm_map_ms_teid_ForIu = -1;         /* TEID */
783 static int hf_gsm_map_ms_qos_Subscribed_01 = -1;  /* Ext_QoS_Subscribed */
784 static int hf_gsm_map_ms_qos_Requested = -1;      /* Ext_QoS_Subscribed */
785 static int hf_gsm_map_ms_qos_Negotiated = -1;     /* Ext_QoS_Subscribed */
786 static int hf_gsm_map_ms_chargingId = -1;         /* GPRSChargingID */
787 static int hf_gsm_map_ms_chargingCharacteristics = -1;  /* ChargingCharacteristics */
788 static int hf_gsm_map_ms_rnc_Address = -1;        /* GSN_Address */
789 static int hf_gsm_map_ms_qos2_Subscribed = -1;    /* Ext2_QoS_Subscribed */
790 static int hf_gsm_map_ms_qos2_Requested = -1;     /* Ext2_QoS_Subscribed */
791 static int hf_gsm_map_ms_qos2_Negotiated = -1;    /* Ext2_QoS_Subscribed */
792 static int hf_gsm_map_ms_qos3_Subscribed = -1;    /* Ext3_QoS_Subscribed */
793 static int hf_gsm_map_ms_qos3_Requested = -1;     /* Ext3_QoS_Subscribed */
794 static int hf_gsm_map_ms_qos3_Negotiated = -1;    /* Ext3_QoS_Subscribed */
795 static int hf_gsm_map_ms_subscriberIdentity = -1;  /* SubscriberIdentity */
796 static int hf_gsm_map_ms_requestedSubscriptionInfo = -1;  /* RequestedSubscriptionInfo */
797 static int hf_gsm_map_ms_callForwardingData = -1;  /* CallForwardingData */
798 static int hf_gsm_map_ms_callBarringData = -1;    /* CallBarringData */
799 static int hf_gsm_map_ms_odb_Info = -1;           /* ODB_Info */
800 static int hf_gsm_map_ms_camel_SubscriptionInfo = -1;  /* CAMEL_SubscriptionInfo */
801 static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases = -1;  /* SupportedCamelPhases */
802 static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases = -1;  /* SupportedCamelPhases */
803 static int hf_gsm_map_ms_offeredCamel4CSIsInVLR = -1;  /* OfferedCamel4CSIs */
804 static int hf_gsm_map_ms_offeredCamel4CSIsInSGSN = -1;  /* OfferedCamel4CSIs */
805 static int hf_gsm_map_ms_msisdn_BS_List = -1;     /* MSISDN_BS_List */
806 static int hf_gsm_map_ms_requestedSS_Info = -1;   /* SS_ForBS_Code */
807 static int hf_gsm_map_ms_odb = -1;                /* NULL */
808 static int hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo = -1;  /* RequestedCAMEL_SubscriptionInfo */
809 static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01 = -1;  /* NULL */
810 static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01 = -1;  /* NULL */
811 static int hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo = -1;  /* AdditionalRequestedCAMEL_SubscriptionInfo */
812 static int hf_gsm_map_ms_msisdn_BS_List_01 = -1;  /* NULL */
813 static int hf_gsm_map_ms_MSISDN_BS_List_item = -1;  /* MSISDN_BS */
814 static int hf_gsm_map_ms_password = -1;           /* Password */
815 static int hf_gsm_map_ms_wrongPasswordAttemptsCounter = -1;  /* WrongPasswordAttemptsCounter */
816 static int hf_gsm_map_ms_odb_Data = -1;           /* ODB_Data */
817 static int hf_gsm_map_ms_t_CSI = -1;              /* T_CSI */
818 static int hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
819 static int hf_gsm_map_ms_tif_CSI_NotificationToCSE = -1;  /* NULL */
820 static int hf_gsm_map_ms_specificCSIDeletedList = -1;  /* SpecificCSI_Withdraw */
821 static int hf_gsm_map_ms_o_IM_CSI = -1;           /* O_CSI */
822 static int hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
823 static int hf_gsm_map_ms_d_IM_CSI = -1;           /* D_CSI */
824 static int hf_gsm_map_ms_vt_IM_CSI = -1;          /* T_CSI */
825 static int hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
826 static int hf_gsm_map_ms_modificationRequestFor_CF_Info = -1;  /* ModificationRequestFor_CF_Info */
827 static int hf_gsm_map_ms_modificationRequestFor_CB_Info = -1;  /* ModificationRequestFor_CB_Info */
828 static int hf_gsm_map_ms_modificationRequestFor_CSI = -1;  /* ModificationRequestFor_CSI */
829 static int hf_gsm_map_ms_modificationRequestFor_ODB_data = -1;  /* ModificationRequestFor_ODB_data */
830 static int hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data = -1;  /* ModificationRequestFor_IP_SM_GW_Data */
831 static int hf_gsm_map_ms_ss_InfoFor_CSE = -1;     /* Ext_SS_InfoFor_CSE */
832 static int hf_gsm_map_ms_forwardedToNumber_01 = -1;  /* AddressString */
833 static int hf_gsm_map_ms_modifyNotificationToCSE = -1;  /* ModificationInstruction */
834 static int hf_gsm_map_ms_odb_data = -1;           /* ODB_Data */
835 static int hf_gsm_map_ms_requestedCamel_SubscriptionInfo = -1;  /* RequestedCAMEL_SubscriptionInfo */
836 static int hf_gsm_map_ms_modifyCSI_State = -1;    /* ModificationInstruction */
837 static int hf_gsm_map_ms_modifyRegistrationStatus = -1;  /* ModificationInstruction */
838 static int hf_gsm_map_ms_forwardingInfoFor_CSE = -1;  /* Ext_ForwardingInfoFor_CSE */
839 static int hf_gsm_map_ms_callBarringInfoFor_CSE = -1;  /* Ext_CallBarringInfoFor_CSE */
840 static int hf_gsm_map_ms_allInformationSent = -1;  /* NULL */
841 static int hf_gsm_map_ms_eventMet = -1;           /* MM_Code */
842 static int hf_gsm_map_ms_supportedCAMELPhases = -1;  /* SupportedCamelPhases */
843 static int hf_gsm_map_ms_offeredCamel4Functionalities = -1;  /* OfferedCamel4Functionalities */
844 static int hf_gsm_map_ms_naea_PreferredCI = -1;   /* NAEA_PreferredCI */
845 static int hf_gsm_map_ms_gprsSubscriptionData = -1;  /* GPRSSubscriptionData */
846 static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature = -1;  /* NULL */
847 static int hf_gsm_map_ms_networkAccessMode = -1;  /* NetworkAccessMode */
848 static int hf_gsm_map_ms_lsaInformation = -1;     /* LSAInformation */
849 static int hf_gsm_map_ms_lmu_Indicator = -1;      /* NULL */
850 static int hf_gsm_map_ms_lcsInformation = -1;     /* LCSInformation */
851 static int hf_gsm_map_ms_istAlertTimer = -1;      /* IST_AlertTimerValue */
852 static int hf_gsm_map_ms_superChargerSupportedInHLR = -1;  /* AgeIndicator */
853 static int hf_gsm_map_ms_mc_SS_Info = -1;         /* MC_SS_Info */
854 static int hf_gsm_map_ms_cs_AllocationRetentionPriority = -1;  /* CS_AllocationRetentionPriority */
855 static int hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo = -1;  /* SGSN_CAMEL_SubscriptionInfo */
856 static int hf_gsm_map_ms_accessRestrictionData = -1;  /* AccessRestrictionData */
857 /* named bits */
858 static int hf_gsm_map_ms_SupportedRAT_Types_utran = -1;
859 static int hf_gsm_map_ms_SupportedRAT_Types_geran = -1;
860 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1 = -1;
861 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2 = -1;
862 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3 = -1;
863 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4 = -1;
864 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5 = -1;
865 static int hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus = -1;
866 static int hf_gsm_map_ms_RequestedEquipmentInfo_bmuef = -1;
867 static int hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed = -1;
868 static int hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed = -1;
869 static int hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred = -1;
870 static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred = -1;
871 static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred = -1;
872 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred = -1;
873 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred = -1;
874 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred = -1;
875 static int hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred = -1;
876 static int hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred = -1;
877 static int hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred = -1;
878 static int hf_gsm_map_ms_ODB_GeneralData_allECT_Barred = -1;
879 static int hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred = -1;
880 static int hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred = -1;
881 static int hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred = -1;
882 static int hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred = -1;
883 static int hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred = -1;
884 static int hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred = -1;
885 static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred = -1;
886 static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred = -1;
887 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred = -1;
888 static int hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred = -1;
889 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred = -1;
890 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred = -1;
891 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred = -1;
892 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred = -1;
893 static int hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred = -1;
894 static int hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred = -1;
895 static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred = -1;
896 static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred = -1;
897 static int hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred = -1;
898 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1 = -1;
899 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2 = -1;
900 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3 = -1;
901 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4 = -1;
902 static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi = -1;
903 static int hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi = -1;
904 static int hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi = -1;
905 static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi = -1;
906 static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi = -1;
907 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi = -1;
908 static int hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi = -1;
909 static int hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi = -1;
910 static int hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi = -1;
911 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi = -1;
912 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi = -1;
913 static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI = -1;
914 static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI = -1;
915 static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI = -1;
916 static int hf_gsm_map_ms_SupportedCamelPhases_phase1 = -1;
917 static int hf_gsm_map_ms_SupportedCamelPhases_phase2 = -1;
918 static int hf_gsm_map_ms_SupportedCamelPhases_phase3 = -1;
919 static int hf_gsm_map_ms_SupportedCamelPhases_phase4 = -1;
920 static int hf_gsm_map_ms_OfferedCamel4CSIs_o_csi = -1;
921 static int hf_gsm_map_ms_OfferedCamel4CSIs_d_csi = -1;
922 static int hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi = -1;
923 static int hf_gsm_map_ms_OfferedCamel4CSIs_t_csi = -1;
924 static int hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi = -1;
925 static int hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi = -1;
926 static int hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements = -1;
927 static int hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt = -1;
928 static int hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg = -1;
929 static int hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg = -1;
930 static int hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg = -1;
931 static int hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased = -1;
932 static int hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument = -1;
933 static int hf_gsm_map_ms_OfferedCamel4Functionalities_playTone = -1;
934 static int hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall = -1;
935 static int hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator = -1;
936 static int hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP = -1;
937 static int hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting = -1;
938 static int hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP = -1;
939 static int hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions = -1;
940 static int hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements = -1;
941 static int hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements = -1;
942 static int hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices = -1;
943 static int hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices = -1;
944 static int hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP = -1;
945 static int hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP = -1;
946 static int hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation = -1;
947 static int hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest = -1;
948 static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest = -1;
949 static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset = -1;
950
951 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
952
953 static int hf_gsm_map_ch_cug_Interlock = -1;      /* CUG_Interlock */
954 static int hf_gsm_map_ch_cug_OutgoingAccess = -1;  /* NULL */
955 static int hf_gsm_map_ch_extensionContainer = -1;  /* ExtensionContainer */
956 static int hf_gsm_map_ch_msisdn = -1;             /* ISDN_AddressString */
957 static int hf_gsm_map_ch_cug_CheckInfo = -1;      /* CUG_CheckInfo */
958 static int hf_gsm_map_ch_numberOfForwarding = -1;  /* NumberOfForwarding */
959 static int hf_gsm_map_ch_interrogationType = -1;  /* InterrogationType */
960 static int hf_gsm_map_ch_or_Interrogation = -1;   /* NULL */
961 static int hf_gsm_map_ch_or_Capability = -1;      /* OR_Phase */
962 static int hf_gsm_map_ch_gmsc_OrGsmSCF_Address = -1;  /* ISDN_AddressString */
963 static int hf_gsm_map_ch_callReferenceNumber = -1;  /* CallReferenceNumber */
964 static int hf_gsm_map_ch_forwardingReason = -1;   /* ForwardingReason */
965 static int hf_gsm_map_ch_basicServiceGroup = -1;  /* Ext_BasicServiceCode */
966 static int hf_gsm_map_ch_networkSignalInfo = -1;  /* ExternalSignalInfo */
967 static int hf_gsm_map_ch_camelInfo = -1;          /* CamelInfo */
968 static int hf_gsm_map_ch_suppressionOfAnnouncement = -1;  /* SuppressionOfAnnouncement */
969 static int hf_gsm_map_ch_alertingPattern = -1;    /* AlertingPattern */
970 static int hf_gsm_map_ch_ccbs_Call = -1;          /* NULL */
971 static int hf_gsm_map_ch_supportedCCBS_Phase = -1;  /* SupportedCCBS_Phase */
972 static int hf_gsm_map_ch_additionalSignalInfo = -1;  /* Ext_ExternalSignalInfo */
973 static int hf_gsm_map_ch_istSupportIndicator = -1;  /* IST_SupportIndicator */
974 static int hf_gsm_map_ch_pre_pagingSupported = -1;  /* NULL */
975 static int hf_gsm_map_ch_callDiversionTreatmentIndicator = -1;  /* CallDiversionTreatmentIndicator */
976 static int hf_gsm_map_ch_longFTN_Supported = -1;  /* NULL */
977 static int hf_gsm_map_ch_suppress_VT_CSI = -1;    /* NULL */
978 static int hf_gsm_map_ch_suppressIncomingCallBarring = -1;  /* NULL */
979 static int hf_gsm_map_ch_gsmSCF_InitiatedCall = -1;  /* NULL */
980 static int hf_gsm_map_ch_basicServiceGroup2 = -1;  /* Ext_BasicServiceCode */
981 static int hf_gsm_map_ch_networkSignalInfo2 = -1;  /* ExternalSignalInfo */
982 static int hf_gsm_map_ch_suppressMTSS = -1;       /* SuppressMTSS */
983 static int hf_gsm_map_ch_mtRoamingRetrySupported = -1;  /* NULL */
984 static int hf_gsm_map_ch_imsi = -1;               /* IMSI */
985 static int hf_gsm_map_ch_extendedRoutingInfo = -1;  /* ExtendedRoutingInfo */
986 static int hf_gsm_map_ch_cugSubscriptionFlag = -1;  /* NULL */
987 static int hf_gsm_map_ch_subscriberInfo = -1;     /* SubscriberInfo */
988 static int hf_gsm_map_ch_ss_List = -1;            /* SS_List */
989 static int hf_gsm_map_ch_basicService = -1;       /* Ext_BasicServiceCode */
990 static int hf_gsm_map_ch_forwardingInterrogationRequired = -1;  /* NULL */
991 static int hf_gsm_map_ch_vmsc_Address = -1;       /* ISDN_AddressString */
992 static int hf_gsm_map_ch_naea_PreferredCI = -1;   /* NAEA_PreferredCI */
993 static int hf_gsm_map_ch_ccbs_Indicators = -1;    /* CCBS_Indicators */
994 static int hf_gsm_map_ch_numberPortabilityStatus = -1;  /* NumberPortabilityStatus */
995 static int hf_gsm_map_ch_istAlertTimer = -1;      /* IST_AlertTimerValue */
996 static int hf_gsm_map_ch_supportedCamelPhasesInVMSC = -1;  /* SupportedCamelPhases */
997 static int hf_gsm_map_ch_offeredCamel4CSIsInVMSC = -1;  /* OfferedCamel4CSIs */
998 static int hf_gsm_map_ch_routingInfo2 = -1;       /* RoutingInfo */
999 static int hf_gsm_map_ch_ss_List2 = -1;           /* SS_List */
1000 static int hf_gsm_map_ch_basicService2 = -1;      /* Ext_BasicServiceCode */
1001 static int hf_gsm_map_ch_allowedServices = -1;    /* AllowedServices */
1002 static int hf_gsm_map_ch_unavailabilityCause = -1;  /* UnavailabilityCause */
1003 static int hf_gsm_map_ch_releaseResourcesSupported = -1;  /* NULL */
1004 static int hf_gsm_map_ch_gsm_BearerCapability = -1;  /* ExternalSignalInfo */
1005 static int hf_gsm_map_ch_ccbs_Possible = -1;      /* NULL */
1006 static int hf_gsm_map_ch_keepCCBS_CallIndicator = -1;  /* NULL */
1007 static int hf_gsm_map_ch_roamingNumber = -1;      /* ISDN_AddressString */
1008 static int hf_gsm_map_ch_forwardingData = -1;     /* ForwardingData */
1009 static int hf_gsm_map_ch_forwardedToNumber = -1;  /* ISDN_AddressString */
1010 static int hf_gsm_map_ch_forwardedToSubaddress = -1;  /* ISDN_SubaddressString */
1011 static int hf_gsm_map_ch_forwardingOptions = -1;  /* ForwardingOptions */
1012 static int hf_gsm_map_ch_longForwardedToNumber = -1;  /* FTN_AddressString */
1013 static int hf_gsm_map_ch_msc_Number = -1;         /* ISDN_AddressString */
1014 static int hf_gsm_map_ch_lmsi = -1;               /* LMSI */
1015 static int hf_gsm_map_ch_gmsc_Address = -1;       /* ISDN_AddressString */
1016 static int hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode = -1;  /* SupportedCamelPhases */
1017 static int hf_gsm_map_ch_orNotSupportedInGMSC = -1;  /* NULL */
1018 static int hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode = -1;  /* OfferedCamel4CSIs */
1019 static int hf_gsm_map_ch_o_CSI = -1;              /* O_CSI */
1020 static int hf_gsm_map_ch_uu_Data = -1;            /* UU_Data */
1021 static int hf_gsm_map_ch_allInformationSent = -1;  /* NULL */
1022 static int hf_gsm_map_ch_d_csi = -1;              /* D_CSI */
1023 static int hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
1024 static int hf_gsm_map_ch_mtRoamingRetry = -1;     /* NULL */
1025 static int hf_gsm_map_ch_uuIndicator = -1;        /* UUIndicator */
1026 static int hf_gsm_map_ch_uui = -1;                /* UUI */
1027 static int hf_gsm_map_ch_uusCFInteraction = -1;   /* NULL */
1028 static int hf_gsm_map_ch_supportedCamelPhases = -1;  /* SupportedCamelPhases */
1029 static int hf_gsm_map_ch_suppress_T_CSI = -1;     /* NULL */
1030 static int hf_gsm_map_ch_offeredCamel4CSIs = -1;  /* OfferedCamel4CSIs */
1031 static int hf_gsm_map_ch_routingInfo = -1;        /* RoutingInfo */
1032 static int hf_gsm_map_ch_camelRoutingInfo = -1;   /* CamelRoutingInfo */
1033 static int hf_gsm_map_ch_gmscCamelSubscriptionInfo = -1;  /* GmscCamelSubscriptionInfo */
1034 static int hf_gsm_map_ch_t_CSI = -1;              /* T_CSI */
1035 static int hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
1036 static int hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
1037 static int hf_gsm_map_ch_ccbs_Monitoring = -1;    /* ReportingState */
1038 static int hf_gsm_map_ch_ccbs_SubscriberStatus = -1;  /* CCBS_SubscriberStatus */
1039 static int hf_gsm_map_ch_eventReportData = -1;    /* EventReportData */
1040 static int hf_gsm_map_ch_callReportdata = -1;     /* CallReportData */
1041 static int hf_gsm_map_ch_monitoringMode = -1;     /* MonitoringMode */
1042 static int hf_gsm_map_ch_callOutcome = -1;        /* CallOutcome */
1043 static int hf_gsm_map_ch_callInfo = -1;           /* ExternalSignalInfo */
1044 static int hf_gsm_map_ch_ccbs_Feature = -1;       /* CCBS_Feature */
1045 static int hf_gsm_map_ch_translatedB_Number = -1;  /* ISDN_AddressString */
1046 static int hf_gsm_map_ch_replaceB_Number = -1;    /* NULL */
1047 static int hf_gsm_map_ch_ruf_Outcome = -1;        /* RUF_Outcome */
1048 static int hf_gsm_map_ch_istInformationWithdraw = -1;  /* NULL */
1049 static int hf_gsm_map_ch_callTerminationIndicator = -1;  /* CallTerminationIndicator */
1050 static int hf_gsm_map_ch_msrn = -1;               /* ISDN_AddressString */
1051 /* named bits */
1052 static int hf_gsm_map_ch_SuppressMTSS_suppressCUG = -1;
1053 static int hf_gsm_map_ch_SuppressMTSS_suppressCCBS = -1;
1054 static int hf_gsm_map_ch_AllowedServices_firstServiceAllowed = -1;
1055 static int hf_gsm_map_ch_AllowedServices_secondServiceAllowed = -1;
1056
1057 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
1058
1059 static int hf_gsm_map_lcs_mlcNumber = -1;         /* ISDN_AddressString */
1060 static int hf_gsm_map_lcs_targetMS = -1;          /* SubscriberIdentity */
1061 static int hf_gsm_map_lcs_extensionContainer = -1;  /* ExtensionContainer */
1062 static int hf_gsm_map_lcs_lcsLocationInfo = -1;   /* LCSLocationInfo */
1063 static int hf_gsm_map_lcs_v_gmlc_Address = -1;    /* GSN_Address */
1064 static int hf_gsm_map_lcs_h_gmlc_Address = -1;    /* GSN_Address */
1065 static int hf_gsm_map_lcs_ppr_Address = -1;       /* GSN_Address */
1066 static int hf_gsm_map_lcs_additional_v_gmlc_Address = -1;  /* GSN_Address */
1067 static int hf_gsm_map_lcs_networkNode_Number = -1;  /* ISDN_AddressString */
1068 static int hf_gsm_map_lcs_lmsi = -1;              /* LMSI */
1069 static int hf_gsm_map_lcs_gprsNodeIndicator = -1;  /* NULL */
1070 static int hf_gsm_map_lcs_additional_Number = -1;  /* Additional_Number */
1071 static int hf_gsm_map_lcs_supportedLCS_CapabilitySets = -1;  /* SupportedLCS_CapabilitySets */
1072 static int hf_gsm_map_lcs_additional_LCS_CapabilitySets = -1;  /* SupportedLCS_CapabilitySets */
1073 static int hf_gsm_map_lcs_locationType = -1;      /* LocationType */
1074 static int hf_gsm_map_lcs_mlc_Number = -1;        /* ISDN_AddressString */
1075 static int hf_gsm_map_lcs_lcs_ClientID = -1;      /* LCS_ClientID */
1076 static int hf_gsm_map_lcs_privacyOverride = -1;   /* NULL */
1077 static int hf_gsm_map_lcs_imsi = -1;              /* IMSI */
1078 static int hf_gsm_map_lcs_msisdn = -1;            /* ISDN_AddressString */
1079 static int hf_gsm_map_lcs_imei = -1;              /* IMEI */
1080 static int hf_gsm_map_lcs_lcs_Priority = -1;      /* LCS_Priority */
1081 static int hf_gsm_map_lcs_lcs_QoS = -1;           /* LCS_QoS */
1082 static int hf_gsm_map_lcs_supportedGADShapes = -1;  /* SupportedGADShapes */
1083 static int hf_gsm_map_lcs_lcs_ReferenceNumber = -1;  /* LCS_ReferenceNumber */
1084 static int hf_gsm_map_lcs_lcsServiceTypeID = -1;  /* LCSServiceTypeID */
1085 static int hf_gsm_map_lcs_lcsCodeword = -1;       /* LCSCodeword */
1086 static int hf_gsm_map_lcs_lcs_PrivacyCheck = -1;  /* LCS_PrivacyCheck */
1087 static int hf_gsm_map_lcs_areaEventInfo = -1;     /* AreaEventInfo */
1088 static int hf_gsm_map_lcs_mo_lrShortCircuitIndicator = -1;  /* NULL */
1089 static int hf_gsm_map_lcs_periodicLDRInfo = -1;   /* PeriodicLDRInfo */
1090 static int hf_gsm_map_lcs_reportingPLMNList = -1;  /* ReportingPLMNList */
1091 static int hf_gsm_map_lcs_locationEstimateType = -1;  /* LocationEstimateType */
1092 static int hf_gsm_map_lcs_deferredLocationEventType = -1;  /* DeferredLocationEventType */
1093 static int hf_gsm_map_lcs_lcsClientType = -1;     /* LCSClientType */
1094 static int hf_gsm_map_lcs_lcsClientExternalID = -1;  /* LCSClientExternalID */
1095 static int hf_gsm_map_lcs_lcsClientDialedByMS = -1;  /* AddressString */
1096 static int hf_gsm_map_lcs_lcsClientInternalID = -1;  /* LCSClientInternalID */
1097 static int hf_gsm_map_lcs_lcsClientName = -1;     /* LCSClientName */
1098 static int hf_gsm_map_lcs_lcsAPN = -1;            /* APN */
1099 static int hf_gsm_map_lcs_lcsRequestorID = -1;    /* LCSRequestorID */
1100 static int hf_gsm_map_lcs_dataCodingScheme = -1;  /* USSD_DataCodingScheme */
1101 static int hf_gsm_map_lcs_nameString = -1;        /* NameString */
1102 static int hf_gsm_map_lcs_lcs_FormatIndicator = -1;  /* LCS_FormatIndicator */
1103 static int hf_gsm_map_lcs_requestorIDString = -1;  /* RequestorIDString */
1104 static int hf_gsm_map_lcs_horizontal_accuracy = -1;  /* Horizontal_Accuracy */
1105 static int hf_gsm_map_lcs_verticalCoordinateRequest = -1;  /* NULL */
1106 static int hf_gsm_map_lcs_vertical_accuracy = -1;  /* Vertical_Accuracy */
1107 static int hf_gsm_map_lcs_responseTime = -1;      /* ResponseTime */
1108 static int hf_gsm_map_lcs_velocityRequest = -1;   /* NULL */
1109 static int hf_gsm_map_lcs_responseTimeCategory = -1;  /* ResponseTimeCategory */
1110 static int hf_gsm_map_lcs_lcsCodewordString = -1;  /* LCSCodewordString */
1111 static int hf_gsm_map_lcs_callSessionUnrelated = -1;  /* PrivacyCheckRelatedAction */
1112 static int hf_gsm_map_lcs_callSessionRelated = -1;  /* PrivacyCheckRelatedAction */
1113 static int hf_gsm_map_lcs_areaDefinition = -1;    /* AreaDefinition */
1114 static int hf_gsm_map_lcs_occurrenceInfo = -1;    /* OccurrenceInfo */
1115 static int hf_gsm_map_lcs_intervalTime = -1;      /* IntervalTime */
1116 static int hf_gsm_map_lcs_areaList = -1;          /* AreaList */
1117 static int hf_gsm_map_lcs_AreaList_item = -1;     /* Area */
1118 static int hf_gsm_map_lcs_areaType = -1;          /* AreaType */
1119 static int hf_gsm_map_lcs_areaIdentification = -1;  /* AreaIdentification */
1120 static int hf_gsm_map_lcs_reportingAmount = -1;   /* ReportingAmount */
1121 static int hf_gsm_map_lcs_reportingInterval = -1;  /* ReportingInterval */
1122 static int hf_gsm_map_lcs_plmn_ListPrioritized = -1;  /* NULL */
1123 static int hf_gsm_map_lcs_plmn_List = -1;         /* PLMNList */
1124 static int hf_gsm_map_lcs_PLMNList_item = -1;     /* ReportingPLMN */
1125 static int hf_gsm_map_lcs_plmn_Id = -1;           /* PLMN_Id */
1126 static int hf_gsm_map_lcs_ran_Technology = -1;    /* RAN_Technology */
1127 static int hf_gsm_map_lcs_ran_PeriodicLocationSupport = -1;  /* NULL */
1128 static int hf_gsm_map_lcs_locationEstimate = -1;  /* Ext_GeographicalInformation */
1129 static int hf_gsm_map_lcs_ageOfLocationEstimate = -1;  /* AgeOfLocationInformation */
1130 static int hf_gsm_map_lcs_add_LocationEstimate = -1;  /* Add_GeographicalInformation */
1131 static int hf_gsm_map_lcs_deferredmt_lrResponseIndicator = -1;  /* NULL */
1132 static int hf_gsm_map_lcs_geranPositioningData = -1;  /* PositioningDataInformation */
1133 static int hf_gsm_map_lcs_utranPositioningData = -1;  /* UtranPositioningDataInfo */
1134 static int hf_gsm_map_lcs_cellIdOrSai = -1;       /* CellGlobalIdOrServiceAreaIdOrLAI */
1135 static int hf_gsm_map_lcs_sai_Present = -1;       /* NULL */
1136 static int hf_gsm_map_lcs_accuracyFulfilmentIndicator = -1;  /* AccuracyFulfilmentIndicator */
1137 static int hf_gsm_map_lcs_velocityEstimate = -1;  /* VelocityEstimate */
1138 static int hf_gsm_map_lcs_lcs_Event = -1;         /* LCS_Event */
1139 static int hf_gsm_map_lcs_na_ESRD = -1;           /* ISDN_AddressString */
1140 static int hf_gsm_map_lcs_na_ESRK = -1;           /* ISDN_AddressString */
1141 static int hf_gsm_map_lcs_slr_ArgExtensionContainer = -1;  /* SLR_ArgExtensionContainer */
1142 static int hf_gsm_map_lcs_deferredmt_lrData = -1;  /* Deferredmt_lrData */
1143 static int hf_gsm_map_lcs_pseudonymIndicator = -1;  /* NULL */
1144 static int hf_gsm_map_lcs_sequenceNumber = -1;    /* SequenceNumber */
1145 static int hf_gsm_map_lcs_terminationCause = -1;  /* TerminationCause */
1146 /* named bits */
1147 static int hf_gsm_map_lcs_DeferredLocationEventType_msAvailable = -1;
1148 static int hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea = -1;
1149 static int hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea = -1;
1150 static int hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea = -1;
1151 static int hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR = -1;
1152 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint = -1;
1153 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle = -1;
1154 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse = -1;
1155 static int hf_gsm_map_lcs_SupportedGADShapes_polygon = -1;
1156 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude = -1;
1157 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid = -1;
1158 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc = -1;
1159
1160 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
1161
1162 static int hf_gsm_map_gr_teleservice = -1;        /* Ext_TeleserviceCode */
1163 static int hf_gsm_map_gr_asciCallReference = -1;  /* ASCI_CallReference */
1164 static int hf_gsm_map_gr_codec_Info = -1;         /* CODEC_Info */
1165 static int hf_gsm_map_gr_cipheringAlgorithm = -1;  /* CipheringAlgorithm */
1166 static int hf_gsm_map_gr_groupKeyNumber_Vk_Id = -1;  /* GroupKeyNumber */
1167 static int hf_gsm_map_gr_groupKey = -1;           /* Kc */
1168 static int hf_gsm_map_gr_priority = -1;           /* EMLPP_Priority */
1169 static int hf_gsm_map_gr_uplinkFree = -1;         /* NULL */
1170 static int hf_gsm_map_gr_extensionContainer = -1;  /* ExtensionContainer */
1171 static int hf_gsm_map_gr_vstk = -1;               /* VSTK */
1172 static int hf_gsm_map_gr_vstk_rand = -1;          /* VSTK_RAND */
1173 static int hf_gsm_map_gr_talkerChannelParameter = -1;  /* NULL */
1174 static int hf_gsm_map_gr_groupCallNumber = -1;    /* ISDN_AddressString */
1175 static int hf_gsm_map_gr_imsi = -1;               /* IMSI */
1176 static int hf_gsm_map_gr_talkerPriority = -1;     /* TalkerPriority */
1177 static int hf_gsm_map_gr_additionalInfo = -1;     /* AdditionalInfo */
1178 static int hf_gsm_map_gr_uplinkRequestAck = -1;   /* NULL */
1179 static int hf_gsm_map_gr_uplinkReleaseIndication = -1;  /* NULL */
1180 static int hf_gsm_map_gr_uplinkRejectCommand = -1;  /* NULL */
1181 static int hf_gsm_map_gr_uplinkSeizedCommand = -1;  /* NULL */
1182 static int hf_gsm_map_gr_uplinkReleaseCommand = -1;  /* NULL */
1183 static int hf_gsm_map_gr_stateAttributes = -1;    /* StateAttributes */
1184 static int hf_gsm_map_gr_emergencyModeResetCommandFlag = -1;  /* NULL */
1185 static int hf_gsm_map_gr_sm_RP_UI = -1;           /* SignalInfo */
1186 static int hf_gsm_map_gr_an_APDU = -1;            /* AccessNetworkSignalInfo */
1187 static int hf_gsm_map_gr_uplinkRequest = -1;      /* NULL */
1188 static int hf_gsm_map_gr_releaseGroupCall = -1;   /* NULL */
1189 static int hf_gsm_map_gr_downlinkAttached = -1;   /* NULL */
1190 static int hf_gsm_map_gr_uplinkAttached = -1;     /* NULL */
1191 static int hf_gsm_map_gr_dualCommunication = -1;  /* NULL */
1192 static int hf_gsm_map_gr_callOriginator = -1;     /* NULL */
1193 static int hf_gsm_map_gr_requestedInfo = -1;      /* RequestedInfo */
1194 static int hf_gsm_map_gr_groupId = -1;            /* Long_GroupId */
1195 static int hf_gsm_map_gr_cellId = -1;             /* GlobalCellId */
1196 static int hf_gsm_map_gr_tmsi = -1;               /* TMSI */
1197 static int hf_gsm_map_gr_cksn = -1;               /* Cksn */
1198 static int hf_gsm_map_gr_anchorMSC_Address = -1;  /* ISDN_AddressString */
1199 static int hf_gsm_map_gr_additionalSubscriptions = -1;  /* AdditionalSubscriptions */
1200 static int hf_gsm_map_gr_kc = -1;                 /* Kc */
1201
1202 /* --- Module MAP-DialogueInformation --- --- ---                             */
1203
1204 static int hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU = -1;  /* MAP_DialoguePDU */
1205 static int hf_gsm_map_dialogue_map_open = -1;     /* MAP_OpenInfo */
1206 static int hf_gsm_map_dialogue_map_accept = -1;   /* MAP_AcceptInfo */
1207 static int hf_gsm_map_dialogue_map_close = -1;    /* MAP_CloseInfo */
1208 static int hf_gsm_map_dialogue_map_refuse = -1;   /* MAP_RefuseInfo */
1209 static int hf_gsm_map_dialogue_map_userAbort = -1;  /* MAP_UserAbortInfo */
1210 static int hf_gsm_map_dialogue_map_providerAbort = -1;  /* MAP_ProviderAbortInfo */
1211 static int hf_gsm_map_dialogue_destinationReference = -1;  /* AddressString */
1212 static int hf_gsm_map_dialogue_originationReference = -1;  /* AddressString */
1213 static int hf_gsm_map_dialogue_extensionContainer = -1;  /* ExtensionContainer */
1214 static int hf_gsm_map_dialogue_reason = -1;       /* Reason */
1215 static int hf_gsm_map_dialogue_alternativeApplicationContext = -1;  /* OBJECT_IDENTIFIER */
1216 static int hf_gsm_map_dialogue_map_UserAbortChoice = -1;  /* MAP_UserAbortChoice */
1217 static int hf_gsm_map_dialogue_userSpecificReason = -1;  /* NULL */
1218 static int hf_gsm_map_dialogue_userResourceLimitation = -1;  /* NULL */
1219 static int hf_gsm_map_dialogue_resourceUnavailable = -1;  /* ResourceUnavailableReason */
1220 static int hf_gsm_map_dialogue_applicationProcedureCancellation = -1;  /* ProcedureCancellationReason */
1221 static int hf_gsm_map_dialogue_map_ProviderAbortReason = -1;  /* MAP_ProviderAbortReason */
1222
1223 /* --- Module DummyMAP --- --- ---                                            */
1224
1225 static int hf_gsm_old_invoke = -1;                /* Invoke */
1226 static int hf_gsm_old_returnResultLast = -1;      /* ReturnResult */
1227 static int hf_gsm_old_returnError = -1;           /* ReturnError */
1228 static int hf_gsm_old_reject = -1;                /* Reject */
1229 static int hf_gsm_old_returnResultNotLast = -1;   /* ReturnResult */
1230 static int hf_gsm_old_invokeID = -1;              /* InvokeIdType */
1231 static int hf_gsm_old_linkedID = -1;              /* InvokeIdType */
1232 static int hf_gsm_old_opCode = -1;                /* MAP_OPERATION */
1233 static int hf_gsm_old_invokeparameter = -1;       /* InvokeParameter */
1234 static int hf_gsm_old_resultretres = -1;          /* T_resultretres */
1235 static int hf_gsm_old_returnparameter = -1;       /* ReturnResultParameter */
1236 static int hf_gsm_old_errorCode = -1;             /* MAP_ERROR */
1237 static int hf_gsm_old_parameter = -1;             /* ReturnErrorParameter */
1238 static int hf_gsm_old_invokeIDRej = -1;           /* T_invokeIDRej */
1239 static int hf_gsm_old_derivable = -1;             /* InvokeIdType */
1240 static int hf_gsm_old_not_derivable = -1;         /* NULL */
1241 static int hf_gsm_old_problem = -1;               /* T_problem */
1242 static int hf_gsm_old_generalProblem = -1;        /* GeneralProblem */
1243 static int hf_gsm_old_invokeProblem = -1;         /* InvokeProblem */
1244 static int hf_gsm_old_returnResultProblem = -1;   /* ReturnResultProblem */
1245 static int hf_gsm_old_returnErrorProblem = -1;    /* ReturnErrorProblem */
1246 static int hf_gsm_old_localValue = -1;            /* OperationLocalvalue */
1247 static int hf_gsm_old_globalValue = -1;           /* OBJECT_IDENTIFIER */
1248 static int hf_gsm_old_localValue_01 = -1;         /* LocalErrorcode */
1249 static int hf_gsm_old_protocolId = -1;            /* ProtocolId */
1250 static int hf_gsm_old_signalInfo = -1;            /* SignalInfo */
1251 static int hf_gsm_old_extensionContainer = -1;    /* ExtensionContainer */
1252 static int hf_gsm_old_gsm_BearerCapability = -1;  /* ExternalSignalInfo */
1253 static int hf_gsm_old_isdn_BearerCapability = -1;  /* ExternalSignalInfo */
1254 static int hf_gsm_old_call_Direction = -1;        /* CallDirection */
1255 static int hf_gsm_old_b_Subscriber_Address = -1;  /* ISDN_AddressString */
1256 static int hf_gsm_old_chosenChannel = -1;         /* ExternalSignalInfo */
1257 static int hf_gsm_old_lowerLayerCompatibility = -1;  /* ExternalSignalInfo */
1258 static int hf_gsm_old_highLayerCompatibility = -1;  /* ExternalSignalInfo */
1259 static int hf_gsm_old_sIWFSNumber = -1;           /* ISDN_AddressString */
1260 static int hf_gsm_old_imsi = -1;                  /* IMSI */
1261 static int hf_gsm_old_vlr_Number = -1;            /* ISDN_AddressString */
1262 static int hf_gsm_old_targetCellId = -1;          /* GlobalCellId */
1263 static int hf_gsm_old_ho_NumberNotRequired = -1;  /* NULL */
1264 static int hf_gsm_old_bss_APDU = -1;              /* Bss_APDU */
1265 static int hf_gsm_old_handoverNumber = -1;        /* ISDN_AddressString */
1266 static int hf_gsm_old_SendAuthenticationInfoResOld_item = -1;  /* SendAuthenticationInfoResOld_item */
1267 static int hf_gsm_old_rand = -1;                  /* RAND */
1268 static int hf_gsm_old_sres = -1;                  /* SRES */
1269 static int hf_gsm_old_kc = -1;                    /* Kc */
1270 static int hf_gsm_old_tripletList = -1;           /* TripletListold */
1271 static int hf_gsm_old_TripletListold_item = -1;   /* AuthenticationTriplet_v2 */
1272 static int hf_gsm_old_channelType = -1;           /* ExternalSignalInfo */
1273 static int hf_gsm_old_securityHeader = -1;        /* SecurityHeader */
1274 static int hf_gsm_old_protectedPayload = -1;      /* ProtectedPayload */
1275 static int hf_gsm_old_securityParametersIndex = -1;  /* SecurityParametersIndex */
1276 static int hf_gsm_old_originalComponentIdentifier = -1;  /* OriginalComponentIdentifier */
1277 static int hf_gsm_old_initialisationVector = -1;  /* InitialisationVector */
1278 static int hf_gsm_old_operationCode = -1;         /* OperationCode */
1279 static int hf_gsm_old_errorCode_01 = -1;          /* ErrorCode */
1280 static int hf_gsm_old_userInfo = -1;              /* NULL */
1281 static int hf_gsm_old_localValue_02 = -1;         /* INTEGER */
1282 static int hf_gsm_old_msisdn = -1;                /* ISDN_AddressString */
1283 static int hf_gsm_old_category = -1;              /* Category */
1284 static int hf_gsm_old_basicService = -1;          /* BasicServiceCode */
1285 static int hf_gsm_old_operatorSS_Code = -1;       /* T_operatorSS_Code */
1286 static int hf_gsm_old_operatorSS_Code_item = -1;  /* OCTET_STRING_SIZE_1 */
1287 static int hf_gsm_old_sm_RP_DA = -1;              /* SM_RP_DAold */
1288 static int hf_gsm_old_sm_RP_OA = -1;              /* SM_RP_OAold */
1289 static int hf_gsm_old_sm_RP_UI = -1;              /* SignalInfo */
1290 static int hf_gsm_old_moreMessagesToSend = -1;    /* NULL */
1291 static int hf_gsm_old_lmsi = -1;                  /* LMSI */
1292 static int hf_gsm_old_serviceCentreAddressDA = -1;  /* AddressString */
1293 static int hf_gsm_old_noSM_RP_DA = -1;            /* NULL */
1294 static int hf_gsm_old_msisdn_01 = -1;             /* T_msisdn */
1295 static int hf_gsm_old_serviceCentreAddressOA = -1;  /* T_serviceCentreAddressOA */
1296 static int hf_gsm_old_noSM_RP_OA = -1;            /* NULL */
1297 static int hf_gsm_old_cug_CheckInfo = -1;         /* CUG_CheckInfo */
1298 static int hf_gsm_old_numberOfForwarding = -1;    /* NumberOfForwarding */
1299 static int hf_gsm_old_networkSignalInfo = -1;     /* ExternalSignalInfo */
1300 static int hf_gsm_old_routingInfo = -1;           /* RoutingInfo */
1301
1302 /* --- Module SS-DataTypes --- --- ---                                        */
1303
1304 static int hf_gsm_ss_ss_Code = -1;                /* SS_Code */
1305 static int hf_gsm_ss_ss_Status = -1;              /* SS_Status */
1306 static int hf_gsm_ss_ss_Notification = -1;        /* SS_Notification */
1307 static int hf_gsm_ss_callIsWaiting_Indicator = -1;  /* NULL */
1308 static int hf_gsm_ss_callOnHold_Indicator = -1;   /* CallOnHold_Indicator */
1309 static int hf_gsm_ss_mpty_Indicator = -1;         /* NULL */
1310 static int hf_gsm_ss_cug_Index = -1;              /* CUG_Index */
1311 static int hf_gsm_ss_clirSuppressionRejected = -1;  /* NULL */
1312 static int hf_gsm_ss_ect_Indicator = -1;          /* ECT_Indicator */
1313 static int hf_gsm_ss_nameIndicator = -1;          /* NameIndicator */
1314 static int hf_gsm_ss_ccbs_Feature = -1;           /* CCBS_Feature */
1315 static int hf_gsm_ss_alertingPattern = -1;        /* AlertingPattern */
1316 static int hf_gsm_ss_multicall_Indicator = -1;    /* Multicall_Indicator */
1317 static int hf_gsm_ss_imsi = -1;                   /* IMSI */
1318 static int hf_gsm_ss_originatingEntityNumber = -1;  /* ISDN_AddressString */
1319 static int hf_gsm_ss_msisdn = -1;                 /* AddressString */
1320 static int hf_gsm_ss_chargingInformation = -1;    /* ChargingInformation */
1321 static int hf_gsm_ss_e1 = -1;                     /* E1 */
1322 static int hf_gsm_ss_e2 = -1;                     /* E2 */
1323 static int hf_gsm_ss_e3 = -1;                     /* E3 */
1324 static int hf_gsm_ss_e4 = -1;                     /* E4 */
1325 static int hf_gsm_ss_e5 = -1;                     /* E5 */
1326 static int hf_gsm_ss_e6 = -1;                     /* E6 */
1327 static int hf_gsm_ss_e7 = -1;                     /* E7 */
1328 static int hf_gsm_ss_suppressPrefCUG = -1;        /* NULL */
1329 static int hf_gsm_ss_suppressOA = -1;             /* NULL */
1330 static int hf_gsm_ss_ect_CallState = -1;          /* ECT_CallState */
1331 static int hf_gsm_ss_rdn = -1;                    /* RDN */
1332 static int hf_gsm_ss_callingName = -1;            /* Name */
1333 static int hf_gsm_ss_namePresentationAllowed = -1;  /* NameSet */
1334 static int hf_gsm_ss_presentationRestricted = -1;  /* NULL */
1335 static int hf_gsm_ss_nameUnavailable = -1;        /* NULL */
1336 static int hf_gsm_ss_namePresentationRestricted = -1;  /* NameSet */
1337 static int hf_gsm_ss_dataCodingScheme = -1;       /* USSD_DataCodingScheme */
1338 static int hf_gsm_ss_lengthInCharacters = -1;     /* INTEGER */
1339 static int hf_gsm_ss_nameString = -1;             /* USSD_String */
1340 static int hf_gsm_ss_presentationAllowedAddress = -1;  /* RemotePartyNumber */
1341 static int hf_gsm_ss_numberNotAvailableDueToInterworking = -1;  /* NULL */
1342 static int hf_gsm_ss_presentationRestrictedAddress = -1;  /* RemotePartyNumber */
1343 static int hf_gsm_ss_partyNumber = -1;            /* ISDN_AddressString */
1344 static int hf_gsm_ss_partyNumberSubaddress = -1;  /* ISDN_SubaddressString */
1345 static int hf_gsm_ss_deflectedToNumber = -1;      /* AddressString */
1346 static int hf_gsm_ss_deflectedToSubaddress = -1;  /* ISDN_SubaddressString */
1347 static int hf_gsm_ss_uUS_Service = -1;            /* UUS_Service */
1348 static int hf_gsm_ss_uUS_Required = -1;           /* BOOLEAN */
1349 static int hf_gsm_ss_notificationType = -1;       /* NotificationToMSUser */
1350 static int hf_gsm_ss_locationType = -1;           /* LocationType */
1351 static int hf_gsm_ss_lcsClientExternalID = -1;    /* LCSClientExternalID */
1352 static int hf_gsm_ss_lcsClientName = -1;          /* LCSClientName */
1353 static int hf_gsm_ss_lcsRequestorID = -1;         /* LCSRequestorID */
1354 static int hf_gsm_ss_lcsCodeword = -1;            /* LCSCodeword */
1355 static int hf_gsm_ss_lcsServiceTypeID = -1;       /* LCSServiceTypeID */
1356 static int hf_gsm_ss_verificationResponse = -1;   /* VerificationResponse */
1357 static int hf_gsm_ss_molr_Type = -1;              /* MOLR_Type */
1358 static int hf_gsm_ss_locationMethod = -1;         /* LocationMethod */
1359 static int hf_gsm_ss_lcs_QoS = -1;                /* LCS_QoS */
1360 static int hf_gsm_ss_mlc_Number = -1;             /* ISDN_AddressString */
1361 static int hf_gsm_ss_gpsAssistanceData = -1;      /* GPSAssistanceData */
1362 static int hf_gsm_ss_supportedGADShapes = -1;     /* SupportedGADShapes */
1363 static int hf_gsm_ss_ageOfLocationInfo = -1;      /* AgeOfLocationInformation */
1364 static int hf_gsm_ss_pseudonymIndicator = -1;     /* NULL */
1365 static int hf_gsm_ss_h_gmlc_address = -1;         /* GSN_Address */
1366 static int hf_gsm_ss_locationEstimate = -1;       /* Ext_GeographicalInformation */
1367 static int hf_gsm_ss_velocityEstimate = -1;       /* VelocityEstimate */
1368 static int hf_gsm_ss_referenceNumber = -1;        /* LCS_ReferenceNumber */
1369 static int hf_gsm_ss_periodicLDRInfo = -1;        /* PeriodicLDRInfo */
1370 static int hf_gsm_ss_locationUpdateRequest = -1;  /* NULL */
1371 static int hf_gsm_ss_sequenceNumber = -1;         /* SequenceNumber */
1372 static int hf_gsm_ss_terminationCause = -1;       /* TerminationCause */
1373 static int hf_gsm_ss_mo_lrShortCircuit = -1;      /* NULL */
1374 static int hf_gsm_ss_ganssAssistanceData = -1;    /* GANSSAssistanceData */
1375 static int hf_gsm_ss_decipheringKeys = -1;        /* DecipheringKeys */
1376 static int hf_gsm_ss_add_LocationEstimate = -1;   /* Add_GeographicalInformation */
1377 static int hf_gsm_ss_reportingPLMNList = -1;      /* ReportingPLMNList */
1378 static int hf_gsm_ss_deferredLocationEventType = -1;  /* DeferredLocationEventType */
1379 static int hf_gsm_ss_areaEventInfo = -1;          /* AreaEventInfo */
1380 static int hf_gsm_ss_qoS = -1;                    /* LCS_QoS */
1381
1382 /*--- End of included file: packet-gsm_map-hf.c ---*/
1383 #line 160 "packet-gsmmap-template.c"
1384
1385 /* Initialize the subtree pointers */
1386 static gint ett_gsm_map = -1;
1387 static gint ett_gsm_map_InvokeId = -1;
1388 static gint ett_gsm_map_InvokePDU = -1;
1389 static gint ett_gsm_map_ReturnResultPDU = -1;
1390 static gint ett_gsm_map_ReturnErrorPDU = -1;
1391 static gint ett_gsm_map_ReturnResult_result = -1;
1392 static gint ett_gsm_map_ReturnError_result = -1;
1393 static gint ett_gsm_map_GSMMAPPDU = -1;
1394 static gint ett_gsm_map_ext_qos_subscribed = -1;
1395 static gint ett_gsm_map_pdptypenumber = -1;
1396 static gint ett_gsm_map_RAIdentity = -1; 
1397 static gint ett_gsm_map_LAIFixedLength = -1;
1398 static gint ett_gsm_map_isdn_address_string = -1;
1399 static gint ett_gsm_map_geo_desc = -1;
1400 static gint ett_gsm_map_LongSignalInfo = -1;
1401 static gint ett_gsm_map_RadioResourceInformation =-1;
1402 static gint ett_gsm_map_MSNetworkCapability =-1;
1403 static gint ett_gsm_map_MSRadioAccessCapability = -1;
1404 static gint ett_gsm_map_externalsignalinfo = -1;
1405 static gint ett_gsm_map_cbs_data_coding = -1;
1406 static gint ett_gsm_map_GlobalCellId = -1;
1407 static gint ett_gsm_map_GeographicalInformation = -1;
1408
1409
1410 /*--- Included file: packet-gsm_map-ett.c ---*/
1411 #line 1 "packet-gsm_map-ett.c"
1412
1413 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
1414
1415 static gint ett_gsm_map_ExtensionContainer = -1;
1416 static gint ett_gsm_map_SLR_ArgExtensionContainer = -1;
1417 static gint ett_gsm_map_PrivateExtensionList = -1;
1418 static gint ett_gsm_map_PrivateExtension = -1;
1419 static gint ett_gsm_map_PCS_Extensions = -1;
1420 static gint ett_gsm_map_SLR_Arg_PCS_Extensions = -1;
1421
1422 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
1423
1424 static gint ett_gsm_map_ExternalSignalInfo = -1;
1425 static gint ett_gsm_map_Ext_ExternalSignalInfo = -1;
1426 static gint ett_gsm_map_AccessNetworkSignalInfo = -1;
1427 static gint ett_gsm_map_Identity = -1;
1428 static gint ett_gsm_map_IMSI_WithLMSI = -1;
1429 static gint ett_gsm_map_HLR_List = -1;
1430 static gint ett_gsm_map_NAEA_PreferredCI = -1;
1431 static gint ett_gsm_map_SubscriberIdentity = -1;
1432 static gint ett_gsm_map_LCSClientExternalID = -1;
1433 static gint ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI = -1;
1434 static gint ett_gsm_map_BasicServiceCode = -1;
1435 static gint ett_gsm_map_Ext_BasicServiceCode = -1;
1436 static gint ett_gsm_map_EMLPP_Info = -1;
1437 static gint ett_gsm_map_MC_SS_Info = -1;
1438
1439 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
1440
1441 static gint ett_gsm_map_ss_RegisterSS_Arg = -1;
1442 static gint ett_gsm_map_ss_SS_Info = -1;
1443 static gint ett_gsm_map_ss_ForwardingInfo = -1;
1444 static gint ett_gsm_map_ss_ForwardingFeatureList = -1;
1445 static gint ett_gsm_map_ss_ForwardingFeature = -1;
1446 static gint ett_gsm_map_ss_CallBarringInfo = -1;
1447 static gint ett_gsm_map_ss_CallBarringFeatureList = -1;
1448 static gint ett_gsm_map_ss_CallBarringFeature = -1;
1449 static gint ett_gsm_map_ss_SS_Data = -1;
1450 static gint ett_gsm_map_ss_SS_SubscriptionOption = -1;
1451 static gint ett_gsm_map_ss_SS_ForBS_Code = -1;
1452 static gint ett_gsm_map_ss_GenericServiceInfo = -1;
1453 static gint ett_gsm_map_ss_CCBS_FeatureList = -1;
1454 static gint ett_gsm_map_ss_CCBS_Feature = -1;
1455 static gint ett_gsm_map_ss_InterrogateSS_Res = -1;
1456 static gint ett_gsm_map_ss_USSD_Arg = -1;
1457 static gint ett_gsm_map_ss_USSD_Res = -1;
1458 static gint ett_gsm_map_ss_SS_List = -1;
1459 static gint ett_gsm_map_ss_BasicServiceGroupList = -1;
1460 static gint ett_gsm_map_ss_SS_InvocationNotificationArg = -1;
1461 static gint ett_gsm_map_ss_SS_InvocationNotificationRes = -1;
1462 static gint ett_gsm_map_ss_SS_EventSpecification = -1;
1463 static gint ett_gsm_map_ss_RegisterCC_EntryArg = -1;
1464 static gint ett_gsm_map_ss_CCBS_Data = -1;
1465 static gint ett_gsm_map_ss_ServiceIndicator = -1;
1466 static gint ett_gsm_map_ss_RegisterCC_EntryRes = -1;
1467 static gint ett_gsm_map_ss_EraseCC_EntryArg = -1;
1468 static gint ett_gsm_map_ss_EraseCC_EntryRes = -1;
1469
1470 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
1471
1472 static gint ett_gsm_map_er_RoamingNotAllowedParam = -1;
1473 static gint ett_gsm_map_er_CallBarredParam = -1;
1474 static gint ett_gsm_map_er_ExtensibleCallBarredParam = -1;
1475 static gint ett_gsm_map_er_CUG_RejectParam = -1;
1476 static gint ett_gsm_map_er_SS_IncompatibilityCause = -1;
1477 static gint ett_gsm_map_er_SM_DeliveryFailureCause = -1;
1478 static gint ett_gsm_map_er_AbsentSubscriberSM_Param = -1;
1479 static gint ett_gsm_map_er_SystemFailureParam = -1;
1480 static gint ett_gsm_map_er_ExtensibleSystemFailureParam = -1;
1481 static gint ett_gsm_map_er_DataMissingParam = -1;
1482 static gint ett_gsm_map_er_UnexpectedDataParam = -1;
1483 static gint ett_gsm_map_er_FacilityNotSupParam = -1;
1484 static gint ett_gsm_map_er_OR_NotAllowedParam = -1;
1485 static gint ett_gsm_map_er_UnknownSubscriberParam = -1;
1486 static gint ett_gsm_map_er_NumberChangedParam = -1;
1487 static gint ett_gsm_map_er_UnidentifiedSubParam = -1;
1488 static gint ett_gsm_map_er_IllegalSubscriberParam = -1;
1489 static gint ett_gsm_map_er_IllegalEquipmentParam = -1;
1490 static gint ett_gsm_map_er_BearerServNotProvParam = -1;
1491 static gint ett_gsm_map_er_TeleservNotProvParam = -1;
1492 static gint ett_gsm_map_er_TracingBufferFullParam = -1;
1493 static gint ett_gsm_map_er_NoRoamingNbParam = -1;
1494 static gint ett_gsm_map_er_AbsentSubscriberParam = -1;
1495 static gint ett_gsm_map_er_BusySubscriberParam = -1;
1496 static gint ett_gsm_map_er_NoSubscriberReplyParam = -1;
1497 static gint ett_gsm_map_er_ForwardingViolationParam = -1;
1498 static gint ett_gsm_map_er_ForwardingFailedParam = -1;
1499 static gint ett_gsm_map_er_ATI_NotAllowedParam = -1;
1500 static gint ett_gsm_map_er_ATSI_NotAllowedParam = -1;
1501 static gint ett_gsm_map_er_ATM_NotAllowedParam = -1;
1502 static gint ett_gsm_map_er_IllegalSS_OperationParam = -1;
1503 static gint ett_gsm_map_er_SS_NotAvailableParam = -1;
1504 static gint ett_gsm_map_er_SS_SubscriptionViolationParam = -1;
1505 static gint ett_gsm_map_er_InformationNotAvailableParam = -1;
1506 static gint ett_gsm_map_er_SubBusyForMT_SMS_Param = -1;
1507 static gint ett_gsm_map_er_MessageWaitListFullParam = -1;
1508 static gint ett_gsm_map_er_ResourceLimitationParam = -1;
1509 static gint ett_gsm_map_er_NoGroupCallNbParam = -1;
1510 static gint ett_gsm_map_er_IncompatibleTerminalParam = -1;
1511 static gint ett_gsm_map_er_ShortTermDenialParam = -1;
1512 static gint ett_gsm_map_er_LongTermDenialParam = -1;
1513 static gint ett_gsm_map_er_UnauthorizedRequestingNetwork_Param = -1;
1514 static gint ett_gsm_map_er_UnauthorizedLCSClient_Param = -1;
1515 static gint ett_gsm_map_er_PositionMethodFailure_Param = -1;
1516 static gint ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param = -1;
1517 static gint ett_gsm_map_er_MM_EventNotSupported_Param = -1;
1518 static gint ett_gsm_map_er_TargetCellOutsideGCA_Param = -1;
1519 static gint ett_gsm_map_er_OngoingGroupCallParam = -1;
1520
1521 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
1522
1523 static gint ett_gsm_map_sm_RoutingInfoForSM_Arg = -1;
1524 static gint ett_gsm_map_sm_RoutingInfoForSM_Res = -1;
1525 static gint ett_gsm_map_sm_LocationInfoWithLMSI = -1;
1526 static gint ett_gsm_map_sm_Additional_Number = -1;
1527 static gint ett_gsm_map_sm_MO_ForwardSM_Arg = -1;
1528 static gint ett_gsm_map_sm_MO_ForwardSM_Res = -1;
1529 static gint ett_gsm_map_sm_MT_ForwardSM_Arg = -1;
1530 static gint ett_gsm_map_sm_MT_ForwardSM_Res = -1;
1531 static gint ett_gsm_map_sm_SM_RP_DA = -1;
1532 static gint ett_gsm_map_sm_SM_RP_OA = -1;
1533 static gint ett_gsm_map_sm_ReportSM_DeliveryStatusArg = -1;
1534 static gint ett_gsm_map_sm_ReportSM_DeliveryStatusRes = -1;
1535 static gint ett_gsm_map_sm_AlertServiceCentreArg = -1;
1536 static gint ett_gsm_map_sm_InformServiceCentreArg = -1;
1537 static gint ett_gsm_map_sm_MW_Status = -1;
1538 static gint ett_gsm_map_sm_ReadyForSM_Arg = -1;
1539 static gint ett_gsm_map_sm_ReadyForSM_Res = -1;
1540 static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg = -1;
1541 static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Res = -1;
1542 static gint ett_gsm_map_sm_DispatcherList = -1;
1543
1544 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
1545
1546 static gint ett_gsm_map_om_ActivateTraceModeArg = -1;
1547 static gint ett_gsm_map_om_TraceDepthList = -1;
1548 static gint ett_gsm_map_om_TraceNE_TypeList = -1;
1549 static gint ett_gsm_map_om_TraceInterfaceList = -1;
1550 static gint ett_gsm_map_om_MSC_S_InterfaceList = -1;
1551 static gint ett_gsm_map_om_MGW_InterfaceList = -1;
1552 static gint ett_gsm_map_om_SGSN_InterfaceList = -1;
1553 static gint ett_gsm_map_om_GGSN_InterfaceList = -1;
1554 static gint ett_gsm_map_om_RNC_InterfaceList = -1;
1555 static gint ett_gsm_map_om_BMSC_InterfaceList = -1;
1556 static gint ett_gsm_map_om_TraceEventList = -1;
1557 static gint ett_gsm_map_om_MSC_S_EventList = -1;
1558 static gint ett_gsm_map_om_MGW_EventList = -1;
1559 static gint ett_gsm_map_om_SGSN_EventList = -1;
1560 static gint ett_gsm_map_om_GGSN_EventList = -1;
1561 static gint ett_gsm_map_om_BMSC_EventList = -1;
1562 static gint ett_gsm_map_om_TracePropagationList = -1;
1563 static gint ett_gsm_map_om_ActivateTraceModeRes = -1;
1564 static gint ett_gsm_map_om_DeactivateTraceModeArg = -1;
1565 static gint ett_gsm_map_om_DeactivateTraceModeRes = -1;
1566
1567 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
1568
1569 static gint ett_gsm_map_ms_UpdateLocationArg = -1;
1570 static gint ett_gsm_map_ms_VLR_Capability = -1;
1571 static gint ett_gsm_map_ms_SupportedRAT_Types = -1;
1572 static gint ett_gsm_map_ms_SuperChargerInfo = -1;
1573 static gint ett_gsm_map_ms_SupportedLCS_CapabilitySets = -1;
1574 static gint ett_gsm_map_ms_UpdateLocationRes = -1;
1575 static gint ett_gsm_map_ms_ADD_Info = -1;
1576 static gint ett_gsm_map_ms_CancelLocationArg_U = -1;
1577 static gint ett_gsm_map_ms_CancelLocationRes = -1;
1578 static gint ett_gsm_map_ms_PurgeMS_Arg_U = -1;
1579 static gint ett_gsm_map_ms_PurgeMS_Res = -1;
1580 static gint ett_gsm_map_ms_SendIdentificationArg = -1;
1581 static gint ett_gsm_map_ms_SendIdentificationRes_U = -1;
1582 static gint ett_gsm_map_ms_AuthenticationSetList = -1;
1583 static gint ett_gsm_map_ms_TripletList = -1;
1584 static gint ett_gsm_map_ms_QuintupletList = -1;
1585 static gint ett_gsm_map_ms_AuthenticationTriplet = -1;
1586 static gint ett_gsm_map_ms_AuthenticationQuintuplet = -1;
1587 static gint ett_gsm_map_ms_CurrentSecurityContext = -1;
1588 static gint ett_gsm_map_ms_GSM_SecurityContextData = -1;
1589 static gint ett_gsm_map_ms_UMTS_SecurityContextData = -1;
1590 static gint ett_gsm_map_ms_AuthenticationFailureReportArg = -1;
1591 static gint ett_gsm_map_ms_AuthenticationFailureReportRes = -1;
1592 static gint ett_gsm_map_ms_UpdateGprsLocationArg = -1;
1593 static gint ett_gsm_map_ms_SGSN_Capability = -1;
1594 static gint ett_gsm_map_ms_UpdateGprsLocationRes = -1;
1595 static gint ett_gsm_map_ms_ForwardAccessSignalling_Arg_U = -1;
1596 static gint ett_gsm_map_ms_AllowedUMTS_Algorithms = -1;
1597 static gint ett_gsm_map_ms_PrepareHO_Arg_U = -1;
1598 static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverList = -1;
1599 static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo = -1;
1600 static gint ett_gsm_map_ms_RadioResourceList = -1;
1601 static gint ett_gsm_map_ms_RadioResource = -1;
1602 static gint ett_gsm_map_ms_PrepareHO_Res_U = -1;
1603 static gint ett_gsm_map_ms_SelectedUMTS_Algorithms = -1;
1604 static gint ett_gsm_map_ms_ChosenRadioResourceInformation = -1;
1605 static gint ett_gsm_map_ms_PrepareSubsequentHO_Arg_U = -1;
1606 static gint ett_gsm_map_ms_PrepareSubsequentHO_Res_U = -1;
1607 static gint ett_gsm_map_ms_ProcessAccessSignalling_Arg_U = -1;
1608 static gint ett_gsm_map_ms_SupportedCodecsList = -1;
1609 static gint ett_gsm_map_ms_CodecList = -1;
1610 static gint ett_gsm_map_ms_SendEndSignal_Arg_U = -1;
1611 static gint ett_gsm_map_ms_SendEndSignal_Res = -1;
1612 static gint ett_gsm_map_ms_RelocationNumberList = -1;
1613 static gint ett_gsm_map_ms_RelocationNumber = -1;
1614 static gint ett_gsm_map_ms_SendAuthenticationInfoArg = -1;
1615 static gint ett_gsm_map_ms_Re_synchronisationInfo = -1;
1616 static gint ett_gsm_map_ms_SendAuthenticationInfoRes_U = -1;
1617 static gint ett_gsm_map_ms_CheckIMEI_Arg = -1;
1618 static gint ett_gsm_map_ms_CheckIMEI_Res = -1;
1619 static gint ett_gsm_map_ms_RequestedEquipmentInfo = -1;
1620 static gint ett_gsm_map_ms_UESBI_Iu = -1;
1621 static gint ett_gsm_map_ms_InsertSubscriberDataArg = -1;
1622 static gint ett_gsm_map_ms_AccessRestrictionData = -1;
1623 static gint ett_gsm_map_ms_LCSInformation = -1;
1624 static gint ett_gsm_map_ms_GMLC_List = -1;
1625 static gint ett_gsm_map_ms_GPRSDataList = -1;
1626 static gint ett_gsm_map_ms_PDP_Context = -1;
1627 static gint ett_gsm_map_ms_GPRSSubscriptionData = -1;
1628 static gint ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo = -1;
1629 static gint ett_gsm_map_ms_GPRS_CSI = -1;
1630 static gint ett_gsm_map_ms_GPRS_CamelTDPDataList = -1;
1631 static gint ett_gsm_map_ms_GPRS_CamelTDPData = -1;
1632 static gint ett_gsm_map_ms_LSADataList = -1;
1633 static gint ett_gsm_map_ms_LSAData = -1;
1634 static gint ett_gsm_map_ms_LSAInformation = -1;
1635 static gint ett_gsm_map_ms_BearerServiceList = -1;
1636 static gint ett_gsm_map_ms_TeleserviceList = -1;
1637 static gint ett_gsm_map_ms_ODB_Data = -1;
1638 static gint ett_gsm_map_ms_ODB_GeneralData = -1;
1639 static gint ett_gsm_map_ms_ODB_HPLMN_Data = -1;
1640 static gint ett_gsm_map_ms_Ext_SS_InfoList = -1;
1641 static gint ett_gsm_map_ms_Ext_SS_Info = -1;
1642 static gint ett_gsm_map_ms_Ext_ForwInfo = -1;
1643 static gint ett_gsm_map_ms_Ext_ForwFeatureList = -1;
1644 static gint ett_gsm_map_ms_Ext_ForwFeature = -1;
1645 static gint ett_gsm_map_ms_Ext_CallBarInfo = -1;
1646 static gint ett_gsm_map_ms_Ext_CallBarFeatureList = -1;
1647 static gint ett_gsm_map_ms_Ext_CallBarringFeature = -1;
1648 static gint ett_gsm_map_ms_CUG_Info = -1;
1649 static gint ett_gsm_map_ms_CUG_SubscriptionList = -1;
1650 static gint ett_gsm_map_ms_CUG_Subscription = -1;
1651 static gint ett_gsm_map_ms_CUG_FeatureList = -1;
1652 static gint ett_gsm_map_ms_Ext_BasicServiceGroupList = -1;
1653 static gint ett_gsm_map_ms_CUG_Feature = -1;
1654 static gint ett_gsm_map_ms_Ext_SS_Data = -1;
1655 static gint ett_gsm_map_ms_LCS_PrivacyExceptionList = -1;
1656 static gint ett_gsm_map_ms_LCS_PrivacyClass = -1;
1657 static gint ett_gsm_map_ms_ExternalClientList = -1;
1658 static gint ett_gsm_map_ms_PLMNClientList = -1;
1659 static gint ett_gsm_map_ms_Ext_ExternalClientList = -1;
1660 static gint ett_gsm_map_ms_ExternalClient = -1;
1661 static gint ett_gsm_map_ms_ServiceTypeList = -1;
1662 static gint ett_gsm_map_ms_ServiceType = -1;
1663 static gint ett_gsm_map_ms_MOLR_List = -1;
1664 static gint ett_gsm_map_ms_MOLR_Class = -1;
1665 static gint ett_gsm_map_ms_ZoneCodeList = -1;
1666 static gint ett_gsm_map_ms_InsertSubscriberDataRes = -1;
1667 static gint ett_gsm_map_ms_DeleteSubscriberDataArg = -1;
1668 static gint ett_gsm_map_ms_SpecificCSI_Withdraw = -1;
1669 static gint ett_gsm_map_ms_GPRSSubscriptionDataWithdraw = -1;
1670 static gint ett_gsm_map_ms_ContextIdList = -1;
1671 static gint ett_gsm_map_ms_LSAInformationWithdraw = -1;
1672 static gint ett_gsm_map_ms_LSAIdentityList = -1;
1673 static gint ett_gsm_map_ms_BasicServiceList = -1;
1674 static gint ett_gsm_map_ms_DeleteSubscriberDataRes = -1;
1675 static gint ett_gsm_map_ms_VlrCamelSubscriptionInfo = -1;
1676 static gint ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList = -1;
1677 static gint ett_gsm_map_ms_MT_smsCAMELTDP_Criteria = -1;
1678 static gint ett_gsm_map_ms_TPDU_TypeCriterion = -1;
1679 static gint ett_gsm_map_ms_D_CSI = -1;
1680 static gint ett_gsm_map_ms_DP_AnalysedInfoCriteriaList = -1;
1681 static gint ett_gsm_map_ms_DP_AnalysedInfoCriterium = -1;
1682 static gint ett_gsm_map_ms_SS_CSI = -1;
1683 static gint ett_gsm_map_ms_SS_CamelData = -1;
1684 static gint ett_gsm_map_ms_SS_EventList = -1;
1685 static gint ett_gsm_map_ms_O_CSI = -1;
1686 static gint ett_gsm_map_ms_O_BcsmCamelTDPDataList = -1;
1687 static gint ett_gsm_map_ms_O_BcsmCamelTDPData = -1;
1688 static gint ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList = -1;
1689 static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList = -1;
1690 static gint ett_gsm_map_ms_O_BcsmCamelTDP_Criteria = -1;
1691 static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria = -1;
1692 static gint ett_gsm_map_ms_DestinationNumberCriteria = -1;
1693 static gint ett_gsm_map_ms_DestinationNumberList = -1;
1694 static gint ett_gsm_map_ms_DestinationNumberLengthList = -1;
1695 static gint ett_gsm_map_ms_BasicServiceCriteria = -1;
1696 static gint ett_gsm_map_ms_O_CauseValueCriteria = -1;
1697 static gint ett_gsm_map_ms_T_CauseValueCriteria = -1;
1698 static gint ett_gsm_map_ms_SupportedCamelPhases = -1;
1699 static gint ett_gsm_map_ms_OfferedCamel4CSIs = -1;
1700 static gint ett_gsm_map_ms_OfferedCamel4Functionalities = -1;
1701 static gint ett_gsm_map_ms_SMS_CSI = -1;
1702 static gint ett_gsm_map_ms_SMS_CAMEL_TDP_DataList = -1;
1703 static gint ett_gsm_map_ms_SMS_CAMEL_TDP_Data = -1;
1704 static gint ett_gsm_map_ms_M_CSI = -1;
1705 static gint ett_gsm_map_ms_MG_CSI = -1;
1706 static gint ett_gsm_map_ms_MobilityTriggers = -1;
1707 static gint ett_gsm_map_ms_T_CSI = -1;
1708 static gint ett_gsm_map_ms_T_BcsmCamelTDPDataList = -1;
1709 static gint ett_gsm_map_ms_T_BcsmCamelTDPData = -1;
1710 static gint ett_gsm_map_ms_SendRoutingInfoForGprsArg = -1;
1711 static gint ett_gsm_map_ms_SendRoutingInfoForGprsRes = -1;
1712 static gint ett_gsm_map_ms_FailureReportArg = -1;
1713 static gint ett_gsm_map_ms_FailureReportRes = -1;
1714 static gint ett_gsm_map_ms_NoteMsPresentForGprsArg = -1;
1715 static gint ett_gsm_map_ms_NoteMsPresentForGprsRes = -1;
1716 static gint ett_gsm_map_ms_ResetArg = -1;
1717 static gint ett_gsm_map_ms_RestoreDataArg = -1;
1718 static gint ett_gsm_map_ms_RestoreDataRes = -1;
1719 static gint ett_gsm_map_ms_VBSDataList = -1;
1720 static gint ett_gsm_map_ms_VGCSDataList = -1;
1721 static gint ett_gsm_map_ms_VoiceGroupCallData = -1;
1722 static gint ett_gsm_map_ms_AdditionalSubscriptions = -1;
1723 static gint ett_gsm_map_ms_VoiceBroadcastData = -1;
1724 static gint ett_gsm_map_ms_ProvideSubscriberInfoArg = -1;
1725 static gint ett_gsm_map_ms_ProvideSubscriberInfoRes = -1;
1726 static gint ett_gsm_map_ms_SubscriberInfo = -1;
1727 static gint ett_gsm_map_ms_MNPInfoRes = -1;
1728 static gint ett_gsm_map_ms_GPRSMSClass = -1;
1729 static gint ett_gsm_map_ms_RequestedInfo = -1;
1730 static gint ett_gsm_map_ms_LocationInformation = -1;
1731 static gint ett_gsm_map_ms_LocationInformationGPRS = -1;
1732 static gint ett_gsm_map_ms_SubscriberState = -1;
1733 static gint ett_gsm_map_ms_PS_SubscriberState = -1;
1734 static gint ett_gsm_map_ms_PDP_ContextInfoList = -1;
1735 static gint ett_gsm_map_ms_PDP_ContextInfo = -1;
1736 static gint ett_gsm_map_ms_AnyTimeInterrogationArg = -1;
1737 static gint ett_gsm_map_ms_AnyTimeInterrogationRes = -1;
1738 static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg = -1;
1739 static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes = -1;
1740 static gint ett_gsm_map_ms_RequestedSubscriptionInfo = -1;
1741 static gint ett_gsm_map_ms_MSISDN_BS_List = -1;
1742 static gint ett_gsm_map_ms_MSISDN_BS = -1;
1743 static gint ett_gsm_map_ms_CallForwardingData = -1;
1744 static gint ett_gsm_map_ms_CallBarringData = -1;
1745 static gint ett_gsm_map_ms_ODB_Info = -1;
1746 static gint ett_gsm_map_ms_CAMEL_SubscriptionInfo = -1;
1747 static gint ett_gsm_map_ms_AnyTimeModificationArg = -1;
1748 static gint ett_gsm_map_ms_AnyTimeModificationRes = -1;
1749 static gint ett_gsm_map_ms_ModificationRequestFor_CF_Info = -1;
1750 static gint ett_gsm_map_ms_ModificationRequestFor_CB_Info = -1;
1751 static gint ett_gsm_map_ms_ModificationRequestFor_ODB_data = -1;
1752 static gint ett_gsm_map_ms_ModificationRequestFor_CSI = -1;
1753 static gint ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data = -1;
1754 static gint ett_gsm_map_ms_NoteSubscriberDataModifiedArg = -1;
1755 static gint ett_gsm_map_ms_NoteSubscriberDataModifiedRes = -1;
1756 static gint ett_gsm_map_ms_NoteMM_EventArg = -1;
1757 static gint ett_gsm_map_ms_NoteMM_EventRes = -1;
1758 static gint ett_gsm_map_ms_Ext_SS_InfoFor_CSE = -1;
1759 static gint ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE = -1;
1760 static gint ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE = -1;
1761
1762 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
1763
1764 static gint ett_gsm_map_ch_CUG_CheckInfo = -1;
1765 static gint ett_gsm_map_ch_SendRoutingInfoArg = -1;
1766 static gint ett_gsm_map_ch_SuppressMTSS = -1;
1767 static gint ett_gsm_map_ch_SendRoutingInfoRes_U = -1;
1768 static gint ett_gsm_map_ch_AllowedServices = -1;
1769 static gint ett_gsm_map_ch_CCBS_Indicators = -1;
1770 static gint ett_gsm_map_ch_RoutingInfo = -1;
1771 static gint ett_gsm_map_ch_ForwardingData = -1;
1772 static gint ett_gsm_map_ch_ProvideRoamingNumberArg = -1;
1773 static gint ett_gsm_map_ch_ProvideRoamingNumberRes = -1;
1774 static gint ett_gsm_map_ch_ResumeCallHandlingArg = -1;
1775 static gint ett_gsm_map_ch_UU_Data = -1;
1776 static gint ett_gsm_map_ch_ResumeCallHandlingRes = -1;
1777 static gint ett_gsm_map_ch_CamelInfo = -1;
1778 static gint ett_gsm_map_ch_ExtendedRoutingInfo = -1;
1779 static gint ett_gsm_map_ch_CamelRoutingInfo = -1;
1780 static gint ett_gsm_map_ch_GmscCamelSubscriptionInfo = -1;
1781 static gint ett_gsm_map_ch_SetReportingStateArg = -1;
1782 static gint ett_gsm_map_ch_SetReportingStateRes = -1;
1783 static gint ett_gsm_map_ch_StatusReportArg = -1;
1784 static gint ett_gsm_map_ch_EventReportData = -1;
1785 static gint ett_gsm_map_ch_CallReportData = -1;
1786 static gint ett_gsm_map_ch_StatusReportRes = -1;
1787 static gint ett_gsm_map_ch_RemoteUserFreeArg = -1;
1788 static gint ett_gsm_map_ch_RemoteUserFreeRes = -1;
1789 static gint ett_gsm_map_ch_IST_AlertArg = -1;
1790 static gint ett_gsm_map_ch_IST_AlertRes = -1;
1791 static gint ett_gsm_map_ch_IST_CommandArg = -1;
1792 static gint ett_gsm_map_ch_IST_CommandRes = -1;
1793 static gint ett_gsm_map_ch_ReleaseResourcesArg = -1;
1794 static gint ett_gsm_map_ch_ReleaseResourcesRes = -1;
1795
1796 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
1797
1798 static gint ett_gsm_map_lcs_RoutingInfoForLCS_Arg = -1;
1799 static gint ett_gsm_map_lcs_RoutingInfoForLCS_Res = -1;
1800 static gint ett_gsm_map_lcs_LCSLocationInfo = -1;
1801 static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Arg = -1;
1802 static gint ett_gsm_map_lcs_LocationType = -1;
1803 static gint ett_gsm_map_lcs_DeferredLocationEventType = -1;
1804 static gint ett_gsm_map_lcs_LCS_ClientID = -1;
1805 static gint ett_gsm_map_lcs_LCSClientName = -1;
1806 static gint ett_gsm_map_lcs_LCSRequestorID = -1;
1807 static gint ett_gsm_map_lcs_LCS_QoS = -1;
1808 static gint ett_gsm_map_lcs_ResponseTime = -1;
1809 static gint ett_gsm_map_lcs_SupportedGADShapes = -1;
1810 static gint ett_gsm_map_lcs_LCSCodeword = -1;
1811 static gint ett_gsm_map_lcs_LCS_PrivacyCheck = -1;
1812 static gint ett_gsm_map_lcs_AreaEventInfo = -1;
1813 static gint ett_gsm_map_lcs_AreaDefinition = -1;
1814 static gint ett_gsm_map_lcs_AreaList = -1;
1815 static gint ett_gsm_map_lcs_Area = -1;
1816 static gint ett_gsm_map_lcs_PeriodicLDRInfo = -1;
1817 static gint ett_gsm_map_lcs_ReportingPLMNList = -1;
1818 static gint ett_gsm_map_lcs_PLMNList = -1;
1819 static gint ett_gsm_map_lcs_ReportingPLMN = -1;
1820 static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Res = -1;
1821 static gint ett_gsm_map_lcs_SubscriberLocationReport_Arg = -1;
1822 static gint ett_gsm_map_lcs_Deferredmt_lrData = -1;
1823 static gint ett_gsm_map_lcs_SubscriberLocationReport_Res = -1;
1824
1825 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
1826
1827 static gint ett_gsm_map_gr_PrepareGroupCallArg = -1;
1828 static gint ett_gsm_map_gr_PrepareGroupCallRes = -1;
1829 static gint ett_gsm_map_gr_SendGroupCallEndSignalArg = -1;
1830 static gint ett_gsm_map_gr_SendGroupCallEndSignalRes = -1;
1831 static gint ett_gsm_map_gr_ForwardGroupCallSignallingArg = -1;
1832 static gint ett_gsm_map_gr_ProcessGroupCallSignallingArg = -1;
1833 static gint ett_gsm_map_gr_StateAttributes = -1;
1834 static gint ett_gsm_map_gr_SendGroupCallInfoArg = -1;
1835 static gint ett_gsm_map_gr_SendGroupCallInfoRes = -1;
1836
1837 /* --- Module MAP-DialogueInformation --- --- ---                             */
1838
1839 static gint ett_gsm_map_dialogue_MAP_DialoguePDU = -1;
1840 static gint ett_gsm_map_dialogue_MAP_OpenInfo = -1;
1841 static gint ett_gsm_map_dialogue_MAP_AcceptInfo = -1;
1842 static gint ett_gsm_map_dialogue_MAP_CloseInfo = -1;
1843 static gint ett_gsm_map_dialogue_MAP_RefuseInfo = -1;
1844 static gint ett_gsm_map_dialogue_MAP_UserAbortInfo = -1;
1845 static gint ett_gsm_map_dialogue_MAP_UserAbortChoice = -1;
1846 static gint ett_gsm_map_dialogue_MAP_ProviderAbortInfo = -1;
1847
1848 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
1849
1850
1851 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
1852
1853
1854 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
1855
1856
1857 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
1858
1859
1860 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
1861
1862
1863 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
1864
1865
1866 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
1867
1868
1869 /* --- Module MAP-Errors --- --- ---                                          */
1870
1871
1872 /* --- Module MAP-Protocol --- --- ---                                        */
1873
1874
1875 /* --- Module DummyMAP --- --- ---                                            */
1876
1877 static gint ett_gsm_old_Component = -1;
1878 static gint ett_gsm_old_Invoke = -1;
1879 static gint ett_gsm_old_ReturnResult = -1;
1880 static gint ett_gsm_old_T_resultretres = -1;
1881 static gint ett_gsm_old_ReturnError = -1;
1882 static gint ett_gsm_old_Reject = -1;
1883 static gint ett_gsm_old_T_invokeIDRej = -1;
1884 static gint ett_gsm_old_T_problem = -1;
1885 static gint ett_gsm_old_MAP_OPERATION = -1;
1886 static gint ett_gsm_old_MAP_ERROR = -1;
1887 static gint ett_gsm_old_Bss_APDU = -1;
1888 static gint ett_gsm_old_ProvideSIWFSNumberArg = -1;
1889 static gint ett_gsm_old_ProvideSIWFSNumberRes = -1;
1890 static gint ett_gsm_old_PurgeMSArgV2 = -1;
1891 static gint ett_gsm_old_PrepareHO_ArgOld = -1;
1892 static gint ett_gsm_old_PrepareHO_ResOld = -1;
1893 static gint ett_gsm_old_SendAuthenticationInfoResOld = -1;
1894 static gint ett_gsm_old_SendAuthenticationInfoResOld_item = -1;
1895 static gint ett_gsm_old_SendIdentificationResV2 = -1;
1896 static gint ett_gsm_old_TripletListold = -1;
1897 static gint ett_gsm_old_AuthenticationTriplet_v2 = -1;
1898 static gint ett_gsm_old_SIWFSSignallingModifyArg = -1;
1899 static gint ett_gsm_old_SIWFSSignallingModifyRes = -1;
1900 static gint ett_gsm_old_SecureTransportArg = -1;
1901 static gint ett_gsm_old_SecureTransportErrorParam = -1;
1902 static gint ett_gsm_old_SecureTransportRes = -1;
1903 static gint ett_gsm_old_SecurityHeader = -1;
1904 static gint ett_gsm_old_OriginalComponentIdentifier = -1;
1905 static gint ett_gsm_old_OperationCode = -1;
1906 static gint ett_gsm_old_ErrorCode = -1;
1907 static gint ett_gsm_old_PlmnContainer_U = -1;
1908 static gint ett_gsm_old_T_operatorSS_Code = -1;
1909 static gint ett_gsm_old_ForwardSM_Arg = -1;
1910 static gint ett_gsm_old_SM_RP_DAold = -1;
1911 static gint ett_gsm_old_SM_RP_OAold = -1;
1912 static gint ett_gsm_old_SendRoutingInfoArgV2 = -1;
1913 static gint ett_gsm_old_SendRoutingInfoResV2 = -1;
1914
1915 /* --- Module SS-DataTypes --- --- ---                                        */
1916
1917 static gint ett_gsm_ss_NotifySS_Arg = -1;
1918 static gint ett_gsm_ss_BeginSubscriberActivityArg = -1;
1919 static gint ett_gsm_ss_ForwardChargeAdviceArg = -1;
1920 static gint ett_gsm_ss_ChargingInformation = -1;
1921 static gint ett_gsm_ss_ForwardCUG_InfoArg = -1;
1922 static gint ett_gsm_ss_ECT_Indicator = -1;
1923 static gint ett_gsm_ss_NameIndicator = -1;
1924 static gint ett_gsm_ss_Name = -1;
1925 static gint ett_gsm_ss_NameSet = -1;
1926 static gint ett_gsm_ss_RDN = -1;
1927 static gint ett_gsm_ss_RemotePartyNumber = -1;
1928 static gint ett_gsm_ss_AccessRegisterCCEntryArg = -1;
1929 static gint ett_gsm_ss_CallDeflectionArg = -1;
1930 static gint ett_gsm_ss_UserUserServiceArg = -1;
1931 static gint ett_gsm_ss_LocationNotificationArg = -1;
1932 static gint ett_gsm_ss_LocationNotificationRes = -1;
1933 static gint ett_gsm_ss_LCS_MOLRArg = -1;
1934 static gint ett_gsm_ss_LCS_MOLRRes = -1;
1935 static gint ett_gsm_ss_LCS_AreaEventRequestArg = -1;
1936 static gint ett_gsm_ss_LCS_AreaEventReportArg = -1;
1937 static gint ett_gsm_ss_LCS_AreaEventCancellationArg = -1;
1938 static gint ett_gsm_ss_LCS_PeriodicLocationRequestArg = -1;
1939 static gint ett_gsm_ss_LCS_PeriodicLocationRequestRes = -1;
1940 static gint ett_gsm_ss_LCS_LocationUpdateArg = -1;
1941 static gint ett_gsm_ss_LCS_LocationUpdateRes = -1;
1942 static gint ett_gsm_ss_LCS_PeriodicLocationCancellationArg = -1;
1943
1944 /* --- Module SS-Operations --- --- ---                                       */
1945
1946
1947 /*--- End of included file: packet-gsm_map-ett.c ---*/
1948 #line 186 "packet-gsmmap-template.c"
1949
1950 static dissector_table_t        sms_dissector_table;    /* SMS TPDU */
1951 static dissector_handle_t       data_handle;
1952 static dissector_handle_t       ranap_handle;
1953 static dissector_handle_t       map_handle;
1954
1955 /* Preferenc settings default */
1956 #define MAX_SSN 254
1957 static range_t *global_ssn_range;
1958 static range_t *ssn_range;
1959
1960 /* Global variables */
1961 static guint32 opcode=0;
1962 static guint32 errorCode;
1963 static proto_tree *top_tree;
1964 static int application_context_version;
1965 static guint ProtocolId; 
1966 guint protocolId;
1967 guint AccessNetworkProtocolId;
1968 const char *obj_id = NULL;
1969 static int gsm_map_tap = -1;
1970
1971 #define SMS_ENCODING_NOT_SET    0
1972 #define SMS_ENCODING_7BIT               1
1973 #define SMS_ENCODING_8BIT               2
1974 #define SMS_ENCODING_UCS2               3
1975 #define SMS_ENCODING_7BIT_LANG  4
1976 #define SMS_ENCODING_UCS2_LANG  5
1977
1978 static guint8 sms_encoding;
1979
1980 /* Forward declarations */
1981 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
1982 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
1983 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
1984 const gchar* gsm_map_opr_code(guint32 val);
1985
1986 /* Value strings */
1987
1988 const value_string gsm_map_PDP_Type_Organisation_vals[] = {
1989   {  0, "ETSI" },
1990   {  1, "IETF" },
1991   { 0, NULL }
1992 };
1993
1994 const value_string gsm_map_ietf_defined_pdp_vals[] = {
1995   {  0x21, "IPv4 Address" },
1996   {  0x57, "IPv6 Address" },
1997   { 0, NULL }
1998 };
1999
2000 const value_string gsm_map_etsi_defined_pdp_vals[] = {
2001   {  1, "PPP" },
2002   { 0, NULL }
2003 };
2004
2005 char *
2006 unpack_digits(tvbuff_t *tvb, int offset) {
2007
2008         int length;
2009         guint8 octet;
2010         int i=0;
2011         char *digit_str;
2012
2013         length = tvb_length(tvb);
2014         if (length < offset)
2015                 return "";
2016         digit_str = ep_alloc((length - offset)*2+1);
2017
2018         while ( offset < length ){
2019
2020                 octet = tvb_get_guint8(tvb,offset);
2021                 digit_str[i] = ((octet & 0x0f) + '0');
2022                 i++;
2023
2024                 /*
2025                  * unpack second value in byte
2026                  */
2027                 octet = octet >> 4;
2028
2029                 if (octet == 0x0f)      /* odd number bytes - hit filler */
2030                         break;
2031
2032                 digit_str[i] = ((octet & 0x0f) + '0');
2033                 i++;
2034                 offset++;
2035
2036         }
2037         digit_str[i]= '\0';
2038         return digit_str;
2039 }
2040
2041 /* returns value in kb/s */
2042 static guint
2043 gsm_map_calc_bitrate(guint8 value){
2044
2045         guint8 granularity;
2046         guint returnvalue; 
2047
2048         if (value == 0xff)
2049                 return 0;
2050
2051         granularity = value >> 6;
2052         returnvalue = value & 0x7f;
2053         switch (granularity){
2054         case 0:
2055                 break;
2056         case 1:
2057                 returnvalue = ((returnvalue - 0x40) << 3)+64;
2058                 break;
2059         case 2:
2060                 returnvalue = (returnvalue << 6)+576;
2061                 break;
2062         case 3:
2063                 returnvalue = (returnvalue << 6)+576;
2064                 break;
2065         }
2066         return returnvalue;
2067
2068 }
2069
2070 static void 
2071 dissect_gsm_map_ext_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx){
2072         int offset = 0;
2073     proto_tree *subtree;
2074         guint8 octet;
2075         guint16 value;
2076
2077         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext_qos_subscribed);
2078         /*  OCTET 1:
2079                 Allocation/Retention Priority (This octet encodes each priority level defined in
2080                 23.107 as the binary value of the priority level, declaration in 29.060)
2081                 Octets 2-9 are coded according to 3GPP TS 24.008[35] Quality of Service Octets
2082                 6-13.
2083          */
2084         /* Allocation/Retention Priority */
2085         proto_tree_add_item(subtree, hf_gsm_map_ext_qos_subscribed_pri, tvb, offset, 1, FALSE);
2086         offset++;
2087
2088         /* Quality of Service Octets 6-13.( Octet 2 - 9 Here) */
2089
2090         /* Traffic class, octet 6 (see 3GPP TS 23.107) Bits 8 7 6 */
2091         proto_tree_add_item(subtree, hf_gsm_map_qos_traffic_cls, tvb, offset, 1, FALSE);
2092         /* Delivery order, octet 6 (see 3GPP TS 23.107) Bits 5 4 */
2093         proto_tree_add_item(subtree, hf_gsm_map_qos_del_order, tvb, offset, 1, FALSE);
2094         /* Delivery of erroneous SDUs, octet 6 (see 3GPP TS 23.107) Bits 3 2 1 */
2095         proto_tree_add_item(subtree, hf_gsm_map_qos_del_of_err_sdu, tvb, offset, 1, FALSE);
2096         offset++;
2097
2098         /* Maximum SDU size, octet 7 (see 3GPP TS 23.107) */
2099         octet = tvb_get_guint8(tvb,offset);
2100         switch (octet){
2101         case 0:
2102                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum SDU size/Reserved");
2103                 break;
2104         case 0x93:
2105                 value = 1502;
2106                 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2107                 break;
2108         case 0x98:
2109                 value = 1510;
2110                 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2111                 break;
2112         case 0x99:
2113                 value = 1532;
2114                 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2115                 break;
2116         default:
2117                 if (octet<0x97){
2118                         value = octet * 10;
2119                         proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2120                 }else{
2121                         proto_tree_add_text(subtree, tvb, offset, 1, "Maximum SDU size value 0x%x not defined in TS 24.008",octet);
2122                 }                       
2123         }
2124         offset++;
2125
2126         /* Maximum bit rate for uplink, octet 8 */
2127         octet = tvb_get_guint8(tvb,offset);
2128         if (octet == 0 ){
2129                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for uplink/Reserved"  );
2130         }else{
2131                 proto_tree_add_uint(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2132         }
2133         offset++;
2134         /* Maximum bit rate for downlink, octet 9 (see 3GPP TS 23.107) */
2135         octet = tvb_get_guint8(tvb,offset);
2136         if (octet == 0 ){
2137                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for downlink/Reserved"  );
2138         }else{
2139                 proto_tree_add_uint(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2140         }
2141         offset++;
2142         /* Residual Bit Error Rate (BER), octet 10 (see 3GPP TS 23.107) Bits 8 7 6 5 */ 
2143         proto_tree_add_item(subtree, hf_gsm_map_qos_ber, tvb, offset, 1, FALSE);
2144         /* SDU error ratio, octet 10 (see 3GPP TS 23.107) */
2145         proto_tree_add_item(subtree, hf_gsm_map_qos_sdu_err_rat, tvb, offset, 1, FALSE);
2146         offset++;
2147
2148         /* Transfer delay, octet 11 (See 3GPP TS 23.107) Bits 8 7 6 5 4 3 */
2149         proto_tree_add_item(subtree, hf_gsm_map_qos_transfer_delay, tvb, offset, 1, FALSE);
2150         /* Traffic handling priority, octet 11 (see 3GPP TS 23.107) Bits 2 1 */
2151         proto_tree_add_item(subtree, hf_gsm_map_qos_traff_hdl_pri, tvb, offset, 1, FALSE);
2152         offset++;
2153
2154         /*      Guaranteed bit rate for uplink, octet 12 (See 3GPP TS 23.107)
2155                 Coding is identical to that of Maximum bit rate for uplink.
2156          */
2157         octet = tvb_get_guint8(tvb,offset);
2158         if (octet == 0 ){
2159                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for uplink/Reserved"  );
2160         }else{
2161                 proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2162         }
2163         offset++;
2164
2165         /*      Guaranteed bit rate for downlink, octet 13(See 3GPP TS 23.107)
2166                 Coding is identical to that of Maximum bit rate for uplink.
2167          */
2168         octet = tvb_get_guint8(tvb,offset);
2169         if (octet == 0 ){
2170                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for downlink/Reserved"  );
2171         }else{
2172                 proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2173         }
2174
2175 }
2176
2177 #define  ELLIPSOID_POINT 0
2178
2179
2180 /* TS 23 032 Table 2a: Coding of Type of Shape */
2181 static const value_string type_of_shape_vals[] = {
2182         { ELLIPSOID_POINT,              "Ellipsoid Point"},
2183         { 1,            "Ellipsoid point with uncertainty Circle"},
2184         { 3,            "Ellipsoid point with uncertainty Ellipse"},
2185         { 5,            "Polygon"},
2186         { 8,            "Ellipsoid point with altitude"},
2187         { 9,            "Ellipsoid point with altitude and uncertainty Ellipsoid"},
2188         { 10,           "Ellipsoid Arc"},
2189         { 0,    NULL }
2190 };
2191
2192 /* 3GPP TS 23.032 7.3.1 */
2193 static const value_string sign_of_latitude_vals[] = {
2194         { 0,            "North"},
2195         { 1,            "South"},
2196         { 0,    NULL }
2197 };
2198
2199 static const value_string dir_of_alt_vals[] = {
2200         { 0,            "Altitude expresses height"},
2201         { 1,            "Altitude expresses depth"},
2202         { 0,    NULL }
2203 };
2204
2205
2206 void
2207 dissect_geographical_description(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree){
2208
2209         proto_item *lat_item, *long_item, *major_item, *minor_item, *alt_item;
2210         /*proto_tree *subtree; */
2211
2212         guint8 type_of_shape;
2213         guint8 no_of_points;
2214         int offset = 0;
2215         int length;
2216         guint8 value;
2217         guint32 value32;
2218
2219         /*subtree = proto_item_add_subtree(item, ett_gsm_map_geo_desc);*/
2220
2221         length = tvb_reported_length_remaining(tvb,0);
2222         /* Geographical Location 
2223          * The Location Estimate field is composed of 1 or more octets with an internal structure 
2224          * according to section 7 in [23.032].
2225          */
2226         proto_tree_add_item(tree, hf_gsm_map_geo_loc_type_of_shape, tvb, 0, 1, FALSE);
2227         if (length<2)
2228                 return;
2229         type_of_shape = tvb_get_guint8(tvb,offset)>>4;
2230         switch (type_of_shape){
2231         case ELLIPSOID_POINT:   /* Ellipsoid Point */
2232         case 2:                                 /* Ellipsoid Point with uncertainty Circle */
2233         case 3:                                 /* Ellipsoid Point with uncertainty Ellipse */
2234         case 8:                                 /* Ellipsoid Point with Altitude */
2235         case 9:                                 /* Ellipsoid Point with altitude and uncertainty ellipsoid */
2236         case 10:                                /* Ellipsoid Arc */
2237                 offset++;
2238                 if (length<4)
2239                         return;
2240                 proto_tree_add_item(tree, hf_gsm_map_geo_loc_sign_of_lat, tvb, offset, 1, FALSE);
2241
2242                 value32 = tvb_get_ntoh24(tvb,offset)&0x7fffff;
2243                 /* convert degrees (X/0x7fffff) * 90 = degrees */
2244                 lat_item = proto_tree_add_item(tree, hf_gsm_map_geo_loc_deg_of_lat, tvb, offset, 3, FALSE);
2245                 proto_item_append_text(lat_item,"(%.5f degrees)", (((double)value32/8388607) * 90));
2246                 if (length<7)
2247                         return;
2248                 offset = offset + 3;
2249                 value32 = tvb_get_ntoh24(tvb,offset)&0x7fffff;
2250                 long_item = proto_tree_add_item(tree, hf_gsm_map_geo_loc_deg_of_long, tvb, offset, 3, FALSE);
2251                 /* (X/0xffffff) *360 = degrees */
2252                 proto_item_append_text(long_item,"(%.5f degrees)", (((double)value32/16777215) * 360));
2253                 offset = offset + 3;
2254                 if(type_of_shape==2){
2255                         /* Ellipsoid Point with uncertainty Circle */
2256                         if (length<8)
2257                                 return;
2258                         /* Uncertainty code */
2259                         proto_tree_add_item(tree, hf_gsm_map_geo_loc_uncertainty_code, tvb, offset, 1, FALSE);
2260                 }else if(type_of_shape==3){
2261                         /* Ellipsoid Point with uncertainty Ellipse */
2262                         /* Uncertainty semi-major octet 10
2263                          * To convert to metres 10*(((1.1)^X)-1) 
2264                          */
2265                         value = tvb_get_guint8(tvb,offset)&0x7f; 
2266                         major_item = proto_tree_add_item(tree, hf_gsm_map_geo_loc_uncertainty_semi_major, tvb, offset, 1, FALSE);
2267                         proto_item_append_text(major_item,"(%.1f m)", 10 * (pow(1.1, (double)value) - 1));
2268                         offset++;
2269                         /* Uncertainty semi-minor Octet 11
2270                          * To convert to metres 10*(((1.1)^X)-1) 
2271                          */
2272                         value = tvb_get_guint8(tvb,offset)&0x7f; 
2273                         minor_item = proto_tree_add_item(tree, hf_gsm_map_geo_loc_uncertainty_semi_minor, tvb, offset, 1, FALSE);
2274                         proto_item_append_text(minor_item,"(%.1f m)", 10 * (pow(1.1, (double)value) - 1));
2275                         offset++;
2276                         /* Orientation of major axis octet 12
2277                          * allowed value from 0-179 to convert 
2278                          * to actual degrees multiply by 2.
2279                          */
2280                         value = tvb_get_guint8(tvb,offset)&0x7f;
2281                         proto_tree_add_uint(tree, hf_gsm_map_geo_loc_orientation_of_major_axis, tvb, offset, 1, value*2);
2282                         offset++;
2283                         /* Confidence */
2284                         proto_tree_add_item(tree, hf_gsm_map_geo_loc_confidence, tvb, offset, 1, FALSE);
2285                         offset++;
2286                 }else if(type_of_shape==8){
2287                         /* Ellipsoid Point with Altitude */
2288                         /*D: Direction of Altitude */
2289                         proto_tree_add_item(tree, hf_gsm_map_geo_loc_D, tvb, offset, 1, FALSE);
2290                         /* Altitude */
2291                         proto_tree_add_item(tree, hf_gsm_map_geo_loc_altitude, tvb, offset, 2, FALSE);
2292                 }else if(type_of_shape==9){
2293                         /* Ellipsoid Point with altitude and uncertainty ellipsoid */
2294                         /*D: Direction of Altitude octet 8,9 */
2295                         proto_tree_add_item(tree, hf_gsm_map_geo_loc_D, tvb, offset, 1, FALSE);
2296                         /* Altitude Octet 8,9*/
2297                         proto_tree_add_item(tree, hf_gsm_map_geo_loc_altitude, tvb, offset, 2, FALSE);
2298                         offset = offset +2;
2299                         /* Uncertainty semi-major octet 10
2300                          * To convert to metres 10*(((1.1)^X)-1) 
2301                          */
2302                         value = tvb_get_guint8(tvb,offset)&0x7f; 
2303                         major_item = proto_tree_add_item(tree, hf_gsm_map_geo_loc_uncertainty_semi_major, tvb, offset, 1, FALSE);
2304                         proto_item_append_text(major_item,"(%.1f m)", 10 * (pow(1.1, (double)value) - 1));
2305                         offset++;
2306                         /* Uncertainty semi-minor Octet 11
2307                          * To convert to metres 10*(((1.1)^X)-1) 
2308                          */
2309                         value = tvb_get_guint8(tvb,offset)&0x7f; 
2310                         minor_item = proto_tree_add_item(tree, hf_gsm_map_geo_loc_uncertainty_semi_minor, tvb, offset, 1, FALSE);
2311                         proto_item_append_text(minor_item,"(%.1f m)", 10 * (pow(1.1, (double)value) - 1));
2312                         offset++;
2313                         /* Orientation of major axis octet 12
2314                          * allowed value from 0-179 to convert 
2315                          * to actual degrees multiply by 2.
2316                          */
2317                         value = tvb_get_guint8(tvb,offset)&0x7f;
2318                         proto_tree_add_uint(tree, hf_gsm_map_geo_loc_orientation_of_major_axis, tvb, offset, 1, value*2);
2319                         offset++;
2320                         /* Uncertainty Altitude 13
2321                          * to convert to metres 45*(((1.025)^X)-1) 
2322                          */
2323                         value = tvb_get_guint8(tvb,offset)&0x7f; 
2324                         alt_item = proto_tree_add_item(tree, hf_gsm_map_geo_loc_uncertainty_altitude, tvb, offset, 1, FALSE);
2325                         proto_item_append_text(alt_item,"(%.1f m)", 45 * (pow(1.025, (double)value) - 1));
2326                         offset++;
2327                         /* Confidence octet 14
2328                          */
2329                         proto_tree_add_item(tree, hf_gsm_map_geo_loc_confidence, tvb, offset, 1, FALSE);
2330                 }else if(type_of_shape==10){
2331                         /* Ellipsoid Arc */
2332                         /* Inner radius */
2333                         proto_tree_add_item(tree, hf_gsm_map_geo_loc_inner_radius, tvb, offset, 2, FALSE);
2334                         offset= offset +2;
2335                         /* Uncertainty radius */
2336                         proto_tree_add_item(tree, hf_gsm_map_geo_loc_uncertainty_radius, tvb, offset, 1, FALSE);
2337                         offset++;
2338                         /* Offset angle */
2339                         proto_tree_add_item(tree, hf_gsm_map_geo_loc_offset_angle, tvb, offset, 1, FALSE);
2340                         offset++;
2341                         /* Included angle */
2342                         proto_tree_add_item(tree, hf_gsm_map_geo_loc_included_angle, tvb, offset, 1, FALSE);
2343                         offset++;
2344                         /* Confidence */
2345                         proto_tree_add_item(tree, hf_gsm_map_geo_loc_confidence, tvb, offset, 1, FALSE);
2346                 }
2347
2348                 break;
2349         case 5:                                 /* Polygon */
2350                 /* Number of points */
2351                 no_of_points = tvb_get_guint8(tvb,offset)&0x0f;
2352                 proto_tree_add_item(tree, hf_gsm_map_geo_loc_no_of_points, tvb, offset, 1, FALSE);
2353                 /*
2354                 while ( no_of_points > 0){
2355                         offset++;
2356
2357                         no_of_points--;
2358                 }
2359                 */
2360                 break;
2361         default:
2362                 break;
2363         }
2364
2365 }
2366
2367 static const value_string gsm_map_cbs_data_coding_scheme_coding_grp_vals[] = {
2368         { 0, "Coding Group 0(Language using the GSM 7 bit default alphabet)" }, 
2369         { 1, "Coding Group 1" }, 
2370         { 2, "Coding Group 2" }, 
2371         { 3, "Coding Group 3" }, 
2372         { 4, "General Data Coding indication" }, 
2373         { 5, "General Data Coding indication" }, 
2374         { 6, "General Data Coding indication" }, 
2375         { 7, "General Data Coding indication" }, 
2376         { 8, "Reserved" }, 
2377         { 9, "Message with User Data Header (UDH) structure" }, 
2378         { 10,"Reserved" }, 
2379         { 11,"Reserved" }, 
2380         { 12,"Reserved" }, 
2381         { 13,"Reserved" }, 
2382         { 14,"Defined by the WAP Forum" }, 
2383         { 15,"Data coding / message handling" }, 
2384         { 0, NULL}
2385 };
2386 /* Coding group 0 
2387  * Bits 3..0 indicate the language:
2388  */
2389 static const value_string gsm_map_cbs_coding_grp0_lang_vals[] = {
2390         { 0, "German"},
2391         { 1, "English"},
2392         { 2, "Italian"},
2393         { 3, "French"},
2394         { 4, "Spanish"},
2395         { 5, "Dutch"},
2396         { 6, "Swedish"},
2397         { 7, "Danish"},
2398         { 8, "Portuguese"},
2399         { 9, "Finnish"},
2400         { 10, "Norwegian"},
2401         { 11, "Greek"},
2402         { 12, "Turkish"},
2403         { 13, "Hungarian"},
2404         { 14, "Polish"},
2405         { 15, "Language unspecified"},
2406         { 0,    NULL }
2407 };
2408
2409 static const value_string gsm_map_cbs_coding_grp1_lang_vals[] = {
2410         { 0, "GSM 7 bit default alphabet; message preceded by language indication"},
2411         { 1, "UCS2; message preceded by language indication"},
2412         { 2, "Reserved"},
2413         { 3, "Reserved"},
2414         { 4, "Reserved"},
2415         { 5, "Reserved"},
2416         { 6, "Reserved"},
2417         { 7, "Reserved"},
2418         { 8, "Reserved"},
2419         { 9, "Reserved"},
2420         { 10, "Reserved"},
2421         { 11, "Reserved"},
2422         { 12, "Reserved"},
2423         { 13, "Reserved"},
2424         { 14, "Reserved"},
2425         { 15, "Reserved"},
2426         { 0,    NULL }
2427 };
2428 static const value_string gsm_map_cbs_coding_grp2_lang_vals[] = {
2429         { 0, "Czech"},
2430         { 1, "Hebrew"},
2431         { 2, "Arabic"},
2432         { 3, "Russian"},
2433         { 4, "Icelandic"},
2434         { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2435         { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2436         { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2437         { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2438         { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2439         { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2440         { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2441         { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2442         { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2443         { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2444         { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2445         { 0,    NULL }
2446 };
2447 static const value_string gsm_map_cbs_coding_grp3_lang_vals[] = {
2448         { 0, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2449         { 1, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2450         { 2, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2451         { 3, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2452         { 4, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2453         { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2454         { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2455         { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2456         { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2457         { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2458         { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2459         { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2460         { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2461         { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2462         { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2463         { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2464         { 0,    NULL }
2465 };
2466
2467 static const true_false_string gsm_map_cbs_coding_grp4_7_comp_vals = {
2468   "The text is compressed using the compression algorithm defined in 3GPP TS 23.042",
2469   "The text is uncompressed"
2470 };
2471
2472 static const true_false_string gsm_map_cbs_coding_grp4_7_class_ind_vals = {
2473   "Bits 1 to 0 have a message class meaning",
2474   "Bits 1 to 0 are reserved and have no message class meaning"
2475 };
2476
2477 /* Bits 3 and 2 indicate the character set being used, as follows: */
2478
2479 static const value_string gsm_map_cbs_coding_grp4_7_char_set_vals[] = {
2480         { 0, "GSM 7 bit default alphabet"},
2481         { 1, "8 bit data"},
2482         { 2, "UCS2 (16 bit)"},
2483         { 3, "Reserved"},
2484         { 0,    NULL }
2485 };
2486
2487 static const value_string gsm_map_cbs_coding_grp4_7_class_vals[] = {
2488         { 0, "Class 0"},
2489         { 1, "Class 1 Default meaning: ME-specific"},
2490         { 2, "Class 2 (U)SIM specific message"},
2491         { 3, "Class 3 Default meaning: TE-specific (see 3GPP TS 27.005"},
2492         { 0,    NULL }
2493 };
2494
2495 static const value_string gsm_map_cbs_coding_grp15_mess_code_vals[] = {
2496         { 0, "GSM 7 bit default alphabet"},
2497         { 1, "8 bit data"},
2498         { 0,    NULL }
2499 };
2500
2501 static const value_string gsm_map_cbs_coding_grp15_class_vals[] = {
2502         { 0, "GSM 7 bit default alphabet"},
2503         { 1, "8 bit data"},
2504         { 0,    NULL }
2505 };
2506
2507
2508 /* 3GPP TS 23.038 version 7.0.0 Release 7 */
2509 guint8
2510 dissect_cbs_data_coding_scheme(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
2511 {
2512         guint8 octet;
2513         guint8 coding_grp;
2514         guint8 character_set;
2515
2516         octet = tvb_get_guint8(tvb,0);
2517         coding_grp = octet >>4;
2518         proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp, tvb, 0, 1, FALSE);
2519         
2520         sms_encoding = SMS_ENCODING_NOT_SET;
2521         switch (coding_grp){
2522         case 0:
2523                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp0_lang, tvb, 0, 1, FALSE);
2524                 sms_encoding = SMS_ENCODING_7BIT;
2525                 break;
2526         case 1:
2527                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp1_lang, tvb, 0, 1, FALSE);
2528                 if ((octet & 0x0f)== 0){
2529                         sms_encoding = SMS_ENCODING_7BIT_LANG;
2530                 }else{
2531                         sms_encoding = SMS_ENCODING_UCS2_LANG;
2532                 }
2533                 break;
2534         case 2:
2535                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp2_lang, tvb, 0, 1, FALSE);
2536                 sms_encoding = SMS_ENCODING_7BIT;
2537                 break;
2538         case 3:
2539                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp3_lang, tvb, 0, 1, FALSE);
2540                 sms_encoding = SMS_ENCODING_7BIT;
2541                 break;
2542                 /* Coding_grp 01xx */
2543         case 4:
2544         case 5:
2545         case 6:
2546         case 7:
2547                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_comp, tvb, 0, 1, FALSE);
2548                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class_ind, tvb, 0, 1, FALSE);
2549                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, 0, 1, FALSE);
2550                 if ((octet & 0x10)== 0x10){
2551                         proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, 0, 1, FALSE);
2552                 }
2553                 /* Bits 3 and 2 indicate the character set being used, */
2554                 character_set = (octet&0x0c)>>2;
2555                 switch (character_set){
2556                 case 0:
2557                         /* GSM 7 bit default alphabet */
2558                         sms_encoding = SMS_ENCODING_7BIT;
2559                         break;
2560                 case 1:
2561                         /* 8 bit data */
2562                         sms_encoding = SMS_ENCODING_8BIT;
2563                         break;
2564                 case 2:
2565                         /* UCS2 (16 bit) */
2566                         sms_encoding = SMS_ENCODING_UCS2;
2567                         break;
2568                 case 3:
2569                         /* Reserved */
2570                         sms_encoding = SMS_ENCODING_NOT_SET;
2571                         break;
2572                 default:
2573                         break;
2574                 }
2575                 break;
2576         case 8:
2577                 /* Reserved coding groups */
2578                 break;
2579         case 9:
2580                 /* Message with User Data Header (UDH) structure:*/
2581                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, 0, 1, FALSE);
2582                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, 0, 1, FALSE);
2583                 character_set = (octet&0x0c)>>2;
2584                 switch (character_set){
2585                 case 0:
2586                         /* GSM 7 bit default alphabet */
2587                         sms_encoding = SMS_ENCODING_7BIT;
2588                         break;
2589                 case 1:
2590                         /* 8 bit data */
2591                         sms_encoding = SMS_ENCODING_8BIT;
2592                         break;
2593                 case 2:
2594                         /* UCS2 (16 bit) */
2595                         sms_encoding = SMS_ENCODING_UCS2;
2596                         break;
2597                 case 3:
2598                         /* Reserved */
2599                         sms_encoding = SMS_ENCODING_NOT_SET;
2600                         break;
2601                 default:
2602                         break;
2603                 }
2604                 break;
2605         case 10:
2606         case 11:
2607         case 12:
2608         case 13:
2609                 /* 1010..1101 Reserved coding groups */
2610                 break;
2611         case 14:
2612                 /* Defined by the WAP Forum 
2613                  * "Wireless Datagram Protocol Specification", Wireless Application Protocol Forum Ltd.
2614                  */
2615                 break;
2616         case 15:
2617                 /* Data coding / message handling */
2618                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_mess_code, tvb, 0, 1, FALSE);
2619                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_class, tvb, 0, 1, FALSE);
2620                 character_set = (octet&0x04)>>2;
2621                 if (character_set == 0){
2622                         sms_encoding = SMS_ENCODING_7BIT;
2623                 }else{
2624                         sms_encoding = SMS_ENCODING_8BIT;
2625                 }
2626                 break;
2627         default:
2628                 break;
2629         }
2630
2631         return sms_encoding;
2632 }
2633
2634
2635 /*--- Included file: packet-gsm_map-fn.c ---*/
2636 #line 1 "packet-gsm_map-fn.c"
2637
2638 /* --- Module MAP-SS-Code --- --- ---                                         */
2639
2640
2641
2642 int
2643 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_) {
2644   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2645                                        NULL);
2646
2647   return offset;
2648 }
2649
2650
2651 /* --- Module MAP-BS-Code --- --- ---                                         */
2652
2653
2654
2655 static int
2656 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_) {
2657   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2658                                        NULL);
2659
2660   return offset;
2661 }
2662
2663
2664
2665 static int
2666 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_) {
2667   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2668                                        NULL);
2669
2670   return offset;
2671 }
2672
2673
2674 /* --- Module MAP-TS-Code --- --- ---                                         */
2675
2676
2677
2678 static int
2679 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_) {
2680   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2681                                        NULL);
2682
2683   return offset;
2684 }
2685
2686
2687
2688 static int
2689 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_) {
2690   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2691                                        NULL);
2692
2693   return offset;
2694 }
2695
2696
2697 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
2698
2699
2700
2701 static int
2702 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_) {
2703   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &obj_id);
2704
2705   return offset;
2706 }
2707
2708
2709
2710 static int
2711 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_) {
2712 #line 167 "gsmmap.cnf"
2713   proto_tree_add_text(tree, tvb, offset, -1, "Extension Data");
2714   if (obj_id){
2715          offset=call_ber_oid_callback(obj_id, tvb, offset, actx->pinfo, tree);
2716   }else{
2717          call_dissector(data_handle, tvb, actx->pinfo, tree);
2718          offset = tvb_length_remaining(tvb,offset);
2719   }     
2720
2721
2722
2723   return offset;
2724 }
2725
2726
2727 static const ber_sequence_t gsm_map_PrivateExtension_sequence[] = {
2728   { &hf_gsm_map_extId       , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extId },
2729   { &hf_gsm_map_extType     , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extType },
2730   { NULL, 0, 0, 0, NULL }
2731 };
2732
2733 static int
2734 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_) {
2735   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2736                                    gsm_map_PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension);
2737
2738   return offset;
2739 }
2740
2741
2742 static const ber_sequence_t gsm_map_PrivateExtensionList_sequence_of[1] = {
2743   { &hf_gsm_map_PrivateExtensionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PrivateExtension },
2744 };
2745
2746 static int
2747 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_) {
2748   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2749                                       gsm_map_PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList);
2750
2751   return offset;
2752 }
2753
2754
2755 static const ber_sequence_t gsm_map_PCS_Extensions_sequence[] = {
2756   { NULL, 0, 0, 0, NULL }
2757 };
2758
2759 static int
2760 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_) {
2761   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2762                                    gsm_map_PCS_Extensions_sequence, hf_index, ett_gsm_map_PCS_Extensions);
2763
2764   return offset;
2765 }
2766
2767
2768 static const ber_sequence_t gsm_map_ExtensionContainer_sequence[] = {
2769   { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList },
2770   { &hf_gsm_map_pcs_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PCS_Extensions },
2771   { NULL, 0, 0, 0, NULL }
2772 };
2773
2774 int
2775 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_) {
2776   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2777                                    gsm_map_ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer);
2778
2779   return offset;
2780 }
2781
2782
2783
2784 static int
2785 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_) {
2786   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
2787
2788   return offset;
2789 }
2790
2791
2792 static const ber_sequence_t gsm_map_SLR_Arg_PCS_Extensions_sequence[] = {
2793   { &hf_gsm_map_na_ESRK_Request, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NULL },
2794   { NULL, 0, 0, 0, NULL }
2795 };
2796
2797 static int
2798 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_) {
2799   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2800                                    gsm_map_SLR_Arg_PCS_Extensions_sequence, hf_index, ett_gsm_map_SLR_Arg_PCS_Extensions);
2801
2802   return offset;
2803 }
2804
2805
2806 static const ber_sequence_t gsm_map_SLR_ArgExtensionContainer_sequence[] = {
2807   { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList },
2808   { &hf_gsm_map_slr_Arg_PCS_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_Arg_PCS_Extensions },
2809   { NULL, 0, 0, 0, NULL }
2810 };
2811
2812 static int
2813 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_) {
2814   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2815                                    gsm_map_SLR_ArgExtensionContainer_sequence, hf_index, ett_gsm_map_SLR_ArgExtensionContainer);
2816
2817   return offset;
2818 }
2819
2820
2821 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
2822
2823
2824
2825 static int
2826 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_) {
2827 #line 208 "gsmmap.cnf"
2828  tvbuff_t       *parameter_tvb;
2829  char           *digit_str;
2830
2831    offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2832                                        &parameter_tvb);
2833
2834
2835  if (!parameter_tvb)
2836         return offset;
2837
2838  digit_str = unpack_digits(parameter_tvb, 0);
2839  proto_tree_add_string(tree, hf_gsm_map_TBCD_digits, parameter_tvb, 0, -1, digit_str);
2840
2841
2842
2843   return offset;
2844 }
2845
2846
2847
2848 int
2849 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_) {
2850 #line 176 "gsmmap.cnf"
2851
2852  tvbuff_t       *parameter_tvb;
2853  char           *digit_str;
2854  guint8         octet;
2855  guint8         na;
2856  guint8         np;
2857  proto_tree *subtree;
2858
2859   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2860                                        &parameter_tvb);
2861
2862
2863  if (!parameter_tvb)
2864         return offset;
2865
2866  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_isdn_address_string);
2867
2868  proto_tree_add_item(subtree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
2869  proto_tree_add_item(subtree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
2870  proto_tree_add_item(subtree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
2871
2872  digit_str = unpack_digits(parameter_tvb, 1);
2873
2874  proto_tree_add_string(subtree, hf_gsm_map_address_digits, parameter_tvb, 1, -1, digit_str);
2875
2876  octet = tvb_get_guint8(parameter_tvb,0);
2877  na = (octet & 0x70)>>4;
2878  np = octet & 0x0f;
2879  if ((na == 1) && (np==1))/*International Number & E164*/
2880         dissect_e164_cc(parameter_tvb, subtree, 1, TRUE);
2881  else if(np==6)
2882         dissect_e212_mcc_mnc(parameter_tvb, subtree, 1); 
2883
2884
2885
2886   return offset;
2887 }
2888
2889
2890
2891 int
2892 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_) {
2893   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
2894
2895   return offset;
2896 }
2897
2898
2899
2900 static int
2901 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_) {
2902   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
2903
2904   return offset;
2905 }
2906
2907
2908
2909 int
2910 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_) {
2911   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2912                                        NULL);
2913
2914   return offset;
2915 }
2916
2917
2918 static const value_string gsm_map_ProtocolId_vals[] = {
2919   {   1, "gsm-0408" },
2920   {   2, "gsm-0806" },
2921   {   3, "gsm-BSSMAP" },
2922   {   4, "ets-300102-1" },
2923   { 0, NULL }
2924 };
2925
2926
2927 static int
2928 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_) {
2929   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2930                                   &ProtocolId);
2931
2932   return offset;
2933 }
2934
2935
2936
2937 static int
2938 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_) {
2939 #line 280 "gsmmap.cnf"
2940  tvbuff_t       *parameter_tvb;
2941
2942    offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2943                                        &parameter_tvb);
2944
2945         actx->value_ptr = parameter_tvb;
2946
2947
2948
2949
2950   return offset;
2951 }
2952
2953
2954 static const ber_sequence_t gsm_map_ExternalSignalInfo_sequence[] = {
2955   { &hf_gsm_map_protocolId  , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId },
2956   { &hf_gsm_map_signalInfo  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
2957   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
2958   { NULL, 0, 0, 0, NULL }
2959 };
2960
2961 static int
2962 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_) {
2963 #line 627 "gsmmap.cnf"
2964  guint8         octet;
2965  guint8         length;
2966  tvbuff_t       *next_tvb;
2967  proto_tree *subtree;
2968
2969  ProtocolId = 0xffffffff;
2970   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2971                                    gsm_map_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_ExternalSignalInfo);
2972  
2973 if (!actx->value_ptr)
2974         return offset;
2975  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo);
2976  switch (ProtocolId){
2977         /* gsm-0408 */
2978         case 1:
2979                 break;
2980         /* gsm-0806 */
2981         case 2:
2982                 break;
2983         /* gsm-BSSMAP TODO Is it correct to stripp off two first octets here?*/
2984         case 3:
2985                 octet = tvb_get_guint8(actx->value_ptr,0);
2986                 length = tvb_get_guint8(actx->value_ptr,1);
2987                 if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
2988                         next_tvb = tvb_new_subset(actx->value_ptr, 2, -1, -1);
2989                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
2990                 }
2991                 break;
2992         /* ets-300102-1 (~Q.931 ) */
2993         case 4:
2994                 octet = tvb_get_guint8(actx->value_ptr,0);
2995                 length = tvb_get_guint8(actx->value_ptr,1);
2996                 if ( octet == 4 )
2997                         dissect_q931_bearer_capability_ie(actx->value_ptr, 2, length, subtree);
2998                 break;
2999         default:
3000                 break;
3001 }
3002
3003
3004
3005   return offset;
3006 }
3007
3008
3009 static const value_string gsm_map_Ext_ProtocolId_vals[] = {
3010   {   1, "ets-300356" },
3011   { 0, NULL }
3012 };
3013
3014
3015 static int
3016 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_) {
3017   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3018                                   NULL);
3019
3020   return offset;
3021 }
3022
3023
3024 static const ber_sequence_t gsm_map_Ext_ExternalSignalInfo_sequence[] = {
3025   { &hf_gsm_map_ext_ProtocolId, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_ProtocolId },
3026   { &hf_gsm_map_signalInfo  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
3027   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
3028   { NULL, 0, 0, 0, NULL }
3029 };
3030
3031 static int
3032 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_) {
3033   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3034                                    gsm_map_Ext_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_Ext_ExternalSignalInfo);
3035
3036   return offset;
3037 }
3038
3039
3040 static const value_string gsm_map_AccessNetworkProtocolId_vals[] = {
3041   {   1, "ts3G-48006" },
3042   {   2, "ts3G-25413" },
3043   { 0, NULL }
3044 };
3045
3046
3047 static int
3048 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_) {
3049   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3050                                   NULL);
3051
3052   return offset;
3053 }
3054
3055
3056
3057 static int
3058 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_) {
3059 #line 227 "gsmmap.cnf"
3060
3061  tvbuff_t       *parameter_tvb;
3062  guint8         octet;
3063  guint8         length;
3064  tvbuff_t       *next_tvb;
3065  proto_tree *subtree;
3066
3067
3068   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3069                                        &parameter_tvb);
3070
3071
3072  if (!parameter_tvb)
3073         return offset;
3074
3075  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LongSignalInfo); 
3076
3077  switch (AccessNetworkProtocolId){
3078         /* ts3G-48006 */
3079         case 1:
3080                 octet = tvb_get_guint8(parameter_tvb,0);
3081                 length = tvb_get_guint8(parameter_tvb,1);
3082                 if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
3083                         /* gsm-BSSMAP? */
3084                         next_tvb = tvb_new_subset(parameter_tvb, 2, -1, -1);
3085                         dissect_bssmap(next_tvb, actx->pinfo, tree);
3086                 }
3087                 break;
3088         /* ts3G-25413 */
3089         case 2:
3090                 call_dissector(ranap_handle, parameter_tvb, actx->pinfo, tree); 
3091                 break;
3092         default:
3093                 break;
3094
3095  }
3096
3097
3098   return offset;
3099 }
3100
3101
3102 static const ber_sequence_t gsm_map_AccessNetworkSignalInfo_sequence[] = {
3103   { &hf_gsm_map_accessNetworkProtocolId, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkProtocolId },
3104   { &hf_gsm_map_signalInfo_01, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LongSignalInfo },
3105   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
3106   { NULL, 0, 0, 0, NULL }
3107 };
3108
3109 static int
3110 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_) {
3111   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3112                                    gsm_map_AccessNetworkSignalInfo_sequence, hf_index, ett_gsm_map_AccessNetworkSignalInfo);
3113
3114   return offset;
3115 }
3116
3117
3118
3119 int
3120 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_) {
3121   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3122                                        NULL);
3123
3124   return offset;
3125 }
3126
3127
3128
3129 int
3130 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_) {
3131   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
3132
3133   return offset;
3134 }
3135
3136
3137
3138 static int
3139 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_) {
3140   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3141                                        NULL);
3142
3143   return offset;
3144 }
3145
3146
3147 static const ber_sequence_t gsm_map_IMSI_WithLMSI_sequence[] = {
3148   { &hf_gsm_map_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
3149   { &hf_gsm_map_lmsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
3150   { NULL, 0, 0, 0, NULL }
3151 };
3152
3153 static int
3154 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_) {
3155   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3156                                    gsm_map_IMSI_WithLMSI_sequence, hf_index, ett_gsm_map_IMSI_WithLMSI);
3157
3158   return offset;
3159 }
3160
3161
3162 static const value_string gsm_map_Identity_vals[] = {
3163   {   0, "imsi" },
3164   {   1, "imsi-WithLMSI" },
3165   { 0, NULL }
3166 };
3167
3168 static const ber_choice_t gsm_map_Identity_choice[] = {
3169   {   0, &hf_gsm_map_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
3170   {   1, &hf_gsm_map_imsi_WithLMSI, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI_WithLMSI },
3171   { 0, NULL, 0, 0, 0, NULL }
3172 };
3173
3174 static int
3175 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_) {
3176   offset = dissect_ber_choice(actx, tree, tvb, offset,
3177                                  gsm_map_Identity_choice, hf_index, ett_gsm_map_Identity,
3178                                  NULL);
3179
3180   return offset;
3181 }
3182
3183
3184
3185 static int
3186 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_) {
3187   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
3188
3189   return offset;
3190 }
3191
3192
3193
3194 static int
3195 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_) {
3196   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3197                                        NULL);
3198
3199   return offset;
3200 }
3201
3202
3203
3204 int
3205 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_) {
3206   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
3207
3208   return offset;
3209 }
3210
3211
3212
3213 static int
3214 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_) {
3215   offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
3216
3217   return offset;
3218 }
3219
3220
3221 static const ber_sequence_t gsm_map_HLR_List_sequence_of[1] = {
3222   { &hf_gsm_map_HLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_Id },
3223 };
3224
3225 static int
3226 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_) {
3227   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3228                                       gsm_map_HLR_List_sequence_of, hf_index, ett_gsm_map_HLR_List);
3229
3230   return offset;
3231 }
3232
3233
3234
3235 int
3236 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_) {
3237 #line 665 "gsmmap.cnf"
3238     tvbuff_t    *parameter_tvb; 
3239         proto_tree      *subtree;
3240
3241   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3242                                        &parameter_tvb);
3243  
3244
3245         if (!parameter_tvb) 
3246                 return offset; 
3247
3248     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GlobalCellId); 
3249         be_cell_id_aux(parameter_tvb, subtree, 0, tvb_length_remaining(tvb,0), NULL, 0, 0);
3250
3251
3252
3253   return offset;
3254 }
3255
3256
3257 static const value_string gsm_map_NetworkResource_vals[] = {
3258   {   0, "plmn" },
3259   {   1, "hlr" },
3260   {   2, "vlr" },
3261   {   3, "pvlr" },
3262   {   4, "controllingMSC" },
3263   {   5, "vmsc" },
3264   {   6, "eir" },
3265   {   7, "rss" },
3266   { 0, NULL }
3267 };
3268
3269
3270 static int
3271 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_) {
3272   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3273                                   NULL);
3274
3275   return offset;
3276 }
3277
3278
3279 static const value_string gsm_map_AdditionalNetworkResource_vals[] = {
3280   {   0, "sgsn" },
3281   {   1, "ggsn" },
3282   {   2, "gmlc" },
3283   {   3, "gsmSCF" },
3284   {   4, "nplr" },
3285   {   5, "auc" },
3286   {   6, "ue" },
3287   { 0, NULL }
3288 };
3289
3290
3291 static int
3292 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_) {
3293   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3294                                   NULL);
3295
3296   return offset;
3297 }
3298
3299
3300
3301 static int
3302 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_) {
3303   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3304                                        NULL);
3305
3306   return offset;
3307 }
3308
3309
3310 static const ber_sequence_t gsm_map_NAEA_PreferredCI_sequence[] = {
3311   { &hf_gsm_map_naea_PreferredCIC, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_CIC },
3312   { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
3313   { NULL, 0, 0, 0, NULL }
3314 };
3315
3316 static int
3317 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_) {
3318   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3319                                    gsm_map_NAEA_PreferredCI_sequence, hf_index, ett_gsm_map_NAEA_PreferredCI);
3320
3321   return offset;
3322 }
3323
3324
3325 static const value_string gsm_map_SubscriberIdentity_vals[] = {
3326   {   0, "imsi" },
3327   {   1, "msisdn" },
3328   { 0, NULL }
3329 };
3330
3331 static const ber_choice_t gsm_map_SubscriberIdentity_choice[] = {
3332   {   0, &hf_gsm_map_imsi        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
3333   {   1, &hf_gsm_map_msisdn      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3334   { 0, NULL, 0, 0, 0, NULL }
3335 };
3336
3337 static int
3338 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_) {
3339   offset = dissect_ber_choice(actx, tree, tvb, offset,
3340                                  gsm_map_SubscriberIdentity_choice, hf_index, ett_gsm_map_SubscriberIdentity,
3341                                  NULL);
3342
3343   return offset;
3344 }
3345
3346
3347 static const ber_sequence_t gsm_map_LCSClientExternalID_sequence[] = {
3348   { &hf_gsm_map_externalAddress, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3349   { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
3350   { NULL, 0, 0, 0, NULL }
3351 };
3352
3353 int
3354 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_) {
3355   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3356                                    gsm_map_LCSClientExternalID_sequence, hf_index, ett_gsm_map_LCSClientExternalID);
3357
3358   return offset;
3359 }
3360
3361
3362 static const value_string gsm_map_LCSClientInternalID_vals[] = {
3363   {   0, "broadcastService" },
3364   {   1, "o-andM-HPLMN" },
3365   {   2, "o-andM-VPLMN" },
3366   {   3, "anonymousLocation" },
3367   {   4, "targetMSsubscribedService" },
3368   { 0, NULL }
3369 };
3370
3371
3372 static int
3373 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_) {
3374   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3375                                   NULL);
3376
3377   return offset;
3378 }
3379
3380
3381 const value_string gsm_map_LCSServiceTypeID_vals[] = {
3382   {   0, "emergencyServices" },
3383   {   1, "emergencyAlertServices" },
3384   {   2, "personTracking" },
3385   {   3, "fleetManagement" },
3386   {   4, "assetManagement" },
3387   {   5, "trafficCongestionReporting" },
3388   {   6, "roadsideAssistance" },
3389   {   7, "routingToNearestCommercialEnterprise" },
3390   {   8, "navigation" },
3391   {   9, "citySightseeing" },
3392   {  10, "localizedAdvertising" },
3393   {  11, "mobileYellowPages" },
3394   {  12, "trafficAndPublicTransportationInfo" },
3395   {  13, "weather" },
3396   {  14, "assetAndServiceFinding" },
3397   {  15, "gaming" },
3398   {  16, "findYourFriend" },
3399   {  17, "dating" },
3400   {  18, "chatting" },
3401   {  19, "routeFinding" },
3402   {  20, "whereAmI" },
3403   {  64, "serv64" },
3404   {  65, "serv65" },
3405   {  66, "serv66" },
3406   {  67, "serv67" },
3407   {  68, "serv68" },
3408   {  69, "serv69" },
3409   {  70, "serv70" },
3410   {  71, "serv71" },
3411   {  72, "serv72" },
3412   {  73, "serv73" },
3413   {  74, "serv74" },
3414   {  75, "serv75" },
3415   {  76, "serv76" },
3416   {  77, "serv77" },
3417   {  78, "serv78" },
3418   {  79, "serv79" },
3419   {  80, "serv80" },
3420   {  81, "serv81" },
3421   {  82, "serv82" },
3422   {  83, "serv83" },
3423   {  84, "serv84" },
3424   {  85, "serv85" },
3425   {  86, "serv86" },
3426   {  87, "serv87" },
3427   {  88, "serv88" },
3428   {  89, "serv89" },
3429   {  90, "serv90" },
3430   {  91, "serv91" },
3431   {  92, "serv92" },
3432   {  93, "serv93" },
3433   {  94, "serv94" },
3434   {  95, "serv95" },
3435   {  96, "serv96" },
3436   {  97, "serv97" },
3437   {  98, "serv98" },
3438   {  99, "serv99" },
3439   { 100, "serv100" },
3440   { 101, "serv101" },
3441   { 102, "serv102" },
3442   { 103, "serv103" },
3443   { 104, "serv104" },
3444   { 105, "serv105" },
3445   { 106, "serv106" },
3446   { 107, "serv107" },
3447   { 108, "serv108" },
3448   { 109, "serv109" },
3449   { 110, "serv110" },
3450   { 111, "serv111" },
3451   { 112, "serv112" },
3452   { 113, "serv113" },
3453   { 114, "serv114" },
3454   { 115, "serv115" },
3455   { 116, "serv116" },
3456   { 117, "serv117" },
3457   { 118, "serv118" },
3458   { 119, "serv119" },
3459   { 120, "serv120" },
3460   { 121, "serv121" },
3461   { 122, "serv122" },
3462   { 123, "serv123" },
3463   { 124, "serv124" },
3464   { 125, "serv125" },
3465   { 126, "serv126" },
3466   { 127, "serv127" },
3467   { 0, NULL }
3468 };
3469
3470
3471 int
3472 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_) {
3473   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3474                                                 NULL);
3475
3476   return offset;
3477 }
3478
3479
3480
3481 static int
3482 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_) {
3483   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3484                                        NULL);
3485
3486   return offset;
3487 }
3488
3489
3490
3491 int
3492 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_) {
3493   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3494                                        NULL);
3495
3496   return offset;
3497 }
3498
3499
3500
3501 int
3502 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_) {
3503 #line 565 "gsmmap.cnf"
3504
3505         tvbuff_t        *parameter_tvb; 
3506         proto_tree *subtree; 
3507
3508   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3509                                        &parameter_tvb);
3510  
3511
3512          if (!parameter_tvb) 
3513                 return offset; 
3514         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LAIFixedLength); 
3515         dissect_e212_mcc_mnc(parameter_tvb, subtree, 0); 
3516
3517
3518
3519   return offset;
3520 }
3521
3522
3523 static const value_string gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals[] = {
3524   {   0, "cellGlobalIdOrServiceAreaIdFixedLength" },
3525   {   1, "laiFixedLength" },
3526   { 0, NULL }
3527 };
3528
3529 static const ber_choice_t gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice[] = {
3530   {   0, &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength },
3531   {   1, &hf_gsm_map_laiFixedLength, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
3532   { 0, NULL, 0, 0, 0, NULL }
3533 };
3534
3535 static int
3536 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_) {
3537   offset = dissect_ber_choice(actx, tree, tvb, offset,
3538                                  gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice, hf_index, ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
3539                                  NULL);
3540
3541   return offset;
3542 }
3543
3544
3545 static const value_string gsm_map_BasicServiceCode_vals[] = {
3546   {   2, "bearerService" },
3547   {   3, "teleservice" },
3548   { 0, NULL }
3549 };
3550
3551 static const ber_choice_t gsm_map_BasicServiceCode_choice[] = {
3552   {   2, &hf_gsm_map_bearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_BearerServiceCode },
3553   {   3, &hf_gsm_map_teleservice , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_TeleserviceCode },
3554   { 0, NULL, 0, 0, 0, NULL }
3555 };
3556
3557 static int
3558 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_) {
3559   offset = dissect_ber_choice(actx, tree, tvb, offset,
3560                                  gsm_map_BasicServiceCode_choice, hf_index, ett_gsm_map_BasicServiceCode,
3561                                  NULL);
3562
3563   return offset;
3564 }
3565
3566
3567 const value_string gsm_map_Ext_BasicServiceCode_vals[] = {
3568   {   2, "ext-BearerService" },
3569   {   3, "ext-Teleservice" },
3570   { 0, NULL }
3571 };
3572
3573 static const ber_choice_t gsm_map_Ext_BasicServiceCode_choice[] = {
3574   {   2, &hf_gsm_map_ext_BearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BearerServiceCode },
3575   {   3, &hf_gsm_map_ext_Teleservice, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_TeleserviceCode },
3576   { 0, NULL, 0, 0, 0, NULL }
3577 };
3578
3579 int
3580 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_) {
3581   offset = dissect_ber_choice(actx, tree, tvb, offset,
3582                                  gsm_map_Ext_BasicServiceCode_choice, hf_index, ett_gsm_map_Ext_BasicServiceCode,
3583                                  NULL);
3584
3585   return offset;
3586 }
3587
3588
3589 static const value_string gsm_map_EMLPP_Priority_vals[] = {
3590   {   6, "priorityLevelA" },
3591   {   5, "priorityLevelB" },
3592   {   0, "priorityLevel0" },
3593   {   1, "priorityLevel1" },
3594   {   2, "priorityLevel2" },
3595   {   3, "priorityLevel3" },
3596   {   4, "priorityLevel4" },
3597   { 0, NULL }
3598 };
3599
3600
3601 static int
3602 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_) {
3603   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3604                                                 NULL);
3605
3606   return offset;
3607 }
3608
3609
3610 static const ber_sequence_t gsm_map_EMLPP_Info_sequence[] = {
3611   { &hf_gsm_map_maximumentitledPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
3612   { &hf_gsm_map_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
3613   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
3614   { NULL, 0, 0, 0, NULL }
3615 };
3616
3617 static int
3618 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_) {
3619   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3620                                    gsm_map_EMLPP_Info_sequence, hf_index, ett_gsm_map_EMLPP_Info);
3621
3622   return offset;
3623 }
3624
3625
3626
3627 static int
3628 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_) {
3629 #line 378 "gsmmap.cnf"
3630  /* Note Ext-SS-Status can have more than one byte */
3631
3632  tvbuff_t       *parameter_tvb;
3633  guint8         octet;
3634
3635   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3636                                        &parameter_tvb);
3637
3638
3639  if (!parameter_tvb)
3640         return offset;
3641
3642  octet = tvb_get_guint8(parameter_tvb,0);
3643
3644  proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
3645  if ((octet & 0x01)== 1)        
3646         proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
3647                                                                                 
3648  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);                                                                    
3649  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);                                                                    
3650  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);                                                                    
3651
3652
3653
3654   return offset;
3655 }
3656
3657
3658
3659 static int
3660 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_) {
3661   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3662                                                 NULL);
3663
3664   return offset;
3665 }
3666
3667
3668
3669 static int
3670 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_) {
3671   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3672                                                 NULL);
3673
3674   return offset;
3675 }
3676
3677
3678 static const ber_sequence_t gsm_map_MC_SS_Info_sequence[] = {
3679   { &hf_gsm_map_ss_Code     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
3680   { &hf_gsm_map_ss_Status   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
3681   { &hf_gsm_map_nbrSB       , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers },
3682   { &hf_gsm_map_nbrUser     , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3683   { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
3684   { NULL, 0, 0, 0, NULL }
3685 };
3686
3687 static int
3688 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_) {
3689   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3690                                    gsm_map_MC_SS_Info_sequence, hf_index, ett_gsm_map_MC_SS_Info);
3691
3692   return offset;
3693 }
3694
3695
3696
3697 int
3698 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_) {
3699   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3700                                                 NULL);
3701
3702   return offset;
3703 }
3704
3705
3706 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
3707
3708
3709
3710 static int
3711 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_) {
3712   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3713                                                 NULL);
3714
3715   return offset;
3716 }
3717
3718
3719
3720 static int
3721 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_) {
3722   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
3723
3724   return offset;
3725 }
3726
3727
3728 static const ber_sequence_t gsm_map_ss_RegisterSS_Arg_sequence[] = {
3729   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3730   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3731   { &hf_gsm_map_ss_forwardedToNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
3732   { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
3733   { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime },
3734   { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
3735   { &hf_gsm_map_ss_nbrUser  , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3736   { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL },
3737   { NULL, 0, 0, 0, NULL }
3738 };
3739
3740 int
3741 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_) {
3742   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3743                                    gsm_map_ss_RegisterSS_Arg_sequence, hf_index, ett_gsm_map_ss_RegisterSS_Arg);
3744
3745   return offset;
3746 }
3747
3748
3749
3750 int
3751 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_) {
3752 #line 358 "gsmmap.cnf"
3753
3754  tvbuff_t       *parameter_tvb;
3755  guint8         octet;
3756
3757   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3758                                        &parameter_tvb);
3759
3760
3761  if (!parameter_tvb)
3762         return offset;
3763
3764  octet = tvb_get_guint8(parameter_tvb,0);
3765
3766  proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
3767  if ((octet & 0x01)== 1)        
3768         proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
3769                                                                                 
3770  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);                                                                    
3771  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);                                                                    
3772  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);                                                                    
3773
3774
3775
3776   return offset;
3777 }
3778
3779
3780
3781 static int
3782 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_) {
3783   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3784                                        NULL);
3785
3786 #line 472 "gsmmap.cnf"
3787
3788         proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE);
3789         proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE);
3790         proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE);
3791         proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE);
3792
3793   return offset;
3794 }
3795
3796
3797 static const ber_sequence_t gsm_map_ss_ForwardingFeature_sequence[] = {
3798   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3799   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
3800   { &hf_gsm_map_ss_forwardedToNumber_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3801   { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
3802   { &hf_gsm_map_ss_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions },
3803   { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime },
3804   { &hf_gsm_map_ss_longForwardedToNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
3805   { NULL, 0, 0, 0, NULL }
3806 };
3807
3808 static int
3809 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_) {
3810   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3811                                    gsm_map_ss_ForwardingFeature_sequence, hf_index, ett_gsm_map_ss_ForwardingFeature);
3812
3813   return offset;
3814 }
3815
3816
3817 static const ber_sequence_t gsm_map_ss_ForwardingFeatureList_sequence_of[1] = {
3818   { &hf_gsm_map_ss_ForwardingFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeature },
3819 };
3820
3821 static int
3822 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_) {
3823   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3824                                       gsm_map_ss_ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_ss_ForwardingFeatureList);
3825
3826   return offset;
3827 }
3828
3829
3830 static const ber_sequence_t gsm_map_ss_ForwardingInfo_sequence[] = {
3831   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3832   { &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeatureList },
3833   { NULL, 0, 0, 0, NULL }
3834 };
3835
3836 static int
3837 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_) {
3838   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3839                                    gsm_map_ss_ForwardingInfo_sequence, hf_index, ett_gsm_map_ss_ForwardingInfo);
3840
3841   return offset;
3842 }
3843
3844
3845 static const ber_sequence_t gsm_map_ss_CallBarringFeature_sequence[] = {
3846   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3847   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
3848   { NULL, 0, 0, 0, NULL }
3849 };
3850
3851 static int
3852 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_) {
3853   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3854                                    gsm_map_ss_CallBarringFeature_sequence, hf_index, ett_gsm_map_ss_CallBarringFeature);
3855
3856   return offset;
3857 }
3858
3859
3860 static const ber_sequence_t gsm_map_ss_CallBarringFeatureList_sequence_of[1] = {
3861   { &hf_gsm_map_ss_CallBarringFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeature },
3862 };
3863
3864 static int
3865 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_) {
3866   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3867                                       gsm_map_ss_CallBarringFeatureList_sequence_of, hf_index, ett_gsm_map_ss_CallBarringFeatureList);
3868
3869   return offset;
3870 }
3871
3872
3873 static const ber_sequence_t gsm_map_ss_CallBarringInfo_sequence[] = {
3874   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3875   { &hf_gsm_map_ss_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeatureList },
3876   { NULL, 0, 0, 0, NULL }
3877 };
3878
3879 static int
3880 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_) {
3881   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3882                                    gsm_map_ss_CallBarringInfo_sequence, hf_index, ett_gsm_map_ss_CallBarringInfo);
3883
3884   return offset;
3885 }
3886
3887
3888 static const value_string gsm_map_ss_CliRestrictionOption_vals[] = {
3889   {   0, "permanent" },
3890   {   1, "temporaryDefaultRestricted" },
3891   {   2, "temporaryDefaultAllowed" },
3892   { 0, NULL }
3893 };
3894
3895
3896 static int
3897 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_) {
3898   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3899                                   NULL);
3900
3901   return offset;
3902 }
3903
3904
3905 static const value_string gsm_map_ss_OverrideCategory_vals[] = {
3906   {   0, "overrideEnabled" },
3907   {   1, "overrideDisabled" },
3908   { 0, NULL }
3909 };
3910
3911
3912 static int
3913 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_) {
3914   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3915                                   NULL);
3916
3917   return offset;
3918 }
3919
3920
3921 static const value_string gsm_map_ss_SS_SubscriptionOption_vals[] = {
3922   {   2, "cliRestrictionOption" },
3923   {   1, "overrideCategory" },
3924   { 0, NULL }
3925 };
3926
3927 static const ber_choice_t gsm_map_ss_SS_SubscriptionOption_choice[] = {
3928   {   2, &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption },
3929   {   1, &hf_gsm_map_ss_overrideCategory, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory },
3930   { 0, NULL, 0, 0, 0, NULL }
3931 };
3932
3933 static int
3934 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_) {
3935   offset = dissect_ber_choice(actx, tree, tvb, offset,
3936                                  gsm_map_ss_SS_SubscriptionOption_choice, hf_index, ett_gsm_map_ss_SS_SubscriptionOption,
3937                                  NULL);
3938
3939   return offset;
3940 }
3941
3942
3943 static const ber_sequence_t gsm_map_ss_BasicServiceGroupList_sequence_of[1] = {
3944   { &hf_gsm_map_ss_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3945 };
3946
3947 static int
3948 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_) {
3949   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3950                                       gsm_map_ss_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ss_BasicServiceGroupList);
3951
3952   return offset;
3953 }
3954
3955
3956 static const ber_sequence_t gsm_map_ss_SS_Data_sequence[] = {
3957   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3958   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
3959   { &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 },
3960   { &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_BasicServiceGroupList },
3961   { &hf_gsm_map_ss_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
3962   { &hf_gsm_map_ss_nbrUser  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3963   { NULL, 0, 0, 0, NULL }
3964 };
3965
3966 static int
3967 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_) {
3968   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3969                                    gsm_map_ss_SS_Data_sequence, hf_index, ett_gsm_map_ss_SS_Data);
3970
3971   return offset;
3972 }
3973
3974
3975 const value_string gsm_map_ss_SS_Info_vals[] = {
3976   {   0, "forwardingInfo" },
3977   {   1, "callBarringInfo" },
3978   {   3, "ss-Data" },
3979   { 0, NULL }
3980 };
3981
3982 static const ber_choice_t gsm_map_ss_SS_Info_choice[] = {
3983   {   0, &hf_gsm_map_ss_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingInfo },
3984   {   1, &hf_gsm_map_ss_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CallBarringInfo },
3985   {   3, &hf_gsm_map_ss_ss_Data  , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Data },
3986   { 0, NULL, 0, 0, 0, NULL }
3987 };
3988
3989 int
3990 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_) {
3991   offset = dissect_ber_choice(actx, tree, tvb, offset,
3992                                  gsm_map_ss_SS_Info_choice, hf_index, ett_gsm_map_ss_SS_Info,
3993                                  NULL);
3994
3995   return offset;
3996 }
3997
3998
3999 static const ber_sequence_t gsm_map_ss_SS_ForBS_Code_sequence[] = {
4000   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
4001   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
4002   { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL },
4003   { NULL, 0, 0, 0, NULL }
4004 };
4005
4006 int
4007 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_) {
4008   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4009                                    gsm_map_ss_SS_ForBS_Code_sequence, hf_index, ett_gsm_map_ss_SS_ForBS_Code);
4010
4011   return offset;
4012 }
4013
4014
4015
4016 static int
4017 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_) {
4018   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4019                                                 NULL);
4020
4021   return offset;
4022 }
4023
4024
4025 static const ber_sequence_t gsm_map_ss_CCBS_Feature_sequence[] = {
4026   { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index },
4027   { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4028   { &hf_gsm_map_ss_b_subscriberSubaddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
4029   { &hf_gsm_map_ss_basicServiceGroup, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_BasicServiceCode },
4030   { NULL, 0, 0, 0, NULL }
4031 };
4032
4033 int
4034 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_) {
4035   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4036                                    gsm_map_ss_CCBS_Feature_sequence, hf_index, ett_gsm_map_ss_CCBS_Feature);
4037
4038   return offset;
4039 }
4040
4041
4042 static const ber_sequence_t gsm_map_ss_CCBS_FeatureList_sequence_of[1] = {
4043   { &hf_gsm_map_ss_CCBS_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CCBS_Feature },
4044 };
4045
4046 static int
4047 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_) {
4048   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4049                                       gsm_map_ss_CCBS_FeatureList_sequence_of, hf_index, ett_gsm_map_ss_CCBS_FeatureList);
4050
4051   return offset;
4052 }
4053
4054
4055 static const ber_sequence_t gsm_map_ss_GenericServiceInfo_sequence[] = {
4056   { &hf_gsm_map_ss_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_Status },
4057   { &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CliRestrictionOption },
4058   { &hf_gsm_map_ss_maximumEntitledPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
4059   { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
4060   { &hf_gsm_map_ss_ccbs_FeatureList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_FeatureList },
4061   { &hf_gsm_map_ss_nbrSB    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers },
4062   { &hf_gsm_map_ss_nbrUser  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
4063   { &hf_gsm_map_ss_nbrSN    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
4064   { NULL, 0, 0, 0, NULL }
4065 };
4066
4067 static int
4068 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_) {
4069   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4070                                    gsm_map_ss_GenericServiceInfo_sequence, hf_index, ett_gsm_map_ss_GenericServiceInfo);
4071
4072   return offset;
4073 }
4074
4075
4076 const value_string gsm_map_ss_InterrogateSS_Res_vals[] = {
4077   {   0, "ss-Status" },
4078   {   2, "basicServiceGroupList" },
4079   {   3, "forwardingFeatureList" },
4080   {   4, "genericServiceInfo" },
4081   { 0, NULL }
4082 };
4083
4084 static const ber_choice_t gsm_map_ss_InterrogateSS_Res_choice[] = {
4085   {   0, &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4086   {   2, &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_BasicServiceGroupList },
4087   {   3, &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingFeatureList },
4088   {   4, &hf_gsm_map_ss_genericServiceInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_GenericServiceInfo },
4089   { 0, NULL, 0, 0, 0, NULL }
4090 };
4091
4092 int
4093 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_) {
4094   offset = dissect_ber_choice(actx, tree, tvb, offset,
4095                                  gsm_map_ss_InterrogateSS_Res_choice, hf_index, ett_gsm_map_ss_InterrogateSS_Res,
4096                                  NULL);
4097
4098   return offset;
4099 }
4100
4101
4102
4103 int
4104 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_) {
4105 #line 401 "gsmmap.cnf"
4106  /*The structure of the USSD-DataCodingScheme is defined by
4107   * the Cell Broadcast Data Coding Scheme as described in
4108   * TS 3GPP TS 23.038
4109   * TODO: Should dissect_cbs_data_coding_scheme return encoding type? - like 7bit Alphabet
4110   */
4111   tvbuff_t      *parameter_tvb;
4112   proto_tree *subtree;
4113
4114   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4115                                        &parameter_tvb);
4116
4117   if (!parameter_tvb)
4118      return offset;
4119   subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_cbs_data_coding);
4120   dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree);
4121
4122
4123
4124   return offset;
4125 }
4126
4127
4128
4129 int
4130 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_) {
4131 #line 416 "gsmmap.cnf"
4132
4133   tvbuff_t      *parameter_tvb;
4134   int                   length;
4135   guint8                out_len;
4136   /* XXX - The maximum item label length is 240.  Does this really need to be 1024? 
4137    * use ep_alloc ?
4138    */
4139   static unsigned char bigbuf[1024];
4140   gchar *utf8_text = NULL;
4141   GIConv cd;    
4142   GError *l_conv_error = NULL;
4143
4144   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4145                                        &parameter_tvb);
4146
4147   if (!parameter_tvb)
4148      return offset;
4149
4150   length = tvb_length_remaining(parameter_tvb,0);
4151   switch(sms_encoding){
4152     case SMS_ENCODING_7BIT:
4153     case SMS_ENCODING_7BIT_LANG:
4154         out_len = gsm_sms_char_7bit_unpack(0, length, sizeof(bigbuf),
4155                                            tvb_get_ptr(parameter_tvb, 0, length),
4156                                                        bigbuf);
4157
4158         bigbuf[out_len] = '\0';
4159         gsm_sms_char_ascii_decode(bigbuf, bigbuf, out_len);
4160         bigbuf[1023] = '\0';
4161         proto_tree_add_text(tree, parameter_tvb, 0, length, "USSD String: %s", bigbuf);
4162         break;
4163     case SMS_ENCODING_8BIT:
4164         proto_tree_add_text(tree, parameter_tvb , 0, length, "USSD String: %s", tvb_get_ptr(parameter_tvb, 0, length));
4165         break;
4166     case SMS_ENCODING_UCS2:
4167     case SMS_ENCODING_UCS2_LANG:
4168         if ((cd = g_iconv_open("UTF-8","UCS-2BE")) != (GIConv) -1)
4169         {
4170             utf8_text = g_convert_with_iconv(tvb->real_data, length, cd, NULL, NULL, &l_conv_error);
4171             if(!l_conv_error)
4172                 proto_tree_add_text(tree, tvb, 0, length, "USSD String: %s", utf8_text);
4173             else
4174                 proto_tree_add_text(tree, tvb, 0, length, "USSD String: g_convert_with_iconv FAILED");
4175
4176             if(utf8_text)
4177                 g_free(utf8_text);
4178
4179             g_iconv_close(cd);                          
4180         }
4181         else
4182             proto_tree_add_text(tree, tvb, 0, length, "USSD String: g_iconv_open FAILED contact wireshark");
4183
4184         break;
4185     default:
4186         break;  
4187   }
4188
4189
4190
4191   return offset;
4192 }
4193
4194
4195 static const ber_sequence_t gsm_map_ss_USSD_Arg_sequence[] = {
4196   { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
4197   { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String },
4198   { &hf_gsm_map_ss_alertingPattern, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AlertingPattern },
4199   { &hf_gsm_map_ss_msisdn   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4200   { NULL, 0, 0, 0, NULL }
4201 };
4202
4203 int
4204 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_) {
4205   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4206                                    gsm_map_ss_USSD_Arg_sequence, hf_index, ett_gsm_map_ss_USSD_Arg);
4207
4208   return offset;
4209 }
4210
4211
4212 static const ber_sequence_t gsm_map_ss_USSD_Res_sequence[] = {
4213   { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
4214   { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String },
4215   { NULL, 0, 0, 0, NULL }
4216 };
4217
4218 int
4219 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_) {
4220   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4221                                    gsm_map_ss_USSD_Res_sequence, hf_index, ett_gsm_map_ss_USSD_Res);
4222
4223   return offset;
4224 }
4225
4226
4227
4228 static int
4229 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_) {
4230   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
4231                                             actx, tree, tvb, offset, hf_index,
4232                                             NULL);
4233
4234   return offset;
4235 }
4236
4237
4238 static const ber_sequence_t gsm_map_ss_SS_List_sequence_of[1] = {
4239   { &hf_gsm_map_ss_SS_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
4240 };
4241
4242 static int
4243 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_) {
4244   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4245                                       gsm_map_ss_SS_List_sequence_of, hf_index, ett_gsm_map_ss_SS_List);
4246
4247   return offset;
4248 }
4249
4250
4251 static const ber_sequence_t gsm_map_ss_SS_EventSpecification_sequence_of[1] = {
4252   { &hf_gsm_map_ss_SS_EventSpecification_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
4253 };
4254
4255 static int
4256 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_) {
4257   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4258                                       gsm_map_ss_SS_EventSpecification_sequence_of, hf_index, ett_gsm_map_ss_SS_EventSpecification);
4259
4260   return offset;
4261 }
4262
4263
4264 static const value_string gsm_map_ss_CCBS_RequestState_vals[] = {
4265   {   0, "request" },
4266   {   1, "recall" },
4267   {   2, "active" },
4268   {   3, "completed" },
4269   {   4, "suspended" },
4270   {   5, "frozen" },
4271   {   6, "deleted" },
4272   { 0, NULL }
4273 };
4274
4275
4276 static int
4277 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_) {
4278   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4279                                   NULL);
4280
4281   return offset;
4282 }
4283
4284
4285 static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationArg_sequence[] = {
4286   { &hf_gsm_map_ss_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
4287   { &hf_gsm_map_ss_msisdn   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4288   { &hf_gsm_map_ss_ss_Event , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4289   { &hf_gsm_map_ss_ss_EventSpecification, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_EventSpecification },
4290   { &hf_gsm_map_ss_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
4291   { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4292   { &hf_gsm_map_ss_ccbs_RequestState, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_RequestState },
4293   { NULL, 0, 0, 0, NULL }
4294 };
4295
4296 static int
4297 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_) {
4298   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4299                                    gsm_map_ss_SS_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationArg);
4300
4301   return offset;
4302 }
4303
4304
4305 static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationRes_sequence[] = {
4306   { &hf_gsm_map_ss_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4307   { NULL, 0, 0, 0, NULL }
4308 };
4309
4310 static int
4311 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_) {
4312   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4313                                    gsm_map_ss_SS_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationRes);
4314
4315   return offset;
4316 }
4317
4318
4319 static const asn_namedbit gsm_map_ss_ServiceIndicator_bits[] = {
4320   {  0, &hf_gsm_map_ss_ServiceIndicator_clir_invoked, -1, -1, "clir-invoked", NULL },
4321   {  1, &hf_gsm_map_ss_ServiceIndicator_camel_invoked, -1, -1, "camel-invoked", NULL },
4322   { 0, NULL, 0, 0, NULL, NULL }
4323 };
4324
4325 static int
4326 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_) {
4327   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
4328                                     gsm_map_ss_ServiceIndicator_bits, hf_index, ett_gsm_map_ss_ServiceIndicator,
4329                                     NULL);
4330
4331   return offset;
4332 }
4333
4334
4335 static const ber_sequence_t gsm_map_ss_CCBS_Data_sequence[] = {
4336   { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
4337   { &hf_gsm_map_ss_translatedB_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4338   { &hf_gsm_map_ss_serviceIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ServiceIndicator },
4339   { &hf_gsm_map_ss_callInfo , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
4340   { &hf_gsm_map_ss_networkSignalInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
4341   { NULL, 0, 0, 0, NULL }
4342 };
4343
4344 static int
4345 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_) {
4346   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4347                                    gsm_map_ss_CCBS_Data_sequence, hf_index, ett_gsm_map_ss_CCBS_Data);
4348
4349   return offset;
4350 }
4351
4352
4353 static const ber_sequence_t gsm_map_ss_RegisterCC_EntryArg_sequence[] = {
4354   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4355   { &hf_gsm_map_ss_ccbs_Data, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Data },
4356   { NULL, 0, 0, 0, NULL }
4357 };
4358
4359 static int
4360 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_) {
4361   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4362                                    gsm_map_ss_RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryArg);
4363
4364   return offset;
4365 }
4366
4367
4368 static const ber_sequence_t gsm_map_ss_RegisterCC_EntryRes_sequence[] = {
4369   { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
4370   { NULL, 0, 0, 0, NULL }
4371 };
4372
4373 int
4374 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_) {
4375   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4376                                    gsm_map_ss_RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryRes);
4377
4378   return offset;
4379 }
4380
4381
4382 static const ber_sequence_t gsm_map_ss_EraseCC_EntryArg_sequence[] = {
4383   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4384   { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index },
4385   { NULL, 0, 0, 0, NULL }
4386 };
4387
4388 int
4389 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_) {
4390   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4391                                    gsm_map_ss_EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryArg);
4392
4393   return offset;
4394 }
4395
4396
4397 static const ber_sequence_t gsm_map_ss_EraseCC_EntryRes_sequence[] = {
4398   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4399   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4400   { NULL, 0, 0, 0, NULL }
4401 };
4402
4403 int
4404 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_) {
4405   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4406                                    gsm_map_ss_EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryRes);
4407
4408   return offset;
4409 }
4410
4411
4412 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
4413
4414
4415 static const value_string gsm_map_er_RoamingNotAllowedCause_vals[] = {
4416   {   0, "plmnRoamingNotAllowed" },
4417   {   3, "operatorDeterminedBarring" },
4418   { 0, NULL }
4419 };
4420
4421
4422 static int
4423 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_) {
4424   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4425                                   NULL);
4426
4427   return offset;
4428 }
4429
4430
4431 static const value_string gsm_map_er_AdditionalRoamingNotAllowedCause_vals[] = {
4432   {   0, "supportedRAT-TypesNotAllowed" },
4433   { 0, NULL }
4434 };
4435
4436
4437 static int
4438 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_) {
4439   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4440                                   NULL);
4441
4442   return offset;
4443 }
4444
4445
4446 static const ber_sequence_t gsm_map_er_RoamingNotAllowedParam_sequence[] = {
4447   { &hf_gsm_map_er_roamingNotAllowedCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_RoamingNotAllowedCause },
4448   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4449   { &hf_gsm_map_er_additionalRoamingNotAllowedCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AdditionalRoamingNotAllowedCause },
4450   { NULL, 0, 0, 0, NULL }
4451 };
4452
4453 static int
4454 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_) {
4455   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4456                                    gsm_map_er_RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_er_RoamingNotAllowedParam);
4457
4458   return offset;
4459 }
4460
4461
4462 static const value_string gsm_map_er_CallBarringCause_vals[] = {
4463   {   0, "barringServiceActive" },
4464   {   1, "operatorBarring" },
4465   { 0, NULL }
4466 };
4467
4468
4469 static int
4470 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_) {
4471   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4472                                   NULL);
4473
4474   return offset;
4475 }
4476
4477
4478
4479 static int
4480 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_) {
4481   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4482
4483   return offset;
4484 }
4485
4486
4487 static const ber_sequence_t gsm_map_er_ExtensibleCallBarredParam_sequence[] = {
4488   { &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause },
4489   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4490   { &hf_gsm_map_er_unauthorisedMessageOriginator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4491   { NULL, 0, 0, 0, NULL }
4492 };
4493
4494 static int
4495 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_) {
4496   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4497                                    gsm_map_er_ExtensibleCallBarredParam_sequence, hf_index, ett_gsm_map_er_ExtensibleCallBarredParam);
4498
4499   return offset;
4500 }
4501
4502
4503 static const value_string gsm_map_er_CallBarredParam_vals[] = {
4504   {   0, "callBarringCause" },
4505   {   1, "extensibleCallBarredParam" },
4506   { 0, NULL }
4507 };
4508
4509 static const ber_choice_t gsm_map_er_CallBarredParam_choice[] = {
4510   {   0, &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause },
4511   {   1, &hf_gsm_map_er_extensibleCallBarredParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleCallBarredParam },
4512   { 0, NULL, 0, 0, 0, NULL }
4513 };
4514
4515 static int
4516 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_) {
4517   offset = dissect_ber_choice(actx, tree, tvb, offset,
4518                                  gsm_map_er_CallBarredParam_choice, hf_index, ett_gsm_map_er_CallBarredParam,
4519                                  NULL);
4520
4521   return offset;
4522 }
4523
4524
4525 static const value_string gsm_map_er_CUG_RejectCause_vals[] = {
4526   {   0, "incomingCallsBarredWithinCUG" },
4527   {   1, "subscriberNotMemberOfCUG" },
4528   {   5, "requestedBasicServiceViolatesCUG-Constraints" },
4529   {   7, "calledPartySS-InteractionViolation" },
4530   { 0, NULL }
4531 };
4532
4533
4534 static int
4535 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_) {
4536   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4537                                   NULL);
4538
4539   return offset;
4540 }
4541
4542
4543 static const ber_sequence_t gsm_map_er_CUG_RejectParam_sequence[] = {
4544   { &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 },
4545   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4546   { NULL, 0, 0, 0, NULL }
4547 };
4548
4549 static int
4550 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_) {
4551   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4552                                    gsm_map_er_CUG_RejectParam_sequence, hf_index, ett_gsm_map_er_CUG_RejectParam);
4553
4554   return offset;
4555 }
4556
4557
4558 static const ber_sequence_t gsm_map_er_SS_IncompatibilityCause_sequence[] = {
4559   { &hf_gsm_map_er_ss_Code  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4560   { &hf_gsm_map_er_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
4561   { &hf_gsm_map_er_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4562   { NULL, 0, 0, 0, NULL }
4563 };
4564
4565 static int
4566 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_) {
4567   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4568                                    gsm_map_er_SS_IncompatibilityCause_sequence, hf_index, ett_gsm_map_er_SS_IncompatibilityCause);
4569
4570   return offset;
4571 }
4572
4573
4574 static const value_string gsm_map_er_PW_RegistrationFailureCause_vals[] = {
4575   {   0, "undetermined" },
4576   {   1, "invalidFormat" },
4577   {   2, "newPasswordsMismatch" },
4578   { 0, NULL }
4579 };
4580
4581
4582 static int
4583 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_) {
4584   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4585                                   NULL);
4586
4587   return offset;
4588 }
4589
4590
4591 static const value_string gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals[] = {
4592   {   0, "memoryCapacityExceeded" },
4593   {   1, "equipmentProtocolError" },
4594   {   2, "equipmentNotSM-Equipped" },
4595   {   3, "unknownServiceCentre" },
4596   {   4, "sc-Congestion" },
4597   {   5, "invalidSME-Address" },
4598   {   6, "subscriberNotSC-Subscriber" },
4599   { 0, NULL }
4600 };
4601
4602
4603 static int
4604 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_) {
4605   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4606                                   NULL);
4607
4608   return offset;
4609 }
4610
4611
4612 static const ber_sequence_t gsm_map_er_SM_DeliveryFailureCause_sequence[] = {
4613   { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause },
4614   { &hf_gsm_map_er_diagnosticInfo, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
4615   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4616   { NULL, 0, 0, 0, NULL }
4617 };
4618
4619 static int
4620 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_) {
4621 #line 287 "gsmmap.cnf"
4622         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
4623   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4624                                    gsm_map_er_SM_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_er_SM_DeliveryFailureCause);
4625
4626
4627         if (!actx->value_ptr)
4628                 return offset;
4629         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
4630
4631
4632
4633   return offset;
4634 }
4635
4636
4637
4638 static int
4639 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_) {
4640   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4641                                                 NULL);
4642
4643   return offset;
4644 }
4645
4646
4647 static const ber_sequence_t gsm_map_er_AbsentSubscriberSM_Param_sequence[] = {
4648   { &hf_gsm_map_er_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
4649   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4650   { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
4651   { NULL, 0, 0, 0, NULL }
4652 };
4653
4654 static int
4655 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_) {
4656   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4657                                    gsm_map_er_AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberSM_Param);
4658
4659   return offset;
4660 }
4661
4662
4663 static const value_string gsm_map_er_FailureCauseParam_vals[] = {
4664   {   0, "limitReachedOnNumberOfConcurrentLocationRequests" },
4665   { 0, NULL }
4666 };
4667
4668
4669 static int
4670 dissect_gsm_map_er_FailureCauseParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4671   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4672                                   NULL);
4673
4674   return offset;
4675 }
4676
4677
4678 static const ber_sequence_t gsm_map_er_ExtensibleSystemFailureParam_sequence[] = {
4679   { &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
4680   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4681   { &hf_gsm_map_er_additionalNetworkResource, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AdditionalNetworkResource },
4682   { &hf_gsm_map_er_failureCauseParam, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_FailureCauseParam },
4683   { NULL, 0, 0, 0, NULL }
4684 };
4685
4686 static int
4687 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_) {
4688   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4689                                    gsm_map_er_ExtensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_er_ExtensibleSystemFailureParam);
4690
4691   return offset;
4692 }
4693
4694
4695 static const value_string gsm_map_er_SystemFailureParam_vals[] = {
4696   {   0, "networkResource" },
4697   {   1, "extensibleSystemFailureParam" },
4698   { 0, NULL }
4699 };
4700
4701 static const ber_choice_t gsm_map_er_SystemFailureParam_choice[] = {
4702   {   0, &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
4703   {   1, &hf_gsm_map_er_extensibleSystemFailureParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleSystemFailureParam },
4704   { 0, NULL, 0, 0, 0, NULL }
4705 };
4706
4707 static int
4708 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_) {
4709   offset = dissect_ber_choice(actx, tree, tvb, offset,
4710                                  gsm_map_er_SystemFailureParam_choice, hf_index, ett_gsm_map_er_SystemFailureParam,
4711                                  NULL);
4712
4713   return offset;
4714 }
4715
4716
4717 static const ber_sequence_t gsm_map_er_DataMissingParam_sequence[] = {
4718   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4719   { NULL, 0, 0, 0, NULL }
4720 };
4721
4722 static int
4723 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_) {
4724   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4725                                    gsm_map_er_DataMissingParam_sequence, hf_index, ett_gsm_map_er_DataMissingParam);
4726
4727   return offset;
4728 }
4729
4730
4731 static const ber_sequence_t gsm_map_er_UnexpectedDataParam_sequence[] = {
4732   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4733   { NULL, 0, 0, 0, NULL }
4734 };
4735
4736 static int
4737 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_) {
4738   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4739                                    gsm_map_er_UnexpectedDataParam_sequence, hf_index, ett_gsm_map_er_UnexpectedDataParam);
4740
4741   return offset;
4742 }
4743
4744
4745 static const ber_sequence_t gsm_map_er_FacilityNotSupParam_sequence[] = {
4746   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4747   { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4748   { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4749   { NULL, 0, 0, 0, NULL }
4750 };
4751
4752 static int
4753 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_) {
4754   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4755                                    gsm_map_er_FacilityNotSupParam_sequence, hf_index, ett_gsm_map_er_FacilityNotSupParam);
4756
4757   return offset;
4758 }
4759
4760
4761 static const ber_sequence_t gsm_map_er_OR_NotAllowedParam_sequence[] = {
4762   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4763   { NULL, 0, 0, 0, NULL }
4764 };
4765
4766 static int
4767 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_) {
4768   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4769                                    gsm_map_er_OR_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_OR_NotAllowedParam);
4770
4771   return offset;
4772 }
4773
4774
4775 static const value_string gsm_map_er_UnknownSubscriberDiagnostic_vals[] = {
4776   {   0, "imsiUnknown" },
4777   {   1, "gprsSubscriptionUnknown" },
4778   {   2, "npdbMismatch" },
4779   { 0, NULL }
4780 };
4781
4782
4783 static int
4784 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_) {
4785   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4786                                   NULL);
4787
4788   return offset;
4789 }
4790
4791
4792 static const ber_sequence_t gsm_map_er_UnknownSubscriberParam_sequence[] = {
4793   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4794   { &hf_gsm_map_er_unknownSubscriberDiagnostic, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_UnknownSubscriberDiagnostic },
4795   { NULL, 0, 0, 0, NULL }
4796 };
4797
4798 static int
4799 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_) {
4800   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4801                                    gsm_map_er_UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_er_UnknownSubscriberParam);
4802
4803   return offset;
4804 }
4805
4806
4807 static const ber_sequence_t gsm_map_er_NumberChangedParam_sequence[] = {
4808   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4809   { NULL, 0, 0, 0, NULL }
4810 };
4811
4812 static int
4813 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_) {
4814   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4815                                    gsm_map_er_NumberChangedParam_sequence, hf_index, ett_gsm_map_er_NumberChangedParam);
4816
4817   return offset;
4818 }
4819
4820
4821 static const ber_sequence_t gsm_map_er_UnidentifiedSubParam_sequence[] = {
4822   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4823   { NULL, 0, 0, 0, NULL }
4824 };
4825
4826 static int
4827 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_) {
4828   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4829                                    gsm_map_er_UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_er_UnidentifiedSubParam);
4830
4831   return offset;
4832 }
4833
4834
4835 static const ber_sequence_t gsm_map_er_IllegalSubscriberParam_sequence[] = {
4836   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4837   { NULL, 0, 0, 0, NULL }
4838 };
4839
4840 static int
4841 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_) {
4842   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4843                                    gsm_map_er_IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_er_IllegalSubscriberParam);
4844
4845   return offset;
4846 }
4847
4848
4849 static const ber_sequence_t gsm_map_er_IllegalEquipmentParam_sequence[] = {
4850   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4851   { NULL, 0, 0, 0, NULL }
4852 };
4853
4854 static int
4855 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_) {
4856   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4857                                    gsm_map_er_IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_er_IllegalEquipmentParam);
4858
4859   return offset;
4860 }
4861
4862
4863 static const ber_sequence_t gsm_map_er_BearerServNotProvParam_sequence[] = {
4864   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4865   { NULL, 0, 0, 0, NULL }
4866 };
4867
4868 static int
4869 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_) {
4870   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4871                                    gsm_map_er_BearerServNotProvParam_sequence, hf_index, ett_gsm_map_er_BearerServNotProvParam);
4872
4873   return offset;
4874 }
4875
4876
4877 static const ber_sequence_t gsm_map_er_TeleservNotProvParam_sequence[] = {
4878   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4879   { NULL, 0, 0, 0, NULL }
4880 };
4881
4882 static int
4883 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_) {
4884   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4885                                    gsm_map_er_TeleservNotProvParam_sequence, hf_index, ett_gsm_map_er_TeleservNotProvParam);
4886
4887   return offset;
4888 }
4889
4890
4891 static const ber_sequence_t gsm_map_er_TracingBufferFullParam_sequence[] = {
4892   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4893   { NULL, 0, 0, 0, NULL }
4894 };
4895
4896 static int
4897 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_) {
4898   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4899                                    gsm_map_er_TracingBufferFullParam_sequence, hf_index, ett_gsm_map_er_TracingBufferFullParam);
4900
4901   return offset;
4902 }
4903
4904
4905 static const ber_sequence_t gsm_map_er_NoRoamingNbParam_sequence[] = {
4906   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4907   { NULL, 0, 0, 0, NULL }
4908 };
4909
4910 static int
4911 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_) {
4912   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4913                                    gsm_map_er_NoRoamingNbParam_sequence, hf_index, ett_gsm_map_er_NoRoamingNbParam);
4914
4915   return offset;
4916 }
4917
4918
4919 static const value_string gsm_map_er_AbsentSubscriberReason_vals[] = {
4920   {   0, "imsiDetach" },
4921   {   1, "restrictedArea" },
4922   {   2, "noPageResponse" },
4923   {   3, "purgedMS" },
4924   { 0, NULL }
4925 };
4926
4927
4928 static int
4929 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_) {
4930   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4931                                   NULL);
4932
4933   return offset;
4934 }
4935
4936
4937 static const ber_sequence_t gsm_map_er_AbsentSubscriberParam_sequence[] = {
4938   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4939   { &hf_gsm_map_er_absentSubscriberReason, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberReason },
4940   { NULL, 0, 0, 0, NULL }
4941 };
4942
4943 static int
4944 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_) {
4945   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4946                                    gsm_map_er_AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberParam);
4947
4948   return offset;
4949 }
4950
4951
4952 static const ber_sequence_t gsm_map_er_BusySubscriberParam_sequence[] = {
4953   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4954   { &hf_gsm_map_er_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4955   { &hf_gsm_map_er_ccbs_Busy, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4956   { NULL, 0, 0, 0, NULL }
4957 };
4958
4959 static int
4960 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_) {
4961   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4962                                    gsm_map_er_BusySubscriberParam_sequence, hf_index, ett_gsm_map_er_BusySubscriberParam);
4963
4964   return offset;
4965 }
4966
4967
4968 static const ber_sequence_t gsm_map_er_NoSubscriberReplyParam_sequence[] = {
4969   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4970   { NULL, 0, 0, 0, NULL }
4971 };
4972
4973 static int
4974 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_) {
4975   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4976                                    gsm_map_er_NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_er_NoSubscriberReplyParam);
4977
4978   return offset;
4979 }
4980
4981
4982 static const ber_sequence_t gsm_map_er_ForwardingViolationParam_sequence[] = {
4983   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4984   { NULL, 0, 0, 0, NULL }
4985 };
4986
4987 static int
4988 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_) {
4989   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4990                                    gsm_map_er_ForwardingViolationParam_sequence, hf_index, ett_gsm_map_er_ForwardingViolationParam);
4991
4992   return offset;
4993 }
4994
4995
4996 static const ber_sequence_t gsm_map_er_ForwardingFailedParam_sequence[] = {
4997   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4998   { NULL, 0, 0, 0, NULL }
4999 };
5000
5001 static int
5002 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_) {
5003   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5004                                    gsm_map_er_ForwardingFailedParam_sequence, hf_index, ett_gsm_map_er_ForwardingFailedParam);
5005
5006   return offset;
5007 }
5008
5009
5010 static const ber_sequence_t gsm_map_er_ATI_NotAllowedParam_sequence[] = {
5011   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5012   { NULL, 0, 0, 0, NULL }
5013 };
5014
5015 static int
5016 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_) {
5017   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5018                                    gsm_map_er_ATI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATI_NotAllowedParam);
5019
5020   return offset;
5021 }
5022
5023
5024 static const ber_sequence_t gsm_map_er_ATSI_NotAllowedParam_sequence[] = {
5025   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5026   { NULL, 0, 0, 0, NULL }
5027 };
5028
5029 static int
5030 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_) {
5031   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5032                                    gsm_map_er_ATSI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATSI_NotAllowedParam);
5033
5034   return offset;
5035 }
5036
5037
5038 static const ber_sequence_t gsm_map_er_ATM_NotAllowedParam_sequence[] = {
5039   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5040   { NULL, 0, 0, 0, NULL }
5041 };
5042
5043 static int
5044 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_) {
5045   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5046                                    gsm_map_er_ATM_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATM_NotAllowedParam);
5047
5048   return offset;
5049 }
5050
5051
5052 static const ber_sequence_t gsm_map_er_IllegalSS_OperationParam_sequence[] = {
5053   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5054   { NULL, 0, 0, 0, NULL }
5055 };
5056
5057 static int
5058 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_) {
5059   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5060                                    gsm_map_er_IllegalSS_OperationParam_sequence, hf_index, ett_gsm_map_er_IllegalSS_OperationParam);
5061
5062   return offset;
5063 }
5064
5065
5066 static const ber_sequence_t gsm_map_er_SS_NotAvailableParam_sequence[] = {
5067   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5068   { NULL, 0, 0, 0, NULL }
5069 };
5070
5071 static int
5072 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_) {
5073   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5074                                    gsm_map_er_SS_NotAvailableParam_sequence, hf_index, ett_gsm_map_er_SS_NotAvailableParam);
5075
5076   return offset;
5077 }
5078
5079
5080 static const ber_sequence_t gsm_map_er_SS_SubscriptionViolationParam_sequence[] = {
5081   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5082   { NULL, 0, 0, 0, NULL }
5083 };
5084
5085 static int
5086 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_) {
5087   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5088                                    gsm_map_er_SS_SubscriptionViolationParam_sequence, hf_index, ett_gsm_map_er_SS_SubscriptionViolationParam);
5089
5090   return offset;
5091 }
5092
5093
5094 static const ber_sequence_t gsm_map_er_InformationNotAvailableParam_sequence[] = {
5095   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5096   { NULL, 0, 0, 0, NULL }
5097 };
5098
5099 static int
5100 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_) {
5101   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5102                                    gsm_map_er_InformationNotAvailableParam_sequence, hf_index, ett_gsm_map_er_InformationNotAvailableParam);
5103
5104   return offset;
5105 }
5106
5107
5108 static const ber_sequence_t gsm_map_er_SubBusyForMT_SMS_Param_sequence[] = {
5109   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5110   { &hf_gsm_map_er_gprsConnectionSuspended, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_NULL },
5111   { NULL, 0, 0, 0, NULL }
5112 };
5113
5114 static int
5115 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_) {
5116   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5117                                    gsm_map_er_SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_er_SubBusyForMT_SMS_Param);
5118
5119   return offset;
5120 }
5121
5122
5123 static const ber_sequence_t gsm_map_er_MessageWaitListFullParam_sequence[] = {
5124   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5125   { NULL, 0, 0, 0, NULL }
5126 };
5127
5128 static int
5129 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_) {
5130   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5131                                    gsm_map_er_MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_er_MessageWaitListFullParam);
5132
5133   return offset;
5134 }
5135
5136
5137 static const ber_sequence_t gsm_map_er_ResourceLimitationParam_sequence[] = {
5138   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5139   { NULL, 0, 0, 0, NULL }
5140 };
5141
5142 static int
5143 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_) {
5144   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5145                                    gsm_map_er_ResourceLimitationParam_sequence, hf_index, ett_gsm_map_er_ResourceLimitationParam);
5146
5147   return offset;
5148 }
5149
5150
5151 static const ber_sequence_t gsm_map_er_NoGroupCallNbParam_sequence[] = {
5152   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5153   { NULL, 0, 0, 0, NULL }
5154 };
5155
5156 static int
5157 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_) {
5158   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5159                                    gsm_map_er_NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_er_NoGroupCallNbParam);
5160
5161   return offset;
5162 }
5163
5164
5165 static const ber_sequence_t gsm_map_er_IncompatibleTerminalParam_sequence[] = {
5166   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5167   { NULL, 0, 0, 0, NULL }
5168 };
5169
5170 static int
5171 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_) {
5172   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5173                                    gsm_map_er_IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_er_IncompatibleTerminalParam);
5174
5175   return offset;
5176 }
5177
5178
5179 static const ber_sequence_t gsm_map_er_ShortTermDenialParam_sequence[] = {
5180   { NULL, 0, 0, 0, NULL }
5181 };
5182
5183 static int
5184 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_) {
5185   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5186                                    gsm_map_er_ShortTermDenialParam_sequence, hf_index, ett_gsm_map_er_ShortTermDenialParam);
5187
5188   return offset;
5189 }
5190
5191
5192 static const ber_sequence_t gsm_map_er_LongTermDenialParam_sequence[] = {
5193   { NULL, 0, 0, 0, NULL }
5194 };
5195
5196 static int
5197 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_) {
5198   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5199                                    gsm_map_er_LongTermDenialParam_sequence, hf_index, ett_gsm_map_er_LongTermDenialParam);
5200
5201   return offset;
5202 }
5203
5204
5205 static const ber_sequence_t gsm_map_er_UnauthorizedRequestingNetwork_Param_sequence[] = {
5206   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5207   { NULL, 0, 0, 0, NULL }
5208 };
5209
5210 static int
5211 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_) {
5212   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5213                                    gsm_map_er_UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedRequestingNetwork_Param);
5214
5215   return offset;
5216 }
5217
5218
5219 static const value_string gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals[] = {
5220   {   0, "noAdditionalInformation" },
5221   {   1, "clientNotInMSPrivacyExceptionList" },
5222   {   2, "callToClientNotSetup" },
5223   {   3, "privacyOverrideNotApplicable" },
5224   {   4, "disallowedByLocalRegulatoryRequirements" },
5225   {   5, "unauthorizedPrivacyClass" },
5226   {   6, "unauthorizedCallSessionUnrelatedExternalClient" },
5227   {   7, "unauthorizedCallSessionRelatedExternalClient" },
5228   { 0, NULL }
5229 };
5230
5231
5232 static int
5233 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_) {
5234   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5235                                   NULL);
5236
5237   return offset;
5238 }
5239
5240
5241 static const ber_sequence_t gsm_map_er_UnauthorizedLCSClient_Param_sequence[] = {
5242   { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_UnauthorizedLCSClient_Diagnostic },
5243   { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5244   { NULL, 0, 0, 0, NULL }
5245 };
5246
5247 static int
5248 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_) {
5249   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5250                                    gsm_map_er_UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedLCSClient_Param);
5251
5252   return offset;
5253 }
5254
5255
5256 static const value_string gsm_map_er_PositionMethodFailure_Diagnostic_vals[] = {
5257   {   0, "congestion" },
5258   {   1, "insufficientResources" },
5259   {   2, "insufficientMeasurementData" },
5260   {   3, "inconsistentMeasurementData" },
5261   {   4, "locationProcedureNotCompleted" },
5262   {   5, "locationProcedureNotSupportedByTargetMS" },
5263   {   6, "qoSNotAttainable" },
5264   {   7, "positionMethodNotAvailableInNetwork" },
5265   {   8, "positionMethodNotAvailableInLocationArea" },
5266   { 0, NULL }
5267 };
5268
5269
5270 static int
5271 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_) {
5272   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5273                                   NULL);
5274
5275   return offset;
5276 }
5277
5278
5279 static const ber_sequence_t gsm_map_er_PositionMethodFailure_Param_sequence[] = {
5280   { &hf_gsm_map_er_positionMethodFailure_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_PositionMethodFailure_Diagnostic },
5281   { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5282   { NULL, 0, 0, 0, NULL }
5283 };
5284
5285 static int
5286 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_) {
5287   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5288                                    gsm_map_er_PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_er_PositionMethodFailure_Param);
5289
5290   return offset;
5291 }
5292
5293
5294 static const ber_sequence_t gsm_map_er_UnknownOrUnreachableLCSClient_Param_sequence[] = {
5295   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5296   { NULL, 0, 0, 0, NULL }
5297 };
5298
5299 static int
5300 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_) {
5301   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5302                                    gsm_map_er_UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param);
5303
5304   return offset;
5305 }
5306
5307
5308 static const ber_sequence_t gsm_map_er_MM_EventNotSupported_Param_sequence[] = {
5309   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5310   { NULL, 0, 0, 0, NULL }
5311 };
5312
5313 static int
5314 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_) {
5315   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5316                                    gsm_map_er_MM_EventNotSupported_Param_sequence, hf_index, ett_gsm_map_er_MM_EventNotSupported_Param);
5317
5318   return offset;
5319 }
5320
5321
5322 static const ber_sequence_t gsm_map_er_TargetCellOutsideGCA_Param_sequence[] = {
5323   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5324   { NULL, 0, 0, 0, NULL }
5325 };
5326
5327 static int
5328 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_) {
5329   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5330                                    gsm_map_er_TargetCellOutsideGCA_Param_sequence, hf_index, ett_gsm_map_er_TargetCellOutsideGCA_Param);
5331
5332   return offset;
5333 }
5334
5335
5336 static const ber_sequence_t gsm_map_er_OngoingGroupCallParam_sequence[] = {
5337   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5338   { NULL, 0, 0, 0, NULL }
5339 };
5340
5341 static int
5342 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_) {
5343   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5344                                    gsm_map_er_OngoingGroupCallParam_sequence, hf_index, ett_gsm_map_er_OngoingGroupCallParam);
5345
5346   return offset;
5347 }
5348
5349
5350 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
5351
5352
5353
5354 static int
5355 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_) {
5356   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
5357
5358   return offset;
5359 }
5360
5361
5362
5363 static int
5364 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_) {
5365   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5366
5367   return offset;
5368 }
5369
5370
5371
5372 static int
5373 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_) {
5374   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5375                                                 NULL);
5376
5377   return offset;
5378 }
5379
5380
5381
5382 static int
5383 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_) {
5384   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5385                                        NULL);
5386
5387   return offset;
5388 }
5389
5390
5391 static const value_string gsm_map_sm_SM_DeliveryNotIntended_vals[] = {
5392   {   0, "onlyIMSI-requested" },
5393   {   1, "onlyMCC-MNC-requested" },
5394   { 0, NULL }
5395 };
5396
5397
5398 static int
5399 dissect_gsm_map_sm_SM_DeliveryNotIntended(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5400   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5401                                   NULL);
5402
5403   return offset;
5404 }
5405
5406
5407 static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Arg_sequence[] = {
5408   { &hf_gsm_map_sm_msisdn   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5409   { &hf_gsm_map_sm_sm_RP_PRI, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_BOOLEAN },
5410   { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
5411   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5412   { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5413   { &hf_gsm_map_sm_sm_RP_MTI, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_MTI },
5414   { &hf_gsm_map_sm_sm_RP_SMEA, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_SMEA },
5415   { &hf_gsm_map_sm_sm_deliveryNotIntended, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryNotIntended },
5416   { NULL, 0, 0, 0, NULL }
5417 };
5418
5419 static int
5420 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_) {
5421   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5422                                    gsm_map_sm_RoutingInfoForSM_Arg_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Arg);
5423
5424   return offset;
5425 }
5426
5427
5428 static const value_string gsm_map_sm_Additional_Number_vals[] = {
5429   {   0, "msc-Number" },
5430   {   1, "sgsn-Number" },
5431   { 0, NULL }
5432 };
5433
5434 static const ber_choice_t gsm_map_sm_Additional_Number_choice[] = {
5435   {   0, &hf_gsm_map_sm_msc_Number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5436   {   1, &hf_gsm_map_sm_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5437   { 0, NULL, 0, 0, 0, NULL }
5438 };
5439
5440 static int
5441 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_) {
5442   offset = dissect_ber_choice(actx, tree, tvb, offset,
5443                                  gsm_map_sm_Additional_Number_choice, hf_index, ett_gsm_map_sm_Additional_Number,
5444                                  NULL);
5445
5446   return offset;
5447 }
5448
5449
5450 static const ber_sequence_t gsm_map_sm_LocationInfoWithLMSI_sequence[] = {
5451   { &hf_gsm_map_sm_networkNode_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5452   { &hf_gsm_map_sm_lmsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
5453   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5454   { &hf_gsm_map_sm_gprsNodeIndicator, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5455   { &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 },
5456   { NULL, 0, 0, 0, NULL }
5457 };
5458
5459 static int
5460 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_) {
5461   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5462                                    gsm_map_sm_LocationInfoWithLMSI_sequence, hf_index, ett_gsm_map_sm_LocationInfoWithLMSI);
5463
5464   return offset;
5465 }
5466
5467
5468 static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Res_sequence[] = {
5469   { &hf_gsm_map_sm_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
5470   { &hf_gsm_map_sm_locationInfoWithLMSI, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_LocationInfoWithLMSI },
5471   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5472   { NULL, 0, 0, 0, NULL }
5473 };
5474
5475 static int
5476 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_) {
5477   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5478                                    gsm_map_sm_RoutingInfoForSM_Res_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Res);
5479
5480   return offset;
5481 }
5482
5483
5484 static const value_string gsm_map_sm_SM_RP_DA_vals[] = {
5485   {   0, "imsi" },
5486   {   1, "lmsi" },
5487   {   4, "serviceCentreAddressDA" },
5488   {   5, "noSM-RP-DA" },
5489   { 0, NULL }
5490 };
5491
5492 static const ber_choice_t gsm_map_sm_SM_RP_DA_choice[] = {
5493   {   0, &hf_gsm_map_sm_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5494   {   1, &hf_gsm_map_sm_lmsi     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
5495   {   4, &hf_gsm_map_sm_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
5496   {   5, &hf_gsm_map_sm_noSM_RP_DA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5497   { 0, NULL, 0, 0, 0, NULL }
5498 };
5499
5500 static int
5501 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_) {
5502   offset = dissect_ber_choice(actx, tree, tvb, offset,
5503                                  gsm_map_sm_SM_RP_DA_choice, hf_index, ett_gsm_map_sm_SM_RP_DA,
5504                                  NULL);
5505
5506   return offset;
5507 }
5508
5509
5510
5511 static int
5512 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_) {
5513 #line 276 "gsmmap.cnf"
5514 actx->pinfo->p2p_dir = P2P_DIR_RECV;
5515    offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
5516
5517
5518
5519
5520   return offset;
5521 }
5522
5523
5524
5525 static int
5526 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_) {
5527 #line 268 "gsmmap.cnf"
5528         actx->pinfo->p2p_dir = P2P_DIR_SENT;
5529   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
5530
5531
5532
5533
5534   return offset;
5535 }
5536
5537
5538 static const value_string gsm_map_sm_SM_RP_OA_vals[] = {
5539   {   2, "msisdn" },
5540   {   4, "serviceCentreAddressOA" },
5541   {   5, "noSM-RP-OA" },
5542   { 0, NULL }
5543 };
5544
5545 static const ber_choice_t gsm_map_sm_SM_RP_OA_choice[] = {
5546   {   2, &hf_gsm_map_sm_msisdn_01, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_msisdn },
5547   {   4, &hf_gsm_map_sm_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_serviceCentreAddressOA },
5548   {   5, &hf_gsm_map_sm_noSM_RP_OA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5549   { 0, NULL, 0, 0, 0, NULL }
5550 };
5551
5552 static int
5553 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_) {
5554   offset = dissect_ber_choice(actx, tree, tvb, offset,
5555                                  gsm_map_sm_SM_RP_OA_choice, hf_index, ett_gsm_map_sm_SM_RP_OA,
5556                                  NULL);
5557
5558   return offset;
5559 }
5560
5561
5562 static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Arg_sequence[] = {
5563   { &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 },
5564   { &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 },
5565   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5566   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5567   { &hf_gsm_map_sm_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
5568   { NULL, 0, 0, 0, NULL }
5569 };
5570
5571 static int
5572 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_) {
5573 #line 304 "gsmmap.cnf"
5574
5575         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5576   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5577                                    gsm_map_sm_MO_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Arg);
5578
5579
5580         if (!actx->value_ptr)
5581                 return offset;
5582         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5583
5584
5585
5586   return offset;
5587 }
5588
5589
5590 static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Res_sequence[] = {
5591   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5592   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5593   { NULL, 0, 0, 0, NULL }
5594 };
5595
5596 static int
5597 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_) {
5598 #line 313 "gsmmap.cnf"
5599
5600         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5601   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5602                                    gsm_map_sm_MO_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Res);
5603
5604
5605         if (!actx->value_ptr)
5606                 return offset;
5607         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5608
5609
5610
5611   return offset;
5612 }
5613
5614
5615 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Arg_sequence[] = {
5616   { &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 },
5617   { &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 },
5618   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5619   { &hf_gsm_map_sm_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
5620   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5621   { NULL, 0, 0, 0, NULL }
5622 };
5623
5624 static int
5625 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_) {
5626 #line 322 "gsmmap.cnf"
5627
5628         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5629   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5630                                    gsm_map_sm_MT_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Arg);
5631
5632
5633         if (!actx->value_ptr)
5634                 return offset;
5635         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5636
5637
5638
5639   return offset;
5640 }
5641
5642
5643 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Res_sequence[] = {
5644   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5645   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5646   { NULL, 0, 0, 0, NULL }
5647 };
5648
5649 static int
5650 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_) {
5651 #line 331 "gsmmap.cnf"
5652
5653         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5654   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5655                                    gsm_map_sm_MT_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Res);
5656
5657
5658         if (!actx->value_ptr)
5659                 return offset;
5660         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5661
5662
5663
5664   return offset;
5665 }
5666
5667
5668 static const value_string gsm_map_sm_SM_DeliveryOutcome_vals[] = {
5669   {   0, "memoryCapacityExceeded" },
5670   {   1, "absentSubscriber" },
5671   {   2, "successfulTransfer" },
5672   { 0, NULL }
5673 };
5674
5675
5676 static int
5677 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_) {
5678   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5679                                   NULL);
5680
5681   return offset;
5682 }
5683
5684
5685 static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusArg_sequence[] = {
5686   { &hf_gsm_map_sm_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5687   { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
5688   { &hf_gsm_map_sm_sm_DeliveryOutcome, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
5689   { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5690   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5691   { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5692   { &hf_gsm_map_sm_deliveryOutcomeIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5693   { &hf_gsm_map_sm_additionalSM_DeliveryOutcome, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
5694   { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5695   { &hf_gsm_map_sm_ip_sm_gw_Indicator, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5696   { &hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
5697   { &hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5698   { NULL, 0, 0, 0, NULL }
5699 };
5700
5701 static int
5702 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_) {
5703   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5704                                    gsm_map_sm_ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusArg);
5705
5706   return offset;
5707 }
5708
5709
5710 static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusRes_sequence[] = {
5711   { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5712   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5713   { NULL, 0, 0, 0, NULL }
5714 };
5715
5716 static int
5717 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_) {
5718   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5719                                    gsm_map_sm_ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusRes);
5720
5721   return offset;
5722 }
5723
5724
5725 static const ber_sequence_t gsm_map_sm_AlertServiceCentreArg_sequence[] = {
5726   { &hf_gsm_map_sm_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5727   { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
5728   { NULL, 0, 0, 0, NULL }
5729 };
5730
5731 static int
5732 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_) {
5733   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5734                                    gsm_map_sm_AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_AlertServiceCentreArg);
5735
5736   return offset;
5737 }
5738
5739
5740 static const asn_namedbit gsm_map_sm_MW_Status_bits[] = {
5741   {  0, &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded, -1, -1, "sc-AddressNotIncluded", NULL },
5742   {  1, &hf_gsm_map_sm_MW_Status_mnrf_Set, -1, -1, "mnrf-Set", NULL },
5743   {  2, &hf_gsm_map_sm_MW_Status_mcef_Set, -1, -1, "mcef-Set", NULL },
5744   {  3, &hf_gsm_map_sm_MW_Status_mnrg_Set, -1, -1, "mnrg-Set", NULL },
5745   { 0, NULL, 0, 0, NULL, NULL }
5746 };
5747
5748 static int
5749 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_) {
5750   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5751                                     gsm_map_sm_MW_Status_bits, hf_index, ett_gsm_map_sm_MW_Status,
5752                                     NULL);
5753
5754   return offset;
5755 }
5756
5757
5758 static const ber_sequence_t gsm_map_sm_InformServiceCentreArg_sequence[] = {
5759   { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5760   { &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 },
5761   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5762   { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5763   { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5764   { NULL, 0, 0, 0, NULL }
5765 };
5766
5767 static int
5768 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_) {
5769   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5770                                    gsm_map_sm_InformServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_InformServiceCentreArg);
5771
5772   return offset;
5773 }
5774
5775
5776 static const value_string gsm_map_sm_AlertReason_vals[] = {
5777   {   0, "ms-Present" },
5778   {   1, "memoryAvailable" },
5779   { 0, NULL }
5780 };
5781
5782
5783 static int
5784 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_) {
5785   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5786                                   NULL);
5787
5788   return offset;
5789 }
5790
5791
5792 static const ber_sequence_t gsm_map_sm_ReadyForSM_Arg_sequence[] = {
5793   { &hf_gsm_map_sm_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5794   { &hf_gsm_map_sm_alertReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_AlertReason },
5795   { &hf_gsm_map_sm_alertReasonIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
5796   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5797   { &hf_gsm_map_sm_additionalAlertReasonIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5798   { NULL, 0, 0, 0, NULL }
5799 };
5800
5801 static int
5802 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_) {
5803   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5804                                    gsm_map_sm_ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Arg);
5805
5806   return offset;
5807 }
5808
5809
5810 static const ber_sequence_t gsm_map_sm_ReadyForSM_Res_sequence[] = {
5811   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5812   { NULL, 0, 0, 0, NULL }
5813 };
5814
5815 static int
5816 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_) {
5817   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5818                                    gsm_map_sm_ReadyForSM_Res_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Res);
5819
5820   return offset;
5821 }
5822
5823
5824 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence[] = {
5825   { &hf_gsm_map_sm_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference },
5826   { &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 },
5827   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5828   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5829   { NULL, 0, 0, 0, NULL }
5830 };
5831
5832 static int
5833 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_) {
5834 #line 340 "gsmmap.cnf"
5835
5836         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5837   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5838                                    gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg);
5839
5840
5841         if (!actx->value_ptr)
5842                 return offset;
5843         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5844
5845
5846
5847   return offset;
5848 }
5849
5850
5851 static const ber_sequence_t gsm_map_sm_DispatcherList_sequence_of[1] = {
5852   { &hf_gsm_map_sm_DispatcherList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5853 };
5854
5855 static int
5856 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_) {
5857   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5858                                       gsm_map_sm_DispatcherList_sequence_of, hf_index, ett_gsm_map_sm_DispatcherList);
5859
5860   return offset;
5861 }
5862
5863
5864 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence[] = {
5865   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
5866   { &hf_gsm_map_sm_dispatcherList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_DispatcherList },
5867   { &hf_gsm_map_sm_ongoingCall, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
5868   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5869   { NULL, 0, 0, 0, NULL }
5870 };
5871
5872 static int
5873 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_) {
5874 #line 349 "gsmmap.cnf"
5875
5876         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5877   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5878                                    gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Res);
5879
5880
5881         if (!actx->value_ptr)
5882                 return offset;
5883         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5884
5885
5886
5887   return offset;
5888 }
5889
5890
5891 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
5892
5893
5894
5895 static int
5896 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_) {
5897   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5898                                        NULL);
5899
5900   return offset;
5901 }
5902
5903
5904
5905 static int
5906 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_) {
5907   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5908                                                 NULL);
5909
5910   return offset;
5911 }
5912
5913
5914
5915 static int
5916 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_) {
5917   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5918                                        NULL);
5919
5920   return offset;
5921 }
5922
5923
5924 static const value_string gsm_map_om_TraceDepth_vals[] = {
5925   {   0, "minimum" },
5926   {   1, "medium" },
5927   {   2, "maximum" },
5928   { 0, NULL }
5929 };
5930
5931
5932 static int
5933 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_) {
5934   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5935                                   NULL);
5936
5937   return offset;
5938 }
5939
5940
5941 static const ber_sequence_t gsm_map_om_TraceDepthList_sequence[] = {
5942   { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5943   { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5944   { &hf_gsm_map_om_sgsn_TraceDepth, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5945   { &hf_gsm_map_om_ggsn_TraceDepth, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5946   { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5947   { &hf_gsm_map_om_bmsc_TraceDepth, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5948   { NULL, 0, 0, 0, NULL }
5949 };
5950
5951 static int
5952 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_) {
5953   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5954                                    gsm_map_om_TraceDepthList_sequence, hf_index, ett_gsm_map_om_TraceDepthList);
5955
5956   return offset;
5957 }
5958
5959
5960 static const asn_namedbit gsm_map_om_TraceNE_TypeList_bits[] = {
5961   {  0, &hf_gsm_map_om_TraceNE_TypeList_msc_s, -1, -1, "msc-s", NULL },
5962   {  1, &hf_gsm_map_om_TraceNE_TypeList_mgw, -1, -1, "mgw", NULL },
5963   {  2, &hf_gsm_map_om_TraceNE_TypeList_sgsn, -1, -1, "sgsn", NULL },
5964   {  3, &hf_gsm_map_om_TraceNE_TypeList_ggsn, -1, -1, "ggsn", NULL },
5965   {  4, &hf_gsm_map_om_TraceNE_TypeList_rnc, -1, -1, "rnc", NULL },
5966   {  5, &hf_gsm_map_om_TraceNE_TypeList_bm_sc, -1, -1, "bm-sc", NULL },
5967   { 0, NULL, 0, 0, NULL, NULL }
5968 };
5969
5970 static int
5971 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_) {
5972   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5973                                     gsm_map_om_TraceNE_TypeList_bits, hf_index, ett_gsm_map_om_TraceNE_TypeList,
5974                                     NULL);
5975
5976   return offset;
5977 }
5978
5979
5980 static const asn_namedbit gsm_map_om_MSC_S_InterfaceList_bits[] = {
5981   {  0, &hf_gsm_map_om_MSC_S_InterfaceList_a, -1, -1, "a", NULL },
5982   {  1, &hf_gsm_map_om_MSC_S_InterfaceList_iu, -1, -1, "iu", NULL },
5983   {  2, &hf_gsm_map_om_MSC_S_InterfaceList_mc, -1, -1, "mc", NULL },
5984   {  3, &hf_gsm_map_om_MSC_S_InterfaceList_map_g, -1, -1, "map-g", NULL },
5985   {  4, &hf_gsm_map_om_MSC_S_InterfaceList_map_b, -1, -1, "map-b", NULL },
5986   {  5, &hf_gsm_map_om_MSC_S_InterfaceList_map_e, -1, -1, "map-e", NULL },
5987   {  6, &hf_gsm_map_om_MSC_S_InterfaceList_map_f, -1, -1, "map-f", NULL },
5988   {  7, &hf_gsm_map_om_MSC_S_InterfaceList_cap, -1, -1, "cap", NULL },
5989   {  8, &hf_gsm_map_om_MSC_S_InterfaceList_map_d, -1, -1, "map-d", NULL },
5990   {  9, &hf_gsm_map_om_MSC_S_InterfaceList_map_c, -1, -1, "map-c", NULL },
5991   { 0, NULL, 0, 0, NULL, NULL }
5992 };
5993
5994 static int
5995 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_) {
5996   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5997                                     gsm_map_om_MSC_S_InterfaceList_bits, hf_index, ett_gsm_map_om_MSC_S_InterfaceList,
5998                                     NULL);
5999
6000   return offset;
6001 }
6002
6003
6004 static const asn_namedbit gsm_map_om_MGW_InterfaceList_bits[] = {
6005   {  0, &hf_gsm_map_om_MGW_InterfaceList_mc, -1, -1, "mc", NULL },
6006   {  1, &hf_gsm_map_om_MGW_InterfaceList_nb_up, -1, -1, "nb-up", NULL },
6007   {  2, &hf_gsm_map_om_MGW_InterfaceList_iu_up, -1, -1, "iu-up", NULL },
6008   { 0, NULL, 0, 0, NULL, NULL }
6009 };
6010
6011 static int
6012 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_) {
6013   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6014                                     gsm_map_om_MGW_InterfaceList_bits, hf_index, ett_gsm_map_om_MGW_InterfaceList,
6015                                     NULL);
6016
6017   return offset;
6018 }
6019
6020
6021 static const asn_namedbit gsm_map_om_SGSN_InterfaceList_bits[] = {
6022   {  0, &hf_gsm_map_om_SGSN_InterfaceList_gb, -1, -1, "gb", NULL },
6023   {  1, &hf_gsm_map_om_SGSN_InterfaceList_iu, -1, -1, "iu", NULL },
6024   {  2, &hf_gsm_map_om_SGSN_InterfaceList_gn, -1, -1, "gn", NULL },
6025   {  3, &hf_gsm_map_om_SGSN_InterfaceList_map_gr, -1, -1, "map-gr", NULL },
6026   {  4, &hf_gsm_map_om_SGSN_InterfaceList_map_gd, -1, -1, "map-gd", NULL },
6027   {  5, &hf_gsm_map_om_SGSN_InterfaceList_map_gf, -1, -1, "map-gf", NULL },
6028   {  6, &hf_gsm_map_om_SGSN_InterfaceList_gs, -1, -1, "gs", NULL },
6029   {  7, &hf_gsm_map_om_SGSN_InterfaceList_ge, -1, -1, "ge", NULL },
6030   { 0, NULL, 0, 0, NULL, NULL }
6031 };
6032
6033 static int
6034 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_) {
6035   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6036                                     gsm_map_om_SGSN_InterfaceList_bits, hf_index, ett_gsm_map_om_SGSN_InterfaceList,
6037                                     NULL);
6038
6039   return offset;
6040 }
6041
6042
6043 static const asn_namedbit gsm_map_om_GGSN_InterfaceList_bits[] = {
6044   {  0, &hf_gsm_map_om_GGSN_InterfaceList_gn, -1, -1, "gn", NULL },
6045   {  1, &hf_gsm_map_om_GGSN_InterfaceList_gi, -1, -1, "gi", NULL },
6046   {  2, &hf_gsm_map_om_GGSN_InterfaceList_gmb, -1, -1, "gmb", NULL },
6047   { 0, NULL, 0, 0, NULL, NULL }
6048 };
6049
6050 static int
6051 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_) {
6052   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6053                                     gsm_map_om_GGSN_InterfaceList_bits, hf_index, ett_gsm_map_om_GGSN_InterfaceList,
6054                                     NULL);
6055
6056   return offset;
6057 }
6058
6059
6060 static const asn_namedbit gsm_map_om_RNC_InterfaceList_bits[] = {
6061   {  0, &hf_gsm_map_om_RNC_InterfaceList_iu, -1, -1, "iu", NULL },
6062   {  1, &hf_gsm_map_om_RNC_InterfaceList_iur, -1, -1, "iur", NULL },
6063   {  2, &hf_gsm_map_om_RNC_InterfaceList_iub, -1, -1, "iub", NULL },
6064   {  3, &hf_gsm_map_om_RNC_InterfaceList_uu, -1, -1, "uu", NULL },
6065   { 0, NULL, 0, 0, NULL, NULL }
6066 };
6067
6068 static int
6069 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_) {
6070   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6071                                     gsm_map_om_RNC_InterfaceList_bits, hf_index, ett_gsm_map_om_RNC_InterfaceList,
6072                                     NULL);
6073
6074   return offset;
6075 }
6076
6077
6078 static const asn_namedbit gsm_map_om_BMSC_InterfaceList_bits[] = {
6079   {  0, &hf_gsm_map_om_BMSC_InterfaceList_gmb, -1, -1, "gmb", NULL },
6080   { 0, NULL, 0, 0, NULL, NULL }
6081 };
6082
6083 static int
6084 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_) {
6085   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6086                                     gsm_map_om_BMSC_InterfaceList_bits, hf_index, ett_gsm_map_om_BMSC_InterfaceList,
6087                                     NULL);
6088
6089   return offset;
6090 }
6091
6092
6093 static const ber_sequence_t gsm_map_om_TraceInterfaceList_sequence[] = {
6094   { &hf_gsm_map_om_msc_s_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList },
6095   { &hf_gsm_map_om_mgw_List , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList },
6096   { &hf_gsm_map_om_sgsn_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_InterfaceList },
6097   { &hf_gsm_map_om_ggsn_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_InterfaceList },
6098   { &hf_gsm_map_om_rnc_List , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList },
6099   { &hf_gsm_map_om_bmsc_List, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_InterfaceList },
6100   { NULL, 0, 0, 0, NULL }
6101 };
6102
6103 static int
6104 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_) {
6105   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6106                                    gsm_map_om_TraceInterfaceList_sequence, hf_index, ett_gsm_map_om_TraceInterfaceList);
6107
6108   return offset;
6109 }
6110
6111
6112 static const asn_namedbit gsm_map_om_MSC_S_EventList_bits[] = {
6113   {  0, &hf_gsm_map_om_MSC_S_EventList_mo_mtCall, -1, -1, "mo-mtCall", NULL },
6114   {  1, &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL },
6115   {  2, &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach, -1, -1, "lu-imsiAttach-imsiDetach", NULL },
6116   {  3, &hf_gsm_map_om_MSC_S_EventList_handovers, -1, -1, "handovers", NULL },
6117   {  4, &hf_gsm_map_om_MSC_S_EventList_ss, -1, -1, "ss", NULL },
6118   { 0, NULL, 0, 0, NULL, NULL }
6119 };
6120
6121 static int
6122 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_) {
6123   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6124                                     gsm_map_om_MSC_S_EventList_bits, hf_index, ett_gsm_map_om_MSC_S_EventList,
6125                                     NULL);
6126
6127   return offset;
6128 }
6129
6130
6131 static const asn_namedbit gsm_map_om_MGW_EventList_bits[] = {
6132   {  0, &hf_gsm_map_om_MGW_EventList_context, -1, -1, "context", NULL },
6133   { 0, NULL, 0, 0, NULL, NULL }
6134 };
6135
6136 static int
6137 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_) {
6138   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6139                                     gsm_map_om_MGW_EventList_bits, hf_index, ett_gsm_map_om_MGW_EventList,
6140                                     NULL);
6141
6142   return offset;
6143 }
6144
6145
6146 static const asn_namedbit gsm_map_om_SGSN_EventList_bits[] = {
6147   {  0, &hf_gsm_map_om_SGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL },
6148   {  1, &hf_gsm_map_om_SGSN_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL },
6149   {  2, &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach, -1, -1, "rau-gprsAttach-gprsDetach", NULL },
6150   {  3, &hf_gsm_map_om_SGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL },
6151   { 0, NULL, 0, 0, NULL, NULL }
6152 };
6153
6154 static int
6155 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_) {
6156   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6157                                     gsm_map_om_SGSN_EventList_bits, hf_index, ett_gsm_map_om_SGSN_EventList,
6158                                     NULL);
6159
6160   return offset;
6161 }
6162
6163
6164 static const asn_namedbit gsm_map_om_GGSN_EventList_bits[] = {
6165   {  0, &hf_gsm_map_om_GGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL },
6166   {  1, &hf_gsm_map_om_GGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL },
6167   { 0, NULL, 0, 0, NULL, NULL }
6168 };
6169
6170 static int
6171 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_) {
6172   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6173                                     gsm_map_om_GGSN_EventList_bits, hf_index, ett_gsm_map_om_GGSN_EventList,
6174                                     NULL);
6175
6176   return offset;
6177 }
6178
6179
6180 static const asn_namedbit gsm_map_om_BMSC_EventList_bits[] = {
6181   {  0, &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation, -1, -1, "mbmsMulticastServiceActivation", NULL },
6182   { 0, NULL, 0, 0, NULL, NULL }
6183 };
6184
6185 static int
6186 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_) {
6187   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6188                                     gsm_map_om_BMSC_EventList_bits, hf_index, ett_gsm_map_om_BMSC_EventList,
6189                                     NULL);
6190
6191   return offset;
6192 }
6193
6194
6195 static const ber_sequence_t gsm_map_om_TraceEventList_sequence[] = {
6196   { &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 },
6197   { &hf_gsm_map_om_mgw_List_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList },
6198   { &hf_gsm_map_om_sgsn_List_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_EventList },
6199   { &hf_gsm_map_om_ggsn_List_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_EventList },
6200   { &hf_gsm_map_om_bmsc_List_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_EventList },
6201   { NULL, 0, 0, 0, NULL }
6202 };
6203
6204 static int
6205 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_) {
6206   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6207                                    gsm_map_om_TraceEventList_sequence, hf_index, ett_gsm_map_om_TraceEventList);
6208
6209   return offset;
6210 }
6211
6212
6213 static const ber_sequence_t gsm_map_om_ActivateTraceModeArg_sequence[] = {
6214   { &hf_gsm_map_om_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
6215   { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
6216   { &hf_gsm_map_om_traceType, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
6217   { &hf_gsm_map_om_omc_Id   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
6218   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6219   { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
6220   { &hf_gsm_map_om_traceDepthList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthList },
6221   { &hf_gsm_map_om_traceNE_TypeList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceNE_TypeList },
6222   { &hf_gsm_map_om_traceInterfaceList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceInterfaceList },
6223   { &hf_gsm_map_om_traceEventList, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceEventList },
6224   { NULL, 0, 0, 0, NULL }
6225 };
6226
6227 static int
6228 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_) {
6229   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6230                                    gsm_map_om_ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeArg);
6231
6232   return offset;
6233 }
6234
6235
6236
6237 static int
6238 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_) {
6239   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6240                                        NULL);
6241
6242   return offset;
6243 }
6244
6245
6246 static const ber_sequence_t gsm_map_om_TracePropagationList_sequence[] = {
6247   { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
6248   { &hf_gsm_map_om_traceType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
6249   { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
6250   { &hf_gsm_map_om_traceRecordingSessionReference, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceRecordingSessionReference },
6251   { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6252   { &hf_gsm_map_om_rnc_InterfaceList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList },
6253   { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6254   { &hf_gsm_map_om_msc_s_InterfaceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList },
6255   { &hf_gsm_map_om_msc_s_EventList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_EventList },
6256   { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6257   { &hf_gsm_map_om_mgw_InterfaceList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList },
6258   { &hf_gsm_map_om_mgw_EventList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList },
6259   { NULL, 0, 0, 0, NULL }
6260 };
6261
6262 static int
6263 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_) {
6264   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6265                                    gsm_map_om_TracePropagationList_sequence, hf_index, ett_gsm_map_om_TracePropagationList);
6266
6267   return offset;
6268 }
6269
6270
6271
6272 static int
6273 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_) {
6274   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6275
6276   return offset;
6277 }
6278
6279
6280 static const ber_sequence_t gsm_map_om_ActivateTraceModeRes_sequence[] = {
6281   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6282   { &hf_gsm_map_om_traceSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_NULL },
6283   { NULL, 0, 0, 0, NULL }
6284 };
6285
6286 static int
6287 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_) {
6288   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6289                                    gsm_map_om_ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeRes);
6290
6291   return offset;
6292 }
6293
6294
6295 static const ber_sequence_t gsm_map_om_DeactivateTraceModeArg_sequence[] = {
6296   { &hf_gsm_map_om_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
6297   { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
6298   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6299   { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
6300   { NULL, 0, 0, 0, NULL }
6301 };
6302
6303 static int
6304 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_) {
6305   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6306                                    gsm_map_om_DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeArg);
6307
6308   return offset;
6309 }
6310
6311
6312 static const ber_sequence_t gsm_map_om_DeactivateTraceModeRes_sequence[] = {
6313   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6314   { NULL, 0, 0, 0, NULL }
6315 };
6316
6317 static int
6318 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_) {
6319   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6320                                    gsm_map_om_DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeRes);
6321
6322   return offset;
6323 }
6324
6325
6326 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
6327
6328
6329 static const asn_namedbit gsm_map_ms_SupportedCamelPhases_bits[] = {
6330   {  0, &hf_gsm_map_ms_SupportedCamelPhases_phase1, -1, -1, "phase1", NULL },
6331   {  1, &hf_gsm_map_ms_SupportedCamelPhases_phase2, -1, -1, "phase2", NULL },
6332   {  2, &hf_gsm_map_ms_SupportedCamelPhases_phase3, -1, -1, "phase3", NULL },
6333   {  3, &hf_gsm_map_ms_SupportedCamelPhases_phase4, -1, -1, "phase4", NULL },
6334   { 0, NULL, 0, 0, NULL, NULL }
6335 };
6336
6337 int
6338 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_) {
6339   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6340                                     gsm_map_ms_SupportedCamelPhases_bits, hf_index, ett_gsm_map_ms_SupportedCamelPhases,
6341                                     NULL);
6342
6343   return offset;
6344 }
6345
6346
6347
6348 static int
6349 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_) {
6350   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6351
6352   return offset;
6353 }
6354
6355
6356 static const value_string gsm_map_ms_IST_SupportIndicator_vals[] = {
6357   {   0, "basicISTSupported" },
6358   {   1, "istCommandSupported" },
6359   { 0, NULL }
6360 };
6361
6362
6363 static int
6364 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_) {
6365   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6366                                   NULL);
6367
6368   return offset;
6369 }
6370
6371
6372
6373 static int
6374 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_) {
6375   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6376                                        NULL);
6377
6378   return offset;
6379 }
6380
6381
6382 static const value_string gsm_map_ms_SuperChargerInfo_vals[] = {
6383   {   0, "sendSubscriberData" },
6384   {   1, "subscriberDataStored" },
6385   { 0, NULL }
6386 };
6387
6388 static const ber_choice_t gsm_map_ms_SuperChargerInfo_choice[] = {
6389   {   0, &hf_gsm_map_ms_sendSubscriberData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6390   {   1, &hf_gsm_map_ms_subscriberDataStored, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator },
6391   { 0, NULL, 0, 0, 0, NULL }
6392 };
6393
6394 static int
6395 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_) {
6396   offset = dissect_ber_choice(actx, tree, tvb, offset,
6397                                  gsm_map_ms_SuperChargerInfo_choice, hf_index, ett_gsm_map_ms_SuperChargerInfo,
6398                                  NULL);
6399
6400   return offset;
6401 }
6402
6403
6404 static const asn_namedbit gsm_map_ms_SupportedLCS_CapabilitySets_bits[] = {
6405   {  0, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1, -1, -1, "lcsCapabilitySet1", NULL },
6406   {  1, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2, -1, -1, "lcsCapabilitySet2", NULL },
6407   {  2, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3, -1, -1, "lcsCapabilitySet3", NULL },
6408   {  3, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4, -1, -1, "lcsCapabilitySet4", NULL },
6409   {  4, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5, -1, -1, "lcsCapabilitySet5", NULL },
6410   { 0, NULL, 0, 0, NULL, NULL }
6411 };
6412
6413 static int
6414 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_) {
6415   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6416                                     gsm_map_ms_SupportedLCS_CapabilitySets_bits, hf_index, ett_gsm_map_ms_SupportedLCS_CapabilitySets,
6417                                     NULL);
6418
6419   return offset;
6420 }
6421
6422
6423 static const asn_namedbit gsm_map_ms_OfferedCamel4CSIs_bits[] = {
6424   {  0, &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi, -1, -1, "o-csi", NULL },
6425   {  1, &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi, -1, -1, "d-csi", NULL },
6426   {  2, &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi, -1, -1, "vt-csi", NULL },
6427   {  3, &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi, -1, -1, "t-csi", NULL },
6428   {  4, &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi, -1, -1, "mt-sms-csi", NULL },
6429   {  5, &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi, -1, -1, "mg-csi", NULL },
6430   {  6, &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements, -1, -1, "psi-enhancements", NULL },
6431   { 0, NULL, 0, 0, NULL, NULL }
6432 };
6433
6434 static int
6435 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_) {
6436   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6437                                     gsm_map_ms_OfferedCamel4CSIs_bits, hf_index, ett_gsm_map_ms_OfferedCamel4CSIs,
6438                                     NULL);
6439
6440   return offset;
6441 }
6442
6443
6444 static const asn_namedbit gsm_map_ms_SupportedRAT_Types_bits[] = {
6445   {  0, &hf_gsm_map_ms_SupportedRAT_Types_utran, -1, -1, "utran", NULL },
6446   {  1, &hf_gsm_map_ms_SupportedRAT_Types_geran, -1, -1, "geran", NULL },
6447   { 0, NULL, 0, 0, NULL, NULL }
6448 };
6449
6450 static int
6451 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_) {
6452   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6453                                     gsm_map_ms_SupportedRAT_Types_bits, hf_index, ett_gsm_map_ms_SupportedRAT_Types,
6454                                     NULL);
6455
6456   return offset;
6457 }
6458
6459
6460 static const ber_sequence_t gsm_map_ms_VLR_Capability_sequence[] = {
6461   { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
6462   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6463   { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6464   { &hf_gsm_map_ms_istSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator },
6465   { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo },
6466   { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6467   { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
6468   { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
6469   { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types },
6470   { &hf_gsm_map_ms_longGroupID_Supported, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6471   { NULL, 0, 0, 0, NULL }
6472 };
6473
6474 static int
6475 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_) {
6476   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6477                                    gsm_map_ms_VLR_Capability_sequence, hf_index, ett_gsm_map_ms_VLR_Capability);
6478
6479   return offset;
6480 }
6481
6482
6483
6484 int
6485 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_) {
6486 #line 529 "gsmmap.cnf"
6487
6488         tvbuff_t        *parameter_tvb;
6489         guint8          octet;
6490         proto_tree *subtree;
6491
6492   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6493                                        &parameter_tvb);
6494
6495
6496         if (!parameter_tvb)
6497                 return offset;
6498         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_pdptypenumber);
6499
6500         octet = tvb_get_guint8(parameter_tvb,0);
6501         switch(octet){
6502         case 0x04: /* IPv4 */
6503                 proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE);
6504                 break;
6505         case 0x50: /* IPv4 */
6506                 proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE);
6507                 break;
6508         default:
6509                 break;
6510         }
6511
6512
6513
6514   return offset;
6515 }
6516
6517
6518 static const ber_sequence_t gsm_map_ms_ADD_Info_sequence[] = {
6519   { &hf_gsm_map_ms_imeisv   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
6520   { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6521   { NULL, 0, 0, 0, NULL }
6522 };
6523
6524 static int
6525 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_) {
6526   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6527                                    gsm_map_ms_ADD_Info_sequence, hf_index, ett_gsm_map_ms_ADD_Info);
6528
6529   return offset;
6530 }
6531
6532
6533 static const ber_sequence_t gsm_map_ms_UpdateLocationArg_sequence[] = {
6534   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6535   { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6536   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6537   { &hf_gsm_map_ms_lmsi     , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
6538   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6539   { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability },
6540   { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6541   { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6542   { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
6543   { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info },
6544   { NULL, 0, 0, 0, NULL }
6545 };
6546
6547 static int
6548 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_) {
6549   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6550                                    gsm_map_ms_UpdateLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateLocationArg);
6551
6552   return offset;
6553 }
6554
6555
6556 static const ber_sequence_t gsm_map_ms_UpdateLocationRes_sequence[] = {
6557   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6558   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6559   { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
6560   { NULL, 0, 0, 0, NULL }
6561 };
6562
6563 static int
6564 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_) {
6565   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6566                                    gsm_map_ms_UpdateLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateLocationRes);
6567
6568   return offset;
6569 }
6570
6571
6572 static const value_string gsm_map_ms_CancellationType_vals[] = {
6573   {   0, "updateProcedure" },
6574   {   1, "subscriptionWithdraw" },
6575   { 0, NULL }
6576 };
6577
6578
6579 static int
6580 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_) {
6581   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6582                                   NULL);
6583
6584   return offset;
6585 }
6586
6587
6588 static const ber_sequence_t gsm_map_ms_CancelLocationArg_U_sequence[] = {
6589   { &hf_gsm_map_ms_identity , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Identity },
6590   { &hf_gsm_map_ms_cancellationType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CancellationType },
6591   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6592   { NULL, 0, 0, 0, NULL }
6593 };
6594
6595 static int
6596 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_) {
6597   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6598                                    gsm_map_ms_CancelLocationArg_U_sequence, hf_index, ett_gsm_map_ms_CancelLocationArg_U);
6599
6600   return offset;
6601 }
6602
6603
6604
6605 static int
6606 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_) {
6607   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6608                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_CancelLocationArg_U);
6609
6610   return offset;
6611 }
6612
6613
6614 static const ber_sequence_t gsm_map_ms_CancelLocationRes_sequence[] = {
6615   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6616   { NULL, 0, 0, 0, NULL }
6617 };
6618
6619 static int
6620 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_) {
6621   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6622                                    gsm_map_ms_CancelLocationRes_sequence, hf_index, ett_gsm_map_ms_CancelLocationRes);
6623
6624   return offset;
6625 }
6626
6627
6628 static const ber_sequence_t gsm_map_ms_PurgeMS_Arg_U_sequence[] = {
6629   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6630   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6631   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6632   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6633   { NULL, 0, 0, 0, NULL }
6634 };
6635
6636 static int
6637 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_) {
6638   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6639                                    gsm_map_ms_PurgeMS_Arg_U_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Arg_U);
6640
6641   return offset;
6642 }
6643
6644
6645
6646 static int
6647 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_) {
6648   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6649                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PurgeMS_Arg_U);
6650
6651   return offset;
6652 }
6653
6654
6655 static const ber_sequence_t gsm_map_ms_PurgeMS_Res_sequence[] = {
6656   { &hf_gsm_map_ms_freezeTMSI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6657   { &hf_gsm_map_ms_freezeP_TMSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6658   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6659   { NULL, 0, 0, 0, NULL }
6660 };
6661
6662 static int
6663 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_) {
6664   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6665                                    gsm_map_ms_PurgeMS_Res_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Res);
6666
6667   return offset;
6668 }
6669
6670
6671
6672 static int
6673 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_) {
6674   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6675                                                 NULL);
6676
6677   return offset;
6678 }
6679
6680
6681
6682 static int
6683 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_) {
6684   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6685                                                 NULL);
6686
6687   return offset;
6688 }
6689
6690
6691 static const ber_sequence_t gsm_map_ms_SendIdentificationArg_sequence[] = {
6692   { &hf_gsm_map_ms_tmsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_TMSI },
6693   { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
6694   { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
6695   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6696   { &hf_gsm_map_ms_msc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6697   { &hf_gsm_map_ms_previous_LAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
6698   { &hf_gsm_map_ms_hopCounter, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_HopCounter },
6699   { NULL, 0, 0, 0, NULL }
6700 };
6701
6702 static int
6703 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_) {
6704   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6705                                    gsm_map_ms_SendIdentificationArg_sequence, hf_index, ett_gsm_map_ms_SendIdentificationArg);
6706
6707   return offset;
6708 }
6709
6710
6711
6712 static int
6713 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_) {
6714   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6715                                        NULL);
6716
6717   return offset;
6718 }
6719
6720
6721
6722 static int
6723 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_) {
6724   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6725                                        NULL);
6726
6727   return offset;
6728 }
6729
6730
6731
6732 static int
6733 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_) {
6734   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6735                                        NULL);
6736
6737   return offset;
6738 }
6739
6740
6741 static const ber_sequence_t gsm_map_ms_AuthenticationTriplet_sequence[] = {
6742   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
6743   { &hf_gsm_map_ms_sres     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SRES },
6744   { &hf_gsm_map_ms_kc       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc },
6745   { NULL, 0, 0, 0, NULL }
6746 };
6747
6748 static int
6749 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_) {
6750   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6751                                    gsm_map_ms_AuthenticationTriplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationTriplet);
6752
6753   return offset;
6754 }
6755
6756
6757 static const ber_sequence_t gsm_map_ms_TripletList_sequence_of[1] = {
6758   { &hf_gsm_map_ms_TripletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationTriplet },
6759 };
6760
6761 static int
6762 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_) {
6763   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6764                                       gsm_map_ms_TripletList_sequence_of, hf_index, ett_gsm_map_ms_TripletList);
6765
6766   return offset;
6767 }
6768
6769
6770
6771 static int
6772 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_) {
6773   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6774                                        NULL);
6775
6776   return offset;
6777 }
6778
6779
6780
6781 static int
6782 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_) {
6783   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6784                                        NULL);
6785
6786   return offset;
6787 }
6788
6789
6790
6791 static int
6792 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_) {
6793   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6794                                        NULL);
6795
6796   return offset;
6797 }
6798
6799
6800
6801 static int
6802 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_) {
6803   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6804                                        NULL);
6805
6806   return offset;
6807 }
6808
6809
6810 static const ber_sequence_t gsm_map_ms_AuthenticationQuintuplet_sequence[] = {
6811   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
6812   { &hf_gsm_map_ms_xres     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_XRES },
6813   { &hf_gsm_map_ms_ck       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK },
6814   { &hf_gsm_map_ms_ik       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK },
6815   { &hf_gsm_map_ms_autn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTN },
6816   { NULL, 0, 0, 0, NULL }
6817 };
6818
6819 static int
6820 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_) {
6821   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6822                                    gsm_map_ms_AuthenticationQuintuplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationQuintuplet);
6823
6824   return offset;
6825 }
6826
6827
6828 static const ber_sequence_t gsm_map_ms_QuintupletList_sequence_of[1] = {
6829   { &hf_gsm_map_ms_QuintupletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationQuintuplet },
6830 };
6831
6832 static int
6833 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_) {
6834   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6835                                       gsm_map_ms_QuintupletList_sequence_of, hf_index, ett_gsm_map_ms_QuintupletList);
6836
6837   return offset;
6838 }
6839
6840
6841 static const value_string gsm_map_ms_AuthenticationSetList_vals[] = {
6842   {   0, "tripletList" },
6843   {   1, "quintupletList" },
6844   { 0, NULL }
6845 };
6846
6847 static const ber_choice_t gsm_map_ms_AuthenticationSetList_choice[] = {
6848   {   0, &hf_gsm_map_ms_tripletList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TripletList },
6849   {   1, &hf_gsm_map_ms_quintupletList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QuintupletList },
6850   { 0, NULL, 0, 0, 0, NULL }
6851 };
6852
6853 static int
6854 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_) {
6855   offset = dissect_ber_choice(actx, tree, tvb, offset,
6856                                  gsm_map_ms_AuthenticationSetList_choice, hf_index, ett_gsm_map_ms_AuthenticationSetList,
6857                                  NULL);
6858
6859   return offset;
6860 }
6861
6862
6863
6864 static int
6865 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_) {
6866   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6867                                        NULL);
6868
6869   return offset;
6870 }
6871
6872
6873 static const ber_sequence_t gsm_map_ms_GSM_SecurityContextData_sequence[] = {
6874   { &hf_gsm_map_ms_kc       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc },
6875   { &hf_gsm_map_ms_cksn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Cksn },
6876   { NULL, 0, 0, 0, NULL }
6877 };
6878
6879 static int
6880 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_) {
6881   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6882                                    gsm_map_ms_GSM_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_GSM_SecurityContextData);
6883
6884   return offset;
6885 }
6886
6887
6888
6889 static int
6890 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_) {
6891   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6892                                        NULL);
6893
6894   return offset;
6895 }
6896
6897
6898 static const ber_sequence_t gsm_map_ms_UMTS_SecurityContextData_sequence[] = {
6899   { &hf_gsm_map_ms_ck       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK },
6900   { &hf_gsm_map_ms_ik       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK },
6901   { &hf_gsm_map_ms_ksi      , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_KSI },
6902   { NULL, 0, 0, 0, NULL }
6903 };
6904
6905 static int
6906 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_) {
6907   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6908                                    gsm_map_ms_UMTS_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_UMTS_SecurityContextData);
6909
6910   return offset;
6911 }
6912
6913
6914 static const value_string gsm_map_ms_CurrentSecurityContext_vals[] = {
6915   {   0, "gsm-SecurityContextData" },
6916   {   1, "umts-SecurityContextData" },
6917   { 0, NULL }
6918 };
6919
6920 static const ber_choice_t gsm_map_ms_CurrentSecurityContext_choice[] = {
6921   {   0, &hf_gsm_map_ms_gsm_SecurityContextData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSM_SecurityContextData },
6922   {   1, &hf_gsm_map_ms_umts_SecurityContextData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UMTS_SecurityContextData },
6923   { 0, NULL, 0, 0, 0, NULL }
6924 };
6925
6926 static int
6927 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_) {
6928   offset = dissect_ber_choice(actx, tree, tvb, offset,
6929                                  gsm_map_ms_CurrentSecurityContext_choice, hf_index, ett_gsm_map_ms_CurrentSecurityContext,
6930                                  NULL);
6931
6932   return offset;
6933 }
6934
6935
6936 static const ber_sequence_t gsm_map_ms_SendIdentificationRes_U_sequence[] = {
6937   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6938   { &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 },
6939   { &hf_gsm_map_ms_currentSecurityContext, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_CurrentSecurityContext },
6940   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6941   { NULL, 0, 0, 0, NULL }
6942 };
6943
6944 static int
6945 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_) {
6946   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6947                                    gsm_map_ms_SendIdentificationRes_U_sequence, hf_index, ett_gsm_map_ms_SendIdentificationRes_U);
6948
6949   return offset;
6950 }
6951
6952
6953
6954 static int
6955 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_) {
6956   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6957                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendIdentificationRes_U);
6958
6959   return offset;
6960 }
6961
6962
6963
6964 static int
6965 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_) {
6966   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6967                                        NULL);
6968
6969   return offset;
6970 }
6971
6972
6973 static const value_string gsm_map_ms_FailureCause_vals[] = {
6974   {   0, "wrongUserResponse" },
6975   {   1, "wrongNetworkSignature" },
6976   { 0, NULL }
6977 };
6978
6979
6980 static int
6981 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_) {
6982   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6983                                   NULL);
6984
6985   return offset;
6986 }
6987
6988
6989
6990 static int
6991 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_) {
6992   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
6993
6994   return offset;
6995 }
6996
6997
6998 static const value_string gsm_map_ms_AccessType_vals[] = {
6999   {   0, "call" },
7000   {   1, "emergencyCall" },
7001   {   2, "locationUpdating" },
7002   {   3, "supplementaryService" },
7003   {   4, "shortMessage" },
7004   {   5, "gprsAttach" },
7005   {   6, "routingAreaUpdating" },
7006   {   7, "serviceRequest" },
7007   {   8, "pdpContextActivation" },
7008   {   9, "pdpContextDeactivation" },
7009   {  10, "gprsDetach" },
7010   { 0, NULL }
7011 };
7012
7013
7014 static int
7015 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_) {
7016   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7017                                   NULL);
7018
7019   return offset;
7020 }
7021
7022
7023 static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportArg_sequence[] = {
7024   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
7025   { &hf_gsm_map_ms_failureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_FailureCause },
7026   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7027   { &hf_gsm_map_ms_re_attempt, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BOOLEAN },
7028   { &hf_gsm_map_ms_accessType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AccessType },
7029   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
7030   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7031   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7032   { NULL, 0, 0, 0, NULL }
7033 };
7034
7035 static int
7036 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_) {
7037   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7038                                    gsm_map_ms_AuthenticationFailureReportArg_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportArg);
7039
7040   return offset;
7041 }
7042
7043
7044 static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportRes_sequence[] = {
7045   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7046   { NULL, 0, 0, 0, NULL }
7047 };
7048
7049 static int
7050 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_) {
7051   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7052                                    gsm_map_ms_AuthenticationFailureReportRes_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportRes);
7053
7054   return offset;
7055 }
7056
7057
7058 static const ber_sequence_t gsm_map_ms_SGSN_Capability_sequence[] = {
7059   { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7060   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7061   { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo },
7062   { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7063   { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
7064   { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
7065   { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
7066   { &hf_gsm_map_ms_smsCallBarringSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7067   { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types },
7068   { NULL, 0, 0, 0, NULL }
7069 };
7070
7071 static int
7072 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_) {
7073   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7074                                    gsm_map_ms_SGSN_Capability_sequence, hf_index, ett_gsm_map_ms_SGSN_Capability);
7075
7076   return offset;
7077 }
7078
7079
7080 static const ber_sequence_t gsm_map_ms_UpdateGprsLocationArg_sequence[] = {
7081   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
7082   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7083   { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GSN_Address },
7084   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7085   { &hf_gsm_map_ms_sgsn_Capability, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_Capability },
7086   { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7087   { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7088   { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
7089   { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info },
7090   { NULL, 0, 0, 0, NULL }
7091 };
7092
7093 static int
7094 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_) {
7095   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7096                                    gsm_map_ms_UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationArg);
7097
7098   return offset;
7099 }
7100
7101
7102 static const ber_sequence_t gsm_map_ms_UpdateGprsLocationRes_sequence[] = {
7103   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7104   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7105   { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7106   { NULL, 0, 0, 0, NULL }
7107 };
7108
7109 static int
7110 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_) {
7111   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7112                                    gsm_map_ms_UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationRes);
7113
7114   return offset;
7115 }
7116
7117
7118
7119 static int
7120 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_) {
7121 #line 601 "gsmmap.cnf"
7122     tvbuff_t        *parameter_tvb;
7123         asn1_ctx_t              asn1_ctx;
7124
7125   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7126                                        &parameter_tvb);
7127  
7128
7129         if (!parameter_tvb) 
7130                 return offset;
7131
7132         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
7133         dissect_ranap_IntegrityProtectionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_IntegrityProtectionInformation);
7134
7135
7136
7137   return offset;
7138 }
7139
7140
7141
7142 static int
7143 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_) {
7144 #line 613 "gsmmap.cnf"
7145     tvbuff_t        *parameter_tvb;
7146         asn1_ctx_t              asn1_ctx;
7147
7148   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7149                                        &parameter_tvb);
7150  
7151
7152         if (!parameter_tvb) 
7153                 return offset;
7154
7155         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
7156         dissect_ranap_EncryptionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_EncryptionInformation);
7157
7158
7159
7160   return offset;
7161 }
7162
7163
7164 static const value_string gsm_map_ms_KeyStatus_vals[] = {
7165   {   0, "old" },
7166   {   1, "new" },
7167   { 0, NULL }
7168 };
7169
7170
7171 static int
7172 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_) {
7173   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7174                                   NULL);
7175
7176   return offset;
7177 }
7178
7179
7180
7181 static int
7182 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_) {
7183   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7184                                        NULL);
7185
7186   return offset;
7187 }
7188
7189
7190
7191 static int
7192 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_) {
7193   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7194                                        NULL);
7195
7196   return offset;
7197 }
7198
7199
7200
7201 static int
7202 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_) {
7203   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7204                                        NULL);
7205
7206   return offset;
7207 }
7208
7209
7210 static const ber_sequence_t gsm_map_ms_AllowedUMTS_Algorithms_sequence[] = {
7211   { &hf_gsm_map_ms_integrityProtectionAlgorithms, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedIntegrityProtectionAlgorithms },
7212   { &hf_gsm_map_ms_encryptionAlgorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedEncryptionAlgorithms },
7213   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7214   { NULL, 0, 0, 0, NULL }
7215 };
7216
7217 static int
7218 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_) {
7219   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7220                                    gsm_map_ms_AllowedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_AllowedUMTS_Algorithms);
7221
7222   return offset;
7223 }
7224
7225
7226
7227 static int
7228 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_) {
7229 #line 577 "gsmmap.cnf"
7230     tvbuff_t        *parameter_tvb; 
7231         proto_tree *subtree;
7232
7233   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7234                                        &parameter_tvb);
7235  
7236
7237         if (!parameter_tvb) 
7238                 return offset; 
7239
7240     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RadioResourceInformation); 
7241         be_chan_type(parameter_tvb, subtree, 0, tvb_length_remaining(tvb,0), NULL, 0);
7242
7243
7244
7245   return offset;
7246 }
7247
7248
7249
7250 static int
7251 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_) {
7252   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7253                                                 NULL);
7254
7255   return offset;
7256 }
7257
7258
7259 static const ber_sequence_t gsm_map_ms_RadioResource_sequence[] = {
7260   { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResourceInformation },
7261   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
7262   { NULL, 0, 0, 0, NULL }
7263 };
7264
7265 static int
7266 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_) {
7267   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7268                                    gsm_map_ms_RadioResource_sequence, hf_index, ett_gsm_map_ms_RadioResource);
7269
7270   return offset;
7271 }
7272
7273
7274 static const ber_sequence_t gsm_map_ms_RadioResourceList_sequence_of[1] = {
7275   { &hf_gsm_map_ms_RadioResourceList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResource },
7276 };
7277
7278 static int
7279 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_) {
7280   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7281                                       gsm_map_ms_RadioResourceList_sequence_of, hf_index, ett_gsm_map_ms_RadioResourceList);
7282
7283   return offset;
7284 }
7285
7286
7287
7288 static int
7289 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_) {
7290   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7291                                        NULL);
7292
7293   return offset;
7294 }
7295
7296
7297
7298 static int
7299 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_) {
7300 #line 589 "gsmmap.cnf"
7301     tvbuff_t        *parameter_tvb;
7302         asn1_ctx_t              asn1_ctx;
7303
7304   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7305                                        &parameter_tvb);
7306  
7307
7308         if (!parameter_tvb) 
7309                 return offset;
7310
7311         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
7312         dissect_ranap_Service_Handover(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_ranap_service_Handover);
7313
7314
7315
7316   return offset;
7317 }
7318
7319
7320 static const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverInfo_sequence[] = {
7321   { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
7322   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
7323   { NULL, 0, 0, 0, NULL }
7324 };
7325
7326 static int
7327 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_) {
7328   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7329                                    gsm_map_ms_BSSMAP_ServiceHandoverInfo_sequence, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo);
7330
7331   return offset;
7332 }
7333
7334
7335 static const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of[1] = {
7336   { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverInfo },
7337 };
7338
7339 static int
7340 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_) {
7341   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7342                                       gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverList);
7343
7344   return offset;
7345 }
7346
7347
7348
7349 static int
7350 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_) {
7351   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7352                                        NULL);
7353
7354   return offset;
7355 }
7356
7357
7358 static const ber_sequence_t gsm_map_ms_CodecList_sequence[] = {
7359   { &hf_gsm_map_ms_codec1   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7360   { &hf_gsm_map_ms_codec2   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7361   { &hf_gsm_map_ms_codec3   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7362   { &hf_gsm_map_ms_codec4   , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7363   { &hf_gsm_map_ms_codec5   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7364   { &hf_gsm_map_ms_codec6   , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7365   { &hf_gsm_map_ms_codec7   , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7366   { &hf_gsm_map_ms_codec8   , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7367   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7368   { NULL, 0, 0, 0, NULL }
7369 };
7370
7371 static int
7372 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_) {
7373   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7374                                    gsm_map_ms_CodecList_sequence, hf_index, ett_gsm_map_ms_CodecList);
7375
7376   return offset;
7377 }
7378
7379
7380 static const ber_sequence_t gsm_map_ms_SupportedCodecsList_sequence[] = {
7381   { &hf_gsm_map_ms_utranCodecList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7382   { &hf_gsm_map_ms_geranCodecList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7383   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7384   { NULL, 0, 0, 0, NULL }
7385 };
7386
7387 static int
7388 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_) {
7389   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7390                                    gsm_map_ms_SupportedCodecsList_sequence, hf_index, ett_gsm_map_ms_SupportedCodecsList);
7391
7392   return offset;
7393 }
7394
7395
7396 static const ber_sequence_t gsm_map_ms_ForwardAccessSignalling_Arg_U_sequence[] = {
7397   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7398   { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation },
7399   { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation },
7400   { &hf_gsm_map_ms_keyStatus, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_KeyStatus },
7401   { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms },
7402   { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms },
7403   { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7404   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7405   { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList },
7406   { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
7407   { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover },
7408   { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList },
7409   { &hf_gsm_map_ms_currentlyUsedCodec, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7410   { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList },
7411   { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7412   { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7413   { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7414   { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList },
7415   { NULL, 0, 0, 0, NULL }
7416 };
7417
7418 static int
7419 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_) {
7420   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7421                                    gsm_map_ms_ForwardAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ForwardAccessSignalling_Arg_U);
7422
7423   return offset;
7424 }
7425
7426
7427
7428 static int
7429 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_) {
7430   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7431                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_ForwardAccessSignalling_Arg_U);
7432
7433   return offset;
7434 }
7435
7436
7437
7438 static int
7439 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_) {
7440   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7441                                        NULL);
7442
7443   return offset;
7444 }
7445
7446
7447
7448 static int
7449 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_) {
7450   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7451                                        NULL);
7452
7453   return offset;
7454 }
7455
7456
7457
7458 static int
7459 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_) {
7460   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7461                                     NULL, hf_index, -1,
7462                                     NULL);
7463
7464   return offset;
7465 }
7466
7467
7468
7469 static int
7470 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_) {
7471   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7472                                     NULL, hf_index, -1,
7473                                     NULL);
7474
7475   return offset;
7476 }
7477
7478
7479 static const ber_sequence_t gsm_map_ms_UESBI_Iu_sequence[] = {
7480   { &hf_gsm_map_ms_uesbi_IuA, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuA },
7481   { &hf_gsm_map_ms_uesbi_IuB, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuB },
7482   { NULL, 0, 0, 0, NULL }
7483 };
7484
7485 static int
7486 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_) {
7487   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7488                                    gsm_map_ms_UESBI_Iu_sequence, hf_index, ett_gsm_map_ms_UESBI_Iu);
7489
7490   return offset;
7491 }
7492
7493
7494 static const ber_sequence_t gsm_map_ms_PrepareHO_Arg_U_sequence[] = {
7495   { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
7496   { &hf_gsm_map_ms_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7497   { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId },
7498   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7499   { &hf_gsm_map_ms_multipleBearerRequested, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7500   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
7501   { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation },
7502   { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation },
7503   { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7504   { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms },
7505   { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms },
7506   { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList },
7507   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7508   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
7509   { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
7510   { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover },
7511   { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList },
7512   { &hf_gsm_map_ms_asciCallReference, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference },
7513   { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark },
7514   { &hf_gsm_map_ms_iuCurrentlyUsedCodec, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7515   { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList },
7516   { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7517   { &hf_gsm_map_ms_uesbi_Iu , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_Iu },
7518   { &hf_gsm_map_ms_imeisv   , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
7519   { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7520   { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList },
7521   { NULL, 0, 0, 0, NULL }
7522 };
7523
7524 static int
7525 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_) {
7526   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7527                                    gsm_map_ms_PrepareHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Arg_U);
7528
7529   return offset;
7530 }
7531
7532
7533
7534 static int
7535 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_) {
7536   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7537                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareHO_Arg_U);
7538
7539   return offset;
7540 }
7541
7542
7543 static const ber_sequence_t gsm_map_ms_RelocationNumber_sequence[] = {
7544   { &hf_gsm_map_ms_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7545   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
7546   { NULL, 0, 0, 0, NULL }
7547 };
7548
7549 static int
7550 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_) {
7551   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7552                                    gsm_map_ms_RelocationNumber_sequence, hf_index, ett_gsm_map_ms_RelocationNumber);
7553
7554   return offset;
7555 }
7556
7557
7558 static const ber_sequence_t gsm_map_ms_RelocationNumberList_sequence_of[1] = {
7559   { &hf_gsm_map_ms_RelocationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RelocationNumber },
7560 };
7561
7562 static int
7563 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_) {
7564   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7565                                       gsm_map_ms_RelocationNumberList_sequence_of, hf_index, ett_gsm_map_ms_RelocationNumberList);
7566
7567   return offset;
7568 }
7569
7570
7571
7572 static int
7573 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_) {
7574   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7575                                                 NULL);
7576
7577   return offset;
7578 }
7579
7580
7581
7582 static int
7583 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_) {
7584   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7585                                        NULL);
7586
7587   return offset;
7588 }
7589
7590
7591
7592 static int
7593 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_) {
7594   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7595                                        NULL);
7596
7597   return offset;
7598 }
7599
7600
7601 static const ber_sequence_t gsm_map_ms_SelectedUMTS_Algorithms_sequence[] = {
7602   { &hf_gsm_map_ms_integrityProtectionAlgorithm, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenIntegrityProtectionAlgorithm },
7603   { &hf_gsm_map_ms_encryptionAlgorithm, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenEncryptionAlgorithm },
7604   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7605   { NULL, 0, 0, 0, NULL }
7606 };
7607
7608 static int
7609 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_) {
7610   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7611                                    gsm_map_ms_SelectedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_SelectedUMTS_Algorithms);
7612
7613   return offset;
7614 }
7615
7616
7617
7618 static int
7619 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_) {
7620   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7621                                        NULL);
7622
7623   return offset;
7624 }
7625
7626
7627
7628 static int
7629 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_) {
7630   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7631                                        NULL);
7632
7633   return offset;
7634 }
7635
7636
7637 static const ber_sequence_t gsm_map_ms_ChosenRadioResourceInformation_sequence[] = {
7638   { &hf_gsm_map_ms_chosenChannelInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenChannelInfo },
7639   { &hf_gsm_map_ms_chosenSpeechVersion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenSpeechVersion },
7640   { NULL, 0, 0, 0, NULL }
7641 };
7642
7643 static int
7644 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_) {
7645   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7646                                    gsm_map_ms_ChosenRadioResourceInformation_sequence, hf_index, ett_gsm_map_ms_ChosenRadioResourceInformation);
7647
7648   return offset;
7649 }
7650
7651
7652 static const ber_sequence_t gsm_map_ms_PrepareHO_Res_U_sequence[] = {
7653   { &hf_gsm_map_ms_handoverNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7654   { &hf_gsm_map_ms_relocationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RelocationNumberList },
7655   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7656   { &hf_gsm_map_ms_multicallBearerInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MulticallBearerInfo },
7657   { &hf_gsm_map_ms_multipleBearerNotSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7658   { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms },
7659   { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation },
7660   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7661   { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7662   { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7663   { NULL, 0, 0, 0, NULL }
7664 };
7665
7666 static int
7667 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_) {
7668   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7669                                    gsm_map_ms_PrepareHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Res_U);
7670
7671   return offset;
7672 }
7673
7674
7675
7676 static int
7677 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_) {
7678   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7679                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareHO_Res_U);
7680
7681   return offset;
7682 }
7683
7684
7685 static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Arg_U_sequence[] = {
7686   { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
7687   { &hf_gsm_map_ms_targetMSC_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7688   { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId },
7689   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7690   { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
7691   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7692   { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark },
7693   { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7694   { NULL, 0, 0, 0, NULL }
7695 };
7696
7697 static int
7698 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_) {
7699   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7700                                    gsm_map_ms_PrepareSubsequentHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Arg_U);
7701
7702   return offset;
7703 }
7704
7705
7706
7707 static int
7708 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_) {
7709   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7710                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg_U);
7711
7712   return offset;
7713 }
7714
7715
7716 static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Res_U_sequence[] = {
7717   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7718   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7719   { NULL, 0, 0, 0, NULL }
7720 };
7721
7722 static int
7723 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_) {
7724   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7725                                    gsm_map_ms_PrepareSubsequentHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Res_U);
7726
7727   return offset;
7728 }
7729
7730
7731
7732 static int
7733 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_) {
7734   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7735                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Res_U);
7736
7737   return offset;
7738 }
7739
7740
7741
7742 static int
7743 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_) {
7744   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7745                                        NULL);
7746
7747   return offset;
7748 }
7749
7750
7751 static const ber_sequence_t gsm_map_ms_ProcessAccessSignalling_Arg_U_sequence[] = {
7752   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7753   { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms },
7754   { &hf_gsm_map_ms_selectedGSM_Algorithm, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedGSM_Algorithm },
7755   { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation },
7756   { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
7757   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7758   { &hf_gsm_map_ms_iUSelectedCodec, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7759   { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7760   { NULL, 0, 0, 0, NULL }
7761 };
7762
7763 static int
7764 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_) {
7765   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7766                                    gsm_map_ms_ProcessAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ProcessAccessSignalling_Arg_U);
7767
7768   return offset;
7769 }
7770
7771
7772
7773 static int
7774 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_) {
7775   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7776                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_ProcessAccessSignalling_Arg_U);
7777
7778   return offset;
7779 }
7780
7781
7782 static const ber_sequence_t gsm_map_ms_SendEndSignal_Arg_U_sequence[] = {
7783   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7784   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7785   { NULL, 0, 0, 0, NULL }
7786 };
7787
7788 static int
7789 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_) {
7790   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7791                                    gsm_map_ms_SendEndSignal_Arg_U_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Arg_U);
7792
7793   return offset;
7794 }
7795
7796
7797
7798 static int
7799 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_) {
7800   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7801                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendEndSignal_Arg_U);
7802
7803   return offset;
7804 }
7805
7806
7807 static const ber_sequence_t gsm_map_ms_SendEndSignal_Res_sequence[] = {
7808   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7809   { NULL, 0, 0, 0, NULL }
7810 };
7811
7812 static int
7813 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_) {
7814   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7815                                    gsm_map_ms_SendEndSignal_Res_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Res);
7816
7817   return offset;
7818 }
7819
7820
7821 static const ber_sequence_t gsm_map_ms_Re_synchronisationInfo_sequence[] = {
7822   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
7823   { &hf_gsm_map_ms_auts     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTS },
7824   { NULL, 0, 0, 0, NULL }
7825 };
7826
7827 static int
7828 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_) {
7829   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7830                                    gsm_map_ms_Re_synchronisationInfo_sequence, hf_index, ett_gsm_map_ms_Re_synchronisationInfo);
7831
7832   return offset;
7833 }
7834
7835
7836 static const value_string gsm_map_ms_RequestingNodeType_vals[] = {
7837   {   0, "vlr" },
7838   {   1, "sgsn" },
7839   {   2, "s-cscf" },
7840   {   3, "bsf" },
7841   {   4, "gan-aaa-server" },
7842   {   5, "wlan-aaa-server" },
7843   { 0, NULL }
7844 };
7845
7846
7847 static int
7848 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_) {
7849   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7850                                   NULL);
7851
7852   return offset;
7853 }
7854
7855
7856 static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoArg_sequence[] = {
7857   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
7858   { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
7859   { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7860   { &hf_gsm_map_ms_immediateResponsePreferred, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7861   { &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 },
7862   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7863   { &hf_gsm_map_ms_requestingNodeType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestingNodeType },
7864   { &hf_gsm_map_ms_requestingPLMN_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
7865   { NULL, 0, 0, 0, NULL }
7866 };
7867
7868 static int
7869 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_) {
7870   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7871                                    gsm_map_ms_SendAuthenticationInfoArg_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoArg);
7872
7873   return offset;
7874 }
7875
7876
7877 static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoRes_U_sequence[] = {
7878   { &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 },
7879   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7880   { NULL, 0, 0, 0, NULL }
7881 };
7882
7883 static int
7884 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_) {
7885   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7886                                    gsm_map_ms_SendAuthenticationInfoRes_U_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoRes_U);
7887
7888   return offset;
7889 }
7890
7891
7892
7893 static int
7894 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_) {
7895   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7896                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendAuthenticationInfoRes_U);
7897
7898   return offset;
7899 }
7900
7901
7902 static const asn_namedbit gsm_map_ms_RequestedEquipmentInfo_bits[] = {
7903   {  0, &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus, -1, -1, "equipmentStatus", NULL },
7904   {  1, &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef, -1, -1, "bmuef", NULL },
7905   { 0, NULL, 0, 0, NULL, NULL }
7906 };
7907
7908 static int
7909 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_) {
7910   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7911                                     gsm_map_ms_RequestedEquipmentInfo_bits, hf_index, ett_gsm_map_ms_RequestedEquipmentInfo,
7912                                     NULL);
7913
7914   return offset;
7915 }
7916
7917
7918 static const ber_sequence_t gsm_map_ms_CheckIMEI_Arg_sequence[] = {
7919   { &hf_gsm_map_ms_imei     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMEI },
7920   { &hf_gsm_map_ms_requestedEquipmentInfo, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RequestedEquipmentInfo },
7921   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7922   { NULL, 0, 0, 0, NULL }
7923 };
7924
7925 static int
7926 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_) {
7927   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7928                                    gsm_map_ms_CheckIMEI_Arg_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Arg);
7929
7930   return offset;
7931 }
7932
7933
7934 static const value_string gsm_map_ms_EquipmentStatus_vals[] = {
7935   {   0, "whiteListed" },
7936   {   1, "blackListed" },
7937   {   2, "greyListed" },
7938   { 0, NULL }
7939 };
7940
7941
7942 static int
7943 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_) {
7944   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7945                                   NULL);
7946
7947   return offset;
7948 }
7949
7950
7951 static const ber_sequence_t gsm_map_ms_CheckIMEI_Res_sequence[] = {
7952   { &hf_gsm_map_ms_equipmentStatus, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_EquipmentStatus },
7953   { &hf_gsm_map_ms_bmuef    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_UESBI_Iu },
7954   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7955   { NULL, 0, 0, 0, NULL }
7956 };
7957
7958 static int
7959 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_) {
7960   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7961                                    gsm_map_ms_CheckIMEI_Res_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Res);
7962
7963   return offset;
7964 }
7965
7966
7967
7968 static int
7969 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_) {
7970   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7971                                                 NULL);
7972
7973   return offset;
7974 }
7975
7976
7977
7978 static int
7979 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_) {
7980 #line 486 "gsmmap.cnf"
7981         guint8 pdp_type_org;
7982         tvbuff_t        *parameter_tvb;
7983
7984
7985   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7986                                        &parameter_tvb);
7987
7988
7989  if (!parameter_tvb)
7990         return offset;
7991         proto_tree_add_item(tree, hf_gsm_map_pdp_type_org, parameter_tvb, 0,1,FALSE);
7992         pdp_type_org = tvb_get_guint8(parameter_tvb,1);
7993         switch (pdp_type_org){
7994                 case 0: /* ETSI */
7995                         proto_tree_add_item(tree, hf_gsm_map_etsi_pdp_type_number, parameter_tvb, 0,1,FALSE);
7996                         break;
7997                 case 1: /* IETF */
7998                         proto_tree_add_item(tree, hf_gsm_map_ietf_pdp_type_number, parameter_tvb, 0,1,FALSE);
7999                         break;
8000                 default:
8001                 break;
8002         }
8003
8004
8005
8006   return offset;
8007 }
8008
8009
8010
8011 static int
8012 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_) {
8013   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8014                                        NULL);
8015
8016   return offset;
8017 }
8018
8019
8020
8021 int
8022 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_) {
8023 #line 508 "gsmmap.cnf"
8024
8025
8026         tvbuff_t        *parameter_tvb;
8027
8028   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8029                                        &parameter_tvb);
8030
8031
8032          if (!parameter_tvb)
8033                 return offset;
8034         de_sm_qos(parameter_tvb, tree, 0, 3, NULL,0);
8035
8036
8037
8038   return offset;
8039 }
8040
8041
8042
8043 static int
8044 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_) {
8045   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8046                                        NULL);
8047
8048   return offset;
8049 }
8050
8051
8052
8053 int
8054 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_) {
8055 #line 519 "gsmmap.cnf"
8056
8057         tvbuff_t        *parameter_tvb;
8058
8059   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8060                                        &parameter_tvb);
8061
8062
8063         if (!parameter_tvb)
8064                 return offset;
8065         dissect_gsm_map_ext_qos_subscribed(tvb, actx->pinfo, tree, actx);
8066
8067
8068
8069   return offset;
8070 }
8071
8072
8073
8074 static int
8075 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_) {
8076   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8077                                        NULL);
8078
8079   return offset;
8080 }
8081
8082
8083
8084 int
8085 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_) {
8086   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8087                                        NULL);
8088
8089   return offset;
8090 }
8091
8092
8093
8094 static int
8095 dissect_gsm_map_ms_Ext3_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_) {
8096   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8097                                        NULL);
8098
8099   return offset;
8100 }
8101
8102
8103 static const ber_sequence_t gsm_map_ms_PDP_Context_sequence[] = {
8104   { &hf_gsm_map_ms_pdp_ContextId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
8105   { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type },
8106   { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
8107   { &hf_gsm_map_ms_qos_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QoS_Subscribed },
8108   { &hf_gsm_map_ms_vplmnAddressAllowed, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8109   { &hf_gsm_map_ms_apn      , BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
8110   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8111   { &hf_gsm_map_ms_ext_QoS_Subscribed, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
8112   { &hf_gsm_map_ms_pdp_ChargingCharacteristics, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
8113   { &hf_gsm_map_ms_ext2_QoS_Subscribed, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
8114   { &hf_gsm_map_ms_ext3_QoS_Subscribed, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
8115   { NULL, 0, 0, 0, NULL }
8116 };
8117
8118 static int
8119 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_) {
8120   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8121                                    gsm_map_ms_PDP_Context_sequence, hf_index, ett_gsm_map_ms_PDP_Context);
8122
8123   return offset;
8124 }
8125
8126
8127 static const ber_sequence_t gsm_map_ms_GPRSDataList_sequence_of[1] = {
8128   { &hf_gsm_map_ms_GPRSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_Context },
8129 };
8130
8131 static int
8132 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_) {
8133   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8134                                       gsm_map_ms_GPRSDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRSDataList);
8135
8136   return offset;
8137 }
8138
8139
8140 static const ber_sequence_t gsm_map_ms_GPRSSubscriptionData_sequence[] = {
8141   { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
8142   { &hf_gsm_map_ms_gprsDataList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSDataList },
8143   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8144   { NULL, 0, 0, 0, NULL }
8145 };
8146
8147 static int
8148 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_) {
8149   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8150                                    gsm_map_ms_GPRSSubscriptionData_sequence, hf_index, ett_gsm_map_ms_GPRSSubscriptionData);
8151
8152   return offset;
8153 }
8154
8155
8156 static const value_string gsm_map_ms_NetworkAccessMode_vals[] = {
8157   {   0, "bothMSCAndSGSN" },
8158   {   1, "onlyMSC" },
8159   {   2, "onlySGSN" },
8160   { 0, NULL }
8161 };
8162
8163
8164 static int
8165 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_) {
8166   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8167                                   NULL);
8168
8169   return offset;
8170 }
8171
8172
8173 static const value_string gsm_map_ms_LSAOnlyAccessIndicator_vals[] = {
8174   {   0, "accessOutsideLSAsAllowed" },
8175   {   1, "accessOutsideLSAsRestricted" },
8176   { 0, NULL }
8177 };
8178
8179
8180 static int
8181 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_) {
8182   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8183                                   NULL);
8184
8185   return offset;
8186 }
8187
8188
8189
8190 int
8191 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_) {
8192   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8193                                        NULL);
8194
8195   return offset;
8196 }
8197
8198
8199
8200 static int
8201 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_) {
8202   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8203                                        NULL);
8204
8205   return offset;
8206 }
8207
8208
8209 static const ber_sequence_t gsm_map_ms_LSAData_sequence[] = {
8210   { &hf_gsm_map_ms_lsaIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
8211   { &hf_gsm_map_ms_lsaAttributes, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAAttributes },
8212   { &hf_gsm_map_ms_lsaActiveModeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8213   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8214   { NULL, 0, 0, 0, NULL }
8215 };
8216
8217 static int
8218 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_) {
8219   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8220                                    gsm_map_ms_LSAData_sequence, hf_index, ett_gsm_map_ms_LSAData);
8221
8222   return offset;
8223 }
8224
8225
8226 static const ber_sequence_t gsm_map_ms_LSADataList_sequence_of[1] = {
8227   { &hf_gsm_map_ms_LSADataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAData },
8228 };
8229
8230 static int
8231 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_) {
8232   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8233                                       gsm_map_ms_LSADataList_sequence_of, hf_index, ett_gsm_map_ms_LSADataList);
8234
8235   return offset;
8236 }
8237
8238
8239 static const ber_sequence_t gsm_map_ms_LSAInformation_sequence[] = {
8240   { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
8241   { &hf_gsm_map_ms_lsaOnlyAccessIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAOnlyAccessIndicator },
8242   { &hf_gsm_map_ms_lsaDataList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSADataList },
8243   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8244   { NULL, 0, 0, 0, NULL }
8245 };
8246
8247 static int
8248 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_) {
8249   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8250                                    gsm_map_ms_LSAInformation_sequence, hf_index, ett_gsm_map_ms_LSAInformation);
8251
8252   return offset;
8253 }
8254
8255
8256 static const ber_sequence_t gsm_map_ms_GMLC_List_sequence_of[1] = {
8257   { &hf_gsm_map_ms_GMLC_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
8258 };
8259
8260 static int
8261 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_) {
8262   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8263                                       gsm_map_ms_GMLC_List_sequence_of, hf_index, ett_gsm_map_ms_GMLC_List);
8264
8265   return offset;
8266 }
8267
8268
8269 const value_string gsm_map_ms_NotificationToMSUser_vals[] = {
8270   {   0, "notifyLocationAllowed" },
8271   {   1, "notifyAndVerify-LocationAllowedIfNoResponse" },
8272   {   2, "notifyAndVerify-LocationNotAllowedIfNoResponse" },
8273   {   3, "locationNotAllowed" },
8274   { 0, NULL }
8275 };
8276
8277
8278 int
8279 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_) {
8280   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8281                                   NULL);
8282
8283   return offset;
8284 }
8285
8286
8287 static const value_string gsm_map_ms_GMLC_Restriction_vals[] = {
8288   {   0, "gmlc-List" },
8289   {   1, "home-Country" },
8290   { 0, NULL }
8291 };
8292
8293
8294 static int
8295 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_) {
8296   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8297                                   NULL);
8298
8299   return offset;
8300 }
8301
8302
8303 static const ber_sequence_t gsm_map_ms_ExternalClient_sequence[] = {
8304   { &hf_gsm_map_ms_clientIdentity, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientExternalID },
8305   { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction },
8306   { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
8307   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8308   { NULL, 0, 0, 0, NULL }
8309 };
8310
8311 static int
8312 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_) {
8313   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8314                                    gsm_map_ms_ExternalClient_sequence, hf_index, ett_gsm_map_ms_ExternalClient);
8315
8316   return offset;
8317 }
8318
8319
8320 static const ber_sequence_t gsm_map_ms_ExternalClientList_sequence_of[1] = {
8321   { &hf_gsm_map_ms_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient },
8322 };
8323
8324 static int
8325 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_) {
8326   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8327                                       gsm_map_ms_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_ExternalClientList);
8328
8329   return offset;
8330 }
8331
8332
8333 static const ber_sequence_t gsm_map_ms_PLMNClientList_sequence_of[1] = {
8334   { &hf_gsm_map_ms_PLMNClientList_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientInternalID },
8335 };
8336
8337 static int
8338 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_) {
8339   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8340                                       gsm_map_ms_PLMNClientList_sequence_of, hf_index, ett_gsm_map_ms_PLMNClientList);
8341
8342   return offset;
8343 }
8344
8345
8346 static const ber_sequence_t gsm_map_ms_Ext_ExternalClientList_sequence_of[1] = {
8347   { &hf_gsm_map_ms_Ext_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient },
8348 };
8349
8350 static int
8351 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_) {
8352   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8353                                       gsm_map_ms_Ext_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ExternalClientList);
8354
8355   return offset;
8356 }
8357
8358
8359 static const ber_sequence_t gsm_map_ms_ServiceType_sequence[] = {
8360   { &hf_gsm_map_ms_serviceTypeIdentity, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSServiceTypeID },
8361   { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction },
8362   { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
8363   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8364   { NULL, 0, 0, 0, NULL }
8365 };
8366
8367 static int
8368 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_) {
8369   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8370                                    gsm_map_ms_ServiceType_sequence, hf_index, ett_gsm_map_ms_ServiceType);
8371
8372   return offset;
8373 }
8374
8375
8376 static const ber_sequence_t gsm_map_ms_ServiceTypeList_sequence_of[1] = {
8377   { &hf_gsm_map_ms_ServiceTypeList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceType },
8378 };
8379
8380 static int
8381 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_) {
8382   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8383                                       gsm_map_ms_ServiceTypeList_sequence_of, hf_index, ett_gsm_map_ms_ServiceTypeList);
8384
8385   return offset;
8386 }
8387
8388
8389 static const ber_sequence_t gsm_map_ms_LCS_PrivacyClass_sequence[] = {
8390   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
8391   { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
8392   { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
8393   { &hf_gsm_map_ms_externalClientList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ExternalClientList },
8394   { &hf_gsm_map_ms_plmnClientList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PLMNClientList },
8395   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8396   { &hf_gsm_map_ms_ext_externalClientList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ExternalClientList },
8397   { &hf_gsm_map_ms_serviceTypeList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceTypeList },
8398   { NULL, 0, 0, 0, NULL }
8399 };
8400
8401 static int
8402 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_) {
8403   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8404                                    gsm_map_ms_LCS_PrivacyClass_sequence, hf_index, ett_gsm_map_ms_LCS_PrivacyClass);
8405
8406   return offset;
8407 }
8408
8409
8410 static const ber_sequence_t gsm_map_ms_LCS_PrivacyExceptionList_sequence_of[1] = {
8411   { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LCS_PrivacyClass },
8412 };
8413
8414 static int
8415 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_) {
8416   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8417                                       gsm_map_ms_LCS_PrivacyExceptionList_sequence_of, hf_index, ett_gsm_map_ms_LCS_PrivacyExceptionList);
8418
8419   return offset;
8420 }
8421
8422
8423 static const ber_sequence_t gsm_map_ms_MOLR_Class_sequence[] = {
8424   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
8425   { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
8426   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8427   { NULL, 0, 0, 0, NULL }
8428 };
8429
8430 static int
8431 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_) {
8432   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8433                                    gsm_map_ms_MOLR_Class_sequence, hf_index, ett_gsm_map_ms_MOLR_Class);
8434
8435   return offset;
8436 }
8437
8438
8439 static const ber_sequence_t gsm_map_ms_MOLR_List_sequence_of[1] = {
8440   { &hf_gsm_map_ms_MOLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MOLR_Class },
8441 };
8442
8443 static int
8444 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_) {
8445   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8446                                       gsm_map_ms_MOLR_List_sequence_of, hf_index, ett_gsm_map_ms_MOLR_List);
8447
8448   return offset;
8449 }
8450
8451
8452 static const ber_sequence_t gsm_map_ms_LCSInformation_sequence[] = {
8453   { &hf_gsm_map_ms_gmlc_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_List },
8454   { &hf_gsm_map_ms_lcs_PrivacyExceptionList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList },
8455   { &hf_gsm_map_ms_molr_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MOLR_List },
8456   { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList },
8457   { NULL, 0, 0, 0, NULL }
8458 };
8459
8460 static int
8461 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_) {
8462   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8463                                    gsm_map_ms_LCSInformation_sequence, hf_index, ett_gsm_map_ms_LCSInformation);
8464
8465   return offset;
8466 }
8467
8468
8469
8470 static int
8471 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_) {
8472   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8473                                                 NULL);
8474
8475   return offset;
8476 }
8477
8478
8479
8480 static int
8481 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_) {
8482   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8483                                        NULL);
8484
8485   return offset;
8486 }
8487
8488
8489 static const value_string gsm_map_ms_GPRS_TriggerDetectionPoint_vals[] = {
8490   {   1, "attach" },
8491   {   2, "attachChangeOfPosition" },
8492   {  11, "pdp-ContextEstablishment" },
8493   {  12, "pdp-ContextEstablishmentAcknowledgement" },
8494   {  14, "pdp-ContextChangeOfPosition" },
8495   { 0, NULL }
8496 };
8497
8498
8499 static int
8500 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_) {
8501   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8502                                   NULL);
8503
8504   return offset;
8505 }
8506
8507
8508
8509 static int
8510 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_) {
8511   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8512                                                 NULL);
8513
8514   return offset;
8515 }
8516
8517
8518 static const value_string gsm_map_ms_DefaultGPRS_Handling_vals[] = {
8519   {   0, "continueTransaction" },
8520   {   1, "releaseTransaction" },
8521   { 0, NULL }
8522 };
8523
8524
8525 static int
8526 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_) {
8527   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8528                                   NULL);
8529
8530   return offset;
8531 }
8532
8533
8534 static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPData_sequence[] = {
8535   { &hf_gsm_map_ms_gprs_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_TriggerDetectionPoint },
8536   { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
8537   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8538   { &hf_gsm_map_ms_defaultSessionHandling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultGPRS_Handling },
8539   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8540   { NULL, 0, 0, 0, NULL }
8541 };
8542
8543 static int
8544 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_) {
8545   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8546                                    gsm_map_ms_GPRS_CamelTDPData_sequence, hf_index, ett_gsm_map_ms_GPRS_CamelTDPData);
8547
8548   return offset;
8549 }
8550
8551
8552 static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPDataList_sequence_of[1] = {
8553   { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GPRS_CamelTDPData },
8554 };
8555
8556 static int
8557 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_) {
8558   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8559                                       gsm_map_ms_GPRS_CamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRS_CamelTDPDataList);
8560
8561   return offset;
8562 }
8563
8564
8565
8566 static int
8567 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_) {
8568   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8569                                                 NULL);
8570
8571   return offset;
8572 }
8573
8574
8575 static const ber_sequence_t gsm_map_ms_GPRS_CSI_sequence[] = {
8576   { &hf_gsm_map_ms_gprs_CamelTDPDataList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CamelTDPDataList },
8577   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
8578   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8579   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8580   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8581   { NULL, 0, 0, 0, NULL }
8582 };
8583
8584 static int
8585 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_) {
8586   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8587                                    gsm_map_ms_GPRS_CSI_sequence, hf_index, ett_gsm_map_ms_GPRS_CSI);
8588
8589   return offset;
8590 }
8591
8592
8593 static const value_string gsm_map_ms_SMS_TriggerDetectionPoint_vals[] = {
8594   {   1, "sms-CollectedInfo" },
8595   {   2, "sms-DeliveryRequest" },
8596   { 0, NULL }
8597 };
8598
8599
8600 static int
8601 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_) {
8602   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8603                                   NULL);
8604
8605   return offset;
8606 }
8607
8608
8609 static const value_string gsm_map_ms_DefaultSMS_Handling_vals[] = {
8610   {   0, "continueTransaction" },
8611   {   1, "releaseTransaction" },
8612   { 0, NULL }
8613 };
8614
8615
8616 static int
8617 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_) {
8618   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8619                                   NULL);
8620
8621   return offset;
8622 }
8623
8624
8625 static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_Data_sequence[] = {
8626   { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint },
8627   { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
8628   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8629   { &hf_gsm_map_ms_defaultSMS_Handling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultSMS_Handling },
8630   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8631   { NULL, 0, 0, 0, NULL }
8632 };
8633
8634 static int
8635 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_) {
8636   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8637                                    gsm_map_ms_SMS_CAMEL_TDP_Data_sequence, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_Data);
8638
8639   return offset;
8640 }
8641
8642
8643 static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of[1] = {
8644   { &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 },
8645 };
8646
8647 static int
8648 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_) {
8649   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8650                                       gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_DataList);
8651
8652   return offset;
8653 }
8654
8655
8656 static const ber_sequence_t gsm_map_ms_SMS_CSI_sequence[] = {
8657   { &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 },
8658   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
8659   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8660   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8661   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8662   { NULL, 0, 0, 0, NULL }
8663 };
8664
8665 static int
8666 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_) {
8667   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8668                                    gsm_map_ms_SMS_CSI_sequence, hf_index, ett_gsm_map_ms_SMS_CSI);
8669
8670   return offset;
8671 }
8672
8673
8674 static const value_string gsm_map_ms_MT_SMS_TPDU_Type_vals[] = {
8675   {   0, "sms-DELIVER" },
8676   {   1, "sms-SUBMIT-REPORT" },
8677   {   2, "sms-STATUS-REPORT" },
8678   { 0, NULL }
8679 };
8680
8681
8682 static int
8683 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_) {
8684   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8685                                   NULL);
8686
8687   return offset;
8688 }
8689
8690
8691 static const ber_sequence_t gsm_map_ms_TPDU_TypeCriterion_sequence_of[1] = {
8692   { &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 },
8693 };
8694
8695 static int
8696 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_) {
8697   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8698                                       gsm_map_ms_TPDU_TypeCriterion_sequence_of, hf_index, ett_gsm_map_ms_TPDU_TypeCriterion);
8699
8700   return offset;
8701 }
8702
8703
8704 static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_Criteria_sequence[] = {
8705   { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint },
8706   { &hf_gsm_map_ms_tpdu_TypeCriterion, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TPDU_TypeCriterion },
8707   { NULL, 0, 0, 0, NULL }
8708 };
8709
8710 static int
8711 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_) {
8712   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8713                                    gsm_map_ms_MT_smsCAMELTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_Criteria);
8714
8715   return offset;
8716 }
8717
8718
8719 static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of[1] = {
8720   { &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 },
8721 };
8722
8723 static int
8724 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_) {
8725   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8726                                       gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList);
8727
8728   return offset;
8729 }
8730
8731
8732
8733 static int
8734 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_) {
8735   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8736                                        NULL);
8737
8738   return offset;
8739 }
8740
8741
8742 static const ber_sequence_t gsm_map_ms_MobilityTriggers_sequence_of[1] = {
8743   { &hf_gsm_map_ms_MobilityTriggers_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MM_Code },
8744 };
8745
8746 static int
8747 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_) {
8748   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8749                                       gsm_map_ms_MobilityTriggers_sequence_of, hf_index, ett_gsm_map_ms_MobilityTriggers);
8750
8751   return offset;
8752 }
8753
8754
8755 static const ber_sequence_t gsm_map_ms_MG_CSI_sequence[] = {
8756   { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers },
8757   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
8758   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8759   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8760   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8761   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8762   { NULL, 0, 0, 0, NULL }
8763 };
8764
8765 static int
8766 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_) {
8767   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8768                                    gsm_map_ms_MG_CSI_sequence, hf_index, ett_gsm_map_ms_MG_CSI);
8769
8770   return offset;
8771 }
8772
8773
8774 static const ber_sequence_t gsm_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence[] = {
8775   { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI },
8776   { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
8777   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8778   { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
8779   { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
8780   { &hf_gsm_map_ms_mg_csi   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI },
8781   { NULL, 0, 0, 0, NULL }
8782 };
8783
8784 static int
8785 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_) {
8786   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8787                                    gsm_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo);
8788
8789   return offset;
8790 }
8791
8792
8793 static const asn_namedbit gsm_map_ms_AccessRestrictionData_bits[] = {
8794   {  0, &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed, -1, -1, "utranNotAllowed", NULL },
8795   {  1, &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed, -1, -1, "geranNotAllowed", NULL },
8796   { 0, NULL, 0, 0, NULL, NULL }
8797 };
8798
8799 static int
8800 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_) {
8801   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8802                                     gsm_map_ms_AccessRestrictionData_bits, hf_index, ett_gsm_map_ms_AccessRestrictionData,
8803                                     NULL);
8804
8805   return offset;
8806 }
8807
8808
8809 static const ber_sequence_t gsm_map_ms_InsertSubscriberDataArg_sequence[] = {
8810   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
8811   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8812   { &hf_gsm_map_ms_naea_PreferredCI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI },
8813   { &hf_gsm_map_ms_gprsSubscriptionData, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSSubscriptionData },
8814   { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8815   { &hf_gsm_map_ms_networkAccessMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NetworkAccessMode },
8816   { &hf_gsm_map_ms_lsaInformation, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAInformation },
8817   { &hf_gsm_map_ms_lmu_Indicator, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8818   { &hf_gsm_map_ms_lcsInformation, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCSInformation },
8819   { &hf_gsm_map_ms_istAlertTimer, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
8820   { &hf_gsm_map_ms_superChargerSupportedInHLR, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator },
8821   { &hf_gsm_map_ms_mc_SS_Info, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_SS_Info },
8822   { &hf_gsm_map_ms_cs_AllocationRetentionPriority, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CS_AllocationRetentionPriority },
8823   { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo },
8824   { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
8825   { &hf_gsm_map_ms_accessRestrictionData, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AccessRestrictionData },
8826   { NULL, 0, 0, 0, NULL }
8827 };
8828
8829 static int
8830 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_) {
8831   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8832                                    gsm_map_ms_InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataArg);
8833
8834   return offset;
8835 }
8836
8837
8838
8839 static int
8840 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_) {
8841   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8842                                        NULL);
8843
8844   return offset;
8845 }
8846
8847
8848 static const value_string gsm_map_ms_SubscriberStatus_vals[] = {
8849   {   0, "serviceGranted" },
8850   {   1, "operatorDeterminedBarring" },
8851   { 0, NULL }
8852 };
8853
8854
8855 static int
8856 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_) {
8857   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8858                                   NULL);
8859
8860   return offset;
8861 }
8862
8863
8864 static const ber_sequence_t gsm_map_ms_BearerServiceList_sequence_of[1] = {
8865   { &hf_gsm_map_ms_BearerServiceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BearerServiceCode },
8866 };
8867
8868 static int
8869 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_) {
8870   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8871                                       gsm_map_ms_BearerServiceList_sequence_of, hf_index, ett_gsm_map_ms_BearerServiceList);
8872
8873   return offset;
8874 }
8875
8876
8877 static const ber_sequence_t gsm_map_ms_TeleserviceList_sequence_of[1] = {
8878   { &hf_gsm_map_ms_TeleserviceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
8879 };
8880
8881 static int
8882 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_) {
8883   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8884                                       gsm_map_ms_TeleserviceList_sequence_of, hf_index, ett_gsm_map_ms_TeleserviceList);
8885
8886   return offset;
8887 }
8888
8889
8890 static const asn_namedbit gsm_map_ms_ODB_GeneralData_bits[] = {
8891   {  0, &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred, -1, -1, "allOG-CallsBarred", NULL },
8892   {  1, &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred, -1, -1, "internationalOGCallsBarred", NULL },
8893   {  2, &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "internationalOGCallsNotToHPLMN-CountryBarred", NULL },
8894   {  6, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred, -1, -1, "interzonalOGCallsBarred", NULL },
8895   {  7, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsNotToHPLMN-CountryBarred", NULL },
8896   {  8, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", NULL },
8897   {  3, &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred, -1, -1, "premiumRateInformationOGCallsBarred", NULL },
8898   {  4, &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred, -1, -1, "premiumRateEntertainementOGCallsBarred", NULL },
8899   {  5, &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred, -1, -1, "ss-AccessBarred", NULL },
8900   {  9, &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred, -1, -1, "allECT-Barred", NULL },
8901   { 10, &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred, -1, -1, "chargeableECT-Barred", NULL },
8902   { 11, &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred, -1, -1, "internationalECT-Barred", NULL },
8903   { 12, &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred, -1, -1, "interzonalECT-Barred", NULL },
8904   { 13, &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred, -1, -1, "doublyChargeableECT-Barred", NULL },
8905   { 14, &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred, -1, -1, "multipleECT-Barred", NULL },
8906   { 15, &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred, -1, -1, "allPacketOrientedServicesBarred", NULL },
8907   { 16, &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred, -1, -1, "roamerAccessToHPLMN-AP-Barred", NULL },
8908   { 17, &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred, -1, -1, "roamerAccessToVPLMN-AP-Barred", NULL },
8909   { 18, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred, -1, -1, "roamingOutsidePLMNOG-CallsBarred", NULL },
8910   { 19, &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred, -1, -1, "allIC-CallsBarred", NULL },
8911   { 20, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred, -1, -1, "roamingOutsidePLMNIC-CallsBarred", NULL },
8912   { 21, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred, -1, -1, "roamingOutsidePLMNICountryIC-CallsBarred", NULL },
8913   { 22, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred, -1, -1, "roamingOutsidePLMN-Barred", NULL },
8914   { 23, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred, -1, -1, "roamingOutsidePLMN-CountryBarred", NULL },
8915   { 24, &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred, -1, -1, "registrationAllCF-Barred", NULL },
8916   { 25, &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred, -1, -1, "registrationCFNotToHPLMN-Barred", NULL },
8917   { 26, &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred, -1, -1, "registrationInterzonalCF-Barred", NULL },
8918   { 27, &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred, -1, -1, "registrationInterzonalCFNotToHPLMN-Barred", NULL },
8919   { 28, &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred, -1, -1, "registrationInternationalCF-Barred", NULL },
8920   { 0, NULL, 0, 0, NULL, NULL }
8921 };
8922
8923 static int
8924 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_) {
8925   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8926                                     gsm_map_ms_ODB_GeneralData_bits, hf_index, ett_gsm_map_ms_ODB_GeneralData,
8927                                     NULL);
8928
8929   return offset;
8930 }
8931
8932
8933 static const asn_namedbit gsm_map_ms_ODB_HPLMN_Data_bits[] = {
8934   {  0, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1, -1, -1, "plmn-SpecificBarringType1", NULL },
8935   {  1, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2, -1, -1, "plmn-SpecificBarringType2", NULL },
8936   {  2, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3, -1, -1, "plmn-SpecificBarringType3", NULL },
8937   {  3, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4, -1, -1, "plmn-SpecificBarringType4", NULL },
8938   { 0, NULL, 0, 0, NULL, NULL }
8939 };
8940
8941 static int
8942 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_) {
8943   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8944                                     gsm_map_ms_ODB_HPLMN_Data_bits, hf_index, ett_gsm_map_ms_ODB_HPLMN_Data,
8945                                     NULL);
8946
8947   return offset;
8948 }
8949
8950
8951 static const ber_sequence_t gsm_map_ms_ODB_Data_sequence[] = {
8952   { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_GeneralData },
8953   { &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 },
8954   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8955   { NULL, 0, 0, 0, NULL }
8956 };
8957
8958 static int
8959 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_) {
8960   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8961                                    gsm_map_ms_ODB_Data_sequence, hf_index, ett_gsm_map_ms_ODB_Data);
8962
8963   return offset;
8964 }
8965
8966
8967
8968 static int
8969 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_) {
8970   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8971                                        NULL);
8972
8973   return offset;
8974 }
8975
8976
8977
8978 static int
8979 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_) {
8980   offset = dissect_gsm_map_ms_Ext_ForwOptions(implicit_tag, tvb, offset, actx, tree, hf_index);
8981
8982 #line 478 "gsmmap.cnf"
8983
8984         proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE);
8985         proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE);
8986         proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE);
8987         proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE);
8988
8989
8990
8991   return offset;
8992 }
8993
8994
8995
8996 static int
8997 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_) {
8998   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8999                                                 NULL);
9000
9001   return offset;
9002 }
9003
9004
9005 static const ber_sequence_t gsm_map_ms_Ext_ForwFeature_sequence[] = {
9006   { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
9007   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
9008   { &hf_gsm_map_ms_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9009   { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
9010   { &hf_gsm_map_ms_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_forwardingOptions },
9011   { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime },
9012   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9013   { &hf_gsm_map_ms_longForwardedToNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
9014   { NULL, 0, 0, 0, NULL }
9015 };
9016
9017 static int
9018 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_) {
9019   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9020                                    gsm_map_ms_Ext_ForwFeature_sequence, hf_index, ett_gsm_map_ms_Ext_ForwFeature);
9021
9022   return offset;
9023 }
9024
9025
9026 static const ber_sequence_t gsm_map_ms_Ext_ForwFeatureList_sequence_of[1] = {
9027   { &hf_gsm_map_ms_Ext_ForwFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeature },
9028 };
9029
9030 static int
9031 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_) {
9032   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9033                                       gsm_map_ms_Ext_ForwFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ForwFeatureList);
9034
9035   return offset;
9036 }
9037
9038
9039 static const ber_sequence_t gsm_map_ms_Ext_ForwInfo_sequence[] = {
9040   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
9041   { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
9042   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9043   { NULL, 0, 0, 0, NULL }
9044 };
9045
9046 static int
9047 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_) {
9048   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9049                                    gsm_map_ms_Ext_ForwInfo_sequence, hf_index, ett_gsm_map_ms_Ext_ForwInfo);
9050
9051   return offset;
9052 }
9053
9054
9055 static const ber_sequence_t gsm_map_ms_Ext_CallBarringFeature_sequence[] = {
9056   { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
9057   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
9058   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9059   { NULL, 0, 0, 0, NULL }
9060 };
9061
9062 static int
9063 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_) {
9064   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9065                                    gsm_map_ms_Ext_CallBarringFeature_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringFeature);
9066
9067   return offset;
9068 }
9069
9070
9071 static const ber_sequence_t gsm_map_ms_Ext_CallBarFeatureList_sequence_of[1] = {
9072   { &hf_gsm_map_ms_Ext_CallBarFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarringFeature },
9073 };
9074
9075 static int
9076 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_) {
9077   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9078                                       gsm_map_ms_Ext_CallBarFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_CallBarFeatureList);
9079
9080   return offset;
9081 }
9082
9083
9084 static const ber_sequence_t gsm_map_ms_Ext_CallBarInfo_sequence[] = {
9085   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
9086   { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
9087   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9088   { NULL, 0, 0, 0, NULL }
9089 };
9090
9091 static int
9092 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_) {
9093   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9094                                    gsm_map_ms_Ext_CallBarInfo_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarInfo);
9095
9096   return offset;
9097 }
9098
9099
9100
9101 int
9102 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_) {
9103   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9104                                                 NULL);
9105
9106   return offset;
9107 }
9108
9109
9110
9111 int
9112 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_) {
9113   offset = dissect_ber_octet_string(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_IntraCUG_Options_vals[] = {
9121   {   0, "noCUG-Restrictions" },
9122   {   1, "cugIC-CallBarred" },
9123   {   2, "cugOG-CallBarred" },
9124   { 0, NULL }
9125 };
9126
9127
9128 static int
9129 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_) {
9130   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9131                                   NULL);
9132
9133   return offset;
9134 }
9135
9136
9137 static const ber_sequence_t gsm_map_ms_Ext_BasicServiceGroupList_sequence_of[1] = {
9138   { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
9139 };
9140
9141 static int
9142 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_) {
9143   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9144                                       gsm_map_ms_Ext_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ms_Ext_BasicServiceGroupList);
9145
9146   return offset;
9147 }
9148
9149
9150 static const ber_sequence_t gsm_map_ms_CUG_Subscription_sequence[] = {
9151   { &hf_gsm_map_ms_cug_Index, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Index },
9152   { &hf_gsm_map_ms_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock },
9153   { &hf_gsm_map_ms_intraCUG_Options, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IntraCUG_Options },
9154   { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList },
9155   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9156   { NULL, 0, 0, 0, NULL }
9157 };
9158
9159 static int
9160 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_) {
9161   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9162                                    gsm_map_ms_CUG_Subscription_sequence, hf_index, ett_gsm_map_ms_CUG_Subscription);
9163
9164   return offset;
9165 }
9166
9167
9168 static const ber_sequence_t gsm_map_ms_CUG_SubscriptionList_sequence_of[1] = {
9169   { &hf_gsm_map_ms_CUG_SubscriptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Subscription },
9170 };
9171
9172 static int
9173 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_) {
9174   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9175                                       gsm_map_ms_CUG_SubscriptionList_sequence_of, hf_index, ett_gsm_map_ms_CUG_SubscriptionList);
9176
9177   return offset;
9178 }
9179
9180
9181
9182 static int
9183 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_) {
9184   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9185                                        NULL);
9186
9187   return offset;
9188 }
9189
9190
9191 static const ber_sequence_t gsm_map_ms_CUG_Feature_sequence[] = {
9192   { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
9193   { &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 },
9194   { &hf_gsm_map_ms_interCUG_Restrictions, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_InterCUG_Restrictions },
9195   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9196   { NULL, 0, 0, 0, NULL }
9197 };
9198
9199 static int
9200 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_) {
9201   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9202                                    gsm_map_ms_CUG_Feature_sequence, hf_index, ett_gsm_map_ms_CUG_Feature);
9203
9204   return offset;
9205 }
9206
9207
9208 static const ber_sequence_t gsm_map_ms_CUG_FeatureList_sequence_of[1] = {
9209   { &hf_gsm_map_ms_CUG_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Feature },
9210 };
9211
9212 static int
9213 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_) {
9214   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9215                                       gsm_map_ms_CUG_FeatureList_sequence_of, hf_index, ett_gsm_map_ms_CUG_FeatureList);
9216
9217   return offset;
9218 }
9219
9220
9221 static const ber_sequence_t gsm_map_ms_CUG_Info_sequence[] = {
9222   { &hf_gsm_map_ms_cug_SubscriptionList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_SubscriptionList },
9223   { &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 },
9224   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9225   { NULL, 0, 0, 0, NULL }
9226 };
9227
9228 int
9229 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_) {
9230   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9231                                    gsm_map_ms_CUG_Info_sequence, hf_index, ett_gsm_map_ms_CUG_Info);
9232
9233   return offset;
9234 }
9235
9236
9237 static const ber_sequence_t gsm_map_ms_Ext_SS_Data_sequence[] = {
9238   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
9239   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
9240   { &hf_gsm_map_ms_ss_SubscriptionOption, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_SubscriptionOption },
9241   { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList },
9242   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9243   { NULL, 0, 0, 0, NULL }
9244 };
9245
9246 static int
9247 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_) {
9248   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9249                                    gsm_map_ms_Ext_SS_Data_sequence, hf_index, ett_gsm_map_ms_Ext_SS_Data);
9250
9251   return offset;
9252 }
9253
9254
9255 static const value_string gsm_map_ms_Ext_SS_Info_vals[] = {
9256   {   0, "forwardingInfo" },
9257   {   1, "callBarringInfo" },
9258   {   2, "cug-Info" },
9259   {   3, "ss-Data" },
9260   {   4, "emlpp-Info" },
9261   { 0, NULL }
9262 };
9263
9264 static const ber_choice_t gsm_map_ms_Ext_SS_Info_choice[] = {
9265   {   0, &hf_gsm_map_ms_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwInfo },
9266   {   1, &hf_gsm_map_ms_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarInfo },
9267   {   2, &hf_gsm_map_ms_cug_Info , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Info },
9268   {   3, &hf_gsm_map_ms_ss_Data  , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_Data },
9269   {   4, &hf_gsm_map_ms_emlpp_Info, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Info },
9270   { 0, NULL, 0, 0, 0, NULL }
9271 };
9272
9273 static int
9274 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_) {
9275   offset = dissect_ber_choice(actx, tree, tvb, offset,
9276                                  gsm_map_ms_Ext_SS_Info_choice, hf_index, ett_gsm_map_ms_Ext_SS_Info,
9277                                  NULL);
9278
9279   return offset;
9280 }
9281
9282
9283 static const ber_sequence_t gsm_map_ms_Ext_SS_InfoList_sequence_of[1] = {
9284   { &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 },
9285 };
9286
9287 static int
9288 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_) {
9289   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9290                                       gsm_map_ms_Ext_SS_InfoList_sequence_of, hf_index, ett_gsm_map_ms_Ext_SS_InfoList);
9291
9292   return offset;
9293 }
9294
9295
9296
9297 static int
9298 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_) {
9299   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9300                                        NULL);
9301
9302   return offset;
9303 }
9304
9305
9306 static const ber_sequence_t gsm_map_ms_ZoneCodeList_sequence_of[1] = {
9307   { &hf_gsm_map_ms_ZoneCodeList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ZoneCode },
9308 };
9309
9310 static int
9311 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_) {
9312   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9313                                       gsm_map_ms_ZoneCodeList_sequence_of, hf_index, ett_gsm_map_ms_ZoneCodeList);
9314
9315   return offset;
9316 }
9317
9318
9319 static const value_string gsm_map_ms_RegionalSubscriptionResponse_vals[] = {
9320   {   0, "networkNode-AreaRestricted" },
9321   {   1, "tooManyZoneCodes" },
9322   {   2, "zoneCodesConflict" },
9323   {   3, "regionalSubscNotSupported" },
9324   { 0, NULL }
9325 };
9326
9327
9328 static int
9329 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_) {
9330   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9331                                   NULL);
9332
9333   return offset;
9334 }
9335
9336
9337 static const ber_sequence_t gsm_map_ms_InsertSubscriberDataRes_sequence[] = {
9338   { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
9339   { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
9340   { &hf_gsm_map_ms_ss_List  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
9341   { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_GeneralData },
9342   { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse },
9343   { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
9344   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9345   { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
9346   { NULL, 0, 0, 0, NULL }
9347 };
9348
9349 static int
9350 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_) {
9351   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9352                                    gsm_map_ms_InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataRes);
9353
9354   return offset;
9355 }
9356
9357
9358 static const ber_sequence_t gsm_map_ms_BasicServiceList_sequence_of[1] = {
9359   { &hf_gsm_map_ms_BasicServiceList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
9360 };
9361
9362 static int
9363 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_) {
9364   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9365                                       gsm_map_ms_BasicServiceList_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceList);
9366
9367   return offset;
9368 }
9369
9370
9371 static const ber_sequence_t gsm_map_ms_ContextIdList_sequence_of[1] = {
9372   { &hf_gsm_map_ms_ContextIdList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
9373 };
9374
9375 static int
9376 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_) {
9377   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9378                                       gsm_map_ms_ContextIdList_sequence_of, hf_index, ett_gsm_map_ms_ContextIdList);
9379
9380   return offset;
9381 }
9382
9383
9384 static const value_string gsm_map_ms_GPRSSubscriptionDataWithdraw_vals[] = {
9385   {   0, "allGPRSData" },
9386   {   1, "contextIdList" },
9387   { 0, NULL }
9388 };
9389
9390 static const ber_choice_t gsm_map_ms_GPRSSubscriptionDataWithdraw_choice[] = {
9391   {   0, &hf_gsm_map_ms_allGPRSData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9392   {   1, &hf_gsm_map_ms_contextIdList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextIdList },
9393   { 0, NULL, 0, 0, 0, NULL }
9394 };
9395
9396 static int
9397 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_) {
9398   offset = dissect_ber_choice(actx, tree, tvb, offset,
9399                                  gsm_map_ms_GPRSSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_ms_GPRSSubscriptionDataWithdraw,
9400                                  NULL);
9401
9402   return offset;
9403 }
9404
9405
9406 static const ber_sequence_t gsm_map_ms_LSAIdentityList_sequence_of[1] = {
9407   { &hf_gsm_map_ms_LSAIdentityList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentity },
9408 };
9409
9410 static int
9411 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_) {
9412   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9413                                       gsm_map_ms_LSAIdentityList_sequence_of, hf_index, ett_gsm_map_ms_LSAIdentityList);
9414
9415   return offset;
9416 }
9417
9418
9419 static const value_string gsm_map_ms_LSAInformationWithdraw_vals[] = {
9420   {   0, "allLSAData" },
9421   {   1, "lsaIdentityList" },
9422   { 0, NULL }
9423 };
9424
9425 static const ber_choice_t gsm_map_ms_LSAInformationWithdraw_choice[] = {
9426   {   0, &hf_gsm_map_ms_allLSAData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9427   {   1, &hf_gsm_map_ms_lsaIdentityList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentityList },
9428   { 0, NULL, 0, 0, 0, NULL }
9429 };
9430
9431 static int
9432 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_) {
9433   offset = dissect_ber_choice(actx, tree, tvb, offset,
9434                                  gsm_map_ms_LSAInformationWithdraw_choice, hf_index, ett_gsm_map_ms_LSAInformationWithdraw,
9435                                  NULL);
9436
9437   return offset;
9438 }
9439
9440
9441 static const asn_namedbit gsm_map_ms_SpecificCSI_Withdraw_bits[] = {
9442   {  0, &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi, -1, -1, "o-csi", NULL },
9443   {  1, &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi, -1, -1, "ss-csi", NULL },
9444   {  2, &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi, -1, -1, "tif-csi", NULL },
9445   {  3, &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi, -1, -1, "d-csi", NULL },
9446   {  4, &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi, -1, -1, "vt-csi", NULL },
9447   {  5, &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi, -1, -1, "mo-sms-csi", NULL },
9448   {  6, &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi, -1, -1, "m-csi", NULL },
9449   {  7, &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi, -1, -1, "gprs-csi", NULL },
9450   {  8, &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi, -1, -1, "t-csi", NULL },
9451   {  9, &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi, -1, -1, "mt-sms-csi", NULL },
9452   { 10, &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi, -1, -1, "mg-csi", NULL },
9453   { 11, &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI, -1, -1, "o-IM-CSI", NULL },
9454   { 12, &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI, -1, -1, "d-IM-CSI", NULL },
9455   { 13, &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI, -1, -1, "vt-IM-CSI", NULL },
9456   { 0, NULL, 0, 0, NULL, NULL }
9457 };
9458
9459 static int
9460 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_) {
9461   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9462                                     gsm_map_ms_SpecificCSI_Withdraw_bits, hf_index, ett_gsm_map_ms_SpecificCSI_Withdraw,
9463                                     NULL);
9464
9465   return offset;
9466 }
9467
9468
9469 static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataArg_sequence[] = {
9470   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
9471   { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList },
9472   { &hf_gsm_map_ms_ss_List  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
9473   { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9474   { &hf_gsm_map_ms_regionalSubscriptionIdentifier, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCode },
9475   { &hf_gsm_map_ms_vbsGroupIndication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9476   { &hf_gsm_map_ms_vgcsGroupIndication, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9477   { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9478   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9479   { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_GPRSSubscriptionDataWithdraw },
9480   { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9481   { &hf_gsm_map_ms_lsaInformationWithdraw, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_LSAInformationWithdraw },
9482   { &hf_gsm_map_ms_gmlc_ListWithdraw, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9483   { &hf_gsm_map_ms_istInformationWithdraw, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9484   { &hf_gsm_map_ms_specificCSI_Withdraw, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw },
9485   { &hf_gsm_map_ms_chargingCharacteristicsWithdraw, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9486   { NULL, 0, 0, 0, NULL }
9487 };
9488
9489 static int
9490 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_) {
9491   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9492                                    gsm_map_ms_DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataArg);
9493
9494   return offset;
9495 }
9496
9497
9498 static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataRes_sequence[] = {
9499   { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse },
9500   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9501   { NULL, 0, 0, 0, NULL }
9502 };
9503
9504 static int
9505 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_) {
9506   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9507                                    gsm_map_ms_DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataRes);
9508
9509   return offset;
9510 }
9511
9512
9513 static const value_string gsm_map_ms_O_BcsmTriggerDetectionPoint_vals[] = {
9514   {   2, "collectedInfo" },
9515   {   4, "routeSelectFailure" },
9516   { 0, NULL }
9517 };
9518
9519
9520 static int
9521 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_) {
9522   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9523                                   NULL);
9524
9525   return offset;
9526 }
9527
9528
9529 static const value_string gsm_map_ms_DefaultCallHandling_vals[] = {
9530   {   0, "continueCall" },
9531   {   1, "releaseCall" },
9532   { 0, NULL }
9533 };
9534
9535
9536 static int
9537 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_) {
9538   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9539                                   NULL);
9540
9541   return offset;
9542 }
9543
9544
9545 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPData_sequence[] = {
9546   { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint },
9547   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
9548   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9549   { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling },
9550   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9551   { NULL, 0, 0, 0, NULL }
9552 };
9553
9554 static int
9555 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_) {
9556   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9557                                    gsm_map_ms_O_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPData);
9558
9559   return offset;
9560 }
9561
9562
9563 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of[1] = {
9564   { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPData },
9565 };
9566
9567 static int
9568 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_) {
9569   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9570                                       gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPDataList);
9571
9572   return offset;
9573 }
9574
9575
9576 static const ber_sequence_t gsm_map_ms_O_CSI_sequence[] = {
9577   { &hf_gsm_map_ms_o_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPDataList },
9578   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9579   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
9580   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9581   { &hf_gsm_map_ms_csiActive, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9582   { NULL, 0, 0, 0, NULL }
9583 };
9584
9585 static int
9586 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_) {
9587   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9588                                    gsm_map_ms_O_CSI_sequence, hf_index, ett_gsm_map_ms_O_CSI);
9589
9590   return offset;
9591 }
9592
9593
9594 static const ber_sequence_t gsm_map_ms_SS_EventList_sequence_of[1] = {
9595   { &hf_gsm_map_ms_SS_EventList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
9596 };
9597
9598 static int
9599 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_) {
9600   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9601                                       gsm_map_ms_SS_EventList_sequence_of, hf_index, ett_gsm_map_ms_SS_EventList);
9602
9603   return offset;
9604 }
9605
9606
9607 static const ber_sequence_t gsm_map_ms_SS_CamelData_sequence[] = {
9608   { &hf_gsm_map_ms_ss_EventList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_EventList },
9609   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9610   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9611   { NULL, 0, 0, 0, NULL }
9612 };
9613
9614 static int
9615 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_) {
9616   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9617                                    gsm_map_ms_SS_CamelData_sequence, hf_index, ett_gsm_map_ms_SS_CamelData);
9618
9619   return offset;
9620 }
9621
9622
9623 static const ber_sequence_t gsm_map_ms_SS_CSI_sequence[] = {
9624   { &hf_gsm_map_ms_ss_CamelData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_CamelData },
9625   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9626   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9627   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9628   { NULL, 0, 0, 0, NULL }
9629 };
9630
9631 static int
9632 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_) {
9633   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9634                                    gsm_map_ms_SS_CSI_sequence, hf_index, ett_gsm_map_ms_SS_CSI);
9635
9636   return offset;
9637 }
9638
9639
9640 static const value_string gsm_map_ms_MatchType_vals[] = {
9641   {   0, "inhibiting" },
9642   {   1, "enabling" },
9643   { 0, NULL }
9644 };
9645
9646
9647 static int
9648 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_) {
9649   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9650                                   NULL);
9651
9652   return offset;
9653 }
9654
9655
9656 static const ber_sequence_t gsm_map_ms_DestinationNumberList_sequence_of[1] = {
9657   { &hf_gsm_map_ms_DestinationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9658 };
9659
9660 static int
9661 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_) {
9662   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9663                                       gsm_map_ms_DestinationNumberList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberList);
9664
9665   return offset;
9666 }
9667
9668
9669
9670 static int
9671 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_) {
9672   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9673                                                 NULL);
9674
9675   return offset;
9676 }
9677
9678
9679 static const ber_sequence_t gsm_map_ms_DestinationNumberLengthList_sequence_of[1] = {
9680   { &hf_gsm_map_ms_DestinationNumberLengthList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_INTEGER_1_maxNumOfISDN_AddressDigits },
9681 };
9682
9683 static int
9684 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_) {
9685   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9686                                       gsm_map_ms_DestinationNumberLengthList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberLengthList);
9687
9688   return offset;
9689 }
9690
9691
9692 static const ber_sequence_t gsm_map_ms_DestinationNumberCriteria_sequence[] = {
9693   { &hf_gsm_map_ms_matchType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MatchType },
9694   { &hf_gsm_map_ms_destinationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberList },
9695   { &hf_gsm_map_ms_destinationNumberLengthList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberLengthList },
9696   { NULL, 0, 0, 0, NULL }
9697 };
9698
9699 static int
9700 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_) {
9701   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9702                                    gsm_map_ms_DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_ms_DestinationNumberCriteria);
9703
9704   return offset;
9705 }
9706
9707
9708 static const ber_sequence_t gsm_map_ms_BasicServiceCriteria_sequence_of[1] = {
9709   { &hf_gsm_map_ms_BasicServiceCriteria_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
9710 };
9711
9712 static int
9713 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_) {
9714   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9715                                       gsm_map_ms_BasicServiceCriteria_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceCriteria);
9716
9717   return offset;
9718 }
9719
9720
9721 static const value_string gsm_map_ms_CallTypeCriteria_vals[] = {
9722   {   0, "forwarded" },
9723   {   1, "notForwarded" },
9724   { 0, NULL }
9725 };
9726
9727
9728 static int
9729 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_) {
9730   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9731                                   NULL);
9732
9733   return offset;
9734 }
9735
9736
9737
9738 static int
9739 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_) {
9740   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9741                                        NULL);
9742
9743   return offset;
9744 }
9745
9746
9747 static const ber_sequence_t gsm_map_ms_O_CauseValueCriteria_sequence_of[1] = {
9748   { &hf_gsm_map_ms_O_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue },
9749 };
9750
9751 static int
9752 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_) {
9753   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9754                                       gsm_map_ms_O_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_O_CauseValueCriteria);
9755
9756   return offset;
9757 }
9758
9759
9760 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDP_Criteria_sequence[] = {
9761   { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint },
9762   { &hf_gsm_map_ms_destinationNumberCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberCriteria },
9763   { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria },
9764   { &hf_gsm_map_ms_callTypeCriteria, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallTypeCriteria },
9765   { &hf_gsm_map_ms_o_CauseValueCriteria, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CauseValueCriteria },
9766   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9767   { NULL, 0, 0, 0, NULL }
9768 };
9769
9770 static int
9771 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_) {
9772   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9773                                    gsm_map_ms_O_BcsmCamelTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDP_Criteria);
9774
9775   return offset;
9776 }
9777
9778
9779 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of[1] = {
9780   { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDP_Criteria },
9781 };
9782
9783 static int
9784 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_) {
9785   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9786                                       gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList);
9787
9788   return offset;
9789 }
9790
9791
9792 static const ber_sequence_t gsm_map_ms_M_CSI_sequence[] = {
9793   { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers },
9794   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
9795   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9796   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9797   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9798   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9799   { NULL, 0, 0, 0, NULL }
9800 };
9801
9802 static int
9803 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_) {
9804   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9805                                    gsm_map_ms_M_CSI_sequence, hf_index, ett_gsm_map_ms_M_CSI);
9806
9807   return offset;
9808 }
9809
9810
9811 static const value_string gsm_map_ms_T_BcsmTriggerDetectionPoint_vals[] = {
9812   {  12, "termAttemptAuthorized" },
9813   {  13, "tBusy" },
9814   {  14, "tNoAnswer" },
9815   { 0, NULL }
9816 };
9817
9818
9819 static int
9820 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_) {
9821   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9822                                   NULL);
9823
9824   return offset;
9825 }
9826
9827
9828 static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPData_sequence[] = {
9829   { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint },
9830   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
9831   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9832   { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling },
9833   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9834   { NULL, 0, 0, 0, NULL }
9835 };
9836
9837 static int
9838 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_) {
9839   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9840                                    gsm_map_ms_T_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPData);
9841
9842   return offset;
9843 }
9844
9845
9846 static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of[1] = {
9847   { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPData },
9848 };
9849
9850 static int
9851 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_) {
9852   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9853                                       gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPDataList);
9854
9855   return offset;
9856 }
9857
9858
9859 static const ber_sequence_t gsm_map_ms_T_CSI_sequence[] = {
9860   { &hf_gsm_map_ms_t_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPDataList },
9861   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9862   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
9863   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9864   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9865   { NULL, 0, 0, 0, NULL }
9866 };
9867
9868 static int
9869 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_) {
9870   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9871                                    gsm_map_ms_T_CSI_sequence, hf_index, ett_gsm_map_ms_T_CSI);
9872
9873   return offset;
9874 }
9875
9876
9877 static const ber_sequence_t gsm_map_ms_T_CauseValueCriteria_sequence_of[1] = {
9878   { &hf_gsm_map_ms_T_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue },
9879 };
9880
9881 static int
9882 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_) {
9883   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9884                                       gsm_map_ms_T_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_T_CauseValueCriteria);
9885
9886   return offset;
9887 }
9888
9889
9890 static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence[] = {
9891   { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint },
9892   { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria },
9893   { &hf_gsm_map_ms_t_CauseValueCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CauseValueCriteria },
9894   { NULL, 0, 0, 0, NULL }
9895 };
9896
9897 static int
9898 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_) {
9899   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9900                                    gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria);
9901
9902   return offset;
9903 }
9904
9905
9906 static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = {
9907   { &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 },
9908 };
9909
9910 static int
9911 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_) {
9912   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9913                                       gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList);
9914
9915   return offset;
9916 }
9917
9918
9919 static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriterium_sequence[] = {
9920   { &hf_gsm_map_ms_dialledNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9921   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
9922   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9923   { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DefaultCallHandling },
9924   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9925   { NULL, 0, 0, 0, NULL }
9926 };
9927
9928 static int
9929 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_) {
9930   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9931                                    gsm_map_ms_DP_AnalysedInfoCriterium_sequence, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriterium);
9932
9933   return offset;
9934 }
9935
9936
9937 static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of[1] = {
9938   { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriterium },
9939 };
9940
9941 static int
9942 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_) {
9943   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9944                                       gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriteriaList);
9945
9946   return offset;
9947 }
9948
9949
9950 static const ber_sequence_t gsm_map_ms_D_CSI_sequence[] = {
9951   { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriteriaList },
9952   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
9953   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9954   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9955   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9956   { NULL, 0, 0, 0, NULL }
9957 };
9958
9959 static int
9960 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_) {
9961   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9962                                    gsm_map_ms_D_CSI_sequence, hf_index, ett_gsm_map_ms_D_CSI);
9963
9964   return offset;
9965 }
9966
9967
9968 static const ber_sequence_t gsm_map_ms_VlrCamelSubscriptionInfo_sequence[] = {
9969   { &hf_gsm_map_ms_o_CSI    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
9970   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9971   { &hf_gsm_map_ms_ss_CSI   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI },
9972   { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
9973   { &hf_gsm_map_ms_tif_CSI  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9974   { &hf_gsm_map_ms_m_CSI    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI },
9975   { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
9976   { &hf_gsm_map_ms_vt_CSI   , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
9977   { &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 },
9978   { &hf_gsm_map_ms_d_CSI    , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
9979   { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
9980   { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
9981   { NULL, 0, 0, 0, NULL }
9982 };
9983
9984 static int
9985 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_) {
9986   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9987                                    gsm_map_ms_VlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_VlrCamelSubscriptionInfo);
9988
9989   return offset;
9990 }
9991
9992
9993 static const asn_namedbit gsm_map_ms_OfferedCamel4Functionalities_bits[] = {
9994   {  0, &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt, -1, -1, "initiateCallAttempt", NULL },
9995   {  1, &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg, -1, -1, "splitLeg", NULL },
9996   {  2, &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg, -1, -1, "moveLeg", NULL },
9997   {  3, &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg, -1, -1, "disconnectLeg", NULL },
9998   {  4, &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased, -1, -1, "entityReleased", NULL },
9999   {  5, &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument, -1, -1, "dfc-WithArgument", NULL },
10000   {  6, &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone, -1, -1, "playTone", NULL },
10001   {  7, &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall, -1, -1, "dtmf-MidCall", NULL },
10002   {  8, &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator, -1, -1, "chargingIndicator", NULL },
10003   {  9, &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP, -1, -1, "alertingDP", NULL },
10004   { 10, &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting, -1, -1, "locationAtAlerting", NULL },
10005   { 11, &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP, -1, -1, "changeOfPositionDP", NULL },
10006   { 12, &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions, -1, -1, "or-Interactions", NULL },
10007   { 13, &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements, -1, -1, "warningToneEnhancements", NULL },
10008   { 14, &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements, -1, -1, "cf-Enhancements", NULL },
10009   { 15, &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices, -1, -1, "subscribedEnhancedDialledServices", NULL },
10010   { 16, &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices, -1, -1, "servingNetworkEnhancedDialledServices", NULL },
10011   { 17, &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP, -1, -1, "criteriaForChangeOfPositionDP", NULL },
10012   { 18, &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP, -1, -1, "serviceChangeDP", NULL },
10013   { 19, &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation, -1, -1, "collectInformation", NULL },
10014   { 0, NULL, 0, 0, NULL, NULL }
10015 };
10016
10017 int
10018 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_) {
10019   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10020                                     gsm_map_ms_OfferedCamel4Functionalities_bits, hf_index, ett_gsm_map_ms_OfferedCamel4Functionalities,
10021                                     NULL);
10022
10023   return offset;
10024 }
10025
10026
10027 static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsArg_sequence[] = {
10028   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10029   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10030   { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10031   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10032   { NULL, 0, 0, 0, NULL }
10033 };
10034
10035 static int
10036 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_) {
10037   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10038                                    gsm_map_ms_SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsArg);
10039
10040   return offset;
10041 }
10042
10043
10044 static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsRes_sequence[] = {
10045   { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10046   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10047   { &hf_gsm_map_ms_mobileNotReachableReason, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
10048   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10049   { NULL, 0, 0, 0, NULL }
10050 };
10051
10052 static int
10053 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_) {
10054   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10055                                    gsm_map_ms_SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsRes);
10056
10057   return offset;
10058 }
10059
10060
10061 static const ber_sequence_t gsm_map_ms_FailureReportArg_sequence[] = {
10062   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10063   { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10064   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10065   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10066   { NULL, 0, 0, 0, NULL }
10067 };
10068
10069 static int
10070 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_) {
10071   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10072                                    gsm_map_ms_FailureReportArg_sequence, hf_index, ett_gsm_map_ms_FailureReportArg);
10073
10074   return offset;
10075 }
10076
10077
10078 static const ber_sequence_t gsm_map_ms_FailureReportRes_sequence[] = {
10079   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10080   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10081   { NULL, 0, 0, 0, NULL }
10082 };
10083
10084 static int
10085 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_) {
10086   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10087                                    gsm_map_ms_FailureReportRes_sequence, hf_index, ett_gsm_map_ms_FailureReportRes);
10088
10089   return offset;
10090 }
10091
10092
10093 static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsArg_sequence[] = {
10094   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10095   { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10096   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10097   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10098   { NULL, 0, 0, 0, NULL }
10099 };
10100
10101 static int
10102 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_) {
10103   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10104                                    gsm_map_ms_NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsArg);
10105
10106   return offset;
10107 }
10108
10109
10110 static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsRes_sequence[] = {
10111   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10112   { NULL, 0, 0, 0, NULL }
10113 };
10114
10115 static int
10116 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_) {
10117   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10118                                    gsm_map_ms_NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsRes);
10119
10120   return offset;
10121 }
10122
10123
10124 static const ber_sequence_t gsm_map_ms_ResetArg_sequence[] = {
10125   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10126   { &hf_gsm_map_ms_hlr_List , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_List },
10127   { NULL, 0, 0, 0, NULL }
10128 };
10129
10130 static int
10131 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_) {
10132   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10133                                    gsm_map_ms_ResetArg_sequence, hf_index, ett_gsm_map_ms_ResetArg);
10134
10135   return offset;
10136 }
10137
10138
10139 static const ber_sequence_t gsm_map_ms_RestoreDataArg_sequence[] = {
10140   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
10141   { &hf_gsm_map_ms_lmsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
10142   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10143   { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability },
10144   { NULL, 0, 0, 0, NULL }
10145 };
10146
10147 static int
10148 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_) {
10149   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10150                                    gsm_map_ms_RestoreDataArg_sequence, hf_index, ett_gsm_map_ms_RestoreDataArg);
10151
10152   return offset;
10153 }
10154
10155
10156 static const ber_sequence_t gsm_map_ms_RestoreDataRes_sequence[] = {
10157   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10158   { &hf_gsm_map_ms_msNotReachable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10159   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10160   { NULL, 0, 0, 0, NULL }
10161 };
10162
10163 static int
10164 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_) {
10165   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10166                                    gsm_map_ms_RestoreDataRes_sequence, hf_index, ett_gsm_map_ms_RestoreDataRes);
10167
10168   return offset;
10169 }
10170
10171
10172
10173 static int
10174 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_) {
10175   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
10176
10177   return offset;
10178 }
10179
10180
10181 static const ber_sequence_t gsm_map_ms_VoiceBroadcastData_sequence[] = {
10182   { &hf_gsm_map_ms_groupid  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId },
10183   { &hf_gsm_map_ms_broadcastInitEntitlement, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10184   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10185   { NULL, 0, 0, 0, NULL }
10186 };
10187
10188 static int
10189 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_) {
10190   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10191                                    gsm_map_ms_VoiceBroadcastData_sequence, hf_index, ett_gsm_map_ms_VoiceBroadcastData);
10192
10193   return offset;
10194 }
10195
10196
10197 static const ber_sequence_t gsm_map_ms_VBSDataList_sequence_of[1] = {
10198   { &hf_gsm_map_ms_VBSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceBroadcastData },
10199 };
10200
10201 static int
10202 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_) {
10203   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10204                                       gsm_map_ms_VBSDataList_sequence_of, hf_index, ett_gsm_map_ms_VBSDataList);
10205
10206   return offset;
10207 }
10208
10209
10210 static const asn_namedbit gsm_map_ms_AdditionalSubscriptions_bits[] = {
10211   {  0, &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest, -1, -1, "privilegedUplinkRequest", NULL },
10212   {  1, &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest, -1, -1, "emergencyUplinkRequest", NULL },
10213   {  2, &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset, -1, -1, "emergencyReset", NULL },
10214   { 0, NULL, 0, 0, NULL, NULL }
10215 };
10216
10217 static int
10218 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_) {
10219   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10220                                     gsm_map_ms_AdditionalSubscriptions_bits, hf_index, ett_gsm_map_ms_AdditionalSubscriptions,
10221                                     NULL);
10222
10223   return offset;
10224 }
10225
10226
10227
10228 static int
10229 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_) {
10230   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10231                                     NULL, hf_index, -1,
10232                                     NULL);
10233
10234   return offset;
10235 }
10236
10237
10238
10239 static int
10240 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_) {
10241   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
10242
10243   return offset;
10244 }
10245
10246
10247 static const ber_sequence_t gsm_map_ms_VoiceGroupCallData_sequence[] = {
10248   { &hf_gsm_map_ms_groupId  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId },
10249   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10250   { &hf_gsm_map_ms_additionalSubscriptions, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AdditionalSubscriptions },
10251   { &hf_gsm_map_ms_additionalInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
10252   { &hf_gsm_map_ms_longGroupId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Long_GroupId },
10253   { NULL, 0, 0, 0, NULL }
10254 };
10255
10256 static int
10257 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_) {
10258   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10259                                    gsm_map_ms_VoiceGroupCallData_sequence, hf_index, ett_gsm_map_ms_VoiceGroupCallData);
10260
10261   return offset;
10262 }
10263
10264
10265 static const ber_sequence_t gsm_map_ms_VGCSDataList_sequence_of[1] = {
10266   { &hf_gsm_map_ms_VGCSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceGroupCallData },
10267 };
10268
10269 static int
10270 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_) {
10271   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10272                                       gsm_map_ms_VGCSDataList_sequence_of, hf_index, ett_gsm_map_ms_VGCSDataList);
10273
10274   return offset;
10275 }
10276
10277
10278 static const value_string gsm_map_ms_DomainType_vals[] = {
10279   {   0, "cs-Domain" },
10280   {   1, "ps-Domain" },
10281   { 0, NULL }
10282 };
10283
10284
10285 static int
10286 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_) {
10287   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10288                                   NULL);
10289
10290   return offset;
10291 }
10292
10293
10294 static const ber_sequence_t gsm_map_ms_RequestedInfo_sequence[] = {
10295   { &hf_gsm_map_ms_locationInformation_01, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10296   { &hf_gsm_map_ms_subscriberState_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10297   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10298   { &hf_gsm_map_ms_currentLocation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10299   { &hf_gsm_map_ms_requestedDomain, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DomainType },
10300   { &hf_gsm_map_ms_imei_01  , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10301   { &hf_gsm_map_ms_ms_classmark, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10302   { &hf_gsm_map_ms_mnpRequestedInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10303   { NULL, 0, 0, 0, NULL }
10304 };
10305
10306 static int
10307 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_) {
10308   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10309                                    gsm_map_ms_RequestedInfo_sequence, hf_index, ett_gsm_map_ms_RequestedInfo);
10310
10311   return offset;
10312 }
10313
10314
10315 static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoArg_sequence[] = {
10316   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10317   { &hf_gsm_map_ms_lmsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
10318   { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo },
10319   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10320   { NULL, 0, 0, 0, NULL }
10321 };
10322
10323 static int
10324 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_) {
10325   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10326                                    gsm_map_ms_ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoArg);
10327
10328   return offset;
10329 }
10330
10331
10332
10333 int
10334 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_) {
10335   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10336                                        NULL);
10337
10338   return offset;
10339 }
10340
10341
10342
10343 static int
10344 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_) {
10345   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10346                                        NULL);
10347
10348   return offset;
10349 }
10350
10351
10352
10353 static int
10354 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_) {
10355   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10356                                        NULL);
10357
10358   return offset;
10359 }
10360
10361
10362 static const ber_sequence_t gsm_map_ms_LocationInformation_sequence[] = {
10363   { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AgeOfLocationInformation },
10364   { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
10365   { &hf_gsm_map_ms_vlr_number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10366   { &hf_gsm_map_ms_locationNumber, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationNumber },
10367   { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
10368   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10369   { &hf_gsm_map_ms_selectedLSA_Id, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
10370   { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10371   { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
10372   { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10373   { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10374   { NULL, 0, 0, 0, NULL }
10375 };
10376
10377 int
10378 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_) {
10379   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10380                                    gsm_map_ms_LocationInformation_sequence, hf_index, ett_gsm_map_ms_LocationInformation);
10381
10382   return offset;
10383 }
10384
10385
10386 static const value_string gsm_map_ms_NotReachableReason_vals[] = {
10387   {   0, "msPurged" },
10388   {   1, "imsiDetached" },
10389   {   2, "restrictedArea" },
10390   {   3, "notRegistered" },
10391   { 0, NULL }
10392 };
10393
10394
10395 static int
10396 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_) {
10397   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10398                                   NULL);
10399
10400   return offset;
10401 }
10402
10403
10404 const value_string gsm_map_ms_SubscriberState_vals[] = {
10405   {   0, "assumedIdle" },
10406   {   1, "camelBusy" },
10407   {   2, "netDetNotReachable" },
10408   {   3, "notProvidedFromVLR" },
10409   { 0, NULL }
10410 };
10411
10412 static const ber_choice_t gsm_map_ms_SubscriberState_choice[] = {
10413   {   0, &hf_gsm_map_ms_assumedIdle, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10414   {   1, &hf_gsm_map_ms_camelBusy, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10415   {   2, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason },
10416   {   3, &hf_gsm_map_ms_notProvidedFromVLR, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10417   { 0, NULL, 0, 0, 0, NULL }
10418 };
10419
10420 int
10421 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_) {
10422   offset = dissect_ber_choice(actx, tree, tvb, offset,
10423                                  gsm_map_ms_SubscriberState_choice, hf_index, ett_gsm_map_ms_SubscriberState,
10424                                  NULL);
10425
10426   return offset;
10427 }
10428
10429
10430
10431 int
10432 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_) {
10433 #line 553 "gsmmap.cnf"
10434
10435         tvbuff_t        *parameter_tvb;
10436         proto_tree *subtree;
10437
10438   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10439                                        &parameter_tvb);
10440
10441
10442          if (!parameter_tvb)
10443                 return offset;
10444         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RAIdentity);
10445         de_gmm_rai(parameter_tvb, subtree, 0, 3, NULL,0);
10446
10447
10448
10449   return offset;
10450 }
10451
10452
10453 static const ber_sequence_t gsm_map_ms_LocationInformationGPRS_sequence[] = {
10454   { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
10455   { &hf_gsm_map_ms_routeingAreaIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAIdentity },
10456   { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
10457   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10458   { &hf_gsm_map_ms_selectedLSAIdentity, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
10459   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10460   { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10461   { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
10462   { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10463   { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
10464   { NULL, 0, 0, 0, NULL }
10465 };
10466
10467 static int
10468 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_) {
10469   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10470                                    gsm_map_ms_LocationInformationGPRS_sequence, hf_index, ett_gsm_map_ms_LocationInformationGPRS);
10471
10472   return offset;
10473 }
10474
10475
10476
10477 static int
10478 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_) {
10479   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10480                                                 NULL);
10481
10482   return offset;
10483 }
10484
10485
10486
10487 static int
10488 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_) {
10489   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10490                                        NULL);
10491
10492   return offset;
10493 }
10494
10495
10496
10497 static int
10498 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_) {
10499   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10500                                        NULL);
10501
10502   return offset;
10503 }
10504
10505
10506
10507 int
10508 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_) {
10509   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10510                                        NULL);
10511
10512   return offset;
10513 }
10514
10515
10516 static const ber_sequence_t gsm_map_ms_PDP_ContextInfo_sequence[] = {
10517   { &hf_gsm_map_ms_pdp_ContextIdentifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
10518   { &hf_gsm_map_ms_pdp_ContextActive, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10519   { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type },
10520   { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
10521   { &hf_gsm_map_ms_apn_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
10522   { &hf_gsm_map_ms_apn_InUse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
10523   { &hf_gsm_map_ms_nsapi    , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NSAPI },
10524   { &hf_gsm_map_ms_transactionId, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TransactionId },
10525   { &hf_gsm_map_ms_teid_ForGnAndGp, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID },
10526   { &hf_gsm_map_ms_teid_ForIu, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID },
10527   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10528   { &hf_gsm_map_ms_qos_Subscribed_01, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
10529   { &hf_gsm_map_ms_qos_Requested, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
10530   { &hf_gsm_map_ms_qos_Negotiated, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
10531   { &hf_gsm_map_ms_chargingId, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSChargingID },
10532   { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
10533   { &hf_gsm_map_ms_rnc_Address, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10534   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10535   { &hf_gsm_map_ms_qos2_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
10536   { &hf_gsm_map_ms_qos2_Requested, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
10537   { &hf_gsm_map_ms_qos2_Negotiated, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
10538   { &hf_gsm_map_ms_qos3_Subscribed, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
10539   { &hf_gsm_map_ms_qos3_Requested, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
10540   { &hf_gsm_map_ms_qos3_Negotiated, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
10541   { NULL, 0, 0, 0, NULL }
10542 };
10543
10544 static int
10545 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_) {
10546   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10547                                    gsm_map_ms_PDP_ContextInfo_sequence, hf_index, ett_gsm_map_ms_PDP_ContextInfo);
10548
10549   return offset;
10550 }
10551
10552
10553 static const ber_sequence_t gsm_map_ms_PDP_ContextInfoList_sequence_of[1] = {
10554   { &hf_gsm_map_ms_PDP_ContextInfoList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_ContextInfo },
10555 };
10556
10557 static int
10558 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_) {
10559   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10560                                       gsm_map_ms_PDP_ContextInfoList_sequence_of, hf_index, ett_gsm_map_ms_PDP_ContextInfoList);
10561
10562   return offset;
10563 }
10564
10565
10566 static const value_string gsm_map_ms_PS_SubscriberState_vals[] = {
10567   {   0, "notProvidedFromSGSN" },
10568   {   1, "ps-Detached" },
10569   {   2, "ps-AttachedNotReachableForPaging" },
10570   {   3, "ps-AttachedReachableForPaging" },
10571   {   4, "ps-PDP-ActiveNotReachableForPaging" },
10572   {   5, "ps-PDP-ActiveReachableForPaging" },
10573   {   6, "netDetNotReachable" },
10574   { 0, NULL }
10575 };
10576
10577 static const ber_choice_t gsm_map_ms_PS_SubscriberState_choice[] = {
10578   {   0, &hf_gsm_map_ms_notProvidedFromSGSN, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10579   {   1, &hf_gsm_map_ms_ps_Detached, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10580   {   2, &hf_gsm_map_ms_ps_AttachedNotReachableForPaging, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10581   {   3, &hf_gsm_map_ms_ps_AttachedReachableForPaging, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10582   {   4, &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList },
10583   {   5, &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList },
10584   {   6, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason },
10585   { 0, NULL, 0, 0, 0, NULL }
10586 };
10587
10588 static int
10589 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_) {
10590   offset = dissect_ber_choice(actx, tree, tvb, offset,
10591                                  gsm_map_ms_PS_SubscriberState_choice, hf_index, ett_gsm_map_ms_PS_SubscriberState,
10592                                  NULL);
10593
10594   return offset;
10595 }
10596
10597
10598
10599 int
10600 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_) {
10601   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10602                                        NULL);
10603
10604   return offset;
10605 }
10606
10607
10608
10609 static int
10610 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_) {
10611   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10612                                        NULL);
10613
10614   return offset;
10615 }
10616
10617
10618
10619 static int
10620 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_) {
10621   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10622                                        NULL);
10623
10624   return offset;
10625 }
10626
10627
10628 static const ber_sequence_t gsm_map_ms_GPRSMSClass_sequence[] = {
10629   { &hf_gsm_map_ms_mSNetworkCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSNetworkCapability },
10630   { &hf_gsm_map_ms_mSRadioAccessCapability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSRadioAccessCapability },
10631   { NULL, 0, 0, 0, NULL }
10632 };
10633
10634 int
10635 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_) {
10636   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10637                                    gsm_map_ms_GPRSMSClass_sequence, hf_index, ett_gsm_map_ms_GPRSMSClass);
10638
10639   return offset;
10640 }
10641
10642
10643
10644 static int
10645 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_) {
10646   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
10647
10648   return offset;
10649 }
10650
10651
10652 static const value_string gsm_map_ms_NumberPortabilityStatus_vals[] = {
10653   {   0, "notKnownToBePorted" },
10654   {   1, "ownNumberPortedOut" },
10655   {   2, "foreignNumberPortedToForeignNetwork" },
10656   {   4, "ownNumberNotPortedOut" },
10657   {   5, "foreignNumberPortedIn" },
10658   { 0, NULL }
10659 };
10660
10661
10662 static int
10663 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_) {
10664   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10665                                   NULL);
10666
10667   return offset;
10668 }
10669
10670
10671 static const ber_sequence_t gsm_map_ms_MNPInfoRes_sequence[] = {
10672   { &hf_gsm_map_ms_routeingNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RouteingNumber },
10673   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10674   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10675   { &hf_gsm_map_ms_numberPortabilityStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus },
10676   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10677   { NULL, 0, 0, 0, NULL }
10678 };
10679
10680 static int
10681 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_) {
10682   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10683                                    gsm_map_ms_MNPInfoRes_sequence, hf_index, ett_gsm_map_ms_MNPInfoRes);
10684
10685   return offset;
10686 }
10687
10688
10689 static const ber_sequence_t gsm_map_ms_SubscriberInfo_sequence[] = {
10690   { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
10691   { &hf_gsm_map_ms_subscriberState, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SubscriberState },
10692   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10693   { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
10694   { &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 },
10695   { &hf_gsm_map_ms_imei     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
10696   { &hf_gsm_map_ms_ms_Classmark2, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MS_Classmark2 },
10697   { &hf_gsm_map_ms_gprs_MS_Class, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSMSClass },
10698   { &hf_gsm_map_ms_mnpInfoRes, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MNPInfoRes },
10699   { NULL, 0, 0, 0, NULL }
10700 };
10701
10702 static int
10703 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_) {
10704   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10705                                    gsm_map_ms_SubscriberInfo_sequence, hf_index, ett_gsm_map_ms_SubscriberInfo);
10706
10707   return offset;
10708 }
10709
10710
10711 static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoRes_sequence[] = {
10712   { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo },
10713   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10714   { NULL, 0, 0, 0, NULL }
10715 };
10716
10717 static int
10718 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_) {
10719   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10720                                    gsm_map_ms_ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoRes);
10721
10722   return offset;
10723 }
10724
10725
10726 static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationArg_sequence[] = {
10727   { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
10728   { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo },
10729   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10730   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10731   { NULL, 0, 0, 0, NULL }
10732 };
10733
10734 static int
10735 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_) {
10736   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10737                                    gsm_map_ms_AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationArg);
10738
10739   return offset;
10740 }
10741
10742
10743 static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationRes_sequence[] = {
10744   { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo },
10745   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10746   { NULL, 0, 0, 0, NULL }
10747 };
10748
10749 static int
10750 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_) {
10751   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10752                                    gsm_map_ms_AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationRes);
10753
10754   return offset;
10755 }
10756
10757
10758 static const value_string gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals[] = {
10759   {   0, "o-CSI" },
10760   {   1, "t-CSI" },
10761   {   2, "vt-CSI" },
10762   {   3, "tif-CSI" },
10763   {   4, "gprs-CSI" },
10764   {   5, "mo-sms-CSI" },
10765   {   6, "ss-CSI" },
10766   {   7, "m-CSI" },
10767   {   8, "d-csi" },
10768   { 0, NULL }
10769 };
10770
10771
10772 static int
10773 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_) {
10774   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10775                                   NULL);
10776
10777   return offset;
10778 }
10779
10780
10781 static const value_string gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals[] = {
10782   {   0, "mt-sms-CSI" },
10783   {   1, "mg-csi" },
10784   {   2, "o-IM-CSI" },
10785   {   3, "d-IM-CSI" },
10786   {   4, "vt-IM-CSI" },
10787   { 0, NULL }
10788 };
10789
10790
10791 static int
10792 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_) {
10793   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10794                                   NULL);
10795
10796   return offset;
10797 }
10798
10799
10800 static const ber_sequence_t gsm_map_ms_RequestedSubscriptionInfo_sequence[] = {
10801   { &hf_gsm_map_ms_requestedSS_Info, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_ForBS_Code },
10802   { &hf_gsm_map_ms_odb      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10803   { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo },
10804   { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10805   { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10806   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10807   { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo },
10808   { &hf_gsm_map_ms_msisdn_BS_List_01, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10809   { NULL, 0, 0, 0, NULL }
10810 };
10811
10812 static int
10813 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_) {
10814   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10815                                    gsm_map_ms_RequestedSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_RequestedSubscriptionInfo);
10816
10817   return offset;
10818 }
10819
10820
10821 static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationArg_sequence[] = {
10822   { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
10823   { &hf_gsm_map_ms_requestedSubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedSubscriptionInfo },
10824   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10825   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10826   { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10827   { NULL, 0, 0, 0, NULL }
10828 };
10829
10830 static int
10831 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_) {
10832   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10833                                    gsm_map_ms_AnyTimeSubscriptionInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg);
10834
10835   return offset;
10836 }
10837
10838
10839 static const ber_sequence_t gsm_map_ms_CallForwardingData_sequence[] = {
10840   { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
10841   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10842   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10843   { NULL, 0, 0, 0, NULL }
10844 };
10845
10846 static int
10847 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_) {
10848   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10849                                    gsm_map_ms_CallForwardingData_sequence, hf_index, ett_gsm_map_ms_CallForwardingData);
10850
10851   return offset;
10852 }
10853
10854
10855
10856 static int
10857 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_) {
10858   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10859                                                 NULL);
10860
10861   return offset;
10862 }
10863
10864
10865 static const ber_sequence_t gsm_map_ms_CallBarringData_sequence[] = {
10866   { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
10867   { &hf_gsm_map_ms_password , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_Password },
10868   { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
10869   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10870   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10871   { NULL, 0, 0, 0, NULL }
10872 };
10873
10874 static int
10875 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_) {
10876   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10877                                    gsm_map_ms_CallBarringData_sequence, hf_index, ett_gsm_map_ms_CallBarringData);
10878
10879   return offset;
10880 }
10881
10882
10883 static const ber_sequence_t gsm_map_ms_ODB_Info_sequence[] = {
10884   { &hf_gsm_map_ms_odb_Data , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_Data },
10885   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10886   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10887   { NULL, 0, 0, 0, NULL }
10888 };
10889
10890 static int
10891 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_) {
10892   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10893                                    gsm_map_ms_ODB_Info_sequence, hf_index, ett_gsm_map_ms_ODB_Info);
10894
10895   return offset;
10896 }
10897
10898
10899 static const ber_sequence_t gsm_map_ms_CAMEL_SubscriptionInfo_sequence[] = {
10900   { &hf_gsm_map_ms_o_CSI    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
10901   { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
10902   { &hf_gsm_map_ms_d_CSI    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
10903   { &hf_gsm_map_ms_t_CSI    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
10904   { &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 },
10905   { &hf_gsm_map_ms_vt_CSI   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
10906   { &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 },
10907   { &hf_gsm_map_ms_tif_CSI  , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10908   { &hf_gsm_map_ms_tif_CSI_NotificationToCSE, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10909   { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI },
10910   { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
10911   { &hf_gsm_map_ms_ss_CSI   , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI },
10912   { &hf_gsm_map_ms_m_CSI    , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI },
10913   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10914   { &hf_gsm_map_ms_specificCSIDeletedList, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw },
10915   { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
10916   { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
10917   { &hf_gsm_map_ms_mg_csi   , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI },
10918   { &hf_gsm_map_ms_o_IM_CSI , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
10919   { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
10920   { &hf_gsm_map_ms_d_IM_CSI , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
10921   { &hf_gsm_map_ms_vt_IM_CSI, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
10922   { &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 },
10923   { NULL, 0, 0, 0, NULL }
10924 };
10925
10926 static int
10927 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_) {
10928   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10929                                    gsm_map_ms_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_CAMEL_SubscriptionInfo);
10930
10931   return offset;
10932 }
10933
10934
10935 static const ber_sequence_t gsm_map_ms_MSISDN_BS_sequence[] = {
10936   { &hf_gsm_map_ms_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10937   { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList },
10938   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10939   { NULL, 0, 0, 0, NULL }
10940 };
10941
10942 static int
10943 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_) {
10944   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10945                                    gsm_map_ms_MSISDN_BS_sequence, hf_index, ett_gsm_map_ms_MSISDN_BS);
10946
10947   return offset;
10948 }
10949
10950
10951 static const ber_sequence_t gsm_map_ms_MSISDN_BS_List_sequence_of[1] = {
10952   { &hf_gsm_map_ms_MSISDN_BS_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MSISDN_BS },
10953 };
10954
10955 static int
10956 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_) {
10957   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10958                                       gsm_map_ms_MSISDN_BS_List_sequence_of, hf_index, ett_gsm_map_ms_MSISDN_BS_List);
10959
10960   return offset;
10961 }
10962
10963
10964 static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationRes_sequence[] = {
10965   { &hf_gsm_map_ms_callForwardingData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallForwardingData },
10966   { &hf_gsm_map_ms_callBarringData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallBarringData },
10967   { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
10968   { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
10969   { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
10970   { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
10971   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10972   { &hf_gsm_map_ms_offeredCamel4CSIsInVLR, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
10973   { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
10974   { &hf_gsm_map_ms_msisdn_BS_List, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSISDN_BS_List },
10975   { NULL, 0, 0, 0, NULL }
10976 };
10977
10978 static int
10979 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_) {
10980   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10981                                    gsm_map_ms_AnyTimeSubscriptionInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes);
10982
10983   return offset;
10984 }
10985
10986
10987 static const value_string gsm_map_ms_ModificationInstruction_vals[] = {
10988   {   0, "deactivate" },
10989   {   1, "activate" },
10990   { 0, NULL }
10991 };
10992
10993
10994 static int
10995 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_) {
10996   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10997                                   NULL);
10998
10999   return offset;
11000 }
11001
11002
11003 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CF_Info_sequence[] = {
11004   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
11005   { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11006   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
11007   { &hf_gsm_map_ms_forwardedToNumber_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
11008   { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
11009   { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime },
11010   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11011   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11012   { NULL, 0, 0, 0, NULL }
11013 };
11014
11015 static int
11016 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_) {
11017   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11018                                    gsm_map_ms_ModificationRequestFor_CF_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CF_Info);
11019
11020   return offset;
11021 }
11022
11023
11024 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CB_Info_sequence[] = {
11025   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
11026   { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11027   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
11028   { &hf_gsm_map_ms_password , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password },
11029   { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
11030   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11031   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11032   { NULL, 0, 0, 0, NULL }
11033 };
11034
11035 static int
11036 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_) {
11037   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11038                                    gsm_map_ms_ModificationRequestFor_CB_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CB_Info);
11039
11040   return offset;
11041 }
11042
11043
11044 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CSI_sequence[] = {
11045   { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo },
11046   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11047   { &hf_gsm_map_ms_modifyCSI_State, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11048   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11049   { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo },
11050   { NULL, 0, 0, 0, NULL }
11051 };
11052
11053 static int
11054 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_) {
11055   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11056                                    gsm_map_ms_ModificationRequestFor_CSI_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CSI);
11057
11058   return offset;
11059 }
11060
11061
11062 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_ODB_data_sequence[] = {
11063   { &hf_gsm_map_ms_odb_data , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
11064   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11065   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11066   { NULL, 0, 0, 0, NULL }
11067 };
11068
11069 static int
11070 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_) {
11071   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11072                                    gsm_map_ms_ModificationRequestFor_ODB_data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_ODB_data);
11073
11074   return offset;
11075 }
11076
11077
11078 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence[] = {
11079   { &hf_gsm_map_ms_modifyRegistrationStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11080   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11081   { NULL, 0, 0, 0, NULL }
11082 };
11083
11084 static int
11085 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_) {
11086   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11087                                    gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data);
11088
11089   return offset;
11090 }
11091
11092
11093 static const ber_sequence_t gsm_map_ms_AnyTimeModificationArg_sequence[] = {
11094   { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
11095   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11096   { &hf_gsm_map_ms_modificationRequestFor_CF_Info, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CF_Info },
11097   { &hf_gsm_map_ms_modificationRequestFor_CB_Info, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CB_Info },
11098   { &hf_gsm_map_ms_modificationRequestFor_CSI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CSI },
11099   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11100   { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11101   { &hf_gsm_map_ms_modificationRequestFor_ODB_data, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_ODB_data },
11102   { &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 },
11103   { NULL, 0, 0, 0, NULL }
11104 };
11105
11106 static int
11107 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_) {
11108   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11109                                    gsm_map_ms_AnyTimeModificationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationArg);
11110
11111   return offset;
11112 }
11113
11114
11115 static const ber_sequence_t gsm_map_ms_Ext_ForwardingInfoFor_CSE_sequence[] = {
11116   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
11117   { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
11118   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11119   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11120   { NULL, 0, 0, 0, NULL }
11121 };
11122
11123 static int
11124 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_) {
11125   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11126                                    gsm_map_ms_Ext_ForwardingInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE);
11127
11128   return offset;
11129 }
11130
11131
11132 static const ber_sequence_t gsm_map_ms_Ext_CallBarringInfoFor_CSE_sequence[] = {
11133   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
11134   { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
11135   { &hf_gsm_map_ms_password , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password },
11136   { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
11137   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11138   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11139   { NULL, 0, 0, 0, NULL }
11140 };
11141
11142 static int
11143 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_) {
11144   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11145                                    gsm_map_ms_Ext_CallBarringInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE);
11146
11147   return offset;
11148 }
11149
11150
11151 static const value_string gsm_map_ms_Ext_SS_InfoFor_CSE_vals[] = {
11152   {   0, "forwardingInfoFor-CSE" },
11153   {   1, "callBarringInfoFor-CSE" },
11154   { 0, NULL }
11155 };
11156
11157 static const ber_choice_t gsm_map_ms_Ext_SS_InfoFor_CSE_choice[] = {
11158   {   0, &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE },
11159   {   1, &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE },
11160   { 0, NULL, 0, 0, 0, NULL }
11161 };
11162
11163 static int
11164 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_) {
11165   offset = dissect_ber_choice(actx, tree, tvb, offset,
11166                                  gsm_map_ms_Ext_SS_InfoFor_CSE_choice, hf_index, ett_gsm_map_ms_Ext_SS_InfoFor_CSE,
11167                                  NULL);
11168
11169   return offset;
11170 }
11171
11172
11173 static const ber_sequence_t gsm_map_ms_AnyTimeModificationRes_sequence[] = {
11174   { &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 },
11175   { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
11176   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11177   { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
11178   { NULL, 0, 0, 0, NULL }
11179 };
11180
11181 static int
11182 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_) {
11183   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11184                                    gsm_map_ms_AnyTimeModificationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationRes);
11185
11186   return offset;
11187 }
11188
11189
11190 static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedArg_sequence[] = {
11191   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
11192   { &hf_gsm_map_ms_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11193   { &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE },
11194   { &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE },
11195   { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
11196   { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
11197   { &hf_gsm_map_ms_allInformationSent, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11198   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11199   { NULL, 0, 0, 0, NULL }
11200 };
11201
11202 static int
11203 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_) {
11204   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11205                                    gsm_map_ms_NoteSubscriberDataModifiedArg_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedArg);
11206
11207   return offset;
11208 }
11209
11210
11211 static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedRes_sequence[] = {
11212   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11213   { NULL, 0, 0, 0, NULL }
11214 };
11215
11216 static int
11217 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_) {
11218   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11219                                    gsm_map_ms_NoteSubscriberDataModifiedRes_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedRes);
11220
11221   return offset;
11222 }
11223
11224
11225 static const ber_sequence_t gsm_map_ms_NoteMM_EventArg_sequence[] = {
11226   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
11227   { &hf_gsm_map_ms_eventMet , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MM_Code },
11228   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11229   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11230   { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
11231   { &hf_gsm_map_ms_supportedCAMELPhases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11232   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11233   { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
11234   { &hf_gsm_map_ms_offeredCamel4Functionalities, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4Functionalities },
11235   { NULL, 0, 0, 0, NULL }
11236 };
11237
11238 static int
11239 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_) {
11240   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11241                                    gsm_map_ms_NoteMM_EventArg_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventArg);
11242
11243   return offset;
11244 }
11245
11246
11247 static const ber_sequence_t gsm_map_ms_NoteMM_EventRes_sequence[] = {
11248   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11249   { NULL, 0, 0, 0, NULL }
11250 };
11251
11252 static int
11253 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_) {
11254   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11255                                    gsm_map_ms_NoteMM_EventRes_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventRes);
11256
11257   return offset;
11258 }
11259
11260
11261 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
11262
11263
11264
11265 static int
11266 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_) {
11267   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
11268
11269   return offset;
11270 }
11271
11272
11273 static const ber_sequence_t gsm_map_ch_CUG_CheckInfo_sequence[] = {
11274   { &hf_gsm_map_ch_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock },
11275   { &hf_gsm_map_ch_cug_OutgoingAccess, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
11276   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11277   { NULL, 0, 0, 0, NULL }
11278 };
11279
11280 static int
11281 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_) {
11282   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11283                                    gsm_map_ch_CUG_CheckInfo_sequence, hf_index, ett_gsm_map_ch_CUG_CheckInfo);
11284
11285   return offset;
11286 }
11287
11288
11289
11290 static int
11291 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_) {
11292   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11293                                                 NULL);
11294
11295   return offset;
11296 }
11297
11298
11299 static const value_string gsm_map_ch_InterrogationType_vals[] = {
11300   {   0, "basicCall" },
11301   {   1, "forwarding" },
11302   { 0, NULL }
11303 };
11304
11305
11306 static int
11307 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_) {
11308   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11309                                   NULL);
11310
11311   return offset;
11312 }
11313
11314
11315
11316 static int
11317 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_) {
11318   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11319                                                 NULL);
11320
11321   return offset;
11322 }
11323
11324
11325
11326 int
11327 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_) {
11328   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11329                                        NULL);
11330
11331   return offset;
11332 }
11333
11334
11335 static const value_string gsm_map_ch_ForwardingReason_vals[] = {
11336   {   0, "notReachable" },
11337   {   1, "busy" },
11338   {   2, "noReply" },
11339   { 0, NULL }
11340 };
11341
11342
11343 static int
11344 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_) {
11345   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11346                                   NULL);
11347
11348   return offset;
11349 }
11350
11351
11352 static const ber_sequence_t gsm_map_ch_CamelInfo_sequence[] = {
11353   { &hf_gsm_map_ch_supportedCamelPhases, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11354   { &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 },
11355   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11356   { &hf_gsm_map_ch_offeredCamel4CSIs, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
11357   { NULL, 0, 0, 0, NULL }
11358 };
11359
11360 static int
11361 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_) {
11362   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11363                                    gsm_map_ch_CamelInfo_sequence, hf_index, ett_gsm_map_ch_CamelInfo);
11364
11365   return offset;
11366 }
11367
11368
11369
11370 int
11371 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_) {
11372   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
11373
11374   return offset;
11375 }
11376
11377
11378
11379 static int
11380 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_) {
11381   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11382                                                 NULL);
11383
11384   return offset;
11385 }
11386
11387
11388
11389 static int
11390 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_) {
11391   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11392                                        NULL);
11393
11394   return offset;
11395 }
11396
11397
11398 static const asn_namedbit gsm_map_ch_SuppressMTSS_bits[] = {
11399   {  0, &hf_gsm_map_ch_SuppressMTSS_suppressCUG, -1, -1, "suppressCUG", NULL },
11400   {  1, &hf_gsm_map_ch_SuppressMTSS_suppressCCBS, -1, -1, "suppressCCBS", NULL },
11401   { 0, NULL, 0, 0, NULL, NULL }
11402 };
11403
11404 static int
11405 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_) {
11406   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11407                                     gsm_map_ch_SuppressMTSS_bits, hf_index, ett_gsm_map_ch_SuppressMTSS,
11408                                     NULL);
11409
11410   return offset;
11411 }
11412
11413
11414 static const ber_sequence_t gsm_map_ch_SendRoutingInfoArg_sequence[] = {
11415   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11416   { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
11417   { &hf_gsm_map_ch_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding },
11418   { &hf_gsm_map_ch_interrogationType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_InterrogationType },
11419   { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11420   { &hf_gsm_map_ch_or_Capability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_OR_Phase },
11421   { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11422   { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
11423   { &hf_gsm_map_ch_forwardingReason, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingReason },
11424   { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11425   { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11426   { &hf_gsm_map_ch_camelInfo, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelInfo },
11427   { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
11428   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11429   { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
11430   { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11431   { &hf_gsm_map_ch_supportedCCBS_Phase, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SupportedCCBS_Phase },
11432   { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo },
11433   { &hf_gsm_map_ch_istSupportIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator },
11434   { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11435   { &hf_gsm_map_ch_callDiversionTreatmentIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallDiversionTreatmentIndicator },
11436   { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11437   { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11438   { &hf_gsm_map_ch_suppressIncomingCallBarring, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11439   { &hf_gsm_map_ch_gsmSCF_InitiatedCall, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11440   { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11441   { &hf_gsm_map_ch_networkSignalInfo2, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11442   { &hf_gsm_map_ch_suppressMTSS, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressMTSS },
11443   { &hf_gsm_map_ch_mtRoamingRetrySupported, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11444   { NULL, 0, 0, 0, NULL }
11445 };
11446
11447 static int
11448 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_) {
11449   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11450                                    gsm_map_ch_SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoArg);
11451
11452   return offset;
11453 }
11454
11455
11456 static const ber_sequence_t gsm_map_ch_ForwardingData_sequence[] = {
11457   { &hf_gsm_map_ch_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11458   { &hf_gsm_map_ch_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
11459   { &hf_gsm_map_ch_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions },
11460   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11461   { &hf_gsm_map_ch_longForwardedToNumber, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
11462   { NULL, 0, 0, 0, NULL }
11463 };
11464
11465 static int
11466 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_) {
11467   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11468                                    gsm_map_ch_ForwardingData_sequence, hf_index, ett_gsm_map_ch_ForwardingData);
11469
11470   return offset;
11471 }
11472
11473
11474 static const value_string gsm_map_ch_RoutingInfo_vals[] = {
11475   {   0, "roamingNumber" },
11476   {   1, "forwardingData" },
11477   { 0, NULL }
11478 };
11479
11480 static const ber_choice_t gsm_map_ch_RoutingInfo_choice[] = {
11481   {   0, &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11482   {   1, &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData },
11483   { 0, NULL, 0, 0, 0, NULL }
11484 };
11485
11486 static int
11487 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_) {
11488   offset = dissect_ber_choice(actx, tree, tvb, offset,
11489                                  gsm_map_ch_RoutingInfo_choice, hf_index, ett_gsm_map_ch_RoutingInfo,
11490                                  NULL);
11491
11492   return offset;
11493 }
11494
11495
11496 static const ber_sequence_t gsm_map_ch_GmscCamelSubscriptionInfo_sequence[] = {
11497   { &hf_gsm_map_ch_t_CSI    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
11498   { &hf_gsm_map_ch_o_CSI    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
11499   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11500   { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
11501   { &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 },
11502   { &hf_gsm_map_ch_d_csi    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
11503   { NULL, 0, 0, 0, NULL }
11504 };
11505
11506 static int
11507 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_) {
11508   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11509                                    gsm_map_ch_GmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ch_GmscCamelSubscriptionInfo);
11510
11511   return offset;
11512 }
11513
11514
11515 static const ber_sequence_t gsm_map_ch_CamelRoutingInfo_sequence[] = {
11516   { &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData },
11517   { &hf_gsm_map_ch_gmscCamelSubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_GmscCamelSubscriptionInfo },
11518   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11519   { NULL, 0, 0, 0, NULL }
11520 };
11521
11522 static int
11523 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_) {
11524   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11525                                    gsm_map_ch_CamelRoutingInfo_sequence, hf_index, ett_gsm_map_ch_CamelRoutingInfo);
11526
11527   return offset;
11528 }
11529
11530
11531 static const value_string gsm_map_ch_ExtendedRoutingInfo_vals[] = {
11532   {   0, "routingInfo" },
11533   {   1, "camelRoutingInfo" },
11534   { 0, NULL }
11535 };
11536
11537 static const ber_choice_t gsm_map_ch_ExtendedRoutingInfo_choice[] = {
11538   {   0, &hf_gsm_map_ch_routingInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo },
11539   {   1, &hf_gsm_map_ch_camelRoutingInfo, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelRoutingInfo },
11540   { 0, NULL, 0, 0, 0, NULL }
11541 };
11542
11543 static int
11544 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_) {
11545   offset = dissect_ber_choice(actx, tree, tvb, offset,
11546                                  gsm_map_ch_ExtendedRoutingInfo_choice, hf_index, ett_gsm_map_ch_ExtendedRoutingInfo,
11547                                  NULL);
11548
11549   return offset;
11550 }
11551
11552
11553 static const ber_sequence_t gsm_map_ch_CCBS_Indicators_sequence[] = {
11554   { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11555   { &hf_gsm_map_ch_keepCCBS_CallIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11556   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11557   { NULL, 0, 0, 0, NULL }
11558 };
11559
11560 static int
11561 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_) {
11562   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11563                                    gsm_map_ch_CCBS_Indicators_sequence, hf_index, ett_gsm_map_ch_CCBS_Indicators);
11564
11565   return offset;
11566 }
11567
11568
11569 static const asn_namedbit gsm_map_ch_AllowedServices_bits[] = {
11570   {  0, &hf_gsm_map_ch_AllowedServices_firstServiceAllowed, -1, -1, "firstServiceAllowed", NULL },
11571   {  1, &hf_gsm_map_ch_AllowedServices_secondServiceAllowed, -1, -1, "secondServiceAllowed", NULL },
11572   { 0, NULL, 0, 0, NULL, NULL }
11573 };
11574
11575 static int
11576 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_) {
11577   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11578                                     gsm_map_ch_AllowedServices_bits, hf_index, ett_gsm_map_ch_AllowedServices,
11579                                     NULL);
11580
11581   return offset;
11582 }
11583
11584
11585 static const value_string gsm_map_ch_UnavailabilityCause_vals[] = {
11586   {   1, "bearerServiceNotProvisioned" },
11587   {   2, "teleserviceNotProvisioned" },
11588   {   3, "absentSubscriber" },
11589   {   4, "busySubscriber" },
11590   {   5, "callBarred" },
11591   {   6, "cug-Reject" },
11592   { 0, NULL }
11593 };
11594
11595
11596 static int
11597 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_) {
11598   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11599                                   NULL);
11600
11601   return offset;
11602 }
11603
11604
11605 static const ber_sequence_t gsm_map_ch_SendRoutingInfoRes_U_sequence[] = {
11606   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11607   { &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 },
11608   { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
11609   { &hf_gsm_map_ch_cugSubscriptionFlag, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11610   { &hf_gsm_map_ch_subscriberInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberInfo },
11611   { &hf_gsm_map_ch_ss_List  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
11612   { &hf_gsm_map_ch_basicService, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11613   { &hf_gsm_map_ch_forwardingInterrogationRequired, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11614   { &hf_gsm_map_ch_vmsc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11615   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11616   { &hf_gsm_map_ch_naea_PreferredCI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI },
11617   { &hf_gsm_map_ch_ccbs_Indicators, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_Indicators },
11618   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11619   { &hf_gsm_map_ch_numberPortabilityStatus, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus },
11620   { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
11621   { &hf_gsm_map_ch_supportedCamelPhasesInVMSC, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11622   { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
11623   { &hf_gsm_map_ch_routingInfo2, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ch_RoutingInfo },
11624   { &hf_gsm_map_ch_ss_List2 , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
11625   { &hf_gsm_map_ch_basicService2, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11626   { &hf_gsm_map_ch_allowedServices, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_AllowedServices },
11627   { &hf_gsm_map_ch_unavailabilityCause, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UnavailabilityCause },
11628   { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11629   { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11630   { NULL, 0, 0, 0, NULL }
11631 };
11632
11633 static int
11634 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_) {
11635   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11636                                    gsm_map_ch_SendRoutingInfoRes_U_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoRes_U);
11637
11638   return offset;
11639 }
11640
11641
11642
11643 static int
11644 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_) {
11645   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
11646                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ch_SendRoutingInfoRes_U);
11647
11648   return offset;
11649 }
11650
11651
11652 static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberArg_sequence[] = {
11653   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11654   { &hf_gsm_map_ch_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11655   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11656   { &hf_gsm_map_ch_lmsi     , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
11657   { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11658   { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11659   { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
11660   { &hf_gsm_map_ch_gmsc_Address, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11661   { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
11662   { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11663   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11664   { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
11665   { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11666   { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11667   { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo },
11668   { &hf_gsm_map_ch_orNotSupportedInGMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11669   { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11670   { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11671   { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11672   { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
11673   { &hf_gsm_map_ch_mtRoamingRetrySupported, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11674   { NULL, 0, 0, 0, NULL }
11675 };
11676
11677 static int
11678 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_) {
11679   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11680                                    gsm_map_ch_ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberArg);
11681
11682   return offset;
11683 }
11684
11685
11686 static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberRes_sequence[] = {
11687   { &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11688   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11689   { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
11690   { NULL, 0, 0, 0, NULL }
11691 };
11692
11693 static int
11694 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_) {
11695   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11696                                    gsm_map_ch_ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberRes);
11697
11698   return offset;
11699 }
11700
11701
11702
11703 static int
11704 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_) {
11705   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11706                                        NULL);
11707
11708   return offset;
11709 }
11710
11711
11712
11713 static int
11714 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_) {
11715   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11716                                        NULL);
11717
11718   return offset;
11719 }
11720
11721
11722 static const ber_sequence_t gsm_map_ch_UU_Data_sequence[] = {
11723   { &hf_gsm_map_ch_uuIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUIndicator },
11724   { &hf_gsm_map_ch_uui      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUI },
11725   { &hf_gsm_map_ch_uusCFInteraction, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11726   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11727   { NULL, 0, 0, 0, NULL }
11728 };
11729
11730 int
11731 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_) {
11732   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11733                                    gsm_map_ch_UU_Data_sequence, hf_index, ett_gsm_map_ch_UU_Data);
11734
11735   return offset;
11736 }
11737
11738
11739 static const ber_sequence_t gsm_map_ch_ResumeCallHandlingArg_sequence[] = {
11740   { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
11741   { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11742   { &hf_gsm_map_ch_forwardingData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingData },
11743   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11744   { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
11745   { &hf_gsm_map_ch_o_CSI    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
11746   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11747   { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11748   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11749   { &hf_gsm_map_ch_uu_Data  , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UU_Data },
11750   { &hf_gsm_map_ch_allInformationSent, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11751   { &hf_gsm_map_ch_d_csi    , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
11752   { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
11753   { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11754   { &hf_gsm_map_ch_mtRoamingRetry, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11755   { NULL, 0, 0, 0, NULL }
11756 };
11757
11758 static int
11759 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_) {
11760   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11761                                    gsm_map_ch_ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingArg);
11762
11763   return offset;
11764 }
11765
11766
11767 static const ber_sequence_t gsm_map_ch_ResumeCallHandlingRes_sequence[] = {
11768   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11769   { NULL, 0, 0, 0, NULL }
11770 };
11771
11772 static int
11773 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_) {
11774   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11775                                    gsm_map_ch_ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingRes);
11776
11777   return offset;
11778 }
11779
11780
11781 static const value_string gsm_map_ch_ReportingState_vals[] = {
11782   {   0, "stopMonitoring" },
11783   {   1, "startMonitoring" },
11784   { 0, NULL }
11785 };
11786
11787
11788 static int
11789 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_) {
11790   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11791                                   NULL);
11792
11793   return offset;
11794 }
11795
11796
11797 static const ber_sequence_t gsm_map_ch_SetReportingStateArg_sequence[] = {
11798   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11799   { &hf_gsm_map_ch_lmsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
11800   { &hf_gsm_map_ch_ccbs_Monitoring, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ReportingState },
11801   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11802   { NULL, 0, 0, 0, NULL }
11803 };
11804
11805 static int
11806 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_) {
11807   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11808                                    gsm_map_ch_SetReportingStateArg_sequence, hf_index, ett_gsm_map_ch_SetReportingStateArg);
11809
11810   return offset;
11811 }
11812
11813
11814 static const value_string gsm_map_ch_CCBS_SubscriberStatus_vals[] = {
11815   {   0, "ccbsNotIdle" },
11816   {   1, "ccbsIdle" },
11817   {   2, "ccbsNotReachable" },
11818   { 0, NULL }
11819 };
11820
11821
11822 static int
11823 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_) {
11824   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11825                                   NULL);
11826
11827   return offset;
11828 }
11829
11830
11831 static const ber_sequence_t gsm_map_ch_SetReportingStateRes_sequence[] = {
11832   { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus },
11833   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11834   { NULL, 0, 0, 0, NULL }
11835 };
11836
11837 static int
11838 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_) {
11839   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11840                                    gsm_map_ch_SetReportingStateRes_sequence, hf_index, ett_gsm_map_ch_SetReportingStateRes);
11841
11842   return offset;
11843 }
11844
11845
11846 static const ber_sequence_t gsm_map_ch_EventReportData_sequence[] = {
11847   { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus },
11848   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11849   { NULL, 0, 0, 0, NULL }
11850 };
11851
11852 static int
11853 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_) {
11854   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11855                                    gsm_map_ch_EventReportData_sequence, hf_index, ett_gsm_map_ch_EventReportData);
11856
11857   return offset;
11858 }
11859
11860
11861 static const value_string gsm_map_ch_MonitoringMode_vals[] = {
11862   {   0, "a-side" },
11863   {   1, "b-side" },
11864   { 0, NULL }
11865 };
11866
11867
11868 static int
11869 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_) {
11870   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11871                                   NULL);
11872
11873   return offset;
11874 }
11875
11876
11877 static const value_string gsm_map_ch_CallOutcome_vals[] = {
11878   {   0, "success" },
11879   {   1, "failure" },
11880   {   2, "busy" },
11881   { 0, NULL }
11882 };
11883
11884
11885 static int
11886 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_) {
11887   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11888                                   NULL);
11889
11890   return offset;
11891 }
11892
11893
11894 static const ber_sequence_t gsm_map_ch_CallReportData_sequence[] = {
11895   { &hf_gsm_map_ch_monitoringMode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_MonitoringMode },
11896   { &hf_gsm_map_ch_callOutcome, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallOutcome },
11897   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11898   { NULL, 0, 0, 0, NULL }
11899 };
11900
11901 static int
11902 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_) {
11903   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11904                                    gsm_map_ch_CallReportData_sequence, hf_index, ett_gsm_map_ch_CallReportData);
11905
11906   return offset;
11907 }
11908
11909
11910 static const ber_sequence_t gsm_map_ch_StatusReportArg_sequence[] = {
11911   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11912   { &hf_gsm_map_ch_eventReportData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_EventReportData },
11913   { &hf_gsm_map_ch_callReportdata, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReportData },
11914   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11915   { NULL, 0, 0, 0, NULL }
11916 };
11917
11918 static int
11919 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_) {
11920   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11921                                    gsm_map_ch_StatusReportArg_sequence, hf_index, ett_gsm_map_ch_StatusReportArg);
11922
11923   return offset;
11924 }
11925
11926
11927 static const ber_sequence_t gsm_map_ch_StatusReportRes_sequence[] = {
11928   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11929   { NULL, 0, 0, 0, NULL }
11930 };
11931
11932 static int
11933 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_) {
11934   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11935                                    gsm_map_ch_StatusReportRes_sequence, hf_index, ett_gsm_map_ch_StatusReportRes);
11936
11937   return offset;
11938 }
11939
11940
11941 static const ber_sequence_t gsm_map_ch_RemoteUserFreeArg_sequence[] = {
11942   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11943   { &hf_gsm_map_ch_callInfo , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11944   { &hf_gsm_map_ch_ccbs_Feature, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
11945   { &hf_gsm_map_ch_translatedB_Number, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11946   { &hf_gsm_map_ch_replaceB_Number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11947   { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
11948   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11949   { NULL, 0, 0, 0, NULL }
11950 };
11951
11952 static int
11953 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_) {
11954   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11955                                    gsm_map_ch_RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeArg);
11956
11957   return offset;
11958 }
11959
11960
11961 static const value_string gsm_map_ch_RUF_Outcome_vals[] = {
11962   {   0, "accepted" },
11963   {   1, "rejected" },
11964   {   2, "noResponseFromFreeMS" },
11965   {   3, "noResponseFromBusyMS" },
11966   {   4, "udubFromFreeMS" },
11967   {   5, "udubFromBusyMS" },
11968   { 0, NULL }
11969 };
11970
11971
11972 static int
11973 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_) {
11974   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11975                                   NULL);
11976
11977   return offset;
11978 }
11979
11980
11981 static const ber_sequence_t gsm_map_ch_RemoteUserFreeRes_sequence[] = {
11982   { &hf_gsm_map_ch_ruf_Outcome, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_RUF_Outcome },
11983   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11984   { NULL, 0, 0, 0, NULL }
11985 };
11986
11987 static int
11988 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_) {
11989   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11990                                    gsm_map_ch_RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeRes);
11991
11992   return offset;
11993 }
11994
11995
11996 static const ber_sequence_t gsm_map_ch_IST_AlertArg_sequence[] = {
11997   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11998   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11999   { NULL, 0, 0, 0, NULL }
12000 };
12001
12002 static int
12003 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_) {
12004   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12005                                    gsm_map_ch_IST_AlertArg_sequence, hf_index, ett_gsm_map_ch_IST_AlertArg);
12006
12007   return offset;
12008 }
12009
12010
12011 static const value_string gsm_map_ch_CallTerminationIndicator_vals[] = {
12012   {   0, "terminateCallActivityReferred" },
12013   {   1, "terminateAllCallActivities" },
12014   { 0, NULL }
12015 };
12016
12017
12018 static int
12019 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_) {
12020   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12021                                   NULL);
12022
12023   return offset;
12024 }
12025
12026
12027 static const ber_sequence_t gsm_map_ch_IST_AlertRes_sequence[] = {
12028   { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
12029   { &hf_gsm_map_ch_istInformationWithdraw, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12030   { &hf_gsm_map_ch_callTerminationIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallTerminationIndicator },
12031   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12032   { NULL, 0, 0, 0, NULL }
12033 };
12034
12035 static int
12036 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_) {
12037   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12038                                    gsm_map_ch_IST_AlertRes_sequence, hf_index, ett_gsm_map_ch_IST_AlertRes);
12039
12040   return offset;
12041 }
12042
12043
12044 static const ber_sequence_t gsm_map_ch_IST_CommandArg_sequence[] = {
12045   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12046   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12047   { NULL, 0, 0, 0, NULL }
12048 };
12049
12050 static int
12051 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_) {
12052   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12053                                    gsm_map_ch_IST_CommandArg_sequence, hf_index, ett_gsm_map_ch_IST_CommandArg);
12054
12055   return offset;
12056 }
12057
12058
12059 static const ber_sequence_t gsm_map_ch_IST_CommandRes_sequence[] = {
12060   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12061   { NULL, 0, 0, 0, NULL }
12062 };
12063
12064 static int
12065 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_) {
12066   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12067                                    gsm_map_ch_IST_CommandRes_sequence, hf_index, ett_gsm_map_ch_IST_CommandRes);
12068
12069   return offset;
12070 }
12071
12072
12073 static const ber_sequence_t gsm_map_ch_ReleaseResourcesArg_sequence[] = {
12074   { &hf_gsm_map_ch_msrn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12075   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12076   { NULL, 0, 0, 0, NULL }
12077 };
12078
12079 static int
12080 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_) {
12081   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12082                                    gsm_map_ch_ReleaseResourcesArg_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesArg);
12083
12084   return offset;
12085 }
12086
12087
12088 static const ber_sequence_t gsm_map_ch_ReleaseResourcesRes_sequence[] = {
12089   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12090   { NULL, 0, 0, 0, NULL }
12091 };
12092
12093 static int
12094 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_) {
12095   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12096                                    gsm_map_ch_ReleaseResourcesRes_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesRes);
12097
12098   return offset;
12099 }
12100
12101
12102 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
12103
12104
12105 static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Arg_sequence[] = {
12106   { &hf_gsm_map_lcs_mlcNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12107   { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
12108   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12109   { NULL, 0, 0, 0, NULL }
12110 };
12111
12112 static int
12113 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_) {
12114   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12115                                    gsm_map_lcs_RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Arg);
12116
12117   return offset;
12118 }
12119
12120
12121
12122 static int
12123 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_) {
12124   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
12125
12126   return offset;
12127 }
12128
12129
12130 static const ber_sequence_t gsm_map_lcs_LCSLocationInfo_sequence[] = {
12131   { &hf_gsm_map_lcs_networkNode_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12132   { &hf_gsm_map_lcs_lmsi    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
12133   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12134   { &hf_gsm_map_lcs_gprsNodeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12135   { &hf_gsm_map_lcs_additional_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_Additional_Number },
12136   { &hf_gsm_map_lcs_supportedLCS_CapabilitySets, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
12137   { &hf_gsm_map_lcs_additional_LCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
12138   { NULL, 0, 0, 0, NULL }
12139 };
12140
12141 static int
12142 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_) {
12143   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12144                                    gsm_map_lcs_LCSLocationInfo_sequence, hf_index, ett_gsm_map_lcs_LCSLocationInfo);
12145
12146   return offset;
12147 }
12148
12149
12150 static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Res_sequence[] = {
12151   { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
12152   { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo },
12153   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12154   { &hf_gsm_map_lcs_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12155   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12156   { &hf_gsm_map_lcs_ppr_Address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12157   { &hf_gsm_map_lcs_additional_v_gmlc_Address, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12158   { NULL, 0, 0, 0, NULL }
12159 };
12160
12161 static int
12162 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_) {
12163   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12164                                    gsm_map_lcs_RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Res);
12165
12166   return offset;
12167 }
12168
12169
12170 static const value_string gsm_map_lcs_LocationEstimateType_vals[] = {
12171   {   0, "currentLocation" },
12172   {   1, "currentOrLastKnownLocation" },
12173   {   2, "initialLocation" },
12174   {   3, "activateDeferredLocation" },
12175   {   4, "cancelDeferredLocation" },
12176   {   5, "notificationVerificationOnly" },
12177   { 0, NULL }
12178 };
12179
12180
12181 static int
12182 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_) {
12183   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12184                                   NULL);
12185
12186   return offset;
12187 }
12188
12189
12190 static const asn_namedbit gsm_map_lcs_DeferredLocationEventType_bits[] = {
12191   {  0, &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable, -1, -1, "msAvailable", NULL },
12192   {  1, &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea, -1, -1, "enteringIntoArea", NULL },
12193   {  2, &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea, -1, -1, "leavingFromArea", NULL },
12194   {  3, &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea, -1, -1, "beingInsideArea", NULL },
12195   {  4, &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR, -1, -1, "periodicLDR", NULL },
12196   { 0, NULL, 0, 0, NULL, NULL }
12197 };
12198
12199 int
12200 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_) {
12201   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
12202                                     gsm_map_lcs_DeferredLocationEventType_bits, hf_index, ett_gsm_map_lcs_DeferredLocationEventType,
12203                                     NULL);
12204
12205   return offset;
12206 }
12207
12208
12209 static const ber_sequence_t gsm_map_lcs_LocationType_sequence[] = {
12210   { &hf_gsm_map_lcs_locationEstimateType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationEstimateType },
12211   { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
12212   { NULL, 0, 0, 0, NULL }
12213 };
12214
12215 int
12216 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_) {
12217   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12218                                    gsm_map_lcs_LocationType_sequence, hf_index, ett_gsm_map_lcs_LocationType);
12219
12220   return offset;
12221 }
12222
12223
12224 static const value_string gsm_map_lcs_LCSClientType_vals[] = {
12225   {   0, "emergencyServices" },
12226   {   1, "valueAddedServices" },
12227   {   2, "plmnOperatorServices" },
12228   {   3, "lawfulInterceptServices" },
12229   { 0, NULL }
12230 };
12231
12232
12233 static int
12234 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_) {
12235   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12236                                   NULL);
12237
12238   return offset;
12239 }
12240
12241
12242
12243 static int
12244 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_) {
12245   offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
12246
12247   return offset;
12248 }
12249
12250
12251 static const value_string gsm_map_lcs_LCS_FormatIndicator_vals[] = {
12252   {   0, "logicalName" },
12253   {   1, "e-mailAddress" },
12254   {   2, "msisdn" },
12255   {   3, "url" },
12256   {   4, "sipUrl" },
12257   { 0, NULL }
12258 };
12259
12260
12261 static int
12262 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_) {
12263   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12264                                   NULL);
12265
12266   return offset;
12267 }
12268
12269
12270 static const ber_sequence_t gsm_map_lcs_LCSClientName_sequence[] = {
12271   { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
12272   { &hf_gsm_map_lcs_nameString, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NameString },
12273   { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator },
12274   { NULL, 0, 0, 0, NULL }
12275 };
12276
12277 int
12278 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_) {
12279   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12280                                    gsm_map_lcs_LCSClientName_sequence, hf_index, ett_gsm_map_lcs_LCSClientName);
12281
12282   return offset;
12283 }
12284
12285
12286
12287 static int
12288 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_) {
12289   offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
12290
12291   return offset;
12292 }
12293
12294
12295 static const ber_sequence_t gsm_map_lcs_LCSRequestorID_sequence[] = {
12296   { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
12297   { &hf_gsm_map_lcs_requestorIDString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RequestorIDString },
12298   { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator },
12299   { NULL, 0, 0, 0, NULL }
12300 };
12301
12302 int
12303 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_) {
12304   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12305                                    gsm_map_lcs_LCSRequestorID_sequence, hf_index, ett_gsm_map_lcs_LCSRequestorID);
12306
12307   return offset;
12308 }
12309
12310
12311 static const ber_sequence_t gsm_map_lcs_LCS_ClientID_sequence[] = {
12312   { &hf_gsm_map_lcs_lcsClientType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientType },
12313   { &hf_gsm_map_lcs_lcsClientExternalID, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
12314   { &hf_gsm_map_lcs_lcsClientDialedByMS, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
12315   { &hf_gsm_map_lcs_lcsClientInternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientInternalID },
12316   { &hf_gsm_map_lcs_lcsClientName, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName },
12317   { &hf_gsm_map_lcs_lcsAPN  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
12318   { &hf_gsm_map_lcs_lcsRequestorID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID },
12319   { NULL, 0, 0, 0, NULL }
12320 };
12321
12322 static int
12323 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_) {
12324   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12325                                    gsm_map_lcs_LCS_ClientID_sequence, hf_index, ett_gsm_map_lcs_LCS_ClientID);
12326
12327   return offset;
12328 }
12329
12330
12331
12332 static int
12333 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_) {
12334   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12335                                        NULL);
12336
12337   return offset;
12338 }
12339
12340
12341
12342 static int
12343 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_) {
12344   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12345                                        NULL);
12346
12347   return offset;
12348 }
12349
12350
12351
12352 static int
12353 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_) {
12354   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12355                                        NULL);
12356
12357   return offset;
12358 }
12359
12360
12361 static const value_string gsm_map_lcs_ResponseTimeCategory_vals[] = {
12362   {   0, "lowdelay" },
12363   {   1, "delaytolerant" },
12364   { 0, NULL }
12365 };
12366
12367
12368 static int
12369 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_) {
12370   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12371                                   NULL);
12372
12373   return offset;
12374 }
12375
12376
12377 static const ber_sequence_t gsm_map_lcs_ResponseTime_sequence[] = {
12378   { &hf_gsm_map_lcs_responseTimeCategory, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ResponseTimeCategory },
12379   { NULL, 0, 0, 0, NULL }
12380 };
12381
12382 static int
12383 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_) {
12384   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12385                                    gsm_map_lcs_ResponseTime_sequence, hf_index, ett_gsm_map_lcs_ResponseTime);
12386
12387   return offset;
12388 }
12389
12390
12391 static const ber_sequence_t gsm_map_lcs_LCS_QoS_sequence[] = {
12392   { &hf_gsm_map_lcs_horizontal_accuracy, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Horizontal_Accuracy },
12393   { &hf_gsm_map_lcs_verticalCoordinateRequest, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12394   { &hf_gsm_map_lcs_vertical_accuracy, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Vertical_Accuracy },
12395   { &hf_gsm_map_lcs_responseTime, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ResponseTime },
12396   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12397   { &hf_gsm_map_lcs_velocityRequest, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12398   { NULL, 0, 0, 0, NULL }
12399 };
12400
12401 int
12402 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_) {
12403   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12404                                    gsm_map_lcs_LCS_QoS_sequence, hf_index, ett_gsm_map_lcs_LCS_QoS);
12405
12406   return offset;
12407 }
12408
12409
12410 static const asn_namedbit gsm_map_lcs_SupportedGADShapes_bits[] = {
12411   {  0, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint, -1, -1, "ellipsoidPoint", NULL },
12412   {  1, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle, -1, -1, "ellipsoidPointWithUncertaintyCircle", NULL },
12413   {  2, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse, -1, -1, "ellipsoidPointWithUncertaintyEllipse", NULL },
12414   {  3, &hf_gsm_map_lcs_SupportedGADShapes_polygon, -1, -1, "polygon", NULL },
12415   {  4, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude, -1, -1, "ellipsoidPointWithAltitude", NULL },
12416   {  5, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid, -1, -1, "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", NULL },
12417   {  6, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc, -1, -1, "ellipsoidArc", NULL },
12418   { 0, NULL, 0, 0, NULL, NULL }
12419 };
12420
12421 int
12422 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_) {
12423   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
12424                                     gsm_map_lcs_SupportedGADShapes_bits, hf_index, ett_gsm_map_lcs_SupportedGADShapes,
12425                                     NULL);
12426
12427   return offset;
12428 }
12429
12430
12431
12432 int
12433 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_) {
12434   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12435                                        NULL);
12436
12437   return offset;
12438 }
12439
12440
12441
12442 static int
12443 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_) {
12444   offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
12445
12446   return offset;
12447 }
12448
12449
12450 static const ber_sequence_t gsm_map_lcs_LCSCodeword_sequence[] = {
12451   { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
12452   { &hf_gsm_map_lcs_lcsCodewordString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodewordString },
12453   { NULL, 0, 0, 0, NULL }
12454 };
12455
12456 int
12457 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_) {
12458   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12459                                    gsm_map_lcs_LCSCodeword_sequence, hf_index, ett_gsm_map_lcs_LCSCodeword);
12460
12461   return offset;
12462 }
12463
12464
12465 static const value_string gsm_map_lcs_PrivacyCheckRelatedAction_vals[] = {
12466   {   0, "allowedWithoutNotification" },
12467   {   1, "allowedWithNotification" },
12468   {   2, "allowedIfNoResponse" },
12469   {   3, "restrictedIfNoResponse" },
12470   {   4, "notAllowed" },
12471   { 0, NULL }
12472 };
12473
12474
12475 static int
12476 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_) {
12477   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12478                                   NULL);
12479
12480   return offset;
12481 }
12482
12483
12484 static const ber_sequence_t gsm_map_lcs_LCS_PrivacyCheck_sequence[] = {
12485   { &hf_gsm_map_lcs_callSessionUnrelated, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction },
12486   { &hf_gsm_map_lcs_callSessionRelated, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction },
12487   { NULL, 0, 0, 0, NULL }
12488 };
12489
12490 static int
12491 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_) {
12492   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12493                                    gsm_map_lcs_LCS_PrivacyCheck_sequence, hf_index, ett_gsm_map_lcs_LCS_PrivacyCheck);
12494
12495   return offset;
12496 }
12497
12498
12499 static const value_string gsm_map_lcs_AreaType_vals[] = {
12500   {   0, "countryCode" },
12501   {   1, "plmnId" },
12502   {   2, "locationAreaId" },
12503   {   3, "routingAreaId" },
12504   {   4, "cellGlobalId" },
12505   {   5, "utranCellId" },
12506   { 0, NULL }
12507 };
12508
12509
12510 static int
12511 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_) {
12512   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12513                                   NULL);
12514
12515   return offset;
12516 }
12517
12518
12519
12520 static int
12521 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_) {
12522   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12523                                        NULL);
12524
12525   return offset;
12526 }
12527
12528
12529 static const ber_sequence_t gsm_map_lcs_Area_sequence[] = {
12530   { &hf_gsm_map_lcs_areaType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaType },
12531   { &hf_gsm_map_lcs_areaIdentification, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaIdentification },
12532   { NULL, 0, 0, 0, NULL }
12533 };
12534
12535 static int
12536 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_) {
12537   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12538                                    gsm_map_lcs_Area_sequence, hf_index, ett_gsm_map_lcs_Area);
12539
12540   return offset;
12541 }
12542
12543
12544 static const ber_sequence_t gsm_map_lcs_AreaList_sequence_of[1] = {
12545   { &hf_gsm_map_lcs_AreaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Area },
12546 };
12547
12548 static int
12549 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_) {
12550   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12551                                       gsm_map_lcs_AreaList_sequence_of, hf_index, ett_gsm_map_lcs_AreaList);
12552
12553   return offset;
12554 }
12555
12556
12557 static const ber_sequence_t gsm_map_lcs_AreaDefinition_sequence[] = {
12558   { &hf_gsm_map_lcs_areaList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaList },
12559   { NULL, 0, 0, 0, NULL }
12560 };
12561
12562 static int
12563 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_) {
12564   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12565                                    gsm_map_lcs_AreaDefinition_sequence, hf_index, ett_gsm_map_lcs_AreaDefinition);
12566
12567   return offset;
12568 }
12569
12570
12571 static const value_string gsm_map_lcs_OccurrenceInfo_vals[] = {
12572   {   0, "oneTimeEvent" },
12573   {   1, "multipleTimeEvent" },
12574   { 0, NULL }
12575 };
12576
12577
12578 static int
12579 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_) {
12580   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12581                                   NULL);
12582
12583   return offset;
12584 }
12585
12586
12587
12588 static int
12589 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_) {
12590   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12591                                                 NULL);
12592
12593   return offset;
12594 }
12595
12596
12597 static const ber_sequence_t gsm_map_lcs_AreaEventInfo_sequence[] = {
12598   { &hf_gsm_map_lcs_areaDefinition, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaDefinition },
12599   { &hf_gsm_map_lcs_occurrenceInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_OccurrenceInfo },
12600   { &hf_gsm_map_lcs_intervalTime, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_IntervalTime },
12601   { NULL, 0, 0, 0, NULL }
12602 };
12603
12604 int
12605 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_) {
12606   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12607                                    gsm_map_lcs_AreaEventInfo_sequence, hf_index, ett_gsm_map_lcs_AreaEventInfo);
12608
12609   return offset;
12610 }
12611
12612
12613
12614 static int
12615 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_) {
12616   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12617                                                 NULL);
12618
12619   return offset;
12620 }
12621
12622
12623
12624 static int
12625 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_) {
12626   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12627                                                 NULL);
12628
12629   return offset;
12630 }
12631
12632
12633 static const ber_sequence_t gsm_map_lcs_PeriodicLDRInfo_sequence[] = {
12634   { &hf_gsm_map_lcs_reportingAmount, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingAmount },
12635   { &hf_gsm_map_lcs_reportingInterval, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingInterval },
12636   { NULL, 0, 0, 0, NULL }
12637 };
12638
12639 static int
12640 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_) {
12641   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12642                                    gsm_map_lcs_PeriodicLDRInfo_sequence, hf_index, ett_gsm_map_lcs_PeriodicLDRInfo);
12643
12644   return offset;
12645 }
12646
12647
12648 static const value_string gsm_map_lcs_RAN_Technology_vals[] = {
12649   {   0, "gsm" },
12650   {   1, "umts" },
12651   { 0, NULL }
12652 };
12653
12654
12655 static int
12656 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_) {
12657   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12658                                   NULL);
12659
12660   return offset;
12661 }
12662
12663
12664 static const ber_sequence_t gsm_map_lcs_ReportingPLMN_sequence[] = {
12665   { &hf_gsm_map_lcs_plmn_Id , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
12666   { &hf_gsm_map_lcs_ran_Technology, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RAN_Technology },
12667   { &hf_gsm_map_lcs_ran_PeriodicLocationSupport, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12668   { NULL, 0, 0, 0, NULL }
12669 };
12670
12671 static int
12672 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_) {
12673   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12674                                    gsm_map_lcs_ReportingPLMN_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMN);
12675
12676   return offset;
12677 }
12678
12679
12680 static const ber_sequence_t gsm_map_lcs_PLMNList_sequence_of[1] = {
12681   { &hf_gsm_map_lcs_PLMNList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingPLMN },
12682 };
12683
12684 static int
12685 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_) {
12686   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12687                                       gsm_map_lcs_PLMNList_sequence_of, hf_index, ett_gsm_map_lcs_PLMNList);
12688
12689   return offset;
12690 }
12691
12692
12693 static const ber_sequence_t gsm_map_lcs_ReportingPLMNList_sequence[] = {
12694   { &hf_gsm_map_lcs_plmn_ListPrioritized, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12695   { &hf_gsm_map_lcs_plmn_List, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PLMNList },
12696   { NULL, 0, 0, 0, NULL }
12697 };
12698
12699 static int
12700 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_) {
12701   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12702                                    gsm_map_lcs_ReportingPLMNList_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMNList);
12703
12704   return offset;
12705 }
12706
12707
12708 static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Arg_sequence[] = {
12709   { &hf_gsm_map_lcs_locationType, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LocationType },
12710   { &hf_gsm_map_lcs_mlc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12711   { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ClientID },
12712   { &hf_gsm_map_lcs_privacyOverride, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12713   { &hf_gsm_map_lcs_imsi    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12714   { &hf_gsm_map_lcs_msisdn  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12715   { &hf_gsm_map_lcs_lmsi    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
12716   { &hf_gsm_map_lcs_imei    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
12717   { &hf_gsm_map_lcs_lcs_Priority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_Priority },
12718   { &hf_gsm_map_lcs_lcs_QoS , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
12719   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12720   { &hf_gsm_map_lcs_supportedGADShapes, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
12721   { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
12722   { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
12723   { &hf_gsm_map_lcs_lcsCodeword, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword },
12724   { &hf_gsm_map_lcs_lcs_PrivacyCheck, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_PrivacyCheck },
12725   { &hf_gsm_map_lcs_areaEventInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo },
12726   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12727   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12728   { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
12729   { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
12730   { NULL, 0, 0, 0, NULL }
12731 };
12732
12733 static int
12734 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_) {
12735   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12736                                    gsm_map_lcs_ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Arg);
12737
12738   return offset;
12739 }
12740
12741
12742
12743 int
12744 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_) {
12745 #line 677 "gsmmap.cnf"
12746     tvbuff_t    *parameter_tvb; 
12747         proto_tree      *subtree;
12748
12749   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12750                                        &parameter_tvb);
12751  
12752
12753         if (!parameter_tvb) 
12754                 return offset; 
12755
12756     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GeographicalInformation);
12757         dissect_geographical_description(parameter_tvb, actx->pinfo, subtree); 
12758
12759
12760
12761   return offset;
12762 }
12763
12764
12765
12766 int
12767 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_) {
12768   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12769                                        NULL);
12770
12771   return offset;
12772 }
12773
12774
12775
12776 static int
12777 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_) {
12778   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12779                                        NULL);
12780
12781   return offset;
12782 }
12783
12784
12785
12786 static int
12787 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_) {
12788   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12789                                        NULL);
12790
12791   return offset;
12792 }
12793
12794
12795 static const value_string gsm_map_lcs_AccuracyFulfilmentIndicator_vals[] = {
12796   {   0, "requestedAccuracyFulfilled" },
12797   {   1, "requestedAccuracyNotFulfilled" },
12798   { 0, NULL }
12799 };
12800
12801
12802 static int
12803 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_) {
12804   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12805                                   NULL);
12806
12807   return offset;
12808 }
12809
12810
12811
12812 int
12813 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_) {
12814   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12815                                        NULL);
12816
12817   return offset;
12818 }
12819
12820
12821 static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Res_sequence[] = {
12822   { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
12823   { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
12824   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12825   { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
12826   { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12827   { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation },
12828   { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo },
12829   { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
12830   { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12831   { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator },
12832   { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
12833   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12834   { NULL, 0, 0, 0, NULL }
12835 };
12836
12837 static int
12838 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_) {
12839   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12840                                    gsm_map_lcs_ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Res);
12841
12842   return offset;
12843 }
12844
12845
12846 static const value_string gsm_map_lcs_LCS_Event_vals[] = {
12847   {   0, "emergencyCallOrigination" },
12848   {   1, "emergencyCallRelease" },
12849   {   2, "mo-lr" },
12850   {   3, "deferredmt-lrResponse" },
12851   {   4, "deferredmo-lrTTTPInitiation" },
12852   { 0, NULL }
12853 };
12854
12855
12856 static int
12857 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_) {
12858   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12859                                   NULL);
12860
12861   return offset;
12862 }
12863
12864
12865 static const value_string gsm_map_lcs_TerminationCause_vals[] = {
12866   {   0, "normal" },
12867   {   1, "errorundefined" },
12868   {   2, "internalTimeout" },
12869   {   3, "congestion" },
12870   {   4, "mt-lrRestart" },
12871   {   5, "privacyViolation" },
12872   {   6, "shapeOfLocationEstimateNotSupported" },
12873   {   7, "subscriberTermination" },
12874   {   8, "uETermination" },
12875   {   9, "networkTermination" },
12876   { 0, NULL }
12877 };
12878
12879
12880 static int
12881 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_) {
12882   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12883                                   NULL);
12884
12885   return offset;
12886 }
12887
12888
12889 static const ber_sequence_t gsm_map_lcs_Deferredmt_lrData_sequence[] = {
12890   { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
12891   { &hf_gsm_map_lcs_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_TerminationCause },
12892   { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo },
12893   { NULL, 0, 0, 0, NULL }
12894 };
12895
12896 static int
12897 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_) {
12898   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12899                                    gsm_map_lcs_Deferredmt_lrData_sequence, hf_index, ett_gsm_map_lcs_Deferredmt_lrData);
12900
12901   return offset;
12902 }
12903
12904
12905
12906 static int
12907 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_) {
12908   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12909                                                 NULL);
12910
12911   return offset;
12912 }
12913
12914
12915 static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Arg_sequence[] = {
12916   { &hf_gsm_map_lcs_lcs_Event, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_Event },
12917   { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_ClientID },
12918   { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCSLocationInfo },
12919   { &hf_gsm_map_lcs_msisdn  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12920   { &hf_gsm_map_lcs_imsi    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12921   { &hf_gsm_map_lcs_imei    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
12922   { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12923   { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12924   { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
12925   { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
12926   { &hf_gsm_map_lcs_slr_ArgExtensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_ArgExtensionContainer },
12927   { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
12928   { &hf_gsm_map_lcs_deferredmt_lrData, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Deferredmt_lrData },
12929   { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
12930   { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation },
12931   { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo },
12932   { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
12933   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12934   { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
12935   { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12936   { &hf_gsm_map_lcs_pseudonymIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12937   { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator },
12938   { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
12939   { &hf_gsm_map_lcs_sequenceNumber, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
12940   { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
12941   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12942   { NULL, 0, 0, 0, NULL }
12943 };
12944
12945 static int
12946 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_) {
12947   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12948                                    gsm_map_lcs_SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Arg);
12949
12950   return offset;
12951 }
12952
12953
12954 static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Res_sequence[] = {
12955   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12956   { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12957   { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12958   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12959   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12960   { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
12961   { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
12962   { NULL, 0, 0, 0, NULL }
12963 };
12964
12965 static int
12966 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_) {
12967   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12968                                    gsm_map_lcs_SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Res);
12969
12970   return offset;
12971 }
12972
12973
12974 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
12975
12976
12977
12978 static int
12979 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_) {
12980   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12981                                        NULL);
12982
12983   return offset;
12984 }
12985
12986
12987
12988 static int
12989 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_) {
12990   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12991                                        NULL);
12992
12993   return offset;
12994 }
12995
12996
12997
12998 static int
12999 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_) {
13000   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13001                                                 NULL);
13002
13003   return offset;
13004 }
13005
13006
13007
13008 static int
13009 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_) {
13010   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
13011
13012   return offset;
13013 }
13014
13015
13016
13017 static int
13018 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_) {
13019   offset = dissect_ber_octet_string(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_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_) {
13029   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13030                                        NULL);
13031
13032   return offset;
13033 }
13034
13035
13036 static const ber_sequence_t gsm_map_gr_PrepareGroupCallArg_sequence[] = {
13037   { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
13038   { &hf_gsm_map_gr_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference },
13039   { &hf_gsm_map_gr_codec_Info, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CODEC_Info },
13040   { &hf_gsm_map_gr_cipheringAlgorithm, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CipheringAlgorithm },
13041   { &hf_gsm_map_gr_groupKeyNumber_Vk_Id, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_GroupKeyNumber },
13042   { &hf_gsm_map_gr_groupKey , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc },
13043   { &hf_gsm_map_gr_priority , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
13044   { &hf_gsm_map_gr_uplinkFree, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13045   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13046   { &hf_gsm_map_gr_vstk     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK },
13047   { &hf_gsm_map_gr_vstk_rand, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK_RAND },
13048   { &hf_gsm_map_gr_talkerChannelParameter, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13049   { NULL, 0, 0, 0, NULL }
13050 };
13051
13052 static int
13053 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_) {
13054   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13055                                    gsm_map_gr_PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallArg);
13056
13057   return offset;
13058 }
13059
13060
13061 static const ber_sequence_t gsm_map_gr_PrepareGroupCallRes_sequence[] = {
13062   { &hf_gsm_map_gr_groupCallNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
13063   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13064   { NULL, 0, 0, 0, NULL }
13065 };
13066
13067 static int
13068 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_) {
13069   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13070                                    gsm_map_gr_PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallRes);
13071
13072   return offset;
13073 }
13074
13075
13076 static const value_string gsm_map_gr_TalkerPriority_vals[] = {
13077   {   0, "normal" },
13078   {   1, "privileged" },
13079   {   2, "emergency" },
13080   { 0, NULL }
13081 };
13082
13083
13084 static int
13085 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_) {
13086   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13087                                   NULL);
13088
13089   return offset;
13090 }
13091
13092
13093 static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalArg_sequence[] = {
13094   { &hf_gsm_map_gr_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
13095   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13096   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
13097   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
13098   { NULL, 0, 0, 0, NULL }
13099 };
13100
13101 static int
13102 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_) {
13103   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13104                                    gsm_map_gr_SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalArg);
13105
13106   return offset;
13107 }
13108
13109
13110 static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalRes_sequence[] = {
13111   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13112   { NULL, 0, 0, 0, NULL }
13113 };
13114
13115 static int
13116 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_) {
13117   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13118                                    gsm_map_gr_SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalRes);
13119
13120   return offset;
13121 }
13122
13123
13124 static const ber_sequence_t gsm_map_gr_StateAttributes_sequence[] = {
13125   { &hf_gsm_map_gr_downlinkAttached, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13126   { &hf_gsm_map_gr_uplinkAttached, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13127   { &hf_gsm_map_gr_dualCommunication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13128   { &hf_gsm_map_gr_callOriginator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13129   { NULL, 0, 0, 0, NULL }
13130 };
13131
13132 static int
13133 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_) {
13134   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13135                                    gsm_map_gr_StateAttributes_sequence, hf_index, ett_gsm_map_gr_StateAttributes);
13136
13137   return offset;
13138 }
13139
13140
13141 static const ber_sequence_t gsm_map_gr_ForwardGroupCallSignallingArg_sequence[] = {
13142   { &hf_gsm_map_gr_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
13143   { &hf_gsm_map_gr_uplinkRequestAck, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13144   { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13145   { &hf_gsm_map_gr_uplinkRejectCommand, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13146   { &hf_gsm_map_gr_uplinkSeizedCommand, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13147   { &hf_gsm_map_gr_uplinkReleaseCommand, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13148   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13149   { &hf_gsm_map_gr_stateAttributes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_StateAttributes },
13150   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
13151   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
13152   { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13153   { &hf_gsm_map_gr_sm_RP_UI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
13154   { &hf_gsm_map_gr_an_APDU  , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
13155   { NULL, 0, 0, 0, NULL }
13156 };
13157
13158 static int
13159 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_) {
13160   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13161                                    gsm_map_gr_ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ForwardGroupCallSignallingArg);
13162
13163   return offset;
13164 }
13165
13166
13167 static const ber_sequence_t gsm_map_gr_ProcessGroupCallSignallingArg_sequence[] = {
13168   { &hf_gsm_map_gr_uplinkRequest, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13169   { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13170   { &hf_gsm_map_gr_releaseGroupCall, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13171   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13172   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
13173   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
13174   { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13175   { &hf_gsm_map_gr_an_APDU  , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
13176   { NULL, 0, 0, 0, NULL }
13177 };
13178
13179 static int
13180 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_) {
13181   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13182                                    gsm_map_gr_ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ProcessGroupCallSignallingArg);
13183
13184   return offset;
13185 }
13186
13187
13188 static const value_string gsm_map_gr_RequestedInfo_vals[] = {
13189   {   0, "anchorMSC-AddressAndASCI-CallReference" },
13190   {   1, "imsiAndAdditionalInfoAndAdditionalSubscription" },
13191   { 0, NULL }
13192 };
13193
13194
13195 static int
13196 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_) {
13197   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13198                                   NULL);
13199
13200   return offset;
13201 }
13202
13203
13204 static const ber_sequence_t gsm_map_gr_SendGroupCallInfoArg_sequence[] = {
13205   { &hf_gsm_map_gr_requestedInfo, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_RequestedInfo },
13206   { &hf_gsm_map_gr_groupId  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Long_GroupId },
13207   { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
13208   { &hf_gsm_map_gr_cellId   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
13209   { &hf_gsm_map_gr_imsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13210   { &hf_gsm_map_gr_tmsi     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TMSI },
13211   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
13212   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
13213   { &hf_gsm_map_gr_cksn     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Cksn },
13214   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13215   { NULL, 0, 0, 0, NULL }
13216 };
13217
13218 static int
13219 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_) {
13220   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13221                                    gsm_map_gr_SendGroupCallInfoArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoArg);
13222
13223   return offset;
13224 }
13225
13226
13227 static const ber_sequence_t gsm_map_gr_SendGroupCallInfoRes_sequence[] = {
13228   { &hf_gsm_map_gr_anchorMSC_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13229   { &hf_gsm_map_gr_asciCallReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference },
13230   { &hf_gsm_map_gr_imsi     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13231   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
13232   { &hf_gsm_map_gr_additionalSubscriptions, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalSubscriptions },
13233   { &hf_gsm_map_gr_kc       , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc },
13234   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13235   { NULL, 0, 0, 0, NULL }
13236 };
13237
13238 static int
13239 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_) {
13240   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13241                                    gsm_map_gr_SendGroupCallInfoRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoRes);
13242
13243   return offset;
13244 }
13245
13246
13247 /* --- Module MAP-DialogueInformation --- --- ---                             */
13248
13249
13250 static const ber_sequence_t gsm_map_dialogue_MAP_OpenInfo_sequence[] = {
13251   { &hf_gsm_map_dialogue_destinationReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
13252   { &hf_gsm_map_dialogue_originationReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
13253   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13254   { NULL, 0, 0, 0, NULL }
13255 };
13256
13257 static int
13258 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_) {
13259   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13260                                    gsm_map_dialogue_MAP_OpenInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_OpenInfo);
13261
13262   return offset;
13263 }
13264
13265
13266 static const ber_sequence_t gsm_map_dialogue_MAP_AcceptInfo_sequence[] = {
13267   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13268   { NULL, 0, 0, 0, NULL }
13269 };
13270
13271 static int
13272 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_) {
13273   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13274                                    gsm_map_dialogue_MAP_AcceptInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_AcceptInfo);
13275
13276   return offset;
13277 }
13278
13279
13280 static const ber_sequence_t gsm_map_dialogue_MAP_CloseInfo_sequence[] = {
13281   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13282   { NULL, 0, 0, 0, NULL }
13283 };
13284
13285 static int
13286 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_) {
13287   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13288                                    gsm_map_dialogue_MAP_CloseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_CloseInfo);
13289
13290   return offset;
13291 }
13292
13293
13294 static const value_string gsm_map_dialogue_Reason_vals[] = {
13295   {   0, "noReasonGiven" },
13296   {   1, "invalidDestinationReference" },
13297   {   2, "invalidOriginatingReference" },
13298   { 0, NULL }
13299 };
13300
13301
13302 static int
13303 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_) {
13304   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13305                                   NULL);
13306
13307   return offset;
13308 }
13309
13310
13311
13312 static int
13313 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_) {
13314   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
13315
13316   return offset;
13317 }
13318
13319
13320 static const ber_sequence_t gsm_map_dialogue_MAP_RefuseInfo_sequence[] = {
13321   { &hf_gsm_map_dialogue_reason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_Reason },
13322   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13323   { &hf_gsm_map_dialogue_alternativeApplicationContext, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_OBJECT_IDENTIFIER },
13324   { NULL, 0, 0, 0, NULL }
13325 };
13326
13327 static int
13328 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_) {
13329   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13330                                    gsm_map_dialogue_MAP_RefuseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_RefuseInfo);
13331
13332   return offset;
13333 }
13334
13335
13336
13337 static int
13338 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_) {
13339   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
13340
13341   return offset;
13342 }
13343
13344
13345 static const value_string gsm_map_dialogue_ResourceUnavailableReason_vals[] = {
13346   {   0, "shortTermResourceLimitation" },
13347   {   1, "longTermResourceLimitation" },
13348   { 0, NULL }
13349 };
13350
13351
13352 static int
13353 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_) {
13354   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13355                                   NULL);
13356
13357   return offset;
13358 }
13359
13360
13361 static const value_string gsm_map_dialogue_ProcedureCancellationReason_vals[] = {
13362   {   0, "handoverCancellation" },
13363   {   1, "radioChannelRelease" },
13364   {   2, "networkPathRelease" },
13365   {   3, "callRelease" },
13366   {   4, "associatedProcedureFailure" },
13367   {   5, "tandemDialogueRelease" },
13368   {   6, "remoteOperationsFailure" },
13369   { 0, NULL }
13370 };
13371
13372
13373 static int
13374 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_) {
13375   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13376                                   NULL);
13377
13378   return offset;
13379 }
13380
13381
13382 static const value_string gsm_map_dialogue_MAP_UserAbortChoice_vals[] = {
13383   {   0, "userSpecificReason" },
13384   {   1, "userResourceLimitation" },
13385   {   2, "resourceUnavailable" },
13386   {   3, "applicationProcedureCancellation" },
13387   { 0, NULL }
13388 };
13389
13390 static const ber_choice_t gsm_map_dialogue_MAP_UserAbortChoice_choice[] = {
13391   {   0, &hf_gsm_map_dialogue_userSpecificReason, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL },
13392   {   1, &hf_gsm_map_dialogue_userResourceLimitation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL },
13393   {   2, &hf_gsm_map_dialogue_resourceUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ResourceUnavailableReason },
13394   {   3, &hf_gsm_map_dialogue_applicationProcedureCancellation, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ProcedureCancellationReason },
13395   { 0, NULL, 0, 0, 0, NULL }
13396 };
13397
13398 static int
13399 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_) {
13400   offset = dissect_ber_choice(actx, tree, tvb, offset,
13401                                  gsm_map_dialogue_MAP_UserAbortChoice_choice, hf_index, ett_gsm_map_dialogue_MAP_UserAbortChoice,
13402                                  NULL);
13403
13404   return offset;
13405 }
13406
13407
13408 static const ber_sequence_t gsm_map_dialogue_MAP_UserAbortInfo_sequence[] = {
13409   { &hf_gsm_map_dialogue_map_UserAbortChoice, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_dialogue_MAP_UserAbortChoice },
13410   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13411   { NULL, 0, 0, 0, NULL }
13412 };
13413
13414 static int
13415 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_) {
13416   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13417                                    gsm_map_dialogue_MAP_UserAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_UserAbortInfo);
13418
13419   return offset;
13420 }
13421
13422
13423 static const value_string gsm_map_dialogue_MAP_ProviderAbortReason_vals[] = {
13424   {   0, "abnormalDialogue" },
13425   {   1, "invalidPDU" },
13426   { 0, NULL }
13427 };
13428
13429
13430 static int
13431 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_) {
13432   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13433                                   NULL);
13434
13435   return offset;
13436 }
13437
13438
13439 static const ber_sequence_t gsm_map_dialogue_MAP_ProviderAbortInfo_sequence[] = {
13440   { &hf_gsm_map_dialogue_map_ProviderAbortReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortReason },
13441   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13442   { NULL, 0, 0, 0, NULL }
13443 };
13444
13445 static int
13446 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_) {
13447   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13448                                    gsm_map_dialogue_MAP_ProviderAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_ProviderAbortInfo);
13449
13450   return offset;
13451 }
13452
13453
13454 static const value_string gsm_map_dialogue_MAP_DialoguePDU_vals[] = {
13455   {   0, "map-open" },
13456   {   1, "map-accept" },
13457   {   2, "map-close" },
13458   {   3, "map-refuse" },
13459   {   4, "map-userAbort" },
13460   {   5, "map-providerAbort" },
13461   { 0, NULL }
13462 };
13463
13464 static const ber_choice_t gsm_map_dialogue_MAP_DialoguePDU_choice[] = {
13465   {   0, &hf_gsm_map_dialogue_map_open, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_OpenInfo },
13466   {   1, &hf_gsm_map_dialogue_map_accept, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_AcceptInfo },
13467   {   2, &hf_gsm_map_dialogue_map_close, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_CloseInfo },
13468   {   3, &hf_gsm_map_dialogue_map_refuse, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_RefuseInfo },
13469   {   4, &hf_gsm_map_dialogue_map_userAbort, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_UserAbortInfo },
13470   {   5, &hf_gsm_map_dialogue_map_providerAbort, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortInfo },
13471   { 0, NULL, 0, 0, 0, NULL }
13472 };
13473
13474 static int
13475 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_) {
13476   offset = dissect_ber_choice(actx, tree, tvb, offset,
13477                                  gsm_map_dialogue_MAP_DialoguePDU_choice, hf_index, ett_gsm_map_dialogue_MAP_DialoguePDU,
13478                                  NULL);
13479
13480   return offset;
13481 }
13482
13483 /*--- PDUs ---*/
13484
13485 static void dissect_gsm_map_dialogue_MAP_DialoguePDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
13486   asn1_ctx_t asn1_ctx;
13487   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
13488   dissect_gsm_map_dialogue_MAP_DialoguePDU(FALSE, tvb, 0, &asn1_ctx, tree, hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU);
13489 }
13490
13491
13492 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
13493
13494
13495 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
13496
13497
13498 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
13499
13500
13501 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
13502
13503
13504 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
13505
13506
13507 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
13508
13509
13510 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
13511
13512
13513 /* --- Module MAP-Errors --- --- ---                                          */
13514
13515
13516 /* --- Module MAP-Protocol --- --- ---                                        */
13517
13518
13519 /* --- Module DummyMAP --- --- ---                                            */
13520
13521
13522
13523 static int
13524 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_) {
13525   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13526                                                 NULL);
13527
13528   return offset;
13529 }
13530
13531
13532 static const value_string gsm_old_GSMMAPOperationLocalvalue_vals[] = {
13533   {   2, "updateLocation" },
13534   {   3, "cancelLocation" },
13535   {   4, "provideRoamingNumber" },
13536   {   5, "noteSubscriberDataModified" },
13537   {   6, "resumeCallHandling" },
13538   {   7, "insertSubscriberData" },
13539   {   8, "deleteSubscriberData" },
13540   {   9, "sendParameters" },
13541   {  10, "registerSS" },
13542   {  11, "eraseSS" },
13543   {  12, "activateSS" },
13544   {  13, "deactivateSS" },
13545   {  14, "interrogateSS" },
13546   {  15, "authenticationFailureReport" },
13547   {  16, "notifySS" },
13548   {  17, "registerPassword" },
13549   {  18, "getPassword" },
13550   {  19, "processUnstructuredSS-Data" },
13551   {  20, "releaseResources" },
13552   {  21, "mt-ForwardSM-VGCS" },
13553   {  22, "sendRoutingInfo" },
13554   {  23, "updateGprsLocation" },
13555   {  24, "sendRoutingInfoForGprs" },
13556   {  25, "failureReport" },
13557   {  26, "noteMsPresentForGprs" },
13558   {  28, "performHandover" },
13559   {  29, "sendEndSignal" },
13560   {  30, "performSubsequentHandover" },
13561   {  31, "provideSIWFSNumber" },
13562   {  32, "sIWFSSignallingModify" },
13563   {  33, "processAccessSignalling" },
13564   {  34, "forwardAccessSignalling" },
13565   {  35, "noteInternalHandover" },
13566   {  37, "reset" },
13567   {  38, "forwardCheckSS" },
13568   {  39, "prepareGroupCall" },
13569   {  40, "sendGroupCallEndSignal" },
13570   {  41, "processGroupCallSignalling" },
13571   {  42, "forwardGroupCallSignalling" },
13572   {  43, "checkIMEI" },
13573   {  44, "mt-forwardSM" },
13574   {  45, "sendRoutingInfoForSM" },
13575   {  46, "mo-forwardSM" },
13576   {  47, "reportSM-DeliveryStatus" },
13577   {  48, "noteSubscriberPresent" },
13578   {  49, "alertServiceCentreWithoutResult" },
13579   {  50, "activateTraceMode" },
13580   {  51, "deactivateTraceMode" },
13581   {  52, "traceSubscriberActivity" },
13582   {  54, "beginSubscriberActivity" },
13583   {  55, "sendIdentification" },
13584   {  56, "sendAuthenticationInfo" },
13585   {  57, "restoreData" },
13586   {  58, "sendIMSI" },
13587   {  59, "processUnstructuredSS-Request" },
13588   {  60, "unstructuredSS-Request" },
13589   {  61, "unstructuredSS-Notify" },
13590   {  62, "anyTimeSubscriptionInterrogation" },
13591   {  63, "informServiceCentre" },
13592   {  64, "alertServiceCentre" },
13593   {  65, "anyTimeModification" },
13594   {  66, "readyForSM" },
13595   {  67, "purgeMS" },
13596   {  68, "prepareHandover" },
13597   {  69, "prepareSubsequentHandover" },
13598   {  70, "provideSubscriberInfo" },
13599   {  71, "anyTimeInterrogation" },
13600   {  72, "ss-InvocationNotification" },
13601   {  73, "setReportingState" },
13602   {  74, "statusReport" },
13603   {  75, "remoteUserFree" },
13604   {  76, "registerCC-Entry" },
13605   {  77, "eraseCC-Entry" },
13606   {  78, "secureTransportClass1" },
13607   {  79, "secureTransportClass2" },
13608   {  80, "secureTransportClass3" },
13609   {  81, "secureTransportClass4" },
13610   {  83, "provideSubscriberLocation" },
13611   {  84, "sendGroupCallInfo" },
13612   {  85, "sendRoutingInfoForLCS" },
13613   {  86, "subscriberLocationReport" },
13614   {  87, "ist-Alert" },
13615   {  88, "ist-Command" },
13616   {  89, "noteMM-Event" },
13617   { 109, "lcs-PeriodicLocationCancellation" },
13618   { 110, "lcs-LocationUpdate" },
13619   { 111, "lcs-PeriodicLocationRequest" },
13620   { 112, "lcs-AreaEventCancellation" },
13621   { 113, "lcs-AreaEventReport" },
13622   { 114, "lcs-AreaEventRequest" },
13623   { 115, "lcs-MOLR" },
13624   { 116, "lcs-LocationNotification" },
13625   { 117, "callDeflection" },
13626   { 118, "userUserService" },
13627   { 119, "accessRegisterCCEntry" },
13628   { 120, "forwardCUG-Info" },
13629   { 121, "splitMPTY" },
13630   { 122, "retrieveMPTY" },
13631   { 123, "holdMPTY" },
13632   { 124, "buildMPTY" },
13633   { 125, "forwardChargeAdvice" },
13634   { 126, "explicitCT" },
13635   { 0, NULL }
13636 };
13637
13638
13639 static int
13640 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_) {
13641 #line 152 "gsmmap.cnf"
13642
13643   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13644                                                 &opcode);
13645  
13646   if (check_col(actx->pinfo->cinfo, COL_INFO)){
13647     col_append_str(actx->pinfo->cinfo, COL_INFO, gsm_map_opr_code(opcode));
13648   }
13649
13650
13651
13652   return offset;
13653 }
13654
13655
13656
13657 static int
13658 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_) {
13659   offset = dissect_gsm_old_GSMMAPOperationLocalvalue(implicit_tag, tvb, offset, actx, tree, hf_index);
13660
13661   return offset;
13662 }
13663
13664
13665
13666 static int
13667 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_) {
13668   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
13669
13670   return offset;
13671 }
13672
13673
13674 static const value_string gsm_old_MAP_OPERATION_vals[] = {
13675   {   0, "localValue" },
13676   {   1, "globalValue" },
13677   { 0, NULL }
13678 };
13679
13680 static const ber_choice_t gsm_old_MAP_OPERATION_choice[] = {
13681   {   0, &hf_gsm_old_localValue  , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OperationLocalvalue },
13682   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
13683   { 0, NULL, 0, 0, 0, NULL }
13684 };
13685
13686 static int
13687 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_) {
13688   offset = dissect_ber_choice(actx, tree, tvb, offset,
13689                                  gsm_old_MAP_OPERATION_choice, hf_index, ett_gsm_old_MAP_OPERATION,
13690                                  NULL);
13691
13692   return offset;
13693 }
13694
13695
13696
13697 static int
13698 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_) {
13699 #line 139 "gsmmap.cnf"
13700         offset = dissect_invokeData(tree, tvb, offset, actx);
13701
13702
13703
13704   return offset;
13705 }
13706
13707
13708 static const ber_sequence_t gsm_old_Invoke_sequence[] = {
13709   { &hf_gsm_old_invokeID    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
13710   { &hf_gsm_old_linkedID    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeIdType },
13711   { &hf_gsm_old_opCode      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION },
13712   { &hf_gsm_old_invokeparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeParameter },
13713   { NULL, 0, 0, 0, NULL }
13714 };
13715
13716 static int
13717 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_) {
13718   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13719                                    gsm_old_Invoke_sequence, hf_index, ett_gsm_old_Invoke);
13720
13721   return offset;
13722 }
13723
13724
13725
13726 static int
13727 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_) {
13728 #line 142 "gsmmap.cnf"
13729         offset = dissect_returnResultData(tree, tvb, offset, actx);
13730
13731
13732
13733   return offset;
13734 }
13735
13736
13737 static const ber_sequence_t gsm_old_T_resultretres_sequence[] = {
13738   { &hf_gsm_old_opCode      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION },
13739   { &hf_gsm_old_returnparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnResultParameter },
13740   { NULL, 0, 0, 0, NULL }
13741 };
13742
13743 static int
13744 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_) {
13745   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13746                                    gsm_old_T_resultretres_sequence, hf_index, ett_gsm_old_T_resultretres);
13747
13748   return offset;
13749 }
13750
13751
13752 static const ber_sequence_t gsm_old_ReturnResult_sequence[] = {
13753   { &hf_gsm_old_invokeID    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
13754   { &hf_gsm_old_resultretres, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_T_resultretres },
13755   { NULL, 0, 0, 0, NULL }
13756 };
13757
13758 static int
13759 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_) {
13760   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13761                                    gsm_old_ReturnResult_sequence, hf_index, ett_gsm_old_ReturnResult);
13762
13763   return offset;
13764 }
13765
13766
13767 const value_string gsm_old_GSMMAPLocalErrorcode_vals[] = {
13768   {  34, "systemFailure" },
13769   {  35, "dataMissing" },
13770   {  36, "unexpectedDataValue" },
13771   {  21, "facilityNotSupported" },
13772   {  28, "incompatibleTerminal" },
13773   {  51, "resourceLimitation" },
13774   {   1, "unknownSubscriber" },
13775   {  44, "numberChanged" },
13776   {   3, "unknownMSC" },
13777   {   5, "unidentifiedSubscriber" },
13778   {   7, "unknownEquipment" },
13779   {   8, "roamingNotAllowed" },
13780   {   9, "illegalSubscriber" },
13781   {  12, "illegalEquipment" },
13782   {  10, "bearerServiceNotProvisioned" },
13783   {  11, "teleserviceNotProvisioned" },
13784   {  25, "noHandoverNumberAvailable" },
13785   {  26, "subsequentHandoverFailure" },
13786   {  42, "targetCellOutsideGroupCallArea" },
13787   {  40, "tracingBufferFull" },
13788   {  39, "noRoamingNumberAvailable" },
13789   {  27, "absentSubscriber" },
13790   {  45, "busySubscriber" },
13791   {  46, "noSubscriberReply" },
13792   {  13, "callBarred" },
13793   {  14, "forwardingViolation" },
13794   {  47, "forwardingFailed" },
13795   {  15, "cug-Reject" },
13796   {  48, "or-NotAllowed" },
13797   {  49, "ati-NotAllowed" },
13798   {  60, "atsi-NotAllowed" },
13799   {  61, "atm-NotAllowed" },
13800   {  62, "informationNotAvailabl" },
13801   {  16, "illegalSS-Operation" },
13802   {  17, "ss-ErrorStatus" },
13803   {  18, "ss-NotAvailable" },
13804   {  19, "ss-SubscriptionViolatio" },
13805   {  20, "ss-Incompatibility" },
13806   {  71, "unknownAlphabe" },
13807   {  72, "ussd-Busy" },
13808   {  37, "pw-RegistrationFailur" },
13809   {  38, "negativePW-Check" },
13810   {  43, "numberOfPW-AttemptsViolation" },
13811   {  29, "shortTermDenial" },
13812   {  30, "longTermDenial" },
13813   {  31, "subscriberBusyForMT-SMS" },
13814   {  32, "sm-DeliveryFailure" },
13815   {  33, "messageWaitingListFull" },
13816   {   6, "absentSubscriberSM" },
13817   {  50, "noGroupCallNumberAvailable" },
13818   {  52, "unauthorizedRequestingNetwork" },
13819   {  53, "unauthorizedLCSClient" },
13820   {  54, "positionMethodFailure" },
13821   {  58, "unknownOrUnreachableLCSClient" },
13822   {  59, "mm-EventNotSupported" },
13823   {   4, "secureTransportError" },
13824   { 0, NULL }
13825 };
13826
13827
13828 int
13829 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_) {
13830   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13831                                                 &errorCode);
13832
13833   return offset;
13834 }
13835
13836
13837
13838 static int
13839 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_) {
13840   offset = dissect_gsm_old_GSMMAPLocalErrorcode(implicit_tag, tvb, offset, actx, tree, hf_index);
13841
13842   return offset;
13843 }
13844
13845
13846 static const value_string gsm_old_MAP_ERROR_vals[] = {
13847   {   0, "localValue" },
13848   {   1, "globalValue" },
13849   { 0, NULL }
13850 };
13851
13852 static const ber_choice_t gsm_old_MAP_ERROR_choice[] = {
13853   {   0, &hf_gsm_old_localValue_01, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_LocalErrorcode },
13854   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
13855   { 0, NULL, 0, 0, 0, NULL }
13856 };
13857
13858 static int
13859 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_) {
13860   offset = dissect_ber_choice(actx, tree, tvb, offset,
13861                                  gsm_old_MAP_ERROR_choice, hf_index, ett_gsm_old_MAP_ERROR,
13862                                  NULL);
13863
13864   return offset;
13865 }
13866
13867
13868
13869 static int
13870 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_) {
13871 #line 145 "gsmmap.cnf"
13872         offset = dissect_returnErrorData(tree, tvb, offset, actx);
13873
13874
13875
13876   return offset;
13877 }
13878
13879
13880 static const ber_sequence_t gsm_old_ReturnError_sequence[] = {
13881   { &hf_gsm_old_invokeID    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
13882   { &hf_gsm_old_errorCode   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_ERROR },
13883   { &hf_gsm_old_parameter   , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnErrorParameter },
13884   { NULL, 0, 0, 0, NULL }
13885 };
13886
13887 static int
13888 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_) {
13889   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13890                                    gsm_old_ReturnError_sequence, hf_index, ett_gsm_old_ReturnError);
13891
13892   return offset;
13893 }
13894
13895
13896
13897 static int
13898 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_) {
13899   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
13900
13901   return offset;
13902 }
13903
13904
13905 static const value_string gsm_old_T_invokeIDRej_vals[] = {
13906   {   0, "derivable" },
13907   {   1, "not-derivable" },
13908   { 0, NULL }
13909 };
13910
13911 static const ber_choice_t gsm_old_T_invokeIDRej_choice[] = {
13912   {   0, &hf_gsm_old_derivable   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
13913   {   1, &hf_gsm_old_not_derivable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
13914   { 0, NULL, 0, 0, 0, NULL }
13915 };
13916
13917 static int
13918 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_) {
13919   offset = dissect_ber_choice(actx, tree, tvb, offset,
13920                                  gsm_old_T_invokeIDRej_choice, hf_index, ett_gsm_old_T_invokeIDRej,
13921                                  NULL);
13922
13923   return offset;
13924 }
13925
13926
13927 static const value_string gsm_old_GeneralProblem_vals[] = {
13928   {   0, "unrecognizedComponent" },
13929   {   1, "mistypedComponent" },
13930   {   2, "badlyStructuredComponent" },
13931   { 0, NULL }
13932 };
13933
13934
13935 static int
13936 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_) {
13937   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13938                                                 NULL);
13939
13940   return offset;
13941 }
13942
13943
13944 static const value_string gsm_old_InvokeProblem_vals[] = {
13945   {   0, "duplicateInvokeID" },
13946   {   1, "unrecognizedOperation" },
13947   {   2, "mistypedParameter" },
13948   {   3, "resourceLimitation" },
13949   {   4, "initiatingRelease" },
13950   {   5, "unrecognizedLinkedID" },
13951   {   6, "linkedResponseUnexpected" },
13952   {   7, "unexpectedLinkedOperation" },
13953   { 0, NULL }
13954 };
13955
13956
13957 static int
13958 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_) {
13959   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13960                                                 NULL);
13961
13962   return offset;
13963 }
13964
13965
13966 static const value_string gsm_old_ReturnResultProblem_vals[] = {
13967   {   0, "unrecognizedInvokeID" },
13968   {   1, "returnResultUnexpected" },
13969   {   2, "mistypedParameter" },
13970   { 0, NULL }
13971 };
13972
13973
13974 static int
13975 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_) {
13976   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13977                                                 NULL);
13978
13979   return offset;
13980 }
13981
13982
13983 static const value_string gsm_old_ReturnErrorProblem_vals[] = {
13984   {   0, "unrecognizedInvokeID" },
13985   {   1, "returnErrorUnexpected" },
13986   {   2, "unrecognizedError" },
13987   {   3, "unexpectedError" },
13988   {   4, "mistypedParameter" },
13989   { 0, NULL }
13990 };
13991
13992
13993 static int
13994 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_) {
13995   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13996                                                 NULL);
13997
13998   return offset;
13999 }
14000
14001
14002 static const value_string gsm_old_T_problem_vals[] = {
14003   {   0, "generalProblem" },
14004   {   1, "invokeProblem" },
14005   {   2, "returnResultProblem" },
14006   {   3, "returnErrorProblem" },
14007   { 0, NULL }
14008 };
14009
14010 static const ber_choice_t gsm_old_T_problem_choice[] = {
14011   {   0, &hf_gsm_old_generalProblem, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_GeneralProblem },
14012   {   1, &hf_gsm_old_invokeProblem, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeProblem },
14013   {   2, &hf_gsm_old_returnResultProblem, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResultProblem },
14014   {   3, &hf_gsm_old_returnErrorProblem, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnErrorProblem },
14015   { 0, NULL, 0, 0, 0, NULL }
14016 };
14017
14018 static int
14019 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_) {
14020   offset = dissect_ber_choice(actx, tree, tvb, offset,
14021                                  gsm_old_T_problem_choice, hf_index, ett_gsm_old_T_problem,
14022                                  NULL);
14023
14024   return offset;
14025 }
14026
14027
14028 static const ber_sequence_t gsm_old_Reject_sequence[] = {
14029   { &hf_gsm_old_invokeIDRej , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_invokeIDRej },
14030   { &hf_gsm_old_problem     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_problem },
14031   { NULL, 0, 0, 0, NULL }
14032 };
14033
14034 static int
14035 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_) {
14036   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14037                                    gsm_old_Reject_sequence, hf_index, ett_gsm_old_Reject);
14038
14039   return offset;
14040 }
14041
14042
14043 static const value_string gsm_old_Component_vals[] = {
14044   {   1, "invoke" },
14045   {   2, "returnResultLast" },
14046   {   3, "returnError" },
14047   {   4, "reject" },
14048   {   7, "returnResultNotLast" },
14049   { 0, NULL }
14050 };
14051
14052 static const ber_choice_t gsm_old_Component_choice[] = {
14053   {   1, &hf_gsm_old_invoke      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_Invoke },
14054   {   2, &hf_gsm_old_returnResultLast, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult },
14055   {   3, &hf_gsm_old_returnError , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnError },
14056   {   4, &hf_gsm_old_reject      , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_Reject },
14057   {   7, &hf_gsm_old_returnResultNotLast, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult },
14058   { 0, NULL, 0, 0, 0, NULL }
14059 };
14060
14061 static int
14062 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_) {
14063   offset = dissect_ber_choice(actx, tree, tvb, offset,
14064                                  gsm_old_Component_choice, hf_index, ett_gsm_old_Component,
14065                                  NULL);
14066
14067   return offset;
14068 }
14069
14070
14071 static const ber_sequence_t gsm_old_Bss_APDU_sequence[] = {
14072   { &hf_gsm_old_protocolId  , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId },
14073   { &hf_gsm_old_signalInfo  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
14074   { &hf_gsm_old_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14075   { NULL, 0, 0, 0, NULL }
14076 };
14077
14078 static int
14079 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_) {
14080   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14081                                    gsm_old_Bss_APDU_sequence, hf_index, ett_gsm_old_Bss_APDU);
14082
14083   return offset;
14084 }
14085
14086
14087
14088 static int
14089 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_) {
14090   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14091                                        NULL);
14092
14093   return offset;
14094 }
14095
14096
14097 static const ber_sequence_t gsm_old_ProvideSIWFSNumberArg_sequence[] = {
14098   { &hf_gsm_old_gsm_BearerCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14099   { &hf_gsm_old_isdn_BearerCapability, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14100   { &hf_gsm_old_call_Direction, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_CallDirection },
14101   { &hf_gsm_old_b_Subscriber_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14102   { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14103   { &hf_gsm_old_lowerLayerCompatibility, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14104   { &hf_gsm_old_highLayerCompatibility, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14105   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14106   { NULL, 0, 0, 0, NULL }
14107 };
14108
14109 static int
14110 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_) {
14111   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14112                                    gsm_old_ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberArg);
14113
14114   return offset;
14115 }
14116
14117
14118 static const ber_sequence_t gsm_old_ProvideSIWFSNumberRes_sequence[] = {
14119   { &hf_gsm_old_sIWFSNumber , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14120   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14121   { NULL, 0, 0, 0, NULL }
14122 };
14123
14124 static int
14125 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_) {
14126   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14127                                    gsm_old_ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberRes);
14128
14129   return offset;
14130 }
14131
14132
14133 static const ber_sequence_t gsm_old_PurgeMSArgV2_sequence[] = {
14134   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
14135   { &hf_gsm_old_vlr_Number  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
14136   { NULL, 0, 0, 0, NULL }
14137 };
14138
14139 static int
14140 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_) {
14141   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14142                                    gsm_old_PurgeMSArgV2_sequence, hf_index, ett_gsm_old_PurgeMSArgV2);
14143
14144   return offset;
14145 }
14146
14147
14148 static const ber_sequence_t gsm_old_PrepareHO_ArgOld_sequence[] = {
14149   { &hf_gsm_old_targetCellId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_GlobalCellId },
14150   { &hf_gsm_old_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
14151   { &hf_gsm_old_bss_APDU    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU },
14152   { NULL, 0, 0, 0, NULL }
14153 };
14154
14155 static int
14156 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_) {
14157   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14158                                    gsm_old_PrepareHO_ArgOld_sequence, hf_index, ett_gsm_old_PrepareHO_ArgOld);
14159
14160   return offset;
14161 }
14162
14163
14164 static const ber_sequence_t gsm_old_PrepareHO_ResOld_sequence[] = {
14165   { &hf_gsm_old_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
14166   { &hf_gsm_old_bss_APDU    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU },
14167   { NULL, 0, 0, 0, NULL }
14168 };
14169
14170 static int
14171 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_) {
14172   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14173                                    gsm_old_PrepareHO_ResOld_sequence, hf_index, ett_gsm_old_PrepareHO_ResOld);
14174
14175   return offset;
14176 }
14177
14178
14179
14180 static int
14181 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_) {
14182   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14183                                        NULL);
14184
14185   return offset;
14186 }
14187
14188
14189
14190 static int
14191 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_) {
14192   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14193                                        NULL);
14194
14195   return offset;
14196 }
14197
14198
14199
14200 static int
14201 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_) {
14202   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14203                                        NULL);
14204
14205   return offset;
14206 }
14207
14208
14209 static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_item_sequence[] = {
14210   { &hf_gsm_old_rand        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND },
14211   { &hf_gsm_old_sres        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES },
14212   { &hf_gsm_old_kc          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc },
14213   { NULL, 0, 0, 0, NULL }
14214 };
14215
14216 static int
14217 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_) {
14218   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14219                                    gsm_old_SendAuthenticationInfoResOld_item_sequence, hf_index, ett_gsm_old_SendAuthenticationInfoResOld_item);
14220
14221   return offset;
14222 }
14223
14224
14225 static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_sequence_of[1] = {
14226   { &hf_gsm_old_SendAuthenticationInfoResOld_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SendAuthenticationInfoResOld_item },
14227 };
14228
14229 static int
14230 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_) {
14231   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
14232                                       gsm_old_SendAuthenticationInfoResOld_sequence_of, hf_index, ett_gsm_old_SendAuthenticationInfoResOld);
14233
14234   return offset;
14235 }
14236
14237
14238 static const ber_sequence_t gsm_old_AuthenticationTriplet_v2_sequence[] = {
14239   { &hf_gsm_old_rand        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND },
14240   { &hf_gsm_old_sres        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES },
14241   { &hf_gsm_old_kc          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc },
14242   { NULL, 0, 0, 0, NULL }
14243 };
14244
14245 static int
14246 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_) {
14247   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14248                                    gsm_old_AuthenticationTriplet_v2_sequence, hf_index, ett_gsm_old_AuthenticationTriplet_v2);
14249
14250   return offset;
14251 }
14252
14253
14254 static const ber_sequence_t gsm_old_TripletListold_sequence_of[1] = {
14255   { &hf_gsm_old_TripletListold_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_AuthenticationTriplet_v2 },
14256 };
14257
14258 static int
14259 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_) {
14260   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
14261                                       gsm_old_TripletListold_sequence_of, hf_index, ett_gsm_old_TripletListold);
14262
14263   return offset;
14264 }
14265
14266
14267 static const ber_sequence_t gsm_old_SendIdentificationResV2_sequence[] = {
14268   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
14269   { &hf_gsm_old_tripletList , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_TripletListold },
14270   { NULL, 0, 0, 0, NULL }
14271 };
14272
14273 static int
14274 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_) {
14275   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14276                                    gsm_old_SendIdentificationResV2_sequence, hf_index, ett_gsm_old_SendIdentificationResV2);
14277
14278   return offset;
14279 }
14280
14281
14282 static const ber_sequence_t gsm_old_SIWFSSignallingModifyArg_sequence[] = {
14283   { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14284   { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14285   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14286   { NULL, 0, 0, 0, NULL }
14287 };
14288
14289 static int
14290 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_) {
14291   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14292                                    gsm_old_SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyArg);
14293
14294   return offset;
14295 }
14296
14297
14298 static const ber_sequence_t gsm_old_SIWFSSignallingModifyRes_sequence[] = {
14299   { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14300   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14301   { NULL, 0, 0, 0, NULL }
14302 };
14303
14304 static int
14305 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_) {
14306   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14307                                    gsm_old_SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyRes);
14308
14309   return offset;
14310 }
14311
14312
14313
14314 int
14315 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_) {
14316   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
14317                                             actx, tree, tvb, offset, hf_index,
14318                                             NULL);
14319
14320   return offset;
14321 }
14322
14323
14324 const value_string gsm_old_GetPasswordArg_vals[] = {
14325   {   0, "enterPW" },
14326   {   1, "enterNewPW" },
14327   {   2, "enterNewPW-Again" },
14328   { 0, NULL }
14329 };
14330
14331
14332 int
14333 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_) {
14334   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14335                                   NULL);
14336
14337   return offset;
14338 }
14339
14340
14341
14342 int
14343 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_) {
14344   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
14345                                             actx, tree, tvb, offset, hf_index,
14346                                             NULL);
14347
14348   return offset;
14349 }
14350
14351
14352
14353 static int
14354 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_) {
14355   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14356                                        NULL);
14357
14358   return offset;
14359 }
14360
14361
14362
14363 static int
14364 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_) {
14365   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14366                                                 NULL);
14367
14368   return offset;
14369 }
14370
14371
14372 static const value_string gsm_old_OperationCode_vals[] = {
14373   {   0, "localValue" },
14374   {   1, "globalValue" },
14375   { 0, NULL }
14376 };
14377
14378 static const ber_choice_t gsm_old_OperationCode_choice[] = {
14379   {   0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER },
14380   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
14381   { 0, NULL, 0, 0, 0, NULL }
14382 };
14383
14384 static int
14385 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_) {
14386   offset = dissect_ber_choice(actx, tree, tvb, offset,
14387                                  gsm_old_OperationCode_choice, hf_index, ett_gsm_old_OperationCode,
14388                                  NULL);
14389
14390   return offset;
14391 }
14392
14393
14394 static const value_string gsm_old_ErrorCode_vals[] = {
14395   {   0, "localValue" },
14396   {   1, "globalValue" },
14397   { 0, NULL }
14398 };
14399
14400 static const ber_choice_t gsm_old_ErrorCode_choice[] = {
14401   {   0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER },
14402   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
14403   { 0, NULL, 0, 0, 0, NULL }
14404 };
14405
14406 static int
14407 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_) {
14408   offset = dissect_ber_choice(actx, tree, tvb, offset,
14409                                  gsm_old_ErrorCode_choice, hf_index, ett_gsm_old_ErrorCode,
14410                                  NULL);
14411
14412   return offset;
14413 }
14414
14415
14416 static const value_string gsm_old_OriginalComponentIdentifier_vals[] = {
14417   {   0, "operationCode" },
14418   {   1, "errorCode" },
14419   {   2, "userInfo" },
14420   { 0, NULL }
14421 };
14422
14423 static const ber_choice_t gsm_old_OriginalComponentIdentifier_choice[] = {
14424   {   0, &hf_gsm_old_operationCode, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_OperationCode },
14425   {   1, &hf_gsm_old_errorCode_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_ErrorCode },
14426   {   2, &hf_gsm_old_userInfo    , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
14427   { 0, NULL, 0, 0, 0, NULL }
14428 };
14429
14430 static int
14431 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_) {
14432   offset = dissect_ber_choice(actx, tree, tvb, offset,
14433                                  gsm_old_OriginalComponentIdentifier_choice, hf_index, ett_gsm_old_OriginalComponentIdentifier,
14434                                  NULL);
14435
14436   return offset;
14437 }
14438
14439
14440
14441 static int
14442 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_) {
14443   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14444                                        NULL);
14445
14446   return offset;
14447 }
14448
14449
14450 static const ber_sequence_t gsm_old_SecurityHeader_sequence[] = {
14451   { &hf_gsm_old_securityParametersIndex, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityParametersIndex },
14452   { &hf_gsm_old_originalComponentIdentifier, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_OriginalComponentIdentifier },
14453   { &hf_gsm_old_initialisationVector, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InitialisationVector },
14454   { NULL, 0, 0, 0, NULL }
14455 };
14456
14457 int
14458 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_) {
14459   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14460                                    gsm_old_SecurityHeader_sequence, hf_index, ett_gsm_old_SecurityHeader);
14461
14462   return offset;
14463 }
14464
14465
14466
14467 int
14468 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_) {
14469   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14470                                        NULL);
14471
14472   return offset;
14473 }
14474
14475
14476 static const ber_sequence_t gsm_old_SecureTransportArg_sequence[] = {
14477   { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
14478   { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
14479   { NULL, 0, 0, 0, NULL }
14480 };
14481
14482 static int
14483 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_) {
14484   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14485                                    gsm_old_SecureTransportArg_sequence, hf_index, ett_gsm_old_SecureTransportArg);
14486
14487   return offset;
14488 }
14489
14490
14491 static const ber_sequence_t gsm_old_SecureTransportErrorParam_sequence[] = {
14492   { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
14493   { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
14494   { NULL, 0, 0, 0, NULL }
14495 };
14496
14497 static int
14498 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_) {
14499   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14500                                    gsm_old_SecureTransportErrorParam_sequence, hf_index, ett_gsm_old_SecureTransportErrorParam);
14501
14502   return offset;
14503 }
14504
14505
14506 static const ber_sequence_t gsm_old_SecureTransportRes_sequence[] = {
14507   { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
14508   { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
14509   { NULL, 0, 0, 0, NULL }
14510 };
14511
14512 static int
14513 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_) {
14514   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14515                                    gsm_old_SecureTransportRes_sequence, hf_index, ett_gsm_old_SecureTransportRes);
14516
14517   return offset;
14518 }
14519
14520
14521
14522 static int
14523 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_) {
14524   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14525                                        NULL);
14526
14527   return offset;
14528 }
14529
14530
14531
14532 static int
14533 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_) {
14534   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14535                                        NULL);
14536
14537   return offset;
14538 }
14539
14540
14541 static const ber_sequence_t gsm_old_T_operatorSS_Code_sequence_of[1] = {
14542   { &hf_gsm_old_operatorSS_Code_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OCTET_STRING_SIZE_1 },
14543 };
14544
14545 static int
14546 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_) {
14547   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
14548                                       gsm_old_T_operatorSS_Code_sequence_of, hf_index, ett_gsm_old_T_operatorSS_Code);
14549
14550   return offset;
14551 }
14552
14553
14554 static const ber_sequence_t gsm_old_PlmnContainer_U_sequence[] = {
14555   { &hf_gsm_old_msisdn      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14556   { &hf_gsm_old_category    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_Category },
14557   { &hf_gsm_old_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
14558   { &hf_gsm_old_operatorSS_Code, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_T_operatorSS_Code },
14559   { NULL, 0, 0, 0, NULL }
14560 };
14561
14562 static int
14563 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_) {
14564   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14565                                    gsm_old_PlmnContainer_U_sequence, hf_index, ett_gsm_old_PlmnContainer_U);
14566
14567   return offset;
14568 }
14569
14570
14571
14572 static int
14573 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_) {
14574   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
14575                                       hf_index, BER_CLASS_PRI, 2, TRUE, dissect_gsm_old_PlmnContainer_U);
14576
14577   return offset;
14578 }
14579
14580
14581 static const value_string gsm_old_SM_RP_DAold_vals[] = {
14582   {   0, "imsi" },
14583   {   1, "lmsi" },
14584   {   4, "serviceCentreAddressDA" },
14585   {   5, "noSM-RP-DA" },
14586   { 0, NULL }
14587 };
14588
14589 static const ber_choice_t gsm_old_SM_RP_DAold_choice[] = {
14590   {   0, &hf_gsm_old_imsi        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
14591   {   1, &hf_gsm_old_lmsi        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
14592   {   4, &hf_gsm_old_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
14593   {   5, &hf_gsm_old_noSM_RP_DA  , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
14594   { 0, NULL, 0, 0, 0, NULL }
14595 };
14596
14597 static int
14598 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_) {
14599   offset = dissect_ber_choice(actx, tree, tvb, offset,
14600                                  gsm_old_SM_RP_DAold_choice, hf_index, ett_gsm_old_SM_RP_DAold,
14601                                  NULL);
14602
14603   return offset;
14604 }
14605
14606
14607
14608 static int
14609 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_) {
14610 #line 272 "gsmmap.cnf"
14611 actx->pinfo->p2p_dir = P2P_DIR_RECV;
14612    offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
14613
14614
14615
14616
14617   return offset;
14618 }
14619
14620
14621
14622 static int
14623 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_) {
14624 #line 264 "gsmmap.cnf"
14625         actx->pinfo->p2p_dir = P2P_DIR_SENT;
14626   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
14627
14628
14629
14630
14631   return offset;
14632 }
14633
14634
14635 static const value_string gsm_old_SM_RP_OAold_vals[] = {
14636   {   2, "msisdn" },
14637   {   4, "serviceCentreAddressOA" },
14638   {   5, "noSM-RP-OA" },
14639   { 0, NULL }
14640 };
14641
14642 static const ber_choice_t gsm_old_SM_RP_OAold_choice[] = {
14643   {   2, &hf_gsm_old_msisdn_01   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_msisdn },
14644   {   4, &hf_gsm_old_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_serviceCentreAddressOA },
14645   {   5, &hf_gsm_old_noSM_RP_OA  , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
14646   { 0, NULL, 0, 0, 0, NULL }
14647 };
14648
14649 static int
14650 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_) {
14651   offset = dissect_ber_choice(actx, tree, tvb, offset,
14652                                  gsm_old_SM_RP_OAold_choice, hf_index, ett_gsm_old_SM_RP_OAold,
14653                                  NULL);
14654
14655   return offset;
14656 }
14657
14658
14659 static const ber_sequence_t gsm_old_ForwardSM_Arg_sequence[] = {
14660   { &hf_gsm_old_sm_RP_DA    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_DAold },
14661   { &hf_gsm_old_sm_RP_OA    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_OAold },
14662   { &hf_gsm_old_sm_RP_UI    , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
14663   { &hf_gsm_old_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
14664   { NULL, 0, 0, 0, NULL }
14665 };
14666
14667 static int
14668 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_) {
14669 #line 295 "gsmmap.cnf"
14670
14671         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
14672   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14673                                    gsm_old_ForwardSM_Arg_sequence, hf_index, ett_gsm_old_ForwardSM_Arg);
14674
14675
14676         if (!actx->value_ptr)
14677                 return offset;
14678         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
14679
14680
14681
14682   return offset;
14683 }
14684
14685
14686 static const ber_sequence_t gsm_old_SendRoutingInfoArgV2_sequence[] = {
14687   { &hf_gsm_old_msisdn      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14688   { &hf_gsm_old_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
14689   { &hf_gsm_old_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding },
14690   { &hf_gsm_old_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14691   { NULL, 0, 0, 0, NULL }
14692 };
14693
14694 static int
14695 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_) {
14696   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14697                                    gsm_old_SendRoutingInfoArgV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoArgV2);
14698
14699   return offset;
14700 }
14701
14702
14703 static const ber_sequence_t gsm_old_SendRoutingInfoResV2_sequence[] = {
14704   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
14705   { &hf_gsm_old_routingInfo , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo },
14706   { &hf_gsm_old_cug_CheckInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_CUG_CheckInfo },
14707   { NULL, 0, 0, 0, NULL }
14708 };
14709
14710 static int
14711 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_) {
14712   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14713                                    gsm_old_SendRoutingInfoResV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoResV2);
14714
14715   return offset;
14716 }
14717
14718
14719 /* --- Module SS-DataTypes --- --- ---                                        */
14720
14721
14722
14723 static int
14724 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_) {
14725   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
14726                                             actx, tree, tvb, offset, hf_index,
14727                                             NULL);
14728
14729   return offset;
14730 }
14731
14732
14733
14734 static int
14735 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_) {
14736   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14737                                        NULL);
14738
14739   return offset;
14740 }
14741
14742
14743
14744 static int
14745 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_) {
14746   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
14747
14748   return offset;
14749 }
14750
14751
14752 static const value_string gsm_ss_CallOnHold_Indicator_vals[] = {
14753   {   0, "callRetrieved" },
14754   {   1, "callOnHold" },
14755   { 0, NULL }
14756 };
14757
14758
14759 static int
14760 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_) {
14761   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14762                                   NULL);
14763
14764   return offset;
14765 }
14766
14767
14768 static const value_string gsm_ss_ECT_CallState_vals[] = {
14769   {   0, "alerting" },
14770   {   1, "active" },
14771   { 0, NULL }
14772 };
14773
14774
14775 static int
14776 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_) {
14777   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14778                                   NULL);
14779
14780   return offset;
14781 }
14782
14783
14784 static const ber_sequence_t gsm_ss_RemotePartyNumber_sequence[] = {
14785   { &hf_gsm_ss_partyNumber  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14786   { &hf_gsm_ss_partyNumberSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
14787   { NULL, 0, 0, 0, NULL }
14788 };
14789
14790 static int
14791 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_) {
14792   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14793                                    gsm_ss_RemotePartyNumber_sequence, hf_index, ett_gsm_ss_RemotePartyNumber);
14794
14795   return offset;
14796 }
14797
14798
14799 static const value_string gsm_ss_RDN_vals[] = {
14800   {   0, "presentationAllowedAddress" },
14801   {   1, "presentationRestricted" },
14802   {   2, "numberNotAvailableDueToInterworking" },
14803   {   3, "presentationRestrictedAddress" },
14804   { 0, NULL }
14805 };
14806
14807 static const ber_choice_t gsm_ss_RDN_choice[] = {
14808   {   0, &hf_gsm_ss_presentationAllowedAddress, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber },
14809   {   1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14810   {   2, &hf_gsm_ss_numberNotAvailableDueToInterworking, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14811   {   3, &hf_gsm_ss_presentationRestrictedAddress, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber },
14812   { 0, NULL, 0, 0, 0, NULL }
14813 };
14814
14815 static int
14816 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_) {
14817   offset = dissect_ber_choice(actx, tree, tvb, offset,
14818                                  gsm_ss_RDN_choice, hf_index, ett_gsm_ss_RDN,
14819                                  NULL);
14820
14821   return offset;
14822 }
14823
14824
14825 static const ber_sequence_t gsm_ss_ECT_Indicator_sequence[] = {
14826   { &hf_gsm_ss_ect_CallState, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_CallState },
14827   { &hf_gsm_ss_rdn          , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_RDN },
14828   { NULL, 0, 0, 0, NULL }
14829 };
14830
14831 static int
14832 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_) {
14833   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14834                                    gsm_ss_ECT_Indicator_sequence, hf_index, ett_gsm_ss_ECT_Indicator);
14835
14836   return offset;
14837 }
14838
14839
14840
14841 static int
14842 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_) {
14843   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14844                                                 NULL);
14845
14846   return offset;
14847 }
14848
14849
14850 static const ber_sequence_t gsm_ss_NameSet_sequence[] = {
14851   { &hf_gsm_ss_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
14852   { &hf_gsm_ss_lengthInCharacters, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_INTEGER },
14853   { &hf_gsm_ss_nameString   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_String },
14854   { NULL, 0, 0, 0, NULL }
14855 };
14856
14857 static int
14858 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_) {
14859   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14860                                    gsm_ss_NameSet_sequence, hf_index, ett_gsm_ss_NameSet);
14861
14862   return offset;
14863 }
14864
14865
14866 static const value_string gsm_ss_Name_vals[] = {
14867   {   0, "namePresentationAllowed" },
14868   {   1, "presentationRestricted" },
14869   {   2, "nameUnavailable" },
14870   {   3, "namePresentationRestricted" },
14871   { 0, NULL }
14872 };
14873
14874 static const ber_choice_t gsm_ss_Name_choice[] = {
14875   {   0, &hf_gsm_ss_namePresentationAllowed, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet },
14876   {   1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14877   {   2, &hf_gsm_ss_nameUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14878   {   3, &hf_gsm_ss_namePresentationRestricted, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet },
14879   { 0, NULL, 0, 0, 0, NULL }
14880 };
14881
14882 static int
14883 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_) {
14884   offset = dissect_ber_choice(actx, tree, tvb, offset,
14885                                  gsm_ss_Name_choice, hf_index, ett_gsm_ss_Name,
14886                                  NULL);
14887
14888   return offset;
14889 }
14890
14891
14892 static const ber_sequence_t gsm_ss_NameIndicator_sequence[] = {
14893   { &hf_gsm_ss_callingName  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_Name },
14894   { NULL, 0, 0, 0, NULL }
14895 };
14896
14897 static int
14898 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_) {
14899   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14900                                    gsm_ss_NameIndicator_sequence, hf_index, ett_gsm_ss_NameIndicator);
14901
14902   return offset;
14903 }
14904
14905
14906 static const value_string gsm_ss_Multicall_Indicator_vals[] = {
14907   {   0, "nbr-SNexceeded" },
14908   {   1, "nbr-Userexceeded" },
14909   { 0, NULL }
14910 };
14911
14912
14913 static int
14914 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_) {
14915   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14916                                   NULL);
14917
14918   return offset;
14919 }
14920
14921
14922 static const ber_sequence_t gsm_ss_NotifySS_Arg_sequence[] = {
14923   { &hf_gsm_ss_ss_Code      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
14924   { &hf_gsm_ss_ss_Status    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
14925   { &hf_gsm_ss_ss_Notification, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_SS_Notification },
14926   { &hf_gsm_ss_callIsWaiting_Indicator, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14927   { &hf_gsm_ss_callOnHold_Indicator, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_CallOnHold_Indicator },
14928   { &hf_gsm_ss_mpty_Indicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14929   { &hf_gsm_ss_cug_Index    , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index },
14930   { &hf_gsm_ss_clirSuppressionRejected, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14931   { &hf_gsm_ss_ect_Indicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_Indicator },
14932   { &hf_gsm_ss_nameIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameIndicator },
14933   { &hf_gsm_ss_ccbs_Feature , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
14934   { &hf_gsm_ss_alertingPattern, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
14935   { &hf_gsm_ss_multicall_Indicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Multicall_Indicator },
14936   { NULL, 0, 0, 0, NULL }
14937 };
14938
14939 static int
14940 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_) {
14941   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14942                                    gsm_ss_NotifySS_Arg_sequence, hf_index, ett_gsm_ss_NotifySS_Arg);
14943
14944   return offset;
14945 }
14946
14947
14948 static const ber_sequence_t gsm_ss_BeginSubscriberActivityArg_sequence[] = {
14949   { &hf_gsm_ss_imsi         , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
14950   { &hf_gsm_ss_originatingEntityNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
14951   { &hf_gsm_ss_msisdn       , BER_CLASS_PRI, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
14952   { NULL, 0, 0, 0, NULL }
14953 };
14954
14955 static int
14956 dissect_gsm_ss_BeginSubscriberActivityArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14957   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14958                                    gsm_ss_BeginSubscriberActivityArg_sequence, hf_index, ett_gsm_ss_BeginSubscriberActivityArg);
14959
14960   return offset;
14961 }
14962
14963
14964
14965 static int
14966 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_) {
14967   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14968                                                 NULL);
14969
14970   return offset;
14971 }
14972
14973
14974
14975 static int
14976 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_) {
14977   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14978                                                 NULL);
14979
14980   return offset;
14981 }
14982
14983
14984
14985 static int
14986 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_) {
14987   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14988                                                 NULL);
14989
14990   return offset;
14991 }
14992
14993
14994
14995 static int
14996 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_) {
14997   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14998                                                 NULL);
14999
15000   return offset;
15001 }
15002
15003
15004
15005 static int
15006 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_) {
15007   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15008                                                 NULL);
15009
15010   return offset;
15011 }
15012
15013
15014
15015 static int
15016 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_) {
15017   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15018                                                 NULL);
15019
15020   return offset;
15021 }
15022
15023
15024
15025 static int
15026 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_) {
15027   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15028                                                 NULL);
15029
15030   return offset;
15031 }
15032
15033
15034 static const ber_sequence_t gsm_ss_ChargingInformation_sequence[] = {
15035   { &hf_gsm_ss_e1           , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E1 },
15036   { &hf_gsm_ss_e2           , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E2 },
15037   { &hf_gsm_ss_e3           , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E3 },
15038   { &hf_gsm_ss_e4           , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E4 },
15039   { &hf_gsm_ss_e5           , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E5 },
15040   { &hf_gsm_ss_e6           , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E6 },
15041   { &hf_gsm_ss_e7           , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E7 },
15042   { NULL, 0, 0, 0, NULL }
15043 };
15044
15045 static int
15046 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_) {
15047   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15048                                    gsm_ss_ChargingInformation_sequence, hf_index, ett_gsm_ss_ChargingInformation);
15049
15050   return offset;
15051 }
15052
15053
15054 static const ber_sequence_t gsm_ss_ForwardChargeAdviceArg_sequence[] = {
15055   { &hf_gsm_ss_ss_Code      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
15056   { &hf_gsm_ss_chargingInformation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ChargingInformation },
15057   { NULL, 0, 0, 0, NULL }
15058 };
15059
15060 static int
15061 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_) {
15062   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15063                                    gsm_ss_ForwardChargeAdviceArg_sequence, hf_index, ett_gsm_ss_ForwardChargeAdviceArg);
15064
15065   return offset;
15066 }
15067
15068
15069 static const ber_sequence_t gsm_ss_ForwardCUG_InfoArg_sequence[] = {
15070   { &hf_gsm_ss_cug_Index    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index },
15071   { &hf_gsm_ss_suppressPrefCUG, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15072   { &hf_gsm_ss_suppressOA   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15073   { NULL, 0, 0, 0, NULL }
15074 };
15075
15076 static int
15077 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_) {
15078   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15079                                    gsm_ss_ForwardCUG_InfoArg_sequence, hf_index, ett_gsm_ss_ForwardCUG_InfoArg);
15080
15081   return offset;
15082 }
15083
15084
15085 static const ber_sequence_t gsm_ss_AccessRegisterCCEntryArg_sequence[] = {
15086   { NULL, 0, 0, 0, NULL }
15087 };
15088
15089 static int
15090 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_) {
15091   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15092                                    gsm_ss_AccessRegisterCCEntryArg_sequence, hf_index, ett_gsm_ss_AccessRegisterCCEntryArg);
15093
15094   return offset;
15095 }
15096
15097
15098 static const ber_sequence_t gsm_ss_CallDeflectionArg_sequence[] = {
15099   { &hf_gsm_ss_deflectedToNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
15100   { &hf_gsm_ss_deflectedToSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
15101   { NULL, 0, 0, 0, NULL }
15102 };
15103
15104 static int
15105 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_) {
15106   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15107                                    gsm_ss_CallDeflectionArg_sequence, hf_index, ett_gsm_ss_CallDeflectionArg);
15108
15109   return offset;
15110 }
15111
15112
15113 static const value_string gsm_ss_UUS_Service_vals[] = {
15114   {   1, "uUS1" },
15115   {   2, "uUS2" },
15116   {   3, "uUS3" },
15117   { 0, NULL }
15118 };
15119
15120
15121 static int
15122 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_) {
15123   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15124                                   NULL);
15125
15126   return offset;
15127 }
15128
15129
15130
15131 static int
15132 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_) {
15133   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
15134
15135   return offset;
15136 }
15137
15138
15139 static const ber_sequence_t gsm_ss_UserUserServiceArg_sequence[] = {
15140   { &hf_gsm_ss_uUS_Service  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_UUS_Service },
15141   { &hf_gsm_ss_uUS_Required , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_BOOLEAN },
15142   { NULL, 0, 0, 0, NULL }
15143 };
15144
15145 static int
15146 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_) {
15147   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15148                                    gsm_ss_UserUserServiceArg_sequence, hf_index, ett_gsm_ss_UserUserServiceArg);
15149
15150   return offset;
15151 }
15152
15153
15154 static const ber_sequence_t gsm_ss_LocationNotificationArg_sequence[] = {
15155   { &hf_gsm_ss_notificationType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
15156   { &hf_gsm_ss_locationType , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType },
15157   { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
15158   { &hf_gsm_ss_lcsClientName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName },
15159   { &hf_gsm_ss_lcsRequestorID, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID },
15160   { &hf_gsm_ss_lcsCodeword  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword },
15161   { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
15162   { NULL, 0, 0, 0, NULL }
15163 };
15164
15165 static int
15166 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_) {
15167   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15168                                    gsm_ss_LocationNotificationArg_sequence, hf_index, ett_gsm_ss_LocationNotificationArg);
15169
15170   return offset;
15171 }
15172
15173
15174 static const value_string gsm_ss_VerificationResponse_vals[] = {
15175   {   0, "permissionDenied" },
15176   {   1, "permissionGranted" },
15177   { 0, NULL }
15178 };
15179
15180
15181 static int
15182 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_) {
15183   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15184                                   NULL);
15185
15186   return offset;
15187 }
15188
15189
15190 static const ber_sequence_t gsm_ss_LocationNotificationRes_sequence[] = {
15191   { &hf_gsm_ss_verificationResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_VerificationResponse },
15192   { NULL, 0, 0, 0, NULL }
15193 };
15194
15195 static int
15196 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_) {
15197   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15198                                    gsm_ss_LocationNotificationRes_sequence, hf_index, ett_gsm_ss_LocationNotificationRes);
15199
15200   return offset;
15201 }
15202
15203
15204 static const value_string gsm_ss_MOLR_Type_vals[] = {
15205   {   0, "locationEstimate" },
15206   {   1, "assistanceData" },
15207   {   2, "deCipheringKeys" },
15208   {   3, "deferredMo-lrTTTPInitiation" },
15209   {   4, "deferredMo-lrSelfLocationInitiation" },
15210   {   5, "deferredMt-lrOrmo-lrTTTPLocationEstimate" },
15211   {   6, "deferredMt-lrOrmo-lrCancellation" },
15212   { 0, NULL }
15213 };
15214
15215
15216 static int
15217 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_) {
15218   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15219                                   NULL);
15220
15221   return offset;
15222 }
15223
15224
15225 static const value_string gsm_ss_LocationMethod_vals[] = {
15226   {   0, "msBasedEOTD" },
15227   {   1, "msAssistedEOTD" },
15228   {   2, "assistedGPS" },
15229   {   3, "msBasedOTDOA" },
15230   {   4, "assistedGANSS" },
15231   {   5, "assistedGPSandGANSS" },
15232   { 0, NULL }
15233 };
15234
15235
15236 static int
15237 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_) {
15238   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15239                                   NULL);
15240
15241   return offset;
15242 }
15243
15244
15245
15246 static int
15247 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_) {
15248   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15249                                        NULL);
15250
15251   return offset;
15252 }
15253
15254
15255 static const value_string gsm_ss_TerminationCause_vals[] = {
15256   {   0, "subscriberTermination" },
15257   {   1, "uETermination" },
15258   { 0, NULL }
15259 };
15260
15261
15262 static int
15263 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_) {
15264   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15265                                   NULL);
15266
15267   return offset;
15268 }
15269
15270
15271
15272 static int
15273 dissect_gsm_ss_GANSSAssistanceData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15274   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15275                                        NULL);
15276
15277   return offset;
15278 }
15279
15280
15281 static const ber_sequence_t gsm_ss_LCS_MOLRArg_sequence[] = {
15282   { &hf_gsm_ss_molr_Type    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_MOLR_Type },
15283   { &hf_gsm_ss_locationMethod, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LocationMethod },
15284   { &hf_gsm_ss_lcs_QoS      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
15285   { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
15286   { &hf_gsm_ss_mlc_Number   , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15287   { &hf_gsm_ss_gpsAssistanceData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_GPSAssistanceData },
15288   { &hf_gsm_ss_supportedGADShapes, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
15289   { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
15290   { &hf_gsm_ss_ageOfLocationInfo, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
15291   { &hf_gsm_ss_locationType , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType },
15292   { &hf_gsm_ss_pseudonymIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15293   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15294   { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
15295   { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
15296   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15297   { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
15298   { &hf_gsm_ss_locationUpdateRequest, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15299   { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
15300   { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
15301   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15302   { &hf_gsm_ss_ganssAssistanceData, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_GANSSAssistanceData },
15303   { NULL, 0, 0, 0, NULL }
15304 };
15305
15306 static int
15307 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_) {
15308   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15309                                    gsm_ss_LCS_MOLRArg_sequence, hf_index, ett_gsm_ss_LCS_MOLRArg);
15310
15311   return offset;
15312 }
15313
15314
15315
15316 static int
15317 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_) {
15318   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15319                                        NULL);
15320
15321   return offset;
15322 }
15323
15324
15325 static const ber_sequence_t gsm_ss_LCS_MOLRRes_sequence[] = {
15326   { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
15327   { &hf_gsm_ss_decipheringKeys, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DecipheringKeys },
15328   { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
15329   { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
15330   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15331   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15332   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15333   { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
15334   { NULL, 0, 0, 0, NULL }
15335 };
15336
15337 static int
15338 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_) {
15339   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15340                                    gsm_ss_LCS_MOLRRes_sequence, hf_index, ett_gsm_ss_LCS_MOLRRes);
15341
15342   return offset;
15343 }
15344
15345
15346 static const ber_sequence_t gsm_ss_LCS_AreaEventRequestArg_sequence[] = {
15347   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15348   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15349   { &hf_gsm_ss_deferredLocationEventType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
15350   { &hf_gsm_ss_areaEventInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo },
15351   { NULL, 0, 0, 0, NULL }
15352 };
15353
15354 static int
15355 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_) {
15356   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15357                                    gsm_ss_LCS_AreaEventRequestArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventRequestArg);
15358
15359   return offset;
15360 }
15361
15362
15363 static const ber_sequence_t gsm_ss_LCS_AreaEventReportArg_sequence[] = {
15364   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15365   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15366   { NULL, 0, 0, 0, NULL }
15367 };
15368
15369 static int
15370 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_) {
15371   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15372                                    gsm_ss_LCS_AreaEventReportArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventReportArg);
15373
15374   return offset;
15375 }
15376
15377
15378 static const ber_sequence_t gsm_ss_LCS_AreaEventCancellationArg_sequence[] = {
15379   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15380   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15381   { NULL, 0, 0, 0, NULL }
15382 };
15383
15384 static int
15385 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_) {
15386   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15387                                    gsm_ss_LCS_AreaEventCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventCancellationArg);
15388
15389   return offset;
15390 }
15391
15392
15393 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestArg_sequence[] = {
15394   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15395   { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
15396   { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
15397   { &hf_gsm_ss_qoS          , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
15398   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15399   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15400   { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
15401   { NULL, 0, 0, 0, NULL }
15402 };
15403
15404 static int
15405 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_) {
15406   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15407                                    gsm_ss_LCS_PeriodicLocationRequestArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestArg);
15408
15409   return offset;
15410 }
15411
15412
15413 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestRes_sequence[] = {
15414   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15415   { NULL, 0, 0, 0, NULL }
15416 };
15417
15418 static int
15419 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_) {
15420   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15421                                    gsm_ss_LCS_PeriodicLocationRequestRes_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestRes);
15422
15423   return offset;
15424 }
15425
15426
15427 static const ber_sequence_t gsm_ss_LCS_LocationUpdateArg_sequence[] = {
15428   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15429   { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
15430   { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
15431   { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
15432   { NULL, 0, 0, 0, NULL }
15433 };
15434
15435 static int
15436 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_) {
15437   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15438                                    gsm_ss_LCS_LocationUpdateArg_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateArg);
15439
15440   return offset;
15441 }
15442
15443
15444 static const ber_sequence_t gsm_ss_LCS_LocationUpdateRes_sequence[] = {
15445   { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
15446   { NULL, 0, 0, 0, NULL }
15447 };
15448
15449 static int
15450 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_) {
15451   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15452                                    gsm_ss_LCS_LocationUpdateRes_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateRes);
15453
15454   return offset;
15455 }
15456
15457
15458 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationCancellationArg_sequence[] = {
15459   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15460   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15461   { NULL, 0, 0, 0, NULL }
15462 };
15463
15464 static int
15465 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_) {
15466   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15467                                    gsm_ss_LCS_PeriodicLocationCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationCancellationArg);
15468
15469   return offset;
15470 }
15471
15472
15473 /* --- Module SS-Operations --- --- ---                                       */
15474
15475
15476 /*--- End of included file: packet-gsm_map-fn.c ---*/
15477 #line 872 "packet-gsmmap-template.c"
15478
15479 /* Specific translation for MAP V3 */
15480 const value_string gsm_map_V1V2_opr_code_strings[] = {
15481   {  44, "forwardSM" },
15482   {  45, "sendRoutingInfoForSM" },
15483   {  46, "forwardSM" },
15484   { 0, NULL }
15485 };
15486 /* Generic translation for MAP operation */
15487 const value_string gsm_map_opr_code_strings[] = {
15488
15489 /*--- Included file: packet-gsm_map-table.c ---*/
15490 #line 1 "packet-gsm_map-table.c"
15491
15492 /* --- Module Remote-Operations-Information-Objects --- --- ---               */
15493
15494 /* Unknown or empty loop list OPERATION */
15495
15496 /* --- Module MobileDomainDefinitions --- --- ---                             */
15497
15498 /* Unknown or empty loop list OPERATION */
15499
15500 /* --- Module MAP-ApplicationContexts --- --- ---                             */
15501
15502 /* Unknown or empty loop list OPERATION */
15503
15504 /* --- Module MAP-SS-Code --- --- ---                                         */
15505
15506 /* Unknown or empty loop list OPERATION */
15507
15508 /* --- Module MAP-BS-Code --- --- ---                                         */
15509
15510 /* Unknown or empty loop list OPERATION */
15511
15512 /* --- Module MAP-TS-Code --- --- ---                                         */
15513
15514 /* Unknown or empty loop list OPERATION */
15515
15516 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
15517
15518 /* Unknown or empty loop list OPERATION */
15519
15520 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
15521
15522 /* Unknown or empty loop list OPERATION */
15523
15524 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
15525
15526 /* Unknown or empty loop list OPERATION */
15527
15528 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
15529
15530 /* Unknown or empty loop list OPERATION */
15531
15532 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
15533
15534 /* Unknown or empty loop list OPERATION */
15535
15536 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
15537
15538 /* Unknown or empty loop list OPERATION */
15539
15540 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
15541
15542 /* Unknown or empty loop list OPERATION */
15543
15544 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
15545
15546 /* Unknown or empty loop list OPERATION */
15547
15548 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
15549
15550 /* Unknown or empty loop list OPERATION */
15551
15552 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
15553
15554 /* Unknown or empty loop list OPERATION */
15555
15556 /* --- Module MAP-DialogueInformation --- --- ---                             */
15557
15558 /* Unknown or empty loop list OPERATION */
15559
15560 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
15561
15562         { 85, "sendRoutingInfoForLCS" },
15563         { 83, "provideSubscriberLocation" },
15564         { 86, "subscriberLocationReport" },
15565
15566 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
15567
15568         { 39, "prepareGroupCall" },
15569         { 40, "sendGroupCallEndSignal" },
15570         { 41, "processGroupCallSignalling" },
15571         { 42, "forwardGroupCallSignalling" },
15572         { 84, "sendGroupCallInfo" },
15573
15574 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
15575
15576         { 45, "sendRoutingInfoForSM" },
15577         { 46, "mo_ForwardSM" },
15578         { 44, "mt_ForwardSM" },
15579         { 47, "reportSM_DeliveryStatus" },
15580         { 64, "alertServiceCentre" },
15581         { 63, "informServiceCentre" },
15582         { 66, "readyForSM" },
15583         { 21, "mt_ForwardSM_VGCS" },
15584
15585 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
15586
15587         { 10, "registerSS" },
15588         { 11, "eraseSS" },
15589         { 12, "activateSS" },
15590         { 13, "deactivateSS" },
15591         { 14, "interrogateSS" },
15592         { 59, "processUnstructuredSS_Request" },
15593         { 60, "unstructuredSS_Request" },
15594         { 61, "unstructuredSS_Notify" },
15595         { 17, "registerPassword" },
15596         { 18, "getPassword" },
15597         { 72, "ss_InvocationNotification" },
15598         { 76, "registerCC_Entry" },
15599         { 77, "eraseCC_Entry" },
15600
15601 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
15602
15603         { 22, "sendRoutingInfo" },
15604         { 4, "provideRoamingNumber" },
15605         { 6, "resumeCallHandling" },
15606         { 73, "setReportingState" },
15607         { 74, "statusReport" },
15608         { 75, "remoteUserFree" },
15609         { 87, "ist_Alert" },
15610         { 88, "ist_Command" },
15611         { 20, "releaseResources" },
15612
15613 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
15614
15615         { 50, "activateTraceMode" },
15616         { 51, "deactivateTraceMode" },
15617         { 58, "sendIMSI" },
15618
15619 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
15620
15621         { 2, "updateLocation" },
15622         { 3, "cancelLocation" },
15623         { 67, "purgeMS" },
15624         { 55, "sendIdentification" },
15625         { 23, "updateGprsLocation" },
15626         { 70, "provideSubscriberInfo" },
15627         { 71, "anyTimeInterrogation" },
15628         { 62, "anyTimeSubscriptionInterrogation" },
15629         { 65, "anyTimeModification" },
15630         { 5, "noteSubscriberDataModified" },
15631         { 68, "prepareHandover" },
15632         { 29, "sendEndSignal" },
15633         { 33, "processAccessSignalling" },
15634         { 34, "forwardAccessSignalling" },
15635         { 69, "prepareSubsequentHandover" },
15636         { 56, "sendAuthenticationInfo" },
15637         { 15, "authenticationFailureReport" },
15638         { 43, "checkIMEI" },
15639         { 7, "insertSubscriberData" },
15640         { 8, "deleteSubscriberData" },
15641         { 37, "reset" },
15642         { 38, "forwardCheckSS_Indication" },
15643         { 57, "restoreData" },
15644         { 24, "sendRoutingInfoForGprs" },
15645         { 25, "failureReport" },
15646         { 26, "noteMsPresentForGprs" },
15647         { 89, "noteMM_Event" },
15648
15649 /* --- Module MAP-Errors --- --- ---                                          */
15650
15651 /* Unknown or empty loop list OPERATION */
15652
15653 /* --- Module MAP-Protocol --- --- ---                                        */
15654
15655 /* Unknown or empty loop list OPERATION */
15656
15657 /* --- Module DummyMAP --- --- ---                                            */
15658
15659 /* Unknown or empty loop list OPERATION */
15660
15661 /* --- Module SS-DataTypes --- --- ---                                        */
15662
15663 /* Unknown or empty loop list OPERATION */
15664
15665 /* --- Module SS-Operations --- --- ---                                       */
15666
15667         { 19, "processUnstructuredSS_Data" },
15668         { 54, "beginSubscriberActivity" },
15669         { 16, "notifySS" },
15670         { 125, "forwardChargeAdvice" },
15671         { 120, "forwardCUG_Info" },
15672         { 124, "buildMPTY" },
15673         { 123, "holdMPTY" },
15674         { 122, "retrieveMPTY" },
15675         { 121, "splitMPTY" },
15676         { 126, "explicitCT" },
15677         { 119, "accessRegisterCCEntry" },
15678         { 117, "callDeflection" },
15679         { 118, "userUserService" },
15680         { 116, "lcs_LocationNotification" },
15681         { 115, "lcs_MOLR" },
15682         { 114, "lcs_AreaEventRequest" },
15683         { 113, "lcs_AreaEventReport" },
15684         { 112, "lcs_AreaEventCancellation" },
15685         { 111, "lcs_PeriodicLocationRequest" },
15686         { 110, "lcs_LocationUpdate" },
15687         { 109, "lcs_PeriodicLocationCancellation" },
15688
15689 /*--- End of included file: packet-gsm_map-table.c ---*/
15690 #line 883 "packet-gsmmap-template.c"
15691   { 0, NULL }
15692 };
15693 static const value_string gsm_map_err_code_string_vals[] = {
15694
15695 /*--- Included file: packet-gsm_map-table.c ---*/
15696 #line 1 "packet-gsm_map-table.c"
15697
15698 /* --- Module Remote-Operations-Information-Objects --- --- ---               */
15699
15700 /* Unknown or empty loop list OPERATION */
15701
15702 /* --- Module MobileDomainDefinitions --- --- ---                             */
15703
15704 /* Unknown or empty loop list OPERATION */
15705
15706 /* --- Module MAP-ApplicationContexts --- --- ---                             */
15707
15708 /* Unknown or empty loop list OPERATION */
15709
15710 /* --- Module MAP-SS-Code --- --- ---                                         */
15711
15712 /* Unknown or empty loop list OPERATION */
15713
15714 /* --- Module MAP-BS-Code --- --- ---                                         */
15715
15716 /* Unknown or empty loop list OPERATION */
15717
15718 /* --- Module MAP-TS-Code --- --- ---                                         */
15719
15720 /* Unknown or empty loop list OPERATION */
15721
15722 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
15723
15724 /* Unknown or empty loop list OPERATION */
15725
15726 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
15727
15728 /* Unknown or empty loop list OPERATION */
15729
15730 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
15731
15732 /* Unknown or empty loop list OPERATION */
15733
15734 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
15735
15736 /* Unknown or empty loop list OPERATION */
15737
15738 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
15739
15740 /* Unknown or empty loop list OPERATION */
15741
15742 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
15743
15744 /* Unknown or empty loop list OPERATION */
15745
15746 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
15747
15748 /* Unknown or empty loop list OPERATION */
15749
15750 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
15751
15752 /* Unknown or empty loop list OPERATION */
15753
15754 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
15755
15756 /* Unknown or empty loop list OPERATION */
15757
15758 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
15759
15760 /* Unknown or empty loop list OPERATION */
15761
15762 /* --- Module MAP-DialogueInformation --- --- ---                             */
15763
15764 /* Unknown or empty loop list OPERATION */
15765
15766 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
15767
15768         { 85, "sendRoutingInfoForLCS" },
15769         { 83, "provideSubscriberLocation" },
15770         { 86, "subscriberLocationReport" },
15771
15772 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
15773
15774         { 39, "prepareGroupCall" },
15775         { 40, "sendGroupCallEndSignal" },
15776         { 41, "processGroupCallSignalling" },
15777         { 42, "forwardGroupCallSignalling" },
15778         { 84, "sendGroupCallInfo" },
15779
15780 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
15781
15782         { 45, "sendRoutingInfoForSM" },
15783         { 46, "mo_ForwardSM" },
15784         { 44, "mt_ForwardSM" },
15785         { 47, "reportSM_DeliveryStatus" },
15786         { 64, "alertServiceCentre" },
15787         { 63, "informServiceCentre" },
15788         { 66, "readyForSM" },
15789         { 21, "mt_ForwardSM_VGCS" },
15790
15791 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
15792
15793         { 10, "registerSS" },
15794         { 11, "eraseSS" },
15795         { 12, "activateSS" },
15796         { 13, "deactivateSS" },
15797         { 14, "interrogateSS" },
15798         { 59, "processUnstructuredSS_Request" },
15799         { 60, "unstructuredSS_Request" },
15800         { 61, "unstructuredSS_Notify" },
15801         { 17, "registerPassword" },
15802         { 18, "getPassword" },
15803         { 72, "ss_InvocationNotification" },
15804         { 76, "registerCC_Entry" },
15805         { 77, "eraseCC_Entry" },
15806
15807 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
15808
15809         { 22, "sendRoutingInfo" },
15810         { 4, "provideRoamingNumber" },
15811         { 6, "resumeCallHandling" },
15812         { 73, "setReportingState" },
15813         { 74, "statusReport" },
15814         { 75, "remoteUserFree" },
15815         { 87, "ist_Alert" },
15816         { 88, "ist_Command" },
15817         { 20, "releaseResources" },
15818
15819 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
15820
15821         { 50, "activateTraceMode" },
15822         { 51, "deactivateTraceMode" },
15823         { 58, "sendIMSI" },
15824
15825 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
15826
15827         { 2, "updateLocation" },
15828         { 3, "cancelLocation" },
15829         { 67, "purgeMS" },
15830         { 55, "sendIdentification" },
15831         { 23, "updateGprsLocation" },
15832         { 70, "provideSubscriberInfo" },
15833         { 71, "anyTimeInterrogation" },
15834         { 62, "anyTimeSubscriptionInterrogation" },
15835         { 65, "anyTimeModification" },
15836         { 5, "noteSubscriberDataModified" },
15837         { 68, "prepareHandover" },
15838         { 29, "sendEndSignal" },
15839         { 33, "processAccessSignalling" },
15840         { 34, "forwardAccessSignalling" },
15841         { 69, "prepareSubsequentHandover" },
15842         { 56, "sendAuthenticationInfo" },
15843         { 15, "authenticationFailureReport" },
15844         { 43, "checkIMEI" },
15845         { 7, "insertSubscriberData" },
15846         { 8, "deleteSubscriberData" },
15847         { 37, "reset" },
15848         { 38, "forwardCheckSS_Indication" },
15849         { 57, "restoreData" },
15850         { 24, "sendRoutingInfoForGprs" },
15851         { 25, "failureReport" },
15852         { 26, "noteMsPresentForGprs" },
15853         { 89, "noteMM_Event" },
15854
15855 /* --- Module MAP-Errors --- --- ---                                          */
15856
15857 /* Unknown or empty loop list OPERATION */
15858
15859 /* --- Module MAP-Protocol --- --- ---                                        */
15860
15861 /* Unknown or empty loop list OPERATION */
15862
15863 /* --- Module DummyMAP --- --- ---                                            */
15864
15865 /* Unknown or empty loop list OPERATION */
15866
15867 /* --- Module SS-DataTypes --- --- ---                                        */
15868
15869 /* Unknown or empty loop list OPERATION */
15870
15871 /* --- Module SS-Operations --- --- ---                                       */
15872
15873         { 19, "processUnstructuredSS_Data" },
15874         { 54, "beginSubscriberActivity" },
15875         { 16, "notifySS" },
15876         { 125, "forwardChargeAdvice" },
15877         { 120, "forwardCUG_Info" },
15878         { 124, "buildMPTY" },
15879         { 123, "holdMPTY" },
15880         { 122, "retrieveMPTY" },
15881         { 121, "splitMPTY" },
15882         { 126, "explicitCT" },
15883         { 119, "accessRegisterCCEntry" },
15884         { 117, "callDeflection" },
15885         { 118, "userUserService" },
15886         { 116, "lcs_LocationNotification" },
15887         { 115, "lcs_MOLR" },
15888         { 114, "lcs_AreaEventRequest" },
15889         { 113, "lcs_AreaEventReport" },
15890         { 112, "lcs_AreaEventCancellation" },
15891         { 111, "lcs_PeriodicLocationRequest" },
15892         { 110, "lcs_LocationUpdate" },
15893         { 109, "lcs_PeriodicLocationCancellation" },
15894
15895 /*--- End of included file: packet-gsm_map-table.c ---*/
15896 #line 887 "packet-gsmmap-template.c"
15897     { 0, NULL }
15898 };
15899 static const true_false_string gsm_map_extension_value = {
15900   "No Extension",
15901   "Extension"
15902 };
15903 static const value_string gsm_map_nature_of_number_values[] = {
15904         {   0x00,       "unknown" },
15905         {   0x01,       "International Number" },
15906         {   0x02,       "National Significant Number" },
15907         {   0x03,       "Network Specific Number" },
15908         {   0x04,       "Subscriber Number" },
15909         {   0x05,       "Reserved" },
15910         {   0x06,       "Abbreviated Number" },
15911         {   0x07,       "Reserved for extension" },
15912         { 0, NULL }
15913 };
15914 static const value_string gsm_map_number_plan_values[] = {
15915         {   0x00,       "unknown" },
15916         {   0x01,       "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
15917         {   0x02,       "spare" },
15918         {   0x03,       "Data Numbering (ITU-T Rec. X.121)" },
15919         {   0x04,       "Telex Numbering (ITU-T Rec. F.69)" },
15920         {   0x05,       "spare" },
15921         {   0x06,       "Land Mobile Numbering (ITU-T Rec. E.212)" },
15922         {   0x07,       "spare" },
15923         {   0x08,       "National Numbering" },
15924         {   0x09,       "Private Numbering" },
15925         {   0x0f,       "Reserved for extension" },
15926         { 0, NULL }
15927 };
15928
15929 static const true_false_string gsm_map_Ss_Status_q_bit_values = {
15930   "Quiescent",
15931   "Operative"
15932 };
15933 static const true_false_string gsm_map_Ss_Status_p_values = {
15934   "Provisioned",
15935   "Not Provisioned"
15936 };
15937 static const true_false_string gsm_map_Ss_Status_r_values = {
15938   "Registered",
15939   "Not Registered"
15940 };
15941 static const true_false_string gsm_map_Ss_Status_a_values = {
15942   "Active",
15943   "not Active"
15944 };
15945
15946 /*
15947  * Translate the MAP operation code value to a text string
15948  * Take into account the MAP version for ForwardSM
15949  */
15950 const gchar* gsm_map_opr_code(guint32 val) {
15951   switch (val) { 
15952   case 44: /*mt-forwardSM*/
15953   case 46: /*mo-forwardSM*/
15954     if (application_context_version < 3) {
15955       return val_to_str(val, gsm_map_V1V2_opr_code_strings, "Unknown GSM-MAP (%u)");
15956     }
15957     /* Else use the default map operation translation */
15958   default:
15959     return val_to_str(val, gsm_old_GSMMAPOperationLocalvalue_vals, "Unknown GSM-MAP opcode (%u)");
15960     break;
15961   }
15962 }
15963
15964 /* Prototype for a decoding function */
15965 typedef int (* dissect_function_t)( gboolean,
15966                                     tvbuff_t *,
15967                                     int ,
15968                                         asn1_ctx_t *,
15969                                     proto_tree *,
15970                                     int);
15971
15972 /*
15973  * Dissect Multiple Choice Message
15974  * This function is used to decode a message, when several encoding may be used.
15975  * For exemple, in the last MAP version, the Cancel Location is defined like this:
15976  * CancelLocationArg ::= [3] IMPLICIT SEQUENCE
15977  * But in the previous MAP version, it was a CHOICE between a SEQUENCE and an IMSI
15978  * As ASN1 encoders (or software) still uses the old encoding, this function allows
15979  * the decoding of both versions.
15980  * Moreover, some optimizations (or bad practice ?) in ASN1 encoder, removes the 
15981  * SEQUENCE tag, when only one parameter is present in the SEQUENCE.
15982  * This explain why the function expects 3 parameters:
15983  * - a [3] SEQUENCE corresponding the recent ASN1 MAP encoding
15984  * - a SEQUENCE for old style
15985  * - and a single parameter, for old version or optimizations
15986  *
15987  * The analyze of the first ASN1 tag, indicate what kind of decoding should be used, 
15988  * if the decoding function is provided (so not a NULL function)
15989  */
15990 static int dissect_mc_message(tvbuff_t *tvb,
15991                               int offset,
15992                                   asn1_ctx_t *actx,
15993                               proto_tree *tree,
15994                               gboolean implicit_param _U_, dissect_function_t parameter, int hf_index_param _U_,
15995                               gboolean implicit_seq   _U_, dissect_function_t sequence,  int hf_index_seq   _U_,
15996                               gboolean implicit_seq3 _U_, dissect_function_t sequence3, int hf_index_seq3 _U_ )
15997 {
15998   guint8 octet;
15999   gint8 bug_class;
16000   gboolean bug_pc, bug_ind_field;
16001   gint32 bug_tag;
16002   guint32 bug_len;
16003   proto_item *cause;
16004
16005   octet = tvb_get_guint8(tvb,0);
16006   if ( (octet & 0xf) == 3) {
16007     /* XXX  asn2wrs can not yet handle tagged assignment yes so this
16008      * XXX is some conformance file magic to work around that bug
16009      */
16010     offset = get_ber_identifier(tvb, offset, &bug_class, &bug_pc, &bug_tag);
16011     offset = get_ber_length(tvb, offset, &bug_len, &bug_ind_field);
16012     if (sequence3 != NULL) {
16013       offset= (sequence3) (implicit_seq3, tvb, offset, actx, tree, hf_index_seq3);
16014     } else {
16015       cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented [3] sequence, cannot decode");
16016       proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR);
16017       expert_add_info_format(actx->pinfo, cause, PI_UNDECODED, PI_ERROR, "Unknown or not implemented [3] sequence");
16018     }
16019   } else if (octet == 0x30) {
16020     if (sequence != NULL) {
16021       offset= (sequence) (implicit_seq, tvb, 0, actx, tree, hf_index_seq);
16022     } else {
16023       cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented sequence");
16024       proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR);
16025       expert_add_info_format(actx->pinfo, cause, PI_UNDECODED, PI_ERROR, "Unknown or not implemented sequence");
16026     }
16027   } else {
16028     if (parameter != NULL) {
16029       offset= (parameter) (implicit_param, tvb, offset, actx, tree, hf_index_param);
16030     } else {
16031       cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented parameter");
16032       proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR);
16033       expert_add_info_format(actx->pinfo, cause, PI_UNDECODED, PI_ERROR, "Unknown or not implemented parameter");
16034     }
16035   }
16036   return offset;
16037 }
16038
16039 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
16040  
16041   proto_item *cause;
16042
16043   switch(opcode){
16044   case  2: /*updateLocation*/   
16045     offset=dissect_gsm_map_ms_UpdateLocationArg(FALSE, tvb, offset, actx, tree, -1);
16046     break;
16047   case  3: /*cancelLocation*/
16048     offset=dissect_mc_message(tvb, offset, actx, tree,    
16049                               FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
16050                               FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
16051                               TRUE , dissect_gsm_map_ms_CancelLocationArg, -1);/*undefined*/
16052     break;
16053   case  4: /*provideRoamingNumber*/
16054     offset=dissect_gsm_map_ch_ProvideRoamingNumberArg(FALSE, tvb, offset, actx, tree, -1);
16055     break;
16056   case  5: /*noteSubscriberDataModified*/
16057     offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(FALSE, tvb, offset, actx, tree, -1);
16058     break;
16059   case  6: /*resumeCallHandling*/
16060     offset=dissect_gsm_map_ch_ResumeCallHandlingArg(FALSE, tvb, offset, actx, tree, -1);
16061     break;
16062   case  7: /*insertSubscriberData*/
16063     offset=dissect_gsm_map_ms_InsertSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
16064     break;
16065   case  8: /*deleteSubscriberData*/
16066     offset=dissect_gsm_map_ms_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
16067     break;
16068     /* TODO find out why this isn't in the ASN1 file */
16069     /* reserved sendParameters (9) */
16070   case  10: /*registerSS*/
16071     offset=dissect_gsm_map_ss_RegisterSS_Arg(FALSE, tvb, offset, actx, tree, -1);
16072     break;
16073   case  11: /*eraseSS*/
16074     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
16075     break;
16076   case 12: /*activateSS*/
16077     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
16078     break;
16079   case 13: /*deactivateSS*/
16080     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
16081     break;
16082   case 14: /*interrogateSS*/
16083     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
16084     break;
16085   case 15: /*authenticationFailureReport*/
16086     offset=dissect_gsm_map_ms_AuthenticationFailureReportArg(FALSE, tvb, offset, actx, tree, -1);
16087     break;
16088   case 16: /*SS-protocol notifySS*/
16089     offset=dissect_gsm_ss_NotifySS_Arg(FALSE, tvb, offset, actx, tree, -1);
16090     break;
16091   case 17: /*registerPassword*/
16092     offset=dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
16093     break;
16094   case 18: /*getPassword*/
16095     offset=dissect_gsm_old_GetPasswordArg(FALSE, tvb, offset, actx, tree, hf_gsm_map_getPassword);
16096     break;
16097   case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
16098     offset=dissect_gsm_ss_SS_UserData(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData);
16099     break;
16100   case 20: /*releaseResources*/
16101     offset=dissect_gsm_map_ch_ReleaseResourcesArg(FALSE, tvb, offset, actx, tree, -1);
16102     break;
16103   case 21: /*mt-ForwardSM-VGCS*/
16104     offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(FALSE, tvb, offset, actx, tree, -1);
16105     break;
16106   case 22: /*sendRoutingInfo*/
16107           if (application_context_version == 3){
16108                   offset=dissect_gsm_map_ch_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1);
16109           }else{
16110                   offset=dissect_gsm_old_SendRoutingInfoArgV2(FALSE, tvb, offset, actx, tree, -1);
16111           }
16112     break;
16113   case 23: /*updateGprsLocation*/
16114     offset=dissect_gsm_map_ms_UpdateGprsLocationArg(FALSE, tvb, offset, actx, tree, -1);
16115     break;
16116   case 24: /*sendRoutingInfoForGprs*/
16117     offset=dissect_gsm_map_ms_SendRoutingInfoForGprsArg(FALSE, tvb, offset, actx, tree, -1);
16118     break;
16119   case 25: /*failureReport*/
16120     offset=dissect_gsm_map_ms_FailureReportArg(FALSE, tvb, offset, actx, tree, -1);
16121     break;
16122   case 26: /*noteMsPresentForGprs*/
16123     offset=dissect_gsm_map_ms_NoteMsPresentForGprsArg(FALSE, tvb, offset, actx, tree, -1);
16124     break;
16125     /* undefined 27 */
16126     /* reserved performHandover (28) */
16127   case 29: /*sendEndSignal*/
16128     offset=dissect_mc_message(tvb, offset, actx, tree,    
16129                               FALSE, NULL, -1,
16130                               FALSE, dissect_gsm_old_Bss_APDU, -1,
16131                               TRUE , dissect_gsm_map_ms_SendEndSignal_Arg, -1);
16132     break;
16133     /* reserved performSubsequentHandover (30) */
16134   case 31: /*provideSIWFSNumber*/
16135     offset=dissect_gsm_old_ProvideSIWFSNumberArg(FALSE, tvb, offset, actx, tree, -1);
16136     break;
16137   case 32: /*sIWFSSignallingModify*/
16138     offset=dissect_gsm_old_SIWFSSignallingModifyArg(FALSE, tvb, offset, actx, tree, -1);
16139     break;
16140   case 33: /*processAccessSignalling*/
16141     offset=dissect_mc_message(tvb, offset, actx, tree,    
16142                               FALSE, NULL, -1,
16143                               FALSE, dissect_gsm_old_Bss_APDU, -1,
16144                               TRUE , dissect_gsm_map_ms_ProcessAccessSignalling_Arg, -1);
16145     break;
16146   case 34: /*forwardAccessSignalling*/
16147     offset=dissect_mc_message(tvb, offset, actx, tree,    
16148                               FALSE, NULL, -1,
16149                               FALSE, dissect_gsm_old_Bss_APDU, -1,
16150                               TRUE , dissect_gsm_map_ms_ForwardAccessSignalling_Arg, -1);
16151     break;
16152     /* reserved noteInternalHandover (35) */
16153     /* undefined 36 */
16154   case 37: /*reset*/
16155     offset=dissect_gsm_map_ms_ResetArg(FALSE, tvb, offset, actx, tree, -1);
16156     break;
16157   case 38: /*forwardCheckSS-Indication*/
16158     return offset;
16159     break;
16160   case 39: /*prepareGroupCall*/
16161     offset=dissect_gsm_map_gr_PrepareGroupCallArg(FALSE, tvb, offset, actx, tree, -1);
16162     break;
16163   case 40: /*sendGroupCallEndSignal*/
16164     offset = dissect_gsm_map_gr_SendGroupCallEndSignalArg(FALSE, tvb, offset, actx, tree, -1);
16165     break;
16166   case 41: /*processGroupCallSignalling*/
16167     offset = dissect_gsm_map_gr_ProcessGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1);
16168     break;
16169   case 42: /*forwardGroupCallSignalling*/
16170     offset=dissect_gsm_map_gr_ForwardGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1);
16171     break;
16172   case 43: /*checkIMEI*/
16173     offset=dissect_mc_message(tvb, offset, actx, tree,    
16174                               FALSE, dissect_gsm_map_IMEI, hf_gsm_map_ms_imei,
16175                               FALSE, dissect_gsm_map_ms_CheckIMEI_Arg, -1,
16176                               TRUE , NULL, -1); /* no [3] SEQUENCE */
16177     break;
16178   case 44: /*mt-forwardSM(v3) or ForwardSM(v1/v2)*/
16179     if (application_context_version == 3)
16180       offset=dissect_gsm_map_sm_MT_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16181     else {
16182       offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16183     }
16184     break;
16185   case 45: /*sendRoutingInfoForSM*/
16186     offset=dissect_gsm_map_sm_RoutingInfoForSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16187     break;
16188   case 46: /*mo-forwardSM(v3) or ForwardSM(v1/v2)*/
16189     if (application_context_version == 3)
16190       offset=dissect_gsm_map_sm_MO_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16191     else {
16192       offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16193     }
16194     break;
16195   case 47: /*reportSM-DeliveryStatus*/
16196     offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, actx, tree, -1);
16197     break;
16198     /* reserved noteSubscriberPresent (48) */
16199     /* reserved alertServiceCentreWithoutResult (49)  
16200          * ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
16201          * -- alertServiceCentreWithoutResult must not be used in
16202          * -- version greater 1
16203          */
16204   case 49:
16205         offset = dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
16206         break;
16207   case 50: /*activateTraceMode*/
16208     offset=dissect_gsm_map_om_ActivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1);
16209     break;
16210   case 51: /*deactivateTraceMode*/
16211     offset=dissect_gsm_map_om_DeactivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1);
16212     break;
16213     /* reserved traceSubscriberActivity (52) */
16214     /* undefined 53 */
16215   case 54: /*beginSubscriberActivity*/
16216     offset=dissect_gsm_ss_BeginSubscriberActivityArg(FALSE, tvb, offset, actx, tree, -1);
16217     break;
16218   case 55: /*sendIdentification*/
16219     offset=dissect_mc_message(tvb, offset, actx, tree,    
16220                               FALSE, dissect_gsm_map_TMSI, hf_gsm_map_tmsi,
16221                               FALSE, dissect_gsm_map_ms_SendIdentificationArg, -1,
16222                               TRUE,  NULL, -1);
16223     break;
16224   case 56: /*sendAuthenticationInfo*/ 
16225     offset=dissect_mc_message(tvb, offset, actx, tree,    
16226                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
16227                               FALSE, dissect_gsm_map_ms_SendAuthenticationInfoArg, -1,
16228                               TRUE,  NULL, -1);
16229     break;
16230   case 57: /*restoreData*/
16231     offset=dissect_gsm_map_ms_RestoreDataArg(FALSE, tvb, offset, actx, tree, -1);
16232     break;
16233   case 58: /*sendIMSI*/
16234     offset = dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_msisdn);
16235     break;
16236   case 59: /*processUnstructuredSS-Request*/
16237     offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
16238     break;
16239   case 60: /*unstructuredSS-Request*/
16240     offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
16241     break;
16242   case 61: /*unstructuredSS-Notify*/
16243     offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
16244     break;
16245   case 62: /*AnyTimeSubscriptionInterrogation*/
16246     offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(FALSE, tvb, offset, actx, tree, -1);
16247     break;
16248   case 63: /*informServiceCentre*/
16249     offset=dissect_gsm_map_sm_InformServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
16250     break;
16251   case 64: /*alertServiceCentre*/
16252     offset=dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
16253     break;
16254   case 65: /*AnyTimeModification*/
16255     offset=dissect_gsm_map_ms_AnyTimeModificationArg(FALSE, tvb, offset, actx, tree, -1);
16256     break;
16257   case 66: /*readyForSM*/
16258     offset=dissect_gsm_map_sm_ReadyForSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16259     break;
16260   case 67: /*purgeMS*/
16261     offset=dissect_mc_message(tvb, offset, actx, tree,    
16262                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
16263                               FALSE, dissect_gsm_old_PurgeMSArgV2, -1, /*undefined*/
16264                               TRUE , dissect_gsm_map_ms_PurgeMS_Arg, -1);
16265     break;
16266   case 68: /*prepareHandover*/
16267     offset=dissect_mc_message(tvb, offset, actx, tree,    
16268                               FALSE, NULL, -1,
16269                               FALSE, dissect_gsm_old_PrepareHO_ArgOld, -1,
16270                               TRUE, dissect_gsm_map_ms_PrepareHO_Arg, -1);
16271     break;
16272   case 69: /*prepareSubsequentHandover*/
16273     offset=dissect_mc_message(tvb, offset, actx, tree,    
16274                               FALSE, NULL, -1,
16275                               FALSE, NULL, -1,
16276                               TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg, -1);
16277     break;
16278   case 70: /*provideSubscriberInfo*/
16279     offset=dissect_gsm_map_ms_ProvideSubscriberInfoArg(FALSE, tvb, offset, actx, tree, -1);
16280     break;
16281   case 71: /*anyTimeInterrogation*/
16282     offset=dissect_gsm_map_ms_AnyTimeInterrogationArg(FALSE, tvb, offset, actx, tree, -1);
16283     break;
16284   case 72: /*ss-InvocationNotificatio*/
16285     offset=dissect_gsm_map_ss_SS_InvocationNotificationArg(FALSE, tvb, offset, actx, tree, -1);
16286     break;
16287   case 73: /*setReportingState*/
16288     offset=dissect_gsm_map_ch_SetReportingStateArg(FALSE, tvb, offset, actx, tree, -1);
16289     break;
16290   case 74: /*statusReport*/
16291     offset=dissect_gsm_map_ch_StatusReportArg(FALSE, tvb, offset, actx, tree, -1);
16292     break;
16293   case 75: /*remoteUserFree*/
16294     offset=dissect_gsm_map_ch_RemoteUserFreeArg(FALSE, tvb, offset, actx, tree, -1);
16295     break;
16296   case 76: /*registerCC-Entry*/
16297     offset=dissect_gsm_map_ss_RegisterCC_EntryArg(FALSE, tvb, offset, actx, tree, -1);
16298     break;
16299   case 77: /*eraseCC-Entry*/
16300     offset=dissect_gsm_map_ss_EraseCC_EntryArg(FALSE, tvb, offset, actx, tree, -1);
16301     break;
16302   case 78: /*secureTransportClass1*/
16303   case 79: /*secureTransportClass1*/
16304   case 80: /*secureTransportClass1*/
16305   case 81: /*secureTransportClass1*/
16306     offset=dissect_gsm_old_SecureTransportArg(FALSE, tvb, offset, actx, tree, -1);
16307     break;
16308     /* undefined 82 */
16309   case 83: /*provideSubscriberLocation*/
16310     offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, actx, tree, -1);
16311     break;
16312   case 84: /*sendGroupCallInfo*/
16313     offset=dissect_gsm_map_gr_SendGroupCallInfoArg(FALSE, tvb, offset, actx, tree, -1);
16314     break;
16315   case 85: /*sendRoutingInfoForLCS*/
16316     offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(FALSE, tvb, offset, actx, tree, -1);
16317     break;
16318   case 86: /*subscriberLocationReport*/
16319     offset=dissect_gsm_map_lcs_SubscriberLocationReport_Arg(FALSE, tvb, offset, actx, tree, -1);
16320     break;
16321   case 87: /*ist-Alert*/
16322     offset=dissect_gsm_map_ch_IST_AlertArg(FALSE, tvb, offset, actx, tree, -1);
16323     break;
16324   case 88: /*ist-Command*/
16325     offset=dissect_gsm_map_ch_IST_CommandArg(FALSE, tvb, offset, actx, tree, -1);
16326     break;
16327   case 89: /*noteMM-Event*/
16328     offset=dissect_gsm_map_ms_NoteMM_EventArg(FALSE, tvb, offset, actx, tree, -1);
16329     break;
16330   case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
16331     offset=dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(FALSE, tvb, offset, actx, tree, -1);
16332     break;
16333   case 110: /*SS-protocol lcs-LocationUpdate*/
16334     offset=dissect_gsm_ss_LCS_LocationUpdateArg(FALSE, tvb, offset, actx, tree, -1);
16335     break;
16336   case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
16337     offset=dissect_gsm_ss_LCS_PeriodicLocationRequestArg(FALSE, tvb, offset, actx, tree, -1);
16338     break;
16339   case 112: /*SS-protocol lcs-AreaEventCancellation*/
16340     offset=dissect_gsm_ss_LCS_AreaEventCancellationArg(FALSE, tvb, offset, actx, tree, -1);
16341     break;
16342   case 113: /*SS-protocol lcs-AreaEventReport*/
16343     offset=dissect_gsm_ss_LCS_AreaEventReportArg(FALSE, tvb, offset, actx, tree, -1);
16344     break;
16345   case 114: /*SS-protocol lcs-AreaEventRequest*/
16346     offset=dissect_gsm_ss_LCS_AreaEventRequestArg(FALSE, tvb, offset, actx, tree, -1);
16347     break;
16348   case 115: /*SS-protocol lcs-MOLR*/
16349     offset=dissect_gsm_ss_LCS_MOLRArg(FALSE, tvb, offset, actx, tree, -1);
16350     break;
16351   case 116: /*SS-protocol lcs-LocationNotification*/
16352     offset=dissect_gsm_ss_LocationNotificationArg(FALSE, tvb, offset, actx, tree, -1);
16353     break;
16354   case 117: /*SS-protocol callDeflection*/
16355     offset=dissect_gsm_ss_CallDeflectionArg(FALSE, tvb, offset, actx, tree, -1);
16356     break;
16357   case 118: /*SS-protocol userUserService*/
16358     offset=dissect_gsm_ss_UserUserServiceArg(FALSE, tvb, offset, actx, tree, -1);
16359     break;
16360   case 119: /*SS-protocol accessRegisterCCEntry*/
16361     offset=dissect_gsm_ss_AccessRegisterCCEntryArg(FALSE, tvb, offset, actx, tree, -1);
16362     break;
16363   case 120: /*SS-protocol forwardCUG-Info*/
16364         application_context_version = 3;
16365     offset=dissect_gsm_ss_ForwardCUG_InfoArg(FALSE, tvb, offset, actx, tree, -1);
16366     break;
16367   case 121: /*SS-protocol splitMPTY no Argument*/
16368     break;
16369   case 122: /*SS-protocol retrieveMPTY no Argument*/
16370     break;
16371   case 123: /*SS-protocol holdMPTY no Argument*/
16372     break;
16373   case 124: /*SS-protocol buildMPTY no Argument*/
16374     break;
16375   case 125: /*SS-protocol forwardChargeAdvice*/
16376     offset=dissect_gsm_ss_ForwardChargeAdviceArg(FALSE, tvb, offset, actx, tree, -1);
16377     break;
16378   case 126: /*SS-protocol explicitCT no Argument*/
16379     break;
16380   default:
16381     cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
16382     proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
16383     expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",opcode);
16384   }
16385   return offset;
16386 }
16387
16388
16389 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
16390
16391   proto_item *cause;
16392         
16393   switch(opcode){
16394   case  2: /*updateLocation*/ 
16395     offset=dissect_mc_message(tvb, offset, actx, tree,    
16396                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
16397                               FALSE, dissect_gsm_map_ms_UpdateLocationRes, -1,
16398                               TRUE , NULL, -1);
16399     break;
16400   case  3: /*cancelLocation*/
16401     offset=dissect_gsm_map_ms_CancelLocationRes(FALSE, tvb, offset, actx, tree, -1);
16402     break;
16403   case  4: /*provideRoamingNumber*/
16404     offset=dissect_gsm_map_ch_ProvideRoamingNumberRes(FALSE, tvb, offset, actx, tree, -1);
16405     break;
16406   case  5: /*noteSubscriberDataModified*/
16407     offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(FALSE, tvb, offset, actx, tree, -1);
16408     break;
16409   case  6: /*resumeCallHandling*/
16410     offset=dissect_gsm_map_ch_ResumeCallHandlingRes(FALSE, tvb, offset, actx, tree, -1);
16411     break;
16412   case  7: /*insertSubscriberData*/
16413     offset=dissect_gsm_map_ms_InsertSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
16414     break;
16415   case  8: /*deleteSubscriberData*/
16416     offset=dissect_gsm_map_ms_DeleteSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
16417     break;
16418         /* TODO find out why this isn't in the ASN1 file
16419   case  9: sendParameters
16420     offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
16421     break;
16422         */
16423   case  10: /*registerSS*/
16424     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
16425     break;
16426   case  11: /*eraseSS*/
16427     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
16428     break;
16429   case 12: /*activateSS*/
16430     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
16431     break;
16432   case 13: /*deactivateSS*/
16433     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
16434     break;
16435   case 14: /*interrogateSS*/
16436     offset=dissect_gsm_map_ss_InterrogateSS_Res(FALSE, tvb, offset, actx, tree, -1);
16437     break;
16438   case 15: /*authenticationFailureReport*/
16439     offset=dissect_gsm_map_ms_AuthenticationFailureReportRes(FALSE, tvb, offset, actx, tree, -1);
16440     break;
16441   case 17: /*registerPassword*/
16442     /* change hf_gsm_map_ss_Code to something with password */
16443     offset=dissect_gsm_old_NewPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
16444     break;
16445   case 18: /*getPassword*/
16446     offset=dissect_gsm_old_CurrentPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_currentPassword);
16447     break;
16448   case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
16449     offset=dissect_gsm_ss_SS_UserData(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData);
16450     break;
16451   case 20: /*releaseResources*/
16452     offset=dissect_gsm_map_ch_ReleaseResourcesRes(FALSE, tvb, offset, actx, tree, -1);
16453     break;
16454   case 21: /*mt-ForwardSM-VGCS*/
16455     offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(FALSE, tvb, offset, actx, tree, -1);
16456     break;
16457   case 22: /*sendRoutingInfo*/ 
16458     offset=dissect_mc_message(tvb, offset, actx, tree,    
16459                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
16460                               FALSE, dissect_gsm_old_SendRoutingInfoResV2, -1,
16461                               TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
16462     break;
16463   case 23: /*updateGprsLocation*/
16464     offset=dissect_gsm_map_ms_UpdateGprsLocationRes(FALSE, tvb, offset, actx, tree, -1);
16465     break;
16466   case 24: /*sendRoutingInfoForGprs*/
16467     offset=dissect_gsm_map_ms_SendRoutingInfoForGprsRes(FALSE, tvb, offset, actx, tree, -1);
16468     break;
16469   case 25: /*failureReport*/
16470     offset=dissect_gsm_map_ms_FailureReportRes(FALSE, tvb, offset, actx, tree, -1);
16471     break;
16472   case 26: /*noteMsPresentForGprs*/
16473     offset=dissect_gsm_map_ms_NoteMsPresentForGprsRes(FALSE, tvb, offset, actx, tree, -1);
16474     break;
16475   case 29: /*sendEndSignal*/
16476           /* Taken from MAP-MobileServiceOperations{ 0 identified-organization (4) etsi (0) mobileDomain 
16477            * (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) version9 (9) }
16478            */
16479     offset=dissect_gsm_map_ms_SendEndSignal_Res(FALSE, tvb, offset, actx, tree, -1);
16480     break;
16481   case 31: /*provideSIWFSNumber*/
16482     offset=dissect_gsm_old_ProvideSIWFSNumberRes(FALSE, tvb, offset, actx, tree, -1);
16483     break;
16484   case 32: /*provideSIWFSSignallingModify*/
16485     offset=dissect_gsm_old_SIWFSSignallingModifyRes(FALSE, tvb, offset, actx, tree, -1);
16486     break;
16487   case 39: /*prepareGroupCall*/
16488     offset=dissect_gsm_map_gr_PrepareGroupCallRes(FALSE, tvb, offset, actx, tree, -1);
16489     break;
16490   case 40: /*sendGroupCallEndSignal*/
16491     offset=dissect_gsm_map_gr_SendGroupCallEndSignalRes(FALSE, tvb, offset, actx, tree, -1);
16492     break;
16493   case 43: /*checkIMEI*/ 
16494     offset=dissect_mc_message(tvb, offset, actx, tree,    
16495                               FALSE, dissect_gsm_map_ms_EquipmentStatus, hf_gsm_map_ms_equipmentStatus,
16496                               FALSE, dissect_gsm_map_ms_CheckIMEI_Res, -1,
16497                               TRUE,  NULL, -1);
16498     break;
16499   case 44: /*mt-forwardSM*/
16500     offset=dissect_gsm_map_sm_MT_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1);
16501     break;
16502   case 45: /*sendRoutingInfoForSM*/
16503     offset=dissect_gsm_map_sm_RoutingInfoForSM_Res(FALSE, tvb, offset, actx, tree, -1);
16504     break;
16505   case 46: /*mo-forwardSM*/
16506     offset=dissect_gsm_map_sm_MO_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1);
16507     break;
16508   case 47: /*reportSM-DeliveryStatus*/
16509     offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusRes(FALSE, tvb, offset, actx, tree, -1);
16510     break;
16511   case 48: /*noteSubscriberPresent*/
16512     break;
16513   case 50: /*activateTraceMode*/
16514     offset=dissect_gsm_map_om_ActivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1);
16515     break;
16516   case 51: /*deactivateTraceMode*/
16517     offset=dissect_gsm_map_om_DeactivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1);
16518     break;
16519   case 55: /*sendIdentification */
16520     offset=dissect_mc_message(tvb, offset, actx, tree,    
16521                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
16522                               FALSE, dissect_gsm_old_SendIdentificationResV2, -1,/*undefined*/
16523                               TRUE,  dissect_gsm_map_ms_SendIdentificationRes, -1);
16524     break;
16525   case 56: /*sendAuthenticationInfo*/ 
16526     offset=dissect_mc_message(tvb, offset, actx, tree,    
16527                               FALSE, NULL, -1,
16528                               FALSE, dissect_gsm_old_SendAuthenticationInfoResOld, -1,
16529                               TRUE , dissect_gsm_map_ms_SendAuthenticationInfoRes, -1);
16530     break;
16531   case 57: /*restoreData*/
16532     offset=dissect_gsm_map_ms_RestoreDataRes(FALSE, tvb, offset, actx, tree, -1);
16533     break;
16534   case 58: /*sendIMSI*/
16535     offset=dissect_gsm_map_IMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_ms_imsi);
16536     break;
16537   case 59: /*unstructuredSS-Request*/
16538     offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1);
16539     break;
16540   case 60: /*unstructuredSS-Request*/
16541     offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1);
16542     break;
16543   case 61: /*unstructuredSS-Notify*/
16544     /* TRUE ? */
16545     proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
16546     break;
16547   case 62: /*AnyTimeSubscriptionInterrogation*/
16548     offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationRes(FALSE, tvb, offset, actx, tree, -1);
16549     break;
16550   case 64: /*alertServiceCentre*/
16551     /* TRUE */
16552     break;
16553   case 65: /*AnyTimeModification*/
16554     offset=dissect_gsm_map_ms_AnyTimeModificationRes(FALSE, tvb, offset, actx, tree, -1);
16555     break;
16556   case 66: /*readyForSM*/
16557     offset=dissect_gsm_map_sm_ReadyForSM_Res(FALSE, tvb, offset, actx, tree, -1);
16558     break;
16559   case 67: /*purgeMS*/
16560     offset=dissect_gsm_map_ms_PurgeMS_Res(FALSE, tvb, offset, actx, tree, -1);
16561     break;
16562   case 68: /*prepareHandover*/ 
16563     offset=dissect_mc_message(tvb, offset, actx, tree,    
16564                               FALSE, NULL, -1,
16565                               FALSE, dissect_gsm_old_PrepareHO_ResOld, -1,
16566                               TRUE , dissect_gsm_map_ms_PrepareHO_Res, -1);
16567     break;
16568   case 69: /*prepareSubsequentHandover*/
16569     offset=dissect_mc_message(tvb, offset, actx, tree,    
16570                               FALSE, NULL, -1,
16571                               FALSE, NULL, -1,
16572                               TRUE , dissect_gsm_map_ms_PrepareSubsequentHO_Res, -1);
16573     break;
16574   case 70: /*provideSubscriberInfo*/
16575     offset=dissect_gsm_map_ms_ProvideSubscriberInfoRes(FALSE, tvb, offset, actx, tree, -1);
16576     break;
16577   case 71: /*anyTimeInterrogation*/
16578     offset=dissect_gsm_map_ms_AnyTimeInterrogationRes(FALSE, tvb, offset, actx, tree, -1);
16579     break;
16580   case 72: /*ss-InvocationNotificatio*/
16581     offset=dissect_gsm_map_ss_SS_InvocationNotificationRes(FALSE, tvb, offset, actx, tree, -1);
16582     break;
16583   case 73: /*setReportingState*/
16584     offset=dissect_gsm_map_ch_SetReportingStateRes(FALSE, tvb, offset, actx, tree, -1);
16585     break;
16586   case 74: /*statusReport*/
16587     offset=dissect_gsm_map_ch_StatusReportRes(FALSE, tvb, offset, actx, tree, -1);
16588     break;
16589   case 75: /*remoteUserFree*/
16590     offset=dissect_gsm_map_ch_RemoteUserFreeRes(FALSE, tvb, offset, actx, tree, -1);
16591     break;
16592   case 76: /*registerCC-Entry*/
16593     offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
16594     break;
16595   case 77: /*eraseCC-Entry*/
16596     offset=dissect_gsm_map_ss_EraseCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
16597     break;
16598   case 78: /*secureTransportClass1*/
16599   case 79: /*secureTransportClass2*/
16600   case 80: /*secureTransportClass3*/
16601   case 81: /*secureTransportClass4*/
16602     offset=dissect_gsm_old_SecureTransportRes(FALSE, tvb, offset, actx, tree, -1);
16603     break;
16604   case 83: /*provideSubscriberLocation*/
16605     offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(FALSE, tvb, offset, actx, tree, -1);
16606     break;
16607   case 84: /*sendGroupCallInfo*/
16608     offset=dissect_gsm_map_gr_SendGroupCallInfoRes(FALSE, tvb, offset, actx, tree, -1);
16609     break;
16610   case 85: /*sendRoutingInfoForLCS*/
16611     offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Res(FALSE, tvb, offset, actx, tree, -1);
16612     break;
16613   case 86: /*subscriberLocationReport*/
16614     offset=dissect_gsm_map_lcs_SubscriberLocationReport_Res(FALSE, tvb, offset, actx, tree, -1);
16615     break;
16616   case 87: /*ist-Alert*/
16617     offset=dissect_gsm_map_ch_IST_AlertRes(FALSE, tvb, offset, actx, tree, -1);
16618     break;
16619   case 88: /*ist-Command*/
16620     offset=dissect_gsm_map_ch_IST_CommandRes(FALSE, tvb, offset, actx, tree, -1);
16621     break;
16622   case 89: /*noteMM-Event*/
16623     offset=dissect_gsm_map_ms_NoteMM_EventRes(FALSE, tvb, offset, actx, tree, -1);
16624     break;
16625   case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
16626           /* No parameter */
16627     break;
16628   case 110: /*SS-protocol lcs-LocationUpdate*/
16629           offset=dissect_gsm_ss_LCS_LocationUpdateRes(FALSE, tvb, offset, actx, tree, -1);
16630     break;
16631   case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
16632     offset=dissect_gsm_ss_LCS_PeriodicLocationRequestRes(FALSE, tvb, offset, actx, tree, -1);
16633     break;
16634   case 112: /*SS-protocol lcs-AreaEventCancellation*/
16635     break;
16636   case 113: /*SS-protocol lcs-AreaEventReport*/
16637     break;
16638   case 114: /*SS-protocol lcs-AreaEventRequest No RESULT data*/
16639     break;
16640   case 115: /*SS-protocol lcs-MOLR*/
16641     offset=dissect_gsm_ss_LCS_MOLRRes(FALSE, tvb, offset, actx, tree, -1);
16642     break;
16643   case 116: /*SS-protocol lcs-LocationNotification*/
16644     offset=dissect_gsm_ss_LocationNotificationRes(FALSE, tvb, offset, actx, tree, -1);
16645     break;
16646   case 117: /*SS-protocol callDeflection no RESULT*/
16647     break;
16648   case 118: /*SS-protocol userUserService no RESULT*/
16649     break;
16650   case 119: /*SS-protocol accessRegisterCCEntry*/
16651     offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
16652     break;
16653   case 120: /*SS-protocol forwardCUG-Info*/
16654           /* No RETURN RESULT*/
16655     break;
16656   case 121: /*SS-protocol splitMPTY no RESULT*/
16657     break;
16658   case 122: /*SS-protocol retrieveMPTY no RESULT*/
16659     break;
16660   case 123: /*SS-protocol holdMPTY no RESULT*/
16661     break;
16662   case 124: /*SS-protocol buildMPTY no RESULT*/
16663     break;
16664   case 125: /*SS-protocol forwardChargeAdvice no RESULT*/
16665     break;
16666   case 126: /*SS-protocol explicitCT no RESULT*/
16667     break;
16668
16669  default:
16670    cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
16671    proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
16672    expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",opcode);
16673   }
16674   return offset;
16675 }
16676
16677
16678
16679 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
16680   proto_item *cause;
16681         
16682   switch(errorCode){
16683   case 1: /* UnknownSubscriberParam */
16684           offset=dissect_gsm_map_er_UnknownSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
16685           break;
16686   case 4: /* SecureTransportErrorParam */
16687           offset=dissect_gsm_old_SecureTransportErrorParam(FALSE, tvb, offset, actx, tree, -1);
16688           break;
16689   case 5: /* UnidentifiedSubParam */
16690           offset=dissect_gsm_map_er_UnidentifiedSubParam(FALSE, tvb, offset, actx, tree, -1);
16691           break;
16692   case 6: /* AbsentSubscriberSM-Param */
16693           offset=dissect_gsm_map_er_AbsentSubscriberSM_Param(FALSE, tvb, offset, actx, tree, -1);
16694           break;
16695   case 8: /* RoamingNotAllowedParam */
16696           offset=dissect_gsm_map_er_RoamingNotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
16697           break;
16698   case 9: /* IllegalSubscriberParam */
16699           offset=dissect_gsm_map_er_IllegalSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
16700           break;
16701   case 10: /* BearerServNotProvParam */
16702           offset=dissect_gsm_map_er_BearerServNotProvParam(FALSE, tvb, offset, actx, tree, -1);
16703           break;
16704   case 11: /* TeleservNotProvParam */
16705           offset=dissect_gsm_map_er_TeleservNotProvParam(FALSE, tvb, offset, actx, tree, -1);
16706           break;
16707   case 12: /* IllegalEquipmentParam */
16708           offset=dissect_gsm_map_er_IllegalEquipmentParam(FALSE, tvb, offset, actx, tree, -1);
16709           break;
16710   case 13: /* CallBarredParam */
16711           offset=dissect_gsm_map_er_CallBarredParam(FALSE, tvb, offset, actx, tree, -1);
16712           break;
16713   case 14: /* ForwardingViolationParam */
16714           offset=dissect_gsm_map_er_ForwardingViolationParam(FALSE, tvb, offset, actx, tree, -1);
16715           break;
16716   case 15: /* CUG-RejectParam */
16717           offset=dissect_gsm_map_er_CUG_RejectParam(FALSE, tvb, offset, actx, tree, -1);
16718           break;
16719   case 16: /* IllegalSS-OperationParam */
16720           offset=dissect_gsm_map_er_IllegalSS_OperationParam(FALSE, tvb, offset, actx, tree, -1);
16721           break;
16722   case 17: /* SS-ErrorStatus */
16723           offset=dissect_gsm_map_ss_SS_Status(FALSE, tvb, offset, actx, tree, -1);
16724           break;
16725   case 18: /* SS-NotAvailableParam */
16726           offset=dissect_gsm_map_er_SS_NotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
16727           break;
16728   case 19: /* SS-SubscriptionViolationParam */
16729           offset=dissect_gsm_map_er_SS_SubscriptionViolationParam(FALSE, tvb, offset, actx, tree, -1);
16730           break;
16731   case 20: /* SS-IncompatibilityCause */
16732           offset=dissect_gsm_map_er_SS_IncompatibilityCause(FALSE, tvb, offset, actx, tree, -1);
16733           break;
16734   case 21: /* FacilityNotSupParam */
16735           offset=dissect_gsm_map_er_FacilityNotSupParam(FALSE, tvb, offset, actx, tree, -1);
16736           break;
16737   case 22: /* OngoingGroupCallParam */
16738           offset=dissect_gsm_map_er_OngoingGroupCallParam(FALSE, tvb, offset, actx, tree, -1);
16739           break;
16740   case 27: /* AbsentSubscriberParam */
16741           offset=dissect_gsm_map_er_AbsentSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
16742           break;
16743   case 28: /* IncompatibleTerminalParam */
16744           offset=dissect_gsm_map_er_IncompatibleTerminalParam(FALSE, tvb, offset, actx, tree, -1);
16745           break;
16746   case 29: /* ShortTermDenialParam */
16747           offset=dissect_gsm_map_er_ShortTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
16748           break;
16749   case 30: /* LongTermDenialParam */
16750           offset=dissect_gsm_map_er_LongTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
16751           break;
16752   case 31: /* SubBusyForMT-SMS-Param */
16753           offset=dissect_gsm_map_er_SubBusyForMT_SMS_Param(FALSE, tvb, offset, actx, tree, -1);
16754           break;
16755   case 32: /* SM-DeliveryFailureCause */
16756           offset=dissect_gsm_map_er_SM_DeliveryFailureCause(FALSE, tvb, offset, actx, tree, -1);
16757           break;
16758   case 33: /* MessageWaitListFullParam */
16759           offset=dissect_gsm_map_er_MessageWaitListFullParam(FALSE, tvb, offset, actx, tree, -1);
16760           break;
16761   case 34: /* SystemFailureParam */
16762           offset=dissect_gsm_map_er_SystemFailureParam(FALSE, tvb, offset, actx, tree, -1);
16763           break;
16764   case 35: /* DataMissingParam */
16765           offset=dissect_gsm_map_er_DataMissingParam(FALSE, tvb, offset, actx, tree, -1);
16766           break;
16767   case 36: /* UnexpectedDataParam */
16768           offset=dissect_gsm_map_er_UnexpectedDataParam(FALSE, tvb, offset, actx, tree, -1);
16769           break;
16770   case 37: /* PW-RegistrationFailureCause */
16771           offset=dissect_gsm_map_er_PW_RegistrationFailureCause(FALSE, tvb, offset, actx, tree, -1);
16772           break;
16773   case 39: /* NoRoamingNbParam */
16774           offset=dissect_gsm_map_er_NoRoamingNbParam(FALSE, tvb, offset, actx, tree, -1);
16775           break;
16776   case 40: /* TracingBufferFullParam */
16777           offset=dissect_gsm_map_er_TracingBufferFullParam(FALSE, tvb, offset, actx, tree, -1);
16778           break;
16779   case 42: /* TargetCellOutsideGCA-Param */
16780           offset=dissect_gsm_map_er_TargetCellOutsideGCA_Param(FALSE, tvb, offset, actx, tree, -1);
16781           break;
16782   case 44: /* NumberChangedParam */
16783           offset=dissect_gsm_map_er_NumberChangedParam(FALSE, tvb, offset, actx, tree, -1);
16784           break;
16785   case 45: /* BusySubscriberParam */
16786           offset=dissect_gsm_map_er_BusySubscriberParam(FALSE, tvb, offset, actx, tree, -1);
16787           break;
16788   case 46: /* NoSubscriberReplyParam */
16789           offset=dissect_gsm_map_er_NoSubscriberReplyParam(FALSE, tvb, offset, actx, tree, -1);
16790           break;
16791   case 47: /* ForwardingFailedParam */
16792           offset=dissect_gsm_map_er_ForwardingFailedParam(FALSE, tvb, offset, actx, tree, -1);
16793           break;
16794   case 48: /* OR-NotAllowedParam */
16795           offset=dissect_gsm_map_er_OR_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
16796           break;
16797   case 49: /* ATI-NotAllowedParam */
16798           offset=dissect_gsm_map_er_ATI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
16799           break;
16800   case 50: /* NoGroupCallNbParam */
16801           offset=dissect_gsm_map_er_NoGroupCallNbParam(FALSE, tvb, offset, actx, tree, -1);
16802           break;
16803   case 51: /* ResourceLimitationParam */
16804           offset=dissect_gsm_map_er_ResourceLimitationParam(FALSE, tvb, offset, actx, tree, -1);
16805           break;
16806   case 52: /* UnauthorizedRequestingNetwork-Param */
16807           offset=dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(FALSE, tvb, offset, actx, tree, -1);
16808           break;
16809   case 53: /* UnauthorizedLCSClient-Param */
16810           offset=dissect_gsm_map_er_UnauthorizedLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
16811           break;
16812   case 54: /* PositionMethodFailure-Param */
16813           offset=dissect_gsm_map_er_PositionMethodFailure_Param(FALSE, tvb, offset, actx, tree, -1);
16814           break;
16815   case 58: /* UnknownOrUnreachableLCSClient-Param */
16816           offset=dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
16817           break;
16818   case 59: /* MM-EventNotSupported-Param */
16819           offset=dissect_gsm_map_er_MM_EventNotSupported_Param(FALSE, tvb, offset, actx, tree, -1);
16820           break;
16821   case 60: /* ATSI-NotAllowedParam */
16822           offset=dissect_gsm_map_er_ATSI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
16823           break;
16824   case 61: /* ATM-NotAllowedParam */
16825           offset=dissect_gsm_map_er_ATM_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
16826           break;
16827   case 62: /* InformationNotAvailableParam */
16828           offset=dissect_gsm_map_er_InformationNotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
16829           break;
16830   default:
16831     cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnErrorData blob");
16832     proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
16833     expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",errorCode);
16834     break;
16835   }
16836   return offset;
16837 }
16838
16839 /* Private extension container for PLMN Data */
16840 static void dissect_gsm_mapext_PlmnContainer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) {
16841   proto_item    *item=NULL;
16842   proto_tree    *tree=NULL;
16843   asn1_ctx_t asn1_ctx;
16844   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);  
16845   /* create display subtree for the protocol */
16846   if(parent_tree){
16847     item = proto_tree_add_text(parent_tree, tvb, 0, -1, "MAP Ext. Plmn Container");
16848     tree = proto_item_add_subtree(item, ett_gsm_old_PlmnContainer_U);
16849   }
16850   dissect_gsm_old_PlmnContainer(FALSE, tvb, 0, &asn1_ctx, tree, -1);
16851 }
16852
16853
16854 static guint8 gsmmap_pdu_type = 0;
16855 static guint8 gsm_map_pdu_size = 0;
16856
16857 static int
16858 dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) {
16859
16860   char *version_ptr;
16861   struct tcap_private_t * p_private_tcap;
16862
16863   opcode = 0;
16864   application_context_version = 0;
16865   if (actx->pinfo->private_data != NULL){
16866     p_private_tcap=actx->pinfo->private_data;
16867     if (p_private_tcap->acv==TRUE ){
16868       version_ptr = strrchr(p_private_tcap->oid,'.');
16869       if (version_ptr){
16870                   application_context_version = atoi(version_ptr+1);
16871           }
16872     }
16873   }
16874
16875   gsmmap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
16876   /* Get the length and add 2 */
16877   gsm_map_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
16878
16879   if (check_col(actx->pinfo->cinfo, COL_INFO)){
16880     col_set_str(actx->pinfo->cinfo, COL_INFO, val_to_str(gsmmap_pdu_type, gsm_old_Component_vals, "Unknown GSM-MAP PDU (%u)"));
16881         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " ");
16882   }
16883   offset = dissect_gsm_old_Component(FALSE, tvb, 0, actx, tree, hf_gsm_map_old_Component_PDU);
16884   return offset;
16885 /*
16886   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
16887                               GSMMAPPDU_choice, hf_index, ett_gsm_map_GSMMAPPDU, NULL);
16888 */
16889
16890   return offset;
16891 }
16892
16893 static void
16894 dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
16895 {
16896     proto_item          *item=NULL;
16897     proto_tree          *tree=NULL;
16898     /* Used for gsm_map TAP */
16899     static              gsm_map_tap_rec_t tap_rec;
16900     gint                op_idx;
16901         asn1_ctx_t asn1_ctx;
16902
16903         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
16904
16905
16906     if (check_col(pinfo->cinfo, COL_PROTOCOL))
16907     {
16908         col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
16909     }
16910
16911     top_tree = parent_tree;
16912
16913     /* create display subtree for the protocol */
16914     if(parent_tree){
16915         item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, FALSE);
16916         tree = proto_item_add_subtree(item, ett_gsm_map);
16917     }
16918
16919     dissect_gsm_map_GSMMAPPDU(FALSE, tvb, 0, &asn1_ctx, tree, -1);
16920     match_strval_idx(opcode, gsm_map_opr_code_strings, &op_idx);
16921
16922     tap_rec.invoke = FALSE;
16923     if ( gsmmap_pdu_type  == 1 )
16924         tap_rec.invoke = TRUE;
16925     tap_rec.opr_code_idx = op_idx;
16926     tap_rec.size = gsm_map_pdu_size;
16927
16928     tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
16929 }
16930
16931 const value_string ssCode_vals[] = {
16932   { 0x00, "allSS - all SS" },
16933   { 0x10 ,"allLineIdentificationSS - all line identification SS" },
16934   { 0x11 ,"clip - calling line identification presentation" },
16935   { 0x12 ,"clir - calling line identification restriction" },
16936   { 0x13 ,"colp - connected line identification presentation" },
16937   { 0x14 ,"colr - connected line identification restriction" },
16938   { 0x15 ,"mci - malicious call identification" },
16939   { 0x18 ,"allNameIdentificationSS - all name indentification SS" },
16940   { 0x19 ,"cnap - calling name presentation" },
16941   { 0x20 ,"allForwardingSS - all forwarding SS" },
16942   { 0x21 ,"cfu - call forwarding unconditional" },
16943   { 0x28 ,"allCondForwardingSS - all conditional forwarding SS" },
16944   { 0x29 ,"cfb - call forwarding busy" },
16945   { 0x2a ,"cfnry - call forwarding on no reply" },
16946   { 0x2b ,"cfnrc - call forwarding on mobile subscriber not reachable" },
16947   { 0x24 ,"cd - call deflection" },
16948   { 0x30 ,"allCallOfferingSS - all call offering SS includes also all forwarding SS" },
16949   { 0x31 ,"ect - explicit call transfer" },
16950   { 0x32 ,"mah - mobile access hunting" },
16951   { 0x40 ,"allCallCompletionSS - all Call completion SS" },
16952   { 0x41 ,"cw - call waiting" },
16953   { 0x42 ,"hold - call hold" },
16954   { 0x43 ,"ccbs-A - completion of call to busy subscribers, originating side" },
16955   { 0x44 ,"ccbs-B - completion of call to busy subscribers, destination side" },
16956   { 0x45 ,"mc - multicall" },
16957   { 0x50 ,"allMultiPartySS - all multiparty SS" },
16958   { 0x51 ,"multiPTY - multiparty" },
16959   { 0x60 ,"allCommunityOfInterestSS - all community of interest SS" },
16960   { 0x61 ,"cug - closed user group" },
16961   { 0x70 ,"allChargingSS - all charging SS" },
16962   { 0x71 ,"aoci - advice of charge information" },
16963   { 0x72 ,"aocc - advice of charge charging" },
16964   { 0x80 ,"allAdditionalInfoTransferSS - all additional information transfer SS" },
16965   { 0x81 ,"uus1 - UUS1 user-to-user signalling" },
16966   { 0x82 ,"uus2 - UUS2 user-to-user signalling" },
16967   { 0x83 ,"uus3 - UUS3 user-to-user signalling" },
16968   { 0x90 ,"allCallRestrictionSS - all Callrestriction SS" },
16969   { 0x91 ,"barringOfOutgoingCalls" },
16970   { 0x92 ,"baoc - barring of all outgoing calls" },
16971   { 0x93 ,"boic - barring of outgoing international calls" },
16972   { 0x94 ,"boicExHC - barring of outgoing international calls except those directed to the home PLMN" },
16973   { 0x99 ,"barringOfIncomingCalls" },
16974   { 0x9a ,"baic - barring of all incoming calls" },
16975   { 0x9b ,"bicRoam - barring of incoming calls when roaming outside home PLMN Country" },
16976   { 0xf0 ,"allPLMN-specificSS" },
16977   { 0xa0 ,"allCallPrioritySS - all call priority SS" },
16978   { 0xa1 ,"emlpp - enhanced Multilevel Precedence Pre-emption (EMLPP) service" },
16979   { 0xb0 ,"allLCSPrivacyException - all LCS Privacy Exception Classes" },
16980   { 0xb1 ,"universal - allow location by any LCS client" },
16981   { 0xb2 ,"callrelated - allow location by any value added LCS client to which a call is established from the target MS" },
16982   { 0xb3 ,"callunrelated - allow location by designated external value added LCS clients" },
16983   { 0xb4 ,"plmnoperator - allow location by designated PLMN operator LCS clients" },
16984   { 0xb5 ,"serviceType - allow location by LCS clients of a designated LCS service type" },
16985   { 0xc0 ,"allMOLR-SS - all Mobile Originating Location Request Classes" },
16986   { 0xc1 ,"basicSelfLocation - allow an MS to request its own location" },
16987   { 0xc2 ,"autonomousSelfLocation - allow an MS to perform self location without interaction with the PLMN for a predetermined period of time" },
16988   { 0xc3 ,"transferToThirdParty - allow an MS to request transfer of its location to another LCS client" },
16989
16990   { 0xf1 ,"plmn-specificSS-1" },
16991   { 0xf2 ,"plmn-specificSS-2" },
16992   { 0xf3 ,"plmn-specificSS-3" },
16993   { 0xf4 ,"plmn-specificSS-4" },
16994   { 0xf5 ,"plmn-specificSS-5" },
16995   { 0xf6 ,"plmn-specificSS-6" },
16996   { 0xf7 ,"plmn-specificSS-7" },
16997   { 0xf8 ,"plmn-specificSS-8" },
16998   { 0xf9 ,"plmn-specificSS-9" },
16999   { 0xfa ,"plmn-specificSS-a" },
17000   { 0xfb ,"plmn-specificSS-b" },
17001   { 0xfc ,"plmn-specificSS-c" },
17002   { 0xfd ,"plmn-specificSS-d" },
17003   { 0xfe ,"plmn-specificSS-e" },
17004   { 0xff ,"plmn-specificSS-f" },
17005   { 0, NULL }
17006 };
17007
17008 static const value_string Teleservice_vals[] = {
17009 {0x00, "allTeleservices" },
17010 {0x10, "allSpeechTransmissionServices" },
17011 {0x11, "telephony" },
17012 {0x12, "emergencyCalls" },
17013 {0x20, "allShortMessageServices" },
17014 {0x21, "shortMessageMT-PP" },
17015 {0x22, "shortMessageMO-PP" },
17016 {0x60, "allFacsimileTransmissionServices" },
17017 {0x61, "facsimileGroup3AndAlterSpeech" },
17018 {0x62, "automaticFacsimileGroup3" },
17019 {0x63, "facsimileGroup4" },
17020
17021 {0x70, "allDataTeleservices" },
17022 {0x80, "allTeleservices-ExeptSMS" },
17023
17024 {0x90, "allVoiceGroupCallServices" },
17025 {0x91, "voiceGroupCall" },
17026 {0x92, "voiceBroadcastCall" },
17027
17028 {0xd0, "allPLMN-specificTS" },
17029 {0xd1, "plmn-specificTS-1" },
17030 {0xd2, "plmn-specificTS-2" },
17031 {0xd3, "plmn-specificTS-3" },
17032 {0xd4, "plmn-specificTS-4" },
17033 {0xd5, "plmn-specificTS-5" },
17034 {0xd6, "plmn-specificTS-6" },
17035 {0xd7, "plmn-specificTS-7" },
17036 {0xd8, "plmn-specificTS-8" },
17037 {0xd9, "plmn-specificTS-9" },
17038 {0xda, "plmn-specificTS-A" },
17039 {0xdb, "plmn-specificTS-B" },
17040 {0xdc, "plmn-specificTS-C" },
17041 {0xdd, "plmn-specificTS-D" },
17042 {0xde, "plmn-specificTS-E" },
17043 {0xdf, "plmn-specificTS-F" },
17044   { 0, NULL }
17045 };
17046
17047 static const value_string Bearerservice_vals[] = {
17048 {0x00, "allBearerServices" },
17049 {0x10, "allDataCDA-Services" },
17050 {0x11, "dataCDA-300bps" },
17051 {0x12, "dataCDA-1200bps" },
17052 {0x13, "dataCDA-1200-75bps" },
17053 {0x14, "dataCDA-2400bps" },
17054 {0x15, "dataCDA-4800bps" },
17055 {0x16, "dataCDA-9600bps" },
17056 {0x17, "general-dataCDA" },
17057
17058 {0x18, "allDataCDS-Services" },
17059 {0x1A, "dataCDS-1200bps" },
17060 {0x1C, "dataCDS-2400bps" },
17061 {0x1D, "dataCDS-4800bps" },
17062 {0x1E, "dataCDS-9600bps" },
17063 {0x1F, "general-dataCDS" },
17064
17065 {0x20, "allPadAccessCA-Services" },
17066 {0x21, "padAccessCA-300bps" },
17067 {0x22, "padAccessCA-1200bps" },
17068 {0x23, "padAccessCA-1200-75bps" },
17069 {0x24, "padAccessCA-2400bps" },
17070 {0x25, "padAccessCA-4800bps" },
17071 {0x26, "padAccessCA-9600bps" },
17072 {0x27, "general-padAccessCA" },
17073
17074 {0x28, "allDataPDS-Services" },
17075 {0x2C, "dataPDS-2400bps" },
17076 {0x2D, "dataPDS-4800bps" },
17077 {0x2E, "dataPDS-9600bps" },
17078 {0x2F, "general-dataPDS" },
17079
17080 {0x30, "allAlternateSpeech-DataCDA" },
17081 {0x38, "allAlternateSpeech-DataCDS" },
17082 {0x40, "allSpeechFollowedByDataCDA" },
17083 {0x48, "allSpeechFollowedByDataCDS" },
17084
17085 {0x50, "allDataCircuitAsynchronous" },
17086 {0x60, "allAsynchronousServices" },
17087 {0x58, "allDataCircuitSynchronous" },
17088 {0x68, "allSynchronousServices" },
17089
17090 {0xD0, "allPLMN-specificBS" },
17091 {0xD1, "plmn-specificBS-1" },
17092 {0xD2, "plmn-specificBS-2" },
17093 {0xD3, "plmn-specificBS-3" },
17094 {0xD4, "plmn-specificBS-4" },
17095 {0xD5, "plmn-specificBS-5" },
17096 {0xD6, "plmn-specificBS-6" },
17097 {0xD7, "plmn-specificBS-7" },
17098 {0xD8, "plmn-specificBS-8" },
17099 {0xD9, "plmn-specificBS-9" },
17100 {0xDA, "plmn-specificBS-A" },
17101 {0xDB, "plmn-specificBS-B" },
17102 {0xDC, "plmn-specificBS-C" },
17103 {0xDD, "plmn-specificBS-D" },
17104 {0xDE, "plmn-specificBS-E" },
17105 {0xDF, "plmn-specificBS-F" },
17106
17107 { 0, NULL }
17108 };
17109
17110 /* ForwardingOptions 
17111
17112 -- bit 8: notification to forwarding party
17113 -- 0 no notification
17114 -- 1 notification
17115 */
17116 static const true_false_string notification_value  = {
17117   "Notification",
17118   "No notification"
17119 };
17120 /*
17121 -- bit 7: redirecting presentation
17122 -- 0 no presentation
17123 -- 1 presentation
17124 */
17125 static const true_false_string redirecting_presentation_value  = {
17126   "Presentation",
17127   "No presentationn"
17128 };
17129 /*
17130 -- bit 6: notification to calling party
17131 -- 0 no notification
17132 -- 1 notification
17133 */
17134 /*
17135 -- bit 5: 0 (unused)
17136 -- bits 43: forwarding reason
17137 -- 00 ms not reachable
17138 -- 01 ms busy
17139 -- 10 no reply
17140 -- 11 unconditional when used in a SRI Result,
17141 -- or call deflection when used in a RCH Argument
17142 */
17143 static const value_string forwarding_reason_values[] = {
17144 {0x0, "ms not reachable" },
17145 {0x1, "ms busy" },
17146 {0x2, "no reply" },
17147 {0x3, "unconditional when used in a SRI Result or call deflection when used in a RCH Argument" },
17148 { 0, NULL }
17149 };
17150 /*
17151 -- bits 21: 00 (unused)
17152 */
17153
17154 static const value_string pdp_type_org_values[] = {
17155 {0x0, "ETSI" },
17156 {0x1, "IETF" },
17157 {0xf, "Empty PDP type" },
17158 { 0, NULL }
17159 };
17160
17161 static const value_string etsi_pdp_type_number_values[] = {
17162 {0x0, "Reserved, used in earlier version of this protocol" },
17163 {0x1, "PPP" },
17164 { 0, NULL }
17165 };
17166
17167 static const value_string ietf_pdp_type_number_values[] = {
17168 {0x21, "IPv4 Address" },
17169 {0x57, "IPv6 Address" },
17170 { 0, NULL }
17171 };
17172
17173 /*
17174 ChargingCharacteristics ::= OCTET STRING (SIZE (2))
17175 -- Octets are coded according to 3GPP TS 32.015.
17176 -- From 3GPP TS 32.015.
17177 --
17178 -- Descriptions for the bits of the flag set:
17179 --
17180 -- Bit 1: H (Hot billing) := '00000001'B
17181 -- Bit 2: F (Flat rate) := '00000010'B
17182 -- Bit 3: P (Prepaid service) := '00000100'B
17183 -- Bit 4: N (Normal billing) := '00001000'B
17184 -- Bit 5: - (Reserved, set to 0) := '00010000'B
17185 -- Bit 6: - (Reserved, set to 0) := '00100000'B
17186 -- Bit 7: - (Reserved, set to 0) := '01000000'B
17187 -- Bit 8: - (Reserved, set to 0) := '10000000'B
17188 */
17189 static const value_string chargingcharacteristics_values[] = {
17190 {0x1, "H (Hot billing)" },
17191 {0x2, "F (Flat rate)" },
17192 {0x4, "P (Prepaid service)" },
17193 {0x8, "N (Normal billing)" },
17194 { 0, NULL }
17195 };
17196
17197 /*--- proto_reg_handoff_gsm_map ---------------------------------------*/
17198 static void range_delete_callback(guint32 ssn)
17199 {
17200     if (ssn) {
17201         delete_itu_tcap_subdissector(ssn, map_handle);
17202     }
17203 }
17204
17205 static void range_add_callback(guint32 ssn)
17206 {
17207     if (ssn) {
17208         add_itu_tcap_subdissector(ssn, map_handle);
17209     }
17210 }
17211
17212 void proto_reg_handoff_gsm_map(void) {
17213
17214     static int map_prefs_initialized = FALSE;
17215     data_handle = find_dissector("data");
17216     ranap_handle = find_dissector("ranap");
17217
17218     if (!map_prefs_initialized) {
17219         map_prefs_initialized = TRUE;
17220         map_handle = create_dissector_handle(dissect_gsm_map, proto_gsm_map);
17221   register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map,"networkLocUpContext-v3");  
17222   register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"networkLocUpContext-v2" );
17223   register_ber_oid_dissector_handle("0.4.0.0.1.0.1.1", map_handle, proto_gsm_map,"networkLocUpContext-v1" );
17224   register_ber_oid_dissector_handle("0.4.0.0.1.0.2.3", map_handle, proto_gsm_map,"locationCancellationContext-v3" );
17225   register_ber_oid_dissector_handle("0.4.0.0.1.0.2.2", map_handle, proto_gsm_map,"locationCancellationContext-v2" );
17226   register_ber_oid_dissector_handle("0.4.0.0.1.0.2.1", map_handle, proto_gsm_map,"locationCancellationContext-v1" );
17227   register_ber_oid_dissector_handle("0.4.0.0.1.0.3.3", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v3" );
17228   register_ber_oid_dissector_handle("0.4.0.0.1.0.3.2", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v2" );
17229   register_ber_oid_dissector_handle("0.4.0.0.1.0.3.1", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v1" );
17230   register_ber_oid_dissector_handle("0.4.0.0.1.0.4.3", map_handle, proto_gsm_map,"istAlertingContext-v3" );
17231   register_ber_oid_dissector_handle("0.4.0.0.1.0.5.3", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v3" );
17232   register_ber_oid_dissector_handle("0.4.0.0.1.0.5.2", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v2" );
17233   register_ber_oid_dissector_handle("0.4.0.0.1.0.5.1", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v1" );
17234   register_ber_oid_dissector_handle("0.4.0.0.1.0.6.4", map_handle, proto_gsm_map,"callControlTransferContext-v4" );
17235   register_ber_oid_dissector_handle("0.4.0.0.1.0.6.3", map_handle, proto_gsm_map,"callControlTransferContext-v3" );
17236   register_ber_oid_dissector_handle("0.4.0.0.1.0.7.3", map_handle, proto_gsm_map,"reportingContext-v3" );
17237   register_ber_oid_dissector_handle("0.4.0.0.1.0.8.3", map_handle, proto_gsm_map,"callCompletionContext-v3" );
17238   register_ber_oid_dissector_handle("0.4.0.0.1.0.9.3", map_handle, proto_gsm_map,"serviceTerminationContext-v3" );
17239   register_ber_oid_dissector_handle("0.4.0.0.1.0.10.2", map_handle, proto_gsm_map,"resetContext-v2" );
17240   register_ber_oid_dissector_handle("0.4.0.0.1.0.10.1", map_handle, proto_gsm_map,"resetContext-v1" );
17241   register_ber_oid_dissector_handle("0.4.0.0.1.0.11.3", map_handle, proto_gsm_map,"handoverControlContext-v3" );
17242   register_ber_oid_dissector_handle("0.4.0.0.1.0.11.2", map_handle, proto_gsm_map,"handoverControlContext-v2" );
17243   register_ber_oid_dissector_handle("0.4.0.0.1.0.11.1", map_handle, proto_gsm_map,"handoverControlContext-v1" );
17244   register_ber_oid_dissector_handle("0.4.0.0.1.0.12.3", map_handle, proto_gsm_map,"sIWFSAllocationContext-v3" );
17245   register_ber_oid_dissector_handle("0.4.0.0.1.0.13.3", map_handle, proto_gsm_map,"equipmentMngtContext-v3" );
17246   register_ber_oid_dissector_handle("0.4.0.0.1.0.13.2", map_handle, proto_gsm_map,"equipmentMngtContext-v2" );
17247   register_ber_oid_dissector_handle("0.4.0.0.1.0.13.1", map_handle, proto_gsm_map,"equipmentMngtContext-v1" );
17248   register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"infoRetrievalContext-v3" );
17249   register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"infoRetrievalContext-v2" );
17250   register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"infoRetrievalContext-v1" );
17251   /* fallback to infoRetrieval(14) version1(1) and not interVlrInfoRetrieval(15) version1(1) */
17252   /*register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"map-ac interVlrInfoRetrieval(15) version1(1)" );*/
17253   register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v2" );
17254   register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v3" );
17255   register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"subscriberDataMngtContext-v3" );
17256   register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"subscriberDataMngtContext-v2" );
17257   register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"subscriberDataMngtContext-v1" );
17258   register_ber_oid_dissector_handle("0.4.0.0.1.0.17.3", map_handle, proto_gsm_map,"tracingContext-v3" );
17259   register_ber_oid_dissector_handle("0.4.0.0.1.0.17.2", map_handle, proto_gsm_map,"tracingContext-v2" );
17260   register_ber_oid_dissector_handle("0.4.0.0.1.0.17.1", map_handle, proto_gsm_map,"tracingContext-v1" );
17261   register_ber_oid_dissector_handle("0.4.0.0.1.0.18.2", map_handle, proto_gsm_map,"networkFunctionalSsContext-v2" );
17262   register_ber_oid_dissector_handle("0.4.0.0.1.0.18.1", map_handle, proto_gsm_map,"networkFunctionalSsContext-v1" );
17263   register_ber_oid_dissector_handle("0.4.0.0.1.0.19.2", map_handle, proto_gsm_map,"networkUnstructuredSsContext-v2" );
17264   register_ber_oid_dissector_handle("0.4.0.0.1.0.20.3", map_handle, proto_gsm_map,"shortMsgGatewayContext-v3" );
17265   register_ber_oid_dissector_handle("0.4.0.0.1.0.20.2", map_handle, proto_gsm_map,"shortMsgGatewayContext-v2" );
17266   register_ber_oid_dissector_handle("0.4.0.0.1.0.20.1", map_handle, proto_gsm_map,"shortMsgGatewayContext-v1" );
17267   register_ber_oid_dissector_handle("0.4.0.0.1.0.21.3", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v3" );
17268   register_ber_oid_dissector_handle("0.4.0.0.1.0.21.2", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v2" );
17269   register_ber_oid_dissector_handle("0.4.0.0.1.0.21.1", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v1" );
17270   register_ber_oid_dissector_handle("0.4.0.0.1.0.22.3", map_handle, proto_gsm_map,"subscriberDataModificationNotificationContext-v3" );
17271   register_ber_oid_dissector_handle("0.4.0.0.1.0.23.2", map_handle, proto_gsm_map,"shortMsgAlertContext-v2" );
17272   register_ber_oid_dissector_handle("0.4.0.0.1.0.23.1", map_handle, proto_gsm_map,"shortMsgAlertContext-v1" );
17273   register_ber_oid_dissector_handle("0.4.0.0.1.0.24.3", map_handle, proto_gsm_map,"mwdMngtContext-v3" );
17274   register_ber_oid_dissector_handle("0.4.0.0.1.0.24.2", map_handle, proto_gsm_map,"mwdMngtContext-v2" );
17275   register_ber_oid_dissector_handle("0.4.0.0.1.0.24.1", map_handle, proto_gsm_map,"mwdMngtContext-v1" );
17276   register_ber_oid_dissector_handle("0.4.0.0.1.0.25.3", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v3" );
17277   register_ber_oid_dissector_handle("0.4.0.0.1.0.25.2", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v2" );
17278   register_ber_oid_dissector_handle("0.4.0.0.1.0.26.2", map_handle, proto_gsm_map,"imsiRetrievalContext-v2" );
17279   register_ber_oid_dissector_handle("0.4.0.0.1.0.27.2", map_handle, proto_gsm_map,"msPurgingContext-v2" );
17280   register_ber_oid_dissector_handle("0.4.0.0.1.0.27.3", map_handle, proto_gsm_map,"msPurgingContext-v3" );
17281   register_ber_oid_dissector_handle("0.4.0.0.1.0.28.3", map_handle, proto_gsm_map,"subscriberInfoEnquiryContext-v3" );
17282   register_ber_oid_dissector_handle("0.4.0.0.1.0.29.3", map_handle, proto_gsm_map,"anyTimeInfoEnquiryContext-v3" );
17283   register_ber_oid_dissector_handle("0.4.0.0.1.0.31.3", map_handle, proto_gsm_map,"groupCallControlContext-v3" );
17284   register_ber_oid_dissector_handle("0.4.0.0.1.0.32.3", map_handle, proto_gsm_map,"gprsLocationUpdateContext-v3" );
17285   register_ber_oid_dissector_handle("0.4.0.0.1.0.33.4", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v4" );
17286   register_ber_oid_dissector_handle("0.4.0.0.1.0.33.3", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v3" );
17287   register_ber_oid_dissector_handle("0.4.0.0.1.0.34.3", map_handle, proto_gsm_map,"failureReportContext-v3" );
17288   register_ber_oid_dissector_handle("0.4.0.0.1.0.35.3", map_handle, proto_gsm_map,"gprsNotifyContext-v3" );
17289   register_ber_oid_dissector_handle("0.4.0.0.1.0.36.3", map_handle, proto_gsm_map,"ss-InvocationNotificationContext-v3" );
17290   register_ber_oid_dissector_handle("0.4.0.0.1.0.37.3", map_handle, proto_gsm_map,"locationSvcGatewayContext-v3" );
17291   register_ber_oid_dissector_handle("0.4.0.0.1.0.38.3", map_handle, proto_gsm_map,"locationSvcEnquiryContext-v3" );
17292   register_ber_oid_dissector_handle("0.4.0.0.1.0.39.3", map_handle, proto_gsm_map,"authenticationFailureReportContext-v3" );
17293   register_ber_oid_dissector_handle("0.4.0.0.1.0.40.3", map_handle, proto_gsm_map,"secureTransportHandlingContext-v3" );
17294   register_ber_oid_dissector_handle("0.4.0.0.1.0.41.3", map_handle, proto_gsm_map,"shortMsgMT-Relay-VGCS-Context-v3" );
17295   register_ber_oid_dissector_handle("0.4.0.0.1.0.42.3", map_handle, proto_gsm_map,"mm-EventReportingContext-v3" );
17296   register_ber_oid_dissector_handle("0.4.0.0.1.0.43.3", map_handle, proto_gsm_map,"anyTimeInfoHandlingContext-v3" );
17297   register_ber_oid_dissector_handle("0.4.0.0.1.0.44.3", map_handle, proto_gsm_map,"resourceManagementContext-v3" );
17298   register_ber_oid_dissector_handle("0.4.0.0.1.0.45.3", map_handle, proto_gsm_map,"groupCallInfoRetrievalContext-v3" );
17299   /* Private extension container */
17300   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" );
17301     }
17302     else {
17303         range_foreach(ssn_range, range_delete_callback);
17304     }
17305
17306     g_free(ssn_range);
17307     ssn_range = range_copy(global_ssn_range);
17308
17309     range_foreach(ssn_range, range_add_callback);
17310
17311 }
17312
17313 /*--- proto_register_gsm_map -------------------------------------------*/
17314 void proto_register_gsm_map(void) {
17315         module_t *gsm_map_module;
17316
17317   /* List of fields */
17318   static hf_register_info hf[] = {
17319     { &hf_gsm_map_old_Component_PDU,
17320       { "Component", "gsm_map.old.Component",
17321         FT_UINT32, BASE_DEC, VALS(gsm_old_Component_vals), 0,
17322         "gsm_map.old.Component", HFILL }},
17323     { &hf_gsm_map_getPassword,
17324       { "getPassword", "gsm_map.getPassword",
17325         FT_BYTES, BASE_HEX, NULL, 0,
17326         "getPassword", HFILL }},
17327     { &hf_gsm_map_currentPassword,
17328       { "currentPassword", "gsm_map.currentPassword",
17329         FT_STRING, BASE_NONE, NULL, 0,
17330         "", HFILL }},
17331     { &hf_gsm_map_extension,
17332       { "Extension", "gsm_map.extension",
17333         FT_BOOLEAN, 8, TFS(&gsm_map_extension_value), 0x80,
17334         "Extension", HFILL }},
17335     { &hf_gsm_map_nature_of_number,
17336       { "Nature of number", "gsm_map.nature_of_number",
17337         FT_UINT8, BASE_HEX, VALS(gsm_map_nature_of_number_values), 0x70,
17338         "Nature of number", HFILL }},
17339     { &hf_gsm_map_number_plan,
17340       { "Number plan", "gsm_map.number_plan",
17341         FT_UINT8, BASE_HEX, VALS(gsm_map_number_plan_values), 0x0f,
17342         "Number plan", HFILL }},
17343         { &hf_gsm_map_isdn_address_digits,
17344       { "ISDN Address digits", "gsm_map.isdn.address.digits",
17345         FT_STRING, BASE_NONE, NULL, 0,
17346         "ISDN Address digits", HFILL }},
17347         { &hf_gsm_map_address_digits,
17348       { "Address digits", "gsm_map.address.digits",
17349         FT_STRING, BASE_NONE, NULL, 0,
17350         "Address digits", HFILL }},
17351         { &hf_gsm_map_servicecentreaddress_digits,
17352       { "ServiceCentreAddress digits", "gsm_map.servicecentreaddress_digits",
17353         FT_STRING, BASE_NONE, NULL, 0,
17354         "ServiceCentreAddress digits", HFILL }},
17355         { &hf_gsm_map_imsi_digits,
17356       { "IMSI digits", "gsm_map.imsi_digits",
17357         FT_STRING, BASE_NONE, NULL, 0,
17358         "IMSI digits", HFILL }},
17359         { &hf_gsm_map_TBCD_digits,
17360       { "TBCD digits", "gsm_map.imsi_digits",
17361         FT_STRING, BASE_NONE, NULL, 0,
17362         "TBCD digits", HFILL }},
17363         { &hf_gsm_map_Ss_Status_unused,
17364       { "Unused", "gsm_map.unused",
17365         FT_UINT8, BASE_HEX, NULL, 0xf0,
17366         "Unused", HFILL }},
17367         { &hf_gsm_map_Ss_Status_q_bit,
17368       { "Q bit", "gsm_map.ss_status_q_bit",
17369         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_q_bit_values), 0x08,
17370         "Q bit", HFILL }},
17371         { &hf_gsm_map_Ss_Status_p_bit,
17372       { "P bit", "gsm_map.ss_status_p_bit",
17373         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_p_values), 0x04,
17374         "P bit", HFILL }},
17375         { &hf_gsm_map_Ss_Status_r_bit,
17376       { "R bit", "gsm_map.ss_status_r_bit",
17377         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_r_values), 0x02,
17378         "R bit", HFILL }},
17379         { &hf_gsm_map_Ss_Status_a_bit,
17380       { "A bit", "gsm_map.ss_status_a_bit",
17381         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_a_values), 0x01,
17382         "A bit", HFILL }},
17383         { &hf_gsm_map_notification_to_forwarding_party,
17384       { "Notification to forwarding party", "gsm_map.notification_to_forwarding_party",
17385         FT_BOOLEAN, 8, TFS(&notification_value), 0x80,
17386         "Notification to forwarding party", HFILL }},
17387         { &hf_gsm_map_redirecting_presentation,
17388       { "Redirecting presentation", "gsm_map.redirecting_presentation",
17389         FT_BOOLEAN, 8, TFS(&redirecting_presentation_value), 0x40,
17390         "Redirecting presentation", HFILL }},
17391         { &hf_gsm_map_notification_to_calling_party,
17392       { "Notification to calling party", "gsm_map.notification_to_clling_party",
17393         FT_BOOLEAN, 8, TFS(&notification_value), 0x20,
17394         "Notification to calling party", HFILL }},
17395     { &hf_gsm_map_forwarding_reason,
17396       { "Forwarding reason", "gsm_map.forwarding_reason",
17397         FT_UINT8, BASE_HEX, VALS(forwarding_reason_values), 0x0c,
17398         "forwarding reason", HFILL }},
17399     { &hf_gsm_map_pdp_type_org,
17400       { "PDP Type Organization", "gsm_map.pdp_type_org",
17401         FT_UINT8, BASE_HEX, VALS(pdp_type_org_values), 0x0f,
17402         "PDP Type Organization", HFILL }},
17403     { &hf_gsm_map_etsi_pdp_type_number,
17404       { "PDP Type Number", "gsm_map.pdp_type_org",
17405         FT_UINT8, BASE_HEX, VALS(etsi_pdp_type_number_values), 0,
17406         "ETSI PDP Type Number", HFILL }},
17407     { &hf_gsm_map_ietf_pdp_type_number,
17408       { "PDP Type Number", "gsm_map.ietf_pdp_type_number",
17409         FT_UINT8, BASE_HEX, VALS(ietf_pdp_type_number_values), 0,
17410         "IETF PDP Type Number", HFILL }},
17411     { &hf_gsm_map_ext_qos_subscribed_pri,
17412       { "Allocation/Retention priority", "gsm_map.ext_qos_subscribed_pri",
17413         FT_UINT8, BASE_DEC, NULL, 0xff,
17414         "Allocation/Retention priority", HFILL }},
17415     { &hf_gsm_map_qos_traffic_cls,
17416       { "Traffic class", "gsm_map.qos.traffic_cls",
17417         FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0xe0,
17418         "Traffic class", HFILL }},
17419     { &hf_gsm_map_qos_del_order,
17420       { "Delivery order", "gsm_map.qos.del_order",
17421         FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0x18,
17422         "Delivery order", HFILL }},
17423     { &hf_gsm_map_qos_del_of_err_sdu,
17424       { "Delivery of erroneous SDUs", "gsm_map.qos.del_of_err_sdu",
17425         FT_UINT8, BASE_DEC, VALS(gsm_a_qos_del_of_err_sdu_vals), 0x03,
17426         "Delivery of erroneous SDUs", HFILL }},
17427     { &hf_gsm_map_qos_ber,
17428       { "Residual Bit Error Rate (BER)", "gsm_map.qos.ber",
17429         FT_UINT8, BASE_DEC, VALS(gsm_a_qos_ber_vals), 0xf0,
17430         "Residual Bit Error Rate (BER)", HFILL }},
17431     { &hf_gsm_map_qos_sdu_err_rat,
17432       { "SDU error ratio", "gsm_map.qos.sdu_err_rat",
17433         FT_UINT8, BASE_DEC, VALS(gsm_a_qos_sdu_err_rat_vals), 0x0f,
17434         "SDU error ratio", HFILL }},
17435     { &hf_gsm_map_qos_traff_hdl_pri,
17436       { "Traffic handling priority", "gsm_map.qos.traff_hdl_pri",
17437         FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traff_hdl_pri_vals), 0x03,
17438         "Traffic handling priority", HFILL }},
17439
17440     { &hf_gsm_map_qos_max_sdu,
17441       { "Maximum SDU size", "gsm_map.qos.max_sdu",
17442         FT_UINT32, BASE_DEC, NULL, 0x0,
17443         "Maximum SDU size", HFILL }},           
17444     { &hf_gsm_map_max_brate_ulink,
17445       { "Maximum bit rate for uplink in kbit/s", "gsm_map.qos.max_brate_ulink",
17446         FT_UINT32, BASE_DEC, NULL, 0x0,
17447         "Maximum bit rate for uplink", HFILL }},
17448     { &hf_gsm_map_max_brate_dlink,
17449       { "Maximum bit rate for downlink in kbit/s", "gsm_map.qos.max_brate_dlink",
17450         FT_UINT32, BASE_DEC, NULL, 0x0,
17451         "Maximum bit rate for downlink", HFILL }},
17452     { &hf_gsm_map_qos_transfer_delay,
17453       { "Transfer delay (Raw data see TS 24.008 for interpretation)", "gsm_map.qos.transfer_delay",
17454         FT_UINT8, BASE_DEC, NULL, 0xfc,
17455         "Transfer delay", HFILL }},
17456     { &hf_gsm_map_guaranteed_max_brate_ulink,
17457       { "Guaranteed bit rate for uplink in kbit/s", "gsm_map.qos.brate_ulink",
17458         FT_UINT32, BASE_DEC, NULL, 0x0,
17459         "Guaranteed bit rate for uplink", HFILL }},
17460     { &hf_gsm_map_guaranteed_max_brate_dlink,
17461       { "Guaranteed bit rate for downlink in kbit/s", "gsm_map.qos.brate_dlink",
17462         FT_UINT32, BASE_DEC, NULL, 0x0,
17463         "Guaranteed bit rate for downlink", HFILL }},
17464    { &hf_gsm_map_GSNAddress_IPv4,
17465       { "GSN-Address IPv4",  "gsm_map.gsnaddress_ipv4",
17466           FT_IPv4, BASE_NONE, NULL, 0,
17467           "IPAddress IPv4", HFILL }},
17468    { &hf_gsm_map_GSNAddress_IPv6,
17469       { "GSN Address IPv6",  "gsm_map.gsnaddress_ipv6",
17470           FT_IPv4, BASE_NONE, NULL, 0,
17471           "IPAddress IPv6", HFILL }},
17472         { &hf_gsm_map_geo_loc_type_of_shape,
17473                 { "Location estimate","gsm_map.gad.location_estimate",
17474                 FT_UINT8,BASE_DEC, VALS(type_of_shape_vals), 0xf0,          
17475                 "Location estimate", HFILL }
17476         },
17477         { &hf_gsm_map_geo_loc_sign_of_lat,
17478                 { "Sign of latitude","gsm_map.gad.sign_of_latitude",
17479                 FT_UINT8,BASE_DEC, VALS(sign_of_latitude_vals), 0x80,          
17480                 "Sign of latitude", HFILL }
17481         },
17482         { &hf_gsm_map_geo_loc_deg_of_lat,
17483                 { "Degrees of latitude","gsm_map.gad.sign_of_latitude",
17484                 FT_UINT24,BASE_DEC, NULL, 0x7fffff,          
17485                 "Degrees of latitude", HFILL }
17486         },
17487         { &hf_gsm_map_geo_loc_deg_of_long,
17488                 { "Degrees of longitude","gsm_map.gad.sign_of_longitude",
17489                 FT_UINT24,BASE_DEC, NULL, 0xffffff,          
17490                 "Degrees of longitude", HFILL }
17491         },
17492         { &hf_gsm_map_geo_loc_uncertainty_code,
17493                 { "Uncertainty code","gsm_map.gad.uncertainty_code",
17494                 FT_UINT8,BASE_DEC, NULL, 0x7f,          
17495                 "Uncertainty code", HFILL }
17496         },
17497         { &hf_gsm_map_geo_loc_uncertainty_semi_major,
17498                 { "Uncertainty semi-major","gsm_map.gad.uncertainty_semi_major",
17499                 FT_UINT8,BASE_DEC, NULL, 0x7f,          
17500                 "Uncertainty semi-major", HFILL }
17501         },
17502         { &hf_gsm_map_geo_loc_uncertainty_semi_minor,
17503                 { "Uncertainty semi-minor","gsm_map.gad.uncertainty_semi_minor",
17504                 FT_UINT8,BASE_DEC, NULL, 0x7f,          
17505                 "Uncertainty semi-minor", HFILL }
17506         },
17507         { &hf_gsm_map_geo_loc_orientation_of_major_axis,
17508                 { "Orientation of major axis","gsm_map.gad.orientation_of_major_axis",
17509                 FT_UINT8,BASE_DEC, NULL, 0x0,          
17510                 "Orientation of major axis", HFILL }
17511         },
17512         { &hf_gsm_map_geo_loc_uncertainty_altitude,
17513                 { "Uncertainty Altitude","gsm_map.gad.uncertainty_altitude",
17514                 FT_UINT8,BASE_DEC, NULL, 0x7f,          
17515                 "Uncertainty Altitude", HFILL }
17516         },
17517         { &hf_gsm_map_geo_loc_confidence,
17518                 { "Confidence(%)","gsm_map.gad.confidence",
17519                 FT_UINT8,BASE_DEC, NULL, 0x7f,          
17520                 "Confidence(%)", HFILL }
17521         },
17522         { &hf_gsm_map_geo_loc_no_of_points,
17523                 { "Number of points","gsm_map.gad.no_of_points",
17524                 FT_UINT8,BASE_DEC, NULL, 0x0f,          
17525                 "Number of points", HFILL }
17526         },
17527         { &hf_gsm_map_geo_loc_D,
17528                 { "D: Direction of Altitude","gsm_map.gad.D",
17529                 FT_UINT16,BASE_DEC, VALS(dir_of_alt_vals), 0x8000,          
17530                 "D: Direction of Altitude", HFILL }
17531         },
17532         { &hf_gsm_map_geo_loc_altitude,
17533                 { "Altitude in meters","gsm_map.gad.altitude",
17534                 FT_UINT16,BASE_DEC, NULL, 0x7fff,          
17535                 "Altitude", HFILL }
17536         },
17537         { &hf_gsm_map_geo_loc_inner_radius,
17538                 { "Inner radius","gsm_map.gad.altitude",
17539                 FT_UINT16,BASE_DEC, NULL, 0x0,          
17540                 "Inner radius", HFILL }
17541         },
17542         { &hf_gsm_map_geo_loc_uncertainty_radius,
17543                 { "Uncertainty radius","gsm_map.gad.no_of_points",
17544                 FT_UINT8,BASE_DEC, NULL, 0x7f,          
17545                 "Uncertainty radius", HFILL }
17546         },
17547         { &hf_gsm_map_geo_loc_offset_angle,
17548                 { "Offset angle","gsm_map.gad.offset_angle",
17549                 FT_UINT8,BASE_DEC, NULL, 0x0,          
17550                 "Offset angle", HFILL }
17551         },
17552         { &hf_gsm_map_geo_loc_included_angle,
17553                 { "Included angle","gsm_map.gad.included_angle",
17554                 FT_UINT8,BASE_DEC, NULL, 0x0,          
17555                 "Included angle", HFILL }
17556         },
17557
17558     { &hf_gsm_map_ranap_service_Handover,
17559       { "service-Handover", "gsm_map.ranap.service_Handover",
17560         FT_UINT32, BASE_DEC, VALS(ranap_Service_Handover_vals), 0,
17561         "gsm_map.ranap.Service_Handover", HFILL }},
17562     { &hf_gsm_map_IntegrityProtectionInformation,
17563       { "IntegrityProtectionInformation", "gsm_map.ranap.IntegrityProtectionInformation",
17564         FT_NONE, BASE_NONE, NULL, 0,
17565         "gsm_map.ranap.IntegrityProtectionInformation", HFILL }},
17566     { &hf_gsm_map_EncryptionInformation,
17567       { "EncryptionInformation", "gsm_map.ranap.EncryptionInformation",
17568         FT_NONE, BASE_NONE, NULL, 0,
17569         "gsm_map.ranap.EncryptionInformation", HFILL }},
17570     { &hf_gsm_map_PlmnContainer_PDU,
17571       { "PlmnContainer", "gsm_map.PlmnContainer",
17572         FT_NONE, BASE_NONE, NULL, 0,
17573         "gsm_map.PlmnContainer", HFILL }},
17574     { &hf_gsm_map_ss_SS_UserData,
17575       { "SS-UserData", "gsm_ss.SS_UserData",
17576         FT_STRING, BASE_NONE, NULL, 0,
17577         "gsm_map.ss.SS_UserData", HFILL }},
17578         { &hf_gsm_map_cbs_coding_grp,
17579                 { "Coding Group","gsm_map.cbs.coding_grp",
17580                 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_data_coding_scheme_coding_grp_vals), 0xf0,          
17581                 "Coding Group", HFILL }
17582         },
17583         { &hf_gsm_map_cbs_coding_grp0_lang,
17584                 { "Language","gsm_map.cbs.coding_grp0_lang",
17585                 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp0_lang_vals), 0x0f,          
17586                 "Language", HFILL }
17587         },
17588         { &hf_gsm_map_cbs_coding_grp1_lang,
17589                 { "Language","gsm_map.cbs.coding_grp1_lang",
17590                 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp1_lang_vals), 0x0f,          
17591                 "Language", HFILL }
17592         },
17593         { &hf_gsm_map_cbs_coding_grp2_lang,
17594                 { "Language","gsm_map.cbs.coding_grp2_lang",
17595                 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp2_lang_vals), 0x0f,          
17596                 "Language", HFILL }
17597         },
17598         { &hf_gsm_map_cbs_coding_grp3_lang,
17599                 { "Language","gsm_map.cbs.coding_grp3_lang",
17600                 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp3_lang_vals), 0x0f,          
17601                 "Language", HFILL }
17602         },
17603         { &hf_gsm_map_cbs_coding_grp4_7_comp,
17604                 { "Compressed indicator","gsm_map.cbs.coding_grp4_7_comp",
17605                 FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_comp_vals), 0x20,          
17606                 "Compressed indicator", HFILL }
17607         },
17608         { &hf_gsm_map_cbs_coding_grp4_7_class_ind,
17609                 { "Message Class present","gsm_map.cbs.coding_grp4_7_class_ind",
17610                 FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_class_ind_vals), 0x10,          
17611                 "Message Class present", HFILL }
17612         },
17613         { &hf_gsm_map_cbs_coding_grp4_7_char_set,
17614                 { "Character set being used","gsm_map.cbs.coding_grp4_7_char_set",
17615                 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_char_set_vals), 0x0c,          
17616                 "Character set being used", HFILL }
17617         },
17618         { &hf_gsm_map_cbs_coding_grp4_7_class,
17619                 { "Message Class","gsm_map.cbs.coding_grp4_7_class",
17620                 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_class_vals), 0x03,          
17621                 "Message Class", HFILL }
17622         },
17623         { &hf_gsm_map_cbs_coding_grp15_mess_code,
17624                 { "Message coding","gsm_map.cbs.cbs_coding_grp15_mess_code",
17625                 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_mess_code_vals), 0x04,          
17626                 "Message coding", HFILL }
17627         },
17628         { &hf_gsm_map_cbs_coding_grp15_class,
17629                 { "Message Class","gsm_map.cbs.gsm_map_cbs_coding_grp15_class",
17630                 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_class_vals), 0x03,          
17631                 "Message Class", HFILL }
17632         },
17633     { &hf_gsm_map_tmsi,
17634       { "tmsi", "gsm_map.tmsi",
17635         FT_BYTES, BASE_HEX, NULL, 0,
17636         "gsm_map.TMSI", HFILL }},
17637
17638
17639 /*--- Included file: packet-gsm_map-hfarr.c ---*/
17640 #line 1 "packet-gsm_map-hfarr.c"
17641
17642 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
17643
17644     { &hf_gsm_map_privateExtensionList,
17645       { "privateExtensionList", "gsm_map.privateExtensionList",
17646         FT_UINT32, BASE_DEC, NULL, 0,
17647         "gsm_map.PrivateExtensionList", HFILL }},
17648     { &hf_gsm_map_pcs_Extensions,
17649       { "pcs-Extensions", "gsm_map.pcs_Extensions",
17650         FT_NONE, BASE_NONE, NULL, 0,
17651         "gsm_map.PCS_Extensions", HFILL }},
17652     { &hf_gsm_map_slr_Arg_PCS_Extensions,
17653       { "slr-Arg-PCS-Extensions", "gsm_map.slr_Arg_PCS_Extensions",
17654         FT_NONE, BASE_NONE, NULL, 0,
17655         "gsm_map.SLR_Arg_PCS_Extensions", HFILL }},
17656     { &hf_gsm_map_PrivateExtensionList_item,
17657       { "Item", "gsm_map.PrivateExtensionList_item",
17658         FT_NONE, BASE_NONE, NULL, 0,
17659         "gsm_map.PrivateExtension", HFILL }},
17660     { &hf_gsm_map_extId,
17661       { "extId", "gsm_map.extId",
17662         FT_OID, BASE_NONE, NULL, 0,
17663         "gsm_map.T_extId", HFILL }},
17664     { &hf_gsm_map_extType,
17665       { "extType", "gsm_map.extType",
17666         FT_NONE, BASE_NONE, NULL, 0,
17667         "gsm_map.T_extType", HFILL }},
17668     { &hf_gsm_map_na_ESRK_Request,
17669       { "na-ESRK-Request", "gsm_map.na_ESRK_Request",
17670         FT_NONE, BASE_NONE, NULL, 0,
17671         "gsm_map.NULL", HFILL }},
17672
17673 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
17674
17675     { &hf_gsm_map_protocolId,
17676       { "protocolId", "gsm_map.protocolId",
17677         FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
17678         "gsm_map.ProtocolId", HFILL }},
17679     { &hf_gsm_map_signalInfo,
17680       { "signalInfo", "gsm_map.signalInfo",
17681         FT_BYTES, BASE_HEX, NULL, 0,
17682         "gsm_map.SignalInfo", HFILL }},
17683     { &hf_gsm_map_extensionContainer,
17684       { "extensionContainer", "gsm_map.extensionContainer",
17685         FT_NONE, BASE_NONE, NULL, 0,
17686         "gsm_map.ExtensionContainer", HFILL }},
17687     { &hf_gsm_map_ext_ProtocolId,
17688       { "ext-ProtocolId", "gsm_map.ext_ProtocolId",
17689         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_ProtocolId_vals), 0,
17690         "gsm_map.Ext_ProtocolId", HFILL }},
17691     { &hf_gsm_map_accessNetworkProtocolId,
17692       { "accessNetworkProtocolId", "gsm_map.accessNetworkProtocolId",
17693         FT_UINT32, BASE_DEC, VALS(gsm_map_AccessNetworkProtocolId_vals), 0,
17694         "gsm_map.AccessNetworkProtocolId", HFILL }},
17695     { &hf_gsm_map_signalInfo_01,
17696       { "signalInfo", "gsm_map.signalInfo",
17697         FT_BYTES, BASE_HEX, NULL, 0,
17698         "gsm_map.LongSignalInfo", HFILL }},
17699     { &hf_gsm_map_imsi,
17700       { "imsi", "gsm_map.imsi",
17701         FT_BYTES, BASE_HEX, NULL, 0,
17702         "gsm_map.IMSI", HFILL }},
17703     { &hf_gsm_map_imsi_WithLMSI,
17704       { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI",
17705         FT_NONE, BASE_NONE, NULL, 0,
17706         "gsm_map.IMSI_WithLMSI", HFILL }},
17707     { &hf_gsm_map_lmsi,
17708       { "lmsi", "gsm_map.lmsi",
17709         FT_BYTES, BASE_HEX, NULL, 0,
17710         "gsm_map.LMSI", HFILL }},
17711     { &hf_gsm_map_HLR_List_item,
17712       { "Item", "gsm_map.HLR_List_item",
17713         FT_BYTES, BASE_HEX, NULL, 0,
17714         "gsm_map.HLR_Id", HFILL }},
17715     { &hf_gsm_map_naea_PreferredCIC,
17716       { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC",
17717         FT_BYTES, BASE_HEX, NULL, 0,
17718         "gsm_map.NAEA_CIC", HFILL }},
17719     { &hf_gsm_map_msisdn,
17720       { "msisdn", "gsm_map.msisdn",
17721         FT_BYTES, BASE_HEX, NULL, 0,
17722         "gsm_map.ISDN_AddressString", HFILL }},
17723     { &hf_gsm_map_externalAddress,
17724       { "externalAddress", "gsm_map.externalAddress",
17725         FT_BYTES, BASE_HEX, NULL, 0,
17726         "gsm_map.ISDN_AddressString", HFILL }},
17727     { &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength,
17728       { "cellGlobalIdOrServiceAreaIdFixedLength", "gsm_map.cellGlobalIdOrServiceAreaIdFixedLength",
17729         FT_BYTES, BASE_HEX, NULL, 0,
17730         "gsm_map.CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
17731     { &hf_gsm_map_laiFixedLength,
17732       { "laiFixedLength", "gsm_map.laiFixedLength",
17733         FT_BYTES, BASE_HEX, NULL, 0,
17734         "gsm_map.LAIFixedLength", HFILL }},
17735     { &hf_gsm_map_bearerService,
17736       { "bearerService", "gsm_map.bearerService",
17737         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
17738         "gsm_map.BearerServiceCode", HFILL }},
17739     { &hf_gsm_map_teleservice,
17740       { "teleservice", "gsm_map.teleservice",
17741         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
17742         "gsm_map.TeleserviceCode", HFILL }},
17743     { &hf_gsm_map_ext_BearerService,
17744       { "ext-BearerService", "gsm_map.ext_BearerService",
17745         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
17746         "gsm_map.Ext_BearerServiceCode", HFILL }},
17747     { &hf_gsm_map_ext_Teleservice,
17748       { "ext-Teleservice", "gsm_map.ext_Teleservice",
17749         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
17750         "gsm_map.Ext_TeleserviceCode", HFILL }},
17751     { &hf_gsm_map_maximumentitledPriority,
17752       { "maximumentitledPriority", "gsm_map.maximumentitledPriority",
17753         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
17754         "gsm_map.EMLPP_Priority", HFILL }},
17755     { &hf_gsm_map_defaultPriority,
17756       { "defaultPriority", "gsm_map.defaultPriority",
17757         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
17758         "gsm_map.EMLPP_Priority", HFILL }},
17759     { &hf_gsm_map_ss_Code,
17760       { "ss-Code", "gsm_map.ss_Code",
17761         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
17762         "gsm_map.SS_Code", HFILL }},
17763     { &hf_gsm_map_ss_Status,
17764       { "ss-Status", "gsm_map.ss_Status",
17765         FT_BYTES, BASE_HEX, NULL, 0,
17766         "gsm_map.Ext_SS_Status", HFILL }},
17767     { &hf_gsm_map_nbrSB,
17768       { "nbrSB", "gsm_map.nbrSB",
17769         FT_UINT32, BASE_DEC, NULL, 0,
17770         "gsm_map.MaxMC_Bearers", HFILL }},
17771     { &hf_gsm_map_nbrUser,
17772       { "nbrUser", "gsm_map.nbrUser",
17773         FT_UINT32, BASE_DEC, NULL, 0,
17774         "gsm_map.MC_Bearers", HFILL }},
17775
17776 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
17777
17778     { &hf_gsm_map_ss_ss_Code,
17779       { "ss-Code", "gsm_map.ss.ss_Code",
17780         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
17781         "gsm_map.SS_Code", HFILL }},
17782     { &hf_gsm_map_ss_basicService,
17783       { "basicService", "gsm_map.ss.basicService",
17784         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
17785         "gsm_map.BasicServiceCode", HFILL }},
17786     { &hf_gsm_map_ss_forwardedToNumber,
17787       { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
17788         FT_BYTES, BASE_HEX, NULL, 0,
17789         "gsm_map.AddressString", HFILL }},
17790     { &hf_gsm_map_ss_forwardedToSubaddress,
17791       { "forwardedToSubaddress", "gsm_map.ss.forwardedToSubaddress",
17792         FT_BYTES, BASE_HEX, NULL, 0,
17793         "gsm_map.ISDN_SubaddressString", HFILL }},
17794     { &hf_gsm_map_ss_noReplyConditionTime,
17795       { "noReplyConditionTime", "gsm_map.ss.noReplyConditionTime",
17796         FT_UINT32, BASE_DEC, NULL, 0,
17797         "gsm_map_ss.NoReplyConditionTime", HFILL }},
17798     { &hf_gsm_map_ss_defaultPriority,
17799       { "defaultPriority", "gsm_map.ss.defaultPriority",
17800         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
17801         "gsm_map.EMLPP_Priority", HFILL }},
17802     { &hf_gsm_map_ss_nbrUser,
17803       { "nbrUser", "gsm_map.ss.nbrUser",
17804         FT_UINT32, BASE_DEC, NULL, 0,
17805         "gsm_map.MC_Bearers", HFILL }},
17806     { &hf_gsm_map_ss_longFTN_Supported,
17807       { "longFTN-Supported", "gsm_map.ss.longFTN_Supported",
17808         FT_NONE, BASE_NONE, NULL, 0,
17809         "gsm_map_ss.NULL", HFILL }},
17810     { &hf_gsm_map_ss_forwardingInfo,
17811       { "forwardingInfo", "gsm_map.ss.forwardingInfo",
17812         FT_NONE, BASE_NONE, NULL, 0,
17813         "gsm_map_ss.ForwardingInfo", HFILL }},
17814     { &hf_gsm_map_ss_callBarringInfo,
17815       { "callBarringInfo", "gsm_map.ss.callBarringInfo",
17816         FT_NONE, BASE_NONE, NULL, 0,
17817         "gsm_map_ss.CallBarringInfo", HFILL }},
17818     { &hf_gsm_map_ss_ss_Data,
17819       { "ss-Data", "gsm_map.ss.ss_Data",
17820         FT_NONE, BASE_NONE, NULL, 0,
17821         "gsm_map_ss.SS_Data", HFILL }},
17822     { &hf_gsm_map_ss_forwardingFeatureList,
17823       { "forwardingFeatureList", "gsm_map.ss.forwardingFeatureList",
17824         FT_UINT32, BASE_DEC, NULL, 0,
17825         "gsm_map_ss.ForwardingFeatureList", HFILL }},
17826     { &hf_gsm_map_ss_ForwardingFeatureList_item,
17827       { "Item", "gsm_map.ss.ForwardingFeatureList_item",
17828         FT_NONE, BASE_NONE, NULL, 0,
17829         "gsm_map_ss.ForwardingFeature", HFILL }},
17830     { &hf_gsm_map_ss_ss_Status,
17831       { "ss-Status", "gsm_map.ss.ss_Status",
17832         FT_BYTES, BASE_HEX, NULL, 0,
17833         "gsm_map_ss.SS_Status", HFILL }},
17834     { &hf_gsm_map_ss_forwardedToNumber_01,
17835       { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
17836         FT_BYTES, BASE_HEX, NULL, 0,
17837         "gsm_map.ISDN_AddressString", HFILL }},
17838     { &hf_gsm_map_ss_forwardingOptions,
17839       { "forwardingOptions", "gsm_map.ss.forwardingOptions",
17840         FT_BYTES, BASE_HEX, NULL, 0,
17841         "gsm_map_ss.ForwardingOptions", HFILL }},
17842     { &hf_gsm_map_ss_longForwardedToNumber,
17843       { "longForwardedToNumber", "gsm_map.ss.longForwardedToNumber",
17844         FT_BYTES, BASE_HEX, NULL, 0,
17845         "gsm_map.FTN_AddressString", HFILL }},
17846     { &hf_gsm_map_ss_callBarringFeatureList,
17847       { "callBarringFeatureList", "gsm_map.ss.callBarringFeatureList",
17848         FT_UINT32, BASE_DEC, NULL, 0,
17849         "gsm_map_ss.CallBarringFeatureList", HFILL }},
17850     { &hf_gsm_map_ss_CallBarringFeatureList_item,
17851       { "Item", "gsm_map.ss.CallBarringFeatureList_item",
17852         FT_NONE, BASE_NONE, NULL, 0,
17853         "gsm_map_ss.CallBarringFeature", HFILL }},
17854     { &hf_gsm_map_ss_ss_SubscriptionOption,
17855       { "ss-SubscriptionOption", "gsm_map.ss.ss_SubscriptionOption",
17856         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
17857         "gsm_map_ss.SS_SubscriptionOption", HFILL }},
17858     { &hf_gsm_map_ss_basicServiceGroupList,
17859       { "basicServiceGroupList", "gsm_map.ss.basicServiceGroupList",
17860         FT_UINT32, BASE_DEC, NULL, 0,
17861         "gsm_map_ss.BasicServiceGroupList", HFILL }},
17862     { &hf_gsm_map_ss_cliRestrictionOption,
17863       { "cliRestrictionOption", "gsm_map.ss.cliRestrictionOption",
17864         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CliRestrictionOption_vals), 0,
17865         "gsm_map_ss.CliRestrictionOption", HFILL }},
17866     { &hf_gsm_map_ss_overrideCategory,
17867       { "overrideCategory", "gsm_map.ss.overrideCategory",
17868         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_OverrideCategory_vals), 0,
17869         "gsm_map_ss.OverrideCategory", HFILL }},
17870     { &hf_gsm_map_ss_maximumEntitledPriority,
17871       { "maximumEntitledPriority", "gsm_map.ss.maximumEntitledPriority",
17872         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
17873         "gsm_map.EMLPP_Priority", HFILL }},
17874     { &hf_gsm_map_ss_ccbs_FeatureList,
17875       { "ccbs-FeatureList", "gsm_map.ss.ccbs_FeatureList",
17876         FT_UINT32, BASE_DEC, NULL, 0,
17877         "gsm_map_ss.CCBS_FeatureList", HFILL }},
17878     { &hf_gsm_map_ss_nbrSB,
17879       { "nbrSB", "gsm_map.ss.nbrSB",
17880         FT_UINT32, BASE_DEC, NULL, 0,
17881         "gsm_map.MaxMC_Bearers", HFILL }},
17882     { &hf_gsm_map_ss_nbrSN,
17883       { "nbrSN", "gsm_map.ss.nbrSN",
17884         FT_UINT32, BASE_DEC, NULL, 0,
17885         "gsm_map.MC_Bearers", HFILL }},
17886     { &hf_gsm_map_ss_CCBS_FeatureList_item,
17887       { "Item", "gsm_map.ss.CCBS_FeatureList_item",
17888         FT_NONE, BASE_NONE, NULL, 0,
17889         "gsm_map_ss.CCBS_Feature", HFILL }},
17890     { &hf_gsm_map_ss_ccbs_Index,
17891       { "ccbs-Index", "gsm_map.ss.ccbs_Index",
17892         FT_UINT32, BASE_DEC, NULL, 0,
17893         "gsm_map_ss.CCBS_Index", HFILL }},
17894     { &hf_gsm_map_ss_b_subscriberNumber,
17895       { "b-subscriberNumber", "gsm_map.ss.b_subscriberNumber",
17896         FT_BYTES, BASE_HEX, NULL, 0,
17897         "gsm_map.ISDN_AddressString", HFILL }},
17898     { &hf_gsm_map_ss_b_subscriberSubaddress,
17899       { "b-subscriberSubaddress", "gsm_map.ss.b_subscriberSubaddress",
17900         FT_BYTES, BASE_HEX, NULL, 0,
17901         "gsm_map.ISDN_SubaddressString", HFILL }},
17902     { &hf_gsm_map_ss_basicServiceGroup,
17903       { "basicServiceGroup", "gsm_map.ss.basicServiceGroup",
17904         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
17905         "gsm_map.BasicServiceCode", HFILL }},
17906     { &hf_gsm_map_ss_genericServiceInfo,
17907       { "genericServiceInfo", "gsm_map.ss.genericServiceInfo",
17908         FT_NONE, BASE_NONE, NULL, 0,
17909         "gsm_map_ss.GenericServiceInfo", HFILL }},
17910     { &hf_gsm_map_ss_ussd_DataCodingScheme,
17911       { "ussd-DataCodingScheme", "gsm_map.ss.ussd_DataCodingScheme",
17912         FT_BYTES, BASE_HEX, NULL, 0,
17913         "gsm_map_ss.USSD_DataCodingScheme", HFILL }},
17914     { &hf_gsm_map_ss_ussd_String,
17915       { "ussd-String", "gsm_map.ss.ussd_String",
17916         FT_BYTES, BASE_HEX, NULL, 0,
17917         "gsm_map_ss.USSD_String", HFILL }},
17918     { &hf_gsm_map_ss_alertingPattern,
17919       { "alertingPattern", "gsm_map.ss.alertingPattern",
17920         FT_BYTES, BASE_HEX, NULL, 0,
17921         "gsm_map.AlertingPattern", HFILL }},
17922     { &hf_gsm_map_ss_msisdn,
17923       { "msisdn", "gsm_map.ss.msisdn",
17924         FT_BYTES, BASE_HEX, NULL, 0,
17925         "gsm_map.ISDN_AddressString", HFILL }},
17926     { &hf_gsm_map_ss_SS_List_item,
17927       { "Item", "gsm_map.ss.SS_List_item",
17928         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
17929         "gsm_map.SS_Code", HFILL }},
17930     { &hf_gsm_map_ss_BasicServiceGroupList_item,
17931       { "Item", "gsm_map.ss.BasicServiceGroupList_item",
17932         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
17933         "gsm_map.BasicServiceCode", HFILL }},
17934     { &hf_gsm_map_ss_imsi,
17935       { "imsi", "gsm_map.ss.imsi",
17936         FT_BYTES, BASE_HEX, NULL, 0,
17937         "gsm_map.IMSI", HFILL }},
17938     { &hf_gsm_map_ss_ss_Event,
17939       { "ss-Event", "gsm_map.ss.ss_Event",
17940         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
17941         "gsm_map.SS_Code", HFILL }},
17942     { &hf_gsm_map_ss_ss_EventSpecification,
17943       { "ss-EventSpecification", "gsm_map.ss.ss_EventSpecification",
17944         FT_UINT32, BASE_DEC, NULL, 0,
17945         "gsm_map_ss.SS_EventSpecification", HFILL }},
17946     { &hf_gsm_map_ss_extensionContainer,
17947       { "extensionContainer", "gsm_map.ss.extensionContainer",
17948         FT_NONE, BASE_NONE, NULL, 0,
17949         "gsm_map.ExtensionContainer", HFILL }},
17950     { &hf_gsm_map_ss_ccbs_RequestState,
17951       { "ccbs-RequestState", "gsm_map.ss.ccbs_RequestState",
17952         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CCBS_RequestState_vals), 0,
17953         "gsm_map_ss.CCBS_RequestState", HFILL }},
17954     { &hf_gsm_map_ss_SS_EventSpecification_item,
17955       { "Item", "gsm_map.ss.SS_EventSpecification_item",
17956         FT_BYTES, BASE_HEX, NULL, 0,
17957         "gsm_map.AddressString", HFILL }},
17958     { &hf_gsm_map_ss_ccbs_Data,
17959       { "ccbs-Data", "gsm_map.ss.ccbs_Data",
17960         FT_NONE, BASE_NONE, NULL, 0,
17961         "gsm_map_ss.CCBS_Data", HFILL }},
17962     { &hf_gsm_map_ss_ccbs_Feature,
17963       { "ccbs-Feature", "gsm_map.ss.ccbs_Feature",
17964         FT_NONE, BASE_NONE, NULL, 0,
17965         "gsm_map_ss.CCBS_Feature", HFILL }},
17966     { &hf_gsm_map_ss_translatedB_Number,
17967       { "translatedB-Number", "gsm_map.ss.translatedB_Number",
17968         FT_BYTES, BASE_HEX, NULL, 0,
17969         "gsm_map.ISDN_AddressString", HFILL }},
17970     { &hf_gsm_map_ss_serviceIndicator,
17971       { "serviceIndicator", "gsm_map.ss.serviceIndicator",
17972         FT_BYTES, BASE_HEX, NULL, 0,
17973         "gsm_map_ss.ServiceIndicator", HFILL }},
17974     { &hf_gsm_map_ss_callInfo,
17975       { "callInfo", "gsm_map.ss.callInfo",
17976         FT_NONE, BASE_NONE, NULL, 0,
17977         "gsm_map.ExternalSignalInfo", HFILL }},
17978     { &hf_gsm_map_ss_networkSignalInfo,
17979       { "networkSignalInfo", "gsm_map.ss.networkSignalInfo",
17980         FT_NONE, BASE_NONE, NULL, 0,
17981         "gsm_map.ExternalSignalInfo", HFILL }},
17982     { &hf_gsm_map_ss_ServiceIndicator_clir_invoked,
17983       { "clir-invoked", "gsm_map.ss.clir-invoked",
17984         FT_BOOLEAN, 8, NULL, 0x80,
17985         "", HFILL }},
17986     { &hf_gsm_map_ss_ServiceIndicator_camel_invoked,
17987       { "camel-invoked", "gsm_map.ss.camel-invoked",
17988         FT_BOOLEAN, 8, NULL, 0x40,
17989         "", HFILL }},
17990
17991 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
17992
17993     { &hf_gsm_map_er_roamingNotAllowedCause,
17994       { "roamingNotAllowedCause", "gsm_map.er.roamingNotAllowedCause",
17995         FT_UINT32, BASE_DEC, VALS(gsm_map_er_RoamingNotAllowedCause_vals), 0,
17996         "gsm_map_er.RoamingNotAllowedCause", HFILL }},
17997     { &hf_gsm_map_er_extensionContainer,
17998       { "extensionContainer", "gsm_map.er.extensionContainer",
17999         FT_NONE, BASE_NONE, NULL, 0,
18000         "gsm_map.ExtensionContainer", HFILL }},
18001     { &hf_gsm_map_er_additionalRoamingNotAllowedCause,
18002       { "additionalRoamingNotAllowedCause", "gsm_map.er.additionalRoamingNotAllowedCause",
18003         FT_UINT32, BASE_DEC, VALS(gsm_map_er_AdditionalRoamingNotAllowedCause_vals), 0,
18004         "gsm_map_er.AdditionalRoamingNotAllowedCause", HFILL }},
18005     { &hf_gsm_map_er_callBarringCause,
18006       { "callBarringCause", "gsm_map.er.callBarringCause",
18007         FT_UINT32, BASE_DEC, VALS(gsm_map_er_CallBarringCause_vals), 0,
18008         "gsm_map_er.CallBarringCause", HFILL }},
18009     { &hf_gsm_map_er_extensibleCallBarredParam,
18010       { "extensibleCallBarredParam", "gsm_map.er.extensibleCallBarredParam",
18011         FT_NONE, BASE_NONE, NULL, 0,
18012         "gsm_map_er.ExtensibleCallBarredParam", HFILL }},
18013     { &hf_gsm_map_er_unauthorisedMessageOriginator,
18014       { "unauthorisedMessageOriginator", "gsm_map.er.unauthorisedMessageOriginator",
18015         FT_NONE, BASE_NONE, NULL, 0,
18016         "gsm_map_er.NULL", HFILL }},
18017     { &hf_gsm_map_er_cug_RejectCause,
18018       { "cug-RejectCause", "gsm_map.er.cug_RejectCause",
18019         FT_UINT32, BASE_DEC, VALS(gsm_map_er_CUG_RejectCause_vals), 0,
18020         "gsm_map_er.CUG_RejectCause", HFILL }},
18021     { &hf_gsm_map_er_ss_Code,
18022       { "ss-Code", "gsm_map.er.ss_Code",
18023         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
18024         "gsm_map.SS_Code", HFILL }},
18025     { &hf_gsm_map_er_basicService,
18026       { "basicService", "gsm_map.er.basicService",
18027         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
18028         "gsm_map.BasicServiceCode", HFILL }},
18029     { &hf_gsm_map_er_ss_Status,
18030       { "ss-Status", "gsm_map.er.ss_Status",
18031         FT_BYTES, BASE_HEX, NULL, 0,
18032         "gsm_map_ss.SS_Status", HFILL }},
18033     { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause,
18034       { "sm-EnumeratedDeliveryFailureCause", "gsm_map.er.sm_EnumeratedDeliveryFailureCause",
18035         FT_UINT32, BASE_DEC, VALS(gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals), 0,
18036         "gsm_map_er.SM_EnumeratedDeliveryFailureCause", HFILL }},
18037     { &hf_gsm_map_er_diagnosticInfo,
18038       { "diagnosticInfo", "gsm_map.er.diagnosticInfo",
18039         FT_BYTES, BASE_HEX, NULL, 0,
18040         "gsm_map.SignalInfo", HFILL }},
18041     { &hf_gsm_map_er_absentSubscriberDiagnosticSM,
18042       { "absentSubscriberDiagnosticSM", "gsm_map.er.absentSubscriberDiagnosticSM",
18043         FT_UINT32, BASE_DEC, NULL, 0,
18044         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18045     { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM,
18046       { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.er.additionalAbsentSubscriberDiagnosticSM",
18047         FT_UINT32, BASE_DEC, NULL, 0,
18048         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18049     { &hf_gsm_map_er_networkResource,
18050       { "networkResource", "gsm_map.er.networkResource",
18051         FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0,
18052         "gsm_map.NetworkResource", HFILL }},
18053     { &hf_gsm_map_er_extensibleSystemFailureParam,
18054       { "extensibleSystemFailureParam", "gsm_map.er.extensibleSystemFailureParam",
18055         FT_NONE, BASE_NONE, NULL, 0,
18056         "gsm_map_er.ExtensibleSystemFailureParam", HFILL }},
18057     { &hf_gsm_map_er_additionalNetworkResource,
18058       { "additionalNetworkResource", "gsm_map.er.additionalNetworkResource",
18059         FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalNetworkResource_vals), 0,
18060         "gsm_map.AdditionalNetworkResource", HFILL }},
18061     { &hf_gsm_map_er_failureCauseParam,
18062       { "failureCauseParam", "gsm_map.er.failureCauseParam",
18063         FT_UINT32, BASE_DEC, VALS(gsm_map_er_FailureCauseParam_vals), 0,
18064         "gsm_map_er.FailureCauseParam", HFILL }},
18065     { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported,
18066       { "shapeOfLocationEstimateNotSupported", "gsm_map.er.shapeOfLocationEstimateNotSupported",
18067         FT_NONE, BASE_NONE, NULL, 0,
18068         "gsm_map_er.NULL", HFILL }},
18069     { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode,
18070       { "neededLcsCapabilityNotSupportedInServingNode", "gsm_map.er.neededLcsCapabilityNotSupportedInServingNode",
18071         FT_NONE, BASE_NONE, NULL, 0,
18072         "gsm_map_er.NULL", HFILL }},
18073     { &hf_gsm_map_er_unknownSubscriberDiagnostic,
18074       { "unknownSubscriberDiagnostic", "gsm_map.er.unknownSubscriberDiagnostic",
18075         FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnknownSubscriberDiagnostic_vals), 0,
18076         "gsm_map_er.UnknownSubscriberDiagnostic", HFILL }},
18077     { &hf_gsm_map_er_absentSubscriberReason,
18078       { "absentSubscriberReason", "gsm_map.er.absentSubscriberReason",
18079         FT_UINT32, BASE_DEC, VALS(gsm_map_er_AbsentSubscriberReason_vals), 0,
18080         "gsm_map_er.AbsentSubscriberReason", HFILL }},
18081     { &hf_gsm_map_er_ccbs_Possible,
18082       { "ccbs-Possible", "gsm_map.er.ccbs_Possible",
18083         FT_NONE, BASE_NONE, NULL, 0,
18084         "gsm_map_er.NULL", HFILL }},
18085     { &hf_gsm_map_er_ccbs_Busy,
18086       { "ccbs-Busy", "gsm_map.er.ccbs_Busy",
18087         FT_NONE, BASE_NONE, NULL, 0,
18088         "gsm_map_er.NULL", HFILL }},
18089     { &hf_gsm_map_er_gprsConnectionSuspended,
18090       { "gprsConnectionSuspended", "gsm_map.er.gprsConnectionSuspended",
18091         FT_NONE, BASE_NONE, NULL, 0,
18092         "gsm_map_er.NULL", HFILL }},
18093     { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic,
18094       { "unauthorizedLCSClient-Diagnostic", "gsm_map.er.unauthorizedLCSClient_Diagnostic",
18095         FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals), 0,
18096         "gsm_map_er.UnauthorizedLCSClient_Diagnostic", HFILL }},
18097     { &hf_gsm_map_er_positionMethodFailure_Diagnostic,
18098       { "positionMethodFailure-Diagnostic", "gsm_map.er.positionMethodFailure_Diagnostic",
18099         FT_UINT32, BASE_DEC, VALS(gsm_map_er_PositionMethodFailure_Diagnostic_vals), 0,
18100         "gsm_map_er.PositionMethodFailure_Diagnostic", HFILL }},
18101
18102 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
18103
18104     { &hf_gsm_map_sm_msisdn,
18105       { "msisdn", "gsm_map.sm.msisdn",
18106         FT_BYTES, BASE_HEX, NULL, 0,
18107         "gsm_map.ISDN_AddressString", HFILL }},
18108     { &hf_gsm_map_sm_sm_RP_PRI,
18109       { "sm-RP-PRI", "gsm_map.sm.sm_RP_PRI",
18110         FT_BOOLEAN, 8, NULL, 0,
18111         "gsm_map_sm.BOOLEAN", HFILL }},
18112     { &hf_gsm_map_sm_serviceCentreAddress,
18113       { "serviceCentreAddress", "gsm_map.sm.serviceCentreAddress",
18114         FT_BYTES, BASE_HEX, NULL, 0,
18115         "gsm_map.AddressString", HFILL }},
18116     { &hf_gsm_map_sm_extensionContainer,
18117       { "extensionContainer", "gsm_map.sm.extensionContainer",
18118         FT_NONE, BASE_NONE, NULL, 0,
18119         "gsm_map.ExtensionContainer", HFILL }},
18120     { &hf_gsm_map_sm_gprsSupportIndicator,
18121       { "gprsSupportIndicator", "gsm_map.sm.gprsSupportIndicator",
18122         FT_NONE, BASE_NONE, NULL, 0,
18123         "gsm_map_sm.NULL", HFILL }},
18124     { &hf_gsm_map_sm_sm_RP_MTI,
18125       { "sm-RP-MTI", "gsm_map.sm.sm_RP_MTI",
18126         FT_UINT32, BASE_DEC, NULL, 0,
18127         "gsm_map_sm.SM_RP_MTI", HFILL }},
18128     { &hf_gsm_map_sm_sm_RP_SMEA,
18129       { "sm-RP-SMEA", "gsm_map.sm.sm_RP_SMEA",
18130         FT_BYTES, BASE_HEX, NULL, 0,
18131         "gsm_map_sm.SM_RP_SMEA", HFILL }},
18132     { &hf_gsm_map_sm_sm_deliveryNotIntended,
18133       { "sm-deliveryNotIntended", "gsm_map.sm.sm_deliveryNotIntended",
18134         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryNotIntended_vals), 0,
18135         "gsm_map_sm.SM_DeliveryNotIntended", HFILL }},
18136     { &hf_gsm_map_sm_imsi,
18137       { "imsi", "gsm_map.sm.imsi",
18138         FT_BYTES, BASE_HEX, NULL, 0,
18139         "gsm_map.IMSI", HFILL }},
18140     { &hf_gsm_map_sm_locationInfoWithLMSI,
18141       { "locationInfoWithLMSI", "gsm_map.sm.locationInfoWithLMSI",
18142         FT_NONE, BASE_NONE, NULL, 0,
18143         "gsm_map_sm.LocationInfoWithLMSI", HFILL }},
18144     { &hf_gsm_map_sm_networkNode_Number,
18145       { "networkNode-Number", "gsm_map.sm.networkNode_Number",
18146         FT_BYTES, BASE_HEX, NULL, 0,
18147         "gsm_map.ISDN_AddressString", HFILL }},
18148     { &hf_gsm_map_sm_lmsi,
18149       { "lmsi", "gsm_map.sm.lmsi",
18150         FT_BYTES, BASE_HEX, NULL, 0,
18151         "gsm_map.LMSI", HFILL }},
18152     { &hf_gsm_map_sm_gprsNodeIndicator,
18153       { "gprsNodeIndicator", "gsm_map.sm.gprsNodeIndicator",
18154         FT_NONE, BASE_NONE, NULL, 0,
18155         "gsm_map_sm.NULL", HFILL }},
18156     { &hf_gsm_map_sm_additional_Number,
18157       { "additional-Number", "gsm_map.sm.additional_Number",
18158         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
18159         "gsm_map_sm.Additional_Number", HFILL }},
18160     { &hf_gsm_map_sm_msc_Number,
18161       { "msc-Number", "gsm_map.sm.msc_Number",
18162         FT_BYTES, BASE_HEX, NULL, 0,
18163         "gsm_map.ISDN_AddressString", HFILL }},
18164     { &hf_gsm_map_sm_sgsn_Number,
18165       { "sgsn-Number", "gsm_map.sm.sgsn_Number",
18166         FT_BYTES, BASE_HEX, NULL, 0,
18167         "gsm_map.ISDN_AddressString", HFILL }},
18168     { &hf_gsm_map_sm_sm_RP_DA,
18169       { "sm-RP-DA", "gsm_map.sm.sm_RP_DA",
18170         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_DA_vals), 0,
18171         "gsm_map_sm.SM_RP_DA", HFILL }},
18172     { &hf_gsm_map_sm_sm_RP_OA,
18173       { "sm-RP-OA", "gsm_map.sm.sm_RP_OA",
18174         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_OA_vals), 0,
18175         "gsm_map_sm.SM_RP_OA", HFILL }},
18176     { &hf_gsm_map_sm_sm_RP_UI,
18177       { "sm-RP-UI", "gsm_map.sm.sm_RP_UI",
18178         FT_BYTES, BASE_HEX, NULL, 0,
18179         "gsm_map.SignalInfo", HFILL }},
18180     { &hf_gsm_map_sm_moreMessagesToSend,
18181       { "moreMessagesToSend", "gsm_map.sm.moreMessagesToSend",
18182         FT_NONE, BASE_NONE, NULL, 0,
18183         "gsm_map_sm.NULL", HFILL }},
18184     { &hf_gsm_map_sm_serviceCentreAddressDA,
18185       { "serviceCentreAddressDA", "gsm_map.sm.serviceCentreAddressDA",
18186         FT_BYTES, BASE_HEX, NULL, 0,
18187         "gsm_map.AddressString", HFILL }},
18188     { &hf_gsm_map_sm_noSM_RP_DA,
18189       { "noSM-RP-DA", "gsm_map.sm.noSM_RP_DA",
18190         FT_NONE, BASE_NONE, NULL, 0,
18191         "gsm_map_sm.NULL", HFILL }},
18192     { &hf_gsm_map_sm_msisdn_01,
18193       { "msisdn", "gsm_map.sm.msisdn",
18194         FT_BYTES, BASE_HEX, NULL, 0,
18195         "gsm_map_sm.T_msisdn", HFILL }},
18196     { &hf_gsm_map_sm_serviceCentreAddressOA,
18197       { "serviceCentreAddressOA", "gsm_map.sm.serviceCentreAddressOA",
18198         FT_BYTES, BASE_HEX, NULL, 0,
18199         "gsm_map_sm.T_serviceCentreAddressOA", HFILL }},
18200     { &hf_gsm_map_sm_noSM_RP_OA,
18201       { "noSM-RP-OA", "gsm_map.sm.noSM_RP_OA",
18202         FT_NONE, BASE_NONE, NULL, 0,
18203         "gsm_map_sm.NULL", HFILL }},
18204     { &hf_gsm_map_sm_sm_DeliveryOutcome,
18205       { "sm-DeliveryOutcome", "gsm_map.sm.sm_DeliveryOutcome",
18206         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
18207         "gsm_map_sm.SM_DeliveryOutcome", HFILL }},
18208     { &hf_gsm_map_sm_absentSubscriberDiagnosticSM,
18209       { "absentSubscriberDiagnosticSM", "gsm_map.sm.absentSubscriberDiagnosticSM",
18210         FT_UINT32, BASE_DEC, NULL, 0,
18211         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18212     { &hf_gsm_map_sm_deliveryOutcomeIndicator,
18213       { "deliveryOutcomeIndicator", "gsm_map.sm.deliveryOutcomeIndicator",
18214         FT_NONE, BASE_NONE, NULL, 0,
18215         "gsm_map_sm.NULL", HFILL }},
18216     { &hf_gsm_map_sm_additionalSM_DeliveryOutcome,
18217       { "additionalSM-DeliveryOutcome", "gsm_map.sm.additionalSM_DeliveryOutcome",
18218         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
18219         "gsm_map_sm.SM_DeliveryOutcome", HFILL }},
18220     { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM,
18221       { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.sm.additionalAbsentSubscriberDiagnosticSM",
18222         FT_UINT32, BASE_DEC, NULL, 0,
18223         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18224     { &hf_gsm_map_sm_ip_sm_gw_Indicator,
18225       { "ip-sm-gw-Indicator", "gsm_map.sm.ip_sm_gw_Indicator",
18226         FT_NONE, BASE_NONE, NULL, 0,
18227         "gsm_map_sm.NULL", HFILL }},
18228     { &hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome,
18229       { "ip-sm-gw-sm-deliveryOutcome", "gsm_map.sm.ip_sm_gw_sm_deliveryOutcome",
18230         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
18231         "gsm_map_sm.SM_DeliveryOutcome", HFILL }},
18232     { &hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM,
18233       { "ip-sm-gw-absentSubscriberDiagnosticSM", "gsm_map.sm.ip_sm_gw_absentSubscriberDiagnosticSM",
18234         FT_UINT32, BASE_DEC, NULL, 0,
18235         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18236     { &hf_gsm_map_sm_storedMSISDN,
18237       { "storedMSISDN", "gsm_map.sm.storedMSISDN",
18238         FT_BYTES, BASE_HEX, NULL, 0,
18239         "gsm_map.ISDN_AddressString", HFILL }},
18240     { &hf_gsm_map_sm_mw_Status,
18241       { "mw-Status", "gsm_map.sm.mw_Status",
18242         FT_BYTES, BASE_HEX, NULL, 0,
18243         "gsm_map_sm.MW_Status", HFILL }},
18244     { &hf_gsm_map_sm_alertReason,
18245       { "alertReason", "gsm_map.sm.alertReason",
18246         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_AlertReason_vals), 0,
18247         "gsm_map_sm.AlertReason", HFILL }},
18248     { &hf_gsm_map_sm_alertReasonIndicator,
18249       { "alertReasonIndicator", "gsm_map.sm.alertReasonIndicator",
18250         FT_NONE, BASE_NONE, NULL, 0,
18251         "gsm_map_sm.NULL", HFILL }},
18252     { &hf_gsm_map_sm_additionalAlertReasonIndicator,
18253       { "additionalAlertReasonIndicator", "gsm_map.sm.additionalAlertReasonIndicator",
18254         FT_NONE, BASE_NONE, NULL, 0,
18255         "gsm_map_sm.NULL", HFILL }},
18256     { &hf_gsm_map_sm_asciCallReference,
18257       { "asciCallReference", "gsm_map.sm.asciCallReference",
18258         FT_BYTES, BASE_HEX, NULL, 0,
18259         "gsm_map.ASCI_CallReference", HFILL }},
18260     { &hf_gsm_map_sm_dispatcherList,
18261       { "dispatcherList", "gsm_map.sm.dispatcherList",
18262         FT_UINT32, BASE_DEC, NULL, 0,
18263         "gsm_map_sm.DispatcherList", HFILL }},
18264     { &hf_gsm_map_sm_ongoingCall,
18265       { "ongoingCall", "gsm_map.sm.ongoingCall",
18266         FT_NONE, BASE_NONE, NULL, 0,
18267         "gsm_map_sm.NULL", HFILL }},
18268     { &hf_gsm_map_sm_DispatcherList_item,
18269       { "Item", "gsm_map.sm.DispatcherList_item",
18270         FT_BYTES, BASE_HEX, NULL, 0,
18271         "gsm_map.ISDN_AddressString", HFILL }},
18272     { &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded,
18273       { "sc-AddressNotIncluded", "gsm_map.sm.sc-AddressNotIncluded",
18274         FT_BOOLEAN, 8, NULL, 0x80,
18275         "", HFILL }},
18276     { &hf_gsm_map_sm_MW_Status_mnrf_Set,
18277       { "mnrf-Set", "gsm_map.sm.mnrf-Set",
18278         FT_BOOLEAN, 8, NULL, 0x40,
18279         "", HFILL }},
18280     { &hf_gsm_map_sm_MW_Status_mcef_Set,
18281       { "mcef-Set", "gsm_map.sm.mcef-Set",
18282         FT_BOOLEAN, 8, NULL, 0x20,
18283         "", HFILL }},
18284     { &hf_gsm_map_sm_MW_Status_mnrg_Set,
18285       { "mnrg-Set", "gsm_map.sm.mnrg-Set",
18286         FT_BOOLEAN, 8, NULL, 0x10,
18287         "", HFILL }},
18288
18289 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
18290
18291     { &hf_gsm_map_om_imsi,
18292       { "imsi", "gsm_map.om.imsi",
18293         FT_BYTES, BASE_HEX, NULL, 0,
18294         "gsm_map.IMSI", HFILL }},
18295     { &hf_gsm_map_om_traceReference,
18296       { "traceReference", "gsm_map.om.traceReference",
18297         FT_BYTES, BASE_HEX, NULL, 0,
18298         "gsm_map_om.TraceReference", HFILL }},
18299     { &hf_gsm_map_om_traceType,
18300       { "traceType", "gsm_map.om.traceType",
18301         FT_UINT32, BASE_DEC, NULL, 0,
18302         "gsm_map_om.TraceType", HFILL }},
18303     { &hf_gsm_map_om_omc_Id,
18304       { "omc-Id", "gsm_map.om.omc_Id",
18305         FT_BYTES, BASE_HEX, NULL, 0,
18306         "gsm_map.AddressString", HFILL }},
18307     { &hf_gsm_map_om_extensionContainer,
18308       { "extensionContainer", "gsm_map.om.extensionContainer",
18309         FT_NONE, BASE_NONE, NULL, 0,
18310         "gsm_map.ExtensionContainer", HFILL }},
18311     { &hf_gsm_map_om_traceReference2,
18312       { "traceReference2", "gsm_map.om.traceReference2",
18313         FT_BYTES, BASE_HEX, NULL, 0,
18314         "gsm_map_om.TraceReference2", HFILL }},
18315     { &hf_gsm_map_om_traceDepthList,
18316       { "traceDepthList", "gsm_map.om.traceDepthList",
18317         FT_NONE, BASE_NONE, NULL, 0,
18318         "gsm_map_om.TraceDepthList", HFILL }},
18319     { &hf_gsm_map_om_traceNE_TypeList,
18320       { "traceNE-TypeList", "gsm_map.om.traceNE_TypeList",
18321         FT_BYTES, BASE_HEX, NULL, 0,
18322         "gsm_map_om.TraceNE_TypeList", HFILL }},
18323     { &hf_gsm_map_om_traceInterfaceList,
18324       { "traceInterfaceList", "gsm_map.om.traceInterfaceList",
18325         FT_NONE, BASE_NONE, NULL, 0,
18326         "gsm_map_om.TraceInterfaceList", HFILL }},
18327     { &hf_gsm_map_om_traceEventList,
18328       { "traceEventList", "gsm_map.om.traceEventList",
18329         FT_NONE, BASE_NONE, NULL, 0,
18330         "gsm_map_om.TraceEventList", HFILL }},
18331     { &hf_gsm_map_om_msc_s_TraceDepth,
18332       { "msc-s-TraceDepth", "gsm_map.om.msc_s_TraceDepth",
18333         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18334         "gsm_map_om.TraceDepth", HFILL }},
18335     { &hf_gsm_map_om_mgw_TraceDepth,
18336       { "mgw-TraceDepth", "gsm_map.om.mgw_TraceDepth",
18337         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18338         "gsm_map_om.TraceDepth", HFILL }},
18339     { &hf_gsm_map_om_sgsn_TraceDepth,
18340       { "sgsn-TraceDepth", "gsm_map.om.sgsn_TraceDepth",
18341         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18342         "gsm_map_om.TraceDepth", HFILL }},
18343     { &hf_gsm_map_om_ggsn_TraceDepth,
18344       { "ggsn-TraceDepth", "gsm_map.om.ggsn_TraceDepth",
18345         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18346         "gsm_map_om.TraceDepth", HFILL }},
18347     { &hf_gsm_map_om_rnc_TraceDepth,
18348       { "rnc-TraceDepth", "gsm_map.om.rnc_TraceDepth",
18349         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18350         "gsm_map_om.TraceDepth", HFILL }},
18351     { &hf_gsm_map_om_bmsc_TraceDepth,
18352       { "bmsc-TraceDepth", "gsm_map.om.bmsc_TraceDepth",
18353         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18354         "gsm_map_om.TraceDepth", HFILL }},
18355     { &hf_gsm_map_om_msc_s_List,
18356       { "msc-s-List", "gsm_map.om.msc_s_List",
18357         FT_BYTES, BASE_HEX, NULL, 0,
18358         "gsm_map_om.MSC_S_InterfaceList", HFILL }},
18359     { &hf_gsm_map_om_mgw_List,
18360       { "mgw-List", "gsm_map.om.mgw_List",
18361         FT_BYTES, BASE_HEX, NULL, 0,
18362         "gsm_map_om.MGW_InterfaceList", HFILL }},
18363     { &hf_gsm_map_om_sgsn_List,
18364       { "sgsn-List", "gsm_map.om.sgsn_List",
18365         FT_BYTES, BASE_HEX, NULL, 0,
18366         "gsm_map_om.SGSN_InterfaceList", HFILL }},
18367     { &hf_gsm_map_om_ggsn_List,
18368       { "ggsn-List", "gsm_map.om.ggsn_List",
18369         FT_BYTES, BASE_HEX, NULL, 0,
18370         "gsm_map_om.GGSN_InterfaceList", HFILL }},
18371     { &hf_gsm_map_om_rnc_List,
18372       { "rnc-List", "gsm_map.om.rnc_List",
18373         FT_BYTES, BASE_HEX, NULL, 0,
18374         "gsm_map_om.RNC_InterfaceList", HFILL }},
18375     { &hf_gsm_map_om_bmsc_List,
18376       { "bmsc-List", "gsm_map.om.bmsc_List",
18377         FT_BYTES, BASE_HEX, NULL, 0,
18378         "gsm_map_om.BMSC_InterfaceList", HFILL }},
18379     { &hf_gsm_map_om_msc_s_List_01,
18380       { "msc-s-List", "gsm_map.om.msc_s_List",
18381         FT_BYTES, BASE_HEX, NULL, 0,
18382         "gsm_map_om.MSC_S_EventList", HFILL }},
18383     { &hf_gsm_map_om_mgw_List_01,
18384       { "mgw-List", "gsm_map.om.mgw_List",
18385         FT_BYTES, BASE_HEX, NULL, 0,
18386         "gsm_map_om.MGW_EventList", HFILL }},
18387     { &hf_gsm_map_om_sgsn_List_01,
18388       { "sgsn-List", "gsm_map.om.sgsn_List",
18389         FT_BYTES, BASE_HEX, NULL, 0,
18390         "gsm_map_om.SGSN_EventList", HFILL }},
18391     { &hf_gsm_map_om_ggsn_List_01,
18392       { "ggsn-List", "gsm_map.om.ggsn_List",
18393         FT_BYTES, BASE_HEX, NULL, 0,
18394         "gsm_map_om.GGSN_EventList", HFILL }},
18395     { &hf_gsm_map_om_bmsc_List_01,
18396       { "bmsc-List", "gsm_map.om.bmsc_List",
18397         FT_BYTES, BASE_HEX, NULL, 0,
18398         "gsm_map_om.BMSC_EventList", HFILL }},
18399     { &hf_gsm_map_om_traceRecordingSessionReference,
18400       { "traceRecordingSessionReference", "gsm_map.om.traceRecordingSessionReference",
18401         FT_BYTES, BASE_HEX, NULL, 0,
18402         "gsm_map_om.TraceRecordingSessionReference", HFILL }},
18403     { &hf_gsm_map_om_rnc_InterfaceList,
18404       { "rnc-InterfaceList", "gsm_map.om.rnc_InterfaceList",
18405         FT_BYTES, BASE_HEX, NULL, 0,
18406         "gsm_map_om.RNC_InterfaceList", HFILL }},
18407     { &hf_gsm_map_om_msc_s_InterfaceList,
18408       { "msc-s-InterfaceList", "gsm_map.om.msc_s_InterfaceList",
18409         FT_BYTES, BASE_HEX, NULL, 0,
18410         "gsm_map_om.MSC_S_InterfaceList", HFILL }},
18411     { &hf_gsm_map_om_msc_s_EventList,
18412       { "msc-s-EventList", "gsm_map.om.msc_s_EventList",
18413         FT_BYTES, BASE_HEX, NULL, 0,
18414         "gsm_map_om.MSC_S_EventList", HFILL }},
18415     { &hf_gsm_map_om_mgw_InterfaceList,
18416       { "mgw-InterfaceList", "gsm_map.om.mgw_InterfaceList",
18417         FT_BYTES, BASE_HEX, NULL, 0,
18418         "gsm_map_om.MGW_InterfaceList", HFILL }},
18419     { &hf_gsm_map_om_mgw_EventList,
18420       { "mgw-EventList", "gsm_map.om.mgw_EventList",
18421         FT_BYTES, BASE_HEX, NULL, 0,
18422         "gsm_map_om.MGW_EventList", HFILL }},
18423     { &hf_gsm_map_om_traceSupportIndicator,
18424       { "traceSupportIndicator", "gsm_map.om.traceSupportIndicator",
18425         FT_NONE, BASE_NONE, NULL, 0,
18426         "gsm_map_om.NULL", HFILL }},
18427     { &hf_gsm_map_om_TraceNE_TypeList_msc_s,
18428       { "msc-s", "gsm_map.om.msc-s",
18429         FT_BOOLEAN, 8, NULL, 0x80,
18430         "", HFILL }},
18431     { &hf_gsm_map_om_TraceNE_TypeList_mgw,
18432       { "mgw", "gsm_map.om.mgw",
18433         FT_BOOLEAN, 8, NULL, 0x40,
18434         "", HFILL }},
18435     { &hf_gsm_map_om_TraceNE_TypeList_sgsn,
18436       { "sgsn", "gsm_map.om.sgsn",
18437         FT_BOOLEAN, 8, NULL, 0x20,
18438         "", HFILL }},
18439     { &hf_gsm_map_om_TraceNE_TypeList_ggsn,
18440       { "ggsn", "gsm_map.om.ggsn",
18441         FT_BOOLEAN, 8, NULL, 0x10,
18442         "", HFILL }},
18443     { &hf_gsm_map_om_TraceNE_TypeList_rnc,
18444       { "rnc", "gsm_map.om.rnc",
18445         FT_BOOLEAN, 8, NULL, 0x08,
18446         "", HFILL }},
18447     { &hf_gsm_map_om_TraceNE_TypeList_bm_sc,
18448       { "bm-sc", "gsm_map.om.bm-sc",
18449         FT_BOOLEAN, 8, NULL, 0x04,
18450         "", HFILL }},
18451     { &hf_gsm_map_om_MSC_S_InterfaceList_a,
18452       { "a", "gsm_map.om.a",
18453         FT_BOOLEAN, 8, NULL, 0x80,
18454         "", HFILL }},
18455     { &hf_gsm_map_om_MSC_S_InterfaceList_iu,
18456       { "iu", "gsm_map.om.iu",
18457         FT_BOOLEAN, 8, NULL, 0x40,
18458         "", HFILL }},
18459     { &hf_gsm_map_om_MSC_S_InterfaceList_mc,
18460       { "mc", "gsm_map.om.mc",
18461         FT_BOOLEAN, 8, NULL, 0x20,
18462         "", HFILL }},
18463     { &hf_gsm_map_om_MSC_S_InterfaceList_map_g,
18464       { "map-g", "gsm_map.om.map-g",
18465         FT_BOOLEAN, 8, NULL, 0x10,
18466         "", HFILL }},
18467     { &hf_gsm_map_om_MSC_S_InterfaceList_map_b,
18468       { "map-b", "gsm_map.om.map-b",
18469         FT_BOOLEAN, 8, NULL, 0x08,
18470         "", HFILL }},
18471     { &hf_gsm_map_om_MSC_S_InterfaceList_map_e,
18472       { "map-e", "gsm_map.om.map-e",
18473         FT_BOOLEAN, 8, NULL, 0x04,
18474         "", HFILL }},
18475     { &hf_gsm_map_om_MSC_S_InterfaceList_map_f,
18476       { "map-f", "gsm_map.om.map-f",
18477         FT_BOOLEAN, 8, NULL, 0x02,
18478         "", HFILL }},
18479     { &hf_gsm_map_om_MSC_S_InterfaceList_cap,
18480       { "cap", "gsm_map.om.cap",
18481         FT_BOOLEAN, 8, NULL, 0x01,
18482         "", HFILL }},
18483     { &hf_gsm_map_om_MSC_S_InterfaceList_map_d,
18484       { "map-d", "gsm_map.om.map-d",
18485         FT_BOOLEAN, 8, NULL, 0x80,
18486         "", HFILL }},
18487     { &hf_gsm_map_om_MSC_S_InterfaceList_map_c,
18488       { "map-c", "gsm_map.om.map-c",
18489         FT_BOOLEAN, 8, NULL, 0x40,
18490         "", HFILL }},
18491     { &hf_gsm_map_om_MGW_InterfaceList_mc,
18492       { "mc", "gsm_map.om.mc",
18493         FT_BOOLEAN, 8, NULL, 0x80,
18494         "", HFILL }},
18495     { &hf_gsm_map_om_MGW_InterfaceList_nb_up,
18496       { "nb-up", "gsm_map.om.nb-up",
18497         FT_BOOLEAN, 8, NULL, 0x40,
18498         "", HFILL }},
18499     { &hf_gsm_map_om_MGW_InterfaceList_iu_up,
18500       { "iu-up", "gsm_map.om.iu-up",
18501         FT_BOOLEAN, 8, NULL, 0x20,
18502         "", HFILL }},
18503     { &hf_gsm_map_om_SGSN_InterfaceList_gb,
18504       { "gb", "gsm_map.om.gb",
18505         FT_BOOLEAN, 8, NULL, 0x80,
18506         "", HFILL }},
18507     { &hf_gsm_map_om_SGSN_InterfaceList_iu,
18508       { "iu", "gsm_map.om.iu",
18509         FT_BOOLEAN, 8, NULL, 0x40,
18510         "", HFILL }},
18511     { &hf_gsm_map_om_SGSN_InterfaceList_gn,
18512       { "gn", "gsm_map.om.gn",
18513         FT_BOOLEAN, 8, NULL, 0x20,
18514         "", HFILL }},
18515     { &hf_gsm_map_om_SGSN_InterfaceList_map_gr,
18516       { "map-gr", "gsm_map.om.map-gr",
18517         FT_BOOLEAN, 8, NULL, 0x10,
18518         "", HFILL }},
18519     { &hf_gsm_map_om_SGSN_InterfaceList_map_gd,
18520       { "map-gd", "gsm_map.om.map-gd",
18521         FT_BOOLEAN, 8, NULL, 0x08,
18522         "", HFILL }},
18523     { &hf_gsm_map_om_SGSN_InterfaceList_map_gf,
18524       { "map-gf", "gsm_map.om.map-gf",
18525         FT_BOOLEAN, 8, NULL, 0x04,
18526         "", HFILL }},
18527     { &hf_gsm_map_om_SGSN_InterfaceList_gs,
18528       { "gs", "gsm_map.om.gs",
18529         FT_BOOLEAN, 8, NULL, 0x02,
18530         "", HFILL }},
18531     { &hf_gsm_map_om_SGSN_InterfaceList_ge,
18532       { "ge", "gsm_map.om.ge",
18533         FT_BOOLEAN, 8, NULL, 0x01,
18534         "", HFILL }},
18535     { &hf_gsm_map_om_GGSN_InterfaceList_gn,
18536       { "gn", "gsm_map.om.gn",
18537         FT_BOOLEAN, 8, NULL, 0x80,
18538         "", HFILL }},
18539     { &hf_gsm_map_om_GGSN_InterfaceList_gi,
18540       { "gi", "gsm_map.om.gi",
18541         FT_BOOLEAN, 8, NULL, 0x40,
18542         "", HFILL }},
18543     { &hf_gsm_map_om_GGSN_InterfaceList_gmb,
18544       { "gmb", "gsm_map.om.gmb",
18545         FT_BOOLEAN, 8, NULL, 0x20,
18546         "", HFILL }},
18547     { &hf_gsm_map_om_RNC_InterfaceList_iu,
18548       { "iu", "gsm_map.om.iu",
18549         FT_BOOLEAN, 8, NULL, 0x80,
18550         "", HFILL }},
18551     { &hf_gsm_map_om_RNC_InterfaceList_iur,
18552       { "iur", "gsm_map.om.iur",
18553         FT_BOOLEAN, 8, NULL, 0x40,
18554         "", HFILL }},
18555     { &hf_gsm_map_om_RNC_InterfaceList_iub,
18556       { "iub", "gsm_map.om.iub",
18557         FT_BOOLEAN, 8, NULL, 0x20,
18558         "", HFILL }},
18559     { &hf_gsm_map_om_RNC_InterfaceList_uu,
18560       { "uu", "gsm_map.om.uu",
18561         FT_BOOLEAN, 8, NULL, 0x10,
18562         "", HFILL }},
18563     { &hf_gsm_map_om_BMSC_InterfaceList_gmb,
18564       { "gmb", "gsm_map.om.gmb",
18565         FT_BOOLEAN, 8, NULL, 0x80,
18566         "", HFILL }},
18567     { &hf_gsm_map_om_MSC_S_EventList_mo_mtCall,
18568       { "mo-mtCall", "gsm_map.om.mo-mtCall",
18569         FT_BOOLEAN, 8, NULL, 0x80,
18570         "", HFILL }},
18571     { &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms,
18572       { "mo-mt-sms", "gsm_map.om.mo-mt-sms",
18573         FT_BOOLEAN, 8, NULL, 0x40,
18574         "", HFILL }},
18575     { &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach,
18576       { "lu-imsiAttach-imsiDetach", "gsm_map.om.lu-imsiAttach-imsiDetach",
18577         FT_BOOLEAN, 8, NULL, 0x20,
18578         "", HFILL }},
18579     { &hf_gsm_map_om_MSC_S_EventList_handovers,
18580       { "handovers", "gsm_map.om.handovers",
18581         FT_BOOLEAN, 8, NULL, 0x10,
18582         "", HFILL }},
18583     { &hf_gsm_map_om_MSC_S_EventList_ss,
18584       { "ss", "gsm_map.om.ss",
18585         FT_BOOLEAN, 8, NULL, 0x08,
18586         "", HFILL }},
18587     { &hf_gsm_map_om_MGW_EventList_context,
18588       { "context", "gsm_map.om.context",
18589         FT_BOOLEAN, 8, NULL, 0x80,
18590         "", HFILL }},
18591     { &hf_gsm_map_om_SGSN_EventList_pdpContext,
18592       { "pdpContext", "gsm_map.om.pdpContext",
18593         FT_BOOLEAN, 8, NULL, 0x80,
18594         "", HFILL }},
18595     { &hf_gsm_map_om_SGSN_EventList_mo_mt_sms,
18596       { "mo-mt-sms", "gsm_map.om.mo-mt-sms",
18597         FT_BOOLEAN, 8, NULL, 0x40,
18598         "", HFILL }},
18599     { &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach,
18600       { "rau-gprsAttach-gprsDetach", "gsm_map.om.rau-gprsAttach-gprsDetach",
18601         FT_BOOLEAN, 8, NULL, 0x20,
18602         "", HFILL }},
18603     { &hf_gsm_map_om_SGSN_EventList_mbmsContext,
18604       { "mbmsContext", "gsm_map.om.mbmsContext",
18605         FT_BOOLEAN, 8, NULL, 0x10,
18606         "", HFILL }},
18607     { &hf_gsm_map_om_GGSN_EventList_pdpContext,
18608       { "pdpContext", "gsm_map.om.pdpContext",
18609         FT_BOOLEAN, 8, NULL, 0x80,
18610         "", HFILL }},
18611     { &hf_gsm_map_om_GGSN_EventList_mbmsContext,
18612       { "mbmsContext", "gsm_map.om.mbmsContext",
18613         FT_BOOLEAN, 8, NULL, 0x40,
18614         "", HFILL }},
18615     { &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation,
18616       { "mbmsMulticastServiceActivation", "gsm_map.om.mbmsMulticastServiceActivation",
18617         FT_BOOLEAN, 8, NULL, 0x80,
18618         "", HFILL }},
18619
18620 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
18621
18622     { &hf_gsm_map_ms_imsi,
18623       { "imsi", "gsm_map.ms.imsi",
18624         FT_BYTES, BASE_HEX, NULL, 0,
18625         "gsm_map.IMSI", HFILL }},
18626     { &hf_gsm_map_ms_msc_Number,
18627       { "msc-Number", "gsm_map.ms.msc_Number",
18628         FT_BYTES, BASE_HEX, NULL, 0,
18629         "gsm_map.ISDN_AddressString", HFILL }},
18630     { &hf_gsm_map_ms_vlr_Number,
18631       { "vlr-Number", "gsm_map.ms.vlr_Number",
18632         FT_BYTES, BASE_HEX, NULL, 0,
18633         "gsm_map.ISDN_AddressString", HFILL }},
18634     { &hf_gsm_map_ms_lmsi,
18635       { "lmsi", "gsm_map.ms.lmsi",
18636         FT_BYTES, BASE_HEX, NULL, 0,
18637         "gsm_map.LMSI", HFILL }},
18638     { &hf_gsm_map_ms_extensionContainer,
18639       { "extensionContainer", "gsm_map.ms.extensionContainer",
18640         FT_NONE, BASE_NONE, NULL, 0,
18641         "gsm_map.ExtensionContainer", HFILL }},
18642     { &hf_gsm_map_ms_vlr_Capability,
18643       { "vlr-Capability", "gsm_map.ms.vlr_Capability",
18644         FT_NONE, BASE_NONE, NULL, 0,
18645         "gsm_map_ms.VLR_Capability", HFILL }},
18646     { &hf_gsm_map_ms_informPreviousNetworkEntity,
18647       { "informPreviousNetworkEntity", "gsm_map.ms.informPreviousNetworkEntity",
18648         FT_NONE, BASE_NONE, NULL, 0,
18649         "gsm_map_ms.NULL", HFILL }},
18650     { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE,
18651       { "cs-LCS-NotSupportedByUE", "gsm_map.ms.cs_LCS_NotSupportedByUE",
18652         FT_NONE, BASE_NONE, NULL, 0,
18653         "gsm_map_ms.NULL", HFILL }},
18654     { &hf_gsm_map_ms_v_gmlc_Address,
18655       { "v-gmlc-Address", "gsm_map.ms.v_gmlc_Address",
18656         FT_BYTES, BASE_HEX, NULL, 0,
18657         "gsm_map_ms.GSN_Address", HFILL }},
18658     { &hf_gsm_map_ms_add_info,
18659       { "add-info", "gsm_map.ms.add_info",
18660         FT_NONE, BASE_NONE, NULL, 0,
18661         "gsm_map_ms.ADD_Info", HFILL }},
18662     { &hf_gsm_map_ms_supportedCamelPhases,
18663       { "supportedCamelPhases", "gsm_map.ms.supportedCamelPhases",
18664         FT_BYTES, BASE_HEX, NULL, 0,
18665         "gsm_map_ms.SupportedCamelPhases", HFILL }},
18666     { &hf_gsm_map_ms_solsaSupportIndicator,
18667       { "solsaSupportIndicator", "gsm_map.ms.solsaSupportIndicator",
18668         FT_NONE, BASE_NONE, NULL, 0,
18669         "gsm_map_ms.NULL", HFILL }},
18670     { &hf_gsm_map_ms_istSupportIndicator,
18671       { "istSupportIndicator", "gsm_map.ms.istSupportIndicator",
18672         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
18673         "gsm_map_ms.IST_SupportIndicator", HFILL }},
18674     { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity,
18675       { "superChargerSupportedInServingNetworkEntity", "gsm_map.ms.superChargerSupportedInServingNetworkEntity",
18676         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SuperChargerInfo_vals), 0,
18677         "gsm_map_ms.SuperChargerInfo", HFILL }},
18678     { &hf_gsm_map_ms_longFTN_Supported,
18679       { "longFTN-Supported", "gsm_map.ms.longFTN_Supported",
18680         FT_NONE, BASE_NONE, NULL, 0,
18681         "gsm_map_ms.NULL", HFILL }},
18682     { &hf_gsm_map_ms_supportedLCS_CapabilitySets,
18683       { "supportedLCS-CapabilitySets", "gsm_map.ms.supportedLCS_CapabilitySets",
18684         FT_BYTES, BASE_HEX, NULL, 0,
18685         "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }},
18686     { &hf_gsm_map_ms_offeredCamel4CSIs,
18687       { "offeredCamel4CSIs", "gsm_map.ms.offeredCamel4CSIs",
18688         FT_BYTES, BASE_HEX, NULL, 0,
18689         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
18690     { &hf_gsm_map_ms_supportedRAT_TypesIndicator,
18691       { "supportedRAT-TypesIndicator", "gsm_map.ms.supportedRAT_TypesIndicator",
18692         FT_BYTES, BASE_HEX, NULL, 0,
18693         "gsm_map_ms.SupportedRAT_Types", HFILL }},
18694     { &hf_gsm_map_ms_longGroupID_Supported,
18695       { "longGroupID-Supported", "gsm_map.ms.longGroupID_Supported",
18696         FT_NONE, BASE_NONE, NULL, 0,
18697         "gsm_map_ms.NULL", HFILL }},
18698     { &hf_gsm_map_ms_sendSubscriberData,
18699       { "sendSubscriberData", "gsm_map.ms.sendSubscriberData",
18700         FT_NONE, BASE_NONE, NULL, 0,
18701         "gsm_map_ms.NULL", HFILL }},
18702     { &hf_gsm_map_ms_subscriberDataStored,
18703       { "subscriberDataStored", "gsm_map.ms.subscriberDataStored",
18704         FT_BYTES, BASE_HEX, NULL, 0,
18705         "gsm_map_ms.AgeIndicator", HFILL }},
18706     { &hf_gsm_map_ms_hlr_Number,
18707       { "hlr-Number", "gsm_map.ms.hlr_Number",
18708         FT_BYTES, BASE_HEX, NULL, 0,
18709         "gsm_map.ISDN_AddressString", HFILL }},
18710     { &hf_gsm_map_ms_add_Capability,
18711       { "add-Capability", "gsm_map.ms.add_Capability",
18712         FT_NONE, BASE_NONE, NULL, 0,
18713         "gsm_map_ms.NULL", HFILL }},
18714     { &hf_gsm_map_ms_imeisv,
18715       { "imeisv", "gsm_map.ms.imeisv",
18716         FT_BYTES, BASE_HEX, NULL, 0,
18717         "gsm_map.IMEI", HFILL }},
18718     { &hf_gsm_map_ms_skipSubscriberDataUpdate,
18719       { "skipSubscriberDataUpdate", "gsm_map.ms.skipSubscriberDataUpdate",
18720         FT_NONE, BASE_NONE, NULL, 0,
18721         "gsm_map_ms.NULL", HFILL }},
18722     { &hf_gsm_map_ms_identity,
18723       { "identity", "gsm_map.ms.identity",
18724         FT_UINT32, BASE_DEC, VALS(gsm_map_Identity_vals), 0,
18725         "gsm_map.Identity", HFILL }},
18726     { &hf_gsm_map_ms_cancellationType,
18727       { "cancellationType", "gsm_map.ms.cancellationType",
18728         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CancellationType_vals), 0,
18729         "gsm_map_ms.CancellationType", HFILL }},
18730     { &hf_gsm_map_ms_sgsn_Number,
18731       { "sgsn-Number", "gsm_map.ms.sgsn_Number",
18732         FT_BYTES, BASE_HEX, NULL, 0,
18733         "gsm_map.ISDN_AddressString", HFILL }},
18734     { &hf_gsm_map_ms_freezeTMSI,
18735       { "freezeTMSI", "gsm_map.ms.freezeTMSI",
18736         FT_NONE, BASE_NONE, NULL, 0,
18737         "gsm_map_ms.NULL", HFILL }},
18738     { &hf_gsm_map_ms_freezeP_TMSI,
18739       { "freezeP-TMSI", "gsm_map.ms.freezeP_TMSI",
18740         FT_NONE, BASE_NONE, NULL, 0,
18741         "gsm_map_ms.NULL", HFILL }},
18742     { &hf_gsm_map_ms_tmsi,
18743       { "tmsi", "gsm_map.ms.tmsi",
18744         FT_BYTES, BASE_HEX, NULL, 0,
18745         "gsm_map.TMSI", HFILL }},
18746     { &hf_gsm_map_ms_numberOfRequestedVectors,
18747       { "numberOfRequestedVectors", "gsm_map.ms.numberOfRequestedVectors",
18748         FT_UINT32, BASE_DEC, NULL, 0,
18749         "gsm_map_ms.NumberOfRequestedVectors", HFILL }},
18750     { &hf_gsm_map_ms_segmentationProhibited,
18751       { "segmentationProhibited", "gsm_map.ms.segmentationProhibited",
18752         FT_NONE, BASE_NONE, NULL, 0,
18753         "gsm_map_ms.NULL", HFILL }},
18754     { &hf_gsm_map_ms_previous_LAI,
18755       { "previous-LAI", "gsm_map.ms.previous_LAI",
18756         FT_BYTES, BASE_HEX, NULL, 0,
18757         "gsm_map.LAIFixedLength", HFILL }},
18758     { &hf_gsm_map_ms_hopCounter,
18759       { "hopCounter", "gsm_map.ms.hopCounter",
18760         FT_UINT32, BASE_DEC, NULL, 0,
18761         "gsm_map_ms.HopCounter", HFILL }},
18762     { &hf_gsm_map_ms_authenticationSetList,
18763       { "authenticationSetList", "gsm_map.ms.authenticationSetList",
18764         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AuthenticationSetList_vals), 0,
18765         "gsm_map_ms.AuthenticationSetList", HFILL }},
18766     { &hf_gsm_map_ms_currentSecurityContext,
18767       { "currentSecurityContext", "gsm_map.ms.currentSecurityContext",
18768         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CurrentSecurityContext_vals), 0,
18769         "gsm_map_ms.CurrentSecurityContext", HFILL }},
18770     { &hf_gsm_map_ms_tripletList,
18771       { "tripletList", "gsm_map.ms.tripletList",
18772         FT_UINT32, BASE_DEC, NULL, 0,
18773         "gsm_map_ms.TripletList", HFILL }},
18774     { &hf_gsm_map_ms_quintupletList,
18775       { "quintupletList", "gsm_map.ms.quintupletList",
18776         FT_UINT32, BASE_DEC, NULL, 0,
18777         "gsm_map_ms.QuintupletList", HFILL }},
18778     { &hf_gsm_map_ms_TripletList_item,
18779       { "Item", "gsm_map.ms.TripletList_item",
18780         FT_NONE, BASE_NONE, NULL, 0,
18781         "gsm_map_ms.AuthenticationTriplet", HFILL }},
18782     { &hf_gsm_map_ms_QuintupletList_item,
18783       { "Item", "gsm_map.ms.QuintupletList_item",
18784         FT_NONE, BASE_NONE, NULL, 0,
18785         "gsm_map_ms.AuthenticationQuintuplet", HFILL }},
18786     { &hf_gsm_map_ms_rand,
18787       { "rand", "gsm_map.ms.rand",
18788         FT_BYTES, BASE_HEX, NULL, 0,
18789         "gsm_map_ms.RAND", HFILL }},
18790     { &hf_gsm_map_ms_sres,
18791       { "sres", "gsm_map.ms.sres",
18792         FT_BYTES, BASE_HEX, NULL, 0,
18793         "gsm_map_ms.SRES", HFILL }},
18794     { &hf_gsm_map_ms_kc,
18795       { "kc", "gsm_map.ms.kc",
18796         FT_BYTES, BASE_HEX, NULL, 0,
18797         "gsm_map_ms.Kc", HFILL }},
18798     { &hf_gsm_map_ms_xres,
18799       { "xres", "gsm_map.ms.xres",
18800         FT_BYTES, BASE_HEX, NULL, 0,
18801         "gsm_map_ms.XRES", HFILL }},
18802     { &hf_gsm_map_ms_ck,
18803       { "ck", "gsm_map.ms.ck",
18804         FT_BYTES, BASE_HEX, NULL, 0,
18805         "gsm_map_ms.CK", HFILL }},
18806     { &hf_gsm_map_ms_ik,
18807       { "ik", "gsm_map.ms.ik",
18808         FT_BYTES, BASE_HEX, NULL, 0,
18809         "gsm_map_ms.IK", HFILL }},
18810     { &hf_gsm_map_ms_autn,
18811       { "autn", "gsm_map.ms.autn",
18812         FT_BYTES, BASE_HEX, NULL, 0,
18813         "gsm_map_ms.AUTN", HFILL }},
18814     { &hf_gsm_map_ms_gsm_SecurityContextData,
18815       { "gsm-SecurityContextData", "gsm_map.ms.gsm_SecurityContextData",
18816         FT_NONE, BASE_NONE, NULL, 0,
18817         "gsm_map_ms.GSM_SecurityContextData", HFILL }},
18818     { &hf_gsm_map_ms_umts_SecurityContextData,
18819       { "umts-SecurityContextData", "gsm_map.ms.umts_SecurityContextData",
18820         FT_NONE, BASE_NONE, NULL, 0,
18821         "gsm_map_ms.UMTS_SecurityContextData", HFILL }},
18822     { &hf_gsm_map_ms_cksn,
18823       { "cksn", "gsm_map.ms.cksn",
18824         FT_BYTES, BASE_HEX, NULL, 0,
18825         "gsm_map_ms.Cksn", HFILL }},
18826     { &hf_gsm_map_ms_ksi,
18827       { "ksi", "gsm_map.ms.ksi",
18828         FT_BYTES, BASE_HEX, NULL, 0,
18829         "gsm_map_ms.KSI", HFILL }},
18830     { &hf_gsm_map_ms_failureCause,
18831       { "failureCause", "gsm_map.ms.failureCause",
18832         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_FailureCause_vals), 0,
18833         "gsm_map_ms.FailureCause", HFILL }},
18834     { &hf_gsm_map_ms_re_attempt,
18835       { "re-attempt", "gsm_map.ms.re_attempt",
18836         FT_BOOLEAN, 8, NULL, 0,
18837         "gsm_map_ms.BOOLEAN", HFILL }},
18838     { &hf_gsm_map_ms_accessType,
18839       { "accessType", "gsm_map.ms.accessType",
18840         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AccessType_vals), 0,
18841         "gsm_map_ms.AccessType", HFILL }},
18842     { &hf_gsm_map_ms_sgsn_Address,
18843       { "sgsn-Address", "gsm_map.ms.sgsn_Address",
18844         FT_BYTES, BASE_HEX, NULL, 0,
18845         "gsm_map_ms.GSN_Address", HFILL }},
18846     { &hf_gsm_map_ms_sgsn_Capability,
18847       { "sgsn-Capability", "gsm_map.ms.sgsn_Capability",
18848         FT_NONE, BASE_NONE, NULL, 0,
18849         "gsm_map_ms.SGSN_Capability", HFILL }},
18850     { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE,
18851       { "ps-LCS-NotSupportedByUE", "gsm_map.ms.ps_LCS_NotSupportedByUE",
18852         FT_NONE, BASE_NONE, NULL, 0,
18853         "gsm_map_ms.NULL", HFILL }},
18854     { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator,
18855       { "gprsEnhancementsSupportIndicator", "gsm_map.ms.gprsEnhancementsSupportIndicator",
18856         FT_NONE, BASE_NONE, NULL, 0,
18857         "gsm_map_ms.NULL", HFILL }},
18858     { &hf_gsm_map_ms_smsCallBarringSupportIndicator,
18859       { "smsCallBarringSupportIndicator", "gsm_map.ms.smsCallBarringSupportIndicator",
18860         FT_NONE, BASE_NONE, NULL, 0,
18861         "gsm_map_ms.NULL", HFILL }},
18862     { &hf_gsm_map_ms_an_APDU,
18863       { "an-APDU", "gsm_map.ms.an_APDU",
18864         FT_NONE, BASE_NONE, NULL, 0,
18865         "gsm_map.AccessNetworkSignalInfo", HFILL }},
18866     { &hf_gsm_map_ms_integrityProtectionInfo,
18867       { "integrityProtectionInfo", "gsm_map.ms.integrityProtectionInfo",
18868         FT_BYTES, BASE_HEX, NULL, 0,
18869         "gsm_map_ms.IntegrityProtectionInformation", HFILL }},
18870     { &hf_gsm_map_ms_encryptionInfo,
18871       { "encryptionInfo", "gsm_map.ms.encryptionInfo",
18872         FT_BYTES, BASE_HEX, NULL, 0,
18873         "gsm_map_ms.EncryptionInformation", HFILL }},
18874     { &hf_gsm_map_ms_keyStatus,
18875       { "keyStatus", "gsm_map.ms.keyStatus",
18876         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_KeyStatus_vals), 0,
18877         "gsm_map_ms.KeyStatus", HFILL }},
18878     { &hf_gsm_map_ms_allowedGSM_Algorithms,
18879       { "allowedGSM-Algorithms", "gsm_map.ms.allowedGSM_Algorithms",
18880         FT_BYTES, BASE_HEX, NULL, 0,
18881         "gsm_map_ms.AllowedGSM_Algorithms", HFILL }},
18882     { &hf_gsm_map_ms_allowedUMTS_Algorithms,
18883       { "allowedUMTS-Algorithms", "gsm_map.ms.allowedUMTS_Algorithms",
18884         FT_NONE, BASE_NONE, NULL, 0,
18885         "gsm_map_ms.AllowedUMTS_Algorithms", HFILL }},
18886     { &hf_gsm_map_ms_radioResourceInformation,
18887       { "radioResourceInformation", "gsm_map.ms.radioResourceInformation",
18888         FT_BYTES, BASE_HEX, NULL, 0,
18889         "gsm_map_ms.RadioResourceInformation", HFILL }},
18890     { &hf_gsm_map_ms_radioResourceList,
18891       { "radioResourceList", "gsm_map.ms.radioResourceList",
18892         FT_UINT32, BASE_DEC, NULL, 0,
18893         "gsm_map_ms.RadioResourceList", HFILL }},
18894     { &hf_gsm_map_ms_bssmap_ServiceHandover,
18895       { "bssmap-ServiceHandover", "gsm_map.ms.bssmap_ServiceHandover",
18896         FT_BYTES, BASE_HEX, NULL, 0,
18897         "gsm_map_ms.BSSMAP_ServiceHandover", HFILL }},
18898     { &hf_gsm_map_ms_ranap_ServiceHandover,
18899       { "ranap-ServiceHandover", "gsm_map.ms.ranap_ServiceHandover",
18900         FT_BYTES, BASE_HEX, NULL, 0,
18901         "gsm_map_ms.RANAP_ServiceHandover", HFILL }},
18902     { &hf_gsm_map_ms_bssmap_ServiceHandoverList,
18903       { "bssmap-ServiceHandoverList", "gsm_map.ms.bssmap_ServiceHandoverList",
18904         FT_UINT32, BASE_DEC, NULL, 0,
18905         "gsm_map_ms.BSSMAP_ServiceHandoverList", HFILL }},
18906     { &hf_gsm_map_ms_currentlyUsedCodec,
18907       { "currentlyUsedCodec", "gsm_map.ms.currentlyUsedCodec",
18908         FT_BYTES, BASE_HEX, NULL, 0,
18909         "gsm_map_ms.Codec", HFILL }},
18910     { &hf_gsm_map_ms_iuSupportedCodecsList,
18911       { "iuSupportedCodecsList", "gsm_map.ms.iuSupportedCodecsList",
18912         FT_NONE, BASE_NONE, NULL, 0,
18913         "gsm_map_ms.SupportedCodecsList", HFILL }},
18914     { &hf_gsm_map_ms_rab_ConfigurationIndicator,
18915       { "rab-ConfigurationIndicator", "gsm_map.ms.rab_ConfigurationIndicator",
18916         FT_NONE, BASE_NONE, NULL, 0,
18917         "gsm_map_ms.NULL", HFILL }},
18918     { &hf_gsm_map_ms_iuSelectedCodec,
18919       { "iuSelectedCodec", "gsm_map.ms.iuSelectedCodec",
18920         FT_BYTES, BASE_HEX, NULL, 0,
18921         "gsm_map_ms.Codec", HFILL }},
18922     { &hf_gsm_map_ms_alternativeChannelType,
18923       { "alternativeChannelType", "gsm_map.ms.alternativeChannelType",
18924         FT_BYTES, BASE_HEX, NULL, 0,
18925         "gsm_map_ms.RadioResourceInformation", HFILL }},
18926     { &hf_gsm_map_ms_tracePropagationList,
18927       { "tracePropagationList", "gsm_map.ms.tracePropagationList",
18928         FT_NONE, BASE_NONE, NULL, 0,
18929         "gsm_map_om.TracePropagationList", HFILL }},
18930     { &hf_gsm_map_ms_integrityProtectionAlgorithms,
18931       { "integrityProtectionAlgorithms", "gsm_map.ms.integrityProtectionAlgorithms",
18932         FT_BYTES, BASE_HEX, NULL, 0,
18933         "gsm_map_ms.PermittedIntegrityProtectionAlgorithms", HFILL }},
18934     { &hf_gsm_map_ms_encryptionAlgorithms,
18935       { "encryptionAlgorithms", "gsm_map.ms.encryptionAlgorithms",
18936         FT_BYTES, BASE_HEX, NULL, 0,
18937         "gsm_map_ms.PermittedEncryptionAlgorithms", HFILL }},
18938     { &hf_gsm_map_ms_targetCellId,
18939       { "targetCellId", "gsm_map.ms.targetCellId",
18940         FT_BYTES, BASE_HEX, NULL, 0,
18941         "gsm_map.GlobalCellId", HFILL }},
18942     { &hf_gsm_map_ms_ho_NumberNotRequired,
18943       { "ho-NumberNotRequired", "gsm_map.ms.ho_NumberNotRequired",
18944         FT_NONE, BASE_NONE, NULL, 0,
18945         "gsm_map_ms.NULL", HFILL }},
18946     { &hf_gsm_map_ms_targetRNCId,
18947       { "targetRNCId", "gsm_map.ms.targetRNCId",
18948         FT_BYTES, BASE_HEX, NULL, 0,
18949         "gsm_map_ms.RNCId", HFILL }},
18950     { &hf_gsm_map_ms_multipleBearerRequested,
18951       { "multipleBearerRequested", "gsm_map.ms.multipleBearerRequested",
18952         FT_NONE, BASE_NONE, NULL, 0,
18953         "gsm_map_ms.NULL", HFILL }},
18954     { &hf_gsm_map_ms_rab_Id,
18955       { "rab-Id", "gsm_map.ms.rab_Id",
18956         FT_UINT32, BASE_DEC, NULL, 0,
18957         "gsm_map_ms.RAB_Id", HFILL }},
18958     { &hf_gsm_map_ms_asciCallReference,
18959       { "asciCallReference", "gsm_map.ms.asciCallReference",
18960         FT_BYTES, BASE_HEX, NULL, 0,
18961         "gsm_map.ASCI_CallReference", HFILL }},
18962     { &hf_gsm_map_ms_geran_classmark,
18963       { "geran-classmark", "gsm_map.ms.geran_classmark",
18964         FT_BYTES, BASE_HEX, NULL, 0,
18965         "gsm_map_ms.GERAN_Classmark", HFILL }},
18966     { &hf_gsm_map_ms_iuCurrentlyUsedCodec,
18967       { "iuCurrentlyUsedCodec", "gsm_map.ms.iuCurrentlyUsedCodec",
18968         FT_BYTES, BASE_HEX, NULL, 0,
18969         "gsm_map_ms.Codec", HFILL }},
18970     { &hf_gsm_map_ms_uesbi_Iu,
18971       { "uesbi-Iu", "gsm_map.ms.uesbi_Iu",
18972         FT_NONE, BASE_NONE, NULL, 0,
18973         "gsm_map_ms.UESBI_Iu", HFILL }},
18974     { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item,
18975       { "Item", "gsm_map.ms.BSSMAP_ServiceHandoverList_item",
18976         FT_NONE, BASE_NONE, NULL, 0,
18977         "gsm_map_ms.BSSMAP_ServiceHandoverInfo", HFILL }},
18978     { &hf_gsm_map_ms_RadioResourceList_item,
18979       { "Item", "gsm_map.ms.RadioResourceList_item",
18980         FT_NONE, BASE_NONE, NULL, 0,
18981         "gsm_map_ms.RadioResource", HFILL }},
18982     { &hf_gsm_map_ms_handoverNumber,
18983       { "handoverNumber", "gsm_map.ms.handoverNumber",
18984         FT_BYTES, BASE_HEX, NULL, 0,
18985         "gsm_map.ISDN_AddressString", HFILL }},
18986     { &hf_gsm_map_ms_relocationNumberList,
18987       { "relocationNumberList", "gsm_map.ms.relocationNumberList",
18988         FT_UINT32, BASE_DEC, NULL, 0,
18989         "gsm_map_ms.RelocationNumberList", HFILL }},
18990     { &hf_gsm_map_ms_multicallBearerInfo,
18991       { "multicallBearerInfo", "gsm_map.ms.multicallBearerInfo",
18992         FT_UINT32, BASE_DEC, NULL, 0,
18993         "gsm_map_ms.MulticallBearerInfo", HFILL }},
18994     { &hf_gsm_map_ms_multipleBearerNotSupported,
18995       { "multipleBearerNotSupported", "gsm_map.ms.multipleBearerNotSupported",
18996         FT_NONE, BASE_NONE, NULL, 0,
18997         "gsm_map_ms.NULL", HFILL }},
18998     { &hf_gsm_map_ms_selectedUMTS_Algorithms,
18999       { "selectedUMTS-Algorithms", "gsm_map.ms.selectedUMTS_Algorithms",
19000         FT_NONE, BASE_NONE, NULL, 0,
19001         "gsm_map_ms.SelectedUMTS_Algorithms", HFILL }},
19002     { &hf_gsm_map_ms_chosenRadioResourceInformation,
19003       { "chosenRadioResourceInformation", "gsm_map.ms.chosenRadioResourceInformation",
19004         FT_NONE, BASE_NONE, NULL, 0,
19005         "gsm_map_ms.ChosenRadioResourceInformation", HFILL }},
19006     { &hf_gsm_map_ms_iuAvailableCodecsList,
19007       { "iuAvailableCodecsList", "gsm_map.ms.iuAvailableCodecsList",
19008         FT_NONE, BASE_NONE, NULL, 0,
19009         "gsm_map_ms.CodecList", HFILL }},
19010     { &hf_gsm_map_ms_integrityProtectionAlgorithm,
19011       { "integrityProtectionAlgorithm", "gsm_map.ms.integrityProtectionAlgorithm",
19012         FT_BYTES, BASE_HEX, NULL, 0,
19013         "gsm_map_ms.ChosenIntegrityProtectionAlgorithm", HFILL }},
19014     { &hf_gsm_map_ms_encryptionAlgorithm,
19015       { "encryptionAlgorithm", "gsm_map.ms.encryptionAlgorithm",
19016         FT_BYTES, BASE_HEX, NULL, 0,
19017         "gsm_map_ms.ChosenEncryptionAlgorithm", HFILL }},
19018     { &hf_gsm_map_ms_chosenChannelInfo,
19019       { "chosenChannelInfo", "gsm_map.ms.chosenChannelInfo",
19020         FT_BYTES, BASE_HEX, NULL, 0,
19021         "gsm_map_ms.ChosenChannelInfo", HFILL }},
19022     { &hf_gsm_map_ms_chosenSpeechVersion,
19023       { "chosenSpeechVersion", "gsm_map.ms.chosenSpeechVersion",
19024         FT_BYTES, BASE_HEX, NULL, 0,
19025         "gsm_map_ms.ChosenSpeechVersion", HFILL }},
19026     { &hf_gsm_map_ms_targetMSC_Number,
19027       { "targetMSC-Number", "gsm_map.ms.targetMSC_Number",
19028         FT_BYTES, BASE_HEX, NULL, 0,
19029         "gsm_map.ISDN_AddressString", HFILL }},
19030     { &hf_gsm_map_ms_selectedRab_Id,
19031       { "selectedRab-Id", "gsm_map.ms.selectedRab_Id",
19032         FT_UINT32, BASE_DEC, NULL, 0,
19033         "gsm_map_ms.RAB_Id", HFILL }},
19034     { &hf_gsm_map_ms_selectedGSM_Algorithm,
19035       { "selectedGSM-Algorithm", "gsm_map.ms.selectedGSM_Algorithm",
19036         FT_BYTES, BASE_HEX, NULL, 0,
19037         "gsm_map_ms.SelectedGSM_Algorithm", HFILL }},
19038     { &hf_gsm_map_ms_iUSelectedCodec,
19039       { "iUSelectedCodec", "gsm_map.ms.iUSelectedCodec",
19040         FT_BYTES, BASE_HEX, NULL, 0,
19041         "gsm_map_ms.Codec", HFILL }},
19042     { &hf_gsm_map_ms_utranCodecList,
19043       { "utranCodecList", "gsm_map.ms.utranCodecList",
19044         FT_NONE, BASE_NONE, NULL, 0,
19045         "gsm_map_ms.CodecList", HFILL }},
19046     { &hf_gsm_map_ms_geranCodecList,
19047       { "geranCodecList", "gsm_map.ms.geranCodecList",
19048         FT_NONE, BASE_NONE, NULL, 0,
19049         "gsm_map_ms.CodecList", HFILL }},
19050     { &hf_gsm_map_ms_codec1,
19051       { "codec1", "gsm_map.ms.codec1",
19052         FT_BYTES, BASE_HEX, NULL, 0,
19053         "gsm_map_ms.Codec", HFILL }},
19054     { &hf_gsm_map_ms_codec2,
19055       { "codec2", "gsm_map.ms.codec2",
19056         FT_BYTES, BASE_HEX, NULL, 0,
19057         "gsm_map_ms.Codec", HFILL }},
19058     { &hf_gsm_map_ms_codec3,
19059       { "codec3", "gsm_map.ms.codec3",
19060         FT_BYTES, BASE_HEX, NULL, 0,
19061         "gsm_map_ms.Codec", HFILL }},
19062     { &hf_gsm_map_ms_codec4,
19063       { "codec4", "gsm_map.ms.codec4",
19064         FT_BYTES, BASE_HEX, NULL, 0,
19065         "gsm_map_ms.Codec", HFILL }},
19066     { &hf_gsm_map_ms_codec5,
19067       { "codec5", "gsm_map.ms.codec5",
19068         FT_BYTES, BASE_HEX, NULL, 0,
19069         "gsm_map_ms.Codec", HFILL }},
19070     { &hf_gsm_map_ms_codec6,
19071       { "codec6", "gsm_map.ms.codec6",
19072         FT_BYTES, BASE_HEX, NULL, 0,
19073         "gsm_map_ms.Codec", HFILL }},
19074     { &hf_gsm_map_ms_codec7,
19075       { "codec7", "gsm_map.ms.codec7",
19076         FT_BYTES, BASE_HEX, NULL, 0,
19077         "gsm_map_ms.Codec", HFILL }},
19078     { &hf_gsm_map_ms_codec8,
19079       { "codec8", "gsm_map.ms.codec8",
19080         FT_BYTES, BASE_HEX, NULL, 0,
19081         "gsm_map_ms.Codec", HFILL }},
19082     { &hf_gsm_map_ms_RelocationNumberList_item,
19083       { "Item", "gsm_map.ms.RelocationNumberList_item",
19084         FT_NONE, BASE_NONE, NULL, 0,
19085         "gsm_map_ms.RelocationNumber", HFILL }},
19086     { &hf_gsm_map_ms_immediateResponsePreferred,
19087       { "immediateResponsePreferred", "gsm_map.ms.immediateResponsePreferred",
19088         FT_NONE, BASE_NONE, NULL, 0,
19089         "gsm_map_ms.NULL", HFILL }},
19090     { &hf_gsm_map_ms_re_synchronisationInfo,
19091       { "re-synchronisationInfo", "gsm_map.ms.re_synchronisationInfo",
19092         FT_NONE, BASE_NONE, NULL, 0,
19093         "gsm_map_ms.Re_synchronisationInfo", HFILL }},
19094     { &hf_gsm_map_ms_requestingNodeType,
19095       { "requestingNodeType", "gsm_map.ms.requestingNodeType",
19096         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestingNodeType_vals), 0,
19097         "gsm_map_ms.RequestingNodeType", HFILL }},
19098     { &hf_gsm_map_ms_requestingPLMN_Id,
19099       { "requestingPLMN-Id", "gsm_map.ms.requestingPLMN_Id",
19100         FT_BYTES, BASE_HEX, NULL, 0,
19101         "gsm_map.PLMN_Id", HFILL }},
19102     { &hf_gsm_map_ms_auts,
19103       { "auts", "gsm_map.ms.auts",
19104         FT_BYTES, BASE_HEX, NULL, 0,
19105         "gsm_map_ms.AUTS", HFILL }},
19106     { &hf_gsm_map_ms_imei,
19107       { "imei", "gsm_map.ms.imei",
19108         FT_BYTES, BASE_HEX, NULL, 0,
19109         "gsm_map.IMEI", HFILL }},
19110     { &hf_gsm_map_ms_requestedEquipmentInfo,
19111       { "requestedEquipmentInfo", "gsm_map.ms.requestedEquipmentInfo",
19112         FT_BYTES, BASE_HEX, NULL, 0,
19113         "gsm_map_ms.RequestedEquipmentInfo", HFILL }},
19114     { &hf_gsm_map_ms_equipmentStatus,
19115       { "equipmentStatus", "gsm_map.ms.equipmentStatus",
19116         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EquipmentStatus_vals), 0,
19117         "gsm_map_ms.EquipmentStatus", HFILL }},
19118     { &hf_gsm_map_ms_bmuef,
19119       { "bmuef", "gsm_map.ms.bmuef",
19120         FT_NONE, BASE_NONE, NULL, 0,
19121         "gsm_map_ms.UESBI_Iu", HFILL }},
19122     { &hf_gsm_map_ms_uesbi_IuA,
19123       { "uesbi-IuA", "gsm_map.ms.uesbi_IuA",
19124         FT_BYTES, BASE_HEX, NULL, 0,
19125         "gsm_map_ms.UESBI_IuA", HFILL }},
19126     { &hf_gsm_map_ms_uesbi_IuB,
19127       { "uesbi-IuB", "gsm_map.ms.uesbi_IuB",
19128         FT_BYTES, BASE_HEX, NULL, 0,
19129         "gsm_map_ms.UESBI_IuB", HFILL }},
19130     { &hf_gsm_map_ms_gmlc_List,
19131       { "gmlc-List", "gsm_map.ms.gmlc_List",
19132         FT_UINT32, BASE_DEC, NULL, 0,
19133         "gsm_map_ms.GMLC_List", HFILL }},
19134     { &hf_gsm_map_ms_lcs_PrivacyExceptionList,
19135       { "lcs-PrivacyExceptionList", "gsm_map.ms.lcs_PrivacyExceptionList",
19136         FT_UINT32, BASE_DEC, NULL, 0,
19137         "gsm_map_ms.LCS_PrivacyExceptionList", HFILL }},
19138     { &hf_gsm_map_ms_molr_List,
19139       { "molr-List", "gsm_map.ms.molr_List",
19140         FT_UINT32, BASE_DEC, NULL, 0,
19141         "gsm_map_ms.MOLR_List", HFILL }},
19142     { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList,
19143       { "add-lcs-PrivacyExceptionList", "gsm_map.ms.add_lcs_PrivacyExceptionList",
19144         FT_UINT32, BASE_DEC, NULL, 0,
19145         "gsm_map_ms.LCS_PrivacyExceptionList", HFILL }},
19146     { &hf_gsm_map_ms_GMLC_List_item,
19147       { "Item", "gsm_map.ms.GMLC_List_item",
19148         FT_BYTES, BASE_HEX, NULL, 0,
19149         "gsm_map.ISDN_AddressString", HFILL }},
19150     { &hf_gsm_map_ms_GPRSDataList_item,
19151       { "Item", "gsm_map.ms.GPRSDataList_item",
19152         FT_NONE, BASE_NONE, NULL, 0,
19153         "gsm_map_ms.PDP_Context", HFILL }},
19154     { &hf_gsm_map_ms_pdp_ContextId,
19155       { "pdp-ContextId", "gsm_map.ms.pdp_ContextId",
19156         FT_UINT32, BASE_DEC, NULL, 0,
19157         "gsm_map_ms.ContextId", HFILL }},
19158     { &hf_gsm_map_ms_pdp_Type,
19159       { "pdp-Type", "gsm_map.ms.pdp_Type",
19160         FT_BYTES, BASE_HEX, NULL, 0,
19161         "gsm_map_ms.PDP_Type", HFILL }},
19162     { &hf_gsm_map_ms_pdp_Address,
19163       { "pdp-Address", "gsm_map.ms.pdp_Address",
19164         FT_BYTES, BASE_HEX, NULL, 0,
19165         "gsm_map_ms.PDP_Address", HFILL }},
19166     { &hf_gsm_map_ms_qos_Subscribed,
19167       { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
19168         FT_BYTES, BASE_HEX, NULL, 0,
19169         "gsm_map_ms.QoS_Subscribed", HFILL }},
19170     { &hf_gsm_map_ms_vplmnAddressAllowed,
19171       { "vplmnAddressAllowed", "gsm_map.ms.vplmnAddressAllowed",
19172         FT_NONE, BASE_NONE, NULL, 0,
19173         "gsm_map_ms.NULL", HFILL }},
19174     { &hf_gsm_map_ms_apn,
19175       { "apn", "gsm_map.ms.apn",
19176         FT_BYTES, BASE_HEX, NULL, 0,
19177         "gsm_map_ms.APN", HFILL }},
19178     { &hf_gsm_map_ms_ext_QoS_Subscribed,
19179       { "ext-QoS-Subscribed", "gsm_map.ms.ext_QoS_Subscribed",
19180         FT_BYTES, BASE_HEX, NULL, 0,
19181         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
19182     { &hf_gsm_map_ms_pdp_ChargingCharacteristics,
19183       { "pdp-ChargingCharacteristics", "gsm_map.ms.pdp_ChargingCharacteristics",
19184         FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
19185         "gsm_map_ms.ChargingCharacteristics", HFILL }},
19186     { &hf_gsm_map_ms_ext2_QoS_Subscribed,
19187       { "ext2-QoS-Subscribed", "gsm_map.ms.ext2_QoS_Subscribed",
19188         FT_BYTES, BASE_HEX, NULL, 0,
19189         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
19190     { &hf_gsm_map_ms_ext3_QoS_Subscribed,
19191       { "ext3-QoS-Subscribed", "gsm_map.ms.ext3_QoS_Subscribed",
19192         FT_BYTES, BASE_HEX, NULL, 0,
19193         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
19194     { &hf_gsm_map_ms_completeDataListIncluded,
19195       { "completeDataListIncluded", "gsm_map.ms.completeDataListIncluded",
19196         FT_NONE, BASE_NONE, NULL, 0,
19197         "gsm_map_ms.NULL", HFILL }},
19198     { &hf_gsm_map_ms_gprsDataList,
19199       { "gprsDataList", "gsm_map.ms.gprsDataList",
19200         FT_UINT32, BASE_DEC, NULL, 0,
19201         "gsm_map_ms.GPRSDataList", HFILL }},
19202     { &hf_gsm_map_ms_gprs_CSI,
19203       { "gprs-CSI", "gsm_map.ms.gprs_CSI",
19204         FT_NONE, BASE_NONE, NULL, 0,
19205         "gsm_map_ms.GPRS_CSI", HFILL }},
19206     { &hf_gsm_map_ms_mo_sms_CSI,
19207       { "mo-sms-CSI", "gsm_map.ms.mo_sms_CSI",
19208         FT_NONE, BASE_NONE, NULL, 0,
19209         "gsm_map_ms.SMS_CSI", HFILL }},
19210     { &hf_gsm_map_ms_mt_sms_CSI,
19211       { "mt-sms-CSI", "gsm_map.ms.mt_sms_CSI",
19212         FT_NONE, BASE_NONE, NULL, 0,
19213         "gsm_map_ms.SMS_CSI", HFILL }},
19214     { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList,
19215       { "mt-smsCAMELTDP-CriteriaList", "gsm_map.ms.mt_smsCAMELTDP_CriteriaList",
19216         FT_UINT32, BASE_DEC, NULL, 0,
19217         "gsm_map_ms.MT_smsCAMELTDP_CriteriaList", HFILL }},
19218     { &hf_gsm_map_ms_mg_csi,
19219       { "mg-csi", "gsm_map.ms.mg_csi",
19220         FT_NONE, BASE_NONE, NULL, 0,
19221         "gsm_map_ms.MG_CSI", HFILL }},
19222     { &hf_gsm_map_ms_gprs_CamelTDPDataList,
19223       { "gprs-CamelTDPDataList", "gsm_map.ms.gprs_CamelTDPDataList",
19224         FT_UINT32, BASE_DEC, NULL, 0,
19225         "gsm_map_ms.GPRS_CamelTDPDataList", HFILL }},
19226     { &hf_gsm_map_ms_camelCapabilityHandling,
19227       { "camelCapabilityHandling", "gsm_map.ms.camelCapabilityHandling",
19228         FT_UINT32, BASE_DEC, NULL, 0,
19229         "gsm_map_ms.CamelCapabilityHandling", HFILL }},
19230     { &hf_gsm_map_ms_notificationToCSE,
19231       { "notificationToCSE", "gsm_map.ms.notificationToCSE",
19232         FT_NONE, BASE_NONE, NULL, 0,
19233         "gsm_map_ms.NULL", HFILL }},
19234     { &hf_gsm_map_ms_csi_Active,
19235       { "csi-Active", "gsm_map.ms.csi_Active",
19236         FT_NONE, BASE_NONE, NULL, 0,
19237         "gsm_map_ms.NULL", HFILL }},
19238     { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item,
19239       { "Item", "gsm_map.ms.GPRS_CamelTDPDataList_item",
19240         FT_NONE, BASE_NONE, NULL, 0,
19241         "gsm_map_ms.GPRS_CamelTDPData", HFILL }},
19242     { &hf_gsm_map_ms_gprs_TriggerDetectionPoint,
19243       { "gprs-TriggerDetectionPoint", "gsm_map.ms.gprs_TriggerDetectionPoint",
19244         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRS_TriggerDetectionPoint_vals), 0,
19245         "gsm_map_ms.GPRS_TriggerDetectionPoint", HFILL }},
19246     { &hf_gsm_map_ms_serviceKey,
19247       { "serviceKey", "gsm_map.ms.serviceKey",
19248         FT_UINT32, BASE_DEC, NULL, 0,
19249         "gsm_map_ms.ServiceKey", HFILL }},
19250     { &hf_gsm_map_ms_gsmSCF_Address,
19251       { "gsmSCF-Address", "gsm_map.ms.gsmSCF_Address",
19252         FT_BYTES, BASE_HEX, NULL, 0,
19253         "gsm_map.ISDN_AddressString", HFILL }},
19254     { &hf_gsm_map_ms_defaultSessionHandling,
19255       { "defaultSessionHandling", "gsm_map.ms.defaultSessionHandling",
19256         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultGPRS_Handling_vals), 0,
19257         "gsm_map_ms.DefaultGPRS_Handling", HFILL }},
19258     { &hf_gsm_map_ms_LSADataList_item,
19259       { "Item", "gsm_map.ms.LSADataList_item",
19260         FT_NONE, BASE_NONE, NULL, 0,
19261         "gsm_map_ms.LSAData", HFILL }},
19262     { &hf_gsm_map_ms_lsaIdentity,
19263       { "lsaIdentity", "gsm_map.ms.lsaIdentity",
19264         FT_BYTES, BASE_HEX, NULL, 0,
19265         "gsm_map_ms.LSAIdentity", HFILL }},
19266     { &hf_gsm_map_ms_lsaAttributes,
19267       { "lsaAttributes", "gsm_map.ms.lsaAttributes",
19268         FT_BYTES, BASE_HEX, NULL, 0,
19269         "gsm_map_ms.LSAAttributes", HFILL }},
19270     { &hf_gsm_map_ms_lsaActiveModeIndicator,
19271       { "lsaActiveModeIndicator", "gsm_map.ms.lsaActiveModeIndicator",
19272         FT_NONE, BASE_NONE, NULL, 0,
19273         "gsm_map_ms.NULL", HFILL }},
19274     { &hf_gsm_map_ms_lsaOnlyAccessIndicator,
19275       { "lsaOnlyAccessIndicator", "gsm_map.ms.lsaOnlyAccessIndicator",
19276         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAOnlyAccessIndicator_vals), 0,
19277         "gsm_map_ms.LSAOnlyAccessIndicator", HFILL }},
19278     { &hf_gsm_map_ms_lsaDataList,
19279       { "lsaDataList", "gsm_map.ms.lsaDataList",
19280         FT_UINT32, BASE_DEC, NULL, 0,
19281         "gsm_map_ms.LSADataList", HFILL }},
19282     { &hf_gsm_map_ms_BearerServiceList_item,
19283       { "Item", "gsm_map.ms.BearerServiceList_item",
19284         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
19285         "gsm_map.Ext_BearerServiceCode", HFILL }},
19286     { &hf_gsm_map_ms_TeleserviceList_item,
19287       { "Item", "gsm_map.ms.TeleserviceList_item",
19288         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
19289         "gsm_map.Ext_TeleserviceCode", HFILL }},
19290     { &hf_gsm_map_ms_odb_GeneralData,
19291       { "odb-GeneralData", "gsm_map.ms.odb_GeneralData",
19292         FT_BYTES, BASE_HEX, NULL, 0,
19293         "gsm_map_ms.ODB_GeneralData", HFILL }},
19294     { &hf_gsm_map_ms_odb_HPLMN_Data,
19295       { "odb-HPLMN-Data", "gsm_map.ms.odb_HPLMN_Data",
19296         FT_BYTES, BASE_HEX, NULL, 0,
19297         "gsm_map_ms.ODB_HPLMN_Data", HFILL }},
19298     { &hf_gsm_map_ms_Ext_SS_InfoList_item,
19299       { "Item", "gsm_map.ms.Ext_SS_InfoList_item",
19300         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_Info_vals), 0,
19301         "gsm_map_ms.Ext_SS_Info", HFILL }},
19302     { &hf_gsm_map_ms_forwardingInfo,
19303       { "forwardingInfo", "gsm_map.ms.forwardingInfo",
19304         FT_NONE, BASE_NONE, NULL, 0,
19305         "gsm_map_ms.Ext_ForwInfo", HFILL }},
19306     { &hf_gsm_map_ms_callBarringInfo,
19307       { "callBarringInfo", "gsm_map.ms.callBarringInfo",
19308         FT_NONE, BASE_NONE, NULL, 0,
19309         "gsm_map_ms.Ext_CallBarInfo", HFILL }},
19310     { &hf_gsm_map_ms_cug_Info,
19311       { "cug-Info", "gsm_map.ms.cug_Info",
19312         FT_NONE, BASE_NONE, NULL, 0,
19313         "gsm_map_ms.CUG_Info", HFILL }},
19314     { &hf_gsm_map_ms_ss_Data,
19315       { "ss-Data", "gsm_map.ms.ss_Data",
19316         FT_NONE, BASE_NONE, NULL, 0,
19317         "gsm_map_ms.Ext_SS_Data", HFILL }},
19318     { &hf_gsm_map_ms_emlpp_Info,
19319       { "emlpp-Info", "gsm_map.ms.emlpp_Info",
19320         FT_NONE, BASE_NONE, NULL, 0,
19321         "gsm_map.EMLPP_Info", HFILL }},
19322     { &hf_gsm_map_ms_ss_Code,
19323       { "ss-Code", "gsm_map.ms.ss_Code",
19324         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
19325         "gsm_map.SS_Code", HFILL }},
19326     { &hf_gsm_map_ms_forwardingFeatureList,
19327       { "forwardingFeatureList", "gsm_map.ms.forwardingFeatureList",
19328         FT_UINT32, BASE_DEC, NULL, 0,
19329         "gsm_map_ms.Ext_ForwFeatureList", HFILL }},
19330     { &hf_gsm_map_ms_Ext_ForwFeatureList_item,
19331       { "Item", "gsm_map.ms.Ext_ForwFeatureList_item",
19332         FT_NONE, BASE_NONE, NULL, 0,
19333         "gsm_map_ms.Ext_ForwFeature", HFILL }},
19334     { &hf_gsm_map_ms_basicService,
19335       { "basicService", "gsm_map.ms.basicService",
19336         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
19337         "gsm_map.Ext_BasicServiceCode", HFILL }},
19338     { &hf_gsm_map_ms_ss_Status,
19339       { "ss-Status", "gsm_map.ms.ss_Status",
19340         FT_BYTES, BASE_HEX, NULL, 0,
19341         "gsm_map.Ext_SS_Status", HFILL }},
19342     { &hf_gsm_map_ms_forwardedToNumber,
19343       { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
19344         FT_BYTES, BASE_HEX, NULL, 0,
19345         "gsm_map.ISDN_AddressString", HFILL }},
19346     { &hf_gsm_map_ms_forwardedToSubaddress,
19347       { "forwardedToSubaddress", "gsm_map.ms.forwardedToSubaddress",
19348         FT_BYTES, BASE_HEX, NULL, 0,
19349         "gsm_map.ISDN_SubaddressString", HFILL }},
19350     { &hf_gsm_map_ms_forwardingOptions,
19351       { "forwardingOptions", "gsm_map.ms.forwardingOptions",
19352         FT_BYTES, BASE_HEX, NULL, 0,
19353         "gsm_map_ms.T_forwardingOptions", HFILL }},
19354     { &hf_gsm_map_ms_noReplyConditionTime,
19355       { "noReplyConditionTime", "gsm_map.ms.noReplyConditionTime",
19356         FT_UINT32, BASE_DEC, NULL, 0,
19357         "gsm_map_ms.Ext_NoRepCondTime", HFILL }},
19358     { &hf_gsm_map_ms_longForwardedToNumber,
19359       { "longForwardedToNumber", "gsm_map.ms.longForwardedToNumber",
19360         FT_BYTES, BASE_HEX, NULL, 0,
19361         "gsm_map.FTN_AddressString", HFILL }},
19362     { &hf_gsm_map_ms_callBarringFeatureList,
19363       { "callBarringFeatureList", "gsm_map.ms.callBarringFeatureList",
19364         FT_UINT32, BASE_DEC, NULL, 0,
19365         "gsm_map_ms.Ext_CallBarFeatureList", HFILL }},
19366     { &hf_gsm_map_ms_Ext_CallBarFeatureList_item,
19367       { "Item", "gsm_map.ms.Ext_CallBarFeatureList_item",
19368         FT_NONE, BASE_NONE, NULL, 0,
19369         "gsm_map_ms.Ext_CallBarringFeature", HFILL }},
19370     { &hf_gsm_map_ms_cug_SubscriptionList,
19371       { "cug-SubscriptionList", "gsm_map.ms.cug_SubscriptionList",
19372         FT_UINT32, BASE_DEC, NULL, 0,
19373         "gsm_map_ms.CUG_SubscriptionList", HFILL }},
19374     { &hf_gsm_map_ms_cug_FeatureList,
19375       { "cug-FeatureList", "gsm_map.ms.cug_FeatureList",
19376         FT_UINT32, BASE_DEC, NULL, 0,
19377         "gsm_map_ms.CUG_FeatureList", HFILL }},
19378     { &hf_gsm_map_ms_CUG_SubscriptionList_item,
19379       { "Item", "gsm_map.ms.CUG_SubscriptionList_item",
19380         FT_NONE, BASE_NONE, NULL, 0,
19381         "gsm_map_ms.CUG_Subscription", HFILL }},
19382     { &hf_gsm_map_ms_cug_Index,
19383       { "cug-Index", "gsm_map.ms.cug_Index",
19384         FT_UINT32, BASE_DEC, NULL, 0,
19385         "gsm_map_ms.CUG_Index", HFILL }},
19386     { &hf_gsm_map_ms_cug_Interlock,
19387       { "cug-Interlock", "gsm_map.ms.cug_Interlock",
19388         FT_BYTES, BASE_HEX, NULL, 0,
19389         "gsm_map_ms.CUG_Interlock", HFILL }},
19390     { &hf_gsm_map_ms_intraCUG_Options,
19391       { "intraCUG-Options", "gsm_map.ms.intraCUG_Options",
19392         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IntraCUG_Options_vals), 0,
19393         "gsm_map_ms.IntraCUG_Options", HFILL }},
19394     { &hf_gsm_map_ms_basicServiceGroupList,
19395       { "basicServiceGroupList", "gsm_map.ms.basicServiceGroupList",
19396         FT_UINT32, BASE_DEC, NULL, 0,
19397         "gsm_map_ms.Ext_BasicServiceGroupList", HFILL }},
19398     { &hf_gsm_map_ms_CUG_FeatureList_item,
19399       { "Item", "gsm_map.ms.CUG_FeatureList_item",
19400         FT_NONE, BASE_NONE, NULL, 0,
19401         "gsm_map_ms.CUG_Feature", HFILL }},
19402     { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item,
19403       { "Item", "gsm_map.ms.Ext_BasicServiceGroupList_item",
19404         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
19405         "gsm_map.Ext_BasicServiceCode", HFILL }},
19406     { &hf_gsm_map_ms_preferentialCUG_Indicator,
19407       { "preferentialCUG-Indicator", "gsm_map.ms.preferentialCUG_Indicator",
19408         FT_UINT32, BASE_DEC, NULL, 0,
19409         "gsm_map_ms.CUG_Index", HFILL }},
19410     { &hf_gsm_map_ms_interCUG_Restrictions,
19411       { "interCUG-Restrictions", "gsm_map.ms.interCUG_Restrictions",
19412         FT_BYTES, BASE_HEX, NULL, 0,
19413         "gsm_map_ms.InterCUG_Restrictions", HFILL }},
19414     { &hf_gsm_map_ms_ss_SubscriptionOption,
19415       { "ss-SubscriptionOption", "gsm_map.ms.ss_SubscriptionOption",
19416         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
19417         "gsm_map_ss.SS_SubscriptionOption", HFILL }},
19418     { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item,
19419       { "Item", "gsm_map.ms.LCS_PrivacyExceptionList_item",
19420         FT_NONE, BASE_NONE, NULL, 0,
19421         "gsm_map_ms.LCS_PrivacyClass", HFILL }},
19422     { &hf_gsm_map_ms_notificationToMSUser,
19423       { "notificationToMSUser", "gsm_map.ms.notificationToMSUser",
19424         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
19425         "gsm_map_ms.NotificationToMSUser", HFILL }},
19426     { &hf_gsm_map_ms_externalClientList,
19427       { "externalClientList", "gsm_map.ms.externalClientList",
19428         FT_UINT32, BASE_DEC, NULL, 0,
19429         "gsm_map_ms.ExternalClientList", HFILL }},
19430     { &hf_gsm_map_ms_plmnClientList,
19431       { "plmnClientList", "gsm_map.ms.plmnClientList",
19432         FT_UINT32, BASE_DEC, NULL, 0,
19433         "gsm_map_ms.PLMNClientList", HFILL }},
19434     { &hf_gsm_map_ms_ext_externalClientList,
19435       { "ext-externalClientList", "gsm_map.ms.ext_externalClientList",
19436         FT_UINT32, BASE_DEC, NULL, 0,
19437         "gsm_map_ms.Ext_ExternalClientList", HFILL }},
19438     { &hf_gsm_map_ms_serviceTypeList,
19439       { "serviceTypeList", "gsm_map.ms.serviceTypeList",
19440         FT_UINT32, BASE_DEC, NULL, 0,
19441         "gsm_map_ms.ServiceTypeList", HFILL }},
19442     { &hf_gsm_map_ms_ExternalClientList_item,
19443       { "Item", "gsm_map.ms.ExternalClientList_item",
19444         FT_NONE, BASE_NONE, NULL, 0,
19445         "gsm_map_ms.ExternalClient", HFILL }},
19446     { &hf_gsm_map_ms_PLMNClientList_item,
19447       { "Item", "gsm_map.ms.PLMNClientList_item",
19448         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
19449         "gsm_map.LCSClientInternalID", HFILL }},
19450     { &hf_gsm_map_ms_Ext_ExternalClientList_item,
19451       { "Item", "gsm_map.ms.Ext_ExternalClientList_item",
19452         FT_NONE, BASE_NONE, NULL, 0,
19453         "gsm_map_ms.ExternalClient", HFILL }},
19454     { &hf_gsm_map_ms_clientIdentity,
19455       { "clientIdentity", "gsm_map.ms.clientIdentity",
19456         FT_NONE, BASE_NONE, NULL, 0,
19457         "gsm_map.LCSClientExternalID", HFILL }},
19458     { &hf_gsm_map_ms_gmlc_Restriction,
19459       { "gmlc-Restriction", "gsm_map.ms.gmlc_Restriction",
19460         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GMLC_Restriction_vals), 0,
19461         "gsm_map_ms.GMLC_Restriction", HFILL }},
19462     { &hf_gsm_map_ms_ServiceTypeList_item,
19463       { "Item", "gsm_map.ms.ServiceTypeList_item",
19464         FT_NONE, BASE_NONE, NULL, 0,
19465         "gsm_map_ms.ServiceType", HFILL }},
19466     { &hf_gsm_map_ms_serviceTypeIdentity,
19467       { "serviceTypeIdentity", "gsm_map.ms.serviceTypeIdentity",
19468         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
19469         "gsm_map.LCSServiceTypeID", HFILL }},
19470     { &hf_gsm_map_ms_MOLR_List_item,
19471       { "Item", "gsm_map.ms.MOLR_List_item",
19472         FT_NONE, BASE_NONE, NULL, 0,
19473         "gsm_map_ms.MOLR_Class", HFILL }},
19474     { &hf_gsm_map_ms_ZoneCodeList_item,
19475       { "Item", "gsm_map.ms.ZoneCodeList_item",
19476         FT_BYTES, BASE_HEX, NULL, 0,
19477         "gsm_map_ms.ZoneCode", HFILL }},
19478     { &hf_gsm_map_ms_teleserviceList,
19479       { "teleserviceList", "gsm_map.ms.teleserviceList",
19480         FT_UINT32, BASE_DEC, NULL, 0,
19481         "gsm_map_ms.TeleserviceList", HFILL }},
19482     { &hf_gsm_map_ms_bearerServiceList,
19483       { "bearerServiceList", "gsm_map.ms.bearerServiceList",
19484         FT_UINT32, BASE_DEC, NULL, 0,
19485         "gsm_map_ms.BearerServiceList", HFILL }},
19486     { &hf_gsm_map_ms_ss_List,
19487       { "ss-List", "gsm_map.ms.ss_List",
19488         FT_UINT32, BASE_DEC, NULL, 0,
19489         "gsm_map_ss.SS_List", HFILL }},
19490     { &hf_gsm_map_ms_regionalSubscriptionResponse,
19491       { "regionalSubscriptionResponse", "gsm_map.ms.regionalSubscriptionResponse",
19492         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RegionalSubscriptionResponse_vals), 0,
19493         "gsm_map_ms.RegionalSubscriptionResponse", HFILL }},
19494     { &hf_gsm_map_ms_basicServiceList,
19495       { "basicServiceList", "gsm_map.ms.basicServiceList",
19496         FT_UINT32, BASE_DEC, NULL, 0,
19497         "gsm_map_ms.BasicServiceList", HFILL }},
19498     { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature,
19499       { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictionDueToUnsupportedFeature",
19500         FT_NONE, BASE_NONE, NULL, 0,
19501         "gsm_map_ms.NULL", HFILL }},
19502     { &hf_gsm_map_ms_regionalSubscriptionIdentifier,
19503       { "regionalSubscriptionIdentifier", "gsm_map.ms.regionalSubscriptionIdentifier",
19504         FT_BYTES, BASE_HEX, NULL, 0,
19505         "gsm_map_ms.ZoneCode", HFILL }},
19506     { &hf_gsm_map_ms_vbsGroupIndication,
19507       { "vbsGroupIndication", "gsm_map.ms.vbsGroupIndication",
19508         FT_NONE, BASE_NONE, NULL, 0,
19509         "gsm_map_ms.NULL", HFILL }},
19510     { &hf_gsm_map_ms_vgcsGroupIndication,
19511       { "vgcsGroupIndication", "gsm_map.ms.vgcsGroupIndication",
19512         FT_NONE, BASE_NONE, NULL, 0,
19513         "gsm_map_ms.NULL", HFILL }},
19514     { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw,
19515       { "camelSubscriptionInfoWithdraw", "gsm_map.ms.camelSubscriptionInfoWithdraw",
19516         FT_NONE, BASE_NONE, NULL, 0,
19517         "gsm_map_ms.NULL", HFILL }},
19518     { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw,
19519       { "gprsSubscriptionDataWithdraw", "gsm_map.ms.gprsSubscriptionDataWithdraw",
19520         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRSSubscriptionDataWithdraw_vals), 0,
19521         "gsm_map_ms.GPRSSubscriptionDataWithdraw", HFILL }},
19522     { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature,
19523       { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsuppportedFeature",
19524         FT_NONE, BASE_NONE, NULL, 0,
19525         "gsm_map_ms.NULL", HFILL }},
19526     { &hf_gsm_map_ms_lsaInformationWithdraw,
19527       { "lsaInformationWithdraw", "gsm_map.ms.lsaInformationWithdraw",
19528         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAInformationWithdraw_vals), 0,
19529         "gsm_map_ms.LSAInformationWithdraw", HFILL }},
19530     { &hf_gsm_map_ms_gmlc_ListWithdraw,
19531       { "gmlc-ListWithdraw", "gsm_map.ms.gmlc_ListWithdraw",
19532         FT_NONE, BASE_NONE, NULL, 0,
19533         "gsm_map_ms.NULL", HFILL }},
19534     { &hf_gsm_map_ms_istInformationWithdraw,
19535       { "istInformationWithdraw", "gsm_map.ms.istInformationWithdraw",
19536         FT_NONE, BASE_NONE, NULL, 0,
19537         "gsm_map_ms.NULL", HFILL }},
19538     { &hf_gsm_map_ms_specificCSI_Withdraw,
19539       { "specificCSI-Withdraw", "gsm_map.ms.specificCSI_Withdraw",
19540         FT_BYTES, BASE_HEX, NULL, 0,
19541         "gsm_map_ms.SpecificCSI_Withdraw", HFILL }},
19542     { &hf_gsm_map_ms_chargingCharacteristicsWithdraw,
19543       { "chargingCharacteristicsWithdraw", "gsm_map.ms.chargingCharacteristicsWithdraw",
19544         FT_NONE, BASE_NONE, NULL, 0,
19545         "gsm_map_ms.NULL", HFILL }},
19546     { &hf_gsm_map_ms_allGPRSData,
19547       { "allGPRSData", "gsm_map.ms.allGPRSData",
19548         FT_NONE, BASE_NONE, NULL, 0,
19549         "gsm_map_ms.NULL", HFILL }},
19550     { &hf_gsm_map_ms_contextIdList,
19551       { "contextIdList", "gsm_map.ms.contextIdList",
19552         FT_UINT32, BASE_DEC, NULL, 0,
19553         "gsm_map_ms.ContextIdList", HFILL }},
19554     { &hf_gsm_map_ms_ContextIdList_item,
19555       { "Item", "gsm_map.ms.ContextIdList_item",
19556         FT_UINT32, BASE_DEC, NULL, 0,
19557         "gsm_map_ms.ContextId", HFILL }},
19558     { &hf_gsm_map_ms_allLSAData,
19559       { "allLSAData", "gsm_map.ms.allLSAData",
19560         FT_NONE, BASE_NONE, NULL, 0,
19561         "gsm_map_ms.NULL", HFILL }},
19562     { &hf_gsm_map_ms_lsaIdentityList,
19563       { "lsaIdentityList", "gsm_map.ms.lsaIdentityList",
19564         FT_UINT32, BASE_DEC, NULL, 0,
19565         "gsm_map_ms.LSAIdentityList", HFILL }},
19566     { &hf_gsm_map_ms_LSAIdentityList_item,
19567       { "Item", "gsm_map.ms.LSAIdentityList_item",
19568         FT_BYTES, BASE_HEX, NULL, 0,
19569         "gsm_map_ms.LSAIdentity", HFILL }},
19570     { &hf_gsm_map_ms_BasicServiceList_item,
19571       { "Item", "gsm_map.ms.BasicServiceList_item",
19572         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
19573         "gsm_map.Ext_BasicServiceCode", HFILL }},
19574     { &hf_gsm_map_ms_o_CSI,
19575       { "o-CSI", "gsm_map.ms.o_CSI",
19576         FT_NONE, BASE_NONE, NULL, 0,
19577         "gsm_map_ms.O_CSI", HFILL }},
19578     { &hf_gsm_map_ms_ss_CSI,
19579       { "ss-CSI", "gsm_map.ms.ss_CSI",
19580         FT_NONE, BASE_NONE, NULL, 0,
19581         "gsm_map_ms.SS_CSI", HFILL }},
19582     { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList,
19583       { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_BcsmCamelTDP_CriteriaList",
19584         FT_UINT32, BASE_DEC, NULL, 0,
19585         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
19586     { &hf_gsm_map_ms_tif_CSI,
19587       { "tif-CSI", "gsm_map.ms.tif_CSI",
19588         FT_NONE, BASE_NONE, NULL, 0,
19589         "gsm_map_ms.NULL", HFILL }},
19590     { &hf_gsm_map_ms_m_CSI,
19591       { "m-CSI", "gsm_map.ms.m_CSI",
19592         FT_NONE, BASE_NONE, NULL, 0,
19593         "gsm_map_ms.M_CSI", HFILL }},
19594     { &hf_gsm_map_ms_vt_CSI,
19595       { "vt-CSI", "gsm_map.ms.vt_CSI",
19596         FT_NONE, BASE_NONE, NULL, 0,
19597         "gsm_map_ms.T_CSI", HFILL }},
19598     { &hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList,
19599       { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.t_BCSM_CAMEL_TDP_CriteriaList",
19600         FT_UINT32, BASE_DEC, NULL, 0,
19601         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
19602     { &hf_gsm_map_ms_d_CSI,
19603       { "d-CSI", "gsm_map.ms.d_CSI",
19604         FT_NONE, BASE_NONE, NULL, 0,
19605         "gsm_map_ms.D_CSI", HFILL }},
19606     { &hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item,
19607       { "Item", "gsm_map.ms.MT_smsCAMELTDP_CriteriaList_item",
19608         FT_NONE, BASE_NONE, NULL, 0,
19609         "gsm_map_ms.MT_smsCAMELTDP_Criteria", HFILL }},
19610     { &hf_gsm_map_ms_sms_TriggerDetectionPoint,
19611       { "sms-TriggerDetectionPoint", "gsm_map.ms.sms_TriggerDetectionPoint",
19612         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SMS_TriggerDetectionPoint_vals), 0,
19613         "gsm_map_ms.SMS_TriggerDetectionPoint", HFILL }},
19614     { &hf_gsm_map_ms_tpdu_TypeCriterion,
19615       { "tpdu-TypeCriterion", "gsm_map.ms.tpdu_TypeCriterion",
19616         FT_UINT32, BASE_DEC, NULL, 0,
19617         "gsm_map_ms.TPDU_TypeCriterion", HFILL }},
19618     { &hf_gsm_map_ms_TPDU_TypeCriterion_item,
19619       { "Item", "gsm_map.ms.TPDU_TypeCriterion_item",
19620         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MT_SMS_TPDU_Type_vals), 0,
19621         "gsm_map_ms.MT_SMS_TPDU_Type", HFILL }},
19622     { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList,
19623       { "dp-AnalysedInfoCriteriaList", "gsm_map.ms.dp_AnalysedInfoCriteriaList",
19624         FT_UINT32, BASE_DEC, NULL, 0,
19625         "gsm_map_ms.DP_AnalysedInfoCriteriaList", HFILL }},
19626     { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item,
19627       { "Item", "gsm_map.ms.DP_AnalysedInfoCriteriaList_item",
19628         FT_NONE, BASE_NONE, NULL, 0,
19629         "gsm_map_ms.DP_AnalysedInfoCriterium", HFILL }},
19630     { &hf_gsm_map_ms_dialledNumber,
19631       { "dialledNumber", "gsm_map.ms.dialledNumber",
19632         FT_BYTES, BASE_HEX, NULL, 0,
19633         "gsm_map.ISDN_AddressString", HFILL }},
19634     { &hf_gsm_map_ms_defaultCallHandling,
19635       { "defaultCallHandling", "gsm_map.ms.defaultCallHandling",
19636         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultCallHandling_vals), 0,
19637         "gsm_map_ms.DefaultCallHandling", HFILL }},
19638     { &hf_gsm_map_ms_ss_CamelData,
19639       { "ss-CamelData", "gsm_map.ms.ss_CamelData",
19640         FT_NONE, BASE_NONE, NULL, 0,
19641         "gsm_map_ms.SS_CamelData", HFILL }},
19642     { &hf_gsm_map_ms_ss_EventList,
19643       { "ss-EventList", "gsm_map.ms.ss_EventList",
19644         FT_UINT32, BASE_DEC, NULL, 0,
19645         "gsm_map_ms.SS_EventList", HFILL }},
19646     { &hf_gsm_map_ms_SS_EventList_item,
19647       { "Item", "gsm_map.ms.SS_EventList_item",
19648         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
19649         "gsm_map.SS_Code", HFILL }},
19650     { &hf_gsm_map_ms_o_BcsmCamelTDPDataList,
19651       { "o-BcsmCamelTDPDataList", "gsm_map.ms.o_BcsmCamelTDPDataList",
19652         FT_UINT32, BASE_DEC, NULL, 0,
19653         "gsm_map_ms.O_BcsmCamelTDPDataList", HFILL }},
19654     { &hf_gsm_map_ms_csiActive,
19655       { "csiActive", "gsm_map.ms.csiActive",
19656         FT_NONE, BASE_NONE, NULL, 0,
19657         "gsm_map_ms.NULL", HFILL }},
19658     { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item,
19659       { "Item", "gsm_map.ms.O_BcsmCamelTDPDataList_item",
19660         FT_NONE, BASE_NONE, NULL, 0,
19661         "gsm_map_ms.O_BcsmCamelTDPData", HFILL }},
19662     { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint,
19663       { "o-BcsmTriggerDetectionPoint", "gsm_map.ms.o_BcsmTriggerDetectionPoint",
19664         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_O_BcsmTriggerDetectionPoint_vals), 0,
19665         "gsm_map_ms.O_BcsmTriggerDetectionPoint", HFILL }},
19666     { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item,
19667       { "Item", "gsm_map.ms.O_BcsmCamelTDPCriteriaList_item",
19668         FT_NONE, BASE_NONE, NULL, 0,
19669         "gsm_map_ms.O_BcsmCamelTDP_Criteria", HFILL }},
19670     { &hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item,
19671       { "Item", "gsm_map.ms.T_BCSM_CAMEL_TDP_CriteriaList_item",
19672         FT_NONE, BASE_NONE, NULL, 0,
19673         "gsm_map_ms.T_BCSM_CAMEL_TDP_Criteria", HFILL }},
19674     { &hf_gsm_map_ms_destinationNumberCriteria,
19675       { "destinationNumberCriteria", "gsm_map.ms.destinationNumberCriteria",
19676         FT_NONE, BASE_NONE, NULL, 0,
19677         "gsm_map_ms.DestinationNumberCriteria", HFILL }},
19678     { &hf_gsm_map_ms_basicServiceCriteria,
19679       { "basicServiceCriteria", "gsm_map.ms.basicServiceCriteria",
19680         FT_UINT32, BASE_DEC, NULL, 0,
19681         "gsm_map_ms.BasicServiceCriteria", HFILL }},
19682     { &hf_gsm_map_ms_callTypeCriteria,
19683       { "callTypeCriteria", "gsm_map.ms.callTypeCriteria",
19684         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CallTypeCriteria_vals), 0,
19685         "gsm_map_ms.CallTypeCriteria", HFILL }},
19686     { &hf_gsm_map_ms_o_CauseValueCriteria,
19687       { "o-CauseValueCriteria", "gsm_map.ms.o_CauseValueCriteria",
19688         FT_UINT32, BASE_DEC, NULL, 0,
19689         "gsm_map_ms.O_CauseValueCriteria", HFILL }},
19690     { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint,
19691       { "t-BCSM-TriggerDetectionPoint", "gsm_map.ms.t_BCSM_TriggerDetectionPoint",
19692         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
19693         "gsm_map_ms.T_BcsmTriggerDetectionPoint", HFILL }},
19694     { &hf_gsm_map_ms_t_CauseValueCriteria,
19695       { "t-CauseValueCriteria", "gsm_map.ms.t_CauseValueCriteria",
19696         FT_UINT32, BASE_DEC, NULL, 0,
19697         "gsm_map_ms.T_CauseValueCriteria", HFILL }},
19698     { &hf_gsm_map_ms_matchType,
19699       { "matchType", "gsm_map.ms.matchType",
19700         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MatchType_vals), 0,
19701         "gsm_map_ms.MatchType", HFILL }},
19702     { &hf_gsm_map_ms_destinationNumberList,
19703       { "destinationNumberList", "gsm_map.ms.destinationNumberList",
19704         FT_UINT32, BASE_DEC, NULL, 0,
19705         "gsm_map_ms.DestinationNumberList", HFILL }},
19706     { &hf_gsm_map_ms_destinationNumberLengthList,
19707       { "destinationNumberLengthList", "gsm_map.ms.destinationNumberLengthList",
19708         FT_UINT32, BASE_DEC, NULL, 0,
19709         "gsm_map_ms.DestinationNumberLengthList", HFILL }},
19710     { &hf_gsm_map_ms_DestinationNumberList_item,
19711       { "Item", "gsm_map.ms.DestinationNumberList_item",
19712         FT_BYTES, BASE_HEX, NULL, 0,
19713         "gsm_map.ISDN_AddressString", HFILL }},
19714     { &hf_gsm_map_ms_DestinationNumberLengthList_item,
19715       { "Item", "gsm_map.ms.DestinationNumberLengthList_item",
19716         FT_UINT32, BASE_DEC, NULL, 0,
19717         "gsm_map_ms.INTEGER_1_maxNumOfISDN_AddressDigits", HFILL }},
19718     { &hf_gsm_map_ms_BasicServiceCriteria_item,
19719       { "Item", "gsm_map.ms.BasicServiceCriteria_item",
19720         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
19721         "gsm_map.Ext_BasicServiceCode", HFILL }},
19722     { &hf_gsm_map_ms_O_CauseValueCriteria_item,
19723       { "Item", "gsm_map.ms.O_CauseValueCriteria_item",
19724         FT_BYTES, BASE_HEX, NULL, 0,
19725         "gsm_map_ms.CauseValue", HFILL }},
19726     { &hf_gsm_map_ms_T_CauseValueCriteria_item,
19727       { "Item", "gsm_map.ms.T_CauseValueCriteria_item",
19728         FT_BYTES, BASE_HEX, NULL, 0,
19729         "gsm_map_ms.CauseValue", HFILL }},
19730     { &hf_gsm_map_ms_sms_CAMEL_TDP_DataList,
19731       { "sms-CAMEL-TDP-DataList", "gsm_map.ms.sms_CAMEL_TDP_DataList",
19732         FT_UINT32, BASE_DEC, NULL, 0,
19733         "gsm_map_ms.SMS_CAMEL_TDP_DataList", HFILL }},
19734     { &hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item,
19735       { "Item", "gsm_map.ms.SMS_CAMEL_TDP_DataList_item",
19736         FT_NONE, BASE_NONE, NULL, 0,
19737         "gsm_map_ms.SMS_CAMEL_TDP_Data", HFILL }},
19738     { &hf_gsm_map_ms_defaultSMS_Handling,
19739       { "defaultSMS-Handling", "gsm_map.ms.defaultSMS_Handling",
19740         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultSMS_Handling_vals), 0,
19741         "gsm_map_ms.DefaultSMS_Handling", HFILL }},
19742     { &hf_gsm_map_ms_mobilityTriggers,
19743       { "mobilityTriggers", "gsm_map.ms.mobilityTriggers",
19744         FT_UINT32, BASE_DEC, NULL, 0,
19745         "gsm_map_ms.MobilityTriggers", HFILL }},
19746     { &hf_gsm_map_ms_MobilityTriggers_item,
19747       { "Item", "gsm_map.ms.MobilityTriggers_item",
19748         FT_BYTES, BASE_HEX, NULL, 0,
19749         "gsm_map_ms.MM_Code", HFILL }},
19750     { &hf_gsm_map_ms_t_BcsmCamelTDPDataList,
19751       { "t-BcsmCamelTDPDataList", "gsm_map.ms.t_BcsmCamelTDPDataList",
19752         FT_UINT32, BASE_DEC, NULL, 0,
19753         "gsm_map_ms.T_BcsmCamelTDPDataList", HFILL }},
19754     { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item,
19755       { "Item", "gsm_map.ms.T_BcsmCamelTDPDataList_item",
19756         FT_NONE, BASE_NONE, NULL, 0,
19757         "gsm_map_ms.T_BcsmCamelTDPData", HFILL }},
19758     { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint,
19759       { "t-BcsmTriggerDetectionPoint", "gsm_map.ms.t_BcsmTriggerDetectionPoint",
19760         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
19761         "gsm_map_ms.T_BcsmTriggerDetectionPoint", HFILL }},
19762     { &hf_gsm_map_ms_ggsn_Address,
19763       { "ggsn-Address", "gsm_map.ms.ggsn_Address",
19764         FT_BYTES, BASE_HEX, NULL, 0,
19765         "gsm_map_ms.GSN_Address", HFILL }},
19766     { &hf_gsm_map_ms_ggsn_Number,
19767       { "ggsn-Number", "gsm_map.ms.ggsn_Number",
19768         FT_BYTES, BASE_HEX, NULL, 0,
19769         "gsm_map.ISDN_AddressString", HFILL }},
19770     { &hf_gsm_map_ms_mobileNotReachableReason,
19771       { "mobileNotReachableReason", "gsm_map.ms.mobileNotReachableReason",
19772         FT_UINT32, BASE_DEC, NULL, 0,
19773         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
19774     { &hf_gsm_map_ms_hlr_List,
19775       { "hlr-List", "gsm_map.ms.hlr_List",
19776         FT_UINT32, BASE_DEC, NULL, 0,
19777         "gsm_map.HLR_List", HFILL }},
19778     { &hf_gsm_map_ms_msNotReachable,
19779       { "msNotReachable", "gsm_map.ms.msNotReachable",
19780         FT_NONE, BASE_NONE, NULL, 0,
19781         "gsm_map_ms.NULL", HFILL }},
19782     { &hf_gsm_map_ms_VBSDataList_item,
19783       { "Item", "gsm_map.ms.VBSDataList_item",
19784         FT_NONE, BASE_NONE, NULL, 0,
19785         "gsm_map_ms.VoiceBroadcastData", HFILL }},
19786     { &hf_gsm_map_ms_VGCSDataList_item,
19787       { "Item", "gsm_map.ms.VGCSDataList_item",
19788         FT_NONE, BASE_NONE, NULL, 0,
19789         "gsm_map_ms.VoiceGroupCallData", HFILL }},
19790     { &hf_gsm_map_ms_groupId,
19791       { "groupId", "gsm_map.ms.groupId",
19792         FT_BYTES, BASE_HEX, NULL, 0,
19793         "gsm_map_ms.GroupId", HFILL }},
19794     { &hf_gsm_map_ms_additionalSubscriptions,
19795       { "additionalSubscriptions", "gsm_map.ms.additionalSubscriptions",
19796         FT_BYTES, BASE_HEX, NULL, 0,
19797         "gsm_map_ms.AdditionalSubscriptions", HFILL }},
19798     { &hf_gsm_map_ms_additionalInfo,
19799       { "additionalInfo", "gsm_map.ms.additionalInfo",
19800         FT_BYTES, BASE_HEX, NULL, 0,
19801         "gsm_map_ms.AdditionalInfo", HFILL }},
19802     { &hf_gsm_map_ms_longGroupId,
19803       { "longGroupId", "gsm_map.ms.longGroupId",
19804         FT_BYTES, BASE_HEX, NULL, 0,
19805         "gsm_map_ms.Long_GroupId", HFILL }},
19806     { &hf_gsm_map_ms_groupid,
19807       { "groupid", "gsm_map.ms.groupid",
19808         FT_BYTES, BASE_HEX, NULL, 0,
19809         "gsm_map_ms.GroupId", HFILL }},
19810     { &hf_gsm_map_ms_broadcastInitEntitlement,
19811       { "broadcastInitEntitlement", "gsm_map.ms.broadcastInitEntitlement",
19812         FT_NONE, BASE_NONE, NULL, 0,
19813         "gsm_map_ms.NULL", HFILL }},
19814     { &hf_gsm_map_ms_requestedInfo,
19815       { "requestedInfo", "gsm_map.ms.requestedInfo",
19816         FT_NONE, BASE_NONE, NULL, 0,
19817         "gsm_map_ms.RequestedInfo", HFILL }},
19818     { &hf_gsm_map_ms_subscriberInfo,
19819       { "subscriberInfo", "gsm_map.ms.subscriberInfo",
19820         FT_NONE, BASE_NONE, NULL, 0,
19821         "gsm_map_ms.SubscriberInfo", HFILL }},
19822     { &hf_gsm_map_ms_locationInformation,
19823       { "locationInformation", "gsm_map.ms.locationInformation",
19824         FT_NONE, BASE_NONE, NULL, 0,
19825         "gsm_map_ms.LocationInformation", HFILL }},
19826     { &hf_gsm_map_ms_subscriberState,
19827       { "subscriberState", "gsm_map.ms.subscriberState",
19828         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberState_vals), 0,
19829         "gsm_map_ms.SubscriberState", HFILL }},
19830     { &hf_gsm_map_ms_locationInformationGPRS,
19831       { "locationInformationGPRS", "gsm_map.ms.locationInformationGPRS",
19832         FT_NONE, BASE_NONE, NULL, 0,
19833         "gsm_map_ms.LocationInformationGPRS", HFILL }},
19834     { &hf_gsm_map_ms_ps_SubscriberState,
19835       { "ps-SubscriberState", "gsm_map.ms.ps_SubscriberState",
19836         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PS_SubscriberState_vals), 0,
19837         "gsm_map_ms.PS_SubscriberState", HFILL }},
19838     { &hf_gsm_map_ms_ms_Classmark2,
19839       { "ms-Classmark2", "gsm_map.ms.ms_Classmark2",
19840         FT_BYTES, BASE_HEX, NULL, 0,
19841         "gsm_map_ms.MS_Classmark2", HFILL }},
19842     { &hf_gsm_map_ms_gprs_MS_Class,
19843       { "gprs-MS-Class", "gsm_map.ms.gprs_MS_Class",
19844         FT_NONE, BASE_NONE, NULL, 0,
19845         "gsm_map_ms.GPRSMSClass", HFILL }},
19846     { &hf_gsm_map_ms_mnpInfoRes,
19847       { "mnpInfoRes", "gsm_map.ms.mnpInfoRes",
19848         FT_NONE, BASE_NONE, NULL, 0,
19849         "gsm_map_ms.MNPInfoRes", HFILL }},
19850     { &hf_gsm_map_ms_routeingNumber,
19851       { "routeingNumber", "gsm_map.ms.routeingNumber",
19852         FT_BYTES, BASE_HEX, NULL, 0,
19853         "gsm_map_ms.RouteingNumber", HFILL }},
19854     { &hf_gsm_map_ms_msisdn,
19855       { "msisdn", "gsm_map.ms.msisdn",
19856         FT_BYTES, BASE_HEX, NULL, 0,
19857         "gsm_map.ISDN_AddressString", HFILL }},
19858     { &hf_gsm_map_ms_numberPortabilityStatus,
19859       { "numberPortabilityStatus", "gsm_map.ms.numberPortabilityStatus",
19860         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
19861         "gsm_map_ms.NumberPortabilityStatus", HFILL }},
19862     { &hf_gsm_map_ms_mSNetworkCapability,
19863       { "mSNetworkCapability", "gsm_map.ms.mSNetworkCapability",
19864         FT_BYTES, BASE_HEX, NULL, 0,
19865         "gsm_map_ms.MSNetworkCapability", HFILL }},
19866     { &hf_gsm_map_ms_mSRadioAccessCapability,
19867       { "mSRadioAccessCapability", "gsm_map.ms.mSRadioAccessCapability",
19868         FT_BYTES, BASE_HEX, NULL, 0,
19869         "gsm_map_ms.MSRadioAccessCapability", HFILL }},
19870     { &hf_gsm_map_ms_locationInformation_01,
19871       { "locationInformation", "gsm_map.ms.locationInformation",
19872         FT_NONE, BASE_NONE, NULL, 0,
19873         "gsm_map_ms.NULL", HFILL }},
19874     { &hf_gsm_map_ms_subscriberState_01,
19875       { "subscriberState", "gsm_map.ms.subscriberState",
19876         FT_NONE, BASE_NONE, NULL, 0,
19877         "gsm_map_ms.NULL", HFILL }},
19878     { &hf_gsm_map_ms_currentLocation,
19879       { "currentLocation", "gsm_map.ms.currentLocation",
19880         FT_NONE, BASE_NONE, NULL, 0,
19881         "gsm_map_ms.NULL", HFILL }},
19882     { &hf_gsm_map_ms_requestedDomain,
19883       { "requestedDomain", "gsm_map.ms.requestedDomain",
19884         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DomainType_vals), 0,
19885         "gsm_map_ms.DomainType", HFILL }},
19886     { &hf_gsm_map_ms_imei_01,
19887       { "imei", "gsm_map.ms.imei",
19888         FT_NONE, BASE_NONE, NULL, 0,
19889         "gsm_map_ms.NULL", HFILL }},
19890     { &hf_gsm_map_ms_ms_classmark,
19891       { "ms-classmark", "gsm_map.ms.ms_classmark",
19892         FT_NONE, BASE_NONE, NULL, 0,
19893         "gsm_map_ms.NULL", HFILL }},
19894     { &hf_gsm_map_ms_mnpRequestedInfo,
19895       { "mnpRequestedInfo", "gsm_map.ms.mnpRequestedInfo",
19896         FT_NONE, BASE_NONE, NULL, 0,
19897         "gsm_map_ms.NULL", HFILL }},
19898     { &hf_gsm_map_ms_ageOfLocationInformation,
19899       { "ageOfLocationInformation", "gsm_map.ms.ageOfLocationInformation",
19900         FT_UINT32, BASE_DEC, NULL, 0,
19901         "gsm_map.AgeOfLocationInformation", HFILL }},
19902     { &hf_gsm_map_ms_geographicalInformation,
19903       { "geographicalInformation", "gsm_map.ms.geographicalInformation",
19904         FT_BYTES, BASE_HEX, NULL, 0,
19905         "gsm_map_ms.GeographicalInformation", HFILL }},
19906     { &hf_gsm_map_ms_vlr_number,
19907       { "vlr-number", "gsm_map.ms.vlr_number",
19908         FT_BYTES, BASE_HEX, NULL, 0,
19909         "gsm_map.ISDN_AddressString", HFILL }},
19910     { &hf_gsm_map_ms_locationNumber,
19911       { "locationNumber", "gsm_map.ms.locationNumber",
19912         FT_BYTES, BASE_HEX, NULL, 0,
19913         "gsm_map_ms.LocationNumber", HFILL }},
19914     { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI,
19915       { "cellGlobalIdOrServiceAreaIdOrLAI", "gsm_map.ms.cellGlobalIdOrServiceAreaIdOrLAI",
19916         FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
19917         "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
19918     { &hf_gsm_map_ms_selectedLSA_Id,
19919       { "selectedLSA-Id", "gsm_map.ms.selectedLSA_Id",
19920         FT_BYTES, BASE_HEX, NULL, 0,
19921         "gsm_map_ms.LSAIdentity", HFILL }},
19922     { &hf_gsm_map_ms_geodeticInformation,
19923       { "geodeticInformation", "gsm_map.ms.geodeticInformation",
19924         FT_BYTES, BASE_HEX, NULL, 0,
19925         "gsm_map_ms.GeodeticInformation", HFILL }},
19926     { &hf_gsm_map_ms_currentLocationRetrieved,
19927       { "currentLocationRetrieved", "gsm_map.ms.currentLocationRetrieved",
19928         FT_NONE, BASE_NONE, NULL, 0,
19929         "gsm_map_ms.NULL", HFILL }},
19930     { &hf_gsm_map_ms_sai_Present,
19931       { "sai-Present", "gsm_map.ms.sai_Present",
19932         FT_NONE, BASE_NONE, NULL, 0,
19933         "gsm_map_ms.NULL", HFILL }},
19934     { &hf_gsm_map_ms_routeingAreaIdentity,
19935       { "routeingAreaIdentity", "gsm_map.ms.routeingAreaIdentity",
19936         FT_BYTES, BASE_HEX, NULL, 0,
19937         "gsm_map_ms.RAIdentity", HFILL }},
19938     { &hf_gsm_map_ms_selectedLSAIdentity,
19939       { "selectedLSAIdentity", "gsm_map.ms.selectedLSAIdentity",
19940         FT_BYTES, BASE_HEX, NULL, 0,
19941         "gsm_map_ms.LSAIdentity", HFILL }},
19942     { &hf_gsm_map_ms_assumedIdle,
19943       { "assumedIdle", "gsm_map.ms.assumedIdle",
19944         FT_NONE, BASE_NONE, NULL, 0,
19945         "gsm_map_ms.NULL", HFILL }},
19946     { &hf_gsm_map_ms_camelBusy,
19947       { "camelBusy", "gsm_map.ms.camelBusy",
19948         FT_NONE, BASE_NONE, NULL, 0,
19949         "gsm_map_ms.NULL", HFILL }},
19950     { &hf_gsm_map_ms_netDetNotReachable,
19951       { "netDetNotReachable", "gsm_map.ms.netDetNotReachable",
19952         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotReachableReason_vals), 0,
19953         "gsm_map_ms.NotReachableReason", HFILL }},
19954     { &hf_gsm_map_ms_notProvidedFromVLR,
19955       { "notProvidedFromVLR", "gsm_map.ms.notProvidedFromVLR",
19956         FT_NONE, BASE_NONE, NULL, 0,
19957         "gsm_map_ms.NULL", HFILL }},
19958     { &hf_gsm_map_ms_notProvidedFromSGSN,
19959       { "notProvidedFromSGSN", "gsm_map.ms.notProvidedFromSGSN",
19960         FT_NONE, BASE_NONE, NULL, 0,
19961         "gsm_map_ms.NULL", HFILL }},
19962     { &hf_gsm_map_ms_ps_Detached,
19963       { "ps-Detached", "gsm_map.ms.ps_Detached",
19964         FT_NONE, BASE_NONE, NULL, 0,
19965         "gsm_map_ms.NULL", HFILL }},
19966     { &hf_gsm_map_ms_ps_AttachedNotReachableForPaging,
19967       { "ps-AttachedNotReachableForPaging", "gsm_map.ms.ps_AttachedNotReachableForPaging",
19968         FT_NONE, BASE_NONE, NULL, 0,
19969         "gsm_map_ms.NULL", HFILL }},
19970     { &hf_gsm_map_ms_ps_AttachedReachableForPaging,
19971       { "ps-AttachedReachableForPaging", "gsm_map.ms.ps_AttachedReachableForPaging",
19972         FT_NONE, BASE_NONE, NULL, 0,
19973         "gsm_map_ms.NULL", HFILL }},
19974     { &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging,
19975       { "ps-PDP-ActiveNotReachableForPaging", "gsm_map.ms.ps_PDP_ActiveNotReachableForPaging",
19976         FT_UINT32, BASE_DEC, NULL, 0,
19977         "gsm_map_ms.PDP_ContextInfoList", HFILL }},
19978     { &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging,
19979       { "ps-PDP-ActiveReachableForPaging", "gsm_map.ms.ps_PDP_ActiveReachableForPaging",
19980         FT_UINT32, BASE_DEC, NULL, 0,
19981         "gsm_map_ms.PDP_ContextInfoList", HFILL }},
19982     { &hf_gsm_map_ms_PDP_ContextInfoList_item,
19983       { "Item", "gsm_map.ms.PDP_ContextInfoList_item",
19984         FT_NONE, BASE_NONE, NULL, 0,
19985         "gsm_map_ms.PDP_ContextInfo", HFILL }},
19986     { &hf_gsm_map_ms_pdp_ContextIdentifier,
19987       { "pdp-ContextIdentifier", "gsm_map.ms.pdp_ContextIdentifier",
19988         FT_UINT32, BASE_DEC, NULL, 0,
19989         "gsm_map_ms.ContextId", HFILL }},
19990     { &hf_gsm_map_ms_pdp_ContextActive,
19991       { "pdp-ContextActive", "gsm_map.ms.pdp_ContextActive",
19992         FT_NONE, BASE_NONE, NULL, 0,
19993         "gsm_map_ms.NULL", HFILL }},
19994     { &hf_gsm_map_ms_apn_Subscribed,
19995       { "apn-Subscribed", "gsm_map.ms.apn_Subscribed",
19996         FT_BYTES, BASE_HEX, NULL, 0,
19997         "gsm_map_ms.APN", HFILL }},
19998     { &hf_gsm_map_ms_apn_InUse,
19999       { "apn-InUse", "gsm_map.ms.apn_InUse",
20000         FT_BYTES, BASE_HEX, NULL, 0,
20001         "gsm_map_ms.APN", HFILL }},
20002     { &hf_gsm_map_ms_nsapi,
20003       { "nsapi", "gsm_map.ms.nsapi",
20004         FT_UINT32, BASE_DEC, NULL, 0,
20005         "gsm_map_ms.NSAPI", HFILL }},
20006     { &hf_gsm_map_ms_transactionId,
20007       { "transactionId", "gsm_map.ms.transactionId",
20008         FT_BYTES, BASE_HEX, NULL, 0,
20009         "gsm_map_ms.TransactionId", HFILL }},
20010     { &hf_gsm_map_ms_teid_ForGnAndGp,
20011       { "teid-ForGnAndGp", "gsm_map.ms.teid_ForGnAndGp",
20012         FT_BYTES, BASE_HEX, NULL, 0,
20013         "gsm_map_ms.TEID", HFILL }},
20014     { &hf_gsm_map_ms_teid_ForIu,
20015       { "teid-ForIu", "gsm_map.ms.teid_ForIu",
20016         FT_BYTES, BASE_HEX, NULL, 0,
20017         "gsm_map_ms.TEID", HFILL }},
20018     { &hf_gsm_map_ms_qos_Subscribed_01,
20019       { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
20020         FT_BYTES, BASE_HEX, NULL, 0,
20021         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
20022     { &hf_gsm_map_ms_qos_Requested,
20023       { "qos-Requested", "gsm_map.ms.qos_Requested",
20024         FT_BYTES, BASE_HEX, NULL, 0,
20025         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
20026     { &hf_gsm_map_ms_qos_Negotiated,
20027       { "qos-Negotiated", "gsm_map.ms.qos_Negotiated",
20028         FT_BYTES, BASE_HEX, NULL, 0,
20029         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
20030     { &hf_gsm_map_ms_chargingId,
20031       { "chargingId", "gsm_map.ms.chargingId",
20032         FT_BYTES, BASE_HEX, NULL, 0,
20033         "gsm_map_ms.GPRSChargingID", HFILL }},
20034     { &hf_gsm_map_ms_chargingCharacteristics,
20035       { "chargingCharacteristics", "gsm_map.ms.chargingCharacteristics",
20036         FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
20037         "gsm_map_ms.ChargingCharacteristics", HFILL }},
20038     { &hf_gsm_map_ms_rnc_Address,
20039       { "rnc-Address", "gsm_map.ms.rnc_Address",
20040         FT_BYTES, BASE_HEX, NULL, 0,
20041         "gsm_map_ms.GSN_Address", HFILL }},
20042     { &hf_gsm_map_ms_qos2_Subscribed,
20043       { "qos2-Subscribed", "gsm_map.ms.qos2_Subscribed",
20044         FT_BYTES, BASE_HEX, NULL, 0,
20045         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
20046     { &hf_gsm_map_ms_qos2_Requested,
20047       { "qos2-Requested", "gsm_map.ms.qos2_Requested",
20048         FT_BYTES, BASE_HEX, NULL, 0,
20049         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
20050     { &hf_gsm_map_ms_qos2_Negotiated,
20051       { "qos2-Negotiated", "gsm_map.ms.qos2_Negotiated",
20052         FT_BYTES, BASE_HEX, NULL, 0,
20053         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
20054     { &hf_gsm_map_ms_qos3_Subscribed,
20055       { "qos3-Subscribed", "gsm_map.ms.qos3_Subscribed",
20056         FT_BYTES, BASE_HEX, NULL, 0,
20057         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
20058     { &hf_gsm_map_ms_qos3_Requested,
20059       { "qos3-Requested", "gsm_map.ms.qos3_Requested",
20060         FT_BYTES, BASE_HEX, NULL, 0,
20061         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
20062     { &hf_gsm_map_ms_qos3_Negotiated,
20063       { "qos3-Negotiated", "gsm_map.ms.qos3_Negotiated",
20064         FT_BYTES, BASE_HEX, NULL, 0,
20065         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
20066     { &hf_gsm_map_ms_subscriberIdentity,
20067       { "subscriberIdentity", "gsm_map.ms.subscriberIdentity",
20068         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
20069         "gsm_map.SubscriberIdentity", HFILL }},
20070     { &hf_gsm_map_ms_requestedSubscriptionInfo,
20071       { "requestedSubscriptionInfo", "gsm_map.ms.requestedSubscriptionInfo",
20072         FT_NONE, BASE_NONE, NULL, 0,
20073         "gsm_map_ms.RequestedSubscriptionInfo", HFILL }},
20074     { &hf_gsm_map_ms_callForwardingData,
20075       { "callForwardingData", "gsm_map.ms.callForwardingData",
20076         FT_NONE, BASE_NONE, NULL, 0,
20077         "gsm_map_ms.CallForwardingData", HFILL }},
20078     { &hf_gsm_map_ms_callBarringData,
20079       { "callBarringData", "gsm_map.ms.callBarringData",
20080         FT_NONE, BASE_NONE, NULL, 0,
20081         "gsm_map_ms.CallBarringData", HFILL }},
20082     { &hf_gsm_map_ms_odb_Info,
20083       { "odb-Info", "gsm_map.ms.odb_Info",
20084         FT_NONE, BASE_NONE, NULL, 0,
20085         "gsm_map_ms.ODB_Info", HFILL }},
20086     { &hf_gsm_map_ms_camel_SubscriptionInfo,
20087       { "camel-SubscriptionInfo", "gsm_map.ms.camel_SubscriptionInfo",
20088         FT_NONE, BASE_NONE, NULL, 0,
20089         "gsm_map_ms.CAMEL_SubscriptionInfo", HFILL }},
20090     { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases,
20091       { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases",
20092         FT_BYTES, BASE_HEX, NULL, 0,
20093         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20094     { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases,
20095       { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases",
20096         FT_BYTES, BASE_HEX, NULL, 0,
20097         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20098     { &hf_gsm_map_ms_offeredCamel4CSIsInVLR,
20099       { "offeredCamel4CSIsInVLR", "gsm_map.ms.offeredCamel4CSIsInVLR",
20100         FT_BYTES, BASE_HEX, NULL, 0,
20101         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20102     { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN,
20103       { "offeredCamel4CSIsInSGSN", "gsm_map.ms.offeredCamel4CSIsInSGSN",
20104         FT_BYTES, BASE_HEX, NULL, 0,
20105         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20106     { &hf_gsm_map_ms_msisdn_BS_List,
20107       { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List",
20108         FT_UINT32, BASE_DEC, NULL, 0,
20109         "gsm_map_ms.MSISDN_BS_List", HFILL }},
20110     { &hf_gsm_map_ms_requestedSS_Info,
20111       { "requestedSS-Info", "gsm_map.ms.requestedSS_Info",
20112         FT_NONE, BASE_NONE, NULL, 0,
20113         "gsm_map_ss.SS_ForBS_Code", HFILL }},
20114     { &hf_gsm_map_ms_odb,
20115       { "odb", "gsm_map.ms.odb",
20116         FT_NONE, BASE_NONE, NULL, 0,
20117         "gsm_map_ms.NULL", HFILL }},
20118     { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo,
20119       { "requestedCAMEL-SubscriptionInfo", "gsm_map.ms.requestedCAMEL_SubscriptionInfo",
20120         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
20121         "gsm_map_ms.RequestedCAMEL_SubscriptionInfo", HFILL }},
20122     { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01,
20123       { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases",
20124         FT_NONE, BASE_NONE, NULL, 0,
20125         "gsm_map_ms.NULL", HFILL }},
20126     { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01,
20127       { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases",
20128         FT_NONE, BASE_NONE, NULL, 0,
20129         "gsm_map_ms.NULL", HFILL }},
20130     { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo,
20131       { "additionalRequestedCAMEL-SubscriptionInfo", "gsm_map.ms.additionalRequestedCAMEL_SubscriptionInfo",
20132         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals), 0,
20133         "gsm_map_ms.AdditionalRequestedCAMEL_SubscriptionInfo", HFILL }},
20134     { &hf_gsm_map_ms_msisdn_BS_List_01,
20135       { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List",
20136         FT_NONE, BASE_NONE, NULL, 0,
20137         "gsm_map_ms.NULL", HFILL }},
20138     { &hf_gsm_map_ms_MSISDN_BS_List_item,
20139       { "Item", "gsm_map.ms.MSISDN_BS_List_item",
20140         FT_NONE, BASE_NONE, NULL, 0,
20141         "gsm_map_ms.MSISDN_BS", HFILL }},
20142     { &hf_gsm_map_ms_password,
20143       { "password", "gsm_map.ms.password",
20144         FT_STRING, BASE_NONE, NULL, 0,
20145         "gsm_map_ss.Password", HFILL }},
20146     { &hf_gsm_map_ms_wrongPasswordAttemptsCounter,
20147       { "wrongPasswordAttemptsCounter", "gsm_map.ms.wrongPasswordAttemptsCounter",
20148         FT_UINT32, BASE_DEC, NULL, 0,
20149         "gsm_map_ms.WrongPasswordAttemptsCounter", HFILL }},
20150     { &hf_gsm_map_ms_odb_Data,
20151       { "odb-Data", "gsm_map.ms.odb_Data",
20152         FT_NONE, BASE_NONE, NULL, 0,
20153         "gsm_map_ms.ODB_Data", HFILL }},
20154     { &hf_gsm_map_ms_t_CSI,
20155       { "t-CSI", "gsm_map.ms.t_CSI",
20156         FT_NONE, BASE_NONE, NULL, 0,
20157         "gsm_map_ms.T_CSI", HFILL }},
20158     { &hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList,
20159       { "vt-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_BCSM_CAMEL_TDP_CriteriaList",
20160         FT_UINT32, BASE_DEC, NULL, 0,
20161         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
20162     { &hf_gsm_map_ms_tif_CSI_NotificationToCSE,
20163       { "tif-CSI-NotificationToCSE", "gsm_map.ms.tif_CSI_NotificationToCSE",
20164         FT_NONE, BASE_NONE, NULL, 0,
20165         "gsm_map_ms.NULL", HFILL }},
20166     { &hf_gsm_map_ms_specificCSIDeletedList,
20167       { "specificCSIDeletedList", "gsm_map.ms.specificCSIDeletedList",
20168         FT_BYTES, BASE_HEX, NULL, 0,
20169         "gsm_map_ms.SpecificCSI_Withdraw", HFILL }},
20170     { &hf_gsm_map_ms_o_IM_CSI,
20171       { "o-IM-CSI", "gsm_map.ms.o_IM_CSI",
20172         FT_NONE, BASE_NONE, NULL, 0,
20173         "gsm_map_ms.O_CSI", HFILL }},
20174     { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList,
20175       { "o-IM-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_IM_BcsmCamelTDP_CriteriaList",
20176         FT_UINT32, BASE_DEC, NULL, 0,
20177         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
20178     { &hf_gsm_map_ms_d_IM_CSI,
20179       { "d-IM-CSI", "gsm_map.ms.d_IM_CSI",
20180         FT_NONE, BASE_NONE, NULL, 0,
20181         "gsm_map_ms.D_CSI", HFILL }},
20182     { &hf_gsm_map_ms_vt_IM_CSI,
20183       { "vt-IM-CSI", "gsm_map.ms.vt_IM_CSI",
20184         FT_NONE, BASE_NONE, NULL, 0,
20185         "gsm_map_ms.T_CSI", HFILL }},
20186     { &hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList,
20187       { "vt-IM-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_IM_BCSM_CAMEL_TDP_CriteriaList",
20188         FT_UINT32, BASE_DEC, NULL, 0,
20189         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
20190     { &hf_gsm_map_ms_modificationRequestFor_CF_Info,
20191       { "modificationRequestFor-CF-Info", "gsm_map.ms.modificationRequestFor_CF_Info",
20192         FT_NONE, BASE_NONE, NULL, 0,
20193         "gsm_map_ms.ModificationRequestFor_CF_Info", HFILL }},
20194     { &hf_gsm_map_ms_modificationRequestFor_CB_Info,
20195       { "modificationRequestFor-CB-Info", "gsm_map.ms.modificationRequestFor_CB_Info",
20196         FT_NONE, BASE_NONE, NULL, 0,
20197         "gsm_map_ms.ModificationRequestFor_CB_Info", HFILL }},
20198     { &hf_gsm_map_ms_modificationRequestFor_CSI,
20199       { "modificationRequestFor-CSI", "gsm_map.ms.modificationRequestFor_CSI",
20200         FT_NONE, BASE_NONE, NULL, 0,
20201         "gsm_map_ms.ModificationRequestFor_CSI", HFILL }},
20202     { &hf_gsm_map_ms_modificationRequestFor_ODB_data,
20203       { "modificationRequestFor-ODB-data", "gsm_map.ms.modificationRequestFor_ODB_data",
20204         FT_NONE, BASE_NONE, NULL, 0,
20205         "gsm_map_ms.ModificationRequestFor_ODB_data", HFILL }},
20206     { &hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data,
20207       { "modificationRequestFor-IP-SM-GW-Data", "gsm_map.ms.modificationRequestFor_IP_SM_GW_Data",
20208         FT_NONE, BASE_NONE, NULL, 0,
20209         "gsm_map_ms.ModificationRequestFor_IP_SM_GW_Data", HFILL }},
20210     { &hf_gsm_map_ms_ss_InfoFor_CSE,
20211       { "ss-InfoFor-CSE", "gsm_map.ms.ss_InfoFor_CSE",
20212         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_InfoFor_CSE_vals), 0,
20213         "gsm_map_ms.Ext_SS_InfoFor_CSE", HFILL }},
20214     { &hf_gsm_map_ms_forwardedToNumber_01,
20215       { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
20216         FT_BYTES, BASE_HEX, NULL, 0,
20217         "gsm_map.AddressString", HFILL }},
20218     { &hf_gsm_map_ms_modifyNotificationToCSE,
20219       { "modifyNotificationToCSE", "gsm_map.ms.modifyNotificationToCSE",
20220         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
20221         "gsm_map_ms.ModificationInstruction", HFILL }},
20222     { &hf_gsm_map_ms_odb_data,
20223       { "odb-data", "gsm_map.ms.odb_data",
20224         FT_NONE, BASE_NONE, NULL, 0,
20225         "gsm_map_ms.ODB_Data", HFILL }},
20226     { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo,
20227       { "requestedCamel-SubscriptionInfo", "gsm_map.ms.requestedCamel_SubscriptionInfo",
20228         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
20229         "gsm_map_ms.RequestedCAMEL_SubscriptionInfo", HFILL }},
20230     { &hf_gsm_map_ms_modifyCSI_State,
20231       { "modifyCSI-State", "gsm_map.ms.modifyCSI_State",
20232         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
20233         "gsm_map_ms.ModificationInstruction", HFILL }},
20234     { &hf_gsm_map_ms_modifyRegistrationStatus,
20235       { "modifyRegistrationStatus", "gsm_map.ms.modifyRegistrationStatus",
20236         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
20237         "gsm_map_ms.ModificationInstruction", HFILL }},
20238     { &hf_gsm_map_ms_forwardingInfoFor_CSE,
20239       { "forwardingInfoFor-CSE", "gsm_map.ms.forwardingInfoFor_CSE",
20240         FT_NONE, BASE_NONE, NULL, 0,
20241         "gsm_map_ms.Ext_ForwardingInfoFor_CSE", HFILL }},
20242     { &hf_gsm_map_ms_callBarringInfoFor_CSE,
20243       { "callBarringInfoFor-CSE", "gsm_map.ms.callBarringInfoFor_CSE",
20244         FT_NONE, BASE_NONE, NULL, 0,
20245         "gsm_map_ms.Ext_CallBarringInfoFor_CSE", HFILL }},
20246     { &hf_gsm_map_ms_allInformationSent,
20247       { "allInformationSent", "gsm_map.ms.allInformationSent",
20248         FT_NONE, BASE_NONE, NULL, 0,
20249         "gsm_map_ms.NULL", HFILL }},
20250     { &hf_gsm_map_ms_eventMet,
20251       { "eventMet", "gsm_map.ms.eventMet",
20252         FT_BYTES, BASE_HEX, NULL, 0,
20253         "gsm_map_ms.MM_Code", HFILL }},
20254     { &hf_gsm_map_ms_supportedCAMELPhases,
20255       { "supportedCAMELPhases", "gsm_map.ms.supportedCAMELPhases",
20256         FT_BYTES, BASE_HEX, NULL, 0,
20257         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20258     { &hf_gsm_map_ms_offeredCamel4Functionalities,
20259       { "offeredCamel4Functionalities", "gsm_map.ms.offeredCamel4Functionalities",
20260         FT_BYTES, BASE_HEX, NULL, 0,
20261         "gsm_map_ms.OfferedCamel4Functionalities", HFILL }},
20262     { &hf_gsm_map_ms_naea_PreferredCI,
20263       { "naea-PreferredCI", "gsm_map.ms.naea_PreferredCI",
20264         FT_NONE, BASE_NONE, NULL, 0,
20265         "gsm_map.NAEA_PreferredCI", HFILL }},
20266     { &hf_gsm_map_ms_gprsSubscriptionData,
20267       { "gprsSubscriptionData", "gsm_map.ms.gprsSubscriptionData",
20268         FT_NONE, BASE_NONE, NULL, 0,
20269         "gsm_map_ms.GPRSSubscriptionData", HFILL }},
20270     { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature,
20271       { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsupportedFeature",
20272         FT_NONE, BASE_NONE, NULL, 0,
20273         "gsm_map_ms.NULL", HFILL }},
20274     { &hf_gsm_map_ms_networkAccessMode,
20275       { "networkAccessMode", "gsm_map.ms.networkAccessMode",
20276         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NetworkAccessMode_vals), 0,
20277         "gsm_map_ms.NetworkAccessMode", HFILL }},
20278     { &hf_gsm_map_ms_lsaInformation,
20279       { "lsaInformation", "gsm_map.ms.lsaInformation",
20280         FT_NONE, BASE_NONE, NULL, 0,
20281         "gsm_map_ms.LSAInformation", HFILL }},
20282     { &hf_gsm_map_ms_lmu_Indicator,
20283       { "lmu-Indicator", "gsm_map.ms.lmu_Indicator",
20284         FT_NONE, BASE_NONE, NULL, 0,
20285         "gsm_map_ms.NULL", HFILL }},
20286     { &hf_gsm_map_ms_lcsInformation,
20287       { "lcsInformation", "gsm_map.ms.lcsInformation",
20288         FT_NONE, BASE_NONE, NULL, 0,
20289         "gsm_map_ms.LCSInformation", HFILL }},
20290     { &hf_gsm_map_ms_istAlertTimer,
20291       { "istAlertTimer", "gsm_map.ms.istAlertTimer",
20292         FT_UINT32, BASE_DEC, NULL, 0,
20293         "gsm_map_ms.IST_AlertTimerValue", HFILL }},
20294     { &hf_gsm_map_ms_superChargerSupportedInHLR,
20295       { "superChargerSupportedInHLR", "gsm_map.ms.superChargerSupportedInHLR",
20296         FT_BYTES, BASE_HEX, NULL, 0,
20297         "gsm_map_ms.AgeIndicator", HFILL }},
20298     { &hf_gsm_map_ms_mc_SS_Info,
20299       { "mc-SS-Info", "gsm_map.ms.mc_SS_Info",
20300         FT_NONE, BASE_NONE, NULL, 0,
20301         "gsm_map.MC_SS_Info", HFILL }},
20302     { &hf_gsm_map_ms_cs_AllocationRetentionPriority,
20303       { "cs-AllocationRetentionPriority", "gsm_map.ms.cs_AllocationRetentionPriority",
20304         FT_BYTES, BASE_HEX, NULL, 0,
20305         "gsm_map_ms.CS_AllocationRetentionPriority", HFILL }},
20306     { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo,
20307       { "sgsn-CAMEL-SubscriptionInfo", "gsm_map.ms.sgsn_CAMEL_SubscriptionInfo",
20308         FT_NONE, BASE_NONE, NULL, 0,
20309         "gsm_map_ms.SGSN_CAMEL_SubscriptionInfo", HFILL }},
20310     { &hf_gsm_map_ms_accessRestrictionData,
20311       { "accessRestrictionData", "gsm_map.ms.accessRestrictionData",
20312         FT_BYTES, BASE_HEX, NULL, 0,
20313         "gsm_map_ms.AccessRestrictionData", HFILL }},
20314     { &hf_gsm_map_ms_SupportedRAT_Types_utran,
20315       { "utran", "gsm_map.ms.utran",
20316         FT_BOOLEAN, 8, NULL, 0x80,
20317         "", HFILL }},
20318     { &hf_gsm_map_ms_SupportedRAT_Types_geran,
20319       { "geran", "gsm_map.ms.geran",
20320         FT_BOOLEAN, 8, NULL, 0x40,
20321         "", HFILL }},
20322     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1,
20323       { "lcsCapabilitySet1", "gsm_map.ms.lcsCapabilitySet1",
20324         FT_BOOLEAN, 8, NULL, 0x80,
20325         "", HFILL }},
20326     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2,
20327       { "lcsCapabilitySet2", "gsm_map.ms.lcsCapabilitySet2",
20328         FT_BOOLEAN, 8, NULL, 0x40,
20329         "", HFILL }},
20330     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3,
20331       { "lcsCapabilitySet3", "gsm_map.ms.lcsCapabilitySet3",
20332         FT_BOOLEAN, 8, NULL, 0x20,
20333         "", HFILL }},
20334     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4,
20335       { "lcsCapabilitySet4", "gsm_map.ms.lcsCapabilitySet4",
20336         FT_BOOLEAN, 8, NULL, 0x10,
20337         "", HFILL }},
20338     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5,
20339       { "lcsCapabilitySet5", "gsm_map.ms.lcsCapabilitySet5",
20340         FT_BOOLEAN, 8, NULL, 0x08,
20341         "", HFILL }},
20342     { &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus,
20343       { "equipmentStatus", "gsm_map.ms.equipmentStatus",
20344         FT_BOOLEAN, 8, NULL, 0x80,
20345         "", HFILL }},
20346     { &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef,
20347       { "bmuef", "gsm_map.ms.bmuef",
20348         FT_BOOLEAN, 8, NULL, 0x40,
20349         "", HFILL }},
20350     { &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed,
20351       { "utranNotAllowed", "gsm_map.ms.utranNotAllowed",
20352         FT_BOOLEAN, 8, NULL, 0x80,
20353         "", HFILL }},
20354     { &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed,
20355       { "geranNotAllowed", "gsm_map.ms.geranNotAllowed",
20356         FT_BOOLEAN, 8, NULL, 0x40,
20357         "", HFILL }},
20358     { &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred,
20359       { "allOG-CallsBarred", "gsm_map.ms.allOG-CallsBarred",
20360         FT_BOOLEAN, 8, NULL, 0x80,
20361         "", HFILL }},
20362     { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred,
20363       { "internationalOGCallsBarred", "gsm_map.ms.internationalOGCallsBarred",
20364         FT_BOOLEAN, 8, NULL, 0x40,
20365         "", HFILL }},
20366     { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred,
20367       { "internationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.internationalOGCallsNotToHPLMN-CountryBarred",
20368         FT_BOOLEAN, 8, NULL, 0x20,
20369         "", HFILL }},
20370     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred,
20371       { "interzonalOGCallsBarred", "gsm_map.ms.interzonalOGCallsBarred",
20372         FT_BOOLEAN, 8, NULL, 0x02,
20373         "", HFILL }},
20374     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred,
20375       { "interzonalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.interzonalOGCallsNotToHPLMN-CountryBarred",
20376         FT_BOOLEAN, 8, NULL, 0x01,
20377         "", HFILL }},
20378     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred,
20379       { "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred",
20380         FT_BOOLEAN, 8, NULL, 0x80,
20381         "", HFILL }},
20382     { &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred,
20383       { "premiumRateInformationOGCallsBarred", "gsm_map.ms.premiumRateInformationOGCallsBarred",
20384         FT_BOOLEAN, 8, NULL, 0x10,
20385         "", HFILL }},
20386     { &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred,
20387       { "premiumRateEntertainementOGCallsBarred", "gsm_map.ms.premiumRateEntertainementOGCallsBarred",
20388         FT_BOOLEAN, 8, NULL, 0x08,
20389         "", HFILL }},
20390     { &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred,
20391       { "ss-AccessBarred", "gsm_map.ms.ss-AccessBarred",
20392         FT_BOOLEAN, 8, NULL, 0x04,
20393         "", HFILL }},
20394     { &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred,
20395       { "allECT-Barred", "gsm_map.ms.allECT-Barred",
20396         FT_BOOLEAN, 8, NULL, 0x40,
20397         "", HFILL }},
20398     { &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred,
20399       { "chargeableECT-Barred", "gsm_map.ms.chargeableECT-Barred",
20400         FT_BOOLEAN, 8, NULL, 0x20,
20401         "", HFILL }},
20402     { &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred,
20403       { "internationalECT-Barred", "gsm_map.ms.internationalECT-Barred",
20404         FT_BOOLEAN, 8, NULL, 0x10,
20405         "", HFILL }},
20406     { &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred,
20407       { "interzonalECT-Barred", "gsm_map.ms.interzonalECT-Barred",
20408         FT_BOOLEAN, 8, NULL, 0x08,
20409         "", HFILL }},
20410     { &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred,
20411       { "doublyChargeableECT-Barred", "gsm_map.ms.doublyChargeableECT-Barred",
20412         FT_BOOLEAN, 8, NULL, 0x04,
20413         "", HFILL }},
20414     { &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred,
20415       { "multipleECT-Barred", "gsm_map.ms.multipleECT-Barred",
20416         FT_BOOLEAN, 8, NULL, 0x02,
20417         "", HFILL }},
20418     { &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred,
20419       { "allPacketOrientedServicesBarred", "gsm_map.ms.allPacketOrientedServicesBarred",
20420         FT_BOOLEAN, 8, NULL, 0x01,
20421         "", HFILL }},
20422     { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred,
20423       { "roamerAccessToHPLMN-AP-Barred", "gsm_map.ms.roamerAccessToHPLMN-AP-Barred",
20424         FT_BOOLEAN, 8, NULL, 0x80,
20425         "", HFILL }},
20426     { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred,
20427       { "roamerAccessToVPLMN-AP-Barred", "gsm_map.ms.roamerAccessToVPLMN-AP-Barred",
20428         FT_BOOLEAN, 8, NULL, 0x40,
20429         "", HFILL }},
20430     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred,
20431       { "roamingOutsidePLMNOG-CallsBarred", "gsm_map.ms.roamingOutsidePLMNOG-CallsBarred",
20432         FT_BOOLEAN, 8, NULL, 0x20,
20433         "", HFILL }},
20434     { &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred,
20435       { "allIC-CallsBarred", "gsm_map.ms.allIC-CallsBarred",
20436         FT_BOOLEAN, 8, NULL, 0x10,
20437         "", HFILL }},
20438     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred,
20439       { "roamingOutsidePLMNIC-CallsBarred", "gsm_map.ms.roamingOutsidePLMNIC-CallsBarred",
20440         FT_BOOLEAN, 8, NULL, 0x08,
20441         "", HFILL }},
20442     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred,
20443       { "roamingOutsidePLMNICountryIC-CallsBarred", "gsm_map.ms.roamingOutsidePLMNICountryIC-CallsBarred",
20444         FT_BOOLEAN, 8, NULL, 0x04,
20445         "", HFILL }},
20446     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred,
20447       { "roamingOutsidePLMN-Barred", "gsm_map.ms.roamingOutsidePLMN-Barred",
20448         FT_BOOLEAN, 8, NULL, 0x02,
20449         "", HFILL }},
20450     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred,
20451       { "roamingOutsidePLMN-CountryBarred", "gsm_map.ms.roamingOutsidePLMN-CountryBarred",
20452         FT_BOOLEAN, 8, NULL, 0x01,
20453         "", HFILL }},
20454     { &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred,
20455       { "registrationAllCF-Barred", "gsm_map.ms.registrationAllCF-Barred",
20456         FT_BOOLEAN, 8, NULL, 0x80,
20457         "", HFILL }},
20458     { &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred,
20459       { "registrationCFNotToHPLMN-Barred", "gsm_map.ms.registrationCFNotToHPLMN-Barred",
20460         FT_BOOLEAN, 8, NULL, 0x40,
20461         "", HFILL }},
20462     { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred,
20463       { "registrationInterzonalCF-Barred", "gsm_map.ms.registrationInterzonalCF-Barred",
20464         FT_BOOLEAN, 8, NULL, 0x20,
20465         "", HFILL }},
20466     { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred,
20467       { "registrationInterzonalCFNotToHPLMN-Barred", "gsm_map.ms.registrationInterzonalCFNotToHPLMN-Barred",
20468         FT_BOOLEAN, 8, NULL, 0x10,
20469         "", HFILL }},
20470     { &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred,
20471       { "registrationInternationalCF-Barred", "gsm_map.ms.registrationInternationalCF-Barred",
20472         FT_BOOLEAN, 8, NULL, 0x08,
20473         "", HFILL }},
20474     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1,
20475       { "plmn-SpecificBarringType1", "gsm_map.ms.plmn-SpecificBarringType1",
20476         FT_BOOLEAN, 8, NULL, 0x80,
20477         "", HFILL }},
20478     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2,
20479       { "plmn-SpecificBarringType2", "gsm_map.ms.plmn-SpecificBarringType2",
20480         FT_BOOLEAN, 8, NULL, 0x40,
20481         "", HFILL }},
20482     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3,
20483       { "plmn-SpecificBarringType3", "gsm_map.ms.plmn-SpecificBarringType3",
20484         FT_BOOLEAN, 8, NULL, 0x20,
20485         "", HFILL }},
20486     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4,
20487       { "plmn-SpecificBarringType4", "gsm_map.ms.plmn-SpecificBarringType4",
20488         FT_BOOLEAN, 8, NULL, 0x10,
20489         "", HFILL }},
20490     { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi,
20491       { "o-csi", "gsm_map.ms.o-csi",
20492         FT_BOOLEAN, 8, NULL, 0x80,
20493         "", HFILL }},
20494     { &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi,
20495       { "ss-csi", "gsm_map.ms.ss-csi",
20496         FT_BOOLEAN, 8, NULL, 0x40,
20497         "", HFILL }},
20498     { &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi,
20499       { "tif-csi", "gsm_map.ms.tif-csi",
20500         FT_BOOLEAN, 8, NULL, 0x20,
20501         "", HFILL }},
20502     { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi,
20503       { "d-csi", "gsm_map.ms.d-csi",
20504         FT_BOOLEAN, 8, NULL, 0x10,
20505         "", HFILL }},
20506     { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi,
20507       { "vt-csi", "gsm_map.ms.vt-csi",
20508         FT_BOOLEAN, 8, NULL, 0x08,
20509         "", HFILL }},
20510     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi,
20511       { "mo-sms-csi", "gsm_map.ms.mo-sms-csi",
20512         FT_BOOLEAN, 8, NULL, 0x04,
20513         "", HFILL }},
20514     { &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi,
20515       { "m-csi", "gsm_map.ms.m-csi",
20516         FT_BOOLEAN, 8, NULL, 0x02,
20517         "", HFILL }},
20518     { &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi,
20519       { "gprs-csi", "gsm_map.ms.gprs-csi",
20520         FT_BOOLEAN, 8, NULL, 0x01,
20521         "", HFILL }},
20522     { &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi,
20523       { "t-csi", "gsm_map.ms.t-csi",
20524         FT_BOOLEAN, 8, NULL, 0x80,
20525         "", HFILL }},
20526     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi,
20527       { "mt-sms-csi", "gsm_map.ms.mt-sms-csi",
20528         FT_BOOLEAN, 8, NULL, 0x40,
20529         "", HFILL }},
20530     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi,
20531       { "mg-csi", "gsm_map.ms.mg-csi",
20532         FT_BOOLEAN, 8, NULL, 0x20,
20533         "", HFILL }},
20534     { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI,
20535       { "o-IM-CSI", "gsm_map.ms.o-IM-CSI",
20536         FT_BOOLEAN, 8, NULL, 0x10,
20537         "", HFILL }},
20538     { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI,
20539       { "d-IM-CSI", "gsm_map.ms.d-IM-CSI",
20540         FT_BOOLEAN, 8, NULL, 0x08,
20541         "", HFILL }},
20542     { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI,
20543       { "vt-IM-CSI", "gsm_map.ms.vt-IM-CSI",
20544         FT_BOOLEAN, 8, NULL, 0x04,
20545         "", HFILL }},
20546     { &hf_gsm_map_ms_SupportedCamelPhases_phase1,
20547       { "phase1", "gsm_map.ms.phase1",
20548         FT_BOOLEAN, 8, NULL, 0x80,
20549         "", HFILL }},
20550     { &hf_gsm_map_ms_SupportedCamelPhases_phase2,
20551       { "phase2", "gsm_map.ms.phase2",
20552         FT_BOOLEAN, 8, NULL, 0x40,
20553         "", HFILL }},
20554     { &hf_gsm_map_ms_SupportedCamelPhases_phase3,
20555       { "phase3", "gsm_map.ms.phase3",
20556         FT_BOOLEAN, 8, NULL, 0x20,
20557         "", HFILL }},
20558     { &hf_gsm_map_ms_SupportedCamelPhases_phase4,
20559       { "phase4", "gsm_map.ms.phase4",
20560         FT_BOOLEAN, 8, NULL, 0x10,
20561         "", HFILL }},
20562     { &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi,
20563       { "o-csi", "gsm_map.ms.o-csi",
20564         FT_BOOLEAN, 8, NULL, 0x80,
20565         "", HFILL }},
20566     { &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi,
20567       { "d-csi", "gsm_map.ms.d-csi",
20568         FT_BOOLEAN, 8, NULL, 0x40,
20569         "", HFILL }},
20570     { &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi,
20571       { "vt-csi", "gsm_map.ms.vt-csi",
20572         FT_BOOLEAN, 8, NULL, 0x20,
20573         "", HFILL }},
20574     { &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi,
20575       { "t-csi", "gsm_map.ms.t-csi",
20576         FT_BOOLEAN, 8, NULL, 0x10,
20577         "", HFILL }},
20578     { &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi,
20579       { "mt-sms-csi", "gsm_map.ms.mt-sms-csi",
20580         FT_BOOLEAN, 8, NULL, 0x08,
20581         "", HFILL }},
20582     { &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi,
20583       { "mg-csi", "gsm_map.ms.mg-csi",
20584         FT_BOOLEAN, 8, NULL, 0x04,
20585         "", HFILL }},
20586     { &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements,
20587       { "psi-enhancements", "gsm_map.ms.psi-enhancements",
20588         FT_BOOLEAN, 8, NULL, 0x02,
20589         "", HFILL }},
20590     { &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt,
20591       { "initiateCallAttempt", "gsm_map.ms.initiateCallAttempt",
20592         FT_BOOLEAN, 8, NULL, 0x80,
20593         "", HFILL }},
20594     { &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg,
20595       { "splitLeg", "gsm_map.ms.splitLeg",
20596         FT_BOOLEAN, 8, NULL, 0x40,
20597         "", HFILL }},
20598     { &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg,
20599       { "moveLeg", "gsm_map.ms.moveLeg",
20600         FT_BOOLEAN, 8, NULL, 0x20,
20601         "", HFILL }},
20602     { &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg,
20603       { "disconnectLeg", "gsm_map.ms.disconnectLeg",
20604         FT_BOOLEAN, 8, NULL, 0x10,
20605         "", HFILL }},
20606     { &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased,
20607       { "entityReleased", "gsm_map.ms.entityReleased",
20608         FT_BOOLEAN, 8, NULL, 0x08,
20609         "", HFILL }},
20610     { &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument,
20611       { "dfc-WithArgument", "gsm_map.ms.dfc-WithArgument",
20612         FT_BOOLEAN, 8, NULL, 0x04,
20613         "", HFILL }},
20614     { &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone,
20615       { "playTone", "gsm_map.ms.playTone",
20616         FT_BOOLEAN, 8, NULL, 0x02,
20617         "", HFILL }},
20618     { &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall,
20619       { "dtmf-MidCall", "gsm_map.ms.dtmf-MidCall",
20620         FT_BOOLEAN, 8, NULL, 0x01,
20621         "", HFILL }},
20622     { &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator,
20623       { "chargingIndicator", "gsm_map.ms.chargingIndicator",
20624         FT_BOOLEAN, 8, NULL, 0x80,
20625         "", HFILL }},
20626     { &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP,
20627       { "alertingDP", "gsm_map.ms.alertingDP",
20628         FT_BOOLEAN, 8, NULL, 0x40,
20629         "", HFILL }},
20630     { &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting,
20631       { "locationAtAlerting", "gsm_map.ms.locationAtAlerting",
20632         FT_BOOLEAN, 8, NULL, 0x20,
20633         "", HFILL }},
20634     { &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP,
20635       { "changeOfPositionDP", "gsm_map.ms.changeOfPositionDP",
20636         FT_BOOLEAN, 8, NULL, 0x10,
20637         "", HFILL }},
20638     { &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions,
20639       { "or-Interactions", "gsm_map.ms.or-Interactions",
20640         FT_BOOLEAN, 8, NULL, 0x08,
20641         "", HFILL }},
20642     { &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements,
20643       { "warningToneEnhancements", "gsm_map.ms.warningToneEnhancements",
20644         FT_BOOLEAN, 8, NULL, 0x04,
20645         "", HFILL }},
20646     { &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements,
20647       { "cf-Enhancements", "gsm_map.ms.cf-Enhancements",
20648         FT_BOOLEAN, 8, NULL, 0x02,
20649         "", HFILL }},
20650     { &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices,
20651       { "subscribedEnhancedDialledServices", "gsm_map.ms.subscribedEnhancedDialledServices",
20652         FT_BOOLEAN, 8, NULL, 0x01,
20653         "", HFILL }},
20654     { &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices,
20655       { "servingNetworkEnhancedDialledServices", "gsm_map.ms.servingNetworkEnhancedDialledServices",
20656         FT_BOOLEAN, 8, NULL, 0x80,
20657         "", HFILL }},
20658     { &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP,
20659       { "criteriaForChangeOfPositionDP", "gsm_map.ms.criteriaForChangeOfPositionDP",
20660         FT_BOOLEAN, 8, NULL, 0x40,
20661         "", HFILL }},
20662     { &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP,
20663       { "serviceChangeDP", "gsm_map.ms.serviceChangeDP",
20664         FT_BOOLEAN, 8, NULL, 0x20,
20665         "", HFILL }},
20666     { &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation,
20667       { "collectInformation", "gsm_map.ms.collectInformation",
20668         FT_BOOLEAN, 8, NULL, 0x10,
20669         "", HFILL }},
20670     { &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest,
20671       { "privilegedUplinkRequest", "gsm_map.ms.privilegedUplinkRequest",
20672         FT_BOOLEAN, 8, NULL, 0x80,
20673         "", HFILL }},
20674     { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest,
20675       { "emergencyUplinkRequest", "gsm_map.ms.emergencyUplinkRequest",
20676         FT_BOOLEAN, 8, NULL, 0x40,
20677         "", HFILL }},
20678     { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset,
20679       { "emergencyReset", "gsm_map.ms.emergencyReset",
20680         FT_BOOLEAN, 8, NULL, 0x20,
20681         "", HFILL }},
20682
20683 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
20684
20685     { &hf_gsm_map_ch_cug_Interlock,
20686       { "cug-Interlock", "gsm_map.ch.cug_Interlock",
20687         FT_BYTES, BASE_HEX, NULL, 0,
20688         "gsm_map_ms.CUG_Interlock", HFILL }},
20689     { &hf_gsm_map_ch_cug_OutgoingAccess,
20690       { "cug-OutgoingAccess", "gsm_map.ch.cug_OutgoingAccess",
20691         FT_NONE, BASE_NONE, NULL, 0,
20692         "gsm_map_ch.NULL", HFILL }},
20693     { &hf_gsm_map_ch_extensionContainer,
20694       { "extensionContainer", "gsm_map.ch.extensionContainer",
20695         FT_NONE, BASE_NONE, NULL, 0,
20696         "gsm_map.ExtensionContainer", HFILL }},
20697     { &hf_gsm_map_ch_msisdn,
20698       { "msisdn", "gsm_map.ch.msisdn",
20699         FT_BYTES, BASE_HEX, NULL, 0,
20700         "gsm_map.ISDN_AddressString", HFILL }},
20701     { &hf_gsm_map_ch_cug_CheckInfo,
20702       { "cug-CheckInfo", "gsm_map.ch.cug_CheckInfo",
20703         FT_NONE, BASE_NONE, NULL, 0,
20704         "gsm_map_ch.CUG_CheckInfo", HFILL }},
20705     { &hf_gsm_map_ch_numberOfForwarding,
20706       { "numberOfForwarding", "gsm_map.ch.numberOfForwarding",
20707         FT_UINT32, BASE_DEC, NULL, 0,
20708         "gsm_map_ch.NumberOfForwarding", HFILL }},
20709     { &hf_gsm_map_ch_interrogationType,
20710       { "interrogationType", "gsm_map.ch.interrogationType",
20711         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_InterrogationType_vals), 0,
20712         "gsm_map_ch.InterrogationType", HFILL }},
20713     { &hf_gsm_map_ch_or_Interrogation,
20714       { "or-Interrogation", "gsm_map.ch.or_Interrogation",
20715         FT_NONE, BASE_NONE, NULL, 0,
20716         "gsm_map_ch.NULL", HFILL }},
20717     { &hf_gsm_map_ch_or_Capability,
20718       { "or-Capability", "gsm_map.ch.or_Capability",
20719         FT_UINT32, BASE_DEC, NULL, 0,
20720         "gsm_map_ch.OR_Phase", HFILL }},
20721     { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address,
20722       { "gmsc-OrGsmSCF-Address", "gsm_map.ch.gmsc_OrGsmSCF_Address",
20723         FT_BYTES, BASE_HEX, NULL, 0,
20724         "gsm_map.ISDN_AddressString", HFILL }},
20725     { &hf_gsm_map_ch_callReferenceNumber,
20726       { "callReferenceNumber", "gsm_map.ch.callReferenceNumber",
20727         FT_BYTES, BASE_HEX, NULL, 0,
20728         "gsm_map_ch.CallReferenceNumber", HFILL }},
20729     { &hf_gsm_map_ch_forwardingReason,
20730       { "forwardingReason", "gsm_map.ch.forwardingReason",
20731         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ForwardingReason_vals), 0,
20732         "gsm_map_ch.ForwardingReason", HFILL }},
20733     { &hf_gsm_map_ch_basicServiceGroup,
20734       { "basicServiceGroup", "gsm_map.ch.basicServiceGroup",
20735         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20736         "gsm_map.Ext_BasicServiceCode", HFILL }},
20737     { &hf_gsm_map_ch_networkSignalInfo,
20738       { "networkSignalInfo", "gsm_map.ch.networkSignalInfo",
20739         FT_NONE, BASE_NONE, NULL, 0,
20740         "gsm_map.ExternalSignalInfo", HFILL }},
20741     { &hf_gsm_map_ch_camelInfo,
20742       { "camelInfo", "gsm_map.ch.camelInfo",
20743         FT_NONE, BASE_NONE, NULL, 0,
20744         "gsm_map_ch.CamelInfo", HFILL }},
20745     { &hf_gsm_map_ch_suppressionOfAnnouncement,
20746       { "suppressionOfAnnouncement", "gsm_map.ch.suppressionOfAnnouncement",
20747         FT_NONE, BASE_NONE, NULL, 0,
20748         "gsm_map_ch.SuppressionOfAnnouncement", HFILL }},
20749     { &hf_gsm_map_ch_alertingPattern,
20750       { "alertingPattern", "gsm_map.ch.alertingPattern",
20751         FT_BYTES, BASE_HEX, NULL, 0,
20752         "gsm_map.AlertingPattern", HFILL }},
20753     { &hf_gsm_map_ch_ccbs_Call,
20754       { "ccbs-Call", "gsm_map.ch.ccbs_Call",
20755         FT_NONE, BASE_NONE, NULL, 0,
20756         "gsm_map_ch.NULL", HFILL }},
20757     { &hf_gsm_map_ch_supportedCCBS_Phase,
20758       { "supportedCCBS-Phase", "gsm_map.ch.supportedCCBS_Phase",
20759         FT_UINT32, BASE_DEC, NULL, 0,
20760         "gsm_map_ch.SupportedCCBS_Phase", HFILL }},
20761     { &hf_gsm_map_ch_additionalSignalInfo,
20762       { "additionalSignalInfo", "gsm_map.ch.additionalSignalInfo",
20763         FT_NONE, BASE_NONE, NULL, 0,
20764         "gsm_map.Ext_ExternalSignalInfo", HFILL }},
20765     { &hf_gsm_map_ch_istSupportIndicator,
20766       { "istSupportIndicator", "gsm_map.ch.istSupportIndicator",
20767         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
20768         "gsm_map_ms.IST_SupportIndicator", HFILL }},
20769     { &hf_gsm_map_ch_pre_pagingSupported,
20770       { "pre-pagingSupported", "gsm_map.ch.pre_pagingSupported",
20771         FT_NONE, BASE_NONE, NULL, 0,
20772         "gsm_map_ch.NULL", HFILL }},
20773     { &hf_gsm_map_ch_callDiversionTreatmentIndicator,
20774       { "callDiversionTreatmentIndicator", "gsm_map.ch.callDiversionTreatmentIndicator",
20775         FT_BYTES, BASE_HEX, NULL, 0,
20776         "gsm_map_ch.CallDiversionTreatmentIndicator", HFILL }},
20777     { &hf_gsm_map_ch_longFTN_Supported,
20778       { "longFTN-Supported", "gsm_map.ch.longFTN_Supported",
20779         FT_NONE, BASE_NONE, NULL, 0,
20780         "gsm_map_ch.NULL", HFILL }},
20781     { &hf_gsm_map_ch_suppress_VT_CSI,
20782       { "suppress-VT-CSI", "gsm_map.ch.suppress_VT_CSI",
20783         FT_NONE, BASE_NONE, NULL, 0,
20784         "gsm_map_ch.NULL", HFILL }},
20785     { &hf_gsm_map_ch_suppressIncomingCallBarring,
20786       { "suppressIncomingCallBarring", "gsm_map.ch.suppressIncomingCallBarring",
20787         FT_NONE, BASE_NONE, NULL, 0,
20788         "gsm_map_ch.NULL", HFILL }},
20789     { &hf_gsm_map_ch_gsmSCF_InitiatedCall,
20790       { "gsmSCF-InitiatedCall", "gsm_map.ch.gsmSCF_InitiatedCall",
20791         FT_NONE, BASE_NONE, NULL, 0,
20792         "gsm_map_ch.NULL", HFILL }},
20793     { &hf_gsm_map_ch_basicServiceGroup2,
20794       { "basicServiceGroup2", "gsm_map.ch.basicServiceGroup2",
20795         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20796         "gsm_map.Ext_BasicServiceCode", HFILL }},
20797     { &hf_gsm_map_ch_networkSignalInfo2,
20798       { "networkSignalInfo2", "gsm_map.ch.networkSignalInfo2",
20799         FT_NONE, BASE_NONE, NULL, 0,
20800         "gsm_map.ExternalSignalInfo", HFILL }},
20801     { &hf_gsm_map_ch_suppressMTSS,
20802       { "suppressMTSS", "gsm_map.ch.suppressMTSS",
20803         FT_BYTES, BASE_HEX, NULL, 0,
20804         "gsm_map_ch.SuppressMTSS", HFILL }},
20805     { &hf_gsm_map_ch_mtRoamingRetrySupported,
20806       { "mtRoamingRetrySupported", "gsm_map.ch.mtRoamingRetrySupported",
20807         FT_NONE, BASE_NONE, NULL, 0,
20808         "gsm_map_ch.NULL", HFILL }},
20809     { &hf_gsm_map_ch_imsi,
20810       { "imsi", "gsm_map.ch.imsi",
20811         FT_BYTES, BASE_HEX, NULL, 0,
20812         "gsm_map.IMSI", HFILL }},
20813     { &hf_gsm_map_ch_extendedRoutingInfo,
20814       { "extendedRoutingInfo", "gsm_map.ch.extendedRoutingInfo",
20815         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ExtendedRoutingInfo_vals), 0,
20816         "gsm_map_ch.ExtendedRoutingInfo", HFILL }},
20817     { &hf_gsm_map_ch_cugSubscriptionFlag,
20818       { "cugSubscriptionFlag", "gsm_map.ch.cugSubscriptionFlag",
20819         FT_NONE, BASE_NONE, NULL, 0,
20820         "gsm_map_ch.NULL", HFILL }},
20821     { &hf_gsm_map_ch_subscriberInfo,
20822       { "subscriberInfo", "gsm_map.ch.subscriberInfo",
20823         FT_NONE, BASE_NONE, NULL, 0,
20824         "gsm_map_ms.SubscriberInfo", HFILL }},
20825     { &hf_gsm_map_ch_ss_List,
20826       { "ss-List", "gsm_map.ch.ss_List",
20827         FT_UINT32, BASE_DEC, NULL, 0,
20828         "gsm_map_ss.SS_List", HFILL }},
20829     { &hf_gsm_map_ch_basicService,
20830       { "basicService", "gsm_map.ch.basicService",
20831         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20832         "gsm_map.Ext_BasicServiceCode", HFILL }},
20833     { &hf_gsm_map_ch_forwardingInterrogationRequired,
20834       { "forwardingInterrogationRequired", "gsm_map.ch.forwardingInterrogationRequired",
20835         FT_NONE, BASE_NONE, NULL, 0,
20836         "gsm_map_ch.NULL", HFILL }},
20837     { &hf_gsm_map_ch_vmsc_Address,
20838       { "vmsc-Address", "gsm_map.ch.vmsc_Address",
20839         FT_BYTES, BASE_HEX, NULL, 0,
20840         "gsm_map.ISDN_AddressString", HFILL }},
20841     { &hf_gsm_map_ch_naea_PreferredCI,
20842       { "naea-PreferredCI", "gsm_map.ch.naea_PreferredCI",
20843         FT_NONE, BASE_NONE, NULL, 0,
20844         "gsm_map.NAEA_PreferredCI", HFILL }},
20845     { &hf_gsm_map_ch_ccbs_Indicators,
20846       { "ccbs-Indicators", "gsm_map.ch.ccbs_Indicators",
20847         FT_NONE, BASE_NONE, NULL, 0,
20848         "gsm_map_ch.CCBS_Indicators", HFILL }},
20849     { &hf_gsm_map_ch_numberPortabilityStatus,
20850       { "numberPortabilityStatus", "gsm_map.ch.numberPortabilityStatus",
20851         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
20852         "gsm_map_ms.NumberPortabilityStatus", HFILL }},
20853     { &hf_gsm_map_ch_istAlertTimer,
20854       { "istAlertTimer", "gsm_map.ch.istAlertTimer",
20855         FT_UINT32, BASE_DEC, NULL, 0,
20856         "gsm_map_ms.IST_AlertTimerValue", HFILL }},
20857     { &hf_gsm_map_ch_supportedCamelPhasesInVMSC,
20858       { "supportedCamelPhasesInVMSC", "gsm_map.ch.supportedCamelPhasesInVMSC",
20859         FT_BYTES, BASE_HEX, NULL, 0,
20860         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20861     { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC,
20862       { "offeredCamel4CSIsInVMSC", "gsm_map.ch.offeredCamel4CSIsInVMSC",
20863         FT_BYTES, BASE_HEX, NULL, 0,
20864         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20865     { &hf_gsm_map_ch_routingInfo2,
20866       { "routingInfo2", "gsm_map.ch.routingInfo2",
20867         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
20868         "gsm_map_ch.RoutingInfo", HFILL }},
20869     { &hf_gsm_map_ch_ss_List2,
20870       { "ss-List2", "gsm_map.ch.ss_List2",
20871         FT_UINT32, BASE_DEC, NULL, 0,
20872         "gsm_map_ss.SS_List", HFILL }},
20873     { &hf_gsm_map_ch_basicService2,
20874       { "basicService2", "gsm_map.ch.basicService2",
20875         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20876         "gsm_map.Ext_BasicServiceCode", HFILL }},
20877     { &hf_gsm_map_ch_allowedServices,
20878       { "allowedServices", "gsm_map.ch.allowedServices",
20879         FT_BYTES, BASE_HEX, NULL, 0,
20880         "gsm_map_ch.AllowedServices", HFILL }},
20881     { &hf_gsm_map_ch_unavailabilityCause,
20882       { "unavailabilityCause", "gsm_map.ch.unavailabilityCause",
20883         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_UnavailabilityCause_vals), 0,
20884         "gsm_map_ch.UnavailabilityCause", HFILL }},
20885     { &hf_gsm_map_ch_releaseResourcesSupported,
20886       { "releaseResourcesSupported", "gsm_map.ch.releaseResourcesSupported",
20887         FT_NONE, BASE_NONE, NULL, 0,
20888         "gsm_map_ch.NULL", HFILL }},
20889     { &hf_gsm_map_ch_gsm_BearerCapability,
20890       { "gsm-BearerCapability", "gsm_map.ch.gsm_BearerCapability",
20891         FT_NONE, BASE_NONE, NULL, 0,
20892         "gsm_map.ExternalSignalInfo", HFILL }},
20893     { &hf_gsm_map_ch_ccbs_Possible,
20894       { "ccbs-Possible", "gsm_map.ch.ccbs_Possible",
20895         FT_NONE, BASE_NONE, NULL, 0,
20896         "gsm_map_ch.NULL", HFILL }},
20897     { &hf_gsm_map_ch_keepCCBS_CallIndicator,
20898       { "keepCCBS-CallIndicator", "gsm_map.ch.keepCCBS_CallIndicator",
20899         FT_NONE, BASE_NONE, NULL, 0,
20900         "gsm_map_ch.NULL", HFILL }},
20901     { &hf_gsm_map_ch_roamingNumber,
20902       { "roamingNumber", "gsm_map.ch.roamingNumber",
20903         FT_BYTES, BASE_HEX, NULL, 0,
20904         "gsm_map.ISDN_AddressString", HFILL }},
20905     { &hf_gsm_map_ch_forwardingData,
20906       { "forwardingData", "gsm_map.ch.forwardingData",
20907         FT_NONE, BASE_NONE, NULL, 0,
20908         "gsm_map_ch.ForwardingData", HFILL }},
20909     { &hf_gsm_map_ch_forwardedToNumber,
20910       { "forwardedToNumber", "gsm_map.ch.forwardedToNumber",
20911         FT_BYTES, BASE_HEX, NULL, 0,
20912         "gsm_map.ISDN_AddressString", HFILL }},
20913     { &hf_gsm_map_ch_forwardedToSubaddress,
20914       { "forwardedToSubaddress", "gsm_map.ch.forwardedToSubaddress",
20915         FT_BYTES, BASE_HEX, NULL, 0,
20916         "gsm_map.ISDN_SubaddressString", HFILL }},
20917     { &hf_gsm_map_ch_forwardingOptions,
20918       { "forwardingOptions", "gsm_map.ch.forwardingOptions",
20919         FT_BYTES, BASE_HEX, NULL, 0,
20920         "gsm_map_ss.ForwardingOptions", HFILL }},
20921     { &hf_gsm_map_ch_longForwardedToNumber,
20922       { "longForwardedToNumber", "gsm_map.ch.longForwardedToNumber",
20923         FT_BYTES, BASE_HEX, NULL, 0,
20924         "gsm_map.FTN_AddressString", HFILL }},
20925     { &hf_gsm_map_ch_msc_Number,
20926       { "msc-Number", "gsm_map.ch.msc_Number",
20927         FT_BYTES, BASE_HEX, NULL, 0,
20928         "gsm_map.ISDN_AddressString", HFILL }},
20929     { &hf_gsm_map_ch_lmsi,
20930       { "lmsi", "gsm_map.ch.lmsi",
20931         FT_BYTES, BASE_HEX, NULL, 0,
20932         "gsm_map.LMSI", HFILL }},
20933     { &hf_gsm_map_ch_gmsc_Address,
20934       { "gmsc-Address", "gsm_map.ch.gmsc_Address",
20935         FT_BYTES, BASE_HEX, NULL, 0,
20936         "gsm_map.ISDN_AddressString", HFILL }},
20937     { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode,
20938       { "supportedCamelPhasesInInterrogatingNode", "gsm_map.ch.supportedCamelPhasesInInterrogatingNode",
20939         FT_BYTES, BASE_HEX, NULL, 0,
20940         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20941     { &hf_gsm_map_ch_orNotSupportedInGMSC,
20942       { "orNotSupportedInGMSC", "gsm_map.ch.orNotSupportedInGMSC",
20943         FT_NONE, BASE_NONE, NULL, 0,
20944         "gsm_map_ch.NULL", HFILL }},
20945     { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode,
20946       { "offeredCamel4CSIsInInterrogatingNode", "gsm_map.ch.offeredCamel4CSIsInInterrogatingNode",
20947         FT_BYTES, BASE_HEX, NULL, 0,
20948         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20949     { &hf_gsm_map_ch_o_CSI,
20950       { "o-CSI", "gsm_map.ch.o_CSI",
20951         FT_NONE, BASE_NONE, NULL, 0,
20952         "gsm_map_ms.O_CSI", HFILL }},
20953     { &hf_gsm_map_ch_uu_Data,
20954       { "uu-Data", "gsm_map.ch.uu_Data",
20955         FT_NONE, BASE_NONE, NULL, 0,
20956         "gsm_map_ch.UU_Data", HFILL }},
20957     { &hf_gsm_map_ch_allInformationSent,
20958       { "allInformationSent", "gsm_map.ch.allInformationSent",
20959         FT_NONE, BASE_NONE, NULL, 0,
20960         "gsm_map_ch.NULL", HFILL }},
20961     { &hf_gsm_map_ch_d_csi,
20962       { "d-csi", "gsm_map.ch.d_csi",
20963         FT_NONE, BASE_NONE, NULL, 0,
20964         "gsm_map_ms.D_CSI", HFILL }},
20965     { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList,
20966       { "o-BcsmCamelTDPCriteriaList", "gsm_map.ch.o_BcsmCamelTDPCriteriaList",
20967         FT_UINT32, BASE_DEC, NULL, 0,
20968         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
20969     { &hf_gsm_map_ch_mtRoamingRetry,
20970       { "mtRoamingRetry", "gsm_map.ch.mtRoamingRetry",
20971         FT_NONE, BASE_NONE, NULL, 0,
20972         "gsm_map_ch.NULL", HFILL }},
20973     { &hf_gsm_map_ch_uuIndicator,
20974       { "uuIndicator", "gsm_map.ch.uuIndicator",
20975         FT_BYTES, BASE_HEX, NULL, 0,
20976         "gsm_map_ch.UUIndicator", HFILL }},
20977     { &hf_gsm_map_ch_uui,
20978       { "uui", "gsm_map.ch.uui",
20979         FT_BYTES, BASE_HEX, NULL, 0,
20980         "gsm_map_ch.UUI", HFILL }},
20981     { &hf_gsm_map_ch_uusCFInteraction,
20982       { "uusCFInteraction", "gsm_map.ch.uusCFInteraction",
20983         FT_NONE, BASE_NONE, NULL, 0,
20984         "gsm_map_ch.NULL", HFILL }},
20985     { &hf_gsm_map_ch_supportedCamelPhases,
20986       { "supportedCamelPhases", "gsm_map.ch.supportedCamelPhases",
20987         FT_BYTES, BASE_HEX, NULL, 0,
20988         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20989     { &hf_gsm_map_ch_suppress_T_CSI,
20990       { "suppress-T-CSI", "gsm_map.ch.suppress_T_CSI",
20991         FT_NONE, BASE_NONE, NULL, 0,
20992         "gsm_map_ch.NULL", HFILL }},
20993     { &hf_gsm_map_ch_offeredCamel4CSIs,
20994       { "offeredCamel4CSIs", "gsm_map.ch.offeredCamel4CSIs",
20995         FT_BYTES, BASE_HEX, NULL, 0,
20996         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20997     { &hf_gsm_map_ch_routingInfo,
20998       { "routingInfo", "gsm_map.ch.routingInfo",
20999         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
21000         "gsm_map_ch.RoutingInfo", HFILL }},
21001     { &hf_gsm_map_ch_camelRoutingInfo,
21002       { "camelRoutingInfo", "gsm_map.ch.camelRoutingInfo",
21003         FT_NONE, BASE_NONE, NULL, 0,
21004         "gsm_map_ch.CamelRoutingInfo", HFILL }},
21005     { &hf_gsm_map_ch_gmscCamelSubscriptionInfo,
21006       { "gmscCamelSubscriptionInfo", "gsm_map.ch.gmscCamelSubscriptionInfo",
21007         FT_NONE, BASE_NONE, NULL, 0,
21008         "gsm_map_ch.GmscCamelSubscriptionInfo", HFILL }},
21009     { &hf_gsm_map_ch_t_CSI,
21010       { "t-CSI", "gsm_map.ch.t_CSI",
21011         FT_NONE, BASE_NONE, NULL, 0,
21012         "gsm_map_ms.T_CSI", HFILL }},
21013     { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList,
21014       { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ch.o_BcsmCamelTDP_CriteriaList",
21015         FT_UINT32, BASE_DEC, NULL, 0,
21016         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
21017     { &hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList,
21018       { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ch.t_BCSM_CAMEL_TDP_CriteriaList",
21019         FT_UINT32, BASE_DEC, NULL, 0,
21020         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
21021     { &hf_gsm_map_ch_ccbs_Monitoring,
21022       { "ccbs-Monitoring", "gsm_map.ch.ccbs_Monitoring",
21023         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ReportingState_vals), 0,
21024         "gsm_map_ch.ReportingState", HFILL }},
21025     { &hf_gsm_map_ch_ccbs_SubscriberStatus,
21026       { "ccbs-SubscriberStatus", "gsm_map.ch.ccbs_SubscriberStatus",
21027         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CCBS_SubscriberStatus_vals), 0,
21028         "gsm_map_ch.CCBS_SubscriberStatus", HFILL }},
21029     { &hf_gsm_map_ch_eventReportData,
21030       { "eventReportData", "gsm_map.ch.eventReportData",
21031         FT_NONE, BASE_NONE, NULL, 0,
21032         "gsm_map_ch.EventReportData", HFILL }},
21033     { &hf_gsm_map_ch_callReportdata,
21034       { "callReportdata", "gsm_map.ch.callReportdata",
21035         FT_NONE, BASE_NONE, NULL, 0,
21036         "gsm_map_ch.CallReportData", HFILL }},
21037     { &hf_gsm_map_ch_monitoringMode,
21038       { "monitoringMode", "gsm_map.ch.monitoringMode",
21039         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_MonitoringMode_vals), 0,
21040         "gsm_map_ch.MonitoringMode", HFILL }},
21041     { &hf_gsm_map_ch_callOutcome,
21042       { "callOutcome", "gsm_map.ch.callOutcome",
21043         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallOutcome_vals), 0,
21044         "gsm_map_ch.CallOutcome", HFILL }},
21045     { &hf_gsm_map_ch_callInfo,
21046       { "callInfo", "gsm_map.ch.callInfo",
21047         FT_NONE, BASE_NONE, NULL, 0,
21048         "gsm_map.ExternalSignalInfo", HFILL }},
21049     { &hf_gsm_map_ch_ccbs_Feature,
21050       { "ccbs-Feature", "gsm_map.ch.ccbs_Feature",
21051         FT_NONE, BASE_NONE, NULL, 0,
21052         "gsm_map_ss.CCBS_Feature", HFILL }},
21053     { &hf_gsm_map_ch_translatedB_Number,
21054       { "translatedB-Number", "gsm_map.ch.translatedB_Number",
21055         FT_BYTES, BASE_HEX, NULL, 0,
21056         "gsm_map.ISDN_AddressString", HFILL }},
21057     { &hf_gsm_map_ch_replaceB_Number,
21058       { "replaceB-Number", "gsm_map.ch.replaceB_Number",
21059         FT_NONE, BASE_NONE, NULL, 0,
21060         "gsm_map_ch.NULL", HFILL }},
21061     { &hf_gsm_map_ch_ruf_Outcome,
21062       { "ruf-Outcome", "gsm_map.ch.ruf_Outcome",
21063         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RUF_Outcome_vals), 0,
21064         "gsm_map_ch.RUF_Outcome", HFILL }},
21065     { &hf_gsm_map_ch_istInformationWithdraw,
21066       { "istInformationWithdraw", "gsm_map.ch.istInformationWithdraw",
21067         FT_NONE, BASE_NONE, NULL, 0,
21068         "gsm_map_ch.NULL", HFILL }},
21069     { &hf_gsm_map_ch_callTerminationIndicator,
21070       { "callTerminationIndicator", "gsm_map.ch.callTerminationIndicator",
21071         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallTerminationIndicator_vals), 0,
21072         "gsm_map_ch.CallTerminationIndicator", HFILL }},
21073     { &hf_gsm_map_ch_msrn,
21074       { "msrn", "gsm_map.ch.msrn",
21075         FT_BYTES, BASE_HEX, NULL, 0,
21076         "gsm_map.ISDN_AddressString", HFILL }},
21077     { &hf_gsm_map_ch_SuppressMTSS_suppressCUG,
21078       { "suppressCUG", "gsm_map.ch.suppressCUG",
21079         FT_BOOLEAN, 8, NULL, 0x80,
21080         "", HFILL }},
21081     { &hf_gsm_map_ch_SuppressMTSS_suppressCCBS,
21082       { "suppressCCBS", "gsm_map.ch.suppressCCBS",
21083         FT_BOOLEAN, 8, NULL, 0x40,
21084         "", HFILL }},
21085     { &hf_gsm_map_ch_AllowedServices_firstServiceAllowed,
21086       { "firstServiceAllowed", "gsm_map.ch.firstServiceAllowed",
21087         FT_BOOLEAN, 8, NULL, 0x80,
21088         "", HFILL }},
21089     { &hf_gsm_map_ch_AllowedServices_secondServiceAllowed,
21090       { "secondServiceAllowed", "gsm_map.ch.secondServiceAllowed",
21091         FT_BOOLEAN, 8, NULL, 0x40,
21092         "", HFILL }},
21093
21094 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
21095
21096     { &hf_gsm_map_lcs_mlcNumber,
21097       { "mlcNumber", "gsm_map.lcs.mlcNumber",
21098         FT_BYTES, BASE_HEX, NULL, 0,
21099         "gsm_map.ISDN_AddressString", HFILL }},
21100     { &hf_gsm_map_lcs_targetMS,
21101       { "targetMS", "gsm_map.lcs.targetMS",
21102         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
21103         "gsm_map.SubscriberIdentity", HFILL }},
21104     { &hf_gsm_map_lcs_extensionContainer,
21105       { "extensionContainer", "gsm_map.lcs.extensionContainer",
21106         FT_NONE, BASE_NONE, NULL, 0,
21107         "gsm_map.ExtensionContainer", HFILL }},
21108     { &hf_gsm_map_lcs_lcsLocationInfo,
21109       { "lcsLocationInfo", "gsm_map.lcs.lcsLocationInfo",
21110         FT_NONE, BASE_NONE, NULL, 0,
21111         "gsm_map_lcs.LCSLocationInfo", HFILL }},
21112     { &hf_gsm_map_lcs_v_gmlc_Address,
21113       { "v-gmlc-Address", "gsm_map.lcs.v_gmlc_Address",
21114         FT_BYTES, BASE_HEX, NULL, 0,
21115         "gsm_map_ms.GSN_Address", HFILL }},
21116     { &hf_gsm_map_lcs_h_gmlc_Address,
21117       { "h-gmlc-Address", "gsm_map.lcs.h_gmlc_Address",
21118         FT_BYTES, BASE_HEX, NULL, 0,
21119         "gsm_map_ms.GSN_Address", HFILL }},
21120     { &hf_gsm_map_lcs_ppr_Address,
21121       { "ppr-Address", "gsm_map.lcs.ppr_Address",
21122         FT_BYTES, BASE_HEX, NULL, 0,
21123         "gsm_map_ms.GSN_Address", HFILL }},
21124     { &hf_gsm_map_lcs_additional_v_gmlc_Address,
21125       { "additional-v-gmlc-Address", "gsm_map.lcs.additional_v_gmlc_Address",
21126         FT_BYTES, BASE_HEX, NULL, 0,
21127         "gsm_map_ms.GSN_Address", HFILL }},
21128     { &hf_gsm_map_lcs_networkNode_Number,
21129       { "networkNode-Number", "gsm_map.lcs.networkNode_Number",
21130         FT_BYTES, BASE_HEX, NULL, 0,
21131         "gsm_map.ISDN_AddressString", HFILL }},
21132     { &hf_gsm_map_lcs_lmsi,
21133       { "lmsi", "gsm_map.lcs.lmsi",
21134         FT_BYTES, BASE_HEX, NULL, 0,
21135         "gsm_map.LMSI", HFILL }},
21136     { &hf_gsm_map_lcs_gprsNodeIndicator,
21137       { "gprsNodeIndicator", "gsm_map.lcs.gprsNodeIndicator",
21138         FT_NONE, BASE_NONE, NULL, 0,
21139         "gsm_map_lcs.NULL", HFILL }},
21140     { &hf_gsm_map_lcs_additional_Number,
21141       { "additional-Number", "gsm_map.lcs.additional_Number",
21142         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
21143         "gsm_map_sm.Additional_Number", HFILL }},
21144     { &hf_gsm_map_lcs_supportedLCS_CapabilitySets,
21145       { "supportedLCS-CapabilitySets", "gsm_map.lcs.supportedLCS_CapabilitySets",
21146         FT_BYTES, BASE_HEX, NULL, 0,
21147         "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }},
21148     { &hf_gsm_map_lcs_additional_LCS_CapabilitySets,
21149       { "additional-LCS-CapabilitySets", "gsm_map.lcs.additional_LCS_CapabilitySets",
21150         FT_BYTES, BASE_HEX, NULL, 0,
21151         "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }},
21152     { &hf_gsm_map_lcs_locationType,
21153       { "locationType", "gsm_map.lcs.locationType",
21154         FT_NONE, BASE_NONE, NULL, 0,
21155         "gsm_map_lcs.LocationType", HFILL }},
21156     { &hf_gsm_map_lcs_mlc_Number,
21157       { "mlc-Number", "gsm_map.lcs.mlc_Number",
21158         FT_BYTES, BASE_HEX, NULL, 0,
21159         "gsm_map.ISDN_AddressString", HFILL }},
21160     { &hf_gsm_map_lcs_lcs_ClientID,
21161       { "lcs-ClientID", "gsm_map.lcs.lcs_ClientID",
21162         FT_NONE, BASE_NONE, NULL, 0,
21163         "gsm_map_lcs.LCS_ClientID", HFILL }},
21164     { &hf_gsm_map_lcs_privacyOverride,
21165       { "privacyOverride", "gsm_map.lcs.privacyOverride",
21166         FT_NONE, BASE_NONE, NULL, 0,
21167         "gsm_map_lcs.NULL", HFILL }},
21168     { &hf_gsm_map_lcs_imsi,
21169       { "imsi", "gsm_map.lcs.imsi",
21170         FT_BYTES, BASE_HEX, NULL, 0,
21171         "gsm_map.IMSI", HFILL }},
21172     { &hf_gsm_map_lcs_msisdn,
21173       { "msisdn", "gsm_map.lcs.msisdn",
21174         FT_BYTES, BASE_HEX, NULL, 0,
21175         "gsm_map.ISDN_AddressString", HFILL }},
21176     { &hf_gsm_map_lcs_imei,
21177       { "imei", "gsm_map.lcs.imei",
21178         FT_BYTES, BASE_HEX, NULL, 0,
21179         "gsm_map.IMEI", HFILL }},
21180     { &hf_gsm_map_lcs_lcs_Priority,
21181       { "lcs-Priority", "gsm_map.lcs.lcs_Priority",
21182         FT_BYTES, BASE_HEX, NULL, 0,
21183         "gsm_map_lcs.LCS_Priority", HFILL }},
21184     { &hf_gsm_map_lcs_lcs_QoS,
21185       { "lcs-QoS", "gsm_map.lcs.lcs_QoS",
21186         FT_NONE, BASE_NONE, NULL, 0,
21187         "gsm_map_lcs.LCS_QoS", HFILL }},
21188     { &hf_gsm_map_lcs_supportedGADShapes,
21189       { "supportedGADShapes", "gsm_map.lcs.supportedGADShapes",
21190         FT_BYTES, BASE_HEX, NULL, 0,
21191         "gsm_map_lcs.SupportedGADShapes", HFILL }},
21192     { &hf_gsm_map_lcs_lcs_ReferenceNumber,
21193       { "lcs-ReferenceNumber", "gsm_map.lcs.lcs_ReferenceNumber",
21194         FT_BYTES, BASE_HEX, NULL, 0,
21195         "gsm_map_lcs.LCS_ReferenceNumber", HFILL }},
21196     { &hf_gsm_map_lcs_lcsServiceTypeID,
21197       { "lcsServiceTypeID", "gsm_map.lcs.lcsServiceTypeID",
21198         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
21199         "gsm_map.LCSServiceTypeID", HFILL }},
21200     { &hf_gsm_map_lcs_lcsCodeword,
21201       { "lcsCodeword", "gsm_map.lcs.lcsCodeword",
21202         FT_NONE, BASE_NONE, NULL, 0,
21203         "gsm_map_lcs.LCSCodeword", HFILL }},
21204     { &hf_gsm_map_lcs_lcs_PrivacyCheck,
21205       { "lcs-PrivacyCheck", "gsm_map.lcs.lcs_PrivacyCheck",
21206         FT_NONE, BASE_NONE, NULL, 0,
21207         "gsm_map_lcs.LCS_PrivacyCheck", HFILL }},
21208     { &hf_gsm_map_lcs_areaEventInfo,
21209       { "areaEventInfo", "gsm_map.lcs.areaEventInfo",
21210         FT_NONE, BASE_NONE, NULL, 0,
21211         "gsm_map_lcs.AreaEventInfo", HFILL }},
21212     { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator,
21213       { "mo-lrShortCircuitIndicator", "gsm_map.lcs.mo_lrShortCircuitIndicator",
21214         FT_NONE, BASE_NONE, NULL, 0,
21215         "gsm_map_lcs.NULL", HFILL }},
21216     { &hf_gsm_map_lcs_periodicLDRInfo,
21217       { "periodicLDRInfo", "gsm_map.lcs.periodicLDRInfo",
21218         FT_NONE, BASE_NONE, NULL, 0,
21219         "gsm_map_lcs.PeriodicLDRInfo", HFILL }},
21220     { &hf_gsm_map_lcs_reportingPLMNList,
21221       { "reportingPLMNList", "gsm_map.lcs.reportingPLMNList",
21222         FT_NONE, BASE_NONE, NULL, 0,
21223         "gsm_map_lcs.ReportingPLMNList", HFILL }},
21224     { &hf_gsm_map_lcs_locationEstimateType,
21225       { "locationEstimateType", "gsm_map.lcs.locationEstimateType",
21226         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LocationEstimateType_vals), 0,
21227         "gsm_map_lcs.LocationEstimateType", HFILL }},
21228     { &hf_gsm_map_lcs_deferredLocationEventType,
21229       { "deferredLocationEventType", "gsm_map.lcs.deferredLocationEventType",
21230         FT_BYTES, BASE_HEX, NULL, 0,
21231         "gsm_map_lcs.DeferredLocationEventType", HFILL }},
21232     { &hf_gsm_map_lcs_lcsClientType,
21233       { "lcsClientType", "gsm_map.lcs.lcsClientType",
21234         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCSClientType_vals), 0,
21235         "gsm_map_lcs.LCSClientType", HFILL }},
21236     { &hf_gsm_map_lcs_lcsClientExternalID,
21237       { "lcsClientExternalID", "gsm_map.lcs.lcsClientExternalID",
21238         FT_NONE, BASE_NONE, NULL, 0,
21239         "gsm_map.LCSClientExternalID", HFILL }},
21240     { &hf_gsm_map_lcs_lcsClientDialedByMS,
21241       { "lcsClientDialedByMS", "gsm_map.lcs.lcsClientDialedByMS",
21242         FT_BYTES, BASE_HEX, NULL, 0,
21243         "gsm_map.AddressString", HFILL }},
21244     { &hf_gsm_map_lcs_lcsClientInternalID,
21245       { "lcsClientInternalID", "gsm_map.lcs.lcsClientInternalID",
21246         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
21247         "gsm_map.LCSClientInternalID", HFILL }},
21248     { &hf_gsm_map_lcs_lcsClientName,
21249       { "lcsClientName", "gsm_map.lcs.lcsClientName",
21250         FT_NONE, BASE_NONE, NULL, 0,
21251         "gsm_map_lcs.LCSClientName", HFILL }},
21252     { &hf_gsm_map_lcs_lcsAPN,
21253       { "lcsAPN", "gsm_map.lcs.lcsAPN",
21254         FT_BYTES, BASE_HEX, NULL, 0,
21255         "gsm_map_ms.APN", HFILL }},
21256     { &hf_gsm_map_lcs_lcsRequestorID,
21257       { "lcsRequestorID", "gsm_map.lcs.lcsRequestorID",
21258         FT_NONE, BASE_NONE, NULL, 0,
21259         "gsm_map_lcs.LCSRequestorID", HFILL }},
21260     { &hf_gsm_map_lcs_dataCodingScheme,
21261       { "dataCodingScheme", "gsm_map.lcs.dataCodingScheme",
21262         FT_BYTES, BASE_HEX, NULL, 0,
21263         "gsm_map_ss.USSD_DataCodingScheme", HFILL }},
21264     { &hf_gsm_map_lcs_nameString,
21265       { "nameString", "gsm_map.lcs.nameString",
21266         FT_BYTES, BASE_HEX, NULL, 0,
21267         "gsm_map_lcs.NameString", HFILL }},
21268     { &hf_gsm_map_lcs_lcs_FormatIndicator,
21269       { "lcs-FormatIndicator", "gsm_map.lcs.lcs_FormatIndicator",
21270         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_FormatIndicator_vals), 0,
21271         "gsm_map_lcs.LCS_FormatIndicator", HFILL }},
21272     { &hf_gsm_map_lcs_requestorIDString,
21273       { "requestorIDString", "gsm_map.lcs.requestorIDString",
21274         FT_BYTES, BASE_HEX, NULL, 0,
21275         "gsm_map_lcs.RequestorIDString", HFILL }},
21276     { &hf_gsm_map_lcs_horizontal_accuracy,
21277       { "horizontal-accuracy", "gsm_map.lcs.horizontal_accuracy",
21278         FT_BYTES, BASE_HEX, NULL, 0,
21279         "gsm_map_lcs.Horizontal_Accuracy", HFILL }},
21280     { &hf_gsm_map_lcs_verticalCoordinateRequest,
21281       { "verticalCoordinateRequest", "gsm_map.lcs.verticalCoordinateRequest",
21282         FT_NONE, BASE_NONE, NULL, 0,
21283         "gsm_map_lcs.NULL", HFILL }},
21284     { &hf_gsm_map_lcs_vertical_accuracy,
21285       { "vertical-accuracy", "gsm_map.lcs.vertical_accuracy",
21286         FT_BYTES, BASE_HEX, NULL, 0,
21287         "gsm_map_lcs.Vertical_Accuracy", HFILL }},
21288     { &hf_gsm_map_lcs_responseTime,
21289       { "responseTime", "gsm_map.lcs.responseTime",
21290         FT_NONE, BASE_NONE, NULL, 0,
21291         "gsm_map_lcs.ResponseTime", HFILL }},
21292     { &hf_gsm_map_lcs_velocityRequest,
21293       { "velocityRequest", "gsm_map.lcs.velocityRequest",
21294         FT_NONE, BASE_NONE, NULL, 0,
21295         "gsm_map_lcs.NULL", HFILL }},
21296     { &hf_gsm_map_lcs_responseTimeCategory,
21297       { "responseTimeCategory", "gsm_map.lcs.responseTimeCategory",
21298         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_ResponseTimeCategory_vals), 0,
21299         "gsm_map_lcs.ResponseTimeCategory", HFILL }},
21300     { &hf_gsm_map_lcs_lcsCodewordString,
21301       { "lcsCodewordString", "gsm_map.lcs.lcsCodewordString",
21302         FT_BYTES, BASE_HEX, NULL, 0,
21303         "gsm_map_lcs.LCSCodewordString", HFILL }},
21304     { &hf_gsm_map_lcs_callSessionUnrelated,
21305       { "callSessionUnrelated", "gsm_map.lcs.callSessionUnrelated",
21306         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
21307         "gsm_map_lcs.PrivacyCheckRelatedAction", HFILL }},
21308     { &hf_gsm_map_lcs_callSessionRelated,
21309       { "callSessionRelated", "gsm_map.lcs.callSessionRelated",
21310         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
21311         "gsm_map_lcs.PrivacyCheckRelatedAction", HFILL }},
21312     { &hf_gsm_map_lcs_areaDefinition,
21313       { "areaDefinition", "gsm_map.lcs.areaDefinition",
21314         FT_NONE, BASE_NONE, NULL, 0,
21315         "gsm_map_lcs.AreaDefinition", HFILL }},
21316     { &hf_gsm_map_lcs_occurrenceInfo,
21317       { "occurrenceInfo", "gsm_map.lcs.occurrenceInfo",
21318         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_OccurrenceInfo_vals), 0,
21319         "gsm_map_lcs.OccurrenceInfo", HFILL }},
21320     { &hf_gsm_map_lcs_intervalTime,
21321       { "intervalTime", "gsm_map.lcs.intervalTime",
21322         FT_UINT32, BASE_DEC, NULL, 0,
21323         "gsm_map_lcs.IntervalTime", HFILL }},
21324     { &hf_gsm_map_lcs_areaList,
21325       { "areaList", "gsm_map.lcs.areaList",
21326         FT_UINT32, BASE_DEC, NULL, 0,
21327         "gsm_map_lcs.AreaList", HFILL }},
21328     { &hf_gsm_map_lcs_AreaList_item,
21329       { "Item", "gsm_map.lcs.AreaList_item",
21330         FT_NONE, BASE_NONE, NULL, 0,
21331         "gsm_map_lcs.Area", HFILL }},
21332     { &hf_gsm_map_lcs_areaType,
21333       { "areaType", "gsm_map.lcs.areaType",
21334         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AreaType_vals), 0,
21335         "gsm_map_lcs.AreaType", HFILL }},
21336     { &hf_gsm_map_lcs_areaIdentification,
21337       { "areaIdentification", "gsm_map.lcs.areaIdentification",
21338         FT_BYTES, BASE_HEX, NULL, 0,
21339         "gsm_map_lcs.AreaIdentification", HFILL }},
21340     { &hf_gsm_map_lcs_reportingAmount,
21341       { "reportingAmount", "gsm_map.lcs.reportingAmount",
21342         FT_UINT32, BASE_DEC, NULL, 0,
21343         "gsm_map_lcs.ReportingAmount", HFILL }},
21344     { &hf_gsm_map_lcs_reportingInterval,
21345       { "reportingInterval", "gsm_map.lcs.reportingInterval",
21346         FT_UINT32, BASE_DEC, NULL, 0,
21347         "gsm_map_lcs.ReportingInterval", HFILL }},
21348     { &hf_gsm_map_lcs_plmn_ListPrioritized,
21349       { "plmn-ListPrioritized", "gsm_map.lcs.plmn_ListPrioritized",
21350         FT_NONE, BASE_NONE, NULL, 0,
21351         "gsm_map_lcs.NULL", HFILL }},
21352     { &hf_gsm_map_lcs_plmn_List,
21353       { "plmn-List", "gsm_map.lcs.plmn_List",
21354         FT_UINT32, BASE_DEC, NULL, 0,
21355         "gsm_map_lcs.PLMNList", HFILL }},
21356     { &hf_gsm_map_lcs_PLMNList_item,
21357       { "Item", "gsm_map.lcs.PLMNList_item",
21358         FT_NONE, BASE_NONE, NULL, 0,
21359         "gsm_map_lcs.ReportingPLMN", HFILL }},
21360     { &hf_gsm_map_lcs_plmn_Id,
21361       { "plmn-Id", "gsm_map.lcs.plmn_Id",
21362         FT_BYTES, BASE_HEX, NULL, 0,
21363         "gsm_map.PLMN_Id", HFILL }},
21364     { &hf_gsm_map_lcs_ran_Technology,
21365       { "ran-Technology", "gsm_map.lcs.ran_Technology",
21366         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_RAN_Technology_vals), 0,
21367         "gsm_map_lcs.RAN_Technology", HFILL }},
21368     { &hf_gsm_map_lcs_ran_PeriodicLocationSupport,
21369       { "ran-PeriodicLocationSupport", "gsm_map.lcs.ran_PeriodicLocationSupport",
21370         FT_NONE, BASE_NONE, NULL, 0,
21371         "gsm_map_lcs.NULL", HFILL }},
21372     { &hf_gsm_map_lcs_locationEstimate,
21373       { "locationEstimate", "gsm_map.lcs.locationEstimate",
21374         FT_BYTES, BASE_HEX, NULL, 0,
21375         "gsm_map_lcs.Ext_GeographicalInformation", HFILL }},
21376     { &hf_gsm_map_lcs_ageOfLocationEstimate,
21377       { "ageOfLocationEstimate", "gsm_map.lcs.ageOfLocationEstimate",
21378         FT_UINT32, BASE_DEC, NULL, 0,
21379         "gsm_map.AgeOfLocationInformation", HFILL }},
21380     { &hf_gsm_map_lcs_add_LocationEstimate,
21381       { "add-LocationEstimate", "gsm_map.lcs.add_LocationEstimate",
21382         FT_BYTES, BASE_HEX, NULL, 0,
21383         "gsm_map_lcs.Add_GeographicalInformation", HFILL }},
21384     { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator,
21385       { "deferredmt-lrResponseIndicator", "gsm_map.lcs.deferredmt_lrResponseIndicator",
21386         FT_NONE, BASE_NONE, NULL, 0,
21387         "gsm_map_lcs.NULL", HFILL }},
21388     { &hf_gsm_map_lcs_geranPositioningData,
21389       { "geranPositioningData", "gsm_map.lcs.geranPositioningData",
21390         FT_BYTES, BASE_HEX, NULL, 0,
21391         "gsm_map_lcs.PositioningDataInformation", HFILL }},
21392     { &hf_gsm_map_lcs_utranPositioningData,
21393       { "utranPositioningData", "gsm_map.lcs.utranPositioningData",
21394         FT_BYTES, BASE_HEX, NULL, 0,
21395         "gsm_map_lcs.UtranPositioningDataInfo", HFILL }},
21396     { &hf_gsm_map_lcs_cellIdOrSai,
21397       { "cellIdOrSai", "gsm_map.lcs.cellIdOrSai",
21398         FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
21399         "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
21400     { &hf_gsm_map_lcs_sai_Present,
21401       { "sai-Present", "gsm_map.lcs.sai_Present",
21402         FT_NONE, BASE_NONE, NULL, 0,
21403         "gsm_map_lcs.NULL", HFILL }},
21404     { &hf_gsm_map_lcs_accuracyFulfilmentIndicator,
21405       { "accuracyFulfilmentIndicator", "gsm_map.lcs.accuracyFulfilmentIndicator",
21406         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AccuracyFulfilmentIndicator_vals), 0,
21407         "gsm_map_lcs.AccuracyFulfilmentIndicator", HFILL }},
21408     { &hf_gsm_map_lcs_velocityEstimate,
21409       { "velocityEstimate", "gsm_map.lcs.velocityEstimate",
21410         FT_BYTES, BASE_HEX, NULL, 0,
21411         "gsm_map_lcs.VelocityEstimate", HFILL }},
21412     { &hf_gsm_map_lcs_lcs_Event,
21413       { "lcs-Event", "gsm_map.lcs.lcs_Event",
21414         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_Event_vals), 0,
21415         "gsm_map_lcs.LCS_Event", HFILL }},
21416     { &hf_gsm_map_lcs_na_ESRD,
21417       { "na-ESRD", "gsm_map.lcs.na_ESRD",
21418         FT_BYTES, BASE_HEX, NULL, 0,
21419         "gsm_map.ISDN_AddressString", HFILL }},
21420     { &hf_gsm_map_lcs_na_ESRK,
21421       { "na-ESRK", "gsm_map.lcs.na_ESRK",
21422         FT_BYTES, BASE_HEX, NULL, 0,
21423         "gsm_map.ISDN_AddressString", HFILL }},
21424     { &hf_gsm_map_lcs_slr_ArgExtensionContainer,
21425       { "slr-ArgExtensionContainer", "gsm_map.lcs.slr_ArgExtensionContainer",
21426         FT_NONE, BASE_NONE, NULL, 0,
21427         "gsm_map.SLR_ArgExtensionContainer", HFILL }},
21428     { &hf_gsm_map_lcs_deferredmt_lrData,
21429       { "deferredmt-lrData", "gsm_map.lcs.deferredmt_lrData",
21430         FT_NONE, BASE_NONE, NULL, 0,
21431         "gsm_map_lcs.Deferredmt_lrData", HFILL }},
21432     { &hf_gsm_map_lcs_pseudonymIndicator,
21433       { "pseudonymIndicator", "gsm_map.lcs.pseudonymIndicator",
21434         FT_NONE, BASE_NONE, NULL, 0,
21435         "gsm_map_lcs.NULL", HFILL }},
21436     { &hf_gsm_map_lcs_sequenceNumber,
21437       { "sequenceNumber", "gsm_map.lcs.sequenceNumber",
21438         FT_UINT32, BASE_DEC, NULL, 0,
21439         "gsm_map_lcs.SequenceNumber", HFILL }},
21440     { &hf_gsm_map_lcs_terminationCause,
21441       { "terminationCause", "gsm_map.lcs.terminationCause",
21442         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_TerminationCause_vals), 0,
21443         "gsm_map_lcs.TerminationCause", HFILL }},
21444     { &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable,
21445       { "msAvailable", "gsm_map.lcs.msAvailable",
21446         FT_BOOLEAN, 8, NULL, 0x80,
21447         "", HFILL }},
21448     { &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea,
21449       { "enteringIntoArea", "gsm_map.lcs.enteringIntoArea",
21450         FT_BOOLEAN, 8, NULL, 0x40,
21451         "", HFILL }},
21452     { &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea,
21453       { "leavingFromArea", "gsm_map.lcs.leavingFromArea",
21454         FT_BOOLEAN, 8, NULL, 0x20,
21455         "", HFILL }},
21456     { &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea,
21457       { "beingInsideArea", "gsm_map.lcs.beingInsideArea",
21458         FT_BOOLEAN, 8, NULL, 0x10,
21459         "", HFILL }},
21460     { &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR,
21461       { "periodicLDR", "gsm_map.lcs.periodicLDR",
21462         FT_BOOLEAN, 8, NULL, 0x08,
21463         "", HFILL }},
21464     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint,
21465       { "ellipsoidPoint", "gsm_map.lcs.ellipsoidPoint",
21466         FT_BOOLEAN, 8, NULL, 0x80,
21467         "", HFILL }},
21468     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle,
21469       { "ellipsoidPointWithUncertaintyCircle", "gsm_map.lcs.ellipsoidPointWithUncertaintyCircle",
21470         FT_BOOLEAN, 8, NULL, 0x40,
21471         "", HFILL }},
21472     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse,
21473       { "ellipsoidPointWithUncertaintyEllipse", "gsm_map.lcs.ellipsoidPointWithUncertaintyEllipse",
21474         FT_BOOLEAN, 8, NULL, 0x20,
21475         "", HFILL }},
21476     { &hf_gsm_map_lcs_SupportedGADShapes_polygon,
21477       { "polygon", "gsm_map.lcs.polygon",
21478         FT_BOOLEAN, 8, NULL, 0x10,
21479         "", HFILL }},
21480     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude,
21481       { "ellipsoidPointWithAltitude", "gsm_map.lcs.ellipsoidPointWithAltitude",
21482         FT_BOOLEAN, 8, NULL, 0x08,
21483         "", HFILL }},
21484     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid,
21485       { "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", "gsm_map.lcs.ellipsoidPointWithAltitudeAndUncertaintyElipsoid",
21486         FT_BOOLEAN, 8, NULL, 0x04,
21487         "", HFILL }},
21488     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc,
21489       { "ellipsoidArc", "gsm_map.lcs.ellipsoidArc",
21490         FT_BOOLEAN, 8, NULL, 0x02,
21491         "", HFILL }},
21492
21493 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
21494
21495     { &hf_gsm_map_gr_teleservice,
21496       { "teleservice", "gsm_map.gr.teleservice",
21497         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
21498         "gsm_map.Ext_TeleserviceCode", HFILL }},
21499     { &hf_gsm_map_gr_asciCallReference,
21500       { "asciCallReference", "gsm_map.gr.asciCallReference",
21501         FT_BYTES, BASE_HEX, NULL, 0,
21502         "gsm_map.ASCI_CallReference", HFILL }},
21503     { &hf_gsm_map_gr_codec_Info,
21504       { "codec-Info", "gsm_map.gr.codec_Info",
21505         FT_BYTES, BASE_HEX, NULL, 0,
21506         "gsm_map_gr.CODEC_Info", HFILL }},
21507     { &hf_gsm_map_gr_cipheringAlgorithm,
21508       { "cipheringAlgorithm", "gsm_map.gr.cipheringAlgorithm",
21509         FT_BYTES, BASE_HEX, NULL, 0,
21510         "gsm_map_gr.CipheringAlgorithm", HFILL }},
21511     { &hf_gsm_map_gr_groupKeyNumber_Vk_Id,
21512       { "groupKeyNumber-Vk-Id", "gsm_map.gr.groupKeyNumber_Vk_Id",
21513         FT_UINT32, BASE_DEC, NULL, 0,
21514         "gsm_map_gr.GroupKeyNumber", HFILL }},
21515     { &hf_gsm_map_gr_groupKey,
21516       { "groupKey", "gsm_map.gr.groupKey",
21517         FT_BYTES, BASE_HEX, NULL, 0,
21518         "gsm_map_ms.Kc", HFILL }},
21519     { &hf_gsm_map_gr_priority,
21520       { "priority", "gsm_map.gr.priority",
21521         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
21522         "gsm_map.EMLPP_Priority", HFILL }},
21523     { &hf_gsm_map_gr_uplinkFree,
21524       { "uplinkFree", "gsm_map.gr.uplinkFree",
21525         FT_NONE, BASE_NONE, NULL, 0,
21526         "gsm_map_gr.NULL", HFILL }},
21527     { &hf_gsm_map_gr_extensionContainer,
21528       { "extensionContainer", "gsm_map.gr.extensionContainer",
21529         FT_NONE, BASE_NONE, NULL, 0,
21530         "gsm_map.ExtensionContainer", HFILL }},
21531     { &hf_gsm_map_gr_vstk,
21532       { "vstk", "gsm_map.gr.vstk",
21533         FT_BYTES, BASE_HEX, NULL, 0,
21534         "gsm_map_gr.VSTK", HFILL }},
21535     { &hf_gsm_map_gr_vstk_rand,
21536       { "vstk-rand", "gsm_map.gr.vstk_rand",
21537         FT_BYTES, BASE_HEX, NULL, 0,
21538         "gsm_map_gr.VSTK_RAND", HFILL }},
21539     { &hf_gsm_map_gr_talkerChannelParameter,
21540       { "talkerChannelParameter", "gsm_map.gr.talkerChannelParameter",
21541         FT_NONE, BASE_NONE, NULL, 0,
21542         "gsm_map_gr.NULL", HFILL }},
21543     { &hf_gsm_map_gr_groupCallNumber,
21544       { "groupCallNumber", "gsm_map.gr.groupCallNumber",
21545         FT_BYTES, BASE_HEX, NULL, 0,
21546         "gsm_map.ISDN_AddressString", HFILL }},
21547     { &hf_gsm_map_gr_imsi,
21548       { "imsi", "gsm_map.gr.imsi",
21549         FT_BYTES, BASE_HEX, NULL, 0,
21550         "gsm_map.IMSI", HFILL }},
21551     { &hf_gsm_map_gr_talkerPriority,
21552       { "talkerPriority", "gsm_map.gr.talkerPriority",
21553         FT_UINT32, BASE_DEC, VALS(gsm_map_gr_TalkerPriority_vals), 0,
21554         "gsm_map_gr.TalkerPriority", HFILL }},
21555     { &hf_gsm_map_gr_additionalInfo,
21556       { "additionalInfo", "gsm_map.gr.additionalInfo",
21557         FT_BYTES, BASE_HEX, NULL, 0,
21558         "gsm_map_ms.AdditionalInfo", HFILL }},
21559     { &hf_gsm_map_gr_uplinkRequestAck,
21560       { "uplinkRequestAck", "gsm_map.gr.uplinkRequestAck",
21561         FT_NONE, BASE_NONE, NULL, 0,
21562         "gsm_map_gr.NULL", HFILL }},
21563     { &hf_gsm_map_gr_uplinkReleaseIndication,
21564       { "uplinkReleaseIndication", "gsm_map.gr.uplinkReleaseIndication",
21565         FT_NONE, BASE_NONE, NULL, 0,
21566         "gsm_map_gr.NULL", HFILL }},
21567     { &hf_gsm_map_gr_uplinkRejectCommand,
21568       { "uplinkRejectCommand", "gsm_map.gr.uplinkRejectCommand",
21569         FT_NONE, BASE_NONE, NULL, 0,
21570         "gsm_map_gr.NULL", HFILL }},
21571     { &hf_gsm_map_gr_uplinkSeizedCommand,
21572       { "uplinkSeizedCommand", "gsm_map.gr.uplinkSeizedCommand",
21573         FT_NONE, BASE_NONE, NULL, 0,
21574         "gsm_map_gr.NULL", HFILL }},
21575     { &hf_gsm_map_gr_uplinkReleaseCommand,
21576       { "uplinkReleaseCommand", "gsm_map.gr.uplinkReleaseCommand",
21577         FT_NONE, BASE_NONE, NULL, 0,
21578         "gsm_map_gr.NULL", HFILL }},
21579     { &hf_gsm_map_gr_stateAttributes,
21580       { "stateAttributes", "gsm_map.gr.stateAttributes",
21581         FT_NONE, BASE_NONE, NULL, 0,
21582         "gsm_map_gr.StateAttributes", HFILL }},
21583     { &hf_gsm_map_gr_emergencyModeResetCommandFlag,
21584       { "emergencyModeResetCommandFlag", "gsm_map.gr.emergencyModeResetCommandFlag",
21585         FT_NONE, BASE_NONE, NULL, 0,
21586         "gsm_map_gr.NULL", HFILL }},
21587     { &hf_gsm_map_gr_sm_RP_UI,
21588       { "sm-RP-UI", "gsm_map.gr.sm_RP_UI",
21589         FT_BYTES, BASE_HEX, NULL, 0,
21590         "gsm_map.SignalInfo", HFILL }},
21591     { &hf_gsm_map_gr_an_APDU,
21592       { "an-APDU", "gsm_map.gr.an_APDU",
21593         FT_NONE, BASE_NONE, NULL, 0,
21594         "gsm_map.AccessNetworkSignalInfo", HFILL }},
21595     { &hf_gsm_map_gr_uplinkRequest,
21596       { "uplinkRequest", "gsm_map.gr.uplinkRequest",
21597         FT_NONE, BASE_NONE, NULL, 0,
21598         "gsm_map_gr.NULL", HFILL }},
21599     { &hf_gsm_map_gr_releaseGroupCall,
21600       { "releaseGroupCall", "gsm_map.gr.releaseGroupCall",
21601         FT_NONE, BASE_NONE, NULL, 0,
21602         "gsm_map_gr.NULL", HFILL }},
21603     { &hf_gsm_map_gr_downlinkAttached,
21604       { "downlinkAttached", "gsm_map.gr.downlinkAttached",
21605         FT_NONE, BASE_NONE, NULL, 0,
21606         "gsm_map_gr.NULL", HFILL }},
21607     { &hf_gsm_map_gr_uplinkAttached,
21608       { "uplinkAttached", "gsm_map.gr.uplinkAttached",
21609         FT_NONE, BASE_NONE, NULL, 0,
21610         "gsm_map_gr.NULL", HFILL }},
21611     { &hf_gsm_map_gr_dualCommunication,
21612       { "dualCommunication", "gsm_map.gr.dualCommunication",
21613         FT_NONE, BASE_NONE, NULL, 0,
21614         "gsm_map_gr.NULL", HFILL }},
21615     { &hf_gsm_map_gr_callOriginator,
21616       { "callOriginator", "gsm_map.gr.callOriginator",
21617         FT_NONE, BASE_NONE, NULL, 0,
21618         "gsm_map_gr.NULL", HFILL }},
21619     { &hf_gsm_map_gr_requestedInfo,
21620       { "requestedInfo", "gsm_map.gr.requestedInfo",
21621         FT_UINT32, BASE_DEC, VALS(gsm_map_gr_RequestedInfo_vals), 0,
21622         "gsm_map_gr.RequestedInfo", HFILL }},
21623     { &hf_gsm_map_gr_groupId,
21624       { "groupId", "gsm_map.gr.groupId",
21625         FT_BYTES, BASE_HEX, NULL, 0,
21626         "gsm_map_ms.Long_GroupId", HFILL }},
21627     { &hf_gsm_map_gr_cellId,
21628       { "cellId", "gsm_map.gr.cellId",
21629         FT_BYTES, BASE_HEX, NULL, 0,
21630         "gsm_map.GlobalCellId", HFILL }},
21631     { &hf_gsm_map_gr_tmsi,
21632       { "tmsi", "gsm_map.gr.tmsi",
21633         FT_BYTES, BASE_HEX, NULL, 0,
21634         "gsm_map.TMSI", HFILL }},
21635     { &hf_gsm_map_gr_cksn,
21636       { "cksn", "gsm_map.gr.cksn",
21637         FT_BYTES, BASE_HEX, NULL, 0,
21638         "gsm_map_ms.Cksn", HFILL }},
21639     { &hf_gsm_map_gr_anchorMSC_Address,
21640       { "anchorMSC-Address", "gsm_map.gr.anchorMSC_Address",
21641         FT_BYTES, BASE_HEX, NULL, 0,
21642         "gsm_map.ISDN_AddressString", HFILL }},
21643     { &hf_gsm_map_gr_additionalSubscriptions,
21644       { "additionalSubscriptions", "gsm_map.gr.additionalSubscriptions",
21645         FT_BYTES, BASE_HEX, NULL, 0,
21646         "gsm_map_ms.AdditionalSubscriptions", HFILL }},
21647     { &hf_gsm_map_gr_kc,
21648       { "kc", "gsm_map.gr.kc",
21649         FT_BYTES, BASE_HEX, NULL, 0,
21650         "gsm_map_ms.Kc", HFILL }},
21651
21652 /* --- Module MAP-DialogueInformation --- --- ---                             */
21653
21654     { &hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU,
21655       { "MAP-DialoguePDU", "gsm_map.dialogue.MAP_DialoguePDU",
21656         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_DialoguePDU_vals), 0,
21657         "gsm_map_dialogue.MAP_DialoguePDU", HFILL }},
21658     { &hf_gsm_map_dialogue_map_open,
21659       { "map-open", "gsm_map.dialogue.map_open",
21660         FT_NONE, BASE_NONE, NULL, 0,
21661         "gsm_map_dialogue.MAP_OpenInfo", HFILL }},
21662     { &hf_gsm_map_dialogue_map_accept,
21663       { "map-accept", "gsm_map.dialogue.map_accept",
21664         FT_NONE, BASE_NONE, NULL, 0,
21665         "gsm_map_dialogue.MAP_AcceptInfo", HFILL }},
21666     { &hf_gsm_map_dialogue_map_close,
21667       { "map-close", "gsm_map.dialogue.map_close",
21668         FT_NONE, BASE_NONE, NULL, 0,
21669         "gsm_map_dialogue.MAP_CloseInfo", HFILL }},
21670     { &hf_gsm_map_dialogue_map_refuse,
21671       { "map-refuse", "gsm_map.dialogue.map_refuse",
21672         FT_NONE, BASE_NONE, NULL, 0,
21673         "gsm_map_dialogue.MAP_RefuseInfo", HFILL }},
21674     { &hf_gsm_map_dialogue_map_userAbort,
21675       { "map-userAbort", "gsm_map.dialogue.map_userAbort",
21676         FT_NONE, BASE_NONE, NULL, 0,
21677         "gsm_map_dialogue.MAP_UserAbortInfo", HFILL }},
21678     { &hf_gsm_map_dialogue_map_providerAbort,
21679       { "map-providerAbort", "gsm_map.dialogue.map_providerAbort",
21680         FT_NONE, BASE_NONE, NULL, 0,
21681         "gsm_map_dialogue.MAP_ProviderAbortInfo", HFILL }},
21682     { &hf_gsm_map_dialogue_destinationReference,
21683       { "destinationReference", "gsm_map.dialogue.destinationReference",
21684         FT_BYTES, BASE_HEX, NULL, 0,
21685         "gsm_map.AddressString", HFILL }},
21686     { &hf_gsm_map_dialogue_originationReference,
21687       { "originationReference", "gsm_map.dialogue.originationReference",
21688         FT_BYTES, BASE_HEX, NULL, 0,
21689         "gsm_map.AddressString", HFILL }},
21690     { &hf_gsm_map_dialogue_extensionContainer,
21691       { "extensionContainer", "gsm_map.dialogue.extensionContainer",
21692         FT_NONE, BASE_NONE, NULL, 0,
21693         "gsm_map.ExtensionContainer", HFILL }},
21694     { &hf_gsm_map_dialogue_reason,
21695       { "reason", "gsm_map.dialogue.reason",
21696         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_Reason_vals), 0,
21697         "gsm_map_dialogue.Reason", HFILL }},
21698     { &hf_gsm_map_dialogue_alternativeApplicationContext,
21699       { "alternativeApplicationContext", "gsm_map.dialogue.alternativeApplicationContext",
21700         FT_OID, BASE_NONE, NULL, 0,
21701         "gsm_map_dialogue.OBJECT_IDENTIFIER", HFILL }},
21702     { &hf_gsm_map_dialogue_map_UserAbortChoice,
21703       { "map-UserAbortChoice", "gsm_map.dialogue.map_UserAbortChoice",
21704         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_UserAbortChoice_vals), 0,
21705         "gsm_map_dialogue.MAP_UserAbortChoice", HFILL }},
21706     { &hf_gsm_map_dialogue_userSpecificReason,
21707       { "userSpecificReason", "gsm_map.dialogue.userSpecificReason",
21708         FT_NONE, BASE_NONE, NULL, 0,
21709         "gsm_map_dialogue.NULL", HFILL }},
21710     { &hf_gsm_map_dialogue_userResourceLimitation,
21711       { "userResourceLimitation", "gsm_map.dialogue.userResourceLimitation",
21712         FT_NONE, BASE_NONE, NULL, 0,
21713         "gsm_map_dialogue.NULL", HFILL }},
21714     { &hf_gsm_map_dialogue_resourceUnavailable,
21715       { "resourceUnavailable", "gsm_map.dialogue.resourceUnavailable",
21716         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ResourceUnavailableReason_vals), 0,
21717         "gsm_map_dialogue.ResourceUnavailableReason", HFILL }},
21718     { &hf_gsm_map_dialogue_applicationProcedureCancellation,
21719       { "applicationProcedureCancellation", "gsm_map.dialogue.applicationProcedureCancellation",
21720         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ProcedureCancellationReason_vals), 0,
21721         "gsm_map_dialogue.ProcedureCancellationReason", HFILL }},
21722     { &hf_gsm_map_dialogue_map_ProviderAbortReason,
21723       { "map-ProviderAbortReason", "gsm_map.dialogue.map_ProviderAbortReason",
21724         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_ProviderAbortReason_vals), 0,
21725         "gsm_map_dialogue.MAP_ProviderAbortReason", HFILL }},
21726
21727 /* --- Module DummyMAP --- --- ---                                            */
21728
21729     { &hf_gsm_old_invoke,
21730       { "invoke", "gsm_old.invoke",
21731         FT_NONE, BASE_NONE, NULL, 0,
21732         "gsm_old.Invoke", HFILL }},
21733     { &hf_gsm_old_returnResultLast,
21734       { "returnResultLast", "gsm_old.returnResultLast",
21735         FT_NONE, BASE_NONE, NULL, 0,
21736         "gsm_old.ReturnResult", HFILL }},
21737     { &hf_gsm_old_returnError,
21738       { "returnError", "gsm_old.returnError",
21739         FT_NONE, BASE_NONE, NULL, 0,
21740         "gsm_old.ReturnError", HFILL }},
21741     { &hf_gsm_old_reject,
21742       { "reject", "gsm_old.reject",
21743         FT_NONE, BASE_NONE, NULL, 0,
21744         "gsm_old.Reject", HFILL }},
21745     { &hf_gsm_old_returnResultNotLast,
21746       { "returnResultNotLast", "gsm_old.returnResultNotLast",
21747         FT_NONE, BASE_NONE, NULL, 0,
21748         "gsm_old.ReturnResult", HFILL }},
21749     { &hf_gsm_old_invokeID,
21750       { "invokeID", "gsm_old.invokeID",
21751         FT_INT32, BASE_DEC, NULL, 0,
21752         "gsm_old.InvokeIdType", HFILL }},
21753     { &hf_gsm_old_linkedID,
21754       { "linkedID", "gsm_old.linkedID",
21755         FT_INT32, BASE_DEC, NULL, 0,
21756         "gsm_old.InvokeIdType", HFILL }},
21757     { &hf_gsm_old_opCode,
21758       { "opCode", "gsm_old.opCode",
21759         FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_OPERATION_vals), 0,
21760         "gsm_old.MAP_OPERATION", HFILL }},
21761     { &hf_gsm_old_invokeparameter,
21762       { "invokeparameter", "gsm_old.invokeparameter",
21763         FT_NONE, BASE_NONE, NULL, 0,
21764         "gsm_old.InvokeParameter", HFILL }},
21765     { &hf_gsm_old_resultretres,
21766       { "resultretres", "gsm_old.resultretres",
21767         FT_NONE, BASE_NONE, NULL, 0,
21768         "gsm_old.T_resultretres", HFILL }},
21769     { &hf_gsm_old_returnparameter,
21770       { "returnparameter", "gsm_old.returnparameter",
21771         FT_NONE, BASE_NONE, NULL, 0,
21772         "gsm_old.ReturnResultParameter", HFILL }},
21773     { &hf_gsm_old_errorCode,
21774       { "errorCode", "gsm_old.errorCode",
21775         FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_ERROR_vals), 0,
21776         "gsm_old.MAP_ERROR", HFILL }},
21777     { &hf_gsm_old_parameter,
21778       { "parameter", "gsm_old.parameter",
21779         FT_NONE, BASE_NONE, NULL, 0,
21780         "gsm_old.ReturnErrorParameter", HFILL }},
21781     { &hf_gsm_old_invokeIDRej,
21782       { "invokeIDRej", "gsm_old.invokeIDRej",
21783         FT_UINT32, BASE_DEC, VALS(gsm_old_T_invokeIDRej_vals), 0,
21784         "gsm_old.T_invokeIDRej", HFILL }},
21785     { &hf_gsm_old_derivable,
21786       { "derivable", "gsm_old.derivable",
21787         FT_INT32, BASE_DEC, NULL, 0,
21788         "gsm_old.InvokeIdType", HFILL }},
21789     { &hf_gsm_old_not_derivable,
21790       { "not-derivable", "gsm_old.not_derivable",
21791         FT_NONE, BASE_NONE, NULL, 0,
21792         "gsm_old.NULL", HFILL }},
21793     { &hf_gsm_old_problem,
21794       { "problem", "gsm_old.problem",
21795         FT_UINT32, BASE_DEC, VALS(gsm_old_T_problem_vals), 0,
21796         "gsm_old.T_problem", HFILL }},
21797     { &hf_gsm_old_generalProblem,
21798       { "generalProblem", "gsm_old.generalProblem",
21799         FT_INT32, BASE_DEC, VALS(gsm_old_GeneralProblem_vals), 0,
21800         "gsm_old.GeneralProblem", HFILL }},
21801     { &hf_gsm_old_invokeProblem,
21802       { "invokeProblem", "gsm_old.invokeProblem",
21803         FT_INT32, BASE_DEC, VALS(gsm_old_InvokeProblem_vals), 0,
21804         "gsm_old.InvokeProblem", HFILL }},
21805     { &hf_gsm_old_returnResultProblem,
21806       { "returnResultProblem", "gsm_old.returnResultProblem",
21807         FT_INT32, BASE_DEC, VALS(gsm_old_ReturnResultProblem_vals), 0,
21808         "gsm_old.ReturnResultProblem", HFILL }},
21809     { &hf_gsm_old_returnErrorProblem,
21810       { "returnErrorProblem", "gsm_old.returnErrorProblem",
21811         FT_INT32, BASE_DEC, VALS(gsm_old_ReturnErrorProblem_vals), 0,
21812         "gsm_old.ReturnErrorProblem", HFILL }},
21813     { &hf_gsm_old_localValue,
21814       { "localValue", "gsm_old.localValue",
21815         FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPOperationLocalvalue_vals), 0,
21816         "gsm_old.OperationLocalvalue", HFILL }},
21817     { &hf_gsm_old_globalValue,
21818       { "globalValue", "gsm_old.globalValue",
21819         FT_OID, BASE_NONE, NULL, 0,
21820         "gsm_old.OBJECT_IDENTIFIER", HFILL }},
21821     { &hf_gsm_old_localValue_01,
21822       { "localValue", "gsm_old.localValue",
21823         FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPLocalErrorcode_vals), 0,
21824         "gsm_old.LocalErrorcode", HFILL }},
21825     { &hf_gsm_old_protocolId,
21826       { "protocolId", "gsm_old.protocolId",
21827         FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
21828         "gsm_map.ProtocolId", HFILL }},
21829     { &hf_gsm_old_signalInfo,
21830       { "signalInfo", "gsm_old.signalInfo",
21831         FT_BYTES, BASE_HEX, NULL, 0,
21832         "gsm_map.SignalInfo", HFILL }},
21833     { &hf_gsm_old_extensionContainer,
21834       { "extensionContainer", "gsm_old.extensionContainer",
21835         FT_NONE, BASE_NONE, NULL, 0,
21836         "gsm_map.ExtensionContainer", HFILL }},
21837     { &hf_gsm_old_gsm_BearerCapability,
21838       { "gsm-BearerCapability", "gsm_old.gsm_BearerCapability",
21839         FT_NONE, BASE_NONE, NULL, 0,
21840         "gsm_map.ExternalSignalInfo", HFILL }},
21841     { &hf_gsm_old_isdn_BearerCapability,
21842       { "isdn-BearerCapability", "gsm_old.isdn_BearerCapability",
21843         FT_NONE, BASE_NONE, NULL, 0,
21844         "gsm_map.ExternalSignalInfo", HFILL }},
21845     { &hf_gsm_old_call_Direction,
21846       { "call-Direction", "gsm_old.call_Direction",
21847         FT_BYTES, BASE_HEX, NULL, 0,
21848         "gsm_old.CallDirection", HFILL }},
21849     { &hf_gsm_old_b_Subscriber_Address,
21850       { "b-Subscriber-Address", "gsm_old.b_Subscriber_Address",
21851         FT_BYTES, BASE_HEX, NULL, 0,
21852         "gsm_map.ISDN_AddressString", HFILL }},
21853     { &hf_gsm_old_chosenChannel,
21854       { "chosenChannel", "gsm_old.chosenChannel",
21855         FT_NONE, BASE_NONE, NULL, 0,
21856         "gsm_map.ExternalSignalInfo", HFILL }},
21857     { &hf_gsm_old_lowerLayerCompatibility,
21858       { "lowerLayerCompatibility", "gsm_old.lowerLayerCompatibility",
21859         FT_NONE, BASE_NONE, NULL, 0,
21860         "gsm_map.ExternalSignalInfo", HFILL }},
21861     { &hf_gsm_old_highLayerCompatibility,
21862       { "highLayerCompatibility", "gsm_old.highLayerCompatibility",
21863         FT_NONE, BASE_NONE, NULL, 0,
21864         "gsm_map.ExternalSignalInfo", HFILL }},
21865     { &hf_gsm_old_sIWFSNumber,
21866       { "sIWFSNumber", "gsm_old.sIWFSNumber",
21867         FT_BYTES, BASE_HEX, NULL, 0,
21868         "gsm_map.ISDN_AddressString", HFILL }},
21869     { &hf_gsm_old_imsi,
21870       { "imsi", "gsm_old.imsi",
21871         FT_BYTES, BASE_HEX, NULL, 0,
21872         "gsm_map.IMSI", HFILL }},
21873     { &hf_gsm_old_vlr_Number,
21874       { "vlr-Number", "gsm_old.vlr_Number",
21875         FT_BYTES, BASE_HEX, NULL, 0,
21876         "gsm_map.ISDN_AddressString", HFILL }},
21877     { &hf_gsm_old_targetCellId,
21878       { "targetCellId", "gsm_old.targetCellId",
21879         FT_BYTES, BASE_HEX, NULL, 0,
21880         "gsm_map.GlobalCellId", HFILL }},
21881     { &hf_gsm_old_ho_NumberNotRequired,
21882       { "ho-NumberNotRequired", "gsm_old.ho_NumberNotRequired",
21883         FT_NONE, BASE_NONE, NULL, 0,
21884         "gsm_old.NULL", HFILL }},
21885     { &hf_gsm_old_bss_APDU,
21886       { "bss-APDU", "gsm_old.bss_APDU",
21887         FT_NONE, BASE_NONE, NULL, 0,
21888         "gsm_old.Bss_APDU", HFILL }},
21889     { &hf_gsm_old_handoverNumber,
21890       { "handoverNumber", "gsm_old.handoverNumber",
21891         FT_BYTES, BASE_HEX, NULL, 0,
21892         "gsm_map.ISDN_AddressString", HFILL }},
21893     { &hf_gsm_old_SendAuthenticationInfoResOld_item,
21894       { "Item", "gsm_old.SendAuthenticationInfoResOld_item",
21895         FT_NONE, BASE_NONE, NULL, 0,
21896         "gsm_old.SendAuthenticationInfoResOld_item", HFILL }},
21897     { &hf_gsm_old_rand,
21898       { "rand", "gsm_old.rand",
21899         FT_BYTES, BASE_HEX, NULL, 0,
21900         "gsm_old.RAND", HFILL }},
21901     { &hf_gsm_old_sres,
21902       { "sres", "gsm_old.sres",
21903         FT_BYTES, BASE_HEX, NULL, 0,
21904         "gsm_old.SRES", HFILL }},
21905     { &hf_gsm_old_kc,
21906       { "kc", "gsm_old.kc",
21907         FT_BYTES, BASE_HEX, NULL, 0,
21908         "gsm_old.Kc", HFILL }},
21909     { &hf_gsm_old_tripletList,
21910       { "tripletList", "gsm_old.tripletList",
21911         FT_UINT32, BASE_DEC, NULL, 0,
21912         "gsm_old.TripletListold", HFILL }},
21913     { &hf_gsm_old_TripletListold_item,
21914       { "Item", "gsm_old.TripletListold_item",
21915         FT_NONE, BASE_NONE, NULL, 0,
21916         "gsm_old.AuthenticationTriplet_v2", HFILL }},
21917     { &hf_gsm_old_channelType,
21918       { "channelType", "gsm_old.channelType",
21919         FT_NONE, BASE_NONE, NULL, 0,
21920         "gsm_map.ExternalSignalInfo", HFILL }},
21921     { &hf_gsm_old_securityHeader,
21922       { "securityHeader", "gsm_old.securityHeader",
21923         FT_NONE, BASE_NONE, NULL, 0,
21924         "gsm_old.SecurityHeader", HFILL }},
21925     { &hf_gsm_old_protectedPayload,
21926       { "protectedPayload", "gsm_old.protectedPayload",
21927         FT_BYTES, BASE_HEX, NULL, 0,
21928         "gsm_old.ProtectedPayload", HFILL }},
21929     { &hf_gsm_old_securityParametersIndex,
21930       { "securityParametersIndex", "gsm_old.securityParametersIndex",
21931         FT_BYTES, BASE_HEX, NULL, 0,
21932         "gsm_old.SecurityParametersIndex", HFILL }},
21933     { &hf_gsm_old_originalComponentIdentifier,
21934       { "originalComponentIdentifier", "gsm_old.originalComponentIdentifier",
21935         FT_UINT32, BASE_DEC, VALS(gsm_old_OriginalComponentIdentifier_vals), 0,
21936         "gsm_old.OriginalComponentIdentifier", HFILL }},
21937     { &hf_gsm_old_initialisationVector,
21938       { "initialisationVector", "gsm_old.initialisationVector",
21939         FT_BYTES, BASE_HEX, NULL, 0,
21940         "gsm_old.InitialisationVector", HFILL }},
21941     { &hf_gsm_old_operationCode,
21942       { "operationCode", "gsm_old.operationCode",
21943         FT_UINT32, BASE_DEC, VALS(gsm_old_OperationCode_vals), 0,
21944         "gsm_old.OperationCode", HFILL }},
21945     { &hf_gsm_old_errorCode_01,
21946       { "errorCode", "gsm_old.errorCode",
21947         FT_UINT32, BASE_DEC, VALS(gsm_old_ErrorCode_vals), 0,
21948         "gsm_old.ErrorCode", HFILL }},
21949     { &hf_gsm_old_userInfo,
21950       { "userInfo", "gsm_old.userInfo",
21951         FT_NONE, BASE_NONE, NULL, 0,
21952         "gsm_old.NULL", HFILL }},
21953     { &hf_gsm_old_localValue_02,
21954       { "localValue", "gsm_old.localValue",
21955         FT_INT32, BASE_DEC, NULL, 0,
21956         "gsm_old.INTEGER", HFILL }},
21957     { &hf_gsm_old_msisdn,
21958       { "msisdn", "gsm_old.msisdn",
21959         FT_BYTES, BASE_HEX, NULL, 0,
21960         "gsm_map.ISDN_AddressString", HFILL }},
21961     { &hf_gsm_old_category,
21962       { "category", "gsm_old.category",
21963         FT_BYTES, BASE_HEX, NULL, 0,
21964         "gsm_old.Category", HFILL }},
21965     { &hf_gsm_old_basicService,
21966       { "basicService", "gsm_old.basicService",
21967         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
21968         "gsm_map.BasicServiceCode", HFILL }},
21969     { &hf_gsm_old_operatorSS_Code,
21970       { "operatorSS-Code", "gsm_old.operatorSS_Code",
21971         FT_UINT32, BASE_DEC, NULL, 0,
21972         "gsm_old.T_operatorSS_Code", HFILL }},
21973     { &hf_gsm_old_operatorSS_Code_item,
21974       { "Item", "gsm_old.operatorSS_Code_item",
21975         FT_BYTES, BASE_HEX, NULL, 0,
21976         "gsm_old.OCTET_STRING_SIZE_1", HFILL }},
21977     { &hf_gsm_old_sm_RP_DA,
21978       { "sm-RP-DA", "gsm_old.sm_RP_DA",
21979         FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_DAold_vals), 0,
21980         "gsm_old.SM_RP_DAold", HFILL }},
21981     { &hf_gsm_old_sm_RP_OA,
21982       { "sm-RP-OA", "gsm_old.sm_RP_OA",
21983         FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_OAold_vals), 0,
21984         "gsm_old.SM_RP_OAold", HFILL }},
21985     { &hf_gsm_old_sm_RP_UI,
21986       { "sm-RP-UI", "gsm_old.sm_RP_UI",
21987         FT_BYTES, BASE_HEX, NULL, 0,
21988         "gsm_map.SignalInfo", HFILL }},
21989     { &hf_gsm_old_moreMessagesToSend,
21990       { "moreMessagesToSend", "gsm_old.moreMessagesToSend",
21991         FT_NONE, BASE_NONE, NULL, 0,
21992         "gsm_old.NULL", HFILL }},
21993     { &hf_gsm_old_lmsi,
21994       { "lmsi", "gsm_old.lmsi",
21995         FT_BYTES, BASE_HEX, NULL, 0,
21996         "gsm_map.LMSI", HFILL }},
21997     { &hf_gsm_old_serviceCentreAddressDA,
21998       { "serviceCentreAddressDA", "gsm_old.serviceCentreAddressDA",
21999         FT_BYTES, BASE_HEX, NULL, 0,
22000         "gsm_map.AddressString", HFILL }},
22001     { &hf_gsm_old_noSM_RP_DA,
22002       { "noSM-RP-DA", "gsm_old.noSM_RP_DA",
22003         FT_NONE, BASE_NONE, NULL, 0,
22004         "gsm_old.NULL", HFILL }},
22005     { &hf_gsm_old_msisdn_01,
22006       { "msisdn", "gsm_old.msisdn",
22007         FT_BYTES, BASE_HEX, NULL, 0,
22008         "gsm_old.T_msisdn", HFILL }},
22009     { &hf_gsm_old_serviceCentreAddressOA,
22010       { "serviceCentreAddressOA", "gsm_old.serviceCentreAddressOA",
22011         FT_BYTES, BASE_HEX, NULL, 0,
22012         "gsm_old.T_serviceCentreAddressOA", HFILL }},
22013     { &hf_gsm_old_noSM_RP_OA,
22014       { "noSM-RP-OA", "gsm_old.noSM_RP_OA",
22015         FT_NONE, BASE_NONE, NULL, 0,
22016         "gsm_old.NULL", HFILL }},
22017     { &hf_gsm_old_cug_CheckInfo,
22018       { "cug-CheckInfo", "gsm_old.cug_CheckInfo",
22019         FT_NONE, BASE_NONE, NULL, 0,
22020         "gsm_map_ch.CUG_CheckInfo", HFILL }},
22021     { &hf_gsm_old_numberOfForwarding,
22022       { "numberOfForwarding", "gsm_old.numberOfForwarding",
22023         FT_UINT32, BASE_DEC, NULL, 0,
22024         "gsm_map_ch.NumberOfForwarding", HFILL }},
22025     { &hf_gsm_old_networkSignalInfo,
22026       { "networkSignalInfo", "gsm_old.networkSignalInfo",
22027         FT_NONE, BASE_NONE, NULL, 0,
22028         "gsm_map.ExternalSignalInfo", HFILL }},
22029     { &hf_gsm_old_routingInfo,
22030       { "routingInfo", "gsm_old.routingInfo",
22031         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
22032         "gsm_map_ch.RoutingInfo", HFILL }},
22033
22034 /* --- Module SS-DataTypes --- --- ---                                        */
22035
22036     { &hf_gsm_ss_ss_Code,
22037       { "ss-Code", "gsm_ss.ss_Code",
22038         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
22039         "gsm_map.SS_Code", HFILL }},
22040     { &hf_gsm_ss_ss_Status,
22041       { "ss-Status", "gsm_ss.ss_Status",
22042         FT_BYTES, BASE_HEX, NULL, 0,
22043         "gsm_map_ss.SS_Status", HFILL }},
22044     { &hf_gsm_ss_ss_Notification,
22045       { "ss-Notification", "gsm_ss.ss_Notification",
22046         FT_BYTES, BASE_HEX, NULL, 0,
22047         "gsm_ss.SS_Notification", HFILL }},
22048     { &hf_gsm_ss_callIsWaiting_Indicator,
22049       { "callIsWaiting-Indicator", "gsm_ss.callIsWaiting_Indicator",
22050         FT_NONE, BASE_NONE, NULL, 0,
22051         "gsm_ss.NULL", HFILL }},
22052     { &hf_gsm_ss_callOnHold_Indicator,
22053       { "callOnHold-Indicator", "gsm_ss.callOnHold_Indicator",
22054         FT_UINT32, BASE_DEC, VALS(gsm_ss_CallOnHold_Indicator_vals), 0,
22055         "gsm_ss.CallOnHold_Indicator", HFILL }},
22056     { &hf_gsm_ss_mpty_Indicator,
22057       { "mpty-Indicator", "gsm_ss.mpty_Indicator",
22058         FT_NONE, BASE_NONE, NULL, 0,
22059         "gsm_ss.NULL", HFILL }},
22060     { &hf_gsm_ss_cug_Index,
22061       { "cug-Index", "gsm_ss.cug_Index",
22062         FT_UINT32, BASE_DEC, NULL, 0,
22063         "gsm_map_ms.CUG_Index", HFILL }},
22064     { &hf_gsm_ss_clirSuppressionRejected,
22065       { "clirSuppressionRejected", "gsm_ss.clirSuppressionRejected",
22066         FT_NONE, BASE_NONE, NULL, 0,
22067         "gsm_ss.NULL", HFILL }},
22068     { &hf_gsm_ss_ect_Indicator,
22069       { "ect-Indicator", "gsm_ss.ect_Indicator",
22070         FT_NONE, BASE_NONE, NULL, 0,
22071         "gsm_ss.ECT_Indicator", HFILL }},
22072     { &hf_gsm_ss_nameIndicator,
22073       { "nameIndicator", "gsm_ss.nameIndicator",
22074         FT_NONE, BASE_NONE, NULL, 0,
22075         "gsm_ss.NameIndicator", HFILL }},
22076     { &hf_gsm_ss_ccbs_Feature,
22077       { "ccbs-Feature", "gsm_ss.ccbs_Feature",
22078         FT_NONE, BASE_NONE, NULL, 0,
22079         "gsm_map_ss.CCBS_Feature", HFILL }},
22080     { &hf_gsm_ss_alertingPattern,
22081       { "alertingPattern", "gsm_ss.alertingPattern",
22082         FT_BYTES, BASE_HEX, NULL, 0,
22083         "gsm_map.AlertingPattern", HFILL }},
22084     { &hf_gsm_ss_multicall_Indicator,
22085       { "multicall-Indicator", "gsm_ss.multicall_Indicator",
22086         FT_UINT32, BASE_DEC, VALS(gsm_ss_Multicall_Indicator_vals), 0,
22087         "gsm_ss.Multicall_Indicator", HFILL }},
22088     { &hf_gsm_ss_imsi,
22089       { "imsi", "gsm_ss.imsi",
22090         FT_BYTES, BASE_HEX, NULL, 0,
22091         "gsm_map.IMSI", HFILL }},
22092     { &hf_gsm_ss_originatingEntityNumber,
22093       { "originatingEntityNumber", "gsm_ss.originatingEntityNumber",
22094         FT_BYTES, BASE_HEX, NULL, 0,
22095         "gsm_map.ISDN_AddressString", HFILL }},
22096     { &hf_gsm_ss_msisdn,
22097       { "msisdn", "gsm_ss.msisdn",
22098         FT_BYTES, BASE_HEX, NULL, 0,
22099         "gsm_map.AddressString", HFILL }},
22100     { &hf_gsm_ss_chargingInformation,
22101       { "chargingInformation", "gsm_ss.chargingInformation",
22102         FT_NONE, BASE_NONE, NULL, 0,
22103         "gsm_ss.ChargingInformation", HFILL }},
22104     { &hf_gsm_ss_e1,
22105       { "e1", "gsm_ss.e1",
22106         FT_UINT32, BASE_DEC, NULL, 0,
22107         "gsm_ss.E1", HFILL }},
22108     { &hf_gsm_ss_e2,
22109       { "e2", "gsm_ss.e2",
22110         FT_UINT32, BASE_DEC, NULL, 0,
22111         "gsm_ss.E2", HFILL }},
22112     { &hf_gsm_ss_e3,
22113       { "e3", "gsm_ss.e3",
22114         FT_UINT32, BASE_DEC, NULL, 0,
22115         "gsm_ss.E3", HFILL }},
22116     { &hf_gsm_ss_e4,
22117       { "e4", "gsm_ss.e4",
22118         FT_UINT32, BASE_DEC, NULL, 0,
22119         "gsm_ss.E4", HFILL }},
22120     { &hf_gsm_ss_e5,
22121       { "e5", "gsm_ss.e5",
22122         FT_UINT32, BASE_DEC, NULL, 0,
22123         "gsm_ss.E5", HFILL }},
22124     { &hf_gsm_ss_e6,
22125       { "e6", "gsm_ss.e6",
22126         FT_UINT32, BASE_DEC, NULL, 0,
22127         "gsm_ss.E6", HFILL }},
22128     { &hf_gsm_ss_e7,
22129       { "e7", "gsm_ss.e7",
22130         FT_UINT32, BASE_DEC, NULL, 0,
22131         "gsm_ss.E7", HFILL }},
22132     { &hf_gsm_ss_suppressPrefCUG,
22133       { "suppressPrefCUG", "gsm_ss.suppressPrefCUG",
22134         FT_NONE, BASE_NONE, NULL, 0,
22135         "gsm_ss.NULL", HFILL }},
22136     { &hf_gsm_ss_suppressOA,
22137       { "suppressOA", "gsm_ss.suppressOA",
22138         FT_NONE, BASE_NONE, NULL, 0,
22139         "gsm_ss.NULL", HFILL }},
22140     { &hf_gsm_ss_ect_CallState,
22141       { "ect-CallState", "gsm_ss.ect_CallState",
22142         FT_UINT32, BASE_DEC, VALS(gsm_ss_ECT_CallState_vals), 0,
22143         "gsm_ss.ECT_CallState", HFILL }},
22144     { &hf_gsm_ss_rdn,
22145       { "rdn", "gsm_ss.rdn",
22146         FT_UINT32, BASE_DEC, VALS(gsm_ss_RDN_vals), 0,
22147         "gsm_ss.RDN", HFILL }},
22148     { &hf_gsm_ss_callingName,
22149       { "callingName", "gsm_ss.callingName",
22150         FT_UINT32, BASE_DEC, VALS(gsm_ss_Name_vals), 0,
22151         "gsm_ss.Name", HFILL }},
22152     { &hf_gsm_ss_namePresentationAllowed,
22153       { "namePresentationAllowed", "gsm_ss.namePresentationAllowed",
22154         FT_NONE, BASE_NONE, NULL, 0,
22155         "gsm_ss.NameSet", HFILL }},
22156     { &hf_gsm_ss_presentationRestricted,
22157       { "presentationRestricted", "gsm_ss.presentationRestricted",
22158         FT_NONE, BASE_NONE, NULL, 0,
22159         "gsm_ss.NULL", HFILL }},
22160     { &hf_gsm_ss_nameUnavailable,
22161       { "nameUnavailable", "gsm_ss.nameUnavailable",
22162         FT_NONE, BASE_NONE, NULL, 0,
22163         "gsm_ss.NULL", HFILL }},
22164     { &hf_gsm_ss_namePresentationRestricted,
22165       { "namePresentationRestricted", "gsm_ss.namePresentationRestricted",
22166         FT_NONE, BASE_NONE, NULL, 0,
22167         "gsm_ss.NameSet", HFILL }},
22168     { &hf_gsm_ss_dataCodingScheme,
22169       { "dataCodingScheme", "gsm_ss.dataCodingScheme",
22170         FT_BYTES, BASE_HEX, NULL, 0,
22171         "gsm_map_ss.USSD_DataCodingScheme", HFILL }},
22172     { &hf_gsm_ss_lengthInCharacters,
22173       { "lengthInCharacters", "gsm_ss.lengthInCharacters",
22174         FT_INT32, BASE_DEC, NULL, 0,
22175         "gsm_ss.INTEGER", HFILL }},
22176     { &hf_gsm_ss_nameString,
22177       { "nameString", "gsm_ss.nameString",
22178         FT_BYTES, BASE_HEX, NULL, 0,
22179         "gsm_map_ss.USSD_String", HFILL }},
22180     { &hf_gsm_ss_presentationAllowedAddress,
22181       { "presentationAllowedAddress", "gsm_ss.presentationAllowedAddress",
22182         FT_NONE, BASE_NONE, NULL, 0,
22183         "gsm_ss.RemotePartyNumber", HFILL }},
22184     { &hf_gsm_ss_numberNotAvailableDueToInterworking,
22185       { "numberNotAvailableDueToInterworking", "gsm_ss.numberNotAvailableDueToInterworking",
22186         FT_NONE, BASE_NONE, NULL, 0,
22187         "gsm_ss.NULL", HFILL }},
22188     { &hf_gsm_ss_presentationRestrictedAddress,
22189       { "presentationRestrictedAddress", "gsm_ss.presentationRestrictedAddress",
22190         FT_NONE, BASE_NONE, NULL, 0,
22191         "gsm_ss.RemotePartyNumber", HFILL }},
22192     { &hf_gsm_ss_partyNumber,
22193       { "partyNumber", "gsm_ss.partyNumber",
22194         FT_BYTES, BASE_HEX, NULL, 0,
22195         "gsm_map.ISDN_AddressString", HFILL }},
22196     { &hf_gsm_ss_partyNumberSubaddress,
22197       { "partyNumberSubaddress", "gsm_ss.partyNumberSubaddress",
22198         FT_BYTES, BASE_HEX, NULL, 0,
22199         "gsm_map.ISDN_SubaddressString", HFILL }},
22200     { &hf_gsm_ss_deflectedToNumber,
22201       { "deflectedToNumber", "gsm_ss.deflectedToNumber",
22202         FT_BYTES, BASE_HEX, NULL, 0,
22203         "gsm_map.AddressString", HFILL }},
22204     { &hf_gsm_ss_deflectedToSubaddress,
22205       { "deflectedToSubaddress", "gsm_ss.deflectedToSubaddress",
22206         FT_BYTES, BASE_HEX, NULL, 0,
22207         "gsm_map.ISDN_SubaddressString", HFILL }},
22208     { &hf_gsm_ss_uUS_Service,
22209       { "uUS-Service", "gsm_ss.uUS_Service",
22210         FT_UINT32, BASE_DEC, VALS(gsm_ss_UUS_Service_vals), 0,
22211         "gsm_ss.UUS_Service", HFILL }},
22212     { &hf_gsm_ss_uUS_Required,
22213       { "uUS-Required", "gsm_ss.uUS_Required",
22214         FT_BOOLEAN, 8, NULL, 0,
22215         "gsm_ss.BOOLEAN", HFILL }},
22216     { &hf_gsm_ss_notificationType,
22217       { "notificationType", "gsm_ss.notificationType",
22218         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
22219         "gsm_map_ms.NotificationToMSUser", HFILL }},
22220     { &hf_gsm_ss_locationType,
22221       { "locationType", "gsm_ss.locationType",
22222         FT_NONE, BASE_NONE, NULL, 0,
22223         "gsm_map_lcs.LocationType", HFILL }},
22224     { &hf_gsm_ss_lcsClientExternalID,
22225       { "lcsClientExternalID", "gsm_ss.lcsClientExternalID",
22226         FT_NONE, BASE_NONE, NULL, 0,
22227         "gsm_map.LCSClientExternalID", HFILL }},
22228     { &hf_gsm_ss_lcsClientName,
22229       { "lcsClientName", "gsm_ss.lcsClientName",
22230         FT_NONE, BASE_NONE, NULL, 0,
22231         "gsm_map_lcs.LCSClientName", HFILL }},
22232     { &hf_gsm_ss_lcsRequestorID,
22233       { "lcsRequestorID", "gsm_ss.lcsRequestorID",
22234         FT_NONE, BASE_NONE, NULL, 0,
22235         "gsm_map_lcs.LCSRequestorID", HFILL }},
22236     { &hf_gsm_ss_lcsCodeword,
22237       { "lcsCodeword", "gsm_ss.lcsCodeword",
22238         FT_NONE, BASE_NONE, NULL, 0,
22239         "gsm_map_lcs.LCSCodeword", HFILL }},
22240     { &hf_gsm_ss_lcsServiceTypeID,
22241       { "lcsServiceTypeID", "gsm_ss.lcsServiceTypeID",
22242         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
22243         "gsm_map.LCSServiceTypeID", HFILL }},
22244     { &hf_gsm_ss_verificationResponse,
22245       { "verificationResponse", "gsm_ss.verificationResponse",
22246         FT_UINT32, BASE_DEC, VALS(gsm_ss_VerificationResponse_vals), 0,
22247         "gsm_ss.VerificationResponse", HFILL }},
22248     { &hf_gsm_ss_molr_Type,
22249       { "molr-Type", "gsm_ss.molr_Type",
22250         FT_UINT32, BASE_DEC, VALS(gsm_ss_MOLR_Type_vals), 0,
22251         "gsm_ss.MOLR_Type", HFILL }},
22252     { &hf_gsm_ss_locationMethod,
22253       { "locationMethod", "gsm_ss.locationMethod",
22254         FT_UINT32, BASE_DEC, VALS(gsm_ss_LocationMethod_vals), 0,
22255         "gsm_ss.LocationMethod", HFILL }},
22256     { &hf_gsm_ss_lcs_QoS,
22257       { "lcs-QoS", "gsm_ss.lcs_QoS",
22258         FT_NONE, BASE_NONE, NULL, 0,
22259         "gsm_map_lcs.LCS_QoS", HFILL }},
22260     { &hf_gsm_ss_mlc_Number,
22261       { "mlc-Number", "gsm_ss.mlc_Number",
22262         FT_BYTES, BASE_HEX, NULL, 0,
22263         "gsm_map.ISDN_AddressString", HFILL }},
22264     { &hf_gsm_ss_gpsAssistanceData,
22265       { "gpsAssistanceData", "gsm_ss.gpsAssistanceData",
22266         FT_BYTES, BASE_HEX, NULL, 0,
22267         "gsm_ss.GPSAssistanceData", HFILL }},
22268     { &hf_gsm_ss_supportedGADShapes,
22269       { "supportedGADShapes", "gsm_ss.supportedGADShapes",
22270         FT_BYTES, BASE_HEX, NULL, 0,
22271         "gsm_map_lcs.SupportedGADShapes", HFILL }},
22272     { &hf_gsm_ss_ageOfLocationInfo,
22273       { "ageOfLocationInfo", "gsm_ss.ageOfLocationInfo",
22274         FT_UINT32, BASE_DEC, NULL, 0,
22275         "gsm_map.AgeOfLocationInformation", HFILL }},
22276     { &hf_gsm_ss_pseudonymIndicator,
22277       { "pseudonymIndicator", "gsm_ss.pseudonymIndicator",
22278         FT_NONE, BASE_NONE, NULL, 0,
22279         "gsm_ss.NULL", HFILL }},
22280     { &hf_gsm_ss_h_gmlc_address,
22281       { "h-gmlc-address", "gsm_ss.h_gmlc_address",
22282         FT_BYTES, BASE_HEX, NULL, 0,
22283         "gsm_map_ms.GSN_Address", HFILL }},
22284     { &hf_gsm_ss_locationEstimate,
22285       { "locationEstimate", "gsm_ss.locationEstimate",
22286         FT_BYTES, BASE_HEX, NULL, 0,
22287         "gsm_map_lcs.Ext_GeographicalInformation", HFILL }},
22288     { &hf_gsm_ss_velocityEstimate,
22289       { "velocityEstimate", "gsm_ss.velocityEstimate",
22290         FT_BYTES, BASE_HEX, NULL, 0,
22291         "gsm_map_lcs.VelocityEstimate", HFILL }},
22292     { &hf_gsm_ss_referenceNumber,
22293       { "referenceNumber", "gsm_ss.referenceNumber",
22294         FT_BYTES, BASE_HEX, NULL, 0,
22295         "gsm_map_lcs.LCS_ReferenceNumber", HFILL }},
22296     { &hf_gsm_ss_periodicLDRInfo,
22297       { "periodicLDRInfo", "gsm_ss.periodicLDRInfo",
22298         FT_NONE, BASE_NONE, NULL, 0,
22299         "gsm_map_lcs.PeriodicLDRInfo", HFILL }},
22300     { &hf_gsm_ss_locationUpdateRequest,
22301       { "locationUpdateRequest", "gsm_ss.locationUpdateRequest",
22302         FT_NONE, BASE_NONE, NULL, 0,
22303         "gsm_ss.NULL", HFILL }},
22304     { &hf_gsm_ss_sequenceNumber,
22305       { "sequenceNumber", "gsm_ss.sequenceNumber",
22306         FT_UINT32, BASE_DEC, NULL, 0,
22307         "gsm_map_lcs.SequenceNumber", HFILL }},
22308     { &hf_gsm_ss_terminationCause,
22309       { "terminationCause", "gsm_ss.terminationCause",
22310         FT_UINT32, BASE_DEC, VALS(gsm_ss_TerminationCause_vals), 0,
22311         "gsm_ss.TerminationCause", HFILL }},
22312     { &hf_gsm_ss_mo_lrShortCircuit,
22313       { "mo-lrShortCircuit", "gsm_ss.mo_lrShortCircuit",
22314         FT_NONE, BASE_NONE, NULL, 0,
22315         "gsm_ss.NULL", HFILL }},
22316     { &hf_gsm_ss_ganssAssistanceData,
22317       { "ganssAssistanceData", "gsm_ss.ganssAssistanceData",
22318         FT_BYTES, BASE_HEX, NULL, 0,
22319         "gsm_ss.GANSSAssistanceData", HFILL }},
22320     { &hf_gsm_ss_decipheringKeys,
22321       { "decipheringKeys", "gsm_ss.decipheringKeys",
22322         FT_BYTES, BASE_HEX, NULL, 0,
22323         "gsm_ss.DecipheringKeys", HFILL }},
22324     { &hf_gsm_ss_add_LocationEstimate,
22325       { "add-LocationEstimate", "gsm_ss.add_LocationEstimate",
22326         FT_BYTES, BASE_HEX, NULL, 0,
22327         "gsm_map_lcs.Add_GeographicalInformation", HFILL }},
22328     { &hf_gsm_ss_reportingPLMNList,
22329       { "reportingPLMNList", "gsm_ss.reportingPLMNList",
22330         FT_NONE, BASE_NONE, NULL, 0,
22331         "gsm_map_lcs.ReportingPLMNList", HFILL }},
22332     { &hf_gsm_ss_deferredLocationEventType,
22333       { "deferredLocationEventType", "gsm_ss.deferredLocationEventType",
22334         FT_BYTES, BASE_HEX, NULL, 0,
22335         "gsm_map_lcs.DeferredLocationEventType", HFILL }},
22336     { &hf_gsm_ss_areaEventInfo,
22337       { "areaEventInfo", "gsm_ss.areaEventInfo",
22338         FT_NONE, BASE_NONE, NULL, 0,
22339         "gsm_map_lcs.AreaEventInfo", HFILL }},
22340     { &hf_gsm_ss_qoS,
22341       { "qoS", "gsm_ss.qoS",
22342         FT_NONE, BASE_NONE, NULL, 0,
22343         "gsm_map_lcs.LCS_QoS", HFILL }},
22344
22345 /*--- End of included file: packet-gsm_map-hfarr.c ---*/
22346 #line 2629 "packet-gsmmap-template.c"
22347   };
22348
22349   /* List of subtrees */
22350   static gint *ett[] = {
22351     &ett_gsm_map,
22352     &ett_gsm_map_InvokeId,
22353     &ett_gsm_map_InvokePDU,
22354     &ett_gsm_map_ReturnResultPDU,
22355         &ett_gsm_map_ReturnErrorPDU,
22356     &ett_gsm_map_ReturnResult_result,
22357         &ett_gsm_map_ReturnError_result,
22358     &ett_gsm_map_GSMMAPPDU,
22359         &ett_gsm_map_ext_qos_subscribed,
22360         &ett_gsm_map_pdptypenumber,
22361         &ett_gsm_map_RAIdentity,
22362         &ett_gsm_map_LAIFixedLength,
22363         &ett_gsm_map_isdn_address_string,
22364         &ett_gsm_map_geo_desc,
22365         &ett_gsm_map_LongSignalInfo,
22366         &ett_gsm_map_RadioResourceInformation,
22367         &ett_gsm_map_MSNetworkCapability,
22368         &ett_gsm_map_MSRadioAccessCapability,
22369         &ett_gsm_map_externalsignalinfo,
22370         &ett_gsm_map_cbs_data_coding,
22371         &ett_gsm_map_GlobalCellId,
22372         &ett_gsm_map_GeographicalInformation,
22373
22374
22375 /*--- Included file: packet-gsm_map-ettarr.c ---*/
22376 #line 1 "packet-gsm_map-ettarr.c"
22377
22378 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
22379
22380     &ett_gsm_map_ExtensionContainer,
22381     &ett_gsm_map_SLR_ArgExtensionContainer,
22382     &ett_gsm_map_PrivateExtensionList,
22383     &ett_gsm_map_PrivateExtension,
22384     &ett_gsm_map_PCS_Extensions,
22385     &ett_gsm_map_SLR_Arg_PCS_Extensions,
22386
22387 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
22388
22389     &ett_gsm_map_ExternalSignalInfo,
22390     &ett_gsm_map_Ext_ExternalSignalInfo,
22391     &ett_gsm_map_AccessNetworkSignalInfo,
22392     &ett_gsm_map_Identity,
22393     &ett_gsm_map_IMSI_WithLMSI,
22394     &ett_gsm_map_HLR_List,
22395     &ett_gsm_map_NAEA_PreferredCI,
22396     &ett_gsm_map_SubscriberIdentity,
22397     &ett_gsm_map_LCSClientExternalID,
22398     &ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
22399     &ett_gsm_map_BasicServiceCode,
22400     &ett_gsm_map_Ext_BasicServiceCode,
22401     &ett_gsm_map_EMLPP_Info,
22402     &ett_gsm_map_MC_SS_Info,
22403
22404 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
22405
22406     &ett_gsm_map_ss_RegisterSS_Arg,
22407     &ett_gsm_map_ss_SS_Info,
22408     &ett_gsm_map_ss_ForwardingInfo,
22409     &ett_gsm_map_ss_ForwardingFeatureList,
22410     &ett_gsm_map_ss_ForwardingFeature,
22411     &ett_gsm_map_ss_CallBarringInfo,
22412     &ett_gsm_map_ss_CallBarringFeatureList,
22413     &ett_gsm_map_ss_CallBarringFeature,
22414     &ett_gsm_map_ss_SS_Data,
22415     &ett_gsm_map_ss_SS_SubscriptionOption,
22416     &ett_gsm_map_ss_SS_ForBS_Code,
22417     &ett_gsm_map_ss_GenericServiceInfo,
22418     &ett_gsm_map_ss_CCBS_FeatureList,
22419     &ett_gsm_map_ss_CCBS_Feature,
22420     &ett_gsm_map_ss_InterrogateSS_Res,
22421     &ett_gsm_map_ss_USSD_Arg,
22422     &ett_gsm_map_ss_USSD_Res,
22423     &ett_gsm_map_ss_SS_List,
22424     &ett_gsm_map_ss_BasicServiceGroupList,
22425     &ett_gsm_map_ss_SS_InvocationNotificationArg,
22426     &ett_gsm_map_ss_SS_InvocationNotificationRes,
22427     &ett_gsm_map_ss_SS_EventSpecification,
22428     &ett_gsm_map_ss_RegisterCC_EntryArg,
22429     &ett_gsm_map_ss_CCBS_Data,
22430     &ett_gsm_map_ss_ServiceIndicator,
22431     &ett_gsm_map_ss_RegisterCC_EntryRes,
22432     &ett_gsm_map_ss_EraseCC_EntryArg,
22433     &ett_gsm_map_ss_EraseCC_EntryRes,
22434
22435 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
22436
22437     &ett_gsm_map_er_RoamingNotAllowedParam,
22438     &ett_gsm_map_er_CallBarredParam,
22439     &ett_gsm_map_er_ExtensibleCallBarredParam,
22440     &ett_gsm_map_er_CUG_RejectParam,
22441     &ett_gsm_map_er_SS_IncompatibilityCause,
22442     &ett_gsm_map_er_SM_DeliveryFailureCause,
22443     &ett_gsm_map_er_AbsentSubscriberSM_Param,
22444     &ett_gsm_map_er_SystemFailureParam,
22445     &ett_gsm_map_er_ExtensibleSystemFailureParam,
22446     &ett_gsm_map_er_DataMissingParam,
22447     &ett_gsm_map_er_UnexpectedDataParam,
22448     &ett_gsm_map_er_FacilityNotSupParam,
22449     &ett_gsm_map_er_OR_NotAllowedParam,
22450     &ett_gsm_map_er_UnknownSubscriberParam,
22451     &ett_gsm_map_er_NumberChangedParam,
22452     &ett_gsm_map_er_UnidentifiedSubParam,
22453     &ett_gsm_map_er_IllegalSubscriberParam,
22454     &ett_gsm_map_er_IllegalEquipmentParam,
22455     &ett_gsm_map_er_BearerServNotProvParam,
22456     &ett_gsm_map_er_TeleservNotProvParam,
22457     &ett_gsm_map_er_TracingBufferFullParam,
22458     &ett_gsm_map_er_NoRoamingNbParam,
22459     &ett_gsm_map_er_AbsentSubscriberParam,
22460     &ett_gsm_map_er_BusySubscriberParam,
22461     &ett_gsm_map_er_NoSubscriberReplyParam,
22462     &ett_gsm_map_er_ForwardingViolationParam,
22463     &ett_gsm_map_er_ForwardingFailedParam,
22464     &ett_gsm_map_er_ATI_NotAllowedParam,
22465     &ett_gsm_map_er_ATSI_NotAllowedParam,
22466     &ett_gsm_map_er_ATM_NotAllowedParam,
22467     &ett_gsm_map_er_IllegalSS_OperationParam,
22468     &ett_gsm_map_er_SS_NotAvailableParam,
22469     &ett_gsm_map_er_SS_SubscriptionViolationParam,
22470     &ett_gsm_map_er_InformationNotAvailableParam,
22471     &ett_gsm_map_er_SubBusyForMT_SMS_Param,
22472     &ett_gsm_map_er_MessageWaitListFullParam,
22473     &ett_gsm_map_er_ResourceLimitationParam,
22474     &ett_gsm_map_er_NoGroupCallNbParam,
22475     &ett_gsm_map_er_IncompatibleTerminalParam,
22476     &ett_gsm_map_er_ShortTermDenialParam,
22477     &ett_gsm_map_er_LongTermDenialParam,
22478     &ett_gsm_map_er_UnauthorizedRequestingNetwork_Param,
22479     &ett_gsm_map_er_UnauthorizedLCSClient_Param,
22480     &ett_gsm_map_er_PositionMethodFailure_Param,
22481     &ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param,
22482     &ett_gsm_map_er_MM_EventNotSupported_Param,
22483     &ett_gsm_map_er_TargetCellOutsideGCA_Param,
22484     &ett_gsm_map_er_OngoingGroupCallParam,
22485
22486 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
22487
22488     &ett_gsm_map_sm_RoutingInfoForSM_Arg,
22489     &ett_gsm_map_sm_RoutingInfoForSM_Res,
22490     &ett_gsm_map_sm_LocationInfoWithLMSI,
22491     &ett_gsm_map_sm_Additional_Number,
22492     &ett_gsm_map_sm_MO_ForwardSM_Arg,
22493     &ett_gsm_map_sm_MO_ForwardSM_Res,
22494     &ett_gsm_map_sm_MT_ForwardSM_Arg,
22495     &ett_gsm_map_sm_MT_ForwardSM_Res,
22496     &ett_gsm_map_sm_SM_RP_DA,
22497     &ett_gsm_map_sm_SM_RP_OA,
22498     &ett_gsm_map_sm_ReportSM_DeliveryStatusArg,
22499     &ett_gsm_map_sm_ReportSM_DeliveryStatusRes,
22500     &ett_gsm_map_sm_AlertServiceCentreArg,
22501     &ett_gsm_map_sm_InformServiceCentreArg,
22502     &ett_gsm_map_sm_MW_Status,
22503     &ett_gsm_map_sm_ReadyForSM_Arg,
22504     &ett_gsm_map_sm_ReadyForSM_Res,
22505     &ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg,
22506     &ett_gsm_map_sm_MT_ForwardSM_VGCS_Res,
22507     &ett_gsm_map_sm_DispatcherList,
22508
22509 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
22510
22511     &ett_gsm_map_om_ActivateTraceModeArg,
22512     &ett_gsm_map_om_TraceDepthList,
22513     &ett_gsm_map_om_TraceNE_TypeList,
22514     &ett_gsm_map_om_TraceInterfaceList,
22515     &ett_gsm_map_om_MSC_S_InterfaceList,
22516     &ett_gsm_map_om_MGW_InterfaceList,
22517     &ett_gsm_map_om_SGSN_InterfaceList,
22518     &ett_gsm_map_om_GGSN_InterfaceList,
22519     &ett_gsm_map_om_RNC_InterfaceList,
22520     &ett_gsm_map_om_BMSC_InterfaceList,
22521     &ett_gsm_map_om_TraceEventList,
22522     &ett_gsm_map_om_MSC_S_EventList,
22523     &ett_gsm_map_om_MGW_EventList,
22524     &ett_gsm_map_om_SGSN_EventList,
22525     &ett_gsm_map_om_GGSN_EventList,
22526     &ett_gsm_map_om_BMSC_EventList,
22527     &ett_gsm_map_om_TracePropagationList,
22528     &ett_gsm_map_om_ActivateTraceModeRes,
22529     &ett_gsm_map_om_DeactivateTraceModeArg,
22530     &ett_gsm_map_om_DeactivateTraceModeRes,
22531
22532 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
22533
22534     &ett_gsm_map_ms_UpdateLocationArg,
22535     &ett_gsm_map_ms_VLR_Capability,
22536     &ett_gsm_map_ms_SupportedRAT_Types,
22537     &ett_gsm_map_ms_SuperChargerInfo,
22538     &ett_gsm_map_ms_SupportedLCS_CapabilitySets,
22539     &ett_gsm_map_ms_UpdateLocationRes,
22540     &ett_gsm_map_ms_ADD_Info,
22541     &ett_gsm_map_ms_CancelLocationArg_U,
22542     &ett_gsm_map_ms_CancelLocationRes,
22543     &ett_gsm_map_ms_PurgeMS_Arg_U,
22544     &ett_gsm_map_ms_PurgeMS_Res,
22545     &ett_gsm_map_ms_SendIdentificationArg,
22546     &ett_gsm_map_ms_SendIdentificationRes_U,
22547     &ett_gsm_map_ms_AuthenticationSetList,
22548     &ett_gsm_map_ms_TripletList,
22549     &ett_gsm_map_ms_QuintupletList,
22550     &ett_gsm_map_ms_AuthenticationTriplet,
22551     &ett_gsm_map_ms_AuthenticationQuintuplet,
22552     &ett_gsm_map_ms_CurrentSecurityContext,
22553     &ett_gsm_map_ms_GSM_SecurityContextData,
22554     &ett_gsm_map_ms_UMTS_SecurityContextData,
22555     &ett_gsm_map_ms_AuthenticationFailureReportArg,
22556     &ett_gsm_map_ms_AuthenticationFailureReportRes,
22557     &ett_gsm_map_ms_UpdateGprsLocationArg,
22558     &ett_gsm_map_ms_SGSN_Capability,
22559     &ett_gsm_map_ms_UpdateGprsLocationRes,
22560     &ett_gsm_map_ms_ForwardAccessSignalling_Arg_U,
22561     &ett_gsm_map_ms_AllowedUMTS_Algorithms,
22562     &ett_gsm_map_ms_PrepareHO_Arg_U,
22563     &ett_gsm_map_ms_BSSMAP_ServiceHandoverList,
22564     &ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo,
22565     &ett_gsm_map_ms_RadioResourceList,
22566     &ett_gsm_map_ms_RadioResource,
22567     &ett_gsm_map_ms_PrepareHO_Res_U,
22568     &ett_gsm_map_ms_SelectedUMTS_Algorithms,
22569     &ett_gsm_map_ms_ChosenRadioResourceInformation,
22570     &ett_gsm_map_ms_PrepareSubsequentHO_Arg_U,
22571     &ett_gsm_map_ms_PrepareSubsequentHO_Res_U,
22572     &ett_gsm_map_ms_ProcessAccessSignalling_Arg_U,
22573     &ett_gsm_map_ms_SupportedCodecsList,
22574     &ett_gsm_map_ms_CodecList,
22575     &ett_gsm_map_ms_SendEndSignal_Arg_U,
22576     &ett_gsm_map_ms_SendEndSignal_Res,
22577     &ett_gsm_map_ms_RelocationNumberList,
22578     &ett_gsm_map_ms_RelocationNumber,
22579     &ett_gsm_map_ms_SendAuthenticationInfoArg,
22580     &ett_gsm_map_ms_Re_synchronisationInfo,
22581     &ett_gsm_map_ms_SendAuthenticationInfoRes_U,
22582     &ett_gsm_map_ms_CheckIMEI_Arg,
22583     &ett_gsm_map_ms_CheckIMEI_Res,
22584     &ett_gsm_map_ms_RequestedEquipmentInfo,
22585     &ett_gsm_map_ms_UESBI_Iu,
22586     &ett_gsm_map_ms_InsertSubscriberDataArg,
22587     &ett_gsm_map_ms_AccessRestrictionData,
22588     &ett_gsm_map_ms_LCSInformation,
22589     &ett_gsm_map_ms_GMLC_List,
22590     &ett_gsm_map_ms_GPRSDataList,
22591     &ett_gsm_map_ms_PDP_Context,
22592     &ett_gsm_map_ms_GPRSSubscriptionData,
22593     &ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo,
22594     &ett_gsm_map_ms_GPRS_CSI,
22595     &ett_gsm_map_ms_GPRS_CamelTDPDataList,
22596     &ett_gsm_map_ms_GPRS_CamelTDPData,
22597     &ett_gsm_map_ms_LSADataList,
22598     &ett_gsm_map_ms_LSAData,
22599     &ett_gsm_map_ms_LSAInformation,
22600     &ett_gsm_map_ms_BearerServiceList,
22601     &ett_gsm_map_ms_TeleserviceList,
22602     &ett_gsm_map_ms_ODB_Data,
22603     &ett_gsm_map_ms_ODB_GeneralData,
22604     &ett_gsm_map_ms_ODB_HPLMN_Data,
22605     &ett_gsm_map_ms_Ext_SS_InfoList,
22606     &ett_gsm_map_ms_Ext_SS_Info,
22607     &ett_gsm_map_ms_Ext_ForwInfo,
22608     &ett_gsm_map_ms_Ext_ForwFeatureList,
22609     &ett_gsm_map_ms_Ext_ForwFeature,
22610     &ett_gsm_map_ms_Ext_CallBarInfo,
22611     &ett_gsm_map_ms_Ext_CallBarFeatureList,
22612     &ett_gsm_map_ms_Ext_CallBarringFeature,
22613     &ett_gsm_map_ms_CUG_Info,
22614     &ett_gsm_map_ms_CUG_SubscriptionList,
22615     &ett_gsm_map_ms_CUG_Subscription,
22616     &ett_gsm_map_ms_CUG_FeatureList,
22617     &ett_gsm_map_ms_Ext_BasicServiceGroupList,
22618     &ett_gsm_map_ms_CUG_Feature,
22619     &ett_gsm_map_ms_Ext_SS_Data,
22620     &ett_gsm_map_ms_LCS_PrivacyExceptionList,
22621     &ett_gsm_map_ms_LCS_PrivacyClass,
22622     &ett_gsm_map_ms_ExternalClientList,
22623     &ett_gsm_map_ms_PLMNClientList,
22624     &ett_gsm_map_ms_Ext_ExternalClientList,
22625     &ett_gsm_map_ms_ExternalClient,
22626     &ett_gsm_map_ms_ServiceTypeList,
22627     &ett_gsm_map_ms_ServiceType,
22628     &ett_gsm_map_ms_MOLR_List,
22629     &ett_gsm_map_ms_MOLR_Class,
22630     &ett_gsm_map_ms_ZoneCodeList,
22631     &ett_gsm_map_ms_InsertSubscriberDataRes,
22632     &ett_gsm_map_ms_DeleteSubscriberDataArg,
22633     &ett_gsm_map_ms_SpecificCSI_Withdraw,
22634     &ett_gsm_map_ms_GPRSSubscriptionDataWithdraw,
22635     &ett_gsm_map_ms_ContextIdList,
22636     &ett_gsm_map_ms_LSAInformationWithdraw,
22637     &ett_gsm_map_ms_LSAIdentityList,
22638     &ett_gsm_map_ms_BasicServiceList,
22639     &ett_gsm_map_ms_DeleteSubscriberDataRes,
22640     &ett_gsm_map_ms_VlrCamelSubscriptionInfo,
22641     &ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList,
22642     &ett_gsm_map_ms_MT_smsCAMELTDP_Criteria,
22643     &ett_gsm_map_ms_TPDU_TypeCriterion,
22644     &ett_gsm_map_ms_D_CSI,
22645     &ett_gsm_map_ms_DP_AnalysedInfoCriteriaList,
22646     &ett_gsm_map_ms_DP_AnalysedInfoCriterium,
22647     &ett_gsm_map_ms_SS_CSI,
22648     &ett_gsm_map_ms_SS_CamelData,
22649     &ett_gsm_map_ms_SS_EventList,
22650     &ett_gsm_map_ms_O_CSI,
22651     &ett_gsm_map_ms_O_BcsmCamelTDPDataList,
22652     &ett_gsm_map_ms_O_BcsmCamelTDPData,
22653     &ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList,
22654     &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList,
22655     &ett_gsm_map_ms_O_BcsmCamelTDP_Criteria,
22656     &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria,
22657     &ett_gsm_map_ms_DestinationNumberCriteria,
22658     &ett_gsm_map_ms_DestinationNumberList,
22659     &ett_gsm_map_ms_DestinationNumberLengthList,
22660     &ett_gsm_map_ms_BasicServiceCriteria,
22661     &ett_gsm_map_ms_O_CauseValueCriteria,
22662     &ett_gsm_map_ms_T_CauseValueCriteria,
22663     &ett_gsm_map_ms_SupportedCamelPhases,
22664     &ett_gsm_map_ms_OfferedCamel4CSIs,
22665     &ett_gsm_map_ms_OfferedCamel4Functionalities,
22666     &ett_gsm_map_ms_SMS_CSI,
22667     &ett_gsm_map_ms_SMS_CAMEL_TDP_DataList,
22668     &ett_gsm_map_ms_SMS_CAMEL_TDP_Data,
22669     &ett_gsm_map_ms_M_CSI,
22670     &ett_gsm_map_ms_MG_CSI,
22671     &ett_gsm_map_ms_MobilityTriggers,
22672     &ett_gsm_map_ms_T_CSI,
22673     &ett_gsm_map_ms_T_BcsmCamelTDPDataList,
22674     &ett_gsm_map_ms_T_BcsmCamelTDPData,
22675     &ett_gsm_map_ms_SendRoutingInfoForGprsArg,
22676     &ett_gsm_map_ms_SendRoutingInfoForGprsRes,
22677     &ett_gsm_map_ms_FailureReportArg,
22678     &ett_gsm_map_ms_FailureReportRes,
22679     &ett_gsm_map_ms_NoteMsPresentForGprsArg,
22680     &ett_gsm_map_ms_NoteMsPresentForGprsRes,
22681     &ett_gsm_map_ms_ResetArg,
22682     &ett_gsm_map_ms_RestoreDataArg,
22683     &ett_gsm_map_ms_RestoreDataRes,
22684     &ett_gsm_map_ms_VBSDataList,
22685     &ett_gsm_map_ms_VGCSDataList,
22686     &ett_gsm_map_ms_VoiceGroupCallData,
22687     &ett_gsm_map_ms_AdditionalSubscriptions,
22688     &ett_gsm_map_ms_VoiceBroadcastData,
22689     &ett_gsm_map_ms_ProvideSubscriberInfoArg,
22690     &ett_gsm_map_ms_ProvideSubscriberInfoRes,
22691     &ett_gsm_map_ms_SubscriberInfo,
22692     &ett_gsm_map_ms_MNPInfoRes,
22693     &ett_gsm_map_ms_GPRSMSClass,
22694     &ett_gsm_map_ms_RequestedInfo,
22695     &ett_gsm_map_ms_LocationInformation,
22696     &ett_gsm_map_ms_LocationInformationGPRS,
22697     &ett_gsm_map_ms_SubscriberState,
22698     &ett_gsm_map_ms_PS_SubscriberState,
22699     &ett_gsm_map_ms_PDP_ContextInfoList,
22700     &ett_gsm_map_ms_PDP_ContextInfo,
22701     &ett_gsm_map_ms_AnyTimeInterrogationArg,
22702     &ett_gsm_map_ms_AnyTimeInterrogationRes,
22703     &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg,
22704     &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes,
22705     &ett_gsm_map_ms_RequestedSubscriptionInfo,
22706     &ett_gsm_map_ms_MSISDN_BS_List,
22707     &ett_gsm_map_ms_MSISDN_BS,
22708     &ett_gsm_map_ms_CallForwardingData,
22709     &ett_gsm_map_ms_CallBarringData,
22710     &ett_gsm_map_ms_ODB_Info,
22711     &ett_gsm_map_ms_CAMEL_SubscriptionInfo,
22712     &ett_gsm_map_ms_AnyTimeModificationArg,
22713     &ett_gsm_map_ms_AnyTimeModificationRes,
22714     &ett_gsm_map_ms_ModificationRequestFor_CF_Info,
22715     &ett_gsm_map_ms_ModificationRequestFor_CB_Info,
22716     &ett_gsm_map_ms_ModificationRequestFor_ODB_data,
22717     &ett_gsm_map_ms_ModificationRequestFor_CSI,
22718     &ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data,
22719     &ett_gsm_map_ms_NoteSubscriberDataModifiedArg,
22720     &ett_gsm_map_ms_NoteSubscriberDataModifiedRes,
22721     &ett_gsm_map_ms_NoteMM_EventArg,
22722     &ett_gsm_map_ms_NoteMM_EventRes,
22723     &ett_gsm_map_ms_Ext_SS_InfoFor_CSE,
22724     &ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE,
22725     &ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE,
22726
22727 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
22728
22729     &ett_gsm_map_ch_CUG_CheckInfo,
22730     &ett_gsm_map_ch_SendRoutingInfoArg,
22731     &ett_gsm_map_ch_SuppressMTSS,
22732     &ett_gsm_map_ch_SendRoutingInfoRes_U,
22733     &ett_gsm_map_ch_AllowedServices,
22734     &ett_gsm_map_ch_CCBS_Indicators,
22735     &ett_gsm_map_ch_RoutingInfo,
22736     &ett_gsm_map_ch_ForwardingData,
22737     &ett_gsm_map_ch_ProvideRoamingNumberArg,
22738     &ett_gsm_map_ch_ProvideRoamingNumberRes,
22739     &ett_gsm_map_ch_ResumeCallHandlingArg,
22740     &ett_gsm_map_ch_UU_Data,
22741     &ett_gsm_map_ch_ResumeCallHandlingRes,
22742     &ett_gsm_map_ch_CamelInfo,
22743     &ett_gsm_map_ch_ExtendedRoutingInfo,
22744     &ett_gsm_map_ch_CamelRoutingInfo,
22745     &ett_gsm_map_ch_GmscCamelSubscriptionInfo,
22746     &ett_gsm_map_ch_SetReportingStateArg,
22747     &ett_gsm_map_ch_SetReportingStateRes,
22748     &ett_gsm_map_ch_StatusReportArg,
22749     &ett_gsm_map_ch_EventReportData,
22750     &ett_gsm_map_ch_CallReportData,
22751     &ett_gsm_map_ch_StatusReportRes,
22752     &ett_gsm_map_ch_RemoteUserFreeArg,
22753     &ett_gsm_map_ch_RemoteUserFreeRes,
22754     &ett_gsm_map_ch_IST_AlertArg,
22755     &ett_gsm_map_ch_IST_AlertRes,
22756     &ett_gsm_map_ch_IST_CommandArg,
22757     &ett_gsm_map_ch_IST_CommandRes,
22758     &ett_gsm_map_ch_ReleaseResourcesArg,
22759     &ett_gsm_map_ch_ReleaseResourcesRes,
22760
22761 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
22762
22763     &ett_gsm_map_lcs_RoutingInfoForLCS_Arg,
22764     &ett_gsm_map_lcs_RoutingInfoForLCS_Res,
22765     &ett_gsm_map_lcs_LCSLocationInfo,
22766     &ett_gsm_map_lcs_ProvideSubscriberLocation_Arg,
22767     &ett_gsm_map_lcs_LocationType,
22768     &ett_gsm_map_lcs_DeferredLocationEventType,
22769     &ett_gsm_map_lcs_LCS_ClientID,
22770     &ett_gsm_map_lcs_LCSClientName,
22771     &ett_gsm_map_lcs_LCSRequestorID,
22772     &ett_gsm_map_lcs_LCS_QoS,
22773     &ett_gsm_map_lcs_ResponseTime,
22774     &ett_gsm_map_lcs_SupportedGADShapes,
22775     &ett_gsm_map_lcs_LCSCodeword,
22776     &ett_gsm_map_lcs_LCS_PrivacyCheck,
22777     &ett_gsm_map_lcs_AreaEventInfo,
22778     &ett_gsm_map_lcs_AreaDefinition,
22779     &ett_gsm_map_lcs_AreaList,
22780     &ett_gsm_map_lcs_Area,
22781     &ett_gsm_map_lcs_PeriodicLDRInfo,
22782     &ett_gsm_map_lcs_ReportingPLMNList,
22783     &ett_gsm_map_lcs_PLMNList,
22784     &ett_gsm_map_lcs_ReportingPLMN,
22785     &ett_gsm_map_lcs_ProvideSubscriberLocation_Res,
22786     &ett_gsm_map_lcs_SubscriberLocationReport_Arg,
22787     &ett_gsm_map_lcs_Deferredmt_lrData,
22788     &ett_gsm_map_lcs_SubscriberLocationReport_Res,
22789
22790 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
22791
22792     &ett_gsm_map_gr_PrepareGroupCallArg,
22793     &ett_gsm_map_gr_PrepareGroupCallRes,
22794     &ett_gsm_map_gr_SendGroupCallEndSignalArg,
22795     &ett_gsm_map_gr_SendGroupCallEndSignalRes,
22796     &ett_gsm_map_gr_ForwardGroupCallSignallingArg,
22797     &ett_gsm_map_gr_ProcessGroupCallSignallingArg,
22798     &ett_gsm_map_gr_StateAttributes,
22799     &ett_gsm_map_gr_SendGroupCallInfoArg,
22800     &ett_gsm_map_gr_SendGroupCallInfoRes,
22801
22802 /* --- Module MAP-DialogueInformation --- --- ---                             */
22803
22804     &ett_gsm_map_dialogue_MAP_DialoguePDU,
22805     &ett_gsm_map_dialogue_MAP_OpenInfo,
22806     &ett_gsm_map_dialogue_MAP_AcceptInfo,
22807     &ett_gsm_map_dialogue_MAP_CloseInfo,
22808     &ett_gsm_map_dialogue_MAP_RefuseInfo,
22809     &ett_gsm_map_dialogue_MAP_UserAbortInfo,
22810     &ett_gsm_map_dialogue_MAP_UserAbortChoice,
22811     &ett_gsm_map_dialogue_MAP_ProviderAbortInfo,
22812
22813 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
22814
22815
22816 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
22817
22818
22819 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
22820
22821
22822 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
22823
22824
22825 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
22826
22827
22828 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
22829
22830
22831 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
22832
22833
22834 /* --- Module MAP-Errors --- --- ---                                          */
22835
22836
22837 /* --- Module MAP-Protocol --- --- ---                                        */
22838
22839
22840 /* --- Module DummyMAP --- --- ---                                            */
22841
22842     &ett_gsm_old_Component,
22843     &ett_gsm_old_Invoke,
22844     &ett_gsm_old_ReturnResult,
22845     &ett_gsm_old_T_resultretres,
22846     &ett_gsm_old_ReturnError,
22847     &ett_gsm_old_Reject,
22848     &ett_gsm_old_T_invokeIDRej,
22849     &ett_gsm_old_T_problem,
22850     &ett_gsm_old_MAP_OPERATION,
22851     &ett_gsm_old_MAP_ERROR,
22852     &ett_gsm_old_Bss_APDU,
22853     &ett_gsm_old_ProvideSIWFSNumberArg,
22854     &ett_gsm_old_ProvideSIWFSNumberRes,
22855     &ett_gsm_old_PurgeMSArgV2,
22856     &ett_gsm_old_PrepareHO_ArgOld,
22857     &ett_gsm_old_PrepareHO_ResOld,
22858     &ett_gsm_old_SendAuthenticationInfoResOld,
22859     &ett_gsm_old_SendAuthenticationInfoResOld_item,
22860     &ett_gsm_old_SendIdentificationResV2,
22861     &ett_gsm_old_TripletListold,
22862     &ett_gsm_old_AuthenticationTriplet_v2,
22863     &ett_gsm_old_SIWFSSignallingModifyArg,
22864     &ett_gsm_old_SIWFSSignallingModifyRes,
22865     &ett_gsm_old_SecureTransportArg,
22866     &ett_gsm_old_SecureTransportErrorParam,
22867     &ett_gsm_old_SecureTransportRes,
22868     &ett_gsm_old_SecurityHeader,
22869     &ett_gsm_old_OriginalComponentIdentifier,
22870     &ett_gsm_old_OperationCode,
22871     &ett_gsm_old_ErrorCode,
22872     &ett_gsm_old_PlmnContainer_U,
22873     &ett_gsm_old_T_operatorSS_Code,
22874     &ett_gsm_old_ForwardSM_Arg,
22875     &ett_gsm_old_SM_RP_DAold,
22876     &ett_gsm_old_SM_RP_OAold,
22877     &ett_gsm_old_SendRoutingInfoArgV2,
22878     &ett_gsm_old_SendRoutingInfoResV2,
22879
22880 /* --- Module SS-DataTypes --- --- ---                                        */
22881
22882     &ett_gsm_ss_NotifySS_Arg,
22883     &ett_gsm_ss_BeginSubscriberActivityArg,
22884     &ett_gsm_ss_ForwardChargeAdviceArg,
22885     &ett_gsm_ss_ChargingInformation,
22886     &ett_gsm_ss_ForwardCUG_InfoArg,
22887     &ett_gsm_ss_ECT_Indicator,
22888     &ett_gsm_ss_NameIndicator,
22889     &ett_gsm_ss_Name,
22890     &ett_gsm_ss_NameSet,
22891     &ett_gsm_ss_RDN,
22892     &ett_gsm_ss_RemotePartyNumber,
22893     &ett_gsm_ss_AccessRegisterCCEntryArg,
22894     &ett_gsm_ss_CallDeflectionArg,
22895     &ett_gsm_ss_UserUserServiceArg,
22896     &ett_gsm_ss_LocationNotificationArg,
22897     &ett_gsm_ss_LocationNotificationRes,
22898     &ett_gsm_ss_LCS_MOLRArg,
22899     &ett_gsm_ss_LCS_MOLRRes,
22900     &ett_gsm_ss_LCS_AreaEventRequestArg,
22901     &ett_gsm_ss_LCS_AreaEventReportArg,
22902     &ett_gsm_ss_LCS_AreaEventCancellationArg,
22903     &ett_gsm_ss_LCS_PeriodicLocationRequestArg,
22904     &ett_gsm_ss_LCS_PeriodicLocationRequestRes,
22905     &ett_gsm_ss_LCS_LocationUpdateArg,
22906     &ett_gsm_ss_LCS_LocationUpdateRes,
22907     &ett_gsm_ss_LCS_PeriodicLocationCancellationArg,
22908
22909 /* --- Module SS-Operations --- --- ---                                       */
22910
22911
22912 /*--- End of included file: packet-gsm_map-ettarr.c ---*/
22913 #line 2657 "packet-gsmmap-template.c"
22914   };
22915
22916   /* Register protocol */
22917   proto_gsm_map_dialogue =proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
22918
22919   register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);
22920   
22921   /* Register fields and subtrees */
22922   proto_register_field_array(proto_gsm_map, hf, array_length(hf));
22923   proto_register_subtree_array(ett, array_length(ett));
22924
22925   sms_dissector_table = register_dissector_table("gsm_map.sms_tpdu", 
22926                                                  "GSM SMS TPDU", FT_UINT8,
22927                                                  BASE_DEC);
22928
22929   gsm_map_tap = register_tap("gsm_map");
22930
22931
22932 /*--- Included file: packet-gsm_map-dis-tab.c ---*/
22933 #line 1 "packet-gsm_map-dis-tab.c"
22934
22935 /* --- Module MAP-DialogueInformation --- --- ---                             */
22936
22937   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");
22938
22939
22940 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
22941
22942
22943
22944 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
22945
22946
22947
22948 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
22949
22950
22951
22952 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
22953
22954
22955
22956 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
22957
22958
22959
22960 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
22961
22962
22963
22964 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
22965
22966
22967
22968 /* --- Module MAP-Errors --- --- ---                                          */
22969
22970
22971
22972 /* --- Module MAP-Protocol --- --- ---                                        */
22973
22974
22975
22976 /* --- Module DummyMAP --- --- ---                                            */
22977
22978
22979
22980 /* --- Module SS-DataTypes --- --- ---                                        */
22981
22982
22983
22984 /* --- Module SS-Operations --- --- ---                                       */
22985
22986
22987
22988 /*--- End of included file: packet-gsm_map-dis-tab.c ---*/
22989 #line 2675 "packet-gsmmap-template.c"
22990   oid_add_from_string("ericsson-gsm-Map-Ext","1.2.826.0.1249.58.1.0" );
22991   oid_add_from_string("accessTypeNotAllowed-id","1.3.12.2.1107.3.66.1.2");
22992   /*oid_add_from_string("map-ac networkLocUp(1) version3(3)","0.4.0.0.1.0.1.3" );
22993    *
22994    * Register our configuration options, particularly our ssn:s
22995    * Set default SSNs
22996    */
22997   range_convert_str(&global_ssn_range, "6-9", MAX_SSN);
22998   ssn_range = range_empty();
22999
23000
23001   gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
23002
23003   prefs_register_range_preference(gsm_map_module, "tcap.ssn", "TCAP SSNs",
23004                                   "TCAP Subsystem numbers used for GSM MAP",
23005                                   &global_ssn_range, MAX_SSN);
23006 }
23007
23008