Enable Lua tcp tap userdata.
[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 -D . ../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 - 2009 , 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 <epan/packet.h>
61 #include <epan/prefs.h>
62 #include <epan/tap.h>
63 #include <epan/emem.h>
64 #include <epan/oids.h>
65 #include "epan/expert.h"
66
67 #include <stdio.h>
68 #include <string.h>
69
70 #include <epan/asn1.h>
71 #include "packet-ber.h"
72 #include "packet-per.h"
73 #include "packet-q931.h"
74 #include "packet-gsm_map.h"
75 #include "packet-gsm_a_common.h"
76 #include "packet-tcap.h"
77 #include "packet-e164.h"
78 #include "packet-e212.h"
79 #include "packet-smpp.h"
80 #include "packet-gsm_sms.h"
81 #include "packet-ranap.h"
82
83 #define PNAME  "GSM Mobile Application"
84 #define PSNAME "GSM_MAP"
85 #define PFNAME "gsm_map"
86
87 /* Initialize the protocol and registered fields */
88 int proto_gsm_map = -1;
89 int proto_gsm_map_dialogue = -1;
90
91 static int hf_gsm_map_old_Component_PDU = -1;
92 static int hf_gsm_map_getPassword = -1;
93 static int hf_gsm_map_currentPassword = -1;
94 static int hf_gsm_map_extension = -1;
95 static int hf_gsm_map_nature_of_number = -1;
96 static int hf_gsm_map_number_plan = -1;
97 static int hf_gsm_map_isdn_address_digits = -1;
98 static int hf_gsm_map_address_digits = -1;
99 static int hf_gsm_map_servicecentreaddress_digits = -1;
100 static int hf_gsm_map_imsi_digits = -1;
101 static int hf_gsm_map_TBCD_digits = -1;
102 static int hf_gsm_map_Ss_Status_unused = -1;
103 static int hf_gsm_map_Ss_Status_q_bit = -1;
104 static int hf_gsm_map_Ss_Status_p_bit = -1;
105 static int hf_gsm_map_Ss_Status_r_bit = -1;
106 static int hf_gsm_map_Ss_Status_a_bit = -1;
107 static int hf_gsm_map_notification_to_forwarding_party = -1;
108 static int hf_gsm_map_redirecting_presentation = -1;
109 static int hf_gsm_map_notification_to_calling_party = -1;
110 static int hf_gsm_map_forwarding_reason = -1;
111 static int hf_gsm_map_pdp_type_org = -1;
112 static int hf_gsm_map_etsi_pdp_type_number = -1;
113 static int hf_gsm_map_ietf_pdp_type_number = -1;
114 static int hf_gsm_map_ext_qos_subscribed_pri = -1;
115
116 static int hf_gsm_map_qos_traffic_cls = -1;
117 static int hf_gsm_map_qos_del_order = -1;
118 static int hf_gsm_map_qos_del_of_err_sdu = -1;
119 static int hf_gsm_map_qos_ber = -1;
120 static int hf_gsm_map_qos_sdu_err_rat = -1;
121 static int hf_gsm_map_qos_traff_hdl_pri = -1;
122 static int hf_gsm_map_qos_max_sdu = -1;
123 static int hf_gsm_map_max_brate_ulink = -1;
124 static int hf_gsm_map_max_brate_dlink = -1;
125 static int hf_gsm_map_qos_transfer_delay = -1;
126 static int hf_gsm_map_guaranteed_max_brate_ulink = -1;
127 static int hf_gsm_map_guaranteed_max_brate_dlink = -1;
128 static int hf_gsm_map_GSNAddress_IPv4 = -1;
129 static int hf_gsm_map_GSNAddress_IPv6 = -1;
130 static int hf_gsm_map_ranap_service_Handover = -1;
131 static int hf_gsm_map_IntegrityProtectionInformation = -1;
132 static int hf_gsm_map_EncryptionInformation = -1;
133 static int hf_gsm_map_PlmnContainer_PDU = -1;
134 static int hf_gsm_map_ss_SS_UserData = -1;
135 static int hf_gsm_map_cbs_coding_grp = -1;
136 static int hf_gsm_map_cbs_coding_grp0_lang = -1;
137 static int hf_gsm_map_cbs_coding_grp1_lang = -1;
138 static int hf_gsm_map_cbs_coding_grp2_lang = -1;
139 static int hf_gsm_map_cbs_coding_grp3_lang = -1;
140 static int hf_gsm_map_cbs_coding_grp4_7_comp = -1;
141 static int hf_gsm_map_cbs_coding_grp4_7_class_ind = -1;
142 static int hf_gsm_map_cbs_coding_grp4_7_char_set = -1;
143 static int hf_gsm_map_cbs_coding_grp4_7_class = -1;
144 static int hf_gsm_map_cbs_coding_grp15_mess_code = -1;
145 static int hf_gsm_map_cbs_coding_grp15_class = -1;
146 static int hf_gsm_map_tmsi = -1;
147 static int hf_gsm_map_ie_tag = -1;
148 static int hf_gsm_map_len = -1;
149 static int hf_gsm_map_disc_par = -1;
150 static int hf_gsm_map_dlci = -1;
151
152
153 /*--- Included file: packet-gsm_map-hf.c ---*/
154 #line 1 "packet-gsm_map-hf.c"
155
156 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
157
158 static int hf_gsm_map_privateExtensionList = -1;  /* PrivateExtensionList */
159 static int hf_gsm_map_pcs_Extensions = -1;        /* PCS_Extensions */
160 static int hf_gsm_map_slr_Arg_PCS_Extensions = -1;  /* SLR_Arg_PCS_Extensions */
161 static int hf_gsm_map_PrivateExtensionList_item = -1;  /* PrivateExtension */
162 static int hf_gsm_map_extId = -1;                 /* T_extId */
163 static int hf_gsm_map_extType = -1;               /* T_extType */
164 static int hf_gsm_map_na_ESRK_Request = -1;       /* NULL */
165
166 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
167
168 static int hf_gsm_map_protocolId = -1;            /* ProtocolId */
169 static int hf_gsm_map_signalInfo = -1;            /* SignalInfo */
170 static int hf_gsm_map_extensionContainer = -1;    /* ExtensionContainer */
171 static int hf_gsm_map_ext_ProtocolId = -1;        /* Ext_ProtocolId */
172 static int hf_gsm_map_accessNetworkProtocolId = -1;  /* AccessNetworkProtocolId */
173 static int hf_gsm_map_signalInfo_01 = -1;         /* LongSignalInfo */
174 static int hf_gsm_map_imsi = -1;                  /* IMSI */
175 static int hf_gsm_map_imsi_WithLMSI = -1;         /* IMSI_WithLMSI */
176 static int hf_gsm_map_lmsi = -1;                  /* LMSI */
177 static int hf_gsm_map_HLR_List_item = -1;         /* HLR_Id */
178 static int hf_gsm_map_naea_PreferredCIC = -1;     /* NAEA_CIC */
179 static int hf_gsm_map_msisdn = -1;                /* ISDN_AddressString */
180 static int hf_gsm_map_externalAddress = -1;       /* ISDN_AddressString */
181 static int hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength = -1;  /* CellGlobalIdOrServiceAreaIdFixedLength */
182 static int hf_gsm_map_laiFixedLength = -1;        /* LAIFixedLength */
183 static int hf_gsm_map_bearerService = -1;         /* BearerServiceCode */
184 static int hf_gsm_map_teleservice = -1;           /* TeleserviceCode */
185 static int hf_gsm_map_ext_BearerService = -1;     /* Ext_BearerServiceCode */
186 static int hf_gsm_map_ext_Teleservice = -1;       /* Ext_TeleserviceCode */
187 static int hf_gsm_map_maximumentitledPriority = -1;  /* EMLPP_Priority */
188 static int hf_gsm_map_defaultPriority = -1;       /* EMLPP_Priority */
189 static int hf_gsm_map_ss_Code = -1;               /* SS_Code */
190 static int hf_gsm_map_ss_Status = -1;             /* Ext_SS_Status */
191 static int hf_gsm_map_nbrSB = -1;                 /* MaxMC_Bearers */
192 static int hf_gsm_map_nbrUser = -1;               /* MC_Bearers */
193
194 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
195
196 static int hf_gsm_map_ss_ss_Code = -1;            /* SS_Code */
197 static int hf_gsm_map_ss_basicService = -1;       /* BasicServiceCode */
198 static int hf_gsm_map_ss_forwardedToNumber = -1;  /* AddressString */
199 static int hf_gsm_map_ss_forwardedToSubaddress = -1;  /* ISDN_SubaddressString */
200 static int hf_gsm_map_ss_noReplyConditionTime = -1;  /* NoReplyConditionTime */
201 static int hf_gsm_map_ss_defaultPriority = -1;    /* EMLPP_Priority */
202 static int hf_gsm_map_ss_nbrUser = -1;            /* MC_Bearers */
203 static int hf_gsm_map_ss_longFTN_Supported = -1;  /* NULL */
204 static int hf_gsm_map_ss_forwardingInfo = -1;     /* ForwardingInfo */
205 static int hf_gsm_map_ss_callBarringInfo = -1;    /* CallBarringInfo */
206 static int hf_gsm_map_ss_ss_Data = -1;            /* SS_Data */
207 static int hf_gsm_map_ss_forwardingFeatureList = -1;  /* ForwardingFeatureList */
208 static int hf_gsm_map_ss_ForwardingFeatureList_item = -1;  /* ForwardingFeature */
209 static int hf_gsm_map_ss_ss_Status = -1;          /* SS_Status */
210 static int hf_gsm_map_ss_forwardedToNumber_01 = -1;  /* ISDN_AddressString */
211 static int hf_gsm_map_ss_forwardingOptions = -1;  /* ForwardingOptions */
212 static int hf_gsm_map_ss_longForwardedToNumber = -1;  /* FTN_AddressString */
213 static int hf_gsm_map_ss_callBarringFeatureList = -1;  /* CallBarringFeatureList */
214 static int hf_gsm_map_ss_CallBarringFeatureList_item = -1;  /* CallBarringFeature */
215 static int hf_gsm_map_ss_ss_SubscriptionOption = -1;  /* SS_SubscriptionOption */
216 static int hf_gsm_map_ss_basicServiceGroupList = -1;  /* BasicServiceGroupList */
217 static int hf_gsm_map_ss_cliRestrictionOption = -1;  /* CliRestrictionOption */
218 static int hf_gsm_map_ss_overrideCategory = -1;   /* OverrideCategory */
219 static int hf_gsm_map_ss_maximumEntitledPriority = -1;  /* EMLPP_Priority */
220 static int hf_gsm_map_ss_ccbs_FeatureList = -1;   /* CCBS_FeatureList */
221 static int hf_gsm_map_ss_nbrSB = -1;              /* MaxMC_Bearers */
222 static int hf_gsm_map_ss_nbrSN = -1;              /* MC_Bearers */
223 static int hf_gsm_map_ss_CCBS_FeatureList_item = -1;  /* CCBS_Feature */
224 static int hf_gsm_map_ss_ccbs_Index = -1;         /* CCBS_Index */
225 static int hf_gsm_map_ss_b_subscriberNumber = -1;  /* ISDN_AddressString */
226 static int hf_gsm_map_ss_b_subscriberSubaddress = -1;  /* ISDN_SubaddressString */
227 static int hf_gsm_map_ss_basicServiceGroup = -1;  /* BasicServiceCode */
228 static int hf_gsm_map_ss_genericServiceInfo = -1;  /* GenericServiceInfo */
229 static int hf_gsm_map_ss_ussd_DataCodingScheme = -1;  /* USSD_DataCodingScheme */
230 static int hf_gsm_map_ss_ussd_String = -1;        /* USSD_String */
231 static int hf_gsm_map_ss_alertingPattern = -1;    /* AlertingPattern */
232 static int hf_gsm_map_ss_msisdn = -1;             /* ISDN_AddressString */
233 static int hf_gsm_map_ss_SS_List_item = -1;       /* SS_Code */
234 static int hf_gsm_map_ss_BasicServiceGroupList_item = -1;  /* BasicServiceCode */
235 static int hf_gsm_map_ss_imsi = -1;               /* IMSI */
236 static int hf_gsm_map_ss_ss_Event = -1;           /* SS_Code */
237 static int hf_gsm_map_ss_ss_EventSpecification = -1;  /* SS_EventSpecification */
238 static int hf_gsm_map_ss_extensionContainer = -1;  /* ExtensionContainer */
239 static int hf_gsm_map_ss_ccbs_RequestState = -1;  /* CCBS_RequestState */
240 static int hf_gsm_map_ss_SS_EventSpecification_item = -1;  /* AddressString */
241 static int hf_gsm_map_ss_ccbs_Data = -1;          /* CCBS_Data */
242 static int hf_gsm_map_ss_ccbs_Feature = -1;       /* CCBS_Feature */
243 static int hf_gsm_map_ss_translatedB_Number = -1;  /* ISDN_AddressString */
244 static int hf_gsm_map_ss_serviceIndicator = -1;   /* ServiceIndicator */
245 static int hf_gsm_map_ss_callInfo = -1;           /* ExternalSignalInfo */
246 static int hf_gsm_map_ss_networkSignalInfo = -1;  /* ExternalSignalInfo */
247 /* named bits */
248 static int hf_gsm_map_ss_ServiceIndicator_clir_invoked = -1;
249 static int hf_gsm_map_ss_ServiceIndicator_camel_invoked = -1;
250
251 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
252
253 static int hf_gsm_map_er_roamingNotAllowedCause = -1;  /* RoamingNotAllowedCause */
254 static int hf_gsm_map_er_extensionContainer = -1;  /* ExtensionContainer */
255 static int hf_gsm_map_er_additionalRoamingNotAllowedCause = -1;  /* AdditionalRoamingNotAllowedCause */
256 static int hf_gsm_map_er_callBarringCause = -1;   /* CallBarringCause */
257 static int hf_gsm_map_er_extensibleCallBarredParam = -1;  /* ExtensibleCallBarredParam */
258 static int hf_gsm_map_er_unauthorisedMessageOriginator = -1;  /* NULL */
259 static int hf_gsm_map_er_cug_RejectCause = -1;    /* CUG_RejectCause */
260 static int hf_gsm_map_er_ss_Code = -1;            /* SS_Code */
261 static int hf_gsm_map_er_basicService = -1;       /* BasicServiceCode */
262 static int hf_gsm_map_er_ss_Status = -1;          /* SS_Status */
263 static int hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause = -1;  /* SM_EnumeratedDeliveryFailureCause */
264 static int hf_gsm_map_er_diagnosticInfo = -1;     /* SignalInfo */
265 static int hf_gsm_map_er_absentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
266 static int hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
267 static int hf_gsm_map_er_networkResource = -1;    /* NetworkResource */
268 static int hf_gsm_map_er_extensibleSystemFailureParam = -1;  /* ExtensibleSystemFailureParam */
269 static int hf_gsm_map_er_additionalNetworkResource = -1;  /* AdditionalNetworkResource */
270 static int hf_gsm_map_er_failureCauseParam = -1;  /* FailureCauseParam */
271 static int hf_gsm_map_er_shapeOfLocationEstimateNotSupported = -1;  /* NULL */
272 static int hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode = -1;  /* NULL */
273 static int hf_gsm_map_er_unknownSubscriberDiagnostic = -1;  /* UnknownSubscriberDiagnostic */
274 static int hf_gsm_map_er_absentSubscriberReason = -1;  /* AbsentSubscriberReason */
275 static int hf_gsm_map_er_ccbs_Possible = -1;      /* NULL */
276 static int hf_gsm_map_er_ccbs_Busy = -1;          /* NULL */
277 static int hf_gsm_map_er_gprsConnectionSuspended = -1;  /* NULL */
278 static int hf_gsm_map_er_unauthorizedLCSClient_Diagnostic = -1;  /* UnauthorizedLCSClient_Diagnostic */
279 static int hf_gsm_map_er_positionMethodFailure_Diagnostic = -1;  /* PositionMethodFailure_Diagnostic */
280
281 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
282
283 static int hf_gsm_map_sm_msisdn = -1;             /* ISDN_AddressString */
284 static int hf_gsm_map_sm_sm_RP_PRI = -1;          /* BOOLEAN */
285 static int hf_gsm_map_sm_serviceCentreAddress = -1;  /* AddressString */
286 static int hf_gsm_map_sm_extensionContainer = -1;  /* ExtensionContainer */
287 static int hf_gsm_map_sm_gprsSupportIndicator = -1;  /* NULL */
288 static int hf_gsm_map_sm_sm_RP_MTI = -1;          /* SM_RP_MTI */
289 static int hf_gsm_map_sm_sm_RP_SMEA = -1;         /* SM_RP_SMEA */
290 static int hf_gsm_map_sm_sm_deliveryNotIntended = -1;  /* SM_DeliveryNotIntended */
291 static int hf_gsm_map_sm_imsi = -1;               /* IMSI */
292 static int hf_gsm_map_sm_locationInfoWithLMSI = -1;  /* LocationInfoWithLMSI */
293 static int hf_gsm_map_sm_networkNode_Number = -1;  /* ISDN_AddressString */
294 static int hf_gsm_map_sm_lmsi = -1;               /* LMSI */
295 static int hf_gsm_map_sm_gprsNodeIndicator = -1;  /* NULL */
296 static int hf_gsm_map_sm_additional_Number = -1;  /* Additional_Number */
297 static int hf_gsm_map_sm_msc_Number = -1;         /* ISDN_AddressString */
298 static int hf_gsm_map_sm_sgsn_Number = -1;        /* ISDN_AddressString */
299 static int hf_gsm_map_sm_sm_RP_DA = -1;           /* SM_RP_DA */
300 static int hf_gsm_map_sm_sm_RP_OA = -1;           /* SM_RP_OA */
301 static int hf_gsm_map_sm_sm_RP_UI = -1;           /* SignalInfo */
302 static int hf_gsm_map_sm_moreMessagesToSend = -1;  /* NULL */
303 static int hf_gsm_map_sm_serviceCentreAddressDA = -1;  /* AddressString */
304 static int hf_gsm_map_sm_noSM_RP_DA = -1;         /* NULL */
305 static int hf_gsm_map_sm_msisdn_01 = -1;          /* T_msisdn */
306 static int hf_gsm_map_sm_serviceCentreAddressOA = -1;  /* T_serviceCentreAddressOA */
307 static int hf_gsm_map_sm_noSM_RP_OA = -1;         /* NULL */
308 static int hf_gsm_map_sm_sm_DeliveryOutcome = -1;  /* SM_DeliveryOutcome */
309 static int hf_gsm_map_sm_absentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
310 static int hf_gsm_map_sm_deliveryOutcomeIndicator = -1;  /* NULL */
311 static int hf_gsm_map_sm_additionalSM_DeliveryOutcome = -1;  /* SM_DeliveryOutcome */
312 static int hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
313 static int hf_gsm_map_sm_ip_sm_gw_Indicator = -1;  /* NULL */
314 static int hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome = -1;  /* SM_DeliveryOutcome */
315 static int hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
316 static int hf_gsm_map_sm_storedMSISDN = -1;       /* ISDN_AddressString */
317 static int hf_gsm_map_sm_mw_Status = -1;          /* MW_Status */
318 static int hf_gsm_map_sm_alertReason = -1;        /* AlertReason */
319 static int hf_gsm_map_sm_alertReasonIndicator = -1;  /* NULL */
320 static int hf_gsm_map_sm_additionalAlertReasonIndicator = -1;  /* NULL */
321 static int hf_gsm_map_sm_asciCallReference = -1;  /* ASCI_CallReference */
322 static int hf_gsm_map_sm_dispatcherList = -1;     /* DispatcherList */
323 static int hf_gsm_map_sm_ongoingCall = -1;        /* NULL */
324 static int hf_gsm_map_sm_DispatcherList_item = -1;  /* ISDN_AddressString */
325 /* named bits */
326 static int hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded = -1;
327 static int hf_gsm_map_sm_MW_Status_mnrf_Set = -1;
328 static int hf_gsm_map_sm_MW_Status_mcef_Set = -1;
329 static int hf_gsm_map_sm_MW_Status_mnrg_Set = -1;
330
331 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
332
333 static int hf_gsm_map_om_imsi = -1;               /* IMSI */
334 static int hf_gsm_map_om_traceReference = -1;     /* TraceReference */
335 static int hf_gsm_map_om_traceType = -1;          /* TraceType */
336 static int hf_gsm_map_om_omc_Id = -1;             /* AddressString */
337 static int hf_gsm_map_om_extensionContainer = -1;  /* ExtensionContainer */
338 static int hf_gsm_map_om_traceReference2 = -1;    /* TraceReference2 */
339 static int hf_gsm_map_om_traceDepthList = -1;     /* TraceDepthList */
340 static int hf_gsm_map_om_traceNE_TypeList = -1;   /* TraceNE_TypeList */
341 static int hf_gsm_map_om_traceInterfaceList = -1;  /* TraceInterfaceList */
342 static int hf_gsm_map_om_traceEventList = -1;     /* TraceEventList */
343 static int hf_gsm_map_om_msc_s_TraceDepth = -1;   /* TraceDepth */
344 static int hf_gsm_map_om_mgw_TraceDepth = -1;     /* TraceDepth */
345 static int hf_gsm_map_om_sgsn_TraceDepth = -1;    /* TraceDepth */
346 static int hf_gsm_map_om_ggsn_TraceDepth = -1;    /* TraceDepth */
347 static int hf_gsm_map_om_rnc_TraceDepth = -1;     /* TraceDepth */
348 static int hf_gsm_map_om_bmsc_TraceDepth = -1;    /* TraceDepth */
349 static int hf_gsm_map_om_msc_s_List = -1;         /* MSC_S_InterfaceList */
350 static int hf_gsm_map_om_mgw_List = -1;           /* MGW_InterfaceList */
351 static int hf_gsm_map_om_sgsn_List = -1;          /* SGSN_InterfaceList */
352 static int hf_gsm_map_om_ggsn_List = -1;          /* GGSN_InterfaceList */
353 static int hf_gsm_map_om_rnc_List = -1;           /* RNC_InterfaceList */
354 static int hf_gsm_map_om_bmsc_List = -1;          /* BMSC_InterfaceList */
355 static int hf_gsm_map_om_msc_s_List_01 = -1;      /* MSC_S_EventList */
356 static int hf_gsm_map_om_mgw_List_01 = -1;        /* MGW_EventList */
357 static int hf_gsm_map_om_sgsn_List_01 = -1;       /* SGSN_EventList */
358 static int hf_gsm_map_om_ggsn_List_01 = -1;       /* GGSN_EventList */
359 static int hf_gsm_map_om_bmsc_List_01 = -1;       /* BMSC_EventList */
360 static int hf_gsm_map_om_traceRecordingSessionReference = -1;  /* TraceRecordingSessionReference */
361 static int hf_gsm_map_om_rnc_InterfaceList = -1;  /* RNC_InterfaceList */
362 static int hf_gsm_map_om_msc_s_InterfaceList = -1;  /* MSC_S_InterfaceList */
363 static int hf_gsm_map_om_msc_s_EventList = -1;    /* MSC_S_EventList */
364 static int hf_gsm_map_om_mgw_InterfaceList = -1;  /* MGW_InterfaceList */
365 static int hf_gsm_map_om_mgw_EventList = -1;      /* MGW_EventList */
366 static int hf_gsm_map_om_traceSupportIndicator = -1;  /* NULL */
367 /* named bits */
368 static int hf_gsm_map_om_TraceNE_TypeList_msc_s = -1;
369 static int hf_gsm_map_om_TraceNE_TypeList_mgw = -1;
370 static int hf_gsm_map_om_TraceNE_TypeList_sgsn = -1;
371 static int hf_gsm_map_om_TraceNE_TypeList_ggsn = -1;
372 static int hf_gsm_map_om_TraceNE_TypeList_rnc = -1;
373 static int hf_gsm_map_om_TraceNE_TypeList_bm_sc = -1;
374 static int hf_gsm_map_om_MSC_S_InterfaceList_a = -1;
375 static int hf_gsm_map_om_MSC_S_InterfaceList_iu = -1;
376 static int hf_gsm_map_om_MSC_S_InterfaceList_mc = -1;
377 static int hf_gsm_map_om_MSC_S_InterfaceList_map_g = -1;
378 static int hf_gsm_map_om_MSC_S_InterfaceList_map_b = -1;
379 static int hf_gsm_map_om_MSC_S_InterfaceList_map_e = -1;
380 static int hf_gsm_map_om_MSC_S_InterfaceList_map_f = -1;
381 static int hf_gsm_map_om_MSC_S_InterfaceList_cap = -1;
382 static int hf_gsm_map_om_MSC_S_InterfaceList_map_d = -1;
383 static int hf_gsm_map_om_MSC_S_InterfaceList_map_c = -1;
384 static int hf_gsm_map_om_MGW_InterfaceList_mc = -1;
385 static int hf_gsm_map_om_MGW_InterfaceList_nb_up = -1;
386 static int hf_gsm_map_om_MGW_InterfaceList_iu_up = -1;
387 static int hf_gsm_map_om_SGSN_InterfaceList_gb = -1;
388 static int hf_gsm_map_om_SGSN_InterfaceList_iu = -1;
389 static int hf_gsm_map_om_SGSN_InterfaceList_gn = -1;
390 static int hf_gsm_map_om_SGSN_InterfaceList_map_gr = -1;
391 static int hf_gsm_map_om_SGSN_InterfaceList_map_gd = -1;
392 static int hf_gsm_map_om_SGSN_InterfaceList_map_gf = -1;
393 static int hf_gsm_map_om_SGSN_InterfaceList_gs = -1;
394 static int hf_gsm_map_om_SGSN_InterfaceList_ge = -1;
395 static int hf_gsm_map_om_GGSN_InterfaceList_gn = -1;
396 static int hf_gsm_map_om_GGSN_InterfaceList_gi = -1;
397 static int hf_gsm_map_om_GGSN_InterfaceList_gmb = -1;
398 static int hf_gsm_map_om_RNC_InterfaceList_iu = -1;
399 static int hf_gsm_map_om_RNC_InterfaceList_iur = -1;
400 static int hf_gsm_map_om_RNC_InterfaceList_iub = -1;
401 static int hf_gsm_map_om_RNC_InterfaceList_uu = -1;
402 static int hf_gsm_map_om_BMSC_InterfaceList_gmb = -1;
403 static int hf_gsm_map_om_MSC_S_EventList_mo_mtCall = -1;
404 static int hf_gsm_map_om_MSC_S_EventList_mo_mt_sms = -1;
405 static int hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach = -1;
406 static int hf_gsm_map_om_MSC_S_EventList_handovers = -1;
407 static int hf_gsm_map_om_MSC_S_EventList_ss = -1;
408 static int hf_gsm_map_om_MGW_EventList_context = -1;
409 static int hf_gsm_map_om_SGSN_EventList_pdpContext = -1;
410 static int hf_gsm_map_om_SGSN_EventList_mo_mt_sms = -1;
411 static int hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach = -1;
412 static int hf_gsm_map_om_SGSN_EventList_mbmsContext = -1;
413 static int hf_gsm_map_om_GGSN_EventList_pdpContext = -1;
414 static int hf_gsm_map_om_GGSN_EventList_mbmsContext = -1;
415 static int hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation = -1;
416
417 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
418
419 static int hf_gsm_map_ms_imsi = -1;               /* IMSI */
420 static int hf_gsm_map_ms_msc_Number = -1;         /* ISDN_AddressString */
421 static int hf_gsm_map_ms_vlr_Number = -1;         /* ISDN_AddressString */
422 static int hf_gsm_map_ms_lmsi = -1;               /* LMSI */
423 static int hf_gsm_map_ms_extensionContainer = -1;  /* ExtensionContainer */
424 static int hf_gsm_map_ms_vlr_Capability = -1;     /* VLR_Capability */
425 static int hf_gsm_map_ms_informPreviousNetworkEntity = -1;  /* NULL */
426 static int hf_gsm_map_ms_cs_LCS_NotSupportedByUE = -1;  /* NULL */
427 static int hf_gsm_map_ms_v_gmlc_Address = -1;     /* GSN_Address */
428 static int hf_gsm_map_ms_add_info = -1;           /* ADD_Info */
429 static int hf_gsm_map_ms_pagingArea = -1;         /* PagingArea */
430 static int hf_gsm_map_ms_skipSubscriberDataUpdate = -1;  /* NULL */
431 static int hf_gsm_map_ms_supportedCamelPhases = -1;  /* SupportedCamelPhases */
432 static int hf_gsm_map_ms_solsaSupportIndicator = -1;  /* NULL */
433 static int hf_gsm_map_ms_istSupportIndicator = -1;  /* IST_SupportIndicator */
434 static int hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity = -1;  /* SuperChargerInfo */
435 static int hf_gsm_map_ms_longFTN_Supported = -1;  /* NULL */
436 static int hf_gsm_map_ms_supportedLCS_CapabilitySets = -1;  /* SupportedLCS_CapabilitySets */
437 static int hf_gsm_map_ms_offeredCamel4CSIs = -1;  /* OfferedCamel4CSIs */
438 static int hf_gsm_map_ms_supportedRAT_TypesIndicator = -1;  /* SupportedRAT_Types */
439 static int hf_gsm_map_ms_longGroupID_Supported = -1;  /* NULL */
440 static int hf_gsm_map_ms_sendSubscriberData = -1;  /* NULL */
441 static int hf_gsm_map_ms_subscriberDataStored = -1;  /* AgeIndicator */
442 static int hf_gsm_map_ms_hlr_Number = -1;         /* ISDN_AddressString */
443 static int hf_gsm_map_ms_add_Capability = -1;     /* NULL */
444 static int hf_gsm_map_ms_pagingArea_Capability = -1;  /* NULL */
445 static int hf_gsm_map_ms_imeisv = -1;             /* IMEI */
446 static int hf_gsm_map_ms_PagingArea_item = -1;    /* LocationArea */
447 static int hf_gsm_map_ms_laiFixedLength = -1;     /* LAIFixedLength */
448 static int hf_gsm_map_ms_lac = -1;                /* LAC */
449 static int hf_gsm_map_ms_identity = -1;           /* Identity */
450 static int hf_gsm_map_ms_cancellationType = -1;   /* CancellationType */
451 static int hf_gsm_map_ms_typeOfUpdate = -1;       /* TypeOfUpdate */
452 static int hf_gsm_map_ms_sgsn_Number = -1;        /* ISDN_AddressString */
453 static int hf_gsm_map_ms_freezeTMSI = -1;         /* NULL */
454 static int hf_gsm_map_ms_freezeP_TMSI = -1;       /* NULL */
455 static int hf_gsm_map_ms_freezeM_TMSI = -1;       /* NULL */
456 static int hf_gsm_map_ms_tmsi = -1;               /* TMSI */
457 static int hf_gsm_map_ms_numberOfRequestedVectors = -1;  /* NumberOfRequestedVectors */
458 static int hf_gsm_map_ms_segmentationProhibited = -1;  /* NULL */
459 static int hf_gsm_map_ms_previous_LAI = -1;       /* LAIFixedLength */
460 static int hf_gsm_map_ms_hopCounter = -1;         /* HopCounter */
461 static int hf_gsm_map_ms_authenticationSetList = -1;  /* AuthenticationSetList */
462 static int hf_gsm_map_ms_currentSecurityContext = -1;  /* CurrentSecurityContext */
463 static int hf_gsm_map_ms_tripletList = -1;        /* TripletList */
464 static int hf_gsm_map_ms_quintupletList = -1;     /* QuintupletList */
465 static int hf_gsm_map_ms_TripletList_item = -1;   /* AuthenticationTriplet */
466 static int hf_gsm_map_ms_QuintupletList_item = -1;  /* AuthenticationQuintuplet */
467 static int hf_gsm_map_ms_rand = -1;               /* RAND */
468 static int hf_gsm_map_ms_sres = -1;               /* SRES */
469 static int hf_gsm_map_ms_kc = -1;                 /* Kc */
470 static int hf_gsm_map_ms_xres = -1;               /* XRES */
471 static int hf_gsm_map_ms_ck = -1;                 /* CK */
472 static int hf_gsm_map_ms_ik = -1;                 /* IK */
473 static int hf_gsm_map_ms_autn = -1;               /* AUTN */
474 static int hf_gsm_map_ms_gsm_SecurityContextData = -1;  /* GSM_SecurityContextData */
475 static int hf_gsm_map_ms_umts_SecurityContextData = -1;  /* UMTS_SecurityContextData */
476 static int hf_gsm_map_ms_cksn = -1;               /* Cksn */
477 static int hf_gsm_map_ms_ksi = -1;                /* KSI */
478 static int hf_gsm_map_ms_failureCause = -1;       /* FailureCause */
479 static int hf_gsm_map_ms_re_attempt = -1;         /* BOOLEAN */
480 static int hf_gsm_map_ms_accessType = -1;         /* AccessType */
481 static int hf_gsm_map_ms_sgsn_Address = -1;       /* GSN_Address */
482 static int hf_gsm_map_ms_sgsn_Capability = -1;    /* SGSN_Capability */
483 static int hf_gsm_map_ms_ps_LCS_NotSupportedByUE = -1;  /* NULL */
484 static int hf_gsm_map_ms_eps_info = -1;           /* EPS_Info */
485 static int hf_gsm_map_ms_servingNodeTypeIndicator = -1;  /* NULL */
486 static int hf_gsm_map_ms_usedRAT_Type = -1;       /* Used_RAT_Type */
487 static int hf_gsm_map_ms_pdn_gw_update = -1;      /* PDN_GW_Update */
488 static int hf_gsm_map_ms_isr_Information = -1;    /* ISR_Information */
489 static int hf_gsm_map_ms_apn = -1;                /* APN */
490 static int hf_gsm_map_ms_pdn_gw_Identity = -1;    /* PDN_GW_Identity */
491 static int hf_gsm_map_ms_contextId = -1;          /* ContextId */
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_supportedFeatures = -1;  /* SupportedFeatures */
495 static int hf_gsm_map_ms_sgsn_mmeSeparationSupported = -1;  /* NULL */
496 static int hf_gsm_map_ms_an_APDU = -1;            /* AccessNetworkSignalInfo */
497 static int hf_gsm_map_ms_integrityProtectionInfo = -1;  /* IntegrityProtectionInformation */
498 static int hf_gsm_map_ms_encryptionInfo = -1;     /* EncryptionInformation */
499 static int hf_gsm_map_ms_keyStatus = -1;          /* KeyStatus */
500 static int hf_gsm_map_ms_allowedGSM_Algorithms = -1;  /* AllowedGSM_Algorithms */
501 static int hf_gsm_map_ms_allowedUMTS_Algorithms = -1;  /* AllowedUMTS_Algorithms */
502 static int hf_gsm_map_ms_radioResourceInformation = -1;  /* RadioResourceInformation */
503 static int hf_gsm_map_ms_radioResourceList = -1;  /* RadioResourceList */
504 static int hf_gsm_map_ms_bssmap_ServiceHandover = -1;  /* BSSMAP_ServiceHandover */
505 static int hf_gsm_map_ms_ranap_ServiceHandover = -1;  /* RANAP_ServiceHandover */
506 static int hf_gsm_map_ms_bssmap_ServiceHandoverList = -1;  /* BSSMAP_ServiceHandoverList */
507 static int hf_gsm_map_ms_currentlyUsedCodec = -1;  /* Codec */
508 static int hf_gsm_map_ms_iuSupportedCodecsList = -1;  /* SupportedCodecsList */
509 static int hf_gsm_map_ms_rab_ConfigurationIndicator = -1;  /* NULL */
510 static int hf_gsm_map_ms_iuSelectedCodec = -1;    /* Codec */
511 static int hf_gsm_map_ms_alternativeChannelType = -1;  /* RadioResourceInformation */
512 static int hf_gsm_map_ms_tracePropagationList = -1;  /* TracePropagationList */
513 static int hf_gsm_map_ms_integrityProtectionAlgorithms = -1;  /* PermittedIntegrityProtectionAlgorithms */
514 static int hf_gsm_map_ms_encryptionAlgorithms = -1;  /* PermittedEncryptionAlgorithms */
515 static int hf_gsm_map_ms_targetCellId = -1;       /* GlobalCellId */
516 static int hf_gsm_map_ms_ho_NumberNotRequired = -1;  /* NULL */
517 static int hf_gsm_map_ms_targetRNCId = -1;        /* RNCId */
518 static int hf_gsm_map_ms_multipleBearerRequested = -1;  /* NULL */
519 static int hf_gsm_map_ms_rab_Id = -1;             /* RAB_Id */
520 static int hf_gsm_map_ms_asciCallReference = -1;  /* ASCI_CallReference */
521 static int hf_gsm_map_ms_geran_classmark = -1;    /* GERAN_Classmark */
522 static int hf_gsm_map_ms_iuCurrentlyUsedCodec = -1;  /* Codec */
523 static int hf_gsm_map_ms_uesbi_Iu = -1;           /* UESBI_Iu */
524 static int hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item = -1;  /* BSSMAP_ServiceHandoverInfo */
525 static int hf_gsm_map_ms_RadioResourceList_item = -1;  /* RadioResource */
526 static int hf_gsm_map_ms_handoverNumber = -1;     /* ISDN_AddressString */
527 static int hf_gsm_map_ms_relocationNumberList = -1;  /* RelocationNumberList */
528 static int hf_gsm_map_ms_multicallBearerInfo = -1;  /* MulticallBearerInfo */
529 static int hf_gsm_map_ms_multipleBearerNotSupported = -1;  /* NULL */
530 static int hf_gsm_map_ms_selectedUMTS_Algorithms = -1;  /* SelectedUMTS_Algorithms */
531 static int hf_gsm_map_ms_chosenRadioResourceInformation = -1;  /* ChosenRadioResourceInformation */
532 static int hf_gsm_map_ms_iuAvailableCodecsList = -1;  /* CodecList */
533 static int hf_gsm_map_ms_integrityProtectionAlgorithm = -1;  /* ChosenIntegrityProtectionAlgorithm */
534 static int hf_gsm_map_ms_encryptionAlgorithm = -1;  /* ChosenEncryptionAlgorithm */
535 static int hf_gsm_map_ms_chosenChannelInfo = -1;  /* ChosenChannelInfo */
536 static int hf_gsm_map_ms_chosenSpeechVersion = -1;  /* ChosenSpeechVersion */
537 static int hf_gsm_map_ms_targetMSC_Number = -1;   /* ISDN_AddressString */
538 static int hf_gsm_map_ms_selectedRab_Id = -1;     /* RAB_Id */
539 static int hf_gsm_map_ms_selectedGSM_Algorithm = -1;  /* SelectedGSM_Algorithm */
540 static int hf_gsm_map_ms_iUSelectedCodec = -1;    /* Codec */
541 static int hf_gsm_map_ms_utranCodecList = -1;     /* CodecList */
542 static int hf_gsm_map_ms_geranCodecList = -1;     /* CodecList */
543 static int hf_gsm_map_ms_codec1 = -1;             /* Codec */
544 static int hf_gsm_map_ms_codec2 = -1;             /* Codec */
545 static int hf_gsm_map_ms_codec3 = -1;             /* Codec */
546 static int hf_gsm_map_ms_codec4 = -1;             /* Codec */
547 static int hf_gsm_map_ms_codec5 = -1;             /* Codec */
548 static int hf_gsm_map_ms_codec6 = -1;             /* Codec */
549 static int hf_gsm_map_ms_codec7 = -1;             /* Codec */
550 static int hf_gsm_map_ms_codec8 = -1;             /* Codec */
551 static int hf_gsm_map_ms_RelocationNumberList_item = -1;  /* RelocationNumber */
552 static int hf_gsm_map_ms_immediateResponsePreferred = -1;  /* NULL */
553 static int hf_gsm_map_ms_re_synchronisationInfo = -1;  /* Re_synchronisationInfo */
554 static int hf_gsm_map_ms_requestingNodeType = -1;  /* RequestingNodeType */
555 static int hf_gsm_map_ms_requestingPLMN_Id = -1;  /* PLMN_Id */
556 static int hf_gsm_map_ms_numberOfRequestedAdditional_Vectors = -1;  /* NumberOfRequestedVectors */
557 static int hf_gsm_map_ms_additionalVectorsAreForEPS = -1;  /* NULL */
558 static int hf_gsm_map_ms_auts = -1;               /* AUTS */
559 static int hf_gsm_map_ms_eps_AuthenticationSetList = -1;  /* EPS_AuthenticationSetList */
560 static int hf_gsm_map_ms_EPS_AuthenticationSetList_item = -1;  /* EPC_AV */
561 static int hf_gsm_map_ms_kasme = -1;              /* KASME */
562 static int hf_gsm_map_ms_imei = -1;               /* IMEI */
563 static int hf_gsm_map_ms_requestedEquipmentInfo = -1;  /* RequestedEquipmentInfo */
564 static int hf_gsm_map_ms_equipmentStatus = -1;    /* EquipmentStatus */
565 static int hf_gsm_map_ms_bmuef = -1;              /* UESBI_Iu */
566 static int hf_gsm_map_ms_uesbi_IuA = -1;          /* UESBI_IuA */
567 static int hf_gsm_map_ms_uesbi_IuB = -1;          /* UESBI_IuB */
568 static int hf_gsm_map_ms_CSG_SubscriptionDataList_item = -1;  /* CSG_SubscriptionData */
569 static int hf_gsm_map_ms_csg_Id = -1;             /* CSG_Id */
570 static int hf_gsm_map_ms_expirationDate = -1;     /* Time */
571 static int hf_gsm_map_ms_apn_oi_Replacement = -1;  /* APN_OI_Replacement */
572 static int hf_gsm_map_ms_rfsp_id = -1;            /* RFSP_ID */
573 static int hf_gsm_map_ms_ambr = -1;               /* AMBR */
574 static int hf_gsm_map_ms_apn_ConfigurationProfile = -1;  /* APN_ConfigurationProfile */
575 static int hf_gsm_map_ms_stn_sr = -1;             /* ISDN_AddressString */
576 static int hf_gsm_map_ms_defaultContext = -1;     /* ContextId */
577 static int hf_gsm_map_ms_completeDataListIncluded = -1;  /* NULL */
578 static int hf_gsm_map_ms_epsDataList = -1;        /* EPS_DataList */
579 static int hf_gsm_map_ms_EPS_DataList_item = -1;  /* APN_Configuration */
580 static int hf_gsm_map_ms_servedPartyIP_Address = -1;  /* PDP_Address */
581 static int hf_gsm_map_ms_eps_qos_Subscribed = -1;  /* EPS_QoS_Subscribed */
582 static int hf_gsm_map_ms_pdn_gw_AllocationType = -1;  /* PDN_GW_AllocationType */
583 static int hf_gsm_map_ms_vplmnAddressAllowed = -1;  /* NULL */
584 static int hf_gsm_map_ms_chargingCharacteristics = -1;  /* ChargingCharacteristics */
585 static int hf_gsm_map_ms_specificAPNInfoList = -1;  /* SpecificAPNInfoList */
586 static int hf_gsm_map_ms_qos_Class_Identifier = -1;  /* QoS_Class_Identifier */
587 static int hf_gsm_map_ms_allocation_Retention_Priority = -1;  /* Allocation_Retention_Priority */
588 static int hf_gsm_map_ms_max_RequestedBandwidth_UL = -1;  /* Bandwidth */
589 static int hf_gsm_map_ms_max_RequestedBandwidth_DL = -1;  /* Bandwidth */
590 static int hf_gsm_map_ms_SpecificAPNInfoList_item = -1;  /* SpecificAPNInfo */
591 static int hf_gsm_map_ms_priority_level = -1;     /* INTEGER */
592 static int hf_gsm_map_ms_pre_emption_capability = -1;  /* BOOLEAN */
593 static int hf_gsm_map_ms_pre_emption_vulnerability = -1;  /* BOOLEAN */
594 static int hf_gsm_map_ms_pdn_gw_ipv4_Address = -1;  /* PDP_Address */
595 static int hf_gsm_map_ms_pdn_gw_ipv6_Address = -1;  /* PDP_Address */
596 static int hf_gsm_map_ms_pdn_gw_name = -1;        /* FQDN */
597 static int hf_gsm_map_ms_gmlc_List = -1;          /* GMLC_List */
598 static int hf_gsm_map_ms_lcs_PrivacyExceptionList = -1;  /* LCS_PrivacyExceptionList */
599 static int hf_gsm_map_ms_molr_List = -1;          /* MOLR_List */
600 static int hf_gsm_map_ms_add_lcs_PrivacyExceptionList = -1;  /* LCS_PrivacyExceptionList */
601 static int hf_gsm_map_ms_GMLC_List_item = -1;     /* ISDN_AddressString */
602 static int hf_gsm_map_ms_GPRSDataList_item = -1;  /* PDP_Context */
603 static int hf_gsm_map_ms_pdp_ContextId = -1;      /* ContextId */
604 static int hf_gsm_map_ms_pdp_Type = -1;           /* PDP_Type */
605 static int hf_gsm_map_ms_pdp_Address = -1;        /* PDP_Address */
606 static int hf_gsm_map_ms_qos_Subscribed = -1;     /* QoS_Subscribed */
607 static int hf_gsm_map_ms_ext_QoS_Subscribed = -1;  /* Ext_QoS_Subscribed */
608 static int hf_gsm_map_ms_pdp_ChargingCharacteristics = -1;  /* ChargingCharacteristics */
609 static int hf_gsm_map_ms_ext2_QoS_Subscribed = -1;  /* Ext2_QoS_Subscribed */
610 static int hf_gsm_map_ms_ext3_QoS_Subscribed = -1;  /* Ext3_QoS_Subscribed */
611 static int hf_gsm_map_ms_gprsDataList = -1;       /* GPRSDataList */
612 static int hf_gsm_map_ms_gprs_CSI = -1;           /* GPRS_CSI */
613 static int hf_gsm_map_ms_mo_sms_CSI = -1;         /* SMS_CSI */
614 static int hf_gsm_map_ms_mt_sms_CSI = -1;         /* SMS_CSI */
615 static int hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList = -1;  /* MT_smsCAMELTDP_CriteriaList */
616 static int hf_gsm_map_ms_mg_csi = -1;             /* MG_CSI */
617 static int hf_gsm_map_ms_gprs_CamelTDPDataList = -1;  /* GPRS_CamelTDPDataList */
618 static int hf_gsm_map_ms_camelCapabilityHandling = -1;  /* CamelCapabilityHandling */
619 static int hf_gsm_map_ms_notificationToCSE = -1;  /* NULL */
620 static int hf_gsm_map_ms_csi_Active = -1;         /* NULL */
621 static int hf_gsm_map_ms_GPRS_CamelTDPDataList_item = -1;  /* GPRS_CamelTDPData */
622 static int hf_gsm_map_ms_gprs_TriggerDetectionPoint = -1;  /* GPRS_TriggerDetectionPoint */
623 static int hf_gsm_map_ms_serviceKey = -1;         /* ServiceKey */
624 static int hf_gsm_map_ms_gsmSCF_Address = -1;     /* ISDN_AddressString */
625 static int hf_gsm_map_ms_defaultSessionHandling = -1;  /* DefaultGPRS_Handling */
626 static int hf_gsm_map_ms_LSADataList_item = -1;   /* LSAData */
627 static int hf_gsm_map_ms_lsaIdentity = -1;        /* LSAIdentity */
628 static int hf_gsm_map_ms_lsaAttributes = -1;      /* LSAAttributes */
629 static int hf_gsm_map_ms_lsaActiveModeIndicator = -1;  /* NULL */
630 static int hf_gsm_map_ms_lsaOnlyAccessIndicator = -1;  /* LSAOnlyAccessIndicator */
631 static int hf_gsm_map_ms_lsaDataList = -1;        /* LSADataList */
632 static int hf_gsm_map_ms_msisdn = -1;             /* ISDN_AddressString */
633 static int hf_gsm_map_ms_category = -1;           /* Category */
634 static int hf_gsm_map_ms_subscriberStatus = -1;   /* SubscriberStatus */
635 static int hf_gsm_map_ms_bearerServiceList = -1;  /* BearerServiceList */
636 static int hf_gsm_map_ms_teleserviceList = -1;    /* TeleserviceList */
637 static int hf_gsm_map_ms_provisionedSS = -1;      /* Ext_SS_InfoList */
638 static int hf_gsm_map_ms_odb_Data = -1;           /* ODB_Data */
639 static int hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature = -1;  /* NULL */
640 static int hf_gsm_map_ms_regionalSubscriptionData = -1;  /* ZoneCodeList */
641 static int hf_gsm_map_ms_vbsSubscriptionData = -1;  /* VBSDataList */
642 static int hf_gsm_map_ms_vgcsSubscriptionData = -1;  /* VGCSDataList */
643 static int hf_gsm_map_ms_vlrCamelSubscriptionInfo = -1;  /* VlrCamelSubscriptionInfo */
644 static int hf_gsm_map_ms_BearerServiceList_item = -1;  /* Ext_BearerServiceCode */
645 static int hf_gsm_map_ms_TeleserviceList_item = -1;  /* Ext_TeleserviceCode */
646 static int hf_gsm_map_ms_odb_GeneralData = -1;    /* ODB_GeneralData */
647 static int hf_gsm_map_ms_odb_HPLMN_Data = -1;     /* ODB_HPLMN_Data */
648 static int hf_gsm_map_ms_Ext_SS_InfoList_item = -1;  /* Ext_SS_Info */
649 static int hf_gsm_map_ms_forwardingInfo = -1;     /* Ext_ForwInfo */
650 static int hf_gsm_map_ms_callBarringInfo = -1;    /* Ext_CallBarInfo */
651 static int hf_gsm_map_ms_cug_Info = -1;           /* CUG_Info */
652 static int hf_gsm_map_ms_ss_Data = -1;            /* Ext_SS_Data */
653 static int hf_gsm_map_ms_emlpp_Info = -1;         /* EMLPP_Info */
654 static int hf_gsm_map_ms_ss_Code = -1;            /* SS_Code */
655 static int hf_gsm_map_ms_forwardingFeatureList = -1;  /* Ext_ForwFeatureList */
656 static int hf_gsm_map_ms_Ext_ForwFeatureList_item = -1;  /* Ext_ForwFeature */
657 static int hf_gsm_map_ms_basicService = -1;       /* Ext_BasicServiceCode */
658 static int hf_gsm_map_ms_ss_Status = -1;          /* Ext_SS_Status */
659 static int hf_gsm_map_ms_forwardedToNumber = -1;  /* ISDN_AddressString */
660 static int hf_gsm_map_ms_forwardedToSubaddress = -1;  /* ISDN_SubaddressString */
661 static int hf_gsm_map_ms_forwardingOptions = -1;  /* T_forwardingOptions */
662 static int hf_gsm_map_ms_noReplyConditionTime = -1;  /* Ext_NoRepCondTime */
663 static int hf_gsm_map_ms_longForwardedToNumber = -1;  /* FTN_AddressString */
664 static int hf_gsm_map_ms_callBarringFeatureList = -1;  /* Ext_CallBarFeatureList */
665 static int hf_gsm_map_ms_Ext_CallBarFeatureList_item = -1;  /* Ext_CallBarringFeature */
666 static int hf_gsm_map_ms_cug_SubscriptionList = -1;  /* CUG_SubscriptionList */
667 static int hf_gsm_map_ms_cug_FeatureList = -1;    /* CUG_FeatureList */
668 static int hf_gsm_map_ms_CUG_SubscriptionList_item = -1;  /* CUG_Subscription */
669 static int hf_gsm_map_ms_cug_Index = -1;          /* CUG_Index */
670 static int hf_gsm_map_ms_cug_Interlock = -1;      /* CUG_Interlock */
671 static int hf_gsm_map_ms_intraCUG_Options = -1;   /* IntraCUG_Options */
672 static int hf_gsm_map_ms_basicServiceGroupList = -1;  /* Ext_BasicServiceGroupList */
673 static int hf_gsm_map_ms_CUG_FeatureList_item = -1;  /* CUG_Feature */
674 static int hf_gsm_map_ms_Ext_BasicServiceGroupList_item = -1;  /* Ext_BasicServiceCode */
675 static int hf_gsm_map_ms_preferentialCUG_Indicator = -1;  /* CUG_Index */
676 static int hf_gsm_map_ms_interCUG_Restrictions = -1;  /* InterCUG_Restrictions */
677 static int hf_gsm_map_ms_ss_SubscriptionOption = -1;  /* SS_SubscriptionOption */
678 static int hf_gsm_map_ms_LCS_PrivacyExceptionList_item = -1;  /* LCS_PrivacyClass */
679 static int hf_gsm_map_ms_notificationToMSUser = -1;  /* NotificationToMSUser */
680 static int hf_gsm_map_ms_externalClientList = -1;  /* ExternalClientList */
681 static int hf_gsm_map_ms_plmnClientList = -1;     /* PLMNClientList */
682 static int hf_gsm_map_ms_ext_externalClientList = -1;  /* Ext_ExternalClientList */
683 static int hf_gsm_map_ms_serviceTypeList = -1;    /* ServiceTypeList */
684 static int hf_gsm_map_ms_ExternalClientList_item = -1;  /* ExternalClient */
685 static int hf_gsm_map_ms_PLMNClientList_item = -1;  /* LCSClientInternalID */
686 static int hf_gsm_map_ms_Ext_ExternalClientList_item = -1;  /* ExternalClient */
687 static int hf_gsm_map_ms_clientIdentity = -1;     /* LCSClientExternalID */
688 static int hf_gsm_map_ms_gmlc_Restriction = -1;   /* GMLC_Restriction */
689 static int hf_gsm_map_ms_ServiceTypeList_item = -1;  /* ServiceType */
690 static int hf_gsm_map_ms_serviceTypeIdentity = -1;  /* LCSServiceTypeID */
691 static int hf_gsm_map_ms_MOLR_List_item = -1;     /* MOLR_Class */
692 static int hf_gsm_map_ms_ZoneCodeList_item = -1;  /* ZoneCode */
693 static int hf_gsm_map_ms_ss_List = -1;            /* SS_List */
694 static int hf_gsm_map_ms_regionalSubscriptionResponse = -1;  /* RegionalSubscriptionResponse */
695 static int hf_gsm_map_ms_basicServiceList = -1;   /* BasicServiceList */
696 static int hf_gsm_map_ms_regionalSubscriptionIdentifier = -1;  /* ZoneCode */
697 static int hf_gsm_map_ms_vbsGroupIndication = -1;  /* NULL */
698 static int hf_gsm_map_ms_vgcsGroupIndication = -1;  /* NULL */
699 static int hf_gsm_map_ms_camelSubscriptionInfoWithdraw = -1;  /* NULL */
700 static int hf_gsm_map_ms_gprsSubscriptionDataWithdraw = -1;  /* GPRSSubscriptionDataWithdraw */
701 static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature = -1;  /* NULL */
702 static int hf_gsm_map_ms_lsaInformationWithdraw = -1;  /* LSAInformationWithdraw */
703 static int hf_gsm_map_ms_gmlc_ListWithdraw = -1;  /* NULL */
704 static int hf_gsm_map_ms_istInformationWithdraw = -1;  /* NULL */
705 static int hf_gsm_map_ms_specificCSI_Withdraw = -1;  /* SpecificCSI_Withdraw */
706 static int hf_gsm_map_ms_chargingCharacteristicsWithdraw = -1;  /* NULL */
707 static int hf_gsm_map_ms_stn_srWithdraw = -1;     /* NULL */
708 static int hf_gsm_map_ms_epsSubscriptionDataWithdraw = -1;  /* EPS_SubscriptionDataWithdraw */
709 static int hf_gsm_map_ms_apn_oi_replacementWithdraw = -1;  /* NULL */
710 static int hf_gsm_map_ms_csg_SubscriptionDeleted = -1;  /* NULL */
711 static int hf_gsm_map_ms_allGPRSData = -1;        /* NULL */
712 static int hf_gsm_map_ms_contextIdList = -1;      /* ContextIdList */
713 static int hf_gsm_map_ms_allEPS_Data = -1;        /* NULL */
714 static int hf_gsm_map_ms_ContextIdList_item = -1;  /* ContextId */
715 static int hf_gsm_map_ms_allLSAData = -1;         /* NULL */
716 static int hf_gsm_map_ms_lsaIdentityList = -1;    /* LSAIdentityList */
717 static int hf_gsm_map_ms_LSAIdentityList_item = -1;  /* LSAIdentity */
718 static int hf_gsm_map_ms_BasicServiceList_item = -1;  /* Ext_BasicServiceCode */
719 static int hf_gsm_map_ms_o_CSI = -1;              /* O_CSI */
720 static int hf_gsm_map_ms_ss_CSI = -1;             /* SS_CSI */
721 static int hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
722 static int hf_gsm_map_ms_tif_CSI = -1;            /* NULL */
723 static int hf_gsm_map_ms_m_CSI = -1;              /* M_CSI */
724 static int hf_gsm_map_ms_vt_CSI = -1;             /* T_CSI */
725 static int hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
726 static int hf_gsm_map_ms_d_CSI = -1;              /* D_CSI */
727 static int hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item = -1;  /* MT_smsCAMELTDP_Criteria */
728 static int hf_gsm_map_ms_sms_TriggerDetectionPoint = -1;  /* SMS_TriggerDetectionPoint */
729 static int hf_gsm_map_ms_tpdu_TypeCriterion = -1;  /* TPDU_TypeCriterion */
730 static int hf_gsm_map_ms_TPDU_TypeCriterion_item = -1;  /* MT_SMS_TPDU_Type */
731 static int hf_gsm_map_ms_dp_AnalysedInfoCriteriaList = -1;  /* DP_AnalysedInfoCriteriaList */
732 static int hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item = -1;  /* DP_AnalysedInfoCriterium */
733 static int hf_gsm_map_ms_dialledNumber = -1;      /* ISDN_AddressString */
734 static int hf_gsm_map_ms_defaultCallHandling = -1;  /* DefaultCallHandling */
735 static int hf_gsm_map_ms_ss_CamelData = -1;       /* SS_CamelData */
736 static int hf_gsm_map_ms_ss_EventList = -1;       /* SS_EventList */
737 static int hf_gsm_map_ms_SS_EventList_item = -1;  /* SS_Code */
738 static int hf_gsm_map_ms_o_BcsmCamelTDPDataList = -1;  /* O_BcsmCamelTDPDataList */
739 static int hf_gsm_map_ms_csiActive = -1;          /* NULL */
740 static int hf_gsm_map_ms_O_BcsmCamelTDPDataList_item = -1;  /* O_BcsmCamelTDPData */
741 static int hf_gsm_map_ms_o_BcsmTriggerDetectionPoint = -1;  /* O_BcsmTriggerDetectionPoint */
742 static int hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item = -1;  /* O_BcsmCamelTDP_Criteria */
743 static int hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item = -1;  /* T_BCSM_CAMEL_TDP_Criteria */
744 static int hf_gsm_map_ms_destinationNumberCriteria = -1;  /* DestinationNumberCriteria */
745 static int hf_gsm_map_ms_basicServiceCriteria = -1;  /* BasicServiceCriteria */
746 static int hf_gsm_map_ms_callTypeCriteria = -1;   /* CallTypeCriteria */
747 static int hf_gsm_map_ms_o_CauseValueCriteria = -1;  /* O_CauseValueCriteria */
748 static int hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint = -1;  /* T_BcsmTriggerDetectionPoint */
749 static int hf_gsm_map_ms_t_CauseValueCriteria = -1;  /* T_CauseValueCriteria */
750 static int hf_gsm_map_ms_matchType = -1;          /* MatchType */
751 static int hf_gsm_map_ms_destinationNumberList = -1;  /* DestinationNumberList */
752 static int hf_gsm_map_ms_destinationNumberLengthList = -1;  /* DestinationNumberLengthList */
753 static int hf_gsm_map_ms_DestinationNumberList_item = -1;  /* ISDN_AddressString */
754 static int hf_gsm_map_ms_DestinationNumberLengthList_item = -1;  /* INTEGER_1_maxNumOfISDN_AddressDigits */
755 static int hf_gsm_map_ms_BasicServiceCriteria_item = -1;  /* Ext_BasicServiceCode */
756 static int hf_gsm_map_ms_O_CauseValueCriteria_item = -1;  /* CauseValue */
757 static int hf_gsm_map_ms_T_CauseValueCriteria_item = -1;  /* CauseValue */
758 static int hf_gsm_map_ms_sms_CAMEL_TDP_DataList = -1;  /* SMS_CAMEL_TDP_DataList */
759 static int hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item = -1;  /* SMS_CAMEL_TDP_Data */
760 static int hf_gsm_map_ms_defaultSMS_Handling = -1;  /* DefaultSMS_Handling */
761 static int hf_gsm_map_ms_mobilityTriggers = -1;   /* MobilityTriggers */
762 static int hf_gsm_map_ms_MobilityTriggers_item = -1;  /* MM_Code */
763 static int hf_gsm_map_ms_t_BcsmCamelTDPDataList = -1;  /* T_BcsmCamelTDPDataList */
764 static int hf_gsm_map_ms_T_BcsmCamelTDPDataList_item = -1;  /* T_BcsmCamelTDPData */
765 static int hf_gsm_map_ms_t_BcsmTriggerDetectionPoint = -1;  /* T_BcsmTriggerDetectionPoint */
766 static int hf_gsm_map_ms_ggsn_Address = -1;       /* GSN_Address */
767 static int hf_gsm_map_ms_ggsn_Number = -1;        /* ISDN_AddressString */
768 static int hf_gsm_map_ms_mobileNotReachableReason = -1;  /* AbsentSubscriberDiagnosticSM */
769 static int hf_gsm_map_ms_hlr_List = -1;           /* HLR_List */
770 static int hf_gsm_map_ms_msNotReachable = -1;     /* NULL */
771 static int hf_gsm_map_ms_VBSDataList_item = -1;   /* VoiceBroadcastData */
772 static int hf_gsm_map_ms_VGCSDataList_item = -1;  /* VoiceGroupCallData */
773 static int hf_gsm_map_ms_groupId = -1;            /* GroupId */
774 static int hf_gsm_map_ms_additionalSubscriptions = -1;  /* AdditionalSubscriptions */
775 static int hf_gsm_map_ms_additionalInfo = -1;     /* AdditionalInfo */
776 static int hf_gsm_map_ms_longGroupId = -1;        /* Long_GroupId */
777 static int hf_gsm_map_ms_groupid = -1;            /* GroupId */
778 static int hf_gsm_map_ms_broadcastInitEntitlement = -1;  /* NULL */
779 static int hf_gsm_map_ms_requestedInfo = -1;      /* RequestedInfo */
780 static int hf_gsm_map_ms_callPriority = -1;       /* EMLPP_Priority */
781 static int hf_gsm_map_ms_subscriberInfo = -1;     /* SubscriberInfo */
782 static int hf_gsm_map_ms_locationInformation = -1;  /* LocationInformation */
783 static int hf_gsm_map_ms_subscriberState = -1;    /* SubscriberState */
784 static int hf_gsm_map_ms_locationInformationGPRS = -1;  /* LocationInformationGPRS */
785 static int hf_gsm_map_ms_ps_SubscriberState = -1;  /* PS_SubscriberState */
786 static int hf_gsm_map_ms_ms_Classmark2 = -1;      /* MS_Classmark2 */
787 static int hf_gsm_map_ms_gprs_MS_Class = -1;      /* GPRSMSClass */
788 static int hf_gsm_map_ms_mnpInfoRes = -1;         /* MNPInfoRes */
789 static int hf_gsm_map_ms_routeingNumber = -1;     /* RouteingNumber */
790 static int hf_gsm_map_ms_numberPortabilityStatus = -1;  /* NumberPortabilityStatus */
791 static int hf_gsm_map_ms_mSNetworkCapability = -1;  /* MSNetworkCapability */
792 static int hf_gsm_map_ms_mSRadioAccessCapability = -1;  /* MSRadioAccessCapability */
793 static int hf_gsm_map_ms_locationInformation_01 = -1;  /* NULL */
794 static int hf_gsm_map_ms_subscriberState_01 = -1;  /* NULL */
795 static int hf_gsm_map_ms_currentLocation = -1;    /* NULL */
796 static int hf_gsm_map_ms_requestedDomain = -1;    /* DomainType */
797 static int hf_gsm_map_ms_imei_01 = -1;            /* NULL */
798 static int hf_gsm_map_ms_ms_classmark = -1;       /* NULL */
799 static int hf_gsm_map_ms_mnpRequestedInfo = -1;   /* NULL */
800 static int hf_gsm_map_ms_ageOfLocationInformation = -1;  /* AgeOfLocationInformation */
801 static int hf_gsm_map_ms_geographicalInformation = -1;  /* GeographicalInformation */
802 static int hf_gsm_map_ms_vlr_number = -1;         /* ISDN_AddressString */
803 static int hf_gsm_map_ms_locationNumber = -1;     /* LocationNumber */
804 static int hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI = -1;  /* CellGlobalIdOrServiceAreaIdOrLAI */
805 static int hf_gsm_map_ms_selectedLSA_Id = -1;     /* LSAIdentity */
806 static int hf_gsm_map_ms_geodeticInformation = -1;  /* GeodeticInformation */
807 static int hf_gsm_map_ms_currentLocationRetrieved = -1;  /* NULL */
808 static int hf_gsm_map_ms_sai_Present = -1;        /* NULL */
809 static int hf_gsm_map_ms_routeingAreaIdentity = -1;  /* RAIdentity */
810 static int hf_gsm_map_ms_selectedLSAIdentity = -1;  /* LSAIdentity */
811 static int hf_gsm_map_ms_assumedIdle = -1;        /* NULL */
812 static int hf_gsm_map_ms_camelBusy = -1;          /* NULL */
813 static int hf_gsm_map_ms_netDetNotReachable = -1;  /* NotReachableReason */
814 static int hf_gsm_map_ms_notProvidedFromVLR = -1;  /* NULL */
815 static int hf_gsm_map_ms_notProvidedFromSGSN = -1;  /* NULL */
816 static int hf_gsm_map_ms_ps_Detached = -1;        /* NULL */
817 static int hf_gsm_map_ms_ps_AttachedNotReachableForPaging = -1;  /* NULL */
818 static int hf_gsm_map_ms_ps_AttachedReachableForPaging = -1;  /* NULL */
819 static int hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging = -1;  /* PDP_ContextInfoList */
820 static int hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging = -1;  /* PDP_ContextInfoList */
821 static int hf_gsm_map_ms_PDP_ContextInfoList_item = -1;  /* PDP_ContextInfo */
822 static int hf_gsm_map_ms_pdp_ContextIdentifier = -1;  /* ContextId */
823 static int hf_gsm_map_ms_pdp_ContextActive = -1;  /* NULL */
824 static int hf_gsm_map_ms_apn_Subscribed = -1;     /* APN */
825 static int hf_gsm_map_ms_apn_InUse = -1;          /* APN */
826 static int hf_gsm_map_ms_nsapi = -1;              /* NSAPI */
827 static int hf_gsm_map_ms_transactionId = -1;      /* TransactionId */
828 static int hf_gsm_map_ms_teid_ForGnAndGp = -1;    /* TEID */
829 static int hf_gsm_map_ms_teid_ForIu = -1;         /* TEID */
830 static int hf_gsm_map_ms_qos_Subscribed_01 = -1;  /* Ext_QoS_Subscribed */
831 static int hf_gsm_map_ms_qos_Requested = -1;      /* Ext_QoS_Subscribed */
832 static int hf_gsm_map_ms_qos_Negotiated = -1;     /* Ext_QoS_Subscribed */
833 static int hf_gsm_map_ms_chargingId = -1;         /* GPRSChargingID */
834 static int hf_gsm_map_ms_rnc_Address = -1;        /* GSN_Address */
835 static int hf_gsm_map_ms_qos2_Subscribed = -1;    /* Ext2_QoS_Subscribed */
836 static int hf_gsm_map_ms_qos2_Requested = -1;     /* Ext2_QoS_Subscribed */
837 static int hf_gsm_map_ms_qos2_Negotiated = -1;    /* Ext2_QoS_Subscribed */
838 static int hf_gsm_map_ms_qos3_Subscribed = -1;    /* Ext3_QoS_Subscribed */
839 static int hf_gsm_map_ms_qos3_Requested = -1;     /* Ext3_QoS_Subscribed */
840 static int hf_gsm_map_ms_qos3_Negotiated = -1;    /* Ext3_QoS_Subscribed */
841 static int hf_gsm_map_ms_subscriberIdentity = -1;  /* SubscriberIdentity */
842 static int hf_gsm_map_ms_requestedSubscriptionInfo = -1;  /* RequestedSubscriptionInfo */
843 static int hf_gsm_map_ms_callForwardingData = -1;  /* CallForwardingData */
844 static int hf_gsm_map_ms_callBarringData = -1;    /* CallBarringData */
845 static int hf_gsm_map_ms_odb_Info = -1;           /* ODB_Info */
846 static int hf_gsm_map_ms_camel_SubscriptionInfo = -1;  /* CAMEL_SubscriptionInfo */
847 static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases = -1;  /* SupportedCamelPhases */
848 static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases = -1;  /* SupportedCamelPhases */
849 static int hf_gsm_map_ms_offeredCamel4CSIsInVLR = -1;  /* OfferedCamel4CSIs */
850 static int hf_gsm_map_ms_offeredCamel4CSIsInSGSN = -1;  /* OfferedCamel4CSIs */
851 static int hf_gsm_map_ms_msisdn_BS_List = -1;     /* MSISDN_BS_List */
852 static int hf_gsm_map_ms_requestedSS_Info = -1;   /* SS_ForBS_Code */
853 static int hf_gsm_map_ms_odb = -1;                /* NULL */
854 static int hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo = -1;  /* RequestedCAMEL_SubscriptionInfo */
855 static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01 = -1;  /* NULL */
856 static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01 = -1;  /* NULL */
857 static int hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo = -1;  /* AdditionalRequestedCAMEL_SubscriptionInfo */
858 static int hf_gsm_map_ms_msisdn_BS_List_01 = -1;  /* NULL */
859 static int hf_gsm_map_ms_MSISDN_BS_List_item = -1;  /* MSISDN_BS */
860 static int hf_gsm_map_ms_password = -1;           /* Password */
861 static int hf_gsm_map_ms_wrongPasswordAttemptsCounter = -1;  /* WrongPasswordAttemptsCounter */
862 static int hf_gsm_map_ms_t_CSI = -1;              /* T_CSI */
863 static int hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
864 static int hf_gsm_map_ms_tif_CSI_NotificationToCSE = -1;  /* NULL */
865 static int hf_gsm_map_ms_specificCSIDeletedList = -1;  /* SpecificCSI_Withdraw */
866 static int hf_gsm_map_ms_o_IM_CSI = -1;           /* O_CSI */
867 static int hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
868 static int hf_gsm_map_ms_d_IM_CSI = -1;           /* D_CSI */
869 static int hf_gsm_map_ms_vt_IM_CSI = -1;          /* T_CSI */
870 static int hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
871 static int hf_gsm_map_ms_modificationRequestFor_CF_Info = -1;  /* ModificationRequestFor_CF_Info */
872 static int hf_gsm_map_ms_modificationRequestFor_CB_Info = -1;  /* ModificationRequestFor_CB_Info */
873 static int hf_gsm_map_ms_modificationRequestFor_CSI = -1;  /* ModificationRequestFor_CSI */
874 static int hf_gsm_map_ms_modificationRequestFor_ODB_data = -1;  /* ModificationRequestFor_ODB_data */
875 static int hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data = -1;  /* ModificationRequestFor_IP_SM_GW_Data */
876 static int hf_gsm_map_ms_ss_InfoFor_CSE = -1;     /* Ext_SS_InfoFor_CSE */
877 static int hf_gsm_map_ms_forwardedToNumber_01 = -1;  /* AddressString */
878 static int hf_gsm_map_ms_modifyNotificationToCSE = -1;  /* ModificationInstruction */
879 static int hf_gsm_map_ms_odb_data = -1;           /* ODB_Data */
880 static int hf_gsm_map_ms_requestedCamel_SubscriptionInfo = -1;  /* RequestedCAMEL_SubscriptionInfo */
881 static int hf_gsm_map_ms_modifyCSI_State = -1;    /* ModificationInstruction */
882 static int hf_gsm_map_ms_modifyRegistrationStatus = -1;  /* ModificationInstruction */
883 static int hf_gsm_map_ms_forwardingInfoFor_CSE = -1;  /* Ext_ForwardingInfoFor_CSE */
884 static int hf_gsm_map_ms_callBarringInfoFor_CSE = -1;  /* Ext_CallBarringInfoFor_CSE */
885 static int hf_gsm_map_ms_allInformationSent = -1;  /* NULL */
886 static int hf_gsm_map_ms_eventMet = -1;           /* MM_Code */
887 static int hf_gsm_map_ms_supportedCAMELPhases = -1;  /* SupportedCamelPhases */
888 static int hf_gsm_map_ms_offeredCamel4Functionalities = -1;  /* OfferedCamel4Functionalities */
889 static int hf_gsm_map_ms_naea_PreferredCI = -1;   /* NAEA_PreferredCI */
890 static int hf_gsm_map_ms_gprsSubscriptionData = -1;  /* GPRSSubscriptionData */
891 static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature = -1;  /* NULL */
892 static int hf_gsm_map_ms_networkAccessMode = -1;  /* NetworkAccessMode */
893 static int hf_gsm_map_ms_lsaInformation = -1;     /* LSAInformation */
894 static int hf_gsm_map_ms_lmu_Indicator = -1;      /* NULL */
895 static int hf_gsm_map_ms_lcsInformation = -1;     /* LCSInformation */
896 static int hf_gsm_map_ms_istAlertTimer = -1;      /* IST_AlertTimerValue */
897 static int hf_gsm_map_ms_superChargerSupportedInHLR = -1;  /* AgeIndicator */
898 static int hf_gsm_map_ms_mc_SS_Info = -1;         /* MC_SS_Info */
899 static int hf_gsm_map_ms_cs_AllocationRetentionPriority = -1;  /* CS_AllocationRetentionPriority */
900 static int hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo = -1;  /* SGSN_CAMEL_SubscriptionInfo */
901 static int hf_gsm_map_ms_accessRestrictionData = -1;  /* AccessRestrictionData */
902 static int hf_gsm_map_ms_ics_Indicator = -1;      /* BOOLEAN */
903 static int hf_gsm_map_ms_eps_SubscriptionData = -1;  /* EPS_SubscriptionData */
904 static int hf_gsm_map_ms_csg_SubscriptionDataList = -1;  /* CSG_SubscriptionDataList */
905 /* named bits */
906 static int hf_gsm_map_ms_SupportedRAT_Types_utran = -1;
907 static int hf_gsm_map_ms_SupportedRAT_Types_geran = -1;
908 static int hf_gsm_map_ms_SupportedRAT_Types_gan = -1;
909 static int hf_gsm_map_ms_SupportedRAT_Types_i_hspa_evolution = -1;
910 static int hf_gsm_map_ms_SupportedRAT_Types_e_utran = -1;
911 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1 = -1;
912 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2 = -1;
913 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3 = -1;
914 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4 = -1;
915 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5 = -1;
916 static int hf_gsm_map_ms_ISR_Information_updateMME = -1;
917 static int hf_gsm_map_ms_ISR_Information_cancelSGSN = -1;
918 static int hf_gsm_map_ms_SupportedFeatures_odb_all = -1;
919 static int hf_gsm_map_ms_SupportedFeatures_odb_HPLMN_APN = -1;
920 static int hf_gsm_map_ms_SupportedFeatures_odb_VPLMN_APN = -1;
921 static int hf_gsm_map_ms_SupportedFeatures_regSub = -1;
922 static int hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus = -1;
923 static int hf_gsm_map_ms_RequestedEquipmentInfo_bmuef = -1;
924 static int hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed = -1;
925 static int hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed = -1;
926 static int hf_gsm_map_ms_AccessRestrictionData_ganNotAllowed = -1;
927 static int hf_gsm_map_ms_AccessRestrictionData_i_hspa_evolutionNotAllowed = -1;
928 static int hf_gsm_map_ms_AccessRestrictionData_e_utranNotAllowed = -1;
929 static int hf_gsm_map_ms_AccessRestrictionData_ho_toNon3GPP_AccessNotAllowed = -1;
930 static int hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred = -1;
931 static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred = -1;
932 static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred = -1;
933 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred = -1;
934 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred = -1;
935 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred = -1;
936 static int hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred = -1;
937 static int hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred = -1;
938 static int hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred = -1;
939 static int hf_gsm_map_ms_ODB_GeneralData_allECT_Barred = -1;
940 static int hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred = -1;
941 static int hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred = -1;
942 static int hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred = -1;
943 static int hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred = -1;
944 static int hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred = -1;
945 static int hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred = -1;
946 static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred = -1;
947 static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred = -1;
948 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred = -1;
949 static int hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred = -1;
950 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred = -1;
951 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred = -1;
952 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred = -1;
953 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred = -1;
954 static int hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred = -1;
955 static int hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred = -1;
956 static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred = -1;
957 static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred = -1;
958 static int hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred = -1;
959 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1 = -1;
960 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2 = -1;
961 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3 = -1;
962 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4 = -1;
963 static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi = -1;
964 static int hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi = -1;
965 static int hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi = -1;
966 static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi = -1;
967 static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi = -1;
968 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi = -1;
969 static int hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi = -1;
970 static int hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi = -1;
971 static int hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi = -1;
972 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi = -1;
973 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi = -1;
974 static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI = -1;
975 static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI = -1;
976 static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI = -1;
977 static int hf_gsm_map_ms_SupportedCamelPhases_phase1 = -1;
978 static int hf_gsm_map_ms_SupportedCamelPhases_phase2 = -1;
979 static int hf_gsm_map_ms_SupportedCamelPhases_phase3 = -1;
980 static int hf_gsm_map_ms_SupportedCamelPhases_phase4 = -1;
981 static int hf_gsm_map_ms_OfferedCamel4CSIs_o_csi = -1;
982 static int hf_gsm_map_ms_OfferedCamel4CSIs_d_csi = -1;
983 static int hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi = -1;
984 static int hf_gsm_map_ms_OfferedCamel4CSIs_t_csi = -1;
985 static int hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi = -1;
986 static int hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi = -1;
987 static int hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements = -1;
988 static int hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt = -1;
989 static int hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg = -1;
990 static int hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg = -1;
991 static int hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg = -1;
992 static int hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased = -1;
993 static int hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument = -1;
994 static int hf_gsm_map_ms_OfferedCamel4Functionalities_playTone = -1;
995 static int hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall = -1;
996 static int hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator = -1;
997 static int hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP = -1;
998 static int hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting = -1;
999 static int hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP = -1;
1000 static int hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions = -1;
1001 static int hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements = -1;
1002 static int hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements = -1;
1003 static int hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices = -1;
1004 static int hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices = -1;
1005 static int hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP = -1;
1006 static int hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP = -1;
1007 static int hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation = -1;
1008 static int hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest = -1;
1009 static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest = -1;
1010 static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset = -1;
1011
1012 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
1013
1014 static int hf_gsm_map_ch_cug_Interlock = -1;      /* CUG_Interlock */
1015 static int hf_gsm_map_ch_cug_OutgoingAccess = -1;  /* NULL */
1016 static int hf_gsm_map_ch_extensionContainer = -1;  /* ExtensionContainer */
1017 static int hf_gsm_map_ch_msisdn = -1;             /* ISDN_AddressString */
1018 static int hf_gsm_map_ch_cug_CheckInfo = -1;      /* CUG_CheckInfo */
1019 static int hf_gsm_map_ch_numberOfForwarding = -1;  /* NumberOfForwarding */
1020 static int hf_gsm_map_ch_interrogationType = -1;  /* InterrogationType */
1021 static int hf_gsm_map_ch_or_Interrogation = -1;   /* NULL */
1022 static int hf_gsm_map_ch_or_Capability = -1;      /* OR_Phase */
1023 static int hf_gsm_map_ch_gmsc_OrGsmSCF_Address = -1;  /* ISDN_AddressString */
1024 static int hf_gsm_map_ch_callReferenceNumber = -1;  /* CallReferenceNumber */
1025 static int hf_gsm_map_ch_forwardingReason = -1;   /* ForwardingReason */
1026 static int hf_gsm_map_ch_basicServiceGroup = -1;  /* Ext_BasicServiceCode */
1027 static int hf_gsm_map_ch_networkSignalInfo = -1;  /* ExternalSignalInfo */
1028 static int hf_gsm_map_ch_camelInfo = -1;          /* CamelInfo */
1029 static int hf_gsm_map_ch_suppressionOfAnnouncement = -1;  /* SuppressionOfAnnouncement */
1030 static int hf_gsm_map_ch_alertingPattern = -1;    /* AlertingPattern */
1031 static int hf_gsm_map_ch_ccbs_Call = -1;          /* NULL */
1032 static int hf_gsm_map_ch_supportedCCBS_Phase = -1;  /* SupportedCCBS_Phase */
1033 static int hf_gsm_map_ch_additionalSignalInfo = -1;  /* Ext_ExternalSignalInfo */
1034 static int hf_gsm_map_ch_istSupportIndicator = -1;  /* IST_SupportIndicator */
1035 static int hf_gsm_map_ch_pre_pagingSupported = -1;  /* NULL */
1036 static int hf_gsm_map_ch_callDiversionTreatmentIndicator = -1;  /* CallDiversionTreatmentIndicator */
1037 static int hf_gsm_map_ch_longFTN_Supported = -1;  /* NULL */
1038 static int hf_gsm_map_ch_suppress_VT_CSI = -1;    /* NULL */
1039 static int hf_gsm_map_ch_suppressIncomingCallBarring = -1;  /* NULL */
1040 static int hf_gsm_map_ch_gsmSCF_InitiatedCall = -1;  /* NULL */
1041 static int hf_gsm_map_ch_basicServiceGroup2 = -1;  /* Ext_BasicServiceCode */
1042 static int hf_gsm_map_ch_networkSignalInfo2 = -1;  /* ExternalSignalInfo */
1043 static int hf_gsm_map_ch_suppressMTSS = -1;       /* SuppressMTSS */
1044 static int hf_gsm_map_ch_mtRoamingRetrySupported = -1;  /* NULL */
1045 static int hf_gsm_map_ch_callPriority = -1;       /* EMLPP_Priority */
1046 static int hf_gsm_map_ch_imsi = -1;               /* IMSI */
1047 static int hf_gsm_map_ch_extendedRoutingInfo = -1;  /* ExtendedRoutingInfo */
1048 static int hf_gsm_map_ch_cugSubscriptionFlag = -1;  /* NULL */
1049 static int hf_gsm_map_ch_subscriberInfo = -1;     /* SubscriberInfo */
1050 static int hf_gsm_map_ch_ss_List = -1;            /* SS_List */
1051 static int hf_gsm_map_ch_basicService = -1;       /* Ext_BasicServiceCode */
1052 static int hf_gsm_map_ch_forwardingInterrogationRequired = -1;  /* NULL */
1053 static int hf_gsm_map_ch_vmsc_Address = -1;       /* ISDN_AddressString */
1054 static int hf_gsm_map_ch_naea_PreferredCI = -1;   /* NAEA_PreferredCI */
1055 static int hf_gsm_map_ch_ccbs_Indicators = -1;    /* CCBS_Indicators */
1056 static int hf_gsm_map_ch_numberPortabilityStatus = -1;  /* NumberPortabilityStatus */
1057 static int hf_gsm_map_ch_istAlertTimer = -1;      /* IST_AlertTimerValue */
1058 static int hf_gsm_map_ch_supportedCamelPhasesInVMSC = -1;  /* SupportedCamelPhases */
1059 static int hf_gsm_map_ch_offeredCamel4CSIsInVMSC = -1;  /* OfferedCamel4CSIs */
1060 static int hf_gsm_map_ch_routingInfo2 = -1;       /* RoutingInfo */
1061 static int hf_gsm_map_ch_ss_List2 = -1;           /* SS_List */
1062 static int hf_gsm_map_ch_basicService2 = -1;      /* Ext_BasicServiceCode */
1063 static int hf_gsm_map_ch_allowedServices = -1;    /* AllowedServices */
1064 static int hf_gsm_map_ch_unavailabilityCause = -1;  /* UnavailabilityCause */
1065 static int hf_gsm_map_ch_releaseResourcesSupported = -1;  /* NULL */
1066 static int hf_gsm_map_ch_gsm_BearerCapability = -1;  /* ExternalSignalInfo */
1067 static int hf_gsm_map_ch_ccbs_Possible = -1;      /* NULL */
1068 static int hf_gsm_map_ch_keepCCBS_CallIndicator = -1;  /* NULL */
1069 static int hf_gsm_map_ch_roamingNumber = -1;      /* ISDN_AddressString */
1070 static int hf_gsm_map_ch_forwardingData = -1;     /* ForwardingData */
1071 static int hf_gsm_map_ch_forwardedToNumber = -1;  /* ISDN_AddressString */
1072 static int hf_gsm_map_ch_forwardedToSubaddress = -1;  /* ISDN_SubaddressString */
1073 static int hf_gsm_map_ch_forwardingOptions = -1;  /* ForwardingOptions */
1074 static int hf_gsm_map_ch_longForwardedToNumber = -1;  /* FTN_AddressString */
1075 static int hf_gsm_map_ch_msc_Number = -1;         /* ISDN_AddressString */
1076 static int hf_gsm_map_ch_lmsi = -1;               /* LMSI */
1077 static int hf_gsm_map_ch_gmsc_Address = -1;       /* ISDN_AddressString */
1078 static int hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode = -1;  /* SupportedCamelPhases */
1079 static int hf_gsm_map_ch_orNotSupportedInGMSC = -1;  /* NULL */
1080 static int hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode = -1;  /* OfferedCamel4CSIs */
1081 static int hf_gsm_map_ch_pagingArea = -1;         /* PagingArea */
1082 static int hf_gsm_map_ch_o_CSI = -1;              /* O_CSI */
1083 static int hf_gsm_map_ch_uu_Data = -1;            /* UU_Data */
1084 static int hf_gsm_map_ch_allInformationSent = -1;  /* NULL */
1085 static int hf_gsm_map_ch_d_csi = -1;              /* D_CSI */
1086 static int hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
1087 static int hf_gsm_map_ch_mtRoamingRetry = -1;     /* NULL */
1088 static int hf_gsm_map_ch_uuIndicator = -1;        /* UUIndicator */
1089 static int hf_gsm_map_ch_uui = -1;                /* UUI */
1090 static int hf_gsm_map_ch_uusCFInteraction = -1;   /* NULL */
1091 static int hf_gsm_map_ch_supportedCamelPhases = -1;  /* SupportedCamelPhases */
1092 static int hf_gsm_map_ch_suppress_T_CSI = -1;     /* NULL */
1093 static int hf_gsm_map_ch_offeredCamel4CSIs = -1;  /* OfferedCamel4CSIs */
1094 static int hf_gsm_map_ch_routingInfo = -1;        /* RoutingInfo */
1095 static int hf_gsm_map_ch_camelRoutingInfo = -1;   /* CamelRoutingInfo */
1096 static int hf_gsm_map_ch_gmscCamelSubscriptionInfo = -1;  /* GmscCamelSubscriptionInfo */
1097 static int hf_gsm_map_ch_t_CSI = -1;              /* T_CSI */
1098 static int hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
1099 static int hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
1100 static int hf_gsm_map_ch_ccbs_Monitoring = -1;    /* ReportingState */
1101 static int hf_gsm_map_ch_ccbs_SubscriberStatus = -1;  /* CCBS_SubscriberStatus */
1102 static int hf_gsm_map_ch_eventReportData = -1;    /* EventReportData */
1103 static int hf_gsm_map_ch_callReportdata = -1;     /* CallReportData */
1104 static int hf_gsm_map_ch_monitoringMode = -1;     /* MonitoringMode */
1105 static int hf_gsm_map_ch_callOutcome = -1;        /* CallOutcome */
1106 static int hf_gsm_map_ch_callInfo = -1;           /* ExternalSignalInfo */
1107 static int hf_gsm_map_ch_ccbs_Feature = -1;       /* CCBS_Feature */
1108 static int hf_gsm_map_ch_translatedB_Number = -1;  /* ISDN_AddressString */
1109 static int hf_gsm_map_ch_replaceB_Number = -1;    /* NULL */
1110 static int hf_gsm_map_ch_ruf_Outcome = -1;        /* RUF_Outcome */
1111 static int hf_gsm_map_ch_istInformationWithdraw = -1;  /* NULL */
1112 static int hf_gsm_map_ch_callTerminationIndicator = -1;  /* CallTerminationIndicator */
1113 static int hf_gsm_map_ch_msrn = -1;               /* ISDN_AddressString */
1114 /* named bits */
1115 static int hf_gsm_map_ch_SuppressMTSS_suppressCUG = -1;
1116 static int hf_gsm_map_ch_SuppressMTSS_suppressCCBS = -1;
1117 static int hf_gsm_map_ch_AllowedServices_firstServiceAllowed = -1;
1118 static int hf_gsm_map_ch_AllowedServices_secondServiceAllowed = -1;
1119
1120 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
1121
1122 static int hf_gsm_map_lcs_gsm_map_lcs_LCS_ClientID_PDU = -1;  /* LCS_ClientID */
1123 static int hf_gsm_map_lcs_mlcNumber = -1;         /* ISDN_AddressString */
1124 static int hf_gsm_map_lcs_targetMS = -1;          /* SubscriberIdentity */
1125 static int hf_gsm_map_lcs_extensionContainer = -1;  /* ExtensionContainer */
1126 static int hf_gsm_map_lcs_lcsLocationInfo = -1;   /* LCSLocationInfo */
1127 static int hf_gsm_map_lcs_v_gmlc_Address = -1;    /* GSN_Address */
1128 static int hf_gsm_map_lcs_h_gmlc_Address = -1;    /* GSN_Address */
1129 static int hf_gsm_map_lcs_ppr_Address = -1;       /* GSN_Address */
1130 static int hf_gsm_map_lcs_additional_v_gmlc_Address = -1;  /* GSN_Address */
1131 static int hf_gsm_map_lcs_networkNode_Number = -1;  /* ISDN_AddressString */
1132 static int hf_gsm_map_lcs_lmsi = -1;              /* LMSI */
1133 static int hf_gsm_map_lcs_gprsNodeIndicator = -1;  /* NULL */
1134 static int hf_gsm_map_lcs_additional_Number = -1;  /* Additional_Number */
1135 static int hf_gsm_map_lcs_supportedLCS_CapabilitySets = -1;  /* SupportedLCS_CapabilitySets */
1136 static int hf_gsm_map_lcs_additional_LCS_CapabilitySets = -1;  /* SupportedLCS_CapabilitySets */
1137 static int hf_gsm_map_lcs_locationType = -1;      /* LocationType */
1138 static int hf_gsm_map_lcs_mlc_Number = -1;        /* ISDN_AddressString */
1139 static int hf_gsm_map_lcs_lcs_ClientID = -1;      /* LCS_ClientID */
1140 static int hf_gsm_map_lcs_privacyOverride = -1;   /* NULL */
1141 static int hf_gsm_map_lcs_imsi = -1;              /* IMSI */
1142 static int hf_gsm_map_lcs_msisdn = -1;            /* ISDN_AddressString */
1143 static int hf_gsm_map_lcs_imei = -1;              /* IMEI */
1144 static int hf_gsm_map_lcs_lcs_Priority = -1;      /* LCS_Priority */
1145 static int hf_gsm_map_lcs_lcs_QoS = -1;           /* LCS_QoS */
1146 static int hf_gsm_map_lcs_supportedGADShapes = -1;  /* SupportedGADShapes */
1147 static int hf_gsm_map_lcs_lcs_ReferenceNumber = -1;  /* LCS_ReferenceNumber */
1148 static int hf_gsm_map_lcs_lcsServiceTypeID = -1;  /* LCSServiceTypeID */
1149 static int hf_gsm_map_lcs_lcsCodeword = -1;       /* LCSCodeword */
1150 static int hf_gsm_map_lcs_lcs_PrivacyCheck = -1;  /* LCS_PrivacyCheck */
1151 static int hf_gsm_map_lcs_areaEventInfo = -1;     /* AreaEventInfo */
1152 static int hf_gsm_map_lcs_mo_lrShortCircuitIndicator = -1;  /* NULL */
1153 static int hf_gsm_map_lcs_periodicLDRInfo = -1;   /* PeriodicLDRInfo */
1154 static int hf_gsm_map_lcs_reportingPLMNList = -1;  /* ReportingPLMNList */
1155 static int hf_gsm_map_lcs_locationEstimateType = -1;  /* LocationEstimateType */
1156 static int hf_gsm_map_lcs_deferredLocationEventType = -1;  /* DeferredLocationEventType */
1157 static int hf_gsm_map_lcs_lcsClientType = -1;     /* LCSClientType */
1158 static int hf_gsm_map_lcs_lcsClientExternalID = -1;  /* LCSClientExternalID */
1159 static int hf_gsm_map_lcs_lcsClientDialedByMS = -1;  /* AddressString */
1160 static int hf_gsm_map_lcs_lcsClientInternalID = -1;  /* LCSClientInternalID */
1161 static int hf_gsm_map_lcs_lcsClientName = -1;     /* LCSClientName */
1162 static int hf_gsm_map_lcs_lcsAPN = -1;            /* APN */
1163 static int hf_gsm_map_lcs_lcsRequestorID = -1;    /* LCSRequestorID */
1164 static int hf_gsm_map_lcs_dataCodingScheme = -1;  /* USSD_DataCodingScheme */
1165 static int hf_gsm_map_lcs_nameString = -1;        /* NameString */
1166 static int hf_gsm_map_lcs_lcs_FormatIndicator = -1;  /* LCS_FormatIndicator */
1167 static int hf_gsm_map_lcs_requestorIDString = -1;  /* RequestorIDString */
1168 static int hf_gsm_map_lcs_horizontal_accuracy = -1;  /* Horizontal_Accuracy */
1169 static int hf_gsm_map_lcs_verticalCoordinateRequest = -1;  /* NULL */
1170 static int hf_gsm_map_lcs_vertical_accuracy = -1;  /* Vertical_Accuracy */
1171 static int hf_gsm_map_lcs_responseTime = -1;      /* ResponseTime */
1172 static int hf_gsm_map_lcs_velocityRequest = -1;   /* NULL */
1173 static int hf_gsm_map_lcs_responseTimeCategory = -1;  /* ResponseTimeCategory */
1174 static int hf_gsm_map_lcs_lcsCodewordString = -1;  /* LCSCodewordString */
1175 static int hf_gsm_map_lcs_callSessionUnrelated = -1;  /* PrivacyCheckRelatedAction */
1176 static int hf_gsm_map_lcs_callSessionRelated = -1;  /* PrivacyCheckRelatedAction */
1177 static int hf_gsm_map_lcs_areaDefinition = -1;    /* AreaDefinition */
1178 static int hf_gsm_map_lcs_occurrenceInfo = -1;    /* OccurrenceInfo */
1179 static int hf_gsm_map_lcs_intervalTime = -1;      /* IntervalTime */
1180 static int hf_gsm_map_lcs_areaList = -1;          /* AreaList */
1181 static int hf_gsm_map_lcs_AreaList_item = -1;     /* Area */
1182 static int hf_gsm_map_lcs_areaType = -1;          /* AreaType */
1183 static int hf_gsm_map_lcs_areaIdentification = -1;  /* AreaIdentification */
1184 static int hf_gsm_map_lcs_reportingAmount = -1;   /* ReportingAmount */
1185 static int hf_gsm_map_lcs_reportingInterval = -1;  /* ReportingInterval */
1186 static int hf_gsm_map_lcs_plmn_ListPrioritized = -1;  /* NULL */
1187 static int hf_gsm_map_lcs_plmn_List = -1;         /* PLMNList */
1188 static int hf_gsm_map_lcs_PLMNList_item = -1;     /* ReportingPLMN */
1189 static int hf_gsm_map_lcs_plmn_Id = -1;           /* PLMN_Id */
1190 static int hf_gsm_map_lcs_ran_Technology = -1;    /* RAN_Technology */
1191 static int hf_gsm_map_lcs_ran_PeriodicLocationSupport = -1;  /* NULL */
1192 static int hf_gsm_map_lcs_locationEstimate = -1;  /* Ext_GeographicalInformation */
1193 static int hf_gsm_map_lcs_ageOfLocationEstimate = -1;  /* AgeOfLocationInformation */
1194 static int hf_gsm_map_lcs_add_LocationEstimate = -1;  /* Add_GeographicalInformation */
1195 static int hf_gsm_map_lcs_deferredmt_lrResponseIndicator = -1;  /* NULL */
1196 static int hf_gsm_map_lcs_geranPositioningData = -1;  /* PositioningDataInformation */
1197 static int hf_gsm_map_lcs_utranPositioningData = -1;  /* UtranPositioningDataInfo */
1198 static int hf_gsm_map_lcs_cellIdOrSai = -1;       /* CellGlobalIdOrServiceAreaIdOrLAI */
1199 static int hf_gsm_map_lcs_sai_Present = -1;       /* NULL */
1200 static int hf_gsm_map_lcs_accuracyFulfilmentIndicator = -1;  /* AccuracyFulfilmentIndicator */
1201 static int hf_gsm_map_lcs_velocityEstimate = -1;  /* VelocityEstimate */
1202 static int hf_gsm_map_lcs_lcs_Event = -1;         /* LCS_Event */
1203 static int hf_gsm_map_lcs_na_ESRD = -1;           /* ISDN_AddressString */
1204 static int hf_gsm_map_lcs_na_ESRK = -1;           /* ISDN_AddressString */
1205 static int hf_gsm_map_lcs_slr_ArgExtensionContainer = -1;  /* SLR_ArgExtensionContainer */
1206 static int hf_gsm_map_lcs_deferredmt_lrData = -1;  /* Deferredmt_lrData */
1207 static int hf_gsm_map_lcs_pseudonymIndicator = -1;  /* NULL */
1208 static int hf_gsm_map_lcs_sequenceNumber = -1;    /* SequenceNumber */
1209 static int hf_gsm_map_lcs_terminationCause = -1;  /* TerminationCause */
1210 /* named bits */
1211 static int hf_gsm_map_lcs_DeferredLocationEventType_msAvailable = -1;
1212 static int hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea = -1;
1213 static int hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea = -1;
1214 static int hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea = -1;
1215 static int hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR = -1;
1216 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint = -1;
1217 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle = -1;
1218 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse = -1;
1219 static int hf_gsm_map_lcs_SupportedGADShapes_polygon = -1;
1220 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude = -1;
1221 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid = -1;
1222 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc = -1;
1223
1224 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
1225
1226 static int hf_gsm_map_gr_teleservice = -1;        /* Ext_TeleserviceCode */
1227 static int hf_gsm_map_gr_asciCallReference = -1;  /* ASCI_CallReference */
1228 static int hf_gsm_map_gr_codec_Info = -1;         /* CODEC_Info */
1229 static int hf_gsm_map_gr_cipheringAlgorithm = -1;  /* CipheringAlgorithm */
1230 static int hf_gsm_map_gr_groupKeyNumber_Vk_Id = -1;  /* GroupKeyNumber */
1231 static int hf_gsm_map_gr_groupKey = -1;           /* Kc */
1232 static int hf_gsm_map_gr_priority = -1;           /* EMLPP_Priority */
1233 static int hf_gsm_map_gr_uplinkFree = -1;         /* NULL */
1234 static int hf_gsm_map_gr_extensionContainer = -1;  /* ExtensionContainer */
1235 static int hf_gsm_map_gr_vstk = -1;               /* VSTK */
1236 static int hf_gsm_map_gr_vstk_rand = -1;          /* VSTK_RAND */
1237 static int hf_gsm_map_gr_talkerChannelParameter = -1;  /* NULL */
1238 static int hf_gsm_map_gr_groupCallNumber = -1;    /* ISDN_AddressString */
1239 static int hf_gsm_map_gr_imsi = -1;               /* IMSI */
1240 static int hf_gsm_map_gr_talkerPriority = -1;     /* TalkerPriority */
1241 static int hf_gsm_map_gr_additionalInfo = -1;     /* AdditionalInfo */
1242 static int hf_gsm_map_gr_uplinkRequestAck = -1;   /* NULL */
1243 static int hf_gsm_map_gr_uplinkReleaseIndication = -1;  /* NULL */
1244 static int hf_gsm_map_gr_uplinkRejectCommand = -1;  /* NULL */
1245 static int hf_gsm_map_gr_uplinkSeizedCommand = -1;  /* NULL */
1246 static int hf_gsm_map_gr_uplinkReleaseCommand = -1;  /* NULL */
1247 static int hf_gsm_map_gr_stateAttributes = -1;    /* StateAttributes */
1248 static int hf_gsm_map_gr_emergencyModeResetCommandFlag = -1;  /* NULL */
1249 static int hf_gsm_map_gr_sm_RP_UI = -1;           /* SignalInfo */
1250 static int hf_gsm_map_gr_an_APDU = -1;            /* AccessNetworkSignalInfo */
1251 static int hf_gsm_map_gr_uplinkRequest = -1;      /* NULL */
1252 static int hf_gsm_map_gr_releaseGroupCall = -1;   /* NULL */
1253 static int hf_gsm_map_gr_downlinkAttached = -1;   /* NULL */
1254 static int hf_gsm_map_gr_uplinkAttached = -1;     /* NULL */
1255 static int hf_gsm_map_gr_dualCommunication = -1;  /* NULL */
1256 static int hf_gsm_map_gr_callOriginator = -1;     /* NULL */
1257 static int hf_gsm_map_gr_requestedInfo = -1;      /* RequestedInfo */
1258 static int hf_gsm_map_gr_groupId = -1;            /* Long_GroupId */
1259 static int hf_gsm_map_gr_cellId = -1;             /* GlobalCellId */
1260 static int hf_gsm_map_gr_tmsi = -1;               /* TMSI */
1261 static int hf_gsm_map_gr_cksn = -1;               /* Cksn */
1262 static int hf_gsm_map_gr_anchorMSC_Address = -1;  /* ISDN_AddressString */
1263 static int hf_gsm_map_gr_additionalSubscriptions = -1;  /* AdditionalSubscriptions */
1264 static int hf_gsm_map_gr_kc = -1;                 /* Kc */
1265
1266 /* --- Module MAP-DialogueInformation --- --- ---                             */
1267
1268 static int hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU = -1;  /* MAP_DialoguePDU */
1269 static int hf_gsm_map_dialogue_map_open = -1;     /* MAP_OpenInfo */
1270 static int hf_gsm_map_dialogue_map_accept = -1;   /* MAP_AcceptInfo */
1271 static int hf_gsm_map_dialogue_map_close = -1;    /* MAP_CloseInfo */
1272 static int hf_gsm_map_dialogue_map_refuse = -1;   /* MAP_RefuseInfo */
1273 static int hf_gsm_map_dialogue_map_userAbort = -1;  /* MAP_UserAbortInfo */
1274 static int hf_gsm_map_dialogue_map_providerAbort = -1;  /* MAP_ProviderAbortInfo */
1275 static int hf_gsm_map_dialogue_destinationReference = -1;  /* AddressString */
1276 static int hf_gsm_map_dialogue_originationReference = -1;  /* AddressString */
1277 static int hf_gsm_map_dialogue_extensionContainer = -1;  /* ExtensionContainer */
1278 static int hf_gsm_map_dialogue_reason = -1;       /* Reason */
1279 static int hf_gsm_map_dialogue_alternativeApplicationContext = -1;  /* OBJECT_IDENTIFIER */
1280 static int hf_gsm_map_dialogue_map_UserAbortChoice = -1;  /* MAP_UserAbortChoice */
1281 static int hf_gsm_map_dialogue_userSpecificReason = -1;  /* NULL */
1282 static int hf_gsm_map_dialogue_userResourceLimitation = -1;  /* NULL */
1283 static int hf_gsm_map_dialogue_resourceUnavailable = -1;  /* ResourceUnavailableReason */
1284 static int hf_gsm_map_dialogue_applicationProcedureCancellation = -1;  /* ProcedureCancellationReason */
1285 static int hf_gsm_map_dialogue_map_ProviderAbortReason = -1;  /* MAP_ProviderAbortReason */
1286
1287 /* --- Module DummyMAP --- --- ---                                            */
1288
1289 static int hf_gsm_old_invoke = -1;                /* Invoke */
1290 static int hf_gsm_old_returnResultLast = -1;      /* ReturnResult */
1291 static int hf_gsm_old_returnError = -1;           /* ReturnError */
1292 static int hf_gsm_old_reject = -1;                /* Reject */
1293 static int hf_gsm_old_returnResultNotLast = -1;   /* ReturnResult */
1294 static int hf_gsm_old_invokeID = -1;              /* InvokeIdType */
1295 static int hf_gsm_old_linkedID = -1;              /* InvokeIdType */
1296 static int hf_gsm_old_opCode = -1;                /* MAP_OPERATION */
1297 static int hf_gsm_old_invokeparameter = -1;       /* InvokeParameter */
1298 static int hf_gsm_old_resultretres = -1;          /* T_resultretres */
1299 static int hf_gsm_old_returnparameter = -1;       /* ReturnResultParameter */
1300 static int hf_gsm_old_errorCode = -1;             /* MAP_ERROR */
1301 static int hf_gsm_old_parameter = -1;             /* ReturnErrorParameter */
1302 static int hf_gsm_old_invokeIDRej = -1;           /* T_invokeIDRej */
1303 static int hf_gsm_old_derivable = -1;             /* InvokeIdType */
1304 static int hf_gsm_old_not_derivable = -1;         /* NULL */
1305 static int hf_gsm_old_problem = -1;               /* T_problem */
1306 static int hf_gsm_old_generalProblem = -1;        /* GeneralProblem */
1307 static int hf_gsm_old_invokeProblem = -1;         /* InvokeProblem */
1308 static int hf_gsm_old_returnResultProblem = -1;   /* ReturnResultProblem */
1309 static int hf_gsm_old_returnErrorProblem = -1;    /* ReturnErrorProblem */
1310 static int hf_gsm_old_localValue = -1;            /* OperationLocalvalue */
1311 static int hf_gsm_old_globalValue = -1;           /* OBJECT_IDENTIFIER */
1312 static int hf_gsm_old_localValue_01 = -1;         /* LocalErrorcode */
1313 static int hf_gsm_old_protocolId = -1;            /* ProtocolId */
1314 static int hf_gsm_old_signalInfo = -1;            /* SignalInfo */
1315 static int hf_gsm_old_extensionContainer = -1;    /* ExtensionContainer */
1316 static int hf_gsm_old_gsm_BearerCapability = -1;  /* ExternalSignalInfo */
1317 static int hf_gsm_old_isdn_BearerCapability = -1;  /* ExternalSignalInfo */
1318 static int hf_gsm_old_call_Direction = -1;        /* CallDirection */
1319 static int hf_gsm_old_b_Subscriber_Address = -1;  /* ISDN_AddressString */
1320 static int hf_gsm_old_chosenChannel = -1;         /* ExternalSignalInfo */
1321 static int hf_gsm_old_lowerLayerCompatibility = -1;  /* ExternalSignalInfo */
1322 static int hf_gsm_old_highLayerCompatibility = -1;  /* ExternalSignalInfo */
1323 static int hf_gsm_old_sIWFSNumber = -1;           /* ISDN_AddressString */
1324 static int hf_gsm_old_imsi = -1;                  /* IMSI */
1325 static int hf_gsm_old_vlr_Number = -1;            /* ISDN_AddressString */
1326 static int hf_gsm_old_targetCellId = -1;          /* GlobalCellId */
1327 static int hf_gsm_old_ho_NumberNotRequired = -1;  /* NULL */
1328 static int hf_gsm_old_bss_APDU = -1;              /* Bss_APDU */
1329 static int hf_gsm_old_handoverNumber = -1;        /* ISDN_AddressString */
1330 static int hf_gsm_old_SendAuthenticationInfoResOld_item = -1;  /* SendAuthenticationInfoResOld_item */
1331 static int hf_gsm_old_rand = -1;                  /* RAND */
1332 static int hf_gsm_old_sres = -1;                  /* SRES */
1333 static int hf_gsm_old_kc = -1;                    /* Kc */
1334 static int hf_gsm_old_tripletList = -1;           /* TripletListold */
1335 static int hf_gsm_old_TripletListold_item = -1;   /* AuthenticationTriplet_v2 */
1336 static int hf_gsm_old_channelType = -1;           /* ExternalSignalInfo */
1337 static int hf_gsm_old_securityHeader = -1;        /* SecurityHeader */
1338 static int hf_gsm_old_protectedPayload = -1;      /* ProtectedPayload */
1339 static int hf_gsm_old_securityParametersIndex = -1;  /* SecurityParametersIndex */
1340 static int hf_gsm_old_originalComponentIdentifier = -1;  /* OriginalComponentIdentifier */
1341 static int hf_gsm_old_initialisationVector = -1;  /* InitialisationVector */
1342 static int hf_gsm_old_operationCode = -1;         /* OperationCode */
1343 static int hf_gsm_old_errorCode_01 = -1;          /* ErrorCode */
1344 static int hf_gsm_old_userInfo = -1;              /* NULL */
1345 static int hf_gsm_old_localValue_02 = -1;         /* INTEGER */
1346 static int hf_gsm_old_msisdn = -1;                /* ISDN_AddressString */
1347 static int hf_gsm_old_category = -1;              /* Category */
1348 static int hf_gsm_old_basicService = -1;          /* BasicServiceCode */
1349 static int hf_gsm_old_operatorSS_Code = -1;       /* T_operatorSS_Code */
1350 static int hf_gsm_old_operatorSS_Code_item = -1;  /* OCTET_STRING_SIZE_1 */
1351 static int hf_gsm_old_sm_RP_DA = -1;              /* SM_RP_DAold */
1352 static int hf_gsm_old_sm_RP_OA = -1;              /* SM_RP_OAold */
1353 static int hf_gsm_old_sm_RP_UI = -1;              /* SignalInfo */
1354 static int hf_gsm_old_moreMessagesToSend = -1;    /* NULL */
1355 static int hf_gsm_old_lmsi = -1;                  /* LMSI */
1356 static int hf_gsm_old_serviceCentreAddressDA = -1;  /* AddressString */
1357 static int hf_gsm_old_noSM_RP_DA = -1;            /* NULL */
1358 static int hf_gsm_old_msisdn_01 = -1;             /* T_msisdn */
1359 static int hf_gsm_old_serviceCentreAddressOA = -1;  /* T_serviceCentreAddressOA */
1360 static int hf_gsm_old_noSM_RP_OA = -1;            /* NULL */
1361 static int hf_gsm_old_cug_CheckInfo = -1;         /* CUG_CheckInfo */
1362 static int hf_gsm_old_numberOfForwarding = -1;    /* NumberOfForwarding */
1363 static int hf_gsm_old_networkSignalInfo = -1;     /* ExternalSignalInfo */
1364 static int hf_gsm_old_routingInfo = -1;           /* RoutingInfo */
1365
1366 /* --- Module SS-DataTypes --- --- ---                                        */
1367
1368 static int hf_gsm_ss_ss_Code = -1;                /* SS_Code */
1369 static int hf_gsm_ss_ss_Status = -1;              /* SS_Status */
1370 static int hf_gsm_ss_ss_Notification = -1;        /* SS_Notification */
1371 static int hf_gsm_ss_callIsWaiting_Indicator = -1;  /* NULL */
1372 static int hf_gsm_ss_callOnHold_Indicator = -1;   /* CallOnHold_Indicator */
1373 static int hf_gsm_ss_mpty_Indicator = -1;         /* NULL */
1374 static int hf_gsm_ss_cug_Index = -1;              /* CUG_Index */
1375 static int hf_gsm_ss_clirSuppressionRejected = -1;  /* NULL */
1376 static int hf_gsm_ss_ect_Indicator = -1;          /* ECT_Indicator */
1377 static int hf_gsm_ss_nameIndicator = -1;          /* NameIndicator */
1378 static int hf_gsm_ss_ccbs_Feature = -1;           /* CCBS_Feature */
1379 static int hf_gsm_ss_alertingPattern = -1;        /* AlertingPattern */
1380 static int hf_gsm_ss_multicall_Indicator = -1;    /* Multicall_Indicator */
1381 static int hf_gsm_ss_imsi = -1;                   /* IMSI */
1382 static int hf_gsm_ss_originatingEntityNumber = -1;  /* ISDN_AddressString */
1383 static int hf_gsm_ss_msisdn = -1;                 /* AddressString */
1384 static int hf_gsm_ss_chargingInformation = -1;    /* ChargingInformation */
1385 static int hf_gsm_ss_e1 = -1;                     /* E1 */
1386 static int hf_gsm_ss_e2 = -1;                     /* E2 */
1387 static int hf_gsm_ss_e3 = -1;                     /* E3 */
1388 static int hf_gsm_ss_e4 = -1;                     /* E4 */
1389 static int hf_gsm_ss_e5 = -1;                     /* E5 */
1390 static int hf_gsm_ss_e6 = -1;                     /* E6 */
1391 static int hf_gsm_ss_e7 = -1;                     /* E7 */
1392 static int hf_gsm_ss_suppressPrefCUG = -1;        /* NULL */
1393 static int hf_gsm_ss_suppressOA = -1;             /* NULL */
1394 static int hf_gsm_ss_ect_CallState = -1;          /* ECT_CallState */
1395 static int hf_gsm_ss_rdn = -1;                    /* RDN */
1396 static int hf_gsm_ss_callingName = -1;            /* Name */
1397 static int hf_gsm_ss_namePresentationAllowed = -1;  /* NameSet */
1398 static int hf_gsm_ss_presentationRestricted = -1;  /* NULL */
1399 static int hf_gsm_ss_nameUnavailable = -1;        /* NULL */
1400 static int hf_gsm_ss_namePresentationRestricted = -1;  /* NameSet */
1401 static int hf_gsm_ss_dataCodingScheme = -1;       /* USSD_DataCodingScheme */
1402 static int hf_gsm_ss_lengthInCharacters = -1;     /* INTEGER */
1403 static int hf_gsm_ss_nameString = -1;             /* USSD_String */
1404 static int hf_gsm_ss_presentationAllowedAddress = -1;  /* RemotePartyNumber */
1405 static int hf_gsm_ss_numberNotAvailableDueToInterworking = -1;  /* NULL */
1406 static int hf_gsm_ss_presentationRestrictedAddress = -1;  /* RemotePartyNumber */
1407 static int hf_gsm_ss_partyNumber = -1;            /* ISDN_AddressString */
1408 static int hf_gsm_ss_partyNumberSubaddress = -1;  /* ISDN_SubaddressString */
1409 static int hf_gsm_ss_deflectedToNumber = -1;      /* AddressString */
1410 static int hf_gsm_ss_deflectedToSubaddress = -1;  /* ISDN_SubaddressString */
1411 static int hf_gsm_ss_uUS_Service = -1;            /* UUS_Service */
1412 static int hf_gsm_ss_uUS_Required = -1;           /* BOOLEAN */
1413 static int hf_gsm_ss_notificationType = -1;       /* NotificationToMSUser */
1414 static int hf_gsm_ss_locationType = -1;           /* LocationType */
1415 static int hf_gsm_ss_lcsClientExternalID = -1;    /* LCSClientExternalID */
1416 static int hf_gsm_ss_lcsClientName = -1;          /* LCSClientName */
1417 static int hf_gsm_ss_lcsRequestorID = -1;         /* LCSRequestorID */
1418 static int hf_gsm_ss_lcsCodeword = -1;            /* LCSCodeword */
1419 static int hf_gsm_ss_lcsServiceTypeID = -1;       /* LCSServiceTypeID */
1420 static int hf_gsm_ss_verificationResponse = -1;   /* VerificationResponse */
1421 static int hf_gsm_ss_molr_Type = -1;              /* MOLR_Type */
1422 static int hf_gsm_ss_locationMethod = -1;         /* LocationMethod */
1423 static int hf_gsm_ss_lcs_QoS = -1;                /* LCS_QoS */
1424 static int hf_gsm_ss_mlc_Number = -1;             /* ISDN_AddressString */
1425 static int hf_gsm_ss_gpsAssistanceData = -1;      /* GPSAssistanceData */
1426 static int hf_gsm_ss_supportedGADShapes = -1;     /* SupportedGADShapes */
1427 static int hf_gsm_ss_ageOfLocationInfo = -1;      /* AgeOfLocationInformation */
1428 static int hf_gsm_ss_pseudonymIndicator = -1;     /* NULL */
1429 static int hf_gsm_ss_h_gmlc_address = -1;         /* GSN_Address */
1430 static int hf_gsm_ss_locationEstimate = -1;       /* Ext_GeographicalInformation */
1431 static int hf_gsm_ss_velocityEstimate = -1;       /* VelocityEstimate */
1432 static int hf_gsm_ss_referenceNumber = -1;        /* LCS_ReferenceNumber */
1433 static int hf_gsm_ss_periodicLDRInfo = -1;        /* PeriodicLDRInfo */
1434 static int hf_gsm_ss_locationUpdateRequest = -1;  /* NULL */
1435 static int hf_gsm_ss_sequenceNumber = -1;         /* SequenceNumber */
1436 static int hf_gsm_ss_terminationCause = -1;       /* TerminationCause */
1437 static int hf_gsm_ss_mo_lrShortCircuit = -1;      /* NULL */
1438 static int hf_gsm_ss_ganssAssistanceData = -1;    /* GANSSAssistanceData */
1439 static int hf_gsm_ss_decipheringKeys = -1;        /* DecipheringKeys */
1440 static int hf_gsm_ss_add_LocationEstimate = -1;   /* Add_GeographicalInformation */
1441 static int hf_gsm_ss_reportingPLMNList = -1;      /* ReportingPLMNList */
1442 static int hf_gsm_ss_deferredLocationEventType = -1;  /* DeferredLocationEventType */
1443 static int hf_gsm_ss_areaEventInfo = -1;          /* AreaEventInfo */
1444 static int hf_gsm_ss_qoS = -1;                    /* LCS_QoS */
1445
1446 /*--- End of included file: packet-gsm_map-hf.c ---*/
1447 #line 145 "packet-gsmmap-template.c"
1448
1449 /* Initialize the subtree pointers */
1450 static gint ett_gsm_map = -1;
1451 static gint ett_gsm_map_InvokeId = -1;
1452 static gint ett_gsm_map_InvokePDU = -1;
1453 static gint ett_gsm_map_ReturnResultPDU = -1;
1454 static gint ett_gsm_map_ReturnErrorPDU = -1;
1455 static gint ett_gsm_map_ReturnResult_result = -1;
1456 static gint ett_gsm_map_ReturnError_result = -1;
1457 static gint ett_gsm_map_GSMMAPPDU = -1;
1458 static gint ett_gsm_map_ext_qos_subscribed = -1;
1459 static gint ett_gsm_map_pdptypenumber = -1;
1460 static gint ett_gsm_map_RAIdentity = -1; 
1461 static gint ett_gsm_map_LAIFixedLength = -1;
1462 static gint ett_gsm_map_isdn_address_string = -1;
1463 static gint ett_gsm_map_geo_desc = -1;
1464 static gint ett_gsm_map_LongSignalInfo = -1;
1465 static gint ett_gsm_map_RadioResourceInformation =-1;
1466 static gint ett_gsm_map_MSNetworkCapability =-1;
1467 static gint ett_gsm_map_MSRadioAccessCapability = -1;
1468 static gint ett_gsm_map_externalsignalinfo = -1;
1469 static gint ett_gsm_map_cbs_data_coding = -1;
1470 static gint ett_gsm_map_GlobalCellId = -1;
1471 static gint ett_gsm_map_GeographicalInformation = -1;
1472
1473
1474 /*--- Included file: packet-gsm_map-ett.c ---*/
1475 #line 1 "packet-gsm_map-ett.c"
1476
1477 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
1478
1479 static gint ett_gsm_map_ExtensionContainer = -1;
1480 static gint ett_gsm_map_SLR_ArgExtensionContainer = -1;
1481 static gint ett_gsm_map_PrivateExtensionList = -1;
1482 static gint ett_gsm_map_PrivateExtension = -1;
1483 static gint ett_gsm_map_PCS_Extensions = -1;
1484 static gint ett_gsm_map_SLR_Arg_PCS_Extensions = -1;
1485
1486 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
1487
1488 static gint ett_gsm_map_ExternalSignalInfo = -1;
1489 static gint ett_gsm_map_Ext_ExternalSignalInfo = -1;
1490 static gint ett_gsm_map_AccessNetworkSignalInfo = -1;
1491 static gint ett_gsm_map_Identity = -1;
1492 static gint ett_gsm_map_IMSI_WithLMSI = -1;
1493 static gint ett_gsm_map_HLR_List = -1;
1494 static gint ett_gsm_map_NAEA_PreferredCI = -1;
1495 static gint ett_gsm_map_SubscriberIdentity = -1;
1496 static gint ett_gsm_map_LCSClientExternalID = -1;
1497 static gint ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI = -1;
1498 static gint ett_gsm_map_BasicServiceCode = -1;
1499 static gint ett_gsm_map_Ext_BasicServiceCode = -1;
1500 static gint ett_gsm_map_EMLPP_Info = -1;
1501 static gint ett_gsm_map_MC_SS_Info = -1;
1502
1503 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
1504
1505 static gint ett_gsm_map_ss_RegisterSS_Arg = -1;
1506 static gint ett_gsm_map_ss_SS_Info = -1;
1507 static gint ett_gsm_map_ss_ForwardingInfo = -1;
1508 static gint ett_gsm_map_ss_ForwardingFeatureList = -1;
1509 static gint ett_gsm_map_ss_ForwardingFeature = -1;
1510 static gint ett_gsm_map_ss_CallBarringInfo = -1;
1511 static gint ett_gsm_map_ss_CallBarringFeatureList = -1;
1512 static gint ett_gsm_map_ss_CallBarringFeature = -1;
1513 static gint ett_gsm_map_ss_SS_Data = -1;
1514 static gint ett_gsm_map_ss_SS_SubscriptionOption = -1;
1515 static gint ett_gsm_map_ss_SS_ForBS_Code = -1;
1516 static gint ett_gsm_map_ss_GenericServiceInfo = -1;
1517 static gint ett_gsm_map_ss_CCBS_FeatureList = -1;
1518 static gint ett_gsm_map_ss_CCBS_Feature = -1;
1519 static gint ett_gsm_map_ss_InterrogateSS_Res = -1;
1520 static gint ett_gsm_map_ss_USSD_Arg = -1;
1521 static gint ett_gsm_map_ss_USSD_Res = -1;
1522 static gint ett_gsm_map_ss_SS_List = -1;
1523 static gint ett_gsm_map_ss_BasicServiceGroupList = -1;
1524 static gint ett_gsm_map_ss_SS_InvocationNotificationArg = -1;
1525 static gint ett_gsm_map_ss_SS_InvocationNotificationRes = -1;
1526 static gint ett_gsm_map_ss_SS_EventSpecification = -1;
1527 static gint ett_gsm_map_ss_RegisterCC_EntryArg = -1;
1528 static gint ett_gsm_map_ss_CCBS_Data = -1;
1529 static gint ett_gsm_map_ss_ServiceIndicator = -1;
1530 static gint ett_gsm_map_ss_RegisterCC_EntryRes = -1;
1531 static gint ett_gsm_map_ss_EraseCC_EntryArg = -1;
1532 static gint ett_gsm_map_ss_EraseCC_EntryRes = -1;
1533
1534 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
1535
1536 static gint ett_gsm_map_er_RoamingNotAllowedParam = -1;
1537 static gint ett_gsm_map_er_CallBarredParam = -1;
1538 static gint ett_gsm_map_er_ExtensibleCallBarredParam = -1;
1539 static gint ett_gsm_map_er_CUG_RejectParam = -1;
1540 static gint ett_gsm_map_er_SS_IncompatibilityCause = -1;
1541 static gint ett_gsm_map_er_SM_DeliveryFailureCause = -1;
1542 static gint ett_gsm_map_er_AbsentSubscriberSM_Param = -1;
1543 static gint ett_gsm_map_er_SystemFailureParam = -1;
1544 static gint ett_gsm_map_er_ExtensibleSystemFailureParam = -1;
1545 static gint ett_gsm_map_er_DataMissingParam = -1;
1546 static gint ett_gsm_map_er_UnexpectedDataParam = -1;
1547 static gint ett_gsm_map_er_FacilityNotSupParam = -1;
1548 static gint ett_gsm_map_er_OR_NotAllowedParam = -1;
1549 static gint ett_gsm_map_er_UnknownSubscriberParam = -1;
1550 static gint ett_gsm_map_er_NumberChangedParam = -1;
1551 static gint ett_gsm_map_er_UnidentifiedSubParam = -1;
1552 static gint ett_gsm_map_er_IllegalSubscriberParam = -1;
1553 static gint ett_gsm_map_er_IllegalEquipmentParam = -1;
1554 static gint ett_gsm_map_er_BearerServNotProvParam = -1;
1555 static gint ett_gsm_map_er_TeleservNotProvParam = -1;
1556 static gint ett_gsm_map_er_TracingBufferFullParam = -1;
1557 static gint ett_gsm_map_er_NoRoamingNbParam = -1;
1558 static gint ett_gsm_map_er_AbsentSubscriberParam = -1;
1559 static gint ett_gsm_map_er_BusySubscriberParam = -1;
1560 static gint ett_gsm_map_er_NoSubscriberReplyParam = -1;
1561 static gint ett_gsm_map_er_ForwardingViolationParam = -1;
1562 static gint ett_gsm_map_er_ForwardingFailedParam = -1;
1563 static gint ett_gsm_map_er_ATI_NotAllowedParam = -1;
1564 static gint ett_gsm_map_er_ATSI_NotAllowedParam = -1;
1565 static gint ett_gsm_map_er_ATM_NotAllowedParam = -1;
1566 static gint ett_gsm_map_er_IllegalSS_OperationParam = -1;
1567 static gint ett_gsm_map_er_SS_NotAvailableParam = -1;
1568 static gint ett_gsm_map_er_SS_SubscriptionViolationParam = -1;
1569 static gint ett_gsm_map_er_InformationNotAvailableParam = -1;
1570 static gint ett_gsm_map_er_SubBusyForMT_SMS_Param = -1;
1571 static gint ett_gsm_map_er_MessageWaitListFullParam = -1;
1572 static gint ett_gsm_map_er_ResourceLimitationParam = -1;
1573 static gint ett_gsm_map_er_NoGroupCallNbParam = -1;
1574 static gint ett_gsm_map_er_IncompatibleTerminalParam = -1;
1575 static gint ett_gsm_map_er_ShortTermDenialParam = -1;
1576 static gint ett_gsm_map_er_LongTermDenialParam = -1;
1577 static gint ett_gsm_map_er_UnauthorizedRequestingNetwork_Param = -1;
1578 static gint ett_gsm_map_er_UnauthorizedLCSClient_Param = -1;
1579 static gint ett_gsm_map_er_PositionMethodFailure_Param = -1;
1580 static gint ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param = -1;
1581 static gint ett_gsm_map_er_MM_EventNotSupported_Param = -1;
1582 static gint ett_gsm_map_er_TargetCellOutsideGCA_Param = -1;
1583 static gint ett_gsm_map_er_OngoingGroupCallParam = -1;
1584
1585 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
1586
1587 static gint ett_gsm_map_sm_RoutingInfoForSM_Arg = -1;
1588 static gint ett_gsm_map_sm_RoutingInfoForSM_Res = -1;
1589 static gint ett_gsm_map_sm_LocationInfoWithLMSI = -1;
1590 static gint ett_gsm_map_sm_Additional_Number = -1;
1591 static gint ett_gsm_map_sm_MO_ForwardSM_Arg = -1;
1592 static gint ett_gsm_map_sm_MO_ForwardSM_Res = -1;
1593 static gint ett_gsm_map_sm_MT_ForwardSM_Arg = -1;
1594 static gint ett_gsm_map_sm_MT_ForwardSM_Res = -1;
1595 static gint ett_gsm_map_sm_SM_RP_DA = -1;
1596 static gint ett_gsm_map_sm_SM_RP_OA = -1;
1597 static gint ett_gsm_map_sm_ReportSM_DeliveryStatusArg = -1;
1598 static gint ett_gsm_map_sm_ReportSM_DeliveryStatusRes = -1;
1599 static gint ett_gsm_map_sm_AlertServiceCentreArg = -1;
1600 static gint ett_gsm_map_sm_InformServiceCentreArg = -1;
1601 static gint ett_gsm_map_sm_MW_Status = -1;
1602 static gint ett_gsm_map_sm_ReadyForSM_Arg = -1;
1603 static gint ett_gsm_map_sm_ReadyForSM_Res = -1;
1604 static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg = -1;
1605 static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Res = -1;
1606 static gint ett_gsm_map_sm_DispatcherList = -1;
1607
1608 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
1609
1610 static gint ett_gsm_map_om_ActivateTraceModeArg = -1;
1611 static gint ett_gsm_map_om_TraceDepthList = -1;
1612 static gint ett_gsm_map_om_TraceNE_TypeList = -1;
1613 static gint ett_gsm_map_om_TraceInterfaceList = -1;
1614 static gint ett_gsm_map_om_MSC_S_InterfaceList = -1;
1615 static gint ett_gsm_map_om_MGW_InterfaceList = -1;
1616 static gint ett_gsm_map_om_SGSN_InterfaceList = -1;
1617 static gint ett_gsm_map_om_GGSN_InterfaceList = -1;
1618 static gint ett_gsm_map_om_RNC_InterfaceList = -1;
1619 static gint ett_gsm_map_om_BMSC_InterfaceList = -1;
1620 static gint ett_gsm_map_om_TraceEventList = -1;
1621 static gint ett_gsm_map_om_MSC_S_EventList = -1;
1622 static gint ett_gsm_map_om_MGW_EventList = -1;
1623 static gint ett_gsm_map_om_SGSN_EventList = -1;
1624 static gint ett_gsm_map_om_GGSN_EventList = -1;
1625 static gint ett_gsm_map_om_BMSC_EventList = -1;
1626 static gint ett_gsm_map_om_TracePropagationList = -1;
1627 static gint ett_gsm_map_om_ActivateTraceModeRes = -1;
1628 static gint ett_gsm_map_om_DeactivateTraceModeArg = -1;
1629 static gint ett_gsm_map_om_DeactivateTraceModeRes = -1;
1630
1631 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
1632
1633 static gint ett_gsm_map_ms_UpdateLocationArg = -1;
1634 static gint ett_gsm_map_ms_VLR_Capability = -1;
1635 static gint ett_gsm_map_ms_SupportedRAT_Types = -1;
1636 static gint ett_gsm_map_ms_SuperChargerInfo = -1;
1637 static gint ett_gsm_map_ms_SupportedLCS_CapabilitySets = -1;
1638 static gint ett_gsm_map_ms_UpdateLocationRes = -1;
1639 static gint ett_gsm_map_ms_ADD_Info = -1;
1640 static gint ett_gsm_map_ms_PagingArea = -1;
1641 static gint ett_gsm_map_ms_LocationArea = -1;
1642 static gint ett_gsm_map_ms_CancelLocationArg_U = -1;
1643 static gint ett_gsm_map_ms_CancelLocationRes = -1;
1644 static gint ett_gsm_map_ms_PurgeMS_Arg_U = -1;
1645 static gint ett_gsm_map_ms_PurgeMS_Res = -1;
1646 static gint ett_gsm_map_ms_SendIdentificationArg = -1;
1647 static gint ett_gsm_map_ms_SendIdentificationRes_U = -1;
1648 static gint ett_gsm_map_ms_AuthenticationSetList = -1;
1649 static gint ett_gsm_map_ms_TripletList = -1;
1650 static gint ett_gsm_map_ms_QuintupletList = -1;
1651 static gint ett_gsm_map_ms_AuthenticationTriplet = -1;
1652 static gint ett_gsm_map_ms_AuthenticationQuintuplet = -1;
1653 static gint ett_gsm_map_ms_CurrentSecurityContext = -1;
1654 static gint ett_gsm_map_ms_GSM_SecurityContextData = -1;
1655 static gint ett_gsm_map_ms_UMTS_SecurityContextData = -1;
1656 static gint ett_gsm_map_ms_AuthenticationFailureReportArg = -1;
1657 static gint ett_gsm_map_ms_AuthenticationFailureReportRes = -1;
1658 static gint ett_gsm_map_ms_UpdateGprsLocationArg = -1;
1659 static gint ett_gsm_map_ms_EPS_Info = -1;
1660 static gint ett_gsm_map_ms_PDN_GW_Update = -1;
1661 static gint ett_gsm_map_ms_ISR_Information = -1;
1662 static gint ett_gsm_map_ms_SGSN_Capability = -1;
1663 static gint ett_gsm_map_ms_SupportedFeatures = -1;
1664 static gint ett_gsm_map_ms_UpdateGprsLocationRes = -1;
1665 static gint ett_gsm_map_ms_ForwardAccessSignalling_Arg_U = -1;
1666 static gint ett_gsm_map_ms_AllowedUMTS_Algorithms = -1;
1667 static gint ett_gsm_map_ms_PrepareHO_Arg_U = -1;
1668 static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverList = -1;
1669 static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo = -1;
1670 static gint ett_gsm_map_ms_RadioResourceList = -1;
1671 static gint ett_gsm_map_ms_RadioResource = -1;
1672 static gint ett_gsm_map_ms_PrepareHO_Res_U = -1;
1673 static gint ett_gsm_map_ms_SelectedUMTS_Algorithms = -1;
1674 static gint ett_gsm_map_ms_ChosenRadioResourceInformation = -1;
1675 static gint ett_gsm_map_ms_PrepareSubsequentHO_Arg_U = -1;
1676 static gint ett_gsm_map_ms_PrepareSubsequentHO_Res_U = -1;
1677 static gint ett_gsm_map_ms_ProcessAccessSignalling_Arg_U = -1;
1678 static gint ett_gsm_map_ms_SupportedCodecsList = -1;
1679 static gint ett_gsm_map_ms_CodecList = -1;
1680 static gint ett_gsm_map_ms_SendEndSignal_Arg_U = -1;
1681 static gint ett_gsm_map_ms_SendEndSignal_Res = -1;
1682 static gint ett_gsm_map_ms_RelocationNumberList = -1;
1683 static gint ett_gsm_map_ms_RelocationNumber = -1;
1684 static gint ett_gsm_map_ms_SendAuthenticationInfoArg = -1;
1685 static gint ett_gsm_map_ms_Re_synchronisationInfo = -1;
1686 static gint ett_gsm_map_ms_SendAuthenticationInfoRes_U = -1;
1687 static gint ett_gsm_map_ms_EPS_AuthenticationSetList = -1;
1688 static gint ett_gsm_map_ms_EPC_AV = -1;
1689 static gint ett_gsm_map_ms_CheckIMEI_Arg = -1;
1690 static gint ett_gsm_map_ms_CheckIMEI_Res = -1;
1691 static gint ett_gsm_map_ms_RequestedEquipmentInfo = -1;
1692 static gint ett_gsm_map_ms_UESBI_Iu = -1;
1693 static gint ett_gsm_map_ms_InsertSubscriberDataArg = -1;
1694 static gint ett_gsm_map_ms_CSG_SubscriptionDataList = -1;
1695 static gint ett_gsm_map_ms_CSG_SubscriptionData = -1;
1696 static gint ett_gsm_map_ms_EPS_SubscriptionData = -1;
1697 static gint ett_gsm_map_ms_APN_ConfigurationProfile = -1;
1698 static gint ett_gsm_map_ms_EPS_DataList = -1;
1699 static gint ett_gsm_map_ms_APN_Configuration = -1;
1700 static gint ett_gsm_map_ms_EPS_QoS_Subscribed = -1;
1701 static gint ett_gsm_map_ms_AMBR = -1;
1702 static gint ett_gsm_map_ms_SpecificAPNInfoList = -1;
1703 static gint ett_gsm_map_ms_SpecificAPNInfo = -1;
1704 static gint ett_gsm_map_ms_Allocation_Retention_Priority = -1;
1705 static gint ett_gsm_map_ms_PDN_GW_Identity = -1;
1706 static gint ett_gsm_map_ms_AccessRestrictionData = -1;
1707 static gint ett_gsm_map_ms_LCSInformation = -1;
1708 static gint ett_gsm_map_ms_GMLC_List = -1;
1709 static gint ett_gsm_map_ms_GPRSDataList = -1;
1710 static gint ett_gsm_map_ms_PDP_Context = -1;
1711 static gint ett_gsm_map_ms_GPRSSubscriptionData = -1;
1712 static gint ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo = -1;
1713 static gint ett_gsm_map_ms_GPRS_CSI = -1;
1714 static gint ett_gsm_map_ms_GPRS_CamelTDPDataList = -1;
1715 static gint ett_gsm_map_ms_GPRS_CamelTDPData = -1;
1716 static gint ett_gsm_map_ms_LSADataList = -1;
1717 static gint ett_gsm_map_ms_LSAData = -1;
1718 static gint ett_gsm_map_ms_LSAInformation = -1;
1719 static gint ett_gsm_map_ms_SubscriberData = -1;
1720 static gint ett_gsm_map_ms_BearerServiceList = -1;
1721 static gint ett_gsm_map_ms_TeleserviceList = -1;
1722 static gint ett_gsm_map_ms_ODB_Data = -1;
1723 static gint ett_gsm_map_ms_ODB_GeneralData = -1;
1724 static gint ett_gsm_map_ms_ODB_HPLMN_Data = -1;
1725 static gint ett_gsm_map_ms_Ext_SS_InfoList = -1;
1726 static gint ett_gsm_map_ms_Ext_SS_Info = -1;
1727 static gint ett_gsm_map_ms_Ext_ForwInfo = -1;
1728 static gint ett_gsm_map_ms_Ext_ForwFeatureList = -1;
1729 static gint ett_gsm_map_ms_Ext_ForwFeature = -1;
1730 static gint ett_gsm_map_ms_Ext_CallBarInfo = -1;
1731 static gint ett_gsm_map_ms_Ext_CallBarFeatureList = -1;
1732 static gint ett_gsm_map_ms_Ext_CallBarringFeature = -1;
1733 static gint ett_gsm_map_ms_CUG_Info = -1;
1734 static gint ett_gsm_map_ms_CUG_SubscriptionList = -1;
1735 static gint ett_gsm_map_ms_CUG_Subscription = -1;
1736 static gint ett_gsm_map_ms_CUG_FeatureList = -1;
1737 static gint ett_gsm_map_ms_Ext_BasicServiceGroupList = -1;
1738 static gint ett_gsm_map_ms_CUG_Feature = -1;
1739 static gint ett_gsm_map_ms_Ext_SS_Data = -1;
1740 static gint ett_gsm_map_ms_LCS_PrivacyExceptionList = -1;
1741 static gint ett_gsm_map_ms_LCS_PrivacyClass = -1;
1742 static gint ett_gsm_map_ms_ExternalClientList = -1;
1743 static gint ett_gsm_map_ms_PLMNClientList = -1;
1744 static gint ett_gsm_map_ms_Ext_ExternalClientList = -1;
1745 static gint ett_gsm_map_ms_ExternalClient = -1;
1746 static gint ett_gsm_map_ms_ServiceTypeList = -1;
1747 static gint ett_gsm_map_ms_ServiceType = -1;
1748 static gint ett_gsm_map_ms_MOLR_List = -1;
1749 static gint ett_gsm_map_ms_MOLR_Class = -1;
1750 static gint ett_gsm_map_ms_ZoneCodeList = -1;
1751 static gint ett_gsm_map_ms_InsertSubscriberDataRes = -1;
1752 static gint ett_gsm_map_ms_DeleteSubscriberDataArg = -1;
1753 static gint ett_gsm_map_ms_SpecificCSI_Withdraw = -1;
1754 static gint ett_gsm_map_ms_GPRSSubscriptionDataWithdraw = -1;
1755 static gint ett_gsm_map_ms_EPS_SubscriptionDataWithdraw = -1;
1756 static gint ett_gsm_map_ms_ContextIdList = -1;
1757 static gint ett_gsm_map_ms_LSAInformationWithdraw = -1;
1758 static gint ett_gsm_map_ms_LSAIdentityList = -1;
1759 static gint ett_gsm_map_ms_BasicServiceList = -1;
1760 static gint ett_gsm_map_ms_DeleteSubscriberDataRes = -1;
1761 static gint ett_gsm_map_ms_VlrCamelSubscriptionInfo = -1;
1762 static gint ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList = -1;
1763 static gint ett_gsm_map_ms_MT_smsCAMELTDP_Criteria = -1;
1764 static gint ett_gsm_map_ms_TPDU_TypeCriterion = -1;
1765 static gint ett_gsm_map_ms_D_CSI = -1;
1766 static gint ett_gsm_map_ms_DP_AnalysedInfoCriteriaList = -1;
1767 static gint ett_gsm_map_ms_DP_AnalysedInfoCriterium = -1;
1768 static gint ett_gsm_map_ms_SS_CSI = -1;
1769 static gint ett_gsm_map_ms_SS_CamelData = -1;
1770 static gint ett_gsm_map_ms_SS_EventList = -1;
1771 static gint ett_gsm_map_ms_O_CSI = -1;
1772 static gint ett_gsm_map_ms_O_BcsmCamelTDPDataList = -1;
1773 static gint ett_gsm_map_ms_O_BcsmCamelTDPData = -1;
1774 static gint ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList = -1;
1775 static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList = -1;
1776 static gint ett_gsm_map_ms_O_BcsmCamelTDP_Criteria = -1;
1777 static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria = -1;
1778 static gint ett_gsm_map_ms_DestinationNumberCriteria = -1;
1779 static gint ett_gsm_map_ms_DestinationNumberList = -1;
1780 static gint ett_gsm_map_ms_DestinationNumberLengthList = -1;
1781 static gint ett_gsm_map_ms_BasicServiceCriteria = -1;
1782 static gint ett_gsm_map_ms_O_CauseValueCriteria = -1;
1783 static gint ett_gsm_map_ms_T_CauseValueCriteria = -1;
1784 static gint ett_gsm_map_ms_SupportedCamelPhases = -1;
1785 static gint ett_gsm_map_ms_OfferedCamel4CSIs = -1;
1786 static gint ett_gsm_map_ms_OfferedCamel4Functionalities = -1;
1787 static gint ett_gsm_map_ms_SMS_CSI = -1;
1788 static gint ett_gsm_map_ms_SMS_CAMEL_TDP_DataList = -1;
1789 static gint ett_gsm_map_ms_SMS_CAMEL_TDP_Data = -1;
1790 static gint ett_gsm_map_ms_M_CSI = -1;
1791 static gint ett_gsm_map_ms_MG_CSI = -1;
1792 static gint ett_gsm_map_ms_MobilityTriggers = -1;
1793 static gint ett_gsm_map_ms_T_CSI = -1;
1794 static gint ett_gsm_map_ms_T_BcsmCamelTDPDataList = -1;
1795 static gint ett_gsm_map_ms_T_BcsmCamelTDPData = -1;
1796 static gint ett_gsm_map_ms_SendRoutingInfoForGprsArg = -1;
1797 static gint ett_gsm_map_ms_SendRoutingInfoForGprsRes = -1;
1798 static gint ett_gsm_map_ms_FailureReportArg = -1;
1799 static gint ett_gsm_map_ms_FailureReportRes = -1;
1800 static gint ett_gsm_map_ms_NoteMsPresentForGprsArg = -1;
1801 static gint ett_gsm_map_ms_NoteMsPresentForGprsRes = -1;
1802 static gint ett_gsm_map_ms_ResetArg = -1;
1803 static gint ett_gsm_map_ms_RestoreDataArg = -1;
1804 static gint ett_gsm_map_ms_RestoreDataRes = -1;
1805 static gint ett_gsm_map_ms_VBSDataList = -1;
1806 static gint ett_gsm_map_ms_VGCSDataList = -1;
1807 static gint ett_gsm_map_ms_VoiceGroupCallData = -1;
1808 static gint ett_gsm_map_ms_AdditionalSubscriptions = -1;
1809 static gint ett_gsm_map_ms_VoiceBroadcastData = -1;
1810 static gint ett_gsm_map_ms_ProvideSubscriberInfoArg = -1;
1811 static gint ett_gsm_map_ms_ProvideSubscriberInfoRes = -1;
1812 static gint ett_gsm_map_ms_SubscriberInfo = -1;
1813 static gint ett_gsm_map_ms_MNPInfoRes = -1;
1814 static gint ett_gsm_map_ms_GPRSMSClass = -1;
1815 static gint ett_gsm_map_ms_RequestedInfo = -1;
1816 static gint ett_gsm_map_ms_LocationInformation = -1;
1817 static gint ett_gsm_map_ms_LocationInformationGPRS = -1;
1818 static gint ett_gsm_map_ms_SubscriberState = -1;
1819 static gint ett_gsm_map_ms_PS_SubscriberState = -1;
1820 static gint ett_gsm_map_ms_PDP_ContextInfoList = -1;
1821 static gint ett_gsm_map_ms_PDP_ContextInfo = -1;
1822 static gint ett_gsm_map_ms_AnyTimeInterrogationArg = -1;
1823 static gint ett_gsm_map_ms_AnyTimeInterrogationRes = -1;
1824 static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg = -1;
1825 static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes = -1;
1826 static gint ett_gsm_map_ms_RequestedSubscriptionInfo = -1;
1827 static gint ett_gsm_map_ms_MSISDN_BS_List = -1;
1828 static gint ett_gsm_map_ms_MSISDN_BS = -1;
1829 static gint ett_gsm_map_ms_CallForwardingData = -1;
1830 static gint ett_gsm_map_ms_CallBarringData = -1;
1831 static gint ett_gsm_map_ms_ODB_Info = -1;
1832 static gint ett_gsm_map_ms_CAMEL_SubscriptionInfo = -1;
1833 static gint ett_gsm_map_ms_AnyTimeModificationArg = -1;
1834 static gint ett_gsm_map_ms_AnyTimeModificationRes = -1;
1835 static gint ett_gsm_map_ms_ModificationRequestFor_CF_Info = -1;
1836 static gint ett_gsm_map_ms_ModificationRequestFor_CB_Info = -1;
1837 static gint ett_gsm_map_ms_ModificationRequestFor_ODB_data = -1;
1838 static gint ett_gsm_map_ms_ModificationRequestFor_CSI = -1;
1839 static gint ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data = -1;
1840 static gint ett_gsm_map_ms_NoteSubscriberDataModifiedArg = -1;
1841 static gint ett_gsm_map_ms_NoteSubscriberDataModifiedRes = -1;
1842 static gint ett_gsm_map_ms_NoteMM_EventArg = -1;
1843 static gint ett_gsm_map_ms_NoteMM_EventRes = -1;
1844 static gint ett_gsm_map_ms_Ext_SS_InfoFor_CSE = -1;
1845 static gint ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE = -1;
1846 static gint ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE = -1;
1847
1848 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
1849
1850 static gint ett_gsm_map_ch_CUG_CheckInfo = -1;
1851 static gint ett_gsm_map_ch_SendRoutingInfoArg = -1;
1852 static gint ett_gsm_map_ch_SuppressMTSS = -1;
1853 static gint ett_gsm_map_ch_SendRoutingInfoRes_U = -1;
1854 static gint ett_gsm_map_ch_AllowedServices = -1;
1855 static gint ett_gsm_map_ch_CCBS_Indicators = -1;
1856 static gint ett_gsm_map_ch_RoutingInfo = -1;
1857 static gint ett_gsm_map_ch_ForwardingData = -1;
1858 static gint ett_gsm_map_ch_ProvideRoamingNumberArg = -1;
1859 static gint ett_gsm_map_ch_ProvideRoamingNumberRes = -1;
1860 static gint ett_gsm_map_ch_ResumeCallHandlingArg = -1;
1861 static gint ett_gsm_map_ch_UU_Data = -1;
1862 static gint ett_gsm_map_ch_ResumeCallHandlingRes = -1;
1863 static gint ett_gsm_map_ch_CamelInfo = -1;
1864 static gint ett_gsm_map_ch_ExtendedRoutingInfo = -1;
1865 static gint ett_gsm_map_ch_CamelRoutingInfo = -1;
1866 static gint ett_gsm_map_ch_GmscCamelSubscriptionInfo = -1;
1867 static gint ett_gsm_map_ch_SetReportingStateArg = -1;
1868 static gint ett_gsm_map_ch_SetReportingStateRes = -1;
1869 static gint ett_gsm_map_ch_StatusReportArg = -1;
1870 static gint ett_gsm_map_ch_EventReportData = -1;
1871 static gint ett_gsm_map_ch_CallReportData = -1;
1872 static gint ett_gsm_map_ch_StatusReportRes = -1;
1873 static gint ett_gsm_map_ch_RemoteUserFreeArg = -1;
1874 static gint ett_gsm_map_ch_RemoteUserFreeRes = -1;
1875 static gint ett_gsm_map_ch_IST_AlertArg = -1;
1876 static gint ett_gsm_map_ch_IST_AlertRes = -1;
1877 static gint ett_gsm_map_ch_IST_CommandArg = -1;
1878 static gint ett_gsm_map_ch_IST_CommandRes = -1;
1879 static gint ett_gsm_map_ch_ReleaseResourcesArg = -1;
1880 static gint ett_gsm_map_ch_ReleaseResourcesRes = -1;
1881
1882 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
1883
1884 static gint ett_gsm_map_lcs_RoutingInfoForLCS_Arg = -1;
1885 static gint ett_gsm_map_lcs_RoutingInfoForLCS_Res = -1;
1886 static gint ett_gsm_map_lcs_LCSLocationInfo = -1;
1887 static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Arg = -1;
1888 static gint ett_gsm_map_lcs_LocationType = -1;
1889 static gint ett_gsm_map_lcs_DeferredLocationEventType = -1;
1890 static gint ett_gsm_map_lcs_LCS_ClientID = -1;
1891 static gint ett_gsm_map_lcs_LCSClientName = -1;
1892 static gint ett_gsm_map_lcs_LCSRequestorID = -1;
1893 static gint ett_gsm_map_lcs_LCS_QoS = -1;
1894 static gint ett_gsm_map_lcs_ResponseTime = -1;
1895 static gint ett_gsm_map_lcs_SupportedGADShapes = -1;
1896 static gint ett_gsm_map_lcs_LCSCodeword = -1;
1897 static gint ett_gsm_map_lcs_LCS_PrivacyCheck = -1;
1898 static gint ett_gsm_map_lcs_AreaEventInfo = -1;
1899 static gint ett_gsm_map_lcs_AreaDefinition = -1;
1900 static gint ett_gsm_map_lcs_AreaList = -1;
1901 static gint ett_gsm_map_lcs_Area = -1;
1902 static gint ett_gsm_map_lcs_PeriodicLDRInfo = -1;
1903 static gint ett_gsm_map_lcs_ReportingPLMNList = -1;
1904 static gint ett_gsm_map_lcs_PLMNList = -1;
1905 static gint ett_gsm_map_lcs_ReportingPLMN = -1;
1906 static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Res = -1;
1907 static gint ett_gsm_map_lcs_SubscriberLocationReport_Arg = -1;
1908 static gint ett_gsm_map_lcs_Deferredmt_lrData = -1;
1909 static gint ett_gsm_map_lcs_SubscriberLocationReport_Res = -1;
1910
1911 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
1912
1913 static gint ett_gsm_map_gr_PrepareGroupCallArg = -1;
1914 static gint ett_gsm_map_gr_PrepareGroupCallRes = -1;
1915 static gint ett_gsm_map_gr_SendGroupCallEndSignalArg = -1;
1916 static gint ett_gsm_map_gr_SendGroupCallEndSignalRes = -1;
1917 static gint ett_gsm_map_gr_ForwardGroupCallSignallingArg = -1;
1918 static gint ett_gsm_map_gr_ProcessGroupCallSignallingArg = -1;
1919 static gint ett_gsm_map_gr_StateAttributes = -1;
1920 static gint ett_gsm_map_gr_SendGroupCallInfoArg = -1;
1921 static gint ett_gsm_map_gr_SendGroupCallInfoRes = -1;
1922
1923 /* --- Module MAP-DialogueInformation --- --- ---                             */
1924
1925 static gint ett_gsm_map_dialogue_MAP_DialoguePDU = -1;
1926 static gint ett_gsm_map_dialogue_MAP_OpenInfo = -1;
1927 static gint ett_gsm_map_dialogue_MAP_AcceptInfo = -1;
1928 static gint ett_gsm_map_dialogue_MAP_CloseInfo = -1;
1929 static gint ett_gsm_map_dialogue_MAP_RefuseInfo = -1;
1930 static gint ett_gsm_map_dialogue_MAP_UserAbortInfo = -1;
1931 static gint ett_gsm_map_dialogue_MAP_UserAbortChoice = -1;
1932 static gint ett_gsm_map_dialogue_MAP_ProviderAbortInfo = -1;
1933
1934 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
1935
1936
1937 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
1938
1939
1940 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
1941
1942
1943 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
1944
1945
1946 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
1947
1948
1949 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
1950
1951
1952 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
1953
1954
1955 /* --- Module MAP-Errors --- --- ---                                          */
1956
1957
1958 /* --- Module MAP-Protocol --- --- ---                                        */
1959
1960
1961 /* --- Module DummyMAP --- --- ---                                            */
1962
1963 static gint ett_gsm_old_Component = -1;
1964 static gint ett_gsm_old_Invoke = -1;
1965 static gint ett_gsm_old_ReturnResult = -1;
1966 static gint ett_gsm_old_T_resultretres = -1;
1967 static gint ett_gsm_old_ReturnError = -1;
1968 static gint ett_gsm_old_Reject = -1;
1969 static gint ett_gsm_old_T_invokeIDRej = -1;
1970 static gint ett_gsm_old_T_problem = -1;
1971 static gint ett_gsm_old_MAP_OPERATION = -1;
1972 static gint ett_gsm_old_MAP_ERROR = -1;
1973 static gint ett_gsm_old_Bss_APDU = -1;
1974 static gint ett_gsm_old_ProvideSIWFSNumberArg = -1;
1975 static gint ett_gsm_old_ProvideSIWFSNumberRes = -1;
1976 static gint ett_gsm_old_PurgeMSArgV2 = -1;
1977 static gint ett_gsm_old_PrepareHO_ArgOld = -1;
1978 static gint ett_gsm_old_PrepareHO_ResOld = -1;
1979 static gint ett_gsm_old_SendAuthenticationInfoResOld = -1;
1980 static gint ett_gsm_old_SendAuthenticationInfoResOld_item = -1;
1981 static gint ett_gsm_old_SendIdentificationResV2 = -1;
1982 static gint ett_gsm_old_TripletListold = -1;
1983 static gint ett_gsm_old_AuthenticationTriplet_v2 = -1;
1984 static gint ett_gsm_old_SIWFSSignallingModifyArg = -1;
1985 static gint ett_gsm_old_SIWFSSignallingModifyRes = -1;
1986 static gint ett_gsm_old_SecureTransportArg = -1;
1987 static gint ett_gsm_old_SecureTransportErrorParam = -1;
1988 static gint ett_gsm_old_SecureTransportRes = -1;
1989 static gint ett_gsm_old_SecurityHeader = -1;
1990 static gint ett_gsm_old_OriginalComponentIdentifier = -1;
1991 static gint ett_gsm_old_OperationCode = -1;
1992 static gint ett_gsm_old_ErrorCode = -1;
1993 static gint ett_gsm_old_PlmnContainer_U = -1;
1994 static gint ett_gsm_old_T_operatorSS_Code = -1;
1995 static gint ett_gsm_old_ForwardSM_Arg = -1;
1996 static gint ett_gsm_old_SM_RP_DAold = -1;
1997 static gint ett_gsm_old_SM_RP_OAold = -1;
1998 static gint ett_gsm_old_SendRoutingInfoArgV2 = -1;
1999 static gint ett_gsm_old_SendRoutingInfoResV2 = -1;
2000
2001 /* --- Module SS-DataTypes --- --- ---                                        */
2002
2003 static gint ett_gsm_ss_NotifySS_Arg = -1;
2004 static gint ett_gsm_ss_BeginSubscriberActivityArg = -1;
2005 static gint ett_gsm_ss_ForwardChargeAdviceArg = -1;
2006 static gint ett_gsm_ss_ChargingInformation = -1;
2007 static gint ett_gsm_ss_ForwardCUG_InfoArg = -1;
2008 static gint ett_gsm_ss_ECT_Indicator = -1;
2009 static gint ett_gsm_ss_NameIndicator = -1;
2010 static gint ett_gsm_ss_Name = -1;
2011 static gint ett_gsm_ss_NameSet = -1;
2012 static gint ett_gsm_ss_RDN = -1;
2013 static gint ett_gsm_ss_RemotePartyNumber = -1;
2014 static gint ett_gsm_ss_AccessRegisterCCEntryArg = -1;
2015 static gint ett_gsm_ss_CallDeflectionArg = -1;
2016 static gint ett_gsm_ss_UserUserServiceArg = -1;
2017 static gint ett_gsm_ss_LocationNotificationArg = -1;
2018 static gint ett_gsm_ss_LocationNotificationRes = -1;
2019 static gint ett_gsm_ss_LCS_MOLRArg = -1;
2020 static gint ett_gsm_ss_LCS_MOLRRes = -1;
2021 static gint ett_gsm_ss_LCS_AreaEventRequestArg = -1;
2022 static gint ett_gsm_ss_LCS_AreaEventReportArg = -1;
2023 static gint ett_gsm_ss_LCS_AreaEventCancellationArg = -1;
2024 static gint ett_gsm_ss_LCS_PeriodicLocationRequestArg = -1;
2025 static gint ett_gsm_ss_LCS_PeriodicLocationRequestRes = -1;
2026 static gint ett_gsm_ss_LCS_LocationUpdateArg = -1;
2027 static gint ett_gsm_ss_LCS_LocationUpdateRes = -1;
2028 static gint ett_gsm_ss_LCS_PeriodicLocationCancellationArg = -1;
2029
2030 /* --- Module SS-Operations --- --- ---                                       */
2031
2032
2033 /*--- End of included file: packet-gsm_map-ett.c ---*/
2034 #line 171 "packet-gsmmap-template.c"
2035
2036 static dissector_table_t        sms_dissector_table;    /* SMS TPDU */
2037 static dissector_handle_t       data_handle;
2038 static dissector_handle_t       ranap_handle;
2039 static dissector_handle_t       dtap_handle;
2040 static dissector_handle_t       map_handle;
2041
2042 /* Preferenc settings default */
2043 #define MAX_SSN 254
2044 static range_t *global_ssn_range;
2045
2046 /* Global variables */
2047 static guint32 opcode=0;
2048 static guint32 errorCode;
2049 static proto_tree *top_tree;
2050 static int application_context_version;
2051 static guint ProtocolId; 
2052 guint protocolId;
2053 guint AccessNetworkProtocolId;
2054 const char *obj_id = NULL;
2055 static int gsm_map_tap = -1;
2056
2057 #define SMS_ENCODING_NOT_SET    0
2058 #define SMS_ENCODING_7BIT               1
2059 #define SMS_ENCODING_8BIT               2
2060 #define SMS_ENCODING_UCS2               3
2061 #define SMS_ENCODING_7BIT_LANG  4
2062 #define SMS_ENCODING_UCS2_LANG  5
2063
2064 static guint8 sms_encoding;
2065
2066 /* Forward declarations */
2067 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
2068 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
2069 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
2070 const gchar* gsm_map_opr_code(guint32 val);
2071
2072 /* Value strings */
2073
2074 const value_string gsm_map_PDP_Type_Organisation_vals[] = {
2075   {  0, "ETSI" },
2076   {  1, "IETF" },
2077   { 0, NULL }
2078 };
2079
2080 const value_string gsm_map_ietf_defined_pdp_vals[] = {
2081   {  0x21, "IPv4 Address" },
2082   {  0x57, "IPv6 Address" },
2083   { 0, NULL }
2084 };
2085
2086 const value_string gsm_map_etsi_defined_pdp_vals[] = {
2087   {  1, "PPP" },
2088   { 0, NULL }
2089 };
2090
2091 static const value_string gsm_map_tag_vals[] = {
2092   {  0x4, "Bearer Capability" },
2093   { 0, NULL }
2094 };
2095
2096 static const value_string gsm_map_disc_par_vals[] = {
2097   {  0, "Not Transparent" },
2098   {  1, "Transparent" },
2099   { 0, NULL }
2100 };
2101
2102 char *
2103 unpack_digits(tvbuff_t *tvb, int offset) {
2104
2105         int length;
2106         guint8 octet;
2107         int i=0;
2108         char *digit_str;
2109
2110         length = tvb_length(tvb);
2111         if (length < offset)
2112                 return "";
2113         digit_str = ep_alloc((length - offset)*2+1);
2114
2115         while ( offset < length ){
2116
2117                 octet = tvb_get_guint8(tvb,offset);
2118                 digit_str[i] = ((octet & 0x0f) + '0');
2119                 i++;
2120
2121                 /*
2122                  * unpack second value in byte
2123                  */
2124                 octet = octet >> 4;
2125
2126                 if (octet == 0x0f)      /* odd number bytes - hit filler */
2127                         break;
2128
2129                 digit_str[i] = ((octet & 0x0f) + '0');
2130                 i++;
2131                 offset++;
2132
2133         }
2134         digit_str[i]= '\0';
2135         return digit_str;
2136 }
2137
2138 /* returns value in kb/s */
2139 static guint
2140 gsm_map_calc_bitrate(guint8 value){
2141
2142         guint8 granularity;
2143         guint returnvalue; 
2144
2145         if (value == 0xff)
2146                 return 0;
2147
2148         granularity = value >> 6;
2149         returnvalue = value & 0x7f;
2150         switch (granularity){
2151         case 0:
2152                 break;
2153         case 1:
2154                 returnvalue = ((returnvalue - 0x40) << 3)+64;
2155                 break;
2156         case 2:
2157                 returnvalue = (returnvalue << 6)+576;
2158                 break;
2159         case 3:
2160                 returnvalue = (returnvalue << 6)+576;
2161                 break;
2162         }
2163         return returnvalue;
2164
2165 }
2166
2167 static void 
2168 dissect_gsm_map_ext_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx){
2169         int offset = 0;
2170     proto_tree *subtree;
2171         guint8 octet;
2172         guint16 value;
2173
2174         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext_qos_subscribed);
2175         /*  OCTET 1:
2176                 Allocation/Retention Priority (This octet encodes each priority level defined in
2177                 23.107 as the binary value of the priority level, declaration in 29.060)
2178                 Octets 2-9 are coded according to 3GPP TS 24.008[35] Quality of Service Octets
2179                 6-13.
2180          */
2181         /* Allocation/Retention Priority */
2182         proto_tree_add_item(subtree, hf_gsm_map_ext_qos_subscribed_pri, tvb, offset, 1, FALSE);
2183         offset++;
2184
2185         /* Quality of Service Octets 6-13.( Octet 2 - 9 Here) */
2186
2187         /* Traffic class, octet 6 (see 3GPP TS 23.107) Bits 8 7 6 */
2188         proto_tree_add_item(subtree, hf_gsm_map_qos_traffic_cls, tvb, offset, 1, FALSE);
2189         /* Delivery order, octet 6 (see 3GPP TS 23.107) Bits 5 4 */
2190         proto_tree_add_item(subtree, hf_gsm_map_qos_del_order, tvb, offset, 1, FALSE);
2191         /* Delivery of erroneous SDUs, octet 6 (see 3GPP TS 23.107) Bits 3 2 1 */
2192         proto_tree_add_item(subtree, hf_gsm_map_qos_del_of_err_sdu, tvb, offset, 1, FALSE);
2193         offset++;
2194
2195         /* Maximum SDU size, octet 7 (see 3GPP TS 23.107) */
2196         octet = tvb_get_guint8(tvb,offset);
2197         switch (octet){
2198         case 0:
2199                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum SDU size/Reserved");
2200                 break;
2201         case 0x93:
2202                 value = 1502;
2203                 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2204                 break;
2205         case 0x98:
2206                 value = 1510;
2207                 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2208                 break;
2209         case 0x99:
2210                 value = 1532;
2211                 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2212                 break;
2213         default:
2214                 if (octet<0x97){
2215                         value = octet * 10;
2216                         proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2217                 }else{
2218                         proto_tree_add_text(subtree, tvb, offset, 1, "Maximum SDU size value 0x%x not defined in TS 24.008",octet);
2219                 }                       
2220         }
2221         offset++;
2222
2223         /* Maximum bit rate for uplink, octet 8 */
2224         octet = tvb_get_guint8(tvb,offset);
2225         if (octet == 0 ){
2226                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for uplink/Reserved"  );
2227         }else{
2228                 proto_tree_add_uint(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2229         }
2230         offset++;
2231         /* Maximum bit rate for downlink, octet 9 (see 3GPP TS 23.107) */
2232         octet = tvb_get_guint8(tvb,offset);
2233         if (octet == 0 ){
2234                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for downlink/Reserved"  );
2235         }else{
2236                 proto_tree_add_uint(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2237         }
2238         offset++;
2239         /* Residual Bit Error Rate (BER), octet 10 (see 3GPP TS 23.107) Bits 8 7 6 5 */ 
2240         proto_tree_add_item(subtree, hf_gsm_map_qos_ber, tvb, offset, 1, FALSE);
2241         /* SDU error ratio, octet 10 (see 3GPP TS 23.107) */
2242         proto_tree_add_item(subtree, hf_gsm_map_qos_sdu_err_rat, tvb, offset, 1, FALSE);
2243         offset++;
2244
2245         /* Transfer delay, octet 11 (See 3GPP TS 23.107) Bits 8 7 6 5 4 3 */
2246         proto_tree_add_item(subtree, hf_gsm_map_qos_transfer_delay, tvb, offset, 1, FALSE);
2247         /* Traffic handling priority, octet 11 (see 3GPP TS 23.107) Bits 2 1 */
2248         proto_tree_add_item(subtree, hf_gsm_map_qos_traff_hdl_pri, tvb, offset, 1, FALSE);
2249         offset++;
2250
2251         /*      Guaranteed bit rate for uplink, octet 12 (See 3GPP TS 23.107)
2252                 Coding is identical to that of Maximum bit rate for uplink.
2253          */
2254         octet = tvb_get_guint8(tvb,offset);
2255         if (octet == 0 ){
2256                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for uplink/Reserved"  );
2257         }else{
2258                 proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2259         }
2260         offset++;
2261
2262         /*      Guaranteed bit rate for downlink, octet 13(See 3GPP TS 23.107)
2263                 Coding is identical to that of Maximum bit rate for uplink.
2264          */
2265         octet = tvb_get_guint8(tvb,offset);
2266         if (octet == 0 ){
2267                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for downlink/Reserved"  );
2268         }else{
2269                 proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2270         }
2271
2272 }
2273
2274 #define  ELLIPSOID_POINT 0
2275 #define  ELLIPSOID_POINT_WITH_UNCERT_CIRC 1
2276 #define  ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE 3
2277 #define  POLYGON 5
2278 #define  ELLIPSOID_POINT_WITH_ALT 8
2279 #define  ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID 9
2280 #define  ELLIPSOID_ARC 10
2281 /*
2282 4 3 2 1
2283 0 0 0 0 Ellipsoid Point
2284 0 0 0 1 Ellipsoid point with uncertainty Circle
2285 0 0 1 1 Ellipsoid point with uncertainty Ellipse
2286 0 1 0 1 Polygon 
2287 1 0 0 0 Ellipsoid point with altitude
2288 1 0 0 1 Ellipsoid point with altitude and uncertainty Ellipsoid
2289 1 0 1 0 Ellipsoid Arc
2290 other values reserved for future use
2291 */
2292
2293 /* TS 23 032 Table 2a: Coding of Type of Shape */
2294 static const value_string type_of_shape_vals[] = {
2295         { ELLIPSOID_POINT,              "Ellipsoid Point"},
2296         { ELLIPSOID_POINT_WITH_UNCERT_CIRC,             "Ellipsoid point with uncertainty Circle"},
2297         { ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE,          "Ellipsoid point with uncertainty Ellipse"},
2298         { POLYGON,              "Polygon"},
2299         { ELLIPSOID_POINT_WITH_ALT,             "Ellipsoid point with altitude"},
2300         { ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID,                "Ellipsoid point with altitude and uncertainty Ellipsoid"},
2301         { ELLIPSOID_ARC,                "Ellipsoid Arc"},
2302         { 0,    NULL }
2303 };
2304
2305 /* 3GPP TS 23.032 7.3.1 */
2306 static const value_string sign_of_latitude_vals[] = {
2307         { 0,            "North"},
2308         { 1,            "South"},
2309         { 0,    NULL }
2310 };
2311
2312 static const value_string dir_of_alt_vals[] = {
2313         { 0,            "Altitude expresses height"},
2314         { 1,            "Altitude expresses depth"},
2315         { 0,    NULL }
2316 };
2317
2318 static const value_string gsm_map_cbs_data_coding_scheme_coding_grp_vals[] = {
2319         { 0, "Coding Group 0(Language using the GSM 7 bit default alphabet)" }, 
2320         { 1, "Coding Group 1" }, 
2321         { 2, "Coding Group 2" }, 
2322         { 3, "Coding Group 3" }, 
2323         { 4, "General Data Coding indication" }, 
2324         { 5, "General Data Coding indication" }, 
2325         { 6, "General Data Coding indication" }, 
2326         { 7, "General Data Coding indication" }, 
2327         { 8, "Reserved" }, 
2328         { 9, "Message with User Data Header (UDH) structure" }, 
2329         { 10,"Reserved" }, 
2330         { 11,"Reserved" }, 
2331         { 12,"Reserved" }, 
2332         { 13,"Reserved" }, 
2333         { 14,"Defined by the WAP Forum" }, 
2334         { 15,"Data coding / message handling" }, 
2335         { 0, NULL}
2336 };
2337 /* Coding group 0 
2338  * Bits 3..0 indicate the language:
2339  */
2340 static const value_string gsm_map_cbs_coding_grp0_lang_vals[] = {
2341         { 0, "German"},
2342         { 1, "English"},
2343         { 2, "Italian"},
2344         { 3, "French"},
2345         { 4, "Spanish"},
2346         { 5, "Dutch"},
2347         { 6, "Swedish"},
2348         { 7, "Danish"},
2349         { 8, "Portuguese"},
2350         { 9, "Finnish"},
2351         { 10, "Norwegian"},
2352         { 11, "Greek"},
2353         { 12, "Turkish"},
2354         { 13, "Hungarian"},
2355         { 14, "Polish"},
2356         { 15, "Language unspecified"},
2357         { 0,    NULL }
2358 };
2359
2360 static const value_string gsm_map_cbs_coding_grp1_lang_vals[] = {
2361         { 0, "GSM 7 bit default alphabet; message preceded by language indication"},
2362         { 1, "UCS2; message preceded by language indication"},
2363         { 2, "Reserved"},
2364         { 3, "Reserved"},
2365         { 4, "Reserved"},
2366         { 5, "Reserved"},
2367         { 6, "Reserved"},
2368         { 7, "Reserved"},
2369         { 8, "Reserved"},
2370         { 9, "Reserved"},
2371         { 10, "Reserved"},
2372         { 11, "Reserved"},
2373         { 12, "Reserved"},
2374         { 13, "Reserved"},
2375         { 14, "Reserved"},
2376         { 15, "Reserved"},
2377         { 0,    NULL }
2378 };
2379 static const value_string gsm_map_cbs_coding_grp2_lang_vals[] = {
2380         { 0, "Czech"},
2381         { 1, "Hebrew"},
2382         { 2, "Arabic"},
2383         { 3, "Russian"},
2384         { 4, "Icelandic"},
2385         { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2386         { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2387         { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2388         { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2389         { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2390         { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2391         { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2392         { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2393         { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2394         { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2395         { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2396         { 0,    NULL }
2397 };
2398 static const value_string gsm_map_cbs_coding_grp3_lang_vals[] = {
2399         { 0, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2400         { 1, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2401         { 2, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2402         { 3, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2403         { 4, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2404         { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2405         { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2406         { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2407         { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2408         { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2409         { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2410         { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2411         { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2412         { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2413         { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2414         { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2415         { 0,    NULL }
2416 };
2417
2418 static const true_false_string gsm_map_cbs_coding_grp4_7_comp_vals = {
2419   "The text is compressed using the compression algorithm defined in 3GPP TS 23.042",
2420   "The text is uncompressed"
2421 };
2422
2423 static const true_false_string gsm_map_cbs_coding_grp4_7_class_ind_vals = {
2424   "Bits 1 to 0 have a message class meaning",
2425   "Bits 1 to 0 are reserved and have no message class meaning"
2426 };
2427
2428 /* Bits 3 and 2 indicate the character set being used, as follows: */
2429
2430 static const value_string gsm_map_cbs_coding_grp4_7_char_set_vals[] = {
2431         { 0, "GSM 7 bit default alphabet"},
2432         { 1, "8 bit data"},
2433         { 2, "UCS2 (16 bit)"},
2434         { 3, "Reserved"},
2435         { 0,    NULL }
2436 };
2437
2438 static const value_string gsm_map_cbs_coding_grp4_7_class_vals[] = {
2439         { 0, "Class 0"},
2440         { 1, "Class 1 Default meaning: ME-specific"},
2441         { 2, "Class 2 (U)SIM specific message"},
2442         { 3, "Class 3 Default meaning: TE-specific (see 3GPP TS 27.005"},
2443         { 0,    NULL }
2444 };
2445
2446 static const value_string gsm_map_cbs_coding_grp15_mess_code_vals[] = {
2447         { 0, "GSM 7 bit default alphabet"},
2448         { 1, "8 bit data"},
2449         { 0,    NULL }
2450 };
2451
2452 static const value_string gsm_map_cbs_coding_grp15_class_vals[] = {
2453         { 0, "GSM 7 bit default alphabet"},
2454         { 1, "8 bit data"},
2455         { 0,    NULL }
2456 };
2457
2458
2459 /* 3GPP TS 23.038 version 7.0.0 Release 7 */
2460 guint8
2461 dissect_cbs_data_coding_scheme(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
2462 {
2463         guint8 octet;
2464         guint8 coding_grp;
2465         guint8 character_set;
2466
2467         octet = tvb_get_guint8(tvb,0);
2468         coding_grp = octet >>4;
2469         proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp, tvb, 0, 1, FALSE);
2470         
2471         sms_encoding = SMS_ENCODING_NOT_SET;
2472         switch (coding_grp){
2473         case 0:
2474                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp0_lang, tvb, 0, 1, FALSE);
2475                 sms_encoding = SMS_ENCODING_7BIT;
2476                 break;
2477         case 1:
2478                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp1_lang, tvb, 0, 1, FALSE);
2479                 if ((octet & 0x0f)== 0){
2480                         sms_encoding = SMS_ENCODING_7BIT_LANG;
2481                 }else{
2482                         sms_encoding = SMS_ENCODING_UCS2_LANG;
2483                 }
2484                 break;
2485         case 2:
2486                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp2_lang, tvb, 0, 1, FALSE);
2487                 sms_encoding = SMS_ENCODING_7BIT;
2488                 break;
2489         case 3:
2490                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp3_lang, tvb, 0, 1, FALSE);
2491                 sms_encoding = SMS_ENCODING_7BIT;
2492                 break;
2493                 /* Coding_grp 01xx */
2494         case 4:
2495         case 5:
2496         case 6:
2497         case 7:
2498                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_comp, tvb, 0, 1, FALSE);
2499                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class_ind, tvb, 0, 1, FALSE);
2500                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, 0, 1, FALSE);
2501                 if ((octet & 0x10)== 0x10){
2502                         proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, 0, 1, FALSE);
2503                 }
2504                 /* Bits 3 and 2 indicate the character set being used, */
2505                 character_set = (octet&0x0c)>>2;
2506                 switch (character_set){
2507                 case 0:
2508                         /* GSM 7 bit default alphabet */
2509                         sms_encoding = SMS_ENCODING_7BIT;
2510                         break;
2511                 case 1:
2512                         /* 8 bit data */
2513                         sms_encoding = SMS_ENCODING_8BIT;
2514                         break;
2515                 case 2:
2516                         /* UCS2 (16 bit) */
2517                         sms_encoding = SMS_ENCODING_UCS2;
2518                         break;
2519                 case 3:
2520                         /* Reserved */
2521                         sms_encoding = SMS_ENCODING_NOT_SET;
2522                         break;
2523                 default:
2524                         break;
2525                 }
2526                 break;
2527         case 8:
2528                 /* Reserved coding groups */
2529                 break;
2530         case 9:
2531                 /* Message with User Data Header (UDH) structure:*/
2532                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, 0, 1, FALSE);
2533                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, 0, 1, FALSE);
2534                 character_set = (octet&0x0c)>>2;
2535                 switch (character_set){
2536                 case 0:
2537                         /* GSM 7 bit default alphabet */
2538                         sms_encoding = SMS_ENCODING_7BIT;
2539                         break;
2540                 case 1:
2541                         /* 8 bit data */
2542                         sms_encoding = SMS_ENCODING_8BIT;
2543                         break;
2544                 case 2:
2545                         /* UCS2 (16 bit) */
2546                         sms_encoding = SMS_ENCODING_UCS2;
2547                         break;
2548                 case 3:
2549                         /* Reserved */
2550                         sms_encoding = SMS_ENCODING_NOT_SET;
2551                         break;
2552                 default:
2553                         break;
2554                 }
2555                 break;
2556         case 10:
2557         case 11:
2558         case 12:
2559         case 13:
2560                 /* 1010..1101 Reserved coding groups */
2561                 break;
2562         case 14:
2563                 /* Defined by the WAP Forum 
2564                  * "Wireless Datagram Protocol Specification", Wireless Application Protocol Forum Ltd.
2565                  */
2566                 break;
2567         case 15:
2568                 /* Data coding / message handling */
2569                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_mess_code, tvb, 0, 1, FALSE);
2570                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_class, tvb, 0, 1, FALSE);
2571                 character_set = (octet&0x04)>>2;
2572                 if (character_set == 0){
2573                         sms_encoding = SMS_ENCODING_7BIT;
2574                 }else{
2575                         sms_encoding = SMS_ENCODING_8BIT;
2576                 }
2577                 break;
2578         default:
2579                 break;
2580         }
2581
2582         return sms_encoding;
2583 }
2584 void
2585 dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
2586 {
2587  char           *digit_str;
2588  guint8         octet;
2589  guint8         na;
2590  guint8         np;
2591
2592  proto_tree_add_item(tree, hf_gsm_map_extension, tvb, 0,1,FALSE);
2593  proto_tree_add_item(tree, hf_gsm_map_nature_of_number, tvb, 0,1,FALSE);
2594  proto_tree_add_item(tree, hf_gsm_map_number_plan, tvb, 0,1,FALSE);
2595
2596  digit_str = unpack_digits(tvb, 1);
2597
2598  proto_tree_add_string(tree, hf_gsm_map_address_digits, tvb, 1, -1, digit_str);
2599
2600  octet = tvb_get_guint8(tvb,0);
2601  na = (octet & 0x70)>>4;
2602  np = octet & 0x0f;
2603  if ((na == 1) && (np==1))/*International Number & E164*/
2604         dissect_e164_cc(tvb, tree, 1, TRUE);
2605  else if(np==6)
2606         dissect_e212_mcc_mnc(tvb, tree, 1); 
2607
2608 }
2609
2610
2611 /*--- Included file: packet-gsm_map-fn.c ---*/
2612 #line 1 "packet-gsm_map-fn.c"
2613
2614 /* --- Module MAP-SS-Code --- --- ---                                         */
2615
2616
2617
2618 int
2619 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_) {
2620   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2621                                        NULL);
2622
2623   return offset;
2624 }
2625
2626
2627 /* --- Module MAP-BS-Code --- --- ---                                         */
2628
2629
2630
2631 static int
2632 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_) {
2633   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2634                                        NULL);
2635
2636   return offset;
2637 }
2638
2639
2640
2641 static int
2642 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_) {
2643   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2644                                        NULL);
2645
2646   return offset;
2647 }
2648
2649
2650 /* --- Module MAP-TS-Code --- --- ---                                         */
2651
2652
2653
2654 static int
2655 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_) {
2656   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2657                                        NULL);
2658
2659   return offset;
2660 }
2661
2662
2663
2664 static int
2665 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_) {
2666   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2667                                        NULL);
2668
2669   return offset;
2670 }
2671
2672
2673 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
2674
2675
2676
2677 static int
2678 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_) {
2679   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &obj_id);
2680
2681   return offset;
2682 }
2683
2684
2685
2686 static int
2687 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_) {
2688 #line 172 "gsmmap.cnf"
2689   proto_tree_add_text(tree, tvb, offset, -1, "Extension Data");
2690   if (obj_id){
2691          offset=call_ber_oid_callback(obj_id, tvb, offset, actx->pinfo, tree);
2692   }else{
2693          call_dissector(data_handle, tvb, actx->pinfo, tree);
2694          offset = tvb_length_remaining(tvb,offset);
2695   }     
2696
2697
2698
2699   return offset;
2700 }
2701
2702
2703 static const ber_sequence_t gsm_map_PrivateExtension_sequence[] = {
2704   { &hf_gsm_map_extId       , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extId },
2705   { &hf_gsm_map_extType     , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extType },
2706   { NULL, 0, 0, 0, NULL }
2707 };
2708
2709 static int
2710 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_) {
2711   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2712                                    gsm_map_PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension);
2713
2714   return offset;
2715 }
2716
2717
2718 static const ber_sequence_t gsm_map_PrivateExtensionList_sequence_of[1] = {
2719   { &hf_gsm_map_PrivateExtensionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PrivateExtension },
2720 };
2721
2722 static int
2723 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_) {
2724   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2725                                       gsm_map_PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList);
2726
2727   return offset;
2728 }
2729
2730
2731 static const ber_sequence_t gsm_map_PCS_Extensions_sequence[] = {
2732   { NULL, 0, 0, 0, NULL }
2733 };
2734
2735 static int
2736 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_) {
2737   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2738                                    gsm_map_PCS_Extensions_sequence, hf_index, ett_gsm_map_PCS_Extensions);
2739
2740   return offset;
2741 }
2742
2743
2744 static const ber_sequence_t gsm_map_ExtensionContainer_sequence[] = {
2745   { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList },
2746   { &hf_gsm_map_pcs_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PCS_Extensions },
2747   { NULL, 0, 0, 0, NULL }
2748 };
2749
2750 int
2751 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_) {
2752   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2753                                    gsm_map_ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer);
2754
2755   return offset;
2756 }
2757
2758
2759
2760 static int
2761 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_) {
2762   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
2763
2764   return offset;
2765 }
2766
2767
2768 static const ber_sequence_t gsm_map_SLR_Arg_PCS_Extensions_sequence[] = {
2769   { &hf_gsm_map_na_ESRK_Request, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NULL },
2770   { NULL, 0, 0, 0, NULL }
2771 };
2772
2773 static int
2774 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_) {
2775   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2776                                    gsm_map_SLR_Arg_PCS_Extensions_sequence, hf_index, ett_gsm_map_SLR_Arg_PCS_Extensions);
2777
2778   return offset;
2779 }
2780
2781
2782 static const ber_sequence_t gsm_map_SLR_ArgExtensionContainer_sequence[] = {
2783   { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList },
2784   { &hf_gsm_map_slr_Arg_PCS_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_Arg_PCS_Extensions },
2785   { NULL, 0, 0, 0, NULL }
2786 };
2787
2788 static int
2789 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_) {
2790   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2791                                    gsm_map_SLR_ArgExtensionContainer_sequence, hf_index, ett_gsm_map_SLR_ArgExtensionContainer);
2792
2793   return offset;
2794 }
2795
2796
2797 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
2798
2799
2800
2801 static int
2802 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_) {
2803 #line 194 "gsmmap.cnf"
2804  tvbuff_t       *parameter_tvb;
2805  char           *digit_str;
2806
2807    offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2808                                        &parameter_tvb);
2809
2810
2811  if (!parameter_tvb)
2812         return offset;
2813
2814  digit_str = unpack_digits(parameter_tvb, 0);
2815  proto_tree_add_string(tree, hf_gsm_map_TBCD_digits, parameter_tvb, 0, -1, digit_str);
2816
2817
2818
2819   return offset;
2820 }
2821
2822
2823
2824 int
2825 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_) {
2826 #line 181 "gsmmap.cnf"
2827
2828  tvbuff_t       *parameter_tvb;
2829  proto_tree *subtree;
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  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_isdn_address_string);
2839  dissect_gsm_map_msisdn(parameter_tvb, actx->pinfo , subtree);
2840
2841
2842
2843   return offset;
2844 }
2845
2846
2847
2848 int
2849 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_) {
2850   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
2851
2852   return offset;
2853 }
2854
2855
2856
2857 static int
2858 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_) {
2859   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
2860
2861   return offset;
2862 }
2863
2864
2865
2866 int
2867 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_) {
2868   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2869                                        NULL);
2870
2871   return offset;
2872 }
2873
2874
2875 static const value_string gsm_map_ProtocolId_vals[] = {
2876   {   1, "gsm-0408" },
2877   {   2, "gsm-0806" },
2878   {   3, "gsm-BSSMAP" },
2879   {   4, "ets-300102-1" },
2880   { 0, NULL }
2881 };
2882
2883
2884 static int
2885 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_) {
2886   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2887                                   &ProtocolId);
2888
2889   return offset;
2890 }
2891
2892
2893
2894 static int
2895 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_) {
2896 #line 275 "gsmmap.cnf"
2897  tvbuff_t       *parameter_tvb;
2898
2899    offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2900                                        &parameter_tvb);
2901
2902         actx->value_ptr = parameter_tvb;
2903
2904
2905
2906
2907   return offset;
2908 }
2909
2910
2911 static const ber_sequence_t gsm_map_ExternalSignalInfo_sequence[] = {
2912   { &hf_gsm_map_protocolId  , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId },
2913   { &hf_gsm_map_signalInfo  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
2914   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
2915   { NULL, 0, 0, 0, NULL }
2916 };
2917
2918 static int
2919 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_) {
2920 #line 700 "gsmmap.cnf"
2921 /*
2922 -- Information about the internal structure is given in
2923 -- clause 7.6.9.
2924 7.6.9.4 External Signal Information
2925 This parameter contains concatenated information elements (including tag and length) which are defined by a common
2926 protocol version, preceded by the associated protocol ID. It is used to transport information of the indicated protocol via
2927 MAP interfaces
2928 */
2929  guint8         octet;
2930  guint8         length;
2931  tvbuff_t       *next_tvb;
2932  proto_tree *subtree;
2933  
2934  ProtocolId = 0xffffffff;
2935   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2936                                    gsm_map_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_ExternalSignalInfo);
2937  
2938 if (!actx->value_ptr)
2939         return offset;
2940  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo);
2941  switch (ProtocolId){
2942         case 1:
2943         /* gsm-0408 */
2944                 /* As per comment abowe Individual IE:(s) will be found here in TLV format
2945                  * Unfortunatly a branch for each IE must be made to call the apropriate
2946                  * function
2947                  */
2948                  /* Get tag */
2949                  octet = tvb_get_guint8(actx->value_ptr,0);
2950                  proto_tree_add_item(subtree, hf_gsm_map_ie_tag, actx->value_ptr, 0,1,FALSE);
2951                  /* get length */
2952                  length = tvb_get_guint8(actx->value_ptr,1);
2953                  proto_tree_add_item(subtree, hf_gsm_map_len, actx->value_ptr, 1,1,FALSE);
2954                  /* Branch on tag */
2955                  switch(octet){
2956                  case 4:
2957                         /* Dissect the data part */                     
2958                         de_bearer_cap(actx->value_ptr, subtree, 2, length, NULL, 0);
2959                         /* TODO: There may be more than one IE */
2960                         break;
2961                  default:
2962                         proto_tree_add_text(subtree, actx->value_ptr, 0, length, "If you want this decoded send the packet to Wireshark-dev");
2963                         break;
2964                 }/* switch(octet) */
2965                 break;
2966         case 2:
2967                 /* gsm-0806 */
2968                 octet = tvb_get_guint8(actx->value_ptr,0);
2969                 /* Discrimination parameter */
2970                 proto_tree_add_item(subtree, hf_gsm_map_disc_par, actx->value_ptr, 0,1,FALSE);
2971                 if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
2972                         /* Strip off discrimination and length */
2973                         proto_tree_add_item(subtree, hf_gsm_map_len, actx->value_ptr, 1,1,FALSE);
2974                         next_tvb = tvb_new_subset(actx->value_ptr, 2, -1, -1);
2975                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
2976                 }else if(octet==1){
2977                         proto_tree_add_item(subtree, hf_gsm_map_dlci, actx->value_ptr, 1,1,FALSE);
2978                         proto_tree_add_item(subtree, hf_gsm_map_len, actx->value_ptr, 2,1,FALSE);
2979                         next_tvb = tvb_new_subset(actx->value_ptr, 3, -1, -1);
2980                         call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree); 
2981                 }       
2982                 break;
2983         case 3:
2984         /* gsm-BSSMAP TODO Is it correct to stripp off two first octets here?*/
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         }/*switch (ProtocolId)*/
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 213 "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                 /* Discrimination parameter */
3082                 proto_tree_add_item(subtree, hf_gsm_map_disc_par, parameter_tvb, 0,1,FALSE);
3083                 if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
3084                         /* Strip off discrimination and length */
3085                         length = tvb_get_guint8(parameter_tvb,0);
3086                         proto_tree_add_item(subtree, hf_gsm_map_len, parameter_tvb, 1,1,FALSE);
3087                         next_tvb = tvb_new_subset(parameter_tvb, 2, -1, -1);
3088                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
3089                 }else if(octet==1){
3090                         proto_tree_add_item(subtree, hf_gsm_map_dlci, parameter_tvb, 1,1,FALSE);
3091                         proto_tree_add_item(subtree, hf_gsm_map_len, parameter_tvb, 2,1,FALSE);
3092                         length = tvb_get_guint8(parameter_tvb,0);
3093                         next_tvb = tvb_new_subset(parameter_tvb, 3, -1, -1);
3094                         call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree); 
3095                 }       
3096                 break;
3097         /* ts3G-25413 */
3098         case 2:
3099                 call_dissector(ranap_handle, parameter_tvb, actx->pinfo, tree); 
3100                 break;
3101         default:
3102                 break;
3103
3104  }
3105
3106
3107   return offset;
3108 }
3109
3110
3111 static const ber_sequence_t gsm_map_AccessNetworkSignalInfo_sequence[] = {
3112   { &hf_gsm_map_accessNetworkProtocolId, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkProtocolId },
3113   { &hf_gsm_map_signalInfo_01, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LongSignalInfo },
3114   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
3115   { NULL, 0, 0, 0, NULL }
3116 };
3117
3118 static int
3119 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_) {
3120   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3121                                    gsm_map_AccessNetworkSignalInfo_sequence, hf_index, ett_gsm_map_AccessNetworkSignalInfo);
3122
3123   return offset;
3124 }
3125
3126
3127
3128 int
3129 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_) {
3130   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3131                                        NULL);
3132
3133   return offset;
3134 }
3135
3136
3137
3138 int
3139 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_) {
3140   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
3141
3142   return offset;
3143 }
3144
3145
3146
3147 static int
3148 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_) {
3149   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3150                                        NULL);
3151
3152   return offset;
3153 }
3154
3155
3156 static const ber_sequence_t gsm_map_IMSI_WithLMSI_sequence[] = {
3157   { &hf_gsm_map_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
3158   { &hf_gsm_map_lmsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
3159   { NULL, 0, 0, 0, NULL }
3160 };
3161
3162 static int
3163 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_) {
3164   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3165                                    gsm_map_IMSI_WithLMSI_sequence, hf_index, ett_gsm_map_IMSI_WithLMSI);
3166
3167   return offset;
3168 }
3169
3170
3171 static const value_string gsm_map_Identity_vals[] = {
3172   {   0, "imsi" },
3173   {   1, "imsi-WithLMSI" },
3174   { 0, NULL }
3175 };
3176
3177 static const ber_choice_t gsm_map_Identity_choice[] = {
3178   {   0, &hf_gsm_map_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
3179   {   1, &hf_gsm_map_imsi_WithLMSI, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI_WithLMSI },
3180   { 0, NULL, 0, 0, 0, NULL }
3181 };
3182
3183 static int
3184 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_) {
3185   offset = dissect_ber_choice(actx, tree, tvb, offset,
3186                                  gsm_map_Identity_choice, hf_index, ett_gsm_map_Identity,
3187                                  NULL);
3188
3189   return offset;
3190 }
3191
3192
3193
3194 static int
3195 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_) {
3196   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
3197
3198   return offset;
3199 }
3200
3201
3202
3203 static int
3204 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_) {
3205   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3206                                        NULL);
3207
3208   return offset;
3209 }
3210
3211
3212
3213 int
3214 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_) {
3215   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
3216
3217   return offset;
3218 }
3219
3220
3221
3222 static int
3223 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_) {
3224   offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
3225
3226   return offset;
3227 }
3228
3229
3230 static const ber_sequence_t gsm_map_HLR_List_sequence_of[1] = {
3231   { &hf_gsm_map_HLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_Id },
3232 };
3233
3234 static int
3235 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_) {
3236   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3237                                       gsm_map_HLR_List_sequence_of, hf_index, ett_gsm_map_HLR_List);
3238
3239   return offset;
3240 }
3241
3242
3243
3244 int
3245 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_) {
3246 #line 781 "gsmmap.cnf"
3247     tvbuff_t    *parameter_tvb; 
3248         proto_tree      *subtree;
3249
3250   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3251                                        &parameter_tvb);
3252  
3253
3254         if (!parameter_tvb) 
3255                 return offset; 
3256
3257     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GlobalCellId); 
3258         be_cell_id_aux(parameter_tvb, subtree, 0, tvb_length_remaining(tvb,0), NULL, 0, 0);
3259
3260
3261
3262   return offset;
3263 }
3264
3265
3266 static const value_string gsm_map_NetworkResource_vals[] = {
3267   {   0, "plmn" },
3268   {   1, "hlr" },
3269   {   2, "vlr" },
3270   {   3, "pvlr" },
3271   {   4, "controllingMSC" },
3272   {   5, "vmsc" },
3273   {   6, "eir" },
3274   {   7, "rss" },
3275   { 0, NULL }
3276 };
3277
3278
3279 static int
3280 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_) {
3281   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3282                                   NULL);
3283
3284   return offset;
3285 }
3286
3287
3288 static const value_string gsm_map_AdditionalNetworkResource_vals[] = {
3289   {   0, "sgsn" },
3290   {   1, "ggsn" },
3291   {   2, "gmlc" },
3292   {   3, "gsmSCF" },
3293   {   4, "nplr" },
3294   {   5, "auc" },
3295   {   6, "ue" },
3296   {   7, "mme" },
3297   { 0, NULL }
3298 };
3299
3300
3301 static int
3302 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_) {
3303   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3304                                   NULL);
3305
3306   return offset;
3307 }
3308
3309
3310
3311 static int
3312 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_) {
3313   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3314                                        NULL);
3315
3316   return offset;
3317 }
3318
3319
3320 static const ber_sequence_t gsm_map_NAEA_PreferredCI_sequence[] = {
3321   { &hf_gsm_map_naea_PreferredCIC, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_CIC },
3322   { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
3323   { NULL, 0, 0, 0, NULL }
3324 };
3325
3326 static int
3327 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_) {
3328   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3329                                    gsm_map_NAEA_PreferredCI_sequence, hf_index, ett_gsm_map_NAEA_PreferredCI);
3330
3331   return offset;
3332 }
3333
3334
3335 static const value_string gsm_map_SubscriberIdentity_vals[] = {
3336   {   0, "imsi" },
3337   {   1, "msisdn" },
3338   { 0, NULL }
3339 };
3340
3341 static const ber_choice_t gsm_map_SubscriberIdentity_choice[] = {
3342   {   0, &hf_gsm_map_imsi        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
3343   {   1, &hf_gsm_map_msisdn      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3344   { 0, NULL, 0, 0, 0, NULL }
3345 };
3346
3347 static int
3348 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_) {
3349   offset = dissect_ber_choice(actx, tree, tvb, offset,
3350                                  gsm_map_SubscriberIdentity_choice, hf_index, ett_gsm_map_SubscriberIdentity,
3351                                  NULL);
3352
3353   return offset;
3354 }
3355
3356
3357 static const ber_sequence_t gsm_map_LCSClientExternalID_sequence[] = {
3358   { &hf_gsm_map_externalAddress, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3359   { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
3360   { NULL, 0, 0, 0, NULL }
3361 };
3362
3363 int
3364 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_) {
3365   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3366                                    gsm_map_LCSClientExternalID_sequence, hf_index, ett_gsm_map_LCSClientExternalID);
3367
3368   return offset;
3369 }
3370
3371
3372 static const value_string gsm_map_LCSClientInternalID_vals[] = {
3373   {   0, "broadcastService" },
3374   {   1, "o-andM-HPLMN" },
3375   {   2, "o-andM-VPLMN" },
3376   {   3, "anonymousLocation" },
3377   {   4, "targetMSsubscribedService" },
3378   { 0, NULL }
3379 };
3380
3381
3382 static int
3383 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_) {
3384   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3385                                   NULL);
3386
3387   return offset;
3388 }
3389
3390
3391 const value_string gsm_map_LCSServiceTypeID_vals[] = {
3392   {   0, "emergencyServices" },
3393   {   1, "emergencyAlertServices" },
3394   {   2, "personTracking" },
3395   {   3, "fleetManagement" },
3396   {   4, "assetManagement" },
3397   {   5, "trafficCongestionReporting" },
3398   {   6, "roadsideAssistance" },
3399   {   7, "routingToNearestCommercialEnterprise" },
3400   {   8, "navigation" },
3401   {   9, "citySightseeing" },
3402   {  10, "localizedAdvertising" },
3403   {  11, "mobileYellowPages" },
3404   {  12, "trafficAndPublicTransportationInfo" },
3405   {  13, "weather" },
3406   {  14, "assetAndServiceFinding" },
3407   {  15, "gaming" },
3408   {  16, "findYourFriend" },
3409   {  17, "dating" },
3410   {  18, "chatting" },
3411   {  19, "routeFinding" },
3412   {  20, "whereAmI" },
3413   {  64, "serv64" },
3414   {  65, "serv65" },
3415   {  66, "serv66" },
3416   {  67, "serv67" },
3417   {  68, "serv68" },
3418   {  69, "serv69" },
3419   {  70, "serv70" },
3420   {  71, "serv71" },
3421   {  72, "serv72" },
3422   {  73, "serv73" },
3423   {  74, "serv74" },
3424   {  75, "serv75" },
3425   {  76, "serv76" },
3426   {  77, "serv77" },
3427   {  78, "serv78" },
3428   {  79, "serv79" },
3429   {  80, "serv80" },
3430   {  81, "serv81" },
3431   {  82, "serv82" },
3432   {  83, "serv83" },
3433   {  84, "serv84" },
3434   {  85, "serv85" },
3435   {  86, "serv86" },
3436   {  87, "serv87" },
3437   {  88, "serv88" },
3438   {  89, "serv89" },
3439   {  90, "serv90" },
3440   {  91, "serv91" },
3441   {  92, "serv92" },
3442   {  93, "serv93" },
3443   {  94, "serv94" },
3444   {  95, "serv95" },
3445   {  96, "serv96" },
3446   {  97, "serv97" },
3447   {  98, "serv98" },
3448   {  99, "serv99" },
3449   { 100, "serv100" },
3450   { 101, "serv101" },
3451   { 102, "serv102" },
3452   { 103, "serv103" },
3453   { 104, "serv104" },
3454   { 105, "serv105" },
3455   { 106, "serv106" },
3456   { 107, "serv107" },
3457   { 108, "serv108" },
3458   { 109, "serv109" },
3459   { 110, "serv110" },
3460   { 111, "serv111" },
3461   { 112, "serv112" },
3462   { 113, "serv113" },
3463   { 114, "serv114" },
3464   { 115, "serv115" },
3465   { 116, "serv116" },
3466   { 117, "serv117" },
3467   { 118, "serv118" },
3468   { 119, "serv119" },
3469   { 120, "serv120" },
3470   { 121, "serv121" },
3471   { 122, "serv122" },
3472   { 123, "serv123" },
3473   { 124, "serv124" },
3474   { 125, "serv125" },
3475   { 126, "serv126" },
3476   { 127, "serv127" },
3477   { 0, NULL }
3478 };
3479
3480
3481 int
3482 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_) {
3483   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3484                                                 NULL);
3485
3486   return offset;
3487 }
3488
3489
3490
3491 static int
3492 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_) {
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_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_) {
3503   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3504                                        NULL);
3505
3506   return offset;
3507 }
3508
3509
3510
3511 int
3512 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_) {
3513 #line 560 "gsmmap.cnf"
3514
3515         tvbuff_t        *parameter_tvb; 
3516         proto_tree *subtree; 
3517
3518   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3519                                        &parameter_tvb);
3520  
3521
3522          if (!parameter_tvb) 
3523                 return offset; 
3524         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LAIFixedLength); 
3525         dissect_e212_mcc_mnc(parameter_tvb, subtree, 0); 
3526
3527
3528
3529   return offset;
3530 }
3531
3532
3533 static const value_string gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals[] = {
3534   {   0, "cellGlobalIdOrServiceAreaIdFixedLength" },
3535   {   1, "laiFixedLength" },
3536   { 0, NULL }
3537 };
3538
3539 static const ber_choice_t gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice[] = {
3540   {   0, &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength },
3541   {   1, &hf_gsm_map_laiFixedLength, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
3542   { 0, NULL, 0, 0, 0, NULL }
3543 };
3544
3545 static int
3546 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_) {
3547   offset = dissect_ber_choice(actx, tree, tvb, offset,
3548                                  gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice, hf_index, ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
3549                                  NULL);
3550
3551   return offset;
3552 }
3553
3554
3555 static const value_string gsm_map_BasicServiceCode_vals[] = {
3556   {   2, "bearerService" },
3557   {   3, "teleservice" },
3558   { 0, NULL }
3559 };
3560
3561 static const ber_choice_t gsm_map_BasicServiceCode_choice[] = {
3562   {   2, &hf_gsm_map_bearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_BearerServiceCode },
3563   {   3, &hf_gsm_map_teleservice , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_TeleserviceCode },
3564   { 0, NULL, 0, 0, 0, NULL }
3565 };
3566
3567 static int
3568 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_) {
3569   offset = dissect_ber_choice(actx, tree, tvb, offset,
3570                                  gsm_map_BasicServiceCode_choice, hf_index, ett_gsm_map_BasicServiceCode,
3571                                  NULL);
3572
3573   return offset;
3574 }
3575
3576
3577 const value_string gsm_map_Ext_BasicServiceCode_vals[] = {
3578   {   2, "ext-BearerService" },
3579   {   3, "ext-Teleservice" },
3580   { 0, NULL }
3581 };
3582
3583 static const ber_choice_t gsm_map_Ext_BasicServiceCode_choice[] = {
3584   {   2, &hf_gsm_map_ext_BearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BearerServiceCode },
3585   {   3, &hf_gsm_map_ext_Teleservice, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_TeleserviceCode },
3586   { 0, NULL, 0, 0, 0, NULL }
3587 };
3588
3589 int
3590 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_) {
3591   offset = dissect_ber_choice(actx, tree, tvb, offset,
3592                                  gsm_map_Ext_BasicServiceCode_choice, hf_index, ett_gsm_map_Ext_BasicServiceCode,
3593                                  NULL);
3594
3595   return offset;
3596 }
3597
3598
3599 static const value_string gsm_map_EMLPP_Priority_vals[] = {
3600   {   6, "priorityLevelA" },
3601   {   5, "priorityLevelB" },
3602   {   0, "priorityLevel0" },
3603   {   1, "priorityLevel1" },
3604   {   2, "priorityLevel2" },
3605   {   3, "priorityLevel3" },
3606   {   4, "priorityLevel4" },
3607   { 0, NULL }
3608 };
3609
3610
3611 static int
3612 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_) {
3613   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3614                                                 NULL);
3615
3616   return offset;
3617 }
3618
3619
3620 static const ber_sequence_t gsm_map_EMLPP_Info_sequence[] = {
3621   { &hf_gsm_map_maximumentitledPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
3622   { &hf_gsm_map_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
3623   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
3624   { NULL, 0, 0, 0, NULL }
3625 };
3626
3627 static int
3628 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_) {
3629   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3630                                    gsm_map_EMLPP_Info_sequence, hf_index, ett_gsm_map_EMLPP_Info);
3631
3632   return offset;
3633 }
3634
3635
3636
3637 static int
3638 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_) {
3639 #line 373 "gsmmap.cnf"
3640  /* Note Ext-SS-Status can have more than one byte */
3641
3642  tvbuff_t       *parameter_tvb;
3643  guint8         octet;
3644
3645   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3646                                        &parameter_tvb);
3647
3648
3649  if (!parameter_tvb)
3650         return offset;
3651
3652  octet = tvb_get_guint8(parameter_tvb,0);
3653
3654  proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
3655  if ((octet & 0x01)== 1)        
3656         proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
3657                                                                                 
3658  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);                                                                    
3659  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);                                                                    
3660  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);                                                                    
3661
3662
3663
3664   return offset;
3665 }
3666
3667
3668
3669 static int
3670 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_) {
3671   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3672                                                 NULL);
3673
3674   return offset;
3675 }
3676
3677
3678
3679 static int
3680 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_) {
3681   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3682                                                 NULL);
3683
3684   return offset;
3685 }
3686
3687
3688 static const ber_sequence_t gsm_map_MC_SS_Info_sequence[] = {
3689   { &hf_gsm_map_ss_Code     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
3690   { &hf_gsm_map_ss_Status   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
3691   { &hf_gsm_map_nbrSB       , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers },
3692   { &hf_gsm_map_nbrUser     , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3693   { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
3694   { NULL, 0, 0, 0, NULL }
3695 };
3696
3697 static int
3698 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_) {
3699   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3700                                    gsm_map_MC_SS_Info_sequence, hf_index, ett_gsm_map_MC_SS_Info);
3701
3702   return offset;
3703 }
3704
3705
3706
3707 int
3708 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_) {
3709   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3710                                                 NULL);
3711
3712   return offset;
3713 }
3714
3715
3716 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
3717
3718
3719
3720 static int
3721 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_) {
3722   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3723                                                 NULL);
3724
3725   return offset;
3726 }
3727
3728
3729
3730 static int
3731 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_) {
3732   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
3733
3734   return offset;
3735 }
3736
3737
3738 static const ber_sequence_t gsm_map_ss_RegisterSS_Arg_sequence[] = {
3739   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3740   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3741   { &hf_gsm_map_ss_forwardedToNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
3742   { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
3743   { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime },
3744   { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
3745   { &hf_gsm_map_ss_nbrUser  , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3746   { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL },
3747   { NULL, 0, 0, 0, NULL }
3748 };
3749
3750 int
3751 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_) {
3752   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3753                                    gsm_map_ss_RegisterSS_Arg_sequence, hf_index, ett_gsm_map_ss_RegisterSS_Arg);
3754
3755   return offset;
3756 }
3757
3758
3759
3760 int
3761 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_) {
3762 #line 353 "gsmmap.cnf"
3763
3764  tvbuff_t       *parameter_tvb;
3765  guint8         octet;
3766
3767   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3768                                        &parameter_tvb);
3769
3770
3771  if (!parameter_tvb)
3772         return offset;
3773
3774  octet = tvb_get_guint8(parameter_tvb,0);
3775
3776  proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
3777  if ((octet & 0x01)== 1)        
3778         proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
3779                                                                                 
3780  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);                                                                    
3781  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);                                                                    
3782  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);                                                                    
3783
3784
3785
3786   return offset;
3787 }
3788
3789
3790
3791 static int
3792 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_) {
3793   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3794                                        NULL);
3795
3796 #line 467 "gsmmap.cnf"
3797
3798         proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE);
3799         proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE);
3800         proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE);
3801         proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE);
3802
3803   return offset;
3804 }
3805
3806
3807 static const ber_sequence_t gsm_map_ss_ForwardingFeature_sequence[] = {
3808   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3809   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
3810   { &hf_gsm_map_ss_forwardedToNumber_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3811   { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
3812   { &hf_gsm_map_ss_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions },
3813   { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime },
3814   { &hf_gsm_map_ss_longForwardedToNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
3815   { NULL, 0, 0, 0, NULL }
3816 };
3817
3818 static int
3819 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_) {
3820   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3821                                    gsm_map_ss_ForwardingFeature_sequence, hf_index, ett_gsm_map_ss_ForwardingFeature);
3822
3823   return offset;
3824 }
3825
3826
3827 static const ber_sequence_t gsm_map_ss_ForwardingFeatureList_sequence_of[1] = {
3828   { &hf_gsm_map_ss_ForwardingFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeature },
3829 };
3830
3831 static int
3832 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_) {
3833   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3834                                       gsm_map_ss_ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_ss_ForwardingFeatureList);
3835
3836   return offset;
3837 }
3838
3839
3840 static const ber_sequence_t gsm_map_ss_ForwardingInfo_sequence[] = {
3841   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3842   { &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeatureList },
3843   { NULL, 0, 0, 0, NULL }
3844 };
3845
3846 static int
3847 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_) {
3848   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3849                                    gsm_map_ss_ForwardingInfo_sequence, hf_index, ett_gsm_map_ss_ForwardingInfo);
3850
3851   return offset;
3852 }
3853
3854
3855 static const ber_sequence_t gsm_map_ss_CallBarringFeature_sequence[] = {
3856   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3857   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
3858   { NULL, 0, 0, 0, NULL }
3859 };
3860
3861 static int
3862 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_) {
3863   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3864                                    gsm_map_ss_CallBarringFeature_sequence, hf_index, ett_gsm_map_ss_CallBarringFeature);
3865
3866   return offset;
3867 }
3868
3869
3870 static const ber_sequence_t gsm_map_ss_CallBarringFeatureList_sequence_of[1] = {
3871   { &hf_gsm_map_ss_CallBarringFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeature },
3872 };
3873
3874 static int
3875 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_) {
3876   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3877                                       gsm_map_ss_CallBarringFeatureList_sequence_of, hf_index, ett_gsm_map_ss_CallBarringFeatureList);
3878
3879   return offset;
3880 }
3881
3882
3883 static const ber_sequence_t gsm_map_ss_CallBarringInfo_sequence[] = {
3884   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3885   { &hf_gsm_map_ss_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeatureList },
3886   { NULL, 0, 0, 0, NULL }
3887 };
3888
3889 static int
3890 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_) {
3891   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3892                                    gsm_map_ss_CallBarringInfo_sequence, hf_index, ett_gsm_map_ss_CallBarringInfo);
3893
3894   return offset;
3895 }
3896
3897
3898 static const value_string gsm_map_ss_CliRestrictionOption_vals[] = {
3899   {   0, "permanent" },
3900   {   1, "temporaryDefaultRestricted" },
3901   {   2, "temporaryDefaultAllowed" },
3902   { 0, NULL }
3903 };
3904
3905
3906 static int
3907 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_) {
3908   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3909                                   NULL);
3910
3911   return offset;
3912 }
3913
3914
3915 static const value_string gsm_map_ss_OverrideCategory_vals[] = {
3916   {   0, "overrideEnabled" },
3917   {   1, "overrideDisabled" },
3918   { 0, NULL }
3919 };
3920
3921
3922 static int
3923 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_) {
3924   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3925                                   NULL);
3926
3927   return offset;
3928 }
3929
3930
3931 static const value_string gsm_map_ss_SS_SubscriptionOption_vals[] = {
3932   {   2, "cliRestrictionOption" },
3933   {   1, "overrideCategory" },
3934   { 0, NULL }
3935 };
3936
3937 static const ber_choice_t gsm_map_ss_SS_SubscriptionOption_choice[] = {
3938   {   2, &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption },
3939   {   1, &hf_gsm_map_ss_overrideCategory, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory },
3940   { 0, NULL, 0, 0, 0, NULL }
3941 };
3942
3943 static int
3944 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_) {
3945   offset = dissect_ber_choice(actx, tree, tvb, offset,
3946                                  gsm_map_ss_SS_SubscriptionOption_choice, hf_index, ett_gsm_map_ss_SS_SubscriptionOption,
3947                                  NULL);
3948
3949   return offset;
3950 }
3951
3952
3953 static const ber_sequence_t gsm_map_ss_BasicServiceGroupList_sequence_of[1] = {
3954   { &hf_gsm_map_ss_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3955 };
3956
3957 static int
3958 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_) {
3959   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3960                                       gsm_map_ss_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ss_BasicServiceGroupList);
3961
3962   return offset;
3963 }
3964
3965
3966 static const ber_sequence_t gsm_map_ss_SS_Data_sequence[] = {
3967   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3968   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
3969   { &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 },
3970   { &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_BasicServiceGroupList },
3971   { &hf_gsm_map_ss_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
3972   { &hf_gsm_map_ss_nbrUser  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3973   { NULL, 0, 0, 0, NULL }
3974 };
3975
3976 static int
3977 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_) {
3978   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3979                                    gsm_map_ss_SS_Data_sequence, hf_index, ett_gsm_map_ss_SS_Data);
3980
3981   return offset;
3982 }
3983
3984
3985 const value_string gsm_map_ss_SS_Info_vals[] = {
3986   {   0, "forwardingInfo" },
3987   {   1, "callBarringInfo" },
3988   {   3, "ss-Data" },
3989   { 0, NULL }
3990 };
3991
3992 static const ber_choice_t gsm_map_ss_SS_Info_choice[] = {
3993   {   0, &hf_gsm_map_ss_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingInfo },
3994   {   1, &hf_gsm_map_ss_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CallBarringInfo },
3995   {   3, &hf_gsm_map_ss_ss_Data  , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Data },
3996   { 0, NULL, 0, 0, 0, NULL }
3997 };
3998
3999 int
4000 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_) {
4001   offset = dissect_ber_choice(actx, tree, tvb, offset,
4002                                  gsm_map_ss_SS_Info_choice, hf_index, ett_gsm_map_ss_SS_Info,
4003                                  NULL);
4004
4005   return offset;
4006 }
4007
4008
4009 static const ber_sequence_t gsm_map_ss_SS_ForBS_Code_sequence[] = {
4010   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
4011   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
4012   { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL },
4013   { NULL, 0, 0, 0, NULL }
4014 };
4015
4016 int
4017 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_) {
4018   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4019                                    gsm_map_ss_SS_ForBS_Code_sequence, hf_index, ett_gsm_map_ss_SS_ForBS_Code);
4020
4021   return offset;
4022 }
4023
4024
4025
4026 static int
4027 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_) {
4028   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4029                                                 NULL);
4030
4031   return offset;
4032 }
4033
4034
4035 static const ber_sequence_t gsm_map_ss_CCBS_Feature_sequence[] = {
4036   { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index },
4037   { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4038   { &hf_gsm_map_ss_b_subscriberSubaddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
4039   { &hf_gsm_map_ss_basicServiceGroup, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_BasicServiceCode },
4040   { NULL, 0, 0, 0, NULL }
4041 };
4042
4043 int
4044 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_) {
4045   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4046                                    gsm_map_ss_CCBS_Feature_sequence, hf_index, ett_gsm_map_ss_CCBS_Feature);
4047
4048   return offset;
4049 }
4050
4051
4052 static const ber_sequence_t gsm_map_ss_CCBS_FeatureList_sequence_of[1] = {
4053   { &hf_gsm_map_ss_CCBS_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CCBS_Feature },
4054 };
4055
4056 static int
4057 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_) {
4058   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4059                                       gsm_map_ss_CCBS_FeatureList_sequence_of, hf_index, ett_gsm_map_ss_CCBS_FeatureList);
4060
4061   return offset;
4062 }
4063
4064
4065 static const ber_sequence_t gsm_map_ss_GenericServiceInfo_sequence[] = {
4066   { &hf_gsm_map_ss_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_Status },
4067   { &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CliRestrictionOption },
4068   { &hf_gsm_map_ss_maximumEntitledPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
4069   { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
4070   { &hf_gsm_map_ss_ccbs_FeatureList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_FeatureList },
4071   { &hf_gsm_map_ss_nbrSB    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers },
4072   { &hf_gsm_map_ss_nbrUser  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
4073   { &hf_gsm_map_ss_nbrSN    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
4074   { NULL, 0, 0, 0, NULL }
4075 };
4076
4077 static int
4078 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_) {
4079   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4080                                    gsm_map_ss_GenericServiceInfo_sequence, hf_index, ett_gsm_map_ss_GenericServiceInfo);
4081
4082   return offset;
4083 }
4084
4085
4086 const value_string gsm_map_ss_InterrogateSS_Res_vals[] = {
4087   {   0, "ss-Status" },
4088   {   2, "basicServiceGroupList" },
4089   {   3, "forwardingFeatureList" },
4090   {   4, "genericServiceInfo" },
4091   { 0, NULL }
4092 };
4093
4094 static const ber_choice_t gsm_map_ss_InterrogateSS_Res_choice[] = {
4095   {   0, &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4096   {   2, &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_BasicServiceGroupList },
4097   {   3, &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingFeatureList },
4098   {   4, &hf_gsm_map_ss_genericServiceInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_GenericServiceInfo },
4099   { 0, NULL, 0, 0, 0, NULL }
4100 };
4101
4102 int
4103 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_) {
4104   offset = dissect_ber_choice(actx, tree, tvb, offset,
4105                                  gsm_map_ss_InterrogateSS_Res_choice, hf_index, ett_gsm_map_ss_InterrogateSS_Res,
4106                                  NULL);
4107
4108   return offset;
4109 }
4110
4111
4112
4113 int
4114 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_) {
4115 #line 396 "gsmmap.cnf"
4116  /*The structure of the USSD-DataCodingScheme is defined by
4117   * the Cell Broadcast Data Coding Scheme as described in
4118   * TS 3GPP TS 23.038
4119   * TODO: Should dissect_cbs_data_coding_scheme return encoding type? - like 7bit Alphabet
4120   */
4121   tvbuff_t      *parameter_tvb;
4122   proto_tree *subtree;
4123
4124   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4125                                        &parameter_tvb);
4126
4127   if (!parameter_tvb)
4128      return offset;
4129   subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_cbs_data_coding);
4130   dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree);
4131
4132
4133
4134   return offset;
4135 }
4136
4137
4138
4139 int
4140 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_) {
4141 #line 411 "gsmmap.cnf"
4142
4143   tvbuff_t      *parameter_tvb;
4144   int                   length;
4145   guint8                out_len;
4146   /* XXX - The maximum item label length is 240.  Does this really need to be 1024? 
4147    * use ep_alloc ?
4148    * We need a input and an output buffer to gsm_sms_char_ascii_decode()
4149    */
4150   static unsigned char msgbuf[1024];
4151   static unsigned char outbuf[1024];
4152   gchar *utf8_text = NULL;
4153   GIConv cd;    
4154   GError *l_conv_error = NULL;
4155
4156   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4157                                        &parameter_tvb);
4158
4159   if (!parameter_tvb)
4160      return offset;
4161
4162   length = tvb_length_remaining(parameter_tvb,0);
4163   switch(sms_encoding){
4164     case SMS_ENCODING_7BIT:
4165     case SMS_ENCODING_7BIT_LANG:
4166         out_len = gsm_sms_char_7bit_unpack(0, length, sizeof(msgbuf),
4167                                            tvb_get_ptr(parameter_tvb, 0, length),
4168                                                        msgbuf);
4169
4170         msgbuf[out_len] = '\0';
4171         gsm_sms_char_ascii_decode(outbuf, msgbuf, out_len);
4172         msgbuf[1023] = '\0';
4173         proto_tree_add_text(tree, parameter_tvb, 0, length, "USSD String: %s", outbuf);
4174         break;
4175     case SMS_ENCODING_8BIT:
4176         proto_tree_add_text(tree, parameter_tvb , 0, length, "USSD String: %s", tvb_get_ptr(parameter_tvb, 0, length));
4177         break;
4178     case SMS_ENCODING_UCS2:
4179     case SMS_ENCODING_UCS2_LANG:
4180         if ((cd = g_iconv_open("UTF-8","UCS-2BE")) != (GIConv) -1)
4181         {
4182             utf8_text = g_convert_with_iconv(parameter_tvb->real_data, length, cd, NULL, NULL, &l_conv_error);
4183             if(!l_conv_error)
4184                 proto_tree_add_text(tree, tvb, 0, length, "USSD String: %s", utf8_text);
4185             else
4186                 proto_tree_add_text(tree, tvb, 0, length, "USSD String: g_convert_with_iconv FAILED");
4187
4188             g_free(utf8_text);
4189             g_iconv_close(cd);                          
4190         }
4191         else
4192             proto_tree_add_text(tree, tvb, 0, length, "USSD String: g_iconv_open FAILED contact wireshark");
4193
4194         break;
4195     default:
4196         break;  
4197   }
4198
4199
4200
4201   return offset;
4202 }
4203
4204
4205 static const ber_sequence_t gsm_map_ss_USSD_Arg_sequence[] = {
4206   { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
4207   { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String },
4208   { &hf_gsm_map_ss_alertingPattern, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AlertingPattern },
4209   { &hf_gsm_map_ss_msisdn   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4210   { NULL, 0, 0, 0, NULL }
4211 };
4212
4213 int
4214 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_) {
4215   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4216                                    gsm_map_ss_USSD_Arg_sequence, hf_index, ett_gsm_map_ss_USSD_Arg);
4217
4218   return offset;
4219 }
4220
4221
4222 static const ber_sequence_t gsm_map_ss_USSD_Res_sequence[] = {
4223   { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
4224   { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String },
4225   { NULL, 0, 0, 0, NULL }
4226 };
4227
4228 int
4229 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_) {
4230   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4231                                    gsm_map_ss_USSD_Res_sequence, hf_index, ett_gsm_map_ss_USSD_Res);
4232
4233   return offset;
4234 }
4235
4236
4237
4238 static int
4239 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_) {
4240   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
4241                                             actx, tree, tvb, offset, hf_index,
4242                                             NULL);
4243
4244   return offset;
4245 }
4246
4247
4248 static const ber_sequence_t gsm_map_ss_SS_List_sequence_of[1] = {
4249   { &hf_gsm_map_ss_SS_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
4250 };
4251
4252 static int
4253 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_) {
4254   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4255                                       gsm_map_ss_SS_List_sequence_of, hf_index, ett_gsm_map_ss_SS_List);
4256
4257   return offset;
4258 }
4259
4260
4261 static const ber_sequence_t gsm_map_ss_SS_EventSpecification_sequence_of[1] = {
4262   { &hf_gsm_map_ss_SS_EventSpecification_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
4263 };
4264
4265 static int
4266 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_) {
4267   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4268                                       gsm_map_ss_SS_EventSpecification_sequence_of, hf_index, ett_gsm_map_ss_SS_EventSpecification);
4269
4270   return offset;
4271 }
4272
4273
4274 static const value_string gsm_map_ss_CCBS_RequestState_vals[] = {
4275   {   0, "request" },
4276   {   1, "recall" },
4277   {   2, "active" },
4278   {   3, "completed" },
4279   {   4, "suspended" },
4280   {   5, "frozen" },
4281   {   6, "deleted" },
4282   { 0, NULL }
4283 };
4284
4285
4286 static int
4287 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_) {
4288   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4289                                   NULL);
4290
4291   return offset;
4292 }
4293
4294
4295 static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationArg_sequence[] = {
4296   { &hf_gsm_map_ss_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
4297   { &hf_gsm_map_ss_msisdn   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4298   { &hf_gsm_map_ss_ss_Event , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4299   { &hf_gsm_map_ss_ss_EventSpecification, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_EventSpecification },
4300   { &hf_gsm_map_ss_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
4301   { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4302   { &hf_gsm_map_ss_ccbs_RequestState, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_RequestState },
4303   { NULL, 0, 0, 0, NULL }
4304 };
4305
4306 static int
4307 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_) {
4308   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4309                                    gsm_map_ss_SS_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationArg);
4310
4311   return offset;
4312 }
4313
4314
4315 static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationRes_sequence[] = {
4316   { &hf_gsm_map_ss_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4317   { NULL, 0, 0, 0, NULL }
4318 };
4319
4320 static int
4321 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_) {
4322   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4323                                    gsm_map_ss_SS_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationRes);
4324
4325   return offset;
4326 }
4327
4328
4329 static const asn_namedbit gsm_map_ss_ServiceIndicator_bits[] = {
4330   {  0, &hf_gsm_map_ss_ServiceIndicator_clir_invoked, -1, -1, "clir-invoked", NULL },
4331   {  1, &hf_gsm_map_ss_ServiceIndicator_camel_invoked, -1, -1, "camel-invoked", NULL },
4332   { 0, NULL, 0, 0, NULL, NULL }
4333 };
4334
4335 static int
4336 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_) {
4337   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
4338                                     gsm_map_ss_ServiceIndicator_bits, hf_index, ett_gsm_map_ss_ServiceIndicator,
4339                                     NULL);
4340
4341   return offset;
4342 }
4343
4344
4345 static const ber_sequence_t gsm_map_ss_CCBS_Data_sequence[] = {
4346   { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
4347   { &hf_gsm_map_ss_translatedB_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4348   { &hf_gsm_map_ss_serviceIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ServiceIndicator },
4349   { &hf_gsm_map_ss_callInfo , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
4350   { &hf_gsm_map_ss_networkSignalInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
4351   { NULL, 0, 0, 0, NULL }
4352 };
4353
4354 static int
4355 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_) {
4356   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4357                                    gsm_map_ss_CCBS_Data_sequence, hf_index, ett_gsm_map_ss_CCBS_Data);
4358
4359   return offset;
4360 }
4361
4362
4363 static const ber_sequence_t gsm_map_ss_RegisterCC_EntryArg_sequence[] = {
4364   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4365   { &hf_gsm_map_ss_ccbs_Data, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Data },
4366   { NULL, 0, 0, 0, NULL }
4367 };
4368
4369 static int
4370 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_) {
4371   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4372                                    gsm_map_ss_RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryArg);
4373
4374   return offset;
4375 }
4376
4377
4378 static const ber_sequence_t gsm_map_ss_RegisterCC_EntryRes_sequence[] = {
4379   { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
4380   { NULL, 0, 0, 0, NULL }
4381 };
4382
4383 int
4384 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_) {
4385   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4386                                    gsm_map_ss_RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryRes);
4387
4388   return offset;
4389 }
4390
4391
4392 static const ber_sequence_t gsm_map_ss_EraseCC_EntryArg_sequence[] = {
4393   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4394   { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index },
4395   { NULL, 0, 0, 0, NULL }
4396 };
4397
4398 int
4399 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_) {
4400   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4401                                    gsm_map_ss_EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryArg);
4402
4403   return offset;
4404 }
4405
4406
4407 static const ber_sequence_t gsm_map_ss_EraseCC_EntryRes_sequence[] = {
4408   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4409   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4410   { NULL, 0, 0, 0, NULL }
4411 };
4412
4413 int
4414 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_) {
4415   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4416                                    gsm_map_ss_EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryRes);
4417
4418   return offset;
4419 }
4420
4421
4422 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
4423
4424
4425 static const value_string gsm_map_er_RoamingNotAllowedCause_vals[] = {
4426   {   0, "plmnRoamingNotAllowed" },
4427   {   3, "operatorDeterminedBarring" },
4428   { 0, NULL }
4429 };
4430
4431
4432 static int
4433 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_) {
4434   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4435                                   NULL);
4436
4437   return offset;
4438 }
4439
4440
4441 static const value_string gsm_map_er_AdditionalRoamingNotAllowedCause_vals[] = {
4442   {   0, "supportedRAT-TypesNotAllowed" },
4443   { 0, NULL }
4444 };
4445
4446
4447 static int
4448 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_) {
4449   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4450                                   NULL);
4451
4452   return offset;
4453 }
4454
4455
4456 static const ber_sequence_t gsm_map_er_RoamingNotAllowedParam_sequence[] = {
4457   { &hf_gsm_map_er_roamingNotAllowedCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_RoamingNotAllowedCause },
4458   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4459   { &hf_gsm_map_er_additionalRoamingNotAllowedCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AdditionalRoamingNotAllowedCause },
4460   { NULL, 0, 0, 0, NULL }
4461 };
4462
4463 static int
4464 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_) {
4465   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4466                                    gsm_map_er_RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_er_RoamingNotAllowedParam);
4467
4468   return offset;
4469 }
4470
4471
4472 static const value_string gsm_map_er_CallBarringCause_vals[] = {
4473   {   0, "barringServiceActive" },
4474   {   1, "operatorBarring" },
4475   { 0, NULL }
4476 };
4477
4478
4479 static int
4480 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_) {
4481   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4482                                   NULL);
4483
4484   return offset;
4485 }
4486
4487
4488
4489 static int
4490 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_) {
4491   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4492
4493   return offset;
4494 }
4495
4496
4497 static const ber_sequence_t gsm_map_er_ExtensibleCallBarredParam_sequence[] = {
4498   { &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause },
4499   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4500   { &hf_gsm_map_er_unauthorisedMessageOriginator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4501   { NULL, 0, 0, 0, NULL }
4502 };
4503
4504 static int
4505 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_) {
4506   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4507                                    gsm_map_er_ExtensibleCallBarredParam_sequence, hf_index, ett_gsm_map_er_ExtensibleCallBarredParam);
4508
4509   return offset;
4510 }
4511
4512
4513 static const value_string gsm_map_er_CallBarredParam_vals[] = {
4514   {   0, "callBarringCause" },
4515   {   1, "extensibleCallBarredParam" },
4516   { 0, NULL }
4517 };
4518
4519 static const ber_choice_t gsm_map_er_CallBarredParam_choice[] = {
4520   {   0, &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause },
4521   {   1, &hf_gsm_map_er_extensibleCallBarredParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleCallBarredParam },
4522   { 0, NULL, 0, 0, 0, NULL }
4523 };
4524
4525 static int
4526 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_) {
4527   offset = dissect_ber_choice(actx, tree, tvb, offset,
4528                                  gsm_map_er_CallBarredParam_choice, hf_index, ett_gsm_map_er_CallBarredParam,
4529                                  NULL);
4530
4531   return offset;
4532 }
4533
4534
4535 static const value_string gsm_map_er_CUG_RejectCause_vals[] = {
4536   {   0, "incomingCallsBarredWithinCUG" },
4537   {   1, "subscriberNotMemberOfCUG" },
4538   {   5, "requestedBasicServiceViolatesCUG-Constraints" },
4539   {   7, "calledPartySS-InteractionViolation" },
4540   { 0, NULL }
4541 };
4542
4543
4544 static int
4545 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_) {
4546   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4547                                   NULL);
4548
4549   return offset;
4550 }
4551
4552
4553 static const ber_sequence_t gsm_map_er_CUG_RejectParam_sequence[] = {
4554   { &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 },
4555   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4556   { NULL, 0, 0, 0, NULL }
4557 };
4558
4559 static int
4560 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_) {
4561   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4562                                    gsm_map_er_CUG_RejectParam_sequence, hf_index, ett_gsm_map_er_CUG_RejectParam);
4563
4564   return offset;
4565 }
4566
4567
4568 static const ber_sequence_t gsm_map_er_SS_IncompatibilityCause_sequence[] = {
4569   { &hf_gsm_map_er_ss_Code  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4570   { &hf_gsm_map_er_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
4571   { &hf_gsm_map_er_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4572   { NULL, 0, 0, 0, NULL }
4573 };
4574
4575 static int
4576 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_) {
4577   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4578                                    gsm_map_er_SS_IncompatibilityCause_sequence, hf_index, ett_gsm_map_er_SS_IncompatibilityCause);
4579
4580   return offset;
4581 }
4582
4583
4584 static const value_string gsm_map_er_PW_RegistrationFailureCause_vals[] = {
4585   {   0, "undetermined" },
4586   {   1, "invalidFormat" },
4587   {   2, "newPasswordsMismatch" },
4588   { 0, NULL }
4589 };
4590
4591
4592 static int
4593 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_) {
4594   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4595                                   NULL);
4596
4597   return offset;
4598 }
4599
4600
4601 static const value_string gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals[] = {
4602   {   0, "memoryCapacityExceeded" },
4603   {   1, "equipmentProtocolError" },
4604   {   2, "equipmentNotSM-Equipped" },
4605   {   3, "unknownServiceCentre" },
4606   {   4, "sc-Congestion" },
4607   {   5, "invalidSME-Address" },
4608   {   6, "subscriberNotSC-Subscriber" },
4609   { 0, NULL }
4610 };
4611
4612
4613 static int
4614 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_) {
4615   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4616                                   NULL);
4617
4618   return offset;
4619 }
4620
4621
4622 static const ber_sequence_t gsm_map_er_SM_DeliveryFailureCause_sequence[] = {
4623   { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause },
4624   { &hf_gsm_map_er_diagnosticInfo, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
4625   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4626   { NULL, 0, 0, 0, NULL }
4627 };
4628
4629 static int
4630 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_) {
4631 #line 282 "gsmmap.cnf"
4632         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
4633   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4634                                    gsm_map_er_SM_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_er_SM_DeliveryFailureCause);
4635
4636
4637         if (!actx->value_ptr)
4638                 return offset;
4639         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
4640
4641
4642
4643   return offset;
4644 }
4645
4646
4647
4648 static int
4649 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_) {
4650   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4651                                                 NULL);
4652
4653   return offset;
4654 }
4655
4656
4657 static const ber_sequence_t gsm_map_er_AbsentSubscriberSM_Param_sequence[] = {
4658   { &hf_gsm_map_er_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
4659   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4660   { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
4661   { NULL, 0, 0, 0, NULL }
4662 };
4663
4664 static int
4665 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_) {
4666   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4667                                    gsm_map_er_AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberSM_Param);
4668
4669   return offset;
4670 }
4671
4672
4673 static const value_string gsm_map_er_FailureCauseParam_vals[] = {
4674   {   0, "limitReachedOnNumberOfConcurrentLocationRequests" },
4675   { 0, NULL }
4676 };
4677
4678
4679 static int
4680 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_) {
4681   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4682                                   NULL);
4683
4684   return offset;
4685 }
4686
4687
4688 static const ber_sequence_t gsm_map_er_ExtensibleSystemFailureParam_sequence[] = {
4689   { &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
4690   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4691   { &hf_gsm_map_er_additionalNetworkResource, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AdditionalNetworkResource },
4692   { &hf_gsm_map_er_failureCauseParam, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_FailureCauseParam },
4693   { NULL, 0, 0, 0, NULL }
4694 };
4695
4696 static int
4697 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_) {
4698   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4699                                    gsm_map_er_ExtensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_er_ExtensibleSystemFailureParam);
4700
4701   return offset;
4702 }
4703
4704
4705 static const value_string gsm_map_er_SystemFailureParam_vals[] = {
4706   {   0, "networkResource" },
4707   {   1, "extensibleSystemFailureParam" },
4708   { 0, NULL }
4709 };
4710
4711 static const ber_choice_t gsm_map_er_SystemFailureParam_choice[] = {
4712   {   0, &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
4713   {   1, &hf_gsm_map_er_extensibleSystemFailureParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleSystemFailureParam },
4714   { 0, NULL, 0, 0, 0, NULL }
4715 };
4716
4717 static int
4718 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_) {
4719   offset = dissect_ber_choice(actx, tree, tvb, offset,
4720                                  gsm_map_er_SystemFailureParam_choice, hf_index, ett_gsm_map_er_SystemFailureParam,
4721                                  NULL);
4722
4723   return offset;
4724 }
4725
4726
4727 static const ber_sequence_t gsm_map_er_DataMissingParam_sequence[] = {
4728   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4729   { NULL, 0, 0, 0, NULL }
4730 };
4731
4732 static int
4733 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_) {
4734   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4735                                    gsm_map_er_DataMissingParam_sequence, hf_index, ett_gsm_map_er_DataMissingParam);
4736
4737   return offset;
4738 }
4739
4740
4741 static const ber_sequence_t gsm_map_er_UnexpectedDataParam_sequence[] = {
4742   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4743   { NULL, 0, 0, 0, NULL }
4744 };
4745
4746 static int
4747 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_) {
4748   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4749                                    gsm_map_er_UnexpectedDataParam_sequence, hf_index, ett_gsm_map_er_UnexpectedDataParam);
4750
4751   return offset;
4752 }
4753
4754
4755 static const ber_sequence_t gsm_map_er_FacilityNotSupParam_sequence[] = {
4756   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4757   { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4758   { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4759   { NULL, 0, 0, 0, NULL }
4760 };
4761
4762 static int
4763 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_) {
4764   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4765                                    gsm_map_er_FacilityNotSupParam_sequence, hf_index, ett_gsm_map_er_FacilityNotSupParam);
4766
4767   return offset;
4768 }
4769
4770
4771 static const ber_sequence_t gsm_map_er_OR_NotAllowedParam_sequence[] = {
4772   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4773   { NULL, 0, 0, 0, NULL }
4774 };
4775
4776 static int
4777 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_) {
4778   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4779                                    gsm_map_er_OR_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_OR_NotAllowedParam);
4780
4781   return offset;
4782 }
4783
4784
4785 static const value_string gsm_map_er_UnknownSubscriberDiagnostic_vals[] = {
4786   {   0, "imsiUnknown" },
4787   {   1, "gprs-eps-SubscriptionUnknown" },
4788   {   2, "npdbMismatch" },
4789   { 0, NULL }
4790 };
4791
4792
4793 static int
4794 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_) {
4795   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4796                                   NULL);
4797
4798   return offset;
4799 }
4800
4801
4802 static const ber_sequence_t gsm_map_er_UnknownSubscriberParam_sequence[] = {
4803   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4804   { &hf_gsm_map_er_unknownSubscriberDiagnostic, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_UnknownSubscriberDiagnostic },
4805   { NULL, 0, 0, 0, NULL }
4806 };
4807
4808 static int
4809 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_) {
4810   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4811                                    gsm_map_er_UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_er_UnknownSubscriberParam);
4812
4813   return offset;
4814 }
4815
4816
4817 static const ber_sequence_t gsm_map_er_NumberChangedParam_sequence[] = {
4818   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4819   { NULL, 0, 0, 0, NULL }
4820 };
4821
4822 static int
4823 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_) {
4824   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4825                                    gsm_map_er_NumberChangedParam_sequence, hf_index, ett_gsm_map_er_NumberChangedParam);
4826
4827   return offset;
4828 }
4829
4830
4831 static const ber_sequence_t gsm_map_er_UnidentifiedSubParam_sequence[] = {
4832   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4833   { NULL, 0, 0, 0, NULL }
4834 };
4835
4836 static int
4837 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_) {
4838   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4839                                    gsm_map_er_UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_er_UnidentifiedSubParam);
4840
4841   return offset;
4842 }
4843
4844
4845 static const ber_sequence_t gsm_map_er_IllegalSubscriberParam_sequence[] = {
4846   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4847   { NULL, 0, 0, 0, NULL }
4848 };
4849
4850 static int
4851 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_) {
4852   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4853                                    gsm_map_er_IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_er_IllegalSubscriberParam);
4854
4855   return offset;
4856 }
4857
4858
4859 static const ber_sequence_t gsm_map_er_IllegalEquipmentParam_sequence[] = {
4860   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4861   { NULL, 0, 0, 0, NULL }
4862 };
4863
4864 static int
4865 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_) {
4866   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4867                                    gsm_map_er_IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_er_IllegalEquipmentParam);
4868
4869   return offset;
4870 }
4871
4872
4873 static const ber_sequence_t gsm_map_er_BearerServNotProvParam_sequence[] = {
4874   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4875   { NULL, 0, 0, 0, NULL }
4876 };
4877
4878 static int
4879 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_) {
4880   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4881                                    gsm_map_er_BearerServNotProvParam_sequence, hf_index, ett_gsm_map_er_BearerServNotProvParam);
4882
4883   return offset;
4884 }
4885
4886
4887 static const ber_sequence_t gsm_map_er_TeleservNotProvParam_sequence[] = {
4888   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4889   { NULL, 0, 0, 0, NULL }
4890 };
4891
4892 static int
4893 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_) {
4894   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4895                                    gsm_map_er_TeleservNotProvParam_sequence, hf_index, ett_gsm_map_er_TeleservNotProvParam);
4896
4897   return offset;
4898 }
4899
4900
4901 static const ber_sequence_t gsm_map_er_TracingBufferFullParam_sequence[] = {
4902   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4903   { NULL, 0, 0, 0, NULL }
4904 };
4905
4906 static int
4907 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_) {
4908   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4909                                    gsm_map_er_TracingBufferFullParam_sequence, hf_index, ett_gsm_map_er_TracingBufferFullParam);
4910
4911   return offset;
4912 }
4913
4914
4915 static const ber_sequence_t gsm_map_er_NoRoamingNbParam_sequence[] = {
4916   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4917   { NULL, 0, 0, 0, NULL }
4918 };
4919
4920 static int
4921 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_) {
4922   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4923                                    gsm_map_er_NoRoamingNbParam_sequence, hf_index, ett_gsm_map_er_NoRoamingNbParam);
4924
4925   return offset;
4926 }
4927
4928
4929 static const value_string gsm_map_er_AbsentSubscriberReason_vals[] = {
4930   {   0, "imsiDetach" },
4931   {   1, "restrictedArea" },
4932   {   2, "noPageResponse" },
4933   {   3, "purgedMS" },
4934   { 0, NULL }
4935 };
4936
4937
4938 static int
4939 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_) {
4940   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4941                                   NULL);
4942
4943   return offset;
4944 }
4945
4946
4947 static const ber_sequence_t gsm_map_er_AbsentSubscriberParam_sequence[] = {
4948   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4949   { &hf_gsm_map_er_absentSubscriberReason, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberReason },
4950   { NULL, 0, 0, 0, NULL }
4951 };
4952
4953 static int
4954 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_) {
4955   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4956                                    gsm_map_er_AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberParam);
4957
4958   return offset;
4959 }
4960
4961
4962 static const ber_sequence_t gsm_map_er_BusySubscriberParam_sequence[] = {
4963   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4964   { &hf_gsm_map_er_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4965   { &hf_gsm_map_er_ccbs_Busy, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4966   { NULL, 0, 0, 0, NULL }
4967 };
4968
4969 static int
4970 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_) {
4971   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4972                                    gsm_map_er_BusySubscriberParam_sequence, hf_index, ett_gsm_map_er_BusySubscriberParam);
4973
4974   return offset;
4975 }
4976
4977
4978 static const ber_sequence_t gsm_map_er_NoSubscriberReplyParam_sequence[] = {
4979   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4980   { NULL, 0, 0, 0, NULL }
4981 };
4982
4983 static int
4984 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_) {
4985   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4986                                    gsm_map_er_NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_er_NoSubscriberReplyParam);
4987
4988   return offset;
4989 }
4990
4991
4992 static const ber_sequence_t gsm_map_er_ForwardingViolationParam_sequence[] = {
4993   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4994   { NULL, 0, 0, 0, NULL }
4995 };
4996
4997 static int
4998 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_) {
4999   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5000                                    gsm_map_er_ForwardingViolationParam_sequence, hf_index, ett_gsm_map_er_ForwardingViolationParam);
5001
5002   return offset;
5003 }
5004
5005
5006 static const ber_sequence_t gsm_map_er_ForwardingFailedParam_sequence[] = {
5007   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5008   { NULL, 0, 0, 0, NULL }
5009 };
5010
5011 static int
5012 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_) {
5013   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5014                                    gsm_map_er_ForwardingFailedParam_sequence, hf_index, ett_gsm_map_er_ForwardingFailedParam);
5015
5016   return offset;
5017 }
5018
5019
5020 static const ber_sequence_t gsm_map_er_ATI_NotAllowedParam_sequence[] = {
5021   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5022   { NULL, 0, 0, 0, NULL }
5023 };
5024
5025 static int
5026 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_) {
5027   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5028                                    gsm_map_er_ATI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATI_NotAllowedParam);
5029
5030   return offset;
5031 }
5032
5033
5034 static const ber_sequence_t gsm_map_er_ATSI_NotAllowedParam_sequence[] = {
5035   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5036   { NULL, 0, 0, 0, NULL }
5037 };
5038
5039 static int
5040 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_) {
5041   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5042                                    gsm_map_er_ATSI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATSI_NotAllowedParam);
5043
5044   return offset;
5045 }
5046
5047
5048 static const ber_sequence_t gsm_map_er_ATM_NotAllowedParam_sequence[] = {
5049   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5050   { NULL, 0, 0, 0, NULL }
5051 };
5052
5053 static int
5054 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_) {
5055   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5056                                    gsm_map_er_ATM_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATM_NotAllowedParam);
5057
5058   return offset;
5059 }
5060
5061
5062 static const ber_sequence_t gsm_map_er_IllegalSS_OperationParam_sequence[] = {
5063   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5064   { NULL, 0, 0, 0, NULL }
5065 };
5066
5067 static int
5068 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_) {
5069   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5070                                    gsm_map_er_IllegalSS_OperationParam_sequence, hf_index, ett_gsm_map_er_IllegalSS_OperationParam);
5071
5072   return offset;
5073 }
5074
5075
5076 static const ber_sequence_t gsm_map_er_SS_NotAvailableParam_sequence[] = {
5077   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5078   { NULL, 0, 0, 0, NULL }
5079 };
5080
5081 static int
5082 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_) {
5083   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5084                                    gsm_map_er_SS_NotAvailableParam_sequence, hf_index, ett_gsm_map_er_SS_NotAvailableParam);
5085
5086   return offset;
5087 }
5088
5089
5090 static const ber_sequence_t gsm_map_er_SS_SubscriptionViolationParam_sequence[] = {
5091   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5092   { NULL, 0, 0, 0, NULL }
5093 };
5094
5095 static int
5096 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_) {
5097   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5098                                    gsm_map_er_SS_SubscriptionViolationParam_sequence, hf_index, ett_gsm_map_er_SS_SubscriptionViolationParam);
5099
5100   return offset;
5101 }
5102
5103
5104 static const ber_sequence_t gsm_map_er_InformationNotAvailableParam_sequence[] = {
5105   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5106   { NULL, 0, 0, 0, NULL }
5107 };
5108
5109 static int
5110 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_) {
5111   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5112                                    gsm_map_er_InformationNotAvailableParam_sequence, hf_index, ett_gsm_map_er_InformationNotAvailableParam);
5113
5114   return offset;
5115 }
5116
5117
5118 static const ber_sequence_t gsm_map_er_SubBusyForMT_SMS_Param_sequence[] = {
5119   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5120   { &hf_gsm_map_er_gprsConnectionSuspended, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_NULL },
5121   { NULL, 0, 0, 0, NULL }
5122 };
5123
5124 static int
5125 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_) {
5126   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5127                                    gsm_map_er_SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_er_SubBusyForMT_SMS_Param);
5128
5129   return offset;
5130 }
5131
5132
5133 static const ber_sequence_t gsm_map_er_MessageWaitListFullParam_sequence[] = {
5134   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5135   { NULL, 0, 0, 0, NULL }
5136 };
5137
5138 static int
5139 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_) {
5140   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5141                                    gsm_map_er_MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_er_MessageWaitListFullParam);
5142
5143   return offset;
5144 }
5145
5146
5147 static const ber_sequence_t gsm_map_er_ResourceLimitationParam_sequence[] = {
5148   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5149   { NULL, 0, 0, 0, NULL }
5150 };
5151
5152 static int
5153 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_) {
5154   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5155                                    gsm_map_er_ResourceLimitationParam_sequence, hf_index, ett_gsm_map_er_ResourceLimitationParam);
5156
5157   return offset;
5158 }
5159
5160
5161 static const ber_sequence_t gsm_map_er_NoGroupCallNbParam_sequence[] = {
5162   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5163   { NULL, 0, 0, 0, NULL }
5164 };
5165
5166 static int
5167 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_) {
5168   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5169                                    gsm_map_er_NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_er_NoGroupCallNbParam);
5170
5171   return offset;
5172 }
5173
5174
5175 static const ber_sequence_t gsm_map_er_IncompatibleTerminalParam_sequence[] = {
5176   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5177   { NULL, 0, 0, 0, NULL }
5178 };
5179
5180 static int
5181 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_) {
5182   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5183                                    gsm_map_er_IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_er_IncompatibleTerminalParam);
5184
5185   return offset;
5186 }
5187
5188
5189 static const ber_sequence_t gsm_map_er_ShortTermDenialParam_sequence[] = {
5190   { NULL, 0, 0, 0, NULL }
5191 };
5192
5193 static int
5194 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_) {
5195   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5196                                    gsm_map_er_ShortTermDenialParam_sequence, hf_index, ett_gsm_map_er_ShortTermDenialParam);
5197
5198   return offset;
5199 }
5200
5201
5202 static const ber_sequence_t gsm_map_er_LongTermDenialParam_sequence[] = {
5203   { NULL, 0, 0, 0, NULL }
5204 };
5205
5206 static int
5207 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_) {
5208   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5209                                    gsm_map_er_LongTermDenialParam_sequence, hf_index, ett_gsm_map_er_LongTermDenialParam);
5210
5211   return offset;
5212 }
5213
5214
5215 static const ber_sequence_t gsm_map_er_UnauthorizedRequestingNetwork_Param_sequence[] = {
5216   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5217   { NULL, 0, 0, 0, NULL }
5218 };
5219
5220 static int
5221 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_) {
5222   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5223                                    gsm_map_er_UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedRequestingNetwork_Param);
5224
5225   return offset;
5226 }
5227
5228
5229 static const value_string gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals[] = {
5230   {   0, "noAdditionalInformation" },
5231   {   1, "clientNotInMSPrivacyExceptionList" },
5232   {   2, "callToClientNotSetup" },
5233   {   3, "privacyOverrideNotApplicable" },
5234   {   4, "disallowedByLocalRegulatoryRequirements" },
5235   {   5, "unauthorizedPrivacyClass" },
5236   {   6, "unauthorizedCallSessionUnrelatedExternalClient" },
5237   {   7, "unauthorizedCallSessionRelatedExternalClient" },
5238   { 0, NULL }
5239 };
5240
5241
5242 static int
5243 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_) {
5244   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5245                                   NULL);
5246
5247   return offset;
5248 }
5249
5250
5251 static const ber_sequence_t gsm_map_er_UnauthorizedLCSClient_Param_sequence[] = {
5252   { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_UnauthorizedLCSClient_Diagnostic },
5253   { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5254   { NULL, 0, 0, 0, NULL }
5255 };
5256
5257 static int
5258 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_) {
5259   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5260                                    gsm_map_er_UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedLCSClient_Param);
5261
5262   return offset;
5263 }
5264
5265
5266 static const value_string gsm_map_er_PositionMethodFailure_Diagnostic_vals[] = {
5267   {   0, "congestion" },
5268   {   1, "insufficientResources" },
5269   {   2, "insufficientMeasurementData" },
5270   {   3, "inconsistentMeasurementData" },
5271   {   4, "locationProcedureNotCompleted" },
5272   {   5, "locationProcedureNotSupportedByTargetMS" },
5273   {   6, "qoSNotAttainable" },
5274   {   7, "positionMethodNotAvailableInNetwork" },
5275   {   8, "positionMethodNotAvailableInLocationArea" },
5276   { 0, NULL }
5277 };
5278
5279
5280 static int
5281 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_) {
5282   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5283                                   NULL);
5284
5285   return offset;
5286 }
5287
5288
5289 static const ber_sequence_t gsm_map_er_PositionMethodFailure_Param_sequence[] = {
5290   { &hf_gsm_map_er_positionMethodFailure_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_PositionMethodFailure_Diagnostic },
5291   { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5292   { NULL, 0, 0, 0, NULL }
5293 };
5294
5295 static int
5296 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_) {
5297   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5298                                    gsm_map_er_PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_er_PositionMethodFailure_Param);
5299
5300   return offset;
5301 }
5302
5303
5304 static const ber_sequence_t gsm_map_er_UnknownOrUnreachableLCSClient_Param_sequence[] = {
5305   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5306   { NULL, 0, 0, 0, NULL }
5307 };
5308
5309 static int
5310 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_) {
5311   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5312                                    gsm_map_er_UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param);
5313
5314   return offset;
5315 }
5316
5317
5318 static const ber_sequence_t gsm_map_er_MM_EventNotSupported_Param_sequence[] = {
5319   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5320   { NULL, 0, 0, 0, NULL }
5321 };
5322
5323 static int
5324 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_) {
5325   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5326                                    gsm_map_er_MM_EventNotSupported_Param_sequence, hf_index, ett_gsm_map_er_MM_EventNotSupported_Param);
5327
5328   return offset;
5329 }
5330
5331
5332 static const ber_sequence_t gsm_map_er_TargetCellOutsideGCA_Param_sequence[] = {
5333   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5334   { NULL, 0, 0, 0, NULL }
5335 };
5336
5337 static int
5338 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_) {
5339   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5340                                    gsm_map_er_TargetCellOutsideGCA_Param_sequence, hf_index, ett_gsm_map_er_TargetCellOutsideGCA_Param);
5341
5342   return offset;
5343 }
5344
5345
5346 static const ber_sequence_t gsm_map_er_OngoingGroupCallParam_sequence[] = {
5347   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5348   { NULL, 0, 0, 0, NULL }
5349 };
5350
5351 static int
5352 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_) {
5353   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5354                                    gsm_map_er_OngoingGroupCallParam_sequence, hf_index, ett_gsm_map_er_OngoingGroupCallParam);
5355
5356   return offset;
5357 }
5358
5359
5360 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
5361
5362
5363
5364 static int
5365 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_) {
5366   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
5367
5368   return offset;
5369 }
5370
5371
5372
5373 static int
5374 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_) {
5375   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5376
5377   return offset;
5378 }
5379
5380
5381
5382 static int
5383 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_) {
5384   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5385                                                 NULL);
5386
5387   return offset;
5388 }
5389
5390
5391
5392 static int
5393 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_) {
5394   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5395                                        NULL);
5396
5397   return offset;
5398 }
5399
5400
5401 static const value_string gsm_map_sm_SM_DeliveryNotIntended_vals[] = {
5402   {   0, "onlyIMSI-requested" },
5403   {   1, "onlyMCC-MNC-requested" },
5404   { 0, NULL }
5405 };
5406
5407
5408 static int
5409 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_) {
5410   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5411                                   NULL);
5412
5413   return offset;
5414 }
5415
5416
5417 static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Arg_sequence[] = {
5418   { &hf_gsm_map_sm_msisdn   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5419   { &hf_gsm_map_sm_sm_RP_PRI, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_BOOLEAN },
5420   { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
5421   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5422   { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5423   { &hf_gsm_map_sm_sm_RP_MTI, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_MTI },
5424   { &hf_gsm_map_sm_sm_RP_SMEA, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_SMEA },
5425   { &hf_gsm_map_sm_sm_deliveryNotIntended, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryNotIntended },
5426   { NULL, 0, 0, 0, NULL }
5427 };
5428
5429 static int
5430 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_) {
5431   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5432                                    gsm_map_sm_RoutingInfoForSM_Arg_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Arg);
5433
5434   return offset;
5435 }
5436
5437
5438 static const value_string gsm_map_sm_Additional_Number_vals[] = {
5439   {   0, "msc-Number" },
5440   {   1, "sgsn-Number" },
5441   { 0, NULL }
5442 };
5443
5444 static const ber_choice_t gsm_map_sm_Additional_Number_choice[] = {
5445   {   0, &hf_gsm_map_sm_msc_Number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5446   {   1, &hf_gsm_map_sm_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5447   { 0, NULL, 0, 0, 0, NULL }
5448 };
5449
5450 static int
5451 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_) {
5452   offset = dissect_ber_choice(actx, tree, tvb, offset,
5453                                  gsm_map_sm_Additional_Number_choice, hf_index, ett_gsm_map_sm_Additional_Number,
5454                                  NULL);
5455
5456   return offset;
5457 }
5458
5459
5460 static const ber_sequence_t gsm_map_sm_LocationInfoWithLMSI_sequence[] = {
5461   { &hf_gsm_map_sm_networkNode_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5462   { &hf_gsm_map_sm_lmsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
5463   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5464   { &hf_gsm_map_sm_gprsNodeIndicator, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5465   { &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 },
5466   { NULL, 0, 0, 0, NULL }
5467 };
5468
5469 static int
5470 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_) {
5471   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5472                                    gsm_map_sm_LocationInfoWithLMSI_sequence, hf_index, ett_gsm_map_sm_LocationInfoWithLMSI);
5473
5474   return offset;
5475 }
5476
5477
5478 static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Res_sequence[] = {
5479   { &hf_gsm_map_sm_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
5480   { &hf_gsm_map_sm_locationInfoWithLMSI, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_LocationInfoWithLMSI },
5481   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5482   { NULL, 0, 0, 0, NULL }
5483 };
5484
5485 static int
5486 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_) {
5487   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5488                                    gsm_map_sm_RoutingInfoForSM_Res_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Res);
5489
5490   return offset;
5491 }
5492
5493
5494 static const value_string gsm_map_sm_SM_RP_DA_vals[] = {
5495   {   0, "imsi" },
5496   {   1, "lmsi" },
5497   {   4, "serviceCentreAddressDA" },
5498   {   5, "noSM-RP-DA" },
5499   { 0, NULL }
5500 };
5501
5502 static const ber_choice_t gsm_map_sm_SM_RP_DA_choice[] = {
5503   {   0, &hf_gsm_map_sm_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5504   {   1, &hf_gsm_map_sm_lmsi     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
5505   {   4, &hf_gsm_map_sm_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
5506   {   5, &hf_gsm_map_sm_noSM_RP_DA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5507   { 0, NULL, 0, 0, 0, NULL }
5508 };
5509
5510 static int
5511 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_) {
5512   offset = dissect_ber_choice(actx, tree, tvb, offset,
5513                                  gsm_map_sm_SM_RP_DA_choice, hf_index, ett_gsm_map_sm_SM_RP_DA,
5514                                  NULL);
5515
5516   return offset;
5517 }
5518
5519
5520
5521 static int
5522 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_) {
5523 #line 271 "gsmmap.cnf"
5524 actx->pinfo->p2p_dir = P2P_DIR_RECV;
5525    offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
5526
5527
5528
5529
5530   return offset;
5531 }
5532
5533
5534
5535 static int
5536 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_) {
5537 #line 263 "gsmmap.cnf"
5538         actx->pinfo->p2p_dir = P2P_DIR_SENT;
5539   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
5540
5541
5542
5543
5544   return offset;
5545 }
5546
5547
5548 static const value_string gsm_map_sm_SM_RP_OA_vals[] = {
5549   {   2, "msisdn" },
5550   {   4, "serviceCentreAddressOA" },
5551   {   5, "noSM-RP-OA" },
5552   { 0, NULL }
5553 };
5554
5555 static const ber_choice_t gsm_map_sm_SM_RP_OA_choice[] = {
5556   {   2, &hf_gsm_map_sm_msisdn_01, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_msisdn },
5557   {   4, &hf_gsm_map_sm_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_serviceCentreAddressOA },
5558   {   5, &hf_gsm_map_sm_noSM_RP_OA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5559   { 0, NULL, 0, 0, 0, NULL }
5560 };
5561
5562 static int
5563 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_) {
5564   offset = dissect_ber_choice(actx, tree, tvb, offset,
5565                                  gsm_map_sm_SM_RP_OA_choice, hf_index, ett_gsm_map_sm_SM_RP_OA,
5566                                  NULL);
5567
5568   return offset;
5569 }
5570
5571
5572 static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Arg_sequence[] = {
5573   { &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 },
5574   { &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 },
5575   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5576   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5577   { &hf_gsm_map_sm_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
5578   { NULL, 0, 0, 0, NULL }
5579 };
5580
5581 static int
5582 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_) {
5583 #line 299 "gsmmap.cnf"
5584
5585         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5586   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5587                                    gsm_map_sm_MO_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Arg);
5588
5589
5590         if (!actx->value_ptr)
5591                 return offset;
5592         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5593
5594
5595
5596   return offset;
5597 }
5598
5599
5600 static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Res_sequence[] = {
5601   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5602   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5603   { NULL, 0, 0, 0, NULL }
5604 };
5605
5606 static int
5607 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_) {
5608 #line 308 "gsmmap.cnf"
5609
5610         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5611   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5612                                    gsm_map_sm_MO_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Res);
5613
5614
5615         if (!actx->value_ptr)
5616                 return offset;
5617         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5618
5619
5620
5621   return offset;
5622 }
5623
5624
5625 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Arg_sequence[] = {
5626   { &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 },
5627   { &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 },
5628   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5629   { &hf_gsm_map_sm_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
5630   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5631   { NULL, 0, 0, 0, NULL }
5632 };
5633
5634 static int
5635 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_) {
5636 #line 317 "gsmmap.cnf"
5637
5638         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5639   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5640                                    gsm_map_sm_MT_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Arg);
5641
5642
5643         if (!actx->value_ptr)
5644                 return offset;
5645         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5646
5647
5648
5649   return offset;
5650 }
5651
5652
5653 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Res_sequence[] = {
5654   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5655   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5656   { NULL, 0, 0, 0, NULL }
5657 };
5658
5659 static int
5660 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_) {
5661 #line 326 "gsmmap.cnf"
5662
5663         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5664   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5665                                    gsm_map_sm_MT_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Res);
5666
5667
5668         if (!actx->value_ptr)
5669                 return offset;
5670         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5671
5672
5673
5674   return offset;
5675 }
5676
5677
5678 static const value_string gsm_map_sm_SM_DeliveryOutcome_vals[] = {
5679   {   0, "memoryCapacityExceeded" },
5680   {   1, "absentSubscriber" },
5681   {   2, "successfulTransfer" },
5682   { 0, NULL }
5683 };
5684
5685
5686 static int
5687 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_) {
5688   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5689                                   NULL);
5690
5691   return offset;
5692 }
5693
5694
5695 static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusArg_sequence[] = {
5696   { &hf_gsm_map_sm_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5697   { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
5698   { &hf_gsm_map_sm_sm_DeliveryOutcome, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
5699   { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5700   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5701   { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5702   { &hf_gsm_map_sm_deliveryOutcomeIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5703   { &hf_gsm_map_sm_additionalSM_DeliveryOutcome, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
5704   { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5705   { &hf_gsm_map_sm_ip_sm_gw_Indicator, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5706   { &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 },
5707   { &hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5708   { NULL, 0, 0, 0, NULL }
5709 };
5710
5711 static int
5712 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_) {
5713   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5714                                    gsm_map_sm_ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusArg);
5715
5716   return offset;
5717 }
5718
5719
5720 static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusRes_sequence[] = {
5721   { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5722   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5723   { NULL, 0, 0, 0, NULL }
5724 };
5725
5726 static int
5727 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_) {
5728   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5729                                    gsm_map_sm_ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusRes);
5730
5731   return offset;
5732 }
5733
5734
5735 static const ber_sequence_t gsm_map_sm_AlertServiceCentreArg_sequence[] = {
5736   { &hf_gsm_map_sm_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5737   { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
5738   { NULL, 0, 0, 0, NULL }
5739 };
5740
5741 static int
5742 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_) {
5743   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5744                                    gsm_map_sm_AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_AlertServiceCentreArg);
5745
5746   return offset;
5747 }
5748
5749
5750 static const asn_namedbit gsm_map_sm_MW_Status_bits[] = {
5751   {  0, &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded, -1, -1, "sc-AddressNotIncluded", NULL },
5752   {  1, &hf_gsm_map_sm_MW_Status_mnrf_Set, -1, -1, "mnrf-Set", NULL },
5753   {  2, &hf_gsm_map_sm_MW_Status_mcef_Set, -1, -1, "mcef-Set", NULL },
5754   {  3, &hf_gsm_map_sm_MW_Status_mnrg_Set, -1, -1, "mnrg-Set", NULL },
5755   { 0, NULL, 0, 0, NULL, NULL }
5756 };
5757
5758 static int
5759 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_) {
5760   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5761                                     gsm_map_sm_MW_Status_bits, hf_index, ett_gsm_map_sm_MW_Status,
5762                                     NULL);
5763
5764   return offset;
5765 }
5766
5767
5768 static const ber_sequence_t gsm_map_sm_InformServiceCentreArg_sequence[] = {
5769   { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5770   { &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 },
5771   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5772   { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5773   { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5774   { NULL, 0, 0, 0, NULL }
5775 };
5776
5777 static int
5778 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_) {
5779   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5780                                    gsm_map_sm_InformServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_InformServiceCentreArg);
5781
5782   return offset;
5783 }
5784
5785
5786 static const value_string gsm_map_sm_AlertReason_vals[] = {
5787   {   0, "ms-Present" },
5788   {   1, "memoryAvailable" },
5789   { 0, NULL }
5790 };
5791
5792
5793 static int
5794 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_) {
5795   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5796                                   NULL);
5797
5798   return offset;
5799 }
5800
5801
5802 static const ber_sequence_t gsm_map_sm_ReadyForSM_Arg_sequence[] = {
5803   { &hf_gsm_map_sm_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5804   { &hf_gsm_map_sm_alertReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_AlertReason },
5805   { &hf_gsm_map_sm_alertReasonIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
5806   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5807   { &hf_gsm_map_sm_additionalAlertReasonIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5808   { NULL, 0, 0, 0, NULL }
5809 };
5810
5811 static int
5812 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_) {
5813   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5814                                    gsm_map_sm_ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Arg);
5815
5816   return offset;
5817 }
5818
5819
5820 static const ber_sequence_t gsm_map_sm_ReadyForSM_Res_sequence[] = {
5821   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5822   { NULL, 0, 0, 0, NULL }
5823 };
5824
5825 static int
5826 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_) {
5827   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5828                                    gsm_map_sm_ReadyForSM_Res_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Res);
5829
5830   return offset;
5831 }
5832
5833
5834 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence[] = {
5835   { &hf_gsm_map_sm_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference },
5836   { &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 },
5837   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5838   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5839   { NULL, 0, 0, 0, NULL }
5840 };
5841
5842 static int
5843 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_) {
5844 #line 335 "gsmmap.cnf"
5845
5846         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5847   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5848                                    gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg);
5849
5850
5851         if (!actx->value_ptr)
5852                 return offset;
5853         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5854
5855
5856
5857   return offset;
5858 }
5859
5860
5861 static const ber_sequence_t gsm_map_sm_DispatcherList_sequence_of[1] = {
5862   { &hf_gsm_map_sm_DispatcherList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5863 };
5864
5865 static int
5866 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_) {
5867   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5868                                       gsm_map_sm_DispatcherList_sequence_of, hf_index, ett_gsm_map_sm_DispatcherList);
5869
5870   return offset;
5871 }
5872
5873
5874 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence[] = {
5875   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
5876   { &hf_gsm_map_sm_dispatcherList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_DispatcherList },
5877   { &hf_gsm_map_sm_ongoingCall, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
5878   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5879   { NULL, 0, 0, 0, NULL }
5880 };
5881
5882 static int
5883 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_) {
5884 #line 344 "gsmmap.cnf"
5885
5886         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5887   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5888                                    gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Res);
5889
5890
5891         if (!actx->value_ptr)
5892                 return offset;
5893         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5894
5895
5896
5897   return offset;
5898 }
5899
5900
5901 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
5902
5903
5904
5905 static int
5906 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_) {
5907   offset = dissect_ber_octet_string(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_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_) {
5917   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5918                                                 NULL);
5919
5920   return offset;
5921 }
5922
5923
5924
5925 static int
5926 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_) {
5927   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5928                                        NULL);
5929
5930   return offset;
5931 }
5932
5933
5934 static const value_string gsm_map_om_TraceDepth_vals[] = {
5935   {   0, "minimum" },
5936   {   1, "medium" },
5937   {   2, "maximum" },
5938   { 0, NULL }
5939 };
5940
5941
5942 static int
5943 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_) {
5944   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5945                                   NULL);
5946
5947   return offset;
5948 }
5949
5950
5951 static const ber_sequence_t gsm_map_om_TraceDepthList_sequence[] = {
5952   { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5953   { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5954   { &hf_gsm_map_om_sgsn_TraceDepth, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5955   { &hf_gsm_map_om_ggsn_TraceDepth, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5956   { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5957   { &hf_gsm_map_om_bmsc_TraceDepth, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5958   { NULL, 0, 0, 0, NULL }
5959 };
5960
5961 static int
5962 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_) {
5963   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5964                                    gsm_map_om_TraceDepthList_sequence, hf_index, ett_gsm_map_om_TraceDepthList);
5965
5966   return offset;
5967 }
5968
5969
5970 static const asn_namedbit gsm_map_om_TraceNE_TypeList_bits[] = {
5971   {  0, &hf_gsm_map_om_TraceNE_TypeList_msc_s, -1, -1, "msc-s", NULL },
5972   {  1, &hf_gsm_map_om_TraceNE_TypeList_mgw, -1, -1, "mgw", NULL },
5973   {  2, &hf_gsm_map_om_TraceNE_TypeList_sgsn, -1, -1, "sgsn", NULL },
5974   {  3, &hf_gsm_map_om_TraceNE_TypeList_ggsn, -1, -1, "ggsn", NULL },
5975   {  4, &hf_gsm_map_om_TraceNE_TypeList_rnc, -1, -1, "rnc", NULL },
5976   {  5, &hf_gsm_map_om_TraceNE_TypeList_bm_sc, -1, -1, "bm-sc", NULL },
5977   { 0, NULL, 0, 0, NULL, NULL }
5978 };
5979
5980 static int
5981 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_) {
5982   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5983                                     gsm_map_om_TraceNE_TypeList_bits, hf_index, ett_gsm_map_om_TraceNE_TypeList,
5984                                     NULL);
5985
5986   return offset;
5987 }
5988
5989
5990 static const asn_namedbit gsm_map_om_MSC_S_InterfaceList_bits[] = {
5991   {  0, &hf_gsm_map_om_MSC_S_InterfaceList_a, -1, -1, "a", NULL },
5992   {  1, &hf_gsm_map_om_MSC_S_InterfaceList_iu, -1, -1, "iu", NULL },
5993   {  2, &hf_gsm_map_om_MSC_S_InterfaceList_mc, -1, -1, "mc", NULL },
5994   {  3, &hf_gsm_map_om_MSC_S_InterfaceList_map_g, -1, -1, "map-g", NULL },
5995   {  4, &hf_gsm_map_om_MSC_S_InterfaceList_map_b, -1, -1, "map-b", NULL },
5996   {  5, &hf_gsm_map_om_MSC_S_InterfaceList_map_e, -1, -1, "map-e", NULL },
5997   {  6, &hf_gsm_map_om_MSC_S_InterfaceList_map_f, -1, -1, "map-f", NULL },
5998   {  7, &hf_gsm_map_om_MSC_S_InterfaceList_cap, -1, -1, "cap", NULL },
5999   {  8, &hf_gsm_map_om_MSC_S_InterfaceList_map_d, -1, -1, "map-d", NULL },
6000   {  9, &hf_gsm_map_om_MSC_S_InterfaceList_map_c, -1, -1, "map-c", NULL },
6001   { 0, NULL, 0, 0, NULL, NULL }
6002 };
6003
6004 static int
6005 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_) {
6006   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6007                                     gsm_map_om_MSC_S_InterfaceList_bits, hf_index, ett_gsm_map_om_MSC_S_InterfaceList,
6008                                     NULL);
6009
6010   return offset;
6011 }
6012
6013
6014 static const asn_namedbit gsm_map_om_MGW_InterfaceList_bits[] = {
6015   {  0, &hf_gsm_map_om_MGW_InterfaceList_mc, -1, -1, "mc", NULL },
6016   {  1, &hf_gsm_map_om_MGW_InterfaceList_nb_up, -1, -1, "nb-up", NULL },
6017   {  2, &hf_gsm_map_om_MGW_InterfaceList_iu_up, -1, -1, "iu-up", NULL },
6018   { 0, NULL, 0, 0, NULL, NULL }
6019 };
6020
6021 static int
6022 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_) {
6023   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6024                                     gsm_map_om_MGW_InterfaceList_bits, hf_index, ett_gsm_map_om_MGW_InterfaceList,
6025                                     NULL);
6026
6027   return offset;
6028 }
6029
6030
6031 static const asn_namedbit gsm_map_om_SGSN_InterfaceList_bits[] = {
6032   {  0, &hf_gsm_map_om_SGSN_InterfaceList_gb, -1, -1, "gb", NULL },
6033   {  1, &hf_gsm_map_om_SGSN_InterfaceList_iu, -1, -1, "iu", NULL },
6034   {  2, &hf_gsm_map_om_SGSN_InterfaceList_gn, -1, -1, "gn", NULL },
6035   {  3, &hf_gsm_map_om_SGSN_InterfaceList_map_gr, -1, -1, "map-gr", NULL },
6036   {  4, &hf_gsm_map_om_SGSN_InterfaceList_map_gd, -1, -1, "map-gd", NULL },
6037   {  5, &hf_gsm_map_om_SGSN_InterfaceList_map_gf, -1, -1, "map-gf", NULL },
6038   {  6, &hf_gsm_map_om_SGSN_InterfaceList_gs, -1, -1, "gs", NULL },
6039   {  7, &hf_gsm_map_om_SGSN_InterfaceList_ge, -1, -1, "ge", NULL },
6040   { 0, NULL, 0, 0, NULL, NULL }
6041 };
6042
6043 static int
6044 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_) {
6045   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6046                                     gsm_map_om_SGSN_InterfaceList_bits, hf_index, ett_gsm_map_om_SGSN_InterfaceList,
6047                                     NULL);
6048
6049   return offset;
6050 }
6051
6052
6053 static const asn_namedbit gsm_map_om_GGSN_InterfaceList_bits[] = {
6054   {  0, &hf_gsm_map_om_GGSN_InterfaceList_gn, -1, -1, "gn", NULL },
6055   {  1, &hf_gsm_map_om_GGSN_InterfaceList_gi, -1, -1, "gi", NULL },
6056   {  2, &hf_gsm_map_om_GGSN_InterfaceList_gmb, -1, -1, "gmb", NULL },
6057   { 0, NULL, 0, 0, NULL, NULL }
6058 };
6059
6060 static int
6061 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_) {
6062   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6063                                     gsm_map_om_GGSN_InterfaceList_bits, hf_index, ett_gsm_map_om_GGSN_InterfaceList,
6064                                     NULL);
6065
6066   return offset;
6067 }
6068
6069
6070 static const asn_namedbit gsm_map_om_RNC_InterfaceList_bits[] = {
6071   {  0, &hf_gsm_map_om_RNC_InterfaceList_iu, -1, -1, "iu", NULL },
6072   {  1, &hf_gsm_map_om_RNC_InterfaceList_iur, -1, -1, "iur", NULL },
6073   {  2, &hf_gsm_map_om_RNC_InterfaceList_iub, -1, -1, "iub", NULL },
6074   {  3, &hf_gsm_map_om_RNC_InterfaceList_uu, -1, -1, "uu", NULL },
6075   { 0, NULL, 0, 0, NULL, NULL }
6076 };
6077
6078 static int
6079 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_) {
6080   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6081                                     gsm_map_om_RNC_InterfaceList_bits, hf_index, ett_gsm_map_om_RNC_InterfaceList,
6082                                     NULL);
6083
6084   return offset;
6085 }
6086
6087
6088 static const asn_namedbit gsm_map_om_BMSC_InterfaceList_bits[] = {
6089   {  0, &hf_gsm_map_om_BMSC_InterfaceList_gmb, -1, -1, "gmb", NULL },
6090   { 0, NULL, 0, 0, NULL, NULL }
6091 };
6092
6093 static int
6094 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_) {
6095   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6096                                     gsm_map_om_BMSC_InterfaceList_bits, hf_index, ett_gsm_map_om_BMSC_InterfaceList,
6097                                     NULL);
6098
6099   return offset;
6100 }
6101
6102
6103 static const ber_sequence_t gsm_map_om_TraceInterfaceList_sequence[] = {
6104   { &hf_gsm_map_om_msc_s_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList },
6105   { &hf_gsm_map_om_mgw_List , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList },
6106   { &hf_gsm_map_om_sgsn_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_InterfaceList },
6107   { &hf_gsm_map_om_ggsn_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_InterfaceList },
6108   { &hf_gsm_map_om_rnc_List , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList },
6109   { &hf_gsm_map_om_bmsc_List, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_InterfaceList },
6110   { NULL, 0, 0, 0, NULL }
6111 };
6112
6113 static int
6114 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_) {
6115   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6116                                    gsm_map_om_TraceInterfaceList_sequence, hf_index, ett_gsm_map_om_TraceInterfaceList);
6117
6118   return offset;
6119 }
6120
6121
6122 static const asn_namedbit gsm_map_om_MSC_S_EventList_bits[] = {
6123   {  0, &hf_gsm_map_om_MSC_S_EventList_mo_mtCall, -1, -1, "mo-mtCall", NULL },
6124   {  1, &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL },
6125   {  2, &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach, -1, -1, "lu-imsiAttach-imsiDetach", NULL },
6126   {  3, &hf_gsm_map_om_MSC_S_EventList_handovers, -1, -1, "handovers", NULL },
6127   {  4, &hf_gsm_map_om_MSC_S_EventList_ss, -1, -1, "ss", NULL },
6128   { 0, NULL, 0, 0, NULL, NULL }
6129 };
6130
6131 static int
6132 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_) {
6133   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6134                                     gsm_map_om_MSC_S_EventList_bits, hf_index, ett_gsm_map_om_MSC_S_EventList,
6135                                     NULL);
6136
6137   return offset;
6138 }
6139
6140
6141 static const asn_namedbit gsm_map_om_MGW_EventList_bits[] = {
6142   {  0, &hf_gsm_map_om_MGW_EventList_context, -1, -1, "context", NULL },
6143   { 0, NULL, 0, 0, NULL, NULL }
6144 };
6145
6146 static int
6147 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_) {
6148   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6149                                     gsm_map_om_MGW_EventList_bits, hf_index, ett_gsm_map_om_MGW_EventList,
6150                                     NULL);
6151
6152   return offset;
6153 }
6154
6155
6156 static const asn_namedbit gsm_map_om_SGSN_EventList_bits[] = {
6157   {  0, &hf_gsm_map_om_SGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL },
6158   {  1, &hf_gsm_map_om_SGSN_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL },
6159   {  2, &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach, -1, -1, "rau-gprsAttach-gprsDetach", NULL },
6160   {  3, &hf_gsm_map_om_SGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL },
6161   { 0, NULL, 0, 0, NULL, NULL }
6162 };
6163
6164 static int
6165 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_) {
6166   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6167                                     gsm_map_om_SGSN_EventList_bits, hf_index, ett_gsm_map_om_SGSN_EventList,
6168                                     NULL);
6169
6170   return offset;
6171 }
6172
6173
6174 static const asn_namedbit gsm_map_om_GGSN_EventList_bits[] = {
6175   {  0, &hf_gsm_map_om_GGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL },
6176   {  1, &hf_gsm_map_om_GGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL },
6177   { 0, NULL, 0, 0, NULL, NULL }
6178 };
6179
6180 static int
6181 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_) {
6182   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6183                                     gsm_map_om_GGSN_EventList_bits, hf_index, ett_gsm_map_om_GGSN_EventList,
6184                                     NULL);
6185
6186   return offset;
6187 }
6188
6189
6190 static const asn_namedbit gsm_map_om_BMSC_EventList_bits[] = {
6191   {  0, &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation, -1, -1, "mbmsMulticastServiceActivation", NULL },
6192   { 0, NULL, 0, 0, NULL, NULL }
6193 };
6194
6195 static int
6196 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_) {
6197   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6198                                     gsm_map_om_BMSC_EventList_bits, hf_index, ett_gsm_map_om_BMSC_EventList,
6199                                     NULL);
6200
6201   return offset;
6202 }
6203
6204
6205 static const ber_sequence_t gsm_map_om_TraceEventList_sequence[] = {
6206   { &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 },
6207   { &hf_gsm_map_om_mgw_List_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList },
6208   { &hf_gsm_map_om_sgsn_List_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_EventList },
6209   { &hf_gsm_map_om_ggsn_List_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_EventList },
6210   { &hf_gsm_map_om_bmsc_List_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_EventList },
6211   { NULL, 0, 0, 0, NULL }
6212 };
6213
6214 static int
6215 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_) {
6216   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6217                                    gsm_map_om_TraceEventList_sequence, hf_index, ett_gsm_map_om_TraceEventList);
6218
6219   return offset;
6220 }
6221
6222
6223 static const ber_sequence_t gsm_map_om_ActivateTraceModeArg_sequence[] = {
6224   { &hf_gsm_map_om_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
6225   { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
6226   { &hf_gsm_map_om_traceType, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
6227   { &hf_gsm_map_om_omc_Id   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
6228   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6229   { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
6230   { &hf_gsm_map_om_traceDepthList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthList },
6231   { &hf_gsm_map_om_traceNE_TypeList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceNE_TypeList },
6232   { &hf_gsm_map_om_traceInterfaceList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceInterfaceList },
6233   { &hf_gsm_map_om_traceEventList, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceEventList },
6234   { NULL, 0, 0, 0, NULL }
6235 };
6236
6237 static int
6238 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_) {
6239   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6240                                    gsm_map_om_ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeArg);
6241
6242   return offset;
6243 }
6244
6245
6246
6247 static int
6248 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_) {
6249   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6250                                        NULL);
6251
6252   return offset;
6253 }
6254
6255
6256 static const ber_sequence_t gsm_map_om_TracePropagationList_sequence[] = {
6257   { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
6258   { &hf_gsm_map_om_traceType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
6259   { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
6260   { &hf_gsm_map_om_traceRecordingSessionReference, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceRecordingSessionReference },
6261   { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6262   { &hf_gsm_map_om_rnc_InterfaceList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList },
6263   { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6264   { &hf_gsm_map_om_msc_s_InterfaceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList },
6265   { &hf_gsm_map_om_msc_s_EventList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_EventList },
6266   { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6267   { &hf_gsm_map_om_mgw_InterfaceList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList },
6268   { &hf_gsm_map_om_mgw_EventList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList },
6269   { NULL, 0, 0, 0, NULL }
6270 };
6271
6272 static int
6273 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_) {
6274   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6275                                    gsm_map_om_TracePropagationList_sequence, hf_index, ett_gsm_map_om_TracePropagationList);
6276
6277   return offset;
6278 }
6279
6280
6281
6282 static int
6283 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_) {
6284   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6285
6286   return offset;
6287 }
6288
6289
6290 static const ber_sequence_t gsm_map_om_ActivateTraceModeRes_sequence[] = {
6291   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6292   { &hf_gsm_map_om_traceSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_NULL },
6293   { NULL, 0, 0, 0, NULL }
6294 };
6295
6296 static int
6297 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_) {
6298   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6299                                    gsm_map_om_ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeRes);
6300
6301   return offset;
6302 }
6303
6304
6305 static const ber_sequence_t gsm_map_om_DeactivateTraceModeArg_sequence[] = {
6306   { &hf_gsm_map_om_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
6307   { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
6308   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6309   { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
6310   { NULL, 0, 0, 0, NULL }
6311 };
6312
6313 static int
6314 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_) {
6315   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6316                                    gsm_map_om_DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeArg);
6317
6318   return offset;
6319 }
6320
6321
6322 static const ber_sequence_t gsm_map_om_DeactivateTraceModeRes_sequence[] = {
6323   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6324   { NULL, 0, 0, 0, NULL }
6325 };
6326
6327 static int
6328 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_) {
6329   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6330                                    gsm_map_om_DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeRes);
6331
6332   return offset;
6333 }
6334
6335
6336 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
6337
6338
6339 static const asn_namedbit gsm_map_ms_SupportedCamelPhases_bits[] = {
6340   {  0, &hf_gsm_map_ms_SupportedCamelPhases_phase1, -1, -1, "phase1", NULL },
6341   {  1, &hf_gsm_map_ms_SupportedCamelPhases_phase2, -1, -1, "phase2", NULL },
6342   {  2, &hf_gsm_map_ms_SupportedCamelPhases_phase3, -1, -1, "phase3", NULL },
6343   {  3, &hf_gsm_map_ms_SupportedCamelPhases_phase4, -1, -1, "phase4", NULL },
6344   { 0, NULL, 0, 0, NULL, NULL }
6345 };
6346
6347 int
6348 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_) {
6349   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6350                                     gsm_map_ms_SupportedCamelPhases_bits, hf_index, ett_gsm_map_ms_SupportedCamelPhases,
6351                                     NULL);
6352
6353   return offset;
6354 }
6355
6356
6357
6358 static int
6359 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_) {
6360   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6361
6362   return offset;
6363 }
6364
6365
6366 static const value_string gsm_map_ms_IST_SupportIndicator_vals[] = {
6367   {   0, "basicISTSupported" },
6368   {   1, "istCommandSupported" },
6369   { 0, NULL }
6370 };
6371
6372
6373 static int
6374 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_) {
6375   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6376                                   NULL);
6377
6378   return offset;
6379 }
6380
6381
6382
6383 static int
6384 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_) {
6385   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6386                                        NULL);
6387
6388   return offset;
6389 }
6390
6391
6392 static const value_string gsm_map_ms_SuperChargerInfo_vals[] = {
6393   {   0, "sendSubscriberData" },
6394   {   1, "subscriberDataStored" },
6395   { 0, NULL }
6396 };
6397
6398 static const ber_choice_t gsm_map_ms_SuperChargerInfo_choice[] = {
6399   {   0, &hf_gsm_map_ms_sendSubscriberData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6400   {   1, &hf_gsm_map_ms_subscriberDataStored, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator },
6401   { 0, NULL, 0, 0, 0, NULL }
6402 };
6403
6404 static int
6405 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_) {
6406   offset = dissect_ber_choice(actx, tree, tvb, offset,
6407                                  gsm_map_ms_SuperChargerInfo_choice, hf_index, ett_gsm_map_ms_SuperChargerInfo,
6408                                  NULL);
6409
6410   return offset;
6411 }
6412
6413
6414 static const asn_namedbit gsm_map_ms_SupportedLCS_CapabilitySets_bits[] = {
6415   {  0, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1, -1, -1, "lcsCapabilitySet1", NULL },
6416   {  1, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2, -1, -1, "lcsCapabilitySet2", NULL },
6417   {  2, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3, -1, -1, "lcsCapabilitySet3", NULL },
6418   {  3, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4, -1, -1, "lcsCapabilitySet4", NULL },
6419   {  4, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5, -1, -1, "lcsCapabilitySet5", NULL },
6420   { 0, NULL, 0, 0, NULL, NULL }
6421 };
6422
6423 static int
6424 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_) {
6425   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6426                                     gsm_map_ms_SupportedLCS_CapabilitySets_bits, hf_index, ett_gsm_map_ms_SupportedLCS_CapabilitySets,
6427                                     NULL);
6428
6429   return offset;
6430 }
6431
6432
6433 static const asn_namedbit gsm_map_ms_OfferedCamel4CSIs_bits[] = {
6434   {  0, &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi, -1, -1, "o-csi", NULL },
6435   {  1, &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi, -1, -1, "d-csi", NULL },
6436   {  2, &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi, -1, -1, "vt-csi", NULL },
6437   {  3, &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi, -1, -1, "t-csi", NULL },
6438   {  4, &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi, -1, -1, "mt-sms-csi", NULL },
6439   {  5, &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi, -1, -1, "mg-csi", NULL },
6440   {  6, &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements, -1, -1, "psi-enhancements", NULL },
6441   { 0, NULL, 0, 0, NULL, NULL }
6442 };
6443
6444 static int
6445 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_) {
6446   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6447                                     gsm_map_ms_OfferedCamel4CSIs_bits, hf_index, ett_gsm_map_ms_OfferedCamel4CSIs,
6448                                     NULL);
6449
6450   return offset;
6451 }
6452
6453
6454 static const asn_namedbit gsm_map_ms_SupportedRAT_Types_bits[] = {
6455   {  0, &hf_gsm_map_ms_SupportedRAT_Types_utran, -1, -1, "utran", NULL },
6456   {  1, &hf_gsm_map_ms_SupportedRAT_Types_geran, -1, -1, "geran", NULL },
6457   {  2, &hf_gsm_map_ms_SupportedRAT_Types_gan, -1, -1, "gan", NULL },
6458   {  3, &hf_gsm_map_ms_SupportedRAT_Types_i_hspa_evolution, -1, -1, "i-hspa-evolution", NULL },
6459   {  4, &hf_gsm_map_ms_SupportedRAT_Types_e_utran, -1, -1, "e-utran", NULL },
6460   { 0, NULL, 0, 0, NULL, NULL }
6461 };
6462
6463 static int
6464 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_) {
6465   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6466                                     gsm_map_ms_SupportedRAT_Types_bits, hf_index, ett_gsm_map_ms_SupportedRAT_Types,
6467                                     NULL);
6468
6469   return offset;
6470 }
6471
6472
6473 static const ber_sequence_t gsm_map_ms_VLR_Capability_sequence[] = {
6474   { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
6475   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6476   { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6477   { &hf_gsm_map_ms_istSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator },
6478   { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo },
6479   { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6480   { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
6481   { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
6482   { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types },
6483   { &hf_gsm_map_ms_longGroupID_Supported, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6484   { NULL, 0, 0, 0, NULL }
6485 };
6486
6487 static int
6488 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_) {
6489   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6490                                    gsm_map_ms_VLR_Capability_sequence, hf_index, ett_gsm_map_ms_VLR_Capability);
6491
6492   return offset;
6493 }
6494
6495
6496
6497 int
6498 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_) {
6499 #line 524 "gsmmap.cnf"
6500
6501         tvbuff_t        *parameter_tvb;
6502         guint8          octet;
6503         proto_tree *subtree;
6504
6505   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6506                                        &parameter_tvb);
6507
6508
6509         if (!parameter_tvb)
6510                 return offset;
6511         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_pdptypenumber);
6512
6513         octet = tvb_get_guint8(parameter_tvb,0);
6514         switch(octet){
6515         case 0x04: /* IPv4 */
6516                 proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE);
6517                 break;
6518         case 0x50: /* IPv4 */
6519                 proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE);
6520                 break;
6521         default:
6522                 break;
6523         }
6524
6525
6526
6527   return offset;
6528 }
6529
6530
6531 static const ber_sequence_t gsm_map_ms_ADD_Info_sequence[] = {
6532   { &hf_gsm_map_ms_imeisv   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
6533   { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6534   { NULL, 0, 0, 0, NULL }
6535 };
6536
6537 static int
6538 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_) {
6539   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6540                                    gsm_map_ms_ADD_Info_sequence, hf_index, ett_gsm_map_ms_ADD_Info);
6541
6542   return offset;
6543 }
6544
6545
6546
6547 static int
6548 dissect_gsm_map_ms_LAC(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_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6550                                        NULL);
6551
6552   return offset;
6553 }
6554
6555
6556 static const value_string gsm_map_ms_LocationArea_vals[] = {
6557   {   0, "laiFixedLength" },
6558   {   1, "lac" },
6559   { 0, NULL }
6560 };
6561
6562 static const ber_choice_t gsm_map_ms_LocationArea_choice[] = {
6563   {   0, &hf_gsm_map_ms_laiFixedLength, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
6564   {   1, &hf_gsm_map_ms_lac      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LAC },
6565   { 0, NULL, 0, 0, 0, NULL }
6566 };
6567
6568 static int
6569 dissect_gsm_map_ms_LocationArea(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6570   offset = dissect_ber_choice(actx, tree, tvb, offset,
6571                                  gsm_map_ms_LocationArea_choice, hf_index, ett_gsm_map_ms_LocationArea,
6572                                  NULL);
6573
6574   return offset;
6575 }
6576
6577
6578 static const ber_sequence_t gsm_map_ms_PagingArea_sequence_of[1] = {
6579   { &hf_gsm_map_ms_PagingArea_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_LocationArea },
6580 };
6581
6582 static int
6583 dissect_gsm_map_ms_PagingArea(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6584   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6585                                       gsm_map_ms_PagingArea_sequence_of, hf_index, ett_gsm_map_ms_PagingArea);
6586
6587   return offset;
6588 }
6589
6590
6591 static const ber_sequence_t gsm_map_ms_UpdateLocationArg_sequence[] = {
6592   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6593   { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6594   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6595   { &hf_gsm_map_ms_lmsi     , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
6596   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6597   { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability },
6598   { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6599   { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6600   { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
6601   { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info },
6602   { &hf_gsm_map_ms_pagingArea, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PagingArea },
6603   { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6604   { NULL, 0, 0, 0, NULL }
6605 };
6606
6607 static int
6608 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_) {
6609   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6610                                    gsm_map_ms_UpdateLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateLocationArg);
6611
6612   return offset;
6613 }
6614
6615
6616 static const ber_sequence_t gsm_map_ms_UpdateLocationRes_sequence[] = {
6617   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6618   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6619   { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
6620   { &hf_gsm_map_ms_pagingArea_Capability, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6621   { NULL, 0, 0, 0, NULL }
6622 };
6623
6624 static int
6625 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_) {
6626   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6627                                    gsm_map_ms_UpdateLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateLocationRes);
6628
6629   return offset;
6630 }
6631
6632
6633 static const value_string gsm_map_ms_CancellationType_vals[] = {
6634   {   0, "updateProcedure" },
6635   {   1, "subscriptionWithdraw" },
6636   { 0, NULL }
6637 };
6638
6639
6640 static int
6641 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_) {
6642   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6643                                   NULL);
6644
6645   return offset;
6646 }
6647
6648
6649 static const value_string gsm_map_ms_TypeOfUpdate_vals[] = {
6650   {   0, "sgsn-change" },
6651   {   1, "mme-change" },
6652   { 0, NULL }
6653 };
6654
6655
6656 static int
6657 dissect_gsm_map_ms_TypeOfUpdate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6658   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6659                                   NULL);
6660
6661   return offset;
6662 }
6663
6664
6665 static const ber_sequence_t gsm_map_ms_CancelLocationArg_U_sequence[] = {
6666   { &hf_gsm_map_ms_identity , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Identity },
6667   { &hf_gsm_map_ms_cancellationType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CancellationType },
6668   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6669   { &hf_gsm_map_ms_typeOfUpdate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TypeOfUpdate },
6670   { NULL, 0, 0, 0, NULL }
6671 };
6672
6673 static int
6674 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_) {
6675   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6676                                    gsm_map_ms_CancelLocationArg_U_sequence, hf_index, ett_gsm_map_ms_CancelLocationArg_U);
6677
6678   return offset;
6679 }
6680
6681
6682
6683 static int
6684 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_) {
6685   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6686                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_CancelLocationArg_U);
6687
6688   return offset;
6689 }
6690
6691
6692 static const ber_sequence_t gsm_map_ms_CancelLocationRes_sequence[] = {
6693   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6694   { NULL, 0, 0, 0, NULL }
6695 };
6696
6697 static int
6698 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_) {
6699   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6700                                    gsm_map_ms_CancelLocationRes_sequence, hf_index, ett_gsm_map_ms_CancelLocationRes);
6701
6702   return offset;
6703 }
6704
6705
6706 static const ber_sequence_t gsm_map_ms_PurgeMS_Arg_U_sequence[] = {
6707   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6708   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6709   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6710   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6711   { NULL, 0, 0, 0, NULL }
6712 };
6713
6714 static int
6715 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_) {
6716   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6717                                    gsm_map_ms_PurgeMS_Arg_U_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Arg_U);
6718
6719   return offset;
6720 }
6721
6722
6723
6724 static int
6725 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_) {
6726   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6727                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PurgeMS_Arg_U);
6728
6729   return offset;
6730 }
6731
6732
6733 static const ber_sequence_t gsm_map_ms_PurgeMS_Res_sequence[] = {
6734   { &hf_gsm_map_ms_freezeTMSI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6735   { &hf_gsm_map_ms_freezeP_TMSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6736   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6737   { &hf_gsm_map_ms_freezeM_TMSI, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6738   { NULL, 0, 0, 0, NULL }
6739 };
6740
6741 static int
6742 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_) {
6743   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6744                                    gsm_map_ms_PurgeMS_Res_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Res);
6745
6746   return offset;
6747 }
6748
6749
6750
6751 static int
6752 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_) {
6753   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6754                                                 NULL);
6755
6756   return offset;
6757 }
6758
6759
6760
6761 static int
6762 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_) {
6763   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6764                                                 NULL);
6765
6766   return offset;
6767 }
6768
6769
6770 static const ber_sequence_t gsm_map_ms_SendIdentificationArg_sequence[] = {
6771   { &hf_gsm_map_ms_tmsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_TMSI },
6772   { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
6773   { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
6774   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6775   { &hf_gsm_map_ms_msc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6776   { &hf_gsm_map_ms_previous_LAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
6777   { &hf_gsm_map_ms_hopCounter, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_HopCounter },
6778   { NULL, 0, 0, 0, NULL }
6779 };
6780
6781 static int
6782 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_) {
6783   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6784                                    gsm_map_ms_SendIdentificationArg_sequence, hf_index, ett_gsm_map_ms_SendIdentificationArg);
6785
6786   return offset;
6787 }
6788
6789
6790
6791 static int
6792 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_) {
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_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_) {
6803   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6804                                        NULL);
6805
6806   return offset;
6807 }
6808
6809
6810
6811 static int
6812 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_) {
6813   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6814                                        NULL);
6815
6816   return offset;
6817 }
6818
6819
6820 static const ber_sequence_t gsm_map_ms_AuthenticationTriplet_sequence[] = {
6821   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
6822   { &hf_gsm_map_ms_sres     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SRES },
6823   { &hf_gsm_map_ms_kc       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc },
6824   { NULL, 0, 0, 0, NULL }
6825 };
6826
6827 static int
6828 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_) {
6829   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6830                                    gsm_map_ms_AuthenticationTriplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationTriplet);
6831
6832   return offset;
6833 }
6834
6835
6836 static const ber_sequence_t gsm_map_ms_TripletList_sequence_of[1] = {
6837   { &hf_gsm_map_ms_TripletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationTriplet },
6838 };
6839
6840 static int
6841 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_) {
6842   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6843                                       gsm_map_ms_TripletList_sequence_of, hf_index, ett_gsm_map_ms_TripletList);
6844
6845   return offset;
6846 }
6847
6848
6849
6850 static int
6851 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_) {
6852   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6853                                        NULL);
6854
6855   return offset;
6856 }
6857
6858
6859
6860 static int
6861 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_) {
6862   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6863                                        NULL);
6864
6865   return offset;
6866 }
6867
6868
6869
6870 static int
6871 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_) {
6872   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6873                                        NULL);
6874
6875   return offset;
6876 }
6877
6878
6879
6880 static int
6881 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_) {
6882   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6883                                        NULL);
6884
6885   return offset;
6886 }
6887
6888
6889 static const ber_sequence_t gsm_map_ms_AuthenticationQuintuplet_sequence[] = {
6890   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
6891   { &hf_gsm_map_ms_xres     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_XRES },
6892   { &hf_gsm_map_ms_ck       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK },
6893   { &hf_gsm_map_ms_ik       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK },
6894   { &hf_gsm_map_ms_autn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTN },
6895   { NULL, 0, 0, 0, NULL }
6896 };
6897
6898 static int
6899 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_) {
6900   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6901                                    gsm_map_ms_AuthenticationQuintuplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationQuintuplet);
6902
6903   return offset;
6904 }
6905
6906
6907 static const ber_sequence_t gsm_map_ms_QuintupletList_sequence_of[1] = {
6908   { &hf_gsm_map_ms_QuintupletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationQuintuplet },
6909 };
6910
6911 static int
6912 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_) {
6913   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6914                                       gsm_map_ms_QuintupletList_sequence_of, hf_index, ett_gsm_map_ms_QuintupletList);
6915
6916   return offset;
6917 }
6918
6919
6920 static const value_string gsm_map_ms_AuthenticationSetList_vals[] = {
6921   {   0, "tripletList" },
6922   {   1, "quintupletList" },
6923   { 0, NULL }
6924 };
6925
6926 static const ber_choice_t gsm_map_ms_AuthenticationSetList_choice[] = {
6927   {   0, &hf_gsm_map_ms_tripletList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TripletList },
6928   {   1, &hf_gsm_map_ms_quintupletList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QuintupletList },
6929   { 0, NULL, 0, 0, 0, NULL }
6930 };
6931
6932 static int
6933 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_) {
6934   offset = dissect_ber_choice(actx, tree, tvb, offset,
6935                                  gsm_map_ms_AuthenticationSetList_choice, hf_index, ett_gsm_map_ms_AuthenticationSetList,
6936                                  NULL);
6937
6938   return offset;
6939 }
6940
6941
6942
6943 static int
6944 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_) {
6945   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6946                                        NULL);
6947
6948   return offset;
6949 }
6950
6951
6952 static const ber_sequence_t gsm_map_ms_GSM_SecurityContextData_sequence[] = {
6953   { &hf_gsm_map_ms_kc       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc },
6954   { &hf_gsm_map_ms_cksn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Cksn },
6955   { NULL, 0, 0, 0, NULL }
6956 };
6957
6958 static int
6959 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_) {
6960   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6961                                    gsm_map_ms_GSM_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_GSM_SecurityContextData);
6962
6963   return offset;
6964 }
6965
6966
6967
6968 static int
6969 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_) {
6970   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6971                                        NULL);
6972
6973   return offset;
6974 }
6975
6976
6977 static const ber_sequence_t gsm_map_ms_UMTS_SecurityContextData_sequence[] = {
6978   { &hf_gsm_map_ms_ck       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK },
6979   { &hf_gsm_map_ms_ik       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK },
6980   { &hf_gsm_map_ms_ksi      , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_KSI },
6981   { NULL, 0, 0, 0, NULL }
6982 };
6983
6984 static int
6985 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_) {
6986   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6987                                    gsm_map_ms_UMTS_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_UMTS_SecurityContextData);
6988
6989   return offset;
6990 }
6991
6992
6993 static const value_string gsm_map_ms_CurrentSecurityContext_vals[] = {
6994   {   0, "gsm-SecurityContextData" },
6995   {   1, "umts-SecurityContextData" },
6996   { 0, NULL }
6997 };
6998
6999 static const ber_choice_t gsm_map_ms_CurrentSecurityContext_choice[] = {
7000   {   0, &hf_gsm_map_ms_gsm_SecurityContextData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSM_SecurityContextData },
7001   {   1, &hf_gsm_map_ms_umts_SecurityContextData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UMTS_SecurityContextData },
7002   { 0, NULL, 0, 0, 0, NULL }
7003 };
7004
7005 static int
7006 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_) {
7007   offset = dissect_ber_choice(actx, tree, tvb, offset,
7008                                  gsm_map_ms_CurrentSecurityContext_choice, hf_index, ett_gsm_map_ms_CurrentSecurityContext,
7009                                  NULL);
7010
7011   return offset;
7012 }
7013
7014
7015 static const ber_sequence_t gsm_map_ms_SendIdentificationRes_U_sequence[] = {
7016   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
7017   { &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 },
7018   { &hf_gsm_map_ms_currentSecurityContext, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_CurrentSecurityContext },
7019   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7020   { NULL, 0, 0, 0, NULL }
7021 };
7022
7023 static int
7024 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_) {
7025   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7026                                    gsm_map_ms_SendIdentificationRes_U_sequence, hf_index, ett_gsm_map_ms_SendIdentificationRes_U);
7027
7028   return offset;
7029 }
7030
7031
7032
7033 static int
7034 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_) {
7035   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7036                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendIdentificationRes_U);
7037
7038   return offset;
7039 }
7040
7041
7042
7043 static int
7044 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_) {
7045   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7046                                        NULL);
7047
7048   return offset;
7049 }
7050
7051
7052 static const value_string gsm_map_ms_FailureCause_vals[] = {
7053   {   0, "wrongUserResponse" },
7054   {   1, "wrongNetworkSignature" },
7055   { 0, NULL }
7056 };
7057
7058
7059 static int
7060 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_) {
7061   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7062                                   NULL);
7063
7064   return offset;
7065 }
7066
7067
7068
7069 static int
7070 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_) {
7071   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
7072
7073   return offset;
7074 }
7075
7076
7077 static const value_string gsm_map_ms_AccessType_vals[] = {
7078   {   0, "call" },
7079   {   1, "emergencyCall" },
7080   {   2, "locationUpdating" },
7081   {   3, "supplementaryService" },
7082   {   4, "shortMessage" },
7083   {   5, "gprsAttach" },
7084   {   6, "routingAreaUpdating" },
7085   {   7, "serviceRequest" },
7086   {   8, "pdpContextActivation" },
7087   {   9, "pdpContextDeactivation" },
7088   {  10, "gprsDetach" },
7089   { 0, NULL }
7090 };
7091
7092
7093 static int
7094 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_) {
7095   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7096                                   NULL);
7097
7098   return offset;
7099 }
7100
7101
7102 static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportArg_sequence[] = {
7103   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
7104   { &hf_gsm_map_ms_failureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_FailureCause },
7105   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7106   { &hf_gsm_map_ms_re_attempt, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BOOLEAN },
7107   { &hf_gsm_map_ms_accessType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AccessType },
7108   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
7109   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7110   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7111   { NULL, 0, 0, 0, NULL }
7112 };
7113
7114 static int
7115 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_) {
7116   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7117                                    gsm_map_ms_AuthenticationFailureReportArg_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportArg);
7118
7119   return offset;
7120 }
7121
7122
7123 static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportRes_sequence[] = {
7124   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7125   { NULL, 0, 0, 0, NULL }
7126 };
7127
7128 static int
7129 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_) {
7130   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7131                                    gsm_map_ms_AuthenticationFailureReportRes_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportRes);
7132
7133   return offset;
7134 }
7135
7136
7137 static const asn_namedbit gsm_map_ms_SupportedFeatures_bits[] = {
7138   {  0, &hf_gsm_map_ms_SupportedFeatures_odb_all, -1, -1, "odb-all", NULL },
7139   {  1, &hf_gsm_map_ms_SupportedFeatures_odb_HPLMN_APN, -1, -1, "odb-HPLMN-APN", NULL },
7140   {  2, &hf_gsm_map_ms_SupportedFeatures_odb_VPLMN_APN, -1, -1, "odb-VPLMN-APN", NULL },
7141   {  3, &hf_gsm_map_ms_SupportedFeatures_regSub, -1, -1, "regSub", NULL },
7142   { 0, NULL, 0, 0, NULL, NULL }
7143 };
7144
7145 static int
7146 dissect_gsm_map_ms_SupportedFeatures(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7147   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7148                                     gsm_map_ms_SupportedFeatures_bits, hf_index, ett_gsm_map_ms_SupportedFeatures,
7149                                     NULL);
7150
7151   return offset;
7152 }
7153
7154
7155 static const ber_sequence_t gsm_map_ms_SGSN_Capability_sequence[] = {
7156   { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7157   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7158   { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo },
7159   { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7160   { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
7161   { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
7162   { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
7163   { &hf_gsm_map_ms_smsCallBarringSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7164   { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types },
7165   { &hf_gsm_map_ms_supportedFeatures, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedFeatures },
7166   { NULL, 0, 0, 0, NULL }
7167 };
7168
7169 static int
7170 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_) {
7171   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7172                                    gsm_map_ms_SGSN_Capability_sequence, hf_index, ett_gsm_map_ms_SGSN_Capability);
7173
7174   return offset;
7175 }
7176
7177
7178
7179 static int
7180 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_) {
7181   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7182                                        NULL);
7183
7184   return offset;
7185 }
7186
7187
7188
7189 static int
7190 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_) {
7191   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7192                                        NULL);
7193
7194   return offset;
7195 }
7196
7197
7198
7199 static int
7200 dissect_gsm_map_ms_FQDN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7201   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7202                                        NULL);
7203
7204   return offset;
7205 }
7206
7207
7208 static const ber_sequence_t gsm_map_ms_PDN_GW_Identity_sequence[] = {
7209   { &hf_gsm_map_ms_pdn_gw_ipv4_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
7210   { &hf_gsm_map_ms_pdn_gw_ipv6_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
7211   { &hf_gsm_map_ms_pdn_gw_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_FQDN },
7212   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7213   { NULL, 0, 0, 0, NULL }
7214 };
7215
7216 static int
7217 dissect_gsm_map_ms_PDN_GW_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_) {
7218   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7219                                    gsm_map_ms_PDN_GW_Identity_sequence, hf_index, ett_gsm_map_ms_PDN_GW_Identity);
7220
7221   return offset;
7222 }
7223
7224
7225
7226 static int
7227 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_) {
7228   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7229                                                 NULL);
7230
7231   return offset;
7232 }
7233
7234
7235 static const ber_sequence_t gsm_map_ms_PDN_GW_Update_sequence[] = {
7236   { &hf_gsm_map_ms_apn      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
7237   { &hf_gsm_map_ms_pdn_gw_Identity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Identity },
7238   { &hf_gsm_map_ms_contextId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
7239   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7240   { NULL, 0, 0, 0, NULL }
7241 };
7242
7243 static int
7244 dissect_gsm_map_ms_PDN_GW_Update(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7245   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7246                                    gsm_map_ms_PDN_GW_Update_sequence, hf_index, ett_gsm_map_ms_PDN_GW_Update);
7247
7248   return offset;
7249 }
7250
7251
7252 static const asn_namedbit gsm_map_ms_ISR_Information_bits[] = {
7253   {  0, &hf_gsm_map_ms_ISR_Information_updateMME, -1, -1, "updateMME", NULL },
7254   {  1, &hf_gsm_map_ms_ISR_Information_cancelSGSN, -1, -1, "cancelSGSN", NULL },
7255   { 0, NULL, 0, 0, NULL, NULL }
7256 };
7257
7258 static int
7259 dissect_gsm_map_ms_ISR_Information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7260   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7261                                     gsm_map_ms_ISR_Information_bits, hf_index, ett_gsm_map_ms_ISR_Information,
7262                                     NULL);
7263
7264   return offset;
7265 }
7266
7267
7268 static const value_string gsm_map_ms_EPS_Info_vals[] = {
7269   {   0, "pdn-gw-update" },
7270   {   1, "isr-Information" },
7271   { 0, NULL }
7272 };
7273
7274 static const ber_choice_t gsm_map_ms_EPS_Info_choice[] = {
7275   {   0, &hf_gsm_map_ms_pdn_gw_update, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Update },
7276   {   1, &hf_gsm_map_ms_isr_Information, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ISR_Information },
7277   { 0, NULL, 0, 0, 0, NULL }
7278 };
7279
7280 static int
7281 dissect_gsm_map_ms_EPS_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_) {
7282   offset = dissect_ber_choice(actx, tree, tvb, offset,
7283                                  gsm_map_ms_EPS_Info_choice, hf_index, ett_gsm_map_ms_EPS_Info,
7284                                  NULL);
7285
7286   return offset;
7287 }
7288
7289
7290 static const value_string gsm_map_ms_Used_RAT_Type_vals[] = {
7291   {   0, "utran" },
7292   {   1, "geran" },
7293   {   2, "gan" },
7294   {   3, "i-hspa-evolution" },
7295   {   4, "e-utran" },
7296   { 0, NULL }
7297 };
7298
7299
7300 static int
7301 dissect_gsm_map_ms_Used_RAT_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_) {
7302   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7303                                   NULL);
7304
7305   return offset;
7306 }
7307
7308
7309 static const ber_sequence_t gsm_map_ms_UpdateGprsLocationArg_sequence[] = {
7310   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
7311   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7312   { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GSN_Address },
7313   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7314   { &hf_gsm_map_ms_sgsn_Capability, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_Capability },
7315   { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7316   { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7317   { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
7318   { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info },
7319   { &hf_gsm_map_ms_eps_info , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_EPS_Info },
7320   { &hf_gsm_map_ms_servingNodeTypeIndicator, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7321   { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7322   { &hf_gsm_map_ms_usedRAT_Type, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Used_RAT_Type },
7323   { NULL, 0, 0, 0, NULL }
7324 };
7325
7326 static int
7327 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_) {
7328   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7329                                    gsm_map_ms_UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationArg);
7330
7331   return offset;
7332 }
7333
7334
7335 static const ber_sequence_t gsm_map_ms_UpdateGprsLocationRes_sequence[] = {
7336   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7337   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7338   { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7339   { &hf_gsm_map_ms_sgsn_mmeSeparationSupported, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7340   { NULL, 0, 0, 0, NULL }
7341 };
7342
7343 static int
7344 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_) {
7345   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7346                                    gsm_map_ms_UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationRes);
7347
7348   return offset;
7349 }
7350
7351
7352
7353 static int
7354 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_) {
7355 #line 596 "gsmmap.cnf"
7356     tvbuff_t        *parameter_tvb;
7357         asn1_ctx_t              asn1_ctx;
7358
7359   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7360                                        &parameter_tvb);
7361  
7362
7363         if (!parameter_tvb) 
7364                 return offset;
7365
7366         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
7367         dissect_ranap_IntegrityProtectionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_IntegrityProtectionInformation);
7368
7369
7370
7371   return offset;
7372 }
7373
7374
7375
7376 static int
7377 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_) {
7378 #line 608 "gsmmap.cnf"
7379     tvbuff_t        *parameter_tvb;
7380         asn1_ctx_t              asn1_ctx;
7381
7382   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7383                                        &parameter_tvb);
7384  
7385
7386         if (!parameter_tvb) 
7387                 return offset;
7388
7389         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
7390         dissect_ranap_EncryptionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_EncryptionInformation);
7391
7392
7393
7394   return offset;
7395 }
7396
7397
7398 static const value_string gsm_map_ms_KeyStatus_vals[] = {
7399   {   0, "old" },
7400   {   1, "new" },
7401   { 0, NULL }
7402 };
7403
7404
7405 static int
7406 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_) {
7407   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7408                                   NULL);
7409
7410   return offset;
7411 }
7412
7413
7414
7415 static int
7416 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_) {
7417   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7418                                        NULL);
7419
7420   return offset;
7421 }
7422
7423
7424
7425 static int
7426 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_) {
7427   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7428                                        NULL);
7429
7430   return offset;
7431 }
7432
7433
7434
7435 static int
7436 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_) {
7437   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7438                                        NULL);
7439
7440   return offset;
7441 }
7442
7443
7444 static const ber_sequence_t gsm_map_ms_AllowedUMTS_Algorithms_sequence[] = {
7445   { &hf_gsm_map_ms_integrityProtectionAlgorithms, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedIntegrityProtectionAlgorithms },
7446   { &hf_gsm_map_ms_encryptionAlgorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedEncryptionAlgorithms },
7447   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7448   { NULL, 0, 0, 0, NULL }
7449 };
7450
7451 static int
7452 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_) {
7453   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7454                                    gsm_map_ms_AllowedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_AllowedUMTS_Algorithms);
7455
7456   return offset;
7457 }
7458
7459
7460
7461 static int
7462 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_) {
7463 #line 572 "gsmmap.cnf"
7464     tvbuff_t        *parameter_tvb; 
7465         proto_tree *subtree;
7466
7467   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7468                                        &parameter_tvb);
7469  
7470
7471         if (!parameter_tvb) 
7472                 return offset; 
7473
7474     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RadioResourceInformation); 
7475         be_chan_type(parameter_tvb, subtree, 0, tvb_length_remaining(tvb,0), NULL, 0);
7476
7477
7478
7479   return offset;
7480 }
7481
7482
7483
7484 static int
7485 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_) {
7486   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7487                                                 NULL);
7488
7489   return offset;
7490 }
7491
7492
7493 static const ber_sequence_t gsm_map_ms_RadioResource_sequence[] = {
7494   { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResourceInformation },
7495   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
7496   { NULL, 0, 0, 0, NULL }
7497 };
7498
7499 static int
7500 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_) {
7501   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7502                                    gsm_map_ms_RadioResource_sequence, hf_index, ett_gsm_map_ms_RadioResource);
7503
7504   return offset;
7505 }
7506
7507
7508 static const ber_sequence_t gsm_map_ms_RadioResourceList_sequence_of[1] = {
7509   { &hf_gsm_map_ms_RadioResourceList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResource },
7510 };
7511
7512 static int
7513 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_) {
7514   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7515                                       gsm_map_ms_RadioResourceList_sequence_of, hf_index, ett_gsm_map_ms_RadioResourceList);
7516
7517   return offset;
7518 }
7519
7520
7521
7522 static int
7523 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_) {
7524   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7525                                        NULL);
7526
7527   return offset;
7528 }
7529
7530
7531
7532 static int
7533 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_) {
7534 #line 584 "gsmmap.cnf"
7535     tvbuff_t        *parameter_tvb;
7536         asn1_ctx_t              asn1_ctx;
7537
7538   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7539                                        &parameter_tvb);
7540  
7541
7542         if (!parameter_tvb) 
7543                 return offset;
7544
7545         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
7546         dissect_ranap_Service_Handover(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_ranap_service_Handover);
7547
7548
7549
7550   return offset;
7551 }
7552
7553
7554 static const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverInfo_sequence[] = {
7555   { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
7556   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
7557   { NULL, 0, 0, 0, NULL }
7558 };
7559
7560 static int
7561 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_) {
7562   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7563                                    gsm_map_ms_BSSMAP_ServiceHandoverInfo_sequence, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo);
7564
7565   return offset;
7566 }
7567
7568
7569 static const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of[1] = {
7570   { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverInfo },
7571 };
7572
7573 static int
7574 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_) {
7575   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7576                                       gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverList);
7577
7578   return offset;
7579 }
7580
7581
7582
7583 static int
7584 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_) {
7585   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7586                                        NULL);
7587
7588   return offset;
7589 }
7590
7591
7592 static const ber_sequence_t gsm_map_ms_CodecList_sequence[] = {
7593   { &hf_gsm_map_ms_codec1   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7594   { &hf_gsm_map_ms_codec2   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7595   { &hf_gsm_map_ms_codec3   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7596   { &hf_gsm_map_ms_codec4   , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7597   { &hf_gsm_map_ms_codec5   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7598   { &hf_gsm_map_ms_codec6   , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7599   { &hf_gsm_map_ms_codec7   , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7600   { &hf_gsm_map_ms_codec8   , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7601   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7602   { NULL, 0, 0, 0, NULL }
7603 };
7604
7605 static int
7606 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_) {
7607   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7608                                    gsm_map_ms_CodecList_sequence, hf_index, ett_gsm_map_ms_CodecList);
7609
7610   return offset;
7611 }
7612
7613
7614 static const ber_sequence_t gsm_map_ms_SupportedCodecsList_sequence[] = {
7615   { &hf_gsm_map_ms_utranCodecList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7616   { &hf_gsm_map_ms_geranCodecList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7617   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7618   { NULL, 0, 0, 0, NULL }
7619 };
7620
7621 static int
7622 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_) {
7623   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7624                                    gsm_map_ms_SupportedCodecsList_sequence, hf_index, ett_gsm_map_ms_SupportedCodecsList);
7625
7626   return offset;
7627 }
7628
7629
7630 static const ber_sequence_t gsm_map_ms_ForwardAccessSignalling_Arg_U_sequence[] = {
7631   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7632   { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation },
7633   { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation },
7634   { &hf_gsm_map_ms_keyStatus, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_KeyStatus },
7635   { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms },
7636   { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms },
7637   { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7638   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7639   { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList },
7640   { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
7641   { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover },
7642   { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList },
7643   { &hf_gsm_map_ms_currentlyUsedCodec, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7644   { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList },
7645   { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7646   { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7647   { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7648   { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList },
7649   { NULL, 0, 0, 0, NULL }
7650 };
7651
7652 static int
7653 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_) {
7654   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7655                                    gsm_map_ms_ForwardAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ForwardAccessSignalling_Arg_U);
7656
7657   return offset;
7658 }
7659
7660
7661
7662 static int
7663 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_) {
7664   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7665                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_ForwardAccessSignalling_Arg_U);
7666
7667   return offset;
7668 }
7669
7670
7671
7672 static int
7673 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_) {
7674   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7675                                        NULL);
7676
7677   return offset;
7678 }
7679
7680
7681
7682 static int
7683 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_) {
7684   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7685                                        NULL);
7686
7687   return offset;
7688 }
7689
7690
7691
7692 static int
7693 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_) {
7694   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7695                                     NULL, hf_index, -1,
7696                                     NULL);
7697
7698   return offset;
7699 }
7700
7701
7702
7703 static int
7704 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_) {
7705   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7706                                     NULL, hf_index, -1,
7707                                     NULL);
7708
7709   return offset;
7710 }
7711
7712
7713 static const ber_sequence_t gsm_map_ms_UESBI_Iu_sequence[] = {
7714   { &hf_gsm_map_ms_uesbi_IuA, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuA },
7715   { &hf_gsm_map_ms_uesbi_IuB, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuB },
7716   { NULL, 0, 0, 0, NULL }
7717 };
7718
7719 static int
7720 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_) {
7721   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7722                                    gsm_map_ms_UESBI_Iu_sequence, hf_index, ett_gsm_map_ms_UESBI_Iu);
7723
7724   return offset;
7725 }
7726
7727
7728 static const ber_sequence_t gsm_map_ms_PrepareHO_Arg_U_sequence[] = {
7729   { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
7730   { &hf_gsm_map_ms_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7731   { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId },
7732   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7733   { &hf_gsm_map_ms_multipleBearerRequested, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7734   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
7735   { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation },
7736   { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation },
7737   { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7738   { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms },
7739   { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms },
7740   { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList },
7741   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7742   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
7743   { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
7744   { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover },
7745   { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList },
7746   { &hf_gsm_map_ms_asciCallReference, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference },
7747   { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark },
7748   { &hf_gsm_map_ms_iuCurrentlyUsedCodec, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7749   { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList },
7750   { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7751   { &hf_gsm_map_ms_uesbi_Iu , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_Iu },
7752   { &hf_gsm_map_ms_imeisv   , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
7753   { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7754   { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList },
7755   { NULL, 0, 0, 0, NULL }
7756 };
7757
7758 static int
7759 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_) {
7760   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7761                                    gsm_map_ms_PrepareHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Arg_U);
7762
7763   return offset;
7764 }
7765
7766
7767
7768 static int
7769 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_) {
7770   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7771                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareHO_Arg_U);
7772
7773   return offset;
7774 }
7775
7776
7777 static const ber_sequence_t gsm_map_ms_RelocationNumber_sequence[] = {
7778   { &hf_gsm_map_ms_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7779   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
7780   { NULL, 0, 0, 0, NULL }
7781 };
7782
7783 static int
7784 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_) {
7785   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7786                                    gsm_map_ms_RelocationNumber_sequence, hf_index, ett_gsm_map_ms_RelocationNumber);
7787
7788   return offset;
7789 }
7790
7791
7792 static const ber_sequence_t gsm_map_ms_RelocationNumberList_sequence_of[1] = {
7793   { &hf_gsm_map_ms_RelocationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RelocationNumber },
7794 };
7795
7796 static int
7797 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_) {
7798   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7799                                       gsm_map_ms_RelocationNumberList_sequence_of, hf_index, ett_gsm_map_ms_RelocationNumberList);
7800
7801   return offset;
7802 }
7803
7804
7805
7806 static int
7807 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_) {
7808   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7809                                                 NULL);
7810
7811   return offset;
7812 }
7813
7814
7815
7816 static int
7817 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_) {
7818   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7819                                        NULL);
7820
7821   return offset;
7822 }
7823
7824
7825
7826 static int
7827 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_) {
7828   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7829                                        NULL);
7830
7831   return offset;
7832 }
7833
7834
7835 static const ber_sequence_t gsm_map_ms_SelectedUMTS_Algorithms_sequence[] = {
7836   { &hf_gsm_map_ms_integrityProtectionAlgorithm, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenIntegrityProtectionAlgorithm },
7837   { &hf_gsm_map_ms_encryptionAlgorithm, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenEncryptionAlgorithm },
7838   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7839   { NULL, 0, 0, 0, NULL }
7840 };
7841
7842 static int
7843 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_) {
7844   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7845                                    gsm_map_ms_SelectedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_SelectedUMTS_Algorithms);
7846
7847   return offset;
7848 }
7849
7850
7851
7852 static int
7853 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_) {
7854   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7855                                        NULL);
7856
7857   return offset;
7858 }
7859
7860
7861
7862 static int
7863 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_) {
7864   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7865                                        NULL);
7866
7867   return offset;
7868 }
7869
7870
7871 static const ber_sequence_t gsm_map_ms_ChosenRadioResourceInformation_sequence[] = {
7872   { &hf_gsm_map_ms_chosenChannelInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenChannelInfo },
7873   { &hf_gsm_map_ms_chosenSpeechVersion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenSpeechVersion },
7874   { NULL, 0, 0, 0, NULL }
7875 };
7876
7877 static int
7878 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_) {
7879   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7880                                    gsm_map_ms_ChosenRadioResourceInformation_sequence, hf_index, ett_gsm_map_ms_ChosenRadioResourceInformation);
7881
7882   return offset;
7883 }
7884
7885
7886 static const ber_sequence_t gsm_map_ms_PrepareHO_Res_U_sequence[] = {
7887   { &hf_gsm_map_ms_handoverNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7888   { &hf_gsm_map_ms_relocationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RelocationNumberList },
7889   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7890   { &hf_gsm_map_ms_multicallBearerInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MulticallBearerInfo },
7891   { &hf_gsm_map_ms_multipleBearerNotSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7892   { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms },
7893   { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation },
7894   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7895   { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7896   { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7897   { NULL, 0, 0, 0, NULL }
7898 };
7899
7900 static int
7901 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_) {
7902   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7903                                    gsm_map_ms_PrepareHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Res_U);
7904
7905   return offset;
7906 }
7907
7908
7909
7910 static int
7911 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_) {
7912   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7913                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareHO_Res_U);
7914
7915   return offset;
7916 }
7917
7918
7919 static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Arg_U_sequence[] = {
7920   { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
7921   { &hf_gsm_map_ms_targetMSC_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7922   { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId },
7923   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7924   { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
7925   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7926   { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark },
7927   { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7928   { NULL, 0, 0, 0, NULL }
7929 };
7930
7931 static int
7932 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_) {
7933   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7934                                    gsm_map_ms_PrepareSubsequentHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Arg_U);
7935
7936   return offset;
7937 }
7938
7939
7940
7941 static int
7942 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_) {
7943   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7944                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg_U);
7945
7946   return offset;
7947 }
7948
7949
7950 static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Res_U_sequence[] = {
7951   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7952   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7953   { NULL, 0, 0, 0, NULL }
7954 };
7955
7956 static int
7957 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_) {
7958   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7959                                    gsm_map_ms_PrepareSubsequentHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Res_U);
7960
7961   return offset;
7962 }
7963
7964
7965
7966 static int
7967 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_) {
7968   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7969                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Res_U);
7970
7971   return offset;
7972 }
7973
7974
7975
7976 static int
7977 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_) {
7978   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7979                                        NULL);
7980
7981   return offset;
7982 }
7983
7984
7985 static const ber_sequence_t gsm_map_ms_ProcessAccessSignalling_Arg_U_sequence[] = {
7986   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7987   { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms },
7988   { &hf_gsm_map_ms_selectedGSM_Algorithm, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedGSM_Algorithm },
7989   { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation },
7990   { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
7991   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7992   { &hf_gsm_map_ms_iUSelectedCodec, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7993   { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7994   { NULL, 0, 0, 0, NULL }
7995 };
7996
7997 static int
7998 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_) {
7999   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8000                                    gsm_map_ms_ProcessAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ProcessAccessSignalling_Arg_U);
8001
8002   return offset;
8003 }
8004
8005
8006
8007 static int
8008 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_) {
8009   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
8010                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_ProcessAccessSignalling_Arg_U);
8011
8012   return offset;
8013 }
8014
8015
8016 static const ber_sequence_t gsm_map_ms_SendEndSignal_Arg_U_sequence[] = {
8017   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
8018   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8019   { NULL, 0, 0, 0, NULL }
8020 };
8021
8022 static int
8023 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_) {
8024   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8025                                    gsm_map_ms_SendEndSignal_Arg_U_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Arg_U);
8026
8027   return offset;
8028 }
8029
8030
8031
8032 static int
8033 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_) {
8034   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
8035                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendEndSignal_Arg_U);
8036
8037   return offset;
8038 }
8039
8040
8041 static const ber_sequence_t gsm_map_ms_SendEndSignal_Res_sequence[] = {
8042   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8043   { NULL, 0, 0, 0, NULL }
8044 };
8045
8046 static int
8047 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_) {
8048   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8049                                    gsm_map_ms_SendEndSignal_Res_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Res);
8050
8051   return offset;
8052 }
8053
8054
8055 static const ber_sequence_t gsm_map_ms_Re_synchronisationInfo_sequence[] = {
8056   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
8057   { &hf_gsm_map_ms_auts     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTS },
8058   { NULL, 0, 0, 0, NULL }
8059 };
8060
8061 static int
8062 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_) {
8063   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8064                                    gsm_map_ms_Re_synchronisationInfo_sequence, hf_index, ett_gsm_map_ms_Re_synchronisationInfo);
8065
8066   return offset;
8067 }
8068
8069
8070 static const value_string gsm_map_ms_RequestingNodeType_vals[] = {
8071   {   0, "vlr" },
8072   {   1, "sgsn" },
8073   {   2, "s-cscf" },
8074   {   3, "bsf" },
8075   {   4, "gan-aaa-server" },
8076   {   5, "wlan-aaa-server" },
8077   {  16, "mme" },
8078   {  17, "mme-sgsn" },
8079   { 0, NULL }
8080 };
8081
8082
8083 static int
8084 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_) {
8085   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8086                                   NULL);
8087
8088   return offset;
8089 }
8090
8091
8092 static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoArg_sequence[] = {
8093   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
8094   { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
8095   { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
8096   { &hf_gsm_map_ms_immediateResponsePreferred, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8097   { &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 },
8098   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8099   { &hf_gsm_map_ms_requestingNodeType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestingNodeType },
8100   { &hf_gsm_map_ms_requestingPLMN_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
8101   { &hf_gsm_map_ms_numberOfRequestedAdditional_Vectors, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
8102   { &hf_gsm_map_ms_additionalVectorsAreForEPS, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8103   { NULL, 0, 0, 0, NULL }
8104 };
8105
8106 static int
8107 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_) {
8108   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8109                                    gsm_map_ms_SendAuthenticationInfoArg_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoArg);
8110
8111   return offset;
8112 }
8113
8114
8115
8116 static int
8117 dissect_gsm_map_ms_KASME(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8118   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8119                                        NULL);
8120
8121   return offset;
8122 }
8123
8124
8125 static const ber_sequence_t gsm_map_ms_EPC_AV_sequence[] = {
8126   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
8127   { &hf_gsm_map_ms_xres     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_XRES },
8128   { &hf_gsm_map_ms_autn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTN },
8129   { &hf_gsm_map_ms_kasme    , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_KASME },
8130   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8131   { NULL, 0, 0, 0, NULL }
8132 };
8133
8134 static int
8135 dissect_gsm_map_ms_EPC_AV(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8136   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8137                                    gsm_map_ms_EPC_AV_sequence, hf_index, ett_gsm_map_ms_EPC_AV);
8138
8139   return offset;
8140 }
8141
8142
8143 static const ber_sequence_t gsm_map_ms_EPS_AuthenticationSetList_sequence_of[1] = {
8144   { &hf_gsm_map_ms_EPS_AuthenticationSetList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_EPC_AV },
8145 };
8146
8147 static int
8148 dissect_gsm_map_ms_EPS_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_) {
8149   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8150                                       gsm_map_ms_EPS_AuthenticationSetList_sequence_of, hf_index, ett_gsm_map_ms_EPS_AuthenticationSetList);
8151
8152   return offset;
8153 }
8154
8155
8156 static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoRes_U_sequence[] = {
8157   { &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 },
8158   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8159   { &hf_gsm_map_ms_eps_AuthenticationSetList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_AuthenticationSetList },
8160   { NULL, 0, 0, 0, NULL }
8161 };
8162
8163 static int
8164 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_) {
8165   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8166                                    gsm_map_ms_SendAuthenticationInfoRes_U_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoRes_U);
8167
8168   return offset;
8169 }
8170
8171
8172
8173 static int
8174 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_) {
8175   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
8176                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendAuthenticationInfoRes_U);
8177
8178   return offset;
8179 }
8180
8181
8182 static const asn_namedbit gsm_map_ms_RequestedEquipmentInfo_bits[] = {
8183   {  0, &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus, -1, -1, "equipmentStatus", NULL },
8184   {  1, &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef, -1, -1, "bmuef", NULL },
8185   { 0, NULL, 0, 0, NULL, NULL }
8186 };
8187
8188 static int
8189 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_) {
8190   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8191                                     gsm_map_ms_RequestedEquipmentInfo_bits, hf_index, ett_gsm_map_ms_RequestedEquipmentInfo,
8192                                     NULL);
8193
8194   return offset;
8195 }
8196
8197
8198 static const ber_sequence_t gsm_map_ms_CheckIMEI_Arg_sequence[] = {
8199   { &hf_gsm_map_ms_imei     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMEI },
8200   { &hf_gsm_map_ms_requestedEquipmentInfo, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RequestedEquipmentInfo },
8201   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8202   { NULL, 0, 0, 0, NULL }
8203 };
8204
8205 static int
8206 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_) {
8207   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8208                                    gsm_map_ms_CheckIMEI_Arg_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Arg);
8209
8210   return offset;
8211 }
8212
8213
8214 static const value_string gsm_map_ms_EquipmentStatus_vals[] = {
8215   {   0, "whiteListed" },
8216   {   1, "blackListed" },
8217   {   2, "greyListed" },
8218   { 0, NULL }
8219 };
8220
8221
8222 static int
8223 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_) {
8224   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8225                                   NULL);
8226
8227   return offset;
8228 }
8229
8230
8231 static const ber_sequence_t gsm_map_ms_CheckIMEI_Res_sequence[] = {
8232   { &hf_gsm_map_ms_equipmentStatus, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_EquipmentStatus },
8233   { &hf_gsm_map_ms_bmuef    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_UESBI_Iu },
8234   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8235   { NULL, 0, 0, 0, NULL }
8236 };
8237
8238 static int
8239 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_) {
8240   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8241                                    gsm_map_ms_CheckIMEI_Res_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Res);
8242
8243   return offset;
8244 }
8245
8246
8247
8248 static int
8249 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_) {
8250   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8251                                        NULL);
8252
8253   return offset;
8254 }
8255
8256
8257 static const value_string gsm_map_ms_SubscriberStatus_vals[] = {
8258   {   0, "serviceGranted" },
8259   {   1, "operatorDeterminedBarring" },
8260   { 0, NULL }
8261 };
8262
8263
8264 static int
8265 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_) {
8266   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8267                                   NULL);
8268
8269   return offset;
8270 }
8271
8272
8273 static const ber_sequence_t gsm_map_ms_BearerServiceList_sequence_of[1] = {
8274   { &hf_gsm_map_ms_BearerServiceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BearerServiceCode },
8275 };
8276
8277 static int
8278 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_) {
8279   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8280                                       gsm_map_ms_BearerServiceList_sequence_of, hf_index, ett_gsm_map_ms_BearerServiceList);
8281
8282   return offset;
8283 }
8284
8285
8286 static const ber_sequence_t gsm_map_ms_TeleserviceList_sequence_of[1] = {
8287   { &hf_gsm_map_ms_TeleserviceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
8288 };
8289
8290 static int
8291 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_) {
8292   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8293                                       gsm_map_ms_TeleserviceList_sequence_of, hf_index, ett_gsm_map_ms_TeleserviceList);
8294
8295   return offset;
8296 }
8297
8298
8299
8300 static int
8301 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_) {
8302   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8303                                        NULL);
8304
8305   return offset;
8306 }
8307
8308
8309
8310 static int
8311 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_) {
8312   offset = dissect_gsm_map_ms_Ext_ForwOptions(implicit_tag, tvb, offset, actx, tree, hf_index);
8313
8314 #line 473 "gsmmap.cnf"
8315
8316         proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE);
8317         proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE);
8318         proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE);
8319         proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE);
8320
8321
8322
8323   return offset;
8324 }
8325
8326
8327
8328 static int
8329 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_) {
8330   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8331                                                 NULL);
8332
8333   return offset;
8334 }
8335
8336
8337 static const ber_sequence_t gsm_map_ms_Ext_ForwFeature_sequence[] = {
8338   { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
8339   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
8340   { &hf_gsm_map_ms_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8341   { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
8342   { &hf_gsm_map_ms_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_forwardingOptions },
8343   { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime },
8344   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8345   { &hf_gsm_map_ms_longForwardedToNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
8346   { NULL, 0, 0, 0, NULL }
8347 };
8348
8349 static int
8350 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_) {
8351   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8352                                    gsm_map_ms_Ext_ForwFeature_sequence, hf_index, ett_gsm_map_ms_Ext_ForwFeature);
8353
8354   return offset;
8355 }
8356
8357
8358 static const ber_sequence_t gsm_map_ms_Ext_ForwFeatureList_sequence_of[1] = {
8359   { &hf_gsm_map_ms_Ext_ForwFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeature },
8360 };
8361
8362 static int
8363 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_) {
8364   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8365                                       gsm_map_ms_Ext_ForwFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ForwFeatureList);
8366
8367   return offset;
8368 }
8369
8370
8371 static const ber_sequence_t gsm_map_ms_Ext_ForwInfo_sequence[] = {
8372   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
8373   { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
8374   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8375   { NULL, 0, 0, 0, NULL }
8376 };
8377
8378 static int
8379 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_) {
8380   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8381                                    gsm_map_ms_Ext_ForwInfo_sequence, hf_index, ett_gsm_map_ms_Ext_ForwInfo);
8382
8383   return offset;
8384 }
8385
8386
8387 static const ber_sequence_t gsm_map_ms_Ext_CallBarringFeature_sequence[] = {
8388   { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
8389   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
8390   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8391   { NULL, 0, 0, 0, NULL }
8392 };
8393
8394 static int
8395 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_) {
8396   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8397                                    gsm_map_ms_Ext_CallBarringFeature_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringFeature);
8398
8399   return offset;
8400 }
8401
8402
8403 static const ber_sequence_t gsm_map_ms_Ext_CallBarFeatureList_sequence_of[1] = {
8404   { &hf_gsm_map_ms_Ext_CallBarFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarringFeature },
8405 };
8406
8407 static int
8408 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_) {
8409   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8410                                       gsm_map_ms_Ext_CallBarFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_CallBarFeatureList);
8411
8412   return offset;
8413 }
8414
8415
8416 static const ber_sequence_t gsm_map_ms_Ext_CallBarInfo_sequence[] = {
8417   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
8418   { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
8419   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8420   { NULL, 0, 0, 0, NULL }
8421 };
8422
8423 static int
8424 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_) {
8425   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8426                                    gsm_map_ms_Ext_CallBarInfo_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarInfo);
8427
8428   return offset;
8429 }
8430
8431
8432
8433 int
8434 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_) {
8435   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8436                                                 NULL);
8437
8438   return offset;
8439 }
8440
8441
8442
8443 int
8444 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_) {
8445   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8446                                        NULL);
8447
8448   return offset;
8449 }
8450
8451
8452 static const value_string gsm_map_ms_IntraCUG_Options_vals[] = {
8453   {   0, "noCUG-Restrictions" },
8454   {   1, "cugIC-CallBarred" },
8455   {   2, "cugOG-CallBarred" },
8456   { 0, NULL }
8457 };
8458
8459
8460 static int
8461 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_) {
8462   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8463                                   NULL);
8464
8465   return offset;
8466 }
8467
8468
8469 static const ber_sequence_t gsm_map_ms_Ext_BasicServiceGroupList_sequence_of[1] = {
8470   { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
8471 };
8472
8473 static int
8474 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_) {
8475   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8476                                       gsm_map_ms_Ext_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ms_Ext_BasicServiceGroupList);
8477
8478   return offset;
8479 }
8480
8481
8482 static const ber_sequence_t gsm_map_ms_CUG_Subscription_sequence[] = {
8483   { &hf_gsm_map_ms_cug_Index, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Index },
8484   { &hf_gsm_map_ms_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock },
8485   { &hf_gsm_map_ms_intraCUG_Options, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IntraCUG_Options },
8486   { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList },
8487   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8488   { NULL, 0, 0, 0, NULL }
8489 };
8490
8491 static int
8492 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_) {
8493   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8494                                    gsm_map_ms_CUG_Subscription_sequence, hf_index, ett_gsm_map_ms_CUG_Subscription);
8495
8496   return offset;
8497 }
8498
8499
8500 static const ber_sequence_t gsm_map_ms_CUG_SubscriptionList_sequence_of[1] = {
8501   { &hf_gsm_map_ms_CUG_SubscriptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Subscription },
8502 };
8503
8504 static int
8505 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_) {
8506   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8507                                       gsm_map_ms_CUG_SubscriptionList_sequence_of, hf_index, ett_gsm_map_ms_CUG_SubscriptionList);
8508
8509   return offset;
8510 }
8511
8512
8513
8514 static int
8515 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_) {
8516   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8517                                        NULL);
8518
8519   return offset;
8520 }
8521
8522
8523 static const ber_sequence_t gsm_map_ms_CUG_Feature_sequence[] = {
8524   { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
8525   { &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 },
8526   { &hf_gsm_map_ms_interCUG_Restrictions, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_InterCUG_Restrictions },
8527   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8528   { NULL, 0, 0, 0, NULL }
8529 };
8530
8531 static int
8532 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_) {
8533   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8534                                    gsm_map_ms_CUG_Feature_sequence, hf_index, ett_gsm_map_ms_CUG_Feature);
8535
8536   return offset;
8537 }
8538
8539
8540 static const ber_sequence_t gsm_map_ms_CUG_FeatureList_sequence_of[1] = {
8541   { &hf_gsm_map_ms_CUG_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Feature },
8542 };
8543
8544 static int
8545 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_) {
8546   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8547                                       gsm_map_ms_CUG_FeatureList_sequence_of, hf_index, ett_gsm_map_ms_CUG_FeatureList);
8548
8549   return offset;
8550 }
8551
8552
8553 static const ber_sequence_t gsm_map_ms_CUG_Info_sequence[] = {
8554   { &hf_gsm_map_ms_cug_SubscriptionList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_SubscriptionList },
8555   { &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 },
8556   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8557   { NULL, 0, 0, 0, NULL }
8558 };
8559
8560 int
8561 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_) {
8562   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8563                                    gsm_map_ms_CUG_Info_sequence, hf_index, ett_gsm_map_ms_CUG_Info);
8564
8565   return offset;
8566 }
8567
8568
8569 static const ber_sequence_t gsm_map_ms_Ext_SS_Data_sequence[] = {
8570   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
8571   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
8572   { &hf_gsm_map_ms_ss_SubscriptionOption, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_SubscriptionOption },
8573   { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList },
8574   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8575   { NULL, 0, 0, 0, NULL }
8576 };
8577
8578 static int
8579 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_) {
8580   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8581                                    gsm_map_ms_Ext_SS_Data_sequence, hf_index, ett_gsm_map_ms_Ext_SS_Data);
8582
8583   return offset;
8584 }
8585
8586
8587 static const value_string gsm_map_ms_Ext_SS_Info_vals[] = {
8588   {   0, "forwardingInfo" },
8589   {   1, "callBarringInfo" },
8590   {   2, "cug-Info" },
8591   {   3, "ss-Data" },
8592   {   4, "emlpp-Info" },
8593   { 0, NULL }
8594 };
8595
8596 static const ber_choice_t gsm_map_ms_Ext_SS_Info_choice[] = {
8597   {   0, &hf_gsm_map_ms_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwInfo },
8598   {   1, &hf_gsm_map_ms_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarInfo },
8599   {   2, &hf_gsm_map_ms_cug_Info , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Info },
8600   {   3, &hf_gsm_map_ms_ss_Data  , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_Data },
8601   {   4, &hf_gsm_map_ms_emlpp_Info, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Info },
8602   { 0, NULL, 0, 0, 0, NULL }
8603 };
8604
8605 static int
8606 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_) {
8607   offset = dissect_ber_choice(actx, tree, tvb, offset,
8608                                  gsm_map_ms_Ext_SS_Info_choice, hf_index, ett_gsm_map_ms_Ext_SS_Info,
8609                                  NULL);
8610
8611   return offset;
8612 }
8613
8614
8615 static const ber_sequence_t gsm_map_ms_Ext_SS_InfoList_sequence_of[1] = {
8616   { &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 },
8617 };
8618
8619 static int
8620 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_) {
8621   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8622                                       gsm_map_ms_Ext_SS_InfoList_sequence_of, hf_index, ett_gsm_map_ms_Ext_SS_InfoList);
8623
8624   return offset;
8625 }
8626
8627
8628 static const asn_namedbit gsm_map_ms_ODB_GeneralData_bits[] = {
8629   {  0, &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred, -1, -1, "allOG-CallsBarred", NULL },
8630   {  1, &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred, -1, -1, "internationalOGCallsBarred", NULL },
8631   {  2, &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "internationalOGCallsNotToHPLMN-CountryBarred", NULL },
8632   {  6, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred, -1, -1, "interzonalOGCallsBarred", NULL },
8633   {  7, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsNotToHPLMN-CountryBarred", NULL },
8634   {  8, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", NULL },
8635   {  3, &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred, -1, -1, "premiumRateInformationOGCallsBarred", NULL },
8636   {  4, &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred, -1, -1, "premiumRateEntertainementOGCallsBarred", NULL },
8637   {  5, &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred, -1, -1, "ss-AccessBarred", NULL },
8638   {  9, &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred, -1, -1, "allECT-Barred", NULL },
8639   { 10, &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred, -1, -1, "chargeableECT-Barred", NULL },
8640   { 11, &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred, -1, -1, "internationalECT-Barred", NULL },
8641   { 12, &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred, -1, -1, "interzonalECT-Barred", NULL },
8642   { 13, &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred, -1, -1, "doublyChargeableECT-Barred", NULL },
8643   { 14, &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred, -1, -1, "multipleECT-Barred", NULL },
8644   { 15, &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred, -1, -1, "allPacketOrientedServicesBarred", NULL },
8645   { 16, &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred, -1, -1, "roamerAccessToHPLMN-AP-Barred", NULL },
8646   { 17, &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred, -1, -1, "roamerAccessToVPLMN-AP-Barred", NULL },
8647   { 18, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred, -1, -1, "roamingOutsidePLMNOG-CallsBarred", NULL },
8648   { 19, &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred, -1, -1, "allIC-CallsBarred", NULL },
8649   { 20, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred, -1, -1, "roamingOutsidePLMNIC-CallsBarred", NULL },
8650   { 21, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred, -1, -1, "roamingOutsidePLMNICountryIC-CallsBarred", NULL },
8651   { 22, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred, -1, -1, "roamingOutsidePLMN-Barred", NULL },
8652   { 23, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred, -1, -1, "roamingOutsidePLMN-CountryBarred", NULL },
8653   { 24, &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred, -1, -1, "registrationAllCF-Barred", NULL },
8654   { 25, &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred, -1, -1, "registrationCFNotToHPLMN-Barred", NULL },
8655   { 26, &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred, -1, -1, "registrationInterzonalCF-Barred", NULL },
8656   { 27, &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred, -1, -1, "registrationInterzonalCFNotToHPLMN-Barred", NULL },
8657   { 28, &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred, -1, -1, "registrationInternationalCF-Barred", NULL },
8658   { 0, NULL, 0, 0, NULL, NULL }
8659 };
8660
8661 static int
8662 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_) {
8663   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8664                                     gsm_map_ms_ODB_GeneralData_bits, hf_index, ett_gsm_map_ms_ODB_GeneralData,
8665                                     NULL);
8666
8667   return offset;
8668 }
8669
8670
8671 static const asn_namedbit gsm_map_ms_ODB_HPLMN_Data_bits[] = {
8672   {  0, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1, -1, -1, "plmn-SpecificBarringType1", NULL },
8673   {  1, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2, -1, -1, "plmn-SpecificBarringType2", NULL },
8674   {  2, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3, -1, -1, "plmn-SpecificBarringType3", NULL },
8675   {  3, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4, -1, -1, "plmn-SpecificBarringType4", NULL },
8676   { 0, NULL, 0, 0, NULL, NULL }
8677 };
8678
8679 static int
8680 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_) {
8681   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8682                                     gsm_map_ms_ODB_HPLMN_Data_bits, hf_index, ett_gsm_map_ms_ODB_HPLMN_Data,
8683                                     NULL);
8684
8685   return offset;
8686 }
8687
8688
8689 static const ber_sequence_t gsm_map_ms_ODB_Data_sequence[] = {
8690   { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_GeneralData },
8691   { &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 },
8692   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8693   { NULL, 0, 0, 0, NULL }
8694 };
8695
8696 static int
8697 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_) {
8698   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8699                                    gsm_map_ms_ODB_Data_sequence, hf_index, ett_gsm_map_ms_ODB_Data);
8700
8701   return offset;
8702 }
8703
8704
8705
8706 static int
8707 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_) {
8708   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8709                                        NULL);
8710
8711   return offset;
8712 }
8713
8714
8715 static const ber_sequence_t gsm_map_ms_ZoneCodeList_sequence_of[1] = {
8716   { &hf_gsm_map_ms_ZoneCodeList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ZoneCode },
8717 };
8718
8719 static int
8720 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_) {
8721   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8722                                       gsm_map_ms_ZoneCodeList_sequence_of, hf_index, ett_gsm_map_ms_ZoneCodeList);
8723
8724   return offset;
8725 }
8726
8727
8728
8729 static int
8730 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_) {
8731   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
8732
8733   return offset;
8734 }
8735
8736
8737
8738 static int
8739 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_) {
8740   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
8741
8742   return offset;
8743 }
8744
8745
8746 static const ber_sequence_t gsm_map_ms_VoiceBroadcastData_sequence[] = {
8747   { &hf_gsm_map_ms_groupid  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId },
8748   { &hf_gsm_map_ms_broadcastInitEntitlement, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
8749   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8750   { &hf_gsm_map_ms_longGroupId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Long_GroupId },
8751   { NULL, 0, 0, 0, NULL }
8752 };
8753
8754 static int
8755 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_) {
8756   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8757                                    gsm_map_ms_VoiceBroadcastData_sequence, hf_index, ett_gsm_map_ms_VoiceBroadcastData);
8758
8759   return offset;
8760 }
8761
8762
8763 static const ber_sequence_t gsm_map_ms_VBSDataList_sequence_of[1] = {
8764   { &hf_gsm_map_ms_VBSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceBroadcastData },
8765 };
8766
8767 static int
8768 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_) {
8769   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8770                                       gsm_map_ms_VBSDataList_sequence_of, hf_index, ett_gsm_map_ms_VBSDataList);
8771
8772   return offset;
8773 }
8774
8775
8776 static const asn_namedbit gsm_map_ms_AdditionalSubscriptions_bits[] = {
8777   {  0, &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest, -1, -1, "privilegedUplinkRequest", NULL },
8778   {  1, &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest, -1, -1, "emergencyUplinkRequest", NULL },
8779   {  2, &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset, -1, -1, "emergencyReset", NULL },
8780   { 0, NULL, 0, 0, NULL, NULL }
8781 };
8782
8783 static int
8784 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_) {
8785   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8786                                     gsm_map_ms_AdditionalSubscriptions_bits, hf_index, ett_gsm_map_ms_AdditionalSubscriptions,
8787                                     NULL);
8788
8789   return offset;
8790 }
8791
8792
8793
8794 static int
8795 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_) {
8796   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8797                                     NULL, hf_index, -1,
8798                                     NULL);
8799
8800   return offset;
8801 }
8802
8803
8804 static const ber_sequence_t gsm_map_ms_VoiceGroupCallData_sequence[] = {
8805   { &hf_gsm_map_ms_groupId  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId },
8806   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8807   { &hf_gsm_map_ms_additionalSubscriptions, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AdditionalSubscriptions },
8808   { &hf_gsm_map_ms_additionalInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
8809   { &hf_gsm_map_ms_longGroupId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Long_GroupId },
8810   { NULL, 0, 0, 0, NULL }
8811 };
8812
8813 static int
8814 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_) {
8815   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8816                                    gsm_map_ms_VoiceGroupCallData_sequence, hf_index, ett_gsm_map_ms_VoiceGroupCallData);
8817
8818   return offset;
8819 }
8820
8821
8822 static const ber_sequence_t gsm_map_ms_VGCSDataList_sequence_of[1] = {
8823   { &hf_gsm_map_ms_VGCSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceGroupCallData },
8824 };
8825
8826 static int
8827 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_) {
8828   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8829                                       gsm_map_ms_VGCSDataList_sequence_of, hf_index, ett_gsm_map_ms_VGCSDataList);
8830
8831   return offset;
8832 }
8833
8834
8835 static const value_string gsm_map_ms_O_BcsmTriggerDetectionPoint_vals[] = {
8836   {   2, "collectedInfo" },
8837   {   4, "routeSelectFailure" },
8838   { 0, NULL }
8839 };
8840
8841
8842 static int
8843 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_) {
8844   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8845                                   NULL);
8846
8847   return offset;
8848 }
8849
8850
8851
8852 static int
8853 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_) {
8854   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8855                                                 NULL);
8856
8857   return offset;
8858 }
8859
8860
8861 static const value_string gsm_map_ms_DefaultCallHandling_vals[] = {
8862   {   0, "continueCall" },
8863   {   1, "releaseCall" },
8864   { 0, NULL }
8865 };
8866
8867
8868 static int
8869 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_) {
8870   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8871                                   NULL);
8872
8873   return offset;
8874 }
8875
8876
8877 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPData_sequence[] = {
8878   { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint },
8879   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
8880   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8881   { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling },
8882   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8883   { NULL, 0, 0, 0, NULL }
8884 };
8885
8886 static int
8887 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_) {
8888   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8889                                    gsm_map_ms_O_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPData);
8890
8891   return offset;
8892 }
8893
8894
8895 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of[1] = {
8896   { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPData },
8897 };
8898
8899 static int
8900 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_) {
8901   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8902                                       gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPDataList);
8903
8904   return offset;
8905 }
8906
8907
8908
8909 static int
8910 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_) {
8911   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8912                                                 NULL);
8913
8914   return offset;
8915 }
8916
8917
8918 static const ber_sequence_t gsm_map_ms_O_CSI_sequence[] = {
8919   { &hf_gsm_map_ms_o_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPDataList },
8920   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8921   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
8922   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8923   { &hf_gsm_map_ms_csiActive, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8924   { NULL, 0, 0, 0, NULL }
8925 };
8926
8927 static int
8928 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_) {
8929   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8930                                    gsm_map_ms_O_CSI_sequence, hf_index, ett_gsm_map_ms_O_CSI);
8931
8932   return offset;
8933 }
8934
8935
8936 static const ber_sequence_t gsm_map_ms_SS_EventList_sequence_of[1] = {
8937   { &hf_gsm_map_ms_SS_EventList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
8938 };
8939
8940 static int
8941 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_) {
8942   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8943                                       gsm_map_ms_SS_EventList_sequence_of, hf_index, ett_gsm_map_ms_SS_EventList);
8944
8945   return offset;
8946 }
8947
8948
8949 static const ber_sequence_t gsm_map_ms_SS_CamelData_sequence[] = {
8950   { &hf_gsm_map_ms_ss_EventList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_EventList },
8951   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
8952   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8953   { NULL, 0, 0, 0, NULL }
8954 };
8955
8956 static int
8957 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_) {
8958   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8959                                    gsm_map_ms_SS_CamelData_sequence, hf_index, ett_gsm_map_ms_SS_CamelData);
8960
8961   return offset;
8962 }
8963
8964
8965 static const ber_sequence_t gsm_map_ms_SS_CSI_sequence[] = {
8966   { &hf_gsm_map_ms_ss_CamelData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_CamelData },
8967   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8968   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8969   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8970   { NULL, 0, 0, 0, NULL }
8971 };
8972
8973 static int
8974 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_) {
8975   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8976                                    gsm_map_ms_SS_CSI_sequence, hf_index, ett_gsm_map_ms_SS_CSI);
8977
8978   return offset;
8979 }
8980
8981
8982 static const value_string gsm_map_ms_MatchType_vals[] = {
8983   {   0, "inhibiting" },
8984   {   1, "enabling" },
8985   { 0, NULL }
8986 };
8987
8988
8989 static int
8990 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_) {
8991   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8992                                   NULL);
8993
8994   return offset;
8995 }
8996
8997
8998 static const ber_sequence_t gsm_map_ms_DestinationNumberList_sequence_of[1] = {
8999   { &hf_gsm_map_ms_DestinationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9000 };
9001
9002 static int
9003 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_) {
9004   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9005                                       gsm_map_ms_DestinationNumberList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberList);
9006
9007   return offset;
9008 }
9009
9010
9011
9012 static int
9013 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_) {
9014   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9015                                                 NULL);
9016
9017   return offset;
9018 }
9019
9020
9021 static const ber_sequence_t gsm_map_ms_DestinationNumberLengthList_sequence_of[1] = {
9022   { &hf_gsm_map_ms_DestinationNumberLengthList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_INTEGER_1_maxNumOfISDN_AddressDigits },
9023 };
9024
9025 static int
9026 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_) {
9027   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9028                                       gsm_map_ms_DestinationNumberLengthList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberLengthList);
9029
9030   return offset;
9031 }
9032
9033
9034 static const ber_sequence_t gsm_map_ms_DestinationNumberCriteria_sequence[] = {
9035   { &hf_gsm_map_ms_matchType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MatchType },
9036   { &hf_gsm_map_ms_destinationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberList },
9037   { &hf_gsm_map_ms_destinationNumberLengthList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberLengthList },
9038   { NULL, 0, 0, 0, NULL }
9039 };
9040
9041 static int
9042 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_) {
9043   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9044                                    gsm_map_ms_DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_ms_DestinationNumberCriteria);
9045
9046   return offset;
9047 }
9048
9049
9050 static const ber_sequence_t gsm_map_ms_BasicServiceCriteria_sequence_of[1] = {
9051   { &hf_gsm_map_ms_BasicServiceCriteria_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
9052 };
9053
9054 static int
9055 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_) {
9056   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9057                                       gsm_map_ms_BasicServiceCriteria_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceCriteria);
9058
9059   return offset;
9060 }
9061
9062
9063 static const value_string gsm_map_ms_CallTypeCriteria_vals[] = {
9064   {   0, "forwarded" },
9065   {   1, "notForwarded" },
9066   { 0, NULL }
9067 };
9068
9069
9070 static int
9071 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_) {
9072   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9073                                   NULL);
9074
9075   return offset;
9076 }
9077
9078
9079
9080 static int
9081 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_) {
9082   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9083                                        NULL);
9084
9085   return offset;
9086 }
9087
9088
9089 static const ber_sequence_t gsm_map_ms_O_CauseValueCriteria_sequence_of[1] = {
9090   { &hf_gsm_map_ms_O_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue },
9091 };
9092
9093 static int
9094 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_) {
9095   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9096                                       gsm_map_ms_O_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_O_CauseValueCriteria);
9097
9098   return offset;
9099 }
9100
9101
9102 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDP_Criteria_sequence[] = {
9103   { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint },
9104   { &hf_gsm_map_ms_destinationNumberCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberCriteria },
9105   { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria },
9106   { &hf_gsm_map_ms_callTypeCriteria, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallTypeCriteria },
9107   { &hf_gsm_map_ms_o_CauseValueCriteria, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CauseValueCriteria },
9108   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9109   { NULL, 0, 0, 0, NULL }
9110 };
9111
9112 static int
9113 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_) {
9114   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9115                                    gsm_map_ms_O_BcsmCamelTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDP_Criteria);
9116
9117   return offset;
9118 }
9119
9120
9121 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of[1] = {
9122   { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDP_Criteria },
9123 };
9124
9125 static int
9126 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_) {
9127   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9128                                       gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList);
9129
9130   return offset;
9131 }
9132
9133
9134
9135 static int
9136 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_) {
9137   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9138                                        NULL);
9139
9140   return offset;
9141 }
9142
9143
9144 static const ber_sequence_t gsm_map_ms_MobilityTriggers_sequence_of[1] = {
9145   { &hf_gsm_map_ms_MobilityTriggers_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MM_Code },
9146 };
9147
9148 static int
9149 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_) {
9150   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9151                                       gsm_map_ms_MobilityTriggers_sequence_of, hf_index, ett_gsm_map_ms_MobilityTriggers);
9152
9153   return offset;
9154 }
9155
9156
9157 static const ber_sequence_t gsm_map_ms_M_CSI_sequence[] = {
9158   { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers },
9159   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
9160   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9161   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9162   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9163   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9164   { NULL, 0, 0, 0, NULL }
9165 };
9166
9167 static int
9168 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_) {
9169   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9170                                    gsm_map_ms_M_CSI_sequence, hf_index, ett_gsm_map_ms_M_CSI);
9171
9172   return offset;
9173 }
9174
9175
9176 static const value_string gsm_map_ms_SMS_TriggerDetectionPoint_vals[] = {
9177   {   1, "sms-CollectedInfo" },
9178   {   2, "sms-DeliveryRequest" },
9179   { 0, NULL }
9180 };
9181
9182
9183 static int
9184 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_) {
9185   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9186                                   NULL);
9187
9188   return offset;
9189 }
9190
9191
9192 static const value_string gsm_map_ms_DefaultSMS_Handling_vals[] = {
9193   {   0, "continueTransaction" },
9194   {   1, "releaseTransaction" },
9195   { 0, NULL }
9196 };
9197
9198
9199 static int
9200 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_) {
9201   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9202                                   NULL);
9203
9204   return offset;
9205 }
9206
9207
9208 static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_Data_sequence[] = {
9209   { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint },
9210   { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
9211   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9212   { &hf_gsm_map_ms_defaultSMS_Handling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultSMS_Handling },
9213   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9214   { NULL, 0, 0, 0, NULL }
9215 };
9216
9217 static int
9218 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_) {
9219   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9220                                    gsm_map_ms_SMS_CAMEL_TDP_Data_sequence, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_Data);
9221
9222   return offset;
9223 }
9224
9225
9226 static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of[1] = {
9227   { &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 },
9228 };
9229
9230 static int
9231 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_) {
9232   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9233                                       gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_DataList);
9234
9235   return offset;
9236 }
9237
9238
9239 static const ber_sequence_t gsm_map_ms_SMS_CSI_sequence[] = {
9240   { &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 },
9241   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
9242   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9243   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9244   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9245   { NULL, 0, 0, 0, NULL }
9246 };
9247
9248 static int
9249 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_) {
9250   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9251                                    gsm_map_ms_SMS_CSI_sequence, hf_index, ett_gsm_map_ms_SMS_CSI);
9252
9253   return offset;
9254 }
9255
9256
9257 static const value_string gsm_map_ms_T_BcsmTriggerDetectionPoint_vals[] = {
9258   {  12, "termAttemptAuthorized" },
9259   {  13, "tBusy" },
9260   {  14, "tNoAnswer" },
9261   { 0, NULL }
9262 };
9263
9264
9265 static int
9266 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_) {
9267   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9268                                   NULL);
9269
9270   return offset;
9271 }
9272
9273
9274 static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPData_sequence[] = {
9275   { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint },
9276   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
9277   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9278   { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling },
9279   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9280   { NULL, 0, 0, 0, NULL }
9281 };
9282
9283 static int
9284 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_) {
9285   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9286                                    gsm_map_ms_T_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPData);
9287
9288   return offset;
9289 }
9290
9291
9292 static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of[1] = {
9293   { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPData },
9294 };
9295
9296 static int
9297 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_) {
9298   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9299                                       gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPDataList);
9300
9301   return offset;
9302 }
9303
9304
9305 static const ber_sequence_t gsm_map_ms_T_CSI_sequence[] = {
9306   { &hf_gsm_map_ms_t_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPDataList },
9307   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9308   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
9309   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9310   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9311   { NULL, 0, 0, 0, NULL }
9312 };
9313
9314 static int
9315 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_) {
9316   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9317                                    gsm_map_ms_T_CSI_sequence, hf_index, ett_gsm_map_ms_T_CSI);
9318
9319   return offset;
9320 }
9321
9322
9323 static const ber_sequence_t gsm_map_ms_T_CauseValueCriteria_sequence_of[1] = {
9324   { &hf_gsm_map_ms_T_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue },
9325 };
9326
9327 static int
9328 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_) {
9329   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9330                                       gsm_map_ms_T_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_T_CauseValueCriteria);
9331
9332   return offset;
9333 }
9334
9335
9336 static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence[] = {
9337   { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint },
9338   { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria },
9339   { &hf_gsm_map_ms_t_CauseValueCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CauseValueCriteria },
9340   { NULL, 0, 0, 0, NULL }
9341 };
9342
9343 static int
9344 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_) {
9345   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9346                                    gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria);
9347
9348   return offset;
9349 }
9350
9351
9352 static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = {
9353   { &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 },
9354 };
9355
9356 static int
9357 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_) {
9358   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9359                                       gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList);
9360
9361   return offset;
9362 }
9363
9364
9365 static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriterium_sequence[] = {
9366   { &hf_gsm_map_ms_dialledNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9367   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
9368   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9369   { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DefaultCallHandling },
9370   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9371   { NULL, 0, 0, 0, NULL }
9372 };
9373
9374 static int
9375 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_) {
9376   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9377                                    gsm_map_ms_DP_AnalysedInfoCriterium_sequence, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriterium);
9378
9379   return offset;
9380 }
9381
9382
9383 static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of[1] = {
9384   { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriterium },
9385 };
9386
9387 static int
9388 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_) {
9389   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9390                                       gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriteriaList);
9391
9392   return offset;
9393 }
9394
9395
9396 static const ber_sequence_t gsm_map_ms_D_CSI_sequence[] = {
9397   { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriteriaList },
9398   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
9399   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9400   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9401   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9402   { NULL, 0, 0, 0, NULL }
9403 };
9404
9405 static int
9406 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_) {
9407   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9408                                    gsm_map_ms_D_CSI_sequence, hf_index, ett_gsm_map_ms_D_CSI);
9409
9410   return offset;
9411 }
9412
9413
9414 static const value_string gsm_map_ms_MT_SMS_TPDU_Type_vals[] = {
9415   {   0, "sms-DELIVER" },
9416   {   1, "sms-SUBMIT-REPORT" },
9417   {   2, "sms-STATUS-REPORT" },
9418   { 0, NULL }
9419 };
9420
9421
9422 static int
9423 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_) {
9424   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9425                                   NULL);
9426
9427   return offset;
9428 }
9429
9430
9431 static const ber_sequence_t gsm_map_ms_TPDU_TypeCriterion_sequence_of[1] = {
9432   { &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 },
9433 };
9434
9435 static int
9436 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_) {
9437   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9438                                       gsm_map_ms_TPDU_TypeCriterion_sequence_of, hf_index, ett_gsm_map_ms_TPDU_TypeCriterion);
9439
9440   return offset;
9441 }
9442
9443
9444 static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_Criteria_sequence[] = {
9445   { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint },
9446   { &hf_gsm_map_ms_tpdu_TypeCriterion, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TPDU_TypeCriterion },
9447   { NULL, 0, 0, 0, NULL }
9448 };
9449
9450 static int
9451 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_) {
9452   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9453                                    gsm_map_ms_MT_smsCAMELTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_Criteria);
9454
9455   return offset;
9456 }
9457
9458
9459 static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of[1] = {
9460   { &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 },
9461 };
9462
9463 static int
9464 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_) {
9465   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9466                                       gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList);
9467
9468   return offset;
9469 }
9470
9471
9472 static const ber_sequence_t gsm_map_ms_VlrCamelSubscriptionInfo_sequence[] = {
9473   { &hf_gsm_map_ms_o_CSI    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
9474   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9475   { &hf_gsm_map_ms_ss_CSI   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI },
9476   { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
9477   { &hf_gsm_map_ms_tif_CSI  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9478   { &hf_gsm_map_ms_m_CSI    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI },
9479   { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
9480   { &hf_gsm_map_ms_vt_CSI   , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
9481   { &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 },
9482   { &hf_gsm_map_ms_d_CSI    , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
9483   { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
9484   { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
9485   { NULL, 0, 0, 0, NULL }
9486 };
9487
9488 static int
9489 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_) {
9490   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9491                                    gsm_map_ms_VlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_VlrCamelSubscriptionInfo);
9492
9493   return offset;
9494 }
9495
9496
9497
9498 static int
9499 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_) {
9500 #line 481 "gsmmap.cnf"
9501         guint8 pdp_type_org;
9502         tvbuff_t        *parameter_tvb;
9503
9504
9505   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9506                                        &parameter_tvb);
9507
9508
9509  if (!parameter_tvb)
9510         return offset;
9511         proto_tree_add_item(tree, hf_gsm_map_pdp_type_org, parameter_tvb, 0,1,FALSE);
9512         pdp_type_org = tvb_get_guint8(parameter_tvb,1);
9513         switch (pdp_type_org){
9514                 case 0: /* ETSI */
9515                         proto_tree_add_item(tree, hf_gsm_map_etsi_pdp_type_number, parameter_tvb, 0,1,FALSE);
9516                         break;
9517                 case 1: /* IETF */
9518                         proto_tree_add_item(tree, hf_gsm_map_ietf_pdp_type_number, parameter_tvb, 0,1,FALSE);
9519                         break;
9520                 default:
9521                 break;
9522         }
9523
9524
9525
9526   return offset;
9527 }
9528
9529
9530
9531 int
9532 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_) {
9533 #line 503 "gsmmap.cnf"
9534
9535
9536         tvbuff_t        *parameter_tvb;
9537
9538   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9539                                        &parameter_tvb);
9540
9541
9542          if (!parameter_tvb)
9543                 return offset;
9544         de_sm_qos(parameter_tvb, tree, 0, 3, NULL,0);
9545
9546
9547
9548   return offset;
9549 }
9550
9551
9552
9553 int
9554 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_) {
9555 #line 514 "gsmmap.cnf"
9556
9557         tvbuff_t        *parameter_tvb;
9558
9559   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9560                                        &parameter_tvb);
9561
9562
9563         if (!parameter_tvb)
9564                 return offset;
9565         dissect_gsm_map_ext_qos_subscribed(tvb, actx->pinfo, tree, actx);
9566
9567
9568
9569   return offset;
9570 }
9571
9572
9573
9574 static int
9575 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_) {
9576   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9577                                        NULL);
9578
9579   return offset;
9580 }
9581
9582
9583
9584 int
9585 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_) {
9586   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9587                                        NULL);
9588
9589   return offset;
9590 }
9591
9592
9593
9594 static int
9595 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_) {
9596   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9597                                        NULL);
9598
9599   return offset;
9600 }
9601
9602
9603 static const ber_sequence_t gsm_map_ms_PDP_Context_sequence[] = {
9604   { &hf_gsm_map_ms_pdp_ContextId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
9605   { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type },
9606   { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
9607   { &hf_gsm_map_ms_qos_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QoS_Subscribed },
9608   { &hf_gsm_map_ms_vplmnAddressAllowed, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9609   { &hf_gsm_map_ms_apn      , BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
9610   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9611   { &hf_gsm_map_ms_ext_QoS_Subscribed, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
9612   { &hf_gsm_map_ms_pdp_ChargingCharacteristics, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
9613   { &hf_gsm_map_ms_ext2_QoS_Subscribed, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
9614   { &hf_gsm_map_ms_ext3_QoS_Subscribed, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
9615   { NULL, 0, 0, 0, NULL }
9616 };
9617
9618 static int
9619 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_) {
9620   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9621                                    gsm_map_ms_PDP_Context_sequence, hf_index, ett_gsm_map_ms_PDP_Context);
9622
9623   return offset;
9624 }
9625
9626
9627 static const ber_sequence_t gsm_map_ms_GPRSDataList_sequence_of[1] = {
9628   { &hf_gsm_map_ms_GPRSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_Context },
9629 };
9630
9631 static int
9632 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_) {
9633   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9634                                       gsm_map_ms_GPRSDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRSDataList);
9635
9636   return offset;
9637 }
9638
9639
9640 static const ber_sequence_t gsm_map_ms_GPRSSubscriptionData_sequence[] = {
9641   { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9642   { &hf_gsm_map_ms_gprsDataList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSDataList },
9643   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9644   { NULL, 0, 0, 0, NULL }
9645 };
9646
9647 static int
9648 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_) {
9649   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9650                                    gsm_map_ms_GPRSSubscriptionData_sequence, hf_index, ett_gsm_map_ms_GPRSSubscriptionData);
9651
9652   return offset;
9653 }
9654
9655
9656 static const value_string gsm_map_ms_NetworkAccessMode_vals[] = {
9657   {   0, "packetAndCircuit" },
9658   {   1, "onlyCircuit" },
9659   {   2, "onlyPacket" },
9660   { 0, NULL }
9661 };
9662
9663
9664 static int
9665 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_) {
9666   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9667                                   NULL);
9668
9669   return offset;
9670 }
9671
9672
9673 static const value_string gsm_map_ms_LSAOnlyAccessIndicator_vals[] = {
9674   {   0, "accessOutsideLSAsAllowed" },
9675   {   1, "accessOutsideLSAsRestricted" },
9676   { 0, NULL }
9677 };
9678
9679
9680 static int
9681 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_) {
9682   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9683                                   NULL);
9684
9685   return offset;
9686 }
9687
9688
9689
9690 int
9691 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_) {
9692   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9693                                        NULL);
9694
9695   return offset;
9696 }
9697
9698
9699
9700 static int
9701 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_) {
9702   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9703                                        NULL);
9704
9705   return offset;
9706 }
9707
9708
9709 static const ber_sequence_t gsm_map_ms_LSAData_sequence[] = {
9710   { &hf_gsm_map_ms_lsaIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
9711   { &hf_gsm_map_ms_lsaAttributes, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAAttributes },
9712   { &hf_gsm_map_ms_lsaActiveModeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9713   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9714   { NULL, 0, 0, 0, NULL }
9715 };
9716
9717 static int
9718 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_) {
9719   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9720                                    gsm_map_ms_LSAData_sequence, hf_index, ett_gsm_map_ms_LSAData);
9721
9722   return offset;
9723 }
9724
9725
9726 static const ber_sequence_t gsm_map_ms_LSADataList_sequence_of[1] = {
9727   { &hf_gsm_map_ms_LSADataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAData },
9728 };
9729
9730 static int
9731 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_) {
9732   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9733                                       gsm_map_ms_LSADataList_sequence_of, hf_index, ett_gsm_map_ms_LSADataList);
9734
9735   return offset;
9736 }
9737
9738
9739 static const ber_sequence_t gsm_map_ms_LSAInformation_sequence[] = {
9740   { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9741   { &hf_gsm_map_ms_lsaOnlyAccessIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAOnlyAccessIndicator },
9742   { &hf_gsm_map_ms_lsaDataList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSADataList },
9743   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9744   { NULL, 0, 0, 0, NULL }
9745 };
9746
9747 static int
9748 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_) {
9749   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9750                                    gsm_map_ms_LSAInformation_sequence, hf_index, ett_gsm_map_ms_LSAInformation);
9751
9752   return offset;
9753 }
9754
9755
9756 static const ber_sequence_t gsm_map_ms_GMLC_List_sequence_of[1] = {
9757   { &hf_gsm_map_ms_GMLC_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9758 };
9759
9760 static int
9761 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_) {
9762   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9763                                       gsm_map_ms_GMLC_List_sequence_of, hf_index, ett_gsm_map_ms_GMLC_List);
9764
9765   return offset;
9766 }
9767
9768
9769 const value_string gsm_map_ms_NotificationToMSUser_vals[] = {
9770   {   0, "notifyLocationAllowed" },
9771   {   1, "notifyAndVerify-LocationAllowedIfNoResponse" },
9772   {   2, "notifyAndVerify-LocationNotAllowedIfNoResponse" },
9773   {   3, "locationNotAllowed" },
9774   { 0, NULL }
9775 };
9776
9777
9778 int
9779 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_) {
9780   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9781                                   NULL);
9782
9783   return offset;
9784 }
9785
9786
9787 static const value_string gsm_map_ms_GMLC_Restriction_vals[] = {
9788   {   0, "gmlc-List" },
9789   {   1, "home-Country" },
9790   { 0, NULL }
9791 };
9792
9793
9794 static int
9795 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_) {
9796   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9797                                   NULL);
9798
9799   return offset;
9800 }
9801
9802
9803 static const ber_sequence_t gsm_map_ms_ExternalClient_sequence[] = {
9804   { &hf_gsm_map_ms_clientIdentity, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientExternalID },
9805   { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction },
9806   { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
9807   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9808   { NULL, 0, 0, 0, NULL }
9809 };
9810
9811 static int
9812 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_) {
9813   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9814                                    gsm_map_ms_ExternalClient_sequence, hf_index, ett_gsm_map_ms_ExternalClient);
9815
9816   return offset;
9817 }
9818
9819
9820 static const ber_sequence_t gsm_map_ms_ExternalClientList_sequence_of[1] = {
9821   { &hf_gsm_map_ms_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient },
9822 };
9823
9824 static int
9825 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_) {
9826   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9827                                       gsm_map_ms_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_ExternalClientList);
9828
9829   return offset;
9830 }
9831
9832
9833 static const ber_sequence_t gsm_map_ms_PLMNClientList_sequence_of[1] = {
9834   { &hf_gsm_map_ms_PLMNClientList_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientInternalID },
9835 };
9836
9837 static int
9838 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_) {
9839   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9840                                       gsm_map_ms_PLMNClientList_sequence_of, hf_index, ett_gsm_map_ms_PLMNClientList);
9841
9842   return offset;
9843 }
9844
9845
9846 static const ber_sequence_t gsm_map_ms_Ext_ExternalClientList_sequence_of[1] = {
9847   { &hf_gsm_map_ms_Ext_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient },
9848 };
9849
9850 static int
9851 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_) {
9852   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9853                                       gsm_map_ms_Ext_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ExternalClientList);
9854
9855   return offset;
9856 }
9857
9858
9859 static const ber_sequence_t gsm_map_ms_ServiceType_sequence[] = {
9860   { &hf_gsm_map_ms_serviceTypeIdentity, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSServiceTypeID },
9861   { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction },
9862   { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
9863   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9864   { NULL, 0, 0, 0, NULL }
9865 };
9866
9867 static int
9868 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_) {
9869   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9870                                    gsm_map_ms_ServiceType_sequence, hf_index, ett_gsm_map_ms_ServiceType);
9871
9872   return offset;
9873 }
9874
9875
9876 static const ber_sequence_t gsm_map_ms_ServiceTypeList_sequence_of[1] = {
9877   { &hf_gsm_map_ms_ServiceTypeList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceType },
9878 };
9879
9880 static int
9881 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_) {
9882   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9883                                       gsm_map_ms_ServiceTypeList_sequence_of, hf_index, ett_gsm_map_ms_ServiceTypeList);
9884
9885   return offset;
9886 }
9887
9888
9889 static const ber_sequence_t gsm_map_ms_LCS_PrivacyClass_sequence[] = {
9890   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
9891   { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
9892   { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
9893   { &hf_gsm_map_ms_externalClientList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ExternalClientList },
9894   { &hf_gsm_map_ms_plmnClientList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PLMNClientList },
9895   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9896   { &hf_gsm_map_ms_ext_externalClientList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ExternalClientList },
9897   { &hf_gsm_map_ms_serviceTypeList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceTypeList },
9898   { NULL, 0, 0, 0, NULL }
9899 };
9900
9901 static int
9902 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_) {
9903   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9904                                    gsm_map_ms_LCS_PrivacyClass_sequence, hf_index, ett_gsm_map_ms_LCS_PrivacyClass);
9905
9906   return offset;
9907 }
9908
9909
9910 static const ber_sequence_t gsm_map_ms_LCS_PrivacyExceptionList_sequence_of[1] = {
9911   { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LCS_PrivacyClass },
9912 };
9913
9914 static int
9915 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_) {
9916   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9917                                       gsm_map_ms_LCS_PrivacyExceptionList_sequence_of, hf_index, ett_gsm_map_ms_LCS_PrivacyExceptionList);
9918
9919   return offset;
9920 }
9921
9922
9923 static const ber_sequence_t gsm_map_ms_MOLR_Class_sequence[] = {
9924   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
9925   { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
9926   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9927   { NULL, 0, 0, 0, NULL }
9928 };
9929
9930 static int
9931 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_) {
9932   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9933                                    gsm_map_ms_MOLR_Class_sequence, hf_index, ett_gsm_map_ms_MOLR_Class);
9934
9935   return offset;
9936 }
9937
9938
9939 static const ber_sequence_t gsm_map_ms_MOLR_List_sequence_of[1] = {
9940   { &hf_gsm_map_ms_MOLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MOLR_Class },
9941 };
9942
9943 static int
9944 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_) {
9945   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9946                                       gsm_map_ms_MOLR_List_sequence_of, hf_index, ett_gsm_map_ms_MOLR_List);
9947
9948   return offset;
9949 }
9950
9951
9952 static const ber_sequence_t gsm_map_ms_LCSInformation_sequence[] = {
9953   { &hf_gsm_map_ms_gmlc_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_List },
9954   { &hf_gsm_map_ms_lcs_PrivacyExceptionList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList },
9955   { &hf_gsm_map_ms_molr_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MOLR_List },
9956   { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList },
9957   { NULL, 0, 0, 0, NULL }
9958 };
9959
9960 static int
9961 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_) {
9962   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9963                                    gsm_map_ms_LCSInformation_sequence, hf_index, ett_gsm_map_ms_LCSInformation);
9964
9965   return offset;
9966 }
9967
9968
9969
9970 static int
9971 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_) {
9972   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9973                                                 NULL);
9974
9975   return offset;
9976 }
9977
9978
9979
9980 static int
9981 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_) {
9982   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9983                                        NULL);
9984
9985   return offset;
9986 }
9987
9988
9989 static const value_string gsm_map_ms_GPRS_TriggerDetectionPoint_vals[] = {
9990   {   1, "attach" },
9991   {   2, "attachChangeOfPosition" },
9992   {  11, "pdp-ContextEstablishment" },
9993   {  12, "pdp-ContextEstablishmentAcknowledgement" },
9994   {  14, "pdp-ContextChangeOfPosition" },
9995   { 0, NULL }
9996 };
9997
9998
9999 static int
10000 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_) {
10001   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10002                                   NULL);
10003
10004   return offset;
10005 }
10006
10007
10008 static const value_string gsm_map_ms_DefaultGPRS_Handling_vals[] = {
10009   {   0, "continueTransaction" },
10010   {   1, "releaseTransaction" },
10011   { 0, NULL }
10012 };
10013
10014
10015 static int
10016 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_) {
10017   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10018                                   NULL);
10019
10020   return offset;
10021 }
10022
10023
10024 static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPData_sequence[] = {
10025   { &hf_gsm_map_ms_gprs_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_TriggerDetectionPoint },
10026   { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
10027   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10028   { &hf_gsm_map_ms_defaultSessionHandling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultGPRS_Handling },
10029   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10030   { NULL, 0, 0, 0, NULL }
10031 };
10032
10033 static int
10034 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_) {
10035   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10036                                    gsm_map_ms_GPRS_CamelTDPData_sequence, hf_index, ett_gsm_map_ms_GPRS_CamelTDPData);
10037
10038   return offset;
10039 }
10040
10041
10042 static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPDataList_sequence_of[1] = {
10043   { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GPRS_CamelTDPData },
10044 };
10045
10046 static int
10047 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_) {
10048   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10049                                       gsm_map_ms_GPRS_CamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRS_CamelTDPDataList);
10050
10051   return offset;
10052 }
10053
10054
10055 static const ber_sequence_t gsm_map_ms_GPRS_CSI_sequence[] = {
10056   { &hf_gsm_map_ms_gprs_CamelTDPDataList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CamelTDPDataList },
10057   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
10058   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10059   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10060   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10061   { NULL, 0, 0, 0, NULL }
10062 };
10063
10064 static int
10065 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_) {
10066   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10067                                    gsm_map_ms_GPRS_CSI_sequence, hf_index, ett_gsm_map_ms_GPRS_CSI);
10068
10069   return offset;
10070 }
10071
10072
10073 static const ber_sequence_t gsm_map_ms_MG_CSI_sequence[] = {
10074   { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers },
10075   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
10076   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10077   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10078   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10079   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10080   { NULL, 0, 0, 0, NULL }
10081 };
10082
10083 static int
10084 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_) {
10085   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10086                                    gsm_map_ms_MG_CSI_sequence, hf_index, ett_gsm_map_ms_MG_CSI);
10087
10088   return offset;
10089 }
10090
10091
10092 static const ber_sequence_t gsm_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence[] = {
10093   { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI },
10094   { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
10095   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10096   { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
10097   { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
10098   { &hf_gsm_map_ms_mg_csi   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI },
10099   { NULL, 0, 0, 0, NULL }
10100 };
10101
10102 static int
10103 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_) {
10104   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10105                                    gsm_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo);
10106
10107   return offset;
10108 }
10109
10110
10111 static const asn_namedbit gsm_map_ms_AccessRestrictionData_bits[] = {
10112   {  0, &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed, -1, -1, "utranNotAllowed", NULL },
10113   {  1, &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed, -1, -1, "geranNotAllowed", NULL },
10114   {  2, &hf_gsm_map_ms_AccessRestrictionData_ganNotAllowed, -1, -1, "ganNotAllowed", NULL },
10115   {  3, &hf_gsm_map_ms_AccessRestrictionData_i_hspa_evolutionNotAllowed, -1, -1, "i-hspa-evolutionNotAllowed", NULL },
10116   {  4, &hf_gsm_map_ms_AccessRestrictionData_e_utranNotAllowed, -1, -1, "e-utranNotAllowed", NULL },
10117   {  5, &hf_gsm_map_ms_AccessRestrictionData_ho_toNon3GPP_AccessNotAllowed, -1, -1, "ho-toNon3GPP-AccessNotAllowed", NULL },
10118   { 0, NULL, 0, 0, NULL, NULL }
10119 };
10120
10121 static int
10122 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_) {
10123   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10124                                     gsm_map_ms_AccessRestrictionData_bits, hf_index, ett_gsm_map_ms_AccessRestrictionData,
10125                                     NULL);
10126
10127   return offset;
10128 }
10129
10130
10131
10132 static int
10133 dissect_gsm_map_ms_APN_OI_Replacement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10134   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10135                                        NULL);
10136
10137   return offset;
10138 }
10139
10140
10141
10142 static int
10143 dissect_gsm_map_ms_RFSP_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_) {
10144   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10145                                                 NULL);
10146
10147   return offset;
10148 }
10149
10150
10151
10152 static int
10153 dissect_gsm_map_ms_Bandwidth(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10154   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10155                                                 NULL);
10156
10157   return offset;
10158 }
10159
10160
10161 static const ber_sequence_t gsm_map_ms_AMBR_sequence[] = {
10162   { &hf_gsm_map_ms_max_RequestedBandwidth_UL, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Bandwidth },
10163   { &hf_gsm_map_ms_max_RequestedBandwidth_DL, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Bandwidth },
10164   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10165   { NULL, 0, 0, 0, NULL }
10166 };
10167
10168 static int
10169 dissect_gsm_map_ms_AMBR(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10170   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10171                                    gsm_map_ms_AMBR_sequence, hf_index, ett_gsm_map_ms_AMBR);
10172
10173   return offset;
10174 }
10175
10176
10177
10178 static int
10179 dissect_gsm_map_ms_QoS_Class_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_) {
10180   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10181                                                 NULL);
10182
10183   return offset;
10184 }
10185
10186
10187
10188 static int
10189 dissect_gsm_map_ms_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_) {
10190   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10191                                                 NULL);
10192
10193   return offset;
10194 }
10195
10196
10197 static const ber_sequence_t gsm_map_ms_Allocation_Retention_Priority_sequence[] = {
10198   { &hf_gsm_map_ms_priority_level, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_INTEGER },
10199   { &hf_gsm_map_ms_pre_emption_capability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
10200   { &hf_gsm_map_ms_pre_emption_vulnerability, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
10201   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10202   { NULL, 0, 0, 0, NULL }
10203 };
10204
10205 static int
10206 dissect_gsm_map_ms_Allocation_Retention_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_) {
10207   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10208                                    gsm_map_ms_Allocation_Retention_Priority_sequence, hf_index, ett_gsm_map_ms_Allocation_Retention_Priority);
10209
10210   return offset;
10211 }
10212
10213
10214 static const ber_sequence_t gsm_map_ms_EPS_QoS_Subscribed_sequence[] = {
10215   { &hf_gsm_map_ms_qos_Class_Identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QoS_Class_Identifier },
10216   { &hf_gsm_map_ms_allocation_Retention_Priority, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Allocation_Retention_Priority },
10217   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10218   { NULL, 0, 0, 0, NULL }
10219 };
10220
10221 static int
10222 dissect_gsm_map_ms_EPS_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_) {
10223   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10224                                    gsm_map_ms_EPS_QoS_Subscribed_sequence, hf_index, ett_gsm_map_ms_EPS_QoS_Subscribed);
10225
10226   return offset;
10227 }
10228
10229
10230 static const value_string gsm_map_ms_PDN_GW_AllocationType_vals[] = {
10231   {   0, "static" },
10232   {   1, "dynamic" },
10233   { 0, NULL }
10234 };
10235
10236
10237 static int
10238 dissect_gsm_map_ms_PDN_GW_AllocationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10239   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10240                                   NULL);
10241
10242   return offset;
10243 }
10244
10245
10246 static const ber_sequence_t gsm_map_ms_SpecificAPNInfo_sequence[] = {
10247   { &hf_gsm_map_ms_apn      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
10248   { &hf_gsm_map_ms_pdn_gw_Identity, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Identity },
10249   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10250   { NULL, 0, 0, 0, NULL }
10251 };
10252
10253 static int
10254 dissect_gsm_map_ms_SpecificAPNInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10255   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10256                                    gsm_map_ms_SpecificAPNInfo_sequence, hf_index, ett_gsm_map_ms_SpecificAPNInfo);
10257
10258   return offset;
10259 }
10260
10261
10262 static const ber_sequence_t gsm_map_ms_SpecificAPNInfoList_sequence_of[1] = {
10263   { &hf_gsm_map_ms_SpecificAPNInfoList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SpecificAPNInfo },
10264 };
10265
10266 static int
10267 dissect_gsm_map_ms_SpecificAPNInfoList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10268   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10269                                       gsm_map_ms_SpecificAPNInfoList_sequence_of, hf_index, ett_gsm_map_ms_SpecificAPNInfoList);
10270
10271   return offset;
10272 }
10273
10274
10275 static const ber_sequence_t gsm_map_ms_APN_Configuration_sequence[] = {
10276   { &hf_gsm_map_ms_contextId, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
10277   { &hf_gsm_map_ms_servedPartyIP_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
10278   { &hf_gsm_map_ms_apn      , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
10279   { &hf_gsm_map_ms_eps_qos_Subscribed, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_QoS_Subscribed },
10280   { &hf_gsm_map_ms_pdn_gw_Identity, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Identity },
10281   { &hf_gsm_map_ms_pdn_gw_AllocationType, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_AllocationType },
10282   { &hf_gsm_map_ms_vplmnAddressAllowed, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10283   { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
10284   { &hf_gsm_map_ms_ambr     , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AMBR },
10285   { &hf_gsm_map_ms_specificAPNInfoList, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificAPNInfoList },
10286   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10287   { NULL, 0, 0, 0, NULL }
10288 };
10289
10290 static int
10291 dissect_gsm_map_ms_APN_Configuration(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10292   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10293                                    gsm_map_ms_APN_Configuration_sequence, hf_index, ett_gsm_map_ms_APN_Configuration);
10294
10295   return offset;
10296 }
10297
10298
10299 static const ber_sequence_t gsm_map_ms_EPS_DataList_sequence_of[1] = {
10300   { &hf_gsm_map_ms_EPS_DataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_APN_Configuration },
10301 };
10302
10303 static int
10304 dissect_gsm_map_ms_EPS_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_) {
10305   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10306                                       gsm_map_ms_EPS_DataList_sequence_of, hf_index, ett_gsm_map_ms_EPS_DataList);
10307
10308   return offset;
10309 }
10310
10311
10312 static const ber_sequence_t gsm_map_ms_APN_ConfigurationProfile_sequence[] = {
10313   { &hf_gsm_map_ms_defaultContext, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
10314   { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10315   { &hf_gsm_map_ms_epsDataList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_DataList },
10316   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10317   { NULL, 0, 0, 0, NULL }
10318 };
10319
10320 static int
10321 dissect_gsm_map_ms_APN_ConfigurationProfile(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10322   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10323                                    gsm_map_ms_APN_ConfigurationProfile_sequence, hf_index, ett_gsm_map_ms_APN_ConfigurationProfile);
10324
10325   return offset;
10326 }
10327
10328
10329 static const ber_sequence_t gsm_map_ms_EPS_SubscriptionData_sequence[] = {
10330   { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement },
10331   { &hf_gsm_map_ms_rfsp_id  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RFSP_ID },
10332   { &hf_gsm_map_ms_ambr     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AMBR },
10333   { &hf_gsm_map_ms_apn_ConfigurationProfile, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_ConfigurationProfile },
10334   { &hf_gsm_map_ms_stn_sr   , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10335   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10336   { NULL, 0, 0, 0, NULL }
10337 };
10338
10339 static int
10340 dissect_gsm_map_ms_EPS_SubscriptionData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10341   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10342                                    gsm_map_ms_EPS_SubscriptionData_sequence, hf_index, ett_gsm_map_ms_EPS_SubscriptionData);
10343
10344   return offset;
10345 }
10346
10347
10348
10349 static int
10350 dissect_gsm_map_ms_CSG_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_) {
10351   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10352                                     NULL, hf_index, -1,
10353                                     NULL);
10354
10355   return offset;
10356 }
10357
10358
10359
10360 static int
10361 dissect_gsm_map_ms_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10362   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10363                                        NULL);
10364
10365   return offset;
10366 }
10367
10368
10369 static const ber_sequence_t gsm_map_ms_CSG_SubscriptionData_sequence[] = {
10370   { &hf_gsm_map_ms_csg_Id   , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CSG_Id },
10371   { &hf_gsm_map_ms_expirationDate, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Time },
10372   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10373   { NULL, 0, 0, 0, NULL }
10374 };
10375
10376 static int
10377 dissect_gsm_map_ms_CSG_SubscriptionData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10378   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10379                                    gsm_map_ms_CSG_SubscriptionData_sequence, hf_index, ett_gsm_map_ms_CSG_SubscriptionData);
10380
10381   return offset;
10382 }
10383
10384
10385 static const ber_sequence_t gsm_map_ms_CSG_SubscriptionDataList_sequence_of[1] = {
10386   { &hf_gsm_map_ms_CSG_SubscriptionDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CSG_SubscriptionData },
10387 };
10388
10389 static int
10390 dissect_gsm_map_ms_CSG_SubscriptionDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10391   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10392                                       gsm_map_ms_CSG_SubscriptionDataList_sequence_of, hf_index, ett_gsm_map_ms_CSG_SubscriptionDataList);
10393
10394   return offset;
10395 }
10396
10397
10398 static const ber_sequence_t gsm_map_ms_InsertSubscriberDataArg_sequence[] = {
10399   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10400   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10401   { &hf_gsm_map_ms_category , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category },
10402   { &hf_gsm_map_ms_subscriberStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberStatus },
10403   { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
10404   { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
10405   { &hf_gsm_map_ms_provisionedSS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_InfoList },
10406   { &hf_gsm_map_ms_odb_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
10407   { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10408   { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList },
10409   { &hf_gsm_map_ms_vbsSubscriptionData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VBSDataList },
10410   { &hf_gsm_map_ms_vgcsSubscriptionData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VGCSDataList },
10411   { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VlrCamelSubscriptionInfo },
10412   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10413   { &hf_gsm_map_ms_naea_PreferredCI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI },
10414   { &hf_gsm_map_ms_gprsSubscriptionData, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSSubscriptionData },
10415   { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10416   { &hf_gsm_map_ms_networkAccessMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NetworkAccessMode },
10417   { &hf_gsm_map_ms_lsaInformation, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAInformation },
10418   { &hf_gsm_map_ms_lmu_Indicator, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10419   { &hf_gsm_map_ms_lcsInformation, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCSInformation },
10420   { &hf_gsm_map_ms_istAlertTimer, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
10421   { &hf_gsm_map_ms_superChargerSupportedInHLR, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator },
10422   { &hf_gsm_map_ms_mc_SS_Info, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_SS_Info },
10423   { &hf_gsm_map_ms_cs_AllocationRetentionPriority, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CS_AllocationRetentionPriority },
10424   { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo },
10425   { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
10426   { &hf_gsm_map_ms_accessRestrictionData, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AccessRestrictionData },
10427   { &hf_gsm_map_ms_ics_Indicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
10428   { &hf_gsm_map_ms_eps_SubscriptionData, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_SubscriptionData },
10429   { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList },
10430   { NULL, 0, 0, 0, NULL }
10431 };
10432
10433 static int
10434 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_) {
10435   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10436                                    gsm_map_ms_InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataArg);
10437
10438   return offset;
10439 }
10440
10441
10442 static const ber_sequence_t gsm_map_ms_SubscriberData_sequence[] = {
10443   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10444   { &hf_gsm_map_ms_category , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category },
10445   { &hf_gsm_map_ms_subscriberStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberStatus },
10446   { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
10447   { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
10448   { &hf_gsm_map_ms_provisionedSS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_InfoList },
10449   { &hf_gsm_map_ms_odb_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
10450   { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10451   { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList },
10452   { &hf_gsm_map_ms_vbsSubscriptionData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VBSDataList },
10453   { &hf_gsm_map_ms_vgcsSubscriptionData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VGCSDataList },
10454   { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VlrCamelSubscriptionInfo },
10455   { NULL, 0, 0, 0, NULL }
10456 };
10457
10458 static int
10459 dissect_gsm_map_ms_SubscriberData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10460   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10461                                    gsm_map_ms_SubscriberData_sequence, hf_index, ett_gsm_map_ms_SubscriberData);
10462
10463   return offset;
10464 }
10465
10466
10467 static const value_string gsm_map_ms_RegionalSubscriptionResponse_vals[] = {
10468   {   0, "networkNode-AreaRestricted" },
10469   {   1, "tooManyZoneCodes" },
10470   {   2, "zoneCodesConflict" },
10471   {   3, "regionalSubscNotSupported" },
10472   { 0, NULL }
10473 };
10474
10475
10476 static int
10477 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_) {
10478   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10479                                   NULL);
10480
10481   return offset;
10482 }
10483
10484
10485 static const ber_sequence_t gsm_map_ms_InsertSubscriberDataRes_sequence[] = {
10486   { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
10487   { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
10488   { &hf_gsm_map_ms_ss_List  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
10489   { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_GeneralData },
10490   { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse },
10491   { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
10492   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10493   { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
10494   { &hf_gsm_map_ms_supportedFeatures, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedFeatures },
10495   { NULL, 0, 0, 0, NULL }
10496 };
10497
10498 static int
10499 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_) {
10500   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10501                                    gsm_map_ms_InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataRes);
10502
10503   return offset;
10504 }
10505
10506
10507 static const ber_sequence_t gsm_map_ms_BasicServiceList_sequence_of[1] = {
10508   { &hf_gsm_map_ms_BasicServiceList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
10509 };
10510
10511 static int
10512 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_) {
10513   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10514                                       gsm_map_ms_BasicServiceList_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceList);
10515
10516   return offset;
10517 }
10518
10519
10520 static const ber_sequence_t gsm_map_ms_ContextIdList_sequence_of[1] = {
10521   { &hf_gsm_map_ms_ContextIdList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
10522 };
10523
10524 static int
10525 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_) {
10526   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10527                                       gsm_map_ms_ContextIdList_sequence_of, hf_index, ett_gsm_map_ms_ContextIdList);
10528
10529   return offset;
10530 }
10531
10532
10533 static const value_string gsm_map_ms_GPRSSubscriptionDataWithdraw_vals[] = {
10534   {   0, "allGPRSData" },
10535   {   1, "contextIdList" },
10536   { 0, NULL }
10537 };
10538
10539 static const ber_choice_t gsm_map_ms_GPRSSubscriptionDataWithdraw_choice[] = {
10540   {   0, &hf_gsm_map_ms_allGPRSData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10541   {   1, &hf_gsm_map_ms_contextIdList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextIdList },
10542   { 0, NULL, 0, 0, 0, NULL }
10543 };
10544
10545 static int
10546 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_) {
10547   offset = dissect_ber_choice(actx, tree, tvb, offset,
10548                                  gsm_map_ms_GPRSSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_ms_GPRSSubscriptionDataWithdraw,
10549                                  NULL);
10550
10551   return offset;
10552 }
10553
10554
10555 static const ber_sequence_t gsm_map_ms_LSAIdentityList_sequence_of[1] = {
10556   { &hf_gsm_map_ms_LSAIdentityList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentity },
10557 };
10558
10559 static int
10560 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_) {
10561   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10562                                       gsm_map_ms_LSAIdentityList_sequence_of, hf_index, ett_gsm_map_ms_LSAIdentityList);
10563
10564   return offset;
10565 }
10566
10567
10568 static const value_string gsm_map_ms_LSAInformationWithdraw_vals[] = {
10569   {   0, "allLSAData" },
10570   {   1, "lsaIdentityList" },
10571   { 0, NULL }
10572 };
10573
10574 static const ber_choice_t gsm_map_ms_LSAInformationWithdraw_choice[] = {
10575   {   0, &hf_gsm_map_ms_allLSAData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10576   {   1, &hf_gsm_map_ms_lsaIdentityList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentityList },
10577   { 0, NULL, 0, 0, 0, NULL }
10578 };
10579
10580 static int
10581 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_) {
10582   offset = dissect_ber_choice(actx, tree, tvb, offset,
10583                                  gsm_map_ms_LSAInformationWithdraw_choice, hf_index, ett_gsm_map_ms_LSAInformationWithdraw,
10584                                  NULL);
10585
10586   return offset;
10587 }
10588
10589
10590 static const asn_namedbit gsm_map_ms_SpecificCSI_Withdraw_bits[] = {
10591   {  0, &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi, -1, -1, "o-csi", NULL },
10592   {  1, &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi, -1, -1, "ss-csi", NULL },
10593   {  2, &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi, -1, -1, "tif-csi", NULL },
10594   {  3, &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi, -1, -1, "d-csi", NULL },
10595   {  4, &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi, -1, -1, "vt-csi", NULL },
10596   {  5, &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi, -1, -1, "mo-sms-csi", NULL },
10597   {  6, &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi, -1, -1, "m-csi", NULL },
10598   {  7, &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi, -1, -1, "gprs-csi", NULL },
10599   {  8, &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi, -1, -1, "t-csi", NULL },
10600   {  9, &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi, -1, -1, "mt-sms-csi", NULL },
10601   { 10, &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi, -1, -1, "mg-csi", NULL },
10602   { 11, &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI, -1, -1, "o-IM-CSI", NULL },
10603   { 12, &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI, -1, -1, "d-IM-CSI", NULL },
10604   { 13, &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI, -1, -1, "vt-IM-CSI", NULL },
10605   { 0, NULL, 0, 0, NULL, NULL }
10606 };
10607
10608 static int
10609 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_) {
10610   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10611                                     gsm_map_ms_SpecificCSI_Withdraw_bits, hf_index, ett_gsm_map_ms_SpecificCSI_Withdraw,
10612                                     NULL);
10613
10614   return offset;
10615 }
10616
10617
10618 static const value_string gsm_map_ms_EPS_SubscriptionDataWithdraw_vals[] = {
10619   {   0, "allEPS-Data" },
10620   {   1, "contextIdList" },
10621   { 0, NULL }
10622 };
10623
10624 static const ber_choice_t gsm_map_ms_EPS_SubscriptionDataWithdraw_choice[] = {
10625   {   0, &hf_gsm_map_ms_allEPS_Data, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10626   {   1, &hf_gsm_map_ms_contextIdList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextIdList },
10627   { 0, NULL, 0, 0, 0, NULL }
10628 };
10629
10630 static int
10631 dissect_gsm_map_ms_EPS_SubscriptionDataWithdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10632   offset = dissect_ber_choice(actx, tree, tvb, offset,
10633                                  gsm_map_ms_EPS_SubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_ms_EPS_SubscriptionDataWithdraw,
10634                                  NULL);
10635
10636   return offset;
10637 }
10638
10639
10640 static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataArg_sequence[] = {
10641   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10642   { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList },
10643   { &hf_gsm_map_ms_ss_List  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
10644   { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10645   { &hf_gsm_map_ms_regionalSubscriptionIdentifier, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCode },
10646   { &hf_gsm_map_ms_vbsGroupIndication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10647   { &hf_gsm_map_ms_vgcsGroupIndication, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10648   { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10649   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10650   { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_GPRSSubscriptionDataWithdraw },
10651   { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10652   { &hf_gsm_map_ms_lsaInformationWithdraw, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_LSAInformationWithdraw },
10653   { &hf_gsm_map_ms_gmlc_ListWithdraw, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10654   { &hf_gsm_map_ms_istInformationWithdraw, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10655   { &hf_gsm_map_ms_specificCSI_Withdraw, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw },
10656   { &hf_gsm_map_ms_chargingCharacteristicsWithdraw, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10657   { &hf_gsm_map_ms_stn_srWithdraw, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10658   { &hf_gsm_map_ms_epsSubscriptionDataWithdraw, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_EPS_SubscriptionDataWithdraw },
10659   { &hf_gsm_map_ms_apn_oi_replacementWithdraw, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10660   { &hf_gsm_map_ms_csg_SubscriptionDeleted, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10661   { NULL, 0, 0, 0, NULL }
10662 };
10663
10664 static int
10665 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_) {
10666   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10667                                    gsm_map_ms_DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataArg);
10668
10669   return offset;
10670 }
10671
10672
10673 static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataRes_sequence[] = {
10674   { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse },
10675   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10676   { NULL, 0, 0, 0, NULL }
10677 };
10678
10679 static int
10680 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_) {
10681   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10682                                    gsm_map_ms_DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataRes);
10683
10684   return offset;
10685 }
10686
10687
10688 static const asn_namedbit gsm_map_ms_OfferedCamel4Functionalities_bits[] = {
10689   {  0, &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt, -1, -1, "initiateCallAttempt", NULL },
10690   {  1, &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg, -1, -1, "splitLeg", NULL },
10691   {  2, &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg, -1, -1, "moveLeg", NULL },
10692   {  3, &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg, -1, -1, "disconnectLeg", NULL },
10693   {  4, &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased, -1, -1, "entityReleased", NULL },
10694   {  5, &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument, -1, -1, "dfc-WithArgument", NULL },
10695   {  6, &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone, -1, -1, "playTone", NULL },
10696   {  7, &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall, -1, -1, "dtmf-MidCall", NULL },
10697   {  8, &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator, -1, -1, "chargingIndicator", NULL },
10698   {  9, &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP, -1, -1, "alertingDP", NULL },
10699   { 10, &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting, -1, -1, "locationAtAlerting", NULL },
10700   { 11, &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP, -1, -1, "changeOfPositionDP", NULL },
10701   { 12, &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions, -1, -1, "or-Interactions", NULL },
10702   { 13, &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements, -1, -1, "warningToneEnhancements", NULL },
10703   { 14, &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements, -1, -1, "cf-Enhancements", NULL },
10704   { 15, &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices, -1, -1, "subscribedEnhancedDialledServices", NULL },
10705   { 16, &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices, -1, -1, "servingNetworkEnhancedDialledServices", NULL },
10706   { 17, &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP, -1, -1, "criteriaForChangeOfPositionDP", NULL },
10707   { 18, &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP, -1, -1, "serviceChangeDP", NULL },
10708   { 19, &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation, -1, -1, "collectInformation", NULL },
10709   { 0, NULL, 0, 0, NULL, NULL }
10710 };
10711
10712 int
10713 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_) {
10714   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10715                                     gsm_map_ms_OfferedCamel4Functionalities_bits, hf_index, ett_gsm_map_ms_OfferedCamel4Functionalities,
10716                                     NULL);
10717
10718   return offset;
10719 }
10720
10721
10722 static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsArg_sequence[] = {
10723   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10724   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10725   { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10726   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10727   { NULL, 0, 0, 0, NULL }
10728 };
10729
10730 static int
10731 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_) {
10732   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10733                                    gsm_map_ms_SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsArg);
10734
10735   return offset;
10736 }
10737
10738
10739 static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsRes_sequence[] = {
10740   { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10741   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10742   { &hf_gsm_map_ms_mobileNotReachableReason, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
10743   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10744   { NULL, 0, 0, 0, NULL }
10745 };
10746
10747 static int
10748 dissect_gsm_map_ms_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_) {
10749   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10750                                    gsm_map_ms_SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsRes);
10751
10752   return offset;
10753 }
10754
10755
10756 static const ber_sequence_t gsm_map_ms_FailureReportArg_sequence[] = {
10757   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10758   { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10759   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10760   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10761   { NULL, 0, 0, 0, NULL }
10762 };
10763
10764 static int
10765 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_) {
10766   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10767                                    gsm_map_ms_FailureReportArg_sequence, hf_index, ett_gsm_map_ms_FailureReportArg);
10768
10769   return offset;
10770 }
10771
10772
10773 static const ber_sequence_t gsm_map_ms_FailureReportRes_sequence[] = {
10774   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10775   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10776   { NULL, 0, 0, 0, NULL }
10777 };
10778
10779 static int
10780 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_) {
10781   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10782                                    gsm_map_ms_FailureReportRes_sequence, hf_index, ett_gsm_map_ms_FailureReportRes);
10783
10784   return offset;
10785 }
10786
10787
10788 static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsArg_sequence[] = {
10789   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10790   { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10791   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10792   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10793   { NULL, 0, 0, 0, NULL }
10794 };
10795
10796 static int
10797 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_) {
10798   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10799                                    gsm_map_ms_NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsArg);
10800
10801   return offset;
10802 }
10803
10804
10805 static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsRes_sequence[] = {
10806   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10807   { NULL, 0, 0, 0, NULL }
10808 };
10809
10810 static int
10811 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_) {
10812   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10813                                    gsm_map_ms_NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsRes);
10814
10815   return offset;
10816 }
10817
10818
10819 static const ber_sequence_t gsm_map_ms_ResetArg_sequence[] = {
10820   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10821   { &hf_gsm_map_ms_hlr_List , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_List },
10822   { NULL, 0, 0, 0, NULL }
10823 };
10824
10825 static int
10826 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_) {
10827   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10828                                    gsm_map_ms_ResetArg_sequence, hf_index, ett_gsm_map_ms_ResetArg);
10829
10830   return offset;
10831 }
10832
10833
10834 static const ber_sequence_t gsm_map_ms_RestoreDataArg_sequence[] = {
10835   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
10836   { &hf_gsm_map_ms_lmsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
10837   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10838   { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability },
10839   { NULL, 0, 0, 0, NULL }
10840 };
10841
10842 static int
10843 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_) {
10844   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10845                                    gsm_map_ms_RestoreDataArg_sequence, hf_index, ett_gsm_map_ms_RestoreDataArg);
10846
10847   return offset;
10848 }
10849
10850
10851 static const ber_sequence_t gsm_map_ms_RestoreDataRes_sequence[] = {
10852   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10853   { &hf_gsm_map_ms_msNotReachable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10854   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10855   { NULL, 0, 0, 0, NULL }
10856 };
10857
10858 static int
10859 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_) {
10860   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10861                                    gsm_map_ms_RestoreDataRes_sequence, hf_index, ett_gsm_map_ms_RestoreDataRes);
10862
10863   return offset;
10864 }
10865
10866
10867 static const value_string gsm_map_ms_DomainType_vals[] = {
10868   {   0, "cs-Domain" },
10869   {   1, "ps-Domain" },
10870   { 0, NULL }
10871 };
10872
10873
10874 static int
10875 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_) {
10876   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10877                                   NULL);
10878
10879   return offset;
10880 }
10881
10882
10883 static const ber_sequence_t gsm_map_ms_RequestedInfo_sequence[] = {
10884   { &hf_gsm_map_ms_locationInformation_01, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10885   { &hf_gsm_map_ms_subscriberState_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10886   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10887   { &hf_gsm_map_ms_currentLocation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10888   { &hf_gsm_map_ms_requestedDomain, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DomainType },
10889   { &hf_gsm_map_ms_imei_01  , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10890   { &hf_gsm_map_ms_ms_classmark, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10891   { &hf_gsm_map_ms_mnpRequestedInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10892   { NULL, 0, 0, 0, NULL }
10893 };
10894
10895 static int
10896 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_) {
10897   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10898                                    gsm_map_ms_RequestedInfo_sequence, hf_index, ett_gsm_map_ms_RequestedInfo);
10899
10900   return offset;
10901 }
10902
10903
10904 static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoArg_sequence[] = {
10905   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10906   { &hf_gsm_map_ms_lmsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
10907   { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo },
10908   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10909   { &hf_gsm_map_ms_callPriority, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
10910   { NULL, 0, 0, 0, NULL }
10911 };
10912
10913 static int
10914 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_) {
10915   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10916                                    gsm_map_ms_ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoArg);
10917
10918   return offset;
10919 }
10920
10921
10922
10923 int
10924 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_) {
10925   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10926                                        NULL);
10927
10928   return offset;
10929 }
10930
10931
10932
10933 static int
10934 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_) {
10935   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10936                                        NULL);
10937
10938   return offset;
10939 }
10940
10941
10942
10943 static int
10944 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_) {
10945   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10946                                        NULL);
10947
10948   return offset;
10949 }
10950
10951
10952 static const ber_sequence_t gsm_map_ms_LocationInformation_sequence[] = {
10953   { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AgeOfLocationInformation },
10954   { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
10955   { &hf_gsm_map_ms_vlr_number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10956   { &hf_gsm_map_ms_locationNumber, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationNumber },
10957   { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
10958   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10959   { &hf_gsm_map_ms_selectedLSA_Id, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
10960   { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10961   { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
10962   { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10963   { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10964   { NULL, 0, 0, 0, NULL }
10965 };
10966
10967 int
10968 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_) {
10969   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10970                                    gsm_map_ms_LocationInformation_sequence, hf_index, ett_gsm_map_ms_LocationInformation);
10971
10972   return offset;
10973 }
10974
10975
10976 static const value_string gsm_map_ms_NotReachableReason_vals[] = {
10977   {   0, "msPurged" },
10978   {   1, "imsiDetached" },
10979   {   2, "restrictedArea" },
10980   {   3, "notRegistered" },
10981   { 0, NULL }
10982 };
10983
10984
10985 static int
10986 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_) {
10987   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10988                                   NULL);
10989
10990   return offset;
10991 }
10992
10993
10994 const value_string gsm_map_ms_SubscriberState_vals[] = {
10995   {   0, "assumedIdle" },
10996   {   1, "camelBusy" },
10997   {   2, "netDetNotReachable" },
10998   {   3, "notProvidedFromVLR" },
10999   { 0, NULL }
11000 };
11001
11002 static const ber_choice_t gsm_map_ms_SubscriberState_choice[] = {
11003   {   0, &hf_gsm_map_ms_assumedIdle, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11004   {   1, &hf_gsm_map_ms_camelBusy, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11005   {   2, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason },
11006   {   3, &hf_gsm_map_ms_notProvidedFromVLR, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11007   { 0, NULL, 0, 0, 0, NULL }
11008 };
11009
11010 int
11011 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_) {
11012   offset = dissect_ber_choice(actx, tree, tvb, offset,
11013                                  gsm_map_ms_SubscriberState_choice, hf_index, ett_gsm_map_ms_SubscriberState,
11014                                  NULL);
11015
11016   return offset;
11017 }
11018
11019
11020
11021 int
11022 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_) {
11023 #line 548 "gsmmap.cnf"
11024
11025         tvbuff_t        *parameter_tvb;
11026         proto_tree *subtree;
11027
11028   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11029                                        &parameter_tvb);
11030
11031
11032          if (!parameter_tvb)
11033                 return offset;
11034         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RAIdentity);
11035         de_gmm_rai(parameter_tvb, subtree, 0, 3, NULL,0);
11036
11037
11038
11039   return offset;
11040 }
11041
11042
11043 static const ber_sequence_t gsm_map_ms_LocationInformationGPRS_sequence[] = {
11044   { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
11045   { &hf_gsm_map_ms_routeingAreaIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAIdentity },
11046   { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
11047   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11048   { &hf_gsm_map_ms_selectedLSAIdentity, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
11049   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11050   { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11051   { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
11052   { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11053   { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
11054   { NULL, 0, 0, 0, NULL }
11055 };
11056
11057 static int
11058 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_) {
11059   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11060                                    gsm_map_ms_LocationInformationGPRS_sequence, hf_index, ett_gsm_map_ms_LocationInformationGPRS);
11061
11062   return offset;
11063 }
11064
11065
11066
11067 static int
11068 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_) {
11069   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11070                                                 NULL);
11071
11072   return offset;
11073 }
11074
11075
11076
11077 static int
11078 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_) {
11079   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11080                                        NULL);
11081
11082   return offset;
11083 }
11084
11085
11086
11087 static int
11088 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_) {
11089   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11090                                        NULL);
11091
11092   return offset;
11093 }
11094
11095
11096
11097 int
11098 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_) {
11099   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11100                                        NULL);
11101
11102   return offset;
11103 }
11104
11105
11106 static const ber_sequence_t gsm_map_ms_PDP_ContextInfo_sequence[] = {
11107   { &hf_gsm_map_ms_pdp_ContextIdentifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
11108   { &hf_gsm_map_ms_pdp_ContextActive, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11109   { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type },
11110   { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
11111   { &hf_gsm_map_ms_apn_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
11112   { &hf_gsm_map_ms_apn_InUse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
11113   { &hf_gsm_map_ms_nsapi    , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NSAPI },
11114   { &hf_gsm_map_ms_transactionId, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TransactionId },
11115   { &hf_gsm_map_ms_teid_ForGnAndGp, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID },
11116   { &hf_gsm_map_ms_teid_ForIu, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID },
11117   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
11118   { &hf_gsm_map_ms_qos_Subscribed_01, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
11119   { &hf_gsm_map_ms_qos_Requested, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
11120   { &hf_gsm_map_ms_qos_Negotiated, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
11121   { &hf_gsm_map_ms_chargingId, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSChargingID },
11122   { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
11123   { &hf_gsm_map_ms_rnc_Address, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
11124   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11125   { &hf_gsm_map_ms_qos2_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
11126   { &hf_gsm_map_ms_qos2_Requested, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
11127   { &hf_gsm_map_ms_qos2_Negotiated, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
11128   { &hf_gsm_map_ms_qos3_Subscribed, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
11129   { &hf_gsm_map_ms_qos3_Requested, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
11130   { &hf_gsm_map_ms_qos3_Negotiated, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
11131   { NULL, 0, 0, 0, NULL }
11132 };
11133
11134 static int
11135 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_) {
11136   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11137                                    gsm_map_ms_PDP_ContextInfo_sequence, hf_index, ett_gsm_map_ms_PDP_ContextInfo);
11138
11139   return offset;
11140 }
11141
11142
11143 static const ber_sequence_t gsm_map_ms_PDP_ContextInfoList_sequence_of[1] = {
11144   { &hf_gsm_map_ms_PDP_ContextInfoList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_ContextInfo },
11145 };
11146
11147 static int
11148 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_) {
11149   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11150                                       gsm_map_ms_PDP_ContextInfoList_sequence_of, hf_index, ett_gsm_map_ms_PDP_ContextInfoList);
11151
11152   return offset;
11153 }
11154
11155
11156 static const value_string gsm_map_ms_PS_SubscriberState_vals[] = {
11157   {   0, "notProvidedFromSGSN" },
11158   {   1, "ps-Detached" },
11159   {   2, "ps-AttachedNotReachableForPaging" },
11160   {   3, "ps-AttachedReachableForPaging" },
11161   {   4, "ps-PDP-ActiveNotReachableForPaging" },
11162   {   5, "ps-PDP-ActiveReachableForPaging" },
11163   {   6, "netDetNotReachable" },
11164   { 0, NULL }
11165 };
11166
11167 static const ber_choice_t gsm_map_ms_PS_SubscriberState_choice[] = {
11168   {   0, &hf_gsm_map_ms_notProvidedFromSGSN, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11169   {   1, &hf_gsm_map_ms_ps_Detached, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11170   {   2, &hf_gsm_map_ms_ps_AttachedNotReachableForPaging, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11171   {   3, &hf_gsm_map_ms_ps_AttachedReachableForPaging, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11172   {   4, &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList },
11173   {   5, &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList },
11174   {   6, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason },
11175   { 0, NULL, 0, 0, 0, NULL }
11176 };
11177
11178 static int
11179 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_) {
11180   offset = dissect_ber_choice(actx, tree, tvb, offset,
11181                                  gsm_map_ms_PS_SubscriberState_choice, hf_index, ett_gsm_map_ms_PS_SubscriberState,
11182                                  NULL);
11183
11184   return offset;
11185 }
11186
11187
11188
11189 int
11190 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_) {
11191   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11192                                        NULL);
11193
11194   return offset;
11195 }
11196
11197
11198
11199 static int
11200 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_) {
11201   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11202                                        NULL);
11203
11204   return offset;
11205 }
11206
11207
11208
11209 static int
11210 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_) {
11211   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11212                                        NULL);
11213
11214   return offset;
11215 }
11216
11217
11218 static const ber_sequence_t gsm_map_ms_GPRSMSClass_sequence[] = {
11219   { &hf_gsm_map_ms_mSNetworkCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSNetworkCapability },
11220   { &hf_gsm_map_ms_mSRadioAccessCapability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSRadioAccessCapability },
11221   { NULL, 0, 0, 0, NULL }
11222 };
11223
11224 int
11225 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_) {
11226   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11227                                    gsm_map_ms_GPRSMSClass_sequence, hf_index, ett_gsm_map_ms_GPRSMSClass);
11228
11229   return offset;
11230 }
11231
11232
11233
11234 static int
11235 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_) {
11236   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
11237
11238   return offset;
11239 }
11240
11241
11242 static const value_string gsm_map_ms_NumberPortabilityStatus_vals[] = {
11243   {   0, "notKnownToBePorted" },
11244   {   1, "ownNumberPortedOut" },
11245   {   2, "foreignNumberPortedToForeignNetwork" },
11246   {   4, "ownNumberNotPortedOut" },
11247   {   5, "foreignNumberPortedIn" },
11248   { 0, NULL }
11249 };
11250
11251
11252 static int
11253 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_) {
11254   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11255                                   NULL);
11256
11257   return offset;
11258 }
11259
11260
11261 static const ber_sequence_t gsm_map_ms_MNPInfoRes_sequence[] = {
11262   { &hf_gsm_map_ms_routeingNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RouteingNumber },
11263   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11264   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11265   { &hf_gsm_map_ms_numberPortabilityStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus },
11266   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11267   { NULL, 0, 0, 0, NULL }
11268 };
11269
11270 static int
11271 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_) {
11272   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11273                                    gsm_map_ms_MNPInfoRes_sequence, hf_index, ett_gsm_map_ms_MNPInfoRes);
11274
11275   return offset;
11276 }
11277
11278
11279 static const ber_sequence_t gsm_map_ms_SubscriberInfo_sequence[] = {
11280   { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
11281   { &hf_gsm_map_ms_subscriberState, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SubscriberState },
11282   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11283   { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
11284   { &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 },
11285   { &hf_gsm_map_ms_imei     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
11286   { &hf_gsm_map_ms_ms_Classmark2, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MS_Classmark2 },
11287   { &hf_gsm_map_ms_gprs_MS_Class, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSMSClass },
11288   { &hf_gsm_map_ms_mnpInfoRes, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MNPInfoRes },
11289   { NULL, 0, 0, 0, NULL }
11290 };
11291
11292 static int
11293 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_) {
11294   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11295                                    gsm_map_ms_SubscriberInfo_sequence, hf_index, ett_gsm_map_ms_SubscriberInfo);
11296
11297   return offset;
11298 }
11299
11300
11301 static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoRes_sequence[] = {
11302   { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo },
11303   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11304   { NULL, 0, 0, 0, NULL }
11305 };
11306
11307 static int
11308 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_) {
11309   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11310                                    gsm_map_ms_ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoRes);
11311
11312   return offset;
11313 }
11314
11315
11316 static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationArg_sequence[] = {
11317   { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
11318   { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo },
11319   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11320   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11321   { NULL, 0, 0, 0, NULL }
11322 };
11323
11324 static int
11325 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_) {
11326   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11327                                    gsm_map_ms_AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationArg);
11328
11329   return offset;
11330 }
11331
11332
11333 static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationRes_sequence[] = {
11334   { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo },
11335   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11336   { NULL, 0, 0, 0, NULL }
11337 };
11338
11339 static int
11340 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_) {
11341   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11342                                    gsm_map_ms_AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationRes);
11343
11344   return offset;
11345 }
11346
11347
11348 static const value_string gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals[] = {
11349   {   0, "o-CSI" },
11350   {   1, "t-CSI" },
11351   {   2, "vt-CSI" },
11352   {   3, "tif-CSI" },
11353   {   4, "gprs-CSI" },
11354   {   5, "mo-sms-CSI" },
11355   {   6, "ss-CSI" },
11356   {   7, "m-CSI" },
11357   {   8, "d-csi" },
11358   { 0, NULL }
11359 };
11360
11361
11362 static int
11363 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_) {
11364   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11365                                   NULL);
11366
11367   return offset;
11368 }
11369
11370
11371 static const value_string gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals[] = {
11372   {   0, "mt-sms-CSI" },
11373   {   1, "mg-csi" },
11374   {   2, "o-IM-CSI" },
11375   {   3, "d-IM-CSI" },
11376   {   4, "vt-IM-CSI" },
11377   { 0, NULL }
11378 };
11379
11380
11381 static int
11382 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_) {
11383   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11384                                   NULL);
11385
11386   return offset;
11387 }
11388
11389
11390 static const ber_sequence_t gsm_map_ms_RequestedSubscriptionInfo_sequence[] = {
11391   { &hf_gsm_map_ms_requestedSS_Info, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_ForBS_Code },
11392   { &hf_gsm_map_ms_odb      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11393   { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo },
11394   { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11395   { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11396   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11397   { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo },
11398   { &hf_gsm_map_ms_msisdn_BS_List_01, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11399   { NULL, 0, 0, 0, NULL }
11400 };
11401
11402 static int
11403 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_) {
11404   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11405                                    gsm_map_ms_RequestedSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_RequestedSubscriptionInfo);
11406
11407   return offset;
11408 }
11409
11410
11411 static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationArg_sequence[] = {
11412   { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
11413   { &hf_gsm_map_ms_requestedSubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedSubscriptionInfo },
11414   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11415   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11416   { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11417   { NULL, 0, 0, 0, NULL }
11418 };
11419
11420 static int
11421 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_) {
11422   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11423                                    gsm_map_ms_AnyTimeSubscriptionInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg);
11424
11425   return offset;
11426 }
11427
11428
11429 static const ber_sequence_t gsm_map_ms_CallForwardingData_sequence[] = {
11430   { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
11431   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
11432   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11433   { NULL, 0, 0, 0, NULL }
11434 };
11435
11436 static int
11437 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_) {
11438   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11439                                    gsm_map_ms_CallForwardingData_sequence, hf_index, ett_gsm_map_ms_CallForwardingData);
11440
11441   return offset;
11442 }
11443
11444
11445
11446 static int
11447 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_) {
11448   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11449                                                 NULL);
11450
11451   return offset;
11452 }
11453
11454
11455 static const ber_sequence_t gsm_map_ms_CallBarringData_sequence[] = {
11456   { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
11457   { &hf_gsm_map_ms_password , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_Password },
11458   { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
11459   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
11460   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11461   { NULL, 0, 0, 0, NULL }
11462 };
11463
11464 static int
11465 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_) {
11466   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11467                                    gsm_map_ms_CallBarringData_sequence, hf_index, ett_gsm_map_ms_CallBarringData);
11468
11469   return offset;
11470 }
11471
11472
11473 static const ber_sequence_t gsm_map_ms_ODB_Info_sequence[] = {
11474   { &hf_gsm_map_ms_odb_Data , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_Data },
11475   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
11476   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11477   { NULL, 0, 0, 0, NULL }
11478 };
11479
11480 static int
11481 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_) {
11482   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11483                                    gsm_map_ms_ODB_Info_sequence, hf_index, ett_gsm_map_ms_ODB_Info);
11484
11485   return offset;
11486 }
11487
11488
11489 static const ber_sequence_t gsm_map_ms_CAMEL_SubscriptionInfo_sequence[] = {
11490   { &hf_gsm_map_ms_o_CSI    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
11491   { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
11492   { &hf_gsm_map_ms_d_CSI    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
11493   { &hf_gsm_map_ms_t_CSI    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
11494   { &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 },
11495   { &hf_gsm_map_ms_vt_CSI   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
11496   { &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 },
11497   { &hf_gsm_map_ms_tif_CSI  , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11498   { &hf_gsm_map_ms_tif_CSI_NotificationToCSE, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11499   { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI },
11500   { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
11501   { &hf_gsm_map_ms_ss_CSI   , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI },
11502   { &hf_gsm_map_ms_m_CSI    , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI },
11503   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11504   { &hf_gsm_map_ms_specificCSIDeletedList, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw },
11505   { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
11506   { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
11507   { &hf_gsm_map_ms_mg_csi   , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI },
11508   { &hf_gsm_map_ms_o_IM_CSI , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
11509   { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
11510   { &hf_gsm_map_ms_d_IM_CSI , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
11511   { &hf_gsm_map_ms_vt_IM_CSI, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
11512   { &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 },
11513   { NULL, 0, 0, 0, NULL }
11514 };
11515
11516 static int
11517 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_) {
11518   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11519                                    gsm_map_ms_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_CAMEL_SubscriptionInfo);
11520
11521   return offset;
11522 }
11523
11524
11525 static const ber_sequence_t gsm_map_ms_MSISDN_BS_sequence[] = {
11526   { &hf_gsm_map_ms_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11527   { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList },
11528   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11529   { NULL, 0, 0, 0, NULL }
11530 };
11531
11532 static int
11533 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_) {
11534   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11535                                    gsm_map_ms_MSISDN_BS_sequence, hf_index, ett_gsm_map_ms_MSISDN_BS);
11536
11537   return offset;
11538 }
11539
11540
11541 static const ber_sequence_t gsm_map_ms_MSISDN_BS_List_sequence_of[1] = {
11542   { &hf_gsm_map_ms_MSISDN_BS_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MSISDN_BS },
11543 };
11544
11545 static int
11546 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_) {
11547   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11548                                       gsm_map_ms_MSISDN_BS_List_sequence_of, hf_index, ett_gsm_map_ms_MSISDN_BS_List);
11549
11550   return offset;
11551 }
11552
11553
11554 static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationRes_sequence[] = {
11555   { &hf_gsm_map_ms_callForwardingData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallForwardingData },
11556   { &hf_gsm_map_ms_callBarringData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallBarringData },
11557   { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
11558   { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
11559   { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11560   { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11561   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11562   { &hf_gsm_map_ms_offeredCamel4CSIsInVLR, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
11563   { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
11564   { &hf_gsm_map_ms_msisdn_BS_List, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSISDN_BS_List },
11565   { NULL, 0, 0, 0, NULL }
11566 };
11567
11568 static int
11569 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_) {
11570   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11571                                    gsm_map_ms_AnyTimeSubscriptionInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes);
11572
11573   return offset;
11574 }
11575
11576
11577 static const value_string gsm_map_ms_ModificationInstruction_vals[] = {
11578   {   0, "deactivate" },
11579   {   1, "activate" },
11580   { 0, NULL }
11581 };
11582
11583
11584 static int
11585 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_) {
11586   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11587                                   NULL);
11588
11589   return offset;
11590 }
11591
11592
11593 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CF_Info_sequence[] = {
11594   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
11595   { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11596   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
11597   { &hf_gsm_map_ms_forwardedToNumber_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
11598   { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
11599   { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime },
11600   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11601   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11602   { NULL, 0, 0, 0, NULL }
11603 };
11604
11605 static int
11606 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_) {
11607   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11608                                    gsm_map_ms_ModificationRequestFor_CF_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CF_Info);
11609
11610   return offset;
11611 }
11612
11613
11614 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CB_Info_sequence[] = {
11615   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
11616   { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11617   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
11618   { &hf_gsm_map_ms_password , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password },
11619   { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
11620   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11621   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11622   { NULL, 0, 0, 0, NULL }
11623 };
11624
11625 static int
11626 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_) {
11627   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11628                                    gsm_map_ms_ModificationRequestFor_CB_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CB_Info);
11629
11630   return offset;
11631 }
11632
11633
11634 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CSI_sequence[] = {
11635   { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo },
11636   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11637   { &hf_gsm_map_ms_modifyCSI_State, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11638   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11639   { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo },
11640   { NULL, 0, 0, 0, NULL }
11641 };
11642
11643 static int
11644 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_) {
11645   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11646                                    gsm_map_ms_ModificationRequestFor_CSI_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CSI);
11647
11648   return offset;
11649 }
11650
11651
11652 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_ODB_data_sequence[] = {
11653   { &hf_gsm_map_ms_odb_data , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
11654   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11655   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11656   { NULL, 0, 0, 0, NULL }
11657 };
11658
11659 static int
11660 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_) {
11661   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11662                                    gsm_map_ms_ModificationRequestFor_ODB_data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_ODB_data);
11663
11664   return offset;
11665 }
11666
11667
11668 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence[] = {
11669   { &hf_gsm_map_ms_modifyRegistrationStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11670   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11671   { NULL, 0, 0, 0, NULL }
11672 };
11673
11674 static int
11675 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_) {
11676   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11677                                    gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data);
11678
11679   return offset;
11680 }
11681
11682
11683 static const ber_sequence_t gsm_map_ms_AnyTimeModificationArg_sequence[] = {
11684   { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
11685   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11686   { &hf_gsm_map_ms_modificationRequestFor_CF_Info, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CF_Info },
11687   { &hf_gsm_map_ms_modificationRequestFor_CB_Info, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CB_Info },
11688   { &hf_gsm_map_ms_modificationRequestFor_CSI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CSI },
11689   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11690   { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11691   { &hf_gsm_map_ms_modificationRequestFor_ODB_data, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_ODB_data },
11692   { &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 },
11693   { NULL, 0, 0, 0, NULL }
11694 };
11695
11696 static int
11697 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_) {
11698   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11699                                    gsm_map_ms_AnyTimeModificationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationArg);
11700
11701   return offset;
11702 }
11703
11704
11705 static const ber_sequence_t gsm_map_ms_Ext_ForwardingInfoFor_CSE_sequence[] = {
11706   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
11707   { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
11708   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11709   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11710   { NULL, 0, 0, 0, NULL }
11711 };
11712
11713 static int
11714 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_) {
11715   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11716                                    gsm_map_ms_Ext_ForwardingInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE);
11717
11718   return offset;
11719 }
11720
11721
11722 static const ber_sequence_t gsm_map_ms_Ext_CallBarringInfoFor_CSE_sequence[] = {
11723   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
11724   { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
11725   { &hf_gsm_map_ms_password , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password },
11726   { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
11727   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11728   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11729   { NULL, 0, 0, 0, NULL }
11730 };
11731
11732 static int
11733 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_) {
11734   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11735                                    gsm_map_ms_Ext_CallBarringInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE);
11736
11737   return offset;
11738 }
11739
11740
11741 static const value_string gsm_map_ms_Ext_SS_InfoFor_CSE_vals[] = {
11742   {   0, "forwardingInfoFor-CSE" },
11743   {   1, "callBarringInfoFor-CSE" },
11744   { 0, NULL }
11745 };
11746
11747 static const ber_choice_t gsm_map_ms_Ext_SS_InfoFor_CSE_choice[] = {
11748   {   0, &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE },
11749   {   1, &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE },
11750   { 0, NULL, 0, 0, 0, NULL }
11751 };
11752
11753 static int
11754 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_) {
11755   offset = dissect_ber_choice(actx, tree, tvb, offset,
11756                                  gsm_map_ms_Ext_SS_InfoFor_CSE_choice, hf_index, ett_gsm_map_ms_Ext_SS_InfoFor_CSE,
11757                                  NULL);
11758
11759   return offset;
11760 }
11761
11762
11763 static const ber_sequence_t gsm_map_ms_AnyTimeModificationRes_sequence[] = {
11764   { &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 },
11765   { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
11766   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11767   { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
11768   { NULL, 0, 0, 0, NULL }
11769 };
11770
11771 static int
11772 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_) {
11773   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11774                                    gsm_map_ms_AnyTimeModificationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationRes);
11775
11776   return offset;
11777 }
11778
11779
11780 static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedArg_sequence[] = {
11781   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
11782   { &hf_gsm_map_ms_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11783   { &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE },
11784   { &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE },
11785   { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
11786   { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
11787   { &hf_gsm_map_ms_allInformationSent, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11788   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11789   { NULL, 0, 0, 0, NULL }
11790 };
11791
11792 static int
11793 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_) {
11794   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11795                                    gsm_map_ms_NoteSubscriberDataModifiedArg_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedArg);
11796
11797   return offset;
11798 }
11799
11800
11801 static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedRes_sequence[] = {
11802   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11803   { NULL, 0, 0, 0, NULL }
11804 };
11805
11806 static int
11807 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_) {
11808   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11809                                    gsm_map_ms_NoteSubscriberDataModifiedRes_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedRes);
11810
11811   return offset;
11812 }
11813
11814
11815 static const ber_sequence_t gsm_map_ms_NoteMM_EventArg_sequence[] = {
11816   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
11817   { &hf_gsm_map_ms_eventMet , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MM_Code },
11818   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11819   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11820   { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
11821   { &hf_gsm_map_ms_supportedCAMELPhases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11822   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11823   { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
11824   { &hf_gsm_map_ms_offeredCamel4Functionalities, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4Functionalities },
11825   { NULL, 0, 0, 0, NULL }
11826 };
11827
11828 static int
11829 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_) {
11830   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11831                                    gsm_map_ms_NoteMM_EventArg_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventArg);
11832
11833   return offset;
11834 }
11835
11836
11837 static const ber_sequence_t gsm_map_ms_NoteMM_EventRes_sequence[] = {
11838   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11839   { NULL, 0, 0, 0, NULL }
11840 };
11841
11842 static int
11843 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_) {
11844   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11845                                    gsm_map_ms_NoteMM_EventRes_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventRes);
11846
11847   return offset;
11848 }
11849
11850
11851 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
11852
11853
11854
11855 static int
11856 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_) {
11857   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
11858
11859   return offset;
11860 }
11861
11862
11863 static const ber_sequence_t gsm_map_ch_CUG_CheckInfo_sequence[] = {
11864   { &hf_gsm_map_ch_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock },
11865   { &hf_gsm_map_ch_cug_OutgoingAccess, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
11866   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11867   { NULL, 0, 0, 0, NULL }
11868 };
11869
11870 static int
11871 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_) {
11872   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11873                                    gsm_map_ch_CUG_CheckInfo_sequence, hf_index, ett_gsm_map_ch_CUG_CheckInfo);
11874
11875   return offset;
11876 }
11877
11878
11879
11880 static int
11881 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_) {
11882   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11883                                                 NULL);
11884
11885   return offset;
11886 }
11887
11888
11889 static const value_string gsm_map_ch_InterrogationType_vals[] = {
11890   {   0, "basicCall" },
11891   {   1, "forwarding" },
11892   { 0, NULL }
11893 };
11894
11895
11896 static int
11897 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_) {
11898   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11899                                   NULL);
11900
11901   return offset;
11902 }
11903
11904
11905
11906 static int
11907 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_) {
11908   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11909                                                 NULL);
11910
11911   return offset;
11912 }
11913
11914
11915
11916 int
11917 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_) {
11918   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11919                                        NULL);
11920
11921   return offset;
11922 }
11923
11924
11925 static const value_string gsm_map_ch_ForwardingReason_vals[] = {
11926   {   0, "notReachable" },
11927   {   1, "busy" },
11928   {   2, "noReply" },
11929   { 0, NULL }
11930 };
11931
11932
11933 static int
11934 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_) {
11935   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11936                                   NULL);
11937
11938   return offset;
11939 }
11940
11941
11942 static const ber_sequence_t gsm_map_ch_CamelInfo_sequence[] = {
11943   { &hf_gsm_map_ch_supportedCamelPhases, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11944   { &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 },
11945   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11946   { &hf_gsm_map_ch_offeredCamel4CSIs, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
11947   { NULL, 0, 0, 0, NULL }
11948 };
11949
11950 static int
11951 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_) {
11952   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11953                                    gsm_map_ch_CamelInfo_sequence, hf_index, ett_gsm_map_ch_CamelInfo);
11954
11955   return offset;
11956 }
11957
11958
11959
11960 int
11961 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_) {
11962   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
11963
11964   return offset;
11965 }
11966
11967
11968
11969 static int
11970 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_) {
11971   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11972                                                 NULL);
11973
11974   return offset;
11975 }
11976
11977
11978
11979 static int
11980 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_) {
11981   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11982                                        NULL);
11983
11984   return offset;
11985 }
11986
11987
11988 static const asn_namedbit gsm_map_ch_SuppressMTSS_bits[] = {
11989   {  0, &hf_gsm_map_ch_SuppressMTSS_suppressCUG, -1, -1, "suppressCUG", NULL },
11990   {  1, &hf_gsm_map_ch_SuppressMTSS_suppressCCBS, -1, -1, "suppressCCBS", NULL },
11991   { 0, NULL, 0, 0, NULL, NULL }
11992 };
11993
11994 static int
11995 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_) {
11996   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11997                                     gsm_map_ch_SuppressMTSS_bits, hf_index, ett_gsm_map_ch_SuppressMTSS,
11998                                     NULL);
11999
12000   return offset;
12001 }
12002
12003
12004 static const ber_sequence_t gsm_map_ch_SendRoutingInfoArg_sequence[] = {
12005   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12006   { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
12007   { &hf_gsm_map_ch_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding },
12008   { &hf_gsm_map_ch_interrogationType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_InterrogationType },
12009   { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12010   { &hf_gsm_map_ch_or_Capability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_OR_Phase },
12011   { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12012   { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
12013   { &hf_gsm_map_ch_forwardingReason, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingReason },
12014   { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
12015   { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
12016   { &hf_gsm_map_ch_camelInfo, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelInfo },
12017   { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
12018   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12019   { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
12020   { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12021   { &hf_gsm_map_ch_supportedCCBS_Phase, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SupportedCCBS_Phase },
12022   { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo },
12023   { &hf_gsm_map_ch_istSupportIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator },
12024   { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12025   { &hf_gsm_map_ch_callDiversionTreatmentIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallDiversionTreatmentIndicator },
12026   { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12027   { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12028   { &hf_gsm_map_ch_suppressIncomingCallBarring, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12029   { &hf_gsm_map_ch_gsmSCF_InitiatedCall, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12030   { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
12031   { &hf_gsm_map_ch_networkSignalInfo2, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
12032   { &hf_gsm_map_ch_suppressMTSS, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressMTSS },
12033   { &hf_gsm_map_ch_mtRoamingRetrySupported, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12034   { &hf_gsm_map_ch_callPriority, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
12035   { NULL, 0, 0, 0, NULL }
12036 };
12037
12038 static int
12039 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_) {
12040   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12041                                    gsm_map_ch_SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoArg);
12042
12043   return offset;
12044 }
12045
12046
12047 static const ber_sequence_t gsm_map_ch_ForwardingData_sequence[] = {
12048   { &hf_gsm_map_ch_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12049   { &hf_gsm_map_ch_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
12050   { &hf_gsm_map_ch_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions },
12051   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12052   { &hf_gsm_map_ch_longForwardedToNumber, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
12053   { NULL, 0, 0, 0, NULL }
12054 };
12055
12056 static int
12057 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_) {
12058   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12059                                    gsm_map_ch_ForwardingData_sequence, hf_index, ett_gsm_map_ch_ForwardingData);
12060
12061   return offset;
12062 }
12063
12064
12065 static const value_string gsm_map_ch_RoutingInfo_vals[] = {
12066   {   0, "roamingNumber" },
12067   {   1, "forwardingData" },
12068   { 0, NULL }
12069 };
12070
12071 static const ber_choice_t gsm_map_ch_RoutingInfo_choice[] = {
12072   {   0, &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12073   {   1, &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData },
12074   { 0, NULL, 0, 0, 0, NULL }
12075 };
12076
12077 static int
12078 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_) {
12079   offset = dissect_ber_choice(actx, tree, tvb, offset,
12080                                  gsm_map_ch_RoutingInfo_choice, hf_index, ett_gsm_map_ch_RoutingInfo,
12081                                  NULL);
12082
12083   return offset;
12084 }
12085
12086
12087 static const ber_sequence_t gsm_map_ch_GmscCamelSubscriptionInfo_sequence[] = {
12088   { &hf_gsm_map_ch_t_CSI    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
12089   { &hf_gsm_map_ch_o_CSI    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
12090   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12091   { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
12092   { &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 },
12093   { &hf_gsm_map_ch_d_csi    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
12094   { NULL, 0, 0, 0, NULL }
12095 };
12096
12097 static int
12098 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_) {
12099   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12100                                    gsm_map_ch_GmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ch_GmscCamelSubscriptionInfo);
12101
12102   return offset;
12103 }
12104
12105
12106 static const ber_sequence_t gsm_map_ch_CamelRoutingInfo_sequence[] = {
12107   { &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData },
12108   { &hf_gsm_map_ch_gmscCamelSubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_GmscCamelSubscriptionInfo },
12109   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12110   { NULL, 0, 0, 0, NULL }
12111 };
12112
12113 static int
12114 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_) {
12115   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12116                                    gsm_map_ch_CamelRoutingInfo_sequence, hf_index, ett_gsm_map_ch_CamelRoutingInfo);
12117
12118   return offset;
12119 }
12120
12121
12122 static const value_string gsm_map_ch_ExtendedRoutingInfo_vals[] = {
12123   {   0, "routingInfo" },
12124   {   1, "camelRoutingInfo" },
12125   { 0, NULL }
12126 };
12127
12128 static const ber_choice_t gsm_map_ch_ExtendedRoutingInfo_choice[] = {
12129   {   0, &hf_gsm_map_ch_routingInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo },
12130   {   1, &hf_gsm_map_ch_camelRoutingInfo, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelRoutingInfo },
12131   { 0, NULL, 0, 0, 0, NULL }
12132 };
12133
12134 static int
12135 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_) {
12136   offset = dissect_ber_choice(actx, tree, tvb, offset,
12137                                  gsm_map_ch_ExtendedRoutingInfo_choice, hf_index, ett_gsm_map_ch_ExtendedRoutingInfo,
12138                                  NULL);
12139
12140   return offset;
12141 }
12142
12143
12144 static const ber_sequence_t gsm_map_ch_CCBS_Indicators_sequence[] = {
12145   { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12146   { &hf_gsm_map_ch_keepCCBS_CallIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12147   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12148   { NULL, 0, 0, 0, NULL }
12149 };
12150
12151 static int
12152 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_) {
12153   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12154                                    gsm_map_ch_CCBS_Indicators_sequence, hf_index, ett_gsm_map_ch_CCBS_Indicators);
12155
12156   return offset;
12157 }
12158
12159
12160 static const asn_namedbit gsm_map_ch_AllowedServices_bits[] = {
12161   {  0, &hf_gsm_map_ch_AllowedServices_firstServiceAllowed, -1, -1, "firstServiceAllowed", NULL },
12162   {  1, &hf_gsm_map_ch_AllowedServices_secondServiceAllowed, -1, -1, "secondServiceAllowed", NULL },
12163   { 0, NULL, 0, 0, NULL, NULL }
12164 };
12165
12166 static int
12167 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_) {
12168   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
12169                                     gsm_map_ch_AllowedServices_bits, hf_index, ett_gsm_map_ch_AllowedServices,
12170                                     NULL);
12171
12172   return offset;
12173 }
12174
12175
12176 static const value_string gsm_map_ch_UnavailabilityCause_vals[] = {
12177   {   1, "bearerServiceNotProvisioned" },
12178   {   2, "teleserviceNotProvisioned" },
12179   {   3, "absentSubscriber" },
12180   {   4, "busySubscriber" },
12181   {   5, "callBarred" },
12182   {   6, "cug-Reject" },
12183   { 0, NULL }
12184 };
12185
12186
12187 static int
12188 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_) {
12189   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12190                                   NULL);
12191
12192   return offset;
12193 }
12194
12195
12196 static const ber_sequence_t gsm_map_ch_SendRoutingInfoRes_U_sequence[] = {
12197   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12198   { &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 },
12199   { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
12200   { &hf_gsm_map_ch_cugSubscriptionFlag, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12201   { &hf_gsm_map_ch_subscriberInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberInfo },
12202   { &hf_gsm_map_ch_ss_List  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
12203   { &hf_gsm_map_ch_basicService, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
12204   { &hf_gsm_map_ch_forwardingInterrogationRequired, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12205   { &hf_gsm_map_ch_vmsc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12206   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12207   { &hf_gsm_map_ch_naea_PreferredCI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI },
12208   { &hf_gsm_map_ch_ccbs_Indicators, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_Indicators },
12209   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12210   { &hf_gsm_map_ch_numberPortabilityStatus, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus },
12211   { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
12212   { &hf_gsm_map_ch_supportedCamelPhasesInVMSC, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
12213   { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
12214   { &hf_gsm_map_ch_routingInfo2, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ch_RoutingInfo },
12215   { &hf_gsm_map_ch_ss_List2 , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
12216   { &hf_gsm_map_ch_basicService2, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
12217   { &hf_gsm_map_ch_allowedServices, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_AllowedServices },
12218   { &hf_gsm_map_ch_unavailabilityCause, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UnavailabilityCause },
12219   { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12220   { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
12221   { NULL, 0, 0, 0, NULL }
12222 };
12223
12224 static int
12225 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_) {
12226   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12227                                    gsm_map_ch_SendRoutingInfoRes_U_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoRes_U);
12228
12229   return offset;
12230 }
12231
12232
12233
12234 static int
12235 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_) {
12236   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
12237                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ch_SendRoutingInfoRes_U);
12238
12239   return offset;
12240 }
12241
12242
12243 static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberArg_sequence[] = {
12244   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12245   { &hf_gsm_map_ch_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12246   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12247   { &hf_gsm_map_ch_lmsi     , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
12248   { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
12249   { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
12250   { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
12251   { &hf_gsm_map_ch_gmsc_Address, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12252   { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
12253   { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12254   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12255   { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
12256   { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12257   { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
12258   { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo },
12259   { &hf_gsm_map_ch_orNotSupportedInGMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12260   { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12261   { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12262   { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12263   { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
12264   { &hf_gsm_map_ch_mtRoamingRetrySupported, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12265   { &hf_gsm_map_ch_pagingArea, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PagingArea },
12266   { &hf_gsm_map_ch_callPriority, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
12267   { NULL, 0, 0, 0, NULL }
12268 };
12269
12270 static int
12271 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_) {
12272   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12273                                    gsm_map_ch_ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberArg);
12274
12275   return offset;
12276 }
12277
12278
12279 static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberRes_sequence[] = {
12280   { &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12281   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12282   { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
12283   { NULL, 0, 0, 0, NULL }
12284 };
12285
12286 static int
12287 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_) {
12288   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12289                                    gsm_map_ch_ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberRes);
12290
12291   return offset;
12292 }
12293
12294
12295
12296 static int
12297 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_) {
12298   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12299                                        NULL);
12300
12301   return offset;
12302 }
12303
12304
12305
12306 static int
12307 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_) {
12308   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12309                                        NULL);
12310
12311   return offset;
12312 }
12313
12314
12315 static const ber_sequence_t gsm_map_ch_UU_Data_sequence[] = {
12316   { &hf_gsm_map_ch_uuIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUIndicator },
12317   { &hf_gsm_map_ch_uui      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUI },
12318   { &hf_gsm_map_ch_uusCFInteraction, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12319   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12320   { NULL, 0, 0, 0, NULL }
12321 };
12322
12323 int
12324 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_) {
12325   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12326                                    gsm_map_ch_UU_Data_sequence, hf_index, ett_gsm_map_ch_UU_Data);
12327
12328   return offset;
12329 }
12330
12331
12332 static const ber_sequence_t gsm_map_ch_ResumeCallHandlingArg_sequence[] = {
12333   { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
12334   { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
12335   { &hf_gsm_map_ch_forwardingData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingData },
12336   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12337   { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
12338   { &hf_gsm_map_ch_o_CSI    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
12339   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12340   { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12341   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12342   { &hf_gsm_map_ch_uu_Data  , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UU_Data },
12343   { &hf_gsm_map_ch_allInformationSent, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12344   { &hf_gsm_map_ch_d_csi    , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
12345   { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
12346   { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
12347   { &hf_gsm_map_ch_mtRoamingRetry, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12348   { NULL, 0, 0, 0, NULL }
12349 };
12350
12351 static int
12352 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_) {
12353   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12354                                    gsm_map_ch_ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingArg);
12355
12356   return offset;
12357 }
12358
12359
12360 static const ber_sequence_t gsm_map_ch_ResumeCallHandlingRes_sequence[] = {
12361   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12362   { NULL, 0, 0, 0, NULL }
12363 };
12364
12365 static int
12366 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_) {
12367   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12368                                    gsm_map_ch_ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingRes);
12369
12370   return offset;
12371 }
12372
12373
12374 static const value_string gsm_map_ch_ReportingState_vals[] = {
12375   {   0, "stopMonitoring" },
12376   {   1, "startMonitoring" },
12377   { 0, NULL }
12378 };
12379
12380
12381 static int
12382 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_) {
12383   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12384                                   NULL);
12385
12386   return offset;
12387 }
12388
12389
12390 static const ber_sequence_t gsm_map_ch_SetReportingStateArg_sequence[] = {
12391   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12392   { &hf_gsm_map_ch_lmsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
12393   { &hf_gsm_map_ch_ccbs_Monitoring, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ReportingState },
12394   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12395   { NULL, 0, 0, 0, NULL }
12396 };
12397
12398 static int
12399 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_) {
12400   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12401                                    gsm_map_ch_SetReportingStateArg_sequence, hf_index, ett_gsm_map_ch_SetReportingStateArg);
12402
12403   return offset;
12404 }
12405
12406
12407 static const value_string gsm_map_ch_CCBS_SubscriberStatus_vals[] = {
12408   {   0, "ccbsNotIdle" },
12409   {   1, "ccbsIdle" },
12410   {   2, "ccbsNotReachable" },
12411   { 0, NULL }
12412 };
12413
12414
12415 static int
12416 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_) {
12417   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12418                                   NULL);
12419
12420   return offset;
12421 }
12422
12423
12424 static const ber_sequence_t gsm_map_ch_SetReportingStateRes_sequence[] = {
12425   { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus },
12426   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12427   { NULL, 0, 0, 0, NULL }
12428 };
12429
12430 static int
12431 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_) {
12432   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12433                                    gsm_map_ch_SetReportingStateRes_sequence, hf_index, ett_gsm_map_ch_SetReportingStateRes);
12434
12435   return offset;
12436 }
12437
12438
12439 static const ber_sequence_t gsm_map_ch_EventReportData_sequence[] = {
12440   { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus },
12441   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12442   { NULL, 0, 0, 0, NULL }
12443 };
12444
12445 static int
12446 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_) {
12447   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12448                                    gsm_map_ch_EventReportData_sequence, hf_index, ett_gsm_map_ch_EventReportData);
12449
12450   return offset;
12451 }
12452
12453
12454 static const value_string gsm_map_ch_MonitoringMode_vals[] = {
12455   {   0, "a-side" },
12456   {   1, "b-side" },
12457   { 0, NULL }
12458 };
12459
12460
12461 static int
12462 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_) {
12463   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12464                                   NULL);
12465
12466   return offset;
12467 }
12468
12469
12470 static const value_string gsm_map_ch_CallOutcome_vals[] = {
12471   {   0, "success" },
12472   {   1, "failure" },
12473   {   2, "busy" },
12474   { 0, NULL }
12475 };
12476
12477
12478 static int
12479 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_) {
12480   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12481                                   NULL);
12482
12483   return offset;
12484 }
12485
12486
12487 static const ber_sequence_t gsm_map_ch_CallReportData_sequence[] = {
12488   { &hf_gsm_map_ch_monitoringMode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_MonitoringMode },
12489   { &hf_gsm_map_ch_callOutcome, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallOutcome },
12490   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12491   { NULL, 0, 0, 0, NULL }
12492 };
12493
12494 static int
12495 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_) {
12496   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12497                                    gsm_map_ch_CallReportData_sequence, hf_index, ett_gsm_map_ch_CallReportData);
12498
12499   return offset;
12500 }
12501
12502
12503 static const ber_sequence_t gsm_map_ch_StatusReportArg_sequence[] = {
12504   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12505   { &hf_gsm_map_ch_eventReportData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_EventReportData },
12506   { &hf_gsm_map_ch_callReportdata, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReportData },
12507   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12508   { NULL, 0, 0, 0, NULL }
12509 };
12510
12511 static int
12512 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_) {
12513   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12514                                    gsm_map_ch_StatusReportArg_sequence, hf_index, ett_gsm_map_ch_StatusReportArg);
12515
12516   return offset;
12517 }
12518
12519
12520 static const ber_sequence_t gsm_map_ch_StatusReportRes_sequence[] = {
12521   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12522   { NULL, 0, 0, 0, NULL }
12523 };
12524
12525 static int
12526 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_) {
12527   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12528                                    gsm_map_ch_StatusReportRes_sequence, hf_index, ett_gsm_map_ch_StatusReportRes);
12529
12530   return offset;
12531 }
12532
12533
12534 static const ber_sequence_t gsm_map_ch_RemoteUserFreeArg_sequence[] = {
12535   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12536   { &hf_gsm_map_ch_callInfo , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
12537   { &hf_gsm_map_ch_ccbs_Feature, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
12538   { &hf_gsm_map_ch_translatedB_Number, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12539   { &hf_gsm_map_ch_replaceB_Number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12540   { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
12541   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12542   { NULL, 0, 0, 0, NULL }
12543 };
12544
12545 static int
12546 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_) {
12547   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12548                                    gsm_map_ch_RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeArg);
12549
12550   return offset;
12551 }
12552
12553
12554 static const value_string gsm_map_ch_RUF_Outcome_vals[] = {
12555   {   0, "accepted" },
12556   {   1, "rejected" },
12557   {   2, "noResponseFromFreeMS" },
12558   {   3, "noResponseFromBusyMS" },
12559   {   4, "udubFromFreeMS" },
12560   {   5, "udubFromBusyMS" },
12561   { 0, NULL }
12562 };
12563
12564
12565 static int
12566 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_) {
12567   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12568                                   NULL);
12569
12570   return offset;
12571 }
12572
12573
12574 static const ber_sequence_t gsm_map_ch_RemoteUserFreeRes_sequence[] = {
12575   { &hf_gsm_map_ch_ruf_Outcome, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_RUF_Outcome },
12576   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12577   { NULL, 0, 0, 0, NULL }
12578 };
12579
12580 static int
12581 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_) {
12582   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12583                                    gsm_map_ch_RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeRes);
12584
12585   return offset;
12586 }
12587
12588
12589 static const ber_sequence_t gsm_map_ch_IST_AlertArg_sequence[] = {
12590   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12591   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12592   { NULL, 0, 0, 0, NULL }
12593 };
12594
12595 static int
12596 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_) {
12597   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12598                                    gsm_map_ch_IST_AlertArg_sequence, hf_index, ett_gsm_map_ch_IST_AlertArg);
12599
12600   return offset;
12601 }
12602
12603
12604 static const value_string gsm_map_ch_CallTerminationIndicator_vals[] = {
12605   {   0, "terminateCallActivityReferred" },
12606   {   1, "terminateAllCallActivities" },
12607   { 0, NULL }
12608 };
12609
12610
12611 static int
12612 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_) {
12613   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12614                                   NULL);
12615
12616   return offset;
12617 }
12618
12619
12620 static const ber_sequence_t gsm_map_ch_IST_AlertRes_sequence[] = {
12621   { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
12622   { &hf_gsm_map_ch_istInformationWithdraw, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
12623   { &hf_gsm_map_ch_callTerminationIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallTerminationIndicator },
12624   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12625   { NULL, 0, 0, 0, NULL }
12626 };
12627
12628 static int
12629 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_) {
12630   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12631                                    gsm_map_ch_IST_AlertRes_sequence, hf_index, ett_gsm_map_ch_IST_AlertRes);
12632
12633   return offset;
12634 }
12635
12636
12637 static const ber_sequence_t gsm_map_ch_IST_CommandArg_sequence[] = {
12638   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12639   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12640   { NULL, 0, 0, 0, NULL }
12641 };
12642
12643 static int
12644 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_) {
12645   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12646                                    gsm_map_ch_IST_CommandArg_sequence, hf_index, ett_gsm_map_ch_IST_CommandArg);
12647
12648   return offset;
12649 }
12650
12651
12652 static const ber_sequence_t gsm_map_ch_IST_CommandRes_sequence[] = {
12653   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12654   { NULL, 0, 0, 0, NULL }
12655 };
12656
12657 static int
12658 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_) {
12659   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12660                                    gsm_map_ch_IST_CommandRes_sequence, hf_index, ett_gsm_map_ch_IST_CommandRes);
12661
12662   return offset;
12663 }
12664
12665
12666 static const ber_sequence_t gsm_map_ch_ReleaseResourcesArg_sequence[] = {
12667   { &hf_gsm_map_ch_msrn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12668   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12669   { NULL, 0, 0, 0, NULL }
12670 };
12671
12672 static int
12673 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_) {
12674   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12675                                    gsm_map_ch_ReleaseResourcesArg_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesArg);
12676
12677   return offset;
12678 }
12679
12680
12681 static const ber_sequence_t gsm_map_ch_ReleaseResourcesRes_sequence[] = {
12682   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12683   { NULL, 0, 0, 0, NULL }
12684 };
12685
12686 static int
12687 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_) {
12688   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12689                                    gsm_map_ch_ReleaseResourcesRes_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesRes);
12690
12691   return offset;
12692 }
12693
12694
12695 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
12696
12697
12698 static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Arg_sequence[] = {
12699   { &hf_gsm_map_lcs_mlcNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12700   { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
12701   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12702   { NULL, 0, 0, 0, NULL }
12703 };
12704
12705 static int
12706 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_) {
12707   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12708                                    gsm_map_lcs_RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Arg);
12709
12710   return offset;
12711 }
12712
12713
12714
12715 static int
12716 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_) {
12717   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
12718
12719   return offset;
12720 }
12721
12722
12723 static const ber_sequence_t gsm_map_lcs_LCSLocationInfo_sequence[] = {
12724   { &hf_gsm_map_lcs_networkNode_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12725   { &hf_gsm_map_lcs_lmsi    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
12726   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12727   { &hf_gsm_map_lcs_gprsNodeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12728   { &hf_gsm_map_lcs_additional_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_Additional_Number },
12729   { &hf_gsm_map_lcs_supportedLCS_CapabilitySets, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
12730   { &hf_gsm_map_lcs_additional_LCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
12731   { NULL, 0, 0, 0, NULL }
12732 };
12733
12734 static int
12735 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_) {
12736   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12737                                    gsm_map_lcs_LCSLocationInfo_sequence, hf_index, ett_gsm_map_lcs_LCSLocationInfo);
12738
12739   return offset;
12740 }
12741
12742
12743 static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Res_sequence[] = {
12744   { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
12745   { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo },
12746   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12747   { &hf_gsm_map_lcs_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12748   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12749   { &hf_gsm_map_lcs_ppr_Address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12750   { &hf_gsm_map_lcs_additional_v_gmlc_Address, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12751   { NULL, 0, 0, 0, NULL }
12752 };
12753
12754 static int
12755 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_) {
12756   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12757                                    gsm_map_lcs_RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Res);
12758
12759   return offset;
12760 }
12761
12762
12763 static const value_string gsm_map_lcs_LocationEstimateType_vals[] = {
12764   {   0, "currentLocation" },
12765   {   1, "currentOrLastKnownLocation" },
12766   {   2, "initialLocation" },
12767   {   3, "activateDeferredLocation" },
12768   {   4, "cancelDeferredLocation" },
12769   {   5, "notificationVerificationOnly" },
12770   { 0, NULL }
12771 };
12772
12773
12774 static int
12775 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_) {
12776   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12777                                   NULL);
12778
12779   return offset;
12780 }
12781
12782
12783 static const asn_namedbit gsm_map_lcs_DeferredLocationEventType_bits[] = {
12784   {  0, &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable, -1, -1, "msAvailable", NULL },
12785   {  1, &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea, -1, -1, "enteringIntoArea", NULL },
12786   {  2, &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea, -1, -1, "leavingFromArea", NULL },
12787   {  3, &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea, -1, -1, "beingInsideArea", NULL },
12788   {  4, &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR, -1, -1, "periodicLDR", NULL },
12789   { 0, NULL, 0, 0, NULL, NULL }
12790 };
12791
12792 int
12793 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_) {
12794   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
12795                                     gsm_map_lcs_DeferredLocationEventType_bits, hf_index, ett_gsm_map_lcs_DeferredLocationEventType,
12796                                     NULL);
12797
12798   return offset;
12799 }
12800
12801
12802 static const ber_sequence_t gsm_map_lcs_LocationType_sequence[] = {
12803   { &hf_gsm_map_lcs_locationEstimateType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationEstimateType },
12804   { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
12805   { NULL, 0, 0, 0, NULL }
12806 };
12807
12808 int
12809 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_) {
12810   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12811                                    gsm_map_lcs_LocationType_sequence, hf_index, ett_gsm_map_lcs_LocationType);
12812
12813   return offset;
12814 }
12815
12816
12817 static const value_string gsm_map_lcs_LCSClientType_vals[] = {
12818   {   0, "emergencyServices" },
12819   {   1, "valueAddedServices" },
12820   {   2, "plmnOperatorServices" },
12821   {   3, "lawfulInterceptServices" },
12822   { 0, NULL }
12823 };
12824
12825
12826 static int
12827 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_) {
12828   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12829                                   NULL);
12830
12831   return offset;
12832 }
12833
12834
12835
12836 static int
12837 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_) {
12838   offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
12839
12840   return offset;
12841 }
12842
12843
12844 static const value_string gsm_map_lcs_LCS_FormatIndicator_vals[] = {
12845   {   0, "logicalName" },
12846   {   1, "e-mailAddress" },
12847   {   2, "msisdn" },
12848   {   3, "url" },
12849   {   4, "sipUrl" },
12850   { 0, NULL }
12851 };
12852
12853
12854 static int
12855 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_) {
12856   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12857                                   NULL);
12858
12859   return offset;
12860 }
12861
12862
12863 static const ber_sequence_t gsm_map_lcs_LCSClientName_sequence[] = {
12864   { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
12865   { &hf_gsm_map_lcs_nameString, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NameString },
12866   { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator },
12867   { NULL, 0, 0, 0, NULL }
12868 };
12869
12870 int
12871 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_) {
12872   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12873                                    gsm_map_lcs_LCSClientName_sequence, hf_index, ett_gsm_map_lcs_LCSClientName);
12874
12875   return offset;
12876 }
12877
12878
12879
12880 static int
12881 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_) {
12882   offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
12883
12884   return offset;
12885 }
12886
12887
12888 static const ber_sequence_t gsm_map_lcs_LCSRequestorID_sequence[] = {
12889   { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
12890   { &hf_gsm_map_lcs_requestorIDString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RequestorIDString },
12891   { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator },
12892   { NULL, 0, 0, 0, NULL }
12893 };
12894
12895 int
12896 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_) {
12897   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12898                                    gsm_map_lcs_LCSRequestorID_sequence, hf_index, ett_gsm_map_lcs_LCSRequestorID);
12899
12900   return offset;
12901 }
12902
12903
12904 static const ber_sequence_t gsm_map_lcs_LCS_ClientID_sequence[] = {
12905   { &hf_gsm_map_lcs_lcsClientType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientType },
12906   { &hf_gsm_map_lcs_lcsClientExternalID, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
12907   { &hf_gsm_map_lcs_lcsClientDialedByMS, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
12908   { &hf_gsm_map_lcs_lcsClientInternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientInternalID },
12909   { &hf_gsm_map_lcs_lcsClientName, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName },
12910   { &hf_gsm_map_lcs_lcsAPN  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
12911   { &hf_gsm_map_lcs_lcsRequestorID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID },
12912   { NULL, 0, 0, 0, NULL }
12913 };
12914
12915 int
12916 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_) {
12917   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12918                                    gsm_map_lcs_LCS_ClientID_sequence, hf_index, ett_gsm_map_lcs_LCS_ClientID);
12919
12920   return offset;
12921 }
12922
12923
12924
12925 static int
12926 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_) {
12927   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12928                                        NULL);
12929
12930   return offset;
12931 }
12932
12933
12934
12935 static int
12936 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_) {
12937   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12938                                        NULL);
12939
12940   return offset;
12941 }
12942
12943
12944
12945 static int
12946 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_) {
12947   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12948                                        NULL);
12949
12950   return offset;
12951 }
12952
12953
12954 static const value_string gsm_map_lcs_ResponseTimeCategory_vals[] = {
12955   {   0, "lowdelay" },
12956   {   1, "delaytolerant" },
12957   { 0, NULL }
12958 };
12959
12960
12961 static int
12962 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_) {
12963   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12964                                   NULL);
12965
12966   return offset;
12967 }
12968
12969
12970 static const ber_sequence_t gsm_map_lcs_ResponseTime_sequence[] = {
12971   { &hf_gsm_map_lcs_responseTimeCategory, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ResponseTimeCategory },
12972   { NULL, 0, 0, 0, NULL }
12973 };
12974
12975 static int
12976 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_) {
12977   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12978                                    gsm_map_lcs_ResponseTime_sequence, hf_index, ett_gsm_map_lcs_ResponseTime);
12979
12980   return offset;
12981 }
12982
12983
12984 static const ber_sequence_t gsm_map_lcs_LCS_QoS_sequence[] = {
12985   { &hf_gsm_map_lcs_horizontal_accuracy, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Horizontal_Accuracy },
12986   { &hf_gsm_map_lcs_verticalCoordinateRequest, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12987   { &hf_gsm_map_lcs_vertical_accuracy, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Vertical_Accuracy },
12988   { &hf_gsm_map_lcs_responseTime, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ResponseTime },
12989   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12990   { &hf_gsm_map_lcs_velocityRequest, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12991   { NULL, 0, 0, 0, NULL }
12992 };
12993
12994 int
12995 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_) {
12996   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12997                                    gsm_map_lcs_LCS_QoS_sequence, hf_index, ett_gsm_map_lcs_LCS_QoS);
12998
12999   return offset;
13000 }
13001
13002
13003 static const asn_namedbit gsm_map_lcs_SupportedGADShapes_bits[] = {
13004   {  0, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint, -1, -1, "ellipsoidPoint", NULL },
13005   {  1, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle, -1, -1, "ellipsoidPointWithUncertaintyCircle", NULL },
13006   {  2, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse, -1, -1, "ellipsoidPointWithUncertaintyEllipse", NULL },
13007   {  3, &hf_gsm_map_lcs_SupportedGADShapes_polygon, -1, -1, "polygon", NULL },
13008   {  4, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude, -1, -1, "ellipsoidPointWithAltitude", NULL },
13009   {  5, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid, -1, -1, "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", NULL },
13010   {  6, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc, -1, -1, "ellipsoidArc", NULL },
13011   { 0, NULL, 0, 0, NULL, NULL }
13012 };
13013
13014 int
13015 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_) {
13016   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
13017                                     gsm_map_lcs_SupportedGADShapes_bits, hf_index, ett_gsm_map_lcs_SupportedGADShapes,
13018                                     NULL);
13019
13020   return offset;
13021 }
13022
13023
13024
13025 int
13026 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_) {
13027   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13028                                        NULL);
13029
13030   return offset;
13031 }
13032
13033
13034
13035 static int
13036 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_) {
13037   offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
13038
13039   return offset;
13040 }
13041
13042
13043 static const ber_sequence_t gsm_map_lcs_LCSCodeword_sequence[] = {
13044   { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
13045   { &hf_gsm_map_lcs_lcsCodewordString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodewordString },
13046   { NULL, 0, 0, 0, NULL }
13047 };
13048
13049 int
13050 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_) {
13051   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13052                                    gsm_map_lcs_LCSCodeword_sequence, hf_index, ett_gsm_map_lcs_LCSCodeword);
13053
13054   return offset;
13055 }
13056
13057
13058 static const value_string gsm_map_lcs_PrivacyCheckRelatedAction_vals[] = {
13059   {   0, "allowedWithoutNotification" },
13060   {   1, "allowedWithNotification" },
13061   {   2, "allowedIfNoResponse" },
13062   {   3, "restrictedIfNoResponse" },
13063   {   4, "notAllowed" },
13064   { 0, NULL }
13065 };
13066
13067
13068 static int
13069 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_) {
13070   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13071                                   NULL);
13072
13073   return offset;
13074 }
13075
13076
13077 static const ber_sequence_t gsm_map_lcs_LCS_PrivacyCheck_sequence[] = {
13078   { &hf_gsm_map_lcs_callSessionUnrelated, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction },
13079   { &hf_gsm_map_lcs_callSessionRelated, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction },
13080   { NULL, 0, 0, 0, NULL }
13081 };
13082
13083 static int
13084 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_) {
13085   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13086                                    gsm_map_lcs_LCS_PrivacyCheck_sequence, hf_index, ett_gsm_map_lcs_LCS_PrivacyCheck);
13087
13088   return offset;
13089 }
13090
13091
13092 static const value_string gsm_map_lcs_AreaType_vals[] = {
13093   {   0, "countryCode" },
13094   {   1, "plmnId" },
13095   {   2, "locationAreaId" },
13096   {   3, "routingAreaId" },
13097   {   4, "cellGlobalId" },
13098   {   5, "utranCellId" },
13099   { 0, NULL }
13100 };
13101
13102
13103 static int
13104 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_) {
13105   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13106                                   NULL);
13107
13108   return offset;
13109 }
13110
13111
13112
13113 static int
13114 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_) {
13115   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13116                                        NULL);
13117
13118   return offset;
13119 }
13120
13121
13122 static const ber_sequence_t gsm_map_lcs_Area_sequence[] = {
13123   { &hf_gsm_map_lcs_areaType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaType },
13124   { &hf_gsm_map_lcs_areaIdentification, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaIdentification },
13125   { NULL, 0, 0, 0, NULL }
13126 };
13127
13128 static int
13129 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_) {
13130   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13131                                    gsm_map_lcs_Area_sequence, hf_index, ett_gsm_map_lcs_Area);
13132
13133   return offset;
13134 }
13135
13136
13137 static const ber_sequence_t gsm_map_lcs_AreaList_sequence_of[1] = {
13138   { &hf_gsm_map_lcs_AreaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Area },
13139 };
13140
13141 static int
13142 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_) {
13143   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13144                                       gsm_map_lcs_AreaList_sequence_of, hf_index, ett_gsm_map_lcs_AreaList);
13145
13146   return offset;
13147 }
13148
13149
13150 static const ber_sequence_t gsm_map_lcs_AreaDefinition_sequence[] = {
13151   { &hf_gsm_map_lcs_areaList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaList },
13152   { NULL, 0, 0, 0, NULL }
13153 };
13154
13155 static int
13156 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_) {
13157   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13158                                    gsm_map_lcs_AreaDefinition_sequence, hf_index, ett_gsm_map_lcs_AreaDefinition);
13159
13160   return offset;
13161 }
13162
13163
13164 static const value_string gsm_map_lcs_OccurrenceInfo_vals[] = {
13165   {   0, "oneTimeEvent" },
13166   {   1, "multipleTimeEvent" },
13167   { 0, NULL }
13168 };
13169
13170
13171 static int
13172 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_) {
13173   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13174                                   NULL);
13175
13176   return offset;
13177 }
13178
13179
13180
13181 static int
13182 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_) {
13183   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13184                                                 NULL);
13185
13186   return offset;
13187 }
13188
13189
13190 static const ber_sequence_t gsm_map_lcs_AreaEventInfo_sequence[] = {
13191   { &hf_gsm_map_lcs_areaDefinition, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaDefinition },
13192   { &hf_gsm_map_lcs_occurrenceInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_OccurrenceInfo },
13193   { &hf_gsm_map_lcs_intervalTime, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_IntervalTime },
13194   { NULL, 0, 0, 0, NULL }
13195 };
13196
13197 int
13198 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_) {
13199   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13200                                    gsm_map_lcs_AreaEventInfo_sequence, hf_index, ett_gsm_map_lcs_AreaEventInfo);
13201
13202   return offset;
13203 }
13204
13205
13206
13207 static int
13208 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_) {
13209   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13210                                                 NULL);
13211
13212   return offset;
13213 }
13214
13215
13216
13217 static int
13218 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_) {
13219   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13220                                                 NULL);
13221
13222   return offset;
13223 }
13224
13225
13226 static const ber_sequence_t gsm_map_lcs_PeriodicLDRInfo_sequence[] = {
13227   { &hf_gsm_map_lcs_reportingAmount, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingAmount },
13228   { &hf_gsm_map_lcs_reportingInterval, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingInterval },
13229   { NULL, 0, 0, 0, NULL }
13230 };
13231
13232 static int
13233 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_) {
13234   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13235                                    gsm_map_lcs_PeriodicLDRInfo_sequence, hf_index, ett_gsm_map_lcs_PeriodicLDRInfo);
13236
13237   return offset;
13238 }
13239
13240
13241 static const value_string gsm_map_lcs_RAN_Technology_vals[] = {
13242   {   0, "gsm" },
13243   {   1, "umts" },
13244   { 0, NULL }
13245 };
13246
13247
13248 static int
13249 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_) {
13250   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13251                                   NULL);
13252
13253   return offset;
13254 }
13255
13256
13257 static const ber_sequence_t gsm_map_lcs_ReportingPLMN_sequence[] = {
13258   { &hf_gsm_map_lcs_plmn_Id , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
13259   { &hf_gsm_map_lcs_ran_Technology, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RAN_Technology },
13260   { &hf_gsm_map_lcs_ran_PeriodicLocationSupport, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
13261   { NULL, 0, 0, 0, NULL }
13262 };
13263
13264 static int
13265 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_) {
13266   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13267                                    gsm_map_lcs_ReportingPLMN_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMN);
13268
13269   return offset;
13270 }
13271
13272
13273 static const ber_sequence_t gsm_map_lcs_PLMNList_sequence_of[1] = {
13274   { &hf_gsm_map_lcs_PLMNList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingPLMN },
13275 };
13276
13277 static int
13278 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_) {
13279   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13280                                       gsm_map_lcs_PLMNList_sequence_of, hf_index, ett_gsm_map_lcs_PLMNList);
13281
13282   return offset;
13283 }
13284
13285
13286 static const ber_sequence_t gsm_map_lcs_ReportingPLMNList_sequence[] = {
13287   { &hf_gsm_map_lcs_plmn_ListPrioritized, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
13288   { &hf_gsm_map_lcs_plmn_List, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PLMNList },
13289   { NULL, 0, 0, 0, NULL }
13290 };
13291
13292 static int
13293 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_) {
13294   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13295                                    gsm_map_lcs_ReportingPLMNList_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMNList);
13296
13297   return offset;
13298 }
13299
13300
13301 static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Arg_sequence[] = {
13302   { &hf_gsm_map_lcs_locationType, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LocationType },
13303   { &hf_gsm_map_lcs_mlc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
13304   { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ClientID },
13305   { &hf_gsm_map_lcs_privacyOverride, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
13306   { &hf_gsm_map_lcs_imsi    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13307   { &hf_gsm_map_lcs_msisdn  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13308   { &hf_gsm_map_lcs_lmsi    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
13309   { &hf_gsm_map_lcs_imei    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
13310   { &hf_gsm_map_lcs_lcs_Priority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_Priority },
13311   { &hf_gsm_map_lcs_lcs_QoS , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
13312   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13313   { &hf_gsm_map_lcs_supportedGADShapes, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
13314   { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
13315   { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
13316   { &hf_gsm_map_lcs_lcsCodeword, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword },
13317   { &hf_gsm_map_lcs_lcs_PrivacyCheck, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_PrivacyCheck },
13318   { &hf_gsm_map_lcs_areaEventInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo },
13319   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
13320   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
13321   { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
13322   { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
13323   { NULL, 0, 0, 0, NULL }
13324 };
13325
13326 static int
13327 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_) {
13328   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13329                                    gsm_map_lcs_ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Arg);
13330
13331   return offset;
13332 }
13333
13334
13335
13336 int
13337 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_) {
13338 #line 793 "gsmmap.cnf"
13339     tvbuff_t    *parameter_tvb; 
13340         proto_tree      *subtree;
13341
13342   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13343                                        &parameter_tvb);
13344  
13345
13346         if (!parameter_tvb) 
13347                 return offset; 
13348
13349     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GeographicalInformation);
13350         dissect_geographical_description(parameter_tvb, actx->pinfo, subtree); 
13351
13352
13353
13354   return offset;
13355 }
13356
13357
13358
13359 int
13360 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_) {
13361   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13362                                        NULL);
13363
13364   return offset;
13365 }
13366
13367
13368
13369 static int
13370 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_) {
13371   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13372                                        NULL);
13373
13374   return offset;
13375 }
13376
13377
13378
13379 static int
13380 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_) {
13381   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13382                                        NULL);
13383
13384   return offset;
13385 }
13386
13387
13388 static const value_string gsm_map_lcs_AccuracyFulfilmentIndicator_vals[] = {
13389   {   0, "requestedAccuracyFulfilled" },
13390   {   1, "requestedAccuracyNotFulfilled" },
13391   { 0, NULL }
13392 };
13393
13394
13395 static int
13396 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_) {
13397   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13398                                   NULL);
13399
13400   return offset;
13401 }
13402
13403
13404
13405 int
13406 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_) {
13407   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13408                                        NULL);
13409
13410   return offset;
13411 }
13412
13413
13414 static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Res_sequence[] = {
13415   { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
13416   { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
13417   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13418   { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
13419   { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
13420   { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation },
13421   { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo },
13422   { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
13423   { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
13424   { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator },
13425   { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
13426   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
13427   { NULL, 0, 0, 0, NULL }
13428 };
13429
13430 static int
13431 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_) {
13432   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13433                                    gsm_map_lcs_ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Res);
13434
13435   return offset;
13436 }
13437
13438
13439 static const value_string gsm_map_lcs_LCS_Event_vals[] = {
13440   {   0, "emergencyCallOrigination" },
13441   {   1, "emergencyCallRelease" },
13442   {   2, "mo-lr" },
13443   {   3, "deferredmt-lrResponse" },
13444   {   4, "deferredmo-lrTTTPInitiation" },
13445   { 0, NULL }
13446 };
13447
13448
13449 static int
13450 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_) {
13451   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13452                                   NULL);
13453
13454   return offset;
13455 }
13456
13457
13458 static const value_string gsm_map_lcs_TerminationCause_vals[] = {
13459   {   0, "normal" },
13460   {   1, "errorundefined" },
13461   {   2, "internalTimeout" },
13462   {   3, "congestion" },
13463   {   4, "mt-lrRestart" },
13464   {   5, "privacyViolation" },
13465   {   6, "shapeOfLocationEstimateNotSupported" },
13466   {   7, "subscriberTermination" },
13467   {   8, "uETermination" },
13468   {   9, "networkTermination" },
13469   { 0, NULL }
13470 };
13471
13472
13473 static int
13474 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_) {
13475   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13476                                   NULL);
13477
13478   return offset;
13479 }
13480
13481
13482 static const ber_sequence_t gsm_map_lcs_Deferredmt_lrData_sequence[] = {
13483   { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
13484   { &hf_gsm_map_lcs_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_TerminationCause },
13485   { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo },
13486   { NULL, 0, 0, 0, NULL }
13487 };
13488
13489 static int
13490 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_) {
13491   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13492                                    gsm_map_lcs_Deferredmt_lrData_sequence, hf_index, ett_gsm_map_lcs_Deferredmt_lrData);
13493
13494   return offset;
13495 }
13496
13497
13498
13499 static int
13500 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_) {
13501   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13502                                                 NULL);
13503
13504   return offset;
13505 }
13506
13507
13508 static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Arg_sequence[] = {
13509   { &hf_gsm_map_lcs_lcs_Event, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_Event },
13510   { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_ClientID },
13511   { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCSLocationInfo },
13512   { &hf_gsm_map_lcs_msisdn  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13513   { &hf_gsm_map_lcs_imsi    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13514   { &hf_gsm_map_lcs_imei    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
13515   { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13516   { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13517   { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
13518   { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
13519   { &hf_gsm_map_lcs_slr_ArgExtensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_ArgExtensionContainer },
13520   { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
13521   { &hf_gsm_map_lcs_deferredmt_lrData, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Deferredmt_lrData },
13522   { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
13523   { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation },
13524   { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo },
13525   { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
13526   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
13527   { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
13528   { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
13529   { &hf_gsm_map_lcs_pseudonymIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
13530   { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator },
13531   { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
13532   { &hf_gsm_map_lcs_sequenceNumber, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
13533   { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
13534   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
13535   { NULL, 0, 0, 0, NULL }
13536 };
13537
13538 static int
13539 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_) {
13540   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13541                                    gsm_map_lcs_SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Arg);
13542
13543   return offset;
13544 }
13545
13546
13547 static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Res_sequence[] = {
13548   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13549   { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13550   { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13551   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
13552   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
13553   { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
13554   { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
13555   { NULL, 0, 0, 0, NULL }
13556 };
13557
13558 static int
13559 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_) {
13560   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13561                                    gsm_map_lcs_SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Res);
13562
13563   return offset;
13564 }
13565
13566 /*--- PDUs ---*/
13567
13568 int dissect_gsm_map_lcs_LCS_ClientID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
13569   int offset = 0;
13570   asn1_ctx_t asn1_ctx;
13571   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
13572   offset = dissect_gsm_map_lcs_LCS_ClientID(FALSE, tvb, offset, &asn1_ctx, tree, hf_gsm_map_lcs_gsm_map_lcs_LCS_ClientID_PDU);
13573   return offset;
13574 }
13575
13576
13577 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
13578
13579
13580
13581 static int
13582 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_) {
13583   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13584                                        NULL);
13585
13586   return offset;
13587 }
13588
13589
13590
13591 static int
13592 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_) {
13593   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13594                                        NULL);
13595
13596   return offset;
13597 }
13598
13599
13600
13601 static int
13602 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_) {
13603   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13604                                                 NULL);
13605
13606   return offset;
13607 }
13608
13609
13610
13611 static int
13612 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_) {
13613   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
13614
13615   return offset;
13616 }
13617
13618
13619
13620 static int
13621 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_) {
13622   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13623                                        NULL);
13624
13625   return offset;
13626 }
13627
13628
13629
13630 static int
13631 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_) {
13632   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13633                                        NULL);
13634
13635   return offset;
13636 }
13637
13638
13639 static const ber_sequence_t gsm_map_gr_PrepareGroupCallArg_sequence[] = {
13640   { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
13641   { &hf_gsm_map_gr_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference },
13642   { &hf_gsm_map_gr_codec_Info, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CODEC_Info },
13643   { &hf_gsm_map_gr_cipheringAlgorithm, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CipheringAlgorithm },
13644   { &hf_gsm_map_gr_groupKeyNumber_Vk_Id, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_GroupKeyNumber },
13645   { &hf_gsm_map_gr_groupKey , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc },
13646   { &hf_gsm_map_gr_priority , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
13647   { &hf_gsm_map_gr_uplinkFree, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13648   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13649   { &hf_gsm_map_gr_vstk     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK },
13650   { &hf_gsm_map_gr_vstk_rand, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK_RAND },
13651   { &hf_gsm_map_gr_talkerChannelParameter, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13652   { NULL, 0, 0, 0, NULL }
13653 };
13654
13655 static int
13656 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_) {
13657   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13658                                    gsm_map_gr_PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallArg);
13659
13660   return offset;
13661 }
13662
13663
13664 static const ber_sequence_t gsm_map_gr_PrepareGroupCallRes_sequence[] = {
13665   { &hf_gsm_map_gr_groupCallNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
13666   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13667   { NULL, 0, 0, 0, NULL }
13668 };
13669
13670 static int
13671 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_) {
13672   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13673                                    gsm_map_gr_PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallRes);
13674
13675   return offset;
13676 }
13677
13678
13679 static const value_string gsm_map_gr_TalkerPriority_vals[] = {
13680   {   0, "normal" },
13681   {   1, "privileged" },
13682   {   2, "emergency" },
13683   { 0, NULL }
13684 };
13685
13686
13687 static int
13688 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_) {
13689   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13690                                   NULL);
13691
13692   return offset;
13693 }
13694
13695
13696 static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalArg_sequence[] = {
13697   { &hf_gsm_map_gr_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
13698   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13699   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
13700   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
13701   { NULL, 0, 0, 0, NULL }
13702 };
13703
13704 static int
13705 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_) {
13706   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13707                                    gsm_map_gr_SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalArg);
13708
13709   return offset;
13710 }
13711
13712
13713 static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalRes_sequence[] = {
13714   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13715   { NULL, 0, 0, 0, NULL }
13716 };
13717
13718 static int
13719 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_) {
13720   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13721                                    gsm_map_gr_SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalRes);
13722
13723   return offset;
13724 }
13725
13726
13727 static const ber_sequence_t gsm_map_gr_StateAttributes_sequence[] = {
13728   { &hf_gsm_map_gr_downlinkAttached, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13729   { &hf_gsm_map_gr_uplinkAttached, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13730   { &hf_gsm_map_gr_dualCommunication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13731   { &hf_gsm_map_gr_callOriginator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13732   { NULL, 0, 0, 0, NULL }
13733 };
13734
13735 static int
13736 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_) {
13737   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13738                                    gsm_map_gr_StateAttributes_sequence, hf_index, ett_gsm_map_gr_StateAttributes);
13739
13740   return offset;
13741 }
13742
13743
13744 static const ber_sequence_t gsm_map_gr_ForwardGroupCallSignallingArg_sequence[] = {
13745   { &hf_gsm_map_gr_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
13746   { &hf_gsm_map_gr_uplinkRequestAck, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13747   { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13748   { &hf_gsm_map_gr_uplinkRejectCommand, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13749   { &hf_gsm_map_gr_uplinkSeizedCommand, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13750   { &hf_gsm_map_gr_uplinkReleaseCommand, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13751   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13752   { &hf_gsm_map_gr_stateAttributes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_StateAttributes },
13753   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
13754   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
13755   { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13756   { &hf_gsm_map_gr_sm_RP_UI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
13757   { &hf_gsm_map_gr_an_APDU  , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
13758   { NULL, 0, 0, 0, NULL }
13759 };
13760
13761 static int
13762 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_) {
13763   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13764                                    gsm_map_gr_ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ForwardGroupCallSignallingArg);
13765
13766   return offset;
13767 }
13768
13769
13770 static const ber_sequence_t gsm_map_gr_ProcessGroupCallSignallingArg_sequence[] = {
13771   { &hf_gsm_map_gr_uplinkRequest, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13772   { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13773   { &hf_gsm_map_gr_releaseGroupCall, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13774   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13775   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
13776   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
13777   { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13778   { &hf_gsm_map_gr_an_APDU  , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
13779   { NULL, 0, 0, 0, NULL }
13780 };
13781
13782 static int
13783 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_) {
13784   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13785                                    gsm_map_gr_ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ProcessGroupCallSignallingArg);
13786
13787   return offset;
13788 }
13789
13790
13791 static const value_string gsm_map_gr_RequestedInfo_vals[] = {
13792   {   0, "anchorMSC-AddressAndASCI-CallReference" },
13793   {   1, "imsiAndAdditionalInfoAndAdditionalSubscription" },
13794   { 0, NULL }
13795 };
13796
13797
13798 static int
13799 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_) {
13800   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13801                                   NULL);
13802
13803   return offset;
13804 }
13805
13806
13807 static const ber_sequence_t gsm_map_gr_SendGroupCallInfoArg_sequence[] = {
13808   { &hf_gsm_map_gr_requestedInfo, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_RequestedInfo },
13809   { &hf_gsm_map_gr_groupId  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Long_GroupId },
13810   { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
13811   { &hf_gsm_map_gr_cellId   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
13812   { &hf_gsm_map_gr_imsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13813   { &hf_gsm_map_gr_tmsi     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TMSI },
13814   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
13815   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
13816   { &hf_gsm_map_gr_cksn     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Cksn },
13817   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13818   { NULL, 0, 0, 0, NULL }
13819 };
13820
13821 static int
13822 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_) {
13823   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13824                                    gsm_map_gr_SendGroupCallInfoArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoArg);
13825
13826   return offset;
13827 }
13828
13829
13830 static const ber_sequence_t gsm_map_gr_SendGroupCallInfoRes_sequence[] = {
13831   { &hf_gsm_map_gr_anchorMSC_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13832   { &hf_gsm_map_gr_asciCallReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference },
13833   { &hf_gsm_map_gr_imsi     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13834   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
13835   { &hf_gsm_map_gr_additionalSubscriptions, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalSubscriptions },
13836   { &hf_gsm_map_gr_kc       , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc },
13837   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13838   { NULL, 0, 0, 0, NULL }
13839 };
13840
13841 static int
13842 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_) {
13843   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13844                                    gsm_map_gr_SendGroupCallInfoRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoRes);
13845
13846   return offset;
13847 }
13848
13849
13850 /* --- Module MAP-DialogueInformation --- --- ---                             */
13851
13852
13853 static const ber_sequence_t gsm_map_dialogue_MAP_OpenInfo_sequence[] = {
13854   { &hf_gsm_map_dialogue_destinationReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
13855   { &hf_gsm_map_dialogue_originationReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
13856   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13857   { NULL, 0, 0, 0, NULL }
13858 };
13859
13860 static int
13861 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_) {
13862   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13863                                    gsm_map_dialogue_MAP_OpenInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_OpenInfo);
13864
13865   return offset;
13866 }
13867
13868
13869 static const ber_sequence_t gsm_map_dialogue_MAP_AcceptInfo_sequence[] = {
13870   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13871   { NULL, 0, 0, 0, NULL }
13872 };
13873
13874 static int
13875 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_) {
13876   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13877                                    gsm_map_dialogue_MAP_AcceptInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_AcceptInfo);
13878
13879   return offset;
13880 }
13881
13882
13883 static const ber_sequence_t gsm_map_dialogue_MAP_CloseInfo_sequence[] = {
13884   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13885   { NULL, 0, 0, 0, NULL }
13886 };
13887
13888 static int
13889 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_) {
13890   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13891                                    gsm_map_dialogue_MAP_CloseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_CloseInfo);
13892
13893   return offset;
13894 }
13895
13896
13897 static const value_string gsm_map_dialogue_Reason_vals[] = {
13898   {   0, "noReasonGiven" },
13899   {   1, "invalidDestinationReference" },
13900   {   2, "invalidOriginatingReference" },
13901   { 0, NULL }
13902 };
13903
13904
13905 static int
13906 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_) {
13907   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13908                                   NULL);
13909
13910   return offset;
13911 }
13912
13913
13914
13915 static int
13916 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_) {
13917   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
13918
13919   return offset;
13920 }
13921
13922
13923 static const ber_sequence_t gsm_map_dialogue_MAP_RefuseInfo_sequence[] = {
13924   { &hf_gsm_map_dialogue_reason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_Reason },
13925   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13926   { &hf_gsm_map_dialogue_alternativeApplicationContext, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_OBJECT_IDENTIFIER },
13927   { NULL, 0, 0, 0, NULL }
13928 };
13929
13930 static int
13931 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_) {
13932   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13933                                    gsm_map_dialogue_MAP_RefuseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_RefuseInfo);
13934
13935   return offset;
13936 }
13937
13938
13939
13940 static int
13941 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_) {
13942   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
13943
13944   return offset;
13945 }
13946
13947
13948 static const value_string gsm_map_dialogue_ResourceUnavailableReason_vals[] = {
13949   {   0, "shortTermResourceLimitation" },
13950   {   1, "longTermResourceLimitation" },
13951   { 0, NULL }
13952 };
13953
13954
13955 static int
13956 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_) {
13957   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13958                                   NULL);
13959
13960   return offset;
13961 }
13962
13963
13964 static const value_string gsm_map_dialogue_ProcedureCancellationReason_vals[] = {
13965   {   0, "handoverCancellation" },
13966   {   1, "radioChannelRelease" },
13967   {   2, "networkPathRelease" },
13968   {   3, "callRelease" },
13969   {   4, "associatedProcedureFailure" },
13970   {   5, "tandemDialogueRelease" },
13971   {   6, "remoteOperationsFailure" },
13972   { 0, NULL }
13973 };
13974
13975
13976 static int
13977 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_) {
13978   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13979                                   NULL);
13980
13981   return offset;
13982 }
13983
13984
13985 static const value_string gsm_map_dialogue_MAP_UserAbortChoice_vals[] = {
13986   {   0, "userSpecificReason" },
13987   {   1, "userResourceLimitation" },
13988   {   2, "resourceUnavailable" },
13989   {   3, "applicationProcedureCancellation" },
13990   { 0, NULL }
13991 };
13992
13993 static const ber_choice_t gsm_map_dialogue_MAP_UserAbortChoice_choice[] = {
13994   {   0, &hf_gsm_map_dialogue_userSpecificReason, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL },
13995   {   1, &hf_gsm_map_dialogue_userResourceLimitation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL },
13996   {   2, &hf_gsm_map_dialogue_resourceUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ResourceUnavailableReason },
13997   {   3, &hf_gsm_map_dialogue_applicationProcedureCancellation, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ProcedureCancellationReason },
13998   { 0, NULL, 0, 0, 0, NULL }
13999 };
14000
14001 static int
14002 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_) {
14003   offset = dissect_ber_choice(actx, tree, tvb, offset,
14004                                  gsm_map_dialogue_MAP_UserAbortChoice_choice, hf_index, ett_gsm_map_dialogue_MAP_UserAbortChoice,
14005                                  NULL);
14006
14007   return offset;
14008 }
14009
14010
14011 static const ber_sequence_t gsm_map_dialogue_MAP_UserAbortInfo_sequence[] = {
14012   { &hf_gsm_map_dialogue_map_UserAbortChoice, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_dialogue_MAP_UserAbortChoice },
14013   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14014   { NULL, 0, 0, 0, NULL }
14015 };
14016
14017 static int
14018 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_) {
14019   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14020                                    gsm_map_dialogue_MAP_UserAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_UserAbortInfo);
14021
14022   return offset;
14023 }
14024
14025
14026 static const value_string gsm_map_dialogue_MAP_ProviderAbortReason_vals[] = {
14027   {   0, "abnormalDialogue" },
14028   {   1, "invalidPDU" },
14029   { 0, NULL }
14030 };
14031
14032
14033 static int
14034 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_) {
14035   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14036                                   NULL);
14037
14038   return offset;
14039 }
14040
14041
14042 static const ber_sequence_t gsm_map_dialogue_MAP_ProviderAbortInfo_sequence[] = {
14043   { &hf_gsm_map_dialogue_map_ProviderAbortReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortReason },
14044   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14045   { NULL, 0, 0, 0, NULL }
14046 };
14047
14048 static int
14049 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_) {
14050   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14051                                    gsm_map_dialogue_MAP_ProviderAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_ProviderAbortInfo);
14052
14053   return offset;
14054 }
14055
14056
14057 static const value_string gsm_map_dialogue_MAP_DialoguePDU_vals[] = {
14058   {   0, "map-open" },
14059   {   1, "map-accept" },
14060   {   2, "map-close" },
14061   {   3, "map-refuse" },
14062   {   4, "map-userAbort" },
14063   {   5, "map-providerAbort" },
14064   { 0, NULL }
14065 };
14066
14067 static const ber_choice_t gsm_map_dialogue_MAP_DialoguePDU_choice[] = {
14068   {   0, &hf_gsm_map_dialogue_map_open, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_OpenInfo },
14069   {   1, &hf_gsm_map_dialogue_map_accept, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_AcceptInfo },
14070   {   2, &hf_gsm_map_dialogue_map_close, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_CloseInfo },
14071   {   3, &hf_gsm_map_dialogue_map_refuse, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_RefuseInfo },
14072   {   4, &hf_gsm_map_dialogue_map_userAbort, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_UserAbortInfo },
14073   {   5, &hf_gsm_map_dialogue_map_providerAbort, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortInfo },
14074   { 0, NULL, 0, 0, 0, NULL }
14075 };
14076
14077 static int
14078 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_) {
14079   offset = dissect_ber_choice(actx, tree, tvb, offset,
14080                                  gsm_map_dialogue_MAP_DialoguePDU_choice, hf_index, ett_gsm_map_dialogue_MAP_DialoguePDU,
14081                                  NULL);
14082
14083   return offset;
14084 }
14085
14086 /*--- PDUs ---*/
14087
14088 static void dissect_gsm_map_dialogue_MAP_DialoguePDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
14089   asn1_ctx_t asn1_ctx;
14090   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
14091   dissect_gsm_map_dialogue_MAP_DialoguePDU(FALSE, tvb, 0, &asn1_ctx, tree, hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU);
14092 }
14093
14094
14095 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
14096
14097
14098 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
14099
14100
14101 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
14102
14103
14104 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
14105
14106
14107 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
14108
14109
14110 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
14111
14112
14113 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
14114
14115
14116 /* --- Module MAP-Errors --- --- ---                                          */
14117
14118
14119 /* --- Module MAP-Protocol --- --- ---                                        */
14120
14121
14122 /* --- Module DummyMAP --- --- ---                                            */
14123
14124
14125
14126 static int
14127 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_) {
14128   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14129                                                 NULL);
14130
14131   return offset;
14132 }
14133
14134
14135 static const value_string gsm_old_GSMMAPOperationLocalvalue_vals[] = {
14136   {   2, "updateLocation" },
14137   {   3, "cancelLocation" },
14138   {   4, "provideRoamingNumber" },
14139   {   5, "noteSubscriberDataModified" },
14140   {   6, "resumeCallHandling" },
14141   {   7, "insertSubscriberData" },
14142   {   8, "deleteSubscriberData" },
14143   {   9, "sendParameters" },
14144   {  10, "registerSS" },
14145   {  11, "eraseSS" },
14146   {  12, "activateSS" },
14147   {  13, "deactivateSS" },
14148   {  14, "interrogateSS" },
14149   {  15, "authenticationFailureReport" },
14150   {  16, "notifySS" },
14151   {  17, "registerPassword" },
14152   {  18, "getPassword" },
14153   {  19, "processUnstructuredSS-Data" },
14154   {  20, "releaseResources" },
14155   {  21, "mt-ForwardSM-VGCS" },
14156   {  22, "sendRoutingInfo" },
14157   {  23, "updateGprsLocation" },
14158   {  24, "sendRoutingInfoForGprs" },
14159   {  25, "failureReport" },
14160   {  26, "noteMsPresentForGprs" },
14161   {  28, "performHandover" },
14162   {  29, "sendEndSignal" },
14163   {  30, "performSubsequentHandover" },
14164   {  31, "provideSIWFSNumber" },
14165   {  32, "sIWFSSignallingModify" },
14166   {  33, "processAccessSignalling" },
14167   {  34, "forwardAccessSignalling" },
14168   {  35, "noteInternalHandover" },
14169   {  37, "reset" },
14170   {  38, "forwardCheckSS" },
14171   {  39, "prepareGroupCall" },
14172   {  40, "sendGroupCallEndSignal" },
14173   {  41, "processGroupCallSignalling" },
14174   {  42, "forwardGroupCallSignalling" },
14175   {  43, "checkIMEI" },
14176   {  44, "mt-forwardSM" },
14177   {  45, "sendRoutingInfoForSM" },
14178   {  46, "mo-forwardSM" },
14179   {  47, "reportSM-DeliveryStatus" },
14180   {  48, "noteSubscriberPresent" },
14181   {  49, "alertServiceCentreWithoutResult" },
14182   {  50, "activateTraceMode" },
14183   {  51, "deactivateTraceMode" },
14184   {  52, "traceSubscriberActivity" },
14185   {  54, "beginSubscriberActivity" },
14186   {  55, "sendIdentification" },
14187   {  56, "sendAuthenticationInfo" },
14188   {  57, "restoreData" },
14189   {  58, "sendIMSI" },
14190   {  59, "processUnstructuredSS-Request" },
14191   {  60, "unstructuredSS-Request" },
14192   {  61, "unstructuredSS-Notify" },
14193   {  62, "anyTimeSubscriptionInterrogation" },
14194   {  63, "informServiceCentre" },
14195   {  64, "alertServiceCentre" },
14196   {  65, "anyTimeModification" },
14197   {  66, "readyForSM" },
14198   {  67, "purgeMS" },
14199   {  68, "prepareHandover" },
14200   {  69, "prepareSubsequentHandover" },
14201   {  70, "provideSubscriberInfo" },
14202   {  71, "anyTimeInterrogation" },
14203   {  72, "ss-InvocationNotification" },
14204   {  73, "setReportingState" },
14205   {  74, "statusReport" },
14206   {  75, "remoteUserFree" },
14207   {  76, "registerCC-Entry" },
14208   {  77, "eraseCC-Entry" },
14209   {  78, "secureTransportClass1" },
14210   {  79, "secureTransportClass2" },
14211   {  80, "secureTransportClass3" },
14212   {  81, "secureTransportClass4" },
14213   {  83, "provideSubscriberLocation" },
14214   {  84, "sendGroupCallInfo" },
14215   {  85, "sendRoutingInfoForLCS" },
14216   {  86, "subscriberLocationReport" },
14217   {  87, "ist-Alert" },
14218   {  88, "ist-Command" },
14219   {  89, "noteMM-Event" },
14220   { 109, "lcs-PeriodicLocationCancellation" },
14221   { 110, "lcs-LocationUpdate" },
14222   { 111, "lcs-PeriodicLocationRequest" },
14223   { 112, "lcs-AreaEventCancellation" },
14224   { 113, "lcs-AreaEventReport" },
14225   { 114, "lcs-AreaEventRequest" },
14226   { 115, "lcs-MOLR" },
14227   { 116, "lcs-LocationNotification" },
14228   { 117, "callDeflection" },
14229   { 118, "userUserService" },
14230   { 119, "accessRegisterCCEntry" },
14231   { 120, "forwardCUG-Info" },
14232   { 121, "splitMPTY" },
14233   { 122, "retrieveMPTY" },
14234   { 123, "holdMPTY" },
14235   { 124, "buildMPTY" },
14236   { 125, "forwardChargeAdvice" },
14237   { 126, "explicitCT" },
14238   { 0, NULL }
14239 };
14240
14241
14242 static int
14243 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_) {
14244 #line 156 "gsmmap.cnf"
14245
14246   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14247                                                 &opcode);
14248  
14249   if (check_col(actx->pinfo->cinfo, COL_INFO)){
14250     col_append_str(actx->pinfo->cinfo, COL_INFO, gsm_map_opr_code(opcode));
14251     col_append_fstr(actx->pinfo->cinfo, COL_INFO, " ");
14252   }
14253
14254
14255
14256   return offset;
14257 }
14258
14259
14260
14261 static int
14262 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_) {
14263   offset = dissect_gsm_old_GSMMAPOperationLocalvalue(implicit_tag, tvb, offset, actx, tree, hf_index);
14264
14265   return offset;
14266 }
14267
14268
14269
14270 static int
14271 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_) {
14272   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
14273
14274   return offset;
14275 }
14276
14277
14278 static const value_string gsm_old_MAP_OPERATION_vals[] = {
14279   {   0, "localValue" },
14280   {   1, "globalValue" },
14281   { 0, NULL }
14282 };
14283
14284 static const ber_choice_t gsm_old_MAP_OPERATION_choice[] = {
14285   {   0, &hf_gsm_old_localValue  , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OperationLocalvalue },
14286   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
14287   { 0, NULL, 0, 0, 0, NULL }
14288 };
14289
14290 static int
14291 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_) {
14292   offset = dissect_ber_choice(actx, tree, tvb, offset,
14293                                  gsm_old_MAP_OPERATION_choice, hf_index, ett_gsm_old_MAP_OPERATION,
14294                                  NULL);
14295
14296   return offset;
14297 }
14298
14299
14300
14301 static int
14302 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_) {
14303 #line 143 "gsmmap.cnf"
14304         offset = dissect_invokeData(tree, tvb, offset, actx);
14305
14306
14307
14308   return offset;
14309 }
14310
14311
14312 static const ber_sequence_t gsm_old_Invoke_sequence[] = {
14313   { &hf_gsm_old_invokeID    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
14314   { &hf_gsm_old_linkedID    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeIdType },
14315   { &hf_gsm_old_opCode      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION },
14316   { &hf_gsm_old_invokeparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeParameter },
14317   { NULL, 0, 0, 0, NULL }
14318 };
14319
14320 static int
14321 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_) {
14322   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14323                                    gsm_old_Invoke_sequence, hf_index, ett_gsm_old_Invoke);
14324
14325   return offset;
14326 }
14327
14328
14329
14330 static int
14331 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_) {
14332 #line 146 "gsmmap.cnf"
14333         offset = dissect_returnResultData(tree, tvb, offset, actx);
14334
14335
14336
14337   return offset;
14338 }
14339
14340
14341 static const ber_sequence_t gsm_old_T_resultretres_sequence[] = {
14342   { &hf_gsm_old_opCode      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION },
14343   { &hf_gsm_old_returnparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnResultParameter },
14344   { NULL, 0, 0, 0, NULL }
14345 };
14346
14347 static int
14348 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_) {
14349   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14350                                    gsm_old_T_resultretres_sequence, hf_index, ett_gsm_old_T_resultretres);
14351
14352   return offset;
14353 }
14354
14355
14356 static const ber_sequence_t gsm_old_ReturnResult_sequence[] = {
14357   { &hf_gsm_old_invokeID    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
14358   { &hf_gsm_old_resultretres, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_T_resultretres },
14359   { NULL, 0, 0, 0, NULL }
14360 };
14361
14362 static int
14363 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_) {
14364   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14365                                    gsm_old_ReturnResult_sequence, hf_index, ett_gsm_old_ReturnResult);
14366
14367   return offset;
14368 }
14369
14370
14371 const value_string gsm_old_GSMMAPLocalErrorcode_vals[] = {
14372   {  34, "systemFailure" },
14373   {  35, "dataMissing" },
14374   {  36, "unexpectedDataValue" },
14375   {  21, "facilityNotSupported" },
14376   {  28, "incompatibleTerminal" },
14377   {  51, "resourceLimitation" },
14378   {   1, "unknownSubscriber" },
14379   {  44, "numberChanged" },
14380   {   3, "unknownMSC" },
14381   {   5, "unidentifiedSubscriber" },
14382   {   7, "unknownEquipment" },
14383   {   8, "roamingNotAllowed" },
14384   {   9, "illegalSubscriber" },
14385   {  12, "illegalEquipment" },
14386   {  10, "bearerServiceNotProvisioned" },
14387   {  11, "teleserviceNotProvisioned" },
14388   {  25, "noHandoverNumberAvailable" },
14389   {  26, "subsequentHandoverFailure" },
14390   {  42, "targetCellOutsideGroupCallArea" },
14391   {  40, "tracingBufferFull" },
14392   {  39, "noRoamingNumberAvailable" },
14393   {  27, "absentSubscriber" },
14394   {  45, "busySubscriber" },
14395   {  46, "noSubscriberReply" },
14396   {  13, "callBarred" },
14397   {  14, "forwardingViolation" },
14398   {  47, "forwardingFailed" },
14399   {  15, "cug-Reject" },
14400   {  48, "or-NotAllowed" },
14401   {  49, "ati-NotAllowed" },
14402   {  60, "atsi-NotAllowed" },
14403   {  61, "atm-NotAllowed" },
14404   {  62, "informationNotAvailabl" },
14405   {  16, "illegalSS-Operation" },
14406   {  17, "ss-ErrorStatus" },
14407   {  18, "ss-NotAvailable" },
14408   {  19, "ss-SubscriptionViolatio" },
14409   {  20, "ss-Incompatibility" },
14410   {  71, "unknownAlphabe" },
14411   {  72, "ussd-Busy" },
14412   {  37, "pw-RegistrationFailur" },
14413   {  38, "negativePW-Check" },
14414   {  43, "numberOfPW-AttemptsViolation" },
14415   {  29, "shortTermDenial" },
14416   {  30, "longTermDenial" },
14417   {  31, "subscriberBusyForMT-SMS" },
14418   {  32, "sm-DeliveryFailure" },
14419   {  33, "messageWaitingListFull" },
14420   {   6, "absentSubscriberSM" },
14421   {  50, "noGroupCallNumberAvailable" },
14422   {  52, "unauthorizedRequestingNetwork" },
14423   {  53, "unauthorizedLCSClient" },
14424   {  54, "positionMethodFailure" },
14425   {  58, "unknownOrUnreachableLCSClient" },
14426   {  59, "mm-EventNotSupported" },
14427   {   4, "secureTransportError" },
14428   { 0, NULL }
14429 };
14430
14431
14432 int
14433 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_) {
14434   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14435                                                 &errorCode);
14436
14437   return offset;
14438 }
14439
14440
14441
14442 static int
14443 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_) {
14444   offset = dissect_gsm_old_GSMMAPLocalErrorcode(implicit_tag, tvb, offset, actx, tree, hf_index);
14445
14446   return offset;
14447 }
14448
14449
14450 static const value_string gsm_old_MAP_ERROR_vals[] = {
14451   {   0, "localValue" },
14452   {   1, "globalValue" },
14453   { 0, NULL }
14454 };
14455
14456 static const ber_choice_t gsm_old_MAP_ERROR_choice[] = {
14457   {   0, &hf_gsm_old_localValue_01, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_LocalErrorcode },
14458   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
14459   { 0, NULL, 0, 0, 0, NULL }
14460 };
14461
14462 static int
14463 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_) {
14464   offset = dissect_ber_choice(actx, tree, tvb, offset,
14465                                  gsm_old_MAP_ERROR_choice, hf_index, ett_gsm_old_MAP_ERROR,
14466                                  NULL);
14467
14468   return offset;
14469 }
14470
14471
14472
14473 static int
14474 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_) {
14475 #line 149 "gsmmap.cnf"
14476         offset = dissect_returnErrorData(tree, tvb, offset, actx);
14477
14478
14479
14480   return offset;
14481 }
14482
14483
14484 static const ber_sequence_t gsm_old_ReturnError_sequence[] = {
14485   { &hf_gsm_old_invokeID    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
14486   { &hf_gsm_old_errorCode   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_ERROR },
14487   { &hf_gsm_old_parameter   , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnErrorParameter },
14488   { NULL, 0, 0, 0, NULL }
14489 };
14490
14491 static int
14492 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_) {
14493   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14494                                    gsm_old_ReturnError_sequence, hf_index, ett_gsm_old_ReturnError);
14495
14496   return offset;
14497 }
14498
14499
14500
14501 static int
14502 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_) {
14503   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
14504
14505   return offset;
14506 }
14507
14508
14509 static const value_string gsm_old_T_invokeIDRej_vals[] = {
14510   {   0, "derivable" },
14511   {   1, "not-derivable" },
14512   { 0, NULL }
14513 };
14514
14515 static const ber_choice_t gsm_old_T_invokeIDRej_choice[] = {
14516   {   0, &hf_gsm_old_derivable   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
14517   {   1, &hf_gsm_old_not_derivable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
14518   { 0, NULL, 0, 0, 0, NULL }
14519 };
14520
14521 static int
14522 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_) {
14523   offset = dissect_ber_choice(actx, tree, tvb, offset,
14524                                  gsm_old_T_invokeIDRej_choice, hf_index, ett_gsm_old_T_invokeIDRej,
14525                                  NULL);
14526
14527   return offset;
14528 }
14529
14530
14531 static const value_string gsm_old_GeneralProblem_vals[] = {
14532   {   0, "unrecognizedComponent" },
14533   {   1, "mistypedComponent" },
14534   {   2, "badlyStructuredComponent" },
14535   { 0, NULL }
14536 };
14537
14538
14539 static int
14540 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_) {
14541   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14542                                                 NULL);
14543
14544   return offset;
14545 }
14546
14547
14548 static const value_string gsm_old_InvokeProblem_vals[] = {
14549   {   0, "duplicateInvokeID" },
14550   {   1, "unrecognizedOperation" },
14551   {   2, "mistypedParameter" },
14552   {   3, "resourceLimitation" },
14553   {   4, "initiatingRelease" },
14554   {   5, "unrecognizedLinkedID" },
14555   {   6, "linkedResponseUnexpected" },
14556   {   7, "unexpectedLinkedOperation" },
14557   { 0, NULL }
14558 };
14559
14560
14561 static int
14562 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_) {
14563   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14564                                                 NULL);
14565
14566   return offset;
14567 }
14568
14569
14570 static const value_string gsm_old_ReturnResultProblem_vals[] = {
14571   {   0, "unrecognizedInvokeID" },
14572   {   1, "returnResultUnexpected" },
14573   {   2, "mistypedParameter" },
14574   { 0, NULL }
14575 };
14576
14577
14578 static int
14579 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_) {
14580   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14581                                                 NULL);
14582
14583   return offset;
14584 }
14585
14586
14587 static const value_string gsm_old_ReturnErrorProblem_vals[] = {
14588   {   0, "unrecognizedInvokeID" },
14589   {   1, "returnErrorUnexpected" },
14590   {   2, "unrecognizedError" },
14591   {   3, "unexpectedError" },
14592   {   4, "mistypedParameter" },
14593   { 0, NULL }
14594 };
14595
14596
14597 static int
14598 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_) {
14599   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14600                                                 NULL);
14601
14602   return offset;
14603 }
14604
14605
14606 static const value_string gsm_old_T_problem_vals[] = {
14607   {   0, "generalProblem" },
14608   {   1, "invokeProblem" },
14609   {   2, "returnResultProblem" },
14610   {   3, "returnErrorProblem" },
14611   { 0, NULL }
14612 };
14613
14614 static const ber_choice_t gsm_old_T_problem_choice[] = {
14615   {   0, &hf_gsm_old_generalProblem, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_GeneralProblem },
14616   {   1, &hf_gsm_old_invokeProblem, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeProblem },
14617   {   2, &hf_gsm_old_returnResultProblem, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResultProblem },
14618   {   3, &hf_gsm_old_returnErrorProblem, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnErrorProblem },
14619   { 0, NULL, 0, 0, 0, NULL }
14620 };
14621
14622 static int
14623 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_) {
14624   offset = dissect_ber_choice(actx, tree, tvb, offset,
14625                                  gsm_old_T_problem_choice, hf_index, ett_gsm_old_T_problem,
14626                                  NULL);
14627
14628   return offset;
14629 }
14630
14631
14632 static const ber_sequence_t gsm_old_Reject_sequence[] = {
14633   { &hf_gsm_old_invokeIDRej , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_invokeIDRej },
14634   { &hf_gsm_old_problem     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_problem },
14635   { NULL, 0, 0, 0, NULL }
14636 };
14637
14638 static int
14639 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_) {
14640   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14641                                    gsm_old_Reject_sequence, hf_index, ett_gsm_old_Reject);
14642
14643   return offset;
14644 }
14645
14646
14647 static const value_string gsm_old_Component_vals[] = {
14648   {   1, "invoke" },
14649   {   2, "returnResultLast" },
14650   {   3, "returnError" },
14651   {   4, "reject" },
14652   {   7, "returnResultNotLast" },
14653   { 0, NULL }
14654 };
14655
14656 static const ber_choice_t gsm_old_Component_choice[] = {
14657   {   1, &hf_gsm_old_invoke      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_Invoke },
14658   {   2, &hf_gsm_old_returnResultLast, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult },
14659   {   3, &hf_gsm_old_returnError , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnError },
14660   {   4, &hf_gsm_old_reject      , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_Reject },
14661   {   7, &hf_gsm_old_returnResultNotLast, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult },
14662   { 0, NULL, 0, 0, 0, NULL }
14663 };
14664
14665 static int
14666 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_) {
14667   offset = dissect_ber_choice(actx, tree, tvb, offset,
14668                                  gsm_old_Component_choice, hf_index, ett_gsm_old_Component,
14669                                  NULL);
14670
14671   return offset;
14672 }
14673
14674
14675 static const ber_sequence_t gsm_old_Bss_APDU_sequence[] = {
14676   { &hf_gsm_old_protocolId  , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId },
14677   { &hf_gsm_old_signalInfo  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
14678   { &hf_gsm_old_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14679   { NULL, 0, 0, 0, NULL }
14680 };
14681
14682 static int
14683 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_) {
14684 #line 621 "gsmmap.cnf"
14685  guint8         octet;
14686  guint8         length;
14687  tvbuff_t       *next_tvb;
14688  proto_tree *subtree;
14689 /*
14690 ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
14691 5.6.9.1 BSS-apdu
14692 This parameter includes one or two concatenated complete 08.06 messages, as described in GSM 03.09
14693 and GSM 09.10. The Protocol ID indicates that the message or messages are according to GSM 08.06.
14694 For the coding of the messages see GSM 08.06 and GSM 08.08.
14695 */
14696  ProtocolId = 0xffffffff;
14697   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14698                                    gsm_old_Bss_APDU_sequence, hf_index, ett_gsm_old_Bss_APDU);
14699  
14700 if (!actx->value_ptr)
14701         return offset;
14702  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo);
14703  switch (ProtocolId){
14704         case 1:
14705         /* gsm-0408 */
14706                 /* As per comment abowe Individual IE:(s) will be found here in TLV format
14707                  * Unfortunatly a branch for each IE must be made to call the apropriate
14708                  * function
14709                  */
14710                  /* Get tag */
14711                  octet = tvb_get_guint8(actx->value_ptr,0);
14712                  proto_tree_add_item(subtree, hf_gsm_map_ie_tag, actx->value_ptr, 0,1,FALSE);
14713                  /* get length */
14714                  length = tvb_get_guint8(actx->value_ptr,1);
14715                  proto_tree_add_item(subtree, hf_gsm_map_len, actx->value_ptr, 1,1,FALSE);
14716                  /* Branch on tag */
14717                  switch(octet){
14718                  case 4:
14719                         /* Dissect the data part */                     
14720                         de_bearer_cap(actx->value_ptr, subtree, 2, length, NULL, 0);
14721                         /* TODO: There may be more than one IE */
14722                         break;
14723                  default:
14724                         proto_tree_add_text(subtree, actx->value_ptr, 0, length, "If you want this decoded send the packet to Wireshark-dev");
14725                         break;
14726                 }/* switch(octet) */
14727                 break;
14728         case 2:
14729                 /* gsm-0806 */
14730                 octet = tvb_get_guint8(actx->value_ptr,0);
14731                 /* Discrimination parameter */
14732                 proto_tree_add_item(subtree, hf_gsm_map_disc_par, actx->value_ptr, 0,1,FALSE);
14733                 if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
14734                         /* Strip off discrimination and length */
14735                         proto_tree_add_item(subtree, hf_gsm_map_len, actx->value_ptr, 1,1,FALSE);
14736                         next_tvb = tvb_new_subset(actx->value_ptr, 2, -1, -1);
14737                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
14738                 }else if(octet==1){
14739                         proto_tree_add_item(subtree, hf_gsm_map_dlci, actx->value_ptr, 1,1,FALSE);
14740                         proto_tree_add_item(subtree, hf_gsm_map_len, actx->value_ptr, 2,1,FALSE);
14741                         next_tvb = tvb_new_subset(actx->value_ptr, 3, -1, -1);
14742                         call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree); 
14743                 }       
14744                 break;
14745         case 3:
14746         /* gsm-BSSMAP -- Value 3 is reserved and must not be used*/
14747                 octet = tvb_get_guint8(actx->value_ptr,0);
14748                 length = tvb_get_guint8(actx->value_ptr,1);
14749                 if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
14750                         next_tvb = tvb_new_subset(actx->value_ptr, 2, -1, -1);
14751                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
14752                 }
14753                 break;
14754         /* ets-300102-1 (~Q.931 ) */
14755         case 4:
14756                 octet = tvb_get_guint8(actx->value_ptr,0);
14757                 length = tvb_get_guint8(actx->value_ptr,1);
14758                 if ( octet == 4 )
14759                         dissect_q931_bearer_capability_ie(actx->value_ptr, 2, length, subtree);
14760                 break;
14761         default:
14762                 break;
14763         }/*switch (ProtocolId)*/
14764
14765
14766
14767   return offset;
14768 }
14769
14770
14771
14772 static int
14773 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_) {
14774   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14775                                        NULL);
14776
14777   return offset;
14778 }
14779
14780
14781 static const ber_sequence_t gsm_old_ProvideSIWFSNumberArg_sequence[] = {
14782   { &hf_gsm_old_gsm_BearerCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14783   { &hf_gsm_old_isdn_BearerCapability, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14784   { &hf_gsm_old_call_Direction, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_CallDirection },
14785   { &hf_gsm_old_b_Subscriber_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14786   { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14787   { &hf_gsm_old_lowerLayerCompatibility, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14788   { &hf_gsm_old_highLayerCompatibility, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14789   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14790   { NULL, 0, 0, 0, NULL }
14791 };
14792
14793 static int
14794 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_) {
14795   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14796                                    gsm_old_ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberArg);
14797
14798   return offset;
14799 }
14800
14801
14802 static const ber_sequence_t gsm_old_ProvideSIWFSNumberRes_sequence[] = {
14803   { &hf_gsm_old_sIWFSNumber , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14804   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14805   { NULL, 0, 0, 0, NULL }
14806 };
14807
14808 static int
14809 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_) {
14810   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14811                                    gsm_old_ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberRes);
14812
14813   return offset;
14814 }
14815
14816
14817 static const ber_sequence_t gsm_old_PurgeMSArgV2_sequence[] = {
14818   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
14819   { &hf_gsm_old_vlr_Number  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
14820   { NULL, 0, 0, 0, NULL }
14821 };
14822
14823 static int
14824 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_) {
14825   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14826                                    gsm_old_PurgeMSArgV2_sequence, hf_index, ett_gsm_old_PurgeMSArgV2);
14827
14828   return offset;
14829 }
14830
14831
14832 static const ber_sequence_t gsm_old_PrepareHO_ArgOld_sequence[] = {
14833   { &hf_gsm_old_targetCellId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_GlobalCellId },
14834   { &hf_gsm_old_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
14835   { &hf_gsm_old_bss_APDU    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU },
14836   { NULL, 0, 0, 0, NULL }
14837 };
14838
14839 static int
14840 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_) {
14841   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14842                                    gsm_old_PrepareHO_ArgOld_sequence, hf_index, ett_gsm_old_PrepareHO_ArgOld);
14843
14844   return offset;
14845 }
14846
14847
14848 static const ber_sequence_t gsm_old_PrepareHO_ResOld_sequence[] = {
14849   { &hf_gsm_old_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
14850   { &hf_gsm_old_bss_APDU    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU },
14851   { NULL, 0, 0, 0, NULL }
14852 };
14853
14854 static int
14855 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_) {
14856   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14857                                    gsm_old_PrepareHO_ResOld_sequence, hf_index, ett_gsm_old_PrepareHO_ResOld);
14858
14859   return offset;
14860 }
14861
14862
14863
14864 static int
14865 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_) {
14866   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14867                                        NULL);
14868
14869   return offset;
14870 }
14871
14872
14873
14874 static int
14875 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_) {
14876   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14877                                        NULL);
14878
14879   return offset;
14880 }
14881
14882
14883
14884 static int
14885 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_) {
14886   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14887                                        NULL);
14888
14889   return offset;
14890 }
14891
14892
14893 static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_item_sequence[] = {
14894   { &hf_gsm_old_rand        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND },
14895   { &hf_gsm_old_sres        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES },
14896   { &hf_gsm_old_kc          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc },
14897   { NULL, 0, 0, 0, NULL }
14898 };
14899
14900 static int
14901 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_) {
14902   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14903                                    gsm_old_SendAuthenticationInfoResOld_item_sequence, hf_index, ett_gsm_old_SendAuthenticationInfoResOld_item);
14904
14905   return offset;
14906 }
14907
14908
14909 static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_sequence_of[1] = {
14910   { &hf_gsm_old_SendAuthenticationInfoResOld_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SendAuthenticationInfoResOld_item },
14911 };
14912
14913 static int
14914 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_) {
14915   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
14916                                       gsm_old_SendAuthenticationInfoResOld_sequence_of, hf_index, ett_gsm_old_SendAuthenticationInfoResOld);
14917
14918   return offset;
14919 }
14920
14921
14922 static const ber_sequence_t gsm_old_AuthenticationTriplet_v2_sequence[] = {
14923   { &hf_gsm_old_rand        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND },
14924   { &hf_gsm_old_sres        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES },
14925   { &hf_gsm_old_kc          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc },
14926   { NULL, 0, 0, 0, NULL }
14927 };
14928
14929 static int
14930 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_) {
14931   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14932                                    gsm_old_AuthenticationTriplet_v2_sequence, hf_index, ett_gsm_old_AuthenticationTriplet_v2);
14933
14934   return offset;
14935 }
14936
14937
14938 static const ber_sequence_t gsm_old_TripletListold_sequence_of[1] = {
14939   { &hf_gsm_old_TripletListold_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_AuthenticationTriplet_v2 },
14940 };
14941
14942 static int
14943 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_) {
14944   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
14945                                       gsm_old_TripletListold_sequence_of, hf_index, ett_gsm_old_TripletListold);
14946
14947   return offset;
14948 }
14949
14950
14951 static const ber_sequence_t gsm_old_SendIdentificationResV2_sequence[] = {
14952   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
14953   { &hf_gsm_old_tripletList , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_TripletListold },
14954   { NULL, 0, 0, 0, NULL }
14955 };
14956
14957 static int
14958 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_) {
14959   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14960                                    gsm_old_SendIdentificationResV2_sequence, hf_index, ett_gsm_old_SendIdentificationResV2);
14961
14962   return offset;
14963 }
14964
14965
14966 static const ber_sequence_t gsm_old_SIWFSSignallingModifyArg_sequence[] = {
14967   { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14968   { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14969   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14970   { NULL, 0, 0, 0, NULL }
14971 };
14972
14973 static int
14974 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_) {
14975   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14976                                    gsm_old_SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyArg);
14977
14978   return offset;
14979 }
14980
14981
14982 static const ber_sequence_t gsm_old_SIWFSSignallingModifyRes_sequence[] = {
14983   { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14984   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14985   { NULL, 0, 0, 0, NULL }
14986 };
14987
14988 static int
14989 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_) {
14990   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14991                                    gsm_old_SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyRes);
14992
14993   return offset;
14994 }
14995
14996
14997
14998 int
14999 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_) {
15000   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
15001                                             actx, tree, tvb, offset, hf_index,
15002                                             NULL);
15003
15004   return offset;
15005 }
15006
15007
15008 const value_string gsm_old_GetPasswordArg_vals[] = {
15009   {   0, "enterPW" },
15010   {   1, "enterNewPW" },
15011   {   2, "enterNewPW-Again" },
15012   { 0, NULL }
15013 };
15014
15015
15016 int
15017 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_) {
15018   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15019                                   NULL);
15020
15021   return offset;
15022 }
15023
15024
15025
15026 int
15027 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_) {
15028   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
15029                                             actx, tree, tvb, offset, hf_index,
15030                                             NULL);
15031
15032   return offset;
15033 }
15034
15035
15036
15037 static int
15038 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_) {
15039   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15040                                        NULL);
15041
15042   return offset;
15043 }
15044
15045
15046
15047 static int
15048 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_) {
15049   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15050                                                 NULL);
15051
15052   return offset;
15053 }
15054
15055
15056 static const value_string gsm_old_OperationCode_vals[] = {
15057   {   0, "localValue" },
15058   {   1, "globalValue" },
15059   { 0, NULL }
15060 };
15061
15062 static const ber_choice_t gsm_old_OperationCode_choice[] = {
15063   {   0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER },
15064   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
15065   { 0, NULL, 0, 0, 0, NULL }
15066 };
15067
15068 static int
15069 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_) {
15070   offset = dissect_ber_choice(actx, tree, tvb, offset,
15071                                  gsm_old_OperationCode_choice, hf_index, ett_gsm_old_OperationCode,
15072                                  NULL);
15073
15074   return offset;
15075 }
15076
15077
15078 static const value_string gsm_old_ErrorCode_vals[] = {
15079   {   0, "localValue" },
15080   {   1, "globalValue" },
15081   { 0, NULL }
15082 };
15083
15084 static const ber_choice_t gsm_old_ErrorCode_choice[] = {
15085   {   0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER },
15086   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
15087   { 0, NULL, 0, 0, 0, NULL }
15088 };
15089
15090 static int
15091 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_) {
15092   offset = dissect_ber_choice(actx, tree, tvb, offset,
15093                                  gsm_old_ErrorCode_choice, hf_index, ett_gsm_old_ErrorCode,
15094                                  NULL);
15095
15096   return offset;
15097 }
15098
15099
15100 static const value_string gsm_old_OriginalComponentIdentifier_vals[] = {
15101   {   0, "operationCode" },
15102   {   1, "errorCode" },
15103   {   2, "userInfo" },
15104   { 0, NULL }
15105 };
15106
15107 static const ber_choice_t gsm_old_OriginalComponentIdentifier_choice[] = {
15108   {   0, &hf_gsm_old_operationCode, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_OperationCode },
15109   {   1, &hf_gsm_old_errorCode_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_ErrorCode },
15110   {   2, &hf_gsm_old_userInfo    , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
15111   { 0, NULL, 0, 0, 0, NULL }
15112 };
15113
15114 static int
15115 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_) {
15116   offset = dissect_ber_choice(actx, tree, tvb, offset,
15117                                  gsm_old_OriginalComponentIdentifier_choice, hf_index, ett_gsm_old_OriginalComponentIdentifier,
15118                                  NULL);
15119
15120   return offset;
15121 }
15122
15123
15124
15125 static int
15126 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_) {
15127   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15128                                        NULL);
15129
15130   return offset;
15131 }
15132
15133
15134 static const ber_sequence_t gsm_old_SecurityHeader_sequence[] = {
15135   { &hf_gsm_old_securityParametersIndex, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityParametersIndex },
15136   { &hf_gsm_old_originalComponentIdentifier, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_OriginalComponentIdentifier },
15137   { &hf_gsm_old_initialisationVector, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InitialisationVector },
15138   { NULL, 0, 0, 0, NULL }
15139 };
15140
15141 int
15142 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_) {
15143   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15144                                    gsm_old_SecurityHeader_sequence, hf_index, ett_gsm_old_SecurityHeader);
15145
15146   return offset;
15147 }
15148
15149
15150
15151 int
15152 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_) {
15153   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15154                                        NULL);
15155
15156   return offset;
15157 }
15158
15159
15160 static const ber_sequence_t gsm_old_SecureTransportArg_sequence[] = {
15161   { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
15162   { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
15163   { NULL, 0, 0, 0, NULL }
15164 };
15165
15166 static int
15167 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_) {
15168   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15169                                    gsm_old_SecureTransportArg_sequence, hf_index, ett_gsm_old_SecureTransportArg);
15170
15171   return offset;
15172 }
15173
15174
15175 static const ber_sequence_t gsm_old_SecureTransportErrorParam_sequence[] = {
15176   { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
15177   { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
15178   { NULL, 0, 0, 0, NULL }
15179 };
15180
15181 static int
15182 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_) {
15183   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15184                                    gsm_old_SecureTransportErrorParam_sequence, hf_index, ett_gsm_old_SecureTransportErrorParam);
15185
15186   return offset;
15187 }
15188
15189
15190 static const ber_sequence_t gsm_old_SecureTransportRes_sequence[] = {
15191   { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
15192   { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
15193   { NULL, 0, 0, 0, NULL }
15194 };
15195
15196 static int
15197 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_) {
15198   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15199                                    gsm_old_SecureTransportRes_sequence, hf_index, ett_gsm_old_SecureTransportRes);
15200
15201   return offset;
15202 }
15203
15204
15205
15206 static int
15207 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_) {
15208   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15209                                        NULL);
15210
15211   return offset;
15212 }
15213
15214
15215
15216 static int
15217 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_) {
15218   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15219                                        NULL);
15220
15221   return offset;
15222 }
15223
15224
15225 static const ber_sequence_t gsm_old_T_operatorSS_Code_sequence_of[1] = {
15226   { &hf_gsm_old_operatorSS_Code_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OCTET_STRING_SIZE_1 },
15227 };
15228
15229 static int
15230 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_) {
15231   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
15232                                       gsm_old_T_operatorSS_Code_sequence_of, hf_index, ett_gsm_old_T_operatorSS_Code);
15233
15234   return offset;
15235 }
15236
15237
15238 static const ber_sequence_t gsm_old_PlmnContainer_U_sequence[] = {
15239   { &hf_gsm_old_msisdn      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15240   { &hf_gsm_old_category    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_Category },
15241   { &hf_gsm_old_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
15242   { &hf_gsm_old_operatorSS_Code, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_T_operatorSS_Code },
15243   { NULL, 0, 0, 0, NULL }
15244 };
15245
15246 static int
15247 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_) {
15248   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15249                                    gsm_old_PlmnContainer_U_sequence, hf_index, ett_gsm_old_PlmnContainer_U);
15250
15251   return offset;
15252 }
15253
15254
15255
15256 static int
15257 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_) {
15258   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
15259                                       hf_index, BER_CLASS_PRI, 2, TRUE, dissect_gsm_old_PlmnContainer_U);
15260
15261   return offset;
15262 }
15263
15264
15265 static const value_string gsm_old_SM_RP_DAold_vals[] = {
15266   {   0, "imsi" },
15267   {   1, "lmsi" },
15268   {   4, "serviceCentreAddressDA" },
15269   {   5, "noSM-RP-DA" },
15270   { 0, NULL }
15271 };
15272
15273 static const ber_choice_t gsm_old_SM_RP_DAold_choice[] = {
15274   {   0, &hf_gsm_old_imsi        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15275   {   1, &hf_gsm_old_lmsi        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
15276   {   4, &hf_gsm_old_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
15277   {   5, &hf_gsm_old_noSM_RP_DA  , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
15278   { 0, NULL, 0, 0, 0, NULL }
15279 };
15280
15281 static int
15282 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_) {
15283   offset = dissect_ber_choice(actx, tree, tvb, offset,
15284                                  gsm_old_SM_RP_DAold_choice, hf_index, ett_gsm_old_SM_RP_DAold,
15285                                  NULL);
15286
15287   return offset;
15288 }
15289
15290
15291
15292 static int
15293 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_) {
15294 #line 267 "gsmmap.cnf"
15295 actx->pinfo->p2p_dir = P2P_DIR_RECV;
15296    offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
15297
15298
15299
15300
15301   return offset;
15302 }
15303
15304
15305
15306 static int
15307 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_) {
15308 #line 259 "gsmmap.cnf"
15309         actx->pinfo->p2p_dir = P2P_DIR_SENT;
15310   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
15311
15312
15313
15314
15315   return offset;
15316 }
15317
15318
15319 static const value_string gsm_old_SM_RP_OAold_vals[] = {
15320   {   2, "msisdn" },
15321   {   4, "serviceCentreAddressOA" },
15322   {   5, "noSM-RP-OA" },
15323   { 0, NULL }
15324 };
15325
15326 static const ber_choice_t gsm_old_SM_RP_OAold_choice[] = {
15327   {   2, &hf_gsm_old_msisdn_01   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_msisdn },
15328   {   4, &hf_gsm_old_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_serviceCentreAddressOA },
15329   {   5, &hf_gsm_old_noSM_RP_OA  , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
15330   { 0, NULL, 0, 0, 0, NULL }
15331 };
15332
15333 static int
15334 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_) {
15335   offset = dissect_ber_choice(actx, tree, tvb, offset,
15336                                  gsm_old_SM_RP_OAold_choice, hf_index, ett_gsm_old_SM_RP_OAold,
15337                                  NULL);
15338
15339   return offset;
15340 }
15341
15342
15343 static const ber_sequence_t gsm_old_ForwardSM_Arg_sequence[] = {
15344   { &hf_gsm_old_sm_RP_DA    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_DAold },
15345   { &hf_gsm_old_sm_RP_OA    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_OAold },
15346   { &hf_gsm_old_sm_RP_UI    , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
15347   { &hf_gsm_old_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
15348   { NULL, 0, 0, 0, NULL }
15349 };
15350
15351 static int
15352 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_) {
15353 #line 290 "gsmmap.cnf"
15354
15355         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
15356   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15357                                    gsm_old_ForwardSM_Arg_sequence, hf_index, ett_gsm_old_ForwardSM_Arg);
15358
15359
15360         if (!actx->value_ptr)
15361                 return offset;
15362         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
15363
15364
15365
15366   return offset;
15367 }
15368
15369
15370 static const ber_sequence_t gsm_old_SendRoutingInfoArgV2_sequence[] = {
15371   { &hf_gsm_old_msisdn      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15372   { &hf_gsm_old_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
15373   { &hf_gsm_old_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding },
15374   { &hf_gsm_old_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
15375   { NULL, 0, 0, 0, NULL }
15376 };
15377
15378 static int
15379 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_) {
15380   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15381                                    gsm_old_SendRoutingInfoArgV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoArgV2);
15382
15383   return offset;
15384 }
15385
15386
15387 static const ber_sequence_t gsm_old_SendRoutingInfoResV2_sequence[] = {
15388   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
15389   { &hf_gsm_old_routingInfo , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo },
15390   { &hf_gsm_old_cug_CheckInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_CUG_CheckInfo },
15391   { NULL, 0, 0, 0, NULL }
15392 };
15393
15394 static int
15395 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_) {
15396   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15397                                    gsm_old_SendRoutingInfoResV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoResV2);
15398
15399   return offset;
15400 }
15401
15402
15403 /* --- Module SS-DataTypes --- --- ---                                        */
15404
15405
15406
15407 static int
15408 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_) {
15409   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
15410                                             actx, tree, tvb, offset, hf_index,
15411                                             NULL);
15412
15413   return offset;
15414 }
15415
15416
15417
15418 static int
15419 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_) {
15420   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15421                                        NULL);
15422
15423   return offset;
15424 }
15425
15426
15427
15428 static int
15429 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_) {
15430   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
15431
15432   return offset;
15433 }
15434
15435
15436 static const value_string gsm_ss_CallOnHold_Indicator_vals[] = {
15437   {   0, "callRetrieved" },
15438   {   1, "callOnHold" },
15439   { 0, NULL }
15440 };
15441
15442
15443 static int
15444 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_) {
15445   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15446                                   NULL);
15447
15448   return offset;
15449 }
15450
15451
15452 static const value_string gsm_ss_ECT_CallState_vals[] = {
15453   {   0, "alerting" },
15454   {   1, "active" },
15455   { 0, NULL }
15456 };
15457
15458
15459 static int
15460 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_) {
15461   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15462                                   NULL);
15463
15464   return offset;
15465 }
15466
15467
15468 static const ber_sequence_t gsm_ss_RemotePartyNumber_sequence[] = {
15469   { &hf_gsm_ss_partyNumber  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15470   { &hf_gsm_ss_partyNumberSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
15471   { NULL, 0, 0, 0, NULL }
15472 };
15473
15474 static int
15475 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_) {
15476   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15477                                    gsm_ss_RemotePartyNumber_sequence, hf_index, ett_gsm_ss_RemotePartyNumber);
15478
15479   return offset;
15480 }
15481
15482
15483 static const value_string gsm_ss_RDN_vals[] = {
15484   {   0, "presentationAllowedAddress" },
15485   {   1, "presentationRestricted" },
15486   {   2, "numberNotAvailableDueToInterworking" },
15487   {   3, "presentationRestrictedAddress" },
15488   { 0, NULL }
15489 };
15490
15491 static const ber_choice_t gsm_ss_RDN_choice[] = {
15492   {   0, &hf_gsm_ss_presentationAllowedAddress, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber },
15493   {   1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15494   {   2, &hf_gsm_ss_numberNotAvailableDueToInterworking, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15495   {   3, &hf_gsm_ss_presentationRestrictedAddress, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber },
15496   { 0, NULL, 0, 0, 0, NULL }
15497 };
15498
15499 static int
15500 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_) {
15501   offset = dissect_ber_choice(actx, tree, tvb, offset,
15502                                  gsm_ss_RDN_choice, hf_index, ett_gsm_ss_RDN,
15503                                  NULL);
15504
15505   return offset;
15506 }
15507
15508
15509 static const ber_sequence_t gsm_ss_ECT_Indicator_sequence[] = {
15510   { &hf_gsm_ss_ect_CallState, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_CallState },
15511   { &hf_gsm_ss_rdn          , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_RDN },
15512   { NULL, 0, 0, 0, NULL }
15513 };
15514
15515 static int
15516 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_) {
15517   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15518                                    gsm_ss_ECT_Indicator_sequence, hf_index, ett_gsm_ss_ECT_Indicator);
15519
15520   return offset;
15521 }
15522
15523
15524
15525 static int
15526 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_) {
15527   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15528                                                 NULL);
15529
15530   return offset;
15531 }
15532
15533
15534 static const ber_sequence_t gsm_ss_NameSet_sequence[] = {
15535   { &hf_gsm_ss_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
15536   { &hf_gsm_ss_lengthInCharacters, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_INTEGER },
15537   { &hf_gsm_ss_nameString   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_String },
15538   { NULL, 0, 0, 0, NULL }
15539 };
15540
15541 static int
15542 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_) {
15543   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15544                                    gsm_ss_NameSet_sequence, hf_index, ett_gsm_ss_NameSet);
15545
15546   return offset;
15547 }
15548
15549
15550 static const value_string gsm_ss_Name_vals[] = {
15551   {   0, "namePresentationAllowed" },
15552   {   1, "presentationRestricted" },
15553   {   2, "nameUnavailable" },
15554   {   3, "namePresentationRestricted" },
15555   { 0, NULL }
15556 };
15557
15558 static const ber_choice_t gsm_ss_Name_choice[] = {
15559   {   0, &hf_gsm_ss_namePresentationAllowed, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet },
15560   {   1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15561   {   2, &hf_gsm_ss_nameUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15562   {   3, &hf_gsm_ss_namePresentationRestricted, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet },
15563   { 0, NULL, 0, 0, 0, NULL }
15564 };
15565
15566 static int
15567 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_) {
15568   offset = dissect_ber_choice(actx, tree, tvb, offset,
15569                                  gsm_ss_Name_choice, hf_index, ett_gsm_ss_Name,
15570                                  NULL);
15571
15572   return offset;
15573 }
15574
15575
15576 static const ber_sequence_t gsm_ss_NameIndicator_sequence[] = {
15577   { &hf_gsm_ss_callingName  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_Name },
15578   { NULL, 0, 0, 0, NULL }
15579 };
15580
15581 static int
15582 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_) {
15583   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15584                                    gsm_ss_NameIndicator_sequence, hf_index, ett_gsm_ss_NameIndicator);
15585
15586   return offset;
15587 }
15588
15589
15590 static const value_string gsm_ss_Multicall_Indicator_vals[] = {
15591   {   0, "nbr-SNexceeded" },
15592   {   1, "nbr-Userexceeded" },
15593   { 0, NULL }
15594 };
15595
15596
15597 static int
15598 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_) {
15599   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15600                                   NULL);
15601
15602   return offset;
15603 }
15604
15605
15606 static const ber_sequence_t gsm_ss_NotifySS_Arg_sequence[] = {
15607   { &hf_gsm_ss_ss_Code      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
15608   { &hf_gsm_ss_ss_Status    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
15609   { &hf_gsm_ss_ss_Notification, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_SS_Notification },
15610   { &hf_gsm_ss_callIsWaiting_Indicator, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15611   { &hf_gsm_ss_callOnHold_Indicator, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_CallOnHold_Indicator },
15612   { &hf_gsm_ss_mpty_Indicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15613   { &hf_gsm_ss_cug_Index    , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index },
15614   { &hf_gsm_ss_clirSuppressionRejected, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15615   { &hf_gsm_ss_ect_Indicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_Indicator },
15616   { &hf_gsm_ss_nameIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameIndicator },
15617   { &hf_gsm_ss_ccbs_Feature , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
15618   { &hf_gsm_ss_alertingPattern, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
15619   { &hf_gsm_ss_multicall_Indicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Multicall_Indicator },
15620   { NULL, 0, 0, 0, NULL }
15621 };
15622
15623 static int
15624 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_) {
15625   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15626                                    gsm_ss_NotifySS_Arg_sequence, hf_index, ett_gsm_ss_NotifySS_Arg);
15627
15628   return offset;
15629 }
15630
15631
15632 static const ber_sequence_t gsm_ss_BeginSubscriberActivityArg_sequence[] = {
15633   { &hf_gsm_ss_imsi         , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
15634   { &hf_gsm_ss_originatingEntityNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
15635   { &hf_gsm_ss_msisdn       , BER_CLASS_PRI, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
15636   { NULL, 0, 0, 0, NULL }
15637 };
15638
15639 static int
15640 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_) {
15641   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15642                                    gsm_ss_BeginSubscriberActivityArg_sequence, hf_index, ett_gsm_ss_BeginSubscriberActivityArg);
15643
15644   return offset;
15645 }
15646
15647
15648
15649 static int
15650 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_) {
15651   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15652                                                 NULL);
15653
15654   return offset;
15655 }
15656
15657
15658
15659 static int
15660 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_) {
15661   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15662                                                 NULL);
15663
15664   return offset;
15665 }
15666
15667
15668
15669 static int
15670 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_) {
15671   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15672                                                 NULL);
15673
15674   return offset;
15675 }
15676
15677
15678
15679 static int
15680 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_) {
15681   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15682                                                 NULL);
15683
15684   return offset;
15685 }
15686
15687
15688
15689 static int
15690 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_) {
15691   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15692                                                 NULL);
15693
15694   return offset;
15695 }
15696
15697
15698
15699 static int
15700 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_) {
15701   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15702                                                 NULL);
15703
15704   return offset;
15705 }
15706
15707
15708
15709 static int
15710 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_) {
15711   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15712                                                 NULL);
15713
15714   return offset;
15715 }
15716
15717
15718 static const ber_sequence_t gsm_ss_ChargingInformation_sequence[] = {
15719   { &hf_gsm_ss_e1           , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E1 },
15720   { &hf_gsm_ss_e2           , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E2 },
15721   { &hf_gsm_ss_e3           , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E3 },
15722   { &hf_gsm_ss_e4           , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E4 },
15723   { &hf_gsm_ss_e5           , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E5 },
15724   { &hf_gsm_ss_e6           , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E6 },
15725   { &hf_gsm_ss_e7           , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E7 },
15726   { NULL, 0, 0, 0, NULL }
15727 };
15728
15729 static int
15730 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_) {
15731   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15732                                    gsm_ss_ChargingInformation_sequence, hf_index, ett_gsm_ss_ChargingInformation);
15733
15734   return offset;
15735 }
15736
15737
15738 static const ber_sequence_t gsm_ss_ForwardChargeAdviceArg_sequence[] = {
15739   { &hf_gsm_ss_ss_Code      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
15740   { &hf_gsm_ss_chargingInformation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ChargingInformation },
15741   { NULL, 0, 0, 0, NULL }
15742 };
15743
15744 static int
15745 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_) {
15746   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15747                                    gsm_ss_ForwardChargeAdviceArg_sequence, hf_index, ett_gsm_ss_ForwardChargeAdviceArg);
15748
15749   return offset;
15750 }
15751
15752
15753 static const ber_sequence_t gsm_ss_ForwardCUG_InfoArg_sequence[] = {
15754   { &hf_gsm_ss_cug_Index    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index },
15755   { &hf_gsm_ss_suppressPrefCUG, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15756   { &hf_gsm_ss_suppressOA   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15757   { NULL, 0, 0, 0, NULL }
15758 };
15759
15760 static int
15761 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_) {
15762   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15763                                    gsm_ss_ForwardCUG_InfoArg_sequence, hf_index, ett_gsm_ss_ForwardCUG_InfoArg);
15764
15765   return offset;
15766 }
15767
15768
15769 static const ber_sequence_t gsm_ss_AccessRegisterCCEntryArg_sequence[] = {
15770   { NULL, 0, 0, 0, NULL }
15771 };
15772
15773 static int
15774 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_) {
15775   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15776                                    gsm_ss_AccessRegisterCCEntryArg_sequence, hf_index, ett_gsm_ss_AccessRegisterCCEntryArg);
15777
15778   return offset;
15779 }
15780
15781
15782 static const ber_sequence_t gsm_ss_CallDeflectionArg_sequence[] = {
15783   { &hf_gsm_ss_deflectedToNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
15784   { &hf_gsm_ss_deflectedToSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
15785   { NULL, 0, 0, 0, NULL }
15786 };
15787
15788 static int
15789 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_) {
15790   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15791                                    gsm_ss_CallDeflectionArg_sequence, hf_index, ett_gsm_ss_CallDeflectionArg);
15792
15793   return offset;
15794 }
15795
15796
15797 static const value_string gsm_ss_UUS_Service_vals[] = {
15798   {   1, "uUS1" },
15799   {   2, "uUS2" },
15800   {   3, "uUS3" },
15801   { 0, NULL }
15802 };
15803
15804
15805 static int
15806 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_) {
15807   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15808                                   NULL);
15809
15810   return offset;
15811 }
15812
15813
15814
15815 static int
15816 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_) {
15817   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
15818
15819   return offset;
15820 }
15821
15822
15823 static const ber_sequence_t gsm_ss_UserUserServiceArg_sequence[] = {
15824   { &hf_gsm_ss_uUS_Service  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_UUS_Service },
15825   { &hf_gsm_ss_uUS_Required , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_BOOLEAN },
15826   { NULL, 0, 0, 0, NULL }
15827 };
15828
15829 static int
15830 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_) {
15831   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15832                                    gsm_ss_UserUserServiceArg_sequence, hf_index, ett_gsm_ss_UserUserServiceArg);
15833
15834   return offset;
15835 }
15836
15837
15838 static const ber_sequence_t gsm_ss_LocationNotificationArg_sequence[] = {
15839   { &hf_gsm_ss_notificationType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
15840   { &hf_gsm_ss_locationType , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType },
15841   { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
15842   { &hf_gsm_ss_lcsClientName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName },
15843   { &hf_gsm_ss_lcsRequestorID, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID },
15844   { &hf_gsm_ss_lcsCodeword  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword },
15845   { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
15846   { NULL, 0, 0, 0, NULL }
15847 };
15848
15849 static int
15850 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_) {
15851   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15852                                    gsm_ss_LocationNotificationArg_sequence, hf_index, ett_gsm_ss_LocationNotificationArg);
15853
15854   return offset;
15855 }
15856
15857
15858 static const value_string gsm_ss_VerificationResponse_vals[] = {
15859   {   0, "permissionDenied" },
15860   {   1, "permissionGranted" },
15861   { 0, NULL }
15862 };
15863
15864
15865 static int
15866 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_) {
15867   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15868                                   NULL);
15869
15870   return offset;
15871 }
15872
15873
15874 static const ber_sequence_t gsm_ss_LocationNotificationRes_sequence[] = {
15875   { &hf_gsm_ss_verificationResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_VerificationResponse },
15876   { NULL, 0, 0, 0, NULL }
15877 };
15878
15879 static int
15880 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_) {
15881   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15882                                    gsm_ss_LocationNotificationRes_sequence, hf_index, ett_gsm_ss_LocationNotificationRes);
15883
15884   return offset;
15885 }
15886
15887
15888 static const value_string gsm_ss_MOLR_Type_vals[] = {
15889   {   0, "locationEstimate" },
15890   {   1, "assistanceData" },
15891   {   2, "deCipheringKeys" },
15892   {   3, "deferredMo-lrTTTPInitiation" },
15893   {   4, "deferredMo-lrSelfLocationInitiation" },
15894   {   5, "deferredMt-lrOrmo-lrTTTPLocationEstimate" },
15895   {   6, "deferredMt-lrOrmo-lrCancellation" },
15896   { 0, NULL }
15897 };
15898
15899
15900 static int
15901 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_) {
15902   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15903                                   NULL);
15904
15905   return offset;
15906 }
15907
15908
15909 static const value_string gsm_ss_LocationMethod_vals[] = {
15910   {   0, "msBasedEOTD" },
15911   {   1, "msAssistedEOTD" },
15912   {   2, "assistedGPS" },
15913   {   3, "msBasedOTDOA" },
15914   {   4, "assistedGANSS" },
15915   {   5, "assistedGPSandGANSS" },
15916   { 0, NULL }
15917 };
15918
15919
15920 static int
15921 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_) {
15922   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15923                                   NULL);
15924
15925   return offset;
15926 }
15927
15928
15929
15930 static int
15931 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_) {
15932   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15933                                        NULL);
15934
15935   return offset;
15936 }
15937
15938
15939 static const value_string gsm_ss_TerminationCause_vals[] = {
15940   {   0, "subscriberTermination" },
15941   {   1, "uETermination" },
15942   { 0, NULL }
15943 };
15944
15945
15946 static int
15947 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_) {
15948   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15949                                   NULL);
15950
15951   return offset;
15952 }
15953
15954
15955
15956 static int
15957 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_) {
15958   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15959                                        NULL);
15960
15961   return offset;
15962 }
15963
15964
15965 static const ber_sequence_t gsm_ss_LCS_MOLRArg_sequence[] = {
15966   { &hf_gsm_ss_molr_Type    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_MOLR_Type },
15967   { &hf_gsm_ss_locationMethod, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LocationMethod },
15968   { &hf_gsm_ss_lcs_QoS      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
15969   { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
15970   { &hf_gsm_ss_mlc_Number   , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15971   { &hf_gsm_ss_gpsAssistanceData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_GPSAssistanceData },
15972   { &hf_gsm_ss_supportedGADShapes, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
15973   { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
15974   { &hf_gsm_ss_ageOfLocationInfo, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
15975   { &hf_gsm_ss_locationType , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType },
15976   { &hf_gsm_ss_pseudonymIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15977   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15978   { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
15979   { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
15980   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15981   { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
15982   { &hf_gsm_ss_locationUpdateRequest, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15983   { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
15984   { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
15985   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15986   { &hf_gsm_ss_ganssAssistanceData, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_GANSSAssistanceData },
15987   { NULL, 0, 0, 0, NULL }
15988 };
15989
15990 static int
15991 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_) {
15992   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15993                                    gsm_ss_LCS_MOLRArg_sequence, hf_index, ett_gsm_ss_LCS_MOLRArg);
15994
15995   return offset;
15996 }
15997
15998
15999
16000 static int
16001 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_) {
16002   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16003                                        NULL);
16004
16005   return offset;
16006 }
16007
16008
16009 static const ber_sequence_t gsm_ss_LCS_MOLRRes_sequence[] = {
16010   { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
16011   { &hf_gsm_ss_decipheringKeys, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DecipheringKeys },
16012   { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
16013   { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
16014   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
16015   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
16016   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
16017   { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
16018   { NULL, 0, 0, 0, NULL }
16019 };
16020
16021 static int
16022 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_) {
16023   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16024                                    gsm_ss_LCS_MOLRRes_sequence, hf_index, ett_gsm_ss_LCS_MOLRRes);
16025
16026   return offset;
16027 }
16028
16029
16030 static const ber_sequence_t gsm_ss_LCS_AreaEventRequestArg_sequence[] = {
16031   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
16032   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
16033   { &hf_gsm_ss_deferredLocationEventType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
16034   { &hf_gsm_ss_areaEventInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo },
16035   { NULL, 0, 0, 0, NULL }
16036 };
16037
16038 static int
16039 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_) {
16040   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16041                                    gsm_ss_LCS_AreaEventRequestArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventRequestArg);
16042
16043   return offset;
16044 }
16045
16046
16047 static const ber_sequence_t gsm_ss_LCS_AreaEventReportArg_sequence[] = {
16048   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
16049   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
16050   { NULL, 0, 0, 0, NULL }
16051 };
16052
16053 static int
16054 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_) {
16055   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16056                                    gsm_ss_LCS_AreaEventReportArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventReportArg);
16057
16058   return offset;
16059 }
16060
16061
16062 static const ber_sequence_t gsm_ss_LCS_AreaEventCancellationArg_sequence[] = {
16063   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
16064   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
16065   { NULL, 0, 0, 0, NULL }
16066 };
16067
16068 static int
16069 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_) {
16070   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16071                                    gsm_ss_LCS_AreaEventCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventCancellationArg);
16072
16073   return offset;
16074 }
16075
16076
16077 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestArg_sequence[] = {
16078   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
16079   { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
16080   { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
16081   { &hf_gsm_ss_qoS          , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
16082   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
16083   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
16084   { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
16085   { NULL, 0, 0, 0, NULL }
16086 };
16087
16088 static int
16089 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_) {
16090   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16091                                    gsm_ss_LCS_PeriodicLocationRequestArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestArg);
16092
16093   return offset;
16094 }
16095
16096
16097 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestRes_sequence[] = {
16098   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
16099   { NULL, 0, 0, 0, NULL }
16100 };
16101
16102 static int
16103 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_) {
16104   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16105                                    gsm_ss_LCS_PeriodicLocationRequestRes_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestRes);
16106
16107   return offset;
16108 }
16109
16110
16111 static const ber_sequence_t gsm_ss_LCS_LocationUpdateArg_sequence[] = {
16112   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
16113   { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
16114   { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
16115   { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
16116   { NULL, 0, 0, 0, NULL }
16117 };
16118
16119 static int
16120 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_) {
16121   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16122                                    gsm_ss_LCS_LocationUpdateArg_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateArg);
16123
16124   return offset;
16125 }
16126
16127
16128 static const ber_sequence_t gsm_ss_LCS_LocationUpdateRes_sequence[] = {
16129   { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
16130   { NULL, 0, 0, 0, NULL }
16131 };
16132
16133 static int
16134 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_) {
16135   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16136                                    gsm_ss_LCS_LocationUpdateRes_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateRes);
16137
16138   return offset;
16139 }
16140
16141
16142 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationCancellationArg_sequence[] = {
16143   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
16144   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
16145   { NULL, 0, 0, 0, NULL }
16146 };
16147
16148 static int
16149 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_) {
16150   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16151                                    gsm_ss_LCS_PeriodicLocationCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationCancellationArg);
16152
16153   return offset;
16154 }
16155
16156
16157 /* --- Module SS-Operations --- --- ---                                       */
16158
16159
16160 /*--- End of included file: packet-gsm_map-fn.c ---*/
16161 #line 747 "packet-gsmmap-template.c"
16162
16163 /* Specific translation for MAP V3 */
16164 const value_string gsm_map_V1V2_opr_code_strings[] = {
16165   {  44, "forwardSM" },
16166   {  45, "sendRoutingInfoForSM" },
16167   {  46, "forwardSM" },
16168   { 0, NULL }
16169 };
16170 /* Generic translation for MAP operation */
16171 const value_string gsm_map_opr_code_strings[] = {
16172
16173 /*--- Included file: packet-gsm_map-table.c ---*/
16174 #line 1 "packet-gsm_map-table.c"
16175
16176 /* --- Module Remote-Operations-Information-Objects --- --- ---               */
16177
16178 /* Unknown or empty loop list OPERATION */
16179
16180 /* --- Module MobileDomainDefinitions --- --- ---                             */
16181
16182 /* Unknown or empty loop list OPERATION */
16183
16184 /* --- Module MAP-ApplicationContexts --- --- ---                             */
16185
16186 /* Unknown or empty loop list OPERATION */
16187
16188 /* --- Module MAP-SS-Code --- --- ---                                         */
16189
16190 /* Unknown or empty loop list OPERATION */
16191
16192 /* --- Module MAP-BS-Code --- --- ---                                         */
16193
16194 /* Unknown or empty loop list OPERATION */
16195
16196 /* --- Module MAP-TS-Code --- --- ---                                         */
16197
16198 /* Unknown or empty loop list OPERATION */
16199
16200 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
16201
16202 /* Unknown or empty loop list OPERATION */
16203
16204 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
16205
16206 /* Unknown or empty loop list OPERATION */
16207
16208 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
16209
16210 /* Unknown or empty loop list OPERATION */
16211
16212 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
16213
16214 /* Unknown or empty loop list OPERATION */
16215
16216 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
16217
16218 /* Unknown or empty loop list OPERATION */
16219
16220 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
16221
16222 /* Unknown or empty loop list OPERATION */
16223
16224 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
16225
16226 /* Unknown or empty loop list OPERATION */
16227
16228 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
16229
16230 /* Unknown or empty loop list OPERATION */
16231
16232 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
16233
16234 /* Unknown or empty loop list OPERATION */
16235
16236 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
16237
16238 /* Unknown or empty loop list OPERATION */
16239
16240 /* --- Module MAP-DialogueInformation --- --- ---                             */
16241
16242 /* Unknown or empty loop list OPERATION */
16243
16244 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
16245
16246         { 85, "sendRoutingInfoForLCS" },
16247         { 83, "provideSubscriberLocation" },
16248         { 86, "subscriberLocationReport" },
16249
16250 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
16251
16252         { 39, "prepareGroupCall" },
16253         { 40, "sendGroupCallEndSignal" },
16254         { 41, "processGroupCallSignalling" },
16255         { 42, "forwardGroupCallSignalling" },
16256         { 84, "sendGroupCallInfo" },
16257
16258 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
16259
16260         { 45, "sendRoutingInfoForSM" },
16261         { 46, "mo_ForwardSM" },
16262         { 44, "mt_ForwardSM" },
16263         { 47, "reportSM_DeliveryStatus" },
16264         { 64, "alertServiceCentre" },
16265         { 63, "informServiceCentre" },
16266         { 66, "readyForSM" },
16267         { 21, "mt_ForwardSM_VGCS" },
16268
16269 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
16270
16271         { 10, "registerSS" },
16272         { 11, "eraseSS" },
16273         { 12, "activateSS" },
16274         { 13, "deactivateSS" },
16275         { 14, "interrogateSS" },
16276         { 59, "processUnstructuredSS_Request" },
16277         { 60, "unstructuredSS_Request" },
16278         { 61, "unstructuredSS_Notify" },
16279         { 17, "registerPassword" },
16280         { 18, "getPassword" },
16281         { 72, "ss_InvocationNotification" },
16282         { 76, "registerCC_Entry" },
16283         { 77, "eraseCC_Entry" },
16284
16285 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
16286
16287         { 22, "sendRoutingInfo" },
16288         { 4, "provideRoamingNumber" },
16289         { 6, "resumeCallHandling" },
16290         { 73, "setReportingState" },
16291         { 74, "statusReport" },
16292         { 75, "remoteUserFree" },
16293         { 87, "ist_Alert" },
16294         { 88, "ist_Command" },
16295         { 20, "releaseResources" },
16296
16297 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
16298
16299         { 50, "activateTraceMode" },
16300         { 51, "deactivateTraceMode" },
16301         { 58, "sendIMSI" },
16302
16303 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
16304
16305         { 2, "updateLocation" },
16306         { 3, "cancelLocation" },
16307         { 67, "purgeMS" },
16308         { 55, "sendIdentification" },
16309         { 23, "updateGprsLocation" },
16310         { 70, "provideSubscriberInfo" },
16311         { 71, "anyTimeInterrogation" },
16312         { 62, "anyTimeSubscriptionInterrogation" },
16313         { 65, "anyTimeModification" },
16314         { 5, "noteSubscriberDataModified" },
16315         { 68, "prepareHandover" },
16316         { 29, "sendEndSignal" },
16317         { 33, "processAccessSignalling" },
16318         { 34, "forwardAccessSignalling" },
16319         { 69, "prepareSubsequentHandover" },
16320         { 56, "sendAuthenticationInfo" },
16321         { 15, "authenticationFailureReport" },
16322         { 43, "checkIMEI" },
16323         { 7, "insertSubscriberData" },
16324         { 8, "deleteSubscriberData" },
16325         { 37, "reset" },
16326         { 38, "forwardCheckSS_Indication" },
16327         { 57, "restoreData" },
16328         { 24, "sendRoutingInfoForGprs" },
16329         { 25, "failureReport" },
16330         { 26, "noteMsPresentForGprs" },
16331         { 89, "noteMM_Event" },
16332
16333 /* --- Module MAP-Errors --- --- ---                                          */
16334
16335 /* Unknown or empty loop list OPERATION */
16336
16337 /* --- Module MAP-Protocol --- --- ---                                        */
16338
16339 /* Unknown or empty loop list OPERATION */
16340
16341 /* --- Module DummyMAP --- --- ---                                            */
16342
16343 /* Unknown or empty loop list OPERATION */
16344
16345 /* --- Module SS-DataTypes --- --- ---                                        */
16346
16347 /* Unknown or empty loop list OPERATION */
16348
16349 /* --- Module SS-Operations --- --- ---                                       */
16350
16351         { 19, "processUnstructuredSS_Data" },
16352         { 54, "beginSubscriberActivity" },
16353         { 16, "notifySS" },
16354         { 125, "forwardChargeAdvice" },
16355         { 120, "forwardCUG_Info" },
16356         { 124, "buildMPTY" },
16357         { 123, "holdMPTY" },
16358         { 122, "retrieveMPTY" },
16359         { 121, "splitMPTY" },
16360         { 126, "explicitCT" },
16361         { 119, "accessRegisterCCEntry" },
16362         { 117, "callDeflection" },
16363         { 118, "userUserService" },
16364         { 116, "lcs_LocationNotification" },
16365         { 115, "lcs_MOLR" },
16366         { 114, "lcs_AreaEventRequest" },
16367         { 113, "lcs_AreaEventReport" },
16368         { 112, "lcs_AreaEventCancellation" },
16369         { 111, "lcs_PeriodicLocationRequest" },
16370         { 110, "lcs_LocationUpdate" },
16371         { 109, "lcs_PeriodicLocationCancellation" },
16372
16373 /*--- End of included file: packet-gsm_map-table.c ---*/
16374 #line 758 "packet-gsmmap-template.c"
16375   { 0, NULL }
16376 };
16377 static const value_string gsm_map_err_code_string_vals[] = {
16378
16379 /*--- Included file: packet-gsm_map-table.c ---*/
16380 #line 1 "packet-gsm_map-table.c"
16381
16382 /* --- Module Remote-Operations-Information-Objects --- --- ---               */
16383
16384 /* Unknown or empty loop list OPERATION */
16385
16386 /* --- Module MobileDomainDefinitions --- --- ---                             */
16387
16388 /* Unknown or empty loop list OPERATION */
16389
16390 /* --- Module MAP-ApplicationContexts --- --- ---                             */
16391
16392 /* Unknown or empty loop list OPERATION */
16393
16394 /* --- Module MAP-SS-Code --- --- ---                                         */
16395
16396 /* Unknown or empty loop list OPERATION */
16397
16398 /* --- Module MAP-BS-Code --- --- ---                                         */
16399
16400 /* Unknown or empty loop list OPERATION */
16401
16402 /* --- Module MAP-TS-Code --- --- ---                                         */
16403
16404 /* Unknown or empty loop list OPERATION */
16405
16406 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
16407
16408 /* Unknown or empty loop list OPERATION */
16409
16410 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
16411
16412 /* Unknown or empty loop list OPERATION */
16413
16414 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
16415
16416 /* Unknown or empty loop list OPERATION */
16417
16418 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
16419
16420 /* Unknown or empty loop list OPERATION */
16421
16422 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
16423
16424 /* Unknown or empty loop list OPERATION */
16425
16426 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
16427
16428 /* Unknown or empty loop list OPERATION */
16429
16430 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
16431
16432 /* Unknown or empty loop list OPERATION */
16433
16434 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
16435
16436 /* Unknown or empty loop list OPERATION */
16437
16438 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
16439
16440 /* Unknown or empty loop list OPERATION */
16441
16442 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
16443
16444 /* Unknown or empty loop list OPERATION */
16445
16446 /* --- Module MAP-DialogueInformation --- --- ---                             */
16447
16448 /* Unknown or empty loop list OPERATION */
16449
16450 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
16451
16452         { 85, "sendRoutingInfoForLCS" },
16453         { 83, "provideSubscriberLocation" },
16454         { 86, "subscriberLocationReport" },
16455
16456 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
16457
16458         { 39, "prepareGroupCall" },
16459         { 40, "sendGroupCallEndSignal" },
16460         { 41, "processGroupCallSignalling" },
16461         { 42, "forwardGroupCallSignalling" },
16462         { 84, "sendGroupCallInfo" },
16463
16464 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
16465
16466         { 45, "sendRoutingInfoForSM" },
16467         { 46, "mo_ForwardSM" },
16468         { 44, "mt_ForwardSM" },
16469         { 47, "reportSM_DeliveryStatus" },
16470         { 64, "alertServiceCentre" },
16471         { 63, "informServiceCentre" },
16472         { 66, "readyForSM" },
16473         { 21, "mt_ForwardSM_VGCS" },
16474
16475 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
16476
16477         { 10, "registerSS" },
16478         { 11, "eraseSS" },
16479         { 12, "activateSS" },
16480         { 13, "deactivateSS" },
16481         { 14, "interrogateSS" },
16482         { 59, "processUnstructuredSS_Request" },
16483         { 60, "unstructuredSS_Request" },
16484         { 61, "unstructuredSS_Notify" },
16485         { 17, "registerPassword" },
16486         { 18, "getPassword" },
16487         { 72, "ss_InvocationNotification" },
16488         { 76, "registerCC_Entry" },
16489         { 77, "eraseCC_Entry" },
16490
16491 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
16492
16493         { 22, "sendRoutingInfo" },
16494         { 4, "provideRoamingNumber" },
16495         { 6, "resumeCallHandling" },
16496         { 73, "setReportingState" },
16497         { 74, "statusReport" },
16498         { 75, "remoteUserFree" },
16499         { 87, "ist_Alert" },
16500         { 88, "ist_Command" },
16501         { 20, "releaseResources" },
16502
16503 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
16504
16505         { 50, "activateTraceMode" },
16506         { 51, "deactivateTraceMode" },
16507         { 58, "sendIMSI" },
16508
16509 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
16510
16511         { 2, "updateLocation" },
16512         { 3, "cancelLocation" },
16513         { 67, "purgeMS" },
16514         { 55, "sendIdentification" },
16515         { 23, "updateGprsLocation" },
16516         { 70, "provideSubscriberInfo" },
16517         { 71, "anyTimeInterrogation" },
16518         { 62, "anyTimeSubscriptionInterrogation" },
16519         { 65, "anyTimeModification" },
16520         { 5, "noteSubscriberDataModified" },
16521         { 68, "prepareHandover" },
16522         { 29, "sendEndSignal" },
16523         { 33, "processAccessSignalling" },
16524         { 34, "forwardAccessSignalling" },
16525         { 69, "prepareSubsequentHandover" },
16526         { 56, "sendAuthenticationInfo" },
16527         { 15, "authenticationFailureReport" },
16528         { 43, "checkIMEI" },
16529         { 7, "insertSubscriberData" },
16530         { 8, "deleteSubscriberData" },
16531         { 37, "reset" },
16532         { 38, "forwardCheckSS_Indication" },
16533         { 57, "restoreData" },
16534         { 24, "sendRoutingInfoForGprs" },
16535         { 25, "failureReport" },
16536         { 26, "noteMsPresentForGprs" },
16537         { 89, "noteMM_Event" },
16538
16539 /* --- Module MAP-Errors --- --- ---                                          */
16540
16541 /* Unknown or empty loop list OPERATION */
16542
16543 /* --- Module MAP-Protocol --- --- ---                                        */
16544
16545 /* Unknown or empty loop list OPERATION */
16546
16547 /* --- Module DummyMAP --- --- ---                                            */
16548
16549 /* Unknown or empty loop list OPERATION */
16550
16551 /* --- Module SS-DataTypes --- --- ---                                        */
16552
16553 /* Unknown or empty loop list OPERATION */
16554
16555 /* --- Module SS-Operations --- --- ---                                       */
16556
16557         { 19, "processUnstructuredSS_Data" },
16558         { 54, "beginSubscriberActivity" },
16559         { 16, "notifySS" },
16560         { 125, "forwardChargeAdvice" },
16561         { 120, "forwardCUG_Info" },
16562         { 124, "buildMPTY" },
16563         { 123, "holdMPTY" },
16564         { 122, "retrieveMPTY" },
16565         { 121, "splitMPTY" },
16566         { 126, "explicitCT" },
16567         { 119, "accessRegisterCCEntry" },
16568         { 117, "callDeflection" },
16569         { 118, "userUserService" },
16570         { 116, "lcs_LocationNotification" },
16571         { 115, "lcs_MOLR" },
16572         { 114, "lcs_AreaEventRequest" },
16573         { 113, "lcs_AreaEventReport" },
16574         { 112, "lcs_AreaEventCancellation" },
16575         { 111, "lcs_PeriodicLocationRequest" },
16576         { 110, "lcs_LocationUpdate" },
16577         { 109, "lcs_PeriodicLocationCancellation" },
16578
16579 /*--- End of included file: packet-gsm_map-table.c ---*/
16580 #line 762 "packet-gsmmap-template.c"
16581     { 0, NULL }
16582 };
16583 static const true_false_string gsm_map_extension_value = {
16584   "No Extension",
16585   "Extension"
16586 };
16587 static const value_string gsm_map_nature_of_number_values[] = {
16588         {   0x00,       "unknown" },
16589         {   0x01,       "International Number" },
16590         {   0x02,       "National Significant Number" },
16591         {   0x03,       "Network Specific Number" },
16592         {   0x04,       "Subscriber Number" },
16593         {   0x05,       "Reserved" },
16594         {   0x06,       "Abbreviated Number" },
16595         {   0x07,       "Reserved for extension" },
16596         { 0, NULL }
16597 };
16598 static const value_string gsm_map_number_plan_values[] = {
16599         {   0x00,       "unknown" },
16600         {   0x01,       "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
16601         {   0x02,       "spare" },
16602         {   0x03,       "Data Numbering (ITU-T Rec. X.121)" },
16603         {   0x04,       "Telex Numbering (ITU-T Rec. F.69)" },
16604         {   0x05,       "spare" },
16605         {   0x06,       "Land Mobile Numbering (ITU-T Rec. E.212)" },
16606         {   0x07,       "spare" },
16607         {   0x08,       "National Numbering" },
16608         {   0x09,       "Private Numbering" },
16609         {   0x0f,       "Reserved for extension" },
16610         { 0, NULL }
16611 };
16612
16613 static const true_false_string gsm_map_Ss_Status_q_bit_values = {
16614   "Quiescent",
16615   "Operative"
16616 };
16617 static const true_false_string gsm_map_Ss_Status_p_values = {
16618   "Provisioned",
16619   "Not Provisioned"
16620 };
16621 static const true_false_string gsm_map_Ss_Status_r_values = {
16622   "Registered",
16623   "Not Registered"
16624 };
16625 static const true_false_string gsm_map_Ss_Status_a_values = {
16626   "Active",
16627   "not Active"
16628 };
16629
16630 /*
16631  * Translate the MAP operation code value to a text string
16632  * Take into account the MAP version for ForwardSM
16633  */
16634 const gchar* gsm_map_opr_code(guint32 val) {
16635   switch (val) { 
16636   case 44: /*mt-forwardSM*/
16637   case 46: /*mo-forwardSM*/
16638     if (application_context_version < 3) {
16639       return val_to_str(val, gsm_map_V1V2_opr_code_strings, "Unknown GSM-MAP (%u)");
16640     }
16641     /* Else use the default map operation translation */
16642   default:
16643     return val_to_str(val, gsm_old_GSMMAPOperationLocalvalue_vals, "Unknown GSM-MAP opcode (%u)");
16644     break;
16645   }
16646 }
16647
16648 /* Prototype for a decoding function */
16649 typedef int (* dissect_function_t)( gboolean,
16650                                     tvbuff_t *,
16651                                     int ,
16652                                         asn1_ctx_t *,
16653                                     proto_tree *,
16654                                     int);
16655
16656 /*
16657  * Dissect Multiple Choice Message
16658  * This function is used to decode a message, when several encoding may be used.
16659  * For exemple, in the last MAP version, the Cancel Location is defined like this:
16660  * CancelLocationArg ::= [3] IMPLICIT SEQUENCE
16661  * But in the previous MAP version, it was a CHOICE between a SEQUENCE and an IMSI
16662  * As ASN1 encoders (or software) still uses the old encoding, this function allows
16663  * the decoding of both versions.
16664  * Moreover, some optimizations (or bad practice ?) in ASN1 encoder, removes the 
16665  * SEQUENCE tag, when only one parameter is present in the SEQUENCE.
16666  * This explain why the function expects 3 parameters:
16667  * - a [3] SEQUENCE corresponding the recent ASN1 MAP encoding
16668  * - a SEQUENCE for old style
16669  * - and a single parameter, for old version or optimizations
16670  *
16671  * The analyze of the first ASN1 tag, indicate what kind of decoding should be used, 
16672  * if the decoding function is provided (so not a NULL function)
16673  */
16674 static int dissect_mc_message(tvbuff_t *tvb,
16675                               int offset,
16676                                   asn1_ctx_t *actx,
16677                               proto_tree *tree,
16678                               gboolean implicit_param _U_, dissect_function_t parameter, int hf_index_param _U_,
16679                               gboolean implicit_seq   _U_, dissect_function_t sequence,  int hf_index_seq   _U_,
16680                               gboolean implicit_seq3 _U_, dissect_function_t sequence3, int hf_index_seq3 _U_ )
16681 {
16682   guint8 octet;
16683   gint8 bug_class;
16684   gboolean bug_pc, bug_ind_field;
16685   gint32 bug_tag;
16686   guint32 bug_len;
16687   proto_item *cause;
16688
16689   octet = tvb_get_guint8(tvb,0);
16690   if ( (octet & 0xf) == 3) {
16691     /* XXX  asn2wrs can not yet handle tagged assignment yes so this
16692      * XXX is some conformance file magic to work around that bug
16693      */
16694     offset = get_ber_identifier(tvb, offset, &bug_class, &bug_pc, &bug_tag);
16695     offset = get_ber_length(tvb, offset, &bug_len, &bug_ind_field);
16696     if (sequence3 != NULL) {
16697       offset= (sequence3) (implicit_seq3, tvb, offset, actx, tree, hf_index_seq3);
16698     } else {
16699       cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented [3] sequence, cannot decode");
16700       proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR);
16701       expert_add_info_format(actx->pinfo, cause, PI_UNDECODED, PI_ERROR, "Unknown or not implemented [3] sequence");
16702     }
16703   } else if (octet == 0x30) {
16704     if (sequence != NULL) {
16705       offset= (sequence) (implicit_seq, tvb, 0, actx, tree, hf_index_seq);
16706     } else {
16707       cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented sequence");
16708       proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR);
16709       expert_add_info_format(actx->pinfo, cause, PI_UNDECODED, PI_ERROR, "Unknown or not implemented sequence");
16710     }
16711   } else {
16712     if (parameter != NULL) {
16713       offset= (parameter) (implicit_param, tvb, offset, actx, tree, hf_index_param);
16714     } else {
16715       cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented parameter");
16716       proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR);
16717       expert_add_info_format(actx->pinfo, cause, PI_UNDECODED, PI_ERROR, "Unknown or not implemented parameter");
16718     }
16719   }
16720   return offset;
16721 }
16722
16723 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
16724  
16725   proto_item *cause;
16726
16727   switch(opcode){
16728   case  2: /*updateLocation*/   
16729     offset=dissect_gsm_map_ms_UpdateLocationArg(FALSE, tvb, offset, actx, tree, -1);
16730     break;
16731   case  3: /*cancelLocation*/
16732     offset=dissect_mc_message(tvb, offset, actx, tree,    
16733                               FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
16734                               FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
16735                               TRUE , dissect_gsm_map_ms_CancelLocationArg, -1);/*undefined*/
16736     break;
16737   case  4: /*provideRoamingNumber*/
16738     offset=dissect_gsm_map_ch_ProvideRoamingNumberArg(FALSE, tvb, offset, actx, tree, -1);
16739     break;
16740   case  5: /*noteSubscriberDataModified*/
16741     offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(FALSE, tvb, offset, actx, tree, -1);
16742     break;
16743   case  6: /*resumeCallHandling*/
16744     offset=dissect_gsm_map_ch_ResumeCallHandlingArg(FALSE, tvb, offset, actx, tree, -1);
16745     break;
16746   case  7: /*insertSubscriberData*/
16747     offset=dissect_gsm_map_ms_InsertSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
16748     break;
16749   case  8: /*deleteSubscriberData*/
16750     offset=dissect_gsm_map_ms_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
16751     break;
16752     /* TODO find out why this isn't in the ASN1 file */
16753     /* reserved sendParameters (9) */
16754   case  10: /*registerSS*/
16755     offset=dissect_gsm_map_ss_RegisterSS_Arg(FALSE, tvb, offset, actx, tree, -1);
16756     break;
16757   case  11: /*eraseSS*/
16758     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
16759     break;
16760   case 12: /*activateSS*/
16761     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
16762     break;
16763   case 13: /*deactivateSS*/
16764     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
16765     break;
16766   case 14: /*interrogateSS*/
16767     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
16768     break;
16769   case 15: /*authenticationFailureReport*/
16770     offset=dissect_gsm_map_ms_AuthenticationFailureReportArg(FALSE, tvb, offset, actx, tree, -1);
16771     break;
16772   case 16: /*SS-protocol notifySS*/
16773     offset=dissect_gsm_ss_NotifySS_Arg(FALSE, tvb, offset, actx, tree, -1);
16774     break;
16775   case 17: /*registerPassword*/
16776     offset=dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
16777     break;
16778   case 18: /*getPassword*/
16779     offset=dissect_gsm_old_GetPasswordArg(FALSE, tvb, offset, actx, tree, hf_gsm_map_getPassword);
16780     break;
16781   case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
16782     offset=dissect_gsm_ss_SS_UserData(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData);
16783     break;
16784   case 20: /*releaseResources*/
16785     offset=dissect_gsm_map_ch_ReleaseResourcesArg(FALSE, tvb, offset, actx, tree, -1);
16786     break;
16787   case 21: /*mt-ForwardSM-VGCS*/
16788     offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(FALSE, tvb, offset, actx, tree, -1);
16789     break;
16790   case 22: /*sendRoutingInfo*/
16791           if (application_context_version == 3){
16792                   offset=dissect_gsm_map_ch_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1);
16793           }else{
16794                   offset=dissect_gsm_old_SendRoutingInfoArgV2(FALSE, tvb, offset, actx, tree, -1);
16795           }
16796     break;
16797   case 23: /*updateGprsLocation*/
16798     offset=dissect_gsm_map_ms_UpdateGprsLocationArg(FALSE, tvb, offset, actx, tree, -1);
16799     break;
16800   case 24: /*sendRoutingInfoForGprs*/
16801     offset=dissect_gsm_map_ms_SendRoutingInfoForGprsArg(FALSE, tvb, offset, actx, tree, -1);
16802     break;
16803   case 25: /*failureReport*/
16804     offset=dissect_gsm_map_ms_FailureReportArg(FALSE, tvb, offset, actx, tree, -1);
16805     break;
16806   case 26: /*noteMsPresentForGprs*/
16807     offset=dissect_gsm_map_ms_NoteMsPresentForGprsArg(FALSE, tvb, offset, actx, tree, -1);
16808     break;
16809     /* undefined 27 */
16810     /* reserved performHandover (28) */
16811   case 29: /*sendEndSignal*/
16812     offset=dissect_mc_message(tvb, offset, actx, tree,    
16813                               FALSE, NULL, -1,
16814                               FALSE, dissect_gsm_old_Bss_APDU, -1,
16815                               TRUE , dissect_gsm_map_ms_SendEndSignal_Arg, -1);
16816     break;
16817     /* reserved performSubsequentHandover (30) */
16818   case 31: /*provideSIWFSNumber*/
16819     offset=dissect_gsm_old_ProvideSIWFSNumberArg(FALSE, tvb, offset, actx, tree, -1);
16820     break;
16821   case 32: /*sIWFSSignallingModify*/
16822     offset=dissect_gsm_old_SIWFSSignallingModifyArg(FALSE, tvb, offset, actx, tree, -1);
16823     break;
16824   case 33: /*processAccessSignalling*/
16825     offset=dissect_mc_message(tvb, offset, actx, tree,    
16826                               FALSE, NULL, -1,
16827                               FALSE, dissect_gsm_old_Bss_APDU, -1,
16828                               TRUE , dissect_gsm_map_ms_ProcessAccessSignalling_Arg, -1);
16829     break;
16830   case 34: /*forwardAccessSignalling*/
16831     offset=dissect_mc_message(tvb, offset, actx, tree,    
16832                               FALSE, NULL, -1,
16833                               FALSE, dissect_gsm_old_Bss_APDU, -1,
16834                               TRUE , dissect_gsm_map_ms_ForwardAccessSignalling_Arg, -1);
16835     break;
16836     /* reserved noteInternalHandover (35) */
16837     /* undefined 36 */
16838   case 37: /*reset*/
16839     offset=dissect_gsm_map_ms_ResetArg(FALSE, tvb, offset, actx, tree, -1);
16840     break;
16841   case 38: /*forwardCheckSS-Indication*/
16842     return offset;
16843     break;
16844   case 39: /*prepareGroupCall*/
16845     offset=dissect_gsm_map_gr_PrepareGroupCallArg(FALSE, tvb, offset, actx, tree, -1);
16846     break;
16847   case 40: /*sendGroupCallEndSignal*/
16848     offset = dissect_gsm_map_gr_SendGroupCallEndSignalArg(FALSE, tvb, offset, actx, tree, -1);
16849     break;
16850   case 41: /*processGroupCallSignalling*/
16851     offset = dissect_gsm_map_gr_ProcessGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1);
16852     break;
16853   case 42: /*forwardGroupCallSignalling*/
16854     offset=dissect_gsm_map_gr_ForwardGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1);
16855     break;
16856   case 43: /*checkIMEI*/
16857     offset=dissect_mc_message(tvb, offset, actx, tree,    
16858                               FALSE, dissect_gsm_map_IMEI, hf_gsm_map_ms_imei,
16859                               FALSE, dissect_gsm_map_ms_CheckIMEI_Arg, -1,
16860                               TRUE , NULL, -1); /* no [3] SEQUENCE */
16861     break;
16862   case 44: /*mt-forwardSM(v3) or ForwardSM(v1/v2)*/
16863     if (application_context_version == 3)
16864       offset=dissect_gsm_map_sm_MT_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16865     else {
16866       offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16867     }
16868     break;
16869   case 45: /*sendRoutingInfoForSM*/
16870     offset=dissect_gsm_map_sm_RoutingInfoForSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16871     break;
16872   case 46: /*mo-forwardSM(v3) or ForwardSM(v1/v2)*/
16873     if (application_context_version == 3)
16874       offset=dissect_gsm_map_sm_MO_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16875     else {
16876       offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16877     }
16878     break;
16879   case 47: /*reportSM-DeliveryStatus*/
16880     offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, actx, tree, -1);
16881     break;
16882     /* reserved noteSubscriberPresent (48) */
16883     /* reserved alertServiceCentreWithoutResult (49)  
16884          * ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
16885          * -- alertServiceCentreWithoutResult must not be used in
16886          * -- version greater 1
16887          */
16888   case 49:
16889         offset = dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
16890         break;
16891   case 50: /*activateTraceMode*/
16892     offset=dissect_gsm_map_om_ActivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1);
16893     break;
16894   case 51: /*deactivateTraceMode*/
16895     offset=dissect_gsm_map_om_DeactivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1);
16896     break;
16897     /* reserved traceSubscriberActivity (52) */
16898     /* undefined 53 */
16899   case 54: /*beginSubscriberActivity*/
16900     offset=dissect_gsm_ss_BeginSubscriberActivityArg(FALSE, tvb, offset, actx, tree, -1);
16901     break;
16902   case 55: /*sendIdentification*/
16903     offset=dissect_mc_message(tvb, offset, actx, tree,    
16904                               FALSE, dissect_gsm_map_TMSI, hf_gsm_map_tmsi,
16905                               FALSE, dissect_gsm_map_ms_SendIdentificationArg, -1,
16906                               TRUE,  NULL, -1);
16907     break;
16908   case 56: /*sendAuthenticationInfo*/ 
16909     offset=dissect_mc_message(tvb, offset, actx, tree,    
16910                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
16911                               FALSE, dissect_gsm_map_ms_SendAuthenticationInfoArg, -1,
16912                               TRUE,  NULL, -1);
16913     break;
16914   case 57: /*restoreData*/
16915     offset=dissect_gsm_map_ms_RestoreDataArg(FALSE, tvb, offset, actx, tree, -1);
16916     break;
16917   case 58: /*sendIMSI*/
16918     offset = dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_msisdn);
16919     break;
16920   case 59: /*processUnstructuredSS-Request*/
16921     offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
16922     break;
16923   case 60: /*unstructuredSS-Request*/
16924     offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
16925     break;
16926   case 61: /*unstructuredSS-Notify*/
16927     offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
16928     break;
16929   case 62: /*AnyTimeSubscriptionInterrogation*/
16930     offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(FALSE, tvb, offset, actx, tree, -1);
16931     break;
16932   case 63: /*informServiceCentre*/
16933     offset=dissect_gsm_map_sm_InformServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
16934     break;
16935   case 64: /*alertServiceCentre*/
16936     offset=dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
16937     break;
16938   case 65: /*AnyTimeModification*/
16939     offset=dissect_gsm_map_ms_AnyTimeModificationArg(FALSE, tvb, offset, actx, tree, -1);
16940     break;
16941   case 66: /*readyForSM*/
16942     offset=dissect_gsm_map_sm_ReadyForSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16943     break;
16944   case 67: /*purgeMS*/
16945     offset=dissect_mc_message(tvb, offset, actx, tree,    
16946                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
16947                               FALSE, dissect_gsm_old_PurgeMSArgV2, -1, /*undefined*/
16948                               TRUE , dissect_gsm_map_ms_PurgeMS_Arg, -1);
16949     break;
16950   case 68: /*prepareHandover*/
16951     offset=dissect_mc_message(tvb, offset, actx, tree,    
16952                               FALSE, NULL, -1,
16953                               FALSE, dissect_gsm_old_PrepareHO_ArgOld, -1,
16954                               TRUE, dissect_gsm_map_ms_PrepareHO_Arg, -1);
16955     break;
16956   case 69: /*prepareSubsequentHandover*/
16957     offset=dissect_mc_message(tvb, offset, actx, tree,    
16958                               FALSE, NULL, -1,
16959                               FALSE, NULL, -1,
16960                               TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg, -1);
16961     break;
16962   case 70: /*provideSubscriberInfo*/
16963     offset=dissect_gsm_map_ms_ProvideSubscriberInfoArg(FALSE, tvb, offset, actx, tree, -1);
16964     break;
16965   case 71: /*anyTimeInterrogation*/
16966     offset=dissect_gsm_map_ms_AnyTimeInterrogationArg(FALSE, tvb, offset, actx, tree, -1);
16967     break;
16968   case 72: /*ss-InvocationNotificatio*/
16969     offset=dissect_gsm_map_ss_SS_InvocationNotificationArg(FALSE, tvb, offset, actx, tree, -1);
16970     break;
16971   case 73: /*setReportingState*/
16972     offset=dissect_gsm_map_ch_SetReportingStateArg(FALSE, tvb, offset, actx, tree, -1);
16973     break;
16974   case 74: /*statusReport*/
16975     offset=dissect_gsm_map_ch_StatusReportArg(FALSE, tvb, offset, actx, tree, -1);
16976     break;
16977   case 75: /*remoteUserFree*/
16978     offset=dissect_gsm_map_ch_RemoteUserFreeArg(FALSE, tvb, offset, actx, tree, -1);
16979     break;
16980   case 76: /*registerCC-Entry*/
16981     offset=dissect_gsm_map_ss_RegisterCC_EntryArg(FALSE, tvb, offset, actx, tree, -1);
16982     break;
16983   case 77: /*eraseCC-Entry*/
16984     offset=dissect_gsm_map_ss_EraseCC_EntryArg(FALSE, tvb, offset, actx, tree, -1);
16985     break;
16986   case 78: /*secureTransportClass1*/
16987   case 79: /*secureTransportClass1*/
16988   case 80: /*secureTransportClass1*/
16989   case 81: /*secureTransportClass1*/
16990     offset=dissect_gsm_old_SecureTransportArg(FALSE, tvb, offset, actx, tree, -1);
16991     break;
16992     /* undefined 82 */
16993   case 83: /*provideSubscriberLocation*/
16994     offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, actx, tree, -1);
16995     break;
16996   case 84: /*sendGroupCallInfo*/
16997     offset=dissect_gsm_map_gr_SendGroupCallInfoArg(FALSE, tvb, offset, actx, tree, -1);
16998     break;
16999   case 85: /*sendRoutingInfoForLCS*/
17000     offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(FALSE, tvb, offset, actx, tree, -1);
17001     break;
17002   case 86: /*subscriberLocationReport*/
17003     offset=dissect_gsm_map_lcs_SubscriberLocationReport_Arg(FALSE, tvb, offset, actx, tree, -1);
17004     break;
17005   case 87: /*ist-Alert*/
17006     offset=dissect_gsm_map_ch_IST_AlertArg(FALSE, tvb, offset, actx, tree, -1);
17007     break;
17008   case 88: /*ist-Command*/
17009     offset=dissect_gsm_map_ch_IST_CommandArg(FALSE, tvb, offset, actx, tree, -1);
17010     break;
17011   case 89: /*noteMM-Event*/
17012     offset=dissect_gsm_map_ms_NoteMM_EventArg(FALSE, tvb, offset, actx, tree, -1);
17013     break;
17014   case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
17015     offset=dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(FALSE, tvb, offset, actx, tree, -1);
17016     break;
17017   case 110: /*SS-protocol lcs-LocationUpdate*/
17018     offset=dissect_gsm_ss_LCS_LocationUpdateArg(FALSE, tvb, offset, actx, tree, -1);
17019     break;
17020   case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
17021     offset=dissect_gsm_ss_LCS_PeriodicLocationRequestArg(FALSE, tvb, offset, actx, tree, -1);
17022     break;
17023   case 112: /*SS-protocol lcs-AreaEventCancellation*/
17024     offset=dissect_gsm_ss_LCS_AreaEventCancellationArg(FALSE, tvb, offset, actx, tree, -1);
17025     break;
17026   case 113: /*SS-protocol lcs-AreaEventReport*/
17027     offset=dissect_gsm_ss_LCS_AreaEventReportArg(FALSE, tvb, offset, actx, tree, -1);
17028     break;
17029   case 114: /*SS-protocol lcs-AreaEventRequest*/
17030     offset=dissect_gsm_ss_LCS_AreaEventRequestArg(FALSE, tvb, offset, actx, tree, -1);
17031     break;
17032   case 115: /*SS-protocol lcs-MOLR*/
17033     offset=dissect_gsm_ss_LCS_MOLRArg(FALSE, tvb, offset, actx, tree, -1);
17034     break;
17035   case 116: /*SS-protocol lcs-LocationNotification*/
17036     offset=dissect_gsm_ss_LocationNotificationArg(FALSE, tvb, offset, actx, tree, -1);
17037     break;
17038   case 117: /*SS-protocol callDeflection*/
17039     offset=dissect_gsm_ss_CallDeflectionArg(FALSE, tvb, offset, actx, tree, -1);
17040     break;
17041   case 118: /*SS-protocol userUserService*/
17042     offset=dissect_gsm_ss_UserUserServiceArg(FALSE, tvb, offset, actx, tree, -1);
17043     break;
17044   case 119: /*SS-protocol accessRegisterCCEntry*/
17045     offset=dissect_gsm_ss_AccessRegisterCCEntryArg(FALSE, tvb, offset, actx, tree, -1);
17046     break;
17047   case 120: /*SS-protocol forwardCUG-Info*/
17048         application_context_version = 3;
17049     offset=dissect_gsm_ss_ForwardCUG_InfoArg(FALSE, tvb, offset, actx, tree, -1);
17050     break;
17051   case 121: /*SS-protocol splitMPTY no Argument*/
17052     break;
17053   case 122: /*SS-protocol retrieveMPTY no Argument*/
17054     break;
17055   case 123: /*SS-protocol holdMPTY no Argument*/
17056     break;
17057   case 124: /*SS-protocol buildMPTY no Argument*/
17058     break;
17059   case 125: /*SS-protocol forwardChargeAdvice*/
17060     offset=dissect_gsm_ss_ForwardChargeAdviceArg(FALSE, tvb, offset, actx, tree, -1);
17061     break;
17062   case 126: /*SS-protocol explicitCT no Argument*/
17063     break;
17064   default:
17065     cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
17066     proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
17067     expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",opcode);
17068   }
17069   return offset;
17070 }
17071
17072
17073 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
17074
17075   proto_item *cause;
17076         
17077   switch(opcode){
17078   case  2: /*updateLocation*/ 
17079     offset=dissect_mc_message(tvb, offset, actx, tree,    
17080                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
17081                               FALSE, dissect_gsm_map_ms_UpdateLocationRes, -1,
17082                               TRUE , NULL, -1);
17083     break;
17084   case  3: /*cancelLocation*/
17085     offset=dissect_gsm_map_ms_CancelLocationRes(FALSE, tvb, offset, actx, tree, -1);
17086     break;
17087   case  4: /*provideRoamingNumber*/
17088     offset=dissect_gsm_map_ch_ProvideRoamingNumberRes(FALSE, tvb, offset, actx, tree, -1);
17089     break;
17090   case  5: /*noteSubscriberDataModified*/
17091     offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(FALSE, tvb, offset, actx, tree, -1);
17092     break;
17093   case  6: /*resumeCallHandling*/
17094     offset=dissect_gsm_map_ch_ResumeCallHandlingRes(FALSE, tvb, offset, actx, tree, -1);
17095     break;
17096   case  7: /*insertSubscriberData*/
17097     offset=dissect_gsm_map_ms_InsertSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
17098     break;
17099   case  8: /*deleteSubscriberData*/
17100     offset=dissect_gsm_map_ms_DeleteSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
17101     break;
17102         /* TODO find out why this isn't in the ASN1 file
17103   case  9: sendParameters
17104     offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
17105     break;
17106         */
17107   case  10: /*registerSS*/
17108     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
17109     break;
17110   case  11: /*eraseSS*/
17111     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
17112     break;
17113   case 12: /*activateSS*/
17114     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
17115     break;
17116   case 13: /*deactivateSS*/
17117     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
17118     break;
17119   case 14: /*interrogateSS*/
17120     offset=dissect_gsm_map_ss_InterrogateSS_Res(FALSE, tvb, offset, actx, tree, -1);
17121     break;
17122   case 15: /*authenticationFailureReport*/
17123     offset=dissect_gsm_map_ms_AuthenticationFailureReportRes(FALSE, tvb, offset, actx, tree, -1);
17124     break;
17125   case 17: /*registerPassword*/
17126     /* change hf_gsm_map_ss_Code to something with password */
17127     offset=dissect_gsm_old_NewPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
17128     break;
17129   case 18: /*getPassword*/
17130     offset=dissect_gsm_old_CurrentPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_currentPassword);
17131     break;
17132   case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
17133     offset=dissect_gsm_ss_SS_UserData(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData);
17134     break;
17135   case 20: /*releaseResources*/
17136     offset=dissect_gsm_map_ch_ReleaseResourcesRes(FALSE, tvb, offset, actx, tree, -1);
17137     break;
17138   case 21: /*mt-ForwardSM-VGCS*/
17139     offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(FALSE, tvb, offset, actx, tree, -1);
17140     break;
17141   case 22: /*sendRoutingInfo*/ 
17142           if (application_context_version == 3){
17143                   /* If the tag is missing use SendRoutingInfoRes_U */
17144                   offset=dissect_mc_message(tvb, offset, actx, tree,    
17145                               FALSE, NULL, -1,
17146                               FALSE, dissect_gsm_map_ch_SendRoutingInfoRes_U, -1,
17147                               TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
17148           }else{
17149                   offset=dissect_mc_message(tvb, offset, actx, tree,    
17150                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
17151                               FALSE, dissect_gsm_old_SendRoutingInfoResV2, -1,
17152                               TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
17153           }
17154     break;
17155   case 23: /*updateGprsLocation*/
17156     offset=dissect_gsm_map_ms_UpdateGprsLocationRes(FALSE, tvb, offset, actx, tree, -1);
17157     break;
17158   case 24: /*sendRoutingInfoForGprs*/
17159     offset=dissect_gsm_map_ms_SendRoutingInfoForGprsRes(FALSE, tvb, offset, actx, tree, -1);
17160     break;
17161   case 25: /*failureReport*/
17162     offset=dissect_gsm_map_ms_FailureReportRes(FALSE, tvb, offset, actx, tree, -1);
17163     break;
17164   case 26: /*noteMsPresentForGprs*/
17165     offset=dissect_gsm_map_ms_NoteMsPresentForGprsRes(FALSE, tvb, offset, actx, tree, -1);
17166     break;
17167   case 29: /*sendEndSignal*/
17168           /* Taken from MAP-MobileServiceOperations{ 0 identified-organization (4) etsi (0) mobileDomain 
17169            * (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) version9 (9) }
17170            */
17171     offset=dissect_gsm_map_ms_SendEndSignal_Res(FALSE, tvb, offset, actx, tree, -1);
17172     break;
17173   case 31: /*provideSIWFSNumber*/
17174     offset=dissect_gsm_old_ProvideSIWFSNumberRes(FALSE, tvb, offset, actx, tree, -1);
17175     break;
17176   case 32: /*provideSIWFSSignallingModify*/
17177     offset=dissect_gsm_old_SIWFSSignallingModifyRes(FALSE, tvb, offset, actx, tree, -1);
17178     break;
17179   case 39: /*prepareGroupCall*/
17180     offset=dissect_gsm_map_gr_PrepareGroupCallRes(FALSE, tvb, offset, actx, tree, -1);
17181     break;
17182   case 40: /*sendGroupCallEndSignal*/
17183     offset=dissect_gsm_map_gr_SendGroupCallEndSignalRes(FALSE, tvb, offset, actx, tree, -1);
17184     break;
17185   case 43: /*checkIMEI*/ 
17186     offset=dissect_mc_message(tvb, offset, actx, tree,    
17187                               FALSE, dissect_gsm_map_ms_EquipmentStatus, hf_gsm_map_ms_equipmentStatus,
17188                               FALSE, dissect_gsm_map_ms_CheckIMEI_Res, -1,
17189                               TRUE,  NULL, -1);
17190     break;
17191   case 44: /*mt-forwardSM*/
17192     offset=dissect_gsm_map_sm_MT_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1);
17193     break;
17194   case 45: /*sendRoutingInfoForSM*/
17195     offset=dissect_gsm_map_sm_RoutingInfoForSM_Res(FALSE, tvb, offset, actx, tree, -1);
17196     break;
17197   case 46: /*mo-forwardSM*/
17198     offset=dissect_gsm_map_sm_MO_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1);
17199     break;
17200   case 47: /*reportSM-DeliveryStatus*/
17201     offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusRes(FALSE, tvb, offset, actx, tree, -1);
17202     break;
17203   case 48: /*noteSubscriberPresent*/
17204     break;
17205   case 50: /*activateTraceMode*/
17206     offset=dissect_gsm_map_om_ActivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1);
17207     break;
17208   case 51: /*deactivateTraceMode*/
17209     offset=dissect_gsm_map_om_DeactivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1);
17210     break;
17211   case 55: /*sendIdentification */
17212     offset=dissect_mc_message(tvb, offset, actx, tree,    
17213                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
17214                               FALSE, dissect_gsm_old_SendIdentificationResV2, -1,/*undefined*/
17215                               TRUE,  dissect_gsm_map_ms_SendIdentificationRes, -1);
17216     break;
17217   case 56: /*sendAuthenticationInfo*/ 
17218     offset=dissect_mc_message(tvb, offset, actx, tree,    
17219                               FALSE, NULL, -1,
17220                               FALSE, dissect_gsm_old_SendAuthenticationInfoResOld, -1,
17221                               TRUE , dissect_gsm_map_ms_SendAuthenticationInfoRes, -1);
17222     break;
17223   case 57: /*restoreData*/
17224     offset=dissect_gsm_map_ms_RestoreDataRes(FALSE, tvb, offset, actx, tree, -1);
17225     break;
17226   case 58: /*sendIMSI*/
17227     offset=dissect_gsm_map_IMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_ms_imsi);
17228     break;
17229   case 59: /*unstructuredSS-Request*/
17230     offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1);
17231     break;
17232   case 60: /*unstructuredSS-Request*/
17233     offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1);
17234     break;
17235   case 61: /*unstructuredSS-Notify*/
17236     /* TRUE ? */
17237     proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
17238     break;
17239   case 62: /*AnyTimeSubscriptionInterrogation*/
17240     offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationRes(FALSE, tvb, offset, actx, tree, -1);
17241     break;
17242   case 64: /*alertServiceCentre*/
17243     /* TRUE */
17244     break;
17245   case 65: /*AnyTimeModification*/
17246     offset=dissect_gsm_map_ms_AnyTimeModificationRes(FALSE, tvb, offset, actx, tree, -1);
17247     break;
17248   case 66: /*readyForSM*/
17249     offset=dissect_gsm_map_sm_ReadyForSM_Res(FALSE, tvb, offset, actx, tree, -1);
17250     break;
17251   case 67: /*purgeMS*/
17252     offset=dissect_gsm_map_ms_PurgeMS_Res(FALSE, tvb, offset, actx, tree, -1);
17253     break;
17254   case 68: /*prepareHandover*/ 
17255     offset=dissect_mc_message(tvb, offset, actx, tree,    
17256                               FALSE, NULL, -1,
17257                               FALSE, dissect_gsm_old_PrepareHO_ResOld, -1,
17258                               TRUE , dissect_gsm_map_ms_PrepareHO_Res, -1);
17259     break;
17260   case 69: /*prepareSubsequentHandover*/
17261     offset=dissect_mc_message(tvb, offset, actx, tree,    
17262                               FALSE, NULL, -1,
17263                               FALSE, NULL, -1,
17264                               TRUE , dissect_gsm_map_ms_PrepareSubsequentHO_Res, -1);
17265     break;
17266   case 70: /*provideSubscriberInfo*/
17267     offset=dissect_gsm_map_ms_ProvideSubscriberInfoRes(FALSE, tvb, offset, actx, tree, -1);
17268     break;
17269   case 71: /*anyTimeInterrogation*/
17270     offset=dissect_gsm_map_ms_AnyTimeInterrogationRes(FALSE, tvb, offset, actx, tree, -1);
17271     break;
17272   case 72: /*ss-InvocationNotificatio*/
17273     offset=dissect_gsm_map_ss_SS_InvocationNotificationRes(FALSE, tvb, offset, actx, tree, -1);
17274     break;
17275   case 73: /*setReportingState*/
17276     offset=dissect_gsm_map_ch_SetReportingStateRes(FALSE, tvb, offset, actx, tree, -1);
17277     break;
17278   case 74: /*statusReport*/
17279     offset=dissect_gsm_map_ch_StatusReportRes(FALSE, tvb, offset, actx, tree, -1);
17280     break;
17281   case 75: /*remoteUserFree*/
17282     offset=dissect_gsm_map_ch_RemoteUserFreeRes(FALSE, tvb, offset, actx, tree, -1);
17283     break;
17284   case 76: /*registerCC-Entry*/
17285     offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
17286     break;
17287   case 77: /*eraseCC-Entry*/
17288     offset=dissect_gsm_map_ss_EraseCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
17289     break;
17290   case 78: /*secureTransportClass1*/
17291   case 79: /*secureTransportClass2*/
17292   case 80: /*secureTransportClass3*/
17293   case 81: /*secureTransportClass4*/
17294     offset=dissect_gsm_old_SecureTransportRes(FALSE, tvb, offset, actx, tree, -1);
17295     break;
17296   case 83: /*provideSubscriberLocation*/
17297     offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(FALSE, tvb, offset, actx, tree, -1);
17298     break;
17299   case 84: /*sendGroupCallInfo*/
17300     offset=dissect_gsm_map_gr_SendGroupCallInfoRes(FALSE, tvb, offset, actx, tree, -1);
17301     break;
17302   case 85: /*sendRoutingInfoForLCS*/
17303     offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Res(FALSE, tvb, offset, actx, tree, -1);
17304     break;
17305   case 86: /*subscriberLocationReport*/
17306     offset=dissect_gsm_map_lcs_SubscriberLocationReport_Res(FALSE, tvb, offset, actx, tree, -1);
17307     break;
17308   case 87: /*ist-Alert*/
17309     offset=dissect_gsm_map_ch_IST_AlertRes(FALSE, tvb, offset, actx, tree, -1);
17310     break;
17311   case 88: /*ist-Command*/
17312     offset=dissect_gsm_map_ch_IST_CommandRes(FALSE, tvb, offset, actx, tree, -1);
17313     break;
17314   case 89: /*noteMM-Event*/
17315     offset=dissect_gsm_map_ms_NoteMM_EventRes(FALSE, tvb, offset, actx, tree, -1);
17316     break;
17317   case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
17318           /* No parameter */
17319     break;
17320   case 110: /*SS-protocol lcs-LocationUpdate*/
17321           offset=dissect_gsm_ss_LCS_LocationUpdateRes(FALSE, tvb, offset, actx, tree, -1);
17322     break;
17323   case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
17324     offset=dissect_gsm_ss_LCS_PeriodicLocationRequestRes(FALSE, tvb, offset, actx, tree, -1);
17325     break;
17326   case 112: /*SS-protocol lcs-AreaEventCancellation*/
17327     break;
17328   case 113: /*SS-protocol lcs-AreaEventReport*/
17329     break;
17330   case 114: /*SS-protocol lcs-AreaEventRequest No RESULT data*/
17331     break;
17332   case 115: /*SS-protocol lcs-MOLR*/
17333     offset=dissect_gsm_ss_LCS_MOLRRes(FALSE, tvb, offset, actx, tree, -1);
17334     break;
17335   case 116: /*SS-protocol lcs-LocationNotification*/
17336     offset=dissect_gsm_ss_LocationNotificationRes(FALSE, tvb, offset, actx, tree, -1);
17337     break;
17338   case 117: /*SS-protocol callDeflection no RESULT*/
17339     break;
17340   case 118: /*SS-protocol userUserService no RESULT*/
17341     break;
17342   case 119: /*SS-protocol accessRegisterCCEntry*/
17343     offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
17344     break;
17345   case 120: /*SS-protocol forwardCUG-Info*/
17346           /* No RETURN RESULT*/
17347     break;
17348   case 121: /*SS-protocol splitMPTY no RESULT*/
17349     break;
17350   case 122: /*SS-protocol retrieveMPTY no RESULT*/
17351     break;
17352   case 123: /*SS-protocol holdMPTY no RESULT*/
17353     break;
17354   case 124: /*SS-protocol buildMPTY no RESULT*/
17355     break;
17356   case 125: /*SS-protocol forwardChargeAdvice no RESULT*/
17357     break;
17358   case 126: /*SS-protocol explicitCT no RESULT*/
17359     break;
17360
17361  default:
17362    cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
17363    proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
17364    expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",opcode);
17365   }
17366   return offset;
17367 }
17368
17369
17370
17371 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
17372   proto_item *cause;
17373         
17374   switch(errorCode){
17375   case 1: /* UnknownSubscriberParam */
17376           offset=dissect_gsm_map_er_UnknownSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
17377           break;
17378   case 4: /* SecureTransportErrorParam */
17379           offset=dissect_gsm_old_SecureTransportErrorParam(FALSE, tvb, offset, actx, tree, -1);
17380           break;
17381   case 5: /* UnidentifiedSubParam */
17382           offset=dissect_gsm_map_er_UnidentifiedSubParam(FALSE, tvb, offset, actx, tree, -1);
17383           break;
17384   case 6: /* AbsentSubscriberSM-Param */
17385           offset=dissect_gsm_map_er_AbsentSubscriberSM_Param(FALSE, tvb, offset, actx, tree, -1);
17386           break;
17387   case 8: /* RoamingNotAllowedParam */
17388           offset=dissect_gsm_map_er_RoamingNotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
17389           break;
17390   case 9: /* IllegalSubscriberParam */
17391           offset=dissect_gsm_map_er_IllegalSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
17392           break;
17393   case 10: /* BearerServNotProvParam */
17394           offset=dissect_gsm_map_er_BearerServNotProvParam(FALSE, tvb, offset, actx, tree, -1);
17395           break;
17396   case 11: /* TeleservNotProvParam */
17397           offset=dissect_gsm_map_er_TeleservNotProvParam(FALSE, tvb, offset, actx, tree, -1);
17398           break;
17399   case 12: /* IllegalEquipmentParam */
17400           offset=dissect_gsm_map_er_IllegalEquipmentParam(FALSE, tvb, offset, actx, tree, -1);
17401           break;
17402   case 13: /* CallBarredParam */
17403           offset=dissect_gsm_map_er_CallBarredParam(FALSE, tvb, offset, actx, tree, -1);
17404           break;
17405   case 14: /* ForwardingViolationParam */
17406           offset=dissect_gsm_map_er_ForwardingViolationParam(FALSE, tvb, offset, actx, tree, -1);
17407           break;
17408   case 15: /* CUG-RejectParam */
17409           offset=dissect_gsm_map_er_CUG_RejectParam(FALSE, tvb, offset, actx, tree, -1);
17410           break;
17411   case 16: /* IllegalSS-OperationParam */
17412           offset=dissect_gsm_map_er_IllegalSS_OperationParam(FALSE, tvb, offset, actx, tree, -1);
17413           break;
17414   case 17: /* SS-ErrorStatus */
17415           offset=dissect_gsm_map_ss_SS_Status(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_ss_Status);
17416           break;
17417   case 18: /* SS-NotAvailableParam */
17418           offset=dissect_gsm_map_er_SS_NotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
17419           break;
17420   case 19: /* SS-SubscriptionViolationParam */
17421           offset=dissect_gsm_map_er_SS_SubscriptionViolationParam(FALSE, tvb, offset, actx, tree, -1);
17422           break;
17423   case 20: /* SS-IncompatibilityCause */
17424           offset=dissect_gsm_map_er_SS_IncompatibilityCause(FALSE, tvb, offset, actx, tree, -1);
17425           break;
17426   case 21: /* FacilityNotSupParam */
17427           offset=dissect_gsm_map_er_FacilityNotSupParam(FALSE, tvb, offset, actx, tree, -1);
17428           break;
17429   case 22: /* OngoingGroupCallParam */
17430           offset=dissect_gsm_map_er_OngoingGroupCallParam(FALSE, tvb, offset, actx, tree, -1);
17431           break;
17432   case 27: /* AbsentSubscriberParam */
17433           offset=dissect_gsm_map_er_AbsentSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
17434           break;
17435   case 28: /* IncompatibleTerminalParam */
17436           offset=dissect_gsm_map_er_IncompatibleTerminalParam(FALSE, tvb, offset, actx, tree, -1);
17437           break;
17438   case 29: /* ShortTermDenialParam */
17439           offset=dissect_gsm_map_er_ShortTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
17440           break;
17441   case 30: /* LongTermDenialParam */
17442           offset=dissect_gsm_map_er_LongTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
17443           break;
17444   case 31: /* SubBusyForMT-SMS-Param */
17445           offset=dissect_gsm_map_er_SubBusyForMT_SMS_Param(FALSE, tvb, offset, actx, tree, -1);
17446           break;
17447   case 32: /* SM-DeliveryFailureCause */
17448           offset=dissect_gsm_map_er_SM_DeliveryFailureCause(FALSE, tvb, offset, actx, tree, -1);
17449           break;
17450   case 33: /* MessageWaitListFullParam */
17451           offset=dissect_gsm_map_er_MessageWaitListFullParam(FALSE, tvb, offset, actx, tree, -1);
17452           break;
17453   case 34: /* SystemFailureParam */
17454           offset=dissect_gsm_map_er_SystemFailureParam(FALSE, tvb, offset, actx, tree, -1);
17455           break;
17456   case 35: /* DataMissingParam */
17457           offset=dissect_gsm_map_er_DataMissingParam(FALSE, tvb, offset, actx, tree, -1);
17458           break;
17459   case 36: /* UnexpectedDataParam */
17460           offset=dissect_gsm_map_er_UnexpectedDataParam(FALSE, tvb, offset, actx, tree, -1);
17461           break;
17462   case 37: /* PW-RegistrationFailureCause */
17463           offset=dissect_gsm_map_er_PW_RegistrationFailureCause(FALSE, tvb, offset, actx, tree, -1);
17464           break;
17465   case 39: /* NoRoamingNbParam */
17466           offset=dissect_gsm_map_er_NoRoamingNbParam(FALSE, tvb, offset, actx, tree, -1);
17467           break;
17468   case 40: /* TracingBufferFullParam */
17469           offset=dissect_gsm_map_er_TracingBufferFullParam(FALSE, tvb, offset, actx, tree, -1);
17470           break;
17471   case 42: /* TargetCellOutsideGCA-Param */
17472           offset=dissect_gsm_map_er_TargetCellOutsideGCA_Param(FALSE, tvb, offset, actx, tree, -1);
17473           break;
17474   case 44: /* NumberChangedParam */
17475           offset=dissect_gsm_map_er_NumberChangedParam(FALSE, tvb, offset, actx, tree, -1);
17476           break;
17477   case 45: /* BusySubscriberParam */
17478           offset=dissect_gsm_map_er_BusySubscriberParam(FALSE, tvb, offset, actx, tree, -1);
17479           break;
17480   case 46: /* NoSubscriberReplyParam */
17481           offset=dissect_gsm_map_er_NoSubscriberReplyParam(FALSE, tvb, offset, actx, tree, -1);
17482           break;
17483   case 47: /* ForwardingFailedParam */
17484           offset=dissect_gsm_map_er_ForwardingFailedParam(FALSE, tvb, offset, actx, tree, -1);
17485           break;
17486   case 48: /* OR-NotAllowedParam */
17487           offset=dissect_gsm_map_er_OR_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
17488           break;
17489   case 49: /* ATI-NotAllowedParam */
17490           offset=dissect_gsm_map_er_ATI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
17491           break;
17492   case 50: /* NoGroupCallNbParam */
17493           offset=dissect_gsm_map_er_NoGroupCallNbParam(FALSE, tvb, offset, actx, tree, -1);
17494           break;
17495   case 51: /* ResourceLimitationParam */
17496           offset=dissect_gsm_map_er_ResourceLimitationParam(FALSE, tvb, offset, actx, tree, -1);
17497           break;
17498   case 52: /* UnauthorizedRequestingNetwork-Param */
17499           offset=dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(FALSE, tvb, offset, actx, tree, -1);
17500           break;
17501   case 53: /* UnauthorizedLCSClient-Param */
17502           offset=dissect_gsm_map_er_UnauthorizedLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
17503           break;
17504   case 54: /* PositionMethodFailure-Param */
17505           offset=dissect_gsm_map_er_PositionMethodFailure_Param(FALSE, tvb, offset, actx, tree, -1);
17506           break;
17507   case 58: /* UnknownOrUnreachableLCSClient-Param */
17508           offset=dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
17509           break;
17510   case 59: /* MM-EventNotSupported-Param */
17511           offset=dissect_gsm_map_er_MM_EventNotSupported_Param(FALSE, tvb, offset, actx, tree, -1);
17512           break;
17513   case 60: /* ATSI-NotAllowedParam */
17514           offset=dissect_gsm_map_er_ATSI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
17515           break;
17516   case 61: /* ATM-NotAllowedParam */
17517           offset=dissect_gsm_map_er_ATM_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
17518           break;
17519   case 62: /* InformationNotAvailableParam */
17520           offset=dissect_gsm_map_er_InformationNotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
17521           break;
17522   default:
17523     cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnErrorData blob");
17524     proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
17525     expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",errorCode);
17526     break;
17527   }
17528   return offset;
17529 }
17530
17531 /* Private extension container for PLMN Data */
17532 static void dissect_gsm_mapext_PlmnContainer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) {
17533   proto_item    *item=NULL;
17534   proto_tree    *tree=NULL;
17535   asn1_ctx_t asn1_ctx;
17536   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);  
17537   /* create display subtree for the protocol */
17538   if(parent_tree){
17539     item = proto_tree_add_text(parent_tree, tvb, 0, -1, "MAP Ext. Plmn Container");
17540     tree = proto_item_add_subtree(item, ett_gsm_old_PlmnContainer_U);
17541   }
17542   dissect_gsm_old_PlmnContainer(FALSE, tvb, 0, &asn1_ctx, tree, -1);
17543 }
17544
17545
17546 static guint8 gsmmap_pdu_type = 0;
17547 static guint8 gsm_map_pdu_size = 0;
17548
17549 static int
17550 dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) {
17551
17552   char *version_ptr;
17553   struct tcap_private_t * p_private_tcap;
17554
17555   opcode = 0;
17556   application_context_version = 0;
17557   if (actx->pinfo->private_data != NULL){
17558     p_private_tcap=actx->pinfo->private_data;
17559     if (p_private_tcap->acv==TRUE ){
17560       version_ptr = strrchr(p_private_tcap->oid,'.');
17561       if (version_ptr){
17562                   application_context_version = atoi(version_ptr+1);
17563           }
17564     }
17565   }
17566
17567   gsmmap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
17568   /* Get the length and add 2 */
17569   gsm_map_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
17570
17571   if (check_col(actx->pinfo->cinfo, COL_INFO)){
17572     col_set_str(actx->pinfo->cinfo, COL_INFO, val_to_str(gsmmap_pdu_type, gsm_old_Component_vals, "Unknown GSM-MAP PDU (%u)"));
17573         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " ");
17574   }
17575   offset = dissect_gsm_old_Component(FALSE, tvb, 0, actx, tree, hf_gsm_map_old_Component_PDU);
17576   return offset;
17577 /*
17578   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
17579                               GSMMAPPDU_choice, hf_index, ett_gsm_map_GSMMAPPDU, NULL);
17580 */
17581
17582   return offset;
17583 }
17584
17585 static void
17586 dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
17587 {
17588     proto_item          *item=NULL;
17589     proto_tree          *tree=NULL;
17590     /* Used for gsm_map TAP */
17591     static              gsm_map_tap_rec_t tap_rec;
17592     gint                op_idx;
17593         asn1_ctx_t asn1_ctx;
17594
17595         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
17596
17597
17598     if (check_col(pinfo->cinfo, COL_PROTOCOL))
17599     {
17600         col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
17601     }
17602
17603     top_tree = parent_tree;
17604
17605     /* create display subtree for the protocol */
17606     if(parent_tree){
17607         item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, FALSE);
17608         tree = proto_item_add_subtree(item, ett_gsm_map);
17609     }
17610
17611     dissect_gsm_map_GSMMAPPDU(FALSE, tvb, 0, &asn1_ctx, tree, -1);
17612     match_strval_idx(opcode, gsm_map_opr_code_strings, &op_idx);
17613
17614     tap_rec.invoke = FALSE;
17615     if ( gsmmap_pdu_type  == 1 )
17616         tap_rec.invoke = TRUE;
17617     tap_rec.opr_code_idx = op_idx;
17618     tap_rec.size = gsm_map_pdu_size;
17619
17620     tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
17621 }
17622
17623 const value_string ssCode_vals[] = {
17624   { 0x00, "allSS - all SS" },
17625   { 0x10 ,"allLineIdentificationSS - all line identification SS" },
17626   { 0x11 ,"clip - calling line identification presentation" },
17627   { 0x12 ,"clir - calling line identification restriction" },
17628   { 0x13 ,"colp - connected line identification presentation" },
17629   { 0x14 ,"colr - connected line identification restriction" },
17630   { 0x15 ,"mci - malicious call identification" },
17631   { 0x18 ,"allNameIdentificationSS - all name indentification SS" },
17632   { 0x19 ,"cnap - calling name presentation" },
17633   { 0x20 ,"allForwardingSS - all forwarding SS" },
17634   { 0x21 ,"cfu - call forwarding unconditional" },
17635   { 0x28 ,"allCondForwardingSS - all conditional forwarding SS" },
17636   { 0x29 ,"cfb - call forwarding busy" },
17637   { 0x2a ,"cfnry - call forwarding on no reply" },
17638   { 0x2b ,"cfnrc - call forwarding on mobile subscriber not reachable" },
17639   { 0x24 ,"cd - call deflection" },
17640   { 0x30 ,"allCallOfferingSS - all call offering SS includes also all forwarding SS" },
17641   { 0x31 ,"ect - explicit call transfer" },
17642   { 0x32 ,"mah - mobile access hunting" },
17643   { 0x40 ,"allCallCompletionSS - all Call completion SS" },
17644   { 0x41 ,"cw - call waiting" },
17645   { 0x42 ,"hold - call hold" },
17646   { 0x43 ,"ccbs-A - completion of call to busy subscribers, originating side" },
17647   { 0x44 ,"ccbs-B - completion of call to busy subscribers, destination side" },
17648   { 0x45 ,"mc - multicall" },
17649   { 0x50 ,"allMultiPartySS - all multiparty SS" },
17650   { 0x51 ,"multiPTY - multiparty" },
17651   { 0x60 ,"allCommunityOfInterestSS - all community of interest SS" },
17652   { 0x61 ,"cug - closed user group" },
17653   { 0x70 ,"allChargingSS - all charging SS" },
17654   { 0x71 ,"aoci - advice of charge information" },
17655   { 0x72 ,"aocc - advice of charge charging" },
17656   { 0x80 ,"allAdditionalInfoTransferSS - all additional information transfer SS" },
17657   { 0x81 ,"uus1 - UUS1 user-to-user signalling" },
17658   { 0x82 ,"uus2 - UUS2 user-to-user signalling" },
17659   { 0x83 ,"uus3 - UUS3 user-to-user signalling" },
17660   { 0x90 ,"allCallRestrictionSS - all Callrestriction SS" },
17661   { 0x91 ,"barringOfOutgoingCalls" },
17662   { 0x92 ,"baoc - barring of all outgoing calls" },
17663   { 0x93 ,"boic - barring of outgoing international calls" },
17664   { 0x94 ,"boicExHC - barring of outgoing international calls except those directed to the home PLMN" },
17665   { 0x99 ,"barringOfIncomingCalls" },
17666   { 0x9a ,"baic - barring of all incoming calls" },
17667   { 0x9b ,"bicRoam - barring of incoming calls when roaming outside home PLMN Country" },
17668   { 0xf0 ,"allPLMN-specificSS" },
17669   { 0xa0 ,"allCallPrioritySS - all call priority SS" },
17670   { 0xa1 ,"emlpp - enhanced Multilevel Precedence Pre-emption (EMLPP) service" },
17671   { 0xb0 ,"allLCSPrivacyException - all LCS Privacy Exception Classes" },
17672   { 0xb1 ,"universal - allow location by any LCS client" },
17673   { 0xb2 ,"callrelated - allow location by any value added LCS client to which a call is established from the target MS" },
17674   { 0xb3 ,"callunrelated - allow location by designated external value added LCS clients" },
17675   { 0xb4 ,"plmnoperator - allow location by designated PLMN operator LCS clients" },
17676   { 0xb5 ,"serviceType - allow location by LCS clients of a designated LCS service type" },
17677   { 0xc0 ,"allMOLR-SS - all Mobile Originating Location Request Classes" },
17678   { 0xc1 ,"basicSelfLocation - allow an MS to request its own location" },
17679   { 0xc2 ,"autonomousSelfLocation - allow an MS to perform self location without interaction with the PLMN for a predetermined period of time" },
17680   { 0xc3 ,"transferToThirdParty - allow an MS to request transfer of its location to another LCS client" },
17681
17682   { 0xf1 ,"plmn-specificSS-1" },
17683   { 0xf2 ,"plmn-specificSS-2" },
17684   { 0xf3 ,"plmn-specificSS-3" },
17685   { 0xf4 ,"plmn-specificSS-4" },
17686   { 0xf5 ,"plmn-specificSS-5" },
17687   { 0xf6 ,"plmn-specificSS-6" },
17688   { 0xf7 ,"plmn-specificSS-7" },
17689   { 0xf8 ,"plmn-specificSS-8" },
17690   { 0xf9 ,"plmn-specificSS-9" },
17691   { 0xfa ,"plmn-specificSS-a" },
17692   { 0xfb ,"plmn-specificSS-b" },
17693   { 0xfc ,"plmn-specificSS-c" },
17694   { 0xfd ,"plmn-specificSS-d" },
17695   { 0xfe ,"plmn-specificSS-e" },
17696   { 0xff ,"plmn-specificSS-f" },
17697   { 0, NULL }
17698 };
17699
17700 static const value_string Teleservice_vals[] = {
17701 {0x00, "allTeleservices" },
17702 {0x10, "allSpeechTransmissionServices" },
17703 {0x11, "telephony" },
17704 {0x12, "emergencyCalls" },
17705 {0x20, "allShortMessageServices" },
17706 {0x21, "shortMessageMT-PP" },
17707 {0x22, "shortMessageMO-PP" },
17708 {0x60, "allFacsimileTransmissionServices" },
17709 {0x61, "facsimileGroup3AndAlterSpeech" },
17710 {0x62, "automaticFacsimileGroup3" },
17711 {0x63, "facsimileGroup4" },
17712
17713 {0x70, "allDataTeleservices" },
17714 {0x80, "allTeleservices-ExeptSMS" },
17715
17716 {0x90, "allVoiceGroupCallServices" },
17717 {0x91, "voiceGroupCall" },
17718 {0x92, "voiceBroadcastCall" },
17719
17720 {0xd0, "allPLMN-specificTS" },
17721 {0xd1, "plmn-specificTS-1" },
17722 {0xd2, "plmn-specificTS-2" },
17723 {0xd3, "plmn-specificTS-3" },
17724 {0xd4, "plmn-specificTS-4" },
17725 {0xd5, "plmn-specificTS-5" },
17726 {0xd6, "plmn-specificTS-6" },
17727 {0xd7, "plmn-specificTS-7" },
17728 {0xd8, "plmn-specificTS-8" },
17729 {0xd9, "plmn-specificTS-9" },
17730 {0xda, "plmn-specificTS-A" },
17731 {0xdb, "plmn-specificTS-B" },
17732 {0xdc, "plmn-specificTS-C" },
17733 {0xdd, "plmn-specificTS-D" },
17734 {0xde, "plmn-specificTS-E" },
17735 {0xdf, "plmn-specificTS-F" },
17736   { 0, NULL }
17737 };
17738
17739 static const value_string Bearerservice_vals[] = {
17740 {0x00, "allBearerServices" },
17741 {0x10, "allDataCDA-Services" },
17742 {0x11, "dataCDA-300bps" },
17743 {0x12, "dataCDA-1200bps" },
17744 {0x13, "dataCDA-1200-75bps" },
17745 {0x14, "dataCDA-2400bps" },
17746 {0x15, "dataCDA-4800bps" },
17747 {0x16, "dataCDA-9600bps" },
17748 {0x17, "general-dataCDA" },
17749
17750 {0x18, "allDataCDS-Services" },
17751 {0x1A, "dataCDS-1200bps" },
17752 {0x1C, "dataCDS-2400bps" },
17753 {0x1D, "dataCDS-4800bps" },
17754 {0x1E, "dataCDS-9600bps" },
17755 {0x1F, "general-dataCDS" },
17756
17757 {0x20, "allPadAccessCA-Services" },
17758 {0x21, "padAccessCA-300bps" },
17759 {0x22, "padAccessCA-1200bps" },
17760 {0x23, "padAccessCA-1200-75bps" },
17761 {0x24, "padAccessCA-2400bps" },
17762 {0x25, "padAccessCA-4800bps" },
17763 {0x26, "padAccessCA-9600bps" },
17764 {0x27, "general-padAccessCA" },
17765
17766 {0x28, "allDataPDS-Services" },
17767 {0x2C, "dataPDS-2400bps" },
17768 {0x2D, "dataPDS-4800bps" },
17769 {0x2E, "dataPDS-9600bps" },
17770 {0x2F, "general-dataPDS" },
17771
17772 {0x30, "allAlternateSpeech-DataCDA" },
17773 {0x38, "allAlternateSpeech-DataCDS" },
17774 {0x40, "allSpeechFollowedByDataCDA" },
17775 {0x48, "allSpeechFollowedByDataCDS" },
17776
17777 {0x50, "allDataCircuitAsynchronous" },
17778 {0x60, "allAsynchronousServices" },
17779 {0x58, "allDataCircuitSynchronous" },
17780 {0x68, "allSynchronousServices" },
17781
17782 {0xD0, "allPLMN-specificBS" },
17783 {0xD1, "plmn-specificBS-1" },
17784 {0xD2, "plmn-specificBS-2" },
17785 {0xD3, "plmn-specificBS-3" },
17786 {0xD4, "plmn-specificBS-4" },
17787 {0xD5, "plmn-specificBS-5" },
17788 {0xD6, "plmn-specificBS-6" },
17789 {0xD7, "plmn-specificBS-7" },
17790 {0xD8, "plmn-specificBS-8" },
17791 {0xD9, "plmn-specificBS-9" },
17792 {0xDA, "plmn-specificBS-A" },
17793 {0xDB, "plmn-specificBS-B" },
17794 {0xDC, "plmn-specificBS-C" },
17795 {0xDD, "plmn-specificBS-D" },
17796 {0xDE, "plmn-specificBS-E" },
17797 {0xDF, "plmn-specificBS-F" },
17798
17799 { 0, NULL }
17800 };
17801
17802 /* ForwardingOptions 
17803
17804 -- bit 8: notification to forwarding party
17805 -- 0 no notification
17806 -- 1 notification
17807 */
17808 static const true_false_string notification_value  = {
17809   "Notification",
17810   "No notification"
17811 };
17812 /*
17813 -- bit 7: redirecting presentation
17814 -- 0 no presentation
17815 -- 1 presentation
17816 */
17817 static const true_false_string redirecting_presentation_value  = {
17818   "Presentation",
17819   "No presentationn"
17820 };
17821 /*
17822 -- bit 6: notification to calling party
17823 -- 0 no notification
17824 -- 1 notification
17825 */
17826 /*
17827 -- bit 5: 0 (unused)
17828 -- bits 43: forwarding reason
17829 -- 00 ms not reachable
17830 -- 01 ms busy
17831 -- 10 no reply
17832 -- 11 unconditional when used in a SRI Result,
17833 -- or call deflection when used in a RCH Argument
17834 */
17835 static const value_string forwarding_reason_values[] = {
17836 {0x0, "ms not reachable" },
17837 {0x1, "ms busy" },
17838 {0x2, "no reply" },
17839 {0x3, "unconditional when used in a SRI Result or call deflection when used in a RCH Argument" },
17840 { 0, NULL }
17841 };
17842 /*
17843 -- bits 21: 00 (unused)
17844 */
17845
17846 static const value_string pdp_type_org_values[] = {
17847 {0x0, "ETSI" },
17848 {0x1, "IETF" },
17849 {0xf, "Empty PDP type" },
17850 { 0, NULL }
17851 };
17852
17853 static const value_string etsi_pdp_type_number_values[] = {
17854 {0x0, "Reserved, used in earlier version of this protocol" },
17855 {0x1, "PPP" },
17856 { 0, NULL }
17857 };
17858
17859 static const value_string ietf_pdp_type_number_values[] = {
17860 {0x21, "IPv4 Address" },
17861 {0x57, "IPv6 Address" },
17862 { 0, NULL }
17863 };
17864
17865 /*
17866 ChargingCharacteristics ::= OCTET STRING (SIZE (2))
17867 -- Octets are coded according to 3GPP TS 32.015.
17868 -- From 3GPP TS 32.015.
17869 --
17870 -- Descriptions for the bits of the flag set:
17871 --
17872 -- Bit 1: H (Hot billing) := '00000001'B
17873 -- Bit 2: F (Flat rate) := '00000010'B
17874 -- Bit 3: P (Prepaid service) := '00000100'B
17875 -- Bit 4: N (Normal billing) := '00001000'B
17876 -- Bit 5: - (Reserved, set to 0) := '00010000'B
17877 -- Bit 6: - (Reserved, set to 0) := '00100000'B
17878 -- Bit 7: - (Reserved, set to 0) := '01000000'B
17879 -- Bit 8: - (Reserved, set to 0) := '10000000'B
17880 */
17881 static const value_string chargingcharacteristics_values[] = {
17882 {0x1, "H (Hot billing)" },
17883 {0x2, "F (Flat rate)" },
17884 {0x4, "P (Prepaid service)" },
17885 {0x8, "N (Normal billing)" },
17886 { 0, NULL }
17887 };
17888
17889 /*--- proto_reg_handoff_gsm_map ---------------------------------------*/
17890 static void range_delete_callback(guint32 ssn)
17891 {
17892     if (ssn) {
17893         delete_itu_tcap_subdissector(ssn, map_handle);
17894     }
17895 }
17896
17897 static void range_add_callback(guint32 ssn)
17898 {
17899     if (ssn) {
17900         add_itu_tcap_subdissector(ssn, map_handle);
17901     }
17902 }
17903
17904 void proto_reg_handoff_gsm_map(void) {
17905
17906     static gboolean map_prefs_initialized = FALSE;
17907     static range_t *ssn_range;
17908
17909     if (!map_prefs_initialized) {
17910         map_prefs_initialized = TRUE;
17911         data_handle = find_dissector("data");
17912         ranap_handle = find_dissector("ranap");
17913         dtap_handle = find_dissector("gsm_a_dtap");
17914
17915         map_handle = find_dissector("gsm_map");
17916         register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map,"networkLocUpContext-v3");  
17917         register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"networkLocUpContext-v2" );
17918         register_ber_oid_dissector_handle("0.4.0.0.1.0.1.1", map_handle, proto_gsm_map,"networkLocUpContext-v1" );
17919         register_ber_oid_dissector_handle("0.4.0.0.1.0.2.3", map_handle, proto_gsm_map,"locationCancellationContext-v3" );
17920         register_ber_oid_dissector_handle("0.4.0.0.1.0.2.2", map_handle, proto_gsm_map,"locationCancellationContext-v2" );
17921         register_ber_oid_dissector_handle("0.4.0.0.1.0.2.1", map_handle, proto_gsm_map,"locationCancellationContext-v1" );
17922         register_ber_oid_dissector_handle("0.4.0.0.1.0.3.3", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v3" );
17923         register_ber_oid_dissector_handle("0.4.0.0.1.0.3.2", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v2" );
17924         register_ber_oid_dissector_handle("0.4.0.0.1.0.3.1", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v1" );
17925         register_ber_oid_dissector_handle("0.4.0.0.1.0.4.3", map_handle, proto_gsm_map,"istAlertingContext-v3" );
17926         register_ber_oid_dissector_handle("0.4.0.0.1.0.5.3", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v3" );
17927         register_ber_oid_dissector_handle("0.4.0.0.1.0.5.2", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v2" );
17928         register_ber_oid_dissector_handle("0.4.0.0.1.0.5.1", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v1" );
17929         register_ber_oid_dissector_handle("0.4.0.0.1.0.6.4", map_handle, proto_gsm_map,"callControlTransferContext-v4" );
17930         register_ber_oid_dissector_handle("0.4.0.0.1.0.6.3", map_handle, proto_gsm_map,"callControlTransferContext-v3" );
17931         register_ber_oid_dissector_handle("0.4.0.0.1.0.7.3", map_handle, proto_gsm_map,"reportingContext-v3" );
17932         register_ber_oid_dissector_handle("0.4.0.0.1.0.8.3", map_handle, proto_gsm_map,"callCompletionContext-v3" );
17933         register_ber_oid_dissector_handle("0.4.0.0.1.0.9.3", map_handle, proto_gsm_map,"serviceTerminationContext-v3" );
17934         register_ber_oid_dissector_handle("0.4.0.0.1.0.10.2", map_handle, proto_gsm_map,"resetContext-v2" );
17935         register_ber_oid_dissector_handle("0.4.0.0.1.0.10.1", map_handle, proto_gsm_map,"resetContext-v1" );
17936         register_ber_oid_dissector_handle("0.4.0.0.1.0.11.3", map_handle, proto_gsm_map,"handoverControlContext-v3" );
17937         register_ber_oid_dissector_handle("0.4.0.0.1.0.11.2", map_handle, proto_gsm_map,"handoverControlContext-v2" );
17938         register_ber_oid_dissector_handle("0.4.0.0.1.0.11.1", map_handle, proto_gsm_map,"handoverControlContext-v1" );
17939         register_ber_oid_dissector_handle("0.4.0.0.1.0.12.3", map_handle, proto_gsm_map,"sIWFSAllocationContext-v3" );
17940         register_ber_oid_dissector_handle("0.4.0.0.1.0.13.3", map_handle, proto_gsm_map,"equipmentMngtContext-v3" );
17941         register_ber_oid_dissector_handle("0.4.0.0.1.0.13.2", map_handle, proto_gsm_map,"equipmentMngtContext-v2" );
17942         register_ber_oid_dissector_handle("0.4.0.0.1.0.13.1", map_handle, proto_gsm_map,"equipmentMngtContext-v1" );
17943         register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"infoRetrievalContext-v3" );
17944         register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"infoRetrievalContext-v2" );
17945         register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"infoRetrievalContext-v1" );
17946         /* fallback to infoRetrieval(14) version1(1) and not interVlrInfoRetrieval(15) version1(1) */
17947         /*register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"map-ac interVlrInfoRetrieval(15) version1(1)" );*/
17948         register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v2" );
17949         register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v3" );
17950         register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"subscriberDataMngtContext-v3" );
17951         register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"subscriberDataMngtContext-v2" );
17952         register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"subscriberDataMngtContext-v1" );
17953         register_ber_oid_dissector_handle("0.4.0.0.1.0.17.3", map_handle, proto_gsm_map,"tracingContext-v3" );
17954         register_ber_oid_dissector_handle("0.4.0.0.1.0.17.2", map_handle, proto_gsm_map,"tracingContext-v2" );
17955         register_ber_oid_dissector_handle("0.4.0.0.1.0.17.1", map_handle, proto_gsm_map,"tracingContext-v1" );
17956         register_ber_oid_dissector_handle("0.4.0.0.1.0.18.2", map_handle, proto_gsm_map,"networkFunctionalSsContext-v2" );
17957         register_ber_oid_dissector_handle("0.4.0.0.1.0.18.1", map_handle, proto_gsm_map,"networkFunctionalSsContext-v1" );
17958         register_ber_oid_dissector_handle("0.4.0.0.1.0.19.2", map_handle, proto_gsm_map,"networkUnstructuredSsContext-v2" );
17959         register_ber_oid_dissector_handle("0.4.0.0.1.0.20.3", map_handle, proto_gsm_map,"shortMsgGatewayContext-v3" );
17960         register_ber_oid_dissector_handle("0.4.0.0.1.0.20.2", map_handle, proto_gsm_map,"shortMsgGatewayContext-v2" );
17961         register_ber_oid_dissector_handle("0.4.0.0.1.0.20.1", map_handle, proto_gsm_map,"shortMsgGatewayContext-v1" );
17962         register_ber_oid_dissector_handle("0.4.0.0.1.0.21.3", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v3" );
17963         register_ber_oid_dissector_handle("0.4.0.0.1.0.21.2", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v2" );
17964         register_ber_oid_dissector_handle("0.4.0.0.1.0.21.1", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v1" );
17965         register_ber_oid_dissector_handle("0.4.0.0.1.0.22.3", map_handle, proto_gsm_map,"subscriberDataModificationNotificationContext-v3" );
17966         register_ber_oid_dissector_handle("0.4.0.0.1.0.23.2", map_handle, proto_gsm_map,"shortMsgAlertContext-v2" );
17967         register_ber_oid_dissector_handle("0.4.0.0.1.0.23.1", map_handle, proto_gsm_map,"shortMsgAlertContext-v1" );
17968         register_ber_oid_dissector_handle("0.4.0.0.1.0.24.3", map_handle, proto_gsm_map,"mwdMngtContext-v3" );
17969         register_ber_oid_dissector_handle("0.4.0.0.1.0.24.2", map_handle, proto_gsm_map,"mwdMngtContext-v2" );
17970         register_ber_oid_dissector_handle("0.4.0.0.1.0.24.1", map_handle, proto_gsm_map,"mwdMngtContext-v1" );
17971         register_ber_oid_dissector_handle("0.4.0.0.1.0.25.3", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v3" );
17972         register_ber_oid_dissector_handle("0.4.0.0.1.0.25.2", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v2" );
17973         register_ber_oid_dissector_handle("0.4.0.0.1.0.26.2", map_handle, proto_gsm_map,"imsiRetrievalContext-v2" );
17974         register_ber_oid_dissector_handle("0.4.0.0.1.0.27.2", map_handle, proto_gsm_map,"msPurgingContext-v2" );
17975         register_ber_oid_dissector_handle("0.4.0.0.1.0.27.3", map_handle, proto_gsm_map,"msPurgingContext-v3" );
17976         register_ber_oid_dissector_handle("0.4.0.0.1.0.28.3", map_handle, proto_gsm_map,"subscriberInfoEnquiryContext-v3" );
17977         register_ber_oid_dissector_handle("0.4.0.0.1.0.29.3", map_handle, proto_gsm_map,"anyTimeInfoEnquiryContext-v3" );
17978         register_ber_oid_dissector_handle("0.4.0.0.1.0.31.3", map_handle, proto_gsm_map,"groupCallControlContext-v3" );
17979         register_ber_oid_dissector_handle("0.4.0.0.1.0.32.3", map_handle, proto_gsm_map,"gprsLocationUpdateContext-v3" );
17980         register_ber_oid_dissector_handle("0.4.0.0.1.0.33.4", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v4" );
17981         register_ber_oid_dissector_handle("0.4.0.0.1.0.33.3", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v3" );
17982         register_ber_oid_dissector_handle("0.4.0.0.1.0.34.3", map_handle, proto_gsm_map,"failureReportContext-v3" );
17983         register_ber_oid_dissector_handle("0.4.0.0.1.0.35.3", map_handle, proto_gsm_map,"gprsNotifyContext-v3" );
17984         register_ber_oid_dissector_handle("0.4.0.0.1.0.36.3", map_handle, proto_gsm_map,"ss-InvocationNotificationContext-v3" );
17985         register_ber_oid_dissector_handle("0.4.0.0.1.0.37.3", map_handle, proto_gsm_map,"locationSvcGatewayContext-v3" );
17986         register_ber_oid_dissector_handle("0.4.0.0.1.0.38.3", map_handle, proto_gsm_map,"locationSvcEnquiryContext-v3" );
17987         register_ber_oid_dissector_handle("0.4.0.0.1.0.39.3", map_handle, proto_gsm_map,"authenticationFailureReportContext-v3" );
17988         register_ber_oid_dissector_handle("0.4.0.0.1.0.40.3", map_handle, proto_gsm_map,"secureTransportHandlingContext-v3" );
17989         register_ber_oid_dissector_handle("0.4.0.0.1.0.41.3", map_handle, proto_gsm_map,"shortMsgMT-Relay-VGCS-Context-v3" );
17990         register_ber_oid_dissector_handle("0.4.0.0.1.0.42.3", map_handle, proto_gsm_map,"mm-EventReportingContext-v3" );
17991         register_ber_oid_dissector_handle("0.4.0.0.1.0.43.3", map_handle, proto_gsm_map,"anyTimeInfoHandlingContext-v3" );
17992         register_ber_oid_dissector_handle("0.4.0.0.1.0.44.3", map_handle, proto_gsm_map,"resourceManagementContext-v3" );
17993         register_ber_oid_dissector_handle("0.4.0.0.1.0.45.3", map_handle, proto_gsm_map,"groupCallInfoRetrievalContext-v3" );
17994         /* Private extension container */
17995         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" );
17996     }
17997     else {
17998         range_foreach(ssn_range, range_delete_callback);
17999         g_free(ssn_range);
18000     }
18001
18002     ssn_range = range_copy(global_ssn_range);
18003     range_foreach(ssn_range, range_add_callback);
18004
18005 }
18006
18007 /*--- proto_register_gsm_map -------------------------------------------*/
18008 void proto_register_gsm_map(void) {
18009         module_t *gsm_map_module;
18010
18011   /* List of fields */
18012   static hf_register_info hf[] = {
18013       { &hf_gsm_map_old_Component_PDU,
18014         { "Component", "gsm_map.old.Component",
18015           FT_UINT32, BASE_DEC, VALS(gsm_old_Component_vals), 0,
18016           "gsm_map.old.Component", HFILL }},
18017       { &hf_gsm_map_getPassword,
18018         { "getPassword", "gsm_map.getPassword",
18019           FT_UINT8, BASE_DEC, VALS(gsm_old_GetPasswordArg_vals), 0,
18020           "getPassword", HFILL }},
18021       { &hf_gsm_map_currentPassword,
18022         { "currentPassword", "gsm_map.currentPassword",
18023           FT_STRING, BASE_NONE, NULL, 0,
18024           "", HFILL }},
18025       { &hf_gsm_map_extension,
18026         { "Extension", "gsm_map.extension",
18027           FT_BOOLEAN, 8, TFS(&gsm_map_extension_value), 0x80,
18028           "Extension", HFILL }},
18029       { &hf_gsm_map_nature_of_number,
18030         { "Nature of number", "gsm_map.nature_of_number",
18031           FT_UINT8, BASE_HEX, VALS(gsm_map_nature_of_number_values), 0x70,
18032           "Nature of number", HFILL }},
18033       { &hf_gsm_map_number_plan,
18034         { "Number plan", "gsm_map.number_plan",
18035           FT_UINT8, BASE_HEX, VALS(gsm_map_number_plan_values), 0x0f,
18036           "Number plan", HFILL }},
18037       { &hf_gsm_map_isdn_address_digits,
18038         { "ISDN Address digits", "gsm_map.isdn.address.digits",
18039           FT_STRING, BASE_NONE, NULL, 0,
18040           "ISDN Address digits", HFILL }},
18041       { &hf_gsm_map_address_digits,
18042         { "Address digits", "gsm_map.address.digits",
18043           FT_STRING, BASE_NONE, NULL, 0,
18044           "Address digits", HFILL }},
18045       { &hf_gsm_map_servicecentreaddress_digits,
18046         { "ServiceCentreAddress digits", "gsm_map.servicecentreaddress_digits",
18047           FT_STRING, BASE_NONE, NULL, 0,
18048           "ServiceCentreAddress digits", HFILL }},
18049       { &hf_gsm_map_imsi_digits,
18050         { "IMSI digits", "gsm_map.imsi_digits",
18051           FT_STRING, BASE_NONE, NULL, 0,
18052           "IMSI digits", HFILL }},
18053       { &hf_gsm_map_TBCD_digits,
18054         { "TBCD digits", "gsm_map.imsi_digits",
18055           FT_STRING, BASE_NONE, NULL, 0,
18056           "TBCD digits", HFILL }},
18057       { &hf_gsm_map_Ss_Status_unused,
18058         { "Unused", "gsm_map.unused",
18059           FT_UINT8, BASE_HEX, NULL, 0xf0,
18060           "Unused", HFILL }},
18061       { &hf_gsm_map_Ss_Status_q_bit,
18062         { "Q bit", "gsm_map.ss_status_q_bit",
18063           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_q_bit_values), 0x08,
18064           "Q bit", HFILL }},
18065       { &hf_gsm_map_Ss_Status_p_bit,
18066         { "P bit", "gsm_map.ss_status_p_bit",
18067           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_p_values), 0x04,
18068           "P bit", HFILL }},
18069       { &hf_gsm_map_Ss_Status_r_bit,
18070         { "R bit", "gsm_map.ss_status_r_bit",
18071           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_r_values), 0x02,
18072           "R bit", HFILL }},
18073       { &hf_gsm_map_Ss_Status_a_bit,
18074         { "A bit", "gsm_map.ss_status_a_bit",
18075           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_a_values), 0x01,
18076           "A bit", HFILL }},
18077       { &hf_gsm_map_notification_to_forwarding_party,
18078         { "Notification to forwarding party", "gsm_map.notification_to_forwarding_party",
18079           FT_BOOLEAN, 8, TFS(&notification_value), 0x80,
18080           "Notification to forwarding party", HFILL }},
18081       { &hf_gsm_map_redirecting_presentation,
18082         { "Redirecting presentation", "gsm_map.redirecting_presentation",
18083           FT_BOOLEAN, 8, TFS(&redirecting_presentation_value), 0x40,
18084           "Redirecting presentation", HFILL }},
18085       { &hf_gsm_map_notification_to_calling_party,
18086         { "Notification to calling party", "gsm_map.notification_to_clling_party",
18087           FT_BOOLEAN, 8, TFS(&notification_value), 0x20,
18088           "Notification to calling party", HFILL }},
18089       { &hf_gsm_map_forwarding_reason,
18090         { "Forwarding reason", "gsm_map.forwarding_reason",
18091           FT_UINT8, BASE_HEX, VALS(forwarding_reason_values), 0x0c,
18092           "forwarding reason", HFILL }},
18093       { &hf_gsm_map_pdp_type_org,
18094         { "PDP Type Organization", "gsm_map.pdp_type_org",
18095           FT_UINT8, BASE_HEX, VALS(pdp_type_org_values), 0x0f,
18096           "PDP Type Organization", HFILL }},
18097       { &hf_gsm_map_etsi_pdp_type_number,
18098         { "PDP Type Number", "gsm_map.pdp_type_org",
18099           FT_UINT8, BASE_HEX, VALS(etsi_pdp_type_number_values), 0,
18100           "ETSI PDP Type Number", HFILL }},
18101       { &hf_gsm_map_ietf_pdp_type_number,
18102         { "PDP Type Number", "gsm_map.ietf_pdp_type_number",
18103           FT_UINT8, BASE_HEX, VALS(ietf_pdp_type_number_values), 0,
18104           "IETF PDP Type Number", HFILL }},
18105       { &hf_gsm_map_ext_qos_subscribed_pri,
18106         { "Allocation/Retention priority", "gsm_map.ext_qos_subscribed_pri",
18107           FT_UINT8, BASE_DEC, NULL, 0xff,
18108           "Allocation/Retention priority", HFILL }},
18109       { &hf_gsm_map_qos_traffic_cls,
18110         { "Traffic class", "gsm_map.qos.traffic_cls",
18111           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0xe0,
18112           "Traffic class", HFILL }},
18113       { &hf_gsm_map_qos_del_order,
18114         { "Delivery order", "gsm_map.qos.del_order",
18115           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0x18,
18116           "Delivery order", HFILL }},
18117       { &hf_gsm_map_qos_del_of_err_sdu,
18118         { "Delivery of erroneous SDUs", "gsm_map.qos.del_of_err_sdu",
18119           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_del_of_err_sdu_vals), 0x03,
18120           "Delivery of erroneous SDUs", HFILL }},
18121       { &hf_gsm_map_qos_ber,
18122         { "Residual Bit Error Rate (BER)", "gsm_map.qos.ber",
18123           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_ber_vals), 0xf0,
18124           "Residual Bit Error Rate (BER)", HFILL }},
18125       { &hf_gsm_map_qos_sdu_err_rat,
18126         { "SDU error ratio", "gsm_map.qos.sdu_err_rat",
18127           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_sdu_err_rat_vals), 0x0f,
18128           "SDU error ratio", HFILL }},
18129       { &hf_gsm_map_qos_traff_hdl_pri,
18130         { "Traffic handling priority", "gsm_map.qos.traff_hdl_pri",
18131           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traff_hdl_pri_vals), 0x03,
18132           "Traffic handling priority", HFILL }},
18133       
18134       { &hf_gsm_map_qos_max_sdu,
18135         { "Maximum SDU size", "gsm_map.qos.max_sdu",
18136           FT_UINT32, BASE_DEC, NULL, 0x0,
18137           "Maximum SDU size", HFILL }},         
18138       { &hf_gsm_map_max_brate_ulink,
18139         { "Maximum bit rate for uplink in kbit/s", "gsm_map.qos.max_brate_ulink",
18140           FT_UINT32, BASE_DEC, NULL, 0x0,
18141           "Maximum bit rate for uplink", HFILL }},
18142       { &hf_gsm_map_max_brate_dlink,
18143         { "Maximum bit rate for downlink in kbit/s", "gsm_map.qos.max_brate_dlink",
18144           FT_UINT32, BASE_DEC, NULL, 0x0,
18145           "Maximum bit rate for downlink", HFILL }},
18146       { &hf_gsm_map_qos_transfer_delay,
18147         { "Transfer delay (Raw data see TS 24.008 for interpretation)", "gsm_map.qos.transfer_delay",
18148           FT_UINT8, BASE_DEC, NULL, 0xfc,
18149           "Transfer delay", HFILL }},
18150       { &hf_gsm_map_guaranteed_max_brate_ulink,
18151         { "Guaranteed bit rate for uplink in kbit/s", "gsm_map.qos.brate_ulink",
18152           FT_UINT32, BASE_DEC, NULL, 0x0,
18153           "Guaranteed bit rate for uplink", HFILL }},
18154       { &hf_gsm_map_guaranteed_max_brate_dlink,
18155         { "Guaranteed bit rate for downlink in kbit/s", "gsm_map.qos.brate_dlink",
18156           FT_UINT32, BASE_DEC, NULL, 0x0,
18157           "Guaranteed bit rate for downlink", HFILL }},
18158       { &hf_gsm_map_GSNAddress_IPv4,
18159         { "GSN-Address IPv4",  "gsm_map.gsnaddress_ipv4",
18160           FT_IPv4, BASE_NONE, NULL, 0,
18161           "IPAddress IPv4", HFILL }},
18162       { &hf_gsm_map_GSNAddress_IPv6,
18163         { "GSN Address IPv6",  "gsm_map.gsnaddress_ipv6",
18164           FT_IPv4, BASE_NONE, NULL, 0,
18165           "IPAddress IPv6", HFILL }},
18166       { &hf_gsm_map_ranap_service_Handover,
18167         { "service-Handover", "gsm_map.ranap.service_Handover",
18168           FT_UINT32, BASE_DEC, VALS(ranap_Service_Handover_vals), 0,
18169           "gsm_map.ranap.Service_Handover", HFILL }},
18170       { &hf_gsm_map_IntegrityProtectionInformation,
18171         { "IntegrityProtectionInformation", "gsm_map.ranap.IntegrityProtectionInformation",
18172           FT_NONE, BASE_NONE, NULL, 0,
18173           "gsm_map.ranap.IntegrityProtectionInformation", HFILL }},
18174       { &hf_gsm_map_EncryptionInformation,
18175         { "EncryptionInformation", "gsm_map.ranap.EncryptionInformation",
18176           FT_NONE, BASE_NONE, NULL, 0,
18177           "gsm_map.ranap.EncryptionInformation", HFILL }},
18178       { &hf_gsm_map_PlmnContainer_PDU,
18179         { "PlmnContainer", "gsm_map.PlmnContainer",
18180           FT_NONE, BASE_NONE, NULL, 0,
18181           "gsm_map.PlmnContainer", HFILL }},
18182       { &hf_gsm_map_ss_SS_UserData,
18183         { "SS-UserData", "gsm_ss.SS_UserData",
18184           FT_STRING, BASE_NONE, NULL, 0,
18185           "gsm_map.ss.SS_UserData", HFILL }},
18186       { &hf_gsm_map_cbs_coding_grp,
18187         { "Coding Group","gsm_map.cbs.coding_grp",
18188           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_data_coding_scheme_coding_grp_vals), 0xf0,          
18189           "Coding Group", HFILL }
18190       },
18191       { &hf_gsm_map_cbs_coding_grp0_lang,
18192         { "Language","gsm_map.cbs.coding_grp0_lang",
18193           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp0_lang_vals), 0x0f,          
18194           "Language", HFILL }
18195       },
18196       { &hf_gsm_map_cbs_coding_grp1_lang,
18197         { "Language","gsm_map.cbs.coding_grp1_lang",
18198           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp1_lang_vals), 0x0f,          
18199           "Language", HFILL }
18200       },
18201       { &hf_gsm_map_cbs_coding_grp2_lang,
18202         { "Language","gsm_map.cbs.coding_grp2_lang",
18203           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp2_lang_vals), 0x0f,          
18204           "Language", HFILL }
18205       },
18206       { &hf_gsm_map_cbs_coding_grp3_lang,
18207         { "Language","gsm_map.cbs.coding_grp3_lang",
18208           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp3_lang_vals), 0x0f,          
18209           "Language", HFILL }
18210       },
18211       { &hf_gsm_map_cbs_coding_grp4_7_comp,
18212         { "Compressed indicator","gsm_map.cbs.coding_grp4_7_comp",
18213           FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_comp_vals), 0x20,          
18214           "Compressed indicator", HFILL }
18215       },
18216       { &hf_gsm_map_cbs_coding_grp4_7_class_ind,
18217         { "Message Class present","gsm_map.cbs.coding_grp4_7_class_ind",
18218           FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_class_ind_vals), 0x10,          
18219           "Message Class present", HFILL }
18220       },
18221       { &hf_gsm_map_cbs_coding_grp4_7_char_set,
18222         { "Character set being used","gsm_map.cbs.coding_grp4_7_char_set",
18223           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_char_set_vals), 0x0c,          
18224           "Character set being used", HFILL }
18225       },
18226       { &hf_gsm_map_cbs_coding_grp4_7_class,
18227         { "Message Class","gsm_map.cbs.coding_grp4_7_class",
18228           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_class_vals), 0x03,          
18229           "Message Class", HFILL }
18230       },
18231       { &hf_gsm_map_cbs_coding_grp15_mess_code,
18232         { "Message coding","gsm_map.cbs.cbs_coding_grp15_mess_code",
18233           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_mess_code_vals), 0x04,          
18234           "Message coding", HFILL }
18235       },
18236       { &hf_gsm_map_cbs_coding_grp15_class,
18237         { "Message Class","gsm_map.cbs.gsm_map_cbs_coding_grp15_class",
18238           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_class_vals), 0x03,          
18239           "Message Class", HFILL }
18240       },
18241       { &hf_gsm_map_tmsi,
18242         { "tmsi", "gsm_map.tmsi",
18243           FT_BYTES, BASE_HEX, NULL, 0,
18244           "gsm_map.TMSI", HFILL }},
18245       
18246       { &hf_gsm_map_ie_tag,
18247         { "Tag", "gsm_map.ie_tag",
18248           FT_UINT8, BASE_DEC, VALS(gsm_map_tag_vals), 0,
18249           "GSM 04.08 tag", HFILL }},
18250       { &hf_gsm_map_len,
18251         { "Length", "gsm_map.length",
18252           FT_UINT8, BASE_DEC, NULL, 0,
18253           "Length", HFILL }},
18254       { &hf_gsm_map_disc_par,
18255         { "Discrimination parameter", "gsm_map.disc_par",
18256           FT_UINT8, BASE_DEC, VALS(gsm_map_disc_par_vals), 0,
18257           "Discrimination parameter", HFILL }},
18258       { &hf_gsm_map_dlci,
18259         { "DLCI", "gsm_map.disc_par",
18260           FT_UINT8, BASE_DEC, NULL, 0,
18261           "Data Link Connection Indicator", HFILL }},
18262
18263
18264 /*--- Included file: packet-gsm_map-hfarr.c ---*/
18265 #line 1 "packet-gsm_map-hfarr.c"
18266
18267 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
18268
18269     { &hf_gsm_map_privateExtensionList,
18270       { "privateExtensionList", "gsm_map.privateExtensionList",
18271         FT_UINT32, BASE_DEC, NULL, 0,
18272         "gsm_map.PrivateExtensionList", HFILL }},
18273     { &hf_gsm_map_pcs_Extensions,
18274       { "pcs-Extensions", "gsm_map.pcs_Extensions",
18275         FT_NONE, BASE_NONE, NULL, 0,
18276         "gsm_map.PCS_Extensions", HFILL }},
18277     { &hf_gsm_map_slr_Arg_PCS_Extensions,
18278       { "slr-Arg-PCS-Extensions", "gsm_map.slr_Arg_PCS_Extensions",
18279         FT_NONE, BASE_NONE, NULL, 0,
18280         "gsm_map.SLR_Arg_PCS_Extensions", HFILL }},
18281     { &hf_gsm_map_PrivateExtensionList_item,
18282       { "PrivateExtension", "gsm_map.PrivateExtension",
18283         FT_NONE, BASE_NONE, NULL, 0,
18284         "gsm_map.PrivateExtension", HFILL }},
18285     { &hf_gsm_map_extId,
18286       { "extId", "gsm_map.extId",
18287         FT_OID, BASE_NONE, NULL, 0,
18288         "gsm_map.T_extId", HFILL }},
18289     { &hf_gsm_map_extType,
18290       { "extType", "gsm_map.extType",
18291         FT_NONE, BASE_NONE, NULL, 0,
18292         "gsm_map.T_extType", HFILL }},
18293     { &hf_gsm_map_na_ESRK_Request,
18294       { "na-ESRK-Request", "gsm_map.na_ESRK_Request",
18295         FT_NONE, BASE_NONE, NULL, 0,
18296         "gsm_map.NULL", HFILL }},
18297
18298 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
18299
18300     { &hf_gsm_map_protocolId,
18301       { "protocolId", "gsm_map.protocolId",
18302         FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
18303         "gsm_map.ProtocolId", HFILL }},
18304     { &hf_gsm_map_signalInfo,
18305       { "signalInfo", "gsm_map.signalInfo",
18306         FT_BYTES, BASE_HEX, NULL, 0,
18307         "gsm_map.SignalInfo", HFILL }},
18308     { &hf_gsm_map_extensionContainer,
18309       { "extensionContainer", "gsm_map.extensionContainer",
18310         FT_NONE, BASE_NONE, NULL, 0,
18311         "gsm_map.ExtensionContainer", HFILL }},
18312     { &hf_gsm_map_ext_ProtocolId,
18313       { "ext-ProtocolId", "gsm_map.ext_ProtocolId",
18314         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_ProtocolId_vals), 0,
18315         "gsm_map.Ext_ProtocolId", HFILL }},
18316     { &hf_gsm_map_accessNetworkProtocolId,
18317       { "accessNetworkProtocolId", "gsm_map.accessNetworkProtocolId",
18318         FT_UINT32, BASE_DEC, VALS(gsm_map_AccessNetworkProtocolId_vals), 0,
18319         "gsm_map.AccessNetworkProtocolId", HFILL }},
18320     { &hf_gsm_map_signalInfo_01,
18321       { "signalInfo", "gsm_map.signalInfo",
18322         FT_BYTES, BASE_HEX, NULL, 0,
18323         "gsm_map.LongSignalInfo", HFILL }},
18324     { &hf_gsm_map_imsi,
18325       { "imsi", "gsm_map.imsi",
18326         FT_BYTES, BASE_HEX, NULL, 0,
18327         "gsm_map.IMSI", HFILL }},
18328     { &hf_gsm_map_imsi_WithLMSI,
18329       { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI",
18330         FT_NONE, BASE_NONE, NULL, 0,
18331         "gsm_map.IMSI_WithLMSI", HFILL }},
18332     { &hf_gsm_map_lmsi,
18333       { "lmsi", "gsm_map.lmsi",
18334         FT_BYTES, BASE_HEX, NULL, 0,
18335         "gsm_map.LMSI", HFILL }},
18336     { &hf_gsm_map_HLR_List_item,
18337       { "HLR-Id", "gsm_map.HLR_Id",
18338         FT_BYTES, BASE_HEX, NULL, 0,
18339         "gsm_map.HLR_Id", HFILL }},
18340     { &hf_gsm_map_naea_PreferredCIC,
18341       { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC",
18342         FT_BYTES, BASE_HEX, NULL, 0,
18343         "gsm_map.NAEA_CIC", HFILL }},
18344     { &hf_gsm_map_msisdn,
18345       { "msisdn", "gsm_map.msisdn",
18346         FT_BYTES, BASE_HEX, NULL, 0,
18347         "gsm_map.ISDN_AddressString", HFILL }},
18348     { &hf_gsm_map_externalAddress,
18349       { "externalAddress", "gsm_map.externalAddress",
18350         FT_BYTES, BASE_HEX, NULL, 0,
18351         "gsm_map.ISDN_AddressString", HFILL }},
18352     { &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength,
18353       { "cellGlobalIdOrServiceAreaIdFixedLength", "gsm_map.cellGlobalIdOrServiceAreaIdFixedLength",
18354         FT_BYTES, BASE_HEX, NULL, 0,
18355         "gsm_map.CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
18356     { &hf_gsm_map_laiFixedLength,
18357       { "laiFixedLength", "gsm_map.laiFixedLength",
18358         FT_BYTES, BASE_HEX, NULL, 0,
18359         "gsm_map.LAIFixedLength", HFILL }},
18360     { &hf_gsm_map_bearerService,
18361       { "bearerService", "gsm_map.bearerService",
18362         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
18363         "gsm_map.BearerServiceCode", HFILL }},
18364     { &hf_gsm_map_teleservice,
18365       { "teleservice", "gsm_map.teleservice",
18366         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
18367         "gsm_map.TeleserviceCode", HFILL }},
18368     { &hf_gsm_map_ext_BearerService,
18369       { "ext-BearerService", "gsm_map.ext_BearerService",
18370         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
18371         "gsm_map.Ext_BearerServiceCode", HFILL }},
18372     { &hf_gsm_map_ext_Teleservice,
18373       { "ext-Teleservice", "gsm_map.ext_Teleservice",
18374         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
18375         "gsm_map.Ext_TeleserviceCode", HFILL }},
18376     { &hf_gsm_map_maximumentitledPriority,
18377       { "maximumentitledPriority", "gsm_map.maximumentitledPriority",
18378         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
18379         "gsm_map.EMLPP_Priority", HFILL }},
18380     { &hf_gsm_map_defaultPriority,
18381       { "defaultPriority", "gsm_map.defaultPriority",
18382         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
18383         "gsm_map.EMLPP_Priority", HFILL }},
18384     { &hf_gsm_map_ss_Code,
18385       { "ss-Code", "gsm_map.ss_Code",
18386         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
18387         "gsm_map.SS_Code", HFILL }},
18388     { &hf_gsm_map_ss_Status,
18389       { "ss-Status", "gsm_map.ss_Status",
18390         FT_BYTES, BASE_HEX, NULL, 0,
18391         "gsm_map.Ext_SS_Status", HFILL }},
18392     { &hf_gsm_map_nbrSB,
18393       { "nbrSB", "gsm_map.nbrSB",
18394         FT_UINT32, BASE_DEC, NULL, 0,
18395         "gsm_map.MaxMC_Bearers", HFILL }},
18396     { &hf_gsm_map_nbrUser,
18397       { "nbrUser", "gsm_map.nbrUser",
18398         FT_UINT32, BASE_DEC, NULL, 0,
18399         "gsm_map.MC_Bearers", HFILL }},
18400
18401 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
18402
18403     { &hf_gsm_map_ss_ss_Code,
18404       { "ss-Code", "gsm_map.ss.ss_Code",
18405         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
18406         "gsm_map.SS_Code", HFILL }},
18407     { &hf_gsm_map_ss_basicService,
18408       { "basicService", "gsm_map.ss.basicService",
18409         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
18410         "gsm_map.BasicServiceCode", HFILL }},
18411     { &hf_gsm_map_ss_forwardedToNumber,
18412       { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
18413         FT_BYTES, BASE_HEX, NULL, 0,
18414         "gsm_map.AddressString", HFILL }},
18415     { &hf_gsm_map_ss_forwardedToSubaddress,
18416       { "forwardedToSubaddress", "gsm_map.ss.forwardedToSubaddress",
18417         FT_BYTES, BASE_HEX, NULL, 0,
18418         "gsm_map.ISDN_SubaddressString", HFILL }},
18419     { &hf_gsm_map_ss_noReplyConditionTime,
18420       { "noReplyConditionTime", "gsm_map.ss.noReplyConditionTime",
18421         FT_UINT32, BASE_DEC, NULL, 0,
18422         "gsm_map_ss.NoReplyConditionTime", HFILL }},
18423     { &hf_gsm_map_ss_defaultPriority,
18424       { "defaultPriority", "gsm_map.ss.defaultPriority",
18425         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
18426         "gsm_map.EMLPP_Priority", HFILL }},
18427     { &hf_gsm_map_ss_nbrUser,
18428       { "nbrUser", "gsm_map.ss.nbrUser",
18429         FT_UINT32, BASE_DEC, NULL, 0,
18430         "gsm_map.MC_Bearers", HFILL }},
18431     { &hf_gsm_map_ss_longFTN_Supported,
18432       { "longFTN-Supported", "gsm_map.ss.longFTN_Supported",
18433         FT_NONE, BASE_NONE, NULL, 0,
18434         "gsm_map_ss.NULL", HFILL }},
18435     { &hf_gsm_map_ss_forwardingInfo,
18436       { "forwardingInfo", "gsm_map.ss.forwardingInfo",
18437         FT_NONE, BASE_NONE, NULL, 0,
18438         "gsm_map_ss.ForwardingInfo", HFILL }},
18439     { &hf_gsm_map_ss_callBarringInfo,
18440       { "callBarringInfo", "gsm_map.ss.callBarringInfo",
18441         FT_NONE, BASE_NONE, NULL, 0,
18442         "gsm_map_ss.CallBarringInfo", HFILL }},
18443     { &hf_gsm_map_ss_ss_Data,
18444       { "ss-Data", "gsm_map.ss.ss_Data",
18445         FT_NONE, BASE_NONE, NULL, 0,
18446         "gsm_map_ss.SS_Data", HFILL }},
18447     { &hf_gsm_map_ss_forwardingFeatureList,
18448       { "forwardingFeatureList", "gsm_map.ss.forwardingFeatureList",
18449         FT_UINT32, BASE_DEC, NULL, 0,
18450         "gsm_map_ss.ForwardingFeatureList", HFILL }},
18451     { &hf_gsm_map_ss_ForwardingFeatureList_item,
18452       { "ForwardingFeature", "gsm_map.ss.ForwardingFeature",
18453         FT_NONE, BASE_NONE, NULL, 0,
18454         "gsm_map_ss.ForwardingFeature", HFILL }},
18455     { &hf_gsm_map_ss_ss_Status,
18456       { "ss-Status", "gsm_map.ss.ss_Status",
18457         FT_BYTES, BASE_HEX, NULL, 0,
18458         "gsm_map_ss.SS_Status", HFILL }},
18459     { &hf_gsm_map_ss_forwardedToNumber_01,
18460       { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
18461         FT_BYTES, BASE_HEX, NULL, 0,
18462         "gsm_map.ISDN_AddressString", HFILL }},
18463     { &hf_gsm_map_ss_forwardingOptions,
18464       { "forwardingOptions", "gsm_map.ss.forwardingOptions",
18465         FT_BYTES, BASE_HEX, NULL, 0,
18466         "gsm_map_ss.ForwardingOptions", HFILL }},
18467     { &hf_gsm_map_ss_longForwardedToNumber,
18468       { "longForwardedToNumber", "gsm_map.ss.longForwardedToNumber",
18469         FT_BYTES, BASE_HEX, NULL, 0,
18470         "gsm_map.FTN_AddressString", HFILL }},
18471     { &hf_gsm_map_ss_callBarringFeatureList,
18472       { "callBarringFeatureList", "gsm_map.ss.callBarringFeatureList",
18473         FT_UINT32, BASE_DEC, NULL, 0,
18474         "gsm_map_ss.CallBarringFeatureList", HFILL }},
18475     { &hf_gsm_map_ss_CallBarringFeatureList_item,
18476       { "CallBarringFeature", "gsm_map.ss.CallBarringFeature",
18477         FT_NONE, BASE_NONE, NULL, 0,
18478         "gsm_map_ss.CallBarringFeature", HFILL }},
18479     { &hf_gsm_map_ss_ss_SubscriptionOption,
18480       { "ss-SubscriptionOption", "gsm_map.ss.ss_SubscriptionOption",
18481         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
18482         "gsm_map_ss.SS_SubscriptionOption", HFILL }},
18483     { &hf_gsm_map_ss_basicServiceGroupList,
18484       { "basicServiceGroupList", "gsm_map.ss.basicServiceGroupList",
18485         FT_UINT32, BASE_DEC, NULL, 0,
18486         "gsm_map_ss.BasicServiceGroupList", HFILL }},
18487     { &hf_gsm_map_ss_cliRestrictionOption,
18488       { "cliRestrictionOption", "gsm_map.ss.cliRestrictionOption",
18489         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CliRestrictionOption_vals), 0,
18490         "gsm_map_ss.CliRestrictionOption", HFILL }},
18491     { &hf_gsm_map_ss_overrideCategory,
18492       { "overrideCategory", "gsm_map.ss.overrideCategory",
18493         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_OverrideCategory_vals), 0,
18494         "gsm_map_ss.OverrideCategory", HFILL }},
18495     { &hf_gsm_map_ss_maximumEntitledPriority,
18496       { "maximumEntitledPriority", "gsm_map.ss.maximumEntitledPriority",
18497         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
18498         "gsm_map.EMLPP_Priority", HFILL }},
18499     { &hf_gsm_map_ss_ccbs_FeatureList,
18500       { "ccbs-FeatureList", "gsm_map.ss.ccbs_FeatureList",
18501         FT_UINT32, BASE_DEC, NULL, 0,
18502         "gsm_map_ss.CCBS_FeatureList", HFILL }},
18503     { &hf_gsm_map_ss_nbrSB,
18504       { "nbrSB", "gsm_map.ss.nbrSB",
18505         FT_UINT32, BASE_DEC, NULL, 0,
18506         "gsm_map.MaxMC_Bearers", HFILL }},
18507     { &hf_gsm_map_ss_nbrSN,
18508       { "nbrSN", "gsm_map.ss.nbrSN",
18509         FT_UINT32, BASE_DEC, NULL, 0,
18510         "gsm_map.MC_Bearers", HFILL }},
18511     { &hf_gsm_map_ss_CCBS_FeatureList_item,
18512       { "CCBS-Feature", "gsm_map.ss.CCBS_Feature",
18513         FT_NONE, BASE_NONE, NULL, 0,
18514         "gsm_map_ss.CCBS_Feature", HFILL }},
18515     { &hf_gsm_map_ss_ccbs_Index,
18516       { "ccbs-Index", "gsm_map.ss.ccbs_Index",
18517         FT_UINT32, BASE_DEC, NULL, 0,
18518         "gsm_map_ss.CCBS_Index", HFILL }},
18519     { &hf_gsm_map_ss_b_subscriberNumber,
18520       { "b-subscriberNumber", "gsm_map.ss.b_subscriberNumber",
18521         FT_BYTES, BASE_HEX, NULL, 0,
18522         "gsm_map.ISDN_AddressString", HFILL }},
18523     { &hf_gsm_map_ss_b_subscriberSubaddress,
18524       { "b-subscriberSubaddress", "gsm_map.ss.b_subscriberSubaddress",
18525         FT_BYTES, BASE_HEX, NULL, 0,
18526         "gsm_map.ISDN_SubaddressString", HFILL }},
18527     { &hf_gsm_map_ss_basicServiceGroup,
18528       { "basicServiceGroup", "gsm_map.ss.basicServiceGroup",
18529         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
18530         "gsm_map.BasicServiceCode", HFILL }},
18531     { &hf_gsm_map_ss_genericServiceInfo,
18532       { "genericServiceInfo", "gsm_map.ss.genericServiceInfo",
18533         FT_NONE, BASE_NONE, NULL, 0,
18534         "gsm_map_ss.GenericServiceInfo", HFILL }},
18535     { &hf_gsm_map_ss_ussd_DataCodingScheme,
18536       { "ussd-DataCodingScheme", "gsm_map.ss.ussd_DataCodingScheme",
18537         FT_BYTES, BASE_HEX, NULL, 0,
18538         "gsm_map_ss.USSD_DataCodingScheme", HFILL }},
18539     { &hf_gsm_map_ss_ussd_String,
18540       { "ussd-String", "gsm_map.ss.ussd_String",
18541         FT_BYTES, BASE_HEX, NULL, 0,
18542         "gsm_map_ss.USSD_String", HFILL }},
18543     { &hf_gsm_map_ss_alertingPattern,
18544       { "alertingPattern", "gsm_map.ss.alertingPattern",
18545         FT_BYTES, BASE_HEX, NULL, 0,
18546         "gsm_map.AlertingPattern", HFILL }},
18547     { &hf_gsm_map_ss_msisdn,
18548       { "msisdn", "gsm_map.ss.msisdn",
18549         FT_BYTES, BASE_HEX, NULL, 0,
18550         "gsm_map.ISDN_AddressString", HFILL }},
18551     { &hf_gsm_map_ss_SS_List_item,
18552       { "SS-Code", "gsm_map.ss.SS_Code",
18553         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
18554         "gsm_map.SS_Code", HFILL }},
18555     { &hf_gsm_map_ss_BasicServiceGroupList_item,
18556       { "BasicServiceCode", "gsm_map.ss.BasicServiceCode",
18557         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
18558         "gsm_map.BasicServiceCode", HFILL }},
18559     { &hf_gsm_map_ss_imsi,
18560       { "imsi", "gsm_map.ss.imsi",
18561         FT_BYTES, BASE_HEX, NULL, 0,
18562         "gsm_map.IMSI", HFILL }},
18563     { &hf_gsm_map_ss_ss_Event,
18564       { "ss-Event", "gsm_map.ss.ss_Event",
18565         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
18566         "gsm_map.SS_Code", HFILL }},
18567     { &hf_gsm_map_ss_ss_EventSpecification,
18568       { "ss-EventSpecification", "gsm_map.ss.ss_EventSpecification",
18569         FT_UINT32, BASE_DEC, NULL, 0,
18570         "gsm_map_ss.SS_EventSpecification", HFILL }},
18571     { &hf_gsm_map_ss_extensionContainer,
18572       { "extensionContainer", "gsm_map.ss.extensionContainer",
18573         FT_NONE, BASE_NONE, NULL, 0,
18574         "gsm_map.ExtensionContainer", HFILL }},
18575     { &hf_gsm_map_ss_ccbs_RequestState,
18576       { "ccbs-RequestState", "gsm_map.ss.ccbs_RequestState",
18577         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CCBS_RequestState_vals), 0,
18578         "gsm_map_ss.CCBS_RequestState", HFILL }},
18579     { &hf_gsm_map_ss_SS_EventSpecification_item,
18580       { "AddressString", "gsm_map.ss.AddressString",
18581         FT_BYTES, BASE_HEX, NULL, 0,
18582         "gsm_map.AddressString", HFILL }},
18583     { &hf_gsm_map_ss_ccbs_Data,
18584       { "ccbs-Data", "gsm_map.ss.ccbs_Data",
18585         FT_NONE, BASE_NONE, NULL, 0,
18586         "gsm_map_ss.CCBS_Data", HFILL }},
18587     { &hf_gsm_map_ss_ccbs_Feature,
18588       { "ccbs-Feature", "gsm_map.ss.ccbs_Feature",
18589         FT_NONE, BASE_NONE, NULL, 0,
18590         "gsm_map_ss.CCBS_Feature", HFILL }},
18591     { &hf_gsm_map_ss_translatedB_Number,
18592       { "translatedB-Number", "gsm_map.ss.translatedB_Number",
18593         FT_BYTES, BASE_HEX, NULL, 0,
18594         "gsm_map.ISDN_AddressString", HFILL }},
18595     { &hf_gsm_map_ss_serviceIndicator,
18596       { "serviceIndicator", "gsm_map.ss.serviceIndicator",
18597         FT_BYTES, BASE_HEX, NULL, 0,
18598         "gsm_map_ss.ServiceIndicator", HFILL }},
18599     { &hf_gsm_map_ss_callInfo,
18600       { "callInfo", "gsm_map.ss.callInfo",
18601         FT_NONE, BASE_NONE, NULL, 0,
18602         "gsm_map.ExternalSignalInfo", HFILL }},
18603     { &hf_gsm_map_ss_networkSignalInfo,
18604       { "networkSignalInfo", "gsm_map.ss.networkSignalInfo",
18605         FT_NONE, BASE_NONE, NULL, 0,
18606         "gsm_map.ExternalSignalInfo", HFILL }},
18607     { &hf_gsm_map_ss_ServiceIndicator_clir_invoked,
18608       { "clir-invoked", "gsm_map.ss.clir-invoked",
18609         FT_BOOLEAN, 8, NULL, 0x80,
18610         "", HFILL }},
18611     { &hf_gsm_map_ss_ServiceIndicator_camel_invoked,
18612       { "camel-invoked", "gsm_map.ss.camel-invoked",
18613         FT_BOOLEAN, 8, NULL, 0x40,
18614         "", HFILL }},
18615
18616 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
18617
18618     { &hf_gsm_map_er_roamingNotAllowedCause,
18619       { "roamingNotAllowedCause", "gsm_map.er.roamingNotAllowedCause",
18620         FT_UINT32, BASE_DEC, VALS(gsm_map_er_RoamingNotAllowedCause_vals), 0,
18621         "gsm_map_er.RoamingNotAllowedCause", HFILL }},
18622     { &hf_gsm_map_er_extensionContainer,
18623       { "extensionContainer", "gsm_map.er.extensionContainer",
18624         FT_NONE, BASE_NONE, NULL, 0,
18625         "gsm_map.ExtensionContainer", HFILL }},
18626     { &hf_gsm_map_er_additionalRoamingNotAllowedCause,
18627       { "additionalRoamingNotAllowedCause", "gsm_map.er.additionalRoamingNotAllowedCause",
18628         FT_UINT32, BASE_DEC, VALS(gsm_map_er_AdditionalRoamingNotAllowedCause_vals), 0,
18629         "gsm_map_er.AdditionalRoamingNotAllowedCause", HFILL }},
18630     { &hf_gsm_map_er_callBarringCause,
18631       { "callBarringCause", "gsm_map.er.callBarringCause",
18632         FT_UINT32, BASE_DEC, VALS(gsm_map_er_CallBarringCause_vals), 0,
18633         "gsm_map_er.CallBarringCause", HFILL }},
18634     { &hf_gsm_map_er_extensibleCallBarredParam,
18635       { "extensibleCallBarredParam", "gsm_map.er.extensibleCallBarredParam",
18636         FT_NONE, BASE_NONE, NULL, 0,
18637         "gsm_map_er.ExtensibleCallBarredParam", HFILL }},
18638     { &hf_gsm_map_er_unauthorisedMessageOriginator,
18639       { "unauthorisedMessageOriginator", "gsm_map.er.unauthorisedMessageOriginator",
18640         FT_NONE, BASE_NONE, NULL, 0,
18641         "gsm_map_er.NULL", HFILL }},
18642     { &hf_gsm_map_er_cug_RejectCause,
18643       { "cug-RejectCause", "gsm_map.er.cug_RejectCause",
18644         FT_UINT32, BASE_DEC, VALS(gsm_map_er_CUG_RejectCause_vals), 0,
18645         "gsm_map_er.CUG_RejectCause", HFILL }},
18646     { &hf_gsm_map_er_ss_Code,
18647       { "ss-Code", "gsm_map.er.ss_Code",
18648         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
18649         "gsm_map.SS_Code", HFILL }},
18650     { &hf_gsm_map_er_basicService,
18651       { "basicService", "gsm_map.er.basicService",
18652         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
18653         "gsm_map.BasicServiceCode", HFILL }},
18654     { &hf_gsm_map_er_ss_Status,
18655       { "ss-Status", "gsm_map.er.ss_Status",
18656         FT_BYTES, BASE_HEX, NULL, 0,
18657         "gsm_map_ss.SS_Status", HFILL }},
18658     { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause,
18659       { "sm-EnumeratedDeliveryFailureCause", "gsm_map.er.sm_EnumeratedDeliveryFailureCause",
18660         FT_UINT32, BASE_DEC, VALS(gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals), 0,
18661         "gsm_map_er.SM_EnumeratedDeliveryFailureCause", HFILL }},
18662     { &hf_gsm_map_er_diagnosticInfo,
18663       { "diagnosticInfo", "gsm_map.er.diagnosticInfo",
18664         FT_BYTES, BASE_HEX, NULL, 0,
18665         "gsm_map.SignalInfo", HFILL }},
18666     { &hf_gsm_map_er_absentSubscriberDiagnosticSM,
18667       { "absentSubscriberDiagnosticSM", "gsm_map.er.absentSubscriberDiagnosticSM",
18668         FT_UINT32, BASE_DEC, NULL, 0,
18669         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18670     { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM,
18671       { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.er.additionalAbsentSubscriberDiagnosticSM",
18672         FT_UINT32, BASE_DEC, NULL, 0,
18673         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18674     { &hf_gsm_map_er_networkResource,
18675       { "networkResource", "gsm_map.er.networkResource",
18676         FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0,
18677         "gsm_map.NetworkResource", HFILL }},
18678     { &hf_gsm_map_er_extensibleSystemFailureParam,
18679       { "extensibleSystemFailureParam", "gsm_map.er.extensibleSystemFailureParam",
18680         FT_NONE, BASE_NONE, NULL, 0,
18681         "gsm_map_er.ExtensibleSystemFailureParam", HFILL }},
18682     { &hf_gsm_map_er_additionalNetworkResource,
18683       { "additionalNetworkResource", "gsm_map.er.additionalNetworkResource",
18684         FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalNetworkResource_vals), 0,
18685         "gsm_map.AdditionalNetworkResource", HFILL }},
18686     { &hf_gsm_map_er_failureCauseParam,
18687       { "failureCauseParam", "gsm_map.er.failureCauseParam",
18688         FT_UINT32, BASE_DEC, VALS(gsm_map_er_FailureCauseParam_vals), 0,
18689         "gsm_map_er.FailureCauseParam", HFILL }},
18690     { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported,
18691       { "shapeOfLocationEstimateNotSupported", "gsm_map.er.shapeOfLocationEstimateNotSupported",
18692         FT_NONE, BASE_NONE, NULL, 0,
18693         "gsm_map_er.NULL", HFILL }},
18694     { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode,
18695       { "neededLcsCapabilityNotSupportedInServingNode", "gsm_map.er.neededLcsCapabilityNotSupportedInServingNode",
18696         FT_NONE, BASE_NONE, NULL, 0,
18697         "gsm_map_er.NULL", HFILL }},
18698     { &hf_gsm_map_er_unknownSubscriberDiagnostic,
18699       { "unknownSubscriberDiagnostic", "gsm_map.er.unknownSubscriberDiagnostic",
18700         FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnknownSubscriberDiagnostic_vals), 0,
18701         "gsm_map_er.UnknownSubscriberDiagnostic", HFILL }},
18702     { &hf_gsm_map_er_absentSubscriberReason,
18703       { "absentSubscriberReason", "gsm_map.er.absentSubscriberReason",
18704         FT_UINT32, BASE_DEC, VALS(gsm_map_er_AbsentSubscriberReason_vals), 0,
18705         "gsm_map_er.AbsentSubscriberReason", HFILL }},
18706     { &hf_gsm_map_er_ccbs_Possible,
18707       { "ccbs-Possible", "gsm_map.er.ccbs_Possible",
18708         FT_NONE, BASE_NONE, NULL, 0,
18709         "gsm_map_er.NULL", HFILL }},
18710     { &hf_gsm_map_er_ccbs_Busy,
18711       { "ccbs-Busy", "gsm_map.er.ccbs_Busy",
18712         FT_NONE, BASE_NONE, NULL, 0,
18713         "gsm_map_er.NULL", HFILL }},
18714     { &hf_gsm_map_er_gprsConnectionSuspended,
18715       { "gprsConnectionSuspended", "gsm_map.er.gprsConnectionSuspended",
18716         FT_NONE, BASE_NONE, NULL, 0,
18717         "gsm_map_er.NULL", HFILL }},
18718     { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic,
18719       { "unauthorizedLCSClient-Diagnostic", "gsm_map.er.unauthorizedLCSClient_Diagnostic",
18720         FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals), 0,
18721         "gsm_map_er.UnauthorizedLCSClient_Diagnostic", HFILL }},
18722     { &hf_gsm_map_er_positionMethodFailure_Diagnostic,
18723       { "positionMethodFailure-Diagnostic", "gsm_map.er.positionMethodFailure_Diagnostic",
18724         FT_UINT32, BASE_DEC, VALS(gsm_map_er_PositionMethodFailure_Diagnostic_vals), 0,
18725         "gsm_map_er.PositionMethodFailure_Diagnostic", HFILL }},
18726
18727 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
18728
18729     { &hf_gsm_map_sm_msisdn,
18730       { "msisdn", "gsm_map.sm.msisdn",
18731         FT_BYTES, BASE_HEX, NULL, 0,
18732         "gsm_map.ISDN_AddressString", HFILL }},
18733     { &hf_gsm_map_sm_sm_RP_PRI,
18734       { "sm-RP-PRI", "gsm_map.sm.sm_RP_PRI",
18735         FT_BOOLEAN, 8, NULL, 0,
18736         "gsm_map_sm.BOOLEAN", HFILL }},
18737     { &hf_gsm_map_sm_serviceCentreAddress,
18738       { "serviceCentreAddress", "gsm_map.sm.serviceCentreAddress",
18739         FT_BYTES, BASE_HEX, NULL, 0,
18740         "gsm_map.AddressString", HFILL }},
18741     { &hf_gsm_map_sm_extensionContainer,
18742       { "extensionContainer", "gsm_map.sm.extensionContainer",
18743         FT_NONE, BASE_NONE, NULL, 0,
18744         "gsm_map.ExtensionContainer", HFILL }},
18745     { &hf_gsm_map_sm_gprsSupportIndicator,
18746       { "gprsSupportIndicator", "gsm_map.sm.gprsSupportIndicator",
18747         FT_NONE, BASE_NONE, NULL, 0,
18748         "gsm_map_sm.NULL", HFILL }},
18749     { &hf_gsm_map_sm_sm_RP_MTI,
18750       { "sm-RP-MTI", "gsm_map.sm.sm_RP_MTI",
18751         FT_UINT32, BASE_DEC, NULL, 0,
18752         "gsm_map_sm.SM_RP_MTI", HFILL }},
18753     { &hf_gsm_map_sm_sm_RP_SMEA,
18754       { "sm-RP-SMEA", "gsm_map.sm.sm_RP_SMEA",
18755         FT_BYTES, BASE_HEX, NULL, 0,
18756         "gsm_map_sm.SM_RP_SMEA", HFILL }},
18757     { &hf_gsm_map_sm_sm_deliveryNotIntended,
18758       { "sm-deliveryNotIntended", "gsm_map.sm.sm_deliveryNotIntended",
18759         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryNotIntended_vals), 0,
18760         "gsm_map_sm.SM_DeliveryNotIntended", HFILL }},
18761     { &hf_gsm_map_sm_imsi,
18762       { "imsi", "gsm_map.sm.imsi",
18763         FT_BYTES, BASE_HEX, NULL, 0,
18764         "gsm_map.IMSI", HFILL }},
18765     { &hf_gsm_map_sm_locationInfoWithLMSI,
18766       { "locationInfoWithLMSI", "gsm_map.sm.locationInfoWithLMSI",
18767         FT_NONE, BASE_NONE, NULL, 0,
18768         "gsm_map_sm.LocationInfoWithLMSI", HFILL }},
18769     { &hf_gsm_map_sm_networkNode_Number,
18770       { "networkNode-Number", "gsm_map.sm.networkNode_Number",
18771         FT_BYTES, BASE_HEX, NULL, 0,
18772         "gsm_map.ISDN_AddressString", HFILL }},
18773     { &hf_gsm_map_sm_lmsi,
18774       { "lmsi", "gsm_map.sm.lmsi",
18775         FT_BYTES, BASE_HEX, NULL, 0,
18776         "gsm_map.LMSI", HFILL }},
18777     { &hf_gsm_map_sm_gprsNodeIndicator,
18778       { "gprsNodeIndicator", "gsm_map.sm.gprsNodeIndicator",
18779         FT_NONE, BASE_NONE, NULL, 0,
18780         "gsm_map_sm.NULL", HFILL }},
18781     { &hf_gsm_map_sm_additional_Number,
18782       { "additional-Number", "gsm_map.sm.additional_Number",
18783         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
18784         "gsm_map_sm.Additional_Number", HFILL }},
18785     { &hf_gsm_map_sm_msc_Number,
18786       { "msc-Number", "gsm_map.sm.msc_Number",
18787         FT_BYTES, BASE_HEX, NULL, 0,
18788         "gsm_map.ISDN_AddressString", HFILL }},
18789     { &hf_gsm_map_sm_sgsn_Number,
18790       { "sgsn-Number", "gsm_map.sm.sgsn_Number",
18791         FT_BYTES, BASE_HEX, NULL, 0,
18792         "gsm_map.ISDN_AddressString", HFILL }},
18793     { &hf_gsm_map_sm_sm_RP_DA,
18794       { "sm-RP-DA", "gsm_map.sm.sm_RP_DA",
18795         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_DA_vals), 0,
18796         "gsm_map_sm.SM_RP_DA", HFILL }},
18797     { &hf_gsm_map_sm_sm_RP_OA,
18798       { "sm-RP-OA", "gsm_map.sm.sm_RP_OA",
18799         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_OA_vals), 0,
18800         "gsm_map_sm.SM_RP_OA", HFILL }},
18801     { &hf_gsm_map_sm_sm_RP_UI,
18802       { "sm-RP-UI", "gsm_map.sm.sm_RP_UI",
18803         FT_BYTES, BASE_HEX, NULL, 0,
18804         "gsm_map.SignalInfo", HFILL }},
18805     { &hf_gsm_map_sm_moreMessagesToSend,
18806       { "moreMessagesToSend", "gsm_map.sm.moreMessagesToSend",
18807         FT_NONE, BASE_NONE, NULL, 0,
18808         "gsm_map_sm.NULL", HFILL }},
18809     { &hf_gsm_map_sm_serviceCentreAddressDA,
18810       { "serviceCentreAddressDA", "gsm_map.sm.serviceCentreAddressDA",
18811         FT_BYTES, BASE_HEX, NULL, 0,
18812         "gsm_map.AddressString", HFILL }},
18813     { &hf_gsm_map_sm_noSM_RP_DA,
18814       { "noSM-RP-DA", "gsm_map.sm.noSM_RP_DA",
18815         FT_NONE, BASE_NONE, NULL, 0,
18816         "gsm_map_sm.NULL", HFILL }},
18817     { &hf_gsm_map_sm_msisdn_01,
18818       { "msisdn", "gsm_map.sm.msisdn",
18819         FT_BYTES, BASE_HEX, NULL, 0,
18820         "gsm_map_sm.T_msisdn", HFILL }},
18821     { &hf_gsm_map_sm_serviceCentreAddressOA,
18822       { "serviceCentreAddressOA", "gsm_map.sm.serviceCentreAddressOA",
18823         FT_BYTES, BASE_HEX, NULL, 0,
18824         "gsm_map_sm.T_serviceCentreAddressOA", HFILL }},
18825     { &hf_gsm_map_sm_noSM_RP_OA,
18826       { "noSM-RP-OA", "gsm_map.sm.noSM_RP_OA",
18827         FT_NONE, BASE_NONE, NULL, 0,
18828         "gsm_map_sm.NULL", HFILL }},
18829     { &hf_gsm_map_sm_sm_DeliveryOutcome,
18830       { "sm-DeliveryOutcome", "gsm_map.sm.sm_DeliveryOutcome",
18831         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
18832         "gsm_map_sm.SM_DeliveryOutcome", HFILL }},
18833     { &hf_gsm_map_sm_absentSubscriberDiagnosticSM,
18834       { "absentSubscriberDiagnosticSM", "gsm_map.sm.absentSubscriberDiagnosticSM",
18835         FT_UINT32, BASE_DEC, NULL, 0,
18836         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18837     { &hf_gsm_map_sm_deliveryOutcomeIndicator,
18838       { "deliveryOutcomeIndicator", "gsm_map.sm.deliveryOutcomeIndicator",
18839         FT_NONE, BASE_NONE, NULL, 0,
18840         "gsm_map_sm.NULL", HFILL }},
18841     { &hf_gsm_map_sm_additionalSM_DeliveryOutcome,
18842       { "additionalSM-DeliveryOutcome", "gsm_map.sm.additionalSM_DeliveryOutcome",
18843         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
18844         "gsm_map_sm.SM_DeliveryOutcome", HFILL }},
18845     { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM,
18846       { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.sm.additionalAbsentSubscriberDiagnosticSM",
18847         FT_UINT32, BASE_DEC, NULL, 0,
18848         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18849     { &hf_gsm_map_sm_ip_sm_gw_Indicator,
18850       { "ip-sm-gw-Indicator", "gsm_map.sm.ip_sm_gw_Indicator",
18851         FT_NONE, BASE_NONE, NULL, 0,
18852         "gsm_map_sm.NULL", HFILL }},
18853     { &hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome,
18854       { "ip-sm-gw-sm-deliveryOutcome", "gsm_map.sm.ip_sm_gw_sm_deliveryOutcome",
18855         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
18856         "gsm_map_sm.SM_DeliveryOutcome", HFILL }},
18857     { &hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM,
18858       { "ip-sm-gw-absentSubscriberDiagnosticSM", "gsm_map.sm.ip_sm_gw_absentSubscriberDiagnosticSM",
18859         FT_UINT32, BASE_DEC, NULL, 0,
18860         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18861     { &hf_gsm_map_sm_storedMSISDN,
18862       { "storedMSISDN", "gsm_map.sm.storedMSISDN",
18863         FT_BYTES, BASE_HEX, NULL, 0,
18864         "gsm_map.ISDN_AddressString", HFILL }},
18865     { &hf_gsm_map_sm_mw_Status,
18866       { "mw-Status", "gsm_map.sm.mw_Status",
18867         FT_BYTES, BASE_HEX, NULL, 0,
18868         "gsm_map_sm.MW_Status", HFILL }},
18869     { &hf_gsm_map_sm_alertReason,
18870       { "alertReason", "gsm_map.sm.alertReason",
18871         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_AlertReason_vals), 0,
18872         "gsm_map_sm.AlertReason", HFILL }},
18873     { &hf_gsm_map_sm_alertReasonIndicator,
18874       { "alertReasonIndicator", "gsm_map.sm.alertReasonIndicator",
18875         FT_NONE, BASE_NONE, NULL, 0,
18876         "gsm_map_sm.NULL", HFILL }},
18877     { &hf_gsm_map_sm_additionalAlertReasonIndicator,
18878       { "additionalAlertReasonIndicator", "gsm_map.sm.additionalAlertReasonIndicator",
18879         FT_NONE, BASE_NONE, NULL, 0,
18880         "gsm_map_sm.NULL", HFILL }},
18881     { &hf_gsm_map_sm_asciCallReference,
18882       { "asciCallReference", "gsm_map.sm.asciCallReference",
18883         FT_BYTES, BASE_HEX, NULL, 0,
18884         "gsm_map.ASCI_CallReference", HFILL }},
18885     { &hf_gsm_map_sm_dispatcherList,
18886       { "dispatcherList", "gsm_map.sm.dispatcherList",
18887         FT_UINT32, BASE_DEC, NULL, 0,
18888         "gsm_map_sm.DispatcherList", HFILL }},
18889     { &hf_gsm_map_sm_ongoingCall,
18890       { "ongoingCall", "gsm_map.sm.ongoingCall",
18891         FT_NONE, BASE_NONE, NULL, 0,
18892         "gsm_map_sm.NULL", HFILL }},
18893     { &hf_gsm_map_sm_DispatcherList_item,
18894       { "ISDN-AddressString", "gsm_map.sm.ISDN_AddressString",
18895         FT_BYTES, BASE_HEX, NULL, 0,
18896         "gsm_map.ISDN_AddressString", HFILL }},
18897     { &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded,
18898       { "sc-AddressNotIncluded", "gsm_map.sm.sc-AddressNotIncluded",
18899         FT_BOOLEAN, 8, NULL, 0x80,
18900         "", HFILL }},
18901     { &hf_gsm_map_sm_MW_Status_mnrf_Set,
18902       { "mnrf-Set", "gsm_map.sm.mnrf-Set",
18903         FT_BOOLEAN, 8, NULL, 0x40,
18904         "", HFILL }},
18905     { &hf_gsm_map_sm_MW_Status_mcef_Set,
18906       { "mcef-Set", "gsm_map.sm.mcef-Set",
18907         FT_BOOLEAN, 8, NULL, 0x20,
18908         "", HFILL }},
18909     { &hf_gsm_map_sm_MW_Status_mnrg_Set,
18910       { "mnrg-Set", "gsm_map.sm.mnrg-Set",
18911         FT_BOOLEAN, 8, NULL, 0x10,
18912         "", HFILL }},
18913
18914 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
18915
18916     { &hf_gsm_map_om_imsi,
18917       { "imsi", "gsm_map.om.imsi",
18918         FT_BYTES, BASE_HEX, NULL, 0,
18919         "gsm_map.IMSI", HFILL }},
18920     { &hf_gsm_map_om_traceReference,
18921       { "traceReference", "gsm_map.om.traceReference",
18922         FT_BYTES, BASE_HEX, NULL, 0,
18923         "gsm_map_om.TraceReference", HFILL }},
18924     { &hf_gsm_map_om_traceType,
18925       { "traceType", "gsm_map.om.traceType",
18926         FT_UINT32, BASE_DEC, NULL, 0,
18927         "gsm_map_om.TraceType", HFILL }},
18928     { &hf_gsm_map_om_omc_Id,
18929       { "omc-Id", "gsm_map.om.omc_Id",
18930         FT_BYTES, BASE_HEX, NULL, 0,
18931         "gsm_map.AddressString", HFILL }},
18932     { &hf_gsm_map_om_extensionContainer,
18933       { "extensionContainer", "gsm_map.om.extensionContainer",
18934         FT_NONE, BASE_NONE, NULL, 0,
18935         "gsm_map.ExtensionContainer", HFILL }},
18936     { &hf_gsm_map_om_traceReference2,
18937       { "traceReference2", "gsm_map.om.traceReference2",
18938         FT_BYTES, BASE_HEX, NULL, 0,
18939         "gsm_map_om.TraceReference2", HFILL }},
18940     { &hf_gsm_map_om_traceDepthList,
18941       { "traceDepthList", "gsm_map.om.traceDepthList",
18942         FT_NONE, BASE_NONE, NULL, 0,
18943         "gsm_map_om.TraceDepthList", HFILL }},
18944     { &hf_gsm_map_om_traceNE_TypeList,
18945       { "traceNE-TypeList", "gsm_map.om.traceNE_TypeList",
18946         FT_BYTES, BASE_HEX, NULL, 0,
18947         "gsm_map_om.TraceNE_TypeList", HFILL }},
18948     { &hf_gsm_map_om_traceInterfaceList,
18949       { "traceInterfaceList", "gsm_map.om.traceInterfaceList",
18950         FT_NONE, BASE_NONE, NULL, 0,
18951         "gsm_map_om.TraceInterfaceList", HFILL }},
18952     { &hf_gsm_map_om_traceEventList,
18953       { "traceEventList", "gsm_map.om.traceEventList",
18954         FT_NONE, BASE_NONE, NULL, 0,
18955         "gsm_map_om.TraceEventList", HFILL }},
18956     { &hf_gsm_map_om_msc_s_TraceDepth,
18957       { "msc-s-TraceDepth", "gsm_map.om.msc_s_TraceDepth",
18958         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18959         "gsm_map_om.TraceDepth", HFILL }},
18960     { &hf_gsm_map_om_mgw_TraceDepth,
18961       { "mgw-TraceDepth", "gsm_map.om.mgw_TraceDepth",
18962         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18963         "gsm_map_om.TraceDepth", HFILL }},
18964     { &hf_gsm_map_om_sgsn_TraceDepth,
18965       { "sgsn-TraceDepth", "gsm_map.om.sgsn_TraceDepth",
18966         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18967         "gsm_map_om.TraceDepth", HFILL }},
18968     { &hf_gsm_map_om_ggsn_TraceDepth,
18969       { "ggsn-TraceDepth", "gsm_map.om.ggsn_TraceDepth",
18970         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18971         "gsm_map_om.TraceDepth", HFILL }},
18972     { &hf_gsm_map_om_rnc_TraceDepth,
18973       { "rnc-TraceDepth", "gsm_map.om.rnc_TraceDepth",
18974         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18975         "gsm_map_om.TraceDepth", HFILL }},
18976     { &hf_gsm_map_om_bmsc_TraceDepth,
18977       { "bmsc-TraceDepth", "gsm_map.om.bmsc_TraceDepth",
18978         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18979         "gsm_map_om.TraceDepth", HFILL }},
18980     { &hf_gsm_map_om_msc_s_List,
18981       { "msc-s-List", "gsm_map.om.msc_s_List",
18982         FT_BYTES, BASE_HEX, NULL, 0,
18983         "gsm_map_om.MSC_S_InterfaceList", HFILL }},
18984     { &hf_gsm_map_om_mgw_List,
18985       { "mgw-List", "gsm_map.om.mgw_List",
18986         FT_BYTES, BASE_HEX, NULL, 0,
18987         "gsm_map_om.MGW_InterfaceList", HFILL }},
18988     { &hf_gsm_map_om_sgsn_List,
18989       { "sgsn-List", "gsm_map.om.sgsn_List",
18990         FT_BYTES, BASE_HEX, NULL, 0,
18991         "gsm_map_om.SGSN_InterfaceList", HFILL }},
18992     { &hf_gsm_map_om_ggsn_List,
18993       { "ggsn-List", "gsm_map.om.ggsn_List",
18994         FT_BYTES, BASE_HEX, NULL, 0,
18995         "gsm_map_om.GGSN_InterfaceList", HFILL }},
18996     { &hf_gsm_map_om_rnc_List,
18997       { "rnc-List", "gsm_map.om.rnc_List",
18998         FT_BYTES, BASE_HEX, NULL, 0,
18999         "gsm_map_om.RNC_InterfaceList", HFILL }},
19000     { &hf_gsm_map_om_bmsc_List,
19001       { "bmsc-List", "gsm_map.om.bmsc_List",
19002         FT_BYTES, BASE_HEX, NULL, 0,
19003         "gsm_map_om.BMSC_InterfaceList", HFILL }},
19004     { &hf_gsm_map_om_msc_s_List_01,
19005       { "msc-s-List", "gsm_map.om.msc_s_List",
19006         FT_BYTES, BASE_HEX, NULL, 0,
19007         "gsm_map_om.MSC_S_EventList", HFILL }},
19008     { &hf_gsm_map_om_mgw_List_01,
19009       { "mgw-List", "gsm_map.om.mgw_List",
19010         FT_BYTES, BASE_HEX, NULL, 0,
19011         "gsm_map_om.MGW_EventList", HFILL }},
19012     { &hf_gsm_map_om_sgsn_List_01,
19013       { "sgsn-List", "gsm_map.om.sgsn_List",
19014         FT_BYTES, BASE_HEX, NULL, 0,
19015         "gsm_map_om.SGSN_EventList", HFILL }},
19016     { &hf_gsm_map_om_ggsn_List_01,
19017       { "ggsn-List", "gsm_map.om.ggsn_List",
19018         FT_BYTES, BASE_HEX, NULL, 0,
19019         "gsm_map_om.GGSN_EventList", HFILL }},
19020     { &hf_gsm_map_om_bmsc_List_01,
19021       { "bmsc-List", "gsm_map.om.bmsc_List",
19022         FT_BYTES, BASE_HEX, NULL, 0,
19023         "gsm_map_om.BMSC_EventList", HFILL }},
19024     { &hf_gsm_map_om_traceRecordingSessionReference,
19025       { "traceRecordingSessionReference", "gsm_map.om.traceRecordingSessionReference",
19026         FT_BYTES, BASE_HEX, NULL, 0,
19027         "gsm_map_om.TraceRecordingSessionReference", HFILL }},
19028     { &hf_gsm_map_om_rnc_InterfaceList,
19029       { "rnc-InterfaceList", "gsm_map.om.rnc_InterfaceList",
19030         FT_BYTES, BASE_HEX, NULL, 0,
19031         "gsm_map_om.RNC_InterfaceList", HFILL }},
19032     { &hf_gsm_map_om_msc_s_InterfaceList,
19033       { "msc-s-InterfaceList", "gsm_map.om.msc_s_InterfaceList",
19034         FT_BYTES, BASE_HEX, NULL, 0,
19035         "gsm_map_om.MSC_S_InterfaceList", HFILL }},
19036     { &hf_gsm_map_om_msc_s_EventList,
19037       { "msc-s-EventList", "gsm_map.om.msc_s_EventList",
19038         FT_BYTES, BASE_HEX, NULL, 0,
19039         "gsm_map_om.MSC_S_EventList", HFILL }},
19040     { &hf_gsm_map_om_mgw_InterfaceList,
19041       { "mgw-InterfaceList", "gsm_map.om.mgw_InterfaceList",
19042         FT_BYTES, BASE_HEX, NULL, 0,
19043         "gsm_map_om.MGW_InterfaceList", HFILL }},
19044     { &hf_gsm_map_om_mgw_EventList,
19045       { "mgw-EventList", "gsm_map.om.mgw_EventList",
19046         FT_BYTES, BASE_HEX, NULL, 0,
19047         "gsm_map_om.MGW_EventList", HFILL }},
19048     { &hf_gsm_map_om_traceSupportIndicator,
19049       { "traceSupportIndicator", "gsm_map.om.traceSupportIndicator",
19050         FT_NONE, BASE_NONE, NULL, 0,
19051         "gsm_map_om.NULL", HFILL }},
19052     { &hf_gsm_map_om_TraceNE_TypeList_msc_s,
19053       { "msc-s", "gsm_map.om.msc-s",
19054         FT_BOOLEAN, 8, NULL, 0x80,
19055         "", HFILL }},
19056     { &hf_gsm_map_om_TraceNE_TypeList_mgw,
19057       { "mgw", "gsm_map.om.mgw",
19058         FT_BOOLEAN, 8, NULL, 0x40,
19059         "", HFILL }},
19060     { &hf_gsm_map_om_TraceNE_TypeList_sgsn,
19061       { "sgsn", "gsm_map.om.sgsn",
19062         FT_BOOLEAN, 8, NULL, 0x20,
19063         "", HFILL }},
19064     { &hf_gsm_map_om_TraceNE_TypeList_ggsn,
19065       { "ggsn", "gsm_map.om.ggsn",
19066         FT_BOOLEAN, 8, NULL, 0x10,
19067         "", HFILL }},
19068     { &hf_gsm_map_om_TraceNE_TypeList_rnc,
19069       { "rnc", "gsm_map.om.rnc",
19070         FT_BOOLEAN, 8, NULL, 0x08,
19071         "", HFILL }},
19072     { &hf_gsm_map_om_TraceNE_TypeList_bm_sc,
19073       { "bm-sc", "gsm_map.om.bm-sc",
19074         FT_BOOLEAN, 8, NULL, 0x04,
19075         "", HFILL }},
19076     { &hf_gsm_map_om_MSC_S_InterfaceList_a,
19077       { "a", "gsm_map.om.a",
19078         FT_BOOLEAN, 8, NULL, 0x80,
19079         "", HFILL }},
19080     { &hf_gsm_map_om_MSC_S_InterfaceList_iu,
19081       { "iu", "gsm_map.om.iu",
19082         FT_BOOLEAN, 8, NULL, 0x40,
19083         "", HFILL }},
19084     { &hf_gsm_map_om_MSC_S_InterfaceList_mc,
19085       { "mc", "gsm_map.om.mc",
19086         FT_BOOLEAN, 8, NULL, 0x20,
19087         "", HFILL }},
19088     { &hf_gsm_map_om_MSC_S_InterfaceList_map_g,
19089       { "map-g", "gsm_map.om.map-g",
19090         FT_BOOLEAN, 8, NULL, 0x10,
19091         "", HFILL }},
19092     { &hf_gsm_map_om_MSC_S_InterfaceList_map_b,
19093       { "map-b", "gsm_map.om.map-b",
19094         FT_BOOLEAN, 8, NULL, 0x08,
19095         "", HFILL }},
19096     { &hf_gsm_map_om_MSC_S_InterfaceList_map_e,
19097       { "map-e", "gsm_map.om.map-e",
19098         FT_BOOLEAN, 8, NULL, 0x04,
19099         "", HFILL }},
19100     { &hf_gsm_map_om_MSC_S_InterfaceList_map_f,
19101       { "map-f", "gsm_map.om.map-f",
19102         FT_BOOLEAN, 8, NULL, 0x02,
19103         "", HFILL }},
19104     { &hf_gsm_map_om_MSC_S_InterfaceList_cap,
19105       { "cap", "gsm_map.om.cap",
19106         FT_BOOLEAN, 8, NULL, 0x01,
19107         "", HFILL }},
19108     { &hf_gsm_map_om_MSC_S_InterfaceList_map_d,
19109       { "map-d", "gsm_map.om.map-d",
19110         FT_BOOLEAN, 8, NULL, 0x80,
19111         "", HFILL }},
19112     { &hf_gsm_map_om_MSC_S_InterfaceList_map_c,
19113       { "map-c", "gsm_map.om.map-c",
19114         FT_BOOLEAN, 8, NULL, 0x40,
19115         "", HFILL }},
19116     { &hf_gsm_map_om_MGW_InterfaceList_mc,
19117       { "mc", "gsm_map.om.mc",
19118         FT_BOOLEAN, 8, NULL, 0x80,
19119         "", HFILL }},
19120     { &hf_gsm_map_om_MGW_InterfaceList_nb_up,
19121       { "nb-up", "gsm_map.om.nb-up",
19122         FT_BOOLEAN, 8, NULL, 0x40,
19123         "", HFILL }},
19124     { &hf_gsm_map_om_MGW_InterfaceList_iu_up,
19125       { "iu-up", "gsm_map.om.iu-up",
19126         FT_BOOLEAN, 8, NULL, 0x20,
19127         "", HFILL }},
19128     { &hf_gsm_map_om_SGSN_InterfaceList_gb,
19129       { "gb", "gsm_map.om.gb",
19130         FT_BOOLEAN, 8, NULL, 0x80,
19131         "", HFILL }},
19132     { &hf_gsm_map_om_SGSN_InterfaceList_iu,
19133       { "iu", "gsm_map.om.iu",
19134         FT_BOOLEAN, 8, NULL, 0x40,
19135         "", HFILL }},
19136     { &hf_gsm_map_om_SGSN_InterfaceList_gn,
19137       { "gn", "gsm_map.om.gn",
19138         FT_BOOLEAN, 8, NULL, 0x20,
19139         "", HFILL }},
19140     { &hf_gsm_map_om_SGSN_InterfaceList_map_gr,
19141       { "map-gr", "gsm_map.om.map-gr",
19142         FT_BOOLEAN, 8, NULL, 0x10,
19143         "", HFILL }},
19144     { &hf_gsm_map_om_SGSN_InterfaceList_map_gd,
19145       { "map-gd", "gsm_map.om.map-gd",
19146         FT_BOOLEAN, 8, NULL, 0x08,
19147         "", HFILL }},
19148     { &hf_gsm_map_om_SGSN_InterfaceList_map_gf,
19149       { "map-gf", "gsm_map.om.map-gf",
19150         FT_BOOLEAN, 8, NULL, 0x04,
19151         "", HFILL }},
19152     { &hf_gsm_map_om_SGSN_InterfaceList_gs,
19153       { "gs", "gsm_map.om.gs",
19154         FT_BOOLEAN, 8, NULL, 0x02,
19155         "", HFILL }},
19156     { &hf_gsm_map_om_SGSN_InterfaceList_ge,
19157       { "ge", "gsm_map.om.ge",
19158         FT_BOOLEAN, 8, NULL, 0x01,
19159         "", HFILL }},
19160     { &hf_gsm_map_om_GGSN_InterfaceList_gn,
19161       { "gn", "gsm_map.om.gn",
19162         FT_BOOLEAN, 8, NULL, 0x80,
19163         "", HFILL }},
19164     { &hf_gsm_map_om_GGSN_InterfaceList_gi,
19165       { "gi", "gsm_map.om.gi",
19166         FT_BOOLEAN, 8, NULL, 0x40,
19167         "", HFILL }},
19168     { &hf_gsm_map_om_GGSN_InterfaceList_gmb,
19169       { "gmb", "gsm_map.om.gmb",
19170         FT_BOOLEAN, 8, NULL, 0x20,
19171         "", HFILL }},
19172     { &hf_gsm_map_om_RNC_InterfaceList_iu,
19173       { "iu", "gsm_map.om.iu",
19174         FT_BOOLEAN, 8, NULL, 0x80,
19175         "", HFILL }},
19176     { &hf_gsm_map_om_RNC_InterfaceList_iur,
19177       { "iur", "gsm_map.om.iur",
19178         FT_BOOLEAN, 8, NULL, 0x40,
19179         "", HFILL }},
19180     { &hf_gsm_map_om_RNC_InterfaceList_iub,
19181       { "iub", "gsm_map.om.iub",
19182         FT_BOOLEAN, 8, NULL, 0x20,
19183         "", HFILL }},
19184     { &hf_gsm_map_om_RNC_InterfaceList_uu,
19185       { "uu", "gsm_map.om.uu",
19186         FT_BOOLEAN, 8, NULL, 0x10,
19187         "", HFILL }},
19188     { &hf_gsm_map_om_BMSC_InterfaceList_gmb,
19189       { "gmb", "gsm_map.om.gmb",
19190         FT_BOOLEAN, 8, NULL, 0x80,
19191         "", HFILL }},
19192     { &hf_gsm_map_om_MSC_S_EventList_mo_mtCall,
19193       { "mo-mtCall", "gsm_map.om.mo-mtCall",
19194         FT_BOOLEAN, 8, NULL, 0x80,
19195         "", HFILL }},
19196     { &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms,
19197       { "mo-mt-sms", "gsm_map.om.mo-mt-sms",
19198         FT_BOOLEAN, 8, NULL, 0x40,
19199         "", HFILL }},
19200     { &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach,
19201       { "lu-imsiAttach-imsiDetach", "gsm_map.om.lu-imsiAttach-imsiDetach",
19202         FT_BOOLEAN, 8, NULL, 0x20,
19203         "", HFILL }},
19204     { &hf_gsm_map_om_MSC_S_EventList_handovers,
19205       { "handovers", "gsm_map.om.handovers",
19206         FT_BOOLEAN, 8, NULL, 0x10,
19207         "", HFILL }},
19208     { &hf_gsm_map_om_MSC_S_EventList_ss,
19209       { "ss", "gsm_map.om.ss",
19210         FT_BOOLEAN, 8, NULL, 0x08,
19211         "", HFILL }},
19212     { &hf_gsm_map_om_MGW_EventList_context,
19213       { "context", "gsm_map.om.context",
19214         FT_BOOLEAN, 8, NULL, 0x80,
19215         "", HFILL }},
19216     { &hf_gsm_map_om_SGSN_EventList_pdpContext,
19217       { "pdpContext", "gsm_map.om.pdpContext",
19218         FT_BOOLEAN, 8, NULL, 0x80,
19219         "", HFILL }},
19220     { &hf_gsm_map_om_SGSN_EventList_mo_mt_sms,
19221       { "mo-mt-sms", "gsm_map.om.mo-mt-sms",
19222         FT_BOOLEAN, 8, NULL, 0x40,
19223         "", HFILL }},
19224     { &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach,
19225       { "rau-gprsAttach-gprsDetach", "gsm_map.om.rau-gprsAttach-gprsDetach",
19226         FT_BOOLEAN, 8, NULL, 0x20,
19227         "", HFILL }},
19228     { &hf_gsm_map_om_SGSN_EventList_mbmsContext,
19229       { "mbmsContext", "gsm_map.om.mbmsContext",
19230         FT_BOOLEAN, 8, NULL, 0x10,
19231         "", HFILL }},
19232     { &hf_gsm_map_om_GGSN_EventList_pdpContext,
19233       { "pdpContext", "gsm_map.om.pdpContext",
19234         FT_BOOLEAN, 8, NULL, 0x80,
19235         "", HFILL }},
19236     { &hf_gsm_map_om_GGSN_EventList_mbmsContext,
19237       { "mbmsContext", "gsm_map.om.mbmsContext",
19238         FT_BOOLEAN, 8, NULL, 0x40,
19239         "", HFILL }},
19240     { &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation,
19241       { "mbmsMulticastServiceActivation", "gsm_map.om.mbmsMulticastServiceActivation",
19242         FT_BOOLEAN, 8, NULL, 0x80,
19243         "", HFILL }},
19244
19245 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
19246
19247     { &hf_gsm_map_ms_imsi,
19248       { "imsi", "gsm_map.ms.imsi",
19249         FT_BYTES, BASE_HEX, NULL, 0,
19250         "gsm_map.IMSI", HFILL }},
19251     { &hf_gsm_map_ms_msc_Number,
19252       { "msc-Number", "gsm_map.ms.msc_Number",
19253         FT_BYTES, BASE_HEX, NULL, 0,
19254         "gsm_map.ISDN_AddressString", HFILL }},
19255     { &hf_gsm_map_ms_vlr_Number,
19256       { "vlr-Number", "gsm_map.ms.vlr_Number",
19257         FT_BYTES, BASE_HEX, NULL, 0,
19258         "gsm_map.ISDN_AddressString", HFILL }},
19259     { &hf_gsm_map_ms_lmsi,
19260       { "lmsi", "gsm_map.ms.lmsi",
19261         FT_BYTES, BASE_HEX, NULL, 0,
19262         "gsm_map.LMSI", HFILL }},
19263     { &hf_gsm_map_ms_extensionContainer,
19264       { "extensionContainer", "gsm_map.ms.extensionContainer",
19265         FT_NONE, BASE_NONE, NULL, 0,
19266         "gsm_map.ExtensionContainer", HFILL }},
19267     { &hf_gsm_map_ms_vlr_Capability,
19268       { "vlr-Capability", "gsm_map.ms.vlr_Capability",
19269         FT_NONE, BASE_NONE, NULL, 0,
19270         "gsm_map_ms.VLR_Capability", HFILL }},
19271     { &hf_gsm_map_ms_informPreviousNetworkEntity,
19272       { "informPreviousNetworkEntity", "gsm_map.ms.informPreviousNetworkEntity",
19273         FT_NONE, BASE_NONE, NULL, 0,
19274         "gsm_map_ms.NULL", HFILL }},
19275     { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE,
19276       { "cs-LCS-NotSupportedByUE", "gsm_map.ms.cs_LCS_NotSupportedByUE",
19277         FT_NONE, BASE_NONE, NULL, 0,
19278         "gsm_map_ms.NULL", HFILL }},
19279     { &hf_gsm_map_ms_v_gmlc_Address,
19280       { "v-gmlc-Address", "gsm_map.ms.v_gmlc_Address",
19281         FT_BYTES, BASE_HEX, NULL, 0,
19282         "gsm_map_ms.GSN_Address", HFILL }},
19283     { &hf_gsm_map_ms_add_info,
19284       { "add-info", "gsm_map.ms.add_info",
19285         FT_NONE, BASE_NONE, NULL, 0,
19286         "gsm_map_ms.ADD_Info", HFILL }},
19287     { &hf_gsm_map_ms_pagingArea,
19288       { "pagingArea", "gsm_map.ms.pagingArea",
19289         FT_UINT32, BASE_DEC, NULL, 0,
19290         "gsm_map_ms.PagingArea", HFILL }},
19291     { &hf_gsm_map_ms_skipSubscriberDataUpdate,
19292       { "skipSubscriberDataUpdate", "gsm_map.ms.skipSubscriberDataUpdate",
19293         FT_NONE, BASE_NONE, NULL, 0,
19294         "gsm_map_ms.NULL", HFILL }},
19295     { &hf_gsm_map_ms_supportedCamelPhases,
19296       { "supportedCamelPhases", "gsm_map.ms.supportedCamelPhases",
19297         FT_BYTES, BASE_HEX, NULL, 0,
19298         "gsm_map_ms.SupportedCamelPhases", HFILL }},
19299     { &hf_gsm_map_ms_solsaSupportIndicator,
19300       { "solsaSupportIndicator", "gsm_map.ms.solsaSupportIndicator",
19301         FT_NONE, BASE_NONE, NULL, 0,
19302         "gsm_map_ms.NULL", HFILL }},
19303     { &hf_gsm_map_ms_istSupportIndicator,
19304       { "istSupportIndicator", "gsm_map.ms.istSupportIndicator",
19305         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
19306         "gsm_map_ms.IST_SupportIndicator", HFILL }},
19307     { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity,
19308       { "superChargerSupportedInServingNetworkEntity", "gsm_map.ms.superChargerSupportedInServingNetworkEntity",
19309         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SuperChargerInfo_vals), 0,
19310         "gsm_map_ms.SuperChargerInfo", HFILL }},
19311     { &hf_gsm_map_ms_longFTN_Supported,
19312       { "longFTN-Supported", "gsm_map.ms.longFTN_Supported",
19313         FT_NONE, BASE_NONE, NULL, 0,
19314         "gsm_map_ms.NULL", HFILL }},
19315     { &hf_gsm_map_ms_supportedLCS_CapabilitySets,
19316       { "supportedLCS-CapabilitySets", "gsm_map.ms.supportedLCS_CapabilitySets",
19317         FT_BYTES, BASE_HEX, NULL, 0,
19318         "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }},
19319     { &hf_gsm_map_ms_offeredCamel4CSIs,
19320       { "offeredCamel4CSIs", "gsm_map.ms.offeredCamel4CSIs",
19321         FT_BYTES, BASE_HEX, NULL, 0,
19322         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
19323     { &hf_gsm_map_ms_supportedRAT_TypesIndicator,
19324       { "supportedRAT-TypesIndicator", "gsm_map.ms.supportedRAT_TypesIndicator",
19325         FT_BYTES, BASE_HEX, NULL, 0,
19326         "gsm_map_ms.SupportedRAT_Types", HFILL }},
19327     { &hf_gsm_map_ms_longGroupID_Supported,
19328       { "longGroupID-Supported", "gsm_map.ms.longGroupID_Supported",
19329         FT_NONE, BASE_NONE, NULL, 0,
19330         "gsm_map_ms.NULL", HFILL }},
19331     { &hf_gsm_map_ms_sendSubscriberData,
19332       { "sendSubscriberData", "gsm_map.ms.sendSubscriberData",
19333         FT_NONE, BASE_NONE, NULL, 0,
19334         "gsm_map_ms.NULL", HFILL }},
19335     { &hf_gsm_map_ms_subscriberDataStored,
19336       { "subscriberDataStored", "gsm_map.ms.subscriberDataStored",
19337         FT_BYTES, BASE_HEX, NULL, 0,
19338         "gsm_map_ms.AgeIndicator", HFILL }},
19339     { &hf_gsm_map_ms_hlr_Number,
19340       { "hlr-Number", "gsm_map.ms.hlr_Number",
19341         FT_BYTES, BASE_HEX, NULL, 0,
19342         "gsm_map.ISDN_AddressString", HFILL }},
19343     { &hf_gsm_map_ms_add_Capability,
19344       { "add-Capability", "gsm_map.ms.add_Capability",
19345         FT_NONE, BASE_NONE, NULL, 0,
19346         "gsm_map_ms.NULL", HFILL }},
19347     { &hf_gsm_map_ms_pagingArea_Capability,
19348       { "pagingArea-Capability", "gsm_map.ms.pagingArea_Capability",
19349         FT_NONE, BASE_NONE, NULL, 0,
19350         "gsm_map_ms.NULL", HFILL }},
19351     { &hf_gsm_map_ms_imeisv,
19352       { "imeisv", "gsm_map.ms.imeisv",
19353         FT_BYTES, BASE_HEX, NULL, 0,
19354         "gsm_map.IMEI", HFILL }},
19355     { &hf_gsm_map_ms_PagingArea_item,
19356       { "LocationArea", "gsm_map.ms.LocationArea",
19357         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LocationArea_vals), 0,
19358         "gsm_map_ms.LocationArea", HFILL }},
19359     { &hf_gsm_map_ms_laiFixedLength,
19360       { "laiFixedLength", "gsm_map.ms.laiFixedLength",
19361         FT_BYTES, BASE_HEX, NULL, 0,
19362         "gsm_map.LAIFixedLength", HFILL }},
19363     { &hf_gsm_map_ms_lac,
19364       { "lac", "gsm_map.ms.lac",
19365         FT_BYTES, BASE_HEX, NULL, 0,
19366         "gsm_map_ms.LAC", HFILL }},
19367     { &hf_gsm_map_ms_identity,
19368       { "identity", "gsm_map.ms.identity",
19369         FT_UINT32, BASE_DEC, VALS(gsm_map_Identity_vals), 0,
19370         "gsm_map.Identity", HFILL }},
19371     { &hf_gsm_map_ms_cancellationType,
19372       { "cancellationType", "gsm_map.ms.cancellationType",
19373         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CancellationType_vals), 0,
19374         "gsm_map_ms.CancellationType", HFILL }},
19375     { &hf_gsm_map_ms_typeOfUpdate,
19376       { "typeOfUpdate", "gsm_map.ms.typeOfUpdate",
19377         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_TypeOfUpdate_vals), 0,
19378         "gsm_map_ms.TypeOfUpdate", HFILL }},
19379     { &hf_gsm_map_ms_sgsn_Number,
19380       { "sgsn-Number", "gsm_map.ms.sgsn_Number",
19381         FT_BYTES, BASE_HEX, NULL, 0,
19382         "gsm_map.ISDN_AddressString", HFILL }},
19383     { &hf_gsm_map_ms_freezeTMSI,
19384       { "freezeTMSI", "gsm_map.ms.freezeTMSI",
19385         FT_NONE, BASE_NONE, NULL, 0,
19386         "gsm_map_ms.NULL", HFILL }},
19387     { &hf_gsm_map_ms_freezeP_TMSI,
19388       { "freezeP-TMSI", "gsm_map.ms.freezeP_TMSI",
19389         FT_NONE, BASE_NONE, NULL, 0,
19390         "gsm_map_ms.NULL", HFILL }},
19391     { &hf_gsm_map_ms_freezeM_TMSI,
19392       { "freezeM-TMSI", "gsm_map.ms.freezeM_TMSI",
19393         FT_NONE, BASE_NONE, NULL, 0,
19394         "gsm_map_ms.NULL", HFILL }},
19395     { &hf_gsm_map_ms_tmsi,
19396       { "tmsi", "gsm_map.ms.tmsi",
19397         FT_BYTES, BASE_HEX, NULL, 0,
19398         "gsm_map.TMSI", HFILL }},
19399     { &hf_gsm_map_ms_numberOfRequestedVectors,
19400       { "numberOfRequestedVectors", "gsm_map.ms.numberOfRequestedVectors",
19401         FT_UINT32, BASE_DEC, NULL, 0,
19402         "gsm_map_ms.NumberOfRequestedVectors", HFILL }},
19403     { &hf_gsm_map_ms_segmentationProhibited,
19404       { "segmentationProhibited", "gsm_map.ms.segmentationProhibited",
19405         FT_NONE, BASE_NONE, NULL, 0,
19406         "gsm_map_ms.NULL", HFILL }},
19407     { &hf_gsm_map_ms_previous_LAI,
19408       { "previous-LAI", "gsm_map.ms.previous_LAI",
19409         FT_BYTES, BASE_HEX, NULL, 0,
19410         "gsm_map.LAIFixedLength", HFILL }},
19411     { &hf_gsm_map_ms_hopCounter,
19412       { "hopCounter", "gsm_map.ms.hopCounter",
19413         FT_UINT32, BASE_DEC, NULL, 0,
19414         "gsm_map_ms.HopCounter", HFILL }},
19415     { &hf_gsm_map_ms_authenticationSetList,
19416       { "authenticationSetList", "gsm_map.ms.authenticationSetList",
19417         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AuthenticationSetList_vals), 0,
19418         "gsm_map_ms.AuthenticationSetList", HFILL }},
19419     { &hf_gsm_map_ms_currentSecurityContext,
19420       { "currentSecurityContext", "gsm_map.ms.currentSecurityContext",
19421         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CurrentSecurityContext_vals), 0,
19422         "gsm_map_ms.CurrentSecurityContext", HFILL }},
19423     { &hf_gsm_map_ms_tripletList,
19424       { "tripletList", "gsm_map.ms.tripletList",
19425         FT_UINT32, BASE_DEC, NULL, 0,
19426         "gsm_map_ms.TripletList", HFILL }},
19427     { &hf_gsm_map_ms_quintupletList,
19428       { "quintupletList", "gsm_map.ms.quintupletList",
19429         FT_UINT32, BASE_DEC, NULL, 0,
19430         "gsm_map_ms.QuintupletList", HFILL }},
19431     { &hf_gsm_map_ms_TripletList_item,
19432       { "AuthenticationTriplet", "gsm_map.ms.AuthenticationTriplet",
19433         FT_NONE, BASE_NONE, NULL, 0,
19434         "gsm_map_ms.AuthenticationTriplet", HFILL }},
19435     { &hf_gsm_map_ms_QuintupletList_item,
19436       { "AuthenticationQuintuplet", "gsm_map.ms.AuthenticationQuintuplet",
19437         FT_NONE, BASE_NONE, NULL, 0,
19438         "gsm_map_ms.AuthenticationQuintuplet", HFILL }},
19439     { &hf_gsm_map_ms_rand,
19440       { "rand", "gsm_map.ms.rand",
19441         FT_BYTES, BASE_HEX, NULL, 0,
19442         "gsm_map_ms.RAND", HFILL }},
19443     { &hf_gsm_map_ms_sres,
19444       { "sres", "gsm_map.ms.sres",
19445         FT_BYTES, BASE_HEX, NULL, 0,
19446         "gsm_map_ms.SRES", HFILL }},
19447     { &hf_gsm_map_ms_kc,
19448       { "kc", "gsm_map.ms.kc",
19449         FT_BYTES, BASE_HEX, NULL, 0,
19450         "gsm_map_ms.Kc", HFILL }},
19451     { &hf_gsm_map_ms_xres,
19452       { "xres", "gsm_map.ms.xres",
19453         FT_BYTES, BASE_HEX, NULL, 0,
19454         "gsm_map_ms.XRES", HFILL }},
19455     { &hf_gsm_map_ms_ck,
19456       { "ck", "gsm_map.ms.ck",
19457         FT_BYTES, BASE_HEX, NULL, 0,
19458         "gsm_map_ms.CK", HFILL }},
19459     { &hf_gsm_map_ms_ik,
19460       { "ik", "gsm_map.ms.ik",
19461         FT_BYTES, BASE_HEX, NULL, 0,
19462         "gsm_map_ms.IK", HFILL }},
19463     { &hf_gsm_map_ms_autn,
19464       { "autn", "gsm_map.ms.autn",
19465         FT_BYTES, BASE_HEX, NULL, 0,
19466         "gsm_map_ms.AUTN", HFILL }},
19467     { &hf_gsm_map_ms_gsm_SecurityContextData,
19468       { "gsm-SecurityContextData", "gsm_map.ms.gsm_SecurityContextData",
19469         FT_NONE, BASE_NONE, NULL, 0,
19470         "gsm_map_ms.GSM_SecurityContextData", HFILL }},
19471     { &hf_gsm_map_ms_umts_SecurityContextData,
19472       { "umts-SecurityContextData", "gsm_map.ms.umts_SecurityContextData",
19473         FT_NONE, BASE_NONE, NULL, 0,
19474         "gsm_map_ms.UMTS_SecurityContextData", HFILL }},
19475     { &hf_gsm_map_ms_cksn,
19476       { "cksn", "gsm_map.ms.cksn",
19477         FT_BYTES, BASE_HEX, NULL, 0,
19478         "gsm_map_ms.Cksn", HFILL }},
19479     { &hf_gsm_map_ms_ksi,
19480       { "ksi", "gsm_map.ms.ksi",
19481         FT_BYTES, BASE_HEX, NULL, 0,
19482         "gsm_map_ms.KSI", HFILL }},
19483     { &hf_gsm_map_ms_failureCause,
19484       { "failureCause", "gsm_map.ms.failureCause",
19485         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_FailureCause_vals), 0,
19486         "gsm_map_ms.FailureCause", HFILL }},
19487     { &hf_gsm_map_ms_re_attempt,
19488       { "re-attempt", "gsm_map.ms.re_attempt",
19489         FT_BOOLEAN, 8, NULL, 0,
19490         "gsm_map_ms.BOOLEAN", HFILL }},
19491     { &hf_gsm_map_ms_accessType,
19492       { "accessType", "gsm_map.ms.accessType",
19493         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AccessType_vals), 0,
19494         "gsm_map_ms.AccessType", HFILL }},
19495     { &hf_gsm_map_ms_sgsn_Address,
19496       { "sgsn-Address", "gsm_map.ms.sgsn_Address",
19497         FT_BYTES, BASE_HEX, NULL, 0,
19498         "gsm_map_ms.GSN_Address", HFILL }},
19499     { &hf_gsm_map_ms_sgsn_Capability,
19500       { "sgsn-Capability", "gsm_map.ms.sgsn_Capability",
19501         FT_NONE, BASE_NONE, NULL, 0,
19502         "gsm_map_ms.SGSN_Capability", HFILL }},
19503     { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE,
19504       { "ps-LCS-NotSupportedByUE", "gsm_map.ms.ps_LCS_NotSupportedByUE",
19505         FT_NONE, BASE_NONE, NULL, 0,
19506         "gsm_map_ms.NULL", HFILL }},
19507     { &hf_gsm_map_ms_eps_info,
19508       { "eps-info", "gsm_map.ms.eps_info",
19509         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EPS_Info_vals), 0,
19510         "gsm_map_ms.EPS_Info", HFILL }},
19511     { &hf_gsm_map_ms_servingNodeTypeIndicator,
19512       { "servingNodeTypeIndicator", "gsm_map.ms.servingNodeTypeIndicator",
19513         FT_NONE, BASE_NONE, NULL, 0,
19514         "gsm_map_ms.NULL", HFILL }},
19515     { &hf_gsm_map_ms_usedRAT_Type,
19516       { "usedRAT-Type", "gsm_map.ms.usedRAT_Type",
19517         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Used_RAT_Type_vals), 0,
19518         "gsm_map_ms.Used_RAT_Type", HFILL }},
19519     { &hf_gsm_map_ms_pdn_gw_update,
19520       { "pdn-gw-update", "gsm_map.ms.pdn_gw_update",
19521         FT_NONE, BASE_NONE, NULL, 0,
19522         "gsm_map_ms.PDN_GW_Update", HFILL }},
19523     { &hf_gsm_map_ms_isr_Information,
19524       { "isr-Information", "gsm_map.ms.isr_Information",
19525         FT_BYTES, BASE_HEX, NULL, 0,
19526         "gsm_map_ms.ISR_Information", HFILL }},
19527     { &hf_gsm_map_ms_apn,
19528       { "apn", "gsm_map.ms.apn",
19529         FT_BYTES, BASE_HEX, NULL, 0,
19530         "gsm_map_ms.APN", HFILL }},
19531     { &hf_gsm_map_ms_pdn_gw_Identity,
19532       { "pdn-gw-Identity", "gsm_map.ms.pdn_gw_Identity",
19533         FT_NONE, BASE_NONE, NULL, 0,
19534         "gsm_map_ms.PDN_GW_Identity", HFILL }},
19535     { &hf_gsm_map_ms_contextId,
19536       { "contextId", "gsm_map.ms.contextId",
19537         FT_UINT32, BASE_DEC, NULL, 0,
19538         "gsm_map_ms.ContextId", HFILL }},
19539     { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator,
19540       { "gprsEnhancementsSupportIndicator", "gsm_map.ms.gprsEnhancementsSupportIndicator",
19541         FT_NONE, BASE_NONE, NULL, 0,
19542         "gsm_map_ms.NULL", HFILL }},
19543     { &hf_gsm_map_ms_smsCallBarringSupportIndicator,
19544       { "smsCallBarringSupportIndicator", "gsm_map.ms.smsCallBarringSupportIndicator",
19545         FT_NONE, BASE_NONE, NULL, 0,
19546         "gsm_map_ms.NULL", HFILL }},
19547     { &hf_gsm_map_ms_supportedFeatures,
19548       { "supportedFeatures", "gsm_map.ms.supportedFeatures",
19549         FT_BYTES, BASE_HEX, NULL, 0,
19550         "gsm_map_ms.SupportedFeatures", HFILL }},
19551     { &hf_gsm_map_ms_sgsn_mmeSeparationSupported,
19552       { "sgsn-mmeSeparationSupported", "gsm_map.ms.sgsn_mmeSeparationSupported",
19553         FT_NONE, BASE_NONE, NULL, 0,
19554         "gsm_map_ms.NULL", HFILL }},
19555     { &hf_gsm_map_ms_an_APDU,
19556       { "an-APDU", "gsm_map.ms.an_APDU",
19557         FT_NONE, BASE_NONE, NULL, 0,
19558         "gsm_map.AccessNetworkSignalInfo", HFILL }},
19559     { &hf_gsm_map_ms_integrityProtectionInfo,
19560       { "integrityProtectionInfo", "gsm_map.ms.integrityProtectionInfo",
19561         FT_BYTES, BASE_HEX, NULL, 0,
19562         "gsm_map_ms.IntegrityProtectionInformation", HFILL }},
19563     { &hf_gsm_map_ms_encryptionInfo,
19564       { "encryptionInfo", "gsm_map.ms.encryptionInfo",
19565         FT_BYTES, BASE_HEX, NULL, 0,
19566         "gsm_map_ms.EncryptionInformation", HFILL }},
19567     { &hf_gsm_map_ms_keyStatus,
19568       { "keyStatus", "gsm_map.ms.keyStatus",
19569         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_KeyStatus_vals), 0,
19570         "gsm_map_ms.KeyStatus", HFILL }},
19571     { &hf_gsm_map_ms_allowedGSM_Algorithms,
19572       { "allowedGSM-Algorithms", "gsm_map.ms.allowedGSM_Algorithms",
19573         FT_BYTES, BASE_HEX, NULL, 0,
19574         "gsm_map_ms.AllowedGSM_Algorithms", HFILL }},
19575     { &hf_gsm_map_ms_allowedUMTS_Algorithms,
19576       { "allowedUMTS-Algorithms", "gsm_map.ms.allowedUMTS_Algorithms",
19577         FT_NONE, BASE_NONE, NULL, 0,
19578         "gsm_map_ms.AllowedUMTS_Algorithms", HFILL }},
19579     { &hf_gsm_map_ms_radioResourceInformation,
19580       { "radioResourceInformation", "gsm_map.ms.radioResourceInformation",
19581         FT_BYTES, BASE_HEX, NULL, 0,
19582         "gsm_map_ms.RadioResourceInformation", HFILL }},
19583     { &hf_gsm_map_ms_radioResourceList,
19584       { "radioResourceList", "gsm_map.ms.radioResourceList",
19585         FT_UINT32, BASE_DEC, NULL, 0,
19586         "gsm_map_ms.RadioResourceList", HFILL }},
19587     { &hf_gsm_map_ms_bssmap_ServiceHandover,
19588       { "bssmap-ServiceHandover", "gsm_map.ms.bssmap_ServiceHandover",
19589         FT_BYTES, BASE_HEX, NULL, 0,
19590         "gsm_map_ms.BSSMAP_ServiceHandover", HFILL }},
19591     { &hf_gsm_map_ms_ranap_ServiceHandover,
19592       { "ranap-ServiceHandover", "gsm_map.ms.ranap_ServiceHandover",
19593         FT_BYTES, BASE_HEX, NULL, 0,
19594         "gsm_map_ms.RANAP_ServiceHandover", HFILL }},
19595     { &hf_gsm_map_ms_bssmap_ServiceHandoverList,
19596       { "bssmap-ServiceHandoverList", "gsm_map.ms.bssmap_ServiceHandoverList",
19597         FT_UINT32, BASE_DEC, NULL, 0,
19598         "gsm_map_ms.BSSMAP_ServiceHandoverList", HFILL }},
19599     { &hf_gsm_map_ms_currentlyUsedCodec,
19600       { "currentlyUsedCodec", "gsm_map.ms.currentlyUsedCodec",
19601         FT_BYTES, BASE_HEX, NULL, 0,
19602         "gsm_map_ms.Codec", HFILL }},
19603     { &hf_gsm_map_ms_iuSupportedCodecsList,
19604       { "iuSupportedCodecsList", "gsm_map.ms.iuSupportedCodecsList",
19605         FT_NONE, BASE_NONE, NULL, 0,
19606         "gsm_map_ms.SupportedCodecsList", HFILL }},
19607     { &hf_gsm_map_ms_rab_ConfigurationIndicator,
19608       { "rab-ConfigurationIndicator", "gsm_map.ms.rab_ConfigurationIndicator",
19609         FT_NONE, BASE_NONE, NULL, 0,
19610         "gsm_map_ms.NULL", HFILL }},
19611     { &hf_gsm_map_ms_iuSelectedCodec,
19612       { "iuSelectedCodec", "gsm_map.ms.iuSelectedCodec",
19613         FT_BYTES, BASE_HEX, NULL, 0,
19614         "gsm_map_ms.Codec", HFILL }},
19615     { &hf_gsm_map_ms_alternativeChannelType,
19616       { "alternativeChannelType", "gsm_map.ms.alternativeChannelType",
19617         FT_BYTES, BASE_HEX, NULL, 0,
19618         "gsm_map_ms.RadioResourceInformation", HFILL }},
19619     { &hf_gsm_map_ms_tracePropagationList,
19620       { "tracePropagationList", "gsm_map.ms.tracePropagationList",
19621         FT_NONE, BASE_NONE, NULL, 0,
19622         "gsm_map_om.TracePropagationList", HFILL }},
19623     { &hf_gsm_map_ms_integrityProtectionAlgorithms,
19624       { "integrityProtectionAlgorithms", "gsm_map.ms.integrityProtectionAlgorithms",
19625         FT_BYTES, BASE_HEX, NULL, 0,
19626         "gsm_map_ms.PermittedIntegrityProtectionAlgorithms", HFILL }},
19627     { &hf_gsm_map_ms_encryptionAlgorithms,
19628       { "encryptionAlgorithms", "gsm_map.ms.encryptionAlgorithms",
19629         FT_BYTES, BASE_HEX, NULL, 0,
19630         "gsm_map_ms.PermittedEncryptionAlgorithms", HFILL }},
19631     { &hf_gsm_map_ms_targetCellId,
19632       { "targetCellId", "gsm_map.ms.targetCellId",
19633         FT_BYTES, BASE_HEX, NULL, 0,
19634         "gsm_map.GlobalCellId", HFILL }},
19635     { &hf_gsm_map_ms_ho_NumberNotRequired,
19636       { "ho-NumberNotRequired", "gsm_map.ms.ho_NumberNotRequired",
19637         FT_NONE, BASE_NONE, NULL, 0,
19638         "gsm_map_ms.NULL", HFILL }},
19639     { &hf_gsm_map_ms_targetRNCId,
19640       { "targetRNCId", "gsm_map.ms.targetRNCId",
19641         FT_BYTES, BASE_HEX, NULL, 0,
19642         "gsm_map_ms.RNCId", HFILL }},
19643     { &hf_gsm_map_ms_multipleBearerRequested,
19644       { "multipleBearerRequested", "gsm_map.ms.multipleBearerRequested",
19645         FT_NONE, BASE_NONE, NULL, 0,
19646         "gsm_map_ms.NULL", HFILL }},
19647     { &hf_gsm_map_ms_rab_Id,
19648       { "rab-Id", "gsm_map.ms.rab_Id",
19649         FT_UINT32, BASE_DEC, NULL, 0,
19650         "gsm_map_ms.RAB_Id", HFILL }},
19651     { &hf_gsm_map_ms_asciCallReference,
19652       { "asciCallReference", "gsm_map.ms.asciCallReference",
19653         FT_BYTES, BASE_HEX, NULL, 0,
19654         "gsm_map.ASCI_CallReference", HFILL }},
19655     { &hf_gsm_map_ms_geran_classmark,
19656       { "geran-classmark", "gsm_map.ms.geran_classmark",
19657         FT_BYTES, BASE_HEX, NULL, 0,
19658         "gsm_map_ms.GERAN_Classmark", HFILL }},
19659     { &hf_gsm_map_ms_iuCurrentlyUsedCodec,
19660       { "iuCurrentlyUsedCodec", "gsm_map.ms.iuCurrentlyUsedCodec",
19661         FT_BYTES, BASE_HEX, NULL, 0,
19662         "gsm_map_ms.Codec", HFILL }},
19663     { &hf_gsm_map_ms_uesbi_Iu,
19664       { "uesbi-Iu", "gsm_map.ms.uesbi_Iu",
19665         FT_NONE, BASE_NONE, NULL, 0,
19666         "gsm_map_ms.UESBI_Iu", HFILL }},
19667     { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item,
19668       { "BSSMAP-ServiceHandoverInfo", "gsm_map.ms.BSSMAP_ServiceHandoverInfo",
19669         FT_NONE, BASE_NONE, NULL, 0,
19670         "gsm_map_ms.BSSMAP_ServiceHandoverInfo", HFILL }},
19671     { &hf_gsm_map_ms_RadioResourceList_item,
19672       { "RadioResource", "gsm_map.ms.RadioResource",
19673         FT_NONE, BASE_NONE, NULL, 0,
19674         "gsm_map_ms.RadioResource", HFILL }},
19675     { &hf_gsm_map_ms_handoverNumber,
19676       { "handoverNumber", "gsm_map.ms.handoverNumber",
19677         FT_BYTES, BASE_HEX, NULL, 0,
19678         "gsm_map.ISDN_AddressString", HFILL }},
19679     { &hf_gsm_map_ms_relocationNumberList,
19680       { "relocationNumberList", "gsm_map.ms.relocationNumberList",
19681         FT_UINT32, BASE_DEC, NULL, 0,
19682         "gsm_map_ms.RelocationNumberList", HFILL }},
19683     { &hf_gsm_map_ms_multicallBearerInfo,
19684       { "multicallBearerInfo", "gsm_map.ms.multicallBearerInfo",
19685         FT_UINT32, BASE_DEC, NULL, 0,
19686         "gsm_map_ms.MulticallBearerInfo", HFILL }},
19687     { &hf_gsm_map_ms_multipleBearerNotSupported,
19688       { "multipleBearerNotSupported", "gsm_map.ms.multipleBearerNotSupported",
19689         FT_NONE, BASE_NONE, NULL, 0,
19690         "gsm_map_ms.NULL", HFILL }},
19691     { &hf_gsm_map_ms_selectedUMTS_Algorithms,
19692       { "selectedUMTS-Algorithms", "gsm_map.ms.selectedUMTS_Algorithms",
19693         FT_NONE, BASE_NONE, NULL, 0,
19694         "gsm_map_ms.SelectedUMTS_Algorithms", HFILL }},
19695     { &hf_gsm_map_ms_chosenRadioResourceInformation,
19696       { "chosenRadioResourceInformation", "gsm_map.ms.chosenRadioResourceInformation",
19697         FT_NONE, BASE_NONE, NULL, 0,
19698         "gsm_map_ms.ChosenRadioResourceInformation", HFILL }},
19699     { &hf_gsm_map_ms_iuAvailableCodecsList,
19700       { "iuAvailableCodecsList", "gsm_map.ms.iuAvailableCodecsList",
19701         FT_NONE, BASE_NONE, NULL, 0,
19702         "gsm_map_ms.CodecList", HFILL }},
19703     { &hf_gsm_map_ms_integrityProtectionAlgorithm,
19704       { "integrityProtectionAlgorithm", "gsm_map.ms.integrityProtectionAlgorithm",
19705         FT_BYTES, BASE_HEX, NULL, 0,
19706         "gsm_map_ms.ChosenIntegrityProtectionAlgorithm", HFILL }},
19707     { &hf_gsm_map_ms_encryptionAlgorithm,
19708       { "encryptionAlgorithm", "gsm_map.ms.encryptionAlgorithm",
19709         FT_BYTES, BASE_HEX, NULL, 0,
19710         "gsm_map_ms.ChosenEncryptionAlgorithm", HFILL }},
19711     { &hf_gsm_map_ms_chosenChannelInfo,
19712       { "chosenChannelInfo", "gsm_map.ms.chosenChannelInfo",
19713         FT_BYTES, BASE_HEX, NULL, 0,
19714         "gsm_map_ms.ChosenChannelInfo", HFILL }},
19715     { &hf_gsm_map_ms_chosenSpeechVersion,
19716       { "chosenSpeechVersion", "gsm_map.ms.chosenSpeechVersion",
19717         FT_BYTES, BASE_HEX, NULL, 0,
19718         "gsm_map_ms.ChosenSpeechVersion", HFILL }},
19719     { &hf_gsm_map_ms_targetMSC_Number,
19720       { "targetMSC-Number", "gsm_map.ms.targetMSC_Number",
19721         FT_BYTES, BASE_HEX, NULL, 0,
19722         "gsm_map.ISDN_AddressString", HFILL }},
19723     { &hf_gsm_map_ms_selectedRab_Id,
19724       { "selectedRab-Id", "gsm_map.ms.selectedRab_Id",
19725         FT_UINT32, BASE_DEC, NULL, 0,
19726         "gsm_map_ms.RAB_Id", HFILL }},
19727     { &hf_gsm_map_ms_selectedGSM_Algorithm,
19728       { "selectedGSM-Algorithm", "gsm_map.ms.selectedGSM_Algorithm",
19729         FT_BYTES, BASE_HEX, NULL, 0,
19730         "gsm_map_ms.SelectedGSM_Algorithm", HFILL }},
19731     { &hf_gsm_map_ms_iUSelectedCodec,
19732       { "iUSelectedCodec", "gsm_map.ms.iUSelectedCodec",
19733         FT_BYTES, BASE_HEX, NULL, 0,
19734         "gsm_map_ms.Codec", HFILL }},
19735     { &hf_gsm_map_ms_utranCodecList,
19736       { "utranCodecList", "gsm_map.ms.utranCodecList",
19737         FT_NONE, BASE_NONE, NULL, 0,
19738         "gsm_map_ms.CodecList", HFILL }},
19739     { &hf_gsm_map_ms_geranCodecList,
19740       { "geranCodecList", "gsm_map.ms.geranCodecList",
19741         FT_NONE, BASE_NONE, NULL, 0,
19742         "gsm_map_ms.CodecList", HFILL }},
19743     { &hf_gsm_map_ms_codec1,
19744       { "codec1", "gsm_map.ms.codec1",
19745         FT_BYTES, BASE_HEX, NULL, 0,
19746         "gsm_map_ms.Codec", HFILL }},
19747     { &hf_gsm_map_ms_codec2,
19748       { "codec2", "gsm_map.ms.codec2",
19749         FT_BYTES, BASE_HEX, NULL, 0,
19750         "gsm_map_ms.Codec", HFILL }},
19751     { &hf_gsm_map_ms_codec3,
19752       { "codec3", "gsm_map.ms.codec3",
19753         FT_BYTES, BASE_HEX, NULL, 0,
19754         "gsm_map_ms.Codec", HFILL }},
19755     { &hf_gsm_map_ms_codec4,
19756       { "codec4", "gsm_map.ms.codec4",
19757         FT_BYTES, BASE_HEX, NULL, 0,
19758         "gsm_map_ms.Codec", HFILL }},
19759     { &hf_gsm_map_ms_codec5,
19760       { "codec5", "gsm_map.ms.codec5",
19761         FT_BYTES, BASE_HEX, NULL, 0,
19762         "gsm_map_ms.Codec", HFILL }},
19763     { &hf_gsm_map_ms_codec6,
19764       { "codec6", "gsm_map.ms.codec6",
19765         FT_BYTES, BASE_HEX, NULL, 0,
19766         "gsm_map_ms.Codec", HFILL }},
19767     { &hf_gsm_map_ms_codec7,
19768       { "codec7", "gsm_map.ms.codec7",
19769         FT_BYTES, BASE_HEX, NULL, 0,
19770         "gsm_map_ms.Codec", HFILL }},
19771     { &hf_gsm_map_ms_codec8,
19772       { "codec8", "gsm_map.ms.codec8",
19773         FT_BYTES, BASE_HEX, NULL, 0,
19774         "gsm_map_ms.Codec", HFILL }},
19775     { &hf_gsm_map_ms_RelocationNumberList_item,
19776       { "RelocationNumber", "gsm_map.ms.RelocationNumber",
19777         FT_NONE, BASE_NONE, NULL, 0,
19778         "gsm_map_ms.RelocationNumber", HFILL }},
19779     { &hf_gsm_map_ms_immediateResponsePreferred,
19780       { "immediateResponsePreferred", "gsm_map.ms.immediateResponsePreferred",
19781         FT_NONE, BASE_NONE, NULL, 0,
19782         "gsm_map_ms.NULL", HFILL }},
19783     { &hf_gsm_map_ms_re_synchronisationInfo,
19784       { "re-synchronisationInfo", "gsm_map.ms.re_synchronisationInfo",
19785         FT_NONE, BASE_NONE, NULL, 0,
19786         "gsm_map_ms.Re_synchronisationInfo", HFILL }},
19787     { &hf_gsm_map_ms_requestingNodeType,
19788       { "requestingNodeType", "gsm_map.ms.requestingNodeType",
19789         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestingNodeType_vals), 0,
19790         "gsm_map_ms.RequestingNodeType", HFILL }},
19791     { &hf_gsm_map_ms_requestingPLMN_Id,
19792       { "requestingPLMN-Id", "gsm_map.ms.requestingPLMN_Id",
19793         FT_BYTES, BASE_HEX, NULL, 0,
19794         "gsm_map.PLMN_Id", HFILL }},
19795     { &hf_gsm_map_ms_numberOfRequestedAdditional_Vectors,
19796       { "numberOfRequestedAdditional-Vectors", "gsm_map.ms.numberOfRequestedAdditional_Vectors",
19797         FT_UINT32, BASE_DEC, NULL, 0,
19798         "gsm_map_ms.NumberOfRequestedVectors", HFILL }},
19799     { &hf_gsm_map_ms_additionalVectorsAreForEPS,
19800       { "additionalVectorsAreForEPS", "gsm_map.ms.additionalVectorsAreForEPS",
19801         FT_NONE, BASE_NONE, NULL, 0,
19802         "gsm_map_ms.NULL", HFILL }},
19803     { &hf_gsm_map_ms_auts,
19804       { "auts", "gsm_map.ms.auts",
19805         FT_BYTES, BASE_HEX, NULL, 0,
19806         "gsm_map_ms.AUTS", HFILL }},
19807     { &hf_gsm_map_ms_eps_AuthenticationSetList,
19808       { "eps-AuthenticationSetList", "gsm_map.ms.eps_AuthenticationSetList",
19809         FT_UINT32, BASE_DEC, NULL, 0,
19810         "gsm_map_ms.EPS_AuthenticationSetList", HFILL }},
19811     { &hf_gsm_map_ms_EPS_AuthenticationSetList_item,
19812       { "EPC-AV", "gsm_map.ms.EPC_AV",
19813         FT_NONE, BASE_NONE, NULL, 0,
19814         "gsm_map_ms.EPC_AV", HFILL }},
19815     { &hf_gsm_map_ms_kasme,
19816       { "kasme", "gsm_map.ms.kasme",
19817         FT_BYTES, BASE_HEX, NULL, 0,
19818         "gsm_map_ms.KASME", HFILL }},
19819     { &hf_gsm_map_ms_imei,
19820       { "imei", "gsm_map.ms.imei",
19821         FT_BYTES, BASE_HEX, NULL, 0,
19822         "gsm_map.IMEI", HFILL }},
19823     { &hf_gsm_map_ms_requestedEquipmentInfo,
19824       { "requestedEquipmentInfo", "gsm_map.ms.requestedEquipmentInfo",
19825         FT_BYTES, BASE_HEX, NULL, 0,
19826         "gsm_map_ms.RequestedEquipmentInfo", HFILL }},
19827     { &hf_gsm_map_ms_equipmentStatus,
19828       { "equipmentStatus", "gsm_map.ms.equipmentStatus",
19829         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EquipmentStatus_vals), 0,
19830         "gsm_map_ms.EquipmentStatus", HFILL }},
19831     { &hf_gsm_map_ms_bmuef,
19832       { "bmuef", "gsm_map.ms.bmuef",
19833         FT_NONE, BASE_NONE, NULL, 0,
19834         "gsm_map_ms.UESBI_Iu", HFILL }},
19835     { &hf_gsm_map_ms_uesbi_IuA,
19836       { "uesbi-IuA", "gsm_map.ms.uesbi_IuA",
19837         FT_BYTES, BASE_HEX, NULL, 0,
19838         "gsm_map_ms.UESBI_IuA", HFILL }},
19839     { &hf_gsm_map_ms_uesbi_IuB,
19840       { "uesbi-IuB", "gsm_map.ms.uesbi_IuB",
19841         FT_BYTES, BASE_HEX, NULL, 0,
19842         "gsm_map_ms.UESBI_IuB", HFILL }},
19843     { &hf_gsm_map_ms_CSG_SubscriptionDataList_item,
19844       { "CSG-SubscriptionData", "gsm_map.ms.CSG_SubscriptionData",
19845         FT_NONE, BASE_NONE, NULL, 0,
19846         "gsm_map_ms.CSG_SubscriptionData", HFILL }},
19847     { &hf_gsm_map_ms_csg_Id,
19848       { "csg-Id", "gsm_map.ms.csg_Id",
19849         FT_BYTES, BASE_HEX, NULL, 0,
19850         "gsm_map_ms.CSG_Id", HFILL }},
19851     { &hf_gsm_map_ms_expirationDate,
19852       { "expirationDate", "gsm_map.ms.expirationDate",
19853         FT_BYTES, BASE_HEX, NULL, 0,
19854         "gsm_map_ms.Time", HFILL }},
19855     { &hf_gsm_map_ms_apn_oi_Replacement,
19856       { "apn-oi-Replacement", "gsm_map.ms.apn_oi_Replacement",
19857         FT_BYTES, BASE_HEX, NULL, 0,
19858         "gsm_map_ms.APN_OI_Replacement", HFILL }},
19859     { &hf_gsm_map_ms_rfsp_id,
19860       { "rfsp-id", "gsm_map.ms.rfsp_id",
19861         FT_UINT32, BASE_DEC, NULL, 0,
19862         "gsm_map_ms.RFSP_ID", HFILL }},
19863     { &hf_gsm_map_ms_ambr,
19864       { "ambr", "gsm_map.ms.ambr",
19865         FT_NONE, BASE_NONE, NULL, 0,
19866         "gsm_map_ms.AMBR", HFILL }},
19867     { &hf_gsm_map_ms_apn_ConfigurationProfile,
19868       { "apn-ConfigurationProfile", "gsm_map.ms.apn_ConfigurationProfile",
19869         FT_NONE, BASE_NONE, NULL, 0,
19870         "gsm_map_ms.APN_ConfigurationProfile", HFILL }},
19871     { &hf_gsm_map_ms_stn_sr,
19872       { "stn-sr", "gsm_map.ms.stn_sr",
19873         FT_BYTES, BASE_HEX, NULL, 0,
19874         "gsm_map.ISDN_AddressString", HFILL }},
19875     { &hf_gsm_map_ms_defaultContext,
19876       { "defaultContext", "gsm_map.ms.defaultContext",
19877         FT_UINT32, BASE_DEC, NULL, 0,
19878         "gsm_map_ms.ContextId", HFILL }},
19879     { &hf_gsm_map_ms_completeDataListIncluded,
19880       { "completeDataListIncluded", "gsm_map.ms.completeDataListIncluded",
19881         FT_NONE, BASE_NONE, NULL, 0,
19882         "gsm_map_ms.NULL", HFILL }},
19883     { &hf_gsm_map_ms_epsDataList,
19884       { "epsDataList", "gsm_map.ms.epsDataList",
19885         FT_UINT32, BASE_DEC, NULL, 0,
19886         "gsm_map_ms.EPS_DataList", HFILL }},
19887     { &hf_gsm_map_ms_EPS_DataList_item,
19888       { "APN-Configuration", "gsm_map.ms.APN_Configuration",
19889         FT_NONE, BASE_NONE, NULL, 0,
19890         "gsm_map_ms.APN_Configuration", HFILL }},
19891     { &hf_gsm_map_ms_servedPartyIP_Address,
19892       { "servedPartyIP-Address", "gsm_map.ms.servedPartyIP_Address",
19893         FT_BYTES, BASE_HEX, NULL, 0,
19894         "gsm_map_ms.PDP_Address", HFILL }},
19895     { &hf_gsm_map_ms_eps_qos_Subscribed,
19896       { "eps-qos-Subscribed", "gsm_map.ms.eps_qos_Subscribed",
19897         FT_NONE, BASE_NONE, NULL, 0,
19898         "gsm_map_ms.EPS_QoS_Subscribed", HFILL }},
19899     { &hf_gsm_map_ms_pdn_gw_AllocationType,
19900       { "pdn-gw-AllocationType", "gsm_map.ms.pdn_gw_AllocationType",
19901         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PDN_GW_AllocationType_vals), 0,
19902         "gsm_map_ms.PDN_GW_AllocationType", HFILL }},
19903     { &hf_gsm_map_ms_vplmnAddressAllowed,
19904       { "vplmnAddressAllowed", "gsm_map.ms.vplmnAddressAllowed",
19905         FT_NONE, BASE_NONE, NULL, 0,
19906         "gsm_map_ms.NULL", HFILL }},
19907     { &hf_gsm_map_ms_chargingCharacteristics,
19908       { "chargingCharacteristics", "gsm_map.ms.chargingCharacteristics",
19909         FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
19910         "gsm_map_ms.ChargingCharacteristics", HFILL }},
19911     { &hf_gsm_map_ms_specificAPNInfoList,
19912       { "specificAPNInfoList", "gsm_map.ms.specificAPNInfoList",
19913         FT_UINT32, BASE_DEC, NULL, 0,
19914         "gsm_map_ms.SpecificAPNInfoList", HFILL }},
19915     { &hf_gsm_map_ms_qos_Class_Identifier,
19916       { "qos-Class-Identifier", "gsm_map.ms.qos_Class_Identifier",
19917         FT_UINT32, BASE_DEC, NULL, 0,
19918         "gsm_map_ms.QoS_Class_Identifier", HFILL }},
19919     { &hf_gsm_map_ms_allocation_Retention_Priority,
19920       { "allocation-Retention-Priority", "gsm_map.ms.allocation_Retention_Priority",
19921         FT_NONE, BASE_NONE, NULL, 0,
19922         "gsm_map_ms.Allocation_Retention_Priority", HFILL }},
19923     { &hf_gsm_map_ms_max_RequestedBandwidth_UL,
19924       { "max-RequestedBandwidth-UL", "gsm_map.ms.max_RequestedBandwidth_UL",
19925         FT_INT32, BASE_DEC, NULL, 0,
19926         "gsm_map_ms.Bandwidth", HFILL }},
19927     { &hf_gsm_map_ms_max_RequestedBandwidth_DL,
19928       { "max-RequestedBandwidth-DL", "gsm_map.ms.max_RequestedBandwidth_DL",
19929         FT_INT32, BASE_DEC, NULL, 0,
19930         "gsm_map_ms.Bandwidth", HFILL }},
19931     { &hf_gsm_map_ms_SpecificAPNInfoList_item,
19932       { "SpecificAPNInfo", "gsm_map.ms.SpecificAPNInfo",
19933         FT_NONE, BASE_NONE, NULL, 0,
19934         "gsm_map_ms.SpecificAPNInfo", HFILL }},
19935     { &hf_gsm_map_ms_priority_level,
19936       { "priority-level", "gsm_map.ms.priority_level",
19937         FT_INT32, BASE_DEC, NULL, 0,
19938         "gsm_map_ms.INTEGER", HFILL }},
19939     { &hf_gsm_map_ms_pre_emption_capability,
19940       { "pre-emption-capability", "gsm_map.ms.pre_emption_capability",
19941         FT_BOOLEAN, 8, NULL, 0,
19942         "gsm_map_ms.BOOLEAN", HFILL }},
19943     { &hf_gsm_map_ms_pre_emption_vulnerability,
19944       { "pre-emption-vulnerability", "gsm_map.ms.pre_emption_vulnerability",
19945         FT_BOOLEAN, 8, NULL, 0,
19946         "gsm_map_ms.BOOLEAN", HFILL }},
19947     { &hf_gsm_map_ms_pdn_gw_ipv4_Address,
19948       { "pdn-gw-ipv4-Address", "gsm_map.ms.pdn_gw_ipv4_Address",
19949         FT_BYTES, BASE_HEX, NULL, 0,
19950         "gsm_map_ms.PDP_Address", HFILL }},
19951     { &hf_gsm_map_ms_pdn_gw_ipv6_Address,
19952       { "pdn-gw-ipv6-Address", "gsm_map.ms.pdn_gw_ipv6_Address",
19953         FT_BYTES, BASE_HEX, NULL, 0,
19954         "gsm_map_ms.PDP_Address", HFILL }},
19955     { &hf_gsm_map_ms_pdn_gw_name,
19956       { "pdn-gw-name", "gsm_map.ms.pdn_gw_name",
19957         FT_BYTES, BASE_HEX, NULL, 0,
19958         "gsm_map_ms.FQDN", HFILL }},
19959     { &hf_gsm_map_ms_gmlc_List,
19960       { "gmlc-List", "gsm_map.ms.gmlc_List",
19961         FT_UINT32, BASE_DEC, NULL, 0,
19962         "gsm_map_ms.GMLC_List", HFILL }},
19963     { &hf_gsm_map_ms_lcs_PrivacyExceptionList,
19964       { "lcs-PrivacyExceptionList", "gsm_map.ms.lcs_PrivacyExceptionList",
19965         FT_UINT32, BASE_DEC, NULL, 0,
19966         "gsm_map_ms.LCS_PrivacyExceptionList", HFILL }},
19967     { &hf_gsm_map_ms_molr_List,
19968       { "molr-List", "gsm_map.ms.molr_List",
19969         FT_UINT32, BASE_DEC, NULL, 0,
19970         "gsm_map_ms.MOLR_List", HFILL }},
19971     { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList,
19972       { "add-lcs-PrivacyExceptionList", "gsm_map.ms.add_lcs_PrivacyExceptionList",
19973         FT_UINT32, BASE_DEC, NULL, 0,
19974         "gsm_map_ms.LCS_PrivacyExceptionList", HFILL }},
19975     { &hf_gsm_map_ms_GMLC_List_item,
19976       { "ISDN-AddressString", "gsm_map.ms.ISDN_AddressString",
19977         FT_BYTES, BASE_HEX, NULL, 0,
19978         "gsm_map.ISDN_AddressString", HFILL }},
19979     { &hf_gsm_map_ms_GPRSDataList_item,
19980       { "PDP-Context", "gsm_map.ms.PDP_Context",
19981         FT_NONE, BASE_NONE, NULL, 0,
19982         "gsm_map_ms.PDP_Context", HFILL }},
19983     { &hf_gsm_map_ms_pdp_ContextId,
19984       { "pdp-ContextId", "gsm_map.ms.pdp_ContextId",
19985         FT_UINT32, BASE_DEC, NULL, 0,
19986         "gsm_map_ms.ContextId", HFILL }},
19987     { &hf_gsm_map_ms_pdp_Type,
19988       { "pdp-Type", "gsm_map.ms.pdp_Type",
19989         FT_BYTES, BASE_HEX, NULL, 0,
19990         "gsm_map_ms.PDP_Type", HFILL }},
19991     { &hf_gsm_map_ms_pdp_Address,
19992       { "pdp-Address", "gsm_map.ms.pdp_Address",
19993         FT_BYTES, BASE_HEX, NULL, 0,
19994         "gsm_map_ms.PDP_Address", HFILL }},
19995     { &hf_gsm_map_ms_qos_Subscribed,
19996       { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
19997         FT_BYTES, BASE_HEX, NULL, 0,
19998         "gsm_map_ms.QoS_Subscribed", HFILL }},
19999     { &hf_gsm_map_ms_ext_QoS_Subscribed,
20000       { "ext-QoS-Subscribed", "gsm_map.ms.ext_QoS_Subscribed",
20001         FT_BYTES, BASE_HEX, NULL, 0,
20002         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
20003     { &hf_gsm_map_ms_pdp_ChargingCharacteristics,
20004       { "pdp-ChargingCharacteristics", "gsm_map.ms.pdp_ChargingCharacteristics",
20005         FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
20006         "gsm_map_ms.ChargingCharacteristics", HFILL }},
20007     { &hf_gsm_map_ms_ext2_QoS_Subscribed,
20008       { "ext2-QoS-Subscribed", "gsm_map.ms.ext2_QoS_Subscribed",
20009         FT_BYTES, BASE_HEX, NULL, 0,
20010         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
20011     { &hf_gsm_map_ms_ext3_QoS_Subscribed,
20012       { "ext3-QoS-Subscribed", "gsm_map.ms.ext3_QoS_Subscribed",
20013         FT_BYTES, BASE_HEX, NULL, 0,
20014         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
20015     { &hf_gsm_map_ms_gprsDataList,
20016       { "gprsDataList", "gsm_map.ms.gprsDataList",
20017         FT_UINT32, BASE_DEC, NULL, 0,
20018         "gsm_map_ms.GPRSDataList", HFILL }},
20019     { &hf_gsm_map_ms_gprs_CSI,
20020       { "gprs-CSI", "gsm_map.ms.gprs_CSI",
20021         FT_NONE, BASE_NONE, NULL, 0,
20022         "gsm_map_ms.GPRS_CSI", HFILL }},
20023     { &hf_gsm_map_ms_mo_sms_CSI,
20024       { "mo-sms-CSI", "gsm_map.ms.mo_sms_CSI",
20025         FT_NONE, BASE_NONE, NULL, 0,
20026         "gsm_map_ms.SMS_CSI", HFILL }},
20027     { &hf_gsm_map_ms_mt_sms_CSI,
20028       { "mt-sms-CSI", "gsm_map.ms.mt_sms_CSI",
20029         FT_NONE, BASE_NONE, NULL, 0,
20030         "gsm_map_ms.SMS_CSI", HFILL }},
20031     { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList,
20032       { "mt-smsCAMELTDP-CriteriaList", "gsm_map.ms.mt_smsCAMELTDP_CriteriaList",
20033         FT_UINT32, BASE_DEC, NULL, 0,
20034         "gsm_map_ms.MT_smsCAMELTDP_CriteriaList", HFILL }},
20035     { &hf_gsm_map_ms_mg_csi,
20036       { "mg-csi", "gsm_map.ms.mg_csi",
20037         FT_NONE, BASE_NONE, NULL, 0,
20038         "gsm_map_ms.MG_CSI", HFILL }},
20039     { &hf_gsm_map_ms_gprs_CamelTDPDataList,
20040       { "gprs-CamelTDPDataList", "gsm_map.ms.gprs_CamelTDPDataList",
20041         FT_UINT32, BASE_DEC, NULL, 0,
20042         "gsm_map_ms.GPRS_CamelTDPDataList", HFILL }},
20043     { &hf_gsm_map_ms_camelCapabilityHandling,
20044       { "camelCapabilityHandling", "gsm_map.ms.camelCapabilityHandling",
20045         FT_UINT32, BASE_DEC, NULL, 0,
20046         "gsm_map_ms.CamelCapabilityHandling", HFILL }},
20047     { &hf_gsm_map_ms_notificationToCSE,
20048       { "notificationToCSE", "gsm_map.ms.notificationToCSE",
20049         FT_NONE, BASE_NONE, NULL, 0,
20050         "gsm_map_ms.NULL", HFILL }},
20051     { &hf_gsm_map_ms_csi_Active,
20052       { "csi-Active", "gsm_map.ms.csi_Active",
20053         FT_NONE, BASE_NONE, NULL, 0,
20054         "gsm_map_ms.NULL", HFILL }},
20055     { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item,
20056       { "GPRS-CamelTDPData", "gsm_map.ms.GPRS_CamelTDPData",
20057         FT_NONE, BASE_NONE, NULL, 0,
20058         "gsm_map_ms.GPRS_CamelTDPData", HFILL }},
20059     { &hf_gsm_map_ms_gprs_TriggerDetectionPoint,
20060       { "gprs-TriggerDetectionPoint", "gsm_map.ms.gprs_TriggerDetectionPoint",
20061         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRS_TriggerDetectionPoint_vals), 0,
20062         "gsm_map_ms.GPRS_TriggerDetectionPoint", HFILL }},
20063     { &hf_gsm_map_ms_serviceKey,
20064       { "serviceKey", "gsm_map.ms.serviceKey",
20065         FT_UINT32, BASE_DEC, NULL, 0,
20066         "gsm_map_ms.ServiceKey", HFILL }},
20067     { &hf_gsm_map_ms_gsmSCF_Address,
20068       { "gsmSCF-Address", "gsm_map.ms.gsmSCF_Address",
20069         FT_BYTES, BASE_HEX, NULL, 0,
20070         "gsm_map.ISDN_AddressString", HFILL }},
20071     { &hf_gsm_map_ms_defaultSessionHandling,
20072       { "defaultSessionHandling", "gsm_map.ms.defaultSessionHandling",
20073         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultGPRS_Handling_vals), 0,
20074         "gsm_map_ms.DefaultGPRS_Handling", HFILL }},
20075     { &hf_gsm_map_ms_LSADataList_item,
20076       { "LSAData", "gsm_map.ms.LSAData",
20077         FT_NONE, BASE_NONE, NULL, 0,
20078         "gsm_map_ms.LSAData", HFILL }},
20079     { &hf_gsm_map_ms_lsaIdentity,
20080       { "lsaIdentity", "gsm_map.ms.lsaIdentity",
20081         FT_BYTES, BASE_HEX, NULL, 0,
20082         "gsm_map_ms.LSAIdentity", HFILL }},
20083     { &hf_gsm_map_ms_lsaAttributes,
20084       { "lsaAttributes", "gsm_map.ms.lsaAttributes",
20085         FT_BYTES, BASE_HEX, NULL, 0,
20086         "gsm_map_ms.LSAAttributes", HFILL }},
20087     { &hf_gsm_map_ms_lsaActiveModeIndicator,
20088       { "lsaActiveModeIndicator", "gsm_map.ms.lsaActiveModeIndicator",
20089         FT_NONE, BASE_NONE, NULL, 0,
20090         "gsm_map_ms.NULL", HFILL }},
20091     { &hf_gsm_map_ms_lsaOnlyAccessIndicator,
20092       { "lsaOnlyAccessIndicator", "gsm_map.ms.lsaOnlyAccessIndicator",
20093         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAOnlyAccessIndicator_vals), 0,
20094         "gsm_map_ms.LSAOnlyAccessIndicator", HFILL }},
20095     { &hf_gsm_map_ms_lsaDataList,
20096       { "lsaDataList", "gsm_map.ms.lsaDataList",
20097         FT_UINT32, BASE_DEC, NULL, 0,
20098         "gsm_map_ms.LSADataList", HFILL }},
20099     { &hf_gsm_map_ms_msisdn,
20100       { "msisdn", "gsm_map.ms.msisdn",
20101         FT_BYTES, BASE_HEX, NULL, 0,
20102         "gsm_map.ISDN_AddressString", HFILL }},
20103     { &hf_gsm_map_ms_category,
20104       { "category", "gsm_map.ms.category",
20105         FT_BYTES, BASE_HEX, NULL, 0,
20106         "gsm_map_ms.Category", HFILL }},
20107     { &hf_gsm_map_ms_subscriberStatus,
20108       { "subscriberStatus", "gsm_map.ms.subscriberStatus",
20109         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberStatus_vals), 0,
20110         "gsm_map_ms.SubscriberStatus", HFILL }},
20111     { &hf_gsm_map_ms_bearerServiceList,
20112       { "bearerServiceList", "gsm_map.ms.bearerServiceList",
20113         FT_UINT32, BASE_DEC, NULL, 0,
20114         "gsm_map_ms.BearerServiceList", HFILL }},
20115     { &hf_gsm_map_ms_teleserviceList,
20116       { "teleserviceList", "gsm_map.ms.teleserviceList",
20117         FT_UINT32, BASE_DEC, NULL, 0,
20118         "gsm_map_ms.TeleserviceList", HFILL }},
20119     { &hf_gsm_map_ms_provisionedSS,
20120       { "provisionedSS", "gsm_map.ms.provisionedSS",
20121         FT_UINT32, BASE_DEC, NULL, 0,
20122         "gsm_map_ms.Ext_SS_InfoList", HFILL }},
20123     { &hf_gsm_map_ms_odb_Data,
20124       { "odb-Data", "gsm_map.ms.odb_Data",
20125         FT_NONE, BASE_NONE, NULL, 0,
20126         "gsm_map_ms.ODB_Data", HFILL }},
20127     { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature,
20128       { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictionDueToUnsupportedFeature",
20129         FT_NONE, BASE_NONE, NULL, 0,
20130         "gsm_map_ms.NULL", HFILL }},
20131     { &hf_gsm_map_ms_regionalSubscriptionData,
20132       { "regionalSubscriptionData", "gsm_map.ms.regionalSubscriptionData",
20133         FT_UINT32, BASE_DEC, NULL, 0,
20134         "gsm_map_ms.ZoneCodeList", HFILL }},
20135     { &hf_gsm_map_ms_vbsSubscriptionData,
20136       { "vbsSubscriptionData", "gsm_map.ms.vbsSubscriptionData",
20137         FT_UINT32, BASE_DEC, NULL, 0,
20138         "gsm_map_ms.VBSDataList", HFILL }},
20139     { &hf_gsm_map_ms_vgcsSubscriptionData,
20140       { "vgcsSubscriptionData", "gsm_map.ms.vgcsSubscriptionData",
20141         FT_UINT32, BASE_DEC, NULL, 0,
20142         "gsm_map_ms.VGCSDataList", HFILL }},
20143     { &hf_gsm_map_ms_vlrCamelSubscriptionInfo,
20144       { "vlrCamelSubscriptionInfo", "gsm_map.ms.vlrCamelSubscriptionInfo",
20145         FT_NONE, BASE_NONE, NULL, 0,
20146         "gsm_map_ms.VlrCamelSubscriptionInfo", HFILL }},
20147     { &hf_gsm_map_ms_BearerServiceList_item,
20148       { "Ext-BearerServiceCode", "gsm_map.ms.Ext_BearerServiceCode",
20149         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
20150         "gsm_map.Ext_BearerServiceCode", HFILL }},
20151     { &hf_gsm_map_ms_TeleserviceList_item,
20152       { "Ext-TeleserviceCode", "gsm_map.ms.Ext_TeleserviceCode",
20153         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
20154         "gsm_map.Ext_TeleserviceCode", HFILL }},
20155     { &hf_gsm_map_ms_odb_GeneralData,
20156       { "odb-GeneralData", "gsm_map.ms.odb_GeneralData",
20157         FT_BYTES, BASE_HEX, NULL, 0,
20158         "gsm_map_ms.ODB_GeneralData", HFILL }},
20159     { &hf_gsm_map_ms_odb_HPLMN_Data,
20160       { "odb-HPLMN-Data", "gsm_map.ms.odb_HPLMN_Data",
20161         FT_BYTES, BASE_HEX, NULL, 0,
20162         "gsm_map_ms.ODB_HPLMN_Data", HFILL }},
20163     { &hf_gsm_map_ms_Ext_SS_InfoList_item,
20164       { "Ext-SS-Info", "gsm_map.ms.Ext_SS_Info",
20165         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_Info_vals), 0,
20166         "gsm_map_ms.Ext_SS_Info", HFILL }},
20167     { &hf_gsm_map_ms_forwardingInfo,
20168       { "forwardingInfo", "gsm_map.ms.forwardingInfo",
20169         FT_NONE, BASE_NONE, NULL, 0,
20170         "gsm_map_ms.Ext_ForwInfo", HFILL }},
20171     { &hf_gsm_map_ms_callBarringInfo,
20172       { "callBarringInfo", "gsm_map.ms.callBarringInfo",
20173         FT_NONE, BASE_NONE, NULL, 0,
20174         "gsm_map_ms.Ext_CallBarInfo", HFILL }},
20175     { &hf_gsm_map_ms_cug_Info,
20176       { "cug-Info", "gsm_map.ms.cug_Info",
20177         FT_NONE, BASE_NONE, NULL, 0,
20178         "gsm_map_ms.CUG_Info", HFILL }},
20179     { &hf_gsm_map_ms_ss_Data,
20180       { "ss-Data", "gsm_map.ms.ss_Data",
20181         FT_NONE, BASE_NONE, NULL, 0,
20182         "gsm_map_ms.Ext_SS_Data", HFILL }},
20183     { &hf_gsm_map_ms_emlpp_Info,
20184       { "emlpp-Info", "gsm_map.ms.emlpp_Info",
20185         FT_NONE, BASE_NONE, NULL, 0,
20186         "gsm_map.EMLPP_Info", HFILL }},
20187     { &hf_gsm_map_ms_ss_Code,
20188       { "ss-Code", "gsm_map.ms.ss_Code",
20189         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
20190         "gsm_map.SS_Code", HFILL }},
20191     { &hf_gsm_map_ms_forwardingFeatureList,
20192       { "forwardingFeatureList", "gsm_map.ms.forwardingFeatureList",
20193         FT_UINT32, BASE_DEC, NULL, 0,
20194         "gsm_map_ms.Ext_ForwFeatureList", HFILL }},
20195     { &hf_gsm_map_ms_Ext_ForwFeatureList_item,
20196       { "Ext-ForwFeature", "gsm_map.ms.Ext_ForwFeature",
20197         FT_NONE, BASE_NONE, NULL, 0,
20198         "gsm_map_ms.Ext_ForwFeature", HFILL }},
20199     { &hf_gsm_map_ms_basicService,
20200       { "basicService", "gsm_map.ms.basicService",
20201         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20202         "gsm_map.Ext_BasicServiceCode", HFILL }},
20203     { &hf_gsm_map_ms_ss_Status,
20204       { "ss-Status", "gsm_map.ms.ss_Status",
20205         FT_BYTES, BASE_HEX, NULL, 0,
20206         "gsm_map.Ext_SS_Status", HFILL }},
20207     { &hf_gsm_map_ms_forwardedToNumber,
20208       { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
20209         FT_BYTES, BASE_HEX, NULL, 0,
20210         "gsm_map.ISDN_AddressString", HFILL }},
20211     { &hf_gsm_map_ms_forwardedToSubaddress,
20212       { "forwardedToSubaddress", "gsm_map.ms.forwardedToSubaddress",
20213         FT_BYTES, BASE_HEX, NULL, 0,
20214         "gsm_map.ISDN_SubaddressString", HFILL }},
20215     { &hf_gsm_map_ms_forwardingOptions,
20216       { "forwardingOptions", "gsm_map.ms.forwardingOptions",
20217         FT_BYTES, BASE_HEX, NULL, 0,
20218         "gsm_map_ms.T_forwardingOptions", HFILL }},
20219     { &hf_gsm_map_ms_noReplyConditionTime,
20220       { "noReplyConditionTime", "gsm_map.ms.noReplyConditionTime",
20221         FT_UINT32, BASE_DEC, NULL, 0,
20222         "gsm_map_ms.Ext_NoRepCondTime", HFILL }},
20223     { &hf_gsm_map_ms_longForwardedToNumber,
20224       { "longForwardedToNumber", "gsm_map.ms.longForwardedToNumber",
20225         FT_BYTES, BASE_HEX, NULL, 0,
20226         "gsm_map.FTN_AddressString", HFILL }},
20227     { &hf_gsm_map_ms_callBarringFeatureList,
20228       { "callBarringFeatureList", "gsm_map.ms.callBarringFeatureList",
20229         FT_UINT32, BASE_DEC, NULL, 0,
20230         "gsm_map_ms.Ext_CallBarFeatureList", HFILL }},
20231     { &hf_gsm_map_ms_Ext_CallBarFeatureList_item,
20232       { "Ext-CallBarringFeature", "gsm_map.ms.Ext_CallBarringFeature",
20233         FT_NONE, BASE_NONE, NULL, 0,
20234         "gsm_map_ms.Ext_CallBarringFeature", HFILL }},
20235     { &hf_gsm_map_ms_cug_SubscriptionList,
20236       { "cug-SubscriptionList", "gsm_map.ms.cug_SubscriptionList",
20237         FT_UINT32, BASE_DEC, NULL, 0,
20238         "gsm_map_ms.CUG_SubscriptionList", HFILL }},
20239     { &hf_gsm_map_ms_cug_FeatureList,
20240       { "cug-FeatureList", "gsm_map.ms.cug_FeatureList",
20241         FT_UINT32, BASE_DEC, NULL, 0,
20242         "gsm_map_ms.CUG_FeatureList", HFILL }},
20243     { &hf_gsm_map_ms_CUG_SubscriptionList_item,
20244       { "CUG-Subscription", "gsm_map.ms.CUG_Subscription",
20245         FT_NONE, BASE_NONE, NULL, 0,
20246         "gsm_map_ms.CUG_Subscription", HFILL }},
20247     { &hf_gsm_map_ms_cug_Index,
20248       { "cug-Index", "gsm_map.ms.cug_Index",
20249         FT_UINT32, BASE_DEC, NULL, 0,
20250         "gsm_map_ms.CUG_Index", HFILL }},
20251     { &hf_gsm_map_ms_cug_Interlock,
20252       { "cug-Interlock", "gsm_map.ms.cug_Interlock",
20253         FT_BYTES, BASE_HEX, NULL, 0,
20254         "gsm_map_ms.CUG_Interlock", HFILL }},
20255     { &hf_gsm_map_ms_intraCUG_Options,
20256       { "intraCUG-Options", "gsm_map.ms.intraCUG_Options",
20257         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IntraCUG_Options_vals), 0,
20258         "gsm_map_ms.IntraCUG_Options", HFILL }},
20259     { &hf_gsm_map_ms_basicServiceGroupList,
20260       { "basicServiceGroupList", "gsm_map.ms.basicServiceGroupList",
20261         FT_UINT32, BASE_DEC, NULL, 0,
20262         "gsm_map_ms.Ext_BasicServiceGroupList", HFILL }},
20263     { &hf_gsm_map_ms_CUG_FeatureList_item,
20264       { "CUG-Feature", "gsm_map.ms.CUG_Feature",
20265         FT_NONE, BASE_NONE, NULL, 0,
20266         "gsm_map_ms.CUG_Feature", HFILL }},
20267     { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item,
20268       { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode",
20269         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20270         "gsm_map.Ext_BasicServiceCode", HFILL }},
20271     { &hf_gsm_map_ms_preferentialCUG_Indicator,
20272       { "preferentialCUG-Indicator", "gsm_map.ms.preferentialCUG_Indicator",
20273         FT_UINT32, BASE_DEC, NULL, 0,
20274         "gsm_map_ms.CUG_Index", HFILL }},
20275     { &hf_gsm_map_ms_interCUG_Restrictions,
20276       { "interCUG-Restrictions", "gsm_map.ms.interCUG_Restrictions",
20277         FT_BYTES, BASE_HEX, NULL, 0,
20278         "gsm_map_ms.InterCUG_Restrictions", HFILL }},
20279     { &hf_gsm_map_ms_ss_SubscriptionOption,
20280       { "ss-SubscriptionOption", "gsm_map.ms.ss_SubscriptionOption",
20281         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
20282         "gsm_map_ss.SS_SubscriptionOption", HFILL }},
20283     { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item,
20284       { "LCS-PrivacyClass", "gsm_map.ms.LCS_PrivacyClass",
20285         FT_NONE, BASE_NONE, NULL, 0,
20286         "gsm_map_ms.LCS_PrivacyClass", HFILL }},
20287     { &hf_gsm_map_ms_notificationToMSUser,
20288       { "notificationToMSUser", "gsm_map.ms.notificationToMSUser",
20289         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
20290         "gsm_map_ms.NotificationToMSUser", HFILL }},
20291     { &hf_gsm_map_ms_externalClientList,
20292       { "externalClientList", "gsm_map.ms.externalClientList",
20293         FT_UINT32, BASE_DEC, NULL, 0,
20294         "gsm_map_ms.ExternalClientList", HFILL }},
20295     { &hf_gsm_map_ms_plmnClientList,
20296       { "plmnClientList", "gsm_map.ms.plmnClientList",
20297         FT_UINT32, BASE_DEC, NULL, 0,
20298         "gsm_map_ms.PLMNClientList", HFILL }},
20299     { &hf_gsm_map_ms_ext_externalClientList,
20300       { "ext-externalClientList", "gsm_map.ms.ext_externalClientList",
20301         FT_UINT32, BASE_DEC, NULL, 0,
20302         "gsm_map_ms.Ext_ExternalClientList", HFILL }},
20303     { &hf_gsm_map_ms_serviceTypeList,
20304       { "serviceTypeList", "gsm_map.ms.serviceTypeList",
20305         FT_UINT32, BASE_DEC, NULL, 0,
20306         "gsm_map_ms.ServiceTypeList", HFILL }},
20307     { &hf_gsm_map_ms_ExternalClientList_item,
20308       { "ExternalClient", "gsm_map.ms.ExternalClient",
20309         FT_NONE, BASE_NONE, NULL, 0,
20310         "gsm_map_ms.ExternalClient", HFILL }},
20311     { &hf_gsm_map_ms_PLMNClientList_item,
20312       { "LCSClientInternalID", "gsm_map.ms.LCSClientInternalID",
20313         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
20314         "gsm_map.LCSClientInternalID", HFILL }},
20315     { &hf_gsm_map_ms_Ext_ExternalClientList_item,
20316       { "ExternalClient", "gsm_map.ms.ExternalClient",
20317         FT_NONE, BASE_NONE, NULL, 0,
20318         "gsm_map_ms.ExternalClient", HFILL }},
20319     { &hf_gsm_map_ms_clientIdentity,
20320       { "clientIdentity", "gsm_map.ms.clientIdentity",
20321         FT_NONE, BASE_NONE, NULL, 0,
20322         "gsm_map.LCSClientExternalID", HFILL }},
20323     { &hf_gsm_map_ms_gmlc_Restriction,
20324       { "gmlc-Restriction", "gsm_map.ms.gmlc_Restriction",
20325         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GMLC_Restriction_vals), 0,
20326         "gsm_map_ms.GMLC_Restriction", HFILL }},
20327     { &hf_gsm_map_ms_ServiceTypeList_item,
20328       { "ServiceType", "gsm_map.ms.ServiceType",
20329         FT_NONE, BASE_NONE, NULL, 0,
20330         "gsm_map_ms.ServiceType", HFILL }},
20331     { &hf_gsm_map_ms_serviceTypeIdentity,
20332       { "serviceTypeIdentity", "gsm_map.ms.serviceTypeIdentity",
20333         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
20334         "gsm_map.LCSServiceTypeID", HFILL }},
20335     { &hf_gsm_map_ms_MOLR_List_item,
20336       { "MOLR-Class", "gsm_map.ms.MOLR_Class",
20337         FT_NONE, BASE_NONE, NULL, 0,
20338         "gsm_map_ms.MOLR_Class", HFILL }},
20339     { &hf_gsm_map_ms_ZoneCodeList_item,
20340       { "ZoneCode", "gsm_map.ms.ZoneCode",
20341         FT_BYTES, BASE_HEX, NULL, 0,
20342         "gsm_map_ms.ZoneCode", HFILL }},
20343     { &hf_gsm_map_ms_ss_List,
20344       { "ss-List", "gsm_map.ms.ss_List",
20345         FT_UINT32, BASE_DEC, NULL, 0,
20346         "gsm_map_ss.SS_List", HFILL }},
20347     { &hf_gsm_map_ms_regionalSubscriptionResponse,
20348       { "regionalSubscriptionResponse", "gsm_map.ms.regionalSubscriptionResponse",
20349         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RegionalSubscriptionResponse_vals), 0,
20350         "gsm_map_ms.RegionalSubscriptionResponse", HFILL }},
20351     { &hf_gsm_map_ms_basicServiceList,
20352       { "basicServiceList", "gsm_map.ms.basicServiceList",
20353         FT_UINT32, BASE_DEC, NULL, 0,
20354         "gsm_map_ms.BasicServiceList", HFILL }},
20355     { &hf_gsm_map_ms_regionalSubscriptionIdentifier,
20356       { "regionalSubscriptionIdentifier", "gsm_map.ms.regionalSubscriptionIdentifier",
20357         FT_BYTES, BASE_HEX, NULL, 0,
20358         "gsm_map_ms.ZoneCode", HFILL }},
20359     { &hf_gsm_map_ms_vbsGroupIndication,
20360       { "vbsGroupIndication", "gsm_map.ms.vbsGroupIndication",
20361         FT_NONE, BASE_NONE, NULL, 0,
20362         "gsm_map_ms.NULL", HFILL }},
20363     { &hf_gsm_map_ms_vgcsGroupIndication,
20364       { "vgcsGroupIndication", "gsm_map.ms.vgcsGroupIndication",
20365         FT_NONE, BASE_NONE, NULL, 0,
20366         "gsm_map_ms.NULL", HFILL }},
20367     { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw,
20368       { "camelSubscriptionInfoWithdraw", "gsm_map.ms.camelSubscriptionInfoWithdraw",
20369         FT_NONE, BASE_NONE, NULL, 0,
20370         "gsm_map_ms.NULL", HFILL }},
20371     { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw,
20372       { "gprsSubscriptionDataWithdraw", "gsm_map.ms.gprsSubscriptionDataWithdraw",
20373         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRSSubscriptionDataWithdraw_vals), 0,
20374         "gsm_map_ms.GPRSSubscriptionDataWithdraw", HFILL }},
20375     { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature,
20376       { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsuppportedFeature",
20377         FT_NONE, BASE_NONE, NULL, 0,
20378         "gsm_map_ms.NULL", HFILL }},
20379     { &hf_gsm_map_ms_lsaInformationWithdraw,
20380       { "lsaInformationWithdraw", "gsm_map.ms.lsaInformationWithdraw",
20381         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAInformationWithdraw_vals), 0,
20382         "gsm_map_ms.LSAInformationWithdraw", HFILL }},
20383     { &hf_gsm_map_ms_gmlc_ListWithdraw,
20384       { "gmlc-ListWithdraw", "gsm_map.ms.gmlc_ListWithdraw",
20385         FT_NONE, BASE_NONE, NULL, 0,
20386         "gsm_map_ms.NULL", HFILL }},
20387     { &hf_gsm_map_ms_istInformationWithdraw,
20388       { "istInformationWithdraw", "gsm_map.ms.istInformationWithdraw",
20389         FT_NONE, BASE_NONE, NULL, 0,
20390         "gsm_map_ms.NULL", HFILL }},
20391     { &hf_gsm_map_ms_specificCSI_Withdraw,
20392       { "specificCSI-Withdraw", "gsm_map.ms.specificCSI_Withdraw",
20393         FT_BYTES, BASE_HEX, NULL, 0,
20394         "gsm_map_ms.SpecificCSI_Withdraw", HFILL }},
20395     { &hf_gsm_map_ms_chargingCharacteristicsWithdraw,
20396       { "chargingCharacteristicsWithdraw", "gsm_map.ms.chargingCharacteristicsWithdraw",
20397         FT_NONE, BASE_NONE, NULL, 0,
20398         "gsm_map_ms.NULL", HFILL }},
20399     { &hf_gsm_map_ms_stn_srWithdraw,
20400       { "stn-srWithdraw", "gsm_map.ms.stn_srWithdraw",
20401         FT_NONE, BASE_NONE, NULL, 0,
20402         "gsm_map_ms.NULL", HFILL }},
20403     { &hf_gsm_map_ms_epsSubscriptionDataWithdraw,
20404       { "epsSubscriptionDataWithdraw", "gsm_map.ms.epsSubscriptionDataWithdraw",
20405         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EPS_SubscriptionDataWithdraw_vals), 0,
20406         "gsm_map_ms.EPS_SubscriptionDataWithdraw", HFILL }},
20407     { &hf_gsm_map_ms_apn_oi_replacementWithdraw,
20408       { "apn-oi-replacementWithdraw", "gsm_map.ms.apn_oi_replacementWithdraw",
20409         FT_NONE, BASE_NONE, NULL, 0,
20410         "gsm_map_ms.NULL", HFILL }},
20411     { &hf_gsm_map_ms_csg_SubscriptionDeleted,
20412       { "csg-SubscriptionDeleted", "gsm_map.ms.csg_SubscriptionDeleted",
20413         FT_NONE, BASE_NONE, NULL, 0,
20414         "gsm_map_ms.NULL", HFILL }},
20415     { &hf_gsm_map_ms_allGPRSData,
20416       { "allGPRSData", "gsm_map.ms.allGPRSData",
20417         FT_NONE, BASE_NONE, NULL, 0,
20418         "gsm_map_ms.NULL", HFILL }},
20419     { &hf_gsm_map_ms_contextIdList,
20420       { "contextIdList", "gsm_map.ms.contextIdList",
20421         FT_UINT32, BASE_DEC, NULL, 0,
20422         "gsm_map_ms.ContextIdList", HFILL }},
20423     { &hf_gsm_map_ms_allEPS_Data,
20424       { "allEPS-Data", "gsm_map.ms.allEPS_Data",
20425         FT_NONE, BASE_NONE, NULL, 0,
20426         "gsm_map_ms.NULL", HFILL }},
20427     { &hf_gsm_map_ms_ContextIdList_item,
20428       { "ContextId", "gsm_map.ms.ContextId",
20429         FT_UINT32, BASE_DEC, NULL, 0,
20430         "gsm_map_ms.ContextId", HFILL }},
20431     { &hf_gsm_map_ms_allLSAData,
20432       { "allLSAData", "gsm_map.ms.allLSAData",
20433         FT_NONE, BASE_NONE, NULL, 0,
20434         "gsm_map_ms.NULL", HFILL }},
20435     { &hf_gsm_map_ms_lsaIdentityList,
20436       { "lsaIdentityList", "gsm_map.ms.lsaIdentityList",
20437         FT_UINT32, BASE_DEC, NULL, 0,
20438         "gsm_map_ms.LSAIdentityList", HFILL }},
20439     { &hf_gsm_map_ms_LSAIdentityList_item,
20440       { "LSAIdentity", "gsm_map.ms.LSAIdentity",
20441         FT_BYTES, BASE_HEX, NULL, 0,
20442         "gsm_map_ms.LSAIdentity", HFILL }},
20443     { &hf_gsm_map_ms_BasicServiceList_item,
20444       { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode",
20445         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20446         "gsm_map.Ext_BasicServiceCode", HFILL }},
20447     { &hf_gsm_map_ms_o_CSI,
20448       { "o-CSI", "gsm_map.ms.o_CSI",
20449         FT_NONE, BASE_NONE, NULL, 0,
20450         "gsm_map_ms.O_CSI", HFILL }},
20451     { &hf_gsm_map_ms_ss_CSI,
20452       { "ss-CSI", "gsm_map.ms.ss_CSI",
20453         FT_NONE, BASE_NONE, NULL, 0,
20454         "gsm_map_ms.SS_CSI", HFILL }},
20455     { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList,
20456       { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_BcsmCamelTDP_CriteriaList",
20457         FT_UINT32, BASE_DEC, NULL, 0,
20458         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
20459     { &hf_gsm_map_ms_tif_CSI,
20460       { "tif-CSI", "gsm_map.ms.tif_CSI",
20461         FT_NONE, BASE_NONE, NULL, 0,
20462         "gsm_map_ms.NULL", HFILL }},
20463     { &hf_gsm_map_ms_m_CSI,
20464       { "m-CSI", "gsm_map.ms.m_CSI",
20465         FT_NONE, BASE_NONE, NULL, 0,
20466         "gsm_map_ms.M_CSI", HFILL }},
20467     { &hf_gsm_map_ms_vt_CSI,
20468       { "vt-CSI", "gsm_map.ms.vt_CSI",
20469         FT_NONE, BASE_NONE, NULL, 0,
20470         "gsm_map_ms.T_CSI", HFILL }},
20471     { &hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList,
20472       { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.t_BCSM_CAMEL_TDP_CriteriaList",
20473         FT_UINT32, BASE_DEC, NULL, 0,
20474         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
20475     { &hf_gsm_map_ms_d_CSI,
20476       { "d-CSI", "gsm_map.ms.d_CSI",
20477         FT_NONE, BASE_NONE, NULL, 0,
20478         "gsm_map_ms.D_CSI", HFILL }},
20479     { &hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item,
20480       { "MT-smsCAMELTDP-Criteria", "gsm_map.ms.MT_smsCAMELTDP_Criteria",
20481         FT_NONE, BASE_NONE, NULL, 0,
20482         "gsm_map_ms.MT_smsCAMELTDP_Criteria", HFILL }},
20483     { &hf_gsm_map_ms_sms_TriggerDetectionPoint,
20484       { "sms-TriggerDetectionPoint", "gsm_map.ms.sms_TriggerDetectionPoint",
20485         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SMS_TriggerDetectionPoint_vals), 0,
20486         "gsm_map_ms.SMS_TriggerDetectionPoint", HFILL }},
20487     { &hf_gsm_map_ms_tpdu_TypeCriterion,
20488       { "tpdu-TypeCriterion", "gsm_map.ms.tpdu_TypeCriterion",
20489         FT_UINT32, BASE_DEC, NULL, 0,
20490         "gsm_map_ms.TPDU_TypeCriterion", HFILL }},
20491     { &hf_gsm_map_ms_TPDU_TypeCriterion_item,
20492       { "MT-SMS-TPDU-Type", "gsm_map.ms.MT_SMS_TPDU_Type",
20493         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MT_SMS_TPDU_Type_vals), 0,
20494         "gsm_map_ms.MT_SMS_TPDU_Type", HFILL }},
20495     { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList,
20496       { "dp-AnalysedInfoCriteriaList", "gsm_map.ms.dp_AnalysedInfoCriteriaList",
20497         FT_UINT32, BASE_DEC, NULL, 0,
20498         "gsm_map_ms.DP_AnalysedInfoCriteriaList", HFILL }},
20499     { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item,
20500       { "DP-AnalysedInfoCriterium", "gsm_map.ms.DP_AnalysedInfoCriterium",
20501         FT_NONE, BASE_NONE, NULL, 0,
20502         "gsm_map_ms.DP_AnalysedInfoCriterium", HFILL }},
20503     { &hf_gsm_map_ms_dialledNumber,
20504       { "dialledNumber", "gsm_map.ms.dialledNumber",
20505         FT_BYTES, BASE_HEX, NULL, 0,
20506         "gsm_map.ISDN_AddressString", HFILL }},
20507     { &hf_gsm_map_ms_defaultCallHandling,
20508       { "defaultCallHandling", "gsm_map.ms.defaultCallHandling",
20509         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultCallHandling_vals), 0,
20510         "gsm_map_ms.DefaultCallHandling", HFILL }},
20511     { &hf_gsm_map_ms_ss_CamelData,
20512       { "ss-CamelData", "gsm_map.ms.ss_CamelData",
20513         FT_NONE, BASE_NONE, NULL, 0,
20514         "gsm_map_ms.SS_CamelData", HFILL }},
20515     { &hf_gsm_map_ms_ss_EventList,
20516       { "ss-EventList", "gsm_map.ms.ss_EventList",
20517         FT_UINT32, BASE_DEC, NULL, 0,
20518         "gsm_map_ms.SS_EventList", HFILL }},
20519     { &hf_gsm_map_ms_SS_EventList_item,
20520       { "SS-Code", "gsm_map.ms.SS_Code",
20521         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
20522         "gsm_map.SS_Code", HFILL }},
20523     { &hf_gsm_map_ms_o_BcsmCamelTDPDataList,
20524       { "o-BcsmCamelTDPDataList", "gsm_map.ms.o_BcsmCamelTDPDataList",
20525         FT_UINT32, BASE_DEC, NULL, 0,
20526         "gsm_map_ms.O_BcsmCamelTDPDataList", HFILL }},
20527     { &hf_gsm_map_ms_csiActive,
20528       { "csiActive", "gsm_map.ms.csiActive",
20529         FT_NONE, BASE_NONE, NULL, 0,
20530         "gsm_map_ms.NULL", HFILL }},
20531     { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item,
20532       { "O-BcsmCamelTDPData", "gsm_map.ms.O_BcsmCamelTDPData",
20533         FT_NONE, BASE_NONE, NULL, 0,
20534         "gsm_map_ms.O_BcsmCamelTDPData", HFILL }},
20535     { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint,
20536       { "o-BcsmTriggerDetectionPoint", "gsm_map.ms.o_BcsmTriggerDetectionPoint",
20537         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_O_BcsmTriggerDetectionPoint_vals), 0,
20538         "gsm_map_ms.O_BcsmTriggerDetectionPoint", HFILL }},
20539     { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item,
20540       { "O-BcsmCamelTDP-Criteria", "gsm_map.ms.O_BcsmCamelTDP_Criteria",
20541         FT_NONE, BASE_NONE, NULL, 0,
20542         "gsm_map_ms.O_BcsmCamelTDP_Criteria", HFILL }},
20543     { &hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item,
20544       { "T-BCSM-CAMEL-TDP-Criteria", "gsm_map.ms.T_BCSM_CAMEL_TDP_Criteria",
20545         FT_NONE, BASE_NONE, NULL, 0,
20546         "gsm_map_ms.T_BCSM_CAMEL_TDP_Criteria", HFILL }},
20547     { &hf_gsm_map_ms_destinationNumberCriteria,
20548       { "destinationNumberCriteria", "gsm_map.ms.destinationNumberCriteria",
20549         FT_NONE, BASE_NONE, NULL, 0,
20550         "gsm_map_ms.DestinationNumberCriteria", HFILL }},
20551     { &hf_gsm_map_ms_basicServiceCriteria,
20552       { "basicServiceCriteria", "gsm_map.ms.basicServiceCriteria",
20553         FT_UINT32, BASE_DEC, NULL, 0,
20554         "gsm_map_ms.BasicServiceCriteria", HFILL }},
20555     { &hf_gsm_map_ms_callTypeCriteria,
20556       { "callTypeCriteria", "gsm_map.ms.callTypeCriteria",
20557         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CallTypeCriteria_vals), 0,
20558         "gsm_map_ms.CallTypeCriteria", HFILL }},
20559     { &hf_gsm_map_ms_o_CauseValueCriteria,
20560       { "o-CauseValueCriteria", "gsm_map.ms.o_CauseValueCriteria",
20561         FT_UINT32, BASE_DEC, NULL, 0,
20562         "gsm_map_ms.O_CauseValueCriteria", HFILL }},
20563     { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint,
20564       { "t-BCSM-TriggerDetectionPoint", "gsm_map.ms.t_BCSM_TriggerDetectionPoint",
20565         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
20566         "gsm_map_ms.T_BcsmTriggerDetectionPoint", HFILL }},
20567     { &hf_gsm_map_ms_t_CauseValueCriteria,
20568       { "t-CauseValueCriteria", "gsm_map.ms.t_CauseValueCriteria",
20569         FT_UINT32, BASE_DEC, NULL, 0,
20570         "gsm_map_ms.T_CauseValueCriteria", HFILL }},
20571     { &hf_gsm_map_ms_matchType,
20572       { "matchType", "gsm_map.ms.matchType",
20573         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MatchType_vals), 0,
20574         "gsm_map_ms.MatchType", HFILL }},
20575     { &hf_gsm_map_ms_destinationNumberList,
20576       { "destinationNumberList", "gsm_map.ms.destinationNumberList",
20577         FT_UINT32, BASE_DEC, NULL, 0,
20578         "gsm_map_ms.DestinationNumberList", HFILL }},
20579     { &hf_gsm_map_ms_destinationNumberLengthList,
20580       { "destinationNumberLengthList", "gsm_map.ms.destinationNumberLengthList",
20581         FT_UINT32, BASE_DEC, NULL, 0,
20582         "gsm_map_ms.DestinationNumberLengthList", HFILL }},
20583     { &hf_gsm_map_ms_DestinationNumberList_item,
20584       { "ISDN-AddressString", "gsm_map.ms.ISDN_AddressString",
20585         FT_BYTES, BASE_HEX, NULL, 0,
20586         "gsm_map.ISDN_AddressString", HFILL }},
20587     { &hf_gsm_map_ms_DestinationNumberLengthList_item,
20588       { "DestinationNumberLengthList item", "gsm_map.ms.DestinationNumberLengthList_item",
20589         FT_UINT32, BASE_DEC, NULL, 0,
20590         "gsm_map_ms.INTEGER_1_maxNumOfISDN_AddressDigits", HFILL }},
20591     { &hf_gsm_map_ms_BasicServiceCriteria_item,
20592       { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode",
20593         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20594         "gsm_map.Ext_BasicServiceCode", HFILL }},
20595     { &hf_gsm_map_ms_O_CauseValueCriteria_item,
20596       { "CauseValue", "gsm_map.ms.CauseValue",
20597         FT_BYTES, BASE_HEX, NULL, 0,
20598         "gsm_map_ms.CauseValue", HFILL }},
20599     { &hf_gsm_map_ms_T_CauseValueCriteria_item,
20600       { "CauseValue", "gsm_map.ms.CauseValue",
20601         FT_BYTES, BASE_HEX, NULL, 0,
20602         "gsm_map_ms.CauseValue", HFILL }},
20603     { &hf_gsm_map_ms_sms_CAMEL_TDP_DataList,
20604       { "sms-CAMEL-TDP-DataList", "gsm_map.ms.sms_CAMEL_TDP_DataList",
20605         FT_UINT32, BASE_DEC, NULL, 0,
20606         "gsm_map_ms.SMS_CAMEL_TDP_DataList", HFILL }},
20607     { &hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item,
20608       { "SMS-CAMEL-TDP-Data", "gsm_map.ms.SMS_CAMEL_TDP_Data",
20609         FT_NONE, BASE_NONE, NULL, 0,
20610         "gsm_map_ms.SMS_CAMEL_TDP_Data", HFILL }},
20611     { &hf_gsm_map_ms_defaultSMS_Handling,
20612       { "defaultSMS-Handling", "gsm_map.ms.defaultSMS_Handling",
20613         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultSMS_Handling_vals), 0,
20614         "gsm_map_ms.DefaultSMS_Handling", HFILL }},
20615     { &hf_gsm_map_ms_mobilityTriggers,
20616       { "mobilityTriggers", "gsm_map.ms.mobilityTriggers",
20617         FT_UINT32, BASE_DEC, NULL, 0,
20618         "gsm_map_ms.MobilityTriggers", HFILL }},
20619     { &hf_gsm_map_ms_MobilityTriggers_item,
20620       { "MM-Code", "gsm_map.ms.MM_Code",
20621         FT_BYTES, BASE_HEX, NULL, 0,
20622         "gsm_map_ms.MM_Code", HFILL }},
20623     { &hf_gsm_map_ms_t_BcsmCamelTDPDataList,
20624       { "t-BcsmCamelTDPDataList", "gsm_map.ms.t_BcsmCamelTDPDataList",
20625         FT_UINT32, BASE_DEC, NULL, 0,
20626         "gsm_map_ms.T_BcsmCamelTDPDataList", HFILL }},
20627     { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item,
20628       { "T-BcsmCamelTDPData", "gsm_map.ms.T_BcsmCamelTDPData",
20629         FT_NONE, BASE_NONE, NULL, 0,
20630         "gsm_map_ms.T_BcsmCamelTDPData", HFILL }},
20631     { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint,
20632       { "t-BcsmTriggerDetectionPoint", "gsm_map.ms.t_BcsmTriggerDetectionPoint",
20633         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
20634         "gsm_map_ms.T_BcsmTriggerDetectionPoint", HFILL }},
20635     { &hf_gsm_map_ms_ggsn_Address,
20636       { "ggsn-Address", "gsm_map.ms.ggsn_Address",
20637         FT_BYTES, BASE_HEX, NULL, 0,
20638         "gsm_map_ms.GSN_Address", HFILL }},
20639     { &hf_gsm_map_ms_ggsn_Number,
20640       { "ggsn-Number", "gsm_map.ms.ggsn_Number",
20641         FT_BYTES, BASE_HEX, NULL, 0,
20642         "gsm_map.ISDN_AddressString", HFILL }},
20643     { &hf_gsm_map_ms_mobileNotReachableReason,
20644       { "mobileNotReachableReason", "gsm_map.ms.mobileNotReachableReason",
20645         FT_UINT32, BASE_DEC, NULL, 0,
20646         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
20647     { &hf_gsm_map_ms_hlr_List,
20648       { "hlr-List", "gsm_map.ms.hlr_List",
20649         FT_UINT32, BASE_DEC, NULL, 0,
20650         "gsm_map.HLR_List", HFILL }},
20651     { &hf_gsm_map_ms_msNotReachable,
20652       { "msNotReachable", "gsm_map.ms.msNotReachable",
20653         FT_NONE, BASE_NONE, NULL, 0,
20654         "gsm_map_ms.NULL", HFILL }},
20655     { &hf_gsm_map_ms_VBSDataList_item,
20656       { "VoiceBroadcastData", "gsm_map.ms.VoiceBroadcastData",
20657         FT_NONE, BASE_NONE, NULL, 0,
20658         "gsm_map_ms.VoiceBroadcastData", HFILL }},
20659     { &hf_gsm_map_ms_VGCSDataList_item,
20660       { "VoiceGroupCallData", "gsm_map.ms.VoiceGroupCallData",
20661         FT_NONE, BASE_NONE, NULL, 0,
20662         "gsm_map_ms.VoiceGroupCallData", HFILL }},
20663     { &hf_gsm_map_ms_groupId,
20664       { "groupId", "gsm_map.ms.groupId",
20665         FT_BYTES, BASE_HEX, NULL, 0,
20666         "gsm_map_ms.GroupId", HFILL }},
20667     { &hf_gsm_map_ms_additionalSubscriptions,
20668       { "additionalSubscriptions", "gsm_map.ms.additionalSubscriptions",
20669         FT_BYTES, BASE_HEX, NULL, 0,
20670         "gsm_map_ms.AdditionalSubscriptions", HFILL }},
20671     { &hf_gsm_map_ms_additionalInfo,
20672       { "additionalInfo", "gsm_map.ms.additionalInfo",
20673         FT_BYTES, BASE_HEX, NULL, 0,
20674         "gsm_map_ms.AdditionalInfo", HFILL }},
20675     { &hf_gsm_map_ms_longGroupId,
20676       { "longGroupId", "gsm_map.ms.longGroupId",
20677         FT_BYTES, BASE_HEX, NULL, 0,
20678         "gsm_map_ms.Long_GroupId", HFILL }},
20679     { &hf_gsm_map_ms_groupid,
20680       { "groupid", "gsm_map.ms.groupid",
20681         FT_BYTES, BASE_HEX, NULL, 0,
20682         "gsm_map_ms.GroupId", HFILL }},
20683     { &hf_gsm_map_ms_broadcastInitEntitlement,
20684       { "broadcastInitEntitlement", "gsm_map.ms.broadcastInitEntitlement",
20685         FT_NONE, BASE_NONE, NULL, 0,
20686         "gsm_map_ms.NULL", HFILL }},
20687     { &hf_gsm_map_ms_requestedInfo,
20688       { "requestedInfo", "gsm_map.ms.requestedInfo",
20689         FT_NONE, BASE_NONE, NULL, 0,
20690         "gsm_map_ms.RequestedInfo", HFILL }},
20691     { &hf_gsm_map_ms_callPriority,
20692       { "callPriority", "gsm_map.ms.callPriority",
20693         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
20694         "gsm_map.EMLPP_Priority", HFILL }},
20695     { &hf_gsm_map_ms_subscriberInfo,
20696       { "subscriberInfo", "gsm_map.ms.subscriberInfo",
20697         FT_NONE, BASE_NONE, NULL, 0,
20698         "gsm_map_ms.SubscriberInfo", HFILL }},
20699     { &hf_gsm_map_ms_locationInformation,
20700       { "locationInformation", "gsm_map.ms.locationInformation",
20701         FT_NONE, BASE_NONE, NULL, 0,
20702         "gsm_map_ms.LocationInformation", HFILL }},
20703     { &hf_gsm_map_ms_subscriberState,
20704       { "subscriberState", "gsm_map.ms.subscriberState",
20705         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberState_vals), 0,
20706         "gsm_map_ms.SubscriberState", HFILL }},
20707     { &hf_gsm_map_ms_locationInformationGPRS,
20708       { "locationInformationGPRS", "gsm_map.ms.locationInformationGPRS",
20709         FT_NONE, BASE_NONE, NULL, 0,
20710         "gsm_map_ms.LocationInformationGPRS", HFILL }},
20711     { &hf_gsm_map_ms_ps_SubscriberState,
20712       { "ps-SubscriberState", "gsm_map.ms.ps_SubscriberState",
20713         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PS_SubscriberState_vals), 0,
20714         "gsm_map_ms.PS_SubscriberState", HFILL }},
20715     { &hf_gsm_map_ms_ms_Classmark2,
20716       { "ms-Classmark2", "gsm_map.ms.ms_Classmark2",
20717         FT_BYTES, BASE_HEX, NULL, 0,
20718         "gsm_map_ms.MS_Classmark2", HFILL }},
20719     { &hf_gsm_map_ms_gprs_MS_Class,
20720       { "gprs-MS-Class", "gsm_map.ms.gprs_MS_Class",
20721         FT_NONE, BASE_NONE, NULL, 0,
20722         "gsm_map_ms.GPRSMSClass", HFILL }},
20723     { &hf_gsm_map_ms_mnpInfoRes,
20724       { "mnpInfoRes", "gsm_map.ms.mnpInfoRes",
20725         FT_NONE, BASE_NONE, NULL, 0,
20726         "gsm_map_ms.MNPInfoRes", HFILL }},
20727     { &hf_gsm_map_ms_routeingNumber,
20728       { "routeingNumber", "gsm_map.ms.routeingNumber",
20729         FT_BYTES, BASE_HEX, NULL, 0,
20730         "gsm_map_ms.RouteingNumber", HFILL }},
20731     { &hf_gsm_map_ms_numberPortabilityStatus,
20732       { "numberPortabilityStatus", "gsm_map.ms.numberPortabilityStatus",
20733         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
20734         "gsm_map_ms.NumberPortabilityStatus", HFILL }},
20735     { &hf_gsm_map_ms_mSNetworkCapability,
20736       { "mSNetworkCapability", "gsm_map.ms.mSNetworkCapability",
20737         FT_BYTES, BASE_HEX, NULL, 0,
20738         "gsm_map_ms.MSNetworkCapability", HFILL }},
20739     { &hf_gsm_map_ms_mSRadioAccessCapability,
20740       { "mSRadioAccessCapability", "gsm_map.ms.mSRadioAccessCapability",
20741         FT_BYTES, BASE_HEX, NULL, 0,
20742         "gsm_map_ms.MSRadioAccessCapability", HFILL }},
20743     { &hf_gsm_map_ms_locationInformation_01,
20744       { "locationInformation", "gsm_map.ms.locationInformation",
20745         FT_NONE, BASE_NONE, NULL, 0,
20746         "gsm_map_ms.NULL", HFILL }},
20747     { &hf_gsm_map_ms_subscriberState_01,
20748       { "subscriberState", "gsm_map.ms.subscriberState",
20749         FT_NONE, BASE_NONE, NULL, 0,
20750         "gsm_map_ms.NULL", HFILL }},
20751     { &hf_gsm_map_ms_currentLocation,
20752       { "currentLocation", "gsm_map.ms.currentLocation",
20753         FT_NONE, BASE_NONE, NULL, 0,
20754         "gsm_map_ms.NULL", HFILL }},
20755     { &hf_gsm_map_ms_requestedDomain,
20756       { "requestedDomain", "gsm_map.ms.requestedDomain",
20757         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DomainType_vals), 0,
20758         "gsm_map_ms.DomainType", HFILL }},
20759     { &hf_gsm_map_ms_imei_01,
20760       { "imei", "gsm_map.ms.imei",
20761         FT_NONE, BASE_NONE, NULL, 0,
20762         "gsm_map_ms.NULL", HFILL }},
20763     { &hf_gsm_map_ms_ms_classmark,
20764       { "ms-classmark", "gsm_map.ms.ms_classmark",
20765         FT_NONE, BASE_NONE, NULL, 0,
20766         "gsm_map_ms.NULL", HFILL }},
20767     { &hf_gsm_map_ms_mnpRequestedInfo,
20768       { "mnpRequestedInfo", "gsm_map.ms.mnpRequestedInfo",
20769         FT_NONE, BASE_NONE, NULL, 0,
20770         "gsm_map_ms.NULL", HFILL }},
20771     { &hf_gsm_map_ms_ageOfLocationInformation,
20772       { "ageOfLocationInformation", "gsm_map.ms.ageOfLocationInformation",
20773         FT_UINT32, BASE_DEC, NULL, 0,
20774         "gsm_map.AgeOfLocationInformation", HFILL }},
20775     { &hf_gsm_map_ms_geographicalInformation,
20776       { "geographicalInformation", "gsm_map.ms.geographicalInformation",
20777         FT_BYTES, BASE_HEX, NULL, 0,
20778         "gsm_map_ms.GeographicalInformation", HFILL }},
20779     { &hf_gsm_map_ms_vlr_number,
20780       { "vlr-number", "gsm_map.ms.vlr_number",
20781         FT_BYTES, BASE_HEX, NULL, 0,
20782         "gsm_map.ISDN_AddressString", HFILL }},
20783     { &hf_gsm_map_ms_locationNumber,
20784       { "locationNumber", "gsm_map.ms.locationNumber",
20785         FT_BYTES, BASE_HEX, NULL, 0,
20786         "gsm_map_ms.LocationNumber", HFILL }},
20787     { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI,
20788       { "cellGlobalIdOrServiceAreaIdOrLAI", "gsm_map.ms.cellGlobalIdOrServiceAreaIdOrLAI",
20789         FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
20790         "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
20791     { &hf_gsm_map_ms_selectedLSA_Id,
20792       { "selectedLSA-Id", "gsm_map.ms.selectedLSA_Id",
20793         FT_BYTES, BASE_HEX, NULL, 0,
20794         "gsm_map_ms.LSAIdentity", HFILL }},
20795     { &hf_gsm_map_ms_geodeticInformation,
20796       { "geodeticInformation", "gsm_map.ms.geodeticInformation",
20797         FT_BYTES, BASE_HEX, NULL, 0,
20798         "gsm_map_ms.GeodeticInformation", HFILL }},
20799     { &hf_gsm_map_ms_currentLocationRetrieved,
20800       { "currentLocationRetrieved", "gsm_map.ms.currentLocationRetrieved",
20801         FT_NONE, BASE_NONE, NULL, 0,
20802         "gsm_map_ms.NULL", HFILL }},
20803     { &hf_gsm_map_ms_sai_Present,
20804       { "sai-Present", "gsm_map.ms.sai_Present",
20805         FT_NONE, BASE_NONE, NULL, 0,
20806         "gsm_map_ms.NULL", HFILL }},
20807     { &hf_gsm_map_ms_routeingAreaIdentity,
20808       { "routeingAreaIdentity", "gsm_map.ms.routeingAreaIdentity",
20809         FT_BYTES, BASE_HEX, NULL, 0,
20810         "gsm_map_ms.RAIdentity", HFILL }},
20811     { &hf_gsm_map_ms_selectedLSAIdentity,
20812       { "selectedLSAIdentity", "gsm_map.ms.selectedLSAIdentity",
20813         FT_BYTES, BASE_HEX, NULL, 0,
20814         "gsm_map_ms.LSAIdentity", HFILL }},
20815     { &hf_gsm_map_ms_assumedIdle,
20816       { "assumedIdle", "gsm_map.ms.assumedIdle",
20817         FT_NONE, BASE_NONE, NULL, 0,
20818         "gsm_map_ms.NULL", HFILL }},
20819     { &hf_gsm_map_ms_camelBusy,
20820       { "camelBusy", "gsm_map.ms.camelBusy",
20821         FT_NONE, BASE_NONE, NULL, 0,
20822         "gsm_map_ms.NULL", HFILL }},
20823     { &hf_gsm_map_ms_netDetNotReachable,
20824       { "netDetNotReachable", "gsm_map.ms.netDetNotReachable",
20825         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotReachableReason_vals), 0,
20826         "gsm_map_ms.NotReachableReason", HFILL }},
20827     { &hf_gsm_map_ms_notProvidedFromVLR,
20828       { "notProvidedFromVLR", "gsm_map.ms.notProvidedFromVLR",
20829         FT_NONE, BASE_NONE, NULL, 0,
20830         "gsm_map_ms.NULL", HFILL }},
20831     { &hf_gsm_map_ms_notProvidedFromSGSN,
20832       { "notProvidedFromSGSN", "gsm_map.ms.notProvidedFromSGSN",
20833         FT_NONE, BASE_NONE, NULL, 0,
20834         "gsm_map_ms.NULL", HFILL }},
20835     { &hf_gsm_map_ms_ps_Detached,
20836       { "ps-Detached", "gsm_map.ms.ps_Detached",
20837         FT_NONE, BASE_NONE, NULL, 0,
20838         "gsm_map_ms.NULL", HFILL }},
20839     { &hf_gsm_map_ms_ps_AttachedNotReachableForPaging,
20840       { "ps-AttachedNotReachableForPaging", "gsm_map.ms.ps_AttachedNotReachableForPaging",
20841         FT_NONE, BASE_NONE, NULL, 0,
20842         "gsm_map_ms.NULL", HFILL }},
20843     { &hf_gsm_map_ms_ps_AttachedReachableForPaging,
20844       { "ps-AttachedReachableForPaging", "gsm_map.ms.ps_AttachedReachableForPaging",
20845         FT_NONE, BASE_NONE, NULL, 0,
20846         "gsm_map_ms.NULL", HFILL }},
20847     { &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging,
20848       { "ps-PDP-ActiveNotReachableForPaging", "gsm_map.ms.ps_PDP_ActiveNotReachableForPaging",
20849         FT_UINT32, BASE_DEC, NULL, 0,
20850         "gsm_map_ms.PDP_ContextInfoList", HFILL }},
20851     { &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging,
20852       { "ps-PDP-ActiveReachableForPaging", "gsm_map.ms.ps_PDP_ActiveReachableForPaging",
20853         FT_UINT32, BASE_DEC, NULL, 0,
20854         "gsm_map_ms.PDP_ContextInfoList", HFILL }},
20855     { &hf_gsm_map_ms_PDP_ContextInfoList_item,
20856       { "PDP-ContextInfo", "gsm_map.ms.PDP_ContextInfo",
20857         FT_NONE, BASE_NONE, NULL, 0,
20858         "gsm_map_ms.PDP_ContextInfo", HFILL }},
20859     { &hf_gsm_map_ms_pdp_ContextIdentifier,
20860       { "pdp-ContextIdentifier", "gsm_map.ms.pdp_ContextIdentifier",
20861         FT_UINT32, BASE_DEC, NULL, 0,
20862         "gsm_map_ms.ContextId", HFILL }},
20863     { &hf_gsm_map_ms_pdp_ContextActive,
20864       { "pdp-ContextActive", "gsm_map.ms.pdp_ContextActive",
20865         FT_NONE, BASE_NONE, NULL, 0,
20866         "gsm_map_ms.NULL", HFILL }},
20867     { &hf_gsm_map_ms_apn_Subscribed,
20868       { "apn-Subscribed", "gsm_map.ms.apn_Subscribed",
20869         FT_BYTES, BASE_HEX, NULL, 0,
20870         "gsm_map_ms.APN", HFILL }},
20871     { &hf_gsm_map_ms_apn_InUse,
20872       { "apn-InUse", "gsm_map.ms.apn_InUse",
20873         FT_BYTES, BASE_HEX, NULL, 0,
20874         "gsm_map_ms.APN", HFILL }},
20875     { &hf_gsm_map_ms_nsapi,
20876       { "nsapi", "gsm_map.ms.nsapi",
20877         FT_UINT32, BASE_DEC, NULL, 0,
20878         "gsm_map_ms.NSAPI", HFILL }},
20879     { &hf_gsm_map_ms_transactionId,
20880       { "transactionId", "gsm_map.ms.transactionId",
20881         FT_BYTES, BASE_HEX, NULL, 0,
20882         "gsm_map_ms.TransactionId", HFILL }},
20883     { &hf_gsm_map_ms_teid_ForGnAndGp,
20884       { "teid-ForGnAndGp", "gsm_map.ms.teid_ForGnAndGp",
20885         FT_BYTES, BASE_HEX, NULL, 0,
20886         "gsm_map_ms.TEID", HFILL }},
20887     { &hf_gsm_map_ms_teid_ForIu,
20888       { "teid-ForIu", "gsm_map.ms.teid_ForIu",
20889         FT_BYTES, BASE_HEX, NULL, 0,
20890         "gsm_map_ms.TEID", HFILL }},
20891     { &hf_gsm_map_ms_qos_Subscribed_01,
20892       { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
20893         FT_BYTES, BASE_HEX, NULL, 0,
20894         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
20895     { &hf_gsm_map_ms_qos_Requested,
20896       { "qos-Requested", "gsm_map.ms.qos_Requested",
20897         FT_BYTES, BASE_HEX, NULL, 0,
20898         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
20899     { &hf_gsm_map_ms_qos_Negotiated,
20900       { "qos-Negotiated", "gsm_map.ms.qos_Negotiated",
20901         FT_BYTES, BASE_HEX, NULL, 0,
20902         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
20903     { &hf_gsm_map_ms_chargingId,
20904       { "chargingId", "gsm_map.ms.chargingId",
20905         FT_BYTES, BASE_HEX, NULL, 0,
20906         "gsm_map_ms.GPRSChargingID", HFILL }},
20907     { &hf_gsm_map_ms_rnc_Address,
20908       { "rnc-Address", "gsm_map.ms.rnc_Address",
20909         FT_BYTES, BASE_HEX, NULL, 0,
20910         "gsm_map_ms.GSN_Address", HFILL }},
20911     { &hf_gsm_map_ms_qos2_Subscribed,
20912       { "qos2-Subscribed", "gsm_map.ms.qos2_Subscribed",
20913         FT_BYTES, BASE_HEX, NULL, 0,
20914         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
20915     { &hf_gsm_map_ms_qos2_Requested,
20916       { "qos2-Requested", "gsm_map.ms.qos2_Requested",
20917         FT_BYTES, BASE_HEX, NULL, 0,
20918         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
20919     { &hf_gsm_map_ms_qos2_Negotiated,
20920       { "qos2-Negotiated", "gsm_map.ms.qos2_Negotiated",
20921         FT_BYTES, BASE_HEX, NULL, 0,
20922         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
20923     { &hf_gsm_map_ms_qos3_Subscribed,
20924       { "qos3-Subscribed", "gsm_map.ms.qos3_Subscribed",
20925         FT_BYTES, BASE_HEX, NULL, 0,
20926         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
20927     { &hf_gsm_map_ms_qos3_Requested,
20928       { "qos3-Requested", "gsm_map.ms.qos3_Requested",
20929         FT_BYTES, BASE_HEX, NULL, 0,
20930         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
20931     { &hf_gsm_map_ms_qos3_Negotiated,
20932       { "qos3-Negotiated", "gsm_map.ms.qos3_Negotiated",
20933         FT_BYTES, BASE_HEX, NULL, 0,
20934         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
20935     { &hf_gsm_map_ms_subscriberIdentity,
20936       { "subscriberIdentity", "gsm_map.ms.subscriberIdentity",
20937         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
20938         "gsm_map.SubscriberIdentity", HFILL }},
20939     { &hf_gsm_map_ms_requestedSubscriptionInfo,
20940       { "requestedSubscriptionInfo", "gsm_map.ms.requestedSubscriptionInfo",
20941         FT_NONE, BASE_NONE, NULL, 0,
20942         "gsm_map_ms.RequestedSubscriptionInfo", HFILL }},
20943     { &hf_gsm_map_ms_callForwardingData,
20944       { "callForwardingData", "gsm_map.ms.callForwardingData",
20945         FT_NONE, BASE_NONE, NULL, 0,
20946         "gsm_map_ms.CallForwardingData", HFILL }},
20947     { &hf_gsm_map_ms_callBarringData,
20948       { "callBarringData", "gsm_map.ms.callBarringData",
20949         FT_NONE, BASE_NONE, NULL, 0,
20950         "gsm_map_ms.CallBarringData", HFILL }},
20951     { &hf_gsm_map_ms_odb_Info,
20952       { "odb-Info", "gsm_map.ms.odb_Info",
20953         FT_NONE, BASE_NONE, NULL, 0,
20954         "gsm_map_ms.ODB_Info", HFILL }},
20955     { &hf_gsm_map_ms_camel_SubscriptionInfo,
20956       { "camel-SubscriptionInfo", "gsm_map.ms.camel_SubscriptionInfo",
20957         FT_NONE, BASE_NONE, NULL, 0,
20958         "gsm_map_ms.CAMEL_SubscriptionInfo", HFILL }},
20959     { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases,
20960       { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases",
20961         FT_BYTES, BASE_HEX, NULL, 0,
20962         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20963     { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases,
20964       { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases",
20965         FT_BYTES, BASE_HEX, NULL, 0,
20966         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20967     { &hf_gsm_map_ms_offeredCamel4CSIsInVLR,
20968       { "offeredCamel4CSIsInVLR", "gsm_map.ms.offeredCamel4CSIsInVLR",
20969         FT_BYTES, BASE_HEX, NULL, 0,
20970         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20971     { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN,
20972       { "offeredCamel4CSIsInSGSN", "gsm_map.ms.offeredCamel4CSIsInSGSN",
20973         FT_BYTES, BASE_HEX, NULL, 0,
20974         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20975     { &hf_gsm_map_ms_msisdn_BS_List,
20976       { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List",
20977         FT_UINT32, BASE_DEC, NULL, 0,
20978         "gsm_map_ms.MSISDN_BS_List", HFILL }},
20979     { &hf_gsm_map_ms_requestedSS_Info,
20980       { "requestedSS-Info", "gsm_map.ms.requestedSS_Info",
20981         FT_NONE, BASE_NONE, NULL, 0,
20982         "gsm_map_ss.SS_ForBS_Code", HFILL }},
20983     { &hf_gsm_map_ms_odb,
20984       { "odb", "gsm_map.ms.odb",
20985         FT_NONE, BASE_NONE, NULL, 0,
20986         "gsm_map_ms.NULL", HFILL }},
20987     { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo,
20988       { "requestedCAMEL-SubscriptionInfo", "gsm_map.ms.requestedCAMEL_SubscriptionInfo",
20989         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
20990         "gsm_map_ms.RequestedCAMEL_SubscriptionInfo", HFILL }},
20991     { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01,
20992       { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases",
20993         FT_NONE, BASE_NONE, NULL, 0,
20994         "gsm_map_ms.NULL", HFILL }},
20995     { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01,
20996       { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases",
20997         FT_NONE, BASE_NONE, NULL, 0,
20998         "gsm_map_ms.NULL", HFILL }},
20999     { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo,
21000       { "additionalRequestedCAMEL-SubscriptionInfo", "gsm_map.ms.additionalRequestedCAMEL_SubscriptionInfo",
21001         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals), 0,
21002         "gsm_map_ms.AdditionalRequestedCAMEL_SubscriptionInfo", HFILL }},
21003     { &hf_gsm_map_ms_msisdn_BS_List_01,
21004       { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List",
21005         FT_NONE, BASE_NONE, NULL, 0,
21006         "gsm_map_ms.NULL", HFILL }},
21007     { &hf_gsm_map_ms_MSISDN_BS_List_item,
21008       { "MSISDN-BS", "gsm_map.ms.MSISDN_BS",
21009         FT_NONE, BASE_NONE, NULL, 0,
21010         "gsm_map_ms.MSISDN_BS", HFILL }},
21011     { &hf_gsm_map_ms_password,
21012       { "password", "gsm_map.ms.password",
21013         FT_STRING, BASE_NONE, NULL, 0,
21014         "gsm_map_ss.Password", HFILL }},
21015     { &hf_gsm_map_ms_wrongPasswordAttemptsCounter,
21016       { "wrongPasswordAttemptsCounter", "gsm_map.ms.wrongPasswordAttemptsCounter",
21017         FT_UINT32, BASE_DEC, NULL, 0,
21018         "gsm_map_ms.WrongPasswordAttemptsCounter", HFILL }},
21019     { &hf_gsm_map_ms_t_CSI,
21020       { "t-CSI", "gsm_map.ms.t_CSI",
21021         FT_NONE, BASE_NONE, NULL, 0,
21022         "gsm_map_ms.T_CSI", HFILL }},
21023     { &hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList,
21024       { "vt-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_BCSM_CAMEL_TDP_CriteriaList",
21025         FT_UINT32, BASE_DEC, NULL, 0,
21026         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
21027     { &hf_gsm_map_ms_tif_CSI_NotificationToCSE,
21028       { "tif-CSI-NotificationToCSE", "gsm_map.ms.tif_CSI_NotificationToCSE",
21029         FT_NONE, BASE_NONE, NULL, 0,
21030         "gsm_map_ms.NULL", HFILL }},
21031     { &hf_gsm_map_ms_specificCSIDeletedList,
21032       { "specificCSIDeletedList", "gsm_map.ms.specificCSIDeletedList",
21033         FT_BYTES, BASE_HEX, NULL, 0,
21034         "gsm_map_ms.SpecificCSI_Withdraw", HFILL }},
21035     { &hf_gsm_map_ms_o_IM_CSI,
21036       { "o-IM-CSI", "gsm_map.ms.o_IM_CSI",
21037         FT_NONE, BASE_NONE, NULL, 0,
21038         "gsm_map_ms.O_CSI", HFILL }},
21039     { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList,
21040       { "o-IM-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_IM_BcsmCamelTDP_CriteriaList",
21041         FT_UINT32, BASE_DEC, NULL, 0,
21042         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
21043     { &hf_gsm_map_ms_d_IM_CSI,
21044       { "d-IM-CSI", "gsm_map.ms.d_IM_CSI",
21045         FT_NONE, BASE_NONE, NULL, 0,
21046         "gsm_map_ms.D_CSI", HFILL }},
21047     { &hf_gsm_map_ms_vt_IM_CSI,
21048       { "vt-IM-CSI", "gsm_map.ms.vt_IM_CSI",
21049         FT_NONE, BASE_NONE, NULL, 0,
21050         "gsm_map_ms.T_CSI", HFILL }},
21051     { &hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList,
21052       { "vt-IM-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_IM_BCSM_CAMEL_TDP_CriteriaList",
21053         FT_UINT32, BASE_DEC, NULL, 0,
21054         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
21055     { &hf_gsm_map_ms_modificationRequestFor_CF_Info,
21056       { "modificationRequestFor-CF-Info", "gsm_map.ms.modificationRequestFor_CF_Info",
21057         FT_NONE, BASE_NONE, NULL, 0,
21058         "gsm_map_ms.ModificationRequestFor_CF_Info", HFILL }},
21059     { &hf_gsm_map_ms_modificationRequestFor_CB_Info,
21060       { "modificationRequestFor-CB-Info", "gsm_map.ms.modificationRequestFor_CB_Info",
21061         FT_NONE, BASE_NONE, NULL, 0,
21062         "gsm_map_ms.ModificationRequestFor_CB_Info", HFILL }},
21063     { &hf_gsm_map_ms_modificationRequestFor_CSI,
21064       { "modificationRequestFor-CSI", "gsm_map.ms.modificationRequestFor_CSI",
21065         FT_NONE, BASE_NONE, NULL, 0,
21066         "gsm_map_ms.ModificationRequestFor_CSI", HFILL }},
21067     { &hf_gsm_map_ms_modificationRequestFor_ODB_data,
21068       { "modificationRequestFor-ODB-data", "gsm_map.ms.modificationRequestFor_ODB_data",
21069         FT_NONE, BASE_NONE, NULL, 0,
21070         "gsm_map_ms.ModificationRequestFor_ODB_data", HFILL }},
21071     { &hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data,
21072       { "modificationRequestFor-IP-SM-GW-Data", "gsm_map.ms.modificationRequestFor_IP_SM_GW_Data",
21073         FT_NONE, BASE_NONE, NULL, 0,
21074         "gsm_map_ms.ModificationRequestFor_IP_SM_GW_Data", HFILL }},
21075     { &hf_gsm_map_ms_ss_InfoFor_CSE,
21076       { "ss-InfoFor-CSE", "gsm_map.ms.ss_InfoFor_CSE",
21077         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_InfoFor_CSE_vals), 0,
21078         "gsm_map_ms.Ext_SS_InfoFor_CSE", HFILL }},
21079     { &hf_gsm_map_ms_forwardedToNumber_01,
21080       { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
21081         FT_BYTES, BASE_HEX, NULL, 0,
21082         "gsm_map.AddressString", HFILL }},
21083     { &hf_gsm_map_ms_modifyNotificationToCSE,
21084       { "modifyNotificationToCSE", "gsm_map.ms.modifyNotificationToCSE",
21085         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
21086         "gsm_map_ms.ModificationInstruction", HFILL }},
21087     { &hf_gsm_map_ms_odb_data,
21088       { "odb-data", "gsm_map.ms.odb_data",
21089         FT_NONE, BASE_NONE, NULL, 0,
21090         "gsm_map_ms.ODB_Data", HFILL }},
21091     { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo,
21092       { "requestedCamel-SubscriptionInfo", "gsm_map.ms.requestedCamel_SubscriptionInfo",
21093         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
21094         "gsm_map_ms.RequestedCAMEL_SubscriptionInfo", HFILL }},
21095     { &hf_gsm_map_ms_modifyCSI_State,
21096       { "modifyCSI-State", "gsm_map.ms.modifyCSI_State",
21097         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
21098         "gsm_map_ms.ModificationInstruction", HFILL }},
21099     { &hf_gsm_map_ms_modifyRegistrationStatus,
21100       { "modifyRegistrationStatus", "gsm_map.ms.modifyRegistrationStatus",
21101         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
21102         "gsm_map_ms.ModificationInstruction", HFILL }},
21103     { &hf_gsm_map_ms_forwardingInfoFor_CSE,
21104       { "forwardingInfoFor-CSE", "gsm_map.ms.forwardingInfoFor_CSE",
21105         FT_NONE, BASE_NONE, NULL, 0,
21106         "gsm_map_ms.Ext_ForwardingInfoFor_CSE", HFILL }},
21107     { &hf_gsm_map_ms_callBarringInfoFor_CSE,
21108       { "callBarringInfoFor-CSE", "gsm_map.ms.callBarringInfoFor_CSE",
21109         FT_NONE, BASE_NONE, NULL, 0,
21110         "gsm_map_ms.Ext_CallBarringInfoFor_CSE", HFILL }},
21111     { &hf_gsm_map_ms_allInformationSent,
21112       { "allInformationSent", "gsm_map.ms.allInformationSent",
21113         FT_NONE, BASE_NONE, NULL, 0,
21114         "gsm_map_ms.NULL", HFILL }},
21115     { &hf_gsm_map_ms_eventMet,
21116       { "eventMet", "gsm_map.ms.eventMet",
21117         FT_BYTES, BASE_HEX, NULL, 0,
21118         "gsm_map_ms.MM_Code", HFILL }},
21119     { &hf_gsm_map_ms_supportedCAMELPhases,
21120       { "supportedCAMELPhases", "gsm_map.ms.supportedCAMELPhases",
21121         FT_BYTES, BASE_HEX, NULL, 0,
21122         "gsm_map_ms.SupportedCamelPhases", HFILL }},
21123     { &hf_gsm_map_ms_offeredCamel4Functionalities,
21124       { "offeredCamel4Functionalities", "gsm_map.ms.offeredCamel4Functionalities",
21125         FT_BYTES, BASE_HEX, NULL, 0,
21126         "gsm_map_ms.OfferedCamel4Functionalities", HFILL }},
21127     { &hf_gsm_map_ms_naea_PreferredCI,
21128       { "naea-PreferredCI", "gsm_map.ms.naea_PreferredCI",
21129         FT_NONE, BASE_NONE, NULL, 0,
21130         "gsm_map.NAEA_PreferredCI", HFILL }},
21131     { &hf_gsm_map_ms_gprsSubscriptionData,
21132       { "gprsSubscriptionData", "gsm_map.ms.gprsSubscriptionData",
21133         FT_NONE, BASE_NONE, NULL, 0,
21134         "gsm_map_ms.GPRSSubscriptionData", HFILL }},
21135     { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature,
21136       { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsupportedFeature",
21137         FT_NONE, BASE_NONE, NULL, 0,
21138         "gsm_map_ms.NULL", HFILL }},
21139     { &hf_gsm_map_ms_networkAccessMode,
21140       { "networkAccessMode", "gsm_map.ms.networkAccessMode",
21141         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NetworkAccessMode_vals), 0,
21142         "gsm_map_ms.NetworkAccessMode", HFILL }},
21143     { &hf_gsm_map_ms_lsaInformation,
21144       { "lsaInformation", "gsm_map.ms.lsaInformation",
21145         FT_NONE, BASE_NONE, NULL, 0,
21146         "gsm_map_ms.LSAInformation", HFILL }},
21147     { &hf_gsm_map_ms_lmu_Indicator,
21148       { "lmu-Indicator", "gsm_map.ms.lmu_Indicator",
21149         FT_NONE, BASE_NONE, NULL, 0,
21150         "gsm_map_ms.NULL", HFILL }},
21151     { &hf_gsm_map_ms_lcsInformation,
21152       { "lcsInformation", "gsm_map.ms.lcsInformation",
21153         FT_NONE, BASE_NONE, NULL, 0,
21154         "gsm_map_ms.LCSInformation", HFILL }},
21155     { &hf_gsm_map_ms_istAlertTimer,
21156       { "istAlertTimer", "gsm_map.ms.istAlertTimer",
21157         FT_UINT32, BASE_DEC, NULL, 0,
21158         "gsm_map_ms.IST_AlertTimerValue", HFILL }},
21159     { &hf_gsm_map_ms_superChargerSupportedInHLR,
21160       { "superChargerSupportedInHLR", "gsm_map.ms.superChargerSupportedInHLR",
21161         FT_BYTES, BASE_HEX, NULL, 0,
21162         "gsm_map_ms.AgeIndicator", HFILL }},
21163     { &hf_gsm_map_ms_mc_SS_Info,
21164       { "mc-SS-Info", "gsm_map.ms.mc_SS_Info",
21165         FT_NONE, BASE_NONE, NULL, 0,
21166         "gsm_map.MC_SS_Info", HFILL }},
21167     { &hf_gsm_map_ms_cs_AllocationRetentionPriority,
21168       { "cs-AllocationRetentionPriority", "gsm_map.ms.cs_AllocationRetentionPriority",
21169         FT_BYTES, BASE_HEX, NULL, 0,
21170         "gsm_map_ms.CS_AllocationRetentionPriority", HFILL }},
21171     { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo,
21172       { "sgsn-CAMEL-SubscriptionInfo", "gsm_map.ms.sgsn_CAMEL_SubscriptionInfo",
21173         FT_NONE, BASE_NONE, NULL, 0,
21174         "gsm_map_ms.SGSN_CAMEL_SubscriptionInfo", HFILL }},
21175     { &hf_gsm_map_ms_accessRestrictionData,
21176       { "accessRestrictionData", "gsm_map.ms.accessRestrictionData",
21177         FT_BYTES, BASE_HEX, NULL, 0,
21178         "gsm_map_ms.AccessRestrictionData", HFILL }},
21179     { &hf_gsm_map_ms_ics_Indicator,
21180       { "ics-Indicator", "gsm_map.ms.ics_Indicator",
21181         FT_BOOLEAN, 8, NULL, 0,
21182         "gsm_map_ms.BOOLEAN", HFILL }},
21183     { &hf_gsm_map_ms_eps_SubscriptionData,
21184       { "eps-SubscriptionData", "gsm_map.ms.eps_SubscriptionData",
21185         FT_NONE, BASE_NONE, NULL, 0,
21186         "gsm_map_ms.EPS_SubscriptionData", HFILL }},
21187     { &hf_gsm_map_ms_csg_SubscriptionDataList,
21188       { "csg-SubscriptionDataList", "gsm_map.ms.csg_SubscriptionDataList",
21189         FT_UINT32, BASE_DEC, NULL, 0,
21190         "gsm_map_ms.CSG_SubscriptionDataList", HFILL }},
21191     { &hf_gsm_map_ms_SupportedRAT_Types_utran,
21192       { "utran", "gsm_map.ms.utran",
21193         FT_BOOLEAN, 8, NULL, 0x80,
21194         "", HFILL }},
21195     { &hf_gsm_map_ms_SupportedRAT_Types_geran,
21196       { "geran", "gsm_map.ms.geran",
21197         FT_BOOLEAN, 8, NULL, 0x40,
21198         "", HFILL }},
21199     { &hf_gsm_map_ms_SupportedRAT_Types_gan,
21200       { "gan", "gsm_map.ms.gan",
21201         FT_BOOLEAN, 8, NULL, 0x20,
21202         "", HFILL }},
21203     { &hf_gsm_map_ms_SupportedRAT_Types_i_hspa_evolution,
21204       { "i-hspa-evolution", "gsm_map.ms.i-hspa-evolution",
21205         FT_BOOLEAN, 8, NULL, 0x10,
21206         "", HFILL }},
21207     { &hf_gsm_map_ms_SupportedRAT_Types_e_utran,
21208       { "e-utran", "gsm_map.ms.e-utran",
21209         FT_BOOLEAN, 8, NULL, 0x08,
21210         "", HFILL }},
21211     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1,
21212       { "lcsCapabilitySet1", "gsm_map.ms.lcsCapabilitySet1",
21213         FT_BOOLEAN, 8, NULL, 0x80,
21214         "", HFILL }},
21215     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2,
21216       { "lcsCapabilitySet2", "gsm_map.ms.lcsCapabilitySet2",
21217         FT_BOOLEAN, 8, NULL, 0x40,
21218         "", HFILL }},
21219     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3,
21220       { "lcsCapabilitySet3", "gsm_map.ms.lcsCapabilitySet3",
21221         FT_BOOLEAN, 8, NULL, 0x20,
21222         "", HFILL }},
21223     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4,
21224       { "lcsCapabilitySet4", "gsm_map.ms.lcsCapabilitySet4",
21225         FT_BOOLEAN, 8, NULL, 0x10,
21226         "", HFILL }},
21227     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5,
21228       { "lcsCapabilitySet5", "gsm_map.ms.lcsCapabilitySet5",
21229         FT_BOOLEAN, 8, NULL, 0x08,
21230         "", HFILL }},
21231     { &hf_gsm_map_ms_ISR_Information_updateMME,
21232       { "updateMME", "gsm_map.ms.updateMME",
21233         FT_BOOLEAN, 8, NULL, 0x80,
21234         "", HFILL }},
21235     { &hf_gsm_map_ms_ISR_Information_cancelSGSN,
21236       { "cancelSGSN", "gsm_map.ms.cancelSGSN",
21237         FT_BOOLEAN, 8, NULL, 0x40,
21238         "", HFILL }},
21239     { &hf_gsm_map_ms_SupportedFeatures_odb_all,
21240       { "odb-all", "gsm_map.ms.odb-all",
21241         FT_BOOLEAN, 8, NULL, 0x80,
21242         "", HFILL }},
21243     { &hf_gsm_map_ms_SupportedFeatures_odb_HPLMN_APN,
21244       { "odb-HPLMN-APN", "gsm_map.ms.odb-HPLMN-APN",
21245         FT_BOOLEAN, 8, NULL, 0x40,
21246         "", HFILL }},
21247     { &hf_gsm_map_ms_SupportedFeatures_odb_VPLMN_APN,
21248       { "odb-VPLMN-APN", "gsm_map.ms.odb-VPLMN-APN",
21249         FT_BOOLEAN, 8, NULL, 0x20,
21250         "", HFILL }},
21251     { &hf_gsm_map_ms_SupportedFeatures_regSub,
21252       { "regSub", "gsm_map.ms.regSub",
21253         FT_BOOLEAN, 8, NULL, 0x10,
21254         "", HFILL }},
21255     { &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus,
21256       { "equipmentStatus", "gsm_map.ms.equipmentStatus",
21257         FT_BOOLEAN, 8, NULL, 0x80,
21258         "", HFILL }},
21259     { &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef,
21260       { "bmuef", "gsm_map.ms.bmuef",
21261         FT_BOOLEAN, 8, NULL, 0x40,
21262         "", HFILL }},
21263     { &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed,
21264       { "utranNotAllowed", "gsm_map.ms.utranNotAllowed",
21265         FT_BOOLEAN, 8, NULL, 0x80,
21266         "", HFILL }},
21267     { &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed,
21268       { "geranNotAllowed", "gsm_map.ms.geranNotAllowed",
21269         FT_BOOLEAN, 8, NULL, 0x40,
21270         "", HFILL }},
21271     { &hf_gsm_map_ms_AccessRestrictionData_ganNotAllowed,
21272       { "ganNotAllowed", "gsm_map.ms.ganNotAllowed",
21273         FT_BOOLEAN, 8, NULL, 0x20,
21274         "", HFILL }},
21275     { &hf_gsm_map_ms_AccessRestrictionData_i_hspa_evolutionNotAllowed,
21276       { "i-hspa-evolutionNotAllowed", "gsm_map.ms.i-hspa-evolutionNotAllowed",
21277         FT_BOOLEAN, 8, NULL, 0x10,
21278         "", HFILL }},
21279     { &hf_gsm_map_ms_AccessRestrictionData_e_utranNotAllowed,
21280       { "e-utranNotAllowed", "gsm_map.ms.e-utranNotAllowed",
21281         FT_BOOLEAN, 8, NULL, 0x08,
21282         "", HFILL }},
21283     { &hf_gsm_map_ms_AccessRestrictionData_ho_toNon3GPP_AccessNotAllowed,
21284       { "ho-toNon3GPP-AccessNotAllowed", "gsm_map.ms.ho-toNon3GPP-AccessNotAllowed",
21285         FT_BOOLEAN, 8, NULL, 0x04,
21286         "", HFILL }},
21287     { &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred,
21288       { "allOG-CallsBarred", "gsm_map.ms.allOG-CallsBarred",
21289         FT_BOOLEAN, 8, NULL, 0x80,
21290         "", HFILL }},
21291     { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred,
21292       { "internationalOGCallsBarred", "gsm_map.ms.internationalOGCallsBarred",
21293         FT_BOOLEAN, 8, NULL, 0x40,
21294         "", HFILL }},
21295     { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred,
21296       { "internationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.internationalOGCallsNotToHPLMN-CountryBarred",
21297         FT_BOOLEAN, 8, NULL, 0x20,
21298         "", HFILL }},
21299     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred,
21300       { "interzonalOGCallsBarred", "gsm_map.ms.interzonalOGCallsBarred",
21301         FT_BOOLEAN, 8, NULL, 0x02,
21302         "", HFILL }},
21303     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred,
21304       { "interzonalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.interzonalOGCallsNotToHPLMN-CountryBarred",
21305         FT_BOOLEAN, 8, NULL, 0x01,
21306         "", HFILL }},
21307     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred,
21308       { "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred",
21309         FT_BOOLEAN, 8, NULL, 0x80,
21310         "", HFILL }},
21311     { &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred,
21312       { "premiumRateInformationOGCallsBarred", "gsm_map.ms.premiumRateInformationOGCallsBarred",
21313         FT_BOOLEAN, 8, NULL, 0x10,
21314         "", HFILL }},
21315     { &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred,
21316       { "premiumRateEntertainementOGCallsBarred", "gsm_map.ms.premiumRateEntertainementOGCallsBarred",
21317         FT_BOOLEAN, 8, NULL, 0x08,
21318         "", HFILL }},
21319     { &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred,
21320       { "ss-AccessBarred", "gsm_map.ms.ss-AccessBarred",
21321         FT_BOOLEAN, 8, NULL, 0x04,
21322         "", HFILL }},
21323     { &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred,
21324       { "allECT-Barred", "gsm_map.ms.allECT-Barred",
21325         FT_BOOLEAN, 8, NULL, 0x40,
21326         "", HFILL }},
21327     { &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred,
21328       { "chargeableECT-Barred", "gsm_map.ms.chargeableECT-Barred",
21329         FT_BOOLEAN, 8, NULL, 0x20,
21330         "", HFILL }},
21331     { &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred,
21332       { "internationalECT-Barred", "gsm_map.ms.internationalECT-Barred",
21333         FT_BOOLEAN, 8, NULL, 0x10,
21334         "", HFILL }},
21335     { &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred,
21336       { "interzonalECT-Barred", "gsm_map.ms.interzonalECT-Barred",
21337         FT_BOOLEAN, 8, NULL, 0x08,
21338         "", HFILL }},
21339     { &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred,
21340       { "doublyChargeableECT-Barred", "gsm_map.ms.doublyChargeableECT-Barred",
21341         FT_BOOLEAN, 8, NULL, 0x04,
21342         "", HFILL }},
21343     { &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred,
21344       { "multipleECT-Barred", "gsm_map.ms.multipleECT-Barred",
21345         FT_BOOLEAN, 8, NULL, 0x02,
21346         "", HFILL }},
21347     { &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred,
21348       { "allPacketOrientedServicesBarred", "gsm_map.ms.allPacketOrientedServicesBarred",
21349         FT_BOOLEAN, 8, NULL, 0x01,
21350         "", HFILL }},
21351     { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred,
21352       { "roamerAccessToHPLMN-AP-Barred", "gsm_map.ms.roamerAccessToHPLMN-AP-Barred",
21353         FT_BOOLEAN, 8, NULL, 0x80,
21354         "", HFILL }},
21355     { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred,
21356       { "roamerAccessToVPLMN-AP-Barred", "gsm_map.ms.roamerAccessToVPLMN-AP-Barred",
21357         FT_BOOLEAN, 8, NULL, 0x40,
21358         "", HFILL }},
21359     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred,
21360       { "roamingOutsidePLMNOG-CallsBarred", "gsm_map.ms.roamingOutsidePLMNOG-CallsBarred",
21361         FT_BOOLEAN, 8, NULL, 0x20,
21362         "", HFILL }},
21363     { &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred,
21364       { "allIC-CallsBarred", "gsm_map.ms.allIC-CallsBarred",
21365         FT_BOOLEAN, 8, NULL, 0x10,
21366         "", HFILL }},
21367     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred,
21368       { "roamingOutsidePLMNIC-CallsBarred", "gsm_map.ms.roamingOutsidePLMNIC-CallsBarred",
21369         FT_BOOLEAN, 8, NULL, 0x08,
21370         "", HFILL }},
21371     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred,
21372       { "roamingOutsidePLMNICountryIC-CallsBarred", "gsm_map.ms.roamingOutsidePLMNICountryIC-CallsBarred",
21373         FT_BOOLEAN, 8, NULL, 0x04,
21374         "", HFILL }},
21375     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred,
21376       { "roamingOutsidePLMN-Barred", "gsm_map.ms.roamingOutsidePLMN-Barred",
21377         FT_BOOLEAN, 8, NULL, 0x02,
21378         "", HFILL }},
21379     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred,
21380       { "roamingOutsidePLMN-CountryBarred", "gsm_map.ms.roamingOutsidePLMN-CountryBarred",
21381         FT_BOOLEAN, 8, NULL, 0x01,
21382         "", HFILL }},
21383     { &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred,
21384       { "registrationAllCF-Barred", "gsm_map.ms.registrationAllCF-Barred",
21385         FT_BOOLEAN, 8, NULL, 0x80,
21386         "", HFILL }},
21387     { &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred,
21388       { "registrationCFNotToHPLMN-Barred", "gsm_map.ms.registrationCFNotToHPLMN-Barred",
21389         FT_BOOLEAN, 8, NULL, 0x40,
21390         "", HFILL }},
21391     { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred,
21392       { "registrationInterzonalCF-Barred", "gsm_map.ms.registrationInterzonalCF-Barred",
21393         FT_BOOLEAN, 8, NULL, 0x20,
21394         "", HFILL }},
21395     { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred,
21396       { "registrationInterzonalCFNotToHPLMN-Barred", "gsm_map.ms.registrationInterzonalCFNotToHPLMN-Barred",
21397         FT_BOOLEAN, 8, NULL, 0x10,
21398         "", HFILL }},
21399     { &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred,
21400       { "registrationInternationalCF-Barred", "gsm_map.ms.registrationInternationalCF-Barred",
21401         FT_BOOLEAN, 8, NULL, 0x08,
21402         "", HFILL }},
21403     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1,
21404       { "plmn-SpecificBarringType1", "gsm_map.ms.plmn-SpecificBarringType1",
21405         FT_BOOLEAN, 8, NULL, 0x80,
21406         "", HFILL }},
21407     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2,
21408       { "plmn-SpecificBarringType2", "gsm_map.ms.plmn-SpecificBarringType2",
21409         FT_BOOLEAN, 8, NULL, 0x40,
21410         "", HFILL }},
21411     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3,
21412       { "plmn-SpecificBarringType3", "gsm_map.ms.plmn-SpecificBarringType3",
21413         FT_BOOLEAN, 8, NULL, 0x20,
21414         "", HFILL }},
21415     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4,
21416       { "plmn-SpecificBarringType4", "gsm_map.ms.plmn-SpecificBarringType4",
21417         FT_BOOLEAN, 8, NULL, 0x10,
21418         "", HFILL }},
21419     { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi,
21420       { "o-csi", "gsm_map.ms.o-csi",
21421         FT_BOOLEAN, 8, NULL, 0x80,
21422         "", HFILL }},
21423     { &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi,
21424       { "ss-csi", "gsm_map.ms.ss-csi",
21425         FT_BOOLEAN, 8, NULL, 0x40,
21426         "", HFILL }},
21427     { &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi,
21428       { "tif-csi", "gsm_map.ms.tif-csi",
21429         FT_BOOLEAN, 8, NULL, 0x20,
21430         "", HFILL }},
21431     { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi,
21432       { "d-csi", "gsm_map.ms.d-csi",
21433         FT_BOOLEAN, 8, NULL, 0x10,
21434         "", HFILL }},
21435     { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi,
21436       { "vt-csi", "gsm_map.ms.vt-csi",
21437         FT_BOOLEAN, 8, NULL, 0x08,
21438         "", HFILL }},
21439     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi,
21440       { "mo-sms-csi", "gsm_map.ms.mo-sms-csi",
21441         FT_BOOLEAN, 8, NULL, 0x04,
21442         "", HFILL }},
21443     { &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi,
21444       { "m-csi", "gsm_map.ms.m-csi",
21445         FT_BOOLEAN, 8, NULL, 0x02,
21446         "", HFILL }},
21447     { &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi,
21448       { "gprs-csi", "gsm_map.ms.gprs-csi",
21449         FT_BOOLEAN, 8, NULL, 0x01,
21450         "", HFILL }},
21451     { &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi,
21452       { "t-csi", "gsm_map.ms.t-csi",
21453         FT_BOOLEAN, 8, NULL, 0x80,
21454         "", HFILL }},
21455     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi,
21456       { "mt-sms-csi", "gsm_map.ms.mt-sms-csi",
21457         FT_BOOLEAN, 8, NULL, 0x40,
21458         "", HFILL }},
21459     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi,
21460       { "mg-csi", "gsm_map.ms.mg-csi",
21461         FT_BOOLEAN, 8, NULL, 0x20,
21462         "", HFILL }},
21463     { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI,
21464       { "o-IM-CSI", "gsm_map.ms.o-IM-CSI",
21465         FT_BOOLEAN, 8, NULL, 0x10,
21466         "", HFILL }},
21467     { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI,
21468       { "d-IM-CSI", "gsm_map.ms.d-IM-CSI",
21469         FT_BOOLEAN, 8, NULL, 0x08,
21470         "", HFILL }},
21471     { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI,
21472       { "vt-IM-CSI", "gsm_map.ms.vt-IM-CSI",
21473         FT_BOOLEAN, 8, NULL, 0x04,
21474         "", HFILL }},
21475     { &hf_gsm_map_ms_SupportedCamelPhases_phase1,
21476       { "phase1", "gsm_map.ms.phase1",
21477         FT_BOOLEAN, 8, NULL, 0x80,
21478         "", HFILL }},
21479     { &hf_gsm_map_ms_SupportedCamelPhases_phase2,
21480       { "phase2", "gsm_map.ms.phase2",
21481         FT_BOOLEAN, 8, NULL, 0x40,
21482         "", HFILL }},
21483     { &hf_gsm_map_ms_SupportedCamelPhases_phase3,
21484       { "phase3", "gsm_map.ms.phase3",
21485         FT_BOOLEAN, 8, NULL, 0x20,
21486         "", HFILL }},
21487     { &hf_gsm_map_ms_SupportedCamelPhases_phase4,
21488       { "phase4", "gsm_map.ms.phase4",
21489         FT_BOOLEAN, 8, NULL, 0x10,
21490         "", HFILL }},
21491     { &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi,
21492       { "o-csi", "gsm_map.ms.o-csi",
21493         FT_BOOLEAN, 8, NULL, 0x80,
21494         "", HFILL }},
21495     { &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi,
21496       { "d-csi", "gsm_map.ms.d-csi",
21497         FT_BOOLEAN, 8, NULL, 0x40,
21498         "", HFILL }},
21499     { &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi,
21500       { "vt-csi", "gsm_map.ms.vt-csi",
21501         FT_BOOLEAN, 8, NULL, 0x20,
21502         "", HFILL }},
21503     { &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi,
21504       { "t-csi", "gsm_map.ms.t-csi",
21505         FT_BOOLEAN, 8, NULL, 0x10,
21506         "", HFILL }},
21507     { &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi,
21508       { "mt-sms-csi", "gsm_map.ms.mt-sms-csi",
21509         FT_BOOLEAN, 8, NULL, 0x08,
21510         "", HFILL }},
21511     { &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi,
21512       { "mg-csi", "gsm_map.ms.mg-csi",
21513         FT_BOOLEAN, 8, NULL, 0x04,
21514         "", HFILL }},
21515     { &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements,
21516       { "psi-enhancements", "gsm_map.ms.psi-enhancements",
21517         FT_BOOLEAN, 8, NULL, 0x02,
21518         "", HFILL }},
21519     { &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt,
21520       { "initiateCallAttempt", "gsm_map.ms.initiateCallAttempt",
21521         FT_BOOLEAN, 8, NULL, 0x80,
21522         "", HFILL }},
21523     { &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg,
21524       { "splitLeg", "gsm_map.ms.splitLeg",
21525         FT_BOOLEAN, 8, NULL, 0x40,
21526         "", HFILL }},
21527     { &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg,
21528       { "moveLeg", "gsm_map.ms.moveLeg",
21529         FT_BOOLEAN, 8, NULL, 0x20,
21530         "", HFILL }},
21531     { &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg,
21532       { "disconnectLeg", "gsm_map.ms.disconnectLeg",
21533         FT_BOOLEAN, 8, NULL, 0x10,
21534         "", HFILL }},
21535     { &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased,
21536       { "entityReleased", "gsm_map.ms.entityReleased",
21537         FT_BOOLEAN, 8, NULL, 0x08,
21538         "", HFILL }},
21539     { &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument,
21540       { "dfc-WithArgument", "gsm_map.ms.dfc-WithArgument",
21541         FT_BOOLEAN, 8, NULL, 0x04,
21542         "", HFILL }},
21543     { &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone,
21544       { "playTone", "gsm_map.ms.playTone",
21545         FT_BOOLEAN, 8, NULL, 0x02,
21546         "", HFILL }},
21547     { &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall,
21548       { "dtmf-MidCall", "gsm_map.ms.dtmf-MidCall",
21549         FT_BOOLEAN, 8, NULL, 0x01,
21550         "", HFILL }},
21551     { &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator,
21552       { "chargingIndicator", "gsm_map.ms.chargingIndicator",
21553         FT_BOOLEAN, 8, NULL, 0x80,
21554         "", HFILL }},
21555     { &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP,
21556       { "alertingDP", "gsm_map.ms.alertingDP",
21557         FT_BOOLEAN, 8, NULL, 0x40,
21558         "", HFILL }},
21559     { &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting,
21560       { "locationAtAlerting", "gsm_map.ms.locationAtAlerting",
21561         FT_BOOLEAN, 8, NULL, 0x20,
21562         "", HFILL }},
21563     { &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP,
21564       { "changeOfPositionDP", "gsm_map.ms.changeOfPositionDP",
21565         FT_BOOLEAN, 8, NULL, 0x10,
21566         "", HFILL }},
21567     { &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions,
21568       { "or-Interactions", "gsm_map.ms.or-Interactions",
21569         FT_BOOLEAN, 8, NULL, 0x08,
21570         "", HFILL }},
21571     { &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements,
21572       { "warningToneEnhancements", "gsm_map.ms.warningToneEnhancements",
21573         FT_BOOLEAN, 8, NULL, 0x04,
21574         "", HFILL }},
21575     { &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements,
21576       { "cf-Enhancements", "gsm_map.ms.cf-Enhancements",
21577         FT_BOOLEAN, 8, NULL, 0x02,
21578         "", HFILL }},
21579     { &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices,
21580       { "subscribedEnhancedDialledServices", "gsm_map.ms.subscribedEnhancedDialledServices",
21581         FT_BOOLEAN, 8, NULL, 0x01,
21582         "", HFILL }},
21583     { &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices,
21584       { "servingNetworkEnhancedDialledServices", "gsm_map.ms.servingNetworkEnhancedDialledServices",
21585         FT_BOOLEAN, 8, NULL, 0x80,
21586         "", HFILL }},
21587     { &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP,
21588       { "criteriaForChangeOfPositionDP", "gsm_map.ms.criteriaForChangeOfPositionDP",
21589         FT_BOOLEAN, 8, NULL, 0x40,
21590         "", HFILL }},
21591     { &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP,
21592       { "serviceChangeDP", "gsm_map.ms.serviceChangeDP",
21593         FT_BOOLEAN, 8, NULL, 0x20,
21594         "", HFILL }},
21595     { &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation,
21596       { "collectInformation", "gsm_map.ms.collectInformation",
21597         FT_BOOLEAN, 8, NULL, 0x10,
21598         "", HFILL }},
21599     { &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest,
21600       { "privilegedUplinkRequest", "gsm_map.ms.privilegedUplinkRequest",
21601         FT_BOOLEAN, 8, NULL, 0x80,
21602         "", HFILL }},
21603     { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest,
21604       { "emergencyUplinkRequest", "gsm_map.ms.emergencyUplinkRequest",
21605         FT_BOOLEAN, 8, NULL, 0x40,
21606         "", HFILL }},
21607     { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset,
21608       { "emergencyReset", "gsm_map.ms.emergencyReset",
21609         FT_BOOLEAN, 8, NULL, 0x20,
21610         "", HFILL }},
21611
21612 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
21613
21614     { &hf_gsm_map_ch_cug_Interlock,
21615       { "cug-Interlock", "gsm_map.ch.cug_Interlock",
21616         FT_BYTES, BASE_HEX, NULL, 0,
21617         "gsm_map_ms.CUG_Interlock", HFILL }},
21618     { &hf_gsm_map_ch_cug_OutgoingAccess,
21619       { "cug-OutgoingAccess", "gsm_map.ch.cug_OutgoingAccess",
21620         FT_NONE, BASE_NONE, NULL, 0,
21621         "gsm_map_ch.NULL", HFILL }},
21622     { &hf_gsm_map_ch_extensionContainer,
21623       { "extensionContainer", "gsm_map.ch.extensionContainer",
21624         FT_NONE, BASE_NONE, NULL, 0,
21625         "gsm_map.ExtensionContainer", HFILL }},
21626     { &hf_gsm_map_ch_msisdn,
21627       { "msisdn", "gsm_map.ch.msisdn",
21628         FT_BYTES, BASE_HEX, NULL, 0,
21629         "gsm_map.ISDN_AddressString", HFILL }},
21630     { &hf_gsm_map_ch_cug_CheckInfo,
21631       { "cug-CheckInfo", "gsm_map.ch.cug_CheckInfo",
21632         FT_NONE, BASE_NONE, NULL, 0,
21633         "gsm_map_ch.CUG_CheckInfo", HFILL }},
21634     { &hf_gsm_map_ch_numberOfForwarding,
21635       { "numberOfForwarding", "gsm_map.ch.numberOfForwarding",
21636         FT_UINT32, BASE_DEC, NULL, 0,
21637         "gsm_map_ch.NumberOfForwarding", HFILL }},
21638     { &hf_gsm_map_ch_interrogationType,
21639       { "interrogationType", "gsm_map.ch.interrogationType",
21640         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_InterrogationType_vals), 0,
21641         "gsm_map_ch.InterrogationType", HFILL }},
21642     { &hf_gsm_map_ch_or_Interrogation,
21643       { "or-Interrogation", "gsm_map.ch.or_Interrogation",
21644         FT_NONE, BASE_NONE, NULL, 0,
21645         "gsm_map_ch.NULL", HFILL }},
21646     { &hf_gsm_map_ch_or_Capability,
21647       { "or-Capability", "gsm_map.ch.or_Capability",
21648         FT_UINT32, BASE_DEC, NULL, 0,
21649         "gsm_map_ch.OR_Phase", HFILL }},
21650     { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address,
21651       { "gmsc-OrGsmSCF-Address", "gsm_map.ch.gmsc_OrGsmSCF_Address",
21652         FT_BYTES, BASE_HEX, NULL, 0,
21653         "gsm_map.ISDN_AddressString", HFILL }},
21654     { &hf_gsm_map_ch_callReferenceNumber,
21655       { "callReferenceNumber", "gsm_map.ch.callReferenceNumber",
21656         FT_BYTES, BASE_HEX, NULL, 0,
21657         "gsm_map_ch.CallReferenceNumber", HFILL }},
21658     { &hf_gsm_map_ch_forwardingReason,
21659       { "forwardingReason", "gsm_map.ch.forwardingReason",
21660         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ForwardingReason_vals), 0,
21661         "gsm_map_ch.ForwardingReason", HFILL }},
21662     { &hf_gsm_map_ch_basicServiceGroup,
21663       { "basicServiceGroup", "gsm_map.ch.basicServiceGroup",
21664         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
21665         "gsm_map.Ext_BasicServiceCode", HFILL }},
21666     { &hf_gsm_map_ch_networkSignalInfo,
21667       { "networkSignalInfo", "gsm_map.ch.networkSignalInfo",
21668         FT_NONE, BASE_NONE, NULL, 0,
21669         "gsm_map.ExternalSignalInfo", HFILL }},
21670     { &hf_gsm_map_ch_camelInfo,
21671       { "camelInfo", "gsm_map.ch.camelInfo",
21672         FT_NONE, BASE_NONE, NULL, 0,
21673         "gsm_map_ch.CamelInfo", HFILL }},
21674     { &hf_gsm_map_ch_suppressionOfAnnouncement,
21675       { "suppressionOfAnnouncement", "gsm_map.ch.suppressionOfAnnouncement",
21676         FT_NONE, BASE_NONE, NULL, 0,
21677         "gsm_map_ch.SuppressionOfAnnouncement", HFILL }},
21678     { &hf_gsm_map_ch_alertingPattern,
21679       { "alertingPattern", "gsm_map.ch.alertingPattern",
21680         FT_BYTES, BASE_HEX, NULL, 0,
21681         "gsm_map.AlertingPattern", HFILL }},
21682     { &hf_gsm_map_ch_ccbs_Call,
21683       { "ccbs-Call", "gsm_map.ch.ccbs_Call",
21684         FT_NONE, BASE_NONE, NULL, 0,
21685         "gsm_map_ch.NULL", HFILL }},
21686     { &hf_gsm_map_ch_supportedCCBS_Phase,
21687       { "supportedCCBS-Phase", "gsm_map.ch.supportedCCBS_Phase",
21688         FT_UINT32, BASE_DEC, NULL, 0,
21689         "gsm_map_ch.SupportedCCBS_Phase", HFILL }},
21690     { &hf_gsm_map_ch_additionalSignalInfo,
21691       { "additionalSignalInfo", "gsm_map.ch.additionalSignalInfo",
21692         FT_NONE, BASE_NONE, NULL, 0,
21693         "gsm_map.Ext_ExternalSignalInfo", HFILL }},
21694     { &hf_gsm_map_ch_istSupportIndicator,
21695       { "istSupportIndicator", "gsm_map.ch.istSupportIndicator",
21696         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
21697         "gsm_map_ms.IST_SupportIndicator", HFILL }},
21698     { &hf_gsm_map_ch_pre_pagingSupported,
21699       { "pre-pagingSupported", "gsm_map.ch.pre_pagingSupported",
21700         FT_NONE, BASE_NONE, NULL, 0,
21701         "gsm_map_ch.NULL", HFILL }},
21702     { &hf_gsm_map_ch_callDiversionTreatmentIndicator,
21703       { "callDiversionTreatmentIndicator", "gsm_map.ch.callDiversionTreatmentIndicator",
21704         FT_BYTES, BASE_HEX, NULL, 0,
21705         "gsm_map_ch.CallDiversionTreatmentIndicator", HFILL }},
21706     { &hf_gsm_map_ch_longFTN_Supported,
21707       { "longFTN-Supported", "gsm_map.ch.longFTN_Supported",
21708         FT_NONE, BASE_NONE, NULL, 0,
21709         "gsm_map_ch.NULL", HFILL }},
21710     { &hf_gsm_map_ch_suppress_VT_CSI,
21711       { "suppress-VT-CSI", "gsm_map.ch.suppress_VT_CSI",
21712         FT_NONE, BASE_NONE, NULL, 0,
21713         "gsm_map_ch.NULL", HFILL }},
21714     { &hf_gsm_map_ch_suppressIncomingCallBarring,
21715       { "suppressIncomingCallBarring", "gsm_map.ch.suppressIncomingCallBarring",
21716         FT_NONE, BASE_NONE, NULL, 0,
21717         "gsm_map_ch.NULL", HFILL }},
21718     { &hf_gsm_map_ch_gsmSCF_InitiatedCall,
21719       { "gsmSCF-InitiatedCall", "gsm_map.ch.gsmSCF_InitiatedCall",
21720         FT_NONE, BASE_NONE, NULL, 0,
21721         "gsm_map_ch.NULL", HFILL }},
21722     { &hf_gsm_map_ch_basicServiceGroup2,
21723       { "basicServiceGroup2", "gsm_map.ch.basicServiceGroup2",
21724         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
21725         "gsm_map.Ext_BasicServiceCode", HFILL }},
21726     { &hf_gsm_map_ch_networkSignalInfo2,
21727       { "networkSignalInfo2", "gsm_map.ch.networkSignalInfo2",
21728         FT_NONE, BASE_NONE, NULL, 0,
21729         "gsm_map.ExternalSignalInfo", HFILL }},
21730     { &hf_gsm_map_ch_suppressMTSS,
21731       { "suppressMTSS", "gsm_map.ch.suppressMTSS",
21732         FT_BYTES, BASE_HEX, NULL, 0,
21733         "gsm_map_ch.SuppressMTSS", HFILL }},
21734     { &hf_gsm_map_ch_mtRoamingRetrySupported,
21735       { "mtRoamingRetrySupported", "gsm_map.ch.mtRoamingRetrySupported",
21736         FT_NONE, BASE_NONE, NULL, 0,
21737         "gsm_map_ch.NULL", HFILL }},
21738     { &hf_gsm_map_ch_callPriority,
21739       { "callPriority", "gsm_map.ch.callPriority",
21740         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
21741         "gsm_map.EMLPP_Priority", HFILL }},
21742     { &hf_gsm_map_ch_imsi,
21743       { "imsi", "gsm_map.ch.imsi",
21744         FT_BYTES, BASE_HEX, NULL, 0,
21745         "gsm_map.IMSI", HFILL }},
21746     { &hf_gsm_map_ch_extendedRoutingInfo,
21747       { "extendedRoutingInfo", "gsm_map.ch.extendedRoutingInfo",
21748         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ExtendedRoutingInfo_vals), 0,
21749         "gsm_map_ch.ExtendedRoutingInfo", HFILL }},
21750     { &hf_gsm_map_ch_cugSubscriptionFlag,
21751       { "cugSubscriptionFlag", "gsm_map.ch.cugSubscriptionFlag",
21752         FT_NONE, BASE_NONE, NULL, 0,
21753         "gsm_map_ch.NULL", HFILL }},
21754     { &hf_gsm_map_ch_subscriberInfo,
21755       { "subscriberInfo", "gsm_map.ch.subscriberInfo",
21756         FT_NONE, BASE_NONE, NULL, 0,
21757         "gsm_map_ms.SubscriberInfo", HFILL }},
21758     { &hf_gsm_map_ch_ss_List,
21759       { "ss-List", "gsm_map.ch.ss_List",
21760         FT_UINT32, BASE_DEC, NULL, 0,
21761         "gsm_map_ss.SS_List", HFILL }},
21762     { &hf_gsm_map_ch_basicService,
21763       { "basicService", "gsm_map.ch.basicService",
21764         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
21765         "gsm_map.Ext_BasicServiceCode", HFILL }},
21766     { &hf_gsm_map_ch_forwardingInterrogationRequired,
21767       { "forwardingInterrogationRequired", "gsm_map.ch.forwardingInterrogationRequired",
21768         FT_NONE, BASE_NONE, NULL, 0,
21769         "gsm_map_ch.NULL", HFILL }},
21770     { &hf_gsm_map_ch_vmsc_Address,
21771       { "vmsc-Address", "gsm_map.ch.vmsc_Address",
21772         FT_BYTES, BASE_HEX, NULL, 0,
21773         "gsm_map.ISDN_AddressString", HFILL }},
21774     { &hf_gsm_map_ch_naea_PreferredCI,
21775       { "naea-PreferredCI", "gsm_map.ch.naea_PreferredCI",
21776         FT_NONE, BASE_NONE, NULL, 0,
21777         "gsm_map.NAEA_PreferredCI", HFILL }},
21778     { &hf_gsm_map_ch_ccbs_Indicators,
21779       { "ccbs-Indicators", "gsm_map.ch.ccbs_Indicators",
21780         FT_NONE, BASE_NONE, NULL, 0,
21781         "gsm_map_ch.CCBS_Indicators", HFILL }},
21782     { &hf_gsm_map_ch_numberPortabilityStatus,
21783       { "numberPortabilityStatus", "gsm_map.ch.numberPortabilityStatus",
21784         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
21785         "gsm_map_ms.NumberPortabilityStatus", HFILL }},
21786     { &hf_gsm_map_ch_istAlertTimer,
21787       { "istAlertTimer", "gsm_map.ch.istAlertTimer",
21788         FT_UINT32, BASE_DEC, NULL, 0,
21789         "gsm_map_ms.IST_AlertTimerValue", HFILL }},
21790     { &hf_gsm_map_ch_supportedCamelPhasesInVMSC,
21791       { "supportedCamelPhasesInVMSC", "gsm_map.ch.supportedCamelPhasesInVMSC",
21792         FT_BYTES, BASE_HEX, NULL, 0,
21793         "gsm_map_ms.SupportedCamelPhases", HFILL }},
21794     { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC,
21795       { "offeredCamel4CSIsInVMSC", "gsm_map.ch.offeredCamel4CSIsInVMSC",
21796         FT_BYTES, BASE_HEX, NULL, 0,
21797         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
21798     { &hf_gsm_map_ch_routingInfo2,
21799       { "routingInfo2", "gsm_map.ch.routingInfo2",
21800         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
21801         "gsm_map_ch.RoutingInfo", HFILL }},
21802     { &hf_gsm_map_ch_ss_List2,
21803       { "ss-List2", "gsm_map.ch.ss_List2",
21804         FT_UINT32, BASE_DEC, NULL, 0,
21805         "gsm_map_ss.SS_List", HFILL }},
21806     { &hf_gsm_map_ch_basicService2,
21807       { "basicService2", "gsm_map.ch.basicService2",
21808         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
21809         "gsm_map.Ext_BasicServiceCode", HFILL }},
21810     { &hf_gsm_map_ch_allowedServices,
21811       { "allowedServices", "gsm_map.ch.allowedServices",
21812         FT_BYTES, BASE_HEX, NULL, 0,
21813         "gsm_map_ch.AllowedServices", HFILL }},
21814     { &hf_gsm_map_ch_unavailabilityCause,
21815       { "unavailabilityCause", "gsm_map.ch.unavailabilityCause",
21816         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_UnavailabilityCause_vals), 0,
21817         "gsm_map_ch.UnavailabilityCause", HFILL }},
21818     { &hf_gsm_map_ch_releaseResourcesSupported,
21819       { "releaseResourcesSupported", "gsm_map.ch.releaseResourcesSupported",
21820         FT_NONE, BASE_NONE, NULL, 0,
21821         "gsm_map_ch.NULL", HFILL }},
21822     { &hf_gsm_map_ch_gsm_BearerCapability,
21823       { "gsm-BearerCapability", "gsm_map.ch.gsm_BearerCapability",
21824         FT_NONE, BASE_NONE, NULL, 0,
21825         "gsm_map.ExternalSignalInfo", HFILL }},
21826     { &hf_gsm_map_ch_ccbs_Possible,
21827       { "ccbs-Possible", "gsm_map.ch.ccbs_Possible",
21828         FT_NONE, BASE_NONE, NULL, 0,
21829         "gsm_map_ch.NULL", HFILL }},
21830     { &hf_gsm_map_ch_keepCCBS_CallIndicator,
21831       { "keepCCBS-CallIndicator", "gsm_map.ch.keepCCBS_CallIndicator",
21832         FT_NONE, BASE_NONE, NULL, 0,
21833         "gsm_map_ch.NULL", HFILL }},
21834     { &hf_gsm_map_ch_roamingNumber,
21835       { "roamingNumber", "gsm_map.ch.roamingNumber",
21836         FT_BYTES, BASE_HEX, NULL, 0,
21837         "gsm_map.ISDN_AddressString", HFILL }},
21838     { &hf_gsm_map_ch_forwardingData,
21839       { "forwardingData", "gsm_map.ch.forwardingData",
21840         FT_NONE, BASE_NONE, NULL, 0,
21841         "gsm_map_ch.ForwardingData", HFILL }},
21842     { &hf_gsm_map_ch_forwardedToNumber,
21843       { "forwardedToNumber", "gsm_map.ch.forwardedToNumber",
21844         FT_BYTES, BASE_HEX, NULL, 0,
21845         "gsm_map.ISDN_AddressString", HFILL }},
21846     { &hf_gsm_map_ch_forwardedToSubaddress,
21847       { "forwardedToSubaddress", "gsm_map.ch.forwardedToSubaddress",
21848         FT_BYTES, BASE_HEX, NULL, 0,
21849         "gsm_map.ISDN_SubaddressString", HFILL }},
21850     { &hf_gsm_map_ch_forwardingOptions,
21851       { "forwardingOptions", "gsm_map.ch.forwardingOptions",
21852         FT_BYTES, BASE_HEX, NULL, 0,
21853         "gsm_map_ss.ForwardingOptions", HFILL }},
21854     { &hf_gsm_map_ch_longForwardedToNumber,
21855       { "longForwardedToNumber", "gsm_map.ch.longForwardedToNumber",
21856         FT_BYTES, BASE_HEX, NULL, 0,
21857         "gsm_map.FTN_AddressString", HFILL }},
21858     { &hf_gsm_map_ch_msc_Number,
21859       { "msc-Number", "gsm_map.ch.msc_Number",
21860         FT_BYTES, BASE_HEX, NULL, 0,
21861         "gsm_map.ISDN_AddressString", HFILL }},
21862     { &hf_gsm_map_ch_lmsi,
21863       { "lmsi", "gsm_map.ch.lmsi",
21864         FT_BYTES, BASE_HEX, NULL, 0,
21865         "gsm_map.LMSI", HFILL }},
21866     { &hf_gsm_map_ch_gmsc_Address,
21867       { "gmsc-Address", "gsm_map.ch.gmsc_Address",
21868         FT_BYTES, BASE_HEX, NULL, 0,
21869         "gsm_map.ISDN_AddressString", HFILL }},
21870     { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode,
21871       { "supportedCamelPhasesInInterrogatingNode", "gsm_map.ch.supportedCamelPhasesInInterrogatingNode",
21872         FT_BYTES, BASE_HEX, NULL, 0,
21873         "gsm_map_ms.SupportedCamelPhases", HFILL }},
21874     { &hf_gsm_map_ch_orNotSupportedInGMSC,
21875       { "orNotSupportedInGMSC", "gsm_map.ch.orNotSupportedInGMSC",
21876         FT_NONE, BASE_NONE, NULL, 0,
21877         "gsm_map_ch.NULL", HFILL }},
21878     { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode,
21879       { "offeredCamel4CSIsInInterrogatingNode", "gsm_map.ch.offeredCamel4CSIsInInterrogatingNode",
21880         FT_BYTES, BASE_HEX, NULL, 0,
21881         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
21882     { &hf_gsm_map_ch_pagingArea,
21883       { "pagingArea", "gsm_map.ch.pagingArea",
21884         FT_UINT32, BASE_DEC, NULL, 0,
21885         "gsm_map_ms.PagingArea", HFILL }},
21886     { &hf_gsm_map_ch_o_CSI,
21887       { "o-CSI", "gsm_map.ch.o_CSI",
21888         FT_NONE, BASE_NONE, NULL, 0,
21889         "gsm_map_ms.O_CSI", HFILL }},
21890     { &hf_gsm_map_ch_uu_Data,
21891       { "uu-Data", "gsm_map.ch.uu_Data",
21892         FT_NONE, BASE_NONE, NULL, 0,
21893         "gsm_map_ch.UU_Data", HFILL }},
21894     { &hf_gsm_map_ch_allInformationSent,
21895       { "allInformationSent", "gsm_map.ch.allInformationSent",
21896         FT_NONE, BASE_NONE, NULL, 0,
21897         "gsm_map_ch.NULL", HFILL }},
21898     { &hf_gsm_map_ch_d_csi,
21899       { "d-csi", "gsm_map.ch.d_csi",
21900         FT_NONE, BASE_NONE, NULL, 0,
21901         "gsm_map_ms.D_CSI", HFILL }},
21902     { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList,
21903       { "o-BcsmCamelTDPCriteriaList", "gsm_map.ch.o_BcsmCamelTDPCriteriaList",
21904         FT_UINT32, BASE_DEC, NULL, 0,
21905         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
21906     { &hf_gsm_map_ch_mtRoamingRetry,
21907       { "mtRoamingRetry", "gsm_map.ch.mtRoamingRetry",
21908         FT_NONE, BASE_NONE, NULL, 0,
21909         "gsm_map_ch.NULL", HFILL }},
21910     { &hf_gsm_map_ch_uuIndicator,
21911       { "uuIndicator", "gsm_map.ch.uuIndicator",
21912         FT_BYTES, BASE_HEX, NULL, 0,
21913         "gsm_map_ch.UUIndicator", HFILL }},
21914     { &hf_gsm_map_ch_uui,
21915       { "uui", "gsm_map.ch.uui",
21916         FT_BYTES, BASE_HEX, NULL, 0,
21917         "gsm_map_ch.UUI", HFILL }},
21918     { &hf_gsm_map_ch_uusCFInteraction,
21919       { "uusCFInteraction", "gsm_map.ch.uusCFInteraction",
21920         FT_NONE, BASE_NONE, NULL, 0,
21921         "gsm_map_ch.NULL", HFILL }},
21922     { &hf_gsm_map_ch_supportedCamelPhases,
21923       { "supportedCamelPhases", "gsm_map.ch.supportedCamelPhases",
21924         FT_BYTES, BASE_HEX, NULL, 0,
21925         "gsm_map_ms.SupportedCamelPhases", HFILL }},
21926     { &hf_gsm_map_ch_suppress_T_CSI,
21927       { "suppress-T-CSI", "gsm_map.ch.suppress_T_CSI",
21928         FT_NONE, BASE_NONE, NULL, 0,
21929         "gsm_map_ch.NULL", HFILL }},
21930     { &hf_gsm_map_ch_offeredCamel4CSIs,
21931       { "offeredCamel4CSIs", "gsm_map.ch.offeredCamel4CSIs",
21932         FT_BYTES, BASE_HEX, NULL, 0,
21933         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
21934     { &hf_gsm_map_ch_routingInfo,
21935       { "routingInfo", "gsm_map.ch.routingInfo",
21936         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
21937         "gsm_map_ch.RoutingInfo", HFILL }},
21938     { &hf_gsm_map_ch_camelRoutingInfo,
21939       { "camelRoutingInfo", "gsm_map.ch.camelRoutingInfo",
21940         FT_NONE, BASE_NONE, NULL, 0,
21941         "gsm_map_ch.CamelRoutingInfo", HFILL }},
21942     { &hf_gsm_map_ch_gmscCamelSubscriptionInfo,
21943       { "gmscCamelSubscriptionInfo", "gsm_map.ch.gmscCamelSubscriptionInfo",
21944         FT_NONE, BASE_NONE, NULL, 0,
21945         "gsm_map_ch.GmscCamelSubscriptionInfo", HFILL }},
21946     { &hf_gsm_map_ch_t_CSI,
21947       { "t-CSI", "gsm_map.ch.t_CSI",
21948         FT_NONE, BASE_NONE, NULL, 0,
21949         "gsm_map_ms.T_CSI", HFILL }},
21950     { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList,
21951       { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ch.o_BcsmCamelTDP_CriteriaList",
21952         FT_UINT32, BASE_DEC, NULL, 0,
21953         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
21954     { &hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList,
21955       { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ch.t_BCSM_CAMEL_TDP_CriteriaList",
21956         FT_UINT32, BASE_DEC, NULL, 0,
21957         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
21958     { &hf_gsm_map_ch_ccbs_Monitoring,
21959       { "ccbs-Monitoring", "gsm_map.ch.ccbs_Monitoring",
21960         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ReportingState_vals), 0,
21961         "gsm_map_ch.ReportingState", HFILL }},
21962     { &hf_gsm_map_ch_ccbs_SubscriberStatus,
21963       { "ccbs-SubscriberStatus", "gsm_map.ch.ccbs_SubscriberStatus",
21964         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CCBS_SubscriberStatus_vals), 0,
21965         "gsm_map_ch.CCBS_SubscriberStatus", HFILL }},
21966     { &hf_gsm_map_ch_eventReportData,
21967       { "eventReportData", "gsm_map.ch.eventReportData",
21968         FT_NONE, BASE_NONE, NULL, 0,
21969         "gsm_map_ch.EventReportData", HFILL }},
21970     { &hf_gsm_map_ch_callReportdata,
21971       { "callReportdata", "gsm_map.ch.callReportdata",
21972         FT_NONE, BASE_NONE, NULL, 0,
21973         "gsm_map_ch.CallReportData", HFILL }},
21974     { &hf_gsm_map_ch_monitoringMode,
21975       { "monitoringMode", "gsm_map.ch.monitoringMode",
21976         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_MonitoringMode_vals), 0,
21977         "gsm_map_ch.MonitoringMode", HFILL }},
21978     { &hf_gsm_map_ch_callOutcome,
21979       { "callOutcome", "gsm_map.ch.callOutcome",
21980         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallOutcome_vals), 0,
21981         "gsm_map_ch.CallOutcome", HFILL }},
21982     { &hf_gsm_map_ch_callInfo,
21983       { "callInfo", "gsm_map.ch.callInfo",
21984         FT_NONE, BASE_NONE, NULL, 0,
21985         "gsm_map.ExternalSignalInfo", HFILL }},
21986     { &hf_gsm_map_ch_ccbs_Feature,
21987       { "ccbs-Feature", "gsm_map.ch.ccbs_Feature",
21988         FT_NONE, BASE_NONE, NULL, 0,
21989         "gsm_map_ss.CCBS_Feature", HFILL }},
21990     { &hf_gsm_map_ch_translatedB_Number,
21991       { "translatedB-Number", "gsm_map.ch.translatedB_Number",
21992         FT_BYTES, BASE_HEX, NULL, 0,
21993         "gsm_map.ISDN_AddressString", HFILL }},
21994     { &hf_gsm_map_ch_replaceB_Number,
21995       { "replaceB-Number", "gsm_map.ch.replaceB_Number",
21996         FT_NONE, BASE_NONE, NULL, 0,
21997         "gsm_map_ch.NULL", HFILL }},
21998     { &hf_gsm_map_ch_ruf_Outcome,
21999       { "ruf-Outcome", "gsm_map.ch.ruf_Outcome",
22000         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RUF_Outcome_vals), 0,
22001         "gsm_map_ch.RUF_Outcome", HFILL }},
22002     { &hf_gsm_map_ch_istInformationWithdraw,
22003       { "istInformationWithdraw", "gsm_map.ch.istInformationWithdraw",
22004         FT_NONE, BASE_NONE, NULL, 0,
22005         "gsm_map_ch.NULL", HFILL }},
22006     { &hf_gsm_map_ch_callTerminationIndicator,
22007       { "callTerminationIndicator", "gsm_map.ch.callTerminationIndicator",
22008         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallTerminationIndicator_vals), 0,
22009         "gsm_map_ch.CallTerminationIndicator", HFILL }},
22010     { &hf_gsm_map_ch_msrn,
22011       { "msrn", "gsm_map.ch.msrn",
22012         FT_BYTES, BASE_HEX, NULL, 0,
22013         "gsm_map.ISDN_AddressString", HFILL }},
22014     { &hf_gsm_map_ch_SuppressMTSS_suppressCUG,
22015       { "suppressCUG", "gsm_map.ch.suppressCUG",
22016         FT_BOOLEAN, 8, NULL, 0x80,
22017         "", HFILL }},
22018     { &hf_gsm_map_ch_SuppressMTSS_suppressCCBS,
22019       { "suppressCCBS", "gsm_map.ch.suppressCCBS",
22020         FT_BOOLEAN, 8, NULL, 0x40,
22021         "", HFILL }},
22022     { &hf_gsm_map_ch_AllowedServices_firstServiceAllowed,
22023       { "firstServiceAllowed", "gsm_map.ch.firstServiceAllowed",
22024         FT_BOOLEAN, 8, NULL, 0x80,
22025         "", HFILL }},
22026     { &hf_gsm_map_ch_AllowedServices_secondServiceAllowed,
22027       { "secondServiceAllowed", "gsm_map.ch.secondServiceAllowed",
22028         FT_BOOLEAN, 8, NULL, 0x40,
22029         "", HFILL }},
22030
22031 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
22032
22033     { &hf_gsm_map_lcs_gsm_map_lcs_LCS_ClientID_PDU,
22034       { "LCS-ClientID", "gsm_map.lcs.LCS_ClientID",
22035         FT_NONE, BASE_NONE, NULL, 0,
22036         "gsm_map_lcs.LCS_ClientID", HFILL }},
22037     { &hf_gsm_map_lcs_mlcNumber,
22038       { "mlcNumber", "gsm_map.lcs.mlcNumber",
22039         FT_BYTES, BASE_HEX, NULL, 0,
22040         "gsm_map.ISDN_AddressString", HFILL }},
22041     { &hf_gsm_map_lcs_targetMS,
22042       { "targetMS", "gsm_map.lcs.targetMS",
22043         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
22044         "gsm_map.SubscriberIdentity", HFILL }},
22045     { &hf_gsm_map_lcs_extensionContainer,
22046       { "extensionContainer", "gsm_map.lcs.extensionContainer",
22047         FT_NONE, BASE_NONE, NULL, 0,
22048         "gsm_map.ExtensionContainer", HFILL }},
22049     { &hf_gsm_map_lcs_lcsLocationInfo,
22050       { "lcsLocationInfo", "gsm_map.lcs.lcsLocationInfo",
22051         FT_NONE, BASE_NONE, NULL, 0,
22052         "gsm_map_lcs.LCSLocationInfo", HFILL }},
22053     { &hf_gsm_map_lcs_v_gmlc_Address,
22054       { "v-gmlc-Address", "gsm_map.lcs.v_gmlc_Address",
22055         FT_BYTES, BASE_HEX, NULL, 0,
22056         "gsm_map_ms.GSN_Address", HFILL }},
22057     { &hf_gsm_map_lcs_h_gmlc_Address,
22058       { "h-gmlc-Address", "gsm_map.lcs.h_gmlc_Address",
22059         FT_BYTES, BASE_HEX, NULL, 0,
22060         "gsm_map_ms.GSN_Address", HFILL }},
22061     { &hf_gsm_map_lcs_ppr_Address,
22062       { "ppr-Address", "gsm_map.lcs.ppr_Address",
22063         FT_BYTES, BASE_HEX, NULL, 0,
22064         "gsm_map_ms.GSN_Address", HFILL }},
22065     { &hf_gsm_map_lcs_additional_v_gmlc_Address,
22066       { "additional-v-gmlc-Address", "gsm_map.lcs.additional_v_gmlc_Address",
22067         FT_BYTES, BASE_HEX, NULL, 0,
22068         "gsm_map_ms.GSN_Address", HFILL }},
22069     { &hf_gsm_map_lcs_networkNode_Number,
22070       { "networkNode-Number", "gsm_map.lcs.networkNode_Number",
22071         FT_BYTES, BASE_HEX, NULL, 0,
22072         "gsm_map.ISDN_AddressString", HFILL }},
22073     { &hf_gsm_map_lcs_lmsi,
22074       { "lmsi", "gsm_map.lcs.lmsi",
22075         FT_BYTES, BASE_HEX, NULL, 0,
22076         "gsm_map.LMSI", HFILL }},
22077     { &hf_gsm_map_lcs_gprsNodeIndicator,
22078       { "gprsNodeIndicator", "gsm_map.lcs.gprsNodeIndicator",
22079         FT_NONE, BASE_NONE, NULL, 0,
22080         "gsm_map_lcs.NULL", HFILL }},
22081     { &hf_gsm_map_lcs_additional_Number,
22082       { "additional-Number", "gsm_map.lcs.additional_Number",
22083         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
22084         "gsm_map_sm.Additional_Number", HFILL }},
22085     { &hf_gsm_map_lcs_supportedLCS_CapabilitySets,
22086       { "supportedLCS-CapabilitySets", "gsm_map.lcs.supportedLCS_CapabilitySets",
22087         FT_BYTES, BASE_HEX, NULL, 0,
22088         "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }},
22089     { &hf_gsm_map_lcs_additional_LCS_CapabilitySets,
22090       { "additional-LCS-CapabilitySets", "gsm_map.lcs.additional_LCS_CapabilitySets",
22091         FT_BYTES, BASE_HEX, NULL, 0,
22092         "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }},
22093     { &hf_gsm_map_lcs_locationType,
22094       { "locationType", "gsm_map.lcs.locationType",
22095         FT_NONE, BASE_NONE, NULL, 0,
22096         "gsm_map_lcs.LocationType", HFILL }},
22097     { &hf_gsm_map_lcs_mlc_Number,
22098       { "mlc-Number", "gsm_map.lcs.mlc_Number",
22099         FT_BYTES, BASE_HEX, NULL, 0,
22100         "gsm_map.ISDN_AddressString", HFILL }},
22101     { &hf_gsm_map_lcs_lcs_ClientID,
22102       { "lcs-ClientID", "gsm_map.lcs.lcs_ClientID",
22103         FT_NONE, BASE_NONE, NULL, 0,
22104         "gsm_map_lcs.LCS_ClientID", HFILL }},
22105     { &hf_gsm_map_lcs_privacyOverride,
22106       { "privacyOverride", "gsm_map.lcs.privacyOverride",
22107         FT_NONE, BASE_NONE, NULL, 0,
22108         "gsm_map_lcs.NULL", HFILL }},
22109     { &hf_gsm_map_lcs_imsi,
22110       { "imsi", "gsm_map.lcs.imsi",
22111         FT_BYTES, BASE_HEX, NULL, 0,
22112         "gsm_map.IMSI", HFILL }},
22113     { &hf_gsm_map_lcs_msisdn,
22114       { "msisdn", "gsm_map.lcs.msisdn",
22115         FT_BYTES, BASE_HEX, NULL, 0,
22116         "gsm_map.ISDN_AddressString", HFILL }},
22117     { &hf_gsm_map_lcs_imei,
22118       { "imei", "gsm_map.lcs.imei",
22119         FT_BYTES, BASE_HEX, NULL, 0,
22120         "gsm_map.IMEI", HFILL }},
22121     { &hf_gsm_map_lcs_lcs_Priority,
22122       { "lcs-Priority", "gsm_map.lcs.lcs_Priority",
22123         FT_BYTES, BASE_HEX, NULL, 0,
22124         "gsm_map_lcs.LCS_Priority", HFILL }},
22125     { &hf_gsm_map_lcs_lcs_QoS,
22126       { "lcs-QoS", "gsm_map.lcs.lcs_QoS",
22127         FT_NONE, BASE_NONE, NULL, 0,
22128         "gsm_map_lcs.LCS_QoS", HFILL }},
22129     { &hf_gsm_map_lcs_supportedGADShapes,
22130       { "supportedGADShapes", "gsm_map.lcs.supportedGADShapes",
22131         FT_BYTES, BASE_HEX, NULL, 0,
22132         "gsm_map_lcs.SupportedGADShapes", HFILL }},
22133     { &hf_gsm_map_lcs_lcs_ReferenceNumber,
22134       { "lcs-ReferenceNumber", "gsm_map.lcs.lcs_ReferenceNumber",
22135         FT_BYTES, BASE_HEX, NULL, 0,
22136         "gsm_map_lcs.LCS_ReferenceNumber", HFILL }},
22137     { &hf_gsm_map_lcs_lcsServiceTypeID,
22138       { "lcsServiceTypeID", "gsm_map.lcs.lcsServiceTypeID",
22139         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
22140         "gsm_map.LCSServiceTypeID", HFILL }},
22141     { &hf_gsm_map_lcs_lcsCodeword,
22142       { "lcsCodeword", "gsm_map.lcs.lcsCodeword",
22143         FT_NONE, BASE_NONE, NULL, 0,
22144         "gsm_map_lcs.LCSCodeword", HFILL }},
22145     { &hf_gsm_map_lcs_lcs_PrivacyCheck,
22146       { "lcs-PrivacyCheck", "gsm_map.lcs.lcs_PrivacyCheck",
22147         FT_NONE, BASE_NONE, NULL, 0,
22148         "gsm_map_lcs.LCS_PrivacyCheck", HFILL }},
22149     { &hf_gsm_map_lcs_areaEventInfo,
22150       { "areaEventInfo", "gsm_map.lcs.areaEventInfo",
22151         FT_NONE, BASE_NONE, NULL, 0,
22152         "gsm_map_lcs.AreaEventInfo", HFILL }},
22153     { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator,
22154       { "mo-lrShortCircuitIndicator", "gsm_map.lcs.mo_lrShortCircuitIndicator",
22155         FT_NONE, BASE_NONE, NULL, 0,
22156         "gsm_map_lcs.NULL", HFILL }},
22157     { &hf_gsm_map_lcs_periodicLDRInfo,
22158       { "periodicLDRInfo", "gsm_map.lcs.periodicLDRInfo",
22159         FT_NONE, BASE_NONE, NULL, 0,
22160         "gsm_map_lcs.PeriodicLDRInfo", HFILL }},
22161     { &hf_gsm_map_lcs_reportingPLMNList,
22162       { "reportingPLMNList", "gsm_map.lcs.reportingPLMNList",
22163         FT_NONE, BASE_NONE, NULL, 0,
22164         "gsm_map_lcs.ReportingPLMNList", HFILL }},
22165     { &hf_gsm_map_lcs_locationEstimateType,
22166       { "locationEstimateType", "gsm_map.lcs.locationEstimateType",
22167         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LocationEstimateType_vals), 0,
22168         "gsm_map_lcs.LocationEstimateType", HFILL }},
22169     { &hf_gsm_map_lcs_deferredLocationEventType,
22170       { "deferredLocationEventType", "gsm_map.lcs.deferredLocationEventType",
22171         FT_BYTES, BASE_HEX, NULL, 0,
22172         "gsm_map_lcs.DeferredLocationEventType", HFILL }},
22173     { &hf_gsm_map_lcs_lcsClientType,
22174       { "lcsClientType", "gsm_map.lcs.lcsClientType",
22175         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCSClientType_vals), 0,
22176         "gsm_map_lcs.LCSClientType", HFILL }},
22177     { &hf_gsm_map_lcs_lcsClientExternalID,
22178       { "lcsClientExternalID", "gsm_map.lcs.lcsClientExternalID",
22179         FT_NONE, BASE_NONE, NULL, 0,
22180         "gsm_map.LCSClientExternalID", HFILL }},
22181     { &hf_gsm_map_lcs_lcsClientDialedByMS,
22182       { "lcsClientDialedByMS", "gsm_map.lcs.lcsClientDialedByMS",
22183         FT_BYTES, BASE_HEX, NULL, 0,
22184         "gsm_map.AddressString", HFILL }},
22185     { &hf_gsm_map_lcs_lcsClientInternalID,
22186       { "lcsClientInternalID", "gsm_map.lcs.lcsClientInternalID",
22187         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
22188         "gsm_map.LCSClientInternalID", HFILL }},
22189     { &hf_gsm_map_lcs_lcsClientName,
22190       { "lcsClientName", "gsm_map.lcs.lcsClientName",
22191         FT_NONE, BASE_NONE, NULL, 0,
22192         "gsm_map_lcs.LCSClientName", HFILL }},
22193     { &hf_gsm_map_lcs_lcsAPN,
22194       { "lcsAPN", "gsm_map.lcs.lcsAPN",
22195         FT_BYTES, BASE_HEX, NULL, 0,
22196         "gsm_map_ms.APN", HFILL }},
22197     { &hf_gsm_map_lcs_lcsRequestorID,
22198       { "lcsRequestorID", "gsm_map.lcs.lcsRequestorID",
22199         FT_NONE, BASE_NONE, NULL, 0,
22200         "gsm_map_lcs.LCSRequestorID", HFILL }},
22201     { &hf_gsm_map_lcs_dataCodingScheme,
22202       { "dataCodingScheme", "gsm_map.lcs.dataCodingScheme",
22203         FT_BYTES, BASE_HEX, NULL, 0,
22204         "gsm_map_ss.USSD_DataCodingScheme", HFILL }},
22205     { &hf_gsm_map_lcs_nameString,
22206       { "nameString", "gsm_map.lcs.nameString",
22207         FT_BYTES, BASE_HEX, NULL, 0,
22208         "gsm_map_lcs.NameString", HFILL }},
22209     { &hf_gsm_map_lcs_lcs_FormatIndicator,
22210       { "lcs-FormatIndicator", "gsm_map.lcs.lcs_FormatIndicator",
22211         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_FormatIndicator_vals), 0,
22212         "gsm_map_lcs.LCS_FormatIndicator", HFILL }},
22213     { &hf_gsm_map_lcs_requestorIDString,
22214       { "requestorIDString", "gsm_map.lcs.requestorIDString",
22215         FT_BYTES, BASE_HEX, NULL, 0,
22216         "gsm_map_lcs.RequestorIDString", HFILL }},
22217     { &hf_gsm_map_lcs_horizontal_accuracy,
22218       { "horizontal-accuracy", "gsm_map.lcs.horizontal_accuracy",
22219         FT_BYTES, BASE_HEX, NULL, 0,
22220         "gsm_map_lcs.Horizontal_Accuracy", HFILL }},
22221     { &hf_gsm_map_lcs_verticalCoordinateRequest,
22222       { "verticalCoordinateRequest", "gsm_map.lcs.verticalCoordinateRequest",
22223         FT_NONE, BASE_NONE, NULL, 0,
22224         "gsm_map_lcs.NULL", HFILL }},
22225     { &hf_gsm_map_lcs_vertical_accuracy,
22226       { "vertical-accuracy", "gsm_map.lcs.vertical_accuracy",
22227         FT_BYTES, BASE_HEX, NULL, 0,
22228         "gsm_map_lcs.Vertical_Accuracy", HFILL }},
22229     { &hf_gsm_map_lcs_responseTime,
22230       { "responseTime", "gsm_map.lcs.responseTime",
22231         FT_NONE, BASE_NONE, NULL, 0,
22232         "gsm_map_lcs.ResponseTime", HFILL }},
22233     { &hf_gsm_map_lcs_velocityRequest,
22234       { "velocityRequest", "gsm_map.lcs.velocityRequest",
22235         FT_NONE, BASE_NONE, NULL, 0,
22236         "gsm_map_lcs.NULL", HFILL }},
22237     { &hf_gsm_map_lcs_responseTimeCategory,
22238       { "responseTimeCategory", "gsm_map.lcs.responseTimeCategory",
22239         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_ResponseTimeCategory_vals), 0,
22240         "gsm_map_lcs.ResponseTimeCategory", HFILL }},
22241     { &hf_gsm_map_lcs_lcsCodewordString,
22242       { "lcsCodewordString", "gsm_map.lcs.lcsCodewordString",
22243         FT_BYTES, BASE_HEX, NULL, 0,
22244         "gsm_map_lcs.LCSCodewordString", HFILL }},
22245     { &hf_gsm_map_lcs_callSessionUnrelated,
22246       { "callSessionUnrelated", "gsm_map.lcs.callSessionUnrelated",
22247         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
22248         "gsm_map_lcs.PrivacyCheckRelatedAction", HFILL }},
22249     { &hf_gsm_map_lcs_callSessionRelated,
22250       { "callSessionRelated", "gsm_map.lcs.callSessionRelated",
22251         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
22252         "gsm_map_lcs.PrivacyCheckRelatedAction", HFILL }},
22253     { &hf_gsm_map_lcs_areaDefinition,
22254       { "areaDefinition", "gsm_map.lcs.areaDefinition",
22255         FT_NONE, BASE_NONE, NULL, 0,
22256         "gsm_map_lcs.AreaDefinition", HFILL }},
22257     { &hf_gsm_map_lcs_occurrenceInfo,
22258       { "occurrenceInfo", "gsm_map.lcs.occurrenceInfo",
22259         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_OccurrenceInfo_vals), 0,
22260         "gsm_map_lcs.OccurrenceInfo", HFILL }},
22261     { &hf_gsm_map_lcs_intervalTime,
22262       { "intervalTime", "gsm_map.lcs.intervalTime",
22263         FT_UINT32, BASE_DEC, NULL, 0,
22264         "gsm_map_lcs.IntervalTime", HFILL }},
22265     { &hf_gsm_map_lcs_areaList,
22266       { "areaList", "gsm_map.lcs.areaList",
22267         FT_UINT32, BASE_DEC, NULL, 0,
22268         "gsm_map_lcs.AreaList", HFILL }},
22269     { &hf_gsm_map_lcs_AreaList_item,
22270       { "Area", "gsm_map.lcs.Area",
22271         FT_NONE, BASE_NONE, NULL, 0,
22272         "gsm_map_lcs.Area", HFILL }},
22273     { &hf_gsm_map_lcs_areaType,
22274       { "areaType", "gsm_map.lcs.areaType",
22275         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AreaType_vals), 0,
22276         "gsm_map_lcs.AreaType", HFILL }},
22277     { &hf_gsm_map_lcs_areaIdentification,
22278       { "areaIdentification", "gsm_map.lcs.areaIdentification",
22279         FT_BYTES, BASE_HEX, NULL, 0,
22280         "gsm_map_lcs.AreaIdentification", HFILL }},
22281     { &hf_gsm_map_lcs_reportingAmount,
22282       { "reportingAmount", "gsm_map.lcs.reportingAmount",
22283         FT_UINT32, BASE_DEC, NULL, 0,
22284         "gsm_map_lcs.ReportingAmount", HFILL }},
22285     { &hf_gsm_map_lcs_reportingInterval,
22286       { "reportingInterval", "gsm_map.lcs.reportingInterval",
22287         FT_UINT32, BASE_DEC, NULL, 0,
22288         "gsm_map_lcs.ReportingInterval", HFILL }},
22289     { &hf_gsm_map_lcs_plmn_ListPrioritized,
22290       { "plmn-ListPrioritized", "gsm_map.lcs.plmn_ListPrioritized",
22291         FT_NONE, BASE_NONE, NULL, 0,
22292         "gsm_map_lcs.NULL", HFILL }},
22293     { &hf_gsm_map_lcs_plmn_List,
22294       { "plmn-List", "gsm_map.lcs.plmn_List",
22295         FT_UINT32, BASE_DEC, NULL, 0,
22296         "gsm_map_lcs.PLMNList", HFILL }},
22297     { &hf_gsm_map_lcs_PLMNList_item,
22298       { "ReportingPLMN", "gsm_map.lcs.ReportingPLMN",
22299         FT_NONE, BASE_NONE, NULL, 0,
22300         "gsm_map_lcs.ReportingPLMN", HFILL }},
22301     { &hf_gsm_map_lcs_plmn_Id,
22302       { "plmn-Id", "gsm_map.lcs.plmn_Id",
22303         FT_BYTES, BASE_HEX, NULL, 0,
22304         "gsm_map.PLMN_Id", HFILL }},
22305     { &hf_gsm_map_lcs_ran_Technology,
22306       { "ran-Technology", "gsm_map.lcs.ran_Technology",
22307         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_RAN_Technology_vals), 0,
22308         "gsm_map_lcs.RAN_Technology", HFILL }},
22309     { &hf_gsm_map_lcs_ran_PeriodicLocationSupport,
22310       { "ran-PeriodicLocationSupport", "gsm_map.lcs.ran_PeriodicLocationSupport",
22311         FT_NONE, BASE_NONE, NULL, 0,
22312         "gsm_map_lcs.NULL", HFILL }},
22313     { &hf_gsm_map_lcs_locationEstimate,
22314       { "locationEstimate", "gsm_map.lcs.locationEstimate",
22315         FT_BYTES, BASE_HEX, NULL, 0,
22316         "gsm_map_lcs.Ext_GeographicalInformation", HFILL }},
22317     { &hf_gsm_map_lcs_ageOfLocationEstimate,
22318       { "ageOfLocationEstimate", "gsm_map.lcs.ageOfLocationEstimate",
22319         FT_UINT32, BASE_DEC, NULL, 0,
22320         "gsm_map.AgeOfLocationInformation", HFILL }},
22321     { &hf_gsm_map_lcs_add_LocationEstimate,
22322       { "add-LocationEstimate", "gsm_map.lcs.add_LocationEstimate",
22323         FT_BYTES, BASE_HEX, NULL, 0,
22324         "gsm_map_lcs.Add_GeographicalInformation", HFILL }},
22325     { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator,
22326       { "deferredmt-lrResponseIndicator", "gsm_map.lcs.deferredmt_lrResponseIndicator",
22327         FT_NONE, BASE_NONE, NULL, 0,
22328         "gsm_map_lcs.NULL", HFILL }},
22329     { &hf_gsm_map_lcs_geranPositioningData,
22330       { "geranPositioningData", "gsm_map.lcs.geranPositioningData",
22331         FT_BYTES, BASE_HEX, NULL, 0,
22332         "gsm_map_lcs.PositioningDataInformation", HFILL }},
22333     { &hf_gsm_map_lcs_utranPositioningData,
22334       { "utranPositioningData", "gsm_map.lcs.utranPositioningData",
22335         FT_BYTES, BASE_HEX, NULL, 0,
22336         "gsm_map_lcs.UtranPositioningDataInfo", HFILL }},
22337     { &hf_gsm_map_lcs_cellIdOrSai,
22338       { "cellIdOrSai", "gsm_map.lcs.cellIdOrSai",
22339         FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
22340         "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
22341     { &hf_gsm_map_lcs_sai_Present,
22342       { "sai-Present", "gsm_map.lcs.sai_Present",
22343         FT_NONE, BASE_NONE, NULL, 0,
22344         "gsm_map_lcs.NULL", HFILL }},
22345     { &hf_gsm_map_lcs_accuracyFulfilmentIndicator,
22346       { "accuracyFulfilmentIndicator", "gsm_map.lcs.accuracyFulfilmentIndicator",
22347         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AccuracyFulfilmentIndicator_vals), 0,
22348         "gsm_map_lcs.AccuracyFulfilmentIndicator", HFILL }},
22349     { &hf_gsm_map_lcs_velocityEstimate,
22350       { "velocityEstimate", "gsm_map.lcs.velocityEstimate",
22351         FT_BYTES, BASE_HEX, NULL, 0,
22352         "gsm_map_lcs.VelocityEstimate", HFILL }},
22353     { &hf_gsm_map_lcs_lcs_Event,
22354       { "lcs-Event", "gsm_map.lcs.lcs_Event",
22355         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_Event_vals), 0,
22356         "gsm_map_lcs.LCS_Event", HFILL }},
22357     { &hf_gsm_map_lcs_na_ESRD,
22358       { "na-ESRD", "gsm_map.lcs.na_ESRD",
22359         FT_BYTES, BASE_HEX, NULL, 0,
22360         "gsm_map.ISDN_AddressString", HFILL }},
22361     { &hf_gsm_map_lcs_na_ESRK,
22362       { "na-ESRK", "gsm_map.lcs.na_ESRK",
22363         FT_BYTES, BASE_HEX, NULL, 0,
22364         "gsm_map.ISDN_AddressString", HFILL }},
22365     { &hf_gsm_map_lcs_slr_ArgExtensionContainer,
22366       { "slr-ArgExtensionContainer", "gsm_map.lcs.slr_ArgExtensionContainer",
22367         FT_NONE, BASE_NONE, NULL, 0,
22368         "gsm_map.SLR_ArgExtensionContainer", HFILL }},
22369     { &hf_gsm_map_lcs_deferredmt_lrData,
22370       { "deferredmt-lrData", "gsm_map.lcs.deferredmt_lrData",
22371         FT_NONE, BASE_NONE, NULL, 0,
22372         "gsm_map_lcs.Deferredmt_lrData", HFILL }},
22373     { &hf_gsm_map_lcs_pseudonymIndicator,
22374       { "pseudonymIndicator", "gsm_map.lcs.pseudonymIndicator",
22375         FT_NONE, BASE_NONE, NULL, 0,
22376         "gsm_map_lcs.NULL", HFILL }},
22377     { &hf_gsm_map_lcs_sequenceNumber,
22378       { "sequenceNumber", "gsm_map.lcs.sequenceNumber",
22379         FT_UINT32, BASE_DEC, NULL, 0,
22380         "gsm_map_lcs.SequenceNumber", HFILL }},
22381     { &hf_gsm_map_lcs_terminationCause,
22382       { "terminationCause", "gsm_map.lcs.terminationCause",
22383         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_TerminationCause_vals), 0,
22384         "gsm_map_lcs.TerminationCause", HFILL }},
22385     { &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable,
22386       { "msAvailable", "gsm_map.lcs.msAvailable",
22387         FT_BOOLEAN, 8, NULL, 0x80,
22388         "", HFILL }},
22389     { &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea,
22390       { "enteringIntoArea", "gsm_map.lcs.enteringIntoArea",
22391         FT_BOOLEAN, 8, NULL, 0x40,
22392         "", HFILL }},
22393     { &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea,
22394       { "leavingFromArea", "gsm_map.lcs.leavingFromArea",
22395         FT_BOOLEAN, 8, NULL, 0x20,
22396         "", HFILL }},
22397     { &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea,
22398       { "beingInsideArea", "gsm_map.lcs.beingInsideArea",
22399         FT_BOOLEAN, 8, NULL, 0x10,
22400         "", HFILL }},
22401     { &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR,
22402       { "periodicLDR", "gsm_map.lcs.periodicLDR",
22403         FT_BOOLEAN, 8, NULL, 0x08,
22404         "", HFILL }},
22405     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint,
22406       { "ellipsoidPoint", "gsm_map.lcs.ellipsoidPoint",
22407         FT_BOOLEAN, 8, NULL, 0x80,
22408         "", HFILL }},
22409     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle,
22410       { "ellipsoidPointWithUncertaintyCircle", "gsm_map.lcs.ellipsoidPointWithUncertaintyCircle",
22411         FT_BOOLEAN, 8, NULL, 0x40,
22412         "", HFILL }},
22413     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse,
22414       { "ellipsoidPointWithUncertaintyEllipse", "gsm_map.lcs.ellipsoidPointWithUncertaintyEllipse",
22415         FT_BOOLEAN, 8, NULL, 0x20,
22416         "", HFILL }},
22417     { &hf_gsm_map_lcs_SupportedGADShapes_polygon,
22418       { "polygon", "gsm_map.lcs.polygon",
22419         FT_BOOLEAN, 8, NULL, 0x10,
22420         "", HFILL }},
22421     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude,
22422       { "ellipsoidPointWithAltitude", "gsm_map.lcs.ellipsoidPointWithAltitude",
22423         FT_BOOLEAN, 8, NULL, 0x08,
22424         "", HFILL }},
22425     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid,
22426       { "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", "gsm_map.lcs.ellipsoidPointWithAltitudeAndUncertaintyElipsoid",
22427         FT_BOOLEAN, 8, NULL, 0x04,
22428         "", HFILL }},
22429     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc,
22430       { "ellipsoidArc", "gsm_map.lcs.ellipsoidArc",
22431         FT_BOOLEAN, 8, NULL, 0x02,
22432         "", HFILL }},
22433
22434 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
22435
22436     { &hf_gsm_map_gr_teleservice,
22437       { "teleservice", "gsm_map.gr.teleservice",
22438         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
22439         "gsm_map.Ext_TeleserviceCode", HFILL }},
22440     { &hf_gsm_map_gr_asciCallReference,
22441       { "asciCallReference", "gsm_map.gr.asciCallReference",
22442         FT_BYTES, BASE_HEX, NULL, 0,
22443         "gsm_map.ASCI_CallReference", HFILL }},
22444     { &hf_gsm_map_gr_codec_Info,
22445       { "codec-Info", "gsm_map.gr.codec_Info",
22446         FT_BYTES, BASE_HEX, NULL, 0,
22447         "gsm_map_gr.CODEC_Info", HFILL }},
22448     { &hf_gsm_map_gr_cipheringAlgorithm,
22449       { "cipheringAlgorithm", "gsm_map.gr.cipheringAlgorithm",
22450         FT_BYTES, BASE_HEX, NULL, 0,
22451         "gsm_map_gr.CipheringAlgorithm", HFILL }},
22452     { &hf_gsm_map_gr_groupKeyNumber_Vk_Id,
22453       { "groupKeyNumber-Vk-Id", "gsm_map.gr.groupKeyNumber_Vk_Id",
22454         FT_UINT32, BASE_DEC, NULL, 0,
22455         "gsm_map_gr.GroupKeyNumber", HFILL }},
22456     { &hf_gsm_map_gr_groupKey,
22457       { "groupKey", "gsm_map.gr.groupKey",
22458         FT_BYTES, BASE_HEX, NULL, 0,
22459         "gsm_map_ms.Kc", HFILL }},
22460     { &hf_gsm_map_gr_priority,
22461       { "priority", "gsm_map.gr.priority",
22462         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
22463         "gsm_map.EMLPP_Priority", HFILL }},
22464     { &hf_gsm_map_gr_uplinkFree,
22465       { "uplinkFree", "gsm_map.gr.uplinkFree",
22466         FT_NONE, BASE_NONE, NULL, 0,
22467         "gsm_map_gr.NULL", HFILL }},
22468     { &hf_gsm_map_gr_extensionContainer,
22469       { "extensionContainer", "gsm_map.gr.extensionContainer",
22470         FT_NONE, BASE_NONE, NULL, 0,
22471         "gsm_map.ExtensionContainer", HFILL }},
22472     { &hf_gsm_map_gr_vstk,
22473       { "vstk", "gsm_map.gr.vstk",
22474         FT_BYTES, BASE_HEX, NULL, 0,
22475         "gsm_map_gr.VSTK", HFILL }},
22476     { &hf_gsm_map_gr_vstk_rand,
22477       { "vstk-rand", "gsm_map.gr.vstk_rand",
22478         FT_BYTES, BASE_HEX, NULL, 0,
22479         "gsm_map_gr.VSTK_RAND", HFILL }},
22480     { &hf_gsm_map_gr_talkerChannelParameter,
22481       { "talkerChannelParameter", "gsm_map.gr.talkerChannelParameter",
22482         FT_NONE, BASE_NONE, NULL, 0,
22483         "gsm_map_gr.NULL", HFILL }},
22484     { &hf_gsm_map_gr_groupCallNumber,
22485       { "groupCallNumber", "gsm_map.gr.groupCallNumber",
22486         FT_BYTES, BASE_HEX, NULL, 0,
22487         "gsm_map.ISDN_AddressString", HFILL }},
22488     { &hf_gsm_map_gr_imsi,
22489       { "imsi", "gsm_map.gr.imsi",
22490         FT_BYTES, BASE_HEX, NULL, 0,
22491         "gsm_map.IMSI", HFILL }},
22492     { &hf_gsm_map_gr_talkerPriority,
22493       { "talkerPriority", "gsm_map.gr.talkerPriority",
22494         FT_UINT32, BASE_DEC, VALS(gsm_map_gr_TalkerPriority_vals), 0,
22495         "gsm_map_gr.TalkerPriority", HFILL }},
22496     { &hf_gsm_map_gr_additionalInfo,
22497       { "additionalInfo", "gsm_map.gr.additionalInfo",
22498         FT_BYTES, BASE_HEX, NULL, 0,
22499         "gsm_map_ms.AdditionalInfo", HFILL }},
22500     { &hf_gsm_map_gr_uplinkRequestAck,
22501       { "uplinkRequestAck", "gsm_map.gr.uplinkRequestAck",
22502         FT_NONE, BASE_NONE, NULL, 0,
22503         "gsm_map_gr.NULL", HFILL }},
22504     { &hf_gsm_map_gr_uplinkReleaseIndication,
22505       { "uplinkReleaseIndication", "gsm_map.gr.uplinkReleaseIndication",
22506         FT_NONE, BASE_NONE, NULL, 0,
22507         "gsm_map_gr.NULL", HFILL }},
22508     { &hf_gsm_map_gr_uplinkRejectCommand,
22509       { "uplinkRejectCommand", "gsm_map.gr.uplinkRejectCommand",
22510         FT_NONE, BASE_NONE, NULL, 0,
22511         "gsm_map_gr.NULL", HFILL }},
22512     { &hf_gsm_map_gr_uplinkSeizedCommand,
22513       { "uplinkSeizedCommand", "gsm_map.gr.uplinkSeizedCommand",
22514         FT_NONE, BASE_NONE, NULL, 0,
22515         "gsm_map_gr.NULL", HFILL }},
22516     { &hf_gsm_map_gr_uplinkReleaseCommand,
22517       { "uplinkReleaseCommand", "gsm_map.gr.uplinkReleaseCommand",
22518         FT_NONE, BASE_NONE, NULL, 0,
22519         "gsm_map_gr.NULL", HFILL }},
22520     { &hf_gsm_map_gr_stateAttributes,
22521       { "stateAttributes", "gsm_map.gr.stateAttributes",
22522         FT_NONE, BASE_NONE, NULL, 0,
22523         "gsm_map_gr.StateAttributes", HFILL }},
22524     { &hf_gsm_map_gr_emergencyModeResetCommandFlag,
22525       { "emergencyModeResetCommandFlag", "gsm_map.gr.emergencyModeResetCommandFlag",
22526         FT_NONE, BASE_NONE, NULL, 0,
22527         "gsm_map_gr.NULL", HFILL }},
22528     { &hf_gsm_map_gr_sm_RP_UI,
22529       { "sm-RP-UI", "gsm_map.gr.sm_RP_UI",
22530         FT_BYTES, BASE_HEX, NULL, 0,
22531         "gsm_map.SignalInfo", HFILL }},
22532     { &hf_gsm_map_gr_an_APDU,
22533       { "an-APDU", "gsm_map.gr.an_APDU",
22534         FT_NONE, BASE_NONE, NULL, 0,
22535         "gsm_map.AccessNetworkSignalInfo", HFILL }},
22536     { &hf_gsm_map_gr_uplinkRequest,
22537       { "uplinkRequest", "gsm_map.gr.uplinkRequest",
22538         FT_NONE, BASE_NONE, NULL, 0,
22539         "gsm_map_gr.NULL", HFILL }},
22540     { &hf_gsm_map_gr_releaseGroupCall,
22541       { "releaseGroupCall", "gsm_map.gr.releaseGroupCall",
22542         FT_NONE, BASE_NONE, NULL, 0,
22543         "gsm_map_gr.NULL", HFILL }},
22544     { &hf_gsm_map_gr_downlinkAttached,
22545       { "downlinkAttached", "gsm_map.gr.downlinkAttached",
22546         FT_NONE, BASE_NONE, NULL, 0,
22547         "gsm_map_gr.NULL", HFILL }},
22548     { &hf_gsm_map_gr_uplinkAttached,
22549       { "uplinkAttached", "gsm_map.gr.uplinkAttached",
22550         FT_NONE, BASE_NONE, NULL, 0,
22551         "gsm_map_gr.NULL", HFILL }},
22552     { &hf_gsm_map_gr_dualCommunication,
22553       { "dualCommunication", "gsm_map.gr.dualCommunication",
22554         FT_NONE, BASE_NONE, NULL, 0,
22555         "gsm_map_gr.NULL", HFILL }},
22556     { &hf_gsm_map_gr_callOriginator,
22557       { "callOriginator", "gsm_map.gr.callOriginator",
22558         FT_NONE, BASE_NONE, NULL, 0,
22559         "gsm_map_gr.NULL", HFILL }},
22560     { &hf_gsm_map_gr_requestedInfo,
22561       { "requestedInfo", "gsm_map.gr.requestedInfo",
22562         FT_UINT32, BASE_DEC, VALS(gsm_map_gr_RequestedInfo_vals), 0,
22563         "gsm_map_gr.RequestedInfo", HFILL }},
22564     { &hf_gsm_map_gr_groupId,
22565       { "groupId", "gsm_map.gr.groupId",
22566         FT_BYTES, BASE_HEX, NULL, 0,
22567         "gsm_map_ms.Long_GroupId", HFILL }},
22568     { &hf_gsm_map_gr_cellId,
22569       { "cellId", "gsm_map.gr.cellId",
22570         FT_BYTES, BASE_HEX, NULL, 0,
22571         "gsm_map.GlobalCellId", HFILL }},
22572     { &hf_gsm_map_gr_tmsi,
22573       { "tmsi", "gsm_map.gr.tmsi",
22574         FT_BYTES, BASE_HEX, NULL, 0,
22575         "gsm_map.TMSI", HFILL }},
22576     { &hf_gsm_map_gr_cksn,
22577       { "cksn", "gsm_map.gr.cksn",
22578         FT_BYTES, BASE_HEX, NULL, 0,
22579         "gsm_map_ms.Cksn", HFILL }},
22580     { &hf_gsm_map_gr_anchorMSC_Address,
22581       { "anchorMSC-Address", "gsm_map.gr.anchorMSC_Address",
22582         FT_BYTES, BASE_HEX, NULL, 0,
22583         "gsm_map.ISDN_AddressString", HFILL }},
22584     { &hf_gsm_map_gr_additionalSubscriptions,
22585       { "additionalSubscriptions", "gsm_map.gr.additionalSubscriptions",
22586         FT_BYTES, BASE_HEX, NULL, 0,
22587         "gsm_map_ms.AdditionalSubscriptions", HFILL }},
22588     { &hf_gsm_map_gr_kc,
22589       { "kc", "gsm_map.gr.kc",
22590         FT_BYTES, BASE_HEX, NULL, 0,
22591         "gsm_map_ms.Kc", HFILL }},
22592
22593 /* --- Module MAP-DialogueInformation --- --- ---                             */
22594
22595     { &hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU,
22596       { "MAP-DialoguePDU", "gsm_map.dialogue.MAP_DialoguePDU",
22597         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_DialoguePDU_vals), 0,
22598         "gsm_map_dialogue.MAP_DialoguePDU", HFILL }},
22599     { &hf_gsm_map_dialogue_map_open,
22600       { "map-open", "gsm_map.dialogue.map_open",
22601         FT_NONE, BASE_NONE, NULL, 0,
22602         "gsm_map_dialogue.MAP_OpenInfo", HFILL }},
22603     { &hf_gsm_map_dialogue_map_accept,
22604       { "map-accept", "gsm_map.dialogue.map_accept",
22605         FT_NONE, BASE_NONE, NULL, 0,
22606         "gsm_map_dialogue.MAP_AcceptInfo", HFILL }},
22607     { &hf_gsm_map_dialogue_map_close,
22608       { "map-close", "gsm_map.dialogue.map_close",
22609         FT_NONE, BASE_NONE, NULL, 0,
22610         "gsm_map_dialogue.MAP_CloseInfo", HFILL }},
22611     { &hf_gsm_map_dialogue_map_refuse,
22612       { "map-refuse", "gsm_map.dialogue.map_refuse",
22613         FT_NONE, BASE_NONE, NULL, 0,
22614         "gsm_map_dialogue.MAP_RefuseInfo", HFILL }},
22615     { &hf_gsm_map_dialogue_map_userAbort,
22616       { "map-userAbort", "gsm_map.dialogue.map_userAbort",
22617         FT_NONE, BASE_NONE, NULL, 0,
22618         "gsm_map_dialogue.MAP_UserAbortInfo", HFILL }},
22619     { &hf_gsm_map_dialogue_map_providerAbort,
22620       { "map-providerAbort", "gsm_map.dialogue.map_providerAbort",
22621         FT_NONE, BASE_NONE, NULL, 0,
22622         "gsm_map_dialogue.MAP_ProviderAbortInfo", HFILL }},
22623     { &hf_gsm_map_dialogue_destinationReference,
22624       { "destinationReference", "gsm_map.dialogue.destinationReference",
22625         FT_BYTES, BASE_HEX, NULL, 0,
22626         "gsm_map.AddressString", HFILL }},
22627     { &hf_gsm_map_dialogue_originationReference,
22628       { "originationReference", "gsm_map.dialogue.originationReference",
22629         FT_BYTES, BASE_HEX, NULL, 0,
22630         "gsm_map.AddressString", HFILL }},
22631     { &hf_gsm_map_dialogue_extensionContainer,
22632       { "extensionContainer", "gsm_map.dialogue.extensionContainer",
22633         FT_NONE, BASE_NONE, NULL, 0,
22634         "gsm_map.ExtensionContainer", HFILL }},
22635     { &hf_gsm_map_dialogue_reason,
22636       { "reason", "gsm_map.dialogue.reason",
22637         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_Reason_vals), 0,
22638         "gsm_map_dialogue.Reason", HFILL }},
22639     { &hf_gsm_map_dialogue_alternativeApplicationContext,
22640       { "alternativeApplicationContext", "gsm_map.dialogue.alternativeApplicationContext",
22641         FT_OID, BASE_NONE, NULL, 0,
22642         "gsm_map_dialogue.OBJECT_IDENTIFIER", HFILL }},
22643     { &hf_gsm_map_dialogue_map_UserAbortChoice,
22644       { "map-UserAbortChoice", "gsm_map.dialogue.map_UserAbortChoice",
22645         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_UserAbortChoice_vals), 0,
22646         "gsm_map_dialogue.MAP_UserAbortChoice", HFILL }},
22647     { &hf_gsm_map_dialogue_userSpecificReason,
22648       { "userSpecificReason", "gsm_map.dialogue.userSpecificReason",
22649         FT_NONE, BASE_NONE, NULL, 0,
22650         "gsm_map_dialogue.NULL", HFILL }},
22651     { &hf_gsm_map_dialogue_userResourceLimitation,
22652       { "userResourceLimitation", "gsm_map.dialogue.userResourceLimitation",
22653         FT_NONE, BASE_NONE, NULL, 0,
22654         "gsm_map_dialogue.NULL", HFILL }},
22655     { &hf_gsm_map_dialogue_resourceUnavailable,
22656       { "resourceUnavailable", "gsm_map.dialogue.resourceUnavailable",
22657         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ResourceUnavailableReason_vals), 0,
22658         "gsm_map_dialogue.ResourceUnavailableReason", HFILL }},
22659     { &hf_gsm_map_dialogue_applicationProcedureCancellation,
22660       { "applicationProcedureCancellation", "gsm_map.dialogue.applicationProcedureCancellation",
22661         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ProcedureCancellationReason_vals), 0,
22662         "gsm_map_dialogue.ProcedureCancellationReason", HFILL }},
22663     { &hf_gsm_map_dialogue_map_ProviderAbortReason,
22664       { "map-ProviderAbortReason", "gsm_map.dialogue.map_ProviderAbortReason",
22665         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_ProviderAbortReason_vals), 0,
22666         "gsm_map_dialogue.MAP_ProviderAbortReason", HFILL }},
22667
22668 /* --- Module DummyMAP --- --- ---                                            */
22669
22670     { &hf_gsm_old_invoke,
22671       { "invoke", "gsm_old.invoke",
22672         FT_NONE, BASE_NONE, NULL, 0,
22673         "gsm_old.Invoke", HFILL }},
22674     { &hf_gsm_old_returnResultLast,
22675       { "returnResultLast", "gsm_old.returnResultLast",
22676         FT_NONE, BASE_NONE, NULL, 0,
22677         "gsm_old.ReturnResult", HFILL }},
22678     { &hf_gsm_old_returnError,
22679       { "returnError", "gsm_old.returnError",
22680         FT_NONE, BASE_NONE, NULL, 0,
22681         "gsm_old.ReturnError", HFILL }},
22682     { &hf_gsm_old_reject,
22683       { "reject", "gsm_old.reject",
22684         FT_NONE, BASE_NONE, NULL, 0,
22685         "gsm_old.Reject", HFILL }},
22686     { &hf_gsm_old_returnResultNotLast,
22687       { "returnResultNotLast", "gsm_old.returnResultNotLast",
22688         FT_NONE, BASE_NONE, NULL, 0,
22689         "gsm_old.ReturnResult", HFILL }},
22690     { &hf_gsm_old_invokeID,
22691       { "invokeID", "gsm_old.invokeID",
22692         FT_INT32, BASE_DEC, NULL, 0,
22693         "gsm_old.InvokeIdType", HFILL }},
22694     { &hf_gsm_old_linkedID,
22695       { "linkedID", "gsm_old.linkedID",
22696         FT_INT32, BASE_DEC, NULL, 0,
22697         "gsm_old.InvokeIdType", HFILL }},
22698     { &hf_gsm_old_opCode,
22699       { "opCode", "gsm_old.opCode",
22700         FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_OPERATION_vals), 0,
22701         "gsm_old.MAP_OPERATION", HFILL }},
22702     { &hf_gsm_old_invokeparameter,
22703       { "invokeparameter", "gsm_old.invokeparameter",
22704         FT_NONE, BASE_NONE, NULL, 0,
22705         "gsm_old.InvokeParameter", HFILL }},
22706     { &hf_gsm_old_resultretres,
22707       { "resultretres", "gsm_old.resultretres",
22708         FT_NONE, BASE_NONE, NULL, 0,
22709         "gsm_old.T_resultretres", HFILL }},
22710     { &hf_gsm_old_returnparameter,
22711       { "returnparameter", "gsm_old.returnparameter",
22712         FT_NONE, BASE_NONE, NULL, 0,
22713         "gsm_old.ReturnResultParameter", HFILL }},
22714     { &hf_gsm_old_errorCode,
22715       { "errorCode", "gsm_old.errorCode",
22716         FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_ERROR_vals), 0,
22717         "gsm_old.MAP_ERROR", HFILL }},
22718     { &hf_gsm_old_parameter,
22719       { "parameter", "gsm_old.parameter",
22720         FT_NONE, BASE_NONE, NULL, 0,
22721         "gsm_old.ReturnErrorParameter", HFILL }},
22722     { &hf_gsm_old_invokeIDRej,
22723       { "invokeIDRej", "gsm_old.invokeIDRej",
22724         FT_UINT32, BASE_DEC, VALS(gsm_old_T_invokeIDRej_vals), 0,
22725         "gsm_old.T_invokeIDRej", HFILL }},
22726     { &hf_gsm_old_derivable,
22727       { "derivable", "gsm_old.derivable",
22728         FT_INT32, BASE_DEC, NULL, 0,
22729         "gsm_old.InvokeIdType", HFILL }},
22730     { &hf_gsm_old_not_derivable,
22731       { "not-derivable", "gsm_old.not_derivable",
22732         FT_NONE, BASE_NONE, NULL, 0,
22733         "gsm_old.NULL", HFILL }},
22734     { &hf_gsm_old_problem,
22735       { "problem", "gsm_old.problem",
22736         FT_UINT32, BASE_DEC, VALS(gsm_old_T_problem_vals), 0,
22737         "gsm_old.T_problem", HFILL }},
22738     { &hf_gsm_old_generalProblem,
22739       { "generalProblem", "gsm_old.generalProblem",
22740         FT_INT32, BASE_DEC, VALS(gsm_old_GeneralProblem_vals), 0,
22741         "gsm_old.GeneralProblem", HFILL }},
22742     { &hf_gsm_old_invokeProblem,
22743       { "invokeProblem", "gsm_old.invokeProblem",
22744         FT_INT32, BASE_DEC, VALS(gsm_old_InvokeProblem_vals), 0,
22745         "gsm_old.InvokeProblem", HFILL }},
22746     { &hf_gsm_old_returnResultProblem,
22747       { "returnResultProblem", "gsm_old.returnResultProblem",
22748         FT_INT32, BASE_DEC, VALS(gsm_old_ReturnResultProblem_vals), 0,
22749         "gsm_old.ReturnResultProblem", HFILL }},
22750     { &hf_gsm_old_returnErrorProblem,
22751       { "returnErrorProblem", "gsm_old.returnErrorProblem",
22752         FT_INT32, BASE_DEC, VALS(gsm_old_ReturnErrorProblem_vals), 0,
22753         "gsm_old.ReturnErrorProblem", HFILL }},
22754     { &hf_gsm_old_localValue,
22755       { "localValue", "gsm_old.localValue",
22756         FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPOperationLocalvalue_vals), 0,
22757         "gsm_old.OperationLocalvalue", HFILL }},
22758     { &hf_gsm_old_globalValue,
22759       { "globalValue", "gsm_old.globalValue",
22760         FT_OID, BASE_NONE, NULL, 0,
22761         "gsm_old.OBJECT_IDENTIFIER", HFILL }},
22762     { &hf_gsm_old_localValue_01,
22763       { "localValue", "gsm_old.localValue",
22764         FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPLocalErrorcode_vals), 0,
22765         "gsm_old.LocalErrorcode", HFILL }},
22766     { &hf_gsm_old_protocolId,
22767       { "protocolId", "gsm_old.protocolId",
22768         FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
22769         "gsm_map.ProtocolId", HFILL }},
22770     { &hf_gsm_old_signalInfo,
22771       { "signalInfo", "gsm_old.signalInfo",
22772         FT_BYTES, BASE_HEX, NULL, 0,
22773         "gsm_map.SignalInfo", HFILL }},
22774     { &hf_gsm_old_extensionContainer,
22775       { "extensionContainer", "gsm_old.extensionContainer",
22776         FT_NONE, BASE_NONE, NULL, 0,
22777         "gsm_map.ExtensionContainer", HFILL }},
22778     { &hf_gsm_old_gsm_BearerCapability,
22779       { "gsm-BearerCapability", "gsm_old.gsm_BearerCapability",
22780         FT_NONE, BASE_NONE, NULL, 0,
22781         "gsm_map.ExternalSignalInfo", HFILL }},
22782     { &hf_gsm_old_isdn_BearerCapability,
22783       { "isdn-BearerCapability", "gsm_old.isdn_BearerCapability",
22784         FT_NONE, BASE_NONE, NULL, 0,
22785         "gsm_map.ExternalSignalInfo", HFILL }},
22786     { &hf_gsm_old_call_Direction,
22787       { "call-Direction", "gsm_old.call_Direction",
22788         FT_BYTES, BASE_HEX, NULL, 0,
22789         "gsm_old.CallDirection", HFILL }},
22790     { &hf_gsm_old_b_Subscriber_Address,
22791       { "b-Subscriber-Address", "gsm_old.b_Subscriber_Address",
22792         FT_BYTES, BASE_HEX, NULL, 0,
22793         "gsm_map.ISDN_AddressString", HFILL }},
22794     { &hf_gsm_old_chosenChannel,
22795       { "chosenChannel", "gsm_old.chosenChannel",
22796         FT_NONE, BASE_NONE, NULL, 0,
22797         "gsm_map.ExternalSignalInfo", HFILL }},
22798     { &hf_gsm_old_lowerLayerCompatibility,
22799       { "lowerLayerCompatibility", "gsm_old.lowerLayerCompatibility",
22800         FT_NONE, BASE_NONE, NULL, 0,
22801         "gsm_map.ExternalSignalInfo", HFILL }},
22802     { &hf_gsm_old_highLayerCompatibility,
22803       { "highLayerCompatibility", "gsm_old.highLayerCompatibility",
22804         FT_NONE, BASE_NONE, NULL, 0,
22805         "gsm_map.ExternalSignalInfo", HFILL }},
22806     { &hf_gsm_old_sIWFSNumber,
22807       { "sIWFSNumber", "gsm_old.sIWFSNumber",
22808         FT_BYTES, BASE_HEX, NULL, 0,
22809         "gsm_map.ISDN_AddressString", HFILL }},
22810     { &hf_gsm_old_imsi,
22811       { "imsi", "gsm_old.imsi",
22812         FT_BYTES, BASE_HEX, NULL, 0,
22813         "gsm_map.IMSI", HFILL }},
22814     { &hf_gsm_old_vlr_Number,
22815       { "vlr-Number", "gsm_old.vlr_Number",
22816         FT_BYTES, BASE_HEX, NULL, 0,
22817         "gsm_map.ISDN_AddressString", HFILL }},
22818     { &hf_gsm_old_targetCellId,
22819       { "targetCellId", "gsm_old.targetCellId",
22820         FT_BYTES, BASE_HEX, NULL, 0,
22821         "gsm_map.GlobalCellId", HFILL }},
22822     { &hf_gsm_old_ho_NumberNotRequired,
22823       { "ho-NumberNotRequired", "gsm_old.ho_NumberNotRequired",
22824         FT_NONE, BASE_NONE, NULL, 0,
22825         "gsm_old.NULL", HFILL }},
22826     { &hf_gsm_old_bss_APDU,
22827       { "bss-APDU", "gsm_old.bss_APDU",
22828         FT_NONE, BASE_NONE, NULL, 0,
22829         "gsm_old.Bss_APDU", HFILL }},
22830     { &hf_gsm_old_handoverNumber,
22831       { "handoverNumber", "gsm_old.handoverNumber",
22832         FT_BYTES, BASE_HEX, NULL, 0,
22833         "gsm_map.ISDN_AddressString", HFILL }},
22834     { &hf_gsm_old_SendAuthenticationInfoResOld_item,
22835       { "SendAuthenticationInfoResOld item", "gsm_old.SendAuthenticationInfoResOld_item",
22836         FT_NONE, BASE_NONE, NULL, 0,
22837         "gsm_old.SendAuthenticationInfoResOld_item", HFILL }},
22838     { &hf_gsm_old_rand,
22839       { "rand", "gsm_old.rand",
22840         FT_BYTES, BASE_HEX, NULL, 0,
22841         "gsm_old.RAND", HFILL }},
22842     { &hf_gsm_old_sres,
22843       { "sres", "gsm_old.sres",
22844         FT_BYTES, BASE_HEX, NULL, 0,
22845         "gsm_old.SRES", HFILL }},
22846     { &hf_gsm_old_kc,
22847       { "kc", "gsm_old.kc",
22848         FT_BYTES, BASE_HEX, NULL, 0,
22849         "gsm_old.Kc", HFILL }},
22850     { &hf_gsm_old_tripletList,
22851       { "tripletList", "gsm_old.tripletList",
22852         FT_UINT32, BASE_DEC, NULL, 0,
22853         "gsm_old.TripletListold", HFILL }},
22854     { &hf_gsm_old_TripletListold_item,
22855       { "AuthenticationTriplet-v2", "gsm_old.AuthenticationTriplet_v2",
22856         FT_NONE, BASE_NONE, NULL, 0,
22857         "gsm_old.AuthenticationTriplet_v2", HFILL }},
22858     { &hf_gsm_old_channelType,
22859       { "channelType", "gsm_old.channelType",
22860         FT_NONE, BASE_NONE, NULL, 0,
22861         "gsm_map.ExternalSignalInfo", HFILL }},
22862     { &hf_gsm_old_securityHeader,
22863       { "securityHeader", "gsm_old.securityHeader",
22864         FT_NONE, BASE_NONE, NULL, 0,
22865         "gsm_old.SecurityHeader", HFILL }},
22866     { &hf_gsm_old_protectedPayload,
22867       { "protectedPayload", "gsm_old.protectedPayload",
22868         FT_BYTES, BASE_HEX, NULL, 0,
22869         "gsm_old.ProtectedPayload", HFILL }},
22870     { &hf_gsm_old_securityParametersIndex,
22871       { "securityParametersIndex", "gsm_old.securityParametersIndex",
22872         FT_BYTES, BASE_HEX, NULL, 0,
22873         "gsm_old.SecurityParametersIndex", HFILL }},
22874     { &hf_gsm_old_originalComponentIdentifier,
22875       { "originalComponentIdentifier", "gsm_old.originalComponentIdentifier",
22876         FT_UINT32, BASE_DEC, VALS(gsm_old_OriginalComponentIdentifier_vals), 0,
22877         "gsm_old.OriginalComponentIdentifier", HFILL }},
22878     { &hf_gsm_old_initialisationVector,
22879       { "initialisationVector", "gsm_old.initialisationVector",
22880         FT_BYTES, BASE_HEX, NULL, 0,
22881         "gsm_old.InitialisationVector", HFILL }},
22882     { &hf_gsm_old_operationCode,
22883       { "operationCode", "gsm_old.operationCode",
22884         FT_UINT32, BASE_DEC, VALS(gsm_old_OperationCode_vals), 0,
22885         "gsm_old.OperationCode", HFILL }},
22886     { &hf_gsm_old_errorCode_01,
22887       { "errorCode", "gsm_old.errorCode",
22888         FT_UINT32, BASE_DEC, VALS(gsm_old_ErrorCode_vals), 0,
22889         "gsm_old.ErrorCode", HFILL }},
22890     { &hf_gsm_old_userInfo,
22891       { "userInfo", "gsm_old.userInfo",
22892         FT_NONE, BASE_NONE, NULL, 0,
22893         "gsm_old.NULL", HFILL }},
22894     { &hf_gsm_old_localValue_02,
22895       { "localValue", "gsm_old.localValue",
22896         FT_INT32, BASE_DEC, NULL, 0,
22897         "gsm_old.INTEGER", HFILL }},
22898     { &hf_gsm_old_msisdn,
22899       { "msisdn", "gsm_old.msisdn",
22900         FT_BYTES, BASE_HEX, NULL, 0,
22901         "gsm_map.ISDN_AddressString", HFILL }},
22902     { &hf_gsm_old_category,
22903       { "category", "gsm_old.category",
22904         FT_BYTES, BASE_HEX, NULL, 0,
22905         "gsm_old.Category", HFILL }},
22906     { &hf_gsm_old_basicService,
22907       { "basicService", "gsm_old.basicService",
22908         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
22909         "gsm_map.BasicServiceCode", HFILL }},
22910     { &hf_gsm_old_operatorSS_Code,
22911       { "operatorSS-Code", "gsm_old.operatorSS_Code",
22912         FT_UINT32, BASE_DEC, NULL, 0,
22913         "gsm_old.T_operatorSS_Code", HFILL }},
22914     { &hf_gsm_old_operatorSS_Code_item,
22915       { "operatorSS-Code item", "gsm_old.operatorSS_Code_item",
22916         FT_BYTES, BASE_HEX, NULL, 0,
22917         "gsm_old.OCTET_STRING_SIZE_1", HFILL }},
22918     { &hf_gsm_old_sm_RP_DA,
22919       { "sm-RP-DA", "gsm_old.sm_RP_DA",
22920         FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_DAold_vals), 0,
22921         "gsm_old.SM_RP_DAold", HFILL }},
22922     { &hf_gsm_old_sm_RP_OA,
22923       { "sm-RP-OA", "gsm_old.sm_RP_OA",
22924         FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_OAold_vals), 0,
22925         "gsm_old.SM_RP_OAold", HFILL }},
22926     { &hf_gsm_old_sm_RP_UI,
22927       { "sm-RP-UI", "gsm_old.sm_RP_UI",
22928         FT_BYTES, BASE_HEX, NULL, 0,
22929         "gsm_map.SignalInfo", HFILL }},
22930     { &hf_gsm_old_moreMessagesToSend,
22931       { "moreMessagesToSend", "gsm_old.moreMessagesToSend",
22932         FT_NONE, BASE_NONE, NULL, 0,
22933         "gsm_old.NULL", HFILL }},
22934     { &hf_gsm_old_lmsi,
22935       { "lmsi", "gsm_old.lmsi",
22936         FT_BYTES, BASE_HEX, NULL, 0,
22937         "gsm_map.LMSI", HFILL }},
22938     { &hf_gsm_old_serviceCentreAddressDA,
22939       { "serviceCentreAddressDA", "gsm_old.serviceCentreAddressDA",
22940         FT_BYTES, BASE_HEX, NULL, 0,
22941         "gsm_map.AddressString", HFILL }},
22942     { &hf_gsm_old_noSM_RP_DA,
22943       { "noSM-RP-DA", "gsm_old.noSM_RP_DA",
22944         FT_NONE, BASE_NONE, NULL, 0,
22945         "gsm_old.NULL", HFILL }},
22946     { &hf_gsm_old_msisdn_01,
22947       { "msisdn", "gsm_old.msisdn",
22948         FT_BYTES, BASE_HEX, NULL, 0,
22949         "gsm_old.T_msisdn", HFILL }},
22950     { &hf_gsm_old_serviceCentreAddressOA,
22951       { "serviceCentreAddressOA", "gsm_old.serviceCentreAddressOA",
22952         FT_BYTES, BASE_HEX, NULL, 0,
22953         "gsm_old.T_serviceCentreAddressOA", HFILL }},
22954     { &hf_gsm_old_noSM_RP_OA,
22955       { "noSM-RP-OA", "gsm_old.noSM_RP_OA",
22956         FT_NONE, BASE_NONE, NULL, 0,
22957         "gsm_old.NULL", HFILL }},
22958     { &hf_gsm_old_cug_CheckInfo,
22959       { "cug-CheckInfo", "gsm_old.cug_CheckInfo",
22960         FT_NONE, BASE_NONE, NULL, 0,
22961         "gsm_map_ch.CUG_CheckInfo", HFILL }},
22962     { &hf_gsm_old_numberOfForwarding,
22963       { "numberOfForwarding", "gsm_old.numberOfForwarding",
22964         FT_UINT32, BASE_DEC, NULL, 0,
22965         "gsm_map_ch.NumberOfForwarding", HFILL }},
22966     { &hf_gsm_old_networkSignalInfo,
22967       { "networkSignalInfo", "gsm_old.networkSignalInfo",
22968         FT_NONE, BASE_NONE, NULL, 0,
22969         "gsm_map.ExternalSignalInfo", HFILL }},
22970     { &hf_gsm_old_routingInfo,
22971       { "routingInfo", "gsm_old.routingInfo",
22972         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
22973         "gsm_map_ch.RoutingInfo", HFILL }},
22974
22975 /* --- Module SS-DataTypes --- --- ---                                        */
22976
22977     { &hf_gsm_ss_ss_Code,
22978       { "ss-Code", "gsm_ss.ss_Code",
22979         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
22980         "gsm_map.SS_Code", HFILL }},
22981     { &hf_gsm_ss_ss_Status,
22982       { "ss-Status", "gsm_ss.ss_Status",
22983         FT_BYTES, BASE_HEX, NULL, 0,
22984         "gsm_map_ss.SS_Status", HFILL }},
22985     { &hf_gsm_ss_ss_Notification,
22986       { "ss-Notification", "gsm_ss.ss_Notification",
22987         FT_BYTES, BASE_HEX, NULL, 0,
22988         "gsm_ss.SS_Notification", HFILL }},
22989     { &hf_gsm_ss_callIsWaiting_Indicator,
22990       { "callIsWaiting-Indicator", "gsm_ss.callIsWaiting_Indicator",
22991         FT_NONE, BASE_NONE, NULL, 0,
22992         "gsm_ss.NULL", HFILL }},
22993     { &hf_gsm_ss_callOnHold_Indicator,
22994       { "callOnHold-Indicator", "gsm_ss.callOnHold_Indicator",
22995         FT_UINT32, BASE_DEC, VALS(gsm_ss_CallOnHold_Indicator_vals), 0,
22996         "gsm_ss.CallOnHold_Indicator", HFILL }},
22997     { &hf_gsm_ss_mpty_Indicator,
22998       { "mpty-Indicator", "gsm_ss.mpty_Indicator",
22999         FT_NONE, BASE_NONE, NULL, 0,
23000         "gsm_ss.NULL", HFILL }},
23001     { &hf_gsm_ss_cug_Index,
23002       { "cug-Index", "gsm_ss.cug_Index",
23003         FT_UINT32, BASE_DEC, NULL, 0,
23004         "gsm_map_ms.CUG_Index", HFILL }},
23005     { &hf_gsm_ss_clirSuppressionRejected,
23006       { "clirSuppressionRejected", "gsm_ss.clirSuppressionRejected",
23007         FT_NONE, BASE_NONE, NULL, 0,
23008         "gsm_ss.NULL", HFILL }},
23009     { &hf_gsm_ss_ect_Indicator,
23010       { "ect-Indicator", "gsm_ss.ect_Indicator",
23011         FT_NONE, BASE_NONE, NULL, 0,
23012         "gsm_ss.ECT_Indicator", HFILL }},
23013     { &hf_gsm_ss_nameIndicator,
23014       { "nameIndicator", "gsm_ss.nameIndicator",
23015         FT_NONE, BASE_NONE, NULL, 0,
23016         "gsm_ss.NameIndicator", HFILL }},
23017     { &hf_gsm_ss_ccbs_Feature,
23018       { "ccbs-Feature", "gsm_ss.ccbs_Feature",
23019         FT_NONE, BASE_NONE, NULL, 0,
23020         "gsm_map_ss.CCBS_Feature", HFILL }},
23021     { &hf_gsm_ss_alertingPattern,
23022       { "alertingPattern", "gsm_ss.alertingPattern",
23023         FT_BYTES, BASE_HEX, NULL, 0,
23024         "gsm_map.AlertingPattern", HFILL }},
23025     { &hf_gsm_ss_multicall_Indicator,
23026       { "multicall-Indicator", "gsm_ss.multicall_Indicator",
23027         FT_UINT32, BASE_DEC, VALS(gsm_ss_Multicall_Indicator_vals), 0,
23028         "gsm_ss.Multicall_Indicator", HFILL }},
23029     { &hf_gsm_ss_imsi,
23030       { "imsi", "gsm_ss.imsi",
23031         FT_BYTES, BASE_HEX, NULL, 0,
23032         "gsm_map.IMSI", HFILL }},
23033     { &hf_gsm_ss_originatingEntityNumber,
23034       { "originatingEntityNumber", "gsm_ss.originatingEntityNumber",
23035         FT_BYTES, BASE_HEX, NULL, 0,
23036         "gsm_map.ISDN_AddressString", HFILL }},
23037     { &hf_gsm_ss_msisdn,
23038       { "msisdn", "gsm_ss.msisdn",
23039         FT_BYTES, BASE_HEX, NULL, 0,
23040         "gsm_map.AddressString", HFILL }},
23041     { &hf_gsm_ss_chargingInformation,
23042       { "chargingInformation", "gsm_ss.chargingInformation",
23043         FT_NONE, BASE_NONE, NULL, 0,
23044         "gsm_ss.ChargingInformation", HFILL }},
23045     { &hf_gsm_ss_e1,
23046       { "e1", "gsm_ss.e1",
23047         FT_UINT32, BASE_DEC, NULL, 0,
23048         "gsm_ss.E1", HFILL }},
23049     { &hf_gsm_ss_e2,
23050       { "e2", "gsm_ss.e2",
23051         FT_UINT32, BASE_DEC, NULL, 0,
23052         "gsm_ss.E2", HFILL }},
23053     { &hf_gsm_ss_e3,
23054       { "e3", "gsm_ss.e3",
23055         FT_UINT32, BASE_DEC, NULL, 0,
23056         "gsm_ss.E3", HFILL }},
23057     { &hf_gsm_ss_e4,
23058       { "e4", "gsm_ss.e4",
23059         FT_UINT32, BASE_DEC, NULL, 0,
23060         "gsm_ss.E4", HFILL }},
23061     { &hf_gsm_ss_e5,
23062       { "e5", "gsm_ss.e5",
23063         FT_UINT32, BASE_DEC, NULL, 0,
23064         "gsm_ss.E5", HFILL }},
23065     { &hf_gsm_ss_e6,
23066       { "e6", "gsm_ss.e6",
23067         FT_UINT32, BASE_DEC, NULL, 0,
23068         "gsm_ss.E6", HFILL }},
23069     { &hf_gsm_ss_e7,
23070       { "e7", "gsm_ss.e7",
23071         FT_UINT32, BASE_DEC, NULL, 0,
23072         "gsm_ss.E7", HFILL }},
23073     { &hf_gsm_ss_suppressPrefCUG,
23074       { "suppressPrefCUG", "gsm_ss.suppressPrefCUG",
23075         FT_NONE, BASE_NONE, NULL, 0,
23076         "gsm_ss.NULL", HFILL }},
23077     { &hf_gsm_ss_suppressOA,
23078       { "suppressOA", "gsm_ss.suppressOA",
23079         FT_NONE, BASE_NONE, NULL, 0,
23080         "gsm_ss.NULL", HFILL }},
23081     { &hf_gsm_ss_ect_CallState,
23082       { "ect-CallState", "gsm_ss.ect_CallState",
23083         FT_UINT32, BASE_DEC, VALS(gsm_ss_ECT_CallState_vals), 0,
23084         "gsm_ss.ECT_CallState", HFILL }},
23085     { &hf_gsm_ss_rdn,
23086       { "rdn", "gsm_ss.rdn",
23087         FT_UINT32, BASE_DEC, VALS(gsm_ss_RDN_vals), 0,
23088         "gsm_ss.RDN", HFILL }},
23089     { &hf_gsm_ss_callingName,
23090       { "callingName", "gsm_ss.callingName",
23091         FT_UINT32, BASE_DEC, VALS(gsm_ss_Name_vals), 0,
23092         "gsm_ss.Name", HFILL }},
23093     { &hf_gsm_ss_namePresentationAllowed,
23094       { "namePresentationAllowed", "gsm_ss.namePresentationAllowed",
23095         FT_NONE, BASE_NONE, NULL, 0,
23096         "gsm_ss.NameSet", HFILL }},
23097     { &hf_gsm_ss_presentationRestricted,
23098       { "presentationRestricted", "gsm_ss.presentationRestricted",
23099         FT_NONE, BASE_NONE, NULL, 0,
23100         "gsm_ss.NULL", HFILL }},
23101     { &hf_gsm_ss_nameUnavailable,
23102       { "nameUnavailable", "gsm_ss.nameUnavailable",
23103         FT_NONE, BASE_NONE, NULL, 0,
23104         "gsm_ss.NULL", HFILL }},
23105     { &hf_gsm_ss_namePresentationRestricted,
23106       { "namePresentationRestricted", "gsm_ss.namePresentationRestricted",
23107         FT_NONE, BASE_NONE, NULL, 0,
23108         "gsm_ss.NameSet", HFILL }},
23109     { &hf_gsm_ss_dataCodingScheme,
23110       { "dataCodingScheme", "gsm_ss.dataCodingScheme",
23111         FT_BYTES, BASE_HEX, NULL, 0,
23112         "gsm_map_ss.USSD_DataCodingScheme", HFILL }},
23113     { &hf_gsm_ss_lengthInCharacters,
23114       { "lengthInCharacters", "gsm_ss.lengthInCharacters",
23115         FT_INT32, BASE_DEC, NULL, 0,
23116         "gsm_ss.INTEGER", HFILL }},
23117     { &hf_gsm_ss_nameString,
23118       { "nameString", "gsm_ss.nameString",
23119         FT_BYTES, BASE_HEX, NULL, 0,
23120         "gsm_map_ss.USSD_String", HFILL }},
23121     { &hf_gsm_ss_presentationAllowedAddress,
23122       { "presentationAllowedAddress", "gsm_ss.presentationAllowedAddress",
23123         FT_NONE, BASE_NONE, NULL, 0,
23124         "gsm_ss.RemotePartyNumber", HFILL }},
23125     { &hf_gsm_ss_numberNotAvailableDueToInterworking,
23126       { "numberNotAvailableDueToInterworking", "gsm_ss.numberNotAvailableDueToInterworking",
23127         FT_NONE, BASE_NONE, NULL, 0,
23128         "gsm_ss.NULL", HFILL }},
23129     { &hf_gsm_ss_presentationRestrictedAddress,
23130       { "presentationRestrictedAddress", "gsm_ss.presentationRestrictedAddress",
23131         FT_NONE, BASE_NONE, NULL, 0,
23132         "gsm_ss.RemotePartyNumber", HFILL }},
23133     { &hf_gsm_ss_partyNumber,
23134       { "partyNumber", "gsm_ss.partyNumber",
23135         FT_BYTES, BASE_HEX, NULL, 0,
23136         "gsm_map.ISDN_AddressString", HFILL }},
23137     { &hf_gsm_ss_partyNumberSubaddress,
23138       { "partyNumberSubaddress", "gsm_ss.partyNumberSubaddress",
23139         FT_BYTES, BASE_HEX, NULL, 0,
23140         "gsm_map.ISDN_SubaddressString", HFILL }},
23141     { &hf_gsm_ss_deflectedToNumber,
23142       { "deflectedToNumber", "gsm_ss.deflectedToNumber",
23143         FT_BYTES, BASE_HEX, NULL, 0,
23144         "gsm_map.AddressString", HFILL }},
23145     { &hf_gsm_ss_deflectedToSubaddress,
23146       { "deflectedToSubaddress", "gsm_ss.deflectedToSubaddress",
23147         FT_BYTES, BASE_HEX, NULL, 0,
23148         "gsm_map.ISDN_SubaddressString", HFILL }},
23149     { &hf_gsm_ss_uUS_Service,
23150       { "uUS-Service", "gsm_ss.uUS_Service",
23151         FT_UINT32, BASE_DEC, VALS(gsm_ss_UUS_Service_vals), 0,
23152         "gsm_ss.UUS_Service", HFILL }},
23153     { &hf_gsm_ss_uUS_Required,
23154       { "uUS-Required", "gsm_ss.uUS_Required",
23155         FT_BOOLEAN, 8, NULL, 0,
23156         "gsm_ss.BOOLEAN", HFILL }},
23157     { &hf_gsm_ss_notificationType,
23158       { "notificationType", "gsm_ss.notificationType",
23159         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
23160         "gsm_map_ms.NotificationToMSUser", HFILL }},
23161     { &hf_gsm_ss_locationType,
23162       { "locationType", "gsm_ss.locationType",
23163         FT_NONE, BASE_NONE, NULL, 0,
23164         "gsm_map_lcs.LocationType", HFILL }},
23165     { &hf_gsm_ss_lcsClientExternalID,
23166       { "lcsClientExternalID", "gsm_ss.lcsClientExternalID",
23167         FT_NONE, BASE_NONE, NULL, 0,
23168         "gsm_map.LCSClientExternalID", HFILL }},
23169     { &hf_gsm_ss_lcsClientName,
23170       { "lcsClientName", "gsm_ss.lcsClientName",
23171         FT_NONE, BASE_NONE, NULL, 0,
23172         "gsm_map_lcs.LCSClientName", HFILL }},
23173     { &hf_gsm_ss_lcsRequestorID,
23174       { "lcsRequestorID", "gsm_ss.lcsRequestorID",
23175         FT_NONE, BASE_NONE, NULL, 0,
23176         "gsm_map_lcs.LCSRequestorID", HFILL }},
23177     { &hf_gsm_ss_lcsCodeword,
23178       { "lcsCodeword", "gsm_ss.lcsCodeword",
23179         FT_NONE, BASE_NONE, NULL, 0,
23180         "gsm_map_lcs.LCSCodeword", HFILL }},
23181     { &hf_gsm_ss_lcsServiceTypeID,
23182       { "lcsServiceTypeID", "gsm_ss.lcsServiceTypeID",
23183         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
23184         "gsm_map.LCSServiceTypeID", HFILL }},
23185     { &hf_gsm_ss_verificationResponse,
23186       { "verificationResponse", "gsm_ss.verificationResponse",
23187         FT_UINT32, BASE_DEC, VALS(gsm_ss_VerificationResponse_vals), 0,
23188         "gsm_ss.VerificationResponse", HFILL }},
23189     { &hf_gsm_ss_molr_Type,
23190       { "molr-Type", "gsm_ss.molr_Type",
23191         FT_UINT32, BASE_DEC, VALS(gsm_ss_MOLR_Type_vals), 0,
23192         "gsm_ss.MOLR_Type", HFILL }},
23193     { &hf_gsm_ss_locationMethod,
23194       { "locationMethod", "gsm_ss.locationMethod",
23195         FT_UINT32, BASE_DEC, VALS(gsm_ss_LocationMethod_vals), 0,
23196         "gsm_ss.LocationMethod", HFILL }},
23197     { &hf_gsm_ss_lcs_QoS,
23198       { "lcs-QoS", "gsm_ss.lcs_QoS",
23199         FT_NONE, BASE_NONE, NULL, 0,
23200         "gsm_map_lcs.LCS_QoS", HFILL }},
23201     { &hf_gsm_ss_mlc_Number,
23202       { "mlc-Number", "gsm_ss.mlc_Number",
23203         FT_BYTES, BASE_HEX, NULL, 0,
23204         "gsm_map.ISDN_AddressString", HFILL }},
23205     { &hf_gsm_ss_gpsAssistanceData,
23206       { "gpsAssistanceData", "gsm_ss.gpsAssistanceData",
23207         FT_BYTES, BASE_HEX, NULL, 0,
23208         "gsm_ss.GPSAssistanceData", HFILL }},
23209     { &hf_gsm_ss_supportedGADShapes,
23210       { "supportedGADShapes", "gsm_ss.supportedGADShapes",
23211         FT_BYTES, BASE_HEX, NULL, 0,
23212         "gsm_map_lcs.SupportedGADShapes", HFILL }},
23213     { &hf_gsm_ss_ageOfLocationInfo,
23214       { "ageOfLocationInfo", "gsm_ss.ageOfLocationInfo",
23215         FT_UINT32, BASE_DEC, NULL, 0,
23216         "gsm_map.AgeOfLocationInformation", HFILL }},
23217     { &hf_gsm_ss_pseudonymIndicator,
23218       { "pseudonymIndicator", "gsm_ss.pseudonymIndicator",
23219         FT_NONE, BASE_NONE, NULL, 0,
23220         "gsm_ss.NULL", HFILL }},
23221     { &hf_gsm_ss_h_gmlc_address,
23222       { "h-gmlc-address", "gsm_ss.h_gmlc_address",
23223         FT_BYTES, BASE_HEX, NULL, 0,
23224         "gsm_map_ms.GSN_Address", HFILL }},
23225     { &hf_gsm_ss_locationEstimate,
23226       { "locationEstimate", "gsm_ss.locationEstimate",
23227         FT_BYTES, BASE_HEX, NULL, 0,
23228         "gsm_map_lcs.Ext_GeographicalInformation", HFILL }},
23229     { &hf_gsm_ss_velocityEstimate,
23230       { "velocityEstimate", "gsm_ss.velocityEstimate",
23231         FT_BYTES, BASE_HEX, NULL, 0,
23232         "gsm_map_lcs.VelocityEstimate", HFILL }},
23233     { &hf_gsm_ss_referenceNumber,
23234       { "referenceNumber", "gsm_ss.referenceNumber",
23235         FT_BYTES, BASE_HEX, NULL, 0,
23236         "gsm_map_lcs.LCS_ReferenceNumber", HFILL }},
23237     { &hf_gsm_ss_periodicLDRInfo,
23238       { "periodicLDRInfo", "gsm_ss.periodicLDRInfo",
23239         FT_NONE, BASE_NONE, NULL, 0,
23240         "gsm_map_lcs.PeriodicLDRInfo", HFILL }},
23241     { &hf_gsm_ss_locationUpdateRequest,
23242       { "locationUpdateRequest", "gsm_ss.locationUpdateRequest",
23243         FT_NONE, BASE_NONE, NULL, 0,
23244         "gsm_ss.NULL", HFILL }},
23245     { &hf_gsm_ss_sequenceNumber,
23246       { "sequenceNumber", "gsm_ss.sequenceNumber",
23247         FT_UINT32, BASE_DEC, NULL, 0,
23248         "gsm_map_lcs.SequenceNumber", HFILL }},
23249     { &hf_gsm_ss_terminationCause,
23250       { "terminationCause", "gsm_ss.terminationCause",
23251         FT_UINT32, BASE_DEC, VALS(gsm_ss_TerminationCause_vals), 0,
23252         "gsm_ss.TerminationCause", HFILL }},
23253     { &hf_gsm_ss_mo_lrShortCircuit,
23254       { "mo-lrShortCircuit", "gsm_ss.mo_lrShortCircuit",
23255         FT_NONE, BASE_NONE, NULL, 0,
23256         "gsm_ss.NULL", HFILL }},
23257     { &hf_gsm_ss_ganssAssistanceData,
23258       { "ganssAssistanceData", "gsm_ss.ganssAssistanceData",
23259         FT_BYTES, BASE_HEX, NULL, 0,
23260         "gsm_ss.GANSSAssistanceData", HFILL }},
23261     { &hf_gsm_ss_decipheringKeys,
23262       { "decipheringKeys", "gsm_ss.decipheringKeys",
23263         FT_BYTES, BASE_HEX, NULL, 0,
23264         "gsm_ss.DecipheringKeys", HFILL }},
23265     { &hf_gsm_ss_add_LocationEstimate,
23266       { "add-LocationEstimate", "gsm_ss.add_LocationEstimate",
23267         FT_BYTES, BASE_HEX, NULL, 0,
23268         "gsm_map_lcs.Add_GeographicalInformation", HFILL }},
23269     { &hf_gsm_ss_reportingPLMNList,
23270       { "reportingPLMNList", "gsm_ss.reportingPLMNList",
23271         FT_NONE, BASE_NONE, NULL, 0,
23272         "gsm_map_lcs.ReportingPLMNList", HFILL }},
23273     { &hf_gsm_ss_deferredLocationEventType,
23274       { "deferredLocationEventType", "gsm_ss.deferredLocationEventType",
23275         FT_BYTES, BASE_HEX, NULL, 0,
23276         "gsm_map_lcs.DeferredLocationEventType", HFILL }},
23277     { &hf_gsm_ss_areaEventInfo,
23278       { "areaEventInfo", "gsm_ss.areaEventInfo",
23279         FT_NONE, BASE_NONE, NULL, 0,
23280         "gsm_map_lcs.AreaEventInfo", HFILL }},
23281     { &hf_gsm_ss_qoS,
23282       { "qoS", "gsm_ss.qoS",
23283         FT_NONE, BASE_NONE, NULL, 0,
23284         "gsm_map_lcs.LCS_QoS", HFILL }},
23285
23286 /*--- End of included file: packet-gsm_map-hfarr.c ---*/
23287 #line 2445 "packet-gsmmap-template.c"
23288   };
23289
23290   /* List of subtrees */
23291   static gint *ett[] = {
23292     &ett_gsm_map,
23293     &ett_gsm_map_InvokeId,
23294     &ett_gsm_map_InvokePDU,
23295     &ett_gsm_map_ReturnResultPDU,
23296     &ett_gsm_map_ReturnErrorPDU,
23297     &ett_gsm_map_ReturnResult_result,
23298     &ett_gsm_map_ReturnError_result,
23299     &ett_gsm_map_GSMMAPPDU,
23300     &ett_gsm_map_ext_qos_subscribed,
23301     &ett_gsm_map_pdptypenumber,
23302     &ett_gsm_map_RAIdentity,
23303     &ett_gsm_map_LAIFixedLength,
23304     &ett_gsm_map_isdn_address_string,
23305     &ett_gsm_map_geo_desc,
23306     &ett_gsm_map_LongSignalInfo,
23307     &ett_gsm_map_RadioResourceInformation,
23308     &ett_gsm_map_MSNetworkCapability,
23309     &ett_gsm_map_MSRadioAccessCapability,
23310     &ett_gsm_map_externalsignalinfo,
23311     &ett_gsm_map_cbs_data_coding,
23312     &ett_gsm_map_GlobalCellId,
23313     &ett_gsm_map_GeographicalInformation,
23314
23315
23316 /*--- Included file: packet-gsm_map-ettarr.c ---*/
23317 #line 1 "packet-gsm_map-ettarr.c"
23318
23319 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
23320
23321     &ett_gsm_map_ExtensionContainer,
23322     &ett_gsm_map_SLR_ArgExtensionContainer,
23323     &ett_gsm_map_PrivateExtensionList,
23324     &ett_gsm_map_PrivateExtension,
23325     &ett_gsm_map_PCS_Extensions,
23326     &ett_gsm_map_SLR_Arg_PCS_Extensions,
23327
23328 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
23329
23330     &ett_gsm_map_ExternalSignalInfo,
23331     &ett_gsm_map_Ext_ExternalSignalInfo,
23332     &ett_gsm_map_AccessNetworkSignalInfo,
23333     &ett_gsm_map_Identity,
23334     &ett_gsm_map_IMSI_WithLMSI,
23335     &ett_gsm_map_HLR_List,
23336     &ett_gsm_map_NAEA_PreferredCI,
23337     &ett_gsm_map_SubscriberIdentity,
23338     &ett_gsm_map_LCSClientExternalID,
23339     &ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
23340     &ett_gsm_map_BasicServiceCode,
23341     &ett_gsm_map_Ext_BasicServiceCode,
23342     &ett_gsm_map_EMLPP_Info,
23343     &ett_gsm_map_MC_SS_Info,
23344
23345 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
23346
23347     &ett_gsm_map_ss_RegisterSS_Arg,
23348     &ett_gsm_map_ss_SS_Info,
23349     &ett_gsm_map_ss_ForwardingInfo,
23350     &ett_gsm_map_ss_ForwardingFeatureList,
23351     &ett_gsm_map_ss_ForwardingFeature,
23352     &ett_gsm_map_ss_CallBarringInfo,
23353     &ett_gsm_map_ss_CallBarringFeatureList,
23354     &ett_gsm_map_ss_CallBarringFeature,
23355     &ett_gsm_map_ss_SS_Data,
23356     &ett_gsm_map_ss_SS_SubscriptionOption,
23357     &ett_gsm_map_ss_SS_ForBS_Code,
23358     &ett_gsm_map_ss_GenericServiceInfo,
23359     &ett_gsm_map_ss_CCBS_FeatureList,
23360     &ett_gsm_map_ss_CCBS_Feature,
23361     &ett_gsm_map_ss_InterrogateSS_Res,
23362     &ett_gsm_map_ss_USSD_Arg,
23363     &ett_gsm_map_ss_USSD_Res,
23364     &ett_gsm_map_ss_SS_List,
23365     &ett_gsm_map_ss_BasicServiceGroupList,
23366     &ett_gsm_map_ss_SS_InvocationNotificationArg,
23367     &ett_gsm_map_ss_SS_InvocationNotificationRes,
23368     &ett_gsm_map_ss_SS_EventSpecification,
23369     &ett_gsm_map_ss_RegisterCC_EntryArg,
23370     &ett_gsm_map_ss_CCBS_Data,
23371     &ett_gsm_map_ss_ServiceIndicator,
23372     &ett_gsm_map_ss_RegisterCC_EntryRes,
23373     &ett_gsm_map_ss_EraseCC_EntryArg,
23374     &ett_gsm_map_ss_EraseCC_EntryRes,
23375
23376 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
23377
23378     &ett_gsm_map_er_RoamingNotAllowedParam,
23379     &ett_gsm_map_er_CallBarredParam,
23380     &ett_gsm_map_er_ExtensibleCallBarredParam,
23381     &ett_gsm_map_er_CUG_RejectParam,
23382     &ett_gsm_map_er_SS_IncompatibilityCause,
23383     &ett_gsm_map_er_SM_DeliveryFailureCause,
23384     &ett_gsm_map_er_AbsentSubscriberSM_Param,
23385     &ett_gsm_map_er_SystemFailureParam,
23386     &ett_gsm_map_er_ExtensibleSystemFailureParam,
23387     &ett_gsm_map_er_DataMissingParam,
23388     &ett_gsm_map_er_UnexpectedDataParam,
23389     &ett_gsm_map_er_FacilityNotSupParam,
23390     &ett_gsm_map_er_OR_NotAllowedParam,
23391     &ett_gsm_map_er_UnknownSubscriberParam,
23392     &ett_gsm_map_er_NumberChangedParam,
23393     &ett_gsm_map_er_UnidentifiedSubParam,
23394     &ett_gsm_map_er_IllegalSubscriberParam,
23395     &ett_gsm_map_er_IllegalEquipmentParam,
23396     &ett_gsm_map_er_BearerServNotProvParam,
23397     &ett_gsm_map_er_TeleservNotProvParam,
23398     &ett_gsm_map_er_TracingBufferFullParam,
23399     &ett_gsm_map_er_NoRoamingNbParam,
23400     &ett_gsm_map_er_AbsentSubscriberParam,
23401     &ett_gsm_map_er_BusySubscriberParam,
23402     &ett_gsm_map_er_NoSubscriberReplyParam,
23403     &ett_gsm_map_er_ForwardingViolationParam,
23404     &ett_gsm_map_er_ForwardingFailedParam,
23405     &ett_gsm_map_er_ATI_NotAllowedParam,
23406     &ett_gsm_map_er_ATSI_NotAllowedParam,
23407     &ett_gsm_map_er_ATM_NotAllowedParam,
23408     &ett_gsm_map_er_IllegalSS_OperationParam,
23409     &ett_gsm_map_er_SS_NotAvailableParam,
23410     &ett_gsm_map_er_SS_SubscriptionViolationParam,
23411     &ett_gsm_map_er_InformationNotAvailableParam,
23412     &ett_gsm_map_er_SubBusyForMT_SMS_Param,
23413     &ett_gsm_map_er_MessageWaitListFullParam,
23414     &ett_gsm_map_er_ResourceLimitationParam,
23415     &ett_gsm_map_er_NoGroupCallNbParam,
23416     &ett_gsm_map_er_IncompatibleTerminalParam,
23417     &ett_gsm_map_er_ShortTermDenialParam,
23418     &ett_gsm_map_er_LongTermDenialParam,
23419     &ett_gsm_map_er_UnauthorizedRequestingNetwork_Param,
23420     &ett_gsm_map_er_UnauthorizedLCSClient_Param,
23421     &ett_gsm_map_er_PositionMethodFailure_Param,
23422     &ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param,
23423     &ett_gsm_map_er_MM_EventNotSupported_Param,
23424     &ett_gsm_map_er_TargetCellOutsideGCA_Param,
23425     &ett_gsm_map_er_OngoingGroupCallParam,
23426
23427 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
23428
23429     &ett_gsm_map_sm_RoutingInfoForSM_Arg,
23430     &ett_gsm_map_sm_RoutingInfoForSM_Res,
23431     &ett_gsm_map_sm_LocationInfoWithLMSI,
23432     &ett_gsm_map_sm_Additional_Number,
23433     &ett_gsm_map_sm_MO_ForwardSM_Arg,
23434     &ett_gsm_map_sm_MO_ForwardSM_Res,
23435     &ett_gsm_map_sm_MT_ForwardSM_Arg,
23436     &ett_gsm_map_sm_MT_ForwardSM_Res,
23437     &ett_gsm_map_sm_SM_RP_DA,
23438     &ett_gsm_map_sm_SM_RP_OA,
23439     &ett_gsm_map_sm_ReportSM_DeliveryStatusArg,
23440     &ett_gsm_map_sm_ReportSM_DeliveryStatusRes,
23441     &ett_gsm_map_sm_AlertServiceCentreArg,
23442     &ett_gsm_map_sm_InformServiceCentreArg,
23443     &ett_gsm_map_sm_MW_Status,
23444     &ett_gsm_map_sm_ReadyForSM_Arg,
23445     &ett_gsm_map_sm_ReadyForSM_Res,
23446     &ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg,
23447     &ett_gsm_map_sm_MT_ForwardSM_VGCS_Res,
23448     &ett_gsm_map_sm_DispatcherList,
23449
23450 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
23451
23452     &ett_gsm_map_om_ActivateTraceModeArg,
23453     &ett_gsm_map_om_TraceDepthList,
23454     &ett_gsm_map_om_TraceNE_TypeList,
23455     &ett_gsm_map_om_TraceInterfaceList,
23456     &ett_gsm_map_om_MSC_S_InterfaceList,
23457     &ett_gsm_map_om_MGW_InterfaceList,
23458     &ett_gsm_map_om_SGSN_InterfaceList,
23459     &ett_gsm_map_om_GGSN_InterfaceList,
23460     &ett_gsm_map_om_RNC_InterfaceList,
23461     &ett_gsm_map_om_BMSC_InterfaceList,
23462     &ett_gsm_map_om_TraceEventList,
23463     &ett_gsm_map_om_MSC_S_EventList,
23464     &ett_gsm_map_om_MGW_EventList,
23465     &ett_gsm_map_om_SGSN_EventList,
23466     &ett_gsm_map_om_GGSN_EventList,
23467     &ett_gsm_map_om_BMSC_EventList,
23468     &ett_gsm_map_om_TracePropagationList,
23469     &ett_gsm_map_om_ActivateTraceModeRes,
23470     &ett_gsm_map_om_DeactivateTraceModeArg,
23471     &ett_gsm_map_om_DeactivateTraceModeRes,
23472
23473 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
23474
23475     &ett_gsm_map_ms_UpdateLocationArg,
23476     &ett_gsm_map_ms_VLR_Capability,
23477     &ett_gsm_map_ms_SupportedRAT_Types,
23478     &ett_gsm_map_ms_SuperChargerInfo,
23479     &ett_gsm_map_ms_SupportedLCS_CapabilitySets,
23480     &ett_gsm_map_ms_UpdateLocationRes,
23481     &ett_gsm_map_ms_ADD_Info,
23482     &ett_gsm_map_ms_PagingArea,
23483     &ett_gsm_map_ms_LocationArea,
23484     &ett_gsm_map_ms_CancelLocationArg_U,
23485     &ett_gsm_map_ms_CancelLocationRes,
23486     &ett_gsm_map_ms_PurgeMS_Arg_U,
23487     &ett_gsm_map_ms_PurgeMS_Res,
23488     &ett_gsm_map_ms_SendIdentificationArg,
23489     &ett_gsm_map_ms_SendIdentificationRes_U,
23490     &ett_gsm_map_ms_AuthenticationSetList,
23491     &ett_gsm_map_ms_TripletList,
23492     &ett_gsm_map_ms_QuintupletList,
23493     &ett_gsm_map_ms_AuthenticationTriplet,
23494     &ett_gsm_map_ms_AuthenticationQuintuplet,
23495     &ett_gsm_map_ms_CurrentSecurityContext,
23496     &ett_gsm_map_ms_GSM_SecurityContextData,
23497     &ett_gsm_map_ms_UMTS_SecurityContextData,
23498     &ett_gsm_map_ms_AuthenticationFailureReportArg,
23499     &ett_gsm_map_ms_AuthenticationFailureReportRes,
23500     &ett_gsm_map_ms_UpdateGprsLocationArg,
23501     &ett_gsm_map_ms_EPS_Info,
23502     &ett_gsm_map_ms_PDN_GW_Update,
23503     &ett_gsm_map_ms_ISR_Information,
23504     &ett_gsm_map_ms_SGSN_Capability,
23505     &ett_gsm_map_ms_SupportedFeatures,
23506     &ett_gsm_map_ms_UpdateGprsLocationRes,
23507     &ett_gsm_map_ms_ForwardAccessSignalling_Arg_U,
23508     &ett_gsm_map_ms_AllowedUMTS_Algorithms,
23509     &ett_gsm_map_ms_PrepareHO_Arg_U,
23510     &ett_gsm_map_ms_BSSMAP_ServiceHandoverList,
23511     &ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo,
23512     &ett_gsm_map_ms_RadioResourceList,
23513     &ett_gsm_map_ms_RadioResource,
23514     &ett_gsm_map_ms_PrepareHO_Res_U,
23515     &ett_gsm_map_ms_SelectedUMTS_Algorithms,
23516     &ett_gsm_map_ms_ChosenRadioResourceInformation,
23517     &ett_gsm_map_ms_PrepareSubsequentHO_Arg_U,
23518     &ett_gsm_map_ms_PrepareSubsequentHO_Res_U,
23519     &ett_gsm_map_ms_ProcessAccessSignalling_Arg_U,
23520     &ett_gsm_map_ms_SupportedCodecsList,
23521     &ett_gsm_map_ms_CodecList,
23522     &ett_gsm_map_ms_SendEndSignal_Arg_U,
23523     &ett_gsm_map_ms_SendEndSignal_Res,
23524     &ett_gsm_map_ms_RelocationNumberList,
23525     &ett_gsm_map_ms_RelocationNumber,
23526     &ett_gsm_map_ms_SendAuthenticationInfoArg,
23527     &ett_gsm_map_ms_Re_synchronisationInfo,
23528     &ett_gsm_map_ms_SendAuthenticationInfoRes_U,
23529     &ett_gsm_map_ms_EPS_AuthenticationSetList,
23530     &ett_gsm_map_ms_EPC_AV,
23531     &ett_gsm_map_ms_CheckIMEI_Arg,
23532     &ett_gsm_map_ms_CheckIMEI_Res,
23533     &ett_gsm_map_ms_RequestedEquipmentInfo,
23534     &ett_gsm_map_ms_UESBI_Iu,
23535     &ett_gsm_map_ms_InsertSubscriberDataArg,
23536     &ett_gsm_map_ms_CSG_SubscriptionDataList,
23537     &ett_gsm_map_ms_CSG_SubscriptionData,
23538     &ett_gsm_map_ms_EPS_SubscriptionData,
23539     &ett_gsm_map_ms_APN_ConfigurationProfile,
23540     &ett_gsm_map_ms_EPS_DataList,
23541     &ett_gsm_map_ms_APN_Configuration,
23542     &ett_gsm_map_ms_EPS_QoS_Subscribed,
23543     &ett_gsm_map_ms_AMBR,
23544     &ett_gsm_map_ms_SpecificAPNInfoList,
23545     &ett_gsm_map_ms_SpecificAPNInfo,
23546     &ett_gsm_map_ms_Allocation_Retention_Priority,
23547     &ett_gsm_map_ms_PDN_GW_Identity,
23548     &ett_gsm_map_ms_AccessRestrictionData,
23549     &ett_gsm_map_ms_LCSInformation,
23550     &ett_gsm_map_ms_GMLC_List,
23551     &ett_gsm_map_ms_GPRSDataList,
23552     &ett_gsm_map_ms_PDP_Context,
23553     &ett_gsm_map_ms_GPRSSubscriptionData,
23554     &ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo,
23555     &ett_gsm_map_ms_GPRS_CSI,
23556     &ett_gsm_map_ms_GPRS_CamelTDPDataList,
23557     &ett_gsm_map_ms_GPRS_CamelTDPData,
23558     &ett_gsm_map_ms_LSADataList,
23559     &ett_gsm_map_ms_LSAData,
23560     &ett_gsm_map_ms_LSAInformation,
23561     &ett_gsm_map_ms_SubscriberData,
23562     &ett_gsm_map_ms_BearerServiceList,
23563     &ett_gsm_map_ms_TeleserviceList,
23564     &ett_gsm_map_ms_ODB_Data,
23565     &ett_gsm_map_ms_ODB_GeneralData,
23566     &ett_gsm_map_ms_ODB_HPLMN_Data,
23567     &ett_gsm_map_ms_Ext_SS_InfoList,
23568     &ett_gsm_map_ms_Ext_SS_Info,
23569     &ett_gsm_map_ms_Ext_ForwInfo,
23570     &ett_gsm_map_ms_Ext_ForwFeatureList,
23571     &ett_gsm_map_ms_Ext_ForwFeature,
23572     &ett_gsm_map_ms_Ext_CallBarInfo,
23573     &ett_gsm_map_ms_Ext_CallBarFeatureList,
23574     &ett_gsm_map_ms_Ext_CallBarringFeature,
23575     &ett_gsm_map_ms_CUG_Info,
23576     &ett_gsm_map_ms_CUG_SubscriptionList,
23577     &ett_gsm_map_ms_CUG_Subscription,
23578     &ett_gsm_map_ms_CUG_FeatureList,
23579     &ett_gsm_map_ms_Ext_BasicServiceGroupList,
23580     &ett_gsm_map_ms_CUG_Feature,
23581     &ett_gsm_map_ms_Ext_SS_Data,
23582     &ett_gsm_map_ms_LCS_PrivacyExceptionList,
23583     &ett_gsm_map_ms_LCS_PrivacyClass,
23584     &ett_gsm_map_ms_ExternalClientList,
23585     &ett_gsm_map_ms_PLMNClientList,
23586     &ett_gsm_map_ms_Ext_ExternalClientList,
23587     &ett_gsm_map_ms_ExternalClient,
23588     &ett_gsm_map_ms_ServiceTypeList,
23589     &ett_gsm_map_ms_ServiceType,
23590     &ett_gsm_map_ms_MOLR_List,
23591     &ett_gsm_map_ms_MOLR_Class,
23592     &ett_gsm_map_ms_ZoneCodeList,
23593     &ett_gsm_map_ms_InsertSubscriberDataRes,
23594     &ett_gsm_map_ms_DeleteSubscriberDataArg,
23595     &ett_gsm_map_ms_SpecificCSI_Withdraw,
23596     &ett_gsm_map_ms_GPRSSubscriptionDataWithdraw,
23597     &ett_gsm_map_ms_EPS_SubscriptionDataWithdraw,
23598     &ett_gsm_map_ms_ContextIdList,
23599     &ett_gsm_map_ms_LSAInformationWithdraw,
23600     &ett_gsm_map_ms_LSAIdentityList,
23601     &ett_gsm_map_ms_BasicServiceList,
23602     &ett_gsm_map_ms_DeleteSubscriberDataRes,
23603     &ett_gsm_map_ms_VlrCamelSubscriptionInfo,
23604     &ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList,
23605     &ett_gsm_map_ms_MT_smsCAMELTDP_Criteria,
23606     &ett_gsm_map_ms_TPDU_TypeCriterion,
23607     &ett_gsm_map_ms_D_CSI,
23608     &ett_gsm_map_ms_DP_AnalysedInfoCriteriaList,
23609     &ett_gsm_map_ms_DP_AnalysedInfoCriterium,
23610     &ett_gsm_map_ms_SS_CSI,
23611     &ett_gsm_map_ms_SS_CamelData,
23612     &ett_gsm_map_ms_SS_EventList,
23613     &ett_gsm_map_ms_O_CSI,
23614     &ett_gsm_map_ms_O_BcsmCamelTDPDataList,
23615     &ett_gsm_map_ms_O_BcsmCamelTDPData,
23616     &ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList,
23617     &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList,
23618     &ett_gsm_map_ms_O_BcsmCamelTDP_Criteria,
23619     &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria,
23620     &ett_gsm_map_ms_DestinationNumberCriteria,
23621     &ett_gsm_map_ms_DestinationNumberList,
23622     &ett_gsm_map_ms_DestinationNumberLengthList,
23623     &ett_gsm_map_ms_BasicServiceCriteria,
23624     &ett_gsm_map_ms_O_CauseValueCriteria,
23625     &ett_gsm_map_ms_T_CauseValueCriteria,
23626     &ett_gsm_map_ms_SupportedCamelPhases,
23627     &ett_gsm_map_ms_OfferedCamel4CSIs,
23628     &ett_gsm_map_ms_OfferedCamel4Functionalities,
23629     &ett_gsm_map_ms_SMS_CSI,
23630     &ett_gsm_map_ms_SMS_CAMEL_TDP_DataList,
23631     &ett_gsm_map_ms_SMS_CAMEL_TDP_Data,
23632     &ett_gsm_map_ms_M_CSI,
23633     &ett_gsm_map_ms_MG_CSI,
23634     &ett_gsm_map_ms_MobilityTriggers,
23635     &ett_gsm_map_ms_T_CSI,
23636     &ett_gsm_map_ms_T_BcsmCamelTDPDataList,
23637     &ett_gsm_map_ms_T_BcsmCamelTDPData,
23638     &ett_gsm_map_ms_SendRoutingInfoForGprsArg,
23639     &ett_gsm_map_ms_SendRoutingInfoForGprsRes,
23640     &ett_gsm_map_ms_FailureReportArg,
23641     &ett_gsm_map_ms_FailureReportRes,
23642     &ett_gsm_map_ms_NoteMsPresentForGprsArg,
23643     &ett_gsm_map_ms_NoteMsPresentForGprsRes,
23644     &ett_gsm_map_ms_ResetArg,
23645     &ett_gsm_map_ms_RestoreDataArg,
23646     &ett_gsm_map_ms_RestoreDataRes,
23647     &ett_gsm_map_ms_VBSDataList,
23648     &ett_gsm_map_ms_VGCSDataList,
23649     &ett_gsm_map_ms_VoiceGroupCallData,
23650     &ett_gsm_map_ms_AdditionalSubscriptions,
23651     &ett_gsm_map_ms_VoiceBroadcastData,
23652     &ett_gsm_map_ms_ProvideSubscriberInfoArg,
23653     &ett_gsm_map_ms_ProvideSubscriberInfoRes,
23654     &ett_gsm_map_ms_SubscriberInfo,
23655     &ett_gsm_map_ms_MNPInfoRes,
23656     &ett_gsm_map_ms_GPRSMSClass,
23657     &ett_gsm_map_ms_RequestedInfo,
23658     &ett_gsm_map_ms_LocationInformation,
23659     &ett_gsm_map_ms_LocationInformationGPRS,
23660     &ett_gsm_map_ms_SubscriberState,
23661     &ett_gsm_map_ms_PS_SubscriberState,
23662     &ett_gsm_map_ms_PDP_ContextInfoList,
23663     &ett_gsm_map_ms_PDP_ContextInfo,
23664     &ett_gsm_map_ms_AnyTimeInterrogationArg,
23665     &ett_gsm_map_ms_AnyTimeInterrogationRes,
23666     &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg,
23667     &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes,
23668     &ett_gsm_map_ms_RequestedSubscriptionInfo,
23669     &ett_gsm_map_ms_MSISDN_BS_List,
23670     &ett_gsm_map_ms_MSISDN_BS,
23671     &ett_gsm_map_ms_CallForwardingData,
23672     &ett_gsm_map_ms_CallBarringData,
23673     &ett_gsm_map_ms_ODB_Info,
23674     &ett_gsm_map_ms_CAMEL_SubscriptionInfo,
23675     &ett_gsm_map_ms_AnyTimeModificationArg,
23676     &ett_gsm_map_ms_AnyTimeModificationRes,
23677     &ett_gsm_map_ms_ModificationRequestFor_CF_Info,
23678     &ett_gsm_map_ms_ModificationRequestFor_CB_Info,
23679     &ett_gsm_map_ms_ModificationRequestFor_ODB_data,
23680     &ett_gsm_map_ms_ModificationRequestFor_CSI,
23681     &ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data,
23682     &ett_gsm_map_ms_NoteSubscriberDataModifiedArg,
23683     &ett_gsm_map_ms_NoteSubscriberDataModifiedRes,
23684     &ett_gsm_map_ms_NoteMM_EventArg,
23685     &ett_gsm_map_ms_NoteMM_EventRes,
23686     &ett_gsm_map_ms_Ext_SS_InfoFor_CSE,
23687     &ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE,
23688     &ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE,
23689
23690 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
23691
23692     &ett_gsm_map_ch_CUG_CheckInfo,
23693     &ett_gsm_map_ch_SendRoutingInfoArg,
23694     &ett_gsm_map_ch_SuppressMTSS,
23695     &ett_gsm_map_ch_SendRoutingInfoRes_U,
23696     &ett_gsm_map_ch_AllowedServices,
23697     &ett_gsm_map_ch_CCBS_Indicators,
23698     &ett_gsm_map_ch_RoutingInfo,
23699     &ett_gsm_map_ch_ForwardingData,
23700     &ett_gsm_map_ch_ProvideRoamingNumberArg,
23701     &ett_gsm_map_ch_ProvideRoamingNumberRes,
23702     &ett_gsm_map_ch_ResumeCallHandlingArg,
23703     &ett_gsm_map_ch_UU_Data,
23704     &ett_gsm_map_ch_ResumeCallHandlingRes,
23705     &ett_gsm_map_ch_CamelInfo,
23706     &ett_gsm_map_ch_ExtendedRoutingInfo,
23707     &ett_gsm_map_ch_CamelRoutingInfo,
23708     &ett_gsm_map_ch_GmscCamelSubscriptionInfo,
23709     &ett_gsm_map_ch_SetReportingStateArg,
23710     &ett_gsm_map_ch_SetReportingStateRes,
23711     &ett_gsm_map_ch_StatusReportArg,
23712     &ett_gsm_map_ch_EventReportData,
23713     &ett_gsm_map_ch_CallReportData,
23714     &ett_gsm_map_ch_StatusReportRes,
23715     &ett_gsm_map_ch_RemoteUserFreeArg,
23716     &ett_gsm_map_ch_RemoteUserFreeRes,
23717     &ett_gsm_map_ch_IST_AlertArg,
23718     &ett_gsm_map_ch_IST_AlertRes,
23719     &ett_gsm_map_ch_IST_CommandArg,
23720     &ett_gsm_map_ch_IST_CommandRes,
23721     &ett_gsm_map_ch_ReleaseResourcesArg,
23722     &ett_gsm_map_ch_ReleaseResourcesRes,
23723
23724 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
23725
23726     &ett_gsm_map_lcs_RoutingInfoForLCS_Arg,
23727     &ett_gsm_map_lcs_RoutingInfoForLCS_Res,
23728     &ett_gsm_map_lcs_LCSLocationInfo,
23729     &ett_gsm_map_lcs_ProvideSubscriberLocation_Arg,
23730     &ett_gsm_map_lcs_LocationType,
23731     &ett_gsm_map_lcs_DeferredLocationEventType,
23732     &ett_gsm_map_lcs_LCS_ClientID,
23733     &ett_gsm_map_lcs_LCSClientName,
23734     &ett_gsm_map_lcs_LCSRequestorID,
23735     &ett_gsm_map_lcs_LCS_QoS,
23736     &ett_gsm_map_lcs_ResponseTime,
23737     &ett_gsm_map_lcs_SupportedGADShapes,
23738     &ett_gsm_map_lcs_LCSCodeword,
23739     &ett_gsm_map_lcs_LCS_PrivacyCheck,
23740     &ett_gsm_map_lcs_AreaEventInfo,
23741     &ett_gsm_map_lcs_AreaDefinition,
23742     &ett_gsm_map_lcs_AreaList,
23743     &ett_gsm_map_lcs_Area,
23744     &ett_gsm_map_lcs_PeriodicLDRInfo,
23745     &ett_gsm_map_lcs_ReportingPLMNList,
23746     &ett_gsm_map_lcs_PLMNList,
23747     &ett_gsm_map_lcs_ReportingPLMN,
23748     &ett_gsm_map_lcs_ProvideSubscriberLocation_Res,
23749     &ett_gsm_map_lcs_SubscriberLocationReport_Arg,
23750     &ett_gsm_map_lcs_Deferredmt_lrData,
23751     &ett_gsm_map_lcs_SubscriberLocationReport_Res,
23752
23753 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
23754
23755     &ett_gsm_map_gr_PrepareGroupCallArg,
23756     &ett_gsm_map_gr_PrepareGroupCallRes,
23757     &ett_gsm_map_gr_SendGroupCallEndSignalArg,
23758     &ett_gsm_map_gr_SendGroupCallEndSignalRes,
23759     &ett_gsm_map_gr_ForwardGroupCallSignallingArg,
23760     &ett_gsm_map_gr_ProcessGroupCallSignallingArg,
23761     &ett_gsm_map_gr_StateAttributes,
23762     &ett_gsm_map_gr_SendGroupCallInfoArg,
23763     &ett_gsm_map_gr_SendGroupCallInfoRes,
23764
23765 /* --- Module MAP-DialogueInformation --- --- ---                             */
23766
23767     &ett_gsm_map_dialogue_MAP_DialoguePDU,
23768     &ett_gsm_map_dialogue_MAP_OpenInfo,
23769     &ett_gsm_map_dialogue_MAP_AcceptInfo,
23770     &ett_gsm_map_dialogue_MAP_CloseInfo,
23771     &ett_gsm_map_dialogue_MAP_RefuseInfo,
23772     &ett_gsm_map_dialogue_MAP_UserAbortInfo,
23773     &ett_gsm_map_dialogue_MAP_UserAbortChoice,
23774     &ett_gsm_map_dialogue_MAP_ProviderAbortInfo,
23775
23776 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
23777
23778
23779 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
23780
23781
23782 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
23783
23784
23785 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
23786
23787
23788 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
23789
23790
23791 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
23792
23793
23794 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
23795
23796
23797 /* --- Module MAP-Errors --- --- ---                                          */
23798
23799
23800 /* --- Module MAP-Protocol --- --- ---                                        */
23801
23802
23803 /* --- Module DummyMAP --- --- ---                                            */
23804
23805     &ett_gsm_old_Component,
23806     &ett_gsm_old_Invoke,
23807     &ett_gsm_old_ReturnResult,
23808     &ett_gsm_old_T_resultretres,
23809     &ett_gsm_old_ReturnError,
23810     &ett_gsm_old_Reject,
23811     &ett_gsm_old_T_invokeIDRej,
23812     &ett_gsm_old_T_problem,
23813     &ett_gsm_old_MAP_OPERATION,
23814     &ett_gsm_old_MAP_ERROR,
23815     &ett_gsm_old_Bss_APDU,
23816     &ett_gsm_old_ProvideSIWFSNumberArg,
23817     &ett_gsm_old_ProvideSIWFSNumberRes,
23818     &ett_gsm_old_PurgeMSArgV2,
23819     &ett_gsm_old_PrepareHO_ArgOld,
23820     &ett_gsm_old_PrepareHO_ResOld,
23821     &ett_gsm_old_SendAuthenticationInfoResOld,
23822     &ett_gsm_old_SendAuthenticationInfoResOld_item,
23823     &ett_gsm_old_SendIdentificationResV2,
23824     &ett_gsm_old_TripletListold,
23825     &ett_gsm_old_AuthenticationTriplet_v2,
23826     &ett_gsm_old_SIWFSSignallingModifyArg,
23827     &ett_gsm_old_SIWFSSignallingModifyRes,
23828     &ett_gsm_old_SecureTransportArg,
23829     &ett_gsm_old_SecureTransportErrorParam,
23830     &ett_gsm_old_SecureTransportRes,
23831     &ett_gsm_old_SecurityHeader,
23832     &ett_gsm_old_OriginalComponentIdentifier,
23833     &ett_gsm_old_OperationCode,
23834     &ett_gsm_old_ErrorCode,
23835     &ett_gsm_old_PlmnContainer_U,
23836     &ett_gsm_old_T_operatorSS_Code,
23837     &ett_gsm_old_ForwardSM_Arg,
23838     &ett_gsm_old_SM_RP_DAold,
23839     &ett_gsm_old_SM_RP_OAold,
23840     &ett_gsm_old_SendRoutingInfoArgV2,
23841     &ett_gsm_old_SendRoutingInfoResV2,
23842
23843 /* --- Module SS-DataTypes --- --- ---                                        */
23844
23845     &ett_gsm_ss_NotifySS_Arg,
23846     &ett_gsm_ss_BeginSubscriberActivityArg,
23847     &ett_gsm_ss_ForwardChargeAdviceArg,
23848     &ett_gsm_ss_ChargingInformation,
23849     &ett_gsm_ss_ForwardCUG_InfoArg,
23850     &ett_gsm_ss_ECT_Indicator,
23851     &ett_gsm_ss_NameIndicator,
23852     &ett_gsm_ss_Name,
23853     &ett_gsm_ss_NameSet,
23854     &ett_gsm_ss_RDN,
23855     &ett_gsm_ss_RemotePartyNumber,
23856     &ett_gsm_ss_AccessRegisterCCEntryArg,
23857     &ett_gsm_ss_CallDeflectionArg,
23858     &ett_gsm_ss_UserUserServiceArg,
23859     &ett_gsm_ss_LocationNotificationArg,
23860     &ett_gsm_ss_LocationNotificationRes,
23861     &ett_gsm_ss_LCS_MOLRArg,
23862     &ett_gsm_ss_LCS_MOLRRes,
23863     &ett_gsm_ss_LCS_AreaEventRequestArg,
23864     &ett_gsm_ss_LCS_AreaEventReportArg,
23865     &ett_gsm_ss_LCS_AreaEventCancellationArg,
23866     &ett_gsm_ss_LCS_PeriodicLocationRequestArg,
23867     &ett_gsm_ss_LCS_PeriodicLocationRequestRes,
23868     &ett_gsm_ss_LCS_LocationUpdateArg,
23869     &ett_gsm_ss_LCS_LocationUpdateRes,
23870     &ett_gsm_ss_LCS_PeriodicLocationCancellationArg,
23871
23872 /* --- Module SS-Operations --- --- ---                                       */
23873
23874
23875 /*--- End of included file: packet-gsm_map-ettarr.c ---*/
23876 #line 2473 "packet-gsmmap-template.c"
23877   };
23878
23879   /* Register protocol */
23880   proto_gsm_map_dialogue =proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
23881
23882   register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);
23883   
23884   /* Register fields and subtrees */
23885   proto_register_field_array(proto_gsm_map, hf, array_length(hf));
23886   proto_register_subtree_array(ett, array_length(ett));
23887
23888   sms_dissector_table = register_dissector_table("gsm_map.sms_tpdu", 
23889                                                  "GSM SMS TPDU", FT_UINT8,
23890                                                  BASE_DEC);
23891
23892   gsm_map_tap = register_tap("gsm_map");
23893
23894
23895 /*--- Included file: packet-gsm_map-dis-tab.c ---*/
23896 #line 1 "packet-gsm_map-dis-tab.c"
23897
23898 /* --- Module MAP-DialogueInformation --- --- ---                             */
23899
23900   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");
23901
23902
23903 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
23904
23905
23906
23907 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
23908
23909
23910
23911 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
23912
23913
23914
23915 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
23916
23917
23918
23919 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
23920
23921
23922
23923 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
23924
23925
23926
23927 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
23928
23929
23930
23931 /* --- Module MAP-Errors --- --- ---                                          */
23932
23933
23934
23935 /* --- Module MAP-Protocol --- --- ---                                        */
23936
23937
23938
23939 /* --- Module DummyMAP --- --- ---                                            */
23940
23941
23942
23943 /* --- Module SS-DataTypes --- --- ---                                        */
23944
23945
23946
23947 /* --- Module SS-Operations --- --- ---                                       */
23948
23949
23950
23951 /*--- End of included file: packet-gsm_map-dis-tab.c ---*/
23952 #line 2491 "packet-gsmmap-template.c"
23953   oid_add_from_string("ericsson-gsm-Map-Ext","1.2.826.0.1249.58.1.0" );
23954   oid_add_from_string("accessTypeNotAllowed-id","1.3.12.2.1107.3.66.1.2");
23955   /*oid_add_from_string("map-ac networkLocUp(1) version3(3)","0.4.0.0.1.0.1.3" );
23956    *
23957    * Register our configuration options, particularly our ssn:s
23958    * Set default SSNs
23959    */
23960   range_convert_str(&global_ssn_range, "6-9", MAX_SSN);
23961
23962   gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
23963
23964   prefs_register_range_preference(gsm_map_module, "tcap.ssn", "TCAP SSNs",
23965                                   "TCAP Subsystem numbers used for GSM MAP",
23966                                   &global_ssn_range, MAX_SSN);
23967 }