From Didier Gautheron:
[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 198 "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 185 "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 279 "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 704 "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_remaining(actx->value_ptr, 2);
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_remaining(actx->value_ptr, 3);
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_remaining(actx->value_ptr, 2);
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                                   &AccessNetworkProtocolId);
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 217 "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_remaining(parameter_tvb, 2);
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_remaining(parameter_tvb, 3);
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 785 "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 564 "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 377 "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 357 "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 471 "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 400 "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 415 "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 286 "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 275 "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 267 "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 303 "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 312 "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 321 "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 330 "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 339 "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 348 "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 528 "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 600 "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 612 "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 576 "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 588 "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 477 "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 485 "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 507 "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 518 "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 552 "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 797 "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 625 "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_remaining(actx->value_ptr, 2);
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_remaining(actx->value_ptr, 3);
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_remaining(actx->value_ptr, 2);
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 271 "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 263 "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 294 "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_add_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     col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
17599
17600     top_tree = parent_tree;
17601
17602     /* create display subtree for the protocol */
17603     if(parent_tree){
17604         item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, FALSE);
17605         tree = proto_item_add_subtree(item, ett_gsm_map);
17606     }
17607
17608     dissect_gsm_map_GSMMAPPDU(FALSE, tvb, 0, &asn1_ctx, tree, -1);
17609     match_strval_idx(opcode, gsm_map_opr_code_strings, &op_idx);
17610
17611     tap_rec.invoke = FALSE;
17612     if ( gsmmap_pdu_type  == 1 )
17613         tap_rec.invoke = TRUE;
17614     tap_rec.opr_code_idx = op_idx;
17615     tap_rec.size = gsm_map_pdu_size;
17616
17617     tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
17618 }
17619
17620 const value_string ssCode_vals[] = {
17621   { 0x00, "allSS - all SS" },
17622   { 0x10 ,"allLineIdentificationSS - all line identification SS" },
17623   { 0x11 ,"clip - calling line identification presentation" },
17624   { 0x12 ,"clir - calling line identification restriction" },
17625   { 0x13 ,"colp - connected line identification presentation" },
17626   { 0x14 ,"colr - connected line identification restriction" },
17627   { 0x15 ,"mci - malicious call identification" },
17628   { 0x18 ,"allNameIdentificationSS - all name indentification SS" },
17629   { 0x19 ,"cnap - calling name presentation" },
17630   { 0x20 ,"allForwardingSS - all forwarding SS" },
17631   { 0x21 ,"cfu - call forwarding unconditional" },
17632   { 0x28 ,"allCondForwardingSS - all conditional forwarding SS" },
17633   { 0x29 ,"cfb - call forwarding busy" },
17634   { 0x2a ,"cfnry - call forwarding on no reply" },
17635   { 0x2b ,"cfnrc - call forwarding on mobile subscriber not reachable" },
17636   { 0x24 ,"cd - call deflection" },
17637   { 0x30 ,"allCallOfferingSS - all call offering SS includes also all forwarding SS" },
17638   { 0x31 ,"ect - explicit call transfer" },
17639   { 0x32 ,"mah - mobile access hunting" },
17640   { 0x40 ,"allCallCompletionSS - all Call completion SS" },
17641   { 0x41 ,"cw - call waiting" },
17642   { 0x42 ,"hold - call hold" },
17643   { 0x43 ,"ccbs-A - completion of call to busy subscribers, originating side" },
17644   { 0x44 ,"ccbs-B - completion of call to busy subscribers, destination side" },
17645   { 0x45 ,"mc - multicall" },
17646   { 0x50 ,"allMultiPartySS - all multiparty SS" },
17647   { 0x51 ,"multiPTY - multiparty" },
17648   { 0x60 ,"allCommunityOfInterestSS - all community of interest SS" },
17649   { 0x61 ,"cug - closed user group" },
17650   { 0x70 ,"allChargingSS - all charging SS" },
17651   { 0x71 ,"aoci - advice of charge information" },
17652   { 0x72 ,"aocc - advice of charge charging" },
17653   { 0x80 ,"allAdditionalInfoTransferSS - all additional information transfer SS" },
17654   { 0x81 ,"uus1 - UUS1 user-to-user signalling" },
17655   { 0x82 ,"uus2 - UUS2 user-to-user signalling" },
17656   { 0x83 ,"uus3 - UUS3 user-to-user signalling" },
17657   { 0x90 ,"allCallRestrictionSS - all Callrestriction SS" },
17658   { 0x91 ,"barringOfOutgoingCalls" },
17659   { 0x92 ,"baoc - barring of all outgoing calls" },
17660   { 0x93 ,"boic - barring of outgoing international calls" },
17661   { 0x94 ,"boicExHC - barring of outgoing international calls except those directed to the home PLMN" },
17662   { 0x99 ,"barringOfIncomingCalls" },
17663   { 0x9a ,"baic - barring of all incoming calls" },
17664   { 0x9b ,"bicRoam - barring of incoming calls when roaming outside home PLMN Country" },
17665   { 0xf0 ,"allPLMN-specificSS" },
17666   { 0xa0 ,"allCallPrioritySS - all call priority SS" },
17667   { 0xa1 ,"emlpp - enhanced Multilevel Precedence Pre-emption (EMLPP) service" },
17668   { 0xb0 ,"allLCSPrivacyException - all LCS Privacy Exception Classes" },
17669   { 0xb1 ,"universal - allow location by any LCS client" },
17670   { 0xb2 ,"callrelated - allow location by any value added LCS client to which a call is established from the target MS" },
17671   { 0xb3 ,"callunrelated - allow location by designated external value added LCS clients" },
17672   { 0xb4 ,"plmnoperator - allow location by designated PLMN operator LCS clients" },
17673   { 0xb5 ,"serviceType - allow location by LCS clients of a designated LCS service type" },
17674   { 0xc0 ,"allMOLR-SS - all Mobile Originating Location Request Classes" },
17675   { 0xc1 ,"basicSelfLocation - allow an MS to request its own location" },
17676   { 0xc2 ,"autonomousSelfLocation - allow an MS to perform self location without interaction with the PLMN for a predetermined period of time" },
17677   { 0xc3 ,"transferToThirdParty - allow an MS to request transfer of its location to another LCS client" },
17678
17679   { 0xf1 ,"plmn-specificSS-1" },
17680   { 0xf2 ,"plmn-specificSS-2" },
17681   { 0xf3 ,"plmn-specificSS-3" },
17682   { 0xf4 ,"plmn-specificSS-4" },
17683   { 0xf5 ,"plmn-specificSS-5" },
17684   { 0xf6 ,"plmn-specificSS-6" },
17685   { 0xf7 ,"plmn-specificSS-7" },
17686   { 0xf8 ,"plmn-specificSS-8" },
17687   { 0xf9 ,"plmn-specificSS-9" },
17688   { 0xfa ,"plmn-specificSS-a" },
17689   { 0xfb ,"plmn-specificSS-b" },
17690   { 0xfc ,"plmn-specificSS-c" },
17691   { 0xfd ,"plmn-specificSS-d" },
17692   { 0xfe ,"plmn-specificSS-e" },
17693   { 0xff ,"plmn-specificSS-f" },
17694   { 0, NULL }
17695 };
17696
17697 static const value_string Teleservice_vals[] = {
17698 {0x00, "allTeleservices" },
17699 {0x10, "allSpeechTransmissionServices" },
17700 {0x11, "telephony" },
17701 {0x12, "emergencyCalls" },
17702 {0x20, "allShortMessageServices" },
17703 {0x21, "shortMessageMT-PP" },
17704 {0x22, "shortMessageMO-PP" },
17705 {0x60, "allFacsimileTransmissionServices" },
17706 {0x61, "facsimileGroup3AndAlterSpeech" },
17707 {0x62, "automaticFacsimileGroup3" },
17708 {0x63, "facsimileGroup4" },
17709
17710 {0x70, "allDataTeleservices" },
17711 {0x80, "allTeleservices-ExeptSMS" },
17712
17713 {0x90, "allVoiceGroupCallServices" },
17714 {0x91, "voiceGroupCall" },
17715 {0x92, "voiceBroadcastCall" },
17716
17717 {0xd0, "allPLMN-specificTS" },
17718 {0xd1, "plmn-specificTS-1" },
17719 {0xd2, "plmn-specificTS-2" },
17720 {0xd3, "plmn-specificTS-3" },
17721 {0xd4, "plmn-specificTS-4" },
17722 {0xd5, "plmn-specificTS-5" },
17723 {0xd6, "plmn-specificTS-6" },
17724 {0xd7, "plmn-specificTS-7" },
17725 {0xd8, "plmn-specificTS-8" },
17726 {0xd9, "plmn-specificTS-9" },
17727 {0xda, "plmn-specificTS-A" },
17728 {0xdb, "plmn-specificTS-B" },
17729 {0xdc, "plmn-specificTS-C" },
17730 {0xdd, "plmn-specificTS-D" },
17731 {0xde, "plmn-specificTS-E" },
17732 {0xdf, "plmn-specificTS-F" },
17733   { 0, NULL }
17734 };
17735
17736 static const value_string Bearerservice_vals[] = {
17737 {0x00, "allBearerServices" },
17738 {0x10, "allDataCDA-Services" },
17739 {0x11, "dataCDA-300bps" },
17740 {0x12, "dataCDA-1200bps" },
17741 {0x13, "dataCDA-1200-75bps" },
17742 {0x14, "dataCDA-2400bps" },
17743 {0x15, "dataCDA-4800bps" },
17744 {0x16, "dataCDA-9600bps" },
17745 {0x17, "general-dataCDA" },
17746
17747 {0x18, "allDataCDS-Services" },
17748 {0x1A, "dataCDS-1200bps" },
17749 {0x1C, "dataCDS-2400bps" },
17750 {0x1D, "dataCDS-4800bps" },
17751 {0x1E, "dataCDS-9600bps" },
17752 {0x1F, "general-dataCDS" },
17753
17754 {0x20, "allPadAccessCA-Services" },
17755 {0x21, "padAccessCA-300bps" },
17756 {0x22, "padAccessCA-1200bps" },
17757 {0x23, "padAccessCA-1200-75bps" },
17758 {0x24, "padAccessCA-2400bps" },
17759 {0x25, "padAccessCA-4800bps" },
17760 {0x26, "padAccessCA-9600bps" },
17761 {0x27, "general-padAccessCA" },
17762
17763 {0x28, "allDataPDS-Services" },
17764 {0x2C, "dataPDS-2400bps" },
17765 {0x2D, "dataPDS-4800bps" },
17766 {0x2E, "dataPDS-9600bps" },
17767 {0x2F, "general-dataPDS" },
17768
17769 {0x30, "allAlternateSpeech-DataCDA" },
17770 {0x38, "allAlternateSpeech-DataCDS" },
17771 {0x40, "allSpeechFollowedByDataCDA" },
17772 {0x48, "allSpeechFollowedByDataCDS" },
17773
17774 {0x50, "allDataCircuitAsynchronous" },
17775 {0x60, "allAsynchronousServices" },
17776 {0x58, "allDataCircuitSynchronous" },
17777 {0x68, "allSynchronousServices" },
17778
17779 {0xD0, "allPLMN-specificBS" },
17780 {0xD1, "plmn-specificBS-1" },
17781 {0xD2, "plmn-specificBS-2" },
17782 {0xD3, "plmn-specificBS-3" },
17783 {0xD4, "plmn-specificBS-4" },
17784 {0xD5, "plmn-specificBS-5" },
17785 {0xD6, "plmn-specificBS-6" },
17786 {0xD7, "plmn-specificBS-7" },
17787 {0xD8, "plmn-specificBS-8" },
17788 {0xD9, "plmn-specificBS-9" },
17789 {0xDA, "plmn-specificBS-A" },
17790 {0xDB, "plmn-specificBS-B" },
17791 {0xDC, "plmn-specificBS-C" },
17792 {0xDD, "plmn-specificBS-D" },
17793 {0xDE, "plmn-specificBS-E" },
17794 {0xDF, "plmn-specificBS-F" },
17795
17796 { 0, NULL }
17797 };
17798
17799 /* ForwardingOptions 
17800
17801 -- bit 8: notification to forwarding party
17802 -- 0 no notification
17803 -- 1 notification
17804 */
17805 static const true_false_string notification_value  = {
17806   "Notification",
17807   "No notification"
17808 };
17809 /*
17810 -- bit 7: redirecting presentation
17811 -- 0 no presentation
17812 -- 1 presentation
17813 */
17814 static const true_false_string redirecting_presentation_value  = {
17815   "Presentation",
17816   "No presentationn"
17817 };
17818 /*
17819 -- bit 6: notification to calling party
17820 -- 0 no notification
17821 -- 1 notification
17822 */
17823 /*
17824 -- bit 5: 0 (unused)
17825 -- bits 43: forwarding reason
17826 -- 00 ms not reachable
17827 -- 01 ms busy
17828 -- 10 no reply
17829 -- 11 unconditional when used in a SRI Result,
17830 -- or call deflection when used in a RCH Argument
17831 */
17832 static const value_string forwarding_reason_values[] = {
17833 {0x0, "ms not reachable" },
17834 {0x1, "ms busy" },
17835 {0x2, "no reply" },
17836 {0x3, "unconditional when used in a SRI Result or call deflection when used in a RCH Argument" },
17837 { 0, NULL }
17838 };
17839 /*
17840 -- bits 21: 00 (unused)
17841 */
17842
17843 static const value_string pdp_type_org_values[] = {
17844 {0x0, "ETSI" },
17845 {0x1, "IETF" },
17846 {0xf, "Empty PDP type" },
17847 { 0, NULL }
17848 };
17849
17850 static const value_string etsi_pdp_type_number_values[] = {
17851 {0x0, "Reserved, used in earlier version of this protocol" },
17852 {0x1, "PPP" },
17853 { 0, NULL }
17854 };
17855
17856 static const value_string ietf_pdp_type_number_values[] = {
17857 {0x21, "IPv4 Address" },
17858 {0x57, "IPv6 Address" },
17859 { 0, NULL }
17860 };
17861
17862 /*
17863 ChargingCharacteristics ::= OCTET STRING (SIZE (2))
17864 -- Octets are coded according to 3GPP TS 32.015.
17865 -- From 3GPP TS 32.015.
17866 --
17867 -- Descriptions for the bits of the flag set:
17868 --
17869 -- Bit 1: H (Hot billing) := '00000001'B
17870 -- Bit 2: F (Flat rate) := '00000010'B
17871 -- Bit 3: P (Prepaid service) := '00000100'B
17872 -- Bit 4: N (Normal billing) := '00001000'B
17873 -- Bit 5: - (Reserved, set to 0) := '00010000'B
17874 -- Bit 6: - (Reserved, set to 0) := '00100000'B
17875 -- Bit 7: - (Reserved, set to 0) := '01000000'B
17876 -- Bit 8: - (Reserved, set to 0) := '10000000'B
17877 */
17878 static const value_string chargingcharacteristics_values[] = {
17879 {0x1, "H (Hot billing)" },
17880 {0x2, "F (Flat rate)" },
17881 {0x4, "P (Prepaid service)" },
17882 {0x8, "N (Normal billing)" },
17883 { 0, NULL }
17884 };
17885
17886 /*--- proto_reg_handoff_gsm_map ---------------------------------------*/
17887 static void range_delete_callback(guint32 ssn)
17888 {
17889     if (ssn) {
17890         delete_itu_tcap_subdissector(ssn, map_handle);
17891     }
17892 }
17893
17894 static void range_add_callback(guint32 ssn)
17895 {
17896     if (ssn) {
17897         add_itu_tcap_subdissector(ssn, map_handle);
17898     }
17899 }
17900
17901 void proto_reg_handoff_gsm_map(void) {
17902
17903     static gboolean map_prefs_initialized = FALSE;
17904     static range_t *ssn_range;
17905
17906     if (!map_prefs_initialized) {
17907         map_prefs_initialized = TRUE;
17908         data_handle = find_dissector("data");
17909         ranap_handle = find_dissector("ranap");
17910         dtap_handle = find_dissector("gsm_a_dtap");
17911
17912         map_handle = find_dissector("gsm_map");
17913         register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map,"networkLocUpContext-v3");  
17914         register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"networkLocUpContext-v2" );
17915         register_ber_oid_dissector_handle("0.4.0.0.1.0.1.1", map_handle, proto_gsm_map,"networkLocUpContext-v1" );
17916         register_ber_oid_dissector_handle("0.4.0.0.1.0.2.3", map_handle, proto_gsm_map,"locationCancellationContext-v3" );
17917         register_ber_oid_dissector_handle("0.4.0.0.1.0.2.2", map_handle, proto_gsm_map,"locationCancellationContext-v2" );
17918         register_ber_oid_dissector_handle("0.4.0.0.1.0.2.1", map_handle, proto_gsm_map,"locationCancellationContext-v1" );
17919         register_ber_oid_dissector_handle("0.4.0.0.1.0.3.3", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v3" );
17920         register_ber_oid_dissector_handle("0.4.0.0.1.0.3.2", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v2" );
17921         register_ber_oid_dissector_handle("0.4.0.0.1.0.3.1", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v1" );
17922         register_ber_oid_dissector_handle("0.4.0.0.1.0.4.3", map_handle, proto_gsm_map,"istAlertingContext-v3" );
17923         register_ber_oid_dissector_handle("0.4.0.0.1.0.5.3", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v3" );
17924         register_ber_oid_dissector_handle("0.4.0.0.1.0.5.2", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v2" );
17925         register_ber_oid_dissector_handle("0.4.0.0.1.0.5.1", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v1" );
17926         register_ber_oid_dissector_handle("0.4.0.0.1.0.6.4", map_handle, proto_gsm_map,"callControlTransferContext-v4" );
17927         register_ber_oid_dissector_handle("0.4.0.0.1.0.6.3", map_handle, proto_gsm_map,"callControlTransferContext-v3" );
17928         register_ber_oid_dissector_handle("0.4.0.0.1.0.7.3", map_handle, proto_gsm_map,"reportingContext-v3" );
17929         register_ber_oid_dissector_handle("0.4.0.0.1.0.8.3", map_handle, proto_gsm_map,"callCompletionContext-v3" );
17930         register_ber_oid_dissector_handle("0.4.0.0.1.0.9.3", map_handle, proto_gsm_map,"serviceTerminationContext-v3" );
17931         register_ber_oid_dissector_handle("0.4.0.0.1.0.10.2", map_handle, proto_gsm_map,"resetContext-v2" );
17932         register_ber_oid_dissector_handle("0.4.0.0.1.0.10.1", map_handle, proto_gsm_map,"resetContext-v1" );
17933         register_ber_oid_dissector_handle("0.4.0.0.1.0.11.3", map_handle, proto_gsm_map,"handoverControlContext-v3" );
17934         register_ber_oid_dissector_handle("0.4.0.0.1.0.11.2", map_handle, proto_gsm_map,"handoverControlContext-v2" );
17935         register_ber_oid_dissector_handle("0.4.0.0.1.0.11.1", map_handle, proto_gsm_map,"handoverControlContext-v1" );
17936         register_ber_oid_dissector_handle("0.4.0.0.1.0.12.3", map_handle, proto_gsm_map,"sIWFSAllocationContext-v3" );
17937         register_ber_oid_dissector_handle("0.4.0.0.1.0.13.3", map_handle, proto_gsm_map,"equipmentMngtContext-v3" );
17938         register_ber_oid_dissector_handle("0.4.0.0.1.0.13.2", map_handle, proto_gsm_map,"equipmentMngtContext-v2" );
17939         register_ber_oid_dissector_handle("0.4.0.0.1.0.13.1", map_handle, proto_gsm_map,"equipmentMngtContext-v1" );
17940         register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"infoRetrievalContext-v3" );
17941         register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"infoRetrievalContext-v2" );
17942         register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"infoRetrievalContext-v1" );
17943         /* fallback to infoRetrieval(14) version1(1) and not interVlrInfoRetrieval(15) version1(1) */
17944         /*register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"map-ac interVlrInfoRetrieval(15) version1(1)" );*/
17945         register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v2" );
17946         register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v3" );
17947         register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"subscriberDataMngtContext-v3" );
17948         register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"subscriberDataMngtContext-v2" );
17949         register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"subscriberDataMngtContext-v1" );
17950         register_ber_oid_dissector_handle("0.4.0.0.1.0.17.3", map_handle, proto_gsm_map,"tracingContext-v3" );
17951         register_ber_oid_dissector_handle("0.4.0.0.1.0.17.2", map_handle, proto_gsm_map,"tracingContext-v2" );
17952         register_ber_oid_dissector_handle("0.4.0.0.1.0.17.1", map_handle, proto_gsm_map,"tracingContext-v1" );
17953         register_ber_oid_dissector_handle("0.4.0.0.1.0.18.2", map_handle, proto_gsm_map,"networkFunctionalSsContext-v2" );
17954         register_ber_oid_dissector_handle("0.4.0.0.1.0.18.1", map_handle, proto_gsm_map,"networkFunctionalSsContext-v1" );
17955         register_ber_oid_dissector_handle("0.4.0.0.1.0.19.2", map_handle, proto_gsm_map,"networkUnstructuredSsContext-v2" );
17956         register_ber_oid_dissector_handle("0.4.0.0.1.0.20.3", map_handle, proto_gsm_map,"shortMsgGatewayContext-v3" );
17957         register_ber_oid_dissector_handle("0.4.0.0.1.0.20.2", map_handle, proto_gsm_map,"shortMsgGatewayContext-v2" );
17958         register_ber_oid_dissector_handle("0.4.0.0.1.0.20.1", map_handle, proto_gsm_map,"shortMsgGatewayContext-v1" );
17959         register_ber_oid_dissector_handle("0.4.0.0.1.0.21.3", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v3" );
17960         register_ber_oid_dissector_handle("0.4.0.0.1.0.21.2", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v2" );
17961         register_ber_oid_dissector_handle("0.4.0.0.1.0.21.1", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v1" );
17962         register_ber_oid_dissector_handle("0.4.0.0.1.0.22.3", map_handle, proto_gsm_map,"subscriberDataModificationNotificationContext-v3" );
17963         register_ber_oid_dissector_handle("0.4.0.0.1.0.23.2", map_handle, proto_gsm_map,"shortMsgAlertContext-v2" );
17964         register_ber_oid_dissector_handle("0.4.0.0.1.0.23.1", map_handle, proto_gsm_map,"shortMsgAlertContext-v1" );
17965         register_ber_oid_dissector_handle("0.4.0.0.1.0.24.3", map_handle, proto_gsm_map,"mwdMngtContext-v3" );
17966         register_ber_oid_dissector_handle("0.4.0.0.1.0.24.2", map_handle, proto_gsm_map,"mwdMngtContext-v2" );
17967         register_ber_oid_dissector_handle("0.4.0.0.1.0.24.1", map_handle, proto_gsm_map,"mwdMngtContext-v1" );
17968         register_ber_oid_dissector_handle("0.4.0.0.1.0.25.3", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v3" );
17969         register_ber_oid_dissector_handle("0.4.0.0.1.0.25.2", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v2" );
17970         register_ber_oid_dissector_handle("0.4.0.0.1.0.26.2", map_handle, proto_gsm_map,"imsiRetrievalContext-v2" );
17971         register_ber_oid_dissector_handle("0.4.0.0.1.0.27.2", map_handle, proto_gsm_map,"msPurgingContext-v2" );
17972         register_ber_oid_dissector_handle("0.4.0.0.1.0.27.3", map_handle, proto_gsm_map,"msPurgingContext-v3" );
17973         register_ber_oid_dissector_handle("0.4.0.0.1.0.28.3", map_handle, proto_gsm_map,"subscriberInfoEnquiryContext-v3" );
17974         register_ber_oid_dissector_handle("0.4.0.0.1.0.29.3", map_handle, proto_gsm_map,"anyTimeInfoEnquiryContext-v3" );
17975         register_ber_oid_dissector_handle("0.4.0.0.1.0.31.3", map_handle, proto_gsm_map,"groupCallControlContext-v3" );
17976         register_ber_oid_dissector_handle("0.4.0.0.1.0.32.3", map_handle, proto_gsm_map,"gprsLocationUpdateContext-v3" );
17977         register_ber_oid_dissector_handle("0.4.0.0.1.0.33.4", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v4" );
17978         register_ber_oid_dissector_handle("0.4.0.0.1.0.33.3", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v3" );
17979         register_ber_oid_dissector_handle("0.4.0.0.1.0.34.3", map_handle, proto_gsm_map,"failureReportContext-v3" );
17980         register_ber_oid_dissector_handle("0.4.0.0.1.0.35.3", map_handle, proto_gsm_map,"gprsNotifyContext-v3" );
17981         register_ber_oid_dissector_handle("0.4.0.0.1.0.36.3", map_handle, proto_gsm_map,"ss-InvocationNotificationContext-v3" );
17982         register_ber_oid_dissector_handle("0.4.0.0.1.0.37.3", map_handle, proto_gsm_map,"locationSvcGatewayContext-v3" );
17983         register_ber_oid_dissector_handle("0.4.0.0.1.0.38.3", map_handle, proto_gsm_map,"locationSvcEnquiryContext-v3" );
17984         register_ber_oid_dissector_handle("0.4.0.0.1.0.39.3", map_handle, proto_gsm_map,"authenticationFailureReportContext-v3" );
17985         register_ber_oid_dissector_handle("0.4.0.0.1.0.40.3", map_handle, proto_gsm_map,"secureTransportHandlingContext-v3" );
17986         register_ber_oid_dissector_handle("0.4.0.0.1.0.41.3", map_handle, proto_gsm_map,"shortMsgMT-Relay-VGCS-Context-v3" );
17987         register_ber_oid_dissector_handle("0.4.0.0.1.0.42.3", map_handle, proto_gsm_map,"mm-EventReportingContext-v3" );
17988         register_ber_oid_dissector_handle("0.4.0.0.1.0.43.3", map_handle, proto_gsm_map,"anyTimeInfoHandlingContext-v3" );
17989         register_ber_oid_dissector_handle("0.4.0.0.1.0.44.3", map_handle, proto_gsm_map,"resourceManagementContext-v3" );
17990         register_ber_oid_dissector_handle("0.4.0.0.1.0.45.3", map_handle, proto_gsm_map,"groupCallInfoRetrievalContext-v3" );
17991         /* Private extension container */
17992         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" );
17993     }
17994     else {
17995         range_foreach(ssn_range, range_delete_callback);
17996         g_free(ssn_range);
17997     }
17998
17999     ssn_range = range_copy(global_ssn_range);
18000     range_foreach(ssn_range, range_add_callback);
18001
18002 }
18003
18004 /*--- proto_register_gsm_map -------------------------------------------*/
18005 void proto_register_gsm_map(void) {
18006         module_t *gsm_map_module;
18007
18008   /* List of fields */
18009   static hf_register_info hf[] = {
18010       { &hf_gsm_map_old_Component_PDU,
18011         { "Component", "gsm_map.old.Component",
18012           FT_UINT32, BASE_DEC, VALS(gsm_old_Component_vals), 0,
18013           NULL, HFILL }},
18014       { &hf_gsm_map_getPassword,
18015         { "getPassword", "gsm_map.getPassword",
18016           FT_UINT8, BASE_DEC, VALS(gsm_old_GetPasswordArg_vals), 0,
18017           NULL, HFILL }},
18018       { &hf_gsm_map_currentPassword,
18019         { "currentPassword", "gsm_map.currentPassword",
18020           FT_STRING, BASE_NONE, NULL, 0,
18021           NULL, HFILL }},
18022       { &hf_gsm_map_extension,
18023         { "Extension", "gsm_map.extension",
18024           FT_BOOLEAN, 8, TFS(&gsm_map_extension_value), 0x80,
18025           NULL, HFILL }},
18026       { &hf_gsm_map_nature_of_number,
18027         { "Nature of number", "gsm_map.nature_of_number",
18028           FT_UINT8, BASE_HEX, VALS(gsm_map_nature_of_number_values), 0x70,
18029           NULL, HFILL }},
18030       { &hf_gsm_map_number_plan,
18031         { "Number plan", "gsm_map.number_plan",
18032           FT_UINT8, BASE_HEX, VALS(gsm_map_number_plan_values), 0x0f,
18033           NULL, HFILL }},
18034       { &hf_gsm_map_isdn_address_digits,
18035         { "ISDN Address digits", "gsm_map.isdn.address.digits",
18036           FT_STRING, BASE_NONE, NULL, 0,
18037           NULL, HFILL }},
18038       { &hf_gsm_map_address_digits,
18039         { "Address digits", "gsm_map.address.digits",
18040           FT_STRING, BASE_NONE, NULL, 0,
18041           NULL, HFILL }},
18042       { &hf_gsm_map_servicecentreaddress_digits,
18043         { "ServiceCentreAddress digits", "gsm_map.servicecentreaddress_digits",
18044           FT_STRING, BASE_NONE, NULL, 0,
18045           NULL, HFILL }},
18046       { &hf_gsm_map_imsi_digits,
18047         { "IMSI digits", "gsm_map.imsi_digits",
18048           FT_STRING, BASE_NONE, NULL, 0,
18049           NULL, HFILL }},
18050       { &hf_gsm_map_TBCD_digits,
18051         { "TBCD digits", "gsm_map.imsi_digits",
18052           FT_STRING, BASE_NONE, NULL, 0,
18053           NULL, HFILL }},
18054       { &hf_gsm_map_Ss_Status_unused,
18055         { "Unused", "gsm_map.unused",
18056           FT_UINT8, BASE_HEX, NULL, 0xf0,
18057           NULL, HFILL }},
18058       { &hf_gsm_map_Ss_Status_q_bit,
18059         { "Q bit", "gsm_map.ss_status_q_bit",
18060           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_q_bit_values), 0x08,
18061           NULL, HFILL }},
18062       { &hf_gsm_map_Ss_Status_p_bit,
18063         { "P bit", "gsm_map.ss_status_p_bit",
18064           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_p_values), 0x04,
18065           NULL, HFILL }},
18066       { &hf_gsm_map_Ss_Status_r_bit,
18067         { "R bit", "gsm_map.ss_status_r_bit",
18068           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_r_values), 0x02,
18069           NULL, HFILL }},
18070       { &hf_gsm_map_Ss_Status_a_bit,
18071         { "A bit", "gsm_map.ss_status_a_bit",
18072           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_a_values), 0x01,
18073           NULL, HFILL }},
18074       { &hf_gsm_map_notification_to_forwarding_party,
18075         { "Notification to forwarding party", "gsm_map.notification_to_forwarding_party",
18076           FT_BOOLEAN, 8, TFS(&notification_value), 0x80,
18077           NULL, HFILL }},
18078       { &hf_gsm_map_redirecting_presentation,
18079         { "Redirecting presentation", "gsm_map.redirecting_presentation",
18080           FT_BOOLEAN, 8, TFS(&redirecting_presentation_value), 0x40,
18081           NULL, HFILL }},
18082       { &hf_gsm_map_notification_to_calling_party,
18083         { "Notification to calling party", "gsm_map.notification_to_clling_party",
18084           FT_BOOLEAN, 8, TFS(&notification_value), 0x20,
18085           NULL, HFILL }},
18086       { &hf_gsm_map_forwarding_reason,
18087         { "Forwarding reason", "gsm_map.forwarding_reason",
18088           FT_UINT8, BASE_HEX, VALS(forwarding_reason_values), 0x0c,
18089           NULL, HFILL }},
18090       { &hf_gsm_map_pdp_type_org,
18091         { "PDP Type Organization", "gsm_map.pdp_type_org",
18092           FT_UINT8, BASE_HEX, VALS(pdp_type_org_values), 0x0f,
18093           NULL, HFILL }},
18094       { &hf_gsm_map_etsi_pdp_type_number,
18095         { "PDP Type Number", "gsm_map.pdp_type_org",
18096           FT_UINT8, BASE_HEX, VALS(etsi_pdp_type_number_values), 0,
18097           "ETSI PDP Type Number", HFILL }},
18098       { &hf_gsm_map_ietf_pdp_type_number,
18099         { "PDP Type Number", "gsm_map.ietf_pdp_type_number",
18100           FT_UINT8, BASE_HEX, VALS(ietf_pdp_type_number_values), 0,
18101           "IETF PDP Type Number", HFILL }},
18102       { &hf_gsm_map_ext_qos_subscribed_pri,
18103         { "Allocation/Retention priority", "gsm_map.ext_qos_subscribed_pri",
18104           FT_UINT8, BASE_DEC, NULL, 0xff,
18105           NULL, HFILL }},
18106       { &hf_gsm_map_qos_traffic_cls,
18107         { "Traffic class", "gsm_map.qos.traffic_cls",
18108           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0xe0,
18109           NULL, HFILL }},
18110       { &hf_gsm_map_qos_del_order,
18111         { "Delivery order", "gsm_map.qos.del_order",
18112           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0x18,
18113           NULL, HFILL }},
18114       { &hf_gsm_map_qos_del_of_err_sdu,
18115         { "Delivery of erroneous SDUs", "gsm_map.qos.del_of_err_sdu",
18116           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_del_of_err_sdu_vals), 0x03,
18117           NULL, HFILL }},
18118       { &hf_gsm_map_qos_ber,
18119         { "Residual Bit Error Rate (BER)", "gsm_map.qos.ber",
18120           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_ber_vals), 0xf0,
18121           NULL, HFILL }},
18122       { &hf_gsm_map_qos_sdu_err_rat,
18123         { "SDU error ratio", "gsm_map.qos.sdu_err_rat",
18124           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_sdu_err_rat_vals), 0x0f,
18125           NULL, HFILL }},
18126       { &hf_gsm_map_qos_traff_hdl_pri,
18127         { "Traffic handling priority", "gsm_map.qos.traff_hdl_pri",
18128           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traff_hdl_pri_vals), 0x03,
18129           NULL, HFILL }},
18130       
18131       { &hf_gsm_map_qos_max_sdu,
18132         { "Maximum SDU size", "gsm_map.qos.max_sdu",
18133           FT_UINT32, BASE_DEC, NULL, 0x0,
18134           NULL, HFILL }},
18135       { &hf_gsm_map_max_brate_ulink,
18136         { "Maximum bit rate for uplink in kbit/s", "gsm_map.qos.max_brate_ulink",
18137           FT_UINT32, BASE_DEC, NULL, 0x0,
18138           "Maximum bit rate for uplink", HFILL }},
18139       { &hf_gsm_map_max_brate_dlink,
18140         { "Maximum bit rate for downlink in kbit/s", "gsm_map.qos.max_brate_dlink",
18141           FT_UINT32, BASE_DEC, NULL, 0x0,
18142           "Maximum bit rate for downlink", HFILL }},
18143       { &hf_gsm_map_qos_transfer_delay,
18144         { "Transfer delay (Raw data see TS 24.008 for interpretation)", "gsm_map.qos.transfer_delay",
18145           FT_UINT8, BASE_DEC, NULL, 0xfc,
18146           "Transfer delay", HFILL }},
18147       { &hf_gsm_map_guaranteed_max_brate_ulink,
18148         { "Guaranteed bit rate for uplink in kbit/s", "gsm_map.qos.brate_ulink",
18149           FT_UINT32, BASE_DEC, NULL, 0x0,
18150           "Guaranteed bit rate for uplink", HFILL }},
18151       { &hf_gsm_map_guaranteed_max_brate_dlink,
18152         { "Guaranteed bit rate for downlink in kbit/s", "gsm_map.qos.brate_dlink",
18153           FT_UINT32, BASE_DEC, NULL, 0x0,
18154           "Guaranteed bit rate for downlink", HFILL }},
18155       { &hf_gsm_map_GSNAddress_IPv4,
18156         { "GSN-Address IPv4",  "gsm_map.gsnaddress_ipv4",
18157           FT_IPv4, BASE_NONE, NULL, 0,
18158           "IPAddress IPv4", HFILL }},
18159       { &hf_gsm_map_GSNAddress_IPv6,
18160         { "GSN Address IPv6",  "gsm_map.gsnaddress_ipv6",
18161           FT_IPv4, BASE_NONE, NULL, 0,
18162           "IPAddress IPv6", HFILL }},
18163       { &hf_gsm_map_ranap_service_Handover,
18164         { "service-Handover", "gsm_map.ranap.service_Handover",
18165           FT_UINT32, BASE_DEC, VALS(ranap_Service_Handover_vals), 0,
18166           "gsm_map.ranap.Service_Handover", HFILL }},
18167       { &hf_gsm_map_IntegrityProtectionInformation,
18168         { "IntegrityProtectionInformation", "gsm_map.ranap.IntegrityProtectionInformation",
18169           FT_NONE, BASE_NONE, NULL, 0,
18170           "gsm_map.ranap.IntegrityProtectionInformation", HFILL }},
18171       { &hf_gsm_map_EncryptionInformation,
18172         { "EncryptionInformation", "gsm_map.ranap.EncryptionInformation",
18173           FT_NONE, BASE_NONE, NULL, 0,
18174           "gsm_map.ranap.EncryptionInformation", HFILL }},
18175       { &hf_gsm_map_PlmnContainer_PDU,
18176         { "PlmnContainer", "gsm_map.PlmnContainer",
18177           FT_NONE, BASE_NONE, NULL, 0,
18178           "gsm_map.PlmnContainer", HFILL }},
18179       { &hf_gsm_map_ss_SS_UserData,
18180         { "SS-UserData", "gsm_ss.SS_UserData",
18181           FT_STRING, BASE_NONE, NULL, 0,
18182           "gsm_map.ss.SS_UserData", HFILL }},
18183       { &hf_gsm_map_cbs_coding_grp,
18184         { "Coding Group","gsm_map.cbs.coding_grp",
18185           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_data_coding_scheme_coding_grp_vals), 0xf0,          
18186           NULL, HFILL }
18187       },
18188       { &hf_gsm_map_cbs_coding_grp0_lang,
18189         { "Language","gsm_map.cbs.coding_grp0_lang",
18190           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp0_lang_vals), 0x0f,          
18191           NULL, HFILL }
18192       },
18193       { &hf_gsm_map_cbs_coding_grp1_lang,
18194         { "Language","gsm_map.cbs.coding_grp1_lang",
18195           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp1_lang_vals), 0x0f,          
18196           NULL, HFILL }
18197       },
18198       { &hf_gsm_map_cbs_coding_grp2_lang,
18199         { "Language","gsm_map.cbs.coding_grp2_lang",
18200           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp2_lang_vals), 0x0f,          
18201           NULL, HFILL }
18202       },
18203       { &hf_gsm_map_cbs_coding_grp3_lang,
18204         { "Language","gsm_map.cbs.coding_grp3_lang",
18205           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp3_lang_vals), 0x0f,          
18206           NULL, HFILL }
18207       },
18208       { &hf_gsm_map_cbs_coding_grp4_7_comp,
18209         { "Compressed indicator","gsm_map.cbs.coding_grp4_7_comp",
18210           FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_comp_vals), 0x20,          
18211           NULL, HFILL }
18212       },
18213       { &hf_gsm_map_cbs_coding_grp4_7_class_ind,
18214         { "Message Class present","gsm_map.cbs.coding_grp4_7_class_ind",
18215           FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_class_ind_vals), 0x10,          
18216           NULL, HFILL }
18217       },
18218       { &hf_gsm_map_cbs_coding_grp4_7_char_set,
18219         { "Character set being used","gsm_map.cbs.coding_grp4_7_char_set",
18220           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_char_set_vals), 0x0c,          
18221           NULL, HFILL }
18222       },
18223       { &hf_gsm_map_cbs_coding_grp4_7_class,
18224         { "Message Class","gsm_map.cbs.coding_grp4_7_class",
18225           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_class_vals), 0x03,          
18226           NULL, HFILL }
18227       },
18228       { &hf_gsm_map_cbs_coding_grp15_mess_code,
18229         { "Message coding","gsm_map.cbs.cbs_coding_grp15_mess_code",
18230           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_mess_code_vals), 0x04,          
18231           NULL, HFILL }
18232       },
18233       { &hf_gsm_map_cbs_coding_grp15_class,
18234         { "Message Class","gsm_map.cbs.gsm_map_cbs_coding_grp15_class",
18235           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_class_vals), 0x03,          
18236           NULL, HFILL }
18237       },
18238       { &hf_gsm_map_tmsi,
18239         { "tmsi", "gsm_map.tmsi",
18240           FT_BYTES, BASE_NONE, NULL, 0,
18241           "gsm_map.TMSI", HFILL }},
18242       
18243       { &hf_gsm_map_ie_tag,
18244         { "Tag", "gsm_map.ie_tag",
18245           FT_UINT8, BASE_DEC, VALS(gsm_map_tag_vals), 0,
18246           "GSM 04.08 tag", HFILL }},
18247       { &hf_gsm_map_len,
18248         { "Length", "gsm_map.length",
18249           FT_UINT8, BASE_DEC, NULL, 0,
18250           NULL, HFILL }},
18251       { &hf_gsm_map_disc_par,
18252         { "Discrimination parameter", "gsm_map.disc_par",
18253           FT_UINT8, BASE_DEC, VALS(gsm_map_disc_par_vals), 0,
18254           NULL, HFILL }},
18255       { &hf_gsm_map_dlci,
18256         { "DLCI", "gsm_map.disc_par",
18257           FT_UINT8, BASE_DEC, NULL, 0,
18258           "Data Link Connection Indicator", HFILL }},
18259
18260
18261 /*--- Included file: packet-gsm_map-hfarr.c ---*/
18262 #line 1 "packet-gsm_map-hfarr.c"
18263
18264 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
18265
18266     { &hf_gsm_map_privateExtensionList,
18267       { "privateExtensionList", "gsm_map.privateExtensionList",
18268         FT_UINT32, BASE_DEC, NULL, 0,
18269         "gsm_map.PrivateExtensionList", HFILL }},
18270     { &hf_gsm_map_pcs_Extensions,
18271       { "pcs-Extensions", "gsm_map.pcs_Extensions",
18272         FT_NONE, BASE_NONE, NULL, 0,
18273         "gsm_map.PCS_Extensions", HFILL }},
18274     { &hf_gsm_map_slr_Arg_PCS_Extensions,
18275       { "slr-Arg-PCS-Extensions", "gsm_map.slr_Arg_PCS_Extensions",
18276         FT_NONE, BASE_NONE, NULL, 0,
18277         "gsm_map.SLR_Arg_PCS_Extensions", HFILL }},
18278     { &hf_gsm_map_PrivateExtensionList_item,
18279       { "PrivateExtension", "gsm_map.PrivateExtension",
18280         FT_NONE, BASE_NONE, NULL, 0,
18281         "gsm_map.PrivateExtension", HFILL }},
18282     { &hf_gsm_map_extId,
18283       { "extId", "gsm_map.extId",
18284         FT_OID, BASE_NONE, NULL, 0,
18285         "gsm_map.T_extId", HFILL }},
18286     { &hf_gsm_map_extType,
18287       { "extType", "gsm_map.extType",
18288         FT_NONE, BASE_NONE, NULL, 0,
18289         "gsm_map.T_extType", HFILL }},
18290     { &hf_gsm_map_na_ESRK_Request,
18291       { "na-ESRK-Request", "gsm_map.na_ESRK_Request",
18292         FT_NONE, BASE_NONE, NULL, 0,
18293         "gsm_map.NULL", HFILL }},
18294
18295 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
18296
18297     { &hf_gsm_map_protocolId,
18298       { "protocolId", "gsm_map.protocolId",
18299         FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
18300         "gsm_map.ProtocolId", HFILL }},
18301     { &hf_gsm_map_signalInfo,
18302       { "signalInfo", "gsm_map.signalInfo",
18303         FT_BYTES, BASE_NONE, NULL, 0,
18304         "gsm_map.SignalInfo", HFILL }},
18305     { &hf_gsm_map_extensionContainer,
18306       { "extensionContainer", "gsm_map.extensionContainer",
18307         FT_NONE, BASE_NONE, NULL, 0,
18308         "gsm_map.ExtensionContainer", HFILL }},
18309     { &hf_gsm_map_ext_ProtocolId,
18310       { "ext-ProtocolId", "gsm_map.ext_ProtocolId",
18311         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_ProtocolId_vals), 0,
18312         "gsm_map.Ext_ProtocolId", HFILL }},
18313     { &hf_gsm_map_accessNetworkProtocolId,
18314       { "accessNetworkProtocolId", "gsm_map.accessNetworkProtocolId",
18315         FT_UINT32, BASE_DEC, VALS(gsm_map_AccessNetworkProtocolId_vals), 0,
18316         "gsm_map.AccessNetworkProtocolId", HFILL }},
18317     { &hf_gsm_map_signalInfo_01,
18318       { "signalInfo", "gsm_map.signalInfo",
18319         FT_BYTES, BASE_NONE, NULL, 0,
18320         "gsm_map.LongSignalInfo", HFILL }},
18321     { &hf_gsm_map_imsi,
18322       { "imsi", "gsm_map.imsi",
18323         FT_BYTES, BASE_NONE, NULL, 0,
18324         "gsm_map.IMSI", HFILL }},
18325     { &hf_gsm_map_imsi_WithLMSI,
18326       { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI",
18327         FT_NONE, BASE_NONE, NULL, 0,
18328         "gsm_map.IMSI_WithLMSI", HFILL }},
18329     { &hf_gsm_map_lmsi,
18330       { "lmsi", "gsm_map.lmsi",
18331         FT_BYTES, BASE_NONE, NULL, 0,
18332         "gsm_map.LMSI", HFILL }},
18333     { &hf_gsm_map_HLR_List_item,
18334       { "HLR-Id", "gsm_map.HLR_Id",
18335         FT_BYTES, BASE_NONE, NULL, 0,
18336         "gsm_map.HLR_Id", HFILL }},
18337     { &hf_gsm_map_naea_PreferredCIC,
18338       { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC",
18339         FT_BYTES, BASE_NONE, NULL, 0,
18340         "gsm_map.NAEA_CIC", HFILL }},
18341     { &hf_gsm_map_msisdn,
18342       { "msisdn", "gsm_map.msisdn",
18343         FT_BYTES, BASE_NONE, NULL, 0,
18344         "gsm_map.ISDN_AddressString", HFILL }},
18345     { &hf_gsm_map_externalAddress,
18346       { "externalAddress", "gsm_map.externalAddress",
18347         FT_BYTES, BASE_NONE, NULL, 0,
18348         "gsm_map.ISDN_AddressString", HFILL }},
18349     { &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength,
18350       { "cellGlobalIdOrServiceAreaIdFixedLength", "gsm_map.cellGlobalIdOrServiceAreaIdFixedLength",
18351         FT_BYTES, BASE_NONE, NULL, 0,
18352         "gsm_map.CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
18353     { &hf_gsm_map_laiFixedLength,
18354       { "laiFixedLength", "gsm_map.laiFixedLength",
18355         FT_BYTES, BASE_NONE, NULL, 0,
18356         "gsm_map.LAIFixedLength", HFILL }},
18357     { &hf_gsm_map_bearerService,
18358       { "bearerService", "gsm_map.bearerService",
18359         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
18360         "gsm_map.BearerServiceCode", HFILL }},
18361     { &hf_gsm_map_teleservice,
18362       { "teleservice", "gsm_map.teleservice",
18363         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
18364         "gsm_map.TeleserviceCode", HFILL }},
18365     { &hf_gsm_map_ext_BearerService,
18366       { "ext-BearerService", "gsm_map.ext_BearerService",
18367         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
18368         "gsm_map.Ext_BearerServiceCode", HFILL }},
18369     { &hf_gsm_map_ext_Teleservice,
18370       { "ext-Teleservice", "gsm_map.ext_Teleservice",
18371         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
18372         "gsm_map.Ext_TeleserviceCode", HFILL }},
18373     { &hf_gsm_map_maximumentitledPriority,
18374       { "maximumentitledPriority", "gsm_map.maximumentitledPriority",
18375         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
18376         "gsm_map.EMLPP_Priority", HFILL }},
18377     { &hf_gsm_map_defaultPriority,
18378       { "defaultPriority", "gsm_map.defaultPriority",
18379         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
18380         "gsm_map.EMLPP_Priority", HFILL }},
18381     { &hf_gsm_map_ss_Code,
18382       { "ss-Code", "gsm_map.ss_Code",
18383         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
18384         "gsm_map.SS_Code", HFILL }},
18385     { &hf_gsm_map_ss_Status,
18386       { "ss-Status", "gsm_map.ss_Status",
18387         FT_BYTES, BASE_NONE, NULL, 0,
18388         "gsm_map.Ext_SS_Status", HFILL }},
18389     { &hf_gsm_map_nbrSB,
18390       { "nbrSB", "gsm_map.nbrSB",
18391         FT_UINT32, BASE_DEC, NULL, 0,
18392         "gsm_map.MaxMC_Bearers", HFILL }},
18393     { &hf_gsm_map_nbrUser,
18394       { "nbrUser", "gsm_map.nbrUser",
18395         FT_UINT32, BASE_DEC, NULL, 0,
18396         "gsm_map.MC_Bearers", HFILL }},
18397
18398 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
18399
18400     { &hf_gsm_map_ss_ss_Code,
18401       { "ss-Code", "gsm_map.ss.ss_Code",
18402         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
18403         "gsm_map.SS_Code", HFILL }},
18404     { &hf_gsm_map_ss_basicService,
18405       { "basicService", "gsm_map.ss.basicService",
18406         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
18407         "gsm_map.BasicServiceCode", HFILL }},
18408     { &hf_gsm_map_ss_forwardedToNumber,
18409       { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
18410         FT_BYTES, BASE_NONE, NULL, 0,
18411         "gsm_map.AddressString", HFILL }},
18412     { &hf_gsm_map_ss_forwardedToSubaddress,
18413       { "forwardedToSubaddress", "gsm_map.ss.forwardedToSubaddress",
18414         FT_BYTES, BASE_NONE, NULL, 0,
18415         "gsm_map.ISDN_SubaddressString", HFILL }},
18416     { &hf_gsm_map_ss_noReplyConditionTime,
18417       { "noReplyConditionTime", "gsm_map.ss.noReplyConditionTime",
18418         FT_UINT32, BASE_DEC, NULL, 0,
18419         "gsm_map_ss.NoReplyConditionTime", HFILL }},
18420     { &hf_gsm_map_ss_defaultPriority,
18421       { "defaultPriority", "gsm_map.ss.defaultPriority",
18422         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
18423         "gsm_map.EMLPP_Priority", HFILL }},
18424     { &hf_gsm_map_ss_nbrUser,
18425       { "nbrUser", "gsm_map.ss.nbrUser",
18426         FT_UINT32, BASE_DEC, NULL, 0,
18427         "gsm_map.MC_Bearers", HFILL }},
18428     { &hf_gsm_map_ss_longFTN_Supported,
18429       { "longFTN-Supported", "gsm_map.ss.longFTN_Supported",
18430         FT_NONE, BASE_NONE, NULL, 0,
18431         "gsm_map_ss.NULL", HFILL }},
18432     { &hf_gsm_map_ss_forwardingInfo,
18433       { "forwardingInfo", "gsm_map.ss.forwardingInfo",
18434         FT_NONE, BASE_NONE, NULL, 0,
18435         "gsm_map_ss.ForwardingInfo", HFILL }},
18436     { &hf_gsm_map_ss_callBarringInfo,
18437       { "callBarringInfo", "gsm_map.ss.callBarringInfo",
18438         FT_NONE, BASE_NONE, NULL, 0,
18439         "gsm_map_ss.CallBarringInfo", HFILL }},
18440     { &hf_gsm_map_ss_ss_Data,
18441       { "ss-Data", "gsm_map.ss.ss_Data",
18442         FT_NONE, BASE_NONE, NULL, 0,
18443         "gsm_map_ss.SS_Data", HFILL }},
18444     { &hf_gsm_map_ss_forwardingFeatureList,
18445       { "forwardingFeatureList", "gsm_map.ss.forwardingFeatureList",
18446         FT_UINT32, BASE_DEC, NULL, 0,
18447         "gsm_map_ss.ForwardingFeatureList", HFILL }},
18448     { &hf_gsm_map_ss_ForwardingFeatureList_item,
18449       { "ForwardingFeature", "gsm_map.ss.ForwardingFeature",
18450         FT_NONE, BASE_NONE, NULL, 0,
18451         "gsm_map_ss.ForwardingFeature", HFILL }},
18452     { &hf_gsm_map_ss_ss_Status,
18453       { "ss-Status", "gsm_map.ss.ss_Status",
18454         FT_BYTES, BASE_NONE, NULL, 0,
18455         "gsm_map_ss.SS_Status", HFILL }},
18456     { &hf_gsm_map_ss_forwardedToNumber_01,
18457       { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
18458         FT_BYTES, BASE_NONE, NULL, 0,
18459         "gsm_map.ISDN_AddressString", HFILL }},
18460     { &hf_gsm_map_ss_forwardingOptions,
18461       { "forwardingOptions", "gsm_map.ss.forwardingOptions",
18462         FT_BYTES, BASE_NONE, NULL, 0,
18463         "gsm_map_ss.ForwardingOptions", HFILL }},
18464     { &hf_gsm_map_ss_longForwardedToNumber,
18465       { "longForwardedToNumber", "gsm_map.ss.longForwardedToNumber",
18466         FT_BYTES, BASE_NONE, NULL, 0,
18467         "gsm_map.FTN_AddressString", HFILL }},
18468     { &hf_gsm_map_ss_callBarringFeatureList,
18469       { "callBarringFeatureList", "gsm_map.ss.callBarringFeatureList",
18470         FT_UINT32, BASE_DEC, NULL, 0,
18471         "gsm_map_ss.CallBarringFeatureList", HFILL }},
18472     { &hf_gsm_map_ss_CallBarringFeatureList_item,
18473       { "CallBarringFeature", "gsm_map.ss.CallBarringFeature",
18474         FT_NONE, BASE_NONE, NULL, 0,
18475         "gsm_map_ss.CallBarringFeature", HFILL }},
18476     { &hf_gsm_map_ss_ss_SubscriptionOption,
18477       { "ss-SubscriptionOption", "gsm_map.ss.ss_SubscriptionOption",
18478         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
18479         "gsm_map_ss.SS_SubscriptionOption", HFILL }},
18480     { &hf_gsm_map_ss_basicServiceGroupList,
18481       { "basicServiceGroupList", "gsm_map.ss.basicServiceGroupList",
18482         FT_UINT32, BASE_DEC, NULL, 0,
18483         "gsm_map_ss.BasicServiceGroupList", HFILL }},
18484     { &hf_gsm_map_ss_cliRestrictionOption,
18485       { "cliRestrictionOption", "gsm_map.ss.cliRestrictionOption",
18486         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CliRestrictionOption_vals), 0,
18487         "gsm_map_ss.CliRestrictionOption", HFILL }},
18488     { &hf_gsm_map_ss_overrideCategory,
18489       { "overrideCategory", "gsm_map.ss.overrideCategory",
18490         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_OverrideCategory_vals), 0,
18491         "gsm_map_ss.OverrideCategory", HFILL }},
18492     { &hf_gsm_map_ss_maximumEntitledPriority,
18493       { "maximumEntitledPriority", "gsm_map.ss.maximumEntitledPriority",
18494         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
18495         "gsm_map.EMLPP_Priority", HFILL }},
18496     { &hf_gsm_map_ss_ccbs_FeatureList,
18497       { "ccbs-FeatureList", "gsm_map.ss.ccbs_FeatureList",
18498         FT_UINT32, BASE_DEC, NULL, 0,
18499         "gsm_map_ss.CCBS_FeatureList", HFILL }},
18500     { &hf_gsm_map_ss_nbrSB,
18501       { "nbrSB", "gsm_map.ss.nbrSB",
18502         FT_UINT32, BASE_DEC, NULL, 0,
18503         "gsm_map.MaxMC_Bearers", HFILL }},
18504     { &hf_gsm_map_ss_nbrSN,
18505       { "nbrSN", "gsm_map.ss.nbrSN",
18506         FT_UINT32, BASE_DEC, NULL, 0,
18507         "gsm_map.MC_Bearers", HFILL }},
18508     { &hf_gsm_map_ss_CCBS_FeatureList_item,
18509       { "CCBS-Feature", "gsm_map.ss.CCBS_Feature",
18510         FT_NONE, BASE_NONE, NULL, 0,
18511         "gsm_map_ss.CCBS_Feature", HFILL }},
18512     { &hf_gsm_map_ss_ccbs_Index,
18513       { "ccbs-Index", "gsm_map.ss.ccbs_Index",
18514         FT_UINT32, BASE_DEC, NULL, 0,
18515         "gsm_map_ss.CCBS_Index", HFILL }},
18516     { &hf_gsm_map_ss_b_subscriberNumber,
18517       { "b-subscriberNumber", "gsm_map.ss.b_subscriberNumber",
18518         FT_BYTES, BASE_NONE, NULL, 0,
18519         "gsm_map.ISDN_AddressString", HFILL }},
18520     { &hf_gsm_map_ss_b_subscriberSubaddress,
18521       { "b-subscriberSubaddress", "gsm_map.ss.b_subscriberSubaddress",
18522         FT_BYTES, BASE_NONE, NULL, 0,
18523         "gsm_map.ISDN_SubaddressString", HFILL }},
18524     { &hf_gsm_map_ss_basicServiceGroup,
18525       { "basicServiceGroup", "gsm_map.ss.basicServiceGroup",
18526         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
18527         "gsm_map.BasicServiceCode", HFILL }},
18528     { &hf_gsm_map_ss_genericServiceInfo,
18529       { "genericServiceInfo", "gsm_map.ss.genericServiceInfo",
18530         FT_NONE, BASE_NONE, NULL, 0,
18531         "gsm_map_ss.GenericServiceInfo", HFILL }},
18532     { &hf_gsm_map_ss_ussd_DataCodingScheme,
18533       { "ussd-DataCodingScheme", "gsm_map.ss.ussd_DataCodingScheme",
18534         FT_BYTES, BASE_NONE, NULL, 0,
18535         "gsm_map_ss.USSD_DataCodingScheme", HFILL }},
18536     { &hf_gsm_map_ss_ussd_String,
18537       { "ussd-String", "gsm_map.ss.ussd_String",
18538         FT_BYTES, BASE_NONE, NULL, 0,
18539         "gsm_map_ss.USSD_String", HFILL }},
18540     { &hf_gsm_map_ss_alertingPattern,
18541       { "alertingPattern", "gsm_map.ss.alertingPattern",
18542         FT_BYTES, BASE_NONE, NULL, 0,
18543         "gsm_map.AlertingPattern", HFILL }},
18544     { &hf_gsm_map_ss_msisdn,
18545       { "msisdn", "gsm_map.ss.msisdn",
18546         FT_BYTES, BASE_NONE, NULL, 0,
18547         "gsm_map.ISDN_AddressString", HFILL }},
18548     { &hf_gsm_map_ss_SS_List_item,
18549       { "SS-Code", "gsm_map.ss.SS_Code",
18550         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
18551         "gsm_map.SS_Code", HFILL }},
18552     { &hf_gsm_map_ss_BasicServiceGroupList_item,
18553       { "BasicServiceCode", "gsm_map.ss.BasicServiceCode",
18554         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
18555         "gsm_map.BasicServiceCode", HFILL }},
18556     { &hf_gsm_map_ss_imsi,
18557       { "imsi", "gsm_map.ss.imsi",
18558         FT_BYTES, BASE_NONE, NULL, 0,
18559         "gsm_map.IMSI", HFILL }},
18560     { &hf_gsm_map_ss_ss_Event,
18561       { "ss-Event", "gsm_map.ss.ss_Event",
18562         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
18563         "gsm_map.SS_Code", HFILL }},
18564     { &hf_gsm_map_ss_ss_EventSpecification,
18565       { "ss-EventSpecification", "gsm_map.ss.ss_EventSpecification",
18566         FT_UINT32, BASE_DEC, NULL, 0,
18567         "gsm_map_ss.SS_EventSpecification", HFILL }},
18568     { &hf_gsm_map_ss_extensionContainer,
18569       { "extensionContainer", "gsm_map.ss.extensionContainer",
18570         FT_NONE, BASE_NONE, NULL, 0,
18571         "gsm_map.ExtensionContainer", HFILL }},
18572     { &hf_gsm_map_ss_ccbs_RequestState,
18573       { "ccbs-RequestState", "gsm_map.ss.ccbs_RequestState",
18574         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CCBS_RequestState_vals), 0,
18575         "gsm_map_ss.CCBS_RequestState", HFILL }},
18576     { &hf_gsm_map_ss_SS_EventSpecification_item,
18577       { "AddressString", "gsm_map.ss.AddressString",
18578         FT_BYTES, BASE_NONE, NULL, 0,
18579         "gsm_map.AddressString", HFILL }},
18580     { &hf_gsm_map_ss_ccbs_Data,
18581       { "ccbs-Data", "gsm_map.ss.ccbs_Data",
18582         FT_NONE, BASE_NONE, NULL, 0,
18583         "gsm_map_ss.CCBS_Data", HFILL }},
18584     { &hf_gsm_map_ss_ccbs_Feature,
18585       { "ccbs-Feature", "gsm_map.ss.ccbs_Feature",
18586         FT_NONE, BASE_NONE, NULL, 0,
18587         "gsm_map_ss.CCBS_Feature", HFILL }},
18588     { &hf_gsm_map_ss_translatedB_Number,
18589       { "translatedB-Number", "gsm_map.ss.translatedB_Number",
18590         FT_BYTES, BASE_NONE, NULL, 0,
18591         "gsm_map.ISDN_AddressString", HFILL }},
18592     { &hf_gsm_map_ss_serviceIndicator,
18593       { "serviceIndicator", "gsm_map.ss.serviceIndicator",
18594         FT_BYTES, BASE_NONE, NULL, 0,
18595         "gsm_map_ss.ServiceIndicator", HFILL }},
18596     { &hf_gsm_map_ss_callInfo,
18597       { "callInfo", "gsm_map.ss.callInfo",
18598         FT_NONE, BASE_NONE, NULL, 0,
18599         "gsm_map.ExternalSignalInfo", HFILL }},
18600     { &hf_gsm_map_ss_networkSignalInfo,
18601       { "networkSignalInfo", "gsm_map.ss.networkSignalInfo",
18602         FT_NONE, BASE_NONE, NULL, 0,
18603         "gsm_map.ExternalSignalInfo", HFILL }},
18604     { &hf_gsm_map_ss_ServiceIndicator_clir_invoked,
18605       { "clir-invoked", "gsm_map.ss.clir-invoked",
18606         FT_BOOLEAN, 8, NULL, 0x80,
18607         NULL, HFILL }},
18608     { &hf_gsm_map_ss_ServiceIndicator_camel_invoked,
18609       { "camel-invoked", "gsm_map.ss.camel-invoked",
18610         FT_BOOLEAN, 8, NULL, 0x40,
18611         NULL, HFILL }},
18612
18613 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
18614
18615     { &hf_gsm_map_er_roamingNotAllowedCause,
18616       { "roamingNotAllowedCause", "gsm_map.er.roamingNotAllowedCause",
18617         FT_UINT32, BASE_DEC, VALS(gsm_map_er_RoamingNotAllowedCause_vals), 0,
18618         "gsm_map_er.RoamingNotAllowedCause", HFILL }},
18619     { &hf_gsm_map_er_extensionContainer,
18620       { "extensionContainer", "gsm_map.er.extensionContainer",
18621         FT_NONE, BASE_NONE, NULL, 0,
18622         "gsm_map.ExtensionContainer", HFILL }},
18623     { &hf_gsm_map_er_additionalRoamingNotAllowedCause,
18624       { "additionalRoamingNotAllowedCause", "gsm_map.er.additionalRoamingNotAllowedCause",
18625         FT_UINT32, BASE_DEC, VALS(gsm_map_er_AdditionalRoamingNotAllowedCause_vals), 0,
18626         "gsm_map_er.AdditionalRoamingNotAllowedCause", HFILL }},
18627     { &hf_gsm_map_er_callBarringCause,
18628       { "callBarringCause", "gsm_map.er.callBarringCause",
18629         FT_UINT32, BASE_DEC, VALS(gsm_map_er_CallBarringCause_vals), 0,
18630         "gsm_map_er.CallBarringCause", HFILL }},
18631     { &hf_gsm_map_er_extensibleCallBarredParam,
18632       { "extensibleCallBarredParam", "gsm_map.er.extensibleCallBarredParam",
18633         FT_NONE, BASE_NONE, NULL, 0,
18634         "gsm_map_er.ExtensibleCallBarredParam", HFILL }},
18635     { &hf_gsm_map_er_unauthorisedMessageOriginator,
18636       { "unauthorisedMessageOriginator", "gsm_map.er.unauthorisedMessageOriginator",
18637         FT_NONE, BASE_NONE, NULL, 0,
18638         "gsm_map_er.NULL", HFILL }},
18639     { &hf_gsm_map_er_cug_RejectCause,
18640       { "cug-RejectCause", "gsm_map.er.cug_RejectCause",
18641         FT_UINT32, BASE_DEC, VALS(gsm_map_er_CUG_RejectCause_vals), 0,
18642         "gsm_map_er.CUG_RejectCause", HFILL }},
18643     { &hf_gsm_map_er_ss_Code,
18644       { "ss-Code", "gsm_map.er.ss_Code",
18645         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
18646         "gsm_map.SS_Code", HFILL }},
18647     { &hf_gsm_map_er_basicService,
18648       { "basicService", "gsm_map.er.basicService",
18649         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
18650         "gsm_map.BasicServiceCode", HFILL }},
18651     { &hf_gsm_map_er_ss_Status,
18652       { "ss-Status", "gsm_map.er.ss_Status",
18653         FT_BYTES, BASE_NONE, NULL, 0,
18654         "gsm_map_ss.SS_Status", HFILL }},
18655     { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause,
18656       { "sm-EnumeratedDeliveryFailureCause", "gsm_map.er.sm_EnumeratedDeliveryFailureCause",
18657         FT_UINT32, BASE_DEC, VALS(gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals), 0,
18658         "gsm_map_er.SM_EnumeratedDeliveryFailureCause", HFILL }},
18659     { &hf_gsm_map_er_diagnosticInfo,
18660       { "diagnosticInfo", "gsm_map.er.diagnosticInfo",
18661         FT_BYTES, BASE_NONE, NULL, 0,
18662         "gsm_map.SignalInfo", HFILL }},
18663     { &hf_gsm_map_er_absentSubscriberDiagnosticSM,
18664       { "absentSubscriberDiagnosticSM", "gsm_map.er.absentSubscriberDiagnosticSM",
18665         FT_UINT32, BASE_DEC, NULL, 0,
18666         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18667     { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM,
18668       { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.er.additionalAbsentSubscriberDiagnosticSM",
18669         FT_UINT32, BASE_DEC, NULL, 0,
18670         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18671     { &hf_gsm_map_er_networkResource,
18672       { "networkResource", "gsm_map.er.networkResource",
18673         FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0,
18674         "gsm_map.NetworkResource", HFILL }},
18675     { &hf_gsm_map_er_extensibleSystemFailureParam,
18676       { "extensibleSystemFailureParam", "gsm_map.er.extensibleSystemFailureParam",
18677         FT_NONE, BASE_NONE, NULL, 0,
18678         "gsm_map_er.ExtensibleSystemFailureParam", HFILL }},
18679     { &hf_gsm_map_er_additionalNetworkResource,
18680       { "additionalNetworkResource", "gsm_map.er.additionalNetworkResource",
18681         FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalNetworkResource_vals), 0,
18682         "gsm_map.AdditionalNetworkResource", HFILL }},
18683     { &hf_gsm_map_er_failureCauseParam,
18684       { "failureCauseParam", "gsm_map.er.failureCauseParam",
18685         FT_UINT32, BASE_DEC, VALS(gsm_map_er_FailureCauseParam_vals), 0,
18686         "gsm_map_er.FailureCauseParam", HFILL }},
18687     { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported,
18688       { "shapeOfLocationEstimateNotSupported", "gsm_map.er.shapeOfLocationEstimateNotSupported",
18689         FT_NONE, BASE_NONE, NULL, 0,
18690         "gsm_map_er.NULL", HFILL }},
18691     { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode,
18692       { "neededLcsCapabilityNotSupportedInServingNode", "gsm_map.er.neededLcsCapabilityNotSupportedInServingNode",
18693         FT_NONE, BASE_NONE, NULL, 0,
18694         "gsm_map_er.NULL", HFILL }},
18695     { &hf_gsm_map_er_unknownSubscriberDiagnostic,
18696       { "unknownSubscriberDiagnostic", "gsm_map.er.unknownSubscriberDiagnostic",
18697         FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnknownSubscriberDiagnostic_vals), 0,
18698         "gsm_map_er.UnknownSubscriberDiagnostic", HFILL }},
18699     { &hf_gsm_map_er_absentSubscriberReason,
18700       { "absentSubscriberReason", "gsm_map.er.absentSubscriberReason",
18701         FT_UINT32, BASE_DEC, VALS(gsm_map_er_AbsentSubscriberReason_vals), 0,
18702         "gsm_map_er.AbsentSubscriberReason", HFILL }},
18703     { &hf_gsm_map_er_ccbs_Possible,
18704       { "ccbs-Possible", "gsm_map.er.ccbs_Possible",
18705         FT_NONE, BASE_NONE, NULL, 0,
18706         "gsm_map_er.NULL", HFILL }},
18707     { &hf_gsm_map_er_ccbs_Busy,
18708       { "ccbs-Busy", "gsm_map.er.ccbs_Busy",
18709         FT_NONE, BASE_NONE, NULL, 0,
18710         "gsm_map_er.NULL", HFILL }},
18711     { &hf_gsm_map_er_gprsConnectionSuspended,
18712       { "gprsConnectionSuspended", "gsm_map.er.gprsConnectionSuspended",
18713         FT_NONE, BASE_NONE, NULL, 0,
18714         "gsm_map_er.NULL", HFILL }},
18715     { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic,
18716       { "unauthorizedLCSClient-Diagnostic", "gsm_map.er.unauthorizedLCSClient_Diagnostic",
18717         FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals), 0,
18718         "gsm_map_er.UnauthorizedLCSClient_Diagnostic", HFILL }},
18719     { &hf_gsm_map_er_positionMethodFailure_Diagnostic,
18720       { "positionMethodFailure-Diagnostic", "gsm_map.er.positionMethodFailure_Diagnostic",
18721         FT_UINT32, BASE_DEC, VALS(gsm_map_er_PositionMethodFailure_Diagnostic_vals), 0,
18722         "gsm_map_er.PositionMethodFailure_Diagnostic", HFILL }},
18723
18724 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
18725
18726     { &hf_gsm_map_sm_msisdn,
18727       { "msisdn", "gsm_map.sm.msisdn",
18728         FT_BYTES, BASE_NONE, NULL, 0,
18729         "gsm_map.ISDN_AddressString", HFILL }},
18730     { &hf_gsm_map_sm_sm_RP_PRI,
18731       { "sm-RP-PRI", "gsm_map.sm.sm_RP_PRI",
18732         FT_BOOLEAN, BASE_NONE, NULL, 0,
18733         "gsm_map_sm.BOOLEAN", HFILL }},
18734     { &hf_gsm_map_sm_serviceCentreAddress,
18735       { "serviceCentreAddress", "gsm_map.sm.serviceCentreAddress",
18736         FT_BYTES, BASE_NONE, NULL, 0,
18737         "gsm_map.AddressString", HFILL }},
18738     { &hf_gsm_map_sm_extensionContainer,
18739       { "extensionContainer", "gsm_map.sm.extensionContainer",
18740         FT_NONE, BASE_NONE, NULL, 0,
18741         "gsm_map.ExtensionContainer", HFILL }},
18742     { &hf_gsm_map_sm_gprsSupportIndicator,
18743       { "gprsSupportIndicator", "gsm_map.sm.gprsSupportIndicator",
18744         FT_NONE, BASE_NONE, NULL, 0,
18745         "gsm_map_sm.NULL", HFILL }},
18746     { &hf_gsm_map_sm_sm_RP_MTI,
18747       { "sm-RP-MTI", "gsm_map.sm.sm_RP_MTI",
18748         FT_UINT32, BASE_DEC, NULL, 0,
18749         "gsm_map_sm.SM_RP_MTI", HFILL }},
18750     { &hf_gsm_map_sm_sm_RP_SMEA,
18751       { "sm-RP-SMEA", "gsm_map.sm.sm_RP_SMEA",
18752         FT_BYTES, BASE_NONE, NULL, 0,
18753         "gsm_map_sm.SM_RP_SMEA", HFILL }},
18754     { &hf_gsm_map_sm_sm_deliveryNotIntended,
18755       { "sm-deliveryNotIntended", "gsm_map.sm.sm_deliveryNotIntended",
18756         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryNotIntended_vals), 0,
18757         "gsm_map_sm.SM_DeliveryNotIntended", HFILL }},
18758     { &hf_gsm_map_sm_imsi,
18759       { "imsi", "gsm_map.sm.imsi",
18760         FT_BYTES, BASE_NONE, NULL, 0,
18761         "gsm_map.IMSI", HFILL }},
18762     { &hf_gsm_map_sm_locationInfoWithLMSI,
18763       { "locationInfoWithLMSI", "gsm_map.sm.locationInfoWithLMSI",
18764         FT_NONE, BASE_NONE, NULL, 0,
18765         "gsm_map_sm.LocationInfoWithLMSI", HFILL }},
18766     { &hf_gsm_map_sm_networkNode_Number,
18767       { "networkNode-Number", "gsm_map.sm.networkNode_Number",
18768         FT_BYTES, BASE_NONE, NULL, 0,
18769         "gsm_map.ISDN_AddressString", HFILL }},
18770     { &hf_gsm_map_sm_lmsi,
18771       { "lmsi", "gsm_map.sm.lmsi",
18772         FT_BYTES, BASE_NONE, NULL, 0,
18773         "gsm_map.LMSI", HFILL }},
18774     { &hf_gsm_map_sm_gprsNodeIndicator,
18775       { "gprsNodeIndicator", "gsm_map.sm.gprsNodeIndicator",
18776         FT_NONE, BASE_NONE, NULL, 0,
18777         "gsm_map_sm.NULL", HFILL }},
18778     { &hf_gsm_map_sm_additional_Number,
18779       { "additional-Number", "gsm_map.sm.additional_Number",
18780         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
18781         "gsm_map_sm.Additional_Number", HFILL }},
18782     { &hf_gsm_map_sm_msc_Number,
18783       { "msc-Number", "gsm_map.sm.msc_Number",
18784         FT_BYTES, BASE_NONE, NULL, 0,
18785         "gsm_map.ISDN_AddressString", HFILL }},
18786     { &hf_gsm_map_sm_sgsn_Number,
18787       { "sgsn-Number", "gsm_map.sm.sgsn_Number",
18788         FT_BYTES, BASE_NONE, NULL, 0,
18789         "gsm_map.ISDN_AddressString", HFILL }},
18790     { &hf_gsm_map_sm_sm_RP_DA,
18791       { "sm-RP-DA", "gsm_map.sm.sm_RP_DA",
18792         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_DA_vals), 0,
18793         "gsm_map_sm.SM_RP_DA", HFILL }},
18794     { &hf_gsm_map_sm_sm_RP_OA,
18795       { "sm-RP-OA", "gsm_map.sm.sm_RP_OA",
18796         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_OA_vals), 0,
18797         "gsm_map_sm.SM_RP_OA", HFILL }},
18798     { &hf_gsm_map_sm_sm_RP_UI,
18799       { "sm-RP-UI", "gsm_map.sm.sm_RP_UI",
18800         FT_BYTES, BASE_NONE, NULL, 0,
18801         "gsm_map.SignalInfo", HFILL }},
18802     { &hf_gsm_map_sm_moreMessagesToSend,
18803       { "moreMessagesToSend", "gsm_map.sm.moreMessagesToSend",
18804         FT_NONE, BASE_NONE, NULL, 0,
18805         "gsm_map_sm.NULL", HFILL }},
18806     { &hf_gsm_map_sm_serviceCentreAddressDA,
18807       { "serviceCentreAddressDA", "gsm_map.sm.serviceCentreAddressDA",
18808         FT_BYTES, BASE_NONE, NULL, 0,
18809         "gsm_map.AddressString", HFILL }},
18810     { &hf_gsm_map_sm_noSM_RP_DA,
18811       { "noSM-RP-DA", "gsm_map.sm.noSM_RP_DA",
18812         FT_NONE, BASE_NONE, NULL, 0,
18813         "gsm_map_sm.NULL", HFILL }},
18814     { &hf_gsm_map_sm_msisdn_01,
18815       { "msisdn", "gsm_map.sm.msisdn",
18816         FT_BYTES, BASE_NONE, NULL, 0,
18817         "gsm_map_sm.T_msisdn", HFILL }},
18818     { &hf_gsm_map_sm_serviceCentreAddressOA,
18819       { "serviceCentreAddressOA", "gsm_map.sm.serviceCentreAddressOA",
18820         FT_BYTES, BASE_NONE, NULL, 0,
18821         "gsm_map_sm.T_serviceCentreAddressOA", HFILL }},
18822     { &hf_gsm_map_sm_noSM_RP_OA,
18823       { "noSM-RP-OA", "gsm_map.sm.noSM_RP_OA",
18824         FT_NONE, BASE_NONE, NULL, 0,
18825         "gsm_map_sm.NULL", HFILL }},
18826     { &hf_gsm_map_sm_sm_DeliveryOutcome,
18827       { "sm-DeliveryOutcome", "gsm_map.sm.sm_DeliveryOutcome",
18828         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
18829         "gsm_map_sm.SM_DeliveryOutcome", HFILL }},
18830     { &hf_gsm_map_sm_absentSubscriberDiagnosticSM,
18831       { "absentSubscriberDiagnosticSM", "gsm_map.sm.absentSubscriberDiagnosticSM",
18832         FT_UINT32, BASE_DEC, NULL, 0,
18833         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18834     { &hf_gsm_map_sm_deliveryOutcomeIndicator,
18835       { "deliveryOutcomeIndicator", "gsm_map.sm.deliveryOutcomeIndicator",
18836         FT_NONE, BASE_NONE, NULL, 0,
18837         "gsm_map_sm.NULL", HFILL }},
18838     { &hf_gsm_map_sm_additionalSM_DeliveryOutcome,
18839       { "additionalSM-DeliveryOutcome", "gsm_map.sm.additionalSM_DeliveryOutcome",
18840         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
18841         "gsm_map_sm.SM_DeliveryOutcome", HFILL }},
18842     { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM,
18843       { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.sm.additionalAbsentSubscriberDiagnosticSM",
18844         FT_UINT32, BASE_DEC, NULL, 0,
18845         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18846     { &hf_gsm_map_sm_ip_sm_gw_Indicator,
18847       { "ip-sm-gw-Indicator", "gsm_map.sm.ip_sm_gw_Indicator",
18848         FT_NONE, BASE_NONE, NULL, 0,
18849         "gsm_map_sm.NULL", HFILL }},
18850     { &hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome,
18851       { "ip-sm-gw-sm-deliveryOutcome", "gsm_map.sm.ip_sm_gw_sm_deliveryOutcome",
18852         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
18853         "gsm_map_sm.SM_DeliveryOutcome", HFILL }},
18854     { &hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM,
18855       { "ip-sm-gw-absentSubscriberDiagnosticSM", "gsm_map.sm.ip_sm_gw_absentSubscriberDiagnosticSM",
18856         FT_UINT32, BASE_DEC, NULL, 0,
18857         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18858     { &hf_gsm_map_sm_storedMSISDN,
18859       { "storedMSISDN", "gsm_map.sm.storedMSISDN",
18860         FT_BYTES, BASE_NONE, NULL, 0,
18861         "gsm_map.ISDN_AddressString", HFILL }},
18862     { &hf_gsm_map_sm_mw_Status,
18863       { "mw-Status", "gsm_map.sm.mw_Status",
18864         FT_BYTES, BASE_NONE, NULL, 0,
18865         "gsm_map_sm.MW_Status", HFILL }},
18866     { &hf_gsm_map_sm_alertReason,
18867       { "alertReason", "gsm_map.sm.alertReason",
18868         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_AlertReason_vals), 0,
18869         "gsm_map_sm.AlertReason", HFILL }},
18870     { &hf_gsm_map_sm_alertReasonIndicator,
18871       { "alertReasonIndicator", "gsm_map.sm.alertReasonIndicator",
18872         FT_NONE, BASE_NONE, NULL, 0,
18873         "gsm_map_sm.NULL", HFILL }},
18874     { &hf_gsm_map_sm_additionalAlertReasonIndicator,
18875       { "additionalAlertReasonIndicator", "gsm_map.sm.additionalAlertReasonIndicator",
18876         FT_NONE, BASE_NONE, NULL, 0,
18877         "gsm_map_sm.NULL", HFILL }},
18878     { &hf_gsm_map_sm_asciCallReference,
18879       { "asciCallReference", "gsm_map.sm.asciCallReference",
18880         FT_BYTES, BASE_NONE, NULL, 0,
18881         "gsm_map.ASCI_CallReference", HFILL }},
18882     { &hf_gsm_map_sm_dispatcherList,
18883       { "dispatcherList", "gsm_map.sm.dispatcherList",
18884         FT_UINT32, BASE_DEC, NULL, 0,
18885         "gsm_map_sm.DispatcherList", HFILL }},
18886     { &hf_gsm_map_sm_ongoingCall,
18887       { "ongoingCall", "gsm_map.sm.ongoingCall",
18888         FT_NONE, BASE_NONE, NULL, 0,
18889         "gsm_map_sm.NULL", HFILL }},
18890     { &hf_gsm_map_sm_DispatcherList_item,
18891       { "ISDN-AddressString", "gsm_map.sm.ISDN_AddressString",
18892         FT_BYTES, BASE_NONE, NULL, 0,
18893         "gsm_map.ISDN_AddressString", HFILL }},
18894     { &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded,
18895       { "sc-AddressNotIncluded", "gsm_map.sm.sc-AddressNotIncluded",
18896         FT_BOOLEAN, 8, NULL, 0x80,
18897         NULL, HFILL }},
18898     { &hf_gsm_map_sm_MW_Status_mnrf_Set,
18899       { "mnrf-Set", "gsm_map.sm.mnrf-Set",
18900         FT_BOOLEAN, 8, NULL, 0x40,
18901         NULL, HFILL }},
18902     { &hf_gsm_map_sm_MW_Status_mcef_Set,
18903       { "mcef-Set", "gsm_map.sm.mcef-Set",
18904         FT_BOOLEAN, 8, NULL, 0x20,
18905         NULL, HFILL }},
18906     { &hf_gsm_map_sm_MW_Status_mnrg_Set,
18907       { "mnrg-Set", "gsm_map.sm.mnrg-Set",
18908         FT_BOOLEAN, 8, NULL, 0x10,
18909         NULL, HFILL }},
18910
18911 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
18912
18913     { &hf_gsm_map_om_imsi,
18914       { "imsi", "gsm_map.om.imsi",
18915         FT_BYTES, BASE_NONE, NULL, 0,
18916         "gsm_map.IMSI", HFILL }},
18917     { &hf_gsm_map_om_traceReference,
18918       { "traceReference", "gsm_map.om.traceReference",
18919         FT_BYTES, BASE_NONE, NULL, 0,
18920         "gsm_map_om.TraceReference", HFILL }},
18921     { &hf_gsm_map_om_traceType,
18922       { "traceType", "gsm_map.om.traceType",
18923         FT_UINT32, BASE_DEC, NULL, 0,
18924         "gsm_map_om.TraceType", HFILL }},
18925     { &hf_gsm_map_om_omc_Id,
18926       { "omc-Id", "gsm_map.om.omc_Id",
18927         FT_BYTES, BASE_NONE, NULL, 0,
18928         "gsm_map.AddressString", HFILL }},
18929     { &hf_gsm_map_om_extensionContainer,
18930       { "extensionContainer", "gsm_map.om.extensionContainer",
18931         FT_NONE, BASE_NONE, NULL, 0,
18932         "gsm_map.ExtensionContainer", HFILL }},
18933     { &hf_gsm_map_om_traceReference2,
18934       { "traceReference2", "gsm_map.om.traceReference2",
18935         FT_BYTES, BASE_NONE, NULL, 0,
18936         "gsm_map_om.TraceReference2", HFILL }},
18937     { &hf_gsm_map_om_traceDepthList,
18938       { "traceDepthList", "gsm_map.om.traceDepthList",
18939         FT_NONE, BASE_NONE, NULL, 0,
18940         "gsm_map_om.TraceDepthList", HFILL }},
18941     { &hf_gsm_map_om_traceNE_TypeList,
18942       { "traceNE-TypeList", "gsm_map.om.traceNE_TypeList",
18943         FT_BYTES, BASE_NONE, NULL, 0,
18944         "gsm_map_om.TraceNE_TypeList", HFILL }},
18945     { &hf_gsm_map_om_traceInterfaceList,
18946       { "traceInterfaceList", "gsm_map.om.traceInterfaceList",
18947         FT_NONE, BASE_NONE, NULL, 0,
18948         "gsm_map_om.TraceInterfaceList", HFILL }},
18949     { &hf_gsm_map_om_traceEventList,
18950       { "traceEventList", "gsm_map.om.traceEventList",
18951         FT_NONE, BASE_NONE, NULL, 0,
18952         "gsm_map_om.TraceEventList", HFILL }},
18953     { &hf_gsm_map_om_msc_s_TraceDepth,
18954       { "msc-s-TraceDepth", "gsm_map.om.msc_s_TraceDepth",
18955         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18956         "gsm_map_om.TraceDepth", HFILL }},
18957     { &hf_gsm_map_om_mgw_TraceDepth,
18958       { "mgw-TraceDepth", "gsm_map.om.mgw_TraceDepth",
18959         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18960         "gsm_map_om.TraceDepth", HFILL }},
18961     { &hf_gsm_map_om_sgsn_TraceDepth,
18962       { "sgsn-TraceDepth", "gsm_map.om.sgsn_TraceDepth",
18963         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18964         "gsm_map_om.TraceDepth", HFILL }},
18965     { &hf_gsm_map_om_ggsn_TraceDepth,
18966       { "ggsn-TraceDepth", "gsm_map.om.ggsn_TraceDepth",
18967         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18968         "gsm_map_om.TraceDepth", HFILL }},
18969     { &hf_gsm_map_om_rnc_TraceDepth,
18970       { "rnc-TraceDepth", "gsm_map.om.rnc_TraceDepth",
18971         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18972         "gsm_map_om.TraceDepth", HFILL }},
18973     { &hf_gsm_map_om_bmsc_TraceDepth,
18974       { "bmsc-TraceDepth", "gsm_map.om.bmsc_TraceDepth",
18975         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18976         "gsm_map_om.TraceDepth", HFILL }},
18977     { &hf_gsm_map_om_msc_s_List,
18978       { "msc-s-List", "gsm_map.om.msc_s_List",
18979         FT_BYTES, BASE_NONE, NULL, 0,
18980         "gsm_map_om.MSC_S_InterfaceList", HFILL }},
18981     { &hf_gsm_map_om_mgw_List,
18982       { "mgw-List", "gsm_map.om.mgw_List",
18983         FT_BYTES, BASE_NONE, NULL, 0,
18984         "gsm_map_om.MGW_InterfaceList", HFILL }},
18985     { &hf_gsm_map_om_sgsn_List,
18986       { "sgsn-List", "gsm_map.om.sgsn_List",
18987         FT_BYTES, BASE_NONE, NULL, 0,
18988         "gsm_map_om.SGSN_InterfaceList", HFILL }},
18989     { &hf_gsm_map_om_ggsn_List,
18990       { "ggsn-List", "gsm_map.om.ggsn_List",
18991         FT_BYTES, BASE_NONE, NULL, 0,
18992         "gsm_map_om.GGSN_InterfaceList", HFILL }},
18993     { &hf_gsm_map_om_rnc_List,
18994       { "rnc-List", "gsm_map.om.rnc_List",
18995         FT_BYTES, BASE_NONE, NULL, 0,
18996         "gsm_map_om.RNC_InterfaceList", HFILL }},
18997     { &hf_gsm_map_om_bmsc_List,
18998       { "bmsc-List", "gsm_map.om.bmsc_List",
18999         FT_BYTES, BASE_NONE, NULL, 0,
19000         "gsm_map_om.BMSC_InterfaceList", HFILL }},
19001     { &hf_gsm_map_om_msc_s_List_01,
19002       { "msc-s-List", "gsm_map.om.msc_s_List",
19003         FT_BYTES, BASE_NONE, NULL, 0,
19004         "gsm_map_om.MSC_S_EventList", HFILL }},
19005     { &hf_gsm_map_om_mgw_List_01,
19006       { "mgw-List", "gsm_map.om.mgw_List",
19007         FT_BYTES, BASE_NONE, NULL, 0,
19008         "gsm_map_om.MGW_EventList", HFILL }},
19009     { &hf_gsm_map_om_sgsn_List_01,
19010       { "sgsn-List", "gsm_map.om.sgsn_List",
19011         FT_BYTES, BASE_NONE, NULL, 0,
19012         "gsm_map_om.SGSN_EventList", HFILL }},
19013     { &hf_gsm_map_om_ggsn_List_01,
19014       { "ggsn-List", "gsm_map.om.ggsn_List",
19015         FT_BYTES, BASE_NONE, NULL, 0,
19016         "gsm_map_om.GGSN_EventList", HFILL }},
19017     { &hf_gsm_map_om_bmsc_List_01,
19018       { "bmsc-List", "gsm_map.om.bmsc_List",
19019         FT_BYTES, BASE_NONE, NULL, 0,
19020         "gsm_map_om.BMSC_EventList", HFILL }},
19021     { &hf_gsm_map_om_traceRecordingSessionReference,
19022       { "traceRecordingSessionReference", "gsm_map.om.traceRecordingSessionReference",
19023         FT_BYTES, BASE_NONE, NULL, 0,
19024         "gsm_map_om.TraceRecordingSessionReference", HFILL }},
19025     { &hf_gsm_map_om_rnc_InterfaceList,
19026       { "rnc-InterfaceList", "gsm_map.om.rnc_InterfaceList",
19027         FT_BYTES, BASE_NONE, NULL, 0,
19028         "gsm_map_om.RNC_InterfaceList", HFILL }},
19029     { &hf_gsm_map_om_msc_s_InterfaceList,
19030       { "msc-s-InterfaceList", "gsm_map.om.msc_s_InterfaceList",
19031         FT_BYTES, BASE_NONE, NULL, 0,
19032         "gsm_map_om.MSC_S_InterfaceList", HFILL }},
19033     { &hf_gsm_map_om_msc_s_EventList,
19034       { "msc-s-EventList", "gsm_map.om.msc_s_EventList",
19035         FT_BYTES, BASE_NONE, NULL, 0,
19036         "gsm_map_om.MSC_S_EventList", HFILL }},
19037     { &hf_gsm_map_om_mgw_InterfaceList,
19038       { "mgw-InterfaceList", "gsm_map.om.mgw_InterfaceList",
19039         FT_BYTES, BASE_NONE, NULL, 0,
19040         "gsm_map_om.MGW_InterfaceList", HFILL }},
19041     { &hf_gsm_map_om_mgw_EventList,
19042       { "mgw-EventList", "gsm_map.om.mgw_EventList",
19043         FT_BYTES, BASE_NONE, NULL, 0,
19044         "gsm_map_om.MGW_EventList", HFILL }},
19045     { &hf_gsm_map_om_traceSupportIndicator,
19046       { "traceSupportIndicator", "gsm_map.om.traceSupportIndicator",
19047         FT_NONE, BASE_NONE, NULL, 0,
19048         "gsm_map_om.NULL", HFILL }},
19049     { &hf_gsm_map_om_TraceNE_TypeList_msc_s,
19050       { "msc-s", "gsm_map.om.msc-s",
19051         FT_BOOLEAN, 8, NULL, 0x80,
19052         NULL, HFILL }},
19053     { &hf_gsm_map_om_TraceNE_TypeList_mgw,
19054       { "mgw", "gsm_map.om.mgw",
19055         FT_BOOLEAN, 8, NULL, 0x40,
19056         NULL, HFILL }},
19057     { &hf_gsm_map_om_TraceNE_TypeList_sgsn,
19058       { "sgsn", "gsm_map.om.sgsn",
19059         FT_BOOLEAN, 8, NULL, 0x20,
19060         NULL, HFILL }},
19061     { &hf_gsm_map_om_TraceNE_TypeList_ggsn,
19062       { "ggsn", "gsm_map.om.ggsn",
19063         FT_BOOLEAN, 8, NULL, 0x10,
19064         NULL, HFILL }},
19065     { &hf_gsm_map_om_TraceNE_TypeList_rnc,
19066       { "rnc", "gsm_map.om.rnc",
19067         FT_BOOLEAN, 8, NULL, 0x08,
19068         NULL, HFILL }},
19069     { &hf_gsm_map_om_TraceNE_TypeList_bm_sc,
19070       { "bm-sc", "gsm_map.om.bm-sc",
19071         FT_BOOLEAN, 8, NULL, 0x04,
19072         NULL, HFILL }},
19073     { &hf_gsm_map_om_MSC_S_InterfaceList_a,
19074       { "a", "gsm_map.om.a",
19075         FT_BOOLEAN, 8, NULL, 0x80,
19076         NULL, HFILL }},
19077     { &hf_gsm_map_om_MSC_S_InterfaceList_iu,
19078       { "iu", "gsm_map.om.iu",
19079         FT_BOOLEAN, 8, NULL, 0x40,
19080         NULL, HFILL }},
19081     { &hf_gsm_map_om_MSC_S_InterfaceList_mc,
19082       { "mc", "gsm_map.om.mc",
19083         FT_BOOLEAN, 8, NULL, 0x20,
19084         NULL, HFILL }},
19085     { &hf_gsm_map_om_MSC_S_InterfaceList_map_g,
19086       { "map-g", "gsm_map.om.map-g",
19087         FT_BOOLEAN, 8, NULL, 0x10,
19088         NULL, HFILL }},
19089     { &hf_gsm_map_om_MSC_S_InterfaceList_map_b,
19090       { "map-b", "gsm_map.om.map-b",
19091         FT_BOOLEAN, 8, NULL, 0x08,
19092         NULL, HFILL }},
19093     { &hf_gsm_map_om_MSC_S_InterfaceList_map_e,
19094       { "map-e", "gsm_map.om.map-e",
19095         FT_BOOLEAN, 8, NULL, 0x04,
19096         NULL, HFILL }},
19097     { &hf_gsm_map_om_MSC_S_InterfaceList_map_f,
19098       { "map-f", "gsm_map.om.map-f",
19099         FT_BOOLEAN, 8, NULL, 0x02,
19100         NULL, HFILL }},
19101     { &hf_gsm_map_om_MSC_S_InterfaceList_cap,
19102       { "cap", "gsm_map.om.cap",
19103         FT_BOOLEAN, 8, NULL, 0x01,
19104         NULL, HFILL }},
19105     { &hf_gsm_map_om_MSC_S_InterfaceList_map_d,
19106       { "map-d", "gsm_map.om.map-d",
19107         FT_BOOLEAN, 8, NULL, 0x80,
19108         NULL, HFILL }},
19109     { &hf_gsm_map_om_MSC_S_InterfaceList_map_c,
19110       { "map-c", "gsm_map.om.map-c",
19111         FT_BOOLEAN, 8, NULL, 0x40,
19112         NULL, HFILL }},
19113     { &hf_gsm_map_om_MGW_InterfaceList_mc,
19114       { "mc", "gsm_map.om.mc",
19115         FT_BOOLEAN, 8, NULL, 0x80,
19116         NULL, HFILL }},
19117     { &hf_gsm_map_om_MGW_InterfaceList_nb_up,
19118       { "nb-up", "gsm_map.om.nb-up",
19119         FT_BOOLEAN, 8, NULL, 0x40,
19120         NULL, HFILL }},
19121     { &hf_gsm_map_om_MGW_InterfaceList_iu_up,
19122       { "iu-up", "gsm_map.om.iu-up",
19123         FT_BOOLEAN, 8, NULL, 0x20,
19124         NULL, HFILL }},
19125     { &hf_gsm_map_om_SGSN_InterfaceList_gb,
19126       { "gb", "gsm_map.om.gb",
19127         FT_BOOLEAN, 8, NULL, 0x80,
19128         NULL, HFILL }},
19129     { &hf_gsm_map_om_SGSN_InterfaceList_iu,
19130       { "iu", "gsm_map.om.iu",
19131         FT_BOOLEAN, 8, NULL, 0x40,
19132         NULL, HFILL }},
19133     { &hf_gsm_map_om_SGSN_InterfaceList_gn,
19134       { "gn", "gsm_map.om.gn",
19135         FT_BOOLEAN, 8, NULL, 0x20,
19136         NULL, HFILL }},
19137     { &hf_gsm_map_om_SGSN_InterfaceList_map_gr,
19138       { "map-gr", "gsm_map.om.map-gr",
19139         FT_BOOLEAN, 8, NULL, 0x10,
19140         NULL, HFILL }},
19141     { &hf_gsm_map_om_SGSN_InterfaceList_map_gd,
19142       { "map-gd", "gsm_map.om.map-gd",
19143         FT_BOOLEAN, 8, NULL, 0x08,
19144         NULL, HFILL }},
19145     { &hf_gsm_map_om_SGSN_InterfaceList_map_gf,
19146       { "map-gf", "gsm_map.om.map-gf",
19147         FT_BOOLEAN, 8, NULL, 0x04,
19148         NULL, HFILL }},
19149     { &hf_gsm_map_om_SGSN_InterfaceList_gs,
19150       { "gs", "gsm_map.om.gs",
19151         FT_BOOLEAN, 8, NULL, 0x02,
19152         NULL, HFILL }},
19153     { &hf_gsm_map_om_SGSN_InterfaceList_ge,
19154       { "ge", "gsm_map.om.ge",
19155         FT_BOOLEAN, 8, NULL, 0x01,
19156         NULL, HFILL }},
19157     { &hf_gsm_map_om_GGSN_InterfaceList_gn,
19158       { "gn", "gsm_map.om.gn",
19159         FT_BOOLEAN, 8, NULL, 0x80,
19160         NULL, HFILL }},
19161     { &hf_gsm_map_om_GGSN_InterfaceList_gi,
19162       { "gi", "gsm_map.om.gi",
19163         FT_BOOLEAN, 8, NULL, 0x40,
19164         NULL, HFILL }},
19165     { &hf_gsm_map_om_GGSN_InterfaceList_gmb,
19166       { "gmb", "gsm_map.om.gmb",
19167         FT_BOOLEAN, 8, NULL, 0x20,
19168         NULL, HFILL }},
19169     { &hf_gsm_map_om_RNC_InterfaceList_iu,
19170       { "iu", "gsm_map.om.iu",
19171         FT_BOOLEAN, 8, NULL, 0x80,
19172         NULL, HFILL }},
19173     { &hf_gsm_map_om_RNC_InterfaceList_iur,
19174       { "iur", "gsm_map.om.iur",
19175         FT_BOOLEAN, 8, NULL, 0x40,
19176         NULL, HFILL }},
19177     { &hf_gsm_map_om_RNC_InterfaceList_iub,
19178       { "iub", "gsm_map.om.iub",
19179         FT_BOOLEAN, 8, NULL, 0x20,
19180         NULL, HFILL }},
19181     { &hf_gsm_map_om_RNC_InterfaceList_uu,
19182       { "uu", "gsm_map.om.uu",
19183         FT_BOOLEAN, 8, NULL, 0x10,
19184         NULL, HFILL }},
19185     { &hf_gsm_map_om_BMSC_InterfaceList_gmb,
19186       { "gmb", "gsm_map.om.gmb",
19187         FT_BOOLEAN, 8, NULL, 0x80,
19188         NULL, HFILL }},
19189     { &hf_gsm_map_om_MSC_S_EventList_mo_mtCall,
19190       { "mo-mtCall", "gsm_map.om.mo-mtCall",
19191         FT_BOOLEAN, 8, NULL, 0x80,
19192         NULL, HFILL }},
19193     { &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms,
19194       { "mo-mt-sms", "gsm_map.om.mo-mt-sms",
19195         FT_BOOLEAN, 8, NULL, 0x40,
19196         NULL, HFILL }},
19197     { &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach,
19198       { "lu-imsiAttach-imsiDetach", "gsm_map.om.lu-imsiAttach-imsiDetach",
19199         FT_BOOLEAN, 8, NULL, 0x20,
19200         NULL, HFILL }},
19201     { &hf_gsm_map_om_MSC_S_EventList_handovers,
19202       { "handovers", "gsm_map.om.handovers",
19203         FT_BOOLEAN, 8, NULL, 0x10,
19204         NULL, HFILL }},
19205     { &hf_gsm_map_om_MSC_S_EventList_ss,
19206       { "ss", "gsm_map.om.ss",
19207         FT_BOOLEAN, 8, NULL, 0x08,
19208         NULL, HFILL }},
19209     { &hf_gsm_map_om_MGW_EventList_context,
19210       { "context", "gsm_map.om.context",
19211         FT_BOOLEAN, 8, NULL, 0x80,
19212         NULL, HFILL }},
19213     { &hf_gsm_map_om_SGSN_EventList_pdpContext,
19214       { "pdpContext", "gsm_map.om.pdpContext",
19215         FT_BOOLEAN, 8, NULL, 0x80,
19216         NULL, HFILL }},
19217     { &hf_gsm_map_om_SGSN_EventList_mo_mt_sms,
19218       { "mo-mt-sms", "gsm_map.om.mo-mt-sms",
19219         FT_BOOLEAN, 8, NULL, 0x40,
19220         NULL, HFILL }},
19221     { &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach,
19222       { "rau-gprsAttach-gprsDetach", "gsm_map.om.rau-gprsAttach-gprsDetach",
19223         FT_BOOLEAN, 8, NULL, 0x20,
19224         NULL, HFILL }},
19225     { &hf_gsm_map_om_SGSN_EventList_mbmsContext,
19226       { "mbmsContext", "gsm_map.om.mbmsContext",
19227         FT_BOOLEAN, 8, NULL, 0x10,
19228         NULL, HFILL }},
19229     { &hf_gsm_map_om_GGSN_EventList_pdpContext,
19230       { "pdpContext", "gsm_map.om.pdpContext",
19231         FT_BOOLEAN, 8, NULL, 0x80,
19232         NULL, HFILL }},
19233     { &hf_gsm_map_om_GGSN_EventList_mbmsContext,
19234       { "mbmsContext", "gsm_map.om.mbmsContext",
19235         FT_BOOLEAN, 8, NULL, 0x40,
19236         NULL, HFILL }},
19237     { &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation,
19238       { "mbmsMulticastServiceActivation", "gsm_map.om.mbmsMulticastServiceActivation",
19239         FT_BOOLEAN, 8, NULL, 0x80,
19240         NULL, HFILL }},
19241
19242 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
19243
19244     { &hf_gsm_map_ms_imsi,
19245       { "imsi", "gsm_map.ms.imsi",
19246         FT_BYTES, BASE_NONE, NULL, 0,
19247         "gsm_map.IMSI", HFILL }},
19248     { &hf_gsm_map_ms_msc_Number,
19249       { "msc-Number", "gsm_map.ms.msc_Number",
19250         FT_BYTES, BASE_NONE, NULL, 0,
19251         "gsm_map.ISDN_AddressString", HFILL }},
19252     { &hf_gsm_map_ms_vlr_Number,
19253       { "vlr-Number", "gsm_map.ms.vlr_Number",
19254         FT_BYTES, BASE_NONE, NULL, 0,
19255         "gsm_map.ISDN_AddressString", HFILL }},
19256     { &hf_gsm_map_ms_lmsi,
19257       { "lmsi", "gsm_map.ms.lmsi",
19258         FT_BYTES, BASE_NONE, NULL, 0,
19259         "gsm_map.LMSI", HFILL }},
19260     { &hf_gsm_map_ms_extensionContainer,
19261       { "extensionContainer", "gsm_map.ms.extensionContainer",
19262         FT_NONE, BASE_NONE, NULL, 0,
19263         "gsm_map.ExtensionContainer", HFILL }},
19264     { &hf_gsm_map_ms_vlr_Capability,
19265       { "vlr-Capability", "gsm_map.ms.vlr_Capability",
19266         FT_NONE, BASE_NONE, NULL, 0,
19267         "gsm_map_ms.VLR_Capability", HFILL }},
19268     { &hf_gsm_map_ms_informPreviousNetworkEntity,
19269       { "informPreviousNetworkEntity", "gsm_map.ms.informPreviousNetworkEntity",
19270         FT_NONE, BASE_NONE, NULL, 0,
19271         "gsm_map_ms.NULL", HFILL }},
19272     { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE,
19273       { "cs-LCS-NotSupportedByUE", "gsm_map.ms.cs_LCS_NotSupportedByUE",
19274         FT_NONE, BASE_NONE, NULL, 0,
19275         "gsm_map_ms.NULL", HFILL }},
19276     { &hf_gsm_map_ms_v_gmlc_Address,
19277       { "v-gmlc-Address", "gsm_map.ms.v_gmlc_Address",
19278         FT_BYTES, BASE_NONE, NULL, 0,
19279         "gsm_map_ms.GSN_Address", HFILL }},
19280     { &hf_gsm_map_ms_add_info,
19281       { "add-info", "gsm_map.ms.add_info",
19282         FT_NONE, BASE_NONE, NULL, 0,
19283         "gsm_map_ms.ADD_Info", HFILL }},
19284     { &hf_gsm_map_ms_pagingArea,
19285       { "pagingArea", "gsm_map.ms.pagingArea",
19286         FT_UINT32, BASE_DEC, NULL, 0,
19287         "gsm_map_ms.PagingArea", HFILL }},
19288     { &hf_gsm_map_ms_skipSubscriberDataUpdate,
19289       { "skipSubscriberDataUpdate", "gsm_map.ms.skipSubscriberDataUpdate",
19290         FT_NONE, BASE_NONE, NULL, 0,
19291         "gsm_map_ms.NULL", HFILL }},
19292     { &hf_gsm_map_ms_supportedCamelPhases,
19293       { "supportedCamelPhases", "gsm_map.ms.supportedCamelPhases",
19294         FT_BYTES, BASE_NONE, NULL, 0,
19295         "gsm_map_ms.SupportedCamelPhases", HFILL }},
19296     { &hf_gsm_map_ms_solsaSupportIndicator,
19297       { "solsaSupportIndicator", "gsm_map.ms.solsaSupportIndicator",
19298         FT_NONE, BASE_NONE, NULL, 0,
19299         "gsm_map_ms.NULL", HFILL }},
19300     { &hf_gsm_map_ms_istSupportIndicator,
19301       { "istSupportIndicator", "gsm_map.ms.istSupportIndicator",
19302         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
19303         "gsm_map_ms.IST_SupportIndicator", HFILL }},
19304     { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity,
19305       { "superChargerSupportedInServingNetworkEntity", "gsm_map.ms.superChargerSupportedInServingNetworkEntity",
19306         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SuperChargerInfo_vals), 0,
19307         "gsm_map_ms.SuperChargerInfo", HFILL }},
19308     { &hf_gsm_map_ms_longFTN_Supported,
19309       { "longFTN-Supported", "gsm_map.ms.longFTN_Supported",
19310         FT_NONE, BASE_NONE, NULL, 0,
19311         "gsm_map_ms.NULL", HFILL }},
19312     { &hf_gsm_map_ms_supportedLCS_CapabilitySets,
19313       { "supportedLCS-CapabilitySets", "gsm_map.ms.supportedLCS_CapabilitySets",
19314         FT_BYTES, BASE_NONE, NULL, 0,
19315         "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }},
19316     { &hf_gsm_map_ms_offeredCamel4CSIs,
19317       { "offeredCamel4CSIs", "gsm_map.ms.offeredCamel4CSIs",
19318         FT_BYTES, BASE_NONE, NULL, 0,
19319         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
19320     { &hf_gsm_map_ms_supportedRAT_TypesIndicator,
19321       { "supportedRAT-TypesIndicator", "gsm_map.ms.supportedRAT_TypesIndicator",
19322         FT_BYTES, BASE_NONE, NULL, 0,
19323         "gsm_map_ms.SupportedRAT_Types", HFILL }},
19324     { &hf_gsm_map_ms_longGroupID_Supported,
19325       { "longGroupID-Supported", "gsm_map.ms.longGroupID_Supported",
19326         FT_NONE, BASE_NONE, NULL, 0,
19327         "gsm_map_ms.NULL", HFILL }},
19328     { &hf_gsm_map_ms_sendSubscriberData,
19329       { "sendSubscriberData", "gsm_map.ms.sendSubscriberData",
19330         FT_NONE, BASE_NONE, NULL, 0,
19331         "gsm_map_ms.NULL", HFILL }},
19332     { &hf_gsm_map_ms_subscriberDataStored,
19333       { "subscriberDataStored", "gsm_map.ms.subscriberDataStored",
19334         FT_BYTES, BASE_NONE, NULL, 0,
19335         "gsm_map_ms.AgeIndicator", HFILL }},
19336     { &hf_gsm_map_ms_hlr_Number,
19337       { "hlr-Number", "gsm_map.ms.hlr_Number",
19338         FT_BYTES, BASE_NONE, NULL, 0,
19339         "gsm_map.ISDN_AddressString", HFILL }},
19340     { &hf_gsm_map_ms_add_Capability,
19341       { "add-Capability", "gsm_map.ms.add_Capability",
19342         FT_NONE, BASE_NONE, NULL, 0,
19343         "gsm_map_ms.NULL", HFILL }},
19344     { &hf_gsm_map_ms_pagingArea_Capability,
19345       { "pagingArea-Capability", "gsm_map.ms.pagingArea_Capability",
19346         FT_NONE, BASE_NONE, NULL, 0,
19347         "gsm_map_ms.NULL", HFILL }},
19348     { &hf_gsm_map_ms_imeisv,
19349       { "imeisv", "gsm_map.ms.imeisv",
19350         FT_BYTES, BASE_NONE, NULL, 0,
19351         "gsm_map.IMEI", HFILL }},
19352     { &hf_gsm_map_ms_PagingArea_item,
19353       { "LocationArea", "gsm_map.ms.LocationArea",
19354         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LocationArea_vals), 0,
19355         "gsm_map_ms.LocationArea", HFILL }},
19356     { &hf_gsm_map_ms_laiFixedLength,
19357       { "laiFixedLength", "gsm_map.ms.laiFixedLength",
19358         FT_BYTES, BASE_NONE, NULL, 0,
19359         "gsm_map.LAIFixedLength", HFILL }},
19360     { &hf_gsm_map_ms_lac,
19361       { "lac", "gsm_map.ms.lac",
19362         FT_BYTES, BASE_NONE, NULL, 0,
19363         "gsm_map_ms.LAC", HFILL }},
19364     { &hf_gsm_map_ms_identity,
19365       { "identity", "gsm_map.ms.identity",
19366         FT_UINT32, BASE_DEC, VALS(gsm_map_Identity_vals), 0,
19367         "gsm_map.Identity", HFILL }},
19368     { &hf_gsm_map_ms_cancellationType,
19369       { "cancellationType", "gsm_map.ms.cancellationType",
19370         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CancellationType_vals), 0,
19371         "gsm_map_ms.CancellationType", HFILL }},
19372     { &hf_gsm_map_ms_typeOfUpdate,
19373       { "typeOfUpdate", "gsm_map.ms.typeOfUpdate",
19374         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_TypeOfUpdate_vals), 0,
19375         "gsm_map_ms.TypeOfUpdate", HFILL }},
19376     { &hf_gsm_map_ms_sgsn_Number,
19377       { "sgsn-Number", "gsm_map.ms.sgsn_Number",
19378         FT_BYTES, BASE_NONE, NULL, 0,
19379         "gsm_map.ISDN_AddressString", HFILL }},
19380     { &hf_gsm_map_ms_freezeTMSI,
19381       { "freezeTMSI", "gsm_map.ms.freezeTMSI",
19382         FT_NONE, BASE_NONE, NULL, 0,
19383         "gsm_map_ms.NULL", HFILL }},
19384     { &hf_gsm_map_ms_freezeP_TMSI,
19385       { "freezeP-TMSI", "gsm_map.ms.freezeP_TMSI",
19386         FT_NONE, BASE_NONE, NULL, 0,
19387         "gsm_map_ms.NULL", HFILL }},
19388     { &hf_gsm_map_ms_freezeM_TMSI,
19389       { "freezeM-TMSI", "gsm_map.ms.freezeM_TMSI",
19390         FT_NONE, BASE_NONE, NULL, 0,
19391         "gsm_map_ms.NULL", HFILL }},
19392     { &hf_gsm_map_ms_tmsi,
19393       { "tmsi", "gsm_map.ms.tmsi",
19394         FT_BYTES, BASE_NONE, NULL, 0,
19395         "gsm_map.TMSI", HFILL }},
19396     { &hf_gsm_map_ms_numberOfRequestedVectors,
19397       { "numberOfRequestedVectors", "gsm_map.ms.numberOfRequestedVectors",
19398         FT_UINT32, BASE_DEC, NULL, 0,
19399         "gsm_map_ms.NumberOfRequestedVectors", HFILL }},
19400     { &hf_gsm_map_ms_segmentationProhibited,
19401       { "segmentationProhibited", "gsm_map.ms.segmentationProhibited",
19402         FT_NONE, BASE_NONE, NULL, 0,
19403         "gsm_map_ms.NULL", HFILL }},
19404     { &hf_gsm_map_ms_previous_LAI,
19405       { "previous-LAI", "gsm_map.ms.previous_LAI",
19406         FT_BYTES, BASE_NONE, NULL, 0,
19407         "gsm_map.LAIFixedLength", HFILL }},
19408     { &hf_gsm_map_ms_hopCounter,
19409       { "hopCounter", "gsm_map.ms.hopCounter",
19410         FT_UINT32, BASE_DEC, NULL, 0,
19411         "gsm_map_ms.HopCounter", HFILL }},
19412     { &hf_gsm_map_ms_authenticationSetList,
19413       { "authenticationSetList", "gsm_map.ms.authenticationSetList",
19414         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AuthenticationSetList_vals), 0,
19415         "gsm_map_ms.AuthenticationSetList", HFILL }},
19416     { &hf_gsm_map_ms_currentSecurityContext,
19417       { "currentSecurityContext", "gsm_map.ms.currentSecurityContext",
19418         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CurrentSecurityContext_vals), 0,
19419         "gsm_map_ms.CurrentSecurityContext", HFILL }},
19420     { &hf_gsm_map_ms_tripletList,
19421       { "tripletList", "gsm_map.ms.tripletList",
19422         FT_UINT32, BASE_DEC, NULL, 0,
19423         "gsm_map_ms.TripletList", HFILL }},
19424     { &hf_gsm_map_ms_quintupletList,
19425       { "quintupletList", "gsm_map.ms.quintupletList",
19426         FT_UINT32, BASE_DEC, NULL, 0,
19427         "gsm_map_ms.QuintupletList", HFILL }},
19428     { &hf_gsm_map_ms_TripletList_item,
19429       { "AuthenticationTriplet", "gsm_map.ms.AuthenticationTriplet",
19430         FT_NONE, BASE_NONE, NULL, 0,
19431         "gsm_map_ms.AuthenticationTriplet", HFILL }},
19432     { &hf_gsm_map_ms_QuintupletList_item,
19433       { "AuthenticationQuintuplet", "gsm_map.ms.AuthenticationQuintuplet",
19434         FT_NONE, BASE_NONE, NULL, 0,
19435         "gsm_map_ms.AuthenticationQuintuplet", HFILL }},
19436     { &hf_gsm_map_ms_rand,
19437       { "rand", "gsm_map.ms.rand",
19438         FT_BYTES, BASE_NONE, NULL, 0,
19439         "gsm_map_ms.RAND", HFILL }},
19440     { &hf_gsm_map_ms_sres,
19441       { "sres", "gsm_map.ms.sres",
19442         FT_BYTES, BASE_NONE, NULL, 0,
19443         "gsm_map_ms.SRES", HFILL }},
19444     { &hf_gsm_map_ms_kc,
19445       { "kc", "gsm_map.ms.kc",
19446         FT_BYTES, BASE_NONE, NULL, 0,
19447         "gsm_map_ms.Kc", HFILL }},
19448     { &hf_gsm_map_ms_xres,
19449       { "xres", "gsm_map.ms.xres",
19450         FT_BYTES, BASE_NONE, NULL, 0,
19451         "gsm_map_ms.XRES", HFILL }},
19452     { &hf_gsm_map_ms_ck,
19453       { "ck", "gsm_map.ms.ck",
19454         FT_BYTES, BASE_NONE, NULL, 0,
19455         "gsm_map_ms.CK", HFILL }},
19456     { &hf_gsm_map_ms_ik,
19457       { "ik", "gsm_map.ms.ik",
19458         FT_BYTES, BASE_NONE, NULL, 0,
19459         "gsm_map_ms.IK", HFILL }},
19460     { &hf_gsm_map_ms_autn,
19461       { "autn", "gsm_map.ms.autn",
19462         FT_BYTES, BASE_NONE, NULL, 0,
19463         "gsm_map_ms.AUTN", HFILL }},
19464     { &hf_gsm_map_ms_gsm_SecurityContextData,
19465       { "gsm-SecurityContextData", "gsm_map.ms.gsm_SecurityContextData",
19466         FT_NONE, BASE_NONE, NULL, 0,
19467         "gsm_map_ms.GSM_SecurityContextData", HFILL }},
19468     { &hf_gsm_map_ms_umts_SecurityContextData,
19469       { "umts-SecurityContextData", "gsm_map.ms.umts_SecurityContextData",
19470         FT_NONE, BASE_NONE, NULL, 0,
19471         "gsm_map_ms.UMTS_SecurityContextData", HFILL }},
19472     { &hf_gsm_map_ms_cksn,
19473       { "cksn", "gsm_map.ms.cksn",
19474         FT_BYTES, BASE_NONE, NULL, 0,
19475         "gsm_map_ms.Cksn", HFILL }},
19476     { &hf_gsm_map_ms_ksi,
19477       { "ksi", "gsm_map.ms.ksi",
19478         FT_BYTES, BASE_NONE, NULL, 0,
19479         "gsm_map_ms.KSI", HFILL }},
19480     { &hf_gsm_map_ms_failureCause,
19481       { "failureCause", "gsm_map.ms.failureCause",
19482         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_FailureCause_vals), 0,
19483         "gsm_map_ms.FailureCause", HFILL }},
19484     { &hf_gsm_map_ms_re_attempt,
19485       { "re-attempt", "gsm_map.ms.re_attempt",
19486         FT_BOOLEAN, BASE_NONE, NULL, 0,
19487         "gsm_map_ms.BOOLEAN", HFILL }},
19488     { &hf_gsm_map_ms_accessType,
19489       { "accessType", "gsm_map.ms.accessType",
19490         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AccessType_vals), 0,
19491         "gsm_map_ms.AccessType", HFILL }},
19492     { &hf_gsm_map_ms_sgsn_Address,
19493       { "sgsn-Address", "gsm_map.ms.sgsn_Address",
19494         FT_BYTES, BASE_NONE, NULL, 0,
19495         "gsm_map_ms.GSN_Address", HFILL }},
19496     { &hf_gsm_map_ms_sgsn_Capability,
19497       { "sgsn-Capability", "gsm_map.ms.sgsn_Capability",
19498         FT_NONE, BASE_NONE, NULL, 0,
19499         "gsm_map_ms.SGSN_Capability", HFILL }},
19500     { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE,
19501       { "ps-LCS-NotSupportedByUE", "gsm_map.ms.ps_LCS_NotSupportedByUE",
19502         FT_NONE, BASE_NONE, NULL, 0,
19503         "gsm_map_ms.NULL", HFILL }},
19504     { &hf_gsm_map_ms_eps_info,
19505       { "eps-info", "gsm_map.ms.eps_info",
19506         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EPS_Info_vals), 0,
19507         "gsm_map_ms.EPS_Info", HFILL }},
19508     { &hf_gsm_map_ms_servingNodeTypeIndicator,
19509       { "servingNodeTypeIndicator", "gsm_map.ms.servingNodeTypeIndicator",
19510         FT_NONE, BASE_NONE, NULL, 0,
19511         "gsm_map_ms.NULL", HFILL }},
19512     { &hf_gsm_map_ms_usedRAT_Type,
19513       { "usedRAT-Type", "gsm_map.ms.usedRAT_Type",
19514         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Used_RAT_Type_vals), 0,
19515         "gsm_map_ms.Used_RAT_Type", HFILL }},
19516     { &hf_gsm_map_ms_pdn_gw_update,
19517       { "pdn-gw-update", "gsm_map.ms.pdn_gw_update",
19518         FT_NONE, BASE_NONE, NULL, 0,
19519         "gsm_map_ms.PDN_GW_Update", HFILL }},
19520     { &hf_gsm_map_ms_isr_Information,
19521       { "isr-Information", "gsm_map.ms.isr_Information",
19522         FT_BYTES, BASE_NONE, NULL, 0,
19523         "gsm_map_ms.ISR_Information", HFILL }},
19524     { &hf_gsm_map_ms_apn,
19525       { "apn", "gsm_map.ms.apn",
19526         FT_BYTES, BASE_NONE, NULL, 0,
19527         "gsm_map_ms.APN", HFILL }},
19528     { &hf_gsm_map_ms_pdn_gw_Identity,
19529       { "pdn-gw-Identity", "gsm_map.ms.pdn_gw_Identity",
19530         FT_NONE, BASE_NONE, NULL, 0,
19531         "gsm_map_ms.PDN_GW_Identity", HFILL }},
19532     { &hf_gsm_map_ms_contextId,
19533       { "contextId", "gsm_map.ms.contextId",
19534         FT_UINT32, BASE_DEC, NULL, 0,
19535         "gsm_map_ms.ContextId", HFILL }},
19536     { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator,
19537       { "gprsEnhancementsSupportIndicator", "gsm_map.ms.gprsEnhancementsSupportIndicator",
19538         FT_NONE, BASE_NONE, NULL, 0,
19539         "gsm_map_ms.NULL", HFILL }},
19540     { &hf_gsm_map_ms_smsCallBarringSupportIndicator,
19541       { "smsCallBarringSupportIndicator", "gsm_map.ms.smsCallBarringSupportIndicator",
19542         FT_NONE, BASE_NONE, NULL, 0,
19543         "gsm_map_ms.NULL", HFILL }},
19544     { &hf_gsm_map_ms_supportedFeatures,
19545       { "supportedFeatures", "gsm_map.ms.supportedFeatures",
19546         FT_BYTES, BASE_NONE, NULL, 0,
19547         "gsm_map_ms.SupportedFeatures", HFILL }},
19548     { &hf_gsm_map_ms_sgsn_mmeSeparationSupported,
19549       { "sgsn-mmeSeparationSupported", "gsm_map.ms.sgsn_mmeSeparationSupported",
19550         FT_NONE, BASE_NONE, NULL, 0,
19551         "gsm_map_ms.NULL", HFILL }},
19552     { &hf_gsm_map_ms_an_APDU,
19553       { "an-APDU", "gsm_map.ms.an_APDU",
19554         FT_NONE, BASE_NONE, NULL, 0,
19555         "gsm_map.AccessNetworkSignalInfo", HFILL }},
19556     { &hf_gsm_map_ms_integrityProtectionInfo,
19557       { "integrityProtectionInfo", "gsm_map.ms.integrityProtectionInfo",
19558         FT_BYTES, BASE_NONE, NULL, 0,
19559         "gsm_map_ms.IntegrityProtectionInformation", HFILL }},
19560     { &hf_gsm_map_ms_encryptionInfo,
19561       { "encryptionInfo", "gsm_map.ms.encryptionInfo",
19562         FT_BYTES, BASE_NONE, NULL, 0,
19563         "gsm_map_ms.EncryptionInformation", HFILL }},
19564     { &hf_gsm_map_ms_keyStatus,
19565       { "keyStatus", "gsm_map.ms.keyStatus",
19566         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_KeyStatus_vals), 0,
19567         "gsm_map_ms.KeyStatus", HFILL }},
19568     { &hf_gsm_map_ms_allowedGSM_Algorithms,
19569       { "allowedGSM-Algorithms", "gsm_map.ms.allowedGSM_Algorithms",
19570         FT_BYTES, BASE_NONE, NULL, 0,
19571         "gsm_map_ms.AllowedGSM_Algorithms", HFILL }},
19572     { &hf_gsm_map_ms_allowedUMTS_Algorithms,
19573       { "allowedUMTS-Algorithms", "gsm_map.ms.allowedUMTS_Algorithms",
19574         FT_NONE, BASE_NONE, NULL, 0,
19575         "gsm_map_ms.AllowedUMTS_Algorithms", HFILL }},
19576     { &hf_gsm_map_ms_radioResourceInformation,
19577       { "radioResourceInformation", "gsm_map.ms.radioResourceInformation",
19578         FT_BYTES, BASE_NONE, NULL, 0,
19579         "gsm_map_ms.RadioResourceInformation", HFILL }},
19580     { &hf_gsm_map_ms_radioResourceList,
19581       { "radioResourceList", "gsm_map.ms.radioResourceList",
19582         FT_UINT32, BASE_DEC, NULL, 0,
19583         "gsm_map_ms.RadioResourceList", HFILL }},
19584     { &hf_gsm_map_ms_bssmap_ServiceHandover,
19585       { "bssmap-ServiceHandover", "gsm_map.ms.bssmap_ServiceHandover",
19586         FT_BYTES, BASE_NONE, NULL, 0,
19587         "gsm_map_ms.BSSMAP_ServiceHandover", HFILL }},
19588     { &hf_gsm_map_ms_ranap_ServiceHandover,
19589       { "ranap-ServiceHandover", "gsm_map.ms.ranap_ServiceHandover",
19590         FT_BYTES, BASE_NONE, NULL, 0,
19591         "gsm_map_ms.RANAP_ServiceHandover", HFILL }},
19592     { &hf_gsm_map_ms_bssmap_ServiceHandoverList,
19593       { "bssmap-ServiceHandoverList", "gsm_map.ms.bssmap_ServiceHandoverList",
19594         FT_UINT32, BASE_DEC, NULL, 0,
19595         "gsm_map_ms.BSSMAP_ServiceHandoverList", HFILL }},
19596     { &hf_gsm_map_ms_currentlyUsedCodec,
19597       { "currentlyUsedCodec", "gsm_map.ms.currentlyUsedCodec",
19598         FT_BYTES, BASE_NONE, NULL, 0,
19599         "gsm_map_ms.Codec", HFILL }},
19600     { &hf_gsm_map_ms_iuSupportedCodecsList,
19601       { "iuSupportedCodecsList", "gsm_map.ms.iuSupportedCodecsList",
19602         FT_NONE, BASE_NONE, NULL, 0,
19603         "gsm_map_ms.SupportedCodecsList", HFILL }},
19604     { &hf_gsm_map_ms_rab_ConfigurationIndicator,
19605       { "rab-ConfigurationIndicator", "gsm_map.ms.rab_ConfigurationIndicator",
19606         FT_NONE, BASE_NONE, NULL, 0,
19607         "gsm_map_ms.NULL", HFILL }},
19608     { &hf_gsm_map_ms_iuSelectedCodec,
19609       { "iuSelectedCodec", "gsm_map.ms.iuSelectedCodec",
19610         FT_BYTES, BASE_NONE, NULL, 0,
19611         "gsm_map_ms.Codec", HFILL }},
19612     { &hf_gsm_map_ms_alternativeChannelType,
19613       { "alternativeChannelType", "gsm_map.ms.alternativeChannelType",
19614         FT_BYTES, BASE_NONE, NULL, 0,
19615         "gsm_map_ms.RadioResourceInformation", HFILL }},
19616     { &hf_gsm_map_ms_tracePropagationList,
19617       { "tracePropagationList", "gsm_map.ms.tracePropagationList",
19618         FT_NONE, BASE_NONE, NULL, 0,
19619         "gsm_map_om.TracePropagationList", HFILL }},
19620     { &hf_gsm_map_ms_integrityProtectionAlgorithms,
19621       { "integrityProtectionAlgorithms", "gsm_map.ms.integrityProtectionAlgorithms",
19622         FT_BYTES, BASE_NONE, NULL, 0,
19623         "gsm_map_ms.PermittedIntegrityProtectionAlgorithms", HFILL }},
19624     { &hf_gsm_map_ms_encryptionAlgorithms,
19625       { "encryptionAlgorithms", "gsm_map.ms.encryptionAlgorithms",
19626         FT_BYTES, BASE_NONE, NULL, 0,
19627         "gsm_map_ms.PermittedEncryptionAlgorithms", HFILL }},
19628     { &hf_gsm_map_ms_targetCellId,
19629       { "targetCellId", "gsm_map.ms.targetCellId",
19630         FT_BYTES, BASE_NONE, NULL, 0,
19631         "gsm_map.GlobalCellId", HFILL }},
19632     { &hf_gsm_map_ms_ho_NumberNotRequired,
19633       { "ho-NumberNotRequired", "gsm_map.ms.ho_NumberNotRequired",
19634         FT_NONE, BASE_NONE, NULL, 0,
19635         "gsm_map_ms.NULL", HFILL }},
19636     { &hf_gsm_map_ms_targetRNCId,
19637       { "targetRNCId", "gsm_map.ms.targetRNCId",
19638         FT_BYTES, BASE_NONE, NULL, 0,
19639         "gsm_map_ms.RNCId", HFILL }},
19640     { &hf_gsm_map_ms_multipleBearerRequested,
19641       { "multipleBearerRequested", "gsm_map.ms.multipleBearerRequested",
19642         FT_NONE, BASE_NONE, NULL, 0,
19643         "gsm_map_ms.NULL", HFILL }},
19644     { &hf_gsm_map_ms_rab_Id,
19645       { "rab-Id", "gsm_map.ms.rab_Id",
19646         FT_UINT32, BASE_DEC, NULL, 0,
19647         "gsm_map_ms.RAB_Id", HFILL }},
19648     { &hf_gsm_map_ms_asciCallReference,
19649       { "asciCallReference", "gsm_map.ms.asciCallReference",
19650         FT_BYTES, BASE_NONE, NULL, 0,
19651         "gsm_map.ASCI_CallReference", HFILL }},
19652     { &hf_gsm_map_ms_geran_classmark,
19653       { "geran-classmark", "gsm_map.ms.geran_classmark",
19654         FT_BYTES, BASE_NONE, NULL, 0,
19655         "gsm_map_ms.GERAN_Classmark", HFILL }},
19656     { &hf_gsm_map_ms_iuCurrentlyUsedCodec,
19657       { "iuCurrentlyUsedCodec", "gsm_map.ms.iuCurrentlyUsedCodec",
19658         FT_BYTES, BASE_NONE, NULL, 0,
19659         "gsm_map_ms.Codec", HFILL }},
19660     { &hf_gsm_map_ms_uesbi_Iu,
19661       { "uesbi-Iu", "gsm_map.ms.uesbi_Iu",
19662         FT_NONE, BASE_NONE, NULL, 0,
19663         "gsm_map_ms.UESBI_Iu", HFILL }},
19664     { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item,
19665       { "BSSMAP-ServiceHandoverInfo", "gsm_map.ms.BSSMAP_ServiceHandoverInfo",
19666         FT_NONE, BASE_NONE, NULL, 0,
19667         "gsm_map_ms.BSSMAP_ServiceHandoverInfo", HFILL }},
19668     { &hf_gsm_map_ms_RadioResourceList_item,
19669       { "RadioResource", "gsm_map.ms.RadioResource",
19670         FT_NONE, BASE_NONE, NULL, 0,
19671         "gsm_map_ms.RadioResource", HFILL }},
19672     { &hf_gsm_map_ms_handoverNumber,
19673       { "handoverNumber", "gsm_map.ms.handoverNumber",
19674         FT_BYTES, BASE_NONE, NULL, 0,
19675         "gsm_map.ISDN_AddressString", HFILL }},
19676     { &hf_gsm_map_ms_relocationNumberList,
19677       { "relocationNumberList", "gsm_map.ms.relocationNumberList",
19678         FT_UINT32, BASE_DEC, NULL, 0,
19679         "gsm_map_ms.RelocationNumberList", HFILL }},
19680     { &hf_gsm_map_ms_multicallBearerInfo,
19681       { "multicallBearerInfo", "gsm_map.ms.multicallBearerInfo",
19682         FT_UINT32, BASE_DEC, NULL, 0,
19683         "gsm_map_ms.MulticallBearerInfo", HFILL }},
19684     { &hf_gsm_map_ms_multipleBearerNotSupported,
19685       { "multipleBearerNotSupported", "gsm_map.ms.multipleBearerNotSupported",
19686         FT_NONE, BASE_NONE, NULL, 0,
19687         "gsm_map_ms.NULL", HFILL }},
19688     { &hf_gsm_map_ms_selectedUMTS_Algorithms,
19689       { "selectedUMTS-Algorithms", "gsm_map.ms.selectedUMTS_Algorithms",
19690         FT_NONE, BASE_NONE, NULL, 0,
19691         "gsm_map_ms.SelectedUMTS_Algorithms", HFILL }},
19692     { &hf_gsm_map_ms_chosenRadioResourceInformation,
19693       { "chosenRadioResourceInformation", "gsm_map.ms.chosenRadioResourceInformation",
19694         FT_NONE, BASE_NONE, NULL, 0,
19695         "gsm_map_ms.ChosenRadioResourceInformation", HFILL }},
19696     { &hf_gsm_map_ms_iuAvailableCodecsList,
19697       { "iuAvailableCodecsList", "gsm_map.ms.iuAvailableCodecsList",
19698         FT_NONE, BASE_NONE, NULL, 0,
19699         "gsm_map_ms.CodecList", HFILL }},
19700     { &hf_gsm_map_ms_integrityProtectionAlgorithm,
19701       { "integrityProtectionAlgorithm", "gsm_map.ms.integrityProtectionAlgorithm",
19702         FT_BYTES, BASE_NONE, NULL, 0,
19703         "gsm_map_ms.ChosenIntegrityProtectionAlgorithm", HFILL }},
19704     { &hf_gsm_map_ms_encryptionAlgorithm,
19705       { "encryptionAlgorithm", "gsm_map.ms.encryptionAlgorithm",
19706         FT_BYTES, BASE_NONE, NULL, 0,
19707         "gsm_map_ms.ChosenEncryptionAlgorithm", HFILL }},
19708     { &hf_gsm_map_ms_chosenChannelInfo,
19709       { "chosenChannelInfo", "gsm_map.ms.chosenChannelInfo",
19710         FT_BYTES, BASE_NONE, NULL, 0,
19711         "gsm_map_ms.ChosenChannelInfo", HFILL }},
19712     { &hf_gsm_map_ms_chosenSpeechVersion,
19713       { "chosenSpeechVersion", "gsm_map.ms.chosenSpeechVersion",
19714         FT_BYTES, BASE_NONE, NULL, 0,
19715         "gsm_map_ms.ChosenSpeechVersion", HFILL }},
19716     { &hf_gsm_map_ms_targetMSC_Number,
19717       { "targetMSC-Number", "gsm_map.ms.targetMSC_Number",
19718         FT_BYTES, BASE_NONE, NULL, 0,
19719         "gsm_map.ISDN_AddressString", HFILL }},
19720     { &hf_gsm_map_ms_selectedRab_Id,
19721       { "selectedRab-Id", "gsm_map.ms.selectedRab_Id",
19722         FT_UINT32, BASE_DEC, NULL, 0,
19723         "gsm_map_ms.RAB_Id", HFILL }},
19724     { &hf_gsm_map_ms_selectedGSM_Algorithm,
19725       { "selectedGSM-Algorithm", "gsm_map.ms.selectedGSM_Algorithm",
19726         FT_BYTES, BASE_NONE, NULL, 0,
19727         "gsm_map_ms.SelectedGSM_Algorithm", HFILL }},
19728     { &hf_gsm_map_ms_iUSelectedCodec,
19729       { "iUSelectedCodec", "gsm_map.ms.iUSelectedCodec",
19730         FT_BYTES, BASE_NONE, NULL, 0,
19731         "gsm_map_ms.Codec", HFILL }},
19732     { &hf_gsm_map_ms_utranCodecList,
19733       { "utranCodecList", "gsm_map.ms.utranCodecList",
19734         FT_NONE, BASE_NONE, NULL, 0,
19735         "gsm_map_ms.CodecList", HFILL }},
19736     { &hf_gsm_map_ms_geranCodecList,
19737       { "geranCodecList", "gsm_map.ms.geranCodecList",
19738         FT_NONE, BASE_NONE, NULL, 0,
19739         "gsm_map_ms.CodecList", HFILL }},
19740     { &hf_gsm_map_ms_codec1,
19741       { "codec1", "gsm_map.ms.codec1",
19742         FT_BYTES, BASE_NONE, NULL, 0,
19743         "gsm_map_ms.Codec", HFILL }},
19744     { &hf_gsm_map_ms_codec2,
19745       { "codec2", "gsm_map.ms.codec2",
19746         FT_BYTES, BASE_NONE, NULL, 0,
19747         "gsm_map_ms.Codec", HFILL }},
19748     { &hf_gsm_map_ms_codec3,
19749       { "codec3", "gsm_map.ms.codec3",
19750         FT_BYTES, BASE_NONE, NULL, 0,
19751         "gsm_map_ms.Codec", HFILL }},
19752     { &hf_gsm_map_ms_codec4,
19753       { "codec4", "gsm_map.ms.codec4",
19754         FT_BYTES, BASE_NONE, NULL, 0,
19755         "gsm_map_ms.Codec", HFILL }},
19756     { &hf_gsm_map_ms_codec5,
19757       { "codec5", "gsm_map.ms.codec5",
19758         FT_BYTES, BASE_NONE, NULL, 0,
19759         "gsm_map_ms.Codec", HFILL }},
19760     { &hf_gsm_map_ms_codec6,
19761       { "codec6", "gsm_map.ms.codec6",
19762         FT_BYTES, BASE_NONE, NULL, 0,
19763         "gsm_map_ms.Codec", HFILL }},
19764     { &hf_gsm_map_ms_codec7,
19765       { "codec7", "gsm_map.ms.codec7",
19766         FT_BYTES, BASE_NONE, NULL, 0,
19767         "gsm_map_ms.Codec", HFILL }},
19768     { &hf_gsm_map_ms_codec8,
19769       { "codec8", "gsm_map.ms.codec8",
19770         FT_BYTES, BASE_NONE, NULL, 0,
19771         "gsm_map_ms.Codec", HFILL }},
19772     { &hf_gsm_map_ms_RelocationNumberList_item,
19773       { "RelocationNumber", "gsm_map.ms.RelocationNumber",
19774         FT_NONE, BASE_NONE, NULL, 0,
19775         "gsm_map_ms.RelocationNumber", HFILL }},
19776     { &hf_gsm_map_ms_immediateResponsePreferred,
19777       { "immediateResponsePreferred", "gsm_map.ms.immediateResponsePreferred",
19778         FT_NONE, BASE_NONE, NULL, 0,
19779         "gsm_map_ms.NULL", HFILL }},
19780     { &hf_gsm_map_ms_re_synchronisationInfo,
19781       { "re-synchronisationInfo", "gsm_map.ms.re_synchronisationInfo",
19782         FT_NONE, BASE_NONE, NULL, 0,
19783         "gsm_map_ms.Re_synchronisationInfo", HFILL }},
19784     { &hf_gsm_map_ms_requestingNodeType,
19785       { "requestingNodeType", "gsm_map.ms.requestingNodeType",
19786         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestingNodeType_vals), 0,
19787         "gsm_map_ms.RequestingNodeType", HFILL }},
19788     { &hf_gsm_map_ms_requestingPLMN_Id,
19789       { "requestingPLMN-Id", "gsm_map.ms.requestingPLMN_Id",
19790         FT_BYTES, BASE_NONE, NULL, 0,
19791         "gsm_map.PLMN_Id", HFILL }},
19792     { &hf_gsm_map_ms_numberOfRequestedAdditional_Vectors,
19793       { "numberOfRequestedAdditional-Vectors", "gsm_map.ms.numberOfRequestedAdditional_Vectors",
19794         FT_UINT32, BASE_DEC, NULL, 0,
19795         "gsm_map_ms.NumberOfRequestedVectors", HFILL }},
19796     { &hf_gsm_map_ms_additionalVectorsAreForEPS,
19797       { "additionalVectorsAreForEPS", "gsm_map.ms.additionalVectorsAreForEPS",
19798         FT_NONE, BASE_NONE, NULL, 0,
19799         "gsm_map_ms.NULL", HFILL }},
19800     { &hf_gsm_map_ms_auts,
19801       { "auts", "gsm_map.ms.auts",
19802         FT_BYTES, BASE_NONE, NULL, 0,
19803         "gsm_map_ms.AUTS", HFILL }},
19804     { &hf_gsm_map_ms_eps_AuthenticationSetList,
19805       { "eps-AuthenticationSetList", "gsm_map.ms.eps_AuthenticationSetList",
19806         FT_UINT32, BASE_DEC, NULL, 0,
19807         "gsm_map_ms.EPS_AuthenticationSetList", HFILL }},
19808     { &hf_gsm_map_ms_EPS_AuthenticationSetList_item,
19809       { "EPC-AV", "gsm_map.ms.EPC_AV",
19810         FT_NONE, BASE_NONE, NULL, 0,
19811         "gsm_map_ms.EPC_AV", HFILL }},
19812     { &hf_gsm_map_ms_kasme,
19813       { "kasme", "gsm_map.ms.kasme",
19814         FT_BYTES, BASE_NONE, NULL, 0,
19815         "gsm_map_ms.KASME", HFILL }},
19816     { &hf_gsm_map_ms_imei,
19817       { "imei", "gsm_map.ms.imei",
19818         FT_BYTES, BASE_NONE, NULL, 0,
19819         "gsm_map.IMEI", HFILL }},
19820     { &hf_gsm_map_ms_requestedEquipmentInfo,
19821       { "requestedEquipmentInfo", "gsm_map.ms.requestedEquipmentInfo",
19822         FT_BYTES, BASE_NONE, NULL, 0,
19823         "gsm_map_ms.RequestedEquipmentInfo", HFILL }},
19824     { &hf_gsm_map_ms_equipmentStatus,
19825       { "equipmentStatus", "gsm_map.ms.equipmentStatus",
19826         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EquipmentStatus_vals), 0,
19827         "gsm_map_ms.EquipmentStatus", HFILL }},
19828     { &hf_gsm_map_ms_bmuef,
19829       { "bmuef", "gsm_map.ms.bmuef",
19830         FT_NONE, BASE_NONE, NULL, 0,
19831         "gsm_map_ms.UESBI_Iu", HFILL }},
19832     { &hf_gsm_map_ms_uesbi_IuA,
19833       { "uesbi-IuA", "gsm_map.ms.uesbi_IuA",
19834         FT_BYTES, BASE_NONE, NULL, 0,
19835         "gsm_map_ms.UESBI_IuA", HFILL }},
19836     { &hf_gsm_map_ms_uesbi_IuB,
19837       { "uesbi-IuB", "gsm_map.ms.uesbi_IuB",
19838         FT_BYTES, BASE_NONE, NULL, 0,
19839         "gsm_map_ms.UESBI_IuB", HFILL }},
19840     { &hf_gsm_map_ms_CSG_SubscriptionDataList_item,
19841       { "CSG-SubscriptionData", "gsm_map.ms.CSG_SubscriptionData",
19842         FT_NONE, BASE_NONE, NULL, 0,
19843         "gsm_map_ms.CSG_SubscriptionData", HFILL }},
19844     { &hf_gsm_map_ms_csg_Id,
19845       { "csg-Id", "gsm_map.ms.csg_Id",
19846         FT_BYTES, BASE_NONE, NULL, 0,
19847         "gsm_map_ms.CSG_Id", HFILL }},
19848     { &hf_gsm_map_ms_expirationDate,
19849       { "expirationDate", "gsm_map.ms.expirationDate",
19850         FT_BYTES, BASE_NONE, NULL, 0,
19851         "gsm_map_ms.Time", HFILL }},
19852     { &hf_gsm_map_ms_apn_oi_Replacement,
19853       { "apn-oi-Replacement", "gsm_map.ms.apn_oi_Replacement",
19854         FT_BYTES, BASE_NONE, NULL, 0,
19855         "gsm_map_ms.APN_OI_Replacement", HFILL }},
19856     { &hf_gsm_map_ms_rfsp_id,
19857       { "rfsp-id", "gsm_map.ms.rfsp_id",
19858         FT_UINT32, BASE_DEC, NULL, 0,
19859         "gsm_map_ms.RFSP_ID", HFILL }},
19860     { &hf_gsm_map_ms_ambr,
19861       { "ambr", "gsm_map.ms.ambr",
19862         FT_NONE, BASE_NONE, NULL, 0,
19863         "gsm_map_ms.AMBR", HFILL }},
19864     { &hf_gsm_map_ms_apn_ConfigurationProfile,
19865       { "apn-ConfigurationProfile", "gsm_map.ms.apn_ConfigurationProfile",
19866         FT_NONE, BASE_NONE, NULL, 0,
19867         "gsm_map_ms.APN_ConfigurationProfile", HFILL }},
19868     { &hf_gsm_map_ms_stn_sr,
19869       { "stn-sr", "gsm_map.ms.stn_sr",
19870         FT_BYTES, BASE_NONE, NULL, 0,
19871         "gsm_map.ISDN_AddressString", HFILL }},
19872     { &hf_gsm_map_ms_defaultContext,
19873       { "defaultContext", "gsm_map.ms.defaultContext",
19874         FT_UINT32, BASE_DEC, NULL, 0,
19875         "gsm_map_ms.ContextId", HFILL }},
19876     { &hf_gsm_map_ms_completeDataListIncluded,
19877       { "completeDataListIncluded", "gsm_map.ms.completeDataListIncluded",
19878         FT_NONE, BASE_NONE, NULL, 0,
19879         "gsm_map_ms.NULL", HFILL }},
19880     { &hf_gsm_map_ms_epsDataList,
19881       { "epsDataList", "gsm_map.ms.epsDataList",
19882         FT_UINT32, BASE_DEC, NULL, 0,
19883         "gsm_map_ms.EPS_DataList", HFILL }},
19884     { &hf_gsm_map_ms_EPS_DataList_item,
19885       { "APN-Configuration", "gsm_map.ms.APN_Configuration",
19886         FT_NONE, BASE_NONE, NULL, 0,
19887         "gsm_map_ms.APN_Configuration", HFILL }},
19888     { &hf_gsm_map_ms_servedPartyIP_Address,
19889       { "servedPartyIP-Address", "gsm_map.ms.servedPartyIP_Address",
19890         FT_BYTES, BASE_NONE, NULL, 0,
19891         "gsm_map_ms.PDP_Address", HFILL }},
19892     { &hf_gsm_map_ms_eps_qos_Subscribed,
19893       { "eps-qos-Subscribed", "gsm_map.ms.eps_qos_Subscribed",
19894         FT_NONE, BASE_NONE, NULL, 0,
19895         "gsm_map_ms.EPS_QoS_Subscribed", HFILL }},
19896     { &hf_gsm_map_ms_pdn_gw_AllocationType,
19897       { "pdn-gw-AllocationType", "gsm_map.ms.pdn_gw_AllocationType",
19898         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PDN_GW_AllocationType_vals), 0,
19899         "gsm_map_ms.PDN_GW_AllocationType", HFILL }},
19900     { &hf_gsm_map_ms_vplmnAddressAllowed,
19901       { "vplmnAddressAllowed", "gsm_map.ms.vplmnAddressAllowed",
19902         FT_NONE, BASE_NONE, NULL, 0,
19903         "gsm_map_ms.NULL", HFILL }},
19904     { &hf_gsm_map_ms_chargingCharacteristics,
19905       { "chargingCharacteristics", "gsm_map.ms.chargingCharacteristics",
19906         FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
19907         "gsm_map_ms.ChargingCharacteristics", HFILL }},
19908     { &hf_gsm_map_ms_specificAPNInfoList,
19909       { "specificAPNInfoList", "gsm_map.ms.specificAPNInfoList",
19910         FT_UINT32, BASE_DEC, NULL, 0,
19911         "gsm_map_ms.SpecificAPNInfoList", HFILL }},
19912     { &hf_gsm_map_ms_qos_Class_Identifier,
19913       { "qos-Class-Identifier", "gsm_map.ms.qos_Class_Identifier",
19914         FT_UINT32, BASE_DEC, NULL, 0,
19915         "gsm_map_ms.QoS_Class_Identifier", HFILL }},
19916     { &hf_gsm_map_ms_allocation_Retention_Priority,
19917       { "allocation-Retention-Priority", "gsm_map.ms.allocation_Retention_Priority",
19918         FT_NONE, BASE_NONE, NULL, 0,
19919         "gsm_map_ms.Allocation_Retention_Priority", HFILL }},
19920     { &hf_gsm_map_ms_max_RequestedBandwidth_UL,
19921       { "max-RequestedBandwidth-UL", "gsm_map.ms.max_RequestedBandwidth_UL",
19922         FT_INT32, BASE_DEC, NULL, 0,
19923         "gsm_map_ms.Bandwidth", HFILL }},
19924     { &hf_gsm_map_ms_max_RequestedBandwidth_DL,
19925       { "max-RequestedBandwidth-DL", "gsm_map.ms.max_RequestedBandwidth_DL",
19926         FT_INT32, BASE_DEC, NULL, 0,
19927         "gsm_map_ms.Bandwidth", HFILL }},
19928     { &hf_gsm_map_ms_SpecificAPNInfoList_item,
19929       { "SpecificAPNInfo", "gsm_map.ms.SpecificAPNInfo",
19930         FT_NONE, BASE_NONE, NULL, 0,
19931         "gsm_map_ms.SpecificAPNInfo", HFILL }},
19932     { &hf_gsm_map_ms_priority_level,
19933       { "priority-level", "gsm_map.ms.priority_level",
19934         FT_INT32, BASE_DEC, NULL, 0,
19935         "gsm_map_ms.INTEGER", HFILL }},
19936     { &hf_gsm_map_ms_pre_emption_capability,
19937       { "pre-emption-capability", "gsm_map.ms.pre_emption_capability",
19938         FT_BOOLEAN, BASE_NONE, NULL, 0,
19939         "gsm_map_ms.BOOLEAN", HFILL }},
19940     { &hf_gsm_map_ms_pre_emption_vulnerability,
19941       { "pre-emption-vulnerability", "gsm_map.ms.pre_emption_vulnerability",
19942         FT_BOOLEAN, BASE_NONE, NULL, 0,
19943         "gsm_map_ms.BOOLEAN", HFILL }},
19944     { &hf_gsm_map_ms_pdn_gw_ipv4_Address,
19945       { "pdn-gw-ipv4-Address", "gsm_map.ms.pdn_gw_ipv4_Address",
19946         FT_BYTES, BASE_NONE, NULL, 0,
19947         "gsm_map_ms.PDP_Address", HFILL }},
19948     { &hf_gsm_map_ms_pdn_gw_ipv6_Address,
19949       { "pdn-gw-ipv6-Address", "gsm_map.ms.pdn_gw_ipv6_Address",
19950         FT_BYTES, BASE_NONE, NULL, 0,
19951         "gsm_map_ms.PDP_Address", HFILL }},
19952     { &hf_gsm_map_ms_pdn_gw_name,
19953       { "pdn-gw-name", "gsm_map.ms.pdn_gw_name",
19954         FT_BYTES, BASE_NONE, NULL, 0,
19955         "gsm_map_ms.FQDN", HFILL }},
19956     { &hf_gsm_map_ms_gmlc_List,
19957       { "gmlc-List", "gsm_map.ms.gmlc_List",
19958         FT_UINT32, BASE_DEC, NULL, 0,
19959         "gsm_map_ms.GMLC_List", HFILL }},
19960     { &hf_gsm_map_ms_lcs_PrivacyExceptionList,
19961       { "lcs-PrivacyExceptionList", "gsm_map.ms.lcs_PrivacyExceptionList",
19962         FT_UINT32, BASE_DEC, NULL, 0,
19963         "gsm_map_ms.LCS_PrivacyExceptionList", HFILL }},
19964     { &hf_gsm_map_ms_molr_List,
19965       { "molr-List", "gsm_map.ms.molr_List",
19966         FT_UINT32, BASE_DEC, NULL, 0,
19967         "gsm_map_ms.MOLR_List", HFILL }},
19968     { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList,
19969       { "add-lcs-PrivacyExceptionList", "gsm_map.ms.add_lcs_PrivacyExceptionList",
19970         FT_UINT32, BASE_DEC, NULL, 0,
19971         "gsm_map_ms.LCS_PrivacyExceptionList", HFILL }},
19972     { &hf_gsm_map_ms_GMLC_List_item,
19973       { "ISDN-AddressString", "gsm_map.ms.ISDN_AddressString",
19974         FT_BYTES, BASE_NONE, NULL, 0,
19975         "gsm_map.ISDN_AddressString", HFILL }},
19976     { &hf_gsm_map_ms_GPRSDataList_item,
19977       { "PDP-Context", "gsm_map.ms.PDP_Context",
19978         FT_NONE, BASE_NONE, NULL, 0,
19979         "gsm_map_ms.PDP_Context", HFILL }},
19980     { &hf_gsm_map_ms_pdp_ContextId,
19981       { "pdp-ContextId", "gsm_map.ms.pdp_ContextId",
19982         FT_UINT32, BASE_DEC, NULL, 0,
19983         "gsm_map_ms.ContextId", HFILL }},
19984     { &hf_gsm_map_ms_pdp_Type,
19985       { "pdp-Type", "gsm_map.ms.pdp_Type",
19986         FT_BYTES, BASE_NONE, NULL, 0,
19987         "gsm_map_ms.PDP_Type", HFILL }},
19988     { &hf_gsm_map_ms_pdp_Address,
19989       { "pdp-Address", "gsm_map.ms.pdp_Address",
19990         FT_BYTES, BASE_NONE, NULL, 0,
19991         "gsm_map_ms.PDP_Address", HFILL }},
19992     { &hf_gsm_map_ms_qos_Subscribed,
19993       { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
19994         FT_BYTES, BASE_NONE, NULL, 0,
19995         "gsm_map_ms.QoS_Subscribed", HFILL }},
19996     { &hf_gsm_map_ms_ext_QoS_Subscribed,
19997       { "ext-QoS-Subscribed", "gsm_map.ms.ext_QoS_Subscribed",
19998         FT_BYTES, BASE_NONE, NULL, 0,
19999         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
20000     { &hf_gsm_map_ms_pdp_ChargingCharacteristics,
20001       { "pdp-ChargingCharacteristics", "gsm_map.ms.pdp_ChargingCharacteristics",
20002         FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
20003         "gsm_map_ms.ChargingCharacteristics", HFILL }},
20004     { &hf_gsm_map_ms_ext2_QoS_Subscribed,
20005       { "ext2-QoS-Subscribed", "gsm_map.ms.ext2_QoS_Subscribed",
20006         FT_BYTES, BASE_NONE, NULL, 0,
20007         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
20008     { &hf_gsm_map_ms_ext3_QoS_Subscribed,
20009       { "ext3-QoS-Subscribed", "gsm_map.ms.ext3_QoS_Subscribed",
20010         FT_BYTES, BASE_NONE, NULL, 0,
20011         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
20012     { &hf_gsm_map_ms_gprsDataList,
20013       { "gprsDataList", "gsm_map.ms.gprsDataList",
20014         FT_UINT32, BASE_DEC, NULL, 0,
20015         "gsm_map_ms.GPRSDataList", HFILL }},
20016     { &hf_gsm_map_ms_gprs_CSI,
20017       { "gprs-CSI", "gsm_map.ms.gprs_CSI",
20018         FT_NONE, BASE_NONE, NULL, 0,
20019         "gsm_map_ms.GPRS_CSI", HFILL }},
20020     { &hf_gsm_map_ms_mo_sms_CSI,
20021       { "mo-sms-CSI", "gsm_map.ms.mo_sms_CSI",
20022         FT_NONE, BASE_NONE, NULL, 0,
20023         "gsm_map_ms.SMS_CSI", HFILL }},
20024     { &hf_gsm_map_ms_mt_sms_CSI,
20025       { "mt-sms-CSI", "gsm_map.ms.mt_sms_CSI",
20026         FT_NONE, BASE_NONE, NULL, 0,
20027         "gsm_map_ms.SMS_CSI", HFILL }},
20028     { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList,
20029       { "mt-smsCAMELTDP-CriteriaList", "gsm_map.ms.mt_smsCAMELTDP_CriteriaList",
20030         FT_UINT32, BASE_DEC, NULL, 0,
20031         "gsm_map_ms.MT_smsCAMELTDP_CriteriaList", HFILL }},
20032     { &hf_gsm_map_ms_mg_csi,
20033       { "mg-csi", "gsm_map.ms.mg_csi",
20034         FT_NONE, BASE_NONE, NULL, 0,
20035         "gsm_map_ms.MG_CSI", HFILL }},
20036     { &hf_gsm_map_ms_gprs_CamelTDPDataList,
20037       { "gprs-CamelTDPDataList", "gsm_map.ms.gprs_CamelTDPDataList",
20038         FT_UINT32, BASE_DEC, NULL, 0,
20039         "gsm_map_ms.GPRS_CamelTDPDataList", HFILL }},
20040     { &hf_gsm_map_ms_camelCapabilityHandling,
20041       { "camelCapabilityHandling", "gsm_map.ms.camelCapabilityHandling",
20042         FT_UINT32, BASE_DEC, NULL, 0,
20043         "gsm_map_ms.CamelCapabilityHandling", HFILL }},
20044     { &hf_gsm_map_ms_notificationToCSE,
20045       { "notificationToCSE", "gsm_map.ms.notificationToCSE",
20046         FT_NONE, BASE_NONE, NULL, 0,
20047         "gsm_map_ms.NULL", HFILL }},
20048     { &hf_gsm_map_ms_csi_Active,
20049       { "csi-Active", "gsm_map.ms.csi_Active",
20050         FT_NONE, BASE_NONE, NULL, 0,
20051         "gsm_map_ms.NULL", HFILL }},
20052     { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item,
20053       { "GPRS-CamelTDPData", "gsm_map.ms.GPRS_CamelTDPData",
20054         FT_NONE, BASE_NONE, NULL, 0,
20055         "gsm_map_ms.GPRS_CamelTDPData", HFILL }},
20056     { &hf_gsm_map_ms_gprs_TriggerDetectionPoint,
20057       { "gprs-TriggerDetectionPoint", "gsm_map.ms.gprs_TriggerDetectionPoint",
20058         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRS_TriggerDetectionPoint_vals), 0,
20059         "gsm_map_ms.GPRS_TriggerDetectionPoint", HFILL }},
20060     { &hf_gsm_map_ms_serviceKey,
20061       { "serviceKey", "gsm_map.ms.serviceKey",
20062         FT_UINT32, BASE_DEC, NULL, 0,
20063         "gsm_map_ms.ServiceKey", HFILL }},
20064     { &hf_gsm_map_ms_gsmSCF_Address,
20065       { "gsmSCF-Address", "gsm_map.ms.gsmSCF_Address",
20066         FT_BYTES, BASE_NONE, NULL, 0,
20067         "gsm_map.ISDN_AddressString", HFILL }},
20068     { &hf_gsm_map_ms_defaultSessionHandling,
20069       { "defaultSessionHandling", "gsm_map.ms.defaultSessionHandling",
20070         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultGPRS_Handling_vals), 0,
20071         "gsm_map_ms.DefaultGPRS_Handling", HFILL }},
20072     { &hf_gsm_map_ms_LSADataList_item,
20073       { "LSAData", "gsm_map.ms.LSAData",
20074         FT_NONE, BASE_NONE, NULL, 0,
20075         "gsm_map_ms.LSAData", HFILL }},
20076     { &hf_gsm_map_ms_lsaIdentity,
20077       { "lsaIdentity", "gsm_map.ms.lsaIdentity",
20078         FT_BYTES, BASE_NONE, NULL, 0,
20079         "gsm_map_ms.LSAIdentity", HFILL }},
20080     { &hf_gsm_map_ms_lsaAttributes,
20081       { "lsaAttributes", "gsm_map.ms.lsaAttributes",
20082         FT_BYTES, BASE_NONE, NULL, 0,
20083         "gsm_map_ms.LSAAttributes", HFILL }},
20084     { &hf_gsm_map_ms_lsaActiveModeIndicator,
20085       { "lsaActiveModeIndicator", "gsm_map.ms.lsaActiveModeIndicator",
20086         FT_NONE, BASE_NONE, NULL, 0,
20087         "gsm_map_ms.NULL", HFILL }},
20088     { &hf_gsm_map_ms_lsaOnlyAccessIndicator,
20089       { "lsaOnlyAccessIndicator", "gsm_map.ms.lsaOnlyAccessIndicator",
20090         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAOnlyAccessIndicator_vals), 0,
20091         "gsm_map_ms.LSAOnlyAccessIndicator", HFILL }},
20092     { &hf_gsm_map_ms_lsaDataList,
20093       { "lsaDataList", "gsm_map.ms.lsaDataList",
20094         FT_UINT32, BASE_DEC, NULL, 0,
20095         "gsm_map_ms.LSADataList", HFILL }},
20096     { &hf_gsm_map_ms_msisdn,
20097       { "msisdn", "gsm_map.ms.msisdn",
20098         FT_BYTES, BASE_NONE, NULL, 0,
20099         "gsm_map.ISDN_AddressString", HFILL }},
20100     { &hf_gsm_map_ms_category,
20101       { "category", "gsm_map.ms.category",
20102         FT_BYTES, BASE_NONE, NULL, 0,
20103         "gsm_map_ms.Category", HFILL }},
20104     { &hf_gsm_map_ms_subscriberStatus,
20105       { "subscriberStatus", "gsm_map.ms.subscriberStatus",
20106         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberStatus_vals), 0,
20107         "gsm_map_ms.SubscriberStatus", HFILL }},
20108     { &hf_gsm_map_ms_bearerServiceList,
20109       { "bearerServiceList", "gsm_map.ms.bearerServiceList",
20110         FT_UINT32, BASE_DEC, NULL, 0,
20111         "gsm_map_ms.BearerServiceList", HFILL }},
20112     { &hf_gsm_map_ms_teleserviceList,
20113       { "teleserviceList", "gsm_map.ms.teleserviceList",
20114         FT_UINT32, BASE_DEC, NULL, 0,
20115         "gsm_map_ms.TeleserviceList", HFILL }},
20116     { &hf_gsm_map_ms_provisionedSS,
20117       { "provisionedSS", "gsm_map.ms.provisionedSS",
20118         FT_UINT32, BASE_DEC, NULL, 0,
20119         "gsm_map_ms.Ext_SS_InfoList", HFILL }},
20120     { &hf_gsm_map_ms_odb_Data,
20121       { "odb-Data", "gsm_map.ms.odb_Data",
20122         FT_NONE, BASE_NONE, NULL, 0,
20123         "gsm_map_ms.ODB_Data", HFILL }},
20124     { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature,
20125       { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictionDueToUnsupportedFeature",
20126         FT_NONE, BASE_NONE, NULL, 0,
20127         "gsm_map_ms.NULL", HFILL }},
20128     { &hf_gsm_map_ms_regionalSubscriptionData,
20129       { "regionalSubscriptionData", "gsm_map.ms.regionalSubscriptionData",
20130         FT_UINT32, BASE_DEC, NULL, 0,
20131         "gsm_map_ms.ZoneCodeList", HFILL }},
20132     { &hf_gsm_map_ms_vbsSubscriptionData,
20133       { "vbsSubscriptionData", "gsm_map.ms.vbsSubscriptionData",
20134         FT_UINT32, BASE_DEC, NULL, 0,
20135         "gsm_map_ms.VBSDataList", HFILL }},
20136     { &hf_gsm_map_ms_vgcsSubscriptionData,
20137       { "vgcsSubscriptionData", "gsm_map.ms.vgcsSubscriptionData",
20138         FT_UINT32, BASE_DEC, NULL, 0,
20139         "gsm_map_ms.VGCSDataList", HFILL }},
20140     { &hf_gsm_map_ms_vlrCamelSubscriptionInfo,
20141       { "vlrCamelSubscriptionInfo", "gsm_map.ms.vlrCamelSubscriptionInfo",
20142         FT_NONE, BASE_NONE, NULL, 0,
20143         "gsm_map_ms.VlrCamelSubscriptionInfo", HFILL }},
20144     { &hf_gsm_map_ms_BearerServiceList_item,
20145       { "Ext-BearerServiceCode", "gsm_map.ms.Ext_BearerServiceCode",
20146         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
20147         "gsm_map.Ext_BearerServiceCode", HFILL }},
20148     { &hf_gsm_map_ms_TeleserviceList_item,
20149       { "Ext-TeleserviceCode", "gsm_map.ms.Ext_TeleserviceCode",
20150         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
20151         "gsm_map.Ext_TeleserviceCode", HFILL }},
20152     { &hf_gsm_map_ms_odb_GeneralData,
20153       { "odb-GeneralData", "gsm_map.ms.odb_GeneralData",
20154         FT_BYTES, BASE_NONE, NULL, 0,
20155         "gsm_map_ms.ODB_GeneralData", HFILL }},
20156     { &hf_gsm_map_ms_odb_HPLMN_Data,
20157       { "odb-HPLMN-Data", "gsm_map.ms.odb_HPLMN_Data",
20158         FT_BYTES, BASE_NONE, NULL, 0,
20159         "gsm_map_ms.ODB_HPLMN_Data", HFILL }},
20160     { &hf_gsm_map_ms_Ext_SS_InfoList_item,
20161       { "Ext-SS-Info", "gsm_map.ms.Ext_SS_Info",
20162         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_Info_vals), 0,
20163         "gsm_map_ms.Ext_SS_Info", HFILL }},
20164     { &hf_gsm_map_ms_forwardingInfo,
20165       { "forwardingInfo", "gsm_map.ms.forwardingInfo",
20166         FT_NONE, BASE_NONE, NULL, 0,
20167         "gsm_map_ms.Ext_ForwInfo", HFILL }},
20168     { &hf_gsm_map_ms_callBarringInfo,
20169       { "callBarringInfo", "gsm_map.ms.callBarringInfo",
20170         FT_NONE, BASE_NONE, NULL, 0,
20171         "gsm_map_ms.Ext_CallBarInfo", HFILL }},
20172     { &hf_gsm_map_ms_cug_Info,
20173       { "cug-Info", "gsm_map.ms.cug_Info",
20174         FT_NONE, BASE_NONE, NULL, 0,
20175         "gsm_map_ms.CUG_Info", HFILL }},
20176     { &hf_gsm_map_ms_ss_Data,
20177       { "ss-Data", "gsm_map.ms.ss_Data",
20178         FT_NONE, BASE_NONE, NULL, 0,
20179         "gsm_map_ms.Ext_SS_Data", HFILL }},
20180     { &hf_gsm_map_ms_emlpp_Info,
20181       { "emlpp-Info", "gsm_map.ms.emlpp_Info",
20182         FT_NONE, BASE_NONE, NULL, 0,
20183         "gsm_map.EMLPP_Info", HFILL }},
20184     { &hf_gsm_map_ms_ss_Code,
20185       { "ss-Code", "gsm_map.ms.ss_Code",
20186         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
20187         "gsm_map.SS_Code", HFILL }},
20188     { &hf_gsm_map_ms_forwardingFeatureList,
20189       { "forwardingFeatureList", "gsm_map.ms.forwardingFeatureList",
20190         FT_UINT32, BASE_DEC, NULL, 0,
20191         "gsm_map_ms.Ext_ForwFeatureList", HFILL }},
20192     { &hf_gsm_map_ms_Ext_ForwFeatureList_item,
20193       { "Ext-ForwFeature", "gsm_map.ms.Ext_ForwFeature",
20194         FT_NONE, BASE_NONE, NULL, 0,
20195         "gsm_map_ms.Ext_ForwFeature", HFILL }},
20196     { &hf_gsm_map_ms_basicService,
20197       { "basicService", "gsm_map.ms.basicService",
20198         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20199         "gsm_map.Ext_BasicServiceCode", HFILL }},
20200     { &hf_gsm_map_ms_ss_Status,
20201       { "ss-Status", "gsm_map.ms.ss_Status",
20202         FT_BYTES, BASE_NONE, NULL, 0,
20203         "gsm_map.Ext_SS_Status", HFILL }},
20204     { &hf_gsm_map_ms_forwardedToNumber,
20205       { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
20206         FT_BYTES, BASE_NONE, NULL, 0,
20207         "gsm_map.ISDN_AddressString", HFILL }},
20208     { &hf_gsm_map_ms_forwardedToSubaddress,
20209       { "forwardedToSubaddress", "gsm_map.ms.forwardedToSubaddress",
20210         FT_BYTES, BASE_NONE, NULL, 0,
20211         "gsm_map.ISDN_SubaddressString", HFILL }},
20212     { &hf_gsm_map_ms_forwardingOptions,
20213       { "forwardingOptions", "gsm_map.ms.forwardingOptions",
20214         FT_BYTES, BASE_NONE, NULL, 0,
20215         "gsm_map_ms.T_forwardingOptions", HFILL }},
20216     { &hf_gsm_map_ms_noReplyConditionTime,
20217       { "noReplyConditionTime", "gsm_map.ms.noReplyConditionTime",
20218         FT_UINT32, BASE_DEC, NULL, 0,
20219         "gsm_map_ms.Ext_NoRepCondTime", HFILL }},
20220     { &hf_gsm_map_ms_longForwardedToNumber,
20221       { "longForwardedToNumber", "gsm_map.ms.longForwardedToNumber",
20222         FT_BYTES, BASE_NONE, NULL, 0,
20223         "gsm_map.FTN_AddressString", HFILL }},
20224     { &hf_gsm_map_ms_callBarringFeatureList,
20225       { "callBarringFeatureList", "gsm_map.ms.callBarringFeatureList",
20226         FT_UINT32, BASE_DEC, NULL, 0,
20227         "gsm_map_ms.Ext_CallBarFeatureList", HFILL }},
20228     { &hf_gsm_map_ms_Ext_CallBarFeatureList_item,
20229       { "Ext-CallBarringFeature", "gsm_map.ms.Ext_CallBarringFeature",
20230         FT_NONE, BASE_NONE, NULL, 0,
20231         "gsm_map_ms.Ext_CallBarringFeature", HFILL }},
20232     { &hf_gsm_map_ms_cug_SubscriptionList,
20233       { "cug-SubscriptionList", "gsm_map.ms.cug_SubscriptionList",
20234         FT_UINT32, BASE_DEC, NULL, 0,
20235         "gsm_map_ms.CUG_SubscriptionList", HFILL }},
20236     { &hf_gsm_map_ms_cug_FeatureList,
20237       { "cug-FeatureList", "gsm_map.ms.cug_FeatureList",
20238         FT_UINT32, BASE_DEC, NULL, 0,
20239         "gsm_map_ms.CUG_FeatureList", HFILL }},
20240     { &hf_gsm_map_ms_CUG_SubscriptionList_item,
20241       { "CUG-Subscription", "gsm_map.ms.CUG_Subscription",
20242         FT_NONE, BASE_NONE, NULL, 0,
20243         "gsm_map_ms.CUG_Subscription", HFILL }},
20244     { &hf_gsm_map_ms_cug_Index,
20245       { "cug-Index", "gsm_map.ms.cug_Index",
20246         FT_UINT32, BASE_DEC, NULL, 0,
20247         "gsm_map_ms.CUG_Index", HFILL }},
20248     { &hf_gsm_map_ms_cug_Interlock,
20249       { "cug-Interlock", "gsm_map.ms.cug_Interlock",
20250         FT_BYTES, BASE_NONE, NULL, 0,
20251         "gsm_map_ms.CUG_Interlock", HFILL }},
20252     { &hf_gsm_map_ms_intraCUG_Options,
20253       { "intraCUG-Options", "gsm_map.ms.intraCUG_Options",
20254         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IntraCUG_Options_vals), 0,
20255         "gsm_map_ms.IntraCUG_Options", HFILL }},
20256     { &hf_gsm_map_ms_basicServiceGroupList,
20257       { "basicServiceGroupList", "gsm_map.ms.basicServiceGroupList",
20258         FT_UINT32, BASE_DEC, NULL, 0,
20259         "gsm_map_ms.Ext_BasicServiceGroupList", HFILL }},
20260     { &hf_gsm_map_ms_CUG_FeatureList_item,
20261       { "CUG-Feature", "gsm_map.ms.CUG_Feature",
20262         FT_NONE, BASE_NONE, NULL, 0,
20263         "gsm_map_ms.CUG_Feature", HFILL }},
20264     { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item,
20265       { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode",
20266         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20267         "gsm_map.Ext_BasicServiceCode", HFILL }},
20268     { &hf_gsm_map_ms_preferentialCUG_Indicator,
20269       { "preferentialCUG-Indicator", "gsm_map.ms.preferentialCUG_Indicator",
20270         FT_UINT32, BASE_DEC, NULL, 0,
20271         "gsm_map_ms.CUG_Index", HFILL }},
20272     { &hf_gsm_map_ms_interCUG_Restrictions,
20273       { "interCUG-Restrictions", "gsm_map.ms.interCUG_Restrictions",
20274         FT_BYTES, BASE_NONE, NULL, 0,
20275         "gsm_map_ms.InterCUG_Restrictions", HFILL }},
20276     { &hf_gsm_map_ms_ss_SubscriptionOption,
20277       { "ss-SubscriptionOption", "gsm_map.ms.ss_SubscriptionOption",
20278         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
20279         "gsm_map_ss.SS_SubscriptionOption", HFILL }},
20280     { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item,
20281       { "LCS-PrivacyClass", "gsm_map.ms.LCS_PrivacyClass",
20282         FT_NONE, BASE_NONE, NULL, 0,
20283         "gsm_map_ms.LCS_PrivacyClass", HFILL }},
20284     { &hf_gsm_map_ms_notificationToMSUser,
20285       { "notificationToMSUser", "gsm_map.ms.notificationToMSUser",
20286         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
20287         "gsm_map_ms.NotificationToMSUser", HFILL }},
20288     { &hf_gsm_map_ms_externalClientList,
20289       { "externalClientList", "gsm_map.ms.externalClientList",
20290         FT_UINT32, BASE_DEC, NULL, 0,
20291         "gsm_map_ms.ExternalClientList", HFILL }},
20292     { &hf_gsm_map_ms_plmnClientList,
20293       { "plmnClientList", "gsm_map.ms.plmnClientList",
20294         FT_UINT32, BASE_DEC, NULL, 0,
20295         "gsm_map_ms.PLMNClientList", HFILL }},
20296     { &hf_gsm_map_ms_ext_externalClientList,
20297       { "ext-externalClientList", "gsm_map.ms.ext_externalClientList",
20298         FT_UINT32, BASE_DEC, NULL, 0,
20299         "gsm_map_ms.Ext_ExternalClientList", HFILL }},
20300     { &hf_gsm_map_ms_serviceTypeList,
20301       { "serviceTypeList", "gsm_map.ms.serviceTypeList",
20302         FT_UINT32, BASE_DEC, NULL, 0,
20303         "gsm_map_ms.ServiceTypeList", HFILL }},
20304     { &hf_gsm_map_ms_ExternalClientList_item,
20305       { "ExternalClient", "gsm_map.ms.ExternalClient",
20306         FT_NONE, BASE_NONE, NULL, 0,
20307         "gsm_map_ms.ExternalClient", HFILL }},
20308     { &hf_gsm_map_ms_PLMNClientList_item,
20309       { "LCSClientInternalID", "gsm_map.ms.LCSClientInternalID",
20310         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
20311         "gsm_map.LCSClientInternalID", HFILL }},
20312     { &hf_gsm_map_ms_Ext_ExternalClientList_item,
20313       { "ExternalClient", "gsm_map.ms.ExternalClient",
20314         FT_NONE, BASE_NONE, NULL, 0,
20315         "gsm_map_ms.ExternalClient", HFILL }},
20316     { &hf_gsm_map_ms_clientIdentity,
20317       { "clientIdentity", "gsm_map.ms.clientIdentity",
20318         FT_NONE, BASE_NONE, NULL, 0,
20319         "gsm_map.LCSClientExternalID", HFILL }},
20320     { &hf_gsm_map_ms_gmlc_Restriction,
20321       { "gmlc-Restriction", "gsm_map.ms.gmlc_Restriction",
20322         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GMLC_Restriction_vals), 0,
20323         "gsm_map_ms.GMLC_Restriction", HFILL }},
20324     { &hf_gsm_map_ms_ServiceTypeList_item,
20325       { "ServiceType", "gsm_map.ms.ServiceType",
20326         FT_NONE, BASE_NONE, NULL, 0,
20327         "gsm_map_ms.ServiceType", HFILL }},
20328     { &hf_gsm_map_ms_serviceTypeIdentity,
20329       { "serviceTypeIdentity", "gsm_map.ms.serviceTypeIdentity",
20330         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
20331         "gsm_map.LCSServiceTypeID", HFILL }},
20332     { &hf_gsm_map_ms_MOLR_List_item,
20333       { "MOLR-Class", "gsm_map.ms.MOLR_Class",
20334         FT_NONE, BASE_NONE, NULL, 0,
20335         "gsm_map_ms.MOLR_Class", HFILL }},
20336     { &hf_gsm_map_ms_ZoneCodeList_item,
20337       { "ZoneCode", "gsm_map.ms.ZoneCode",
20338         FT_BYTES, BASE_NONE, NULL, 0,
20339         "gsm_map_ms.ZoneCode", HFILL }},
20340     { &hf_gsm_map_ms_ss_List,
20341       { "ss-List", "gsm_map.ms.ss_List",
20342         FT_UINT32, BASE_DEC, NULL, 0,
20343         "gsm_map_ss.SS_List", HFILL }},
20344     { &hf_gsm_map_ms_regionalSubscriptionResponse,
20345       { "regionalSubscriptionResponse", "gsm_map.ms.regionalSubscriptionResponse",
20346         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RegionalSubscriptionResponse_vals), 0,
20347         "gsm_map_ms.RegionalSubscriptionResponse", HFILL }},
20348     { &hf_gsm_map_ms_basicServiceList,
20349       { "basicServiceList", "gsm_map.ms.basicServiceList",
20350         FT_UINT32, BASE_DEC, NULL, 0,
20351         "gsm_map_ms.BasicServiceList", HFILL }},
20352     { &hf_gsm_map_ms_regionalSubscriptionIdentifier,
20353       { "regionalSubscriptionIdentifier", "gsm_map.ms.regionalSubscriptionIdentifier",
20354         FT_BYTES, BASE_NONE, NULL, 0,
20355         "gsm_map_ms.ZoneCode", HFILL }},
20356     { &hf_gsm_map_ms_vbsGroupIndication,
20357       { "vbsGroupIndication", "gsm_map.ms.vbsGroupIndication",
20358         FT_NONE, BASE_NONE, NULL, 0,
20359         "gsm_map_ms.NULL", HFILL }},
20360     { &hf_gsm_map_ms_vgcsGroupIndication,
20361       { "vgcsGroupIndication", "gsm_map.ms.vgcsGroupIndication",
20362         FT_NONE, BASE_NONE, NULL, 0,
20363         "gsm_map_ms.NULL", HFILL }},
20364     { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw,
20365       { "camelSubscriptionInfoWithdraw", "gsm_map.ms.camelSubscriptionInfoWithdraw",
20366         FT_NONE, BASE_NONE, NULL, 0,
20367         "gsm_map_ms.NULL", HFILL }},
20368     { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw,
20369       { "gprsSubscriptionDataWithdraw", "gsm_map.ms.gprsSubscriptionDataWithdraw",
20370         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRSSubscriptionDataWithdraw_vals), 0,
20371         "gsm_map_ms.GPRSSubscriptionDataWithdraw", HFILL }},
20372     { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature,
20373       { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsuppportedFeature",
20374         FT_NONE, BASE_NONE, NULL, 0,
20375         "gsm_map_ms.NULL", HFILL }},
20376     { &hf_gsm_map_ms_lsaInformationWithdraw,
20377       { "lsaInformationWithdraw", "gsm_map.ms.lsaInformationWithdraw",
20378         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAInformationWithdraw_vals), 0,
20379         "gsm_map_ms.LSAInformationWithdraw", HFILL }},
20380     { &hf_gsm_map_ms_gmlc_ListWithdraw,
20381       { "gmlc-ListWithdraw", "gsm_map.ms.gmlc_ListWithdraw",
20382         FT_NONE, BASE_NONE, NULL, 0,
20383         "gsm_map_ms.NULL", HFILL }},
20384     { &hf_gsm_map_ms_istInformationWithdraw,
20385       { "istInformationWithdraw", "gsm_map.ms.istInformationWithdraw",
20386         FT_NONE, BASE_NONE, NULL, 0,
20387         "gsm_map_ms.NULL", HFILL }},
20388     { &hf_gsm_map_ms_specificCSI_Withdraw,
20389       { "specificCSI-Withdraw", "gsm_map.ms.specificCSI_Withdraw",
20390         FT_BYTES, BASE_NONE, NULL, 0,
20391         "gsm_map_ms.SpecificCSI_Withdraw", HFILL }},
20392     { &hf_gsm_map_ms_chargingCharacteristicsWithdraw,
20393       { "chargingCharacteristicsWithdraw", "gsm_map.ms.chargingCharacteristicsWithdraw",
20394         FT_NONE, BASE_NONE, NULL, 0,
20395         "gsm_map_ms.NULL", HFILL }},
20396     { &hf_gsm_map_ms_stn_srWithdraw,
20397       { "stn-srWithdraw", "gsm_map.ms.stn_srWithdraw",
20398         FT_NONE, BASE_NONE, NULL, 0,
20399         "gsm_map_ms.NULL", HFILL }},
20400     { &hf_gsm_map_ms_epsSubscriptionDataWithdraw,
20401       { "epsSubscriptionDataWithdraw", "gsm_map.ms.epsSubscriptionDataWithdraw",
20402         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EPS_SubscriptionDataWithdraw_vals), 0,
20403         "gsm_map_ms.EPS_SubscriptionDataWithdraw", HFILL }},
20404     { &hf_gsm_map_ms_apn_oi_replacementWithdraw,
20405       { "apn-oi-replacementWithdraw", "gsm_map.ms.apn_oi_replacementWithdraw",
20406         FT_NONE, BASE_NONE, NULL, 0,
20407         "gsm_map_ms.NULL", HFILL }},
20408     { &hf_gsm_map_ms_csg_SubscriptionDeleted,
20409       { "csg-SubscriptionDeleted", "gsm_map.ms.csg_SubscriptionDeleted",
20410         FT_NONE, BASE_NONE, NULL, 0,
20411         "gsm_map_ms.NULL", HFILL }},
20412     { &hf_gsm_map_ms_allGPRSData,
20413       { "allGPRSData", "gsm_map.ms.allGPRSData",
20414         FT_NONE, BASE_NONE, NULL, 0,
20415         "gsm_map_ms.NULL", HFILL }},
20416     { &hf_gsm_map_ms_contextIdList,
20417       { "contextIdList", "gsm_map.ms.contextIdList",
20418         FT_UINT32, BASE_DEC, NULL, 0,
20419         "gsm_map_ms.ContextIdList", HFILL }},
20420     { &hf_gsm_map_ms_allEPS_Data,
20421       { "allEPS-Data", "gsm_map.ms.allEPS_Data",
20422         FT_NONE, BASE_NONE, NULL, 0,
20423         "gsm_map_ms.NULL", HFILL }},
20424     { &hf_gsm_map_ms_ContextIdList_item,
20425       { "ContextId", "gsm_map.ms.ContextId",
20426         FT_UINT32, BASE_DEC, NULL, 0,
20427         "gsm_map_ms.ContextId", HFILL }},
20428     { &hf_gsm_map_ms_allLSAData,
20429       { "allLSAData", "gsm_map.ms.allLSAData",
20430         FT_NONE, BASE_NONE, NULL, 0,
20431         "gsm_map_ms.NULL", HFILL }},
20432     { &hf_gsm_map_ms_lsaIdentityList,
20433       { "lsaIdentityList", "gsm_map.ms.lsaIdentityList",
20434         FT_UINT32, BASE_DEC, NULL, 0,
20435         "gsm_map_ms.LSAIdentityList", HFILL }},
20436     { &hf_gsm_map_ms_LSAIdentityList_item,
20437       { "LSAIdentity", "gsm_map.ms.LSAIdentity",
20438         FT_BYTES, BASE_NONE, NULL, 0,
20439         "gsm_map_ms.LSAIdentity", HFILL }},
20440     { &hf_gsm_map_ms_BasicServiceList_item,
20441       { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode",
20442         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20443         "gsm_map.Ext_BasicServiceCode", HFILL }},
20444     { &hf_gsm_map_ms_o_CSI,
20445       { "o-CSI", "gsm_map.ms.o_CSI",
20446         FT_NONE, BASE_NONE, NULL, 0,
20447         "gsm_map_ms.O_CSI", HFILL }},
20448     { &hf_gsm_map_ms_ss_CSI,
20449       { "ss-CSI", "gsm_map.ms.ss_CSI",
20450         FT_NONE, BASE_NONE, NULL, 0,
20451         "gsm_map_ms.SS_CSI", HFILL }},
20452     { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList,
20453       { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_BcsmCamelTDP_CriteriaList",
20454         FT_UINT32, BASE_DEC, NULL, 0,
20455         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
20456     { &hf_gsm_map_ms_tif_CSI,
20457       { "tif-CSI", "gsm_map.ms.tif_CSI",
20458         FT_NONE, BASE_NONE, NULL, 0,
20459         "gsm_map_ms.NULL", HFILL }},
20460     { &hf_gsm_map_ms_m_CSI,
20461       { "m-CSI", "gsm_map.ms.m_CSI",
20462         FT_NONE, BASE_NONE, NULL, 0,
20463         "gsm_map_ms.M_CSI", HFILL }},
20464     { &hf_gsm_map_ms_vt_CSI,
20465       { "vt-CSI", "gsm_map.ms.vt_CSI",
20466         FT_NONE, BASE_NONE, NULL, 0,
20467         "gsm_map_ms.T_CSI", HFILL }},
20468     { &hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList,
20469       { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.t_BCSM_CAMEL_TDP_CriteriaList",
20470         FT_UINT32, BASE_DEC, NULL, 0,
20471         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
20472     { &hf_gsm_map_ms_d_CSI,
20473       { "d-CSI", "gsm_map.ms.d_CSI",
20474         FT_NONE, BASE_NONE, NULL, 0,
20475         "gsm_map_ms.D_CSI", HFILL }},
20476     { &hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item,
20477       { "MT-smsCAMELTDP-Criteria", "gsm_map.ms.MT_smsCAMELTDP_Criteria",
20478         FT_NONE, BASE_NONE, NULL, 0,
20479         "gsm_map_ms.MT_smsCAMELTDP_Criteria", HFILL }},
20480     { &hf_gsm_map_ms_sms_TriggerDetectionPoint,
20481       { "sms-TriggerDetectionPoint", "gsm_map.ms.sms_TriggerDetectionPoint",
20482         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SMS_TriggerDetectionPoint_vals), 0,
20483         "gsm_map_ms.SMS_TriggerDetectionPoint", HFILL }},
20484     { &hf_gsm_map_ms_tpdu_TypeCriterion,
20485       { "tpdu-TypeCriterion", "gsm_map.ms.tpdu_TypeCriterion",
20486         FT_UINT32, BASE_DEC, NULL, 0,
20487         "gsm_map_ms.TPDU_TypeCriterion", HFILL }},
20488     { &hf_gsm_map_ms_TPDU_TypeCriterion_item,
20489       { "MT-SMS-TPDU-Type", "gsm_map.ms.MT_SMS_TPDU_Type",
20490         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MT_SMS_TPDU_Type_vals), 0,
20491         "gsm_map_ms.MT_SMS_TPDU_Type", HFILL }},
20492     { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList,
20493       { "dp-AnalysedInfoCriteriaList", "gsm_map.ms.dp_AnalysedInfoCriteriaList",
20494         FT_UINT32, BASE_DEC, NULL, 0,
20495         "gsm_map_ms.DP_AnalysedInfoCriteriaList", HFILL }},
20496     { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item,
20497       { "DP-AnalysedInfoCriterium", "gsm_map.ms.DP_AnalysedInfoCriterium",
20498         FT_NONE, BASE_NONE, NULL, 0,
20499         "gsm_map_ms.DP_AnalysedInfoCriterium", HFILL }},
20500     { &hf_gsm_map_ms_dialledNumber,
20501       { "dialledNumber", "gsm_map.ms.dialledNumber",
20502         FT_BYTES, BASE_NONE, NULL, 0,
20503         "gsm_map.ISDN_AddressString", HFILL }},
20504     { &hf_gsm_map_ms_defaultCallHandling,
20505       { "defaultCallHandling", "gsm_map.ms.defaultCallHandling",
20506         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultCallHandling_vals), 0,
20507         "gsm_map_ms.DefaultCallHandling", HFILL }},
20508     { &hf_gsm_map_ms_ss_CamelData,
20509       { "ss-CamelData", "gsm_map.ms.ss_CamelData",
20510         FT_NONE, BASE_NONE, NULL, 0,
20511         "gsm_map_ms.SS_CamelData", HFILL }},
20512     { &hf_gsm_map_ms_ss_EventList,
20513       { "ss-EventList", "gsm_map.ms.ss_EventList",
20514         FT_UINT32, BASE_DEC, NULL, 0,
20515         "gsm_map_ms.SS_EventList", HFILL }},
20516     { &hf_gsm_map_ms_SS_EventList_item,
20517       { "SS-Code", "gsm_map.ms.SS_Code",
20518         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
20519         "gsm_map.SS_Code", HFILL }},
20520     { &hf_gsm_map_ms_o_BcsmCamelTDPDataList,
20521       { "o-BcsmCamelTDPDataList", "gsm_map.ms.o_BcsmCamelTDPDataList",
20522         FT_UINT32, BASE_DEC, NULL, 0,
20523         "gsm_map_ms.O_BcsmCamelTDPDataList", HFILL }},
20524     { &hf_gsm_map_ms_csiActive,
20525       { "csiActive", "gsm_map.ms.csiActive",
20526         FT_NONE, BASE_NONE, NULL, 0,
20527         "gsm_map_ms.NULL", HFILL }},
20528     { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item,
20529       { "O-BcsmCamelTDPData", "gsm_map.ms.O_BcsmCamelTDPData",
20530         FT_NONE, BASE_NONE, NULL, 0,
20531         "gsm_map_ms.O_BcsmCamelTDPData", HFILL }},
20532     { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint,
20533       { "o-BcsmTriggerDetectionPoint", "gsm_map.ms.o_BcsmTriggerDetectionPoint",
20534         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_O_BcsmTriggerDetectionPoint_vals), 0,
20535         "gsm_map_ms.O_BcsmTriggerDetectionPoint", HFILL }},
20536     { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item,
20537       { "O-BcsmCamelTDP-Criteria", "gsm_map.ms.O_BcsmCamelTDP_Criteria",
20538         FT_NONE, BASE_NONE, NULL, 0,
20539         "gsm_map_ms.O_BcsmCamelTDP_Criteria", HFILL }},
20540     { &hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item,
20541       { "T-BCSM-CAMEL-TDP-Criteria", "gsm_map.ms.T_BCSM_CAMEL_TDP_Criteria",
20542         FT_NONE, BASE_NONE, NULL, 0,
20543         "gsm_map_ms.T_BCSM_CAMEL_TDP_Criteria", HFILL }},
20544     { &hf_gsm_map_ms_destinationNumberCriteria,
20545       { "destinationNumberCriteria", "gsm_map.ms.destinationNumberCriteria",
20546         FT_NONE, BASE_NONE, NULL, 0,
20547         "gsm_map_ms.DestinationNumberCriteria", HFILL }},
20548     { &hf_gsm_map_ms_basicServiceCriteria,
20549       { "basicServiceCriteria", "gsm_map.ms.basicServiceCriteria",
20550         FT_UINT32, BASE_DEC, NULL, 0,
20551         "gsm_map_ms.BasicServiceCriteria", HFILL }},
20552     { &hf_gsm_map_ms_callTypeCriteria,
20553       { "callTypeCriteria", "gsm_map.ms.callTypeCriteria",
20554         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CallTypeCriteria_vals), 0,
20555         "gsm_map_ms.CallTypeCriteria", HFILL }},
20556     { &hf_gsm_map_ms_o_CauseValueCriteria,
20557       { "o-CauseValueCriteria", "gsm_map.ms.o_CauseValueCriteria",
20558         FT_UINT32, BASE_DEC, NULL, 0,
20559         "gsm_map_ms.O_CauseValueCriteria", HFILL }},
20560     { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint,
20561       { "t-BCSM-TriggerDetectionPoint", "gsm_map.ms.t_BCSM_TriggerDetectionPoint",
20562         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
20563         "gsm_map_ms.T_BcsmTriggerDetectionPoint", HFILL }},
20564     { &hf_gsm_map_ms_t_CauseValueCriteria,
20565       { "t-CauseValueCriteria", "gsm_map.ms.t_CauseValueCriteria",
20566         FT_UINT32, BASE_DEC, NULL, 0,
20567         "gsm_map_ms.T_CauseValueCriteria", HFILL }},
20568     { &hf_gsm_map_ms_matchType,
20569       { "matchType", "gsm_map.ms.matchType",
20570         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MatchType_vals), 0,
20571         "gsm_map_ms.MatchType", HFILL }},
20572     { &hf_gsm_map_ms_destinationNumberList,
20573       { "destinationNumberList", "gsm_map.ms.destinationNumberList",
20574         FT_UINT32, BASE_DEC, NULL, 0,
20575         "gsm_map_ms.DestinationNumberList", HFILL }},
20576     { &hf_gsm_map_ms_destinationNumberLengthList,
20577       { "destinationNumberLengthList", "gsm_map.ms.destinationNumberLengthList",
20578         FT_UINT32, BASE_DEC, NULL, 0,
20579         "gsm_map_ms.DestinationNumberLengthList", HFILL }},
20580     { &hf_gsm_map_ms_DestinationNumberList_item,
20581       { "ISDN-AddressString", "gsm_map.ms.ISDN_AddressString",
20582         FT_BYTES, BASE_NONE, NULL, 0,
20583         "gsm_map.ISDN_AddressString", HFILL }},
20584     { &hf_gsm_map_ms_DestinationNumberLengthList_item,
20585       { "DestinationNumberLengthList item", "gsm_map.ms.DestinationNumberLengthList_item",
20586         FT_UINT32, BASE_DEC, NULL, 0,
20587         "gsm_map_ms.INTEGER_1_maxNumOfISDN_AddressDigits", HFILL }},
20588     { &hf_gsm_map_ms_BasicServiceCriteria_item,
20589       { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode",
20590         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20591         "gsm_map.Ext_BasicServiceCode", HFILL }},
20592     { &hf_gsm_map_ms_O_CauseValueCriteria_item,
20593       { "CauseValue", "gsm_map.ms.CauseValue",
20594         FT_BYTES, BASE_NONE, NULL, 0,
20595         "gsm_map_ms.CauseValue", HFILL }},
20596     { &hf_gsm_map_ms_T_CauseValueCriteria_item,
20597       { "CauseValue", "gsm_map.ms.CauseValue",
20598         FT_BYTES, BASE_NONE, NULL, 0,
20599         "gsm_map_ms.CauseValue", HFILL }},
20600     { &hf_gsm_map_ms_sms_CAMEL_TDP_DataList,
20601       { "sms-CAMEL-TDP-DataList", "gsm_map.ms.sms_CAMEL_TDP_DataList",
20602         FT_UINT32, BASE_DEC, NULL, 0,
20603         "gsm_map_ms.SMS_CAMEL_TDP_DataList", HFILL }},
20604     { &hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item,
20605       { "SMS-CAMEL-TDP-Data", "gsm_map.ms.SMS_CAMEL_TDP_Data",
20606         FT_NONE, BASE_NONE, NULL, 0,
20607         "gsm_map_ms.SMS_CAMEL_TDP_Data", HFILL }},
20608     { &hf_gsm_map_ms_defaultSMS_Handling,
20609       { "defaultSMS-Handling", "gsm_map.ms.defaultSMS_Handling",
20610         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultSMS_Handling_vals), 0,
20611         "gsm_map_ms.DefaultSMS_Handling", HFILL }},
20612     { &hf_gsm_map_ms_mobilityTriggers,
20613       { "mobilityTriggers", "gsm_map.ms.mobilityTriggers",
20614         FT_UINT32, BASE_DEC, NULL, 0,
20615         "gsm_map_ms.MobilityTriggers", HFILL }},
20616     { &hf_gsm_map_ms_MobilityTriggers_item,
20617       { "MM-Code", "gsm_map.ms.MM_Code",
20618         FT_BYTES, BASE_NONE, NULL, 0,
20619         "gsm_map_ms.MM_Code", HFILL }},
20620     { &hf_gsm_map_ms_t_BcsmCamelTDPDataList,
20621       { "t-BcsmCamelTDPDataList", "gsm_map.ms.t_BcsmCamelTDPDataList",
20622         FT_UINT32, BASE_DEC, NULL, 0,
20623         "gsm_map_ms.T_BcsmCamelTDPDataList", HFILL }},
20624     { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item,
20625       { "T-BcsmCamelTDPData", "gsm_map.ms.T_BcsmCamelTDPData",
20626         FT_NONE, BASE_NONE, NULL, 0,
20627         "gsm_map_ms.T_BcsmCamelTDPData", HFILL }},
20628     { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint,
20629       { "t-BcsmTriggerDetectionPoint", "gsm_map.ms.t_BcsmTriggerDetectionPoint",
20630         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
20631         "gsm_map_ms.T_BcsmTriggerDetectionPoint", HFILL }},
20632     { &hf_gsm_map_ms_ggsn_Address,
20633       { "ggsn-Address", "gsm_map.ms.ggsn_Address",
20634         FT_BYTES, BASE_NONE, NULL, 0,
20635         "gsm_map_ms.GSN_Address", HFILL }},
20636     { &hf_gsm_map_ms_ggsn_Number,
20637       { "ggsn-Number", "gsm_map.ms.ggsn_Number",
20638         FT_BYTES, BASE_NONE, NULL, 0,
20639         "gsm_map.ISDN_AddressString", HFILL }},
20640     { &hf_gsm_map_ms_mobileNotReachableReason,
20641       { "mobileNotReachableReason", "gsm_map.ms.mobileNotReachableReason",
20642         FT_UINT32, BASE_DEC, NULL, 0,
20643         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
20644     { &hf_gsm_map_ms_hlr_List,
20645       { "hlr-List", "gsm_map.ms.hlr_List",
20646         FT_UINT32, BASE_DEC, NULL, 0,
20647         "gsm_map.HLR_List", HFILL }},
20648     { &hf_gsm_map_ms_msNotReachable,
20649       { "msNotReachable", "gsm_map.ms.msNotReachable",
20650         FT_NONE, BASE_NONE, NULL, 0,
20651         "gsm_map_ms.NULL", HFILL }},
20652     { &hf_gsm_map_ms_VBSDataList_item,
20653       { "VoiceBroadcastData", "gsm_map.ms.VoiceBroadcastData",
20654         FT_NONE, BASE_NONE, NULL, 0,
20655         "gsm_map_ms.VoiceBroadcastData", HFILL }},
20656     { &hf_gsm_map_ms_VGCSDataList_item,
20657       { "VoiceGroupCallData", "gsm_map.ms.VoiceGroupCallData",
20658         FT_NONE, BASE_NONE, NULL, 0,
20659         "gsm_map_ms.VoiceGroupCallData", HFILL }},
20660     { &hf_gsm_map_ms_groupId,
20661       { "groupId", "gsm_map.ms.groupId",
20662         FT_BYTES, BASE_NONE, NULL, 0,
20663         "gsm_map_ms.GroupId", HFILL }},
20664     { &hf_gsm_map_ms_additionalSubscriptions,
20665       { "additionalSubscriptions", "gsm_map.ms.additionalSubscriptions",
20666         FT_BYTES, BASE_NONE, NULL, 0,
20667         "gsm_map_ms.AdditionalSubscriptions", HFILL }},
20668     { &hf_gsm_map_ms_additionalInfo,
20669       { "additionalInfo", "gsm_map.ms.additionalInfo",
20670         FT_BYTES, BASE_NONE, NULL, 0,
20671         "gsm_map_ms.AdditionalInfo", HFILL }},
20672     { &hf_gsm_map_ms_longGroupId,
20673       { "longGroupId", "gsm_map.ms.longGroupId",
20674         FT_BYTES, BASE_NONE, NULL, 0,
20675         "gsm_map_ms.Long_GroupId", HFILL }},
20676     { &hf_gsm_map_ms_groupid,
20677       { "groupid", "gsm_map.ms.groupid",
20678         FT_BYTES, BASE_NONE, NULL, 0,
20679         "gsm_map_ms.GroupId", HFILL }},
20680     { &hf_gsm_map_ms_broadcastInitEntitlement,
20681       { "broadcastInitEntitlement", "gsm_map.ms.broadcastInitEntitlement",
20682         FT_NONE, BASE_NONE, NULL, 0,
20683         "gsm_map_ms.NULL", HFILL }},
20684     { &hf_gsm_map_ms_requestedInfo,
20685       { "requestedInfo", "gsm_map.ms.requestedInfo",
20686         FT_NONE, BASE_NONE, NULL, 0,
20687         "gsm_map_ms.RequestedInfo", HFILL }},
20688     { &hf_gsm_map_ms_callPriority,
20689       { "callPriority", "gsm_map.ms.callPriority",
20690         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
20691         "gsm_map.EMLPP_Priority", HFILL }},
20692     { &hf_gsm_map_ms_subscriberInfo,
20693       { "subscriberInfo", "gsm_map.ms.subscriberInfo",
20694         FT_NONE, BASE_NONE, NULL, 0,
20695         "gsm_map_ms.SubscriberInfo", HFILL }},
20696     { &hf_gsm_map_ms_locationInformation,
20697       { "locationInformation", "gsm_map.ms.locationInformation",
20698         FT_NONE, BASE_NONE, NULL, 0,
20699         "gsm_map_ms.LocationInformation", HFILL }},
20700     { &hf_gsm_map_ms_subscriberState,
20701       { "subscriberState", "gsm_map.ms.subscriberState",
20702         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberState_vals), 0,
20703         "gsm_map_ms.SubscriberState", HFILL }},
20704     { &hf_gsm_map_ms_locationInformationGPRS,
20705       { "locationInformationGPRS", "gsm_map.ms.locationInformationGPRS",
20706         FT_NONE, BASE_NONE, NULL, 0,
20707         "gsm_map_ms.LocationInformationGPRS", HFILL }},
20708     { &hf_gsm_map_ms_ps_SubscriberState,
20709       { "ps-SubscriberState", "gsm_map.ms.ps_SubscriberState",
20710         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PS_SubscriberState_vals), 0,
20711         "gsm_map_ms.PS_SubscriberState", HFILL }},
20712     { &hf_gsm_map_ms_ms_Classmark2,
20713       { "ms-Classmark2", "gsm_map.ms.ms_Classmark2",
20714         FT_BYTES, BASE_NONE, NULL, 0,
20715         "gsm_map_ms.MS_Classmark2", HFILL }},
20716     { &hf_gsm_map_ms_gprs_MS_Class,
20717       { "gprs-MS-Class", "gsm_map.ms.gprs_MS_Class",
20718         FT_NONE, BASE_NONE, NULL, 0,
20719         "gsm_map_ms.GPRSMSClass", HFILL }},
20720     { &hf_gsm_map_ms_mnpInfoRes,
20721       { "mnpInfoRes", "gsm_map.ms.mnpInfoRes",
20722         FT_NONE, BASE_NONE, NULL, 0,
20723         "gsm_map_ms.MNPInfoRes", HFILL }},
20724     { &hf_gsm_map_ms_routeingNumber,
20725       { "routeingNumber", "gsm_map.ms.routeingNumber",
20726         FT_BYTES, BASE_NONE, NULL, 0,
20727         "gsm_map_ms.RouteingNumber", HFILL }},
20728     { &hf_gsm_map_ms_numberPortabilityStatus,
20729       { "numberPortabilityStatus", "gsm_map.ms.numberPortabilityStatus",
20730         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
20731         "gsm_map_ms.NumberPortabilityStatus", HFILL }},
20732     { &hf_gsm_map_ms_mSNetworkCapability,
20733       { "mSNetworkCapability", "gsm_map.ms.mSNetworkCapability",
20734         FT_BYTES, BASE_NONE, NULL, 0,
20735         "gsm_map_ms.MSNetworkCapability", HFILL }},
20736     { &hf_gsm_map_ms_mSRadioAccessCapability,
20737       { "mSRadioAccessCapability", "gsm_map.ms.mSRadioAccessCapability",
20738         FT_BYTES, BASE_NONE, NULL, 0,
20739         "gsm_map_ms.MSRadioAccessCapability", HFILL }},
20740     { &hf_gsm_map_ms_locationInformation_01,
20741       { "locationInformation", "gsm_map.ms.locationInformation",
20742         FT_NONE, BASE_NONE, NULL, 0,
20743         "gsm_map_ms.NULL", HFILL }},
20744     { &hf_gsm_map_ms_subscriberState_01,
20745       { "subscriberState", "gsm_map.ms.subscriberState",
20746         FT_NONE, BASE_NONE, NULL, 0,
20747         "gsm_map_ms.NULL", HFILL }},
20748     { &hf_gsm_map_ms_currentLocation,
20749       { "currentLocation", "gsm_map.ms.currentLocation",
20750         FT_NONE, BASE_NONE, NULL, 0,
20751         "gsm_map_ms.NULL", HFILL }},
20752     { &hf_gsm_map_ms_requestedDomain,
20753       { "requestedDomain", "gsm_map.ms.requestedDomain",
20754         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DomainType_vals), 0,
20755         "gsm_map_ms.DomainType", HFILL }},
20756     { &hf_gsm_map_ms_imei_01,
20757       { "imei", "gsm_map.ms.imei",
20758         FT_NONE, BASE_NONE, NULL, 0,
20759         "gsm_map_ms.NULL", HFILL }},
20760     { &hf_gsm_map_ms_ms_classmark,
20761       { "ms-classmark", "gsm_map.ms.ms_classmark",
20762         FT_NONE, BASE_NONE, NULL, 0,
20763         "gsm_map_ms.NULL", HFILL }},
20764     { &hf_gsm_map_ms_mnpRequestedInfo,
20765       { "mnpRequestedInfo", "gsm_map.ms.mnpRequestedInfo",
20766         FT_NONE, BASE_NONE, NULL, 0,
20767         "gsm_map_ms.NULL", HFILL }},
20768     { &hf_gsm_map_ms_ageOfLocationInformation,
20769       { "ageOfLocationInformation", "gsm_map.ms.ageOfLocationInformation",
20770         FT_UINT32, BASE_DEC, NULL, 0,
20771         "gsm_map.AgeOfLocationInformation", HFILL }},
20772     { &hf_gsm_map_ms_geographicalInformation,
20773       { "geographicalInformation", "gsm_map.ms.geographicalInformation",
20774         FT_BYTES, BASE_NONE, NULL, 0,
20775         "gsm_map_ms.GeographicalInformation", HFILL }},
20776     { &hf_gsm_map_ms_vlr_number,
20777       { "vlr-number", "gsm_map.ms.vlr_number",
20778         FT_BYTES, BASE_NONE, NULL, 0,
20779         "gsm_map.ISDN_AddressString", HFILL }},
20780     { &hf_gsm_map_ms_locationNumber,
20781       { "locationNumber", "gsm_map.ms.locationNumber",
20782         FT_BYTES, BASE_NONE, NULL, 0,
20783         "gsm_map_ms.LocationNumber", HFILL }},
20784     { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI,
20785       { "cellGlobalIdOrServiceAreaIdOrLAI", "gsm_map.ms.cellGlobalIdOrServiceAreaIdOrLAI",
20786         FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
20787         "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
20788     { &hf_gsm_map_ms_selectedLSA_Id,
20789       { "selectedLSA-Id", "gsm_map.ms.selectedLSA_Id",
20790         FT_BYTES, BASE_NONE, NULL, 0,
20791         "gsm_map_ms.LSAIdentity", HFILL }},
20792     { &hf_gsm_map_ms_geodeticInformation,
20793       { "geodeticInformation", "gsm_map.ms.geodeticInformation",
20794         FT_BYTES, BASE_NONE, NULL, 0,
20795         "gsm_map_ms.GeodeticInformation", HFILL }},
20796     { &hf_gsm_map_ms_currentLocationRetrieved,
20797       { "currentLocationRetrieved", "gsm_map.ms.currentLocationRetrieved",
20798         FT_NONE, BASE_NONE, NULL, 0,
20799         "gsm_map_ms.NULL", HFILL }},
20800     { &hf_gsm_map_ms_sai_Present,
20801       { "sai-Present", "gsm_map.ms.sai_Present",
20802         FT_NONE, BASE_NONE, NULL, 0,
20803         "gsm_map_ms.NULL", HFILL }},
20804     { &hf_gsm_map_ms_routeingAreaIdentity,
20805       { "routeingAreaIdentity", "gsm_map.ms.routeingAreaIdentity",
20806         FT_BYTES, BASE_NONE, NULL, 0,
20807         "gsm_map_ms.RAIdentity", HFILL }},
20808     { &hf_gsm_map_ms_selectedLSAIdentity,
20809       { "selectedLSAIdentity", "gsm_map.ms.selectedLSAIdentity",
20810         FT_BYTES, BASE_NONE, NULL, 0,
20811         "gsm_map_ms.LSAIdentity", HFILL }},
20812     { &hf_gsm_map_ms_assumedIdle,
20813       { "assumedIdle", "gsm_map.ms.assumedIdle",
20814         FT_NONE, BASE_NONE, NULL, 0,
20815         "gsm_map_ms.NULL", HFILL }},
20816     { &hf_gsm_map_ms_camelBusy,
20817       { "camelBusy", "gsm_map.ms.camelBusy",
20818         FT_NONE, BASE_NONE, NULL, 0,
20819         "gsm_map_ms.NULL", HFILL }},
20820     { &hf_gsm_map_ms_netDetNotReachable,
20821       { "netDetNotReachable", "gsm_map.ms.netDetNotReachable",
20822         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotReachableReason_vals), 0,
20823         "gsm_map_ms.NotReachableReason", HFILL }},
20824     { &hf_gsm_map_ms_notProvidedFromVLR,
20825       { "notProvidedFromVLR", "gsm_map.ms.notProvidedFromVLR",
20826         FT_NONE, BASE_NONE, NULL, 0,
20827         "gsm_map_ms.NULL", HFILL }},
20828     { &hf_gsm_map_ms_notProvidedFromSGSN,
20829       { "notProvidedFromSGSN", "gsm_map.ms.notProvidedFromSGSN",
20830         FT_NONE, BASE_NONE, NULL, 0,
20831         "gsm_map_ms.NULL", HFILL }},
20832     { &hf_gsm_map_ms_ps_Detached,
20833       { "ps-Detached", "gsm_map.ms.ps_Detached",
20834         FT_NONE, BASE_NONE, NULL, 0,
20835         "gsm_map_ms.NULL", HFILL }},
20836     { &hf_gsm_map_ms_ps_AttachedNotReachableForPaging,
20837       { "ps-AttachedNotReachableForPaging", "gsm_map.ms.ps_AttachedNotReachableForPaging",
20838         FT_NONE, BASE_NONE, NULL, 0,
20839         "gsm_map_ms.NULL", HFILL }},
20840     { &hf_gsm_map_ms_ps_AttachedReachableForPaging,
20841       { "ps-AttachedReachableForPaging", "gsm_map.ms.ps_AttachedReachableForPaging",
20842         FT_NONE, BASE_NONE, NULL, 0,
20843         "gsm_map_ms.NULL", HFILL }},
20844     { &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging,
20845       { "ps-PDP-ActiveNotReachableForPaging", "gsm_map.ms.ps_PDP_ActiveNotReachableForPaging",
20846         FT_UINT32, BASE_DEC, NULL, 0,
20847         "gsm_map_ms.PDP_ContextInfoList", HFILL }},
20848     { &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging,
20849       { "ps-PDP-ActiveReachableForPaging", "gsm_map.ms.ps_PDP_ActiveReachableForPaging",
20850         FT_UINT32, BASE_DEC, NULL, 0,
20851         "gsm_map_ms.PDP_ContextInfoList", HFILL }},
20852     { &hf_gsm_map_ms_PDP_ContextInfoList_item,
20853       { "PDP-ContextInfo", "gsm_map.ms.PDP_ContextInfo",
20854         FT_NONE, BASE_NONE, NULL, 0,
20855         "gsm_map_ms.PDP_ContextInfo", HFILL }},
20856     { &hf_gsm_map_ms_pdp_ContextIdentifier,
20857       { "pdp-ContextIdentifier", "gsm_map.ms.pdp_ContextIdentifier",
20858         FT_UINT32, BASE_DEC, NULL, 0,
20859         "gsm_map_ms.ContextId", HFILL }},
20860     { &hf_gsm_map_ms_pdp_ContextActive,
20861       { "pdp-ContextActive", "gsm_map.ms.pdp_ContextActive",
20862         FT_NONE, BASE_NONE, NULL, 0,
20863         "gsm_map_ms.NULL", HFILL }},
20864     { &hf_gsm_map_ms_apn_Subscribed,
20865       { "apn-Subscribed", "gsm_map.ms.apn_Subscribed",
20866         FT_BYTES, BASE_NONE, NULL, 0,
20867         "gsm_map_ms.APN", HFILL }},
20868     { &hf_gsm_map_ms_apn_InUse,
20869       { "apn-InUse", "gsm_map.ms.apn_InUse",
20870         FT_BYTES, BASE_NONE, NULL, 0,
20871         "gsm_map_ms.APN", HFILL }},
20872     { &hf_gsm_map_ms_nsapi,
20873       { "nsapi", "gsm_map.ms.nsapi",
20874         FT_UINT32, BASE_DEC, NULL, 0,
20875         "gsm_map_ms.NSAPI", HFILL }},
20876     { &hf_gsm_map_ms_transactionId,
20877       { "transactionId", "gsm_map.ms.transactionId",
20878         FT_BYTES, BASE_NONE, NULL, 0,
20879         "gsm_map_ms.TransactionId", HFILL }},
20880     { &hf_gsm_map_ms_teid_ForGnAndGp,
20881       { "teid-ForGnAndGp", "gsm_map.ms.teid_ForGnAndGp",
20882         FT_BYTES, BASE_NONE, NULL, 0,
20883         "gsm_map_ms.TEID", HFILL }},
20884     { &hf_gsm_map_ms_teid_ForIu,
20885       { "teid-ForIu", "gsm_map.ms.teid_ForIu",
20886         FT_BYTES, BASE_NONE, NULL, 0,
20887         "gsm_map_ms.TEID", HFILL }},
20888     { &hf_gsm_map_ms_qos_Subscribed_01,
20889       { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
20890         FT_BYTES, BASE_NONE, NULL, 0,
20891         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
20892     { &hf_gsm_map_ms_qos_Requested,
20893       { "qos-Requested", "gsm_map.ms.qos_Requested",
20894         FT_BYTES, BASE_NONE, NULL, 0,
20895         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
20896     { &hf_gsm_map_ms_qos_Negotiated,
20897       { "qos-Negotiated", "gsm_map.ms.qos_Negotiated",
20898         FT_BYTES, BASE_NONE, NULL, 0,
20899         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
20900     { &hf_gsm_map_ms_chargingId,
20901       { "chargingId", "gsm_map.ms.chargingId",
20902         FT_BYTES, BASE_NONE, NULL, 0,
20903         "gsm_map_ms.GPRSChargingID", HFILL }},
20904     { &hf_gsm_map_ms_rnc_Address,
20905       { "rnc-Address", "gsm_map.ms.rnc_Address",
20906         FT_BYTES, BASE_NONE, NULL, 0,
20907         "gsm_map_ms.GSN_Address", HFILL }},
20908     { &hf_gsm_map_ms_qos2_Subscribed,
20909       { "qos2-Subscribed", "gsm_map.ms.qos2_Subscribed",
20910         FT_BYTES, BASE_NONE, NULL, 0,
20911         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
20912     { &hf_gsm_map_ms_qos2_Requested,
20913       { "qos2-Requested", "gsm_map.ms.qos2_Requested",
20914         FT_BYTES, BASE_NONE, NULL, 0,
20915         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
20916     { &hf_gsm_map_ms_qos2_Negotiated,
20917       { "qos2-Negotiated", "gsm_map.ms.qos2_Negotiated",
20918         FT_BYTES, BASE_NONE, NULL, 0,
20919         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
20920     { &hf_gsm_map_ms_qos3_Subscribed,
20921       { "qos3-Subscribed", "gsm_map.ms.qos3_Subscribed",
20922         FT_BYTES, BASE_NONE, NULL, 0,
20923         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
20924     { &hf_gsm_map_ms_qos3_Requested,
20925       { "qos3-Requested", "gsm_map.ms.qos3_Requested",
20926         FT_BYTES, BASE_NONE, NULL, 0,
20927         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
20928     { &hf_gsm_map_ms_qos3_Negotiated,
20929       { "qos3-Negotiated", "gsm_map.ms.qos3_Negotiated",
20930         FT_BYTES, BASE_NONE, NULL, 0,
20931         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
20932     { &hf_gsm_map_ms_subscriberIdentity,
20933       { "subscriberIdentity", "gsm_map.ms.subscriberIdentity",
20934         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
20935         "gsm_map.SubscriberIdentity", HFILL }},
20936     { &hf_gsm_map_ms_requestedSubscriptionInfo,
20937       { "requestedSubscriptionInfo", "gsm_map.ms.requestedSubscriptionInfo",
20938         FT_NONE, BASE_NONE, NULL, 0,
20939         "gsm_map_ms.RequestedSubscriptionInfo", HFILL }},
20940     { &hf_gsm_map_ms_callForwardingData,
20941       { "callForwardingData", "gsm_map.ms.callForwardingData",
20942         FT_NONE, BASE_NONE, NULL, 0,
20943         "gsm_map_ms.CallForwardingData", HFILL }},
20944     { &hf_gsm_map_ms_callBarringData,
20945       { "callBarringData", "gsm_map.ms.callBarringData",
20946         FT_NONE, BASE_NONE, NULL, 0,
20947         "gsm_map_ms.CallBarringData", HFILL }},
20948     { &hf_gsm_map_ms_odb_Info,
20949       { "odb-Info", "gsm_map.ms.odb_Info",
20950         FT_NONE, BASE_NONE, NULL, 0,
20951         "gsm_map_ms.ODB_Info", HFILL }},
20952     { &hf_gsm_map_ms_camel_SubscriptionInfo,
20953       { "camel-SubscriptionInfo", "gsm_map.ms.camel_SubscriptionInfo",
20954         FT_NONE, BASE_NONE, NULL, 0,
20955         "gsm_map_ms.CAMEL_SubscriptionInfo", HFILL }},
20956     { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases,
20957       { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases",
20958         FT_BYTES, BASE_NONE, NULL, 0,
20959         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20960     { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases,
20961       { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases",
20962         FT_BYTES, BASE_NONE, NULL, 0,
20963         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20964     { &hf_gsm_map_ms_offeredCamel4CSIsInVLR,
20965       { "offeredCamel4CSIsInVLR", "gsm_map.ms.offeredCamel4CSIsInVLR",
20966         FT_BYTES, BASE_NONE, NULL, 0,
20967         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20968     { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN,
20969       { "offeredCamel4CSIsInSGSN", "gsm_map.ms.offeredCamel4CSIsInSGSN",
20970         FT_BYTES, BASE_NONE, NULL, 0,
20971         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20972     { &hf_gsm_map_ms_msisdn_BS_List,
20973       { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List",
20974         FT_UINT32, BASE_DEC, NULL, 0,
20975         "gsm_map_ms.MSISDN_BS_List", HFILL }},
20976     { &hf_gsm_map_ms_requestedSS_Info,
20977       { "requestedSS-Info", "gsm_map.ms.requestedSS_Info",
20978         FT_NONE, BASE_NONE, NULL, 0,
20979         "gsm_map_ss.SS_ForBS_Code", HFILL }},
20980     { &hf_gsm_map_ms_odb,
20981       { "odb", "gsm_map.ms.odb",
20982         FT_NONE, BASE_NONE, NULL, 0,
20983         "gsm_map_ms.NULL", HFILL }},
20984     { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo,
20985       { "requestedCAMEL-SubscriptionInfo", "gsm_map.ms.requestedCAMEL_SubscriptionInfo",
20986         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
20987         "gsm_map_ms.RequestedCAMEL_SubscriptionInfo", HFILL }},
20988     { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01,
20989       { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases",
20990         FT_NONE, BASE_NONE, NULL, 0,
20991         "gsm_map_ms.NULL", HFILL }},
20992     { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01,
20993       { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases",
20994         FT_NONE, BASE_NONE, NULL, 0,
20995         "gsm_map_ms.NULL", HFILL }},
20996     { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo,
20997       { "additionalRequestedCAMEL-SubscriptionInfo", "gsm_map.ms.additionalRequestedCAMEL_SubscriptionInfo",
20998         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals), 0,
20999         "gsm_map_ms.AdditionalRequestedCAMEL_SubscriptionInfo", HFILL }},
21000     { &hf_gsm_map_ms_msisdn_BS_List_01,
21001       { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List",
21002         FT_NONE, BASE_NONE, NULL, 0,
21003         "gsm_map_ms.NULL", HFILL }},
21004     { &hf_gsm_map_ms_MSISDN_BS_List_item,
21005       { "MSISDN-BS", "gsm_map.ms.MSISDN_BS",
21006         FT_NONE, BASE_NONE, NULL, 0,
21007         "gsm_map_ms.MSISDN_BS", HFILL }},
21008     { &hf_gsm_map_ms_password,
21009       { "password", "gsm_map.ms.password",
21010         FT_STRING, BASE_NONE, NULL, 0,
21011         "gsm_map_ss.Password", HFILL }},
21012     { &hf_gsm_map_ms_wrongPasswordAttemptsCounter,
21013       { "wrongPasswordAttemptsCounter", "gsm_map.ms.wrongPasswordAttemptsCounter",
21014         FT_UINT32, BASE_DEC, NULL, 0,
21015         "gsm_map_ms.WrongPasswordAttemptsCounter", HFILL }},
21016     { &hf_gsm_map_ms_t_CSI,
21017       { "t-CSI", "gsm_map.ms.t_CSI",
21018         FT_NONE, BASE_NONE, NULL, 0,
21019         "gsm_map_ms.T_CSI", HFILL }},
21020     { &hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList,
21021       { "vt-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_BCSM_CAMEL_TDP_CriteriaList",
21022         FT_UINT32, BASE_DEC, NULL, 0,
21023         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
21024     { &hf_gsm_map_ms_tif_CSI_NotificationToCSE,
21025       { "tif-CSI-NotificationToCSE", "gsm_map.ms.tif_CSI_NotificationToCSE",
21026         FT_NONE, BASE_NONE, NULL, 0,
21027         "gsm_map_ms.NULL", HFILL }},
21028     { &hf_gsm_map_ms_specificCSIDeletedList,
21029       { "specificCSIDeletedList", "gsm_map.ms.specificCSIDeletedList",
21030         FT_BYTES, BASE_NONE, NULL, 0,
21031         "gsm_map_ms.SpecificCSI_Withdraw", HFILL }},
21032     { &hf_gsm_map_ms_o_IM_CSI,
21033       { "o-IM-CSI", "gsm_map.ms.o_IM_CSI",
21034         FT_NONE, BASE_NONE, NULL, 0,
21035         "gsm_map_ms.O_CSI", HFILL }},
21036     { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList,
21037       { "o-IM-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_IM_BcsmCamelTDP_CriteriaList",
21038         FT_UINT32, BASE_DEC, NULL, 0,
21039         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
21040     { &hf_gsm_map_ms_d_IM_CSI,
21041       { "d-IM-CSI", "gsm_map.ms.d_IM_CSI",
21042         FT_NONE, BASE_NONE, NULL, 0,
21043         "gsm_map_ms.D_CSI", HFILL }},
21044     { &hf_gsm_map_ms_vt_IM_CSI,
21045       { "vt-IM-CSI", "gsm_map.ms.vt_IM_CSI",
21046         FT_NONE, BASE_NONE, NULL, 0,
21047         "gsm_map_ms.T_CSI", HFILL }},
21048     { &hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList,
21049       { "vt-IM-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_IM_BCSM_CAMEL_TDP_CriteriaList",
21050         FT_UINT32, BASE_DEC, NULL, 0,
21051         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
21052     { &hf_gsm_map_ms_modificationRequestFor_CF_Info,
21053       { "modificationRequestFor-CF-Info", "gsm_map.ms.modificationRequestFor_CF_Info",
21054         FT_NONE, BASE_NONE, NULL, 0,
21055         "gsm_map_ms.ModificationRequestFor_CF_Info", HFILL }},
21056     { &hf_gsm_map_ms_modificationRequestFor_CB_Info,
21057       { "modificationRequestFor-CB-Info", "gsm_map.ms.modificationRequestFor_CB_Info",
21058         FT_NONE, BASE_NONE, NULL, 0,
21059         "gsm_map_ms.ModificationRequestFor_CB_Info", HFILL }},
21060     { &hf_gsm_map_ms_modificationRequestFor_CSI,
21061       { "modificationRequestFor-CSI", "gsm_map.ms.modificationRequestFor_CSI",
21062         FT_NONE, BASE_NONE, NULL, 0,
21063         "gsm_map_ms.ModificationRequestFor_CSI", HFILL }},
21064     { &hf_gsm_map_ms_modificationRequestFor_ODB_data,
21065       { "modificationRequestFor-ODB-data", "gsm_map.ms.modificationRequestFor_ODB_data",
21066         FT_NONE, BASE_NONE, NULL, 0,
21067         "gsm_map_ms.ModificationRequestFor_ODB_data", HFILL }},
21068     { &hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data,
21069       { "modificationRequestFor-IP-SM-GW-Data", "gsm_map.ms.modificationRequestFor_IP_SM_GW_Data",
21070         FT_NONE, BASE_NONE, NULL, 0,
21071         "gsm_map_ms.ModificationRequestFor_IP_SM_GW_Data", HFILL }},
21072     { &hf_gsm_map_ms_ss_InfoFor_CSE,
21073       { "ss-InfoFor-CSE", "gsm_map.ms.ss_InfoFor_CSE",
21074         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_InfoFor_CSE_vals), 0,
21075         "gsm_map_ms.Ext_SS_InfoFor_CSE", HFILL }},
21076     { &hf_gsm_map_ms_forwardedToNumber_01,
21077       { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
21078         FT_BYTES, BASE_NONE, NULL, 0,
21079         "gsm_map.AddressString", HFILL }},
21080     { &hf_gsm_map_ms_modifyNotificationToCSE,
21081       { "modifyNotificationToCSE", "gsm_map.ms.modifyNotificationToCSE",
21082         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
21083         "gsm_map_ms.ModificationInstruction", HFILL }},
21084     { &hf_gsm_map_ms_odb_data,
21085       { "odb-data", "gsm_map.ms.odb_data",
21086         FT_NONE, BASE_NONE, NULL, 0,
21087         "gsm_map_ms.ODB_Data", HFILL }},
21088     { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo,
21089       { "requestedCamel-SubscriptionInfo", "gsm_map.ms.requestedCamel_SubscriptionInfo",
21090         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
21091         "gsm_map_ms.RequestedCAMEL_SubscriptionInfo", HFILL }},
21092     { &hf_gsm_map_ms_modifyCSI_State,
21093       { "modifyCSI-State", "gsm_map.ms.modifyCSI_State",
21094         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
21095         "gsm_map_ms.ModificationInstruction", HFILL }},
21096     { &hf_gsm_map_ms_modifyRegistrationStatus,
21097       { "modifyRegistrationStatus", "gsm_map.ms.modifyRegistrationStatus",
21098         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
21099         "gsm_map_ms.ModificationInstruction", HFILL }},
21100     { &hf_gsm_map_ms_forwardingInfoFor_CSE,
21101       { "forwardingInfoFor-CSE", "gsm_map.ms.forwardingInfoFor_CSE",
21102         FT_NONE, BASE_NONE, NULL, 0,
21103         "gsm_map_ms.Ext_ForwardingInfoFor_CSE", HFILL }},
21104     { &hf_gsm_map_ms_callBarringInfoFor_CSE,
21105       { "callBarringInfoFor-CSE", "gsm_map.ms.callBarringInfoFor_CSE",
21106         FT_NONE, BASE_NONE, NULL, 0,
21107         "gsm_map_ms.Ext_CallBarringInfoFor_CSE", HFILL }},
21108     { &hf_gsm_map_ms_allInformationSent,
21109       { "allInformationSent", "gsm_map.ms.allInformationSent",
21110         FT_NONE, BASE_NONE, NULL, 0,
21111         "gsm_map_ms.NULL", HFILL }},
21112     { &hf_gsm_map_ms_eventMet,
21113       { "eventMet", "gsm_map.ms.eventMet",
21114         FT_BYTES, BASE_NONE, NULL, 0,
21115         "gsm_map_ms.MM_Code", HFILL }},
21116     { &hf_gsm_map_ms_supportedCAMELPhases,
21117       { "supportedCAMELPhases", "gsm_map.ms.supportedCAMELPhases",
21118         FT_BYTES, BASE_NONE, NULL, 0,
21119         "gsm_map_ms.SupportedCamelPhases", HFILL }},
21120     { &hf_gsm_map_ms_offeredCamel4Functionalities,
21121       { "offeredCamel4Functionalities", "gsm_map.ms.offeredCamel4Functionalities",
21122         FT_BYTES, BASE_NONE, NULL, 0,
21123         "gsm_map_ms.OfferedCamel4Functionalities", HFILL }},
21124     { &hf_gsm_map_ms_naea_PreferredCI,
21125       { "naea-PreferredCI", "gsm_map.ms.naea_PreferredCI",
21126         FT_NONE, BASE_NONE, NULL, 0,
21127         "gsm_map.NAEA_PreferredCI", HFILL }},
21128     { &hf_gsm_map_ms_gprsSubscriptionData,
21129       { "gprsSubscriptionData", "gsm_map.ms.gprsSubscriptionData",
21130         FT_NONE, BASE_NONE, NULL, 0,
21131         "gsm_map_ms.GPRSSubscriptionData", HFILL }},
21132     { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature,
21133       { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsupportedFeature",
21134         FT_NONE, BASE_NONE, NULL, 0,
21135         "gsm_map_ms.NULL", HFILL }},
21136     { &hf_gsm_map_ms_networkAccessMode,
21137       { "networkAccessMode", "gsm_map.ms.networkAccessMode",
21138         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NetworkAccessMode_vals), 0,
21139         "gsm_map_ms.NetworkAccessMode", HFILL }},
21140     { &hf_gsm_map_ms_lsaInformation,
21141       { "lsaInformation", "gsm_map.ms.lsaInformation",
21142         FT_NONE, BASE_NONE, NULL, 0,
21143         "gsm_map_ms.LSAInformation", HFILL }},
21144     { &hf_gsm_map_ms_lmu_Indicator,
21145       { "lmu-Indicator", "gsm_map.ms.lmu_Indicator",
21146         FT_NONE, BASE_NONE, NULL, 0,
21147         "gsm_map_ms.NULL", HFILL }},
21148     { &hf_gsm_map_ms_lcsInformation,
21149       { "lcsInformation", "gsm_map.ms.lcsInformation",
21150         FT_NONE, BASE_NONE, NULL, 0,
21151         "gsm_map_ms.LCSInformation", HFILL }},
21152     { &hf_gsm_map_ms_istAlertTimer,
21153       { "istAlertTimer", "gsm_map.ms.istAlertTimer",
21154         FT_UINT32, BASE_DEC, NULL, 0,
21155         "gsm_map_ms.IST_AlertTimerValue", HFILL }},
21156     { &hf_gsm_map_ms_superChargerSupportedInHLR,
21157       { "superChargerSupportedInHLR", "gsm_map.ms.superChargerSupportedInHLR",
21158         FT_BYTES, BASE_NONE, NULL, 0,
21159         "gsm_map_ms.AgeIndicator", HFILL }},
21160     { &hf_gsm_map_ms_mc_SS_Info,
21161       { "mc-SS-Info", "gsm_map.ms.mc_SS_Info",
21162         FT_NONE, BASE_NONE, NULL, 0,
21163         "gsm_map.MC_SS_Info", HFILL }},
21164     { &hf_gsm_map_ms_cs_AllocationRetentionPriority,
21165       { "cs-AllocationRetentionPriority", "gsm_map.ms.cs_AllocationRetentionPriority",
21166         FT_BYTES, BASE_NONE, NULL, 0,
21167         "gsm_map_ms.CS_AllocationRetentionPriority", HFILL }},
21168     { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo,
21169       { "sgsn-CAMEL-SubscriptionInfo", "gsm_map.ms.sgsn_CAMEL_SubscriptionInfo",
21170         FT_NONE, BASE_NONE, NULL, 0,
21171         "gsm_map_ms.SGSN_CAMEL_SubscriptionInfo", HFILL }},
21172     { &hf_gsm_map_ms_accessRestrictionData,
21173       { "accessRestrictionData", "gsm_map.ms.accessRestrictionData",
21174         FT_BYTES, BASE_NONE, NULL, 0,
21175         "gsm_map_ms.AccessRestrictionData", HFILL }},
21176     { &hf_gsm_map_ms_ics_Indicator,
21177       { "ics-Indicator", "gsm_map.ms.ics_Indicator",
21178         FT_BOOLEAN, BASE_NONE, NULL, 0,
21179         "gsm_map_ms.BOOLEAN", HFILL }},
21180     { &hf_gsm_map_ms_eps_SubscriptionData,
21181       { "eps-SubscriptionData", "gsm_map.ms.eps_SubscriptionData",
21182         FT_NONE, BASE_NONE, NULL, 0,
21183         "gsm_map_ms.EPS_SubscriptionData", HFILL }},
21184     { &hf_gsm_map_ms_csg_SubscriptionDataList,
21185       { "csg-SubscriptionDataList", "gsm_map.ms.csg_SubscriptionDataList",
21186         FT_UINT32, BASE_DEC, NULL, 0,
21187         "gsm_map_ms.CSG_SubscriptionDataList", HFILL }},
21188     { &hf_gsm_map_ms_SupportedRAT_Types_utran,
21189       { "utran", "gsm_map.ms.utran",
21190         FT_BOOLEAN, 8, NULL, 0x80,
21191         NULL, HFILL }},
21192     { &hf_gsm_map_ms_SupportedRAT_Types_geran,
21193       { "geran", "gsm_map.ms.geran",
21194         FT_BOOLEAN, 8, NULL, 0x40,
21195         NULL, HFILL }},
21196     { &hf_gsm_map_ms_SupportedRAT_Types_gan,
21197       { "gan", "gsm_map.ms.gan",
21198         FT_BOOLEAN, 8, NULL, 0x20,
21199         NULL, HFILL }},
21200     { &hf_gsm_map_ms_SupportedRAT_Types_i_hspa_evolution,
21201       { "i-hspa-evolution", "gsm_map.ms.i-hspa-evolution",
21202         FT_BOOLEAN, 8, NULL, 0x10,
21203         NULL, HFILL }},
21204     { &hf_gsm_map_ms_SupportedRAT_Types_e_utran,
21205       { "e-utran", "gsm_map.ms.e-utran",
21206         FT_BOOLEAN, 8, NULL, 0x08,
21207         NULL, HFILL }},
21208     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1,
21209       { "lcsCapabilitySet1", "gsm_map.ms.lcsCapabilitySet1",
21210         FT_BOOLEAN, 8, NULL, 0x80,
21211         NULL, HFILL }},
21212     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2,
21213       { "lcsCapabilitySet2", "gsm_map.ms.lcsCapabilitySet2",
21214         FT_BOOLEAN, 8, NULL, 0x40,
21215         NULL, HFILL }},
21216     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3,
21217       { "lcsCapabilitySet3", "gsm_map.ms.lcsCapabilitySet3",
21218         FT_BOOLEAN, 8, NULL, 0x20,
21219         NULL, HFILL }},
21220     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4,
21221       { "lcsCapabilitySet4", "gsm_map.ms.lcsCapabilitySet4",
21222         FT_BOOLEAN, 8, NULL, 0x10,
21223         NULL, HFILL }},
21224     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5,
21225       { "lcsCapabilitySet5", "gsm_map.ms.lcsCapabilitySet5",
21226         FT_BOOLEAN, 8, NULL, 0x08,
21227         NULL, HFILL }},
21228     { &hf_gsm_map_ms_ISR_Information_updateMME,
21229       { "updateMME", "gsm_map.ms.updateMME",
21230         FT_BOOLEAN, 8, NULL, 0x80,
21231         NULL, HFILL }},
21232     { &hf_gsm_map_ms_ISR_Information_cancelSGSN,
21233       { "cancelSGSN", "gsm_map.ms.cancelSGSN",
21234         FT_BOOLEAN, 8, NULL, 0x40,
21235         NULL, HFILL }},
21236     { &hf_gsm_map_ms_SupportedFeatures_odb_all,
21237       { "odb-all", "gsm_map.ms.odb-all",
21238         FT_BOOLEAN, 8, NULL, 0x80,
21239         NULL, HFILL }},
21240     { &hf_gsm_map_ms_SupportedFeatures_odb_HPLMN_APN,
21241       { "odb-HPLMN-APN", "gsm_map.ms.odb-HPLMN-APN",
21242         FT_BOOLEAN, 8, NULL, 0x40,
21243         NULL, HFILL }},
21244     { &hf_gsm_map_ms_SupportedFeatures_odb_VPLMN_APN,
21245       { "odb-VPLMN-APN", "gsm_map.ms.odb-VPLMN-APN",
21246         FT_BOOLEAN, 8, NULL, 0x20,
21247         NULL, HFILL }},
21248     { &hf_gsm_map_ms_SupportedFeatures_regSub,
21249       { "regSub", "gsm_map.ms.regSub",
21250         FT_BOOLEAN, 8, NULL, 0x10,
21251         NULL, HFILL }},
21252     { &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus,
21253       { "equipmentStatus", "gsm_map.ms.equipmentStatus",
21254         FT_BOOLEAN, 8, NULL, 0x80,
21255         NULL, HFILL }},
21256     { &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef,
21257       { "bmuef", "gsm_map.ms.bmuef",
21258         FT_BOOLEAN, 8, NULL, 0x40,
21259         NULL, HFILL }},
21260     { &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed,
21261       { "utranNotAllowed", "gsm_map.ms.utranNotAllowed",
21262         FT_BOOLEAN, 8, NULL, 0x80,
21263         NULL, HFILL }},
21264     { &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed,
21265       { "geranNotAllowed", "gsm_map.ms.geranNotAllowed",
21266         FT_BOOLEAN, 8, NULL, 0x40,
21267         NULL, HFILL }},
21268     { &hf_gsm_map_ms_AccessRestrictionData_ganNotAllowed,
21269       { "ganNotAllowed", "gsm_map.ms.ganNotAllowed",
21270         FT_BOOLEAN, 8, NULL, 0x20,
21271         NULL, HFILL }},
21272     { &hf_gsm_map_ms_AccessRestrictionData_i_hspa_evolutionNotAllowed,
21273       { "i-hspa-evolutionNotAllowed", "gsm_map.ms.i-hspa-evolutionNotAllowed",
21274         FT_BOOLEAN, 8, NULL, 0x10,
21275         NULL, HFILL }},
21276     { &hf_gsm_map_ms_AccessRestrictionData_e_utranNotAllowed,
21277       { "e-utranNotAllowed", "gsm_map.ms.e-utranNotAllowed",
21278         FT_BOOLEAN, 8, NULL, 0x08,
21279         NULL, HFILL }},
21280     { &hf_gsm_map_ms_AccessRestrictionData_ho_toNon3GPP_AccessNotAllowed,
21281       { "ho-toNon3GPP-AccessNotAllowed", "gsm_map.ms.ho-toNon3GPP-AccessNotAllowed",
21282         FT_BOOLEAN, 8, NULL, 0x04,
21283         NULL, HFILL }},
21284     { &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred,
21285       { "allOG-CallsBarred", "gsm_map.ms.allOG-CallsBarred",
21286         FT_BOOLEAN, 8, NULL, 0x80,
21287         NULL, HFILL }},
21288     { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred,
21289       { "internationalOGCallsBarred", "gsm_map.ms.internationalOGCallsBarred",
21290         FT_BOOLEAN, 8, NULL, 0x40,
21291         NULL, HFILL }},
21292     { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred,
21293       { "internationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.internationalOGCallsNotToHPLMN-CountryBarred",
21294         FT_BOOLEAN, 8, NULL, 0x20,
21295         NULL, HFILL }},
21296     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred,
21297       { "interzonalOGCallsBarred", "gsm_map.ms.interzonalOGCallsBarred",
21298         FT_BOOLEAN, 8, NULL, 0x02,
21299         NULL, HFILL }},
21300     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred,
21301       { "interzonalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.interzonalOGCallsNotToHPLMN-CountryBarred",
21302         FT_BOOLEAN, 8, NULL, 0x01,
21303         NULL, HFILL }},
21304     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred,
21305       { "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred",
21306         FT_BOOLEAN, 8, NULL, 0x80,
21307         NULL, HFILL }},
21308     { &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred,
21309       { "premiumRateInformationOGCallsBarred", "gsm_map.ms.premiumRateInformationOGCallsBarred",
21310         FT_BOOLEAN, 8, NULL, 0x10,
21311         NULL, HFILL }},
21312     { &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred,
21313       { "premiumRateEntertainementOGCallsBarred", "gsm_map.ms.premiumRateEntertainementOGCallsBarred",
21314         FT_BOOLEAN, 8, NULL, 0x08,
21315         NULL, HFILL }},
21316     { &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred,
21317       { "ss-AccessBarred", "gsm_map.ms.ss-AccessBarred",
21318         FT_BOOLEAN, 8, NULL, 0x04,
21319         NULL, HFILL }},
21320     { &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred,
21321       { "allECT-Barred", "gsm_map.ms.allECT-Barred",
21322         FT_BOOLEAN, 8, NULL, 0x40,
21323         NULL, HFILL }},
21324     { &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred,
21325       { "chargeableECT-Barred", "gsm_map.ms.chargeableECT-Barred",
21326         FT_BOOLEAN, 8, NULL, 0x20,
21327         NULL, HFILL }},
21328     { &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred,
21329       { "internationalECT-Barred", "gsm_map.ms.internationalECT-Barred",
21330         FT_BOOLEAN, 8, NULL, 0x10,
21331         NULL, HFILL }},
21332     { &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred,
21333       { "interzonalECT-Barred", "gsm_map.ms.interzonalECT-Barred",
21334         FT_BOOLEAN, 8, NULL, 0x08,
21335         NULL, HFILL }},
21336     { &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred,
21337       { "doublyChargeableECT-Barred", "gsm_map.ms.doublyChargeableECT-Barred",
21338         FT_BOOLEAN, 8, NULL, 0x04,
21339         NULL, HFILL }},
21340     { &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred,
21341       { "multipleECT-Barred", "gsm_map.ms.multipleECT-Barred",
21342         FT_BOOLEAN, 8, NULL, 0x02,
21343         NULL, HFILL }},
21344     { &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred,
21345       { "allPacketOrientedServicesBarred", "gsm_map.ms.allPacketOrientedServicesBarred",
21346         FT_BOOLEAN, 8, NULL, 0x01,
21347         NULL, HFILL }},
21348     { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred,
21349       { "roamerAccessToHPLMN-AP-Barred", "gsm_map.ms.roamerAccessToHPLMN-AP-Barred",
21350         FT_BOOLEAN, 8, NULL, 0x80,
21351         NULL, HFILL }},
21352     { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred,
21353       { "roamerAccessToVPLMN-AP-Barred", "gsm_map.ms.roamerAccessToVPLMN-AP-Barred",
21354         FT_BOOLEAN, 8, NULL, 0x40,
21355         NULL, HFILL }},
21356     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred,
21357       { "roamingOutsidePLMNOG-CallsBarred", "gsm_map.ms.roamingOutsidePLMNOG-CallsBarred",
21358         FT_BOOLEAN, 8, NULL, 0x20,
21359         NULL, HFILL }},
21360     { &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred,
21361       { "allIC-CallsBarred", "gsm_map.ms.allIC-CallsBarred",
21362         FT_BOOLEAN, 8, NULL, 0x10,
21363         NULL, HFILL }},
21364     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred,
21365       { "roamingOutsidePLMNIC-CallsBarred", "gsm_map.ms.roamingOutsidePLMNIC-CallsBarred",
21366         FT_BOOLEAN, 8, NULL, 0x08,
21367         NULL, HFILL }},
21368     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred,
21369       { "roamingOutsidePLMNICountryIC-CallsBarred", "gsm_map.ms.roamingOutsidePLMNICountryIC-CallsBarred",
21370         FT_BOOLEAN, 8, NULL, 0x04,
21371         NULL, HFILL }},
21372     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred,
21373       { "roamingOutsidePLMN-Barred", "gsm_map.ms.roamingOutsidePLMN-Barred",
21374         FT_BOOLEAN, 8, NULL, 0x02,
21375         NULL, HFILL }},
21376     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred,
21377       { "roamingOutsidePLMN-CountryBarred", "gsm_map.ms.roamingOutsidePLMN-CountryBarred",
21378         FT_BOOLEAN, 8, NULL, 0x01,
21379         NULL, HFILL }},
21380     { &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred,
21381       { "registrationAllCF-Barred", "gsm_map.ms.registrationAllCF-Barred",
21382         FT_BOOLEAN, 8, NULL, 0x80,
21383         NULL, HFILL }},
21384     { &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred,
21385       { "registrationCFNotToHPLMN-Barred", "gsm_map.ms.registrationCFNotToHPLMN-Barred",
21386         FT_BOOLEAN, 8, NULL, 0x40,
21387         NULL, HFILL }},
21388     { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred,
21389       { "registrationInterzonalCF-Barred", "gsm_map.ms.registrationInterzonalCF-Barred",
21390         FT_BOOLEAN, 8, NULL, 0x20,
21391         NULL, HFILL }},
21392     { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred,
21393       { "registrationInterzonalCFNotToHPLMN-Barred", "gsm_map.ms.registrationInterzonalCFNotToHPLMN-Barred",
21394         FT_BOOLEAN, 8, NULL, 0x10,
21395         NULL, HFILL }},
21396     { &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred,
21397       { "registrationInternationalCF-Barred", "gsm_map.ms.registrationInternationalCF-Barred",
21398         FT_BOOLEAN, 8, NULL, 0x08,
21399         NULL, HFILL }},
21400     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1,
21401       { "plmn-SpecificBarringType1", "gsm_map.ms.plmn-SpecificBarringType1",
21402         FT_BOOLEAN, 8, NULL, 0x80,
21403         NULL, HFILL }},
21404     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2,
21405       { "plmn-SpecificBarringType2", "gsm_map.ms.plmn-SpecificBarringType2",
21406         FT_BOOLEAN, 8, NULL, 0x40,
21407         NULL, HFILL }},
21408     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3,
21409       { "plmn-SpecificBarringType3", "gsm_map.ms.plmn-SpecificBarringType3",
21410         FT_BOOLEAN, 8, NULL, 0x20,
21411         NULL, HFILL }},
21412     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4,
21413       { "plmn-SpecificBarringType4", "gsm_map.ms.plmn-SpecificBarringType4",
21414         FT_BOOLEAN, 8, NULL, 0x10,
21415         NULL, HFILL }},
21416     { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi,
21417       { "o-csi", "gsm_map.ms.o-csi",
21418         FT_BOOLEAN, 8, NULL, 0x80,
21419         NULL, HFILL }},
21420     { &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi,
21421       { "ss-csi", "gsm_map.ms.ss-csi",
21422         FT_BOOLEAN, 8, NULL, 0x40,
21423         NULL, HFILL }},
21424     { &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi,
21425       { "tif-csi", "gsm_map.ms.tif-csi",
21426         FT_BOOLEAN, 8, NULL, 0x20,
21427         NULL, HFILL }},
21428     { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi,
21429       { "d-csi", "gsm_map.ms.d-csi",
21430         FT_BOOLEAN, 8, NULL, 0x10,
21431         NULL, HFILL }},
21432     { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi,
21433       { "vt-csi", "gsm_map.ms.vt-csi",
21434         FT_BOOLEAN, 8, NULL, 0x08,
21435         NULL, HFILL }},
21436     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi,
21437       { "mo-sms-csi", "gsm_map.ms.mo-sms-csi",
21438         FT_BOOLEAN, 8, NULL, 0x04,
21439         NULL, HFILL }},
21440     { &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi,
21441       { "m-csi", "gsm_map.ms.m-csi",
21442         FT_BOOLEAN, 8, NULL, 0x02,
21443         NULL, HFILL }},
21444     { &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi,
21445       { "gprs-csi", "gsm_map.ms.gprs-csi",
21446         FT_BOOLEAN, 8, NULL, 0x01,
21447         NULL, HFILL }},
21448     { &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi,
21449       { "t-csi", "gsm_map.ms.t-csi",
21450         FT_BOOLEAN, 8, NULL, 0x80,
21451         NULL, HFILL }},
21452     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi,
21453       { "mt-sms-csi", "gsm_map.ms.mt-sms-csi",
21454         FT_BOOLEAN, 8, NULL, 0x40,
21455         NULL, HFILL }},
21456     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi,
21457       { "mg-csi", "gsm_map.ms.mg-csi",
21458         FT_BOOLEAN, 8, NULL, 0x20,
21459         NULL, HFILL }},
21460     { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI,
21461       { "o-IM-CSI", "gsm_map.ms.o-IM-CSI",
21462         FT_BOOLEAN, 8, NULL, 0x10,
21463         NULL, HFILL }},
21464     { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI,
21465       { "d-IM-CSI", "gsm_map.ms.d-IM-CSI",
21466         FT_BOOLEAN, 8, NULL, 0x08,
21467         NULL, HFILL }},
21468     { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI,
21469       { "vt-IM-CSI", "gsm_map.ms.vt-IM-CSI",
21470         FT_BOOLEAN, 8, NULL, 0x04,
21471         NULL, HFILL }},
21472     { &hf_gsm_map_ms_SupportedCamelPhases_phase1,
21473       { "phase1", "gsm_map.ms.phase1",
21474         FT_BOOLEAN, 8, NULL, 0x80,
21475         NULL, HFILL }},
21476     { &hf_gsm_map_ms_SupportedCamelPhases_phase2,
21477       { "phase2", "gsm_map.ms.phase2",
21478         FT_BOOLEAN, 8, NULL, 0x40,
21479         NULL, HFILL }},
21480     { &hf_gsm_map_ms_SupportedCamelPhases_phase3,
21481       { "phase3", "gsm_map.ms.phase3",
21482         FT_BOOLEAN, 8, NULL, 0x20,
21483         NULL, HFILL }},
21484     { &hf_gsm_map_ms_SupportedCamelPhases_phase4,
21485       { "phase4", "gsm_map.ms.phase4",
21486         FT_BOOLEAN, 8, NULL, 0x10,
21487         NULL, HFILL }},
21488     { &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi,
21489       { "o-csi", "gsm_map.ms.o-csi",
21490         FT_BOOLEAN, 8, NULL, 0x80,
21491         NULL, HFILL }},
21492     { &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi,
21493       { "d-csi", "gsm_map.ms.d-csi",
21494         FT_BOOLEAN, 8, NULL, 0x40,
21495         NULL, HFILL }},
21496     { &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi,
21497       { "vt-csi", "gsm_map.ms.vt-csi",
21498         FT_BOOLEAN, 8, NULL, 0x20,
21499         NULL, HFILL }},
21500     { &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi,
21501       { "t-csi", "gsm_map.ms.t-csi",
21502         FT_BOOLEAN, 8, NULL, 0x10,
21503         NULL, HFILL }},
21504     { &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi,
21505       { "mt-sms-csi", "gsm_map.ms.mt-sms-csi",
21506         FT_BOOLEAN, 8, NULL, 0x08,
21507         NULL, HFILL }},
21508     { &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi,
21509       { "mg-csi", "gsm_map.ms.mg-csi",
21510         FT_BOOLEAN, 8, NULL, 0x04,
21511         NULL, HFILL }},
21512     { &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements,
21513       { "psi-enhancements", "gsm_map.ms.psi-enhancements",
21514         FT_BOOLEAN, 8, NULL, 0x02,
21515         NULL, HFILL }},
21516     { &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt,
21517       { "initiateCallAttempt", "gsm_map.ms.initiateCallAttempt",
21518         FT_BOOLEAN, 8, NULL, 0x80,
21519         NULL, HFILL }},
21520     { &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg,
21521       { "splitLeg", "gsm_map.ms.splitLeg",
21522         FT_BOOLEAN, 8, NULL, 0x40,
21523         NULL, HFILL }},
21524     { &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg,
21525       { "moveLeg", "gsm_map.ms.moveLeg",
21526         FT_BOOLEAN, 8, NULL, 0x20,
21527         NULL, HFILL }},
21528     { &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg,
21529       { "disconnectLeg", "gsm_map.ms.disconnectLeg",
21530         FT_BOOLEAN, 8, NULL, 0x10,
21531         NULL, HFILL }},
21532     { &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased,
21533       { "entityReleased", "gsm_map.ms.entityReleased",
21534         FT_BOOLEAN, 8, NULL, 0x08,
21535         NULL, HFILL }},
21536     { &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument,
21537       { "dfc-WithArgument", "gsm_map.ms.dfc-WithArgument",
21538         FT_BOOLEAN, 8, NULL, 0x04,
21539         NULL, HFILL }},
21540     { &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone,
21541       { "playTone", "gsm_map.ms.playTone",
21542         FT_BOOLEAN, 8, NULL, 0x02,
21543         NULL, HFILL }},
21544     { &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall,
21545       { "dtmf-MidCall", "gsm_map.ms.dtmf-MidCall",
21546         FT_BOOLEAN, 8, NULL, 0x01,
21547         NULL, HFILL }},
21548     { &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator,
21549       { "chargingIndicator", "gsm_map.ms.chargingIndicator",
21550         FT_BOOLEAN, 8, NULL, 0x80,
21551         NULL, HFILL }},
21552     { &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP,
21553       { "alertingDP", "gsm_map.ms.alertingDP",
21554         FT_BOOLEAN, 8, NULL, 0x40,
21555         NULL, HFILL }},
21556     { &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting,
21557       { "locationAtAlerting", "gsm_map.ms.locationAtAlerting",
21558         FT_BOOLEAN, 8, NULL, 0x20,
21559         NULL, HFILL }},
21560     { &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP,
21561       { "changeOfPositionDP", "gsm_map.ms.changeOfPositionDP",
21562         FT_BOOLEAN, 8, NULL, 0x10,
21563         NULL, HFILL }},
21564     { &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions,
21565       { "or-Interactions", "gsm_map.ms.or-Interactions",
21566         FT_BOOLEAN, 8, NULL, 0x08,
21567         NULL, HFILL }},
21568     { &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements,
21569       { "warningToneEnhancements", "gsm_map.ms.warningToneEnhancements",
21570         FT_BOOLEAN, 8, NULL, 0x04,
21571         NULL, HFILL }},
21572     { &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements,
21573       { "cf-Enhancements", "gsm_map.ms.cf-Enhancements",
21574         FT_BOOLEAN, 8, NULL, 0x02,
21575         NULL, HFILL }},
21576     { &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices,
21577       { "subscribedEnhancedDialledServices", "gsm_map.ms.subscribedEnhancedDialledServices",
21578         FT_BOOLEAN, 8, NULL, 0x01,
21579         NULL, HFILL }},
21580     { &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices,
21581       { "servingNetworkEnhancedDialledServices", "gsm_map.ms.servingNetworkEnhancedDialledServices",
21582         FT_BOOLEAN, 8, NULL, 0x80,
21583         NULL, HFILL }},
21584     { &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP,
21585       { "criteriaForChangeOfPositionDP", "gsm_map.ms.criteriaForChangeOfPositionDP",
21586         FT_BOOLEAN, 8, NULL, 0x40,
21587         NULL, HFILL }},
21588     { &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP,
21589       { "serviceChangeDP", "gsm_map.ms.serviceChangeDP",
21590         FT_BOOLEAN, 8, NULL, 0x20,
21591         NULL, HFILL }},
21592     { &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation,
21593       { "collectInformation", "gsm_map.ms.collectInformation",
21594         FT_BOOLEAN, 8, NULL, 0x10,
21595         NULL, HFILL }},
21596     { &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest,
21597       { "privilegedUplinkRequest", "gsm_map.ms.privilegedUplinkRequest",
21598         FT_BOOLEAN, 8, NULL, 0x80,
21599         NULL, HFILL }},
21600     { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest,
21601       { "emergencyUplinkRequest", "gsm_map.ms.emergencyUplinkRequest",
21602         FT_BOOLEAN, 8, NULL, 0x40,
21603         NULL, HFILL }},
21604     { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset,
21605       { "emergencyReset", "gsm_map.ms.emergencyReset",
21606         FT_BOOLEAN, 8, NULL, 0x20,
21607         NULL, HFILL }},
21608
21609 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
21610
21611     { &hf_gsm_map_ch_cug_Interlock,
21612       { "cug-Interlock", "gsm_map.ch.cug_Interlock",
21613         FT_BYTES, BASE_NONE, NULL, 0,
21614         "gsm_map_ms.CUG_Interlock", HFILL }},
21615     { &hf_gsm_map_ch_cug_OutgoingAccess,
21616       { "cug-OutgoingAccess", "gsm_map.ch.cug_OutgoingAccess",
21617         FT_NONE, BASE_NONE, NULL, 0,
21618         "gsm_map_ch.NULL", HFILL }},
21619     { &hf_gsm_map_ch_extensionContainer,
21620       { "extensionContainer", "gsm_map.ch.extensionContainer",
21621         FT_NONE, BASE_NONE, NULL, 0,
21622         "gsm_map.ExtensionContainer", HFILL }},
21623     { &hf_gsm_map_ch_msisdn,
21624       { "msisdn", "gsm_map.ch.msisdn",
21625         FT_BYTES, BASE_NONE, NULL, 0,
21626         "gsm_map.ISDN_AddressString", HFILL }},
21627     { &hf_gsm_map_ch_cug_CheckInfo,
21628       { "cug-CheckInfo", "gsm_map.ch.cug_CheckInfo",
21629         FT_NONE, BASE_NONE, NULL, 0,
21630         "gsm_map_ch.CUG_CheckInfo", HFILL }},
21631     { &hf_gsm_map_ch_numberOfForwarding,
21632       { "numberOfForwarding", "gsm_map.ch.numberOfForwarding",
21633         FT_UINT32, BASE_DEC, NULL, 0,
21634         "gsm_map_ch.NumberOfForwarding", HFILL }},
21635     { &hf_gsm_map_ch_interrogationType,
21636       { "interrogationType", "gsm_map.ch.interrogationType",
21637         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_InterrogationType_vals), 0,
21638         "gsm_map_ch.InterrogationType", HFILL }},
21639     { &hf_gsm_map_ch_or_Interrogation,
21640       { "or-Interrogation", "gsm_map.ch.or_Interrogation",
21641         FT_NONE, BASE_NONE, NULL, 0,
21642         "gsm_map_ch.NULL", HFILL }},
21643     { &hf_gsm_map_ch_or_Capability,
21644       { "or-Capability", "gsm_map.ch.or_Capability",
21645         FT_UINT32, BASE_DEC, NULL, 0,
21646         "gsm_map_ch.OR_Phase", HFILL }},
21647     { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address,
21648       { "gmsc-OrGsmSCF-Address", "gsm_map.ch.gmsc_OrGsmSCF_Address",
21649         FT_BYTES, BASE_NONE, NULL, 0,
21650         "gsm_map.ISDN_AddressString", HFILL }},
21651     { &hf_gsm_map_ch_callReferenceNumber,
21652       { "callReferenceNumber", "gsm_map.ch.callReferenceNumber",
21653         FT_BYTES, BASE_NONE, NULL, 0,
21654         "gsm_map_ch.CallReferenceNumber", HFILL }},
21655     { &hf_gsm_map_ch_forwardingReason,
21656       { "forwardingReason", "gsm_map.ch.forwardingReason",
21657         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ForwardingReason_vals), 0,
21658         "gsm_map_ch.ForwardingReason", HFILL }},
21659     { &hf_gsm_map_ch_basicServiceGroup,
21660       { "basicServiceGroup", "gsm_map.ch.basicServiceGroup",
21661         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
21662         "gsm_map.Ext_BasicServiceCode", HFILL }},
21663     { &hf_gsm_map_ch_networkSignalInfo,
21664       { "networkSignalInfo", "gsm_map.ch.networkSignalInfo",
21665         FT_NONE, BASE_NONE, NULL, 0,
21666         "gsm_map.ExternalSignalInfo", HFILL }},
21667     { &hf_gsm_map_ch_camelInfo,
21668       { "camelInfo", "gsm_map.ch.camelInfo",
21669         FT_NONE, BASE_NONE, NULL, 0,
21670         "gsm_map_ch.CamelInfo", HFILL }},
21671     { &hf_gsm_map_ch_suppressionOfAnnouncement,
21672       { "suppressionOfAnnouncement", "gsm_map.ch.suppressionOfAnnouncement",
21673         FT_NONE, BASE_NONE, NULL, 0,
21674         "gsm_map_ch.SuppressionOfAnnouncement", HFILL }},
21675     { &hf_gsm_map_ch_alertingPattern,
21676       { "alertingPattern", "gsm_map.ch.alertingPattern",
21677         FT_BYTES, BASE_NONE, NULL, 0,
21678         "gsm_map.AlertingPattern", HFILL }},
21679     { &hf_gsm_map_ch_ccbs_Call,
21680       { "ccbs-Call", "gsm_map.ch.ccbs_Call",
21681         FT_NONE, BASE_NONE, NULL, 0,
21682         "gsm_map_ch.NULL", HFILL }},
21683     { &hf_gsm_map_ch_supportedCCBS_Phase,
21684       { "supportedCCBS-Phase", "gsm_map.ch.supportedCCBS_Phase",
21685         FT_UINT32, BASE_DEC, NULL, 0,
21686         "gsm_map_ch.SupportedCCBS_Phase", HFILL }},
21687     { &hf_gsm_map_ch_additionalSignalInfo,
21688       { "additionalSignalInfo", "gsm_map.ch.additionalSignalInfo",
21689         FT_NONE, BASE_NONE, NULL, 0,
21690         "gsm_map.Ext_ExternalSignalInfo", HFILL }},
21691     { &hf_gsm_map_ch_istSupportIndicator,
21692       { "istSupportIndicator", "gsm_map.ch.istSupportIndicator",
21693         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
21694         "gsm_map_ms.IST_SupportIndicator", HFILL }},
21695     { &hf_gsm_map_ch_pre_pagingSupported,
21696       { "pre-pagingSupported", "gsm_map.ch.pre_pagingSupported",
21697         FT_NONE, BASE_NONE, NULL, 0,
21698         "gsm_map_ch.NULL", HFILL }},
21699     { &hf_gsm_map_ch_callDiversionTreatmentIndicator,
21700       { "callDiversionTreatmentIndicator", "gsm_map.ch.callDiversionTreatmentIndicator",
21701         FT_BYTES, BASE_NONE, NULL, 0,
21702         "gsm_map_ch.CallDiversionTreatmentIndicator", HFILL }},
21703     { &hf_gsm_map_ch_longFTN_Supported,
21704       { "longFTN-Supported", "gsm_map.ch.longFTN_Supported",
21705         FT_NONE, BASE_NONE, NULL, 0,
21706         "gsm_map_ch.NULL", HFILL }},
21707     { &hf_gsm_map_ch_suppress_VT_CSI,
21708       { "suppress-VT-CSI", "gsm_map.ch.suppress_VT_CSI",
21709         FT_NONE, BASE_NONE, NULL, 0,
21710         "gsm_map_ch.NULL", HFILL }},
21711     { &hf_gsm_map_ch_suppressIncomingCallBarring,
21712       { "suppressIncomingCallBarring", "gsm_map.ch.suppressIncomingCallBarring",
21713         FT_NONE, BASE_NONE, NULL, 0,
21714         "gsm_map_ch.NULL", HFILL }},
21715     { &hf_gsm_map_ch_gsmSCF_InitiatedCall,
21716       { "gsmSCF-InitiatedCall", "gsm_map.ch.gsmSCF_InitiatedCall",
21717         FT_NONE, BASE_NONE, NULL, 0,
21718         "gsm_map_ch.NULL", HFILL }},
21719     { &hf_gsm_map_ch_basicServiceGroup2,
21720       { "basicServiceGroup2", "gsm_map.ch.basicServiceGroup2",
21721         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
21722         "gsm_map.Ext_BasicServiceCode", HFILL }},
21723     { &hf_gsm_map_ch_networkSignalInfo2,
21724       { "networkSignalInfo2", "gsm_map.ch.networkSignalInfo2",
21725         FT_NONE, BASE_NONE, NULL, 0,
21726         "gsm_map.ExternalSignalInfo", HFILL }},
21727     { &hf_gsm_map_ch_suppressMTSS,
21728       { "suppressMTSS", "gsm_map.ch.suppressMTSS",
21729         FT_BYTES, BASE_NONE, NULL, 0,
21730         "gsm_map_ch.SuppressMTSS", HFILL }},
21731     { &hf_gsm_map_ch_mtRoamingRetrySupported,
21732       { "mtRoamingRetrySupported", "gsm_map.ch.mtRoamingRetrySupported",
21733         FT_NONE, BASE_NONE, NULL, 0,
21734         "gsm_map_ch.NULL", HFILL }},
21735     { &hf_gsm_map_ch_callPriority,
21736       { "callPriority", "gsm_map.ch.callPriority",
21737         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
21738         "gsm_map.EMLPP_Priority", HFILL }},
21739     { &hf_gsm_map_ch_imsi,
21740       { "imsi", "gsm_map.ch.imsi",
21741         FT_BYTES, BASE_NONE, NULL, 0,
21742         "gsm_map.IMSI", HFILL }},
21743     { &hf_gsm_map_ch_extendedRoutingInfo,
21744       { "extendedRoutingInfo", "gsm_map.ch.extendedRoutingInfo",
21745         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ExtendedRoutingInfo_vals), 0,
21746         "gsm_map_ch.ExtendedRoutingInfo", HFILL }},
21747     { &hf_gsm_map_ch_cugSubscriptionFlag,
21748       { "cugSubscriptionFlag", "gsm_map.ch.cugSubscriptionFlag",
21749         FT_NONE, BASE_NONE, NULL, 0,
21750         "gsm_map_ch.NULL", HFILL }},
21751     { &hf_gsm_map_ch_subscriberInfo,
21752       { "subscriberInfo", "gsm_map.ch.subscriberInfo",
21753         FT_NONE, BASE_NONE, NULL, 0,
21754         "gsm_map_ms.SubscriberInfo", HFILL }},
21755     { &hf_gsm_map_ch_ss_List,
21756       { "ss-List", "gsm_map.ch.ss_List",
21757         FT_UINT32, BASE_DEC, NULL, 0,
21758         "gsm_map_ss.SS_List", HFILL }},
21759     { &hf_gsm_map_ch_basicService,
21760       { "basicService", "gsm_map.ch.basicService",
21761         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
21762         "gsm_map.Ext_BasicServiceCode", HFILL }},
21763     { &hf_gsm_map_ch_forwardingInterrogationRequired,
21764       { "forwardingInterrogationRequired", "gsm_map.ch.forwardingInterrogationRequired",
21765         FT_NONE, BASE_NONE, NULL, 0,
21766         "gsm_map_ch.NULL", HFILL }},
21767     { &hf_gsm_map_ch_vmsc_Address,
21768       { "vmsc-Address", "gsm_map.ch.vmsc_Address",
21769         FT_BYTES, BASE_NONE, NULL, 0,
21770         "gsm_map.ISDN_AddressString", HFILL }},
21771     { &hf_gsm_map_ch_naea_PreferredCI,
21772       { "naea-PreferredCI", "gsm_map.ch.naea_PreferredCI",
21773         FT_NONE, BASE_NONE, NULL, 0,
21774         "gsm_map.NAEA_PreferredCI", HFILL }},
21775     { &hf_gsm_map_ch_ccbs_Indicators,
21776       { "ccbs-Indicators", "gsm_map.ch.ccbs_Indicators",
21777         FT_NONE, BASE_NONE, NULL, 0,
21778         "gsm_map_ch.CCBS_Indicators", HFILL }},
21779     { &hf_gsm_map_ch_numberPortabilityStatus,
21780       { "numberPortabilityStatus", "gsm_map.ch.numberPortabilityStatus",
21781         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
21782         "gsm_map_ms.NumberPortabilityStatus", HFILL }},
21783     { &hf_gsm_map_ch_istAlertTimer,
21784       { "istAlertTimer", "gsm_map.ch.istAlertTimer",
21785         FT_UINT32, BASE_DEC, NULL, 0,
21786         "gsm_map_ms.IST_AlertTimerValue", HFILL }},
21787     { &hf_gsm_map_ch_supportedCamelPhasesInVMSC,
21788       { "supportedCamelPhasesInVMSC", "gsm_map.ch.supportedCamelPhasesInVMSC",
21789         FT_BYTES, BASE_NONE, NULL, 0,
21790         "gsm_map_ms.SupportedCamelPhases", HFILL }},
21791     { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC,
21792       { "offeredCamel4CSIsInVMSC", "gsm_map.ch.offeredCamel4CSIsInVMSC",
21793         FT_BYTES, BASE_NONE, NULL, 0,
21794         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
21795     { &hf_gsm_map_ch_routingInfo2,
21796       { "routingInfo2", "gsm_map.ch.routingInfo2",
21797         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
21798         "gsm_map_ch.RoutingInfo", HFILL }},
21799     { &hf_gsm_map_ch_ss_List2,
21800       { "ss-List2", "gsm_map.ch.ss_List2",
21801         FT_UINT32, BASE_DEC, NULL, 0,
21802         "gsm_map_ss.SS_List", HFILL }},
21803     { &hf_gsm_map_ch_basicService2,
21804       { "basicService2", "gsm_map.ch.basicService2",
21805         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
21806         "gsm_map.Ext_BasicServiceCode", HFILL }},
21807     { &hf_gsm_map_ch_allowedServices,
21808       { "allowedServices", "gsm_map.ch.allowedServices",
21809         FT_BYTES, BASE_NONE, NULL, 0,
21810         "gsm_map_ch.AllowedServices", HFILL }},
21811     { &hf_gsm_map_ch_unavailabilityCause,
21812       { "unavailabilityCause", "gsm_map.ch.unavailabilityCause",
21813         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_UnavailabilityCause_vals), 0,
21814         "gsm_map_ch.UnavailabilityCause", HFILL }},
21815     { &hf_gsm_map_ch_releaseResourcesSupported,
21816       { "releaseResourcesSupported", "gsm_map.ch.releaseResourcesSupported",
21817         FT_NONE, BASE_NONE, NULL, 0,
21818         "gsm_map_ch.NULL", HFILL }},
21819     { &hf_gsm_map_ch_gsm_BearerCapability,
21820       { "gsm-BearerCapability", "gsm_map.ch.gsm_BearerCapability",
21821         FT_NONE, BASE_NONE, NULL, 0,
21822         "gsm_map.ExternalSignalInfo", HFILL }},
21823     { &hf_gsm_map_ch_ccbs_Possible,
21824       { "ccbs-Possible", "gsm_map.ch.ccbs_Possible",
21825         FT_NONE, BASE_NONE, NULL, 0,
21826         "gsm_map_ch.NULL", HFILL }},
21827     { &hf_gsm_map_ch_keepCCBS_CallIndicator,
21828       { "keepCCBS-CallIndicator", "gsm_map.ch.keepCCBS_CallIndicator",
21829         FT_NONE, BASE_NONE, NULL, 0,
21830         "gsm_map_ch.NULL", HFILL }},
21831     { &hf_gsm_map_ch_roamingNumber,
21832       { "roamingNumber", "gsm_map.ch.roamingNumber",
21833         FT_BYTES, BASE_NONE, NULL, 0,
21834         "gsm_map.ISDN_AddressString", HFILL }},
21835     { &hf_gsm_map_ch_forwardingData,
21836       { "forwardingData", "gsm_map.ch.forwardingData",
21837         FT_NONE, BASE_NONE, NULL, 0,
21838         "gsm_map_ch.ForwardingData", HFILL }},
21839     { &hf_gsm_map_ch_forwardedToNumber,
21840       { "forwardedToNumber", "gsm_map.ch.forwardedToNumber",
21841         FT_BYTES, BASE_NONE, NULL, 0,
21842         "gsm_map.ISDN_AddressString", HFILL }},
21843     { &hf_gsm_map_ch_forwardedToSubaddress,
21844       { "forwardedToSubaddress", "gsm_map.ch.forwardedToSubaddress",
21845         FT_BYTES, BASE_NONE, NULL, 0,
21846         "gsm_map.ISDN_SubaddressString", HFILL }},
21847     { &hf_gsm_map_ch_forwardingOptions,
21848       { "forwardingOptions", "gsm_map.ch.forwardingOptions",
21849         FT_BYTES, BASE_NONE, NULL, 0,
21850         "gsm_map_ss.ForwardingOptions", HFILL }},
21851     { &hf_gsm_map_ch_longForwardedToNumber,
21852       { "longForwardedToNumber", "gsm_map.ch.longForwardedToNumber",
21853         FT_BYTES, BASE_NONE, NULL, 0,
21854         "gsm_map.FTN_AddressString", HFILL }},
21855     { &hf_gsm_map_ch_msc_Number,
21856       { "msc-Number", "gsm_map.ch.msc_Number",
21857         FT_BYTES, BASE_NONE, NULL, 0,
21858         "gsm_map.ISDN_AddressString", HFILL }},
21859     { &hf_gsm_map_ch_lmsi,
21860       { "lmsi", "gsm_map.ch.lmsi",
21861         FT_BYTES, BASE_NONE, NULL, 0,
21862         "gsm_map.LMSI", HFILL }},
21863     { &hf_gsm_map_ch_gmsc_Address,
21864       { "gmsc-Address", "gsm_map.ch.gmsc_Address",
21865         FT_BYTES, BASE_NONE, NULL, 0,
21866         "gsm_map.ISDN_AddressString", HFILL }},
21867     { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode,
21868       { "supportedCamelPhasesInInterrogatingNode", "gsm_map.ch.supportedCamelPhasesInInterrogatingNode",
21869         FT_BYTES, BASE_NONE, NULL, 0,
21870         "gsm_map_ms.SupportedCamelPhases", HFILL }},
21871     { &hf_gsm_map_ch_orNotSupportedInGMSC,
21872       { "orNotSupportedInGMSC", "gsm_map.ch.orNotSupportedInGMSC",
21873         FT_NONE, BASE_NONE, NULL, 0,
21874         "gsm_map_ch.NULL", HFILL }},
21875     { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode,
21876       { "offeredCamel4CSIsInInterrogatingNode", "gsm_map.ch.offeredCamel4CSIsInInterrogatingNode",
21877         FT_BYTES, BASE_NONE, NULL, 0,
21878         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
21879     { &hf_gsm_map_ch_pagingArea,
21880       { "pagingArea", "gsm_map.ch.pagingArea",
21881         FT_UINT32, BASE_DEC, NULL, 0,
21882         "gsm_map_ms.PagingArea", HFILL }},
21883     { &hf_gsm_map_ch_o_CSI,
21884       { "o-CSI", "gsm_map.ch.o_CSI",
21885         FT_NONE, BASE_NONE, NULL, 0,
21886         "gsm_map_ms.O_CSI", HFILL }},
21887     { &hf_gsm_map_ch_uu_Data,
21888       { "uu-Data", "gsm_map.ch.uu_Data",
21889         FT_NONE, BASE_NONE, NULL, 0,
21890         "gsm_map_ch.UU_Data", HFILL }},
21891     { &hf_gsm_map_ch_allInformationSent,
21892       { "allInformationSent", "gsm_map.ch.allInformationSent",
21893         FT_NONE, BASE_NONE, NULL, 0,
21894         "gsm_map_ch.NULL", HFILL }},
21895     { &hf_gsm_map_ch_d_csi,
21896       { "d-csi", "gsm_map.ch.d_csi",
21897         FT_NONE, BASE_NONE, NULL, 0,
21898         "gsm_map_ms.D_CSI", HFILL }},
21899     { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList,
21900       { "o-BcsmCamelTDPCriteriaList", "gsm_map.ch.o_BcsmCamelTDPCriteriaList",
21901         FT_UINT32, BASE_DEC, NULL, 0,
21902         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
21903     { &hf_gsm_map_ch_mtRoamingRetry,
21904       { "mtRoamingRetry", "gsm_map.ch.mtRoamingRetry",
21905         FT_NONE, BASE_NONE, NULL, 0,
21906         "gsm_map_ch.NULL", HFILL }},
21907     { &hf_gsm_map_ch_uuIndicator,
21908       { "uuIndicator", "gsm_map.ch.uuIndicator",
21909         FT_BYTES, BASE_NONE, NULL, 0,
21910         "gsm_map_ch.UUIndicator", HFILL }},
21911     { &hf_gsm_map_ch_uui,
21912       { "uui", "gsm_map.ch.uui",
21913         FT_BYTES, BASE_NONE, NULL, 0,
21914         "gsm_map_ch.UUI", HFILL }},
21915     { &hf_gsm_map_ch_uusCFInteraction,
21916       { "uusCFInteraction", "gsm_map.ch.uusCFInteraction",
21917         FT_NONE, BASE_NONE, NULL, 0,
21918         "gsm_map_ch.NULL", HFILL }},
21919     { &hf_gsm_map_ch_supportedCamelPhases,
21920       { "supportedCamelPhases", "gsm_map.ch.supportedCamelPhases",
21921         FT_BYTES, BASE_NONE, NULL, 0,
21922         "gsm_map_ms.SupportedCamelPhases", HFILL }},
21923     { &hf_gsm_map_ch_suppress_T_CSI,
21924       { "suppress-T-CSI", "gsm_map.ch.suppress_T_CSI",
21925         FT_NONE, BASE_NONE, NULL, 0,
21926         "gsm_map_ch.NULL", HFILL }},
21927     { &hf_gsm_map_ch_offeredCamel4CSIs,
21928       { "offeredCamel4CSIs", "gsm_map.ch.offeredCamel4CSIs",
21929         FT_BYTES, BASE_NONE, NULL, 0,
21930         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
21931     { &hf_gsm_map_ch_routingInfo,
21932       { "routingInfo", "gsm_map.ch.routingInfo",
21933         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
21934         "gsm_map_ch.RoutingInfo", HFILL }},
21935     { &hf_gsm_map_ch_camelRoutingInfo,
21936       { "camelRoutingInfo", "gsm_map.ch.camelRoutingInfo",
21937         FT_NONE, BASE_NONE, NULL, 0,
21938         "gsm_map_ch.CamelRoutingInfo", HFILL }},
21939     { &hf_gsm_map_ch_gmscCamelSubscriptionInfo,
21940       { "gmscCamelSubscriptionInfo", "gsm_map.ch.gmscCamelSubscriptionInfo",
21941         FT_NONE, BASE_NONE, NULL, 0,
21942         "gsm_map_ch.GmscCamelSubscriptionInfo", HFILL }},
21943     { &hf_gsm_map_ch_t_CSI,
21944       { "t-CSI", "gsm_map.ch.t_CSI",
21945         FT_NONE, BASE_NONE, NULL, 0,
21946         "gsm_map_ms.T_CSI", HFILL }},
21947     { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList,
21948       { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ch.o_BcsmCamelTDP_CriteriaList",
21949         FT_UINT32, BASE_DEC, NULL, 0,
21950         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
21951     { &hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList,
21952       { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ch.t_BCSM_CAMEL_TDP_CriteriaList",
21953         FT_UINT32, BASE_DEC, NULL, 0,
21954         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
21955     { &hf_gsm_map_ch_ccbs_Monitoring,
21956       { "ccbs-Monitoring", "gsm_map.ch.ccbs_Monitoring",
21957         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ReportingState_vals), 0,
21958         "gsm_map_ch.ReportingState", HFILL }},
21959     { &hf_gsm_map_ch_ccbs_SubscriberStatus,
21960       { "ccbs-SubscriberStatus", "gsm_map.ch.ccbs_SubscriberStatus",
21961         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CCBS_SubscriberStatus_vals), 0,
21962         "gsm_map_ch.CCBS_SubscriberStatus", HFILL }},
21963     { &hf_gsm_map_ch_eventReportData,
21964       { "eventReportData", "gsm_map.ch.eventReportData",
21965         FT_NONE, BASE_NONE, NULL, 0,
21966         "gsm_map_ch.EventReportData", HFILL }},
21967     { &hf_gsm_map_ch_callReportdata,
21968       { "callReportdata", "gsm_map.ch.callReportdata",
21969         FT_NONE, BASE_NONE, NULL, 0,
21970         "gsm_map_ch.CallReportData", HFILL }},
21971     { &hf_gsm_map_ch_monitoringMode,
21972       { "monitoringMode", "gsm_map.ch.monitoringMode",
21973         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_MonitoringMode_vals), 0,
21974         "gsm_map_ch.MonitoringMode", HFILL }},
21975     { &hf_gsm_map_ch_callOutcome,
21976       { "callOutcome", "gsm_map.ch.callOutcome",
21977         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallOutcome_vals), 0,
21978         "gsm_map_ch.CallOutcome", HFILL }},
21979     { &hf_gsm_map_ch_callInfo,
21980       { "callInfo", "gsm_map.ch.callInfo",
21981         FT_NONE, BASE_NONE, NULL, 0,
21982         "gsm_map.ExternalSignalInfo", HFILL }},
21983     { &hf_gsm_map_ch_ccbs_Feature,
21984       { "ccbs-Feature", "gsm_map.ch.ccbs_Feature",
21985         FT_NONE, BASE_NONE, NULL, 0,
21986         "gsm_map_ss.CCBS_Feature", HFILL }},
21987     { &hf_gsm_map_ch_translatedB_Number,
21988       { "translatedB-Number", "gsm_map.ch.translatedB_Number",
21989         FT_BYTES, BASE_NONE, NULL, 0,
21990         "gsm_map.ISDN_AddressString", HFILL }},
21991     { &hf_gsm_map_ch_replaceB_Number,
21992       { "replaceB-Number", "gsm_map.ch.replaceB_Number",
21993         FT_NONE, BASE_NONE, NULL, 0,
21994         "gsm_map_ch.NULL", HFILL }},
21995     { &hf_gsm_map_ch_ruf_Outcome,
21996       { "ruf-Outcome", "gsm_map.ch.ruf_Outcome",
21997         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RUF_Outcome_vals), 0,
21998         "gsm_map_ch.RUF_Outcome", HFILL }},
21999     { &hf_gsm_map_ch_istInformationWithdraw,
22000       { "istInformationWithdraw", "gsm_map.ch.istInformationWithdraw",
22001         FT_NONE, BASE_NONE, NULL, 0,
22002         "gsm_map_ch.NULL", HFILL }},
22003     { &hf_gsm_map_ch_callTerminationIndicator,
22004       { "callTerminationIndicator", "gsm_map.ch.callTerminationIndicator",
22005         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallTerminationIndicator_vals), 0,
22006         "gsm_map_ch.CallTerminationIndicator", HFILL }},
22007     { &hf_gsm_map_ch_msrn,
22008       { "msrn", "gsm_map.ch.msrn",
22009         FT_BYTES, BASE_NONE, NULL, 0,
22010         "gsm_map.ISDN_AddressString", HFILL }},
22011     { &hf_gsm_map_ch_SuppressMTSS_suppressCUG,
22012       { "suppressCUG", "gsm_map.ch.suppressCUG",
22013         FT_BOOLEAN, 8, NULL, 0x80,
22014         NULL, HFILL }},
22015     { &hf_gsm_map_ch_SuppressMTSS_suppressCCBS,
22016       { "suppressCCBS", "gsm_map.ch.suppressCCBS",
22017         FT_BOOLEAN, 8, NULL, 0x40,
22018         NULL, HFILL }},
22019     { &hf_gsm_map_ch_AllowedServices_firstServiceAllowed,
22020       { "firstServiceAllowed", "gsm_map.ch.firstServiceAllowed",
22021         FT_BOOLEAN, 8, NULL, 0x80,
22022         NULL, HFILL }},
22023     { &hf_gsm_map_ch_AllowedServices_secondServiceAllowed,
22024       { "secondServiceAllowed", "gsm_map.ch.secondServiceAllowed",
22025         FT_BOOLEAN, 8, NULL, 0x40,
22026         NULL, HFILL }},
22027
22028 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
22029
22030     { &hf_gsm_map_lcs_gsm_map_lcs_LCS_ClientID_PDU,
22031       { "LCS-ClientID", "gsm_map.lcs.LCS_ClientID",
22032         FT_NONE, BASE_NONE, NULL, 0,
22033         "gsm_map_lcs.LCS_ClientID", HFILL }},
22034     { &hf_gsm_map_lcs_mlcNumber,
22035       { "mlcNumber", "gsm_map.lcs.mlcNumber",
22036         FT_BYTES, BASE_NONE, NULL, 0,
22037         "gsm_map.ISDN_AddressString", HFILL }},
22038     { &hf_gsm_map_lcs_targetMS,
22039       { "targetMS", "gsm_map.lcs.targetMS",
22040         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
22041         "gsm_map.SubscriberIdentity", HFILL }},
22042     { &hf_gsm_map_lcs_extensionContainer,
22043       { "extensionContainer", "gsm_map.lcs.extensionContainer",
22044         FT_NONE, BASE_NONE, NULL, 0,
22045         "gsm_map.ExtensionContainer", HFILL }},
22046     { &hf_gsm_map_lcs_lcsLocationInfo,
22047       { "lcsLocationInfo", "gsm_map.lcs.lcsLocationInfo",
22048         FT_NONE, BASE_NONE, NULL, 0,
22049         "gsm_map_lcs.LCSLocationInfo", HFILL }},
22050     { &hf_gsm_map_lcs_v_gmlc_Address,
22051       { "v-gmlc-Address", "gsm_map.lcs.v_gmlc_Address",
22052         FT_BYTES, BASE_NONE, NULL, 0,
22053         "gsm_map_ms.GSN_Address", HFILL }},
22054     { &hf_gsm_map_lcs_h_gmlc_Address,
22055       { "h-gmlc-Address", "gsm_map.lcs.h_gmlc_Address",
22056         FT_BYTES, BASE_NONE, NULL, 0,
22057         "gsm_map_ms.GSN_Address", HFILL }},
22058     { &hf_gsm_map_lcs_ppr_Address,
22059       { "ppr-Address", "gsm_map.lcs.ppr_Address",
22060         FT_BYTES, BASE_NONE, NULL, 0,
22061         "gsm_map_ms.GSN_Address", HFILL }},
22062     { &hf_gsm_map_lcs_additional_v_gmlc_Address,
22063       { "additional-v-gmlc-Address", "gsm_map.lcs.additional_v_gmlc_Address",
22064         FT_BYTES, BASE_NONE, NULL, 0,
22065         "gsm_map_ms.GSN_Address", HFILL }},
22066     { &hf_gsm_map_lcs_networkNode_Number,
22067       { "networkNode-Number", "gsm_map.lcs.networkNode_Number",
22068         FT_BYTES, BASE_NONE, NULL, 0,
22069         "gsm_map.ISDN_AddressString", HFILL }},
22070     { &hf_gsm_map_lcs_lmsi,
22071       { "lmsi", "gsm_map.lcs.lmsi",
22072         FT_BYTES, BASE_NONE, NULL, 0,
22073         "gsm_map.LMSI", HFILL }},
22074     { &hf_gsm_map_lcs_gprsNodeIndicator,
22075       { "gprsNodeIndicator", "gsm_map.lcs.gprsNodeIndicator",
22076         FT_NONE, BASE_NONE, NULL, 0,
22077         "gsm_map_lcs.NULL", HFILL }},
22078     { &hf_gsm_map_lcs_additional_Number,
22079       { "additional-Number", "gsm_map.lcs.additional_Number",
22080         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
22081         "gsm_map_sm.Additional_Number", HFILL }},
22082     { &hf_gsm_map_lcs_supportedLCS_CapabilitySets,
22083       { "supportedLCS-CapabilitySets", "gsm_map.lcs.supportedLCS_CapabilitySets",
22084         FT_BYTES, BASE_NONE, NULL, 0,
22085         "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }},
22086     { &hf_gsm_map_lcs_additional_LCS_CapabilitySets,
22087       { "additional-LCS-CapabilitySets", "gsm_map.lcs.additional_LCS_CapabilitySets",
22088         FT_BYTES, BASE_NONE, NULL, 0,
22089         "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }},
22090     { &hf_gsm_map_lcs_locationType,
22091       { "locationType", "gsm_map.lcs.locationType",
22092         FT_NONE, BASE_NONE, NULL, 0,
22093         "gsm_map_lcs.LocationType", HFILL }},
22094     { &hf_gsm_map_lcs_mlc_Number,
22095       { "mlc-Number", "gsm_map.lcs.mlc_Number",
22096         FT_BYTES, BASE_NONE, NULL, 0,
22097         "gsm_map.ISDN_AddressString", HFILL }},
22098     { &hf_gsm_map_lcs_lcs_ClientID,
22099       { "lcs-ClientID", "gsm_map.lcs.lcs_ClientID",
22100         FT_NONE, BASE_NONE, NULL, 0,
22101         "gsm_map_lcs.LCS_ClientID", HFILL }},
22102     { &hf_gsm_map_lcs_privacyOverride,
22103       { "privacyOverride", "gsm_map.lcs.privacyOverride",
22104         FT_NONE, BASE_NONE, NULL, 0,
22105         "gsm_map_lcs.NULL", HFILL }},
22106     { &hf_gsm_map_lcs_imsi,
22107       { "imsi", "gsm_map.lcs.imsi",
22108         FT_BYTES, BASE_NONE, NULL, 0,
22109         "gsm_map.IMSI", HFILL }},
22110     { &hf_gsm_map_lcs_msisdn,
22111       { "msisdn", "gsm_map.lcs.msisdn",
22112         FT_BYTES, BASE_NONE, NULL, 0,
22113         "gsm_map.ISDN_AddressString", HFILL }},
22114     { &hf_gsm_map_lcs_imei,
22115       { "imei", "gsm_map.lcs.imei",
22116         FT_BYTES, BASE_NONE, NULL, 0,
22117         "gsm_map.IMEI", HFILL }},
22118     { &hf_gsm_map_lcs_lcs_Priority,
22119       { "lcs-Priority", "gsm_map.lcs.lcs_Priority",
22120         FT_BYTES, BASE_NONE, NULL, 0,
22121         "gsm_map_lcs.LCS_Priority", HFILL }},
22122     { &hf_gsm_map_lcs_lcs_QoS,
22123       { "lcs-QoS", "gsm_map.lcs.lcs_QoS",
22124         FT_NONE, BASE_NONE, NULL, 0,
22125         "gsm_map_lcs.LCS_QoS", HFILL }},
22126     { &hf_gsm_map_lcs_supportedGADShapes,
22127       { "supportedGADShapes", "gsm_map.lcs.supportedGADShapes",
22128         FT_BYTES, BASE_NONE, NULL, 0,
22129         "gsm_map_lcs.SupportedGADShapes", HFILL }},
22130     { &hf_gsm_map_lcs_lcs_ReferenceNumber,
22131       { "lcs-ReferenceNumber", "gsm_map.lcs.lcs_ReferenceNumber",
22132         FT_BYTES, BASE_NONE, NULL, 0,
22133         "gsm_map_lcs.LCS_ReferenceNumber", HFILL }},
22134     { &hf_gsm_map_lcs_lcsServiceTypeID,
22135       { "lcsServiceTypeID", "gsm_map.lcs.lcsServiceTypeID",
22136         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
22137         "gsm_map.LCSServiceTypeID", HFILL }},
22138     { &hf_gsm_map_lcs_lcsCodeword,
22139       { "lcsCodeword", "gsm_map.lcs.lcsCodeword",
22140         FT_NONE, BASE_NONE, NULL, 0,
22141         "gsm_map_lcs.LCSCodeword", HFILL }},
22142     { &hf_gsm_map_lcs_lcs_PrivacyCheck,
22143       { "lcs-PrivacyCheck", "gsm_map.lcs.lcs_PrivacyCheck",
22144         FT_NONE, BASE_NONE, NULL, 0,
22145         "gsm_map_lcs.LCS_PrivacyCheck", HFILL }},
22146     { &hf_gsm_map_lcs_areaEventInfo,
22147       { "areaEventInfo", "gsm_map.lcs.areaEventInfo",
22148         FT_NONE, BASE_NONE, NULL, 0,
22149         "gsm_map_lcs.AreaEventInfo", HFILL }},
22150     { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator,
22151       { "mo-lrShortCircuitIndicator", "gsm_map.lcs.mo_lrShortCircuitIndicator",
22152         FT_NONE, BASE_NONE, NULL, 0,
22153         "gsm_map_lcs.NULL", HFILL }},
22154     { &hf_gsm_map_lcs_periodicLDRInfo,
22155       { "periodicLDRInfo", "gsm_map.lcs.periodicLDRInfo",
22156         FT_NONE, BASE_NONE, NULL, 0,
22157         "gsm_map_lcs.PeriodicLDRInfo", HFILL }},
22158     { &hf_gsm_map_lcs_reportingPLMNList,
22159       { "reportingPLMNList", "gsm_map.lcs.reportingPLMNList",
22160         FT_NONE, BASE_NONE, NULL, 0,
22161         "gsm_map_lcs.ReportingPLMNList", HFILL }},
22162     { &hf_gsm_map_lcs_locationEstimateType,
22163       { "locationEstimateType", "gsm_map.lcs.locationEstimateType",
22164         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LocationEstimateType_vals), 0,
22165         "gsm_map_lcs.LocationEstimateType", HFILL }},
22166     { &hf_gsm_map_lcs_deferredLocationEventType,
22167       { "deferredLocationEventType", "gsm_map.lcs.deferredLocationEventType",
22168         FT_BYTES, BASE_NONE, NULL, 0,
22169         "gsm_map_lcs.DeferredLocationEventType", HFILL }},
22170     { &hf_gsm_map_lcs_lcsClientType,
22171       { "lcsClientType", "gsm_map.lcs.lcsClientType",
22172         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCSClientType_vals), 0,
22173         "gsm_map_lcs.LCSClientType", HFILL }},
22174     { &hf_gsm_map_lcs_lcsClientExternalID,
22175       { "lcsClientExternalID", "gsm_map.lcs.lcsClientExternalID",
22176         FT_NONE, BASE_NONE, NULL, 0,
22177         "gsm_map.LCSClientExternalID", HFILL }},
22178     { &hf_gsm_map_lcs_lcsClientDialedByMS,
22179       { "lcsClientDialedByMS", "gsm_map.lcs.lcsClientDialedByMS",
22180         FT_BYTES, BASE_NONE, NULL, 0,
22181         "gsm_map.AddressString", HFILL }},
22182     { &hf_gsm_map_lcs_lcsClientInternalID,
22183       { "lcsClientInternalID", "gsm_map.lcs.lcsClientInternalID",
22184         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
22185         "gsm_map.LCSClientInternalID", HFILL }},
22186     { &hf_gsm_map_lcs_lcsClientName,
22187       { "lcsClientName", "gsm_map.lcs.lcsClientName",
22188         FT_NONE, BASE_NONE, NULL, 0,
22189         "gsm_map_lcs.LCSClientName", HFILL }},
22190     { &hf_gsm_map_lcs_lcsAPN,
22191       { "lcsAPN", "gsm_map.lcs.lcsAPN",
22192         FT_BYTES, BASE_NONE, NULL, 0,
22193         "gsm_map_ms.APN", HFILL }},
22194     { &hf_gsm_map_lcs_lcsRequestorID,
22195       { "lcsRequestorID", "gsm_map.lcs.lcsRequestorID",
22196         FT_NONE, BASE_NONE, NULL, 0,
22197         "gsm_map_lcs.LCSRequestorID", HFILL }},
22198     { &hf_gsm_map_lcs_dataCodingScheme,
22199       { "dataCodingScheme", "gsm_map.lcs.dataCodingScheme",
22200         FT_BYTES, BASE_NONE, NULL, 0,
22201         "gsm_map_ss.USSD_DataCodingScheme", HFILL }},
22202     { &hf_gsm_map_lcs_nameString,
22203       { "nameString", "gsm_map.lcs.nameString",
22204         FT_BYTES, BASE_NONE, NULL, 0,
22205         "gsm_map_lcs.NameString", HFILL }},
22206     { &hf_gsm_map_lcs_lcs_FormatIndicator,
22207       { "lcs-FormatIndicator", "gsm_map.lcs.lcs_FormatIndicator",
22208         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_FormatIndicator_vals), 0,
22209         "gsm_map_lcs.LCS_FormatIndicator", HFILL }},
22210     { &hf_gsm_map_lcs_requestorIDString,
22211       { "requestorIDString", "gsm_map.lcs.requestorIDString",
22212         FT_BYTES, BASE_NONE, NULL, 0,
22213         "gsm_map_lcs.RequestorIDString", HFILL }},
22214     { &hf_gsm_map_lcs_horizontal_accuracy,
22215       { "horizontal-accuracy", "gsm_map.lcs.horizontal_accuracy",
22216         FT_BYTES, BASE_NONE, NULL, 0,
22217         "gsm_map_lcs.Horizontal_Accuracy", HFILL }},
22218     { &hf_gsm_map_lcs_verticalCoordinateRequest,
22219       { "verticalCoordinateRequest", "gsm_map.lcs.verticalCoordinateRequest",
22220         FT_NONE, BASE_NONE, NULL, 0,
22221         "gsm_map_lcs.NULL", HFILL }},
22222     { &hf_gsm_map_lcs_vertical_accuracy,
22223       { "vertical-accuracy", "gsm_map.lcs.vertical_accuracy",
22224         FT_BYTES, BASE_NONE, NULL, 0,
22225         "gsm_map_lcs.Vertical_Accuracy", HFILL }},
22226     { &hf_gsm_map_lcs_responseTime,
22227       { "responseTime", "gsm_map.lcs.responseTime",
22228         FT_NONE, BASE_NONE, NULL, 0,
22229         "gsm_map_lcs.ResponseTime", HFILL }},
22230     { &hf_gsm_map_lcs_velocityRequest,
22231       { "velocityRequest", "gsm_map.lcs.velocityRequest",
22232         FT_NONE, BASE_NONE, NULL, 0,
22233         "gsm_map_lcs.NULL", HFILL }},
22234     { &hf_gsm_map_lcs_responseTimeCategory,
22235       { "responseTimeCategory", "gsm_map.lcs.responseTimeCategory",
22236         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_ResponseTimeCategory_vals), 0,
22237         "gsm_map_lcs.ResponseTimeCategory", HFILL }},
22238     { &hf_gsm_map_lcs_lcsCodewordString,
22239       { "lcsCodewordString", "gsm_map.lcs.lcsCodewordString",
22240         FT_BYTES, BASE_NONE, NULL, 0,
22241         "gsm_map_lcs.LCSCodewordString", HFILL }},
22242     { &hf_gsm_map_lcs_callSessionUnrelated,
22243       { "callSessionUnrelated", "gsm_map.lcs.callSessionUnrelated",
22244         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
22245         "gsm_map_lcs.PrivacyCheckRelatedAction", HFILL }},
22246     { &hf_gsm_map_lcs_callSessionRelated,
22247       { "callSessionRelated", "gsm_map.lcs.callSessionRelated",
22248         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
22249         "gsm_map_lcs.PrivacyCheckRelatedAction", HFILL }},
22250     { &hf_gsm_map_lcs_areaDefinition,
22251       { "areaDefinition", "gsm_map.lcs.areaDefinition",
22252         FT_NONE, BASE_NONE, NULL, 0,
22253         "gsm_map_lcs.AreaDefinition", HFILL }},
22254     { &hf_gsm_map_lcs_occurrenceInfo,
22255       { "occurrenceInfo", "gsm_map.lcs.occurrenceInfo",
22256         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_OccurrenceInfo_vals), 0,
22257         "gsm_map_lcs.OccurrenceInfo", HFILL }},
22258     { &hf_gsm_map_lcs_intervalTime,
22259       { "intervalTime", "gsm_map.lcs.intervalTime",
22260         FT_UINT32, BASE_DEC, NULL, 0,
22261         "gsm_map_lcs.IntervalTime", HFILL }},
22262     { &hf_gsm_map_lcs_areaList,
22263       { "areaList", "gsm_map.lcs.areaList",
22264         FT_UINT32, BASE_DEC, NULL, 0,
22265         "gsm_map_lcs.AreaList", HFILL }},
22266     { &hf_gsm_map_lcs_AreaList_item,
22267       { "Area", "gsm_map.lcs.Area",
22268         FT_NONE, BASE_NONE, NULL, 0,
22269         "gsm_map_lcs.Area", HFILL }},
22270     { &hf_gsm_map_lcs_areaType,
22271       { "areaType", "gsm_map.lcs.areaType",
22272         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AreaType_vals), 0,
22273         "gsm_map_lcs.AreaType", HFILL }},
22274     { &hf_gsm_map_lcs_areaIdentification,
22275       { "areaIdentification", "gsm_map.lcs.areaIdentification",
22276         FT_BYTES, BASE_NONE, NULL, 0,
22277         "gsm_map_lcs.AreaIdentification", HFILL }},
22278     { &hf_gsm_map_lcs_reportingAmount,
22279       { "reportingAmount", "gsm_map.lcs.reportingAmount",
22280         FT_UINT32, BASE_DEC, NULL, 0,
22281         "gsm_map_lcs.ReportingAmount", HFILL }},
22282     { &hf_gsm_map_lcs_reportingInterval,
22283       { "reportingInterval", "gsm_map.lcs.reportingInterval",
22284         FT_UINT32, BASE_DEC, NULL, 0,
22285         "gsm_map_lcs.ReportingInterval", HFILL }},
22286     { &hf_gsm_map_lcs_plmn_ListPrioritized,
22287       { "plmn-ListPrioritized", "gsm_map.lcs.plmn_ListPrioritized",
22288         FT_NONE, BASE_NONE, NULL, 0,
22289         "gsm_map_lcs.NULL", HFILL }},
22290     { &hf_gsm_map_lcs_plmn_List,
22291       { "plmn-List", "gsm_map.lcs.plmn_List",
22292         FT_UINT32, BASE_DEC, NULL, 0,
22293         "gsm_map_lcs.PLMNList", HFILL }},
22294     { &hf_gsm_map_lcs_PLMNList_item,
22295       { "ReportingPLMN", "gsm_map.lcs.ReportingPLMN",
22296         FT_NONE, BASE_NONE, NULL, 0,
22297         "gsm_map_lcs.ReportingPLMN", HFILL }},
22298     { &hf_gsm_map_lcs_plmn_Id,
22299       { "plmn-Id", "gsm_map.lcs.plmn_Id",
22300         FT_BYTES, BASE_NONE, NULL, 0,
22301         "gsm_map.PLMN_Id", HFILL }},
22302     { &hf_gsm_map_lcs_ran_Technology,
22303       { "ran-Technology", "gsm_map.lcs.ran_Technology",
22304         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_RAN_Technology_vals), 0,
22305         "gsm_map_lcs.RAN_Technology", HFILL }},
22306     { &hf_gsm_map_lcs_ran_PeriodicLocationSupport,
22307       { "ran-PeriodicLocationSupport", "gsm_map.lcs.ran_PeriodicLocationSupport",
22308         FT_NONE, BASE_NONE, NULL, 0,
22309         "gsm_map_lcs.NULL", HFILL }},
22310     { &hf_gsm_map_lcs_locationEstimate,
22311       { "locationEstimate", "gsm_map.lcs.locationEstimate",
22312         FT_BYTES, BASE_NONE, NULL, 0,
22313         "gsm_map_lcs.Ext_GeographicalInformation", HFILL }},
22314     { &hf_gsm_map_lcs_ageOfLocationEstimate,
22315       { "ageOfLocationEstimate", "gsm_map.lcs.ageOfLocationEstimate",
22316         FT_UINT32, BASE_DEC, NULL, 0,
22317         "gsm_map.AgeOfLocationInformation", HFILL }},
22318     { &hf_gsm_map_lcs_add_LocationEstimate,
22319       { "add-LocationEstimate", "gsm_map.lcs.add_LocationEstimate",
22320         FT_BYTES, BASE_NONE, NULL, 0,
22321         "gsm_map_lcs.Add_GeographicalInformation", HFILL }},
22322     { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator,
22323       { "deferredmt-lrResponseIndicator", "gsm_map.lcs.deferredmt_lrResponseIndicator",
22324         FT_NONE, BASE_NONE, NULL, 0,
22325         "gsm_map_lcs.NULL", HFILL }},
22326     { &hf_gsm_map_lcs_geranPositioningData,
22327       { "geranPositioningData", "gsm_map.lcs.geranPositioningData",
22328         FT_BYTES, BASE_NONE, NULL, 0,
22329         "gsm_map_lcs.PositioningDataInformation", HFILL }},
22330     { &hf_gsm_map_lcs_utranPositioningData,
22331       { "utranPositioningData", "gsm_map.lcs.utranPositioningData",
22332         FT_BYTES, BASE_NONE, NULL, 0,
22333         "gsm_map_lcs.UtranPositioningDataInfo", HFILL }},
22334     { &hf_gsm_map_lcs_cellIdOrSai,
22335       { "cellIdOrSai", "gsm_map.lcs.cellIdOrSai",
22336         FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
22337         "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
22338     { &hf_gsm_map_lcs_sai_Present,
22339       { "sai-Present", "gsm_map.lcs.sai_Present",
22340         FT_NONE, BASE_NONE, NULL, 0,
22341         "gsm_map_lcs.NULL", HFILL }},
22342     { &hf_gsm_map_lcs_accuracyFulfilmentIndicator,
22343       { "accuracyFulfilmentIndicator", "gsm_map.lcs.accuracyFulfilmentIndicator",
22344         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AccuracyFulfilmentIndicator_vals), 0,
22345         "gsm_map_lcs.AccuracyFulfilmentIndicator", HFILL }},
22346     { &hf_gsm_map_lcs_velocityEstimate,
22347       { "velocityEstimate", "gsm_map.lcs.velocityEstimate",
22348         FT_BYTES, BASE_NONE, NULL, 0,
22349         "gsm_map_lcs.VelocityEstimate", HFILL }},
22350     { &hf_gsm_map_lcs_lcs_Event,
22351       { "lcs-Event", "gsm_map.lcs.lcs_Event",
22352         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_Event_vals), 0,
22353         "gsm_map_lcs.LCS_Event", HFILL }},
22354     { &hf_gsm_map_lcs_na_ESRD,
22355       { "na-ESRD", "gsm_map.lcs.na_ESRD",
22356         FT_BYTES, BASE_NONE, NULL, 0,
22357         "gsm_map.ISDN_AddressString", HFILL }},
22358     { &hf_gsm_map_lcs_na_ESRK,
22359       { "na-ESRK", "gsm_map.lcs.na_ESRK",
22360         FT_BYTES, BASE_NONE, NULL, 0,
22361         "gsm_map.ISDN_AddressString", HFILL }},
22362     { &hf_gsm_map_lcs_slr_ArgExtensionContainer,
22363       { "slr-ArgExtensionContainer", "gsm_map.lcs.slr_ArgExtensionContainer",
22364         FT_NONE, BASE_NONE, NULL, 0,
22365         "gsm_map.SLR_ArgExtensionContainer", HFILL }},
22366     { &hf_gsm_map_lcs_deferredmt_lrData,
22367       { "deferredmt-lrData", "gsm_map.lcs.deferredmt_lrData",
22368         FT_NONE, BASE_NONE, NULL, 0,
22369         "gsm_map_lcs.Deferredmt_lrData", HFILL }},
22370     { &hf_gsm_map_lcs_pseudonymIndicator,
22371       { "pseudonymIndicator", "gsm_map.lcs.pseudonymIndicator",
22372         FT_NONE, BASE_NONE, NULL, 0,
22373         "gsm_map_lcs.NULL", HFILL }},
22374     { &hf_gsm_map_lcs_sequenceNumber,
22375       { "sequenceNumber", "gsm_map.lcs.sequenceNumber",
22376         FT_UINT32, BASE_DEC, NULL, 0,
22377         "gsm_map_lcs.SequenceNumber", HFILL }},
22378     { &hf_gsm_map_lcs_terminationCause,
22379       { "terminationCause", "gsm_map.lcs.terminationCause",
22380         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_TerminationCause_vals), 0,
22381         "gsm_map_lcs.TerminationCause", HFILL }},
22382     { &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable,
22383       { "msAvailable", "gsm_map.lcs.msAvailable",
22384         FT_BOOLEAN, 8, NULL, 0x80,
22385         NULL, HFILL }},
22386     { &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea,
22387       { "enteringIntoArea", "gsm_map.lcs.enteringIntoArea",
22388         FT_BOOLEAN, 8, NULL, 0x40,
22389         NULL, HFILL }},
22390     { &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea,
22391       { "leavingFromArea", "gsm_map.lcs.leavingFromArea",
22392         FT_BOOLEAN, 8, NULL, 0x20,
22393         NULL, HFILL }},
22394     { &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea,
22395       { "beingInsideArea", "gsm_map.lcs.beingInsideArea",
22396         FT_BOOLEAN, 8, NULL, 0x10,
22397         NULL, HFILL }},
22398     { &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR,
22399       { "periodicLDR", "gsm_map.lcs.periodicLDR",
22400         FT_BOOLEAN, 8, NULL, 0x08,
22401         NULL, HFILL }},
22402     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint,
22403       { "ellipsoidPoint", "gsm_map.lcs.ellipsoidPoint",
22404         FT_BOOLEAN, 8, NULL, 0x80,
22405         NULL, HFILL }},
22406     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle,
22407       { "ellipsoidPointWithUncertaintyCircle", "gsm_map.lcs.ellipsoidPointWithUncertaintyCircle",
22408         FT_BOOLEAN, 8, NULL, 0x40,
22409         NULL, HFILL }},
22410     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse,
22411       { "ellipsoidPointWithUncertaintyEllipse", "gsm_map.lcs.ellipsoidPointWithUncertaintyEllipse",
22412         FT_BOOLEAN, 8, NULL, 0x20,
22413         NULL, HFILL }},
22414     { &hf_gsm_map_lcs_SupportedGADShapes_polygon,
22415       { "polygon", "gsm_map.lcs.polygon",
22416         FT_BOOLEAN, 8, NULL, 0x10,
22417         NULL, HFILL }},
22418     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude,
22419       { "ellipsoidPointWithAltitude", "gsm_map.lcs.ellipsoidPointWithAltitude",
22420         FT_BOOLEAN, 8, NULL, 0x08,
22421         NULL, HFILL }},
22422     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid,
22423       { "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", "gsm_map.lcs.ellipsoidPointWithAltitudeAndUncertaintyElipsoid",
22424         FT_BOOLEAN, 8, NULL, 0x04,
22425         NULL, HFILL }},
22426     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc,
22427       { "ellipsoidArc", "gsm_map.lcs.ellipsoidArc",
22428         FT_BOOLEAN, 8, NULL, 0x02,
22429         NULL, HFILL }},
22430
22431 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
22432
22433     { &hf_gsm_map_gr_teleservice,
22434       { "teleservice", "gsm_map.gr.teleservice",
22435         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
22436         "gsm_map.Ext_TeleserviceCode", HFILL }},
22437     { &hf_gsm_map_gr_asciCallReference,
22438       { "asciCallReference", "gsm_map.gr.asciCallReference",
22439         FT_BYTES, BASE_NONE, NULL, 0,
22440         "gsm_map.ASCI_CallReference", HFILL }},
22441     { &hf_gsm_map_gr_codec_Info,
22442       { "codec-Info", "gsm_map.gr.codec_Info",
22443         FT_BYTES, BASE_NONE, NULL, 0,
22444         "gsm_map_gr.CODEC_Info", HFILL }},
22445     { &hf_gsm_map_gr_cipheringAlgorithm,
22446       { "cipheringAlgorithm", "gsm_map.gr.cipheringAlgorithm",
22447         FT_BYTES, BASE_NONE, NULL, 0,
22448         "gsm_map_gr.CipheringAlgorithm", HFILL }},
22449     { &hf_gsm_map_gr_groupKeyNumber_Vk_Id,
22450       { "groupKeyNumber-Vk-Id", "gsm_map.gr.groupKeyNumber_Vk_Id",
22451         FT_UINT32, BASE_DEC, NULL, 0,
22452         "gsm_map_gr.GroupKeyNumber", HFILL }},
22453     { &hf_gsm_map_gr_groupKey,
22454       { "groupKey", "gsm_map.gr.groupKey",
22455         FT_BYTES, BASE_NONE, NULL, 0,
22456         "gsm_map_ms.Kc", HFILL }},
22457     { &hf_gsm_map_gr_priority,
22458       { "priority", "gsm_map.gr.priority",
22459         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
22460         "gsm_map.EMLPP_Priority", HFILL }},
22461     { &hf_gsm_map_gr_uplinkFree,
22462       { "uplinkFree", "gsm_map.gr.uplinkFree",
22463         FT_NONE, BASE_NONE, NULL, 0,
22464         "gsm_map_gr.NULL", HFILL }},
22465     { &hf_gsm_map_gr_extensionContainer,
22466       { "extensionContainer", "gsm_map.gr.extensionContainer",
22467         FT_NONE, BASE_NONE, NULL, 0,
22468         "gsm_map.ExtensionContainer", HFILL }},
22469     { &hf_gsm_map_gr_vstk,
22470       { "vstk", "gsm_map.gr.vstk",
22471         FT_BYTES, BASE_NONE, NULL, 0,
22472         "gsm_map_gr.VSTK", HFILL }},
22473     { &hf_gsm_map_gr_vstk_rand,
22474       { "vstk-rand", "gsm_map.gr.vstk_rand",
22475         FT_BYTES, BASE_NONE, NULL, 0,
22476         "gsm_map_gr.VSTK_RAND", HFILL }},
22477     { &hf_gsm_map_gr_talkerChannelParameter,
22478       { "talkerChannelParameter", "gsm_map.gr.talkerChannelParameter",
22479         FT_NONE, BASE_NONE, NULL, 0,
22480         "gsm_map_gr.NULL", HFILL }},
22481     { &hf_gsm_map_gr_groupCallNumber,
22482       { "groupCallNumber", "gsm_map.gr.groupCallNumber",
22483         FT_BYTES, BASE_NONE, NULL, 0,
22484         "gsm_map.ISDN_AddressString", HFILL }},
22485     { &hf_gsm_map_gr_imsi,
22486       { "imsi", "gsm_map.gr.imsi",
22487         FT_BYTES, BASE_NONE, NULL, 0,
22488         "gsm_map.IMSI", HFILL }},
22489     { &hf_gsm_map_gr_talkerPriority,
22490       { "talkerPriority", "gsm_map.gr.talkerPriority",
22491         FT_UINT32, BASE_DEC, VALS(gsm_map_gr_TalkerPriority_vals), 0,
22492         "gsm_map_gr.TalkerPriority", HFILL }},
22493     { &hf_gsm_map_gr_additionalInfo,
22494       { "additionalInfo", "gsm_map.gr.additionalInfo",
22495         FT_BYTES, BASE_NONE, NULL, 0,
22496         "gsm_map_ms.AdditionalInfo", HFILL }},
22497     { &hf_gsm_map_gr_uplinkRequestAck,
22498       { "uplinkRequestAck", "gsm_map.gr.uplinkRequestAck",
22499         FT_NONE, BASE_NONE, NULL, 0,
22500         "gsm_map_gr.NULL", HFILL }},
22501     { &hf_gsm_map_gr_uplinkReleaseIndication,
22502       { "uplinkReleaseIndication", "gsm_map.gr.uplinkReleaseIndication",
22503         FT_NONE, BASE_NONE, NULL, 0,
22504         "gsm_map_gr.NULL", HFILL }},
22505     { &hf_gsm_map_gr_uplinkRejectCommand,
22506       { "uplinkRejectCommand", "gsm_map.gr.uplinkRejectCommand",
22507         FT_NONE, BASE_NONE, NULL, 0,
22508         "gsm_map_gr.NULL", HFILL }},
22509     { &hf_gsm_map_gr_uplinkSeizedCommand,
22510       { "uplinkSeizedCommand", "gsm_map.gr.uplinkSeizedCommand",
22511         FT_NONE, BASE_NONE, NULL, 0,
22512         "gsm_map_gr.NULL", HFILL }},
22513     { &hf_gsm_map_gr_uplinkReleaseCommand,
22514       { "uplinkReleaseCommand", "gsm_map.gr.uplinkReleaseCommand",
22515         FT_NONE, BASE_NONE, NULL, 0,
22516         "gsm_map_gr.NULL", HFILL }},
22517     { &hf_gsm_map_gr_stateAttributes,
22518       { "stateAttributes", "gsm_map.gr.stateAttributes",
22519         FT_NONE, BASE_NONE, NULL, 0,
22520         "gsm_map_gr.StateAttributes", HFILL }},
22521     { &hf_gsm_map_gr_emergencyModeResetCommandFlag,
22522       { "emergencyModeResetCommandFlag", "gsm_map.gr.emergencyModeResetCommandFlag",
22523         FT_NONE, BASE_NONE, NULL, 0,
22524         "gsm_map_gr.NULL", HFILL }},
22525     { &hf_gsm_map_gr_sm_RP_UI,
22526       { "sm-RP-UI", "gsm_map.gr.sm_RP_UI",
22527         FT_BYTES, BASE_NONE, NULL, 0,
22528         "gsm_map.SignalInfo", HFILL }},
22529     { &hf_gsm_map_gr_an_APDU,
22530       { "an-APDU", "gsm_map.gr.an_APDU",
22531         FT_NONE, BASE_NONE, NULL, 0,
22532         "gsm_map.AccessNetworkSignalInfo", HFILL }},
22533     { &hf_gsm_map_gr_uplinkRequest,
22534       { "uplinkRequest", "gsm_map.gr.uplinkRequest",
22535         FT_NONE, BASE_NONE, NULL, 0,
22536         "gsm_map_gr.NULL", HFILL }},
22537     { &hf_gsm_map_gr_releaseGroupCall,
22538       { "releaseGroupCall", "gsm_map.gr.releaseGroupCall",
22539         FT_NONE, BASE_NONE, NULL, 0,
22540         "gsm_map_gr.NULL", HFILL }},
22541     { &hf_gsm_map_gr_downlinkAttached,
22542       { "downlinkAttached", "gsm_map.gr.downlinkAttached",
22543         FT_NONE, BASE_NONE, NULL, 0,
22544         "gsm_map_gr.NULL", HFILL }},
22545     { &hf_gsm_map_gr_uplinkAttached,
22546       { "uplinkAttached", "gsm_map.gr.uplinkAttached",
22547         FT_NONE, BASE_NONE, NULL, 0,
22548         "gsm_map_gr.NULL", HFILL }},
22549     { &hf_gsm_map_gr_dualCommunication,
22550       { "dualCommunication", "gsm_map.gr.dualCommunication",
22551         FT_NONE, BASE_NONE, NULL, 0,
22552         "gsm_map_gr.NULL", HFILL }},
22553     { &hf_gsm_map_gr_callOriginator,
22554       { "callOriginator", "gsm_map.gr.callOriginator",
22555         FT_NONE, BASE_NONE, NULL, 0,
22556         "gsm_map_gr.NULL", HFILL }},
22557     { &hf_gsm_map_gr_requestedInfo,
22558       { "requestedInfo", "gsm_map.gr.requestedInfo",
22559         FT_UINT32, BASE_DEC, VALS(gsm_map_gr_RequestedInfo_vals), 0,
22560         "gsm_map_gr.RequestedInfo", HFILL }},
22561     { &hf_gsm_map_gr_groupId,
22562       { "groupId", "gsm_map.gr.groupId",
22563         FT_BYTES, BASE_NONE, NULL, 0,
22564         "gsm_map_ms.Long_GroupId", HFILL }},
22565     { &hf_gsm_map_gr_cellId,
22566       { "cellId", "gsm_map.gr.cellId",
22567         FT_BYTES, BASE_NONE, NULL, 0,
22568         "gsm_map.GlobalCellId", HFILL }},
22569     { &hf_gsm_map_gr_tmsi,
22570       { "tmsi", "gsm_map.gr.tmsi",
22571         FT_BYTES, BASE_NONE, NULL, 0,
22572         "gsm_map.TMSI", HFILL }},
22573     { &hf_gsm_map_gr_cksn,
22574       { "cksn", "gsm_map.gr.cksn",
22575         FT_BYTES, BASE_NONE, NULL, 0,
22576         "gsm_map_ms.Cksn", HFILL }},
22577     { &hf_gsm_map_gr_anchorMSC_Address,
22578       { "anchorMSC-Address", "gsm_map.gr.anchorMSC_Address",
22579         FT_BYTES, BASE_NONE, NULL, 0,
22580         "gsm_map.ISDN_AddressString", HFILL }},
22581     { &hf_gsm_map_gr_additionalSubscriptions,
22582       { "additionalSubscriptions", "gsm_map.gr.additionalSubscriptions",
22583         FT_BYTES, BASE_NONE, NULL, 0,
22584         "gsm_map_ms.AdditionalSubscriptions", HFILL }},
22585     { &hf_gsm_map_gr_kc,
22586       { "kc", "gsm_map.gr.kc",
22587         FT_BYTES, BASE_NONE, NULL, 0,
22588         "gsm_map_ms.Kc", HFILL }},
22589
22590 /* --- Module MAP-DialogueInformation --- --- ---                             */
22591
22592     { &hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU,
22593       { "MAP-DialoguePDU", "gsm_map.dialogue.MAP_DialoguePDU",
22594         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_DialoguePDU_vals), 0,
22595         "gsm_map_dialogue.MAP_DialoguePDU", HFILL }},
22596     { &hf_gsm_map_dialogue_map_open,
22597       { "map-open", "gsm_map.dialogue.map_open",
22598         FT_NONE, BASE_NONE, NULL, 0,
22599         "gsm_map_dialogue.MAP_OpenInfo", HFILL }},
22600     { &hf_gsm_map_dialogue_map_accept,
22601       { "map-accept", "gsm_map.dialogue.map_accept",
22602         FT_NONE, BASE_NONE, NULL, 0,
22603         "gsm_map_dialogue.MAP_AcceptInfo", HFILL }},
22604     { &hf_gsm_map_dialogue_map_close,
22605       { "map-close", "gsm_map.dialogue.map_close",
22606         FT_NONE, BASE_NONE, NULL, 0,
22607         "gsm_map_dialogue.MAP_CloseInfo", HFILL }},
22608     { &hf_gsm_map_dialogue_map_refuse,
22609       { "map-refuse", "gsm_map.dialogue.map_refuse",
22610         FT_NONE, BASE_NONE, NULL, 0,
22611         "gsm_map_dialogue.MAP_RefuseInfo", HFILL }},
22612     { &hf_gsm_map_dialogue_map_userAbort,
22613       { "map-userAbort", "gsm_map.dialogue.map_userAbort",
22614         FT_NONE, BASE_NONE, NULL, 0,
22615         "gsm_map_dialogue.MAP_UserAbortInfo", HFILL }},
22616     { &hf_gsm_map_dialogue_map_providerAbort,
22617       { "map-providerAbort", "gsm_map.dialogue.map_providerAbort",
22618         FT_NONE, BASE_NONE, NULL, 0,
22619         "gsm_map_dialogue.MAP_ProviderAbortInfo", HFILL }},
22620     { &hf_gsm_map_dialogue_destinationReference,
22621       { "destinationReference", "gsm_map.dialogue.destinationReference",
22622         FT_BYTES, BASE_NONE, NULL, 0,
22623         "gsm_map.AddressString", HFILL }},
22624     { &hf_gsm_map_dialogue_originationReference,
22625       { "originationReference", "gsm_map.dialogue.originationReference",
22626         FT_BYTES, BASE_NONE, NULL, 0,
22627         "gsm_map.AddressString", HFILL }},
22628     { &hf_gsm_map_dialogue_extensionContainer,
22629       { "extensionContainer", "gsm_map.dialogue.extensionContainer",
22630         FT_NONE, BASE_NONE, NULL, 0,
22631         "gsm_map.ExtensionContainer", HFILL }},
22632     { &hf_gsm_map_dialogue_reason,
22633       { "reason", "gsm_map.dialogue.reason",
22634         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_Reason_vals), 0,
22635         "gsm_map_dialogue.Reason", HFILL }},
22636     { &hf_gsm_map_dialogue_alternativeApplicationContext,
22637       { "alternativeApplicationContext", "gsm_map.dialogue.alternativeApplicationContext",
22638         FT_OID, BASE_NONE, NULL, 0,
22639         "gsm_map_dialogue.OBJECT_IDENTIFIER", HFILL }},
22640     { &hf_gsm_map_dialogue_map_UserAbortChoice,
22641       { "map-UserAbortChoice", "gsm_map.dialogue.map_UserAbortChoice",
22642         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_UserAbortChoice_vals), 0,
22643         "gsm_map_dialogue.MAP_UserAbortChoice", HFILL }},
22644     { &hf_gsm_map_dialogue_userSpecificReason,
22645       { "userSpecificReason", "gsm_map.dialogue.userSpecificReason",
22646         FT_NONE, BASE_NONE, NULL, 0,
22647         "gsm_map_dialogue.NULL", HFILL }},
22648     { &hf_gsm_map_dialogue_userResourceLimitation,
22649       { "userResourceLimitation", "gsm_map.dialogue.userResourceLimitation",
22650         FT_NONE, BASE_NONE, NULL, 0,
22651         "gsm_map_dialogue.NULL", HFILL }},
22652     { &hf_gsm_map_dialogue_resourceUnavailable,
22653       { "resourceUnavailable", "gsm_map.dialogue.resourceUnavailable",
22654         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ResourceUnavailableReason_vals), 0,
22655         "gsm_map_dialogue.ResourceUnavailableReason", HFILL }},
22656     { &hf_gsm_map_dialogue_applicationProcedureCancellation,
22657       { "applicationProcedureCancellation", "gsm_map.dialogue.applicationProcedureCancellation",
22658         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ProcedureCancellationReason_vals), 0,
22659         "gsm_map_dialogue.ProcedureCancellationReason", HFILL }},
22660     { &hf_gsm_map_dialogue_map_ProviderAbortReason,
22661       { "map-ProviderAbortReason", "gsm_map.dialogue.map_ProviderAbortReason",
22662         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_ProviderAbortReason_vals), 0,
22663         "gsm_map_dialogue.MAP_ProviderAbortReason", HFILL }},
22664
22665 /* --- Module DummyMAP --- --- ---                                            */
22666
22667     { &hf_gsm_old_invoke,
22668       { "invoke", "gsm_old.invoke",
22669         FT_NONE, BASE_NONE, NULL, 0,
22670         "gsm_old.Invoke", HFILL }},
22671     { &hf_gsm_old_returnResultLast,
22672       { "returnResultLast", "gsm_old.returnResultLast",
22673         FT_NONE, BASE_NONE, NULL, 0,
22674         "gsm_old.ReturnResult", HFILL }},
22675     { &hf_gsm_old_returnError,
22676       { "returnError", "gsm_old.returnError",
22677         FT_NONE, BASE_NONE, NULL, 0,
22678         "gsm_old.ReturnError", HFILL }},
22679     { &hf_gsm_old_reject,
22680       { "reject", "gsm_old.reject",
22681         FT_NONE, BASE_NONE, NULL, 0,
22682         "gsm_old.Reject", HFILL }},
22683     { &hf_gsm_old_returnResultNotLast,
22684       { "returnResultNotLast", "gsm_old.returnResultNotLast",
22685         FT_NONE, BASE_NONE, NULL, 0,
22686         "gsm_old.ReturnResult", HFILL }},
22687     { &hf_gsm_old_invokeID,
22688       { "invokeID", "gsm_old.invokeID",
22689         FT_INT32, BASE_DEC, NULL, 0,
22690         "gsm_old.InvokeIdType", HFILL }},
22691     { &hf_gsm_old_linkedID,
22692       { "linkedID", "gsm_old.linkedID",
22693         FT_INT32, BASE_DEC, NULL, 0,
22694         "gsm_old.InvokeIdType", HFILL }},
22695     { &hf_gsm_old_opCode,
22696       { "opCode", "gsm_old.opCode",
22697         FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_OPERATION_vals), 0,
22698         "gsm_old.MAP_OPERATION", HFILL }},
22699     { &hf_gsm_old_invokeparameter,
22700       { "invokeparameter", "gsm_old.invokeparameter",
22701         FT_NONE, BASE_NONE, NULL, 0,
22702         "gsm_old.InvokeParameter", HFILL }},
22703     { &hf_gsm_old_resultretres,
22704       { "resultretres", "gsm_old.resultretres",
22705         FT_NONE, BASE_NONE, NULL, 0,
22706         "gsm_old.T_resultretres", HFILL }},
22707     { &hf_gsm_old_returnparameter,
22708       { "returnparameter", "gsm_old.returnparameter",
22709         FT_NONE, BASE_NONE, NULL, 0,
22710         "gsm_old.ReturnResultParameter", HFILL }},
22711     { &hf_gsm_old_errorCode,
22712       { "errorCode", "gsm_old.errorCode",
22713         FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_ERROR_vals), 0,
22714         "gsm_old.MAP_ERROR", HFILL }},
22715     { &hf_gsm_old_parameter,
22716       { "parameter", "gsm_old.parameter",
22717         FT_NONE, BASE_NONE, NULL, 0,
22718         "gsm_old.ReturnErrorParameter", HFILL }},
22719     { &hf_gsm_old_invokeIDRej,
22720       { "invokeIDRej", "gsm_old.invokeIDRej",
22721         FT_UINT32, BASE_DEC, VALS(gsm_old_T_invokeIDRej_vals), 0,
22722         "gsm_old.T_invokeIDRej", HFILL }},
22723     { &hf_gsm_old_derivable,
22724       { "derivable", "gsm_old.derivable",
22725         FT_INT32, BASE_DEC, NULL, 0,
22726         "gsm_old.InvokeIdType", HFILL }},
22727     { &hf_gsm_old_not_derivable,
22728       { "not-derivable", "gsm_old.not_derivable",
22729         FT_NONE, BASE_NONE, NULL, 0,
22730         "gsm_old.NULL", HFILL }},
22731     { &hf_gsm_old_problem,
22732       { "problem", "gsm_old.problem",
22733         FT_UINT32, BASE_DEC, VALS(gsm_old_T_problem_vals), 0,
22734         "gsm_old.T_problem", HFILL }},
22735     { &hf_gsm_old_generalProblem,
22736       { "generalProblem", "gsm_old.generalProblem",
22737         FT_INT32, BASE_DEC, VALS(gsm_old_GeneralProblem_vals), 0,
22738         "gsm_old.GeneralProblem", HFILL }},
22739     { &hf_gsm_old_invokeProblem,
22740       { "invokeProblem", "gsm_old.invokeProblem",
22741         FT_INT32, BASE_DEC, VALS(gsm_old_InvokeProblem_vals), 0,
22742         "gsm_old.InvokeProblem", HFILL }},
22743     { &hf_gsm_old_returnResultProblem,
22744       { "returnResultProblem", "gsm_old.returnResultProblem",
22745         FT_INT32, BASE_DEC, VALS(gsm_old_ReturnResultProblem_vals), 0,
22746         "gsm_old.ReturnResultProblem", HFILL }},
22747     { &hf_gsm_old_returnErrorProblem,
22748       { "returnErrorProblem", "gsm_old.returnErrorProblem",
22749         FT_INT32, BASE_DEC, VALS(gsm_old_ReturnErrorProblem_vals), 0,
22750         "gsm_old.ReturnErrorProblem", HFILL }},
22751     { &hf_gsm_old_localValue,
22752       { "localValue", "gsm_old.localValue",
22753         FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPOperationLocalvalue_vals), 0,
22754         "gsm_old.OperationLocalvalue", HFILL }},
22755     { &hf_gsm_old_globalValue,
22756       { "globalValue", "gsm_old.globalValue",
22757         FT_OID, BASE_NONE, NULL, 0,
22758         "gsm_old.OBJECT_IDENTIFIER", HFILL }},
22759     { &hf_gsm_old_localValue_01,
22760       { "localValue", "gsm_old.localValue",
22761         FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPLocalErrorcode_vals), 0,
22762         "gsm_old.LocalErrorcode", HFILL }},
22763     { &hf_gsm_old_protocolId,
22764       { "protocolId", "gsm_old.protocolId",
22765         FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
22766         "gsm_map.ProtocolId", HFILL }},
22767     { &hf_gsm_old_signalInfo,
22768       { "signalInfo", "gsm_old.signalInfo",
22769         FT_BYTES, BASE_NONE, NULL, 0,
22770         "gsm_map.SignalInfo", HFILL }},
22771     { &hf_gsm_old_extensionContainer,
22772       { "extensionContainer", "gsm_old.extensionContainer",
22773         FT_NONE, BASE_NONE, NULL, 0,
22774         "gsm_map.ExtensionContainer", HFILL }},
22775     { &hf_gsm_old_gsm_BearerCapability,
22776       { "gsm-BearerCapability", "gsm_old.gsm_BearerCapability",
22777         FT_NONE, BASE_NONE, NULL, 0,
22778         "gsm_map.ExternalSignalInfo", HFILL }},
22779     { &hf_gsm_old_isdn_BearerCapability,
22780       { "isdn-BearerCapability", "gsm_old.isdn_BearerCapability",
22781         FT_NONE, BASE_NONE, NULL, 0,
22782         "gsm_map.ExternalSignalInfo", HFILL }},
22783     { &hf_gsm_old_call_Direction,
22784       { "call-Direction", "gsm_old.call_Direction",
22785         FT_BYTES, BASE_NONE, NULL, 0,
22786         "gsm_old.CallDirection", HFILL }},
22787     { &hf_gsm_old_b_Subscriber_Address,
22788       { "b-Subscriber-Address", "gsm_old.b_Subscriber_Address",
22789         FT_BYTES, BASE_NONE, NULL, 0,
22790         "gsm_map.ISDN_AddressString", HFILL }},
22791     { &hf_gsm_old_chosenChannel,
22792       { "chosenChannel", "gsm_old.chosenChannel",
22793         FT_NONE, BASE_NONE, NULL, 0,
22794         "gsm_map.ExternalSignalInfo", HFILL }},
22795     { &hf_gsm_old_lowerLayerCompatibility,
22796       { "lowerLayerCompatibility", "gsm_old.lowerLayerCompatibility",
22797         FT_NONE, BASE_NONE, NULL, 0,
22798         "gsm_map.ExternalSignalInfo", HFILL }},
22799     { &hf_gsm_old_highLayerCompatibility,
22800       { "highLayerCompatibility", "gsm_old.highLayerCompatibility",
22801         FT_NONE, BASE_NONE, NULL, 0,
22802         "gsm_map.ExternalSignalInfo", HFILL }},
22803     { &hf_gsm_old_sIWFSNumber,
22804       { "sIWFSNumber", "gsm_old.sIWFSNumber",
22805         FT_BYTES, BASE_NONE, NULL, 0,
22806         "gsm_map.ISDN_AddressString", HFILL }},
22807     { &hf_gsm_old_imsi,
22808       { "imsi", "gsm_old.imsi",
22809         FT_BYTES, BASE_NONE, NULL, 0,
22810         "gsm_map.IMSI", HFILL }},
22811     { &hf_gsm_old_vlr_Number,
22812       { "vlr-Number", "gsm_old.vlr_Number",
22813         FT_BYTES, BASE_NONE, NULL, 0,
22814         "gsm_map.ISDN_AddressString", HFILL }},
22815     { &hf_gsm_old_targetCellId,
22816       { "targetCellId", "gsm_old.targetCellId",
22817         FT_BYTES, BASE_NONE, NULL, 0,
22818         "gsm_map.GlobalCellId", HFILL }},
22819     { &hf_gsm_old_ho_NumberNotRequired,
22820       { "ho-NumberNotRequired", "gsm_old.ho_NumberNotRequired",
22821         FT_NONE, BASE_NONE, NULL, 0,
22822         "gsm_old.NULL", HFILL }},
22823     { &hf_gsm_old_bss_APDU,
22824       { "bss-APDU", "gsm_old.bss_APDU",
22825         FT_NONE, BASE_NONE, NULL, 0,
22826         "gsm_old.Bss_APDU", HFILL }},
22827     { &hf_gsm_old_handoverNumber,
22828       { "handoverNumber", "gsm_old.handoverNumber",
22829         FT_BYTES, BASE_NONE, NULL, 0,
22830         "gsm_map.ISDN_AddressString", HFILL }},
22831     { &hf_gsm_old_SendAuthenticationInfoResOld_item,
22832       { "SendAuthenticationInfoResOld item", "gsm_old.SendAuthenticationInfoResOld_item",
22833         FT_NONE, BASE_NONE, NULL, 0,
22834         "gsm_old.SendAuthenticationInfoResOld_item", HFILL }},
22835     { &hf_gsm_old_rand,
22836       { "rand", "gsm_old.rand",
22837         FT_BYTES, BASE_NONE, NULL, 0,
22838         "gsm_old.RAND", HFILL }},
22839     { &hf_gsm_old_sres,
22840       { "sres", "gsm_old.sres",
22841         FT_BYTES, BASE_NONE, NULL, 0,
22842         "gsm_old.SRES", HFILL }},
22843     { &hf_gsm_old_kc,
22844       { "kc", "gsm_old.kc",
22845         FT_BYTES, BASE_NONE, NULL, 0,
22846         "gsm_old.Kc", HFILL }},
22847     { &hf_gsm_old_tripletList,
22848       { "tripletList", "gsm_old.tripletList",
22849         FT_UINT32, BASE_DEC, NULL, 0,
22850         "gsm_old.TripletListold", HFILL }},
22851     { &hf_gsm_old_TripletListold_item,
22852       { "AuthenticationTriplet-v2", "gsm_old.AuthenticationTriplet_v2",
22853         FT_NONE, BASE_NONE, NULL, 0,
22854         "gsm_old.AuthenticationTriplet_v2", HFILL }},
22855     { &hf_gsm_old_channelType,
22856       { "channelType", "gsm_old.channelType",
22857         FT_NONE, BASE_NONE, NULL, 0,
22858         "gsm_map.ExternalSignalInfo", HFILL }},
22859     { &hf_gsm_old_securityHeader,
22860       { "securityHeader", "gsm_old.securityHeader",
22861         FT_NONE, BASE_NONE, NULL, 0,
22862         "gsm_old.SecurityHeader", HFILL }},
22863     { &hf_gsm_old_protectedPayload,
22864       { "protectedPayload", "gsm_old.protectedPayload",
22865         FT_BYTES, BASE_NONE, NULL, 0,
22866         "gsm_old.ProtectedPayload", HFILL }},
22867     { &hf_gsm_old_securityParametersIndex,
22868       { "securityParametersIndex", "gsm_old.securityParametersIndex",
22869         FT_BYTES, BASE_NONE, NULL, 0,
22870         "gsm_old.SecurityParametersIndex", HFILL }},
22871     { &hf_gsm_old_originalComponentIdentifier,
22872       { "originalComponentIdentifier", "gsm_old.originalComponentIdentifier",
22873         FT_UINT32, BASE_DEC, VALS(gsm_old_OriginalComponentIdentifier_vals), 0,
22874         "gsm_old.OriginalComponentIdentifier", HFILL }},
22875     { &hf_gsm_old_initialisationVector,
22876       { "initialisationVector", "gsm_old.initialisationVector",
22877         FT_BYTES, BASE_NONE, NULL, 0,
22878         "gsm_old.InitialisationVector", HFILL }},
22879     { &hf_gsm_old_operationCode,
22880       { "operationCode", "gsm_old.operationCode",
22881         FT_UINT32, BASE_DEC, VALS(gsm_old_OperationCode_vals), 0,
22882         "gsm_old.OperationCode", HFILL }},
22883     { &hf_gsm_old_errorCode_01,
22884       { "errorCode", "gsm_old.errorCode",
22885         FT_UINT32, BASE_DEC, VALS(gsm_old_ErrorCode_vals), 0,
22886         "gsm_old.ErrorCode", HFILL }},
22887     { &hf_gsm_old_userInfo,
22888       { "userInfo", "gsm_old.userInfo",
22889         FT_NONE, BASE_NONE, NULL, 0,
22890         "gsm_old.NULL", HFILL }},
22891     { &hf_gsm_old_localValue_02,
22892       { "localValue", "gsm_old.localValue",
22893         FT_INT32, BASE_DEC, NULL, 0,
22894         "gsm_old.INTEGER", HFILL }},
22895     { &hf_gsm_old_msisdn,
22896       { "msisdn", "gsm_old.msisdn",
22897         FT_BYTES, BASE_NONE, NULL, 0,
22898         "gsm_map.ISDN_AddressString", HFILL }},
22899     { &hf_gsm_old_category,
22900       { "category", "gsm_old.category",
22901         FT_BYTES, BASE_NONE, NULL, 0,
22902         "gsm_old.Category", HFILL }},
22903     { &hf_gsm_old_basicService,
22904       { "basicService", "gsm_old.basicService",
22905         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
22906         "gsm_map.BasicServiceCode", HFILL }},
22907     { &hf_gsm_old_operatorSS_Code,
22908       { "operatorSS-Code", "gsm_old.operatorSS_Code",
22909         FT_UINT32, BASE_DEC, NULL, 0,
22910         "gsm_old.T_operatorSS_Code", HFILL }},
22911     { &hf_gsm_old_operatorSS_Code_item,
22912       { "operatorSS-Code item", "gsm_old.operatorSS_Code_item",
22913         FT_BYTES, BASE_NONE, NULL, 0,
22914         "gsm_old.OCTET_STRING_SIZE_1", HFILL }},
22915     { &hf_gsm_old_sm_RP_DA,
22916       { "sm-RP-DA", "gsm_old.sm_RP_DA",
22917         FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_DAold_vals), 0,
22918         "gsm_old.SM_RP_DAold", HFILL }},
22919     { &hf_gsm_old_sm_RP_OA,
22920       { "sm-RP-OA", "gsm_old.sm_RP_OA",
22921         FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_OAold_vals), 0,
22922         "gsm_old.SM_RP_OAold", HFILL }},
22923     { &hf_gsm_old_sm_RP_UI,
22924       { "sm-RP-UI", "gsm_old.sm_RP_UI",
22925         FT_BYTES, BASE_NONE, NULL, 0,
22926         "gsm_map.SignalInfo", HFILL }},
22927     { &hf_gsm_old_moreMessagesToSend,
22928       { "moreMessagesToSend", "gsm_old.moreMessagesToSend",
22929         FT_NONE, BASE_NONE, NULL, 0,
22930         "gsm_old.NULL", HFILL }},
22931     { &hf_gsm_old_lmsi,
22932       { "lmsi", "gsm_old.lmsi",
22933         FT_BYTES, BASE_NONE, NULL, 0,
22934         "gsm_map.LMSI", HFILL }},
22935     { &hf_gsm_old_serviceCentreAddressDA,
22936       { "serviceCentreAddressDA", "gsm_old.serviceCentreAddressDA",
22937         FT_BYTES, BASE_NONE, NULL, 0,
22938         "gsm_map.AddressString", HFILL }},
22939     { &hf_gsm_old_noSM_RP_DA,
22940       { "noSM-RP-DA", "gsm_old.noSM_RP_DA",
22941         FT_NONE, BASE_NONE, NULL, 0,
22942         "gsm_old.NULL", HFILL }},
22943     { &hf_gsm_old_msisdn_01,
22944       { "msisdn", "gsm_old.msisdn",
22945         FT_BYTES, BASE_NONE, NULL, 0,
22946         "gsm_old.T_msisdn", HFILL }},
22947     { &hf_gsm_old_serviceCentreAddressOA,
22948       { "serviceCentreAddressOA", "gsm_old.serviceCentreAddressOA",
22949         FT_BYTES, BASE_NONE, NULL, 0,
22950         "gsm_old.T_serviceCentreAddressOA", HFILL }},
22951     { &hf_gsm_old_noSM_RP_OA,
22952       { "noSM-RP-OA", "gsm_old.noSM_RP_OA",
22953         FT_NONE, BASE_NONE, NULL, 0,
22954         "gsm_old.NULL", HFILL }},
22955     { &hf_gsm_old_cug_CheckInfo,
22956       { "cug-CheckInfo", "gsm_old.cug_CheckInfo",
22957         FT_NONE, BASE_NONE, NULL, 0,
22958         "gsm_map_ch.CUG_CheckInfo", HFILL }},
22959     { &hf_gsm_old_numberOfForwarding,
22960       { "numberOfForwarding", "gsm_old.numberOfForwarding",
22961         FT_UINT32, BASE_DEC, NULL, 0,
22962         "gsm_map_ch.NumberOfForwarding", HFILL }},
22963     { &hf_gsm_old_networkSignalInfo,
22964       { "networkSignalInfo", "gsm_old.networkSignalInfo",
22965         FT_NONE, BASE_NONE, NULL, 0,
22966         "gsm_map.ExternalSignalInfo", HFILL }},
22967     { &hf_gsm_old_routingInfo,
22968       { "routingInfo", "gsm_old.routingInfo",
22969         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
22970         "gsm_map_ch.RoutingInfo", HFILL }},
22971
22972 /* --- Module SS-DataTypes --- --- ---                                        */
22973
22974     { &hf_gsm_ss_ss_Code,
22975       { "ss-Code", "gsm_ss.ss_Code",
22976         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
22977         "gsm_map.SS_Code", HFILL }},
22978     { &hf_gsm_ss_ss_Status,
22979       { "ss-Status", "gsm_ss.ss_Status",
22980         FT_BYTES, BASE_NONE, NULL, 0,
22981         "gsm_map_ss.SS_Status", HFILL }},
22982     { &hf_gsm_ss_ss_Notification,
22983       { "ss-Notification", "gsm_ss.ss_Notification",
22984         FT_BYTES, BASE_NONE, NULL, 0,
22985         "gsm_ss.SS_Notification", HFILL }},
22986     { &hf_gsm_ss_callIsWaiting_Indicator,
22987       { "callIsWaiting-Indicator", "gsm_ss.callIsWaiting_Indicator",
22988         FT_NONE, BASE_NONE, NULL, 0,
22989         "gsm_ss.NULL", HFILL }},
22990     { &hf_gsm_ss_callOnHold_Indicator,
22991       { "callOnHold-Indicator", "gsm_ss.callOnHold_Indicator",
22992         FT_UINT32, BASE_DEC, VALS(gsm_ss_CallOnHold_Indicator_vals), 0,
22993         "gsm_ss.CallOnHold_Indicator", HFILL }},
22994     { &hf_gsm_ss_mpty_Indicator,
22995       { "mpty-Indicator", "gsm_ss.mpty_Indicator",
22996         FT_NONE, BASE_NONE, NULL, 0,
22997         "gsm_ss.NULL", HFILL }},
22998     { &hf_gsm_ss_cug_Index,
22999       { "cug-Index", "gsm_ss.cug_Index",
23000         FT_UINT32, BASE_DEC, NULL, 0,
23001         "gsm_map_ms.CUG_Index", HFILL }},
23002     { &hf_gsm_ss_clirSuppressionRejected,
23003       { "clirSuppressionRejected", "gsm_ss.clirSuppressionRejected",
23004         FT_NONE, BASE_NONE, NULL, 0,
23005         "gsm_ss.NULL", HFILL }},
23006     { &hf_gsm_ss_ect_Indicator,
23007       { "ect-Indicator", "gsm_ss.ect_Indicator",
23008         FT_NONE, BASE_NONE, NULL, 0,
23009         "gsm_ss.ECT_Indicator", HFILL }},
23010     { &hf_gsm_ss_nameIndicator,
23011       { "nameIndicator", "gsm_ss.nameIndicator",
23012         FT_NONE, BASE_NONE, NULL, 0,
23013         "gsm_ss.NameIndicator", HFILL }},
23014     { &hf_gsm_ss_ccbs_Feature,
23015       { "ccbs-Feature", "gsm_ss.ccbs_Feature",
23016         FT_NONE, BASE_NONE, NULL, 0,
23017         "gsm_map_ss.CCBS_Feature", HFILL }},
23018     { &hf_gsm_ss_alertingPattern,
23019       { "alertingPattern", "gsm_ss.alertingPattern",
23020         FT_BYTES, BASE_NONE, NULL, 0,
23021         "gsm_map.AlertingPattern", HFILL }},
23022     { &hf_gsm_ss_multicall_Indicator,
23023       { "multicall-Indicator", "gsm_ss.multicall_Indicator",
23024         FT_UINT32, BASE_DEC, VALS(gsm_ss_Multicall_Indicator_vals), 0,
23025         "gsm_ss.Multicall_Indicator", HFILL }},
23026     { &hf_gsm_ss_imsi,
23027       { "imsi", "gsm_ss.imsi",
23028         FT_BYTES, BASE_NONE, NULL, 0,
23029         "gsm_map.IMSI", HFILL }},
23030     { &hf_gsm_ss_originatingEntityNumber,
23031       { "originatingEntityNumber", "gsm_ss.originatingEntityNumber",
23032         FT_BYTES, BASE_NONE, NULL, 0,
23033         "gsm_map.ISDN_AddressString", HFILL }},
23034     { &hf_gsm_ss_msisdn,
23035       { "msisdn", "gsm_ss.msisdn",
23036         FT_BYTES, BASE_NONE, NULL, 0,
23037         "gsm_map.AddressString", HFILL }},
23038     { &hf_gsm_ss_chargingInformation,
23039       { "chargingInformation", "gsm_ss.chargingInformation",
23040         FT_NONE, BASE_NONE, NULL, 0,
23041         "gsm_ss.ChargingInformation", HFILL }},
23042     { &hf_gsm_ss_e1,
23043       { "e1", "gsm_ss.e1",
23044         FT_UINT32, BASE_DEC, NULL, 0,
23045         "gsm_ss.E1", HFILL }},
23046     { &hf_gsm_ss_e2,
23047       { "e2", "gsm_ss.e2",
23048         FT_UINT32, BASE_DEC, NULL, 0,
23049         "gsm_ss.E2", HFILL }},
23050     { &hf_gsm_ss_e3,
23051       { "e3", "gsm_ss.e3",
23052         FT_UINT32, BASE_DEC, NULL, 0,
23053         "gsm_ss.E3", HFILL }},
23054     { &hf_gsm_ss_e4,
23055       { "e4", "gsm_ss.e4",
23056         FT_UINT32, BASE_DEC, NULL, 0,
23057         "gsm_ss.E4", HFILL }},
23058     { &hf_gsm_ss_e5,
23059       { "e5", "gsm_ss.e5",
23060         FT_UINT32, BASE_DEC, NULL, 0,
23061         "gsm_ss.E5", HFILL }},
23062     { &hf_gsm_ss_e6,
23063       { "e6", "gsm_ss.e6",
23064         FT_UINT32, BASE_DEC, NULL, 0,
23065         "gsm_ss.E6", HFILL }},
23066     { &hf_gsm_ss_e7,
23067       { "e7", "gsm_ss.e7",
23068         FT_UINT32, BASE_DEC, NULL, 0,
23069         "gsm_ss.E7", HFILL }},
23070     { &hf_gsm_ss_suppressPrefCUG,
23071       { "suppressPrefCUG", "gsm_ss.suppressPrefCUG",
23072         FT_NONE, BASE_NONE, NULL, 0,
23073         "gsm_ss.NULL", HFILL }},
23074     { &hf_gsm_ss_suppressOA,
23075       { "suppressOA", "gsm_ss.suppressOA",
23076         FT_NONE, BASE_NONE, NULL, 0,
23077         "gsm_ss.NULL", HFILL }},
23078     { &hf_gsm_ss_ect_CallState,
23079       { "ect-CallState", "gsm_ss.ect_CallState",
23080         FT_UINT32, BASE_DEC, VALS(gsm_ss_ECT_CallState_vals), 0,
23081         "gsm_ss.ECT_CallState", HFILL }},
23082     { &hf_gsm_ss_rdn,
23083       { "rdn", "gsm_ss.rdn",
23084         FT_UINT32, BASE_DEC, VALS(gsm_ss_RDN_vals), 0,
23085         "gsm_ss.RDN", HFILL }},
23086     { &hf_gsm_ss_callingName,
23087       { "callingName", "gsm_ss.callingName",
23088         FT_UINT32, BASE_DEC, VALS(gsm_ss_Name_vals), 0,
23089         "gsm_ss.Name", HFILL }},
23090     { &hf_gsm_ss_namePresentationAllowed,
23091       { "namePresentationAllowed", "gsm_ss.namePresentationAllowed",
23092         FT_NONE, BASE_NONE, NULL, 0,
23093         "gsm_ss.NameSet", HFILL }},
23094     { &hf_gsm_ss_presentationRestricted,
23095       { "presentationRestricted", "gsm_ss.presentationRestricted",
23096         FT_NONE, BASE_NONE, NULL, 0,
23097         "gsm_ss.NULL", HFILL }},
23098     { &hf_gsm_ss_nameUnavailable,
23099       { "nameUnavailable", "gsm_ss.nameUnavailable",
23100         FT_NONE, BASE_NONE, NULL, 0,
23101         "gsm_ss.NULL", HFILL }},
23102     { &hf_gsm_ss_namePresentationRestricted,
23103       { "namePresentationRestricted", "gsm_ss.namePresentationRestricted",
23104         FT_NONE, BASE_NONE, NULL, 0,
23105         "gsm_ss.NameSet", HFILL }},
23106     { &hf_gsm_ss_dataCodingScheme,
23107       { "dataCodingScheme", "gsm_ss.dataCodingScheme",
23108         FT_BYTES, BASE_NONE, NULL, 0,
23109         "gsm_map_ss.USSD_DataCodingScheme", HFILL }},
23110     { &hf_gsm_ss_lengthInCharacters,
23111       { "lengthInCharacters", "gsm_ss.lengthInCharacters",
23112         FT_INT32, BASE_DEC, NULL, 0,
23113         "gsm_ss.INTEGER", HFILL }},
23114     { &hf_gsm_ss_nameString,
23115       { "nameString", "gsm_ss.nameString",
23116         FT_BYTES, BASE_NONE, NULL, 0,
23117         "gsm_map_ss.USSD_String", HFILL }},
23118     { &hf_gsm_ss_presentationAllowedAddress,
23119       { "presentationAllowedAddress", "gsm_ss.presentationAllowedAddress",
23120         FT_NONE, BASE_NONE, NULL, 0,
23121         "gsm_ss.RemotePartyNumber", HFILL }},
23122     { &hf_gsm_ss_numberNotAvailableDueToInterworking,
23123       { "numberNotAvailableDueToInterworking", "gsm_ss.numberNotAvailableDueToInterworking",
23124         FT_NONE, BASE_NONE, NULL, 0,
23125         "gsm_ss.NULL", HFILL }},
23126     { &hf_gsm_ss_presentationRestrictedAddress,
23127       { "presentationRestrictedAddress", "gsm_ss.presentationRestrictedAddress",
23128         FT_NONE, BASE_NONE, NULL, 0,
23129         "gsm_ss.RemotePartyNumber", HFILL }},
23130     { &hf_gsm_ss_partyNumber,
23131       { "partyNumber", "gsm_ss.partyNumber",
23132         FT_BYTES, BASE_NONE, NULL, 0,
23133         "gsm_map.ISDN_AddressString", HFILL }},
23134     { &hf_gsm_ss_partyNumberSubaddress,
23135       { "partyNumberSubaddress", "gsm_ss.partyNumberSubaddress",
23136         FT_BYTES, BASE_NONE, NULL, 0,
23137         "gsm_map.ISDN_SubaddressString", HFILL }},
23138     { &hf_gsm_ss_deflectedToNumber,
23139       { "deflectedToNumber", "gsm_ss.deflectedToNumber",
23140         FT_BYTES, BASE_NONE, NULL, 0,
23141         "gsm_map.AddressString", HFILL }},
23142     { &hf_gsm_ss_deflectedToSubaddress,
23143       { "deflectedToSubaddress", "gsm_ss.deflectedToSubaddress",
23144         FT_BYTES, BASE_NONE, NULL, 0,
23145         "gsm_map.ISDN_SubaddressString", HFILL }},
23146     { &hf_gsm_ss_uUS_Service,
23147       { "uUS-Service", "gsm_ss.uUS_Service",
23148         FT_UINT32, BASE_DEC, VALS(gsm_ss_UUS_Service_vals), 0,
23149         "gsm_ss.UUS_Service", HFILL }},
23150     { &hf_gsm_ss_uUS_Required,
23151       { "uUS-Required", "gsm_ss.uUS_Required",
23152         FT_BOOLEAN, BASE_NONE, NULL, 0,
23153         "gsm_ss.BOOLEAN", HFILL }},
23154     { &hf_gsm_ss_notificationType,
23155       { "notificationType", "gsm_ss.notificationType",
23156         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
23157         "gsm_map_ms.NotificationToMSUser", HFILL }},
23158     { &hf_gsm_ss_locationType,
23159       { "locationType", "gsm_ss.locationType",
23160         FT_NONE, BASE_NONE, NULL, 0,
23161         "gsm_map_lcs.LocationType", HFILL }},
23162     { &hf_gsm_ss_lcsClientExternalID,
23163       { "lcsClientExternalID", "gsm_ss.lcsClientExternalID",
23164         FT_NONE, BASE_NONE, NULL, 0,
23165         "gsm_map.LCSClientExternalID", HFILL }},
23166     { &hf_gsm_ss_lcsClientName,
23167       { "lcsClientName", "gsm_ss.lcsClientName",
23168         FT_NONE, BASE_NONE, NULL, 0,
23169         "gsm_map_lcs.LCSClientName", HFILL }},
23170     { &hf_gsm_ss_lcsRequestorID,
23171       { "lcsRequestorID", "gsm_ss.lcsRequestorID",
23172         FT_NONE, BASE_NONE, NULL, 0,
23173         "gsm_map_lcs.LCSRequestorID", HFILL }},
23174     { &hf_gsm_ss_lcsCodeword,
23175       { "lcsCodeword", "gsm_ss.lcsCodeword",
23176         FT_NONE, BASE_NONE, NULL, 0,
23177         "gsm_map_lcs.LCSCodeword", HFILL }},
23178     { &hf_gsm_ss_lcsServiceTypeID,
23179       { "lcsServiceTypeID", "gsm_ss.lcsServiceTypeID",
23180         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
23181         "gsm_map.LCSServiceTypeID", HFILL }},
23182     { &hf_gsm_ss_verificationResponse,
23183       { "verificationResponse", "gsm_ss.verificationResponse",
23184         FT_UINT32, BASE_DEC, VALS(gsm_ss_VerificationResponse_vals), 0,
23185         "gsm_ss.VerificationResponse", HFILL }},
23186     { &hf_gsm_ss_molr_Type,
23187       { "molr-Type", "gsm_ss.molr_Type",
23188         FT_UINT32, BASE_DEC, VALS(gsm_ss_MOLR_Type_vals), 0,
23189         "gsm_ss.MOLR_Type", HFILL }},
23190     { &hf_gsm_ss_locationMethod,
23191       { "locationMethod", "gsm_ss.locationMethod",
23192         FT_UINT32, BASE_DEC, VALS(gsm_ss_LocationMethod_vals), 0,
23193         "gsm_ss.LocationMethod", HFILL }},
23194     { &hf_gsm_ss_lcs_QoS,
23195       { "lcs-QoS", "gsm_ss.lcs_QoS",
23196         FT_NONE, BASE_NONE, NULL, 0,
23197         "gsm_map_lcs.LCS_QoS", HFILL }},
23198     { &hf_gsm_ss_mlc_Number,
23199       { "mlc-Number", "gsm_ss.mlc_Number",
23200         FT_BYTES, BASE_NONE, NULL, 0,
23201         "gsm_map.ISDN_AddressString", HFILL }},
23202     { &hf_gsm_ss_gpsAssistanceData,
23203       { "gpsAssistanceData", "gsm_ss.gpsAssistanceData",
23204         FT_BYTES, BASE_NONE, NULL, 0,
23205         "gsm_ss.GPSAssistanceData", HFILL }},
23206     { &hf_gsm_ss_supportedGADShapes,
23207       { "supportedGADShapes", "gsm_ss.supportedGADShapes",
23208         FT_BYTES, BASE_NONE, NULL, 0,
23209         "gsm_map_lcs.SupportedGADShapes", HFILL }},
23210     { &hf_gsm_ss_ageOfLocationInfo,
23211       { "ageOfLocationInfo", "gsm_ss.ageOfLocationInfo",
23212         FT_UINT32, BASE_DEC, NULL, 0,
23213         "gsm_map.AgeOfLocationInformation", HFILL }},
23214     { &hf_gsm_ss_pseudonymIndicator,
23215       { "pseudonymIndicator", "gsm_ss.pseudonymIndicator",
23216         FT_NONE, BASE_NONE, NULL, 0,
23217         "gsm_ss.NULL", HFILL }},
23218     { &hf_gsm_ss_h_gmlc_address,
23219       { "h-gmlc-address", "gsm_ss.h_gmlc_address",
23220         FT_BYTES, BASE_NONE, NULL, 0,
23221         "gsm_map_ms.GSN_Address", HFILL }},
23222     { &hf_gsm_ss_locationEstimate,
23223       { "locationEstimate", "gsm_ss.locationEstimate",
23224         FT_BYTES, BASE_NONE, NULL, 0,
23225         "gsm_map_lcs.Ext_GeographicalInformation", HFILL }},
23226     { &hf_gsm_ss_velocityEstimate,
23227       { "velocityEstimate", "gsm_ss.velocityEstimate",
23228         FT_BYTES, BASE_NONE, NULL, 0,
23229         "gsm_map_lcs.VelocityEstimate", HFILL }},
23230     { &hf_gsm_ss_referenceNumber,
23231       { "referenceNumber", "gsm_ss.referenceNumber",
23232         FT_BYTES, BASE_NONE, NULL, 0,
23233         "gsm_map_lcs.LCS_ReferenceNumber", HFILL }},
23234     { &hf_gsm_ss_periodicLDRInfo,
23235       { "periodicLDRInfo", "gsm_ss.periodicLDRInfo",
23236         FT_NONE, BASE_NONE, NULL, 0,
23237         "gsm_map_lcs.PeriodicLDRInfo", HFILL }},
23238     { &hf_gsm_ss_locationUpdateRequest,
23239       { "locationUpdateRequest", "gsm_ss.locationUpdateRequest",
23240         FT_NONE, BASE_NONE, NULL, 0,
23241         "gsm_ss.NULL", HFILL }},
23242     { &hf_gsm_ss_sequenceNumber,
23243       { "sequenceNumber", "gsm_ss.sequenceNumber",
23244         FT_UINT32, BASE_DEC, NULL, 0,
23245         "gsm_map_lcs.SequenceNumber", HFILL }},
23246     { &hf_gsm_ss_terminationCause,
23247       { "terminationCause", "gsm_ss.terminationCause",
23248         FT_UINT32, BASE_DEC, VALS(gsm_ss_TerminationCause_vals), 0,
23249         "gsm_ss.TerminationCause", HFILL }},
23250     { &hf_gsm_ss_mo_lrShortCircuit,
23251       { "mo-lrShortCircuit", "gsm_ss.mo_lrShortCircuit",
23252         FT_NONE, BASE_NONE, NULL, 0,
23253         "gsm_ss.NULL", HFILL }},
23254     { &hf_gsm_ss_ganssAssistanceData,
23255       { "ganssAssistanceData", "gsm_ss.ganssAssistanceData",
23256         FT_BYTES, BASE_NONE, NULL, 0,
23257         "gsm_ss.GANSSAssistanceData", HFILL }},
23258     { &hf_gsm_ss_decipheringKeys,
23259       { "decipheringKeys", "gsm_ss.decipheringKeys",
23260         FT_BYTES, BASE_NONE, NULL, 0,
23261         "gsm_ss.DecipheringKeys", HFILL }},
23262     { &hf_gsm_ss_add_LocationEstimate,
23263       { "add-LocationEstimate", "gsm_ss.add_LocationEstimate",
23264         FT_BYTES, BASE_NONE, NULL, 0,
23265         "gsm_map_lcs.Add_GeographicalInformation", HFILL }},
23266     { &hf_gsm_ss_reportingPLMNList,
23267       { "reportingPLMNList", "gsm_ss.reportingPLMNList",
23268         FT_NONE, BASE_NONE, NULL, 0,
23269         "gsm_map_lcs.ReportingPLMNList", HFILL }},
23270     { &hf_gsm_ss_deferredLocationEventType,
23271       { "deferredLocationEventType", "gsm_ss.deferredLocationEventType",
23272         FT_BYTES, BASE_NONE, NULL, 0,
23273         "gsm_map_lcs.DeferredLocationEventType", HFILL }},
23274     { &hf_gsm_ss_areaEventInfo,
23275       { "areaEventInfo", "gsm_ss.areaEventInfo",
23276         FT_NONE, BASE_NONE, NULL, 0,
23277         "gsm_map_lcs.AreaEventInfo", HFILL }},
23278     { &hf_gsm_ss_qoS,
23279       { "qoS", "gsm_ss.qoS",
23280         FT_NONE, BASE_NONE, NULL, 0,
23281         "gsm_map_lcs.LCS_QoS", HFILL }},
23282
23283 /*--- End of included file: packet-gsm_map-hfarr.c ---*/
23284 #line 2442 "packet-gsmmap-template.c"
23285   };
23286
23287   /* List of subtrees */
23288   static gint *ett[] = {
23289     &ett_gsm_map,
23290     &ett_gsm_map_InvokeId,
23291     &ett_gsm_map_InvokePDU,
23292     &ett_gsm_map_ReturnResultPDU,
23293     &ett_gsm_map_ReturnErrorPDU,
23294     &ett_gsm_map_ReturnResult_result,
23295     &ett_gsm_map_ReturnError_result,
23296     &ett_gsm_map_GSMMAPPDU,
23297     &ett_gsm_map_ext_qos_subscribed,
23298     &ett_gsm_map_pdptypenumber,
23299     &ett_gsm_map_RAIdentity,
23300     &ett_gsm_map_LAIFixedLength,
23301     &ett_gsm_map_isdn_address_string,
23302     &ett_gsm_map_geo_desc,
23303     &ett_gsm_map_LongSignalInfo,
23304     &ett_gsm_map_RadioResourceInformation,
23305     &ett_gsm_map_MSNetworkCapability,
23306     &ett_gsm_map_MSRadioAccessCapability,
23307     &ett_gsm_map_externalsignalinfo,
23308     &ett_gsm_map_cbs_data_coding,
23309     &ett_gsm_map_GlobalCellId,
23310     &ett_gsm_map_GeographicalInformation,
23311
23312
23313 /*--- Included file: packet-gsm_map-ettarr.c ---*/
23314 #line 1 "packet-gsm_map-ettarr.c"
23315
23316 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
23317
23318     &ett_gsm_map_ExtensionContainer,
23319     &ett_gsm_map_SLR_ArgExtensionContainer,
23320     &ett_gsm_map_PrivateExtensionList,
23321     &ett_gsm_map_PrivateExtension,
23322     &ett_gsm_map_PCS_Extensions,
23323     &ett_gsm_map_SLR_Arg_PCS_Extensions,
23324
23325 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
23326
23327     &ett_gsm_map_ExternalSignalInfo,
23328     &ett_gsm_map_Ext_ExternalSignalInfo,
23329     &ett_gsm_map_AccessNetworkSignalInfo,
23330     &ett_gsm_map_Identity,
23331     &ett_gsm_map_IMSI_WithLMSI,
23332     &ett_gsm_map_HLR_List,
23333     &ett_gsm_map_NAEA_PreferredCI,
23334     &ett_gsm_map_SubscriberIdentity,
23335     &ett_gsm_map_LCSClientExternalID,
23336     &ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
23337     &ett_gsm_map_BasicServiceCode,
23338     &ett_gsm_map_Ext_BasicServiceCode,
23339     &ett_gsm_map_EMLPP_Info,
23340     &ett_gsm_map_MC_SS_Info,
23341
23342 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
23343
23344     &ett_gsm_map_ss_RegisterSS_Arg,
23345     &ett_gsm_map_ss_SS_Info,
23346     &ett_gsm_map_ss_ForwardingInfo,
23347     &ett_gsm_map_ss_ForwardingFeatureList,
23348     &ett_gsm_map_ss_ForwardingFeature,
23349     &ett_gsm_map_ss_CallBarringInfo,
23350     &ett_gsm_map_ss_CallBarringFeatureList,
23351     &ett_gsm_map_ss_CallBarringFeature,
23352     &ett_gsm_map_ss_SS_Data,
23353     &ett_gsm_map_ss_SS_SubscriptionOption,
23354     &ett_gsm_map_ss_SS_ForBS_Code,
23355     &ett_gsm_map_ss_GenericServiceInfo,
23356     &ett_gsm_map_ss_CCBS_FeatureList,
23357     &ett_gsm_map_ss_CCBS_Feature,
23358     &ett_gsm_map_ss_InterrogateSS_Res,
23359     &ett_gsm_map_ss_USSD_Arg,
23360     &ett_gsm_map_ss_USSD_Res,
23361     &ett_gsm_map_ss_SS_List,
23362     &ett_gsm_map_ss_BasicServiceGroupList,
23363     &ett_gsm_map_ss_SS_InvocationNotificationArg,
23364     &ett_gsm_map_ss_SS_InvocationNotificationRes,
23365     &ett_gsm_map_ss_SS_EventSpecification,
23366     &ett_gsm_map_ss_RegisterCC_EntryArg,
23367     &ett_gsm_map_ss_CCBS_Data,
23368     &ett_gsm_map_ss_ServiceIndicator,
23369     &ett_gsm_map_ss_RegisterCC_EntryRes,
23370     &ett_gsm_map_ss_EraseCC_EntryArg,
23371     &ett_gsm_map_ss_EraseCC_EntryRes,
23372
23373 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
23374
23375     &ett_gsm_map_er_RoamingNotAllowedParam,
23376     &ett_gsm_map_er_CallBarredParam,
23377     &ett_gsm_map_er_ExtensibleCallBarredParam,
23378     &ett_gsm_map_er_CUG_RejectParam,
23379     &ett_gsm_map_er_SS_IncompatibilityCause,
23380     &ett_gsm_map_er_SM_DeliveryFailureCause,
23381     &ett_gsm_map_er_AbsentSubscriberSM_Param,
23382     &ett_gsm_map_er_SystemFailureParam,
23383     &ett_gsm_map_er_ExtensibleSystemFailureParam,
23384     &ett_gsm_map_er_DataMissingParam,
23385     &ett_gsm_map_er_UnexpectedDataParam,
23386     &ett_gsm_map_er_FacilityNotSupParam,
23387     &ett_gsm_map_er_OR_NotAllowedParam,
23388     &ett_gsm_map_er_UnknownSubscriberParam,
23389     &ett_gsm_map_er_NumberChangedParam,
23390     &ett_gsm_map_er_UnidentifiedSubParam,
23391     &ett_gsm_map_er_IllegalSubscriberParam,
23392     &ett_gsm_map_er_IllegalEquipmentParam,
23393     &ett_gsm_map_er_BearerServNotProvParam,
23394     &ett_gsm_map_er_TeleservNotProvParam,
23395     &ett_gsm_map_er_TracingBufferFullParam,
23396     &ett_gsm_map_er_NoRoamingNbParam,
23397     &ett_gsm_map_er_AbsentSubscriberParam,
23398     &ett_gsm_map_er_BusySubscriberParam,
23399     &ett_gsm_map_er_NoSubscriberReplyParam,
23400     &ett_gsm_map_er_ForwardingViolationParam,
23401     &ett_gsm_map_er_ForwardingFailedParam,
23402     &ett_gsm_map_er_ATI_NotAllowedParam,
23403     &ett_gsm_map_er_ATSI_NotAllowedParam,
23404     &ett_gsm_map_er_ATM_NotAllowedParam,
23405     &ett_gsm_map_er_IllegalSS_OperationParam,
23406     &ett_gsm_map_er_SS_NotAvailableParam,
23407     &ett_gsm_map_er_SS_SubscriptionViolationParam,
23408     &ett_gsm_map_er_InformationNotAvailableParam,
23409     &ett_gsm_map_er_SubBusyForMT_SMS_Param,
23410     &ett_gsm_map_er_MessageWaitListFullParam,
23411     &ett_gsm_map_er_ResourceLimitationParam,
23412     &ett_gsm_map_er_NoGroupCallNbParam,
23413     &ett_gsm_map_er_IncompatibleTerminalParam,
23414     &ett_gsm_map_er_ShortTermDenialParam,
23415     &ett_gsm_map_er_LongTermDenialParam,
23416     &ett_gsm_map_er_UnauthorizedRequestingNetwork_Param,
23417     &ett_gsm_map_er_UnauthorizedLCSClient_Param,
23418     &ett_gsm_map_er_PositionMethodFailure_Param,
23419     &ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param,
23420     &ett_gsm_map_er_MM_EventNotSupported_Param,
23421     &ett_gsm_map_er_TargetCellOutsideGCA_Param,
23422     &ett_gsm_map_er_OngoingGroupCallParam,
23423
23424 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
23425
23426     &ett_gsm_map_sm_RoutingInfoForSM_Arg,
23427     &ett_gsm_map_sm_RoutingInfoForSM_Res,
23428     &ett_gsm_map_sm_LocationInfoWithLMSI,
23429     &ett_gsm_map_sm_Additional_Number,
23430     &ett_gsm_map_sm_MO_ForwardSM_Arg,
23431     &ett_gsm_map_sm_MO_ForwardSM_Res,
23432     &ett_gsm_map_sm_MT_ForwardSM_Arg,
23433     &ett_gsm_map_sm_MT_ForwardSM_Res,
23434     &ett_gsm_map_sm_SM_RP_DA,
23435     &ett_gsm_map_sm_SM_RP_OA,
23436     &ett_gsm_map_sm_ReportSM_DeliveryStatusArg,
23437     &ett_gsm_map_sm_ReportSM_DeliveryStatusRes,
23438     &ett_gsm_map_sm_AlertServiceCentreArg,
23439     &ett_gsm_map_sm_InformServiceCentreArg,
23440     &ett_gsm_map_sm_MW_Status,
23441     &ett_gsm_map_sm_ReadyForSM_Arg,
23442     &ett_gsm_map_sm_ReadyForSM_Res,
23443     &ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg,
23444     &ett_gsm_map_sm_MT_ForwardSM_VGCS_Res,
23445     &ett_gsm_map_sm_DispatcherList,
23446
23447 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
23448
23449     &ett_gsm_map_om_ActivateTraceModeArg,
23450     &ett_gsm_map_om_TraceDepthList,
23451     &ett_gsm_map_om_TraceNE_TypeList,
23452     &ett_gsm_map_om_TraceInterfaceList,
23453     &ett_gsm_map_om_MSC_S_InterfaceList,
23454     &ett_gsm_map_om_MGW_InterfaceList,
23455     &ett_gsm_map_om_SGSN_InterfaceList,
23456     &ett_gsm_map_om_GGSN_InterfaceList,
23457     &ett_gsm_map_om_RNC_InterfaceList,
23458     &ett_gsm_map_om_BMSC_InterfaceList,
23459     &ett_gsm_map_om_TraceEventList,
23460     &ett_gsm_map_om_MSC_S_EventList,
23461     &ett_gsm_map_om_MGW_EventList,
23462     &ett_gsm_map_om_SGSN_EventList,
23463     &ett_gsm_map_om_GGSN_EventList,
23464     &ett_gsm_map_om_BMSC_EventList,
23465     &ett_gsm_map_om_TracePropagationList,
23466     &ett_gsm_map_om_ActivateTraceModeRes,
23467     &ett_gsm_map_om_DeactivateTraceModeArg,
23468     &ett_gsm_map_om_DeactivateTraceModeRes,
23469
23470 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
23471
23472     &ett_gsm_map_ms_UpdateLocationArg,
23473     &ett_gsm_map_ms_VLR_Capability,
23474     &ett_gsm_map_ms_SupportedRAT_Types,
23475     &ett_gsm_map_ms_SuperChargerInfo,
23476     &ett_gsm_map_ms_SupportedLCS_CapabilitySets,
23477     &ett_gsm_map_ms_UpdateLocationRes,
23478     &ett_gsm_map_ms_ADD_Info,
23479     &ett_gsm_map_ms_PagingArea,
23480     &ett_gsm_map_ms_LocationArea,
23481     &ett_gsm_map_ms_CancelLocationArg_U,
23482     &ett_gsm_map_ms_CancelLocationRes,
23483     &ett_gsm_map_ms_PurgeMS_Arg_U,
23484     &ett_gsm_map_ms_PurgeMS_Res,
23485     &ett_gsm_map_ms_SendIdentificationArg,
23486     &ett_gsm_map_ms_SendIdentificationRes_U,
23487     &ett_gsm_map_ms_AuthenticationSetList,
23488     &ett_gsm_map_ms_TripletList,
23489     &ett_gsm_map_ms_QuintupletList,
23490     &ett_gsm_map_ms_AuthenticationTriplet,
23491     &ett_gsm_map_ms_AuthenticationQuintuplet,
23492     &ett_gsm_map_ms_CurrentSecurityContext,
23493     &ett_gsm_map_ms_GSM_SecurityContextData,
23494     &ett_gsm_map_ms_UMTS_SecurityContextData,
23495     &ett_gsm_map_ms_AuthenticationFailureReportArg,
23496     &ett_gsm_map_ms_AuthenticationFailureReportRes,
23497     &ett_gsm_map_ms_UpdateGprsLocationArg,
23498     &ett_gsm_map_ms_EPS_Info,
23499     &ett_gsm_map_ms_PDN_GW_Update,
23500     &ett_gsm_map_ms_ISR_Information,
23501     &ett_gsm_map_ms_SGSN_Capability,
23502     &ett_gsm_map_ms_SupportedFeatures,
23503     &ett_gsm_map_ms_UpdateGprsLocationRes,
23504     &ett_gsm_map_ms_ForwardAccessSignalling_Arg_U,
23505     &ett_gsm_map_ms_AllowedUMTS_Algorithms,
23506     &ett_gsm_map_ms_PrepareHO_Arg_U,
23507     &ett_gsm_map_ms_BSSMAP_ServiceHandoverList,
23508     &ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo,
23509     &ett_gsm_map_ms_RadioResourceList,
23510     &ett_gsm_map_ms_RadioResource,
23511     &ett_gsm_map_ms_PrepareHO_Res_U,
23512     &ett_gsm_map_ms_SelectedUMTS_Algorithms,
23513     &ett_gsm_map_ms_ChosenRadioResourceInformation,
23514     &ett_gsm_map_ms_PrepareSubsequentHO_Arg_U,
23515     &ett_gsm_map_ms_PrepareSubsequentHO_Res_U,
23516     &ett_gsm_map_ms_ProcessAccessSignalling_Arg_U,
23517     &ett_gsm_map_ms_SupportedCodecsList,
23518     &ett_gsm_map_ms_CodecList,
23519     &ett_gsm_map_ms_SendEndSignal_Arg_U,
23520     &ett_gsm_map_ms_SendEndSignal_Res,
23521     &ett_gsm_map_ms_RelocationNumberList,
23522     &ett_gsm_map_ms_RelocationNumber,
23523     &ett_gsm_map_ms_SendAuthenticationInfoArg,
23524     &ett_gsm_map_ms_Re_synchronisationInfo,
23525     &ett_gsm_map_ms_SendAuthenticationInfoRes_U,
23526     &ett_gsm_map_ms_EPS_AuthenticationSetList,
23527     &ett_gsm_map_ms_EPC_AV,
23528     &ett_gsm_map_ms_CheckIMEI_Arg,
23529     &ett_gsm_map_ms_CheckIMEI_Res,
23530     &ett_gsm_map_ms_RequestedEquipmentInfo,
23531     &ett_gsm_map_ms_UESBI_Iu,
23532     &ett_gsm_map_ms_InsertSubscriberDataArg,
23533     &ett_gsm_map_ms_CSG_SubscriptionDataList,
23534     &ett_gsm_map_ms_CSG_SubscriptionData,
23535     &ett_gsm_map_ms_EPS_SubscriptionData,
23536     &ett_gsm_map_ms_APN_ConfigurationProfile,
23537     &ett_gsm_map_ms_EPS_DataList,
23538     &ett_gsm_map_ms_APN_Configuration,
23539     &ett_gsm_map_ms_EPS_QoS_Subscribed,
23540     &ett_gsm_map_ms_AMBR,
23541     &ett_gsm_map_ms_SpecificAPNInfoList,
23542     &ett_gsm_map_ms_SpecificAPNInfo,
23543     &ett_gsm_map_ms_Allocation_Retention_Priority,
23544     &ett_gsm_map_ms_PDN_GW_Identity,
23545     &ett_gsm_map_ms_AccessRestrictionData,
23546     &ett_gsm_map_ms_LCSInformation,
23547     &ett_gsm_map_ms_GMLC_List,
23548     &ett_gsm_map_ms_GPRSDataList,
23549     &ett_gsm_map_ms_PDP_Context,
23550     &ett_gsm_map_ms_GPRSSubscriptionData,
23551     &ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo,
23552     &ett_gsm_map_ms_GPRS_CSI,
23553     &ett_gsm_map_ms_GPRS_CamelTDPDataList,
23554     &ett_gsm_map_ms_GPRS_CamelTDPData,
23555     &ett_gsm_map_ms_LSADataList,
23556     &ett_gsm_map_ms_LSAData,
23557     &ett_gsm_map_ms_LSAInformation,
23558     &ett_gsm_map_ms_SubscriberData,
23559     &ett_gsm_map_ms_BearerServiceList,
23560     &ett_gsm_map_ms_TeleserviceList,
23561     &ett_gsm_map_ms_ODB_Data,
23562     &ett_gsm_map_ms_ODB_GeneralData,
23563     &ett_gsm_map_ms_ODB_HPLMN_Data,
23564     &ett_gsm_map_ms_Ext_SS_InfoList,
23565     &ett_gsm_map_ms_Ext_SS_Info,
23566     &ett_gsm_map_ms_Ext_ForwInfo,
23567     &ett_gsm_map_ms_Ext_ForwFeatureList,
23568     &ett_gsm_map_ms_Ext_ForwFeature,
23569     &ett_gsm_map_ms_Ext_CallBarInfo,
23570     &ett_gsm_map_ms_Ext_CallBarFeatureList,
23571     &ett_gsm_map_ms_Ext_CallBarringFeature,
23572     &ett_gsm_map_ms_CUG_Info,
23573     &ett_gsm_map_ms_CUG_SubscriptionList,
23574     &ett_gsm_map_ms_CUG_Subscription,
23575     &ett_gsm_map_ms_CUG_FeatureList,
23576     &ett_gsm_map_ms_Ext_BasicServiceGroupList,
23577     &ett_gsm_map_ms_CUG_Feature,
23578     &ett_gsm_map_ms_Ext_SS_Data,
23579     &ett_gsm_map_ms_LCS_PrivacyExceptionList,
23580     &ett_gsm_map_ms_LCS_PrivacyClass,
23581     &ett_gsm_map_ms_ExternalClientList,
23582     &ett_gsm_map_ms_PLMNClientList,
23583     &ett_gsm_map_ms_Ext_ExternalClientList,
23584     &ett_gsm_map_ms_ExternalClient,
23585     &ett_gsm_map_ms_ServiceTypeList,
23586     &ett_gsm_map_ms_ServiceType,
23587     &ett_gsm_map_ms_MOLR_List,
23588     &ett_gsm_map_ms_MOLR_Class,
23589     &ett_gsm_map_ms_ZoneCodeList,
23590     &ett_gsm_map_ms_InsertSubscriberDataRes,
23591     &ett_gsm_map_ms_DeleteSubscriberDataArg,
23592     &ett_gsm_map_ms_SpecificCSI_Withdraw,
23593     &ett_gsm_map_ms_GPRSSubscriptionDataWithdraw,
23594     &ett_gsm_map_ms_EPS_SubscriptionDataWithdraw,
23595     &ett_gsm_map_ms_ContextIdList,
23596     &ett_gsm_map_ms_LSAInformationWithdraw,
23597     &ett_gsm_map_ms_LSAIdentityList,
23598     &ett_gsm_map_ms_BasicServiceList,
23599     &ett_gsm_map_ms_DeleteSubscriberDataRes,
23600     &ett_gsm_map_ms_VlrCamelSubscriptionInfo,
23601     &ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList,
23602     &ett_gsm_map_ms_MT_smsCAMELTDP_Criteria,
23603     &ett_gsm_map_ms_TPDU_TypeCriterion,
23604     &ett_gsm_map_ms_D_CSI,
23605     &ett_gsm_map_ms_DP_AnalysedInfoCriteriaList,
23606     &ett_gsm_map_ms_DP_AnalysedInfoCriterium,
23607     &ett_gsm_map_ms_SS_CSI,
23608     &ett_gsm_map_ms_SS_CamelData,
23609     &ett_gsm_map_ms_SS_EventList,
23610     &ett_gsm_map_ms_O_CSI,
23611     &ett_gsm_map_ms_O_BcsmCamelTDPDataList,
23612     &ett_gsm_map_ms_O_BcsmCamelTDPData,
23613     &ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList,
23614     &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList,
23615     &ett_gsm_map_ms_O_BcsmCamelTDP_Criteria,
23616     &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria,
23617     &ett_gsm_map_ms_DestinationNumberCriteria,
23618     &ett_gsm_map_ms_DestinationNumberList,
23619     &ett_gsm_map_ms_DestinationNumberLengthList,
23620     &ett_gsm_map_ms_BasicServiceCriteria,
23621     &ett_gsm_map_ms_O_CauseValueCriteria,
23622     &ett_gsm_map_ms_T_CauseValueCriteria,
23623     &ett_gsm_map_ms_SupportedCamelPhases,
23624     &ett_gsm_map_ms_OfferedCamel4CSIs,
23625     &ett_gsm_map_ms_OfferedCamel4Functionalities,
23626     &ett_gsm_map_ms_SMS_CSI,
23627     &ett_gsm_map_ms_SMS_CAMEL_TDP_DataList,
23628     &ett_gsm_map_ms_SMS_CAMEL_TDP_Data,
23629     &ett_gsm_map_ms_M_CSI,
23630     &ett_gsm_map_ms_MG_CSI,
23631     &ett_gsm_map_ms_MobilityTriggers,
23632     &ett_gsm_map_ms_T_CSI,
23633     &ett_gsm_map_ms_T_BcsmCamelTDPDataList,
23634     &ett_gsm_map_ms_T_BcsmCamelTDPData,
23635     &ett_gsm_map_ms_SendRoutingInfoForGprsArg,
23636     &ett_gsm_map_ms_SendRoutingInfoForGprsRes,
23637     &ett_gsm_map_ms_FailureReportArg,
23638     &ett_gsm_map_ms_FailureReportRes,
23639     &ett_gsm_map_ms_NoteMsPresentForGprsArg,
23640     &ett_gsm_map_ms_NoteMsPresentForGprsRes,
23641     &ett_gsm_map_ms_ResetArg,
23642     &ett_gsm_map_ms_RestoreDataArg,
23643     &ett_gsm_map_ms_RestoreDataRes,
23644     &ett_gsm_map_ms_VBSDataList,
23645     &ett_gsm_map_ms_VGCSDataList,
23646     &ett_gsm_map_ms_VoiceGroupCallData,
23647     &ett_gsm_map_ms_AdditionalSubscriptions,
23648     &ett_gsm_map_ms_VoiceBroadcastData,
23649     &ett_gsm_map_ms_ProvideSubscriberInfoArg,
23650     &ett_gsm_map_ms_ProvideSubscriberInfoRes,
23651     &ett_gsm_map_ms_SubscriberInfo,
23652     &ett_gsm_map_ms_MNPInfoRes,
23653     &ett_gsm_map_ms_GPRSMSClass,
23654     &ett_gsm_map_ms_RequestedInfo,
23655     &ett_gsm_map_ms_LocationInformation,
23656     &ett_gsm_map_ms_LocationInformationGPRS,
23657     &ett_gsm_map_ms_SubscriberState,
23658     &ett_gsm_map_ms_PS_SubscriberState,
23659     &ett_gsm_map_ms_PDP_ContextInfoList,
23660     &ett_gsm_map_ms_PDP_ContextInfo,
23661     &ett_gsm_map_ms_AnyTimeInterrogationArg,
23662     &ett_gsm_map_ms_AnyTimeInterrogationRes,
23663     &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg,
23664     &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes,
23665     &ett_gsm_map_ms_RequestedSubscriptionInfo,
23666     &ett_gsm_map_ms_MSISDN_BS_List,
23667     &ett_gsm_map_ms_MSISDN_BS,
23668     &ett_gsm_map_ms_CallForwardingData,
23669     &ett_gsm_map_ms_CallBarringData,
23670     &ett_gsm_map_ms_ODB_Info,
23671     &ett_gsm_map_ms_CAMEL_SubscriptionInfo,
23672     &ett_gsm_map_ms_AnyTimeModificationArg,
23673     &ett_gsm_map_ms_AnyTimeModificationRes,
23674     &ett_gsm_map_ms_ModificationRequestFor_CF_Info,
23675     &ett_gsm_map_ms_ModificationRequestFor_CB_Info,
23676     &ett_gsm_map_ms_ModificationRequestFor_ODB_data,
23677     &ett_gsm_map_ms_ModificationRequestFor_CSI,
23678     &ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data,
23679     &ett_gsm_map_ms_NoteSubscriberDataModifiedArg,
23680     &ett_gsm_map_ms_NoteSubscriberDataModifiedRes,
23681     &ett_gsm_map_ms_NoteMM_EventArg,
23682     &ett_gsm_map_ms_NoteMM_EventRes,
23683     &ett_gsm_map_ms_Ext_SS_InfoFor_CSE,
23684     &ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE,
23685     &ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE,
23686
23687 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
23688
23689     &ett_gsm_map_ch_CUG_CheckInfo,
23690     &ett_gsm_map_ch_SendRoutingInfoArg,
23691     &ett_gsm_map_ch_SuppressMTSS,
23692     &ett_gsm_map_ch_SendRoutingInfoRes_U,
23693     &ett_gsm_map_ch_AllowedServices,
23694     &ett_gsm_map_ch_CCBS_Indicators,
23695     &ett_gsm_map_ch_RoutingInfo,
23696     &ett_gsm_map_ch_ForwardingData,
23697     &ett_gsm_map_ch_ProvideRoamingNumberArg,
23698     &ett_gsm_map_ch_ProvideRoamingNumberRes,
23699     &ett_gsm_map_ch_ResumeCallHandlingArg,
23700     &ett_gsm_map_ch_UU_Data,
23701     &ett_gsm_map_ch_ResumeCallHandlingRes,
23702     &ett_gsm_map_ch_CamelInfo,
23703     &ett_gsm_map_ch_ExtendedRoutingInfo,
23704     &ett_gsm_map_ch_CamelRoutingInfo,
23705     &ett_gsm_map_ch_GmscCamelSubscriptionInfo,
23706     &ett_gsm_map_ch_SetReportingStateArg,
23707     &ett_gsm_map_ch_SetReportingStateRes,
23708     &ett_gsm_map_ch_StatusReportArg,
23709     &ett_gsm_map_ch_EventReportData,
23710     &ett_gsm_map_ch_CallReportData,
23711     &ett_gsm_map_ch_StatusReportRes,
23712     &ett_gsm_map_ch_RemoteUserFreeArg,
23713     &ett_gsm_map_ch_RemoteUserFreeRes,
23714     &ett_gsm_map_ch_IST_AlertArg,
23715     &ett_gsm_map_ch_IST_AlertRes,
23716     &ett_gsm_map_ch_IST_CommandArg,
23717     &ett_gsm_map_ch_IST_CommandRes,
23718     &ett_gsm_map_ch_ReleaseResourcesArg,
23719     &ett_gsm_map_ch_ReleaseResourcesRes,
23720
23721 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
23722
23723     &ett_gsm_map_lcs_RoutingInfoForLCS_Arg,
23724     &ett_gsm_map_lcs_RoutingInfoForLCS_Res,
23725     &ett_gsm_map_lcs_LCSLocationInfo,
23726     &ett_gsm_map_lcs_ProvideSubscriberLocation_Arg,
23727     &ett_gsm_map_lcs_LocationType,
23728     &ett_gsm_map_lcs_DeferredLocationEventType,
23729     &ett_gsm_map_lcs_LCS_ClientID,
23730     &ett_gsm_map_lcs_LCSClientName,
23731     &ett_gsm_map_lcs_LCSRequestorID,
23732     &ett_gsm_map_lcs_LCS_QoS,
23733     &ett_gsm_map_lcs_ResponseTime,
23734     &ett_gsm_map_lcs_SupportedGADShapes,
23735     &ett_gsm_map_lcs_LCSCodeword,
23736     &ett_gsm_map_lcs_LCS_PrivacyCheck,
23737     &ett_gsm_map_lcs_AreaEventInfo,
23738     &ett_gsm_map_lcs_AreaDefinition,
23739     &ett_gsm_map_lcs_AreaList,
23740     &ett_gsm_map_lcs_Area,
23741     &ett_gsm_map_lcs_PeriodicLDRInfo,
23742     &ett_gsm_map_lcs_ReportingPLMNList,
23743     &ett_gsm_map_lcs_PLMNList,
23744     &ett_gsm_map_lcs_ReportingPLMN,
23745     &ett_gsm_map_lcs_ProvideSubscriberLocation_Res,
23746     &ett_gsm_map_lcs_SubscriberLocationReport_Arg,
23747     &ett_gsm_map_lcs_Deferredmt_lrData,
23748     &ett_gsm_map_lcs_SubscriberLocationReport_Res,
23749
23750 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
23751
23752     &ett_gsm_map_gr_PrepareGroupCallArg,
23753     &ett_gsm_map_gr_PrepareGroupCallRes,
23754     &ett_gsm_map_gr_SendGroupCallEndSignalArg,
23755     &ett_gsm_map_gr_SendGroupCallEndSignalRes,
23756     &ett_gsm_map_gr_ForwardGroupCallSignallingArg,
23757     &ett_gsm_map_gr_ProcessGroupCallSignallingArg,
23758     &ett_gsm_map_gr_StateAttributes,
23759     &ett_gsm_map_gr_SendGroupCallInfoArg,
23760     &ett_gsm_map_gr_SendGroupCallInfoRes,
23761
23762 /* --- Module MAP-DialogueInformation --- --- ---                             */
23763
23764     &ett_gsm_map_dialogue_MAP_DialoguePDU,
23765     &ett_gsm_map_dialogue_MAP_OpenInfo,
23766     &ett_gsm_map_dialogue_MAP_AcceptInfo,
23767     &ett_gsm_map_dialogue_MAP_CloseInfo,
23768     &ett_gsm_map_dialogue_MAP_RefuseInfo,
23769     &ett_gsm_map_dialogue_MAP_UserAbortInfo,
23770     &ett_gsm_map_dialogue_MAP_UserAbortChoice,
23771     &ett_gsm_map_dialogue_MAP_ProviderAbortInfo,
23772
23773 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
23774
23775
23776 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
23777
23778
23779 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
23780
23781
23782 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
23783
23784
23785 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
23786
23787
23788 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
23789
23790
23791 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
23792
23793
23794 /* --- Module MAP-Errors --- --- ---                                          */
23795
23796
23797 /* --- Module MAP-Protocol --- --- ---                                        */
23798
23799
23800 /* --- Module DummyMAP --- --- ---                                            */
23801
23802     &ett_gsm_old_Component,
23803     &ett_gsm_old_Invoke,
23804     &ett_gsm_old_ReturnResult,
23805     &ett_gsm_old_T_resultretres,
23806     &ett_gsm_old_ReturnError,
23807     &ett_gsm_old_Reject,
23808     &ett_gsm_old_T_invokeIDRej,
23809     &ett_gsm_old_T_problem,
23810     &ett_gsm_old_MAP_OPERATION,
23811     &ett_gsm_old_MAP_ERROR,
23812     &ett_gsm_old_Bss_APDU,
23813     &ett_gsm_old_ProvideSIWFSNumberArg,
23814     &ett_gsm_old_ProvideSIWFSNumberRes,
23815     &ett_gsm_old_PurgeMSArgV2,
23816     &ett_gsm_old_PrepareHO_ArgOld,
23817     &ett_gsm_old_PrepareHO_ResOld,
23818     &ett_gsm_old_SendAuthenticationInfoResOld,
23819     &ett_gsm_old_SendAuthenticationInfoResOld_item,
23820     &ett_gsm_old_SendIdentificationResV2,
23821     &ett_gsm_old_TripletListold,
23822     &ett_gsm_old_AuthenticationTriplet_v2,
23823     &ett_gsm_old_SIWFSSignallingModifyArg,
23824     &ett_gsm_old_SIWFSSignallingModifyRes,
23825     &ett_gsm_old_SecureTransportArg,
23826     &ett_gsm_old_SecureTransportErrorParam,
23827     &ett_gsm_old_SecureTransportRes,
23828     &ett_gsm_old_SecurityHeader,
23829     &ett_gsm_old_OriginalComponentIdentifier,
23830     &ett_gsm_old_OperationCode,
23831     &ett_gsm_old_ErrorCode,
23832     &ett_gsm_old_PlmnContainer_U,
23833     &ett_gsm_old_T_operatorSS_Code,
23834     &ett_gsm_old_ForwardSM_Arg,
23835     &ett_gsm_old_SM_RP_DAold,
23836     &ett_gsm_old_SM_RP_OAold,
23837     &ett_gsm_old_SendRoutingInfoArgV2,
23838     &ett_gsm_old_SendRoutingInfoResV2,
23839
23840 /* --- Module SS-DataTypes --- --- ---                                        */
23841
23842     &ett_gsm_ss_NotifySS_Arg,
23843     &ett_gsm_ss_BeginSubscriberActivityArg,
23844     &ett_gsm_ss_ForwardChargeAdviceArg,
23845     &ett_gsm_ss_ChargingInformation,
23846     &ett_gsm_ss_ForwardCUG_InfoArg,
23847     &ett_gsm_ss_ECT_Indicator,
23848     &ett_gsm_ss_NameIndicator,
23849     &ett_gsm_ss_Name,
23850     &ett_gsm_ss_NameSet,
23851     &ett_gsm_ss_RDN,
23852     &ett_gsm_ss_RemotePartyNumber,
23853     &ett_gsm_ss_AccessRegisterCCEntryArg,
23854     &ett_gsm_ss_CallDeflectionArg,
23855     &ett_gsm_ss_UserUserServiceArg,
23856     &ett_gsm_ss_LocationNotificationArg,
23857     &ett_gsm_ss_LocationNotificationRes,
23858     &ett_gsm_ss_LCS_MOLRArg,
23859     &ett_gsm_ss_LCS_MOLRRes,
23860     &ett_gsm_ss_LCS_AreaEventRequestArg,
23861     &ett_gsm_ss_LCS_AreaEventReportArg,
23862     &ett_gsm_ss_LCS_AreaEventCancellationArg,
23863     &ett_gsm_ss_LCS_PeriodicLocationRequestArg,
23864     &ett_gsm_ss_LCS_PeriodicLocationRequestRes,
23865     &ett_gsm_ss_LCS_LocationUpdateArg,
23866     &ett_gsm_ss_LCS_LocationUpdateRes,
23867     &ett_gsm_ss_LCS_PeriodicLocationCancellationArg,
23868
23869 /* --- Module SS-Operations --- --- ---                                       */
23870
23871
23872 /*--- End of included file: packet-gsm_map-ettarr.c ---*/
23873 #line 2470 "packet-gsmmap-template.c"
23874   };
23875
23876   /* Register protocol */
23877   proto_gsm_map_dialogue =proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
23878
23879   register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);
23880   
23881   /* Register fields and subtrees */
23882   proto_register_field_array(proto_gsm_map, hf, array_length(hf));
23883   proto_register_subtree_array(ett, array_length(ett));
23884
23885   sms_dissector_table = register_dissector_table("gsm_map.sms_tpdu", 
23886                                                  "GSM SMS TPDU", FT_UINT8,
23887                                                  BASE_DEC);
23888
23889   gsm_map_tap = register_tap("gsm_map");
23890
23891
23892 /*--- Included file: packet-gsm_map-dis-tab.c ---*/
23893 #line 1 "packet-gsm_map-dis-tab.c"
23894
23895 /* --- Module MAP-DialogueInformation --- --- ---                             */
23896
23897   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");
23898
23899
23900 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
23901
23902
23903
23904 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
23905
23906
23907
23908 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
23909
23910
23911
23912 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
23913
23914
23915
23916 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
23917
23918
23919
23920 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
23921
23922
23923
23924 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
23925
23926
23927
23928 /* --- Module MAP-Errors --- --- ---                                          */
23929
23930
23931
23932 /* --- Module MAP-Protocol --- --- ---                                        */
23933
23934
23935
23936 /* --- Module DummyMAP --- --- ---                                            */
23937
23938
23939
23940 /* --- Module SS-DataTypes --- --- ---                                        */
23941
23942
23943
23944 /* --- Module SS-Operations --- --- ---                                       */
23945
23946
23947
23948 /*--- End of included file: packet-gsm_map-dis-tab.c ---*/
23949 #line 2488 "packet-gsmmap-template.c"
23950   oid_add_from_string("ericsson-gsm-Map-Ext","1.2.826.0.1249.58.1.0" );
23951   oid_add_from_string("accessTypeNotAllowed-id","1.3.12.2.1107.3.66.1.2");
23952   /*oid_add_from_string("map-ac networkLocUp(1) version3(3)","0.4.0.0.1.0.1.3" );
23953    *
23954    * Register our configuration options, particularly our ssn:s
23955    * Set default SSNs
23956    */
23957   range_convert_str(&global_ssn_range, "6-9", MAX_SSN);
23958
23959   gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
23960
23961   prefs_register_range_preference(gsm_map_module, "tcap.ssn", "TCAP SSNs",
23962                                   "TCAP Subsystem numbers used for GSM MAP",
23963                                   &global_ssn_range, MAX_SSN);
23964 }