4c18bd23e5efa19c1151823a44da403f5382bd34
[obnox/wireshark/wip.git] / epan / dissectors / packet-gsm_map.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* packet-gsm_map.c                                                           */
4 /* ../../tools/asn2wrs.py -b -e -c gsmmap.cnf -s packet-gsmmap-template ../ros/Remote-Operations-Information-Objects.asn MobileDomainDefinitions.asn MAP-ApplicationContexts.asn MAP-SS-Code.asn MAP-BS-Code.asn MAP-TS-Code.asn MAP-ExtensionDataTypes.asn MAP-CommonDataTypes.asn MAP-SS-DataTypes.asn MAP-ER-DataTypes.asn MAP-SM-DataTypes.asn MAP-OM-DataTypes.asn MAP-MS-DataTypes.asn MAP-CH-DataTypes.asn MAP-LCS-DataTypes.asn MAP-GR-DataTypes.asn MAP-DialogueInformation.asn MAP-LocationServiceOperations.asn MAP-Group-Call-Operations.asn MAP-ShortMessageServiceOperations.asn MAP-SupplementaryServiceOperations.asn MAP-CallHandlingOperations.asn MAP-OperationAndMaintenanceOperations.asn MAP-MobileServiceOperations.asn MAP-Errors.asn MAP-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn */
5
6 /* Input file: packet-gsmmap-template.c */
7
8 #line 1 "packet-gsmmap-template.c"
9 /* XXX see bug 1852:
10  *
11  * packet-gsm_map.c: There are 1174 display filter fields registered.  Most are
12  * prefixed appropriately as "gsm_map", but many others are prefixed as
13  * "gsm_old", or even "gad", "gsm_ss", or with no prefix at all.  I don't know
14  * if the ones with "gsm_old" are simply obsolete display filter fields or if
15  * they should be prefixed as "gsm_map.old." or what.  Similar uncertainties
16  * for the others. Someone more knowledgeable than I am with respect to this
17  * dissector should provide a patch for it.
18  */
19
20 /* packet-gsm_map-template.c
21  * Routines for GSM MobileApplication packet dissection
22  * including GSM SS.
23  * Copyright 2004 - 2008 , Anders Broman <anders.broman [AT] ericsson.com>
24  * Based on the dissector by:
25  * Felix Fei <felix.fei [AT] utstar.com>
26  * and Michael Lum <mlum [AT] telostech.com>
27  *
28  * $Id$
29  *
30  * Wireshark - Network traffic analyzer
31  * By Gerald Combs <gerald@wireshark.org>
32  * Copyright 1998 Gerald Combs
33  *
34  * This program is free software; you can redistribute it and/or
35  * modify it under the terms of the GNU General Public License
36  * as published by the Free Software Foundation; either version 2
37  * of the License, or (at your option) any later version.
38  *
39  * This program is distributed in the hope that it will be useful,
40  * but WITHOUT ANY WARRANTY; without even the implied warranty of
41  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
42  * GNU General Public License for more details.
43  *
44  * You should have received a copy of the GNU General Public License
45  * along with this program; if not, write to the Free Software
46  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
47  * References GSM MAP: 
48  * ETSI TS 129 002
49  * Updated to ETSI TS 129 002 V7.5.0 (3GPP TS 29.002 V7.5.0 (2006-09) Release 7)
50  * Updated to ETSI TS 129 002 V8.4.0 (3GPP TS 29.002 V8.1.0 (2007-06) Release 8)
51  * References GSM SS
52  * References: 3GPP TS 24.080
53  */
54
55 #ifdef HAVE_CONFIG_H
56 # include "config.h"
57 #endif
58
59 #include <glib.h>
60 #include <epan/packet.h>
61 #include <epan/prefs.h>
62 #include <epan/conversation.h>
63 #include <epan/tap.h>
64 #include <epan/emem.h>
65 #include <epan/oids.h>
66 #include "epan/expert.h"
67
68 #include <stdio.h>
69 #include <string.h>
70
71 #include <epan/asn1.h>
72 #include "packet-ber.h"
73 #include "packet-per.h"
74 #include "packet-q931.h"
75 #include "packet-gsm_map.h"
76 #include "packet-gsm_a_common.h"
77 #include "packet-tcap.h"
78 #include "packet-e164.h"
79 #include "packet-e212.h"
80 #include "packet-smpp.h"
81 #include "packet-gsm_sms.h"
82 #include "packet-ranap.h"
83
84 #define PNAME  "GSM Mobile Application"
85 #define PSNAME "GSM_MAP"
86 #define PFNAME "gsm_map"
87
88 /* Initialize the protocol and registered fields */
89 int proto_gsm_map = -1;
90 int proto_gsm_map_dialogue = -1;
91
92 static int hf_gsm_map_old_Component_PDU = -1;
93 static int hf_gsm_map_getPassword = -1;
94 static int hf_gsm_map_currentPassword = -1;
95 static int hf_gsm_map_extension = -1;
96 static int hf_gsm_map_nature_of_number = -1;
97 static int hf_gsm_map_number_plan = -1;
98 static int hf_gsm_map_isdn_address_digits = -1;
99 static int hf_gsm_map_address_digits = -1;
100 static int hf_gsm_map_servicecentreaddress_digits = -1;
101 static int hf_gsm_map_imsi_digits = -1;
102 static int hf_gsm_map_TBCD_digits = -1;
103 static int hf_gsm_map_Ss_Status_unused = -1;
104 static int hf_gsm_map_Ss_Status_q_bit = -1;
105 static int hf_gsm_map_Ss_Status_p_bit = -1;
106 static int hf_gsm_map_Ss_Status_r_bit = -1;
107 static int hf_gsm_map_Ss_Status_a_bit = -1;
108 static int hf_gsm_map_notification_to_forwarding_party = -1;
109 static int hf_gsm_map_redirecting_presentation = -1;
110 static int hf_gsm_map_notification_to_calling_party = -1;
111 static int hf_gsm_map_forwarding_reason = -1;
112 static int hf_gsm_map_pdp_type_org = -1;
113 static int hf_gsm_map_etsi_pdp_type_number = -1;
114 static int hf_gsm_map_ietf_pdp_type_number = -1;
115 static int hf_gsm_map_ext_qos_subscribed_pri = -1;
116
117 static int hf_gsm_map_qos_traffic_cls = -1;
118 static int hf_gsm_map_qos_del_order = -1;
119 static int hf_gsm_map_qos_del_of_err_sdu = -1;
120 static int hf_gsm_map_qos_ber = -1;
121 static int hf_gsm_map_qos_sdu_err_rat = -1;
122 static int hf_gsm_map_qos_traff_hdl_pri = -1;
123 static int hf_gsm_map_qos_max_sdu = -1;
124 static int hf_gsm_map_max_brate_ulink = -1;
125 static int hf_gsm_map_max_brate_dlink = -1;
126 static int hf_gsm_map_qos_transfer_delay = -1;
127 static int hf_gsm_map_guaranteed_max_brate_ulink = -1;
128 static int hf_gsm_map_guaranteed_max_brate_dlink = -1;
129 static int hf_gsm_map_GSNAddress_IPv4 = -1;
130 static int hf_gsm_map_GSNAddress_IPv6 = -1;
131 static int hf_gsm_map_ranap_service_Handover = -1;
132 static int hf_gsm_map_IntegrityProtectionInformation = -1;
133 static int hf_gsm_map_EncryptionInformation = -1;
134 static int hf_gsm_map_PlmnContainer_PDU = -1;
135 static int hf_gsm_map_ss_SS_UserData = -1;
136 static int hf_gsm_map_cbs_coding_grp = -1;
137 static int hf_gsm_map_cbs_coding_grp0_lang = -1;
138 static int hf_gsm_map_cbs_coding_grp1_lang = -1;
139 static int hf_gsm_map_cbs_coding_grp2_lang = -1;
140 static int hf_gsm_map_cbs_coding_grp3_lang = -1;
141 static int hf_gsm_map_cbs_coding_grp4_7_comp = -1;
142 static int hf_gsm_map_cbs_coding_grp4_7_class_ind = -1;
143 static int hf_gsm_map_cbs_coding_grp4_7_char_set = -1;
144 static int hf_gsm_map_cbs_coding_grp4_7_class = -1;
145 static int hf_gsm_map_cbs_coding_grp15_mess_code = -1;
146 static int hf_gsm_map_cbs_coding_grp15_class = -1;
147 static int hf_gsm_map_tmsi = -1;
148 static int hf_gsm_map_ie_tag = -1;
149 static int hf_gsm_map_len = -1;
150 static int hf_gsm_map_disc_par = -1;
151 static int hf_gsm_map_dlci = -1;
152
153
154 /*--- Included file: packet-gsm_map-hf.c ---*/
155 #line 1 "packet-gsm_map-hf.c"
156
157 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
158
159 static int hf_gsm_map_privateExtensionList = -1;  /* PrivateExtensionList */
160 static int hf_gsm_map_pcs_Extensions = -1;        /* PCS_Extensions */
161 static int hf_gsm_map_slr_Arg_PCS_Extensions = -1;  /* SLR_Arg_PCS_Extensions */
162 static int hf_gsm_map_PrivateExtensionList_item = -1;  /* PrivateExtension */
163 static int hf_gsm_map_extId = -1;                 /* T_extId */
164 static int hf_gsm_map_extType = -1;               /* T_extType */
165 static int hf_gsm_map_na_ESRK_Request = -1;       /* NULL */
166
167 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
168
169 static int hf_gsm_map_protocolId = -1;            /* ProtocolId */
170 static int hf_gsm_map_signalInfo = -1;            /* SignalInfo */
171 static int hf_gsm_map_extensionContainer = -1;    /* ExtensionContainer */
172 static int hf_gsm_map_ext_ProtocolId = -1;        /* Ext_ProtocolId */
173 static int hf_gsm_map_accessNetworkProtocolId = -1;  /* AccessNetworkProtocolId */
174 static int hf_gsm_map_signalInfo_01 = -1;         /* LongSignalInfo */
175 static int hf_gsm_map_imsi = -1;                  /* IMSI */
176 static int hf_gsm_map_imsi_WithLMSI = -1;         /* IMSI_WithLMSI */
177 static int hf_gsm_map_lmsi = -1;                  /* LMSI */
178 static int hf_gsm_map_HLR_List_item = -1;         /* HLR_Id */
179 static int hf_gsm_map_naea_PreferredCIC = -1;     /* NAEA_CIC */
180 static int hf_gsm_map_msisdn = -1;                /* ISDN_AddressString */
181 static int hf_gsm_map_externalAddress = -1;       /* ISDN_AddressString */
182 static int hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength = -1;  /* CellGlobalIdOrServiceAreaIdFixedLength */
183 static int hf_gsm_map_laiFixedLength = -1;        /* LAIFixedLength */
184 static int hf_gsm_map_bearerService = -1;         /* BearerServiceCode */
185 static int hf_gsm_map_teleservice = -1;           /* TeleserviceCode */
186 static int hf_gsm_map_ext_BearerService = -1;     /* Ext_BearerServiceCode */
187 static int hf_gsm_map_ext_Teleservice = -1;       /* Ext_TeleserviceCode */
188 static int hf_gsm_map_maximumentitledPriority = -1;  /* EMLPP_Priority */
189 static int hf_gsm_map_defaultPriority = -1;       /* EMLPP_Priority */
190 static int hf_gsm_map_ss_Code = -1;               /* SS_Code */
191 static int hf_gsm_map_ss_Status = -1;             /* Ext_SS_Status */
192 static int hf_gsm_map_nbrSB = -1;                 /* MaxMC_Bearers */
193 static int hf_gsm_map_nbrUser = -1;               /* MC_Bearers */
194
195 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
196
197 static int hf_gsm_map_ss_ss_Code = -1;            /* SS_Code */
198 static int hf_gsm_map_ss_basicService = -1;       /* BasicServiceCode */
199 static int hf_gsm_map_ss_forwardedToNumber = -1;  /* AddressString */
200 static int hf_gsm_map_ss_forwardedToSubaddress = -1;  /* ISDN_SubaddressString */
201 static int hf_gsm_map_ss_noReplyConditionTime = -1;  /* NoReplyConditionTime */
202 static int hf_gsm_map_ss_defaultPriority = -1;    /* EMLPP_Priority */
203 static int hf_gsm_map_ss_nbrUser = -1;            /* MC_Bearers */
204 static int hf_gsm_map_ss_longFTN_Supported = -1;  /* NULL */
205 static int hf_gsm_map_ss_forwardingInfo = -1;     /* ForwardingInfo */
206 static int hf_gsm_map_ss_callBarringInfo = -1;    /* CallBarringInfo */
207 static int hf_gsm_map_ss_ss_Data = -1;            /* SS_Data */
208 static int hf_gsm_map_ss_forwardingFeatureList = -1;  /* ForwardingFeatureList */
209 static int hf_gsm_map_ss_ForwardingFeatureList_item = -1;  /* ForwardingFeature */
210 static int hf_gsm_map_ss_ss_Status = -1;          /* SS_Status */
211 static int hf_gsm_map_ss_forwardedToNumber_01 = -1;  /* ISDN_AddressString */
212 static int hf_gsm_map_ss_forwardingOptions = -1;  /* ForwardingOptions */
213 static int hf_gsm_map_ss_longForwardedToNumber = -1;  /* FTN_AddressString */
214 static int hf_gsm_map_ss_callBarringFeatureList = -1;  /* CallBarringFeatureList */
215 static int hf_gsm_map_ss_CallBarringFeatureList_item = -1;  /* CallBarringFeature */
216 static int hf_gsm_map_ss_ss_SubscriptionOption = -1;  /* SS_SubscriptionOption */
217 static int hf_gsm_map_ss_basicServiceGroupList = -1;  /* BasicServiceGroupList */
218 static int hf_gsm_map_ss_cliRestrictionOption = -1;  /* CliRestrictionOption */
219 static int hf_gsm_map_ss_overrideCategory = -1;   /* OverrideCategory */
220 static int hf_gsm_map_ss_maximumEntitledPriority = -1;  /* EMLPP_Priority */
221 static int hf_gsm_map_ss_ccbs_FeatureList = -1;   /* CCBS_FeatureList */
222 static int hf_gsm_map_ss_nbrSB = -1;              /* MaxMC_Bearers */
223 static int hf_gsm_map_ss_nbrSN = -1;              /* MC_Bearers */
224 static int hf_gsm_map_ss_CCBS_FeatureList_item = -1;  /* CCBS_Feature */
225 static int hf_gsm_map_ss_ccbs_Index = -1;         /* CCBS_Index */
226 static int hf_gsm_map_ss_b_subscriberNumber = -1;  /* ISDN_AddressString */
227 static int hf_gsm_map_ss_b_subscriberSubaddress = -1;  /* ISDN_SubaddressString */
228 static int hf_gsm_map_ss_basicServiceGroup = -1;  /* BasicServiceCode */
229 static int hf_gsm_map_ss_genericServiceInfo = -1;  /* GenericServiceInfo */
230 static int hf_gsm_map_ss_ussd_DataCodingScheme = -1;  /* USSD_DataCodingScheme */
231 static int hf_gsm_map_ss_ussd_String = -1;        /* USSD_String */
232 static int hf_gsm_map_ss_alertingPattern = -1;    /* AlertingPattern */
233 static int hf_gsm_map_ss_msisdn = -1;             /* ISDN_AddressString */
234 static int hf_gsm_map_ss_SS_List_item = -1;       /* SS_Code */
235 static int hf_gsm_map_ss_BasicServiceGroupList_item = -1;  /* BasicServiceCode */
236 static int hf_gsm_map_ss_imsi = -1;               /* IMSI */
237 static int hf_gsm_map_ss_ss_Event = -1;           /* SS_Code */
238 static int hf_gsm_map_ss_ss_EventSpecification = -1;  /* SS_EventSpecification */
239 static int hf_gsm_map_ss_extensionContainer = -1;  /* ExtensionContainer */
240 static int hf_gsm_map_ss_ccbs_RequestState = -1;  /* CCBS_RequestState */
241 static int hf_gsm_map_ss_SS_EventSpecification_item = -1;  /* AddressString */
242 static int hf_gsm_map_ss_ccbs_Data = -1;          /* CCBS_Data */
243 static int hf_gsm_map_ss_ccbs_Feature = -1;       /* CCBS_Feature */
244 static int hf_gsm_map_ss_translatedB_Number = -1;  /* ISDN_AddressString */
245 static int hf_gsm_map_ss_serviceIndicator = -1;   /* ServiceIndicator */
246 static int hf_gsm_map_ss_callInfo = -1;           /* ExternalSignalInfo */
247 static int hf_gsm_map_ss_networkSignalInfo = -1;  /* ExternalSignalInfo */
248 /* named bits */
249 static int hf_gsm_map_ss_ServiceIndicator_clir_invoked = -1;
250 static int hf_gsm_map_ss_ServiceIndicator_camel_invoked = -1;
251
252 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
253
254 static int hf_gsm_map_er_roamingNotAllowedCause = -1;  /* RoamingNotAllowedCause */
255 static int hf_gsm_map_er_extensionContainer = -1;  /* ExtensionContainer */
256 static int hf_gsm_map_er_additionalRoamingNotAllowedCause = -1;  /* AdditionalRoamingNotAllowedCause */
257 static int hf_gsm_map_er_callBarringCause = -1;   /* CallBarringCause */
258 static int hf_gsm_map_er_extensibleCallBarredParam = -1;  /* ExtensibleCallBarredParam */
259 static int hf_gsm_map_er_unauthorisedMessageOriginator = -1;  /* NULL */
260 static int hf_gsm_map_er_cug_RejectCause = -1;    /* CUG_RejectCause */
261 static int hf_gsm_map_er_ss_Code = -1;            /* SS_Code */
262 static int hf_gsm_map_er_basicService = -1;       /* BasicServiceCode */
263 static int hf_gsm_map_er_ss_Status = -1;          /* SS_Status */
264 static int hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause = -1;  /* SM_EnumeratedDeliveryFailureCause */
265 static int hf_gsm_map_er_diagnosticInfo = -1;     /* SignalInfo */
266 static int hf_gsm_map_er_absentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
267 static int hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
268 static int hf_gsm_map_er_networkResource = -1;    /* NetworkResource */
269 static int hf_gsm_map_er_extensibleSystemFailureParam = -1;  /* ExtensibleSystemFailureParam */
270 static int hf_gsm_map_er_additionalNetworkResource = -1;  /* AdditionalNetworkResource */
271 static int hf_gsm_map_er_failureCauseParam = -1;  /* FailureCauseParam */
272 static int hf_gsm_map_er_shapeOfLocationEstimateNotSupported = -1;  /* NULL */
273 static int hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode = -1;  /* NULL */
274 static int hf_gsm_map_er_unknownSubscriberDiagnostic = -1;  /* UnknownSubscriberDiagnostic */
275 static int hf_gsm_map_er_absentSubscriberReason = -1;  /* AbsentSubscriberReason */
276 static int hf_gsm_map_er_ccbs_Possible = -1;      /* NULL */
277 static int hf_gsm_map_er_ccbs_Busy = -1;          /* NULL */
278 static int hf_gsm_map_er_gprsConnectionSuspended = -1;  /* NULL */
279 static int hf_gsm_map_er_unauthorizedLCSClient_Diagnostic = -1;  /* UnauthorizedLCSClient_Diagnostic */
280 static int hf_gsm_map_er_positionMethodFailure_Diagnostic = -1;  /* PositionMethodFailure_Diagnostic */
281
282 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
283
284 static int hf_gsm_map_sm_msisdn = -1;             /* ISDN_AddressString */
285 static int hf_gsm_map_sm_sm_RP_PRI = -1;          /* BOOLEAN */
286 static int hf_gsm_map_sm_serviceCentreAddress = -1;  /* AddressString */
287 static int hf_gsm_map_sm_extensionContainer = -1;  /* ExtensionContainer */
288 static int hf_gsm_map_sm_gprsSupportIndicator = -1;  /* NULL */
289 static int hf_gsm_map_sm_sm_RP_MTI = -1;          /* SM_RP_MTI */
290 static int hf_gsm_map_sm_sm_RP_SMEA = -1;         /* SM_RP_SMEA */
291 static int hf_gsm_map_sm_sm_deliveryNotIntended = -1;  /* SM_DeliveryNotIntended */
292 static int hf_gsm_map_sm_imsi = -1;               /* IMSI */
293 static int hf_gsm_map_sm_locationInfoWithLMSI = -1;  /* LocationInfoWithLMSI */
294 static int hf_gsm_map_sm_networkNode_Number = -1;  /* ISDN_AddressString */
295 static int hf_gsm_map_sm_lmsi = -1;               /* LMSI */
296 static int hf_gsm_map_sm_gprsNodeIndicator = -1;  /* NULL */
297 static int hf_gsm_map_sm_additional_Number = -1;  /* Additional_Number */
298 static int hf_gsm_map_sm_msc_Number = -1;         /* ISDN_AddressString */
299 static int hf_gsm_map_sm_sgsn_Number = -1;        /* ISDN_AddressString */
300 static int hf_gsm_map_sm_sm_RP_DA = -1;           /* SM_RP_DA */
301 static int hf_gsm_map_sm_sm_RP_OA = -1;           /* SM_RP_OA */
302 static int hf_gsm_map_sm_sm_RP_UI = -1;           /* SignalInfo */
303 static int hf_gsm_map_sm_moreMessagesToSend = -1;  /* NULL */
304 static int hf_gsm_map_sm_serviceCentreAddressDA = -1;  /* AddressString */
305 static int hf_gsm_map_sm_noSM_RP_DA = -1;         /* NULL */
306 static int hf_gsm_map_sm_msisdn_01 = -1;          /* T_msisdn */
307 static int hf_gsm_map_sm_serviceCentreAddressOA = -1;  /* T_serviceCentreAddressOA */
308 static int hf_gsm_map_sm_noSM_RP_OA = -1;         /* NULL */
309 static int hf_gsm_map_sm_sm_DeliveryOutcome = -1;  /* SM_DeliveryOutcome */
310 static int hf_gsm_map_sm_absentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
311 static int hf_gsm_map_sm_deliveryOutcomeIndicator = -1;  /* NULL */
312 static int hf_gsm_map_sm_additionalSM_DeliveryOutcome = -1;  /* SM_DeliveryOutcome */
313 static int hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
314 static int hf_gsm_map_sm_ip_sm_gw_Indicator = -1;  /* NULL */
315 static int hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome = -1;  /* SM_DeliveryOutcome */
316 static int hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
317 static int hf_gsm_map_sm_storedMSISDN = -1;       /* ISDN_AddressString */
318 static int hf_gsm_map_sm_mw_Status = -1;          /* MW_Status */
319 static int hf_gsm_map_sm_alertReason = -1;        /* AlertReason */
320 static int hf_gsm_map_sm_alertReasonIndicator = -1;  /* NULL */
321 static int hf_gsm_map_sm_additionalAlertReasonIndicator = -1;  /* NULL */
322 static int hf_gsm_map_sm_asciCallReference = -1;  /* ASCI_CallReference */
323 static int hf_gsm_map_sm_dispatcherList = -1;     /* DispatcherList */
324 static int hf_gsm_map_sm_ongoingCall = -1;        /* NULL */
325 static int hf_gsm_map_sm_DispatcherList_item = -1;  /* ISDN_AddressString */
326 /* named bits */
327 static int hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded = -1;
328 static int hf_gsm_map_sm_MW_Status_mnrf_Set = -1;
329 static int hf_gsm_map_sm_MW_Status_mcef_Set = -1;
330 static int hf_gsm_map_sm_MW_Status_mnrg_Set = -1;
331
332 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
333
334 static int hf_gsm_map_om_imsi = -1;               /* IMSI */
335 static int hf_gsm_map_om_traceReference = -1;     /* TraceReference */
336 static int hf_gsm_map_om_traceType = -1;          /* TraceType */
337 static int hf_gsm_map_om_omc_Id = -1;             /* AddressString */
338 static int hf_gsm_map_om_extensionContainer = -1;  /* ExtensionContainer */
339 static int hf_gsm_map_om_traceReference2 = -1;    /* TraceReference2 */
340 static int hf_gsm_map_om_traceDepthList = -1;     /* TraceDepthList */
341 static int hf_gsm_map_om_traceNE_TypeList = -1;   /* TraceNE_TypeList */
342 static int hf_gsm_map_om_traceInterfaceList = -1;  /* TraceInterfaceList */
343 static int hf_gsm_map_om_traceEventList = -1;     /* TraceEventList */
344 static int hf_gsm_map_om_msc_s_TraceDepth = -1;   /* TraceDepth */
345 static int hf_gsm_map_om_mgw_TraceDepth = -1;     /* TraceDepth */
346 static int hf_gsm_map_om_sgsn_TraceDepth = -1;    /* TraceDepth */
347 static int hf_gsm_map_om_ggsn_TraceDepth = -1;    /* TraceDepth */
348 static int hf_gsm_map_om_rnc_TraceDepth = -1;     /* TraceDepth */
349 static int hf_gsm_map_om_bmsc_TraceDepth = -1;    /* TraceDepth */
350 static int hf_gsm_map_om_msc_s_List = -1;         /* MSC_S_InterfaceList */
351 static int hf_gsm_map_om_mgw_List = -1;           /* MGW_InterfaceList */
352 static int hf_gsm_map_om_sgsn_List = -1;          /* SGSN_InterfaceList */
353 static int hf_gsm_map_om_ggsn_List = -1;          /* GGSN_InterfaceList */
354 static int hf_gsm_map_om_rnc_List = -1;           /* RNC_InterfaceList */
355 static int hf_gsm_map_om_bmsc_List = -1;          /* BMSC_InterfaceList */
356 static int hf_gsm_map_om_msc_s_List_01 = -1;      /* MSC_S_EventList */
357 static int hf_gsm_map_om_mgw_List_01 = -1;        /* MGW_EventList */
358 static int hf_gsm_map_om_sgsn_List_01 = -1;       /* SGSN_EventList */
359 static int hf_gsm_map_om_ggsn_List_01 = -1;       /* GGSN_EventList */
360 static int hf_gsm_map_om_bmsc_List_01 = -1;       /* BMSC_EventList */
361 static int hf_gsm_map_om_traceRecordingSessionReference = -1;  /* TraceRecordingSessionReference */
362 static int hf_gsm_map_om_rnc_InterfaceList = -1;  /* RNC_InterfaceList */
363 static int hf_gsm_map_om_msc_s_InterfaceList = -1;  /* MSC_S_InterfaceList */
364 static int hf_gsm_map_om_msc_s_EventList = -1;    /* MSC_S_EventList */
365 static int hf_gsm_map_om_mgw_InterfaceList = -1;  /* MGW_InterfaceList */
366 static int hf_gsm_map_om_mgw_EventList = -1;      /* MGW_EventList */
367 static int hf_gsm_map_om_traceSupportIndicator = -1;  /* NULL */
368 /* named bits */
369 static int hf_gsm_map_om_TraceNE_TypeList_msc_s = -1;
370 static int hf_gsm_map_om_TraceNE_TypeList_mgw = -1;
371 static int hf_gsm_map_om_TraceNE_TypeList_sgsn = -1;
372 static int hf_gsm_map_om_TraceNE_TypeList_ggsn = -1;
373 static int hf_gsm_map_om_TraceNE_TypeList_rnc = -1;
374 static int hf_gsm_map_om_TraceNE_TypeList_bm_sc = -1;
375 static int hf_gsm_map_om_MSC_S_InterfaceList_a = -1;
376 static int hf_gsm_map_om_MSC_S_InterfaceList_iu = -1;
377 static int hf_gsm_map_om_MSC_S_InterfaceList_mc = -1;
378 static int hf_gsm_map_om_MSC_S_InterfaceList_map_g = -1;
379 static int hf_gsm_map_om_MSC_S_InterfaceList_map_b = -1;
380 static int hf_gsm_map_om_MSC_S_InterfaceList_map_e = -1;
381 static int hf_gsm_map_om_MSC_S_InterfaceList_map_f = -1;
382 static int hf_gsm_map_om_MSC_S_InterfaceList_cap = -1;
383 static int hf_gsm_map_om_MSC_S_InterfaceList_map_d = -1;
384 static int hf_gsm_map_om_MSC_S_InterfaceList_map_c = -1;
385 static int hf_gsm_map_om_MGW_InterfaceList_mc = -1;
386 static int hf_gsm_map_om_MGW_InterfaceList_nb_up = -1;
387 static int hf_gsm_map_om_MGW_InterfaceList_iu_up = -1;
388 static int hf_gsm_map_om_SGSN_InterfaceList_gb = -1;
389 static int hf_gsm_map_om_SGSN_InterfaceList_iu = -1;
390 static int hf_gsm_map_om_SGSN_InterfaceList_gn = -1;
391 static int hf_gsm_map_om_SGSN_InterfaceList_map_gr = -1;
392 static int hf_gsm_map_om_SGSN_InterfaceList_map_gd = -1;
393 static int hf_gsm_map_om_SGSN_InterfaceList_map_gf = -1;
394 static int hf_gsm_map_om_SGSN_InterfaceList_gs = -1;
395 static int hf_gsm_map_om_SGSN_InterfaceList_ge = -1;
396 static int hf_gsm_map_om_GGSN_InterfaceList_gn = -1;
397 static int hf_gsm_map_om_GGSN_InterfaceList_gi = -1;
398 static int hf_gsm_map_om_GGSN_InterfaceList_gmb = -1;
399 static int hf_gsm_map_om_RNC_InterfaceList_iu = -1;
400 static int hf_gsm_map_om_RNC_InterfaceList_iur = -1;
401 static int hf_gsm_map_om_RNC_InterfaceList_iub = -1;
402 static int hf_gsm_map_om_RNC_InterfaceList_uu = -1;
403 static int hf_gsm_map_om_BMSC_InterfaceList_gmb = -1;
404 static int hf_gsm_map_om_MSC_S_EventList_mo_mtCall = -1;
405 static int hf_gsm_map_om_MSC_S_EventList_mo_mt_sms = -1;
406 static int hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach = -1;
407 static int hf_gsm_map_om_MSC_S_EventList_handovers = -1;
408 static int hf_gsm_map_om_MSC_S_EventList_ss = -1;
409 static int hf_gsm_map_om_MGW_EventList_context = -1;
410 static int hf_gsm_map_om_SGSN_EventList_pdpContext = -1;
411 static int hf_gsm_map_om_SGSN_EventList_mo_mt_sms = -1;
412 static int hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach = -1;
413 static int hf_gsm_map_om_SGSN_EventList_mbmsContext = -1;
414 static int hf_gsm_map_om_GGSN_EventList_pdpContext = -1;
415 static int hf_gsm_map_om_GGSN_EventList_mbmsContext = -1;
416 static int hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation = -1;
417
418 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
419
420 static int hf_gsm_map_ms_imsi = -1;               /* IMSI */
421 static int hf_gsm_map_ms_msc_Number = -1;         /* ISDN_AddressString */
422 static int hf_gsm_map_ms_vlr_Number = -1;         /* ISDN_AddressString */
423 static int hf_gsm_map_ms_lmsi = -1;               /* LMSI */
424 static int hf_gsm_map_ms_extensionContainer = -1;  /* ExtensionContainer */
425 static int hf_gsm_map_ms_vlr_Capability = -1;     /* VLR_Capability */
426 static int hf_gsm_map_ms_informPreviousNetworkEntity = -1;  /* NULL */
427 static int hf_gsm_map_ms_cs_LCS_NotSupportedByUE = -1;  /* NULL */
428 static int hf_gsm_map_ms_v_gmlc_Address = -1;     /* GSN_Address */
429 static int hf_gsm_map_ms_add_info = -1;           /* ADD_Info */
430 static int hf_gsm_map_ms_supportedCamelPhases = -1;  /* SupportedCamelPhases */
431 static int hf_gsm_map_ms_solsaSupportIndicator = -1;  /* NULL */
432 static int hf_gsm_map_ms_istSupportIndicator = -1;  /* IST_SupportIndicator */
433 static int hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity = -1;  /* SuperChargerInfo */
434 static int hf_gsm_map_ms_longFTN_Supported = -1;  /* NULL */
435 static int hf_gsm_map_ms_supportedLCS_CapabilitySets = -1;  /* SupportedLCS_CapabilitySets */
436 static int hf_gsm_map_ms_offeredCamel4CSIs = -1;  /* OfferedCamel4CSIs */
437 static int hf_gsm_map_ms_supportedRAT_TypesIndicator = -1;  /* SupportedRAT_Types */
438 static int hf_gsm_map_ms_longGroupID_Supported = -1;  /* NULL */
439 static int hf_gsm_map_ms_sendSubscriberData = -1;  /* NULL */
440 static int hf_gsm_map_ms_subscriberDataStored = -1;  /* AgeIndicator */
441 static int hf_gsm_map_ms_hlr_Number = -1;         /* ISDN_AddressString */
442 static int hf_gsm_map_ms_add_Capability = -1;     /* NULL */
443 static int hf_gsm_map_ms_imeisv = -1;             /* IMEI */
444 static int hf_gsm_map_ms_skipSubscriberDataUpdate = -1;  /* NULL */
445 static int hf_gsm_map_ms_identity = -1;           /* Identity */
446 static int hf_gsm_map_ms_cancellationType = -1;   /* CancellationType */
447 static int hf_gsm_map_ms_sgsn_Number = -1;        /* ISDN_AddressString */
448 static int hf_gsm_map_ms_freezeTMSI = -1;         /* NULL */
449 static int hf_gsm_map_ms_freezeP_TMSI = -1;       /* NULL */
450 static int hf_gsm_map_ms_tmsi = -1;               /* TMSI */
451 static int hf_gsm_map_ms_numberOfRequestedVectors = -1;  /* NumberOfRequestedVectors */
452 static int hf_gsm_map_ms_segmentationProhibited = -1;  /* NULL */
453 static int hf_gsm_map_ms_previous_LAI = -1;       /* LAIFixedLength */
454 static int hf_gsm_map_ms_hopCounter = -1;         /* HopCounter */
455 static int hf_gsm_map_ms_authenticationSetList = -1;  /* AuthenticationSetList */
456 static int hf_gsm_map_ms_currentSecurityContext = -1;  /* CurrentSecurityContext */
457 static int hf_gsm_map_ms_tripletList = -1;        /* TripletList */
458 static int hf_gsm_map_ms_quintupletList = -1;     /* QuintupletList */
459 static int hf_gsm_map_ms_TripletList_item = -1;   /* AuthenticationTriplet */
460 static int hf_gsm_map_ms_QuintupletList_item = -1;  /* AuthenticationQuintuplet */
461 static int hf_gsm_map_ms_rand = -1;               /* RAND */
462 static int hf_gsm_map_ms_sres = -1;               /* SRES */
463 static int hf_gsm_map_ms_kc = -1;                 /* Kc */
464 static int hf_gsm_map_ms_xres = -1;               /* XRES */
465 static int hf_gsm_map_ms_ck = -1;                 /* CK */
466 static int hf_gsm_map_ms_ik = -1;                 /* IK */
467 static int hf_gsm_map_ms_autn = -1;               /* AUTN */
468 static int hf_gsm_map_ms_gsm_SecurityContextData = -1;  /* GSM_SecurityContextData */
469 static int hf_gsm_map_ms_umts_SecurityContextData = -1;  /* UMTS_SecurityContextData */
470 static int hf_gsm_map_ms_cksn = -1;               /* Cksn */
471 static int hf_gsm_map_ms_ksi = -1;                /* KSI */
472 static int hf_gsm_map_ms_failureCause = -1;       /* FailureCause */
473 static int hf_gsm_map_ms_re_attempt = -1;         /* BOOLEAN */
474 static int hf_gsm_map_ms_accessType = -1;         /* AccessType */
475 static int hf_gsm_map_ms_sgsn_Address = -1;       /* GSN_Address */
476 static int hf_gsm_map_ms_sgsn_Capability = -1;    /* SGSN_Capability */
477 static int hf_gsm_map_ms_ps_LCS_NotSupportedByUE = -1;  /* NULL */
478 static int hf_gsm_map_ms_gprsEnhancementsSupportIndicator = -1;  /* NULL */
479 static int hf_gsm_map_ms_smsCallBarringSupportIndicator = -1;  /* NULL */
480 static int hf_gsm_map_ms_an_APDU = -1;            /* AccessNetworkSignalInfo */
481 static int hf_gsm_map_ms_integrityProtectionInfo = -1;  /* IntegrityProtectionInformation */
482 static int hf_gsm_map_ms_encryptionInfo = -1;     /* EncryptionInformation */
483 static int hf_gsm_map_ms_keyStatus = -1;          /* KeyStatus */
484 static int hf_gsm_map_ms_allowedGSM_Algorithms = -1;  /* AllowedGSM_Algorithms */
485 static int hf_gsm_map_ms_allowedUMTS_Algorithms = -1;  /* AllowedUMTS_Algorithms */
486 static int hf_gsm_map_ms_radioResourceInformation = -1;  /* RadioResourceInformation */
487 static int hf_gsm_map_ms_radioResourceList = -1;  /* RadioResourceList */
488 static int hf_gsm_map_ms_bssmap_ServiceHandover = -1;  /* BSSMAP_ServiceHandover */
489 static int hf_gsm_map_ms_ranap_ServiceHandover = -1;  /* RANAP_ServiceHandover */
490 static int hf_gsm_map_ms_bssmap_ServiceHandoverList = -1;  /* BSSMAP_ServiceHandoverList */
491 static int hf_gsm_map_ms_currentlyUsedCodec = -1;  /* Codec */
492 static int hf_gsm_map_ms_iuSupportedCodecsList = -1;  /* SupportedCodecsList */
493 static int hf_gsm_map_ms_rab_ConfigurationIndicator = -1;  /* NULL */
494 static int hf_gsm_map_ms_iuSelectedCodec = -1;    /* Codec */
495 static int hf_gsm_map_ms_alternativeChannelType = -1;  /* RadioResourceInformation */
496 static int hf_gsm_map_ms_tracePropagationList = -1;  /* TracePropagationList */
497 static int hf_gsm_map_ms_integrityProtectionAlgorithms = -1;  /* PermittedIntegrityProtectionAlgorithms */
498 static int hf_gsm_map_ms_encryptionAlgorithms = -1;  /* PermittedEncryptionAlgorithms */
499 static int hf_gsm_map_ms_targetCellId = -1;       /* GlobalCellId */
500 static int hf_gsm_map_ms_ho_NumberNotRequired = -1;  /* NULL */
501 static int hf_gsm_map_ms_targetRNCId = -1;        /* RNCId */
502 static int hf_gsm_map_ms_multipleBearerRequested = -1;  /* NULL */
503 static int hf_gsm_map_ms_rab_Id = -1;             /* RAB_Id */
504 static int hf_gsm_map_ms_asciCallReference = -1;  /* ASCI_CallReference */
505 static int hf_gsm_map_ms_geran_classmark = -1;    /* GERAN_Classmark */
506 static int hf_gsm_map_ms_iuCurrentlyUsedCodec = -1;  /* Codec */
507 static int hf_gsm_map_ms_uesbi_Iu = -1;           /* UESBI_Iu */
508 static int hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item = -1;  /* BSSMAP_ServiceHandoverInfo */
509 static int hf_gsm_map_ms_RadioResourceList_item = -1;  /* RadioResource */
510 static int hf_gsm_map_ms_handoverNumber = -1;     /* ISDN_AddressString */
511 static int hf_gsm_map_ms_relocationNumberList = -1;  /* RelocationNumberList */
512 static int hf_gsm_map_ms_multicallBearerInfo = -1;  /* MulticallBearerInfo */
513 static int hf_gsm_map_ms_multipleBearerNotSupported = -1;  /* NULL */
514 static int hf_gsm_map_ms_selectedUMTS_Algorithms = -1;  /* SelectedUMTS_Algorithms */
515 static int hf_gsm_map_ms_chosenRadioResourceInformation = -1;  /* ChosenRadioResourceInformation */
516 static int hf_gsm_map_ms_iuAvailableCodecsList = -1;  /* CodecList */
517 static int hf_gsm_map_ms_integrityProtectionAlgorithm = -1;  /* ChosenIntegrityProtectionAlgorithm */
518 static int hf_gsm_map_ms_encryptionAlgorithm = -1;  /* ChosenEncryptionAlgorithm */
519 static int hf_gsm_map_ms_chosenChannelInfo = -1;  /* ChosenChannelInfo */
520 static int hf_gsm_map_ms_chosenSpeechVersion = -1;  /* ChosenSpeechVersion */
521 static int hf_gsm_map_ms_targetMSC_Number = -1;   /* ISDN_AddressString */
522 static int hf_gsm_map_ms_selectedRab_Id = -1;     /* RAB_Id */
523 static int hf_gsm_map_ms_selectedGSM_Algorithm = -1;  /* SelectedGSM_Algorithm */
524 static int hf_gsm_map_ms_iUSelectedCodec = -1;    /* Codec */
525 static int hf_gsm_map_ms_utranCodecList = -1;     /* CodecList */
526 static int hf_gsm_map_ms_geranCodecList = -1;     /* CodecList */
527 static int hf_gsm_map_ms_codec1 = -1;             /* Codec */
528 static int hf_gsm_map_ms_codec2 = -1;             /* Codec */
529 static int hf_gsm_map_ms_codec3 = -1;             /* Codec */
530 static int hf_gsm_map_ms_codec4 = -1;             /* Codec */
531 static int hf_gsm_map_ms_codec5 = -1;             /* Codec */
532 static int hf_gsm_map_ms_codec6 = -1;             /* Codec */
533 static int hf_gsm_map_ms_codec7 = -1;             /* Codec */
534 static int hf_gsm_map_ms_codec8 = -1;             /* Codec */
535 static int hf_gsm_map_ms_RelocationNumberList_item = -1;  /* RelocationNumber */
536 static int hf_gsm_map_ms_immediateResponsePreferred = -1;  /* NULL */
537 static int hf_gsm_map_ms_re_synchronisationInfo = -1;  /* Re_synchronisationInfo */
538 static int hf_gsm_map_ms_requestingNodeType = -1;  /* RequestingNodeType */
539 static int hf_gsm_map_ms_requestingPLMN_Id = -1;  /* PLMN_Id */
540 static int hf_gsm_map_ms_auts = -1;               /* AUTS */
541 static int hf_gsm_map_ms_imei = -1;               /* IMEI */
542 static int hf_gsm_map_ms_requestedEquipmentInfo = -1;  /* RequestedEquipmentInfo */
543 static int hf_gsm_map_ms_equipmentStatus = -1;    /* EquipmentStatus */
544 static int hf_gsm_map_ms_bmuef = -1;              /* UESBI_Iu */
545 static int hf_gsm_map_ms_uesbi_IuA = -1;          /* UESBI_IuA */
546 static int hf_gsm_map_ms_uesbi_IuB = -1;          /* UESBI_IuB */
547 static int hf_gsm_map_ms_gmlc_List = -1;          /* GMLC_List */
548 static int hf_gsm_map_ms_lcs_PrivacyExceptionList = -1;  /* LCS_PrivacyExceptionList */
549 static int hf_gsm_map_ms_molr_List = -1;          /* MOLR_List */
550 static int hf_gsm_map_ms_add_lcs_PrivacyExceptionList = -1;  /* LCS_PrivacyExceptionList */
551 static int hf_gsm_map_ms_GMLC_List_item = -1;     /* ISDN_AddressString */
552 static int hf_gsm_map_ms_GPRSDataList_item = -1;  /* PDP_Context */
553 static int hf_gsm_map_ms_pdp_ContextId = -1;      /* ContextId */
554 static int hf_gsm_map_ms_pdp_Type = -1;           /* PDP_Type */
555 static int hf_gsm_map_ms_pdp_Address = -1;        /* PDP_Address */
556 static int hf_gsm_map_ms_qos_Subscribed = -1;     /* QoS_Subscribed */
557 static int hf_gsm_map_ms_vplmnAddressAllowed = -1;  /* NULL */
558 static int hf_gsm_map_ms_apn = -1;                /* APN */
559 static int hf_gsm_map_ms_ext_QoS_Subscribed = -1;  /* Ext_QoS_Subscribed */
560 static int hf_gsm_map_ms_pdp_ChargingCharacteristics = -1;  /* ChargingCharacteristics */
561 static int hf_gsm_map_ms_ext2_QoS_Subscribed = -1;  /* Ext2_QoS_Subscribed */
562 static int hf_gsm_map_ms_ext3_QoS_Subscribed = -1;  /* Ext3_QoS_Subscribed */
563 static int hf_gsm_map_ms_completeDataListIncluded = -1;  /* NULL */
564 static int hf_gsm_map_ms_gprsDataList = -1;       /* GPRSDataList */
565 static int hf_gsm_map_ms_gprs_CSI = -1;           /* GPRS_CSI */
566 static int hf_gsm_map_ms_mo_sms_CSI = -1;         /* SMS_CSI */
567 static int hf_gsm_map_ms_mt_sms_CSI = -1;         /* SMS_CSI */
568 static int hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList = -1;  /* MT_smsCAMELTDP_CriteriaList */
569 static int hf_gsm_map_ms_mg_csi = -1;             /* MG_CSI */
570 static int hf_gsm_map_ms_gprs_CamelTDPDataList = -1;  /* GPRS_CamelTDPDataList */
571 static int hf_gsm_map_ms_camelCapabilityHandling = -1;  /* CamelCapabilityHandling */
572 static int hf_gsm_map_ms_notificationToCSE = -1;  /* NULL */
573 static int hf_gsm_map_ms_csi_Active = -1;         /* NULL */
574 static int hf_gsm_map_ms_GPRS_CamelTDPDataList_item = -1;  /* GPRS_CamelTDPData */
575 static int hf_gsm_map_ms_gprs_TriggerDetectionPoint = -1;  /* GPRS_TriggerDetectionPoint */
576 static int hf_gsm_map_ms_serviceKey = -1;         /* ServiceKey */
577 static int hf_gsm_map_ms_gsmSCF_Address = -1;     /* ISDN_AddressString */
578 static int hf_gsm_map_ms_defaultSessionHandling = -1;  /* DefaultGPRS_Handling */
579 static int hf_gsm_map_ms_LSADataList_item = -1;   /* LSAData */
580 static int hf_gsm_map_ms_lsaIdentity = -1;        /* LSAIdentity */
581 static int hf_gsm_map_ms_lsaAttributes = -1;      /* LSAAttributes */
582 static int hf_gsm_map_ms_lsaActiveModeIndicator = -1;  /* NULL */
583 static int hf_gsm_map_ms_lsaOnlyAccessIndicator = -1;  /* LSAOnlyAccessIndicator */
584 static int hf_gsm_map_ms_lsaDataList = -1;        /* LSADataList */
585 static int hf_gsm_map_ms_msisdn = -1;             /* ISDN_AddressString */
586 static int hf_gsm_map_ms_category = -1;           /* Category */
587 static int hf_gsm_map_ms_subscriberStatus = -1;   /* SubscriberStatus */
588 static int hf_gsm_map_ms_bearerServiceList = -1;  /* BearerServiceList */
589 static int hf_gsm_map_ms_teleserviceList = -1;    /* TeleserviceList */
590 static int hf_gsm_map_ms_provisionedSS = -1;      /* Ext_SS_InfoList */
591 static int hf_gsm_map_ms_odb_Data = -1;           /* ODB_Data */
592 static int hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature = -1;  /* NULL */
593 static int hf_gsm_map_ms_regionalSubscriptionData = -1;  /* ZoneCodeList */
594 static int hf_gsm_map_ms_vbsSubscriptionData = -1;  /* VBSDataList */
595 static int hf_gsm_map_ms_vgcsSubscriptionData = -1;  /* VGCSDataList */
596 static int hf_gsm_map_ms_vlrCamelSubscriptionInfo = -1;  /* VlrCamelSubscriptionInfo */
597 static int hf_gsm_map_ms_BearerServiceList_item = -1;  /* Ext_BearerServiceCode */
598 static int hf_gsm_map_ms_TeleserviceList_item = -1;  /* Ext_TeleserviceCode */
599 static int hf_gsm_map_ms_odb_GeneralData = -1;    /* ODB_GeneralData */
600 static int hf_gsm_map_ms_odb_HPLMN_Data = -1;     /* ODB_HPLMN_Data */
601 static int hf_gsm_map_ms_Ext_SS_InfoList_item = -1;  /* Ext_SS_Info */
602 static int hf_gsm_map_ms_forwardingInfo = -1;     /* Ext_ForwInfo */
603 static int hf_gsm_map_ms_callBarringInfo = -1;    /* Ext_CallBarInfo */
604 static int hf_gsm_map_ms_cug_Info = -1;           /* CUG_Info */
605 static int hf_gsm_map_ms_ss_Data = -1;            /* Ext_SS_Data */
606 static int hf_gsm_map_ms_emlpp_Info = -1;         /* EMLPP_Info */
607 static int hf_gsm_map_ms_ss_Code = -1;            /* SS_Code */
608 static int hf_gsm_map_ms_forwardingFeatureList = -1;  /* Ext_ForwFeatureList */
609 static int hf_gsm_map_ms_Ext_ForwFeatureList_item = -1;  /* Ext_ForwFeature */
610 static int hf_gsm_map_ms_basicService = -1;       /* Ext_BasicServiceCode */
611 static int hf_gsm_map_ms_ss_Status = -1;          /* Ext_SS_Status */
612 static int hf_gsm_map_ms_forwardedToNumber = -1;  /* ISDN_AddressString */
613 static int hf_gsm_map_ms_forwardedToSubaddress = -1;  /* ISDN_SubaddressString */
614 static int hf_gsm_map_ms_forwardingOptions = -1;  /* T_forwardingOptions */
615 static int hf_gsm_map_ms_noReplyConditionTime = -1;  /* Ext_NoRepCondTime */
616 static int hf_gsm_map_ms_longForwardedToNumber = -1;  /* FTN_AddressString */
617 static int hf_gsm_map_ms_callBarringFeatureList = -1;  /* Ext_CallBarFeatureList */
618 static int hf_gsm_map_ms_Ext_CallBarFeatureList_item = -1;  /* Ext_CallBarringFeature */
619 static int hf_gsm_map_ms_cug_SubscriptionList = -1;  /* CUG_SubscriptionList */
620 static int hf_gsm_map_ms_cug_FeatureList = -1;    /* CUG_FeatureList */
621 static int hf_gsm_map_ms_CUG_SubscriptionList_item = -1;  /* CUG_Subscription */
622 static int hf_gsm_map_ms_cug_Index = -1;          /* CUG_Index */
623 static int hf_gsm_map_ms_cug_Interlock = -1;      /* CUG_Interlock */
624 static int hf_gsm_map_ms_intraCUG_Options = -1;   /* IntraCUG_Options */
625 static int hf_gsm_map_ms_basicServiceGroupList = -1;  /* Ext_BasicServiceGroupList */
626 static int hf_gsm_map_ms_CUG_FeatureList_item = -1;  /* CUG_Feature */
627 static int hf_gsm_map_ms_Ext_BasicServiceGroupList_item = -1;  /* Ext_BasicServiceCode */
628 static int hf_gsm_map_ms_preferentialCUG_Indicator = -1;  /* CUG_Index */
629 static int hf_gsm_map_ms_interCUG_Restrictions = -1;  /* InterCUG_Restrictions */
630 static int hf_gsm_map_ms_ss_SubscriptionOption = -1;  /* SS_SubscriptionOption */
631 static int hf_gsm_map_ms_LCS_PrivacyExceptionList_item = -1;  /* LCS_PrivacyClass */
632 static int hf_gsm_map_ms_notificationToMSUser = -1;  /* NotificationToMSUser */
633 static int hf_gsm_map_ms_externalClientList = -1;  /* ExternalClientList */
634 static int hf_gsm_map_ms_plmnClientList = -1;     /* PLMNClientList */
635 static int hf_gsm_map_ms_ext_externalClientList = -1;  /* Ext_ExternalClientList */
636 static int hf_gsm_map_ms_serviceTypeList = -1;    /* ServiceTypeList */
637 static int hf_gsm_map_ms_ExternalClientList_item = -1;  /* ExternalClient */
638 static int hf_gsm_map_ms_PLMNClientList_item = -1;  /* LCSClientInternalID */
639 static int hf_gsm_map_ms_Ext_ExternalClientList_item = -1;  /* ExternalClient */
640 static int hf_gsm_map_ms_clientIdentity = -1;     /* LCSClientExternalID */
641 static int hf_gsm_map_ms_gmlc_Restriction = -1;   /* GMLC_Restriction */
642 static int hf_gsm_map_ms_ServiceTypeList_item = -1;  /* ServiceType */
643 static int hf_gsm_map_ms_serviceTypeIdentity = -1;  /* LCSServiceTypeID */
644 static int hf_gsm_map_ms_MOLR_List_item = -1;     /* MOLR_Class */
645 static int hf_gsm_map_ms_ZoneCodeList_item = -1;  /* ZoneCode */
646 static int hf_gsm_map_ms_ss_List = -1;            /* SS_List */
647 static int hf_gsm_map_ms_regionalSubscriptionResponse = -1;  /* RegionalSubscriptionResponse */
648 static int hf_gsm_map_ms_basicServiceList = -1;   /* BasicServiceList */
649 static int hf_gsm_map_ms_regionalSubscriptionIdentifier = -1;  /* ZoneCode */
650 static int hf_gsm_map_ms_vbsGroupIndication = -1;  /* NULL */
651 static int hf_gsm_map_ms_vgcsGroupIndication = -1;  /* NULL */
652 static int hf_gsm_map_ms_camelSubscriptionInfoWithdraw = -1;  /* NULL */
653 static int hf_gsm_map_ms_gprsSubscriptionDataWithdraw = -1;  /* GPRSSubscriptionDataWithdraw */
654 static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature = -1;  /* NULL */
655 static int hf_gsm_map_ms_lsaInformationWithdraw = -1;  /* LSAInformationWithdraw */
656 static int hf_gsm_map_ms_gmlc_ListWithdraw = -1;  /* NULL */
657 static int hf_gsm_map_ms_istInformationWithdraw = -1;  /* NULL */
658 static int hf_gsm_map_ms_specificCSI_Withdraw = -1;  /* SpecificCSI_Withdraw */
659 static int hf_gsm_map_ms_chargingCharacteristicsWithdraw = -1;  /* NULL */
660 static int hf_gsm_map_ms_allGPRSData = -1;        /* NULL */
661 static int hf_gsm_map_ms_contextIdList = -1;      /* ContextIdList */
662 static int hf_gsm_map_ms_ContextIdList_item = -1;  /* ContextId */
663 static int hf_gsm_map_ms_allLSAData = -1;         /* NULL */
664 static int hf_gsm_map_ms_lsaIdentityList = -1;    /* LSAIdentityList */
665 static int hf_gsm_map_ms_LSAIdentityList_item = -1;  /* LSAIdentity */
666 static int hf_gsm_map_ms_BasicServiceList_item = -1;  /* Ext_BasicServiceCode */
667 static int hf_gsm_map_ms_o_CSI = -1;              /* O_CSI */
668 static int hf_gsm_map_ms_ss_CSI = -1;             /* SS_CSI */
669 static int hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
670 static int hf_gsm_map_ms_tif_CSI = -1;            /* NULL */
671 static int hf_gsm_map_ms_m_CSI = -1;              /* M_CSI */
672 static int hf_gsm_map_ms_vt_CSI = -1;             /* T_CSI */
673 static int hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
674 static int hf_gsm_map_ms_d_CSI = -1;              /* D_CSI */
675 static int hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item = -1;  /* MT_smsCAMELTDP_Criteria */
676 static int hf_gsm_map_ms_sms_TriggerDetectionPoint = -1;  /* SMS_TriggerDetectionPoint */
677 static int hf_gsm_map_ms_tpdu_TypeCriterion = -1;  /* TPDU_TypeCriterion */
678 static int hf_gsm_map_ms_TPDU_TypeCriterion_item = -1;  /* MT_SMS_TPDU_Type */
679 static int hf_gsm_map_ms_dp_AnalysedInfoCriteriaList = -1;  /* DP_AnalysedInfoCriteriaList */
680 static int hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item = -1;  /* DP_AnalysedInfoCriterium */
681 static int hf_gsm_map_ms_dialledNumber = -1;      /* ISDN_AddressString */
682 static int hf_gsm_map_ms_defaultCallHandling = -1;  /* DefaultCallHandling */
683 static int hf_gsm_map_ms_ss_CamelData = -1;       /* SS_CamelData */
684 static int hf_gsm_map_ms_ss_EventList = -1;       /* SS_EventList */
685 static int hf_gsm_map_ms_SS_EventList_item = -1;  /* SS_Code */
686 static int hf_gsm_map_ms_o_BcsmCamelTDPDataList = -1;  /* O_BcsmCamelTDPDataList */
687 static int hf_gsm_map_ms_csiActive = -1;          /* NULL */
688 static int hf_gsm_map_ms_O_BcsmCamelTDPDataList_item = -1;  /* O_BcsmCamelTDPData */
689 static int hf_gsm_map_ms_o_BcsmTriggerDetectionPoint = -1;  /* O_BcsmTriggerDetectionPoint */
690 static int hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item = -1;  /* O_BcsmCamelTDP_Criteria */
691 static int hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item = -1;  /* T_BCSM_CAMEL_TDP_Criteria */
692 static int hf_gsm_map_ms_destinationNumberCriteria = -1;  /* DestinationNumberCriteria */
693 static int hf_gsm_map_ms_basicServiceCriteria = -1;  /* BasicServiceCriteria */
694 static int hf_gsm_map_ms_callTypeCriteria = -1;   /* CallTypeCriteria */
695 static int hf_gsm_map_ms_o_CauseValueCriteria = -1;  /* O_CauseValueCriteria */
696 static int hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint = -1;  /* T_BcsmTriggerDetectionPoint */
697 static int hf_gsm_map_ms_t_CauseValueCriteria = -1;  /* T_CauseValueCriteria */
698 static int hf_gsm_map_ms_matchType = -1;          /* MatchType */
699 static int hf_gsm_map_ms_destinationNumberList = -1;  /* DestinationNumberList */
700 static int hf_gsm_map_ms_destinationNumberLengthList = -1;  /* DestinationNumberLengthList */
701 static int hf_gsm_map_ms_DestinationNumberList_item = -1;  /* ISDN_AddressString */
702 static int hf_gsm_map_ms_DestinationNumberLengthList_item = -1;  /* INTEGER_1_maxNumOfISDN_AddressDigits */
703 static int hf_gsm_map_ms_BasicServiceCriteria_item = -1;  /* Ext_BasicServiceCode */
704 static int hf_gsm_map_ms_O_CauseValueCriteria_item = -1;  /* CauseValue */
705 static int hf_gsm_map_ms_T_CauseValueCriteria_item = -1;  /* CauseValue */
706 static int hf_gsm_map_ms_sms_CAMEL_TDP_DataList = -1;  /* SMS_CAMEL_TDP_DataList */
707 static int hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item = -1;  /* SMS_CAMEL_TDP_Data */
708 static int hf_gsm_map_ms_defaultSMS_Handling = -1;  /* DefaultSMS_Handling */
709 static int hf_gsm_map_ms_mobilityTriggers = -1;   /* MobilityTriggers */
710 static int hf_gsm_map_ms_MobilityTriggers_item = -1;  /* MM_Code */
711 static int hf_gsm_map_ms_t_BcsmCamelTDPDataList = -1;  /* T_BcsmCamelTDPDataList */
712 static int hf_gsm_map_ms_T_BcsmCamelTDPDataList_item = -1;  /* T_BcsmCamelTDPData */
713 static int hf_gsm_map_ms_t_BcsmTriggerDetectionPoint = -1;  /* T_BcsmTriggerDetectionPoint */
714 static int hf_gsm_map_ms_ggsn_Address = -1;       /* GSN_Address */
715 static int hf_gsm_map_ms_ggsn_Number = -1;        /* ISDN_AddressString */
716 static int hf_gsm_map_ms_mobileNotReachableReason = -1;  /* AbsentSubscriberDiagnosticSM */
717 static int hf_gsm_map_ms_hlr_List = -1;           /* HLR_List */
718 static int hf_gsm_map_ms_msNotReachable = -1;     /* NULL */
719 static int hf_gsm_map_ms_VBSDataList_item = -1;   /* VoiceBroadcastData */
720 static int hf_gsm_map_ms_VGCSDataList_item = -1;  /* VoiceGroupCallData */
721 static int hf_gsm_map_ms_groupId = -1;            /* GroupId */
722 static int hf_gsm_map_ms_additionalSubscriptions = -1;  /* AdditionalSubscriptions */
723 static int hf_gsm_map_ms_additionalInfo = -1;     /* AdditionalInfo */
724 static int hf_gsm_map_ms_longGroupId = -1;        /* Long_GroupId */
725 static int hf_gsm_map_ms_groupid = -1;            /* GroupId */
726 static int hf_gsm_map_ms_broadcastInitEntitlement = -1;  /* NULL */
727 static int hf_gsm_map_ms_requestedInfo = -1;      /* RequestedInfo */
728 static int hf_gsm_map_ms_subscriberInfo = -1;     /* SubscriberInfo */
729 static int hf_gsm_map_ms_locationInformation = -1;  /* LocationInformation */
730 static int hf_gsm_map_ms_subscriberState = -1;    /* SubscriberState */
731 static int hf_gsm_map_ms_locationInformationGPRS = -1;  /* LocationInformationGPRS */
732 static int hf_gsm_map_ms_ps_SubscriberState = -1;  /* PS_SubscriberState */
733 static int hf_gsm_map_ms_ms_Classmark2 = -1;      /* MS_Classmark2 */
734 static int hf_gsm_map_ms_gprs_MS_Class = -1;      /* GPRSMSClass */
735 static int hf_gsm_map_ms_mnpInfoRes = -1;         /* MNPInfoRes */
736 static int hf_gsm_map_ms_routeingNumber = -1;     /* RouteingNumber */
737 static int hf_gsm_map_ms_numberPortabilityStatus = -1;  /* NumberPortabilityStatus */
738 static int hf_gsm_map_ms_mSNetworkCapability = -1;  /* MSNetworkCapability */
739 static int hf_gsm_map_ms_mSRadioAccessCapability = -1;  /* MSRadioAccessCapability */
740 static int hf_gsm_map_ms_locationInformation_01 = -1;  /* NULL */
741 static int hf_gsm_map_ms_subscriberState_01 = -1;  /* NULL */
742 static int hf_gsm_map_ms_currentLocation = -1;    /* NULL */
743 static int hf_gsm_map_ms_requestedDomain = -1;    /* DomainType */
744 static int hf_gsm_map_ms_imei_01 = -1;            /* NULL */
745 static int hf_gsm_map_ms_ms_classmark = -1;       /* NULL */
746 static int hf_gsm_map_ms_mnpRequestedInfo = -1;   /* NULL */
747 static int hf_gsm_map_ms_ageOfLocationInformation = -1;  /* AgeOfLocationInformation */
748 static int hf_gsm_map_ms_geographicalInformation = -1;  /* GeographicalInformation */
749 static int hf_gsm_map_ms_vlr_number = -1;         /* ISDN_AddressString */
750 static int hf_gsm_map_ms_locationNumber = -1;     /* LocationNumber */
751 static int hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI = -1;  /* CellGlobalIdOrServiceAreaIdOrLAI */
752 static int hf_gsm_map_ms_selectedLSA_Id = -1;     /* LSAIdentity */
753 static int hf_gsm_map_ms_geodeticInformation = -1;  /* GeodeticInformation */
754 static int hf_gsm_map_ms_currentLocationRetrieved = -1;  /* NULL */
755 static int hf_gsm_map_ms_sai_Present = -1;        /* NULL */
756 static int hf_gsm_map_ms_routeingAreaIdentity = -1;  /* RAIdentity */
757 static int hf_gsm_map_ms_selectedLSAIdentity = -1;  /* LSAIdentity */
758 static int hf_gsm_map_ms_assumedIdle = -1;        /* NULL */
759 static int hf_gsm_map_ms_camelBusy = -1;          /* NULL */
760 static int hf_gsm_map_ms_netDetNotReachable = -1;  /* NotReachableReason */
761 static int hf_gsm_map_ms_notProvidedFromVLR = -1;  /* NULL */
762 static int hf_gsm_map_ms_notProvidedFromSGSN = -1;  /* NULL */
763 static int hf_gsm_map_ms_ps_Detached = -1;        /* NULL */
764 static int hf_gsm_map_ms_ps_AttachedNotReachableForPaging = -1;  /* NULL */
765 static int hf_gsm_map_ms_ps_AttachedReachableForPaging = -1;  /* NULL */
766 static int hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging = -1;  /* PDP_ContextInfoList */
767 static int hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging = -1;  /* PDP_ContextInfoList */
768 static int hf_gsm_map_ms_PDP_ContextInfoList_item = -1;  /* PDP_ContextInfo */
769 static int hf_gsm_map_ms_pdp_ContextIdentifier = -1;  /* ContextId */
770 static int hf_gsm_map_ms_pdp_ContextActive = -1;  /* NULL */
771 static int hf_gsm_map_ms_apn_Subscribed = -1;     /* APN */
772 static int hf_gsm_map_ms_apn_InUse = -1;          /* APN */
773 static int hf_gsm_map_ms_nsapi = -1;              /* NSAPI */
774 static int hf_gsm_map_ms_transactionId = -1;      /* TransactionId */
775 static int hf_gsm_map_ms_teid_ForGnAndGp = -1;    /* TEID */
776 static int hf_gsm_map_ms_teid_ForIu = -1;         /* TEID */
777 static int hf_gsm_map_ms_qos_Subscribed_01 = -1;  /* Ext_QoS_Subscribed */
778 static int hf_gsm_map_ms_qos_Requested = -1;      /* Ext_QoS_Subscribed */
779 static int hf_gsm_map_ms_qos_Negotiated = -1;     /* Ext_QoS_Subscribed */
780 static int hf_gsm_map_ms_chargingId = -1;         /* GPRSChargingID */
781 static int hf_gsm_map_ms_chargingCharacteristics = -1;  /* ChargingCharacteristics */
782 static int hf_gsm_map_ms_rnc_Address = -1;        /* GSN_Address */
783 static int hf_gsm_map_ms_qos2_Subscribed = -1;    /* Ext2_QoS_Subscribed */
784 static int hf_gsm_map_ms_qos2_Requested = -1;     /* Ext2_QoS_Subscribed */
785 static int hf_gsm_map_ms_qos2_Negotiated = -1;    /* Ext2_QoS_Subscribed */
786 static int hf_gsm_map_ms_qos3_Subscribed = -1;    /* Ext3_QoS_Subscribed */
787 static int hf_gsm_map_ms_qos3_Requested = -1;     /* Ext3_QoS_Subscribed */
788 static int hf_gsm_map_ms_qos3_Negotiated = -1;    /* Ext3_QoS_Subscribed */
789 static int hf_gsm_map_ms_subscriberIdentity = -1;  /* SubscriberIdentity */
790 static int hf_gsm_map_ms_requestedSubscriptionInfo = -1;  /* RequestedSubscriptionInfo */
791 static int hf_gsm_map_ms_callForwardingData = -1;  /* CallForwardingData */
792 static int hf_gsm_map_ms_callBarringData = -1;    /* CallBarringData */
793 static int hf_gsm_map_ms_odb_Info = -1;           /* ODB_Info */
794 static int hf_gsm_map_ms_camel_SubscriptionInfo = -1;  /* CAMEL_SubscriptionInfo */
795 static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases = -1;  /* SupportedCamelPhases */
796 static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases = -1;  /* SupportedCamelPhases */
797 static int hf_gsm_map_ms_offeredCamel4CSIsInVLR = -1;  /* OfferedCamel4CSIs */
798 static int hf_gsm_map_ms_offeredCamel4CSIsInSGSN = -1;  /* OfferedCamel4CSIs */
799 static int hf_gsm_map_ms_msisdn_BS_List = -1;     /* MSISDN_BS_List */
800 static int hf_gsm_map_ms_requestedSS_Info = -1;   /* SS_ForBS_Code */
801 static int hf_gsm_map_ms_odb = -1;                /* NULL */
802 static int hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo = -1;  /* RequestedCAMEL_SubscriptionInfo */
803 static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01 = -1;  /* NULL */
804 static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01 = -1;  /* NULL */
805 static int hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo = -1;  /* AdditionalRequestedCAMEL_SubscriptionInfo */
806 static int hf_gsm_map_ms_msisdn_BS_List_01 = -1;  /* NULL */
807 static int hf_gsm_map_ms_MSISDN_BS_List_item = -1;  /* MSISDN_BS */
808 static int hf_gsm_map_ms_password = -1;           /* Password */
809 static int hf_gsm_map_ms_wrongPasswordAttemptsCounter = -1;  /* WrongPasswordAttemptsCounter */
810 static int hf_gsm_map_ms_t_CSI = -1;              /* T_CSI */
811 static int hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
812 static int hf_gsm_map_ms_tif_CSI_NotificationToCSE = -1;  /* NULL */
813 static int hf_gsm_map_ms_specificCSIDeletedList = -1;  /* SpecificCSI_Withdraw */
814 static int hf_gsm_map_ms_o_IM_CSI = -1;           /* O_CSI */
815 static int hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
816 static int hf_gsm_map_ms_d_IM_CSI = -1;           /* D_CSI */
817 static int hf_gsm_map_ms_vt_IM_CSI = -1;          /* T_CSI */
818 static int hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
819 static int hf_gsm_map_ms_modificationRequestFor_CF_Info = -1;  /* ModificationRequestFor_CF_Info */
820 static int hf_gsm_map_ms_modificationRequestFor_CB_Info = -1;  /* ModificationRequestFor_CB_Info */
821 static int hf_gsm_map_ms_modificationRequestFor_CSI = -1;  /* ModificationRequestFor_CSI */
822 static int hf_gsm_map_ms_modificationRequestFor_ODB_data = -1;  /* ModificationRequestFor_ODB_data */
823 static int hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data = -1;  /* ModificationRequestFor_IP_SM_GW_Data */
824 static int hf_gsm_map_ms_ss_InfoFor_CSE = -1;     /* Ext_SS_InfoFor_CSE */
825 static int hf_gsm_map_ms_forwardedToNumber_01 = -1;  /* AddressString */
826 static int hf_gsm_map_ms_modifyNotificationToCSE = -1;  /* ModificationInstruction */
827 static int hf_gsm_map_ms_odb_data = -1;           /* ODB_Data */
828 static int hf_gsm_map_ms_requestedCamel_SubscriptionInfo = -1;  /* RequestedCAMEL_SubscriptionInfo */
829 static int hf_gsm_map_ms_modifyCSI_State = -1;    /* ModificationInstruction */
830 static int hf_gsm_map_ms_modifyRegistrationStatus = -1;  /* ModificationInstruction */
831 static int hf_gsm_map_ms_forwardingInfoFor_CSE = -1;  /* Ext_ForwardingInfoFor_CSE */
832 static int hf_gsm_map_ms_callBarringInfoFor_CSE = -1;  /* Ext_CallBarringInfoFor_CSE */
833 static int hf_gsm_map_ms_allInformationSent = -1;  /* NULL */
834 static int hf_gsm_map_ms_eventMet = -1;           /* MM_Code */
835 static int hf_gsm_map_ms_supportedCAMELPhases = -1;  /* SupportedCamelPhases */
836 static int hf_gsm_map_ms_offeredCamel4Functionalities = -1;  /* OfferedCamel4Functionalities */
837 static int hf_gsm_map_ms_naea_PreferredCI = -1;   /* NAEA_PreferredCI */
838 static int hf_gsm_map_ms_gprsSubscriptionData = -1;  /* GPRSSubscriptionData */
839 static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature = -1;  /* NULL */
840 static int hf_gsm_map_ms_networkAccessMode = -1;  /* NetworkAccessMode */
841 static int hf_gsm_map_ms_lsaInformation = -1;     /* LSAInformation */
842 static int hf_gsm_map_ms_lmu_Indicator = -1;      /* NULL */
843 static int hf_gsm_map_ms_lcsInformation = -1;     /* LCSInformation */
844 static int hf_gsm_map_ms_istAlertTimer = -1;      /* IST_AlertTimerValue */
845 static int hf_gsm_map_ms_superChargerSupportedInHLR = -1;  /* AgeIndicator */
846 static int hf_gsm_map_ms_mc_SS_Info = -1;         /* MC_SS_Info */
847 static int hf_gsm_map_ms_cs_AllocationRetentionPriority = -1;  /* CS_AllocationRetentionPriority */
848 static int hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo = -1;  /* SGSN_CAMEL_SubscriptionInfo */
849 static int hf_gsm_map_ms_accessRestrictionData = -1;  /* AccessRestrictionData */
850 /* named bits */
851 static int hf_gsm_map_ms_SupportedRAT_Types_utran = -1;
852 static int hf_gsm_map_ms_SupportedRAT_Types_geran = -1;
853 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1 = -1;
854 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2 = -1;
855 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3 = -1;
856 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4 = -1;
857 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5 = -1;
858 static int hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus = -1;
859 static int hf_gsm_map_ms_RequestedEquipmentInfo_bmuef = -1;
860 static int hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed = -1;
861 static int hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed = -1;
862 static int hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred = -1;
863 static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred = -1;
864 static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred = -1;
865 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred = -1;
866 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred = -1;
867 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred = -1;
868 static int hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred = -1;
869 static int hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred = -1;
870 static int hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred = -1;
871 static int hf_gsm_map_ms_ODB_GeneralData_allECT_Barred = -1;
872 static int hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred = -1;
873 static int hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred = -1;
874 static int hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred = -1;
875 static int hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred = -1;
876 static int hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred = -1;
877 static int hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred = -1;
878 static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred = -1;
879 static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred = -1;
880 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred = -1;
881 static int hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred = -1;
882 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred = -1;
883 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred = -1;
884 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred = -1;
885 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred = -1;
886 static int hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred = -1;
887 static int hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred = -1;
888 static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred = -1;
889 static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred = -1;
890 static int hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred = -1;
891 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1 = -1;
892 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2 = -1;
893 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3 = -1;
894 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4 = -1;
895 static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi = -1;
896 static int hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi = -1;
897 static int hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi = -1;
898 static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi = -1;
899 static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi = -1;
900 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi = -1;
901 static int hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi = -1;
902 static int hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi = -1;
903 static int hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi = -1;
904 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi = -1;
905 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi = -1;
906 static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI = -1;
907 static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI = -1;
908 static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI = -1;
909 static int hf_gsm_map_ms_SupportedCamelPhases_phase1 = -1;
910 static int hf_gsm_map_ms_SupportedCamelPhases_phase2 = -1;
911 static int hf_gsm_map_ms_SupportedCamelPhases_phase3 = -1;
912 static int hf_gsm_map_ms_SupportedCamelPhases_phase4 = -1;
913 static int hf_gsm_map_ms_OfferedCamel4CSIs_o_csi = -1;
914 static int hf_gsm_map_ms_OfferedCamel4CSIs_d_csi = -1;
915 static int hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi = -1;
916 static int hf_gsm_map_ms_OfferedCamel4CSIs_t_csi = -1;
917 static int hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi = -1;
918 static int hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi = -1;
919 static int hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements = -1;
920 static int hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt = -1;
921 static int hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg = -1;
922 static int hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg = -1;
923 static int hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg = -1;
924 static int hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased = -1;
925 static int hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument = -1;
926 static int hf_gsm_map_ms_OfferedCamel4Functionalities_playTone = -1;
927 static int hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall = -1;
928 static int hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator = -1;
929 static int hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP = -1;
930 static int hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting = -1;
931 static int hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP = -1;
932 static int hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions = -1;
933 static int hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements = -1;
934 static int hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements = -1;
935 static int hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices = -1;
936 static int hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices = -1;
937 static int hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP = -1;
938 static int hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP = -1;
939 static int hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation = -1;
940 static int hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest = -1;
941 static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest = -1;
942 static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset = -1;
943
944 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
945
946 static int hf_gsm_map_ch_cug_Interlock = -1;      /* CUG_Interlock */
947 static int hf_gsm_map_ch_cug_OutgoingAccess = -1;  /* NULL */
948 static int hf_gsm_map_ch_extensionContainer = -1;  /* ExtensionContainer */
949 static int hf_gsm_map_ch_msisdn = -1;             /* ISDN_AddressString */
950 static int hf_gsm_map_ch_cug_CheckInfo = -1;      /* CUG_CheckInfo */
951 static int hf_gsm_map_ch_numberOfForwarding = -1;  /* NumberOfForwarding */
952 static int hf_gsm_map_ch_interrogationType = -1;  /* InterrogationType */
953 static int hf_gsm_map_ch_or_Interrogation = -1;   /* NULL */
954 static int hf_gsm_map_ch_or_Capability = -1;      /* OR_Phase */
955 static int hf_gsm_map_ch_gmsc_OrGsmSCF_Address = -1;  /* ISDN_AddressString */
956 static int hf_gsm_map_ch_callReferenceNumber = -1;  /* CallReferenceNumber */
957 static int hf_gsm_map_ch_forwardingReason = -1;   /* ForwardingReason */
958 static int hf_gsm_map_ch_basicServiceGroup = -1;  /* Ext_BasicServiceCode */
959 static int hf_gsm_map_ch_networkSignalInfo = -1;  /* ExternalSignalInfo */
960 static int hf_gsm_map_ch_camelInfo = -1;          /* CamelInfo */
961 static int hf_gsm_map_ch_suppressionOfAnnouncement = -1;  /* SuppressionOfAnnouncement */
962 static int hf_gsm_map_ch_alertingPattern = -1;    /* AlertingPattern */
963 static int hf_gsm_map_ch_ccbs_Call = -1;          /* NULL */
964 static int hf_gsm_map_ch_supportedCCBS_Phase = -1;  /* SupportedCCBS_Phase */
965 static int hf_gsm_map_ch_additionalSignalInfo = -1;  /* Ext_ExternalSignalInfo */
966 static int hf_gsm_map_ch_istSupportIndicator = -1;  /* IST_SupportIndicator */
967 static int hf_gsm_map_ch_pre_pagingSupported = -1;  /* NULL */
968 static int hf_gsm_map_ch_callDiversionTreatmentIndicator = -1;  /* CallDiversionTreatmentIndicator */
969 static int hf_gsm_map_ch_longFTN_Supported = -1;  /* NULL */
970 static int hf_gsm_map_ch_suppress_VT_CSI = -1;    /* NULL */
971 static int hf_gsm_map_ch_suppressIncomingCallBarring = -1;  /* NULL */
972 static int hf_gsm_map_ch_gsmSCF_InitiatedCall = -1;  /* NULL */
973 static int hf_gsm_map_ch_basicServiceGroup2 = -1;  /* Ext_BasicServiceCode */
974 static int hf_gsm_map_ch_networkSignalInfo2 = -1;  /* ExternalSignalInfo */
975 static int hf_gsm_map_ch_suppressMTSS = -1;       /* SuppressMTSS */
976 static int hf_gsm_map_ch_mtRoamingRetrySupported = -1;  /* NULL */
977 static int hf_gsm_map_ch_imsi = -1;               /* IMSI */
978 static int hf_gsm_map_ch_extendedRoutingInfo = -1;  /* ExtendedRoutingInfo */
979 static int hf_gsm_map_ch_cugSubscriptionFlag = -1;  /* NULL */
980 static int hf_gsm_map_ch_subscriberInfo = -1;     /* SubscriberInfo */
981 static int hf_gsm_map_ch_ss_List = -1;            /* SS_List */
982 static int hf_gsm_map_ch_basicService = -1;       /* Ext_BasicServiceCode */
983 static int hf_gsm_map_ch_forwardingInterrogationRequired = -1;  /* NULL */
984 static int hf_gsm_map_ch_vmsc_Address = -1;       /* ISDN_AddressString */
985 static int hf_gsm_map_ch_naea_PreferredCI = -1;   /* NAEA_PreferredCI */
986 static int hf_gsm_map_ch_ccbs_Indicators = -1;    /* CCBS_Indicators */
987 static int hf_gsm_map_ch_numberPortabilityStatus = -1;  /* NumberPortabilityStatus */
988 static int hf_gsm_map_ch_istAlertTimer = -1;      /* IST_AlertTimerValue */
989 static int hf_gsm_map_ch_supportedCamelPhasesInVMSC = -1;  /* SupportedCamelPhases */
990 static int hf_gsm_map_ch_offeredCamel4CSIsInVMSC = -1;  /* OfferedCamel4CSIs */
991 static int hf_gsm_map_ch_routingInfo2 = -1;       /* RoutingInfo */
992 static int hf_gsm_map_ch_ss_List2 = -1;           /* SS_List */
993 static int hf_gsm_map_ch_basicService2 = -1;      /* Ext_BasicServiceCode */
994 static int hf_gsm_map_ch_allowedServices = -1;    /* AllowedServices */
995 static int hf_gsm_map_ch_unavailabilityCause = -1;  /* UnavailabilityCause */
996 static int hf_gsm_map_ch_releaseResourcesSupported = -1;  /* NULL */
997 static int hf_gsm_map_ch_gsm_BearerCapability = -1;  /* ExternalSignalInfo */
998 static int hf_gsm_map_ch_ccbs_Possible = -1;      /* NULL */
999 static int hf_gsm_map_ch_keepCCBS_CallIndicator = -1;  /* NULL */
1000 static int hf_gsm_map_ch_roamingNumber = -1;      /* ISDN_AddressString */
1001 static int hf_gsm_map_ch_forwardingData = -1;     /* ForwardingData */
1002 static int hf_gsm_map_ch_forwardedToNumber = -1;  /* ISDN_AddressString */
1003 static int hf_gsm_map_ch_forwardedToSubaddress = -1;  /* ISDN_SubaddressString */
1004 static int hf_gsm_map_ch_forwardingOptions = -1;  /* ForwardingOptions */
1005 static int hf_gsm_map_ch_longForwardedToNumber = -1;  /* FTN_AddressString */
1006 static int hf_gsm_map_ch_msc_Number = -1;         /* ISDN_AddressString */
1007 static int hf_gsm_map_ch_lmsi = -1;               /* LMSI */
1008 static int hf_gsm_map_ch_gmsc_Address = -1;       /* ISDN_AddressString */
1009 static int hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode = -1;  /* SupportedCamelPhases */
1010 static int hf_gsm_map_ch_orNotSupportedInGMSC = -1;  /* NULL */
1011 static int hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode = -1;  /* OfferedCamel4CSIs */
1012 static int hf_gsm_map_ch_o_CSI = -1;              /* O_CSI */
1013 static int hf_gsm_map_ch_uu_Data = -1;            /* UU_Data */
1014 static int hf_gsm_map_ch_allInformationSent = -1;  /* NULL */
1015 static int hf_gsm_map_ch_d_csi = -1;              /* D_CSI */
1016 static int hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
1017 static int hf_gsm_map_ch_mtRoamingRetry = -1;     /* NULL */
1018 static int hf_gsm_map_ch_uuIndicator = -1;        /* UUIndicator */
1019 static int hf_gsm_map_ch_uui = -1;                /* UUI */
1020 static int hf_gsm_map_ch_uusCFInteraction = -1;   /* NULL */
1021 static int hf_gsm_map_ch_supportedCamelPhases = -1;  /* SupportedCamelPhases */
1022 static int hf_gsm_map_ch_suppress_T_CSI = -1;     /* NULL */
1023 static int hf_gsm_map_ch_offeredCamel4CSIs = -1;  /* OfferedCamel4CSIs */
1024 static int hf_gsm_map_ch_routingInfo = -1;        /* RoutingInfo */
1025 static int hf_gsm_map_ch_camelRoutingInfo = -1;   /* CamelRoutingInfo */
1026 static int hf_gsm_map_ch_gmscCamelSubscriptionInfo = -1;  /* GmscCamelSubscriptionInfo */
1027 static int hf_gsm_map_ch_t_CSI = -1;              /* T_CSI */
1028 static int hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
1029 static int hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
1030 static int hf_gsm_map_ch_ccbs_Monitoring = -1;    /* ReportingState */
1031 static int hf_gsm_map_ch_ccbs_SubscriberStatus = -1;  /* CCBS_SubscriberStatus */
1032 static int hf_gsm_map_ch_eventReportData = -1;    /* EventReportData */
1033 static int hf_gsm_map_ch_callReportdata = -1;     /* CallReportData */
1034 static int hf_gsm_map_ch_monitoringMode = -1;     /* MonitoringMode */
1035 static int hf_gsm_map_ch_callOutcome = -1;        /* CallOutcome */
1036 static int hf_gsm_map_ch_callInfo = -1;           /* ExternalSignalInfo */
1037 static int hf_gsm_map_ch_ccbs_Feature = -1;       /* CCBS_Feature */
1038 static int hf_gsm_map_ch_translatedB_Number = -1;  /* ISDN_AddressString */
1039 static int hf_gsm_map_ch_replaceB_Number = -1;    /* NULL */
1040 static int hf_gsm_map_ch_ruf_Outcome = -1;        /* RUF_Outcome */
1041 static int hf_gsm_map_ch_istInformationWithdraw = -1;  /* NULL */
1042 static int hf_gsm_map_ch_callTerminationIndicator = -1;  /* CallTerminationIndicator */
1043 static int hf_gsm_map_ch_msrn = -1;               /* ISDN_AddressString */
1044 /* named bits */
1045 static int hf_gsm_map_ch_SuppressMTSS_suppressCUG = -1;
1046 static int hf_gsm_map_ch_SuppressMTSS_suppressCCBS = -1;
1047 static int hf_gsm_map_ch_AllowedServices_firstServiceAllowed = -1;
1048 static int hf_gsm_map_ch_AllowedServices_secondServiceAllowed = -1;
1049
1050 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
1051
1052 static int hf_gsm_map_lcs_mlcNumber = -1;         /* ISDN_AddressString */
1053 static int hf_gsm_map_lcs_targetMS = -1;          /* SubscriberIdentity */
1054 static int hf_gsm_map_lcs_extensionContainer = -1;  /* ExtensionContainer */
1055 static int hf_gsm_map_lcs_lcsLocationInfo = -1;   /* LCSLocationInfo */
1056 static int hf_gsm_map_lcs_v_gmlc_Address = -1;    /* GSN_Address */
1057 static int hf_gsm_map_lcs_h_gmlc_Address = -1;    /* GSN_Address */
1058 static int hf_gsm_map_lcs_ppr_Address = -1;       /* GSN_Address */
1059 static int hf_gsm_map_lcs_additional_v_gmlc_Address = -1;  /* GSN_Address */
1060 static int hf_gsm_map_lcs_networkNode_Number = -1;  /* ISDN_AddressString */
1061 static int hf_gsm_map_lcs_lmsi = -1;              /* LMSI */
1062 static int hf_gsm_map_lcs_gprsNodeIndicator = -1;  /* NULL */
1063 static int hf_gsm_map_lcs_additional_Number = -1;  /* Additional_Number */
1064 static int hf_gsm_map_lcs_supportedLCS_CapabilitySets = -1;  /* SupportedLCS_CapabilitySets */
1065 static int hf_gsm_map_lcs_additional_LCS_CapabilitySets = -1;  /* SupportedLCS_CapabilitySets */
1066 static int hf_gsm_map_lcs_locationType = -1;      /* LocationType */
1067 static int hf_gsm_map_lcs_mlc_Number = -1;        /* ISDN_AddressString */
1068 static int hf_gsm_map_lcs_lcs_ClientID = -1;      /* LCS_ClientID */
1069 static int hf_gsm_map_lcs_privacyOverride = -1;   /* NULL */
1070 static int hf_gsm_map_lcs_imsi = -1;              /* IMSI */
1071 static int hf_gsm_map_lcs_msisdn = -1;            /* ISDN_AddressString */
1072 static int hf_gsm_map_lcs_imei = -1;              /* IMEI */
1073 static int hf_gsm_map_lcs_lcs_Priority = -1;      /* LCS_Priority */
1074 static int hf_gsm_map_lcs_lcs_QoS = -1;           /* LCS_QoS */
1075 static int hf_gsm_map_lcs_supportedGADShapes = -1;  /* SupportedGADShapes */
1076 static int hf_gsm_map_lcs_lcs_ReferenceNumber = -1;  /* LCS_ReferenceNumber */
1077 static int hf_gsm_map_lcs_lcsServiceTypeID = -1;  /* LCSServiceTypeID */
1078 static int hf_gsm_map_lcs_lcsCodeword = -1;       /* LCSCodeword */
1079 static int hf_gsm_map_lcs_lcs_PrivacyCheck = -1;  /* LCS_PrivacyCheck */
1080 static int hf_gsm_map_lcs_areaEventInfo = -1;     /* AreaEventInfo */
1081 static int hf_gsm_map_lcs_mo_lrShortCircuitIndicator = -1;  /* NULL */
1082 static int hf_gsm_map_lcs_periodicLDRInfo = -1;   /* PeriodicLDRInfo */
1083 static int hf_gsm_map_lcs_reportingPLMNList = -1;  /* ReportingPLMNList */
1084 static int hf_gsm_map_lcs_locationEstimateType = -1;  /* LocationEstimateType */
1085 static int hf_gsm_map_lcs_deferredLocationEventType = -1;  /* DeferredLocationEventType */
1086 static int hf_gsm_map_lcs_lcsClientType = -1;     /* LCSClientType */
1087 static int hf_gsm_map_lcs_lcsClientExternalID = -1;  /* LCSClientExternalID */
1088 static int hf_gsm_map_lcs_lcsClientDialedByMS = -1;  /* AddressString */
1089 static int hf_gsm_map_lcs_lcsClientInternalID = -1;  /* LCSClientInternalID */
1090 static int hf_gsm_map_lcs_lcsClientName = -1;     /* LCSClientName */
1091 static int hf_gsm_map_lcs_lcsAPN = -1;            /* APN */
1092 static int hf_gsm_map_lcs_lcsRequestorID = -1;    /* LCSRequestorID */
1093 static int hf_gsm_map_lcs_dataCodingScheme = -1;  /* USSD_DataCodingScheme */
1094 static int hf_gsm_map_lcs_nameString = -1;        /* NameString */
1095 static int hf_gsm_map_lcs_lcs_FormatIndicator = -1;  /* LCS_FormatIndicator */
1096 static int hf_gsm_map_lcs_requestorIDString = -1;  /* RequestorIDString */
1097 static int hf_gsm_map_lcs_horizontal_accuracy = -1;  /* Horizontal_Accuracy */
1098 static int hf_gsm_map_lcs_verticalCoordinateRequest = -1;  /* NULL */
1099 static int hf_gsm_map_lcs_vertical_accuracy = -1;  /* Vertical_Accuracy */
1100 static int hf_gsm_map_lcs_responseTime = -1;      /* ResponseTime */
1101 static int hf_gsm_map_lcs_velocityRequest = -1;   /* NULL */
1102 static int hf_gsm_map_lcs_responseTimeCategory = -1;  /* ResponseTimeCategory */
1103 static int hf_gsm_map_lcs_lcsCodewordString = -1;  /* LCSCodewordString */
1104 static int hf_gsm_map_lcs_callSessionUnrelated = -1;  /* PrivacyCheckRelatedAction */
1105 static int hf_gsm_map_lcs_callSessionRelated = -1;  /* PrivacyCheckRelatedAction */
1106 static int hf_gsm_map_lcs_areaDefinition = -1;    /* AreaDefinition */
1107 static int hf_gsm_map_lcs_occurrenceInfo = -1;    /* OccurrenceInfo */
1108 static int hf_gsm_map_lcs_intervalTime = -1;      /* IntervalTime */
1109 static int hf_gsm_map_lcs_areaList = -1;          /* AreaList */
1110 static int hf_gsm_map_lcs_AreaList_item = -1;     /* Area */
1111 static int hf_gsm_map_lcs_areaType = -1;          /* AreaType */
1112 static int hf_gsm_map_lcs_areaIdentification = -1;  /* AreaIdentification */
1113 static int hf_gsm_map_lcs_reportingAmount = -1;   /* ReportingAmount */
1114 static int hf_gsm_map_lcs_reportingInterval = -1;  /* ReportingInterval */
1115 static int hf_gsm_map_lcs_plmn_ListPrioritized = -1;  /* NULL */
1116 static int hf_gsm_map_lcs_plmn_List = -1;         /* PLMNList */
1117 static int hf_gsm_map_lcs_PLMNList_item = -1;     /* ReportingPLMN */
1118 static int hf_gsm_map_lcs_plmn_Id = -1;           /* PLMN_Id */
1119 static int hf_gsm_map_lcs_ran_Technology = -1;    /* RAN_Technology */
1120 static int hf_gsm_map_lcs_ran_PeriodicLocationSupport = -1;  /* NULL */
1121 static int hf_gsm_map_lcs_locationEstimate = -1;  /* Ext_GeographicalInformation */
1122 static int hf_gsm_map_lcs_ageOfLocationEstimate = -1;  /* AgeOfLocationInformation */
1123 static int hf_gsm_map_lcs_add_LocationEstimate = -1;  /* Add_GeographicalInformation */
1124 static int hf_gsm_map_lcs_deferredmt_lrResponseIndicator = -1;  /* NULL */
1125 static int hf_gsm_map_lcs_geranPositioningData = -1;  /* PositioningDataInformation */
1126 static int hf_gsm_map_lcs_utranPositioningData = -1;  /* UtranPositioningDataInfo */
1127 static int hf_gsm_map_lcs_cellIdOrSai = -1;       /* CellGlobalIdOrServiceAreaIdOrLAI */
1128 static int hf_gsm_map_lcs_sai_Present = -1;       /* NULL */
1129 static int hf_gsm_map_lcs_accuracyFulfilmentIndicator = -1;  /* AccuracyFulfilmentIndicator */
1130 static int hf_gsm_map_lcs_velocityEstimate = -1;  /* VelocityEstimate */
1131 static int hf_gsm_map_lcs_lcs_Event = -1;         /* LCS_Event */
1132 static int hf_gsm_map_lcs_na_ESRD = -1;           /* ISDN_AddressString */
1133 static int hf_gsm_map_lcs_na_ESRK = -1;           /* ISDN_AddressString */
1134 static int hf_gsm_map_lcs_slr_ArgExtensionContainer = -1;  /* SLR_ArgExtensionContainer */
1135 static int hf_gsm_map_lcs_deferredmt_lrData = -1;  /* Deferredmt_lrData */
1136 static int hf_gsm_map_lcs_pseudonymIndicator = -1;  /* NULL */
1137 static int hf_gsm_map_lcs_sequenceNumber = -1;    /* SequenceNumber */
1138 static int hf_gsm_map_lcs_terminationCause = -1;  /* TerminationCause */
1139 /* named bits */
1140 static int hf_gsm_map_lcs_DeferredLocationEventType_msAvailable = -1;
1141 static int hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea = -1;
1142 static int hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea = -1;
1143 static int hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea = -1;
1144 static int hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR = -1;
1145 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint = -1;
1146 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle = -1;
1147 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse = -1;
1148 static int hf_gsm_map_lcs_SupportedGADShapes_polygon = -1;
1149 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude = -1;
1150 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid = -1;
1151 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc = -1;
1152
1153 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
1154
1155 static int hf_gsm_map_gr_teleservice = -1;        /* Ext_TeleserviceCode */
1156 static int hf_gsm_map_gr_asciCallReference = -1;  /* ASCI_CallReference */
1157 static int hf_gsm_map_gr_codec_Info = -1;         /* CODEC_Info */
1158 static int hf_gsm_map_gr_cipheringAlgorithm = -1;  /* CipheringAlgorithm */
1159 static int hf_gsm_map_gr_groupKeyNumber_Vk_Id = -1;  /* GroupKeyNumber */
1160 static int hf_gsm_map_gr_groupKey = -1;           /* Kc */
1161 static int hf_gsm_map_gr_priority = -1;           /* EMLPP_Priority */
1162 static int hf_gsm_map_gr_uplinkFree = -1;         /* NULL */
1163 static int hf_gsm_map_gr_extensionContainer = -1;  /* ExtensionContainer */
1164 static int hf_gsm_map_gr_vstk = -1;               /* VSTK */
1165 static int hf_gsm_map_gr_vstk_rand = -1;          /* VSTK_RAND */
1166 static int hf_gsm_map_gr_talkerChannelParameter = -1;  /* NULL */
1167 static int hf_gsm_map_gr_groupCallNumber = -1;    /* ISDN_AddressString */
1168 static int hf_gsm_map_gr_imsi = -1;               /* IMSI */
1169 static int hf_gsm_map_gr_talkerPriority = -1;     /* TalkerPriority */
1170 static int hf_gsm_map_gr_additionalInfo = -1;     /* AdditionalInfo */
1171 static int hf_gsm_map_gr_uplinkRequestAck = -1;   /* NULL */
1172 static int hf_gsm_map_gr_uplinkReleaseIndication = -1;  /* NULL */
1173 static int hf_gsm_map_gr_uplinkRejectCommand = -1;  /* NULL */
1174 static int hf_gsm_map_gr_uplinkSeizedCommand = -1;  /* NULL */
1175 static int hf_gsm_map_gr_uplinkReleaseCommand = -1;  /* NULL */
1176 static int hf_gsm_map_gr_stateAttributes = -1;    /* StateAttributes */
1177 static int hf_gsm_map_gr_emergencyModeResetCommandFlag = -1;  /* NULL */
1178 static int hf_gsm_map_gr_sm_RP_UI = -1;           /* SignalInfo */
1179 static int hf_gsm_map_gr_an_APDU = -1;            /* AccessNetworkSignalInfo */
1180 static int hf_gsm_map_gr_uplinkRequest = -1;      /* NULL */
1181 static int hf_gsm_map_gr_releaseGroupCall = -1;   /* NULL */
1182 static int hf_gsm_map_gr_downlinkAttached = -1;   /* NULL */
1183 static int hf_gsm_map_gr_uplinkAttached = -1;     /* NULL */
1184 static int hf_gsm_map_gr_dualCommunication = -1;  /* NULL */
1185 static int hf_gsm_map_gr_callOriginator = -1;     /* NULL */
1186 static int hf_gsm_map_gr_requestedInfo = -1;      /* RequestedInfo */
1187 static int hf_gsm_map_gr_groupId = -1;            /* Long_GroupId */
1188 static int hf_gsm_map_gr_cellId = -1;             /* GlobalCellId */
1189 static int hf_gsm_map_gr_tmsi = -1;               /* TMSI */
1190 static int hf_gsm_map_gr_cksn = -1;               /* Cksn */
1191 static int hf_gsm_map_gr_anchorMSC_Address = -1;  /* ISDN_AddressString */
1192 static int hf_gsm_map_gr_additionalSubscriptions = -1;  /* AdditionalSubscriptions */
1193 static int hf_gsm_map_gr_kc = -1;                 /* Kc */
1194
1195 /* --- Module MAP-DialogueInformation --- --- ---                             */
1196
1197 static int hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU = -1;  /* MAP_DialoguePDU */
1198 static int hf_gsm_map_dialogue_map_open = -1;     /* MAP_OpenInfo */
1199 static int hf_gsm_map_dialogue_map_accept = -1;   /* MAP_AcceptInfo */
1200 static int hf_gsm_map_dialogue_map_close = -1;    /* MAP_CloseInfo */
1201 static int hf_gsm_map_dialogue_map_refuse = -1;   /* MAP_RefuseInfo */
1202 static int hf_gsm_map_dialogue_map_userAbort = -1;  /* MAP_UserAbortInfo */
1203 static int hf_gsm_map_dialogue_map_providerAbort = -1;  /* MAP_ProviderAbortInfo */
1204 static int hf_gsm_map_dialogue_destinationReference = -1;  /* AddressString */
1205 static int hf_gsm_map_dialogue_originationReference = -1;  /* AddressString */
1206 static int hf_gsm_map_dialogue_extensionContainer = -1;  /* ExtensionContainer */
1207 static int hf_gsm_map_dialogue_reason = -1;       /* Reason */
1208 static int hf_gsm_map_dialogue_alternativeApplicationContext = -1;  /* OBJECT_IDENTIFIER */
1209 static int hf_gsm_map_dialogue_map_UserAbortChoice = -1;  /* MAP_UserAbortChoice */
1210 static int hf_gsm_map_dialogue_userSpecificReason = -1;  /* NULL */
1211 static int hf_gsm_map_dialogue_userResourceLimitation = -1;  /* NULL */
1212 static int hf_gsm_map_dialogue_resourceUnavailable = -1;  /* ResourceUnavailableReason */
1213 static int hf_gsm_map_dialogue_applicationProcedureCancellation = -1;  /* ProcedureCancellationReason */
1214 static int hf_gsm_map_dialogue_map_ProviderAbortReason = -1;  /* MAP_ProviderAbortReason */
1215
1216 /* --- Module DummyMAP --- --- ---                                            */
1217
1218 static int hf_gsm_old_invoke = -1;                /* Invoke */
1219 static int hf_gsm_old_returnResultLast = -1;      /* ReturnResult */
1220 static int hf_gsm_old_returnError = -1;           /* ReturnError */
1221 static int hf_gsm_old_reject = -1;                /* Reject */
1222 static int hf_gsm_old_returnResultNotLast = -1;   /* ReturnResult */
1223 static int hf_gsm_old_invokeID = -1;              /* InvokeIdType */
1224 static int hf_gsm_old_linkedID = -1;              /* InvokeIdType */
1225 static int hf_gsm_old_opCode = -1;                /* MAP_OPERATION */
1226 static int hf_gsm_old_invokeparameter = -1;       /* InvokeParameter */
1227 static int hf_gsm_old_resultretres = -1;          /* T_resultretres */
1228 static int hf_gsm_old_returnparameter = -1;       /* ReturnResultParameter */
1229 static int hf_gsm_old_errorCode = -1;             /* MAP_ERROR */
1230 static int hf_gsm_old_parameter = -1;             /* ReturnErrorParameter */
1231 static int hf_gsm_old_invokeIDRej = -1;           /* T_invokeIDRej */
1232 static int hf_gsm_old_derivable = -1;             /* InvokeIdType */
1233 static int hf_gsm_old_not_derivable = -1;         /* NULL */
1234 static int hf_gsm_old_problem = -1;               /* T_problem */
1235 static int hf_gsm_old_generalProblem = -1;        /* GeneralProblem */
1236 static int hf_gsm_old_invokeProblem = -1;         /* InvokeProblem */
1237 static int hf_gsm_old_returnResultProblem = -1;   /* ReturnResultProblem */
1238 static int hf_gsm_old_returnErrorProblem = -1;    /* ReturnErrorProblem */
1239 static int hf_gsm_old_localValue = -1;            /* OperationLocalvalue */
1240 static int hf_gsm_old_globalValue = -1;           /* OBJECT_IDENTIFIER */
1241 static int hf_gsm_old_localValue_01 = -1;         /* LocalErrorcode */
1242 static int hf_gsm_old_protocolId = -1;            /* ProtocolId */
1243 static int hf_gsm_old_signalInfo = -1;            /* SignalInfo */
1244 static int hf_gsm_old_extensionContainer = -1;    /* ExtensionContainer */
1245 static int hf_gsm_old_gsm_BearerCapability = -1;  /* ExternalSignalInfo */
1246 static int hf_gsm_old_isdn_BearerCapability = -1;  /* ExternalSignalInfo */
1247 static int hf_gsm_old_call_Direction = -1;        /* CallDirection */
1248 static int hf_gsm_old_b_Subscriber_Address = -1;  /* ISDN_AddressString */
1249 static int hf_gsm_old_chosenChannel = -1;         /* ExternalSignalInfo */
1250 static int hf_gsm_old_lowerLayerCompatibility = -1;  /* ExternalSignalInfo */
1251 static int hf_gsm_old_highLayerCompatibility = -1;  /* ExternalSignalInfo */
1252 static int hf_gsm_old_sIWFSNumber = -1;           /* ISDN_AddressString */
1253 static int hf_gsm_old_imsi = -1;                  /* IMSI */
1254 static int hf_gsm_old_vlr_Number = -1;            /* ISDN_AddressString */
1255 static int hf_gsm_old_targetCellId = -1;          /* GlobalCellId */
1256 static int hf_gsm_old_ho_NumberNotRequired = -1;  /* NULL */
1257 static int hf_gsm_old_bss_APDU = -1;              /* Bss_APDU */
1258 static int hf_gsm_old_handoverNumber = -1;        /* ISDN_AddressString */
1259 static int hf_gsm_old_SendAuthenticationInfoResOld_item = -1;  /* SendAuthenticationInfoResOld_item */
1260 static int hf_gsm_old_rand = -1;                  /* RAND */
1261 static int hf_gsm_old_sres = -1;                  /* SRES */
1262 static int hf_gsm_old_kc = -1;                    /* Kc */
1263 static int hf_gsm_old_tripletList = -1;           /* TripletListold */
1264 static int hf_gsm_old_TripletListold_item = -1;   /* AuthenticationTriplet_v2 */
1265 static int hf_gsm_old_channelType = -1;           /* ExternalSignalInfo */
1266 static int hf_gsm_old_securityHeader = -1;        /* SecurityHeader */
1267 static int hf_gsm_old_protectedPayload = -1;      /* ProtectedPayload */
1268 static int hf_gsm_old_securityParametersIndex = -1;  /* SecurityParametersIndex */
1269 static int hf_gsm_old_originalComponentIdentifier = -1;  /* OriginalComponentIdentifier */
1270 static int hf_gsm_old_initialisationVector = -1;  /* InitialisationVector */
1271 static int hf_gsm_old_operationCode = -1;         /* OperationCode */
1272 static int hf_gsm_old_errorCode_01 = -1;          /* ErrorCode */
1273 static int hf_gsm_old_userInfo = -1;              /* NULL */
1274 static int hf_gsm_old_localValue_02 = -1;         /* INTEGER */
1275 static int hf_gsm_old_msisdn = -1;                /* ISDN_AddressString */
1276 static int hf_gsm_old_category = -1;              /* Category */
1277 static int hf_gsm_old_basicService = -1;          /* BasicServiceCode */
1278 static int hf_gsm_old_operatorSS_Code = -1;       /* T_operatorSS_Code */
1279 static int hf_gsm_old_operatorSS_Code_item = -1;  /* OCTET_STRING_SIZE_1 */
1280 static int hf_gsm_old_sm_RP_DA = -1;              /* SM_RP_DAold */
1281 static int hf_gsm_old_sm_RP_OA = -1;              /* SM_RP_OAold */
1282 static int hf_gsm_old_sm_RP_UI = -1;              /* SignalInfo */
1283 static int hf_gsm_old_moreMessagesToSend = -1;    /* NULL */
1284 static int hf_gsm_old_lmsi = -1;                  /* LMSI */
1285 static int hf_gsm_old_serviceCentreAddressDA = -1;  /* AddressString */
1286 static int hf_gsm_old_noSM_RP_DA = -1;            /* NULL */
1287 static int hf_gsm_old_msisdn_01 = -1;             /* T_msisdn */
1288 static int hf_gsm_old_serviceCentreAddressOA = -1;  /* T_serviceCentreAddressOA */
1289 static int hf_gsm_old_noSM_RP_OA = -1;            /* NULL */
1290 static int hf_gsm_old_cug_CheckInfo = -1;         /* CUG_CheckInfo */
1291 static int hf_gsm_old_numberOfForwarding = -1;    /* NumberOfForwarding */
1292 static int hf_gsm_old_networkSignalInfo = -1;     /* ExternalSignalInfo */
1293 static int hf_gsm_old_routingInfo = -1;           /* RoutingInfo */
1294
1295 /* --- Module SS-DataTypes --- --- ---                                        */
1296
1297 static int hf_gsm_ss_ss_Code = -1;                /* SS_Code */
1298 static int hf_gsm_ss_ss_Status = -1;              /* SS_Status */
1299 static int hf_gsm_ss_ss_Notification = -1;        /* SS_Notification */
1300 static int hf_gsm_ss_callIsWaiting_Indicator = -1;  /* NULL */
1301 static int hf_gsm_ss_callOnHold_Indicator = -1;   /* CallOnHold_Indicator */
1302 static int hf_gsm_ss_mpty_Indicator = -1;         /* NULL */
1303 static int hf_gsm_ss_cug_Index = -1;              /* CUG_Index */
1304 static int hf_gsm_ss_clirSuppressionRejected = -1;  /* NULL */
1305 static int hf_gsm_ss_ect_Indicator = -1;          /* ECT_Indicator */
1306 static int hf_gsm_ss_nameIndicator = -1;          /* NameIndicator */
1307 static int hf_gsm_ss_ccbs_Feature = -1;           /* CCBS_Feature */
1308 static int hf_gsm_ss_alertingPattern = -1;        /* AlertingPattern */
1309 static int hf_gsm_ss_multicall_Indicator = -1;    /* Multicall_Indicator */
1310 static int hf_gsm_ss_imsi = -1;                   /* IMSI */
1311 static int hf_gsm_ss_originatingEntityNumber = -1;  /* ISDN_AddressString */
1312 static int hf_gsm_ss_msisdn = -1;                 /* AddressString */
1313 static int hf_gsm_ss_chargingInformation = -1;    /* ChargingInformation */
1314 static int hf_gsm_ss_e1 = -1;                     /* E1 */
1315 static int hf_gsm_ss_e2 = -1;                     /* E2 */
1316 static int hf_gsm_ss_e3 = -1;                     /* E3 */
1317 static int hf_gsm_ss_e4 = -1;                     /* E4 */
1318 static int hf_gsm_ss_e5 = -1;                     /* E5 */
1319 static int hf_gsm_ss_e6 = -1;                     /* E6 */
1320 static int hf_gsm_ss_e7 = -1;                     /* E7 */
1321 static int hf_gsm_ss_suppressPrefCUG = -1;        /* NULL */
1322 static int hf_gsm_ss_suppressOA = -1;             /* NULL */
1323 static int hf_gsm_ss_ect_CallState = -1;          /* ECT_CallState */
1324 static int hf_gsm_ss_rdn = -1;                    /* RDN */
1325 static int hf_gsm_ss_callingName = -1;            /* Name */
1326 static int hf_gsm_ss_namePresentationAllowed = -1;  /* NameSet */
1327 static int hf_gsm_ss_presentationRestricted = -1;  /* NULL */
1328 static int hf_gsm_ss_nameUnavailable = -1;        /* NULL */
1329 static int hf_gsm_ss_namePresentationRestricted = -1;  /* NameSet */
1330 static int hf_gsm_ss_dataCodingScheme = -1;       /* USSD_DataCodingScheme */
1331 static int hf_gsm_ss_lengthInCharacters = -1;     /* INTEGER */
1332 static int hf_gsm_ss_nameString = -1;             /* USSD_String */
1333 static int hf_gsm_ss_presentationAllowedAddress = -1;  /* RemotePartyNumber */
1334 static int hf_gsm_ss_numberNotAvailableDueToInterworking = -1;  /* NULL */
1335 static int hf_gsm_ss_presentationRestrictedAddress = -1;  /* RemotePartyNumber */
1336 static int hf_gsm_ss_partyNumber = -1;            /* ISDN_AddressString */
1337 static int hf_gsm_ss_partyNumberSubaddress = -1;  /* ISDN_SubaddressString */
1338 static int hf_gsm_ss_deflectedToNumber = -1;      /* AddressString */
1339 static int hf_gsm_ss_deflectedToSubaddress = -1;  /* ISDN_SubaddressString */
1340 static int hf_gsm_ss_uUS_Service = -1;            /* UUS_Service */
1341 static int hf_gsm_ss_uUS_Required = -1;           /* BOOLEAN */
1342 static int hf_gsm_ss_notificationType = -1;       /* NotificationToMSUser */
1343 static int hf_gsm_ss_locationType = -1;           /* LocationType */
1344 static int hf_gsm_ss_lcsClientExternalID = -1;    /* LCSClientExternalID */
1345 static int hf_gsm_ss_lcsClientName = -1;          /* LCSClientName */
1346 static int hf_gsm_ss_lcsRequestorID = -1;         /* LCSRequestorID */
1347 static int hf_gsm_ss_lcsCodeword = -1;            /* LCSCodeword */
1348 static int hf_gsm_ss_lcsServiceTypeID = -1;       /* LCSServiceTypeID */
1349 static int hf_gsm_ss_verificationResponse = -1;   /* VerificationResponse */
1350 static int hf_gsm_ss_molr_Type = -1;              /* MOLR_Type */
1351 static int hf_gsm_ss_locationMethod = -1;         /* LocationMethod */
1352 static int hf_gsm_ss_lcs_QoS = -1;                /* LCS_QoS */
1353 static int hf_gsm_ss_mlc_Number = -1;             /* ISDN_AddressString */
1354 static int hf_gsm_ss_gpsAssistanceData = -1;      /* GPSAssistanceData */
1355 static int hf_gsm_ss_supportedGADShapes = -1;     /* SupportedGADShapes */
1356 static int hf_gsm_ss_ageOfLocationInfo = -1;      /* AgeOfLocationInformation */
1357 static int hf_gsm_ss_pseudonymIndicator = -1;     /* NULL */
1358 static int hf_gsm_ss_h_gmlc_address = -1;         /* GSN_Address */
1359 static int hf_gsm_ss_locationEstimate = -1;       /* Ext_GeographicalInformation */
1360 static int hf_gsm_ss_velocityEstimate = -1;       /* VelocityEstimate */
1361 static int hf_gsm_ss_referenceNumber = -1;        /* LCS_ReferenceNumber */
1362 static int hf_gsm_ss_periodicLDRInfo = -1;        /* PeriodicLDRInfo */
1363 static int hf_gsm_ss_locationUpdateRequest = -1;  /* NULL */
1364 static int hf_gsm_ss_sequenceNumber = -1;         /* SequenceNumber */
1365 static int hf_gsm_ss_terminationCause = -1;       /* TerminationCause */
1366 static int hf_gsm_ss_mo_lrShortCircuit = -1;      /* NULL */
1367 static int hf_gsm_ss_ganssAssistanceData = -1;    /* GANSSAssistanceData */
1368 static int hf_gsm_ss_decipheringKeys = -1;        /* DecipheringKeys */
1369 static int hf_gsm_ss_add_LocationEstimate = -1;   /* Add_GeographicalInformation */
1370 static int hf_gsm_ss_reportingPLMNList = -1;      /* ReportingPLMNList */
1371 static int hf_gsm_ss_deferredLocationEventType = -1;  /* DeferredLocationEventType */
1372 static int hf_gsm_ss_areaEventInfo = -1;          /* AreaEventInfo */
1373 static int hf_gsm_ss_qoS = -1;                    /* LCS_QoS */
1374
1375 /*--- End of included file: packet-gsm_map-hf.c ---*/
1376 #line 146 "packet-gsmmap-template.c"
1377
1378 /* Initialize the subtree pointers */
1379 static gint ett_gsm_map = -1;
1380 static gint ett_gsm_map_InvokeId = -1;
1381 static gint ett_gsm_map_InvokePDU = -1;
1382 static gint ett_gsm_map_ReturnResultPDU = -1;
1383 static gint ett_gsm_map_ReturnErrorPDU = -1;
1384 static gint ett_gsm_map_ReturnResult_result = -1;
1385 static gint ett_gsm_map_ReturnError_result = -1;
1386 static gint ett_gsm_map_GSMMAPPDU = -1;
1387 static gint ett_gsm_map_ext_qos_subscribed = -1;
1388 static gint ett_gsm_map_pdptypenumber = -1;
1389 static gint ett_gsm_map_RAIdentity = -1; 
1390 static gint ett_gsm_map_LAIFixedLength = -1;
1391 static gint ett_gsm_map_isdn_address_string = -1;
1392 static gint ett_gsm_map_geo_desc = -1;
1393 static gint ett_gsm_map_LongSignalInfo = -1;
1394 static gint ett_gsm_map_RadioResourceInformation =-1;
1395 static gint ett_gsm_map_MSNetworkCapability =-1;
1396 static gint ett_gsm_map_MSRadioAccessCapability = -1;
1397 static gint ett_gsm_map_externalsignalinfo = -1;
1398 static gint ett_gsm_map_cbs_data_coding = -1;
1399 static gint ett_gsm_map_GlobalCellId = -1;
1400 static gint ett_gsm_map_GeographicalInformation = -1;
1401
1402
1403 /*--- Included file: packet-gsm_map-ett.c ---*/
1404 #line 1 "packet-gsm_map-ett.c"
1405
1406 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
1407
1408 static gint ett_gsm_map_ExtensionContainer = -1;
1409 static gint ett_gsm_map_SLR_ArgExtensionContainer = -1;
1410 static gint ett_gsm_map_PrivateExtensionList = -1;
1411 static gint ett_gsm_map_PrivateExtension = -1;
1412 static gint ett_gsm_map_PCS_Extensions = -1;
1413 static gint ett_gsm_map_SLR_Arg_PCS_Extensions = -1;
1414
1415 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
1416
1417 static gint ett_gsm_map_ExternalSignalInfo = -1;
1418 static gint ett_gsm_map_Ext_ExternalSignalInfo = -1;
1419 static gint ett_gsm_map_AccessNetworkSignalInfo = -1;
1420 static gint ett_gsm_map_Identity = -1;
1421 static gint ett_gsm_map_IMSI_WithLMSI = -1;
1422 static gint ett_gsm_map_HLR_List = -1;
1423 static gint ett_gsm_map_NAEA_PreferredCI = -1;
1424 static gint ett_gsm_map_SubscriberIdentity = -1;
1425 static gint ett_gsm_map_LCSClientExternalID = -1;
1426 static gint ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI = -1;
1427 static gint ett_gsm_map_BasicServiceCode = -1;
1428 static gint ett_gsm_map_Ext_BasicServiceCode = -1;
1429 static gint ett_gsm_map_EMLPP_Info = -1;
1430 static gint ett_gsm_map_MC_SS_Info = -1;
1431
1432 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
1433
1434 static gint ett_gsm_map_ss_RegisterSS_Arg = -1;
1435 static gint ett_gsm_map_ss_SS_Info = -1;
1436 static gint ett_gsm_map_ss_ForwardingInfo = -1;
1437 static gint ett_gsm_map_ss_ForwardingFeatureList = -1;
1438 static gint ett_gsm_map_ss_ForwardingFeature = -1;
1439 static gint ett_gsm_map_ss_CallBarringInfo = -1;
1440 static gint ett_gsm_map_ss_CallBarringFeatureList = -1;
1441 static gint ett_gsm_map_ss_CallBarringFeature = -1;
1442 static gint ett_gsm_map_ss_SS_Data = -1;
1443 static gint ett_gsm_map_ss_SS_SubscriptionOption = -1;
1444 static gint ett_gsm_map_ss_SS_ForBS_Code = -1;
1445 static gint ett_gsm_map_ss_GenericServiceInfo = -1;
1446 static gint ett_gsm_map_ss_CCBS_FeatureList = -1;
1447 static gint ett_gsm_map_ss_CCBS_Feature = -1;
1448 static gint ett_gsm_map_ss_InterrogateSS_Res = -1;
1449 static gint ett_gsm_map_ss_USSD_Arg = -1;
1450 static gint ett_gsm_map_ss_USSD_Res = -1;
1451 static gint ett_gsm_map_ss_SS_List = -1;
1452 static gint ett_gsm_map_ss_BasicServiceGroupList = -1;
1453 static gint ett_gsm_map_ss_SS_InvocationNotificationArg = -1;
1454 static gint ett_gsm_map_ss_SS_InvocationNotificationRes = -1;
1455 static gint ett_gsm_map_ss_SS_EventSpecification = -1;
1456 static gint ett_gsm_map_ss_RegisterCC_EntryArg = -1;
1457 static gint ett_gsm_map_ss_CCBS_Data = -1;
1458 static gint ett_gsm_map_ss_ServiceIndicator = -1;
1459 static gint ett_gsm_map_ss_RegisterCC_EntryRes = -1;
1460 static gint ett_gsm_map_ss_EraseCC_EntryArg = -1;
1461 static gint ett_gsm_map_ss_EraseCC_EntryRes = -1;
1462
1463 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
1464
1465 static gint ett_gsm_map_er_RoamingNotAllowedParam = -1;
1466 static gint ett_gsm_map_er_CallBarredParam = -1;
1467 static gint ett_gsm_map_er_ExtensibleCallBarredParam = -1;
1468 static gint ett_gsm_map_er_CUG_RejectParam = -1;
1469 static gint ett_gsm_map_er_SS_IncompatibilityCause = -1;
1470 static gint ett_gsm_map_er_SM_DeliveryFailureCause = -1;
1471 static gint ett_gsm_map_er_AbsentSubscriberSM_Param = -1;
1472 static gint ett_gsm_map_er_SystemFailureParam = -1;
1473 static gint ett_gsm_map_er_ExtensibleSystemFailureParam = -1;
1474 static gint ett_gsm_map_er_DataMissingParam = -1;
1475 static gint ett_gsm_map_er_UnexpectedDataParam = -1;
1476 static gint ett_gsm_map_er_FacilityNotSupParam = -1;
1477 static gint ett_gsm_map_er_OR_NotAllowedParam = -1;
1478 static gint ett_gsm_map_er_UnknownSubscriberParam = -1;
1479 static gint ett_gsm_map_er_NumberChangedParam = -1;
1480 static gint ett_gsm_map_er_UnidentifiedSubParam = -1;
1481 static gint ett_gsm_map_er_IllegalSubscriberParam = -1;
1482 static gint ett_gsm_map_er_IllegalEquipmentParam = -1;
1483 static gint ett_gsm_map_er_BearerServNotProvParam = -1;
1484 static gint ett_gsm_map_er_TeleservNotProvParam = -1;
1485 static gint ett_gsm_map_er_TracingBufferFullParam = -1;
1486 static gint ett_gsm_map_er_NoRoamingNbParam = -1;
1487 static gint ett_gsm_map_er_AbsentSubscriberParam = -1;
1488 static gint ett_gsm_map_er_BusySubscriberParam = -1;
1489 static gint ett_gsm_map_er_NoSubscriberReplyParam = -1;
1490 static gint ett_gsm_map_er_ForwardingViolationParam = -1;
1491 static gint ett_gsm_map_er_ForwardingFailedParam = -1;
1492 static gint ett_gsm_map_er_ATI_NotAllowedParam = -1;
1493 static gint ett_gsm_map_er_ATSI_NotAllowedParam = -1;
1494 static gint ett_gsm_map_er_ATM_NotAllowedParam = -1;
1495 static gint ett_gsm_map_er_IllegalSS_OperationParam = -1;
1496 static gint ett_gsm_map_er_SS_NotAvailableParam = -1;
1497 static gint ett_gsm_map_er_SS_SubscriptionViolationParam = -1;
1498 static gint ett_gsm_map_er_InformationNotAvailableParam = -1;
1499 static gint ett_gsm_map_er_SubBusyForMT_SMS_Param = -1;
1500 static gint ett_gsm_map_er_MessageWaitListFullParam = -1;
1501 static gint ett_gsm_map_er_ResourceLimitationParam = -1;
1502 static gint ett_gsm_map_er_NoGroupCallNbParam = -1;
1503 static gint ett_gsm_map_er_IncompatibleTerminalParam = -1;
1504 static gint ett_gsm_map_er_ShortTermDenialParam = -1;
1505 static gint ett_gsm_map_er_LongTermDenialParam = -1;
1506 static gint ett_gsm_map_er_UnauthorizedRequestingNetwork_Param = -1;
1507 static gint ett_gsm_map_er_UnauthorizedLCSClient_Param = -1;
1508 static gint ett_gsm_map_er_PositionMethodFailure_Param = -1;
1509 static gint ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param = -1;
1510 static gint ett_gsm_map_er_MM_EventNotSupported_Param = -1;
1511 static gint ett_gsm_map_er_TargetCellOutsideGCA_Param = -1;
1512 static gint ett_gsm_map_er_OngoingGroupCallParam = -1;
1513
1514 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
1515
1516 static gint ett_gsm_map_sm_RoutingInfoForSM_Arg = -1;
1517 static gint ett_gsm_map_sm_RoutingInfoForSM_Res = -1;
1518 static gint ett_gsm_map_sm_LocationInfoWithLMSI = -1;
1519 static gint ett_gsm_map_sm_Additional_Number = -1;
1520 static gint ett_gsm_map_sm_MO_ForwardSM_Arg = -1;
1521 static gint ett_gsm_map_sm_MO_ForwardSM_Res = -1;
1522 static gint ett_gsm_map_sm_MT_ForwardSM_Arg = -1;
1523 static gint ett_gsm_map_sm_MT_ForwardSM_Res = -1;
1524 static gint ett_gsm_map_sm_SM_RP_DA = -1;
1525 static gint ett_gsm_map_sm_SM_RP_OA = -1;
1526 static gint ett_gsm_map_sm_ReportSM_DeliveryStatusArg = -1;
1527 static gint ett_gsm_map_sm_ReportSM_DeliveryStatusRes = -1;
1528 static gint ett_gsm_map_sm_AlertServiceCentreArg = -1;
1529 static gint ett_gsm_map_sm_InformServiceCentreArg = -1;
1530 static gint ett_gsm_map_sm_MW_Status = -1;
1531 static gint ett_gsm_map_sm_ReadyForSM_Arg = -1;
1532 static gint ett_gsm_map_sm_ReadyForSM_Res = -1;
1533 static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg = -1;
1534 static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Res = -1;
1535 static gint ett_gsm_map_sm_DispatcherList = -1;
1536
1537 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
1538
1539 static gint ett_gsm_map_om_ActivateTraceModeArg = -1;
1540 static gint ett_gsm_map_om_TraceDepthList = -1;
1541 static gint ett_gsm_map_om_TraceNE_TypeList = -1;
1542 static gint ett_gsm_map_om_TraceInterfaceList = -1;
1543 static gint ett_gsm_map_om_MSC_S_InterfaceList = -1;
1544 static gint ett_gsm_map_om_MGW_InterfaceList = -1;
1545 static gint ett_gsm_map_om_SGSN_InterfaceList = -1;
1546 static gint ett_gsm_map_om_GGSN_InterfaceList = -1;
1547 static gint ett_gsm_map_om_RNC_InterfaceList = -1;
1548 static gint ett_gsm_map_om_BMSC_InterfaceList = -1;
1549 static gint ett_gsm_map_om_TraceEventList = -1;
1550 static gint ett_gsm_map_om_MSC_S_EventList = -1;
1551 static gint ett_gsm_map_om_MGW_EventList = -1;
1552 static gint ett_gsm_map_om_SGSN_EventList = -1;
1553 static gint ett_gsm_map_om_GGSN_EventList = -1;
1554 static gint ett_gsm_map_om_BMSC_EventList = -1;
1555 static gint ett_gsm_map_om_TracePropagationList = -1;
1556 static gint ett_gsm_map_om_ActivateTraceModeRes = -1;
1557 static gint ett_gsm_map_om_DeactivateTraceModeArg = -1;
1558 static gint ett_gsm_map_om_DeactivateTraceModeRes = -1;
1559
1560 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
1561
1562 static gint ett_gsm_map_ms_UpdateLocationArg = -1;
1563 static gint ett_gsm_map_ms_VLR_Capability = -1;
1564 static gint ett_gsm_map_ms_SupportedRAT_Types = -1;
1565 static gint ett_gsm_map_ms_SuperChargerInfo = -1;
1566 static gint ett_gsm_map_ms_SupportedLCS_CapabilitySets = -1;
1567 static gint ett_gsm_map_ms_UpdateLocationRes = -1;
1568 static gint ett_gsm_map_ms_ADD_Info = -1;
1569 static gint ett_gsm_map_ms_CancelLocationArg_U = -1;
1570 static gint ett_gsm_map_ms_CancelLocationRes = -1;
1571 static gint ett_gsm_map_ms_PurgeMS_Arg_U = -1;
1572 static gint ett_gsm_map_ms_PurgeMS_Res = -1;
1573 static gint ett_gsm_map_ms_SendIdentificationArg = -1;
1574 static gint ett_gsm_map_ms_SendIdentificationRes_U = -1;
1575 static gint ett_gsm_map_ms_AuthenticationSetList = -1;
1576 static gint ett_gsm_map_ms_TripletList = -1;
1577 static gint ett_gsm_map_ms_QuintupletList = -1;
1578 static gint ett_gsm_map_ms_AuthenticationTriplet = -1;
1579 static gint ett_gsm_map_ms_AuthenticationQuintuplet = -1;
1580 static gint ett_gsm_map_ms_CurrentSecurityContext = -1;
1581 static gint ett_gsm_map_ms_GSM_SecurityContextData = -1;
1582 static gint ett_gsm_map_ms_UMTS_SecurityContextData = -1;
1583 static gint ett_gsm_map_ms_AuthenticationFailureReportArg = -1;
1584 static gint ett_gsm_map_ms_AuthenticationFailureReportRes = -1;
1585 static gint ett_gsm_map_ms_UpdateGprsLocationArg = -1;
1586 static gint ett_gsm_map_ms_SGSN_Capability = -1;
1587 static gint ett_gsm_map_ms_UpdateGprsLocationRes = -1;
1588 static gint ett_gsm_map_ms_ForwardAccessSignalling_Arg_U = -1;
1589 static gint ett_gsm_map_ms_AllowedUMTS_Algorithms = -1;
1590 static gint ett_gsm_map_ms_PrepareHO_Arg_U = -1;
1591 static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverList = -1;
1592 static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo = -1;
1593 static gint ett_gsm_map_ms_RadioResourceList = -1;
1594 static gint ett_gsm_map_ms_RadioResource = -1;
1595 static gint ett_gsm_map_ms_PrepareHO_Res_U = -1;
1596 static gint ett_gsm_map_ms_SelectedUMTS_Algorithms = -1;
1597 static gint ett_gsm_map_ms_ChosenRadioResourceInformation = -1;
1598 static gint ett_gsm_map_ms_PrepareSubsequentHO_Arg_U = -1;
1599 static gint ett_gsm_map_ms_PrepareSubsequentHO_Res_U = -1;
1600 static gint ett_gsm_map_ms_ProcessAccessSignalling_Arg_U = -1;
1601 static gint ett_gsm_map_ms_SupportedCodecsList = -1;
1602 static gint ett_gsm_map_ms_CodecList = -1;
1603 static gint ett_gsm_map_ms_SendEndSignal_Arg_U = -1;
1604 static gint ett_gsm_map_ms_SendEndSignal_Res = -1;
1605 static gint ett_gsm_map_ms_RelocationNumberList = -1;
1606 static gint ett_gsm_map_ms_RelocationNumber = -1;
1607 static gint ett_gsm_map_ms_SendAuthenticationInfoArg = -1;
1608 static gint ett_gsm_map_ms_Re_synchronisationInfo = -1;
1609 static gint ett_gsm_map_ms_SendAuthenticationInfoRes_U = -1;
1610 static gint ett_gsm_map_ms_CheckIMEI_Arg = -1;
1611 static gint ett_gsm_map_ms_CheckIMEI_Res = -1;
1612 static gint ett_gsm_map_ms_RequestedEquipmentInfo = -1;
1613 static gint ett_gsm_map_ms_UESBI_Iu = -1;
1614 static gint ett_gsm_map_ms_InsertSubscriberDataArg = -1;
1615 static gint ett_gsm_map_ms_AccessRestrictionData = -1;
1616 static gint ett_gsm_map_ms_LCSInformation = -1;
1617 static gint ett_gsm_map_ms_GMLC_List = -1;
1618 static gint ett_gsm_map_ms_GPRSDataList = -1;
1619 static gint ett_gsm_map_ms_PDP_Context = -1;
1620 static gint ett_gsm_map_ms_GPRSSubscriptionData = -1;
1621 static gint ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo = -1;
1622 static gint ett_gsm_map_ms_GPRS_CSI = -1;
1623 static gint ett_gsm_map_ms_GPRS_CamelTDPDataList = -1;
1624 static gint ett_gsm_map_ms_GPRS_CamelTDPData = -1;
1625 static gint ett_gsm_map_ms_LSADataList = -1;
1626 static gint ett_gsm_map_ms_LSAData = -1;
1627 static gint ett_gsm_map_ms_LSAInformation = -1;
1628 static gint ett_gsm_map_ms_SubscriberData = -1;
1629 static gint ett_gsm_map_ms_BearerServiceList = -1;
1630 static gint ett_gsm_map_ms_TeleserviceList = -1;
1631 static gint ett_gsm_map_ms_ODB_Data = -1;
1632 static gint ett_gsm_map_ms_ODB_GeneralData = -1;
1633 static gint ett_gsm_map_ms_ODB_HPLMN_Data = -1;
1634 static gint ett_gsm_map_ms_Ext_SS_InfoList = -1;
1635 static gint ett_gsm_map_ms_Ext_SS_Info = -1;
1636 static gint ett_gsm_map_ms_Ext_ForwInfo = -1;
1637 static gint ett_gsm_map_ms_Ext_ForwFeatureList = -1;
1638 static gint ett_gsm_map_ms_Ext_ForwFeature = -1;
1639 static gint ett_gsm_map_ms_Ext_CallBarInfo = -1;
1640 static gint ett_gsm_map_ms_Ext_CallBarFeatureList = -1;
1641 static gint ett_gsm_map_ms_Ext_CallBarringFeature = -1;
1642 static gint ett_gsm_map_ms_CUG_Info = -1;
1643 static gint ett_gsm_map_ms_CUG_SubscriptionList = -1;
1644 static gint ett_gsm_map_ms_CUG_Subscription = -1;
1645 static gint ett_gsm_map_ms_CUG_FeatureList = -1;
1646 static gint ett_gsm_map_ms_Ext_BasicServiceGroupList = -1;
1647 static gint ett_gsm_map_ms_CUG_Feature = -1;
1648 static gint ett_gsm_map_ms_Ext_SS_Data = -1;
1649 static gint ett_gsm_map_ms_LCS_PrivacyExceptionList = -1;
1650 static gint ett_gsm_map_ms_LCS_PrivacyClass = -1;
1651 static gint ett_gsm_map_ms_ExternalClientList = -1;
1652 static gint ett_gsm_map_ms_PLMNClientList = -1;
1653 static gint ett_gsm_map_ms_Ext_ExternalClientList = -1;
1654 static gint ett_gsm_map_ms_ExternalClient = -1;
1655 static gint ett_gsm_map_ms_ServiceTypeList = -1;
1656 static gint ett_gsm_map_ms_ServiceType = -1;
1657 static gint ett_gsm_map_ms_MOLR_List = -1;
1658 static gint ett_gsm_map_ms_MOLR_Class = -1;
1659 static gint ett_gsm_map_ms_ZoneCodeList = -1;
1660 static gint ett_gsm_map_ms_InsertSubscriberDataRes = -1;
1661 static gint ett_gsm_map_ms_DeleteSubscriberDataArg = -1;
1662 static gint ett_gsm_map_ms_SpecificCSI_Withdraw = -1;
1663 static gint ett_gsm_map_ms_GPRSSubscriptionDataWithdraw = -1;
1664 static gint ett_gsm_map_ms_ContextIdList = -1;
1665 static gint ett_gsm_map_ms_LSAInformationWithdraw = -1;
1666 static gint ett_gsm_map_ms_LSAIdentityList = -1;
1667 static gint ett_gsm_map_ms_BasicServiceList = -1;
1668 static gint ett_gsm_map_ms_DeleteSubscriberDataRes = -1;
1669 static gint ett_gsm_map_ms_VlrCamelSubscriptionInfo = -1;
1670 static gint ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList = -1;
1671 static gint ett_gsm_map_ms_MT_smsCAMELTDP_Criteria = -1;
1672 static gint ett_gsm_map_ms_TPDU_TypeCriterion = -1;
1673 static gint ett_gsm_map_ms_D_CSI = -1;
1674 static gint ett_gsm_map_ms_DP_AnalysedInfoCriteriaList = -1;
1675 static gint ett_gsm_map_ms_DP_AnalysedInfoCriterium = -1;
1676 static gint ett_gsm_map_ms_SS_CSI = -1;
1677 static gint ett_gsm_map_ms_SS_CamelData = -1;
1678 static gint ett_gsm_map_ms_SS_EventList = -1;
1679 static gint ett_gsm_map_ms_O_CSI = -1;
1680 static gint ett_gsm_map_ms_O_BcsmCamelTDPDataList = -1;
1681 static gint ett_gsm_map_ms_O_BcsmCamelTDPData = -1;
1682 static gint ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList = -1;
1683 static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList = -1;
1684 static gint ett_gsm_map_ms_O_BcsmCamelTDP_Criteria = -1;
1685 static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria = -1;
1686 static gint ett_gsm_map_ms_DestinationNumberCriteria = -1;
1687 static gint ett_gsm_map_ms_DestinationNumberList = -1;
1688 static gint ett_gsm_map_ms_DestinationNumberLengthList = -1;
1689 static gint ett_gsm_map_ms_BasicServiceCriteria = -1;
1690 static gint ett_gsm_map_ms_O_CauseValueCriteria = -1;
1691 static gint ett_gsm_map_ms_T_CauseValueCriteria = -1;
1692 static gint ett_gsm_map_ms_SupportedCamelPhases = -1;
1693 static gint ett_gsm_map_ms_OfferedCamel4CSIs = -1;
1694 static gint ett_gsm_map_ms_OfferedCamel4Functionalities = -1;
1695 static gint ett_gsm_map_ms_SMS_CSI = -1;
1696 static gint ett_gsm_map_ms_SMS_CAMEL_TDP_DataList = -1;
1697 static gint ett_gsm_map_ms_SMS_CAMEL_TDP_Data = -1;
1698 static gint ett_gsm_map_ms_M_CSI = -1;
1699 static gint ett_gsm_map_ms_MG_CSI = -1;
1700 static gint ett_gsm_map_ms_MobilityTriggers = -1;
1701 static gint ett_gsm_map_ms_T_CSI = -1;
1702 static gint ett_gsm_map_ms_T_BcsmCamelTDPDataList = -1;
1703 static gint ett_gsm_map_ms_T_BcsmCamelTDPData = -1;
1704 static gint ett_gsm_map_ms_SendRoutingInfoForGprsArg = -1;
1705 static gint ett_gsm_map_ms_SendRoutingInfoForGprsRes = -1;
1706 static gint ett_gsm_map_ms_FailureReportArg = -1;
1707 static gint ett_gsm_map_ms_FailureReportRes = -1;
1708 static gint ett_gsm_map_ms_NoteMsPresentForGprsArg = -1;
1709 static gint ett_gsm_map_ms_NoteMsPresentForGprsRes = -1;
1710 static gint ett_gsm_map_ms_ResetArg = -1;
1711 static gint ett_gsm_map_ms_RestoreDataArg = -1;
1712 static gint ett_gsm_map_ms_RestoreDataRes = -1;
1713 static gint ett_gsm_map_ms_VBSDataList = -1;
1714 static gint ett_gsm_map_ms_VGCSDataList = -1;
1715 static gint ett_gsm_map_ms_VoiceGroupCallData = -1;
1716 static gint ett_gsm_map_ms_AdditionalSubscriptions = -1;
1717 static gint ett_gsm_map_ms_VoiceBroadcastData = -1;
1718 static gint ett_gsm_map_ms_ProvideSubscriberInfoArg = -1;
1719 static gint ett_gsm_map_ms_ProvideSubscriberInfoRes = -1;
1720 static gint ett_gsm_map_ms_SubscriberInfo = -1;
1721 static gint ett_gsm_map_ms_MNPInfoRes = -1;
1722 static gint ett_gsm_map_ms_GPRSMSClass = -1;
1723 static gint ett_gsm_map_ms_RequestedInfo = -1;
1724 static gint ett_gsm_map_ms_LocationInformation = -1;
1725 static gint ett_gsm_map_ms_LocationInformationGPRS = -1;
1726 static gint ett_gsm_map_ms_SubscriberState = -1;
1727 static gint ett_gsm_map_ms_PS_SubscriberState = -1;
1728 static gint ett_gsm_map_ms_PDP_ContextInfoList = -1;
1729 static gint ett_gsm_map_ms_PDP_ContextInfo = -1;
1730 static gint ett_gsm_map_ms_AnyTimeInterrogationArg = -1;
1731 static gint ett_gsm_map_ms_AnyTimeInterrogationRes = -1;
1732 static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg = -1;
1733 static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes = -1;
1734 static gint ett_gsm_map_ms_RequestedSubscriptionInfo = -1;
1735 static gint ett_gsm_map_ms_MSISDN_BS_List = -1;
1736 static gint ett_gsm_map_ms_MSISDN_BS = -1;
1737 static gint ett_gsm_map_ms_CallForwardingData = -1;
1738 static gint ett_gsm_map_ms_CallBarringData = -1;
1739 static gint ett_gsm_map_ms_ODB_Info = -1;
1740 static gint ett_gsm_map_ms_CAMEL_SubscriptionInfo = -1;
1741 static gint ett_gsm_map_ms_AnyTimeModificationArg = -1;
1742 static gint ett_gsm_map_ms_AnyTimeModificationRes = -1;
1743 static gint ett_gsm_map_ms_ModificationRequestFor_CF_Info = -1;
1744 static gint ett_gsm_map_ms_ModificationRequestFor_CB_Info = -1;
1745 static gint ett_gsm_map_ms_ModificationRequestFor_ODB_data = -1;
1746 static gint ett_gsm_map_ms_ModificationRequestFor_CSI = -1;
1747 static gint ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data = -1;
1748 static gint ett_gsm_map_ms_NoteSubscriberDataModifiedArg = -1;
1749 static gint ett_gsm_map_ms_NoteSubscriberDataModifiedRes = -1;
1750 static gint ett_gsm_map_ms_NoteMM_EventArg = -1;
1751 static gint ett_gsm_map_ms_NoteMM_EventRes = -1;
1752 static gint ett_gsm_map_ms_Ext_SS_InfoFor_CSE = -1;
1753 static gint ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE = -1;
1754 static gint ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE = -1;
1755
1756 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
1757
1758 static gint ett_gsm_map_ch_CUG_CheckInfo = -1;
1759 static gint ett_gsm_map_ch_SendRoutingInfoArg = -1;
1760 static gint ett_gsm_map_ch_SuppressMTSS = -1;
1761 static gint ett_gsm_map_ch_SendRoutingInfoRes_U = -1;
1762 static gint ett_gsm_map_ch_AllowedServices = -1;
1763 static gint ett_gsm_map_ch_CCBS_Indicators = -1;
1764 static gint ett_gsm_map_ch_RoutingInfo = -1;
1765 static gint ett_gsm_map_ch_ForwardingData = -1;
1766 static gint ett_gsm_map_ch_ProvideRoamingNumberArg = -1;
1767 static gint ett_gsm_map_ch_ProvideRoamingNumberRes = -1;
1768 static gint ett_gsm_map_ch_ResumeCallHandlingArg = -1;
1769 static gint ett_gsm_map_ch_UU_Data = -1;
1770 static gint ett_gsm_map_ch_ResumeCallHandlingRes = -1;
1771 static gint ett_gsm_map_ch_CamelInfo = -1;
1772 static gint ett_gsm_map_ch_ExtendedRoutingInfo = -1;
1773 static gint ett_gsm_map_ch_CamelRoutingInfo = -1;
1774 static gint ett_gsm_map_ch_GmscCamelSubscriptionInfo = -1;
1775 static gint ett_gsm_map_ch_SetReportingStateArg = -1;
1776 static gint ett_gsm_map_ch_SetReportingStateRes = -1;
1777 static gint ett_gsm_map_ch_StatusReportArg = -1;
1778 static gint ett_gsm_map_ch_EventReportData = -1;
1779 static gint ett_gsm_map_ch_CallReportData = -1;
1780 static gint ett_gsm_map_ch_StatusReportRes = -1;
1781 static gint ett_gsm_map_ch_RemoteUserFreeArg = -1;
1782 static gint ett_gsm_map_ch_RemoteUserFreeRes = -1;
1783 static gint ett_gsm_map_ch_IST_AlertArg = -1;
1784 static gint ett_gsm_map_ch_IST_AlertRes = -1;
1785 static gint ett_gsm_map_ch_IST_CommandArg = -1;
1786 static gint ett_gsm_map_ch_IST_CommandRes = -1;
1787 static gint ett_gsm_map_ch_ReleaseResourcesArg = -1;
1788 static gint ett_gsm_map_ch_ReleaseResourcesRes = -1;
1789
1790 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
1791
1792 static gint ett_gsm_map_lcs_RoutingInfoForLCS_Arg = -1;
1793 static gint ett_gsm_map_lcs_RoutingInfoForLCS_Res = -1;
1794 static gint ett_gsm_map_lcs_LCSLocationInfo = -1;
1795 static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Arg = -1;
1796 static gint ett_gsm_map_lcs_LocationType = -1;
1797 static gint ett_gsm_map_lcs_DeferredLocationEventType = -1;
1798 static gint ett_gsm_map_lcs_LCS_ClientID = -1;
1799 static gint ett_gsm_map_lcs_LCSClientName = -1;
1800 static gint ett_gsm_map_lcs_LCSRequestorID = -1;
1801 static gint ett_gsm_map_lcs_LCS_QoS = -1;
1802 static gint ett_gsm_map_lcs_ResponseTime = -1;
1803 static gint ett_gsm_map_lcs_SupportedGADShapes = -1;
1804 static gint ett_gsm_map_lcs_LCSCodeword = -1;
1805 static gint ett_gsm_map_lcs_LCS_PrivacyCheck = -1;
1806 static gint ett_gsm_map_lcs_AreaEventInfo = -1;
1807 static gint ett_gsm_map_lcs_AreaDefinition = -1;
1808 static gint ett_gsm_map_lcs_AreaList = -1;
1809 static gint ett_gsm_map_lcs_Area = -1;
1810 static gint ett_gsm_map_lcs_PeriodicLDRInfo = -1;
1811 static gint ett_gsm_map_lcs_ReportingPLMNList = -1;
1812 static gint ett_gsm_map_lcs_PLMNList = -1;
1813 static gint ett_gsm_map_lcs_ReportingPLMN = -1;
1814 static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Res = -1;
1815 static gint ett_gsm_map_lcs_SubscriberLocationReport_Arg = -1;
1816 static gint ett_gsm_map_lcs_Deferredmt_lrData = -1;
1817 static gint ett_gsm_map_lcs_SubscriberLocationReport_Res = -1;
1818
1819 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
1820
1821 static gint ett_gsm_map_gr_PrepareGroupCallArg = -1;
1822 static gint ett_gsm_map_gr_PrepareGroupCallRes = -1;
1823 static gint ett_gsm_map_gr_SendGroupCallEndSignalArg = -1;
1824 static gint ett_gsm_map_gr_SendGroupCallEndSignalRes = -1;
1825 static gint ett_gsm_map_gr_ForwardGroupCallSignallingArg = -1;
1826 static gint ett_gsm_map_gr_ProcessGroupCallSignallingArg = -1;
1827 static gint ett_gsm_map_gr_StateAttributes = -1;
1828 static gint ett_gsm_map_gr_SendGroupCallInfoArg = -1;
1829 static gint ett_gsm_map_gr_SendGroupCallInfoRes = -1;
1830
1831 /* --- Module MAP-DialogueInformation --- --- ---                             */
1832
1833 static gint ett_gsm_map_dialogue_MAP_DialoguePDU = -1;
1834 static gint ett_gsm_map_dialogue_MAP_OpenInfo = -1;
1835 static gint ett_gsm_map_dialogue_MAP_AcceptInfo = -1;
1836 static gint ett_gsm_map_dialogue_MAP_CloseInfo = -1;
1837 static gint ett_gsm_map_dialogue_MAP_RefuseInfo = -1;
1838 static gint ett_gsm_map_dialogue_MAP_UserAbortInfo = -1;
1839 static gint ett_gsm_map_dialogue_MAP_UserAbortChoice = -1;
1840 static gint ett_gsm_map_dialogue_MAP_ProviderAbortInfo = -1;
1841
1842 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
1843
1844
1845 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
1846
1847
1848 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
1849
1850
1851 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
1852
1853
1854 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
1855
1856
1857 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
1858
1859
1860 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
1861
1862
1863 /* --- Module MAP-Errors --- --- ---                                          */
1864
1865
1866 /* --- Module MAP-Protocol --- --- ---                                        */
1867
1868
1869 /* --- Module DummyMAP --- --- ---                                            */
1870
1871 static gint ett_gsm_old_Component = -1;
1872 static gint ett_gsm_old_Invoke = -1;
1873 static gint ett_gsm_old_ReturnResult = -1;
1874 static gint ett_gsm_old_T_resultretres = -1;
1875 static gint ett_gsm_old_ReturnError = -1;
1876 static gint ett_gsm_old_Reject = -1;
1877 static gint ett_gsm_old_T_invokeIDRej = -1;
1878 static gint ett_gsm_old_T_problem = -1;
1879 static gint ett_gsm_old_MAP_OPERATION = -1;
1880 static gint ett_gsm_old_MAP_ERROR = -1;
1881 static gint ett_gsm_old_Bss_APDU = -1;
1882 static gint ett_gsm_old_ProvideSIWFSNumberArg = -1;
1883 static gint ett_gsm_old_ProvideSIWFSNumberRes = -1;
1884 static gint ett_gsm_old_PurgeMSArgV2 = -1;
1885 static gint ett_gsm_old_PrepareHO_ArgOld = -1;
1886 static gint ett_gsm_old_PrepareHO_ResOld = -1;
1887 static gint ett_gsm_old_SendAuthenticationInfoResOld = -1;
1888 static gint ett_gsm_old_SendAuthenticationInfoResOld_item = -1;
1889 static gint ett_gsm_old_SendIdentificationResV2 = -1;
1890 static gint ett_gsm_old_TripletListold = -1;
1891 static gint ett_gsm_old_AuthenticationTriplet_v2 = -1;
1892 static gint ett_gsm_old_SIWFSSignallingModifyArg = -1;
1893 static gint ett_gsm_old_SIWFSSignallingModifyRes = -1;
1894 static gint ett_gsm_old_SecureTransportArg = -1;
1895 static gint ett_gsm_old_SecureTransportErrorParam = -1;
1896 static gint ett_gsm_old_SecureTransportRes = -1;
1897 static gint ett_gsm_old_SecurityHeader = -1;
1898 static gint ett_gsm_old_OriginalComponentIdentifier = -1;
1899 static gint ett_gsm_old_OperationCode = -1;
1900 static gint ett_gsm_old_ErrorCode = -1;
1901 static gint ett_gsm_old_PlmnContainer_U = -1;
1902 static gint ett_gsm_old_T_operatorSS_Code = -1;
1903 static gint ett_gsm_old_ForwardSM_Arg = -1;
1904 static gint ett_gsm_old_SM_RP_DAold = -1;
1905 static gint ett_gsm_old_SM_RP_OAold = -1;
1906 static gint ett_gsm_old_SendRoutingInfoArgV2 = -1;
1907 static gint ett_gsm_old_SendRoutingInfoResV2 = -1;
1908
1909 /* --- Module SS-DataTypes --- --- ---                                        */
1910
1911 static gint ett_gsm_ss_NotifySS_Arg = -1;
1912 static gint ett_gsm_ss_BeginSubscriberActivityArg = -1;
1913 static gint ett_gsm_ss_ForwardChargeAdviceArg = -1;
1914 static gint ett_gsm_ss_ChargingInformation = -1;
1915 static gint ett_gsm_ss_ForwardCUG_InfoArg = -1;
1916 static gint ett_gsm_ss_ECT_Indicator = -1;
1917 static gint ett_gsm_ss_NameIndicator = -1;
1918 static gint ett_gsm_ss_Name = -1;
1919 static gint ett_gsm_ss_NameSet = -1;
1920 static gint ett_gsm_ss_RDN = -1;
1921 static gint ett_gsm_ss_RemotePartyNumber = -1;
1922 static gint ett_gsm_ss_AccessRegisterCCEntryArg = -1;
1923 static gint ett_gsm_ss_CallDeflectionArg = -1;
1924 static gint ett_gsm_ss_UserUserServiceArg = -1;
1925 static gint ett_gsm_ss_LocationNotificationArg = -1;
1926 static gint ett_gsm_ss_LocationNotificationRes = -1;
1927 static gint ett_gsm_ss_LCS_MOLRArg = -1;
1928 static gint ett_gsm_ss_LCS_MOLRRes = -1;
1929 static gint ett_gsm_ss_LCS_AreaEventRequestArg = -1;
1930 static gint ett_gsm_ss_LCS_AreaEventReportArg = -1;
1931 static gint ett_gsm_ss_LCS_AreaEventCancellationArg = -1;
1932 static gint ett_gsm_ss_LCS_PeriodicLocationRequestArg = -1;
1933 static gint ett_gsm_ss_LCS_PeriodicLocationRequestRes = -1;
1934 static gint ett_gsm_ss_LCS_LocationUpdateArg = -1;
1935 static gint ett_gsm_ss_LCS_LocationUpdateRes = -1;
1936 static gint ett_gsm_ss_LCS_PeriodicLocationCancellationArg = -1;
1937
1938 /* --- Module SS-Operations --- --- ---                                       */
1939
1940
1941 /*--- End of included file: packet-gsm_map-ett.c ---*/
1942 #line 172 "packet-gsmmap-template.c"
1943
1944 static dissector_table_t        sms_dissector_table;    /* SMS TPDU */
1945 static dissector_handle_t       data_handle;
1946 static dissector_handle_t       ranap_handle;
1947 static dissector_handle_t       dtap_handle;
1948 static dissector_handle_t       map_handle;
1949
1950 /* Preferenc settings default */
1951 #define MAX_SSN 254
1952 static range_t *global_ssn_range;
1953
1954 /* Global variables */
1955 static guint32 opcode=0;
1956 static guint32 errorCode;
1957 static proto_tree *top_tree;
1958 static int application_context_version;
1959 static guint ProtocolId; 
1960 guint protocolId;
1961 guint AccessNetworkProtocolId;
1962 const char *obj_id = NULL;
1963 static int gsm_map_tap = -1;
1964
1965 #define SMS_ENCODING_NOT_SET    0
1966 #define SMS_ENCODING_7BIT               1
1967 #define SMS_ENCODING_8BIT               2
1968 #define SMS_ENCODING_UCS2               3
1969 #define SMS_ENCODING_7BIT_LANG  4
1970 #define SMS_ENCODING_UCS2_LANG  5
1971
1972 static guint8 sms_encoding;
1973
1974 /* Forward declarations */
1975 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
1976 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
1977 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
1978 const gchar* gsm_map_opr_code(guint32 val);
1979
1980 /* Value strings */
1981
1982 const value_string gsm_map_PDP_Type_Organisation_vals[] = {
1983   {  0, "ETSI" },
1984   {  1, "IETF" },
1985   { 0, NULL }
1986 };
1987
1988 const value_string gsm_map_ietf_defined_pdp_vals[] = {
1989   {  0x21, "IPv4 Address" },
1990   {  0x57, "IPv6 Address" },
1991   { 0, NULL }
1992 };
1993
1994 const value_string gsm_map_etsi_defined_pdp_vals[] = {
1995   {  1, "PPP" },
1996   { 0, NULL }
1997 };
1998
1999 static const value_string gsm_map_tag_vals[] = {
2000   {  0x4, "Bearer Capability" },
2001   { 0, NULL }
2002 };
2003
2004 static const value_string gsm_map_disc_par_vals[] = {
2005   {  0, "Not Transparent" },
2006   {  1, "Transparent" },
2007   { 0, NULL }
2008 };
2009
2010 char *
2011 unpack_digits(tvbuff_t *tvb, int offset) {
2012
2013         int length;
2014         guint8 octet;
2015         int i=0;
2016         char *digit_str;
2017
2018         length = tvb_length(tvb);
2019         if (length < offset)
2020                 return "";
2021         digit_str = ep_alloc((length - offset)*2+1);
2022
2023         while ( offset < length ){
2024
2025                 octet = tvb_get_guint8(tvb,offset);
2026                 digit_str[i] = ((octet & 0x0f) + '0');
2027                 i++;
2028
2029                 /*
2030                  * unpack second value in byte
2031                  */
2032                 octet = octet >> 4;
2033
2034                 if (octet == 0x0f)      /* odd number bytes - hit filler */
2035                         break;
2036
2037                 digit_str[i] = ((octet & 0x0f) + '0');
2038                 i++;
2039                 offset++;
2040
2041         }
2042         digit_str[i]= '\0';
2043         return digit_str;
2044 }
2045
2046 /* returns value in kb/s */
2047 static guint
2048 gsm_map_calc_bitrate(guint8 value){
2049
2050         guint8 granularity;
2051         guint returnvalue; 
2052
2053         if (value == 0xff)
2054                 return 0;
2055
2056         granularity = value >> 6;
2057         returnvalue = value & 0x7f;
2058         switch (granularity){
2059         case 0:
2060                 break;
2061         case 1:
2062                 returnvalue = ((returnvalue - 0x40) << 3)+64;
2063                 break;
2064         case 2:
2065                 returnvalue = (returnvalue << 6)+576;
2066                 break;
2067         case 3:
2068                 returnvalue = (returnvalue << 6)+576;
2069                 break;
2070         }
2071         return returnvalue;
2072
2073 }
2074
2075 static void 
2076 dissect_gsm_map_ext_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx){
2077         int offset = 0;
2078     proto_tree *subtree;
2079         guint8 octet;
2080         guint16 value;
2081
2082         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext_qos_subscribed);
2083         /*  OCTET 1:
2084                 Allocation/Retention Priority (This octet encodes each priority level defined in
2085                 23.107 as the binary value of the priority level, declaration in 29.060)
2086                 Octets 2-9 are coded according to 3GPP TS 24.008[35] Quality of Service Octets
2087                 6-13.
2088          */
2089         /* Allocation/Retention Priority */
2090         proto_tree_add_item(subtree, hf_gsm_map_ext_qos_subscribed_pri, tvb, offset, 1, FALSE);
2091         offset++;
2092
2093         /* Quality of Service Octets 6-13.( Octet 2 - 9 Here) */
2094
2095         /* Traffic class, octet 6 (see 3GPP TS 23.107) Bits 8 7 6 */
2096         proto_tree_add_item(subtree, hf_gsm_map_qos_traffic_cls, tvb, offset, 1, FALSE);
2097         /* Delivery order, octet 6 (see 3GPP TS 23.107) Bits 5 4 */
2098         proto_tree_add_item(subtree, hf_gsm_map_qos_del_order, tvb, offset, 1, FALSE);
2099         /* Delivery of erroneous SDUs, octet 6 (see 3GPP TS 23.107) Bits 3 2 1 */
2100         proto_tree_add_item(subtree, hf_gsm_map_qos_del_of_err_sdu, tvb, offset, 1, FALSE);
2101         offset++;
2102
2103         /* Maximum SDU size, octet 7 (see 3GPP TS 23.107) */
2104         octet = tvb_get_guint8(tvb,offset);
2105         switch (octet){
2106         case 0:
2107                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum SDU size/Reserved");
2108                 break;
2109         case 0x93:
2110                 value = 1502;
2111                 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2112                 break;
2113         case 0x98:
2114                 value = 1510;
2115                 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2116                 break;
2117         case 0x99:
2118                 value = 1532;
2119                 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2120                 break;
2121         default:
2122                 if (octet<0x97){
2123                         value = octet * 10;
2124                         proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2125                 }else{
2126                         proto_tree_add_text(subtree, tvb, offset, 1, "Maximum SDU size value 0x%x not defined in TS 24.008",octet);
2127                 }                       
2128         }
2129         offset++;
2130
2131         /* Maximum bit rate for uplink, octet 8 */
2132         octet = tvb_get_guint8(tvb,offset);
2133         if (octet == 0 ){
2134                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for uplink/Reserved"  );
2135         }else{
2136                 proto_tree_add_uint(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2137         }
2138         offset++;
2139         /* Maximum bit rate for downlink, octet 9 (see 3GPP TS 23.107) */
2140         octet = tvb_get_guint8(tvb,offset);
2141         if (octet == 0 ){
2142                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for downlink/Reserved"  );
2143         }else{
2144                 proto_tree_add_uint(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2145         }
2146         offset++;
2147         /* Residual Bit Error Rate (BER), octet 10 (see 3GPP TS 23.107) Bits 8 7 6 5 */ 
2148         proto_tree_add_item(subtree, hf_gsm_map_qos_ber, tvb, offset, 1, FALSE);
2149         /* SDU error ratio, octet 10 (see 3GPP TS 23.107) */
2150         proto_tree_add_item(subtree, hf_gsm_map_qos_sdu_err_rat, tvb, offset, 1, FALSE);
2151         offset++;
2152
2153         /* Transfer delay, octet 11 (See 3GPP TS 23.107) Bits 8 7 6 5 4 3 */
2154         proto_tree_add_item(subtree, hf_gsm_map_qos_transfer_delay, tvb, offset, 1, FALSE);
2155         /* Traffic handling priority, octet 11 (see 3GPP TS 23.107) Bits 2 1 */
2156         proto_tree_add_item(subtree, hf_gsm_map_qos_traff_hdl_pri, tvb, offset, 1, FALSE);
2157         offset++;
2158
2159         /*      Guaranteed bit rate for uplink, octet 12 (See 3GPP TS 23.107)
2160                 Coding is identical to that of Maximum bit rate for uplink.
2161          */
2162         octet = tvb_get_guint8(tvb,offset);
2163         if (octet == 0 ){
2164                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for uplink/Reserved"  );
2165         }else{
2166                 proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2167         }
2168         offset++;
2169
2170         /*      Guaranteed bit rate for downlink, octet 13(See 3GPP TS 23.107)
2171                 Coding is identical to that of Maximum bit rate for uplink.
2172          */
2173         octet = tvb_get_guint8(tvb,offset);
2174         if (octet == 0 ){
2175                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for downlink/Reserved"  );
2176         }else{
2177                 proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2178         }
2179
2180 }
2181
2182 #define  ELLIPSOID_POINT 0
2183 #define  ELLIPSOID_POINT_WITH_UNCERT_CIRC 1
2184 #define  ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE 3
2185 #define  POLYGON 5
2186 #define  ELLIPSOID_POINT_WITH_ALT 8
2187 #define  ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID 9
2188 #define  ELLIPSOID_ARC 10
2189 /*
2190 4 3 2 1
2191 0 0 0 0 Ellipsoid Point
2192 0 0 0 1 Ellipsoid point with uncertainty Circle
2193 0 0 1 1 Ellipsoid point with uncertainty Ellipse
2194 0 1 0 1 Polygon 
2195 1 0 0 0 Ellipsoid point with altitude
2196 1 0 0 1 Ellipsoid point with altitude and uncertainty Ellipsoid
2197 1 0 1 0 Ellipsoid Arc
2198 other values reserved for future use
2199 */
2200
2201 /* TS 23 032 Table 2a: Coding of Type of Shape */
2202 static const value_string type_of_shape_vals[] = {
2203         { ELLIPSOID_POINT,              "Ellipsoid Point"},
2204         { ELLIPSOID_POINT_WITH_UNCERT_CIRC,             "Ellipsoid point with uncertainty Circle"},
2205         { ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE,          "Ellipsoid point with uncertainty Ellipse"},
2206         { POLYGON,              "Polygon"},
2207         { ELLIPSOID_POINT_WITH_ALT,             "Ellipsoid point with altitude"},
2208         { ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID,                "Ellipsoid point with altitude and uncertainty Ellipsoid"},
2209         { ELLIPSOID_ARC,                "Ellipsoid Arc"},
2210         { 0,    NULL }
2211 };
2212
2213 /* 3GPP TS 23.032 7.3.1 */
2214 static const value_string sign_of_latitude_vals[] = {
2215         { 0,            "North"},
2216         { 1,            "South"},
2217         { 0,    NULL }
2218 };
2219
2220 static const value_string dir_of_alt_vals[] = {
2221         { 0,            "Altitude expresses height"},
2222         { 1,            "Altitude expresses depth"},
2223         { 0,    NULL }
2224 };
2225
2226 static const value_string gsm_map_cbs_data_coding_scheme_coding_grp_vals[] = {
2227         { 0, "Coding Group 0(Language using the GSM 7 bit default alphabet)" }, 
2228         { 1, "Coding Group 1" }, 
2229         { 2, "Coding Group 2" }, 
2230         { 3, "Coding Group 3" }, 
2231         { 4, "General Data Coding indication" }, 
2232         { 5, "General Data Coding indication" }, 
2233         { 6, "General Data Coding indication" }, 
2234         { 7, "General Data Coding indication" }, 
2235         { 8, "Reserved" }, 
2236         { 9, "Message with User Data Header (UDH) structure" }, 
2237         { 10,"Reserved" }, 
2238         { 11,"Reserved" }, 
2239         { 12,"Reserved" }, 
2240         { 13,"Reserved" }, 
2241         { 14,"Defined by the WAP Forum" }, 
2242         { 15,"Data coding / message handling" }, 
2243         { 0, NULL}
2244 };
2245 /* Coding group 0 
2246  * Bits 3..0 indicate the language:
2247  */
2248 static const value_string gsm_map_cbs_coding_grp0_lang_vals[] = {
2249         { 0, "German"},
2250         { 1, "English"},
2251         { 2, "Italian"},
2252         { 3, "French"},
2253         { 4, "Spanish"},
2254         { 5, "Dutch"},
2255         { 6, "Swedish"},
2256         { 7, "Danish"},
2257         { 8, "Portuguese"},
2258         { 9, "Finnish"},
2259         { 10, "Norwegian"},
2260         { 11, "Greek"},
2261         { 12, "Turkish"},
2262         { 13, "Hungarian"},
2263         { 14, "Polish"},
2264         { 15, "Language unspecified"},
2265         { 0,    NULL }
2266 };
2267
2268 static const value_string gsm_map_cbs_coding_grp1_lang_vals[] = {
2269         { 0, "GSM 7 bit default alphabet; message preceded by language indication"},
2270         { 1, "UCS2; message preceded by language indication"},
2271         { 2, "Reserved"},
2272         { 3, "Reserved"},
2273         { 4, "Reserved"},
2274         { 5, "Reserved"},
2275         { 6, "Reserved"},
2276         { 7, "Reserved"},
2277         { 8, "Reserved"},
2278         { 9, "Reserved"},
2279         { 10, "Reserved"},
2280         { 11, "Reserved"},
2281         { 12, "Reserved"},
2282         { 13, "Reserved"},
2283         { 14, "Reserved"},
2284         { 15, "Reserved"},
2285         { 0,    NULL }
2286 };
2287 static const value_string gsm_map_cbs_coding_grp2_lang_vals[] = {
2288         { 0, "Czech"},
2289         { 1, "Hebrew"},
2290         { 2, "Arabic"},
2291         { 3, "Russian"},
2292         { 4, "Icelandic"},
2293         { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2294         { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2295         { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2296         { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2297         { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2298         { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2299         { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2300         { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2301         { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2302         { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2303         { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2304         { 0,    NULL }
2305 };
2306 static const value_string gsm_map_cbs_coding_grp3_lang_vals[] = {
2307         { 0, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2308         { 1, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2309         { 2, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2310         { 3, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2311         { 4, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2312         { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2313         { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2314         { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2315         { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2316         { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2317         { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2318         { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2319         { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2320         { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2321         { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2322         { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2323         { 0,    NULL }
2324 };
2325
2326 static const true_false_string gsm_map_cbs_coding_grp4_7_comp_vals = {
2327   "The text is compressed using the compression algorithm defined in 3GPP TS 23.042",
2328   "The text is uncompressed"
2329 };
2330
2331 static const true_false_string gsm_map_cbs_coding_grp4_7_class_ind_vals = {
2332   "Bits 1 to 0 have a message class meaning",
2333   "Bits 1 to 0 are reserved and have no message class meaning"
2334 };
2335
2336 /* Bits 3 and 2 indicate the character set being used, as follows: */
2337
2338 static const value_string gsm_map_cbs_coding_grp4_7_char_set_vals[] = {
2339         { 0, "GSM 7 bit default alphabet"},
2340         { 1, "8 bit data"},
2341         { 2, "UCS2 (16 bit)"},
2342         { 3, "Reserved"},
2343         { 0,    NULL }
2344 };
2345
2346 static const value_string gsm_map_cbs_coding_grp4_7_class_vals[] = {
2347         { 0, "Class 0"},
2348         { 1, "Class 1 Default meaning: ME-specific"},
2349         { 2, "Class 2 (U)SIM specific message"},
2350         { 3, "Class 3 Default meaning: TE-specific (see 3GPP TS 27.005"},
2351         { 0,    NULL }
2352 };
2353
2354 static const value_string gsm_map_cbs_coding_grp15_mess_code_vals[] = {
2355         { 0, "GSM 7 bit default alphabet"},
2356         { 1, "8 bit data"},
2357         { 0,    NULL }
2358 };
2359
2360 static const value_string gsm_map_cbs_coding_grp15_class_vals[] = {
2361         { 0, "GSM 7 bit default alphabet"},
2362         { 1, "8 bit data"},
2363         { 0,    NULL }
2364 };
2365
2366
2367 /* 3GPP TS 23.038 version 7.0.0 Release 7 */
2368 guint8
2369 dissect_cbs_data_coding_scheme(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
2370 {
2371         guint8 octet;
2372         guint8 coding_grp;
2373         guint8 character_set;
2374
2375         octet = tvb_get_guint8(tvb,0);
2376         coding_grp = octet >>4;
2377         proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp, tvb, 0, 1, FALSE);
2378         
2379         sms_encoding = SMS_ENCODING_NOT_SET;
2380         switch (coding_grp){
2381         case 0:
2382                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp0_lang, tvb, 0, 1, FALSE);
2383                 sms_encoding = SMS_ENCODING_7BIT;
2384                 break;
2385         case 1:
2386                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp1_lang, tvb, 0, 1, FALSE);
2387                 if ((octet & 0x0f)== 0){
2388                         sms_encoding = SMS_ENCODING_7BIT_LANG;
2389                 }else{
2390                         sms_encoding = SMS_ENCODING_UCS2_LANG;
2391                 }
2392                 break;
2393         case 2:
2394                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp2_lang, tvb, 0, 1, FALSE);
2395                 sms_encoding = SMS_ENCODING_7BIT;
2396                 break;
2397         case 3:
2398                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp3_lang, tvb, 0, 1, FALSE);
2399                 sms_encoding = SMS_ENCODING_7BIT;
2400                 break;
2401                 /* Coding_grp 01xx */
2402         case 4:
2403         case 5:
2404         case 6:
2405         case 7:
2406                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_comp, tvb, 0, 1, FALSE);
2407                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class_ind, tvb, 0, 1, FALSE);
2408                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, 0, 1, FALSE);
2409                 if ((octet & 0x10)== 0x10){
2410                         proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, 0, 1, FALSE);
2411                 }
2412                 /* Bits 3 and 2 indicate the character set being used, */
2413                 character_set = (octet&0x0c)>>2;
2414                 switch (character_set){
2415                 case 0:
2416                         /* GSM 7 bit default alphabet */
2417                         sms_encoding = SMS_ENCODING_7BIT;
2418                         break;
2419                 case 1:
2420                         /* 8 bit data */
2421                         sms_encoding = SMS_ENCODING_8BIT;
2422                         break;
2423                 case 2:
2424                         /* UCS2 (16 bit) */
2425                         sms_encoding = SMS_ENCODING_UCS2;
2426                         break;
2427                 case 3:
2428                         /* Reserved */
2429                         sms_encoding = SMS_ENCODING_NOT_SET;
2430                         break;
2431                 default:
2432                         break;
2433                 }
2434                 break;
2435         case 8:
2436                 /* Reserved coding groups */
2437                 break;
2438         case 9:
2439                 /* Message with User Data Header (UDH) structure:*/
2440                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, 0, 1, FALSE);
2441                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, 0, 1, FALSE);
2442                 character_set = (octet&0x0c)>>2;
2443                 switch (character_set){
2444                 case 0:
2445                         /* GSM 7 bit default alphabet */
2446                         sms_encoding = SMS_ENCODING_7BIT;
2447                         break;
2448                 case 1:
2449                         /* 8 bit data */
2450                         sms_encoding = SMS_ENCODING_8BIT;
2451                         break;
2452                 case 2:
2453                         /* UCS2 (16 bit) */
2454                         sms_encoding = SMS_ENCODING_UCS2;
2455                         break;
2456                 case 3:
2457                         /* Reserved */
2458                         sms_encoding = SMS_ENCODING_NOT_SET;
2459                         break;
2460                 default:
2461                         break;
2462                 }
2463                 break;
2464         case 10:
2465         case 11:
2466         case 12:
2467         case 13:
2468                 /* 1010..1101 Reserved coding groups */
2469                 break;
2470         case 14:
2471                 /* Defined by the WAP Forum 
2472                  * "Wireless Datagram Protocol Specification", Wireless Application Protocol Forum Ltd.
2473                  */
2474                 break;
2475         case 15:
2476                 /* Data coding / message handling */
2477                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_mess_code, tvb, 0, 1, FALSE);
2478                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_class, tvb, 0, 1, FALSE);
2479                 character_set = (octet&0x04)>>2;
2480                 if (character_set == 0){
2481                         sms_encoding = SMS_ENCODING_7BIT;
2482                 }else{
2483                         sms_encoding = SMS_ENCODING_8BIT;
2484                 }
2485                 break;
2486         default:
2487                 break;
2488         }
2489
2490         return sms_encoding;
2491 }
2492 void
2493 dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
2494 {
2495  char           *digit_str;
2496  guint8         octet;
2497  guint8         na;
2498  guint8         np;
2499
2500  proto_tree_add_item(tree, hf_gsm_map_extension, tvb, 0,1,FALSE);
2501  proto_tree_add_item(tree, hf_gsm_map_nature_of_number, tvb, 0,1,FALSE);
2502  proto_tree_add_item(tree, hf_gsm_map_number_plan, tvb, 0,1,FALSE);
2503
2504  digit_str = unpack_digits(tvb, 1);
2505
2506  proto_tree_add_string(tree, hf_gsm_map_address_digits, tvb, 1, -1, digit_str);
2507
2508  octet = tvb_get_guint8(tvb,0);
2509  na = (octet & 0x70)>>4;
2510  np = octet & 0x0f;
2511  if ((na == 1) && (np==1))/*International Number & E164*/
2512         dissect_e164_cc(tvb, tree, 1, TRUE);
2513  else if(np==6)
2514         dissect_e212_mcc_mnc(tvb, tree, 1); 
2515
2516 }
2517
2518
2519 /*--- Included file: packet-gsm_map-fn.c ---*/
2520 #line 1 "packet-gsm_map-fn.c"
2521
2522 /* --- Module MAP-SS-Code --- --- ---                                         */
2523
2524
2525
2526 int
2527 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_) {
2528   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2529                                        NULL);
2530
2531   return offset;
2532 }
2533
2534
2535 /* --- Module MAP-BS-Code --- --- ---                                         */
2536
2537
2538
2539 static int
2540 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_) {
2541   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2542                                        NULL);
2543
2544   return offset;
2545 }
2546
2547
2548
2549 static int
2550 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_) {
2551   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2552                                        NULL);
2553
2554   return offset;
2555 }
2556
2557
2558 /* --- Module MAP-TS-Code --- --- ---                                         */
2559
2560
2561
2562 static int
2563 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_) {
2564   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2565                                        NULL);
2566
2567   return offset;
2568 }
2569
2570
2571
2572 static int
2573 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_) {
2574   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2575                                        NULL);
2576
2577   return offset;
2578 }
2579
2580
2581 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
2582
2583
2584
2585 static int
2586 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_) {
2587   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &obj_id);
2588
2589   return offset;
2590 }
2591
2592
2593
2594 static int
2595 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_) {
2596 #line 167 "gsmmap.cnf"
2597   proto_tree_add_text(tree, tvb, offset, -1, "Extension Data");
2598   if (obj_id){
2599          offset=call_ber_oid_callback(obj_id, tvb, offset, actx->pinfo, tree);
2600   }else{
2601          call_dissector(data_handle, tvb, actx->pinfo, tree);
2602          offset = tvb_length_remaining(tvb,offset);
2603   }     
2604
2605
2606
2607   return offset;
2608 }
2609
2610
2611 static const ber_sequence_t gsm_map_PrivateExtension_sequence[] = {
2612   { &hf_gsm_map_extId       , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extId },
2613   { &hf_gsm_map_extType     , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extType },
2614   { NULL, 0, 0, 0, NULL }
2615 };
2616
2617 static int
2618 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_) {
2619   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2620                                    gsm_map_PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension);
2621
2622   return offset;
2623 }
2624
2625
2626 static const ber_sequence_t gsm_map_PrivateExtensionList_sequence_of[1] = {
2627   { &hf_gsm_map_PrivateExtensionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PrivateExtension },
2628 };
2629
2630 static int
2631 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_) {
2632   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2633                                       gsm_map_PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList);
2634
2635   return offset;
2636 }
2637
2638
2639 static const ber_sequence_t gsm_map_PCS_Extensions_sequence[] = {
2640   { NULL, 0, 0, 0, NULL }
2641 };
2642
2643 static int
2644 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_) {
2645   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2646                                    gsm_map_PCS_Extensions_sequence, hf_index, ett_gsm_map_PCS_Extensions);
2647
2648   return offset;
2649 }
2650
2651
2652 static const ber_sequence_t gsm_map_ExtensionContainer_sequence[] = {
2653   { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList },
2654   { &hf_gsm_map_pcs_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PCS_Extensions },
2655   { NULL, 0, 0, 0, NULL }
2656 };
2657
2658 int
2659 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_) {
2660   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2661                                    gsm_map_ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer);
2662
2663   return offset;
2664 }
2665
2666
2667
2668 static int
2669 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_) {
2670   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
2671
2672   return offset;
2673 }
2674
2675
2676 static const ber_sequence_t gsm_map_SLR_Arg_PCS_Extensions_sequence[] = {
2677   { &hf_gsm_map_na_ESRK_Request, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NULL },
2678   { NULL, 0, 0, 0, NULL }
2679 };
2680
2681 static int
2682 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_) {
2683   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2684                                    gsm_map_SLR_Arg_PCS_Extensions_sequence, hf_index, ett_gsm_map_SLR_Arg_PCS_Extensions);
2685
2686   return offset;
2687 }
2688
2689
2690 static const ber_sequence_t gsm_map_SLR_ArgExtensionContainer_sequence[] = {
2691   { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList },
2692   { &hf_gsm_map_slr_Arg_PCS_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_Arg_PCS_Extensions },
2693   { NULL, 0, 0, 0, NULL }
2694 };
2695
2696 static int
2697 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_) {
2698   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2699                                    gsm_map_SLR_ArgExtensionContainer_sequence, hf_index, ett_gsm_map_SLR_ArgExtensionContainer);
2700
2701   return offset;
2702 }
2703
2704
2705 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
2706
2707
2708
2709 static int
2710 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_) {
2711 #line 189 "gsmmap.cnf"
2712  tvbuff_t       *parameter_tvb;
2713  char           *digit_str;
2714
2715    offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2716                                        &parameter_tvb);
2717
2718
2719  if (!parameter_tvb)
2720         return offset;
2721
2722  digit_str = unpack_digits(parameter_tvb, 0);
2723  proto_tree_add_string(tree, hf_gsm_map_TBCD_digits, parameter_tvb, 0, -1, digit_str);
2724
2725
2726
2727   return offset;
2728 }
2729
2730
2731
2732 int
2733 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_) {
2734 #line 176 "gsmmap.cnf"
2735
2736  tvbuff_t       *parameter_tvb;
2737  proto_tree *subtree;
2738
2739   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2740                                        &parameter_tvb);
2741
2742
2743  if (!parameter_tvb)
2744         return offset;
2745
2746  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_isdn_address_string);
2747  dissect_gsm_map_msisdn(parameter_tvb, actx->pinfo , subtree);
2748
2749
2750
2751   return offset;
2752 }
2753
2754
2755
2756 int
2757 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_) {
2758   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
2759
2760   return offset;
2761 }
2762
2763
2764
2765 static int
2766 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_) {
2767   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
2768
2769   return offset;
2770 }
2771
2772
2773
2774 int
2775 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_) {
2776   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2777                                        NULL);
2778
2779   return offset;
2780 }
2781
2782
2783 static const value_string gsm_map_ProtocolId_vals[] = {
2784   {   1, "gsm-0408" },
2785   {   2, "gsm-0806" },
2786   {   3, "gsm-BSSMAP" },
2787   {   4, "ets-300102-1" },
2788   { 0, NULL }
2789 };
2790
2791
2792 static int
2793 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_) {
2794   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2795                                   &ProtocolId);
2796
2797   return offset;
2798 }
2799
2800
2801
2802 static int
2803 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_) {
2804 #line 270 "gsmmap.cnf"
2805  tvbuff_t       *parameter_tvb;
2806
2807    offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2808                                        &parameter_tvb);
2809
2810         actx->value_ptr = parameter_tvb;
2811
2812
2813
2814
2815   return offset;
2816 }
2817
2818
2819 static const ber_sequence_t gsm_map_ExternalSignalInfo_sequence[] = {
2820   { &hf_gsm_map_protocolId  , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId },
2821   { &hf_gsm_map_signalInfo  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
2822   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
2823   { NULL, 0, 0, 0, NULL }
2824 };
2825
2826 static int
2827 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_) {
2828 #line 697 "gsmmap.cnf"
2829 /*
2830 -- Information about the internal structure is given in
2831 -- clause 7.6.9.
2832 7.6.9.4 External Signal Information
2833 This parameter contains concatenated information elements (including tag and length) which are defined by a common
2834 protocol version, preceded by the associated protocol ID. It is used to transport information of the indicated protocol via
2835 MAP interfaces
2836 */
2837  guint8         octet;
2838  guint8         length;
2839  tvbuff_t       *next_tvb;
2840  proto_tree *subtree;
2841  
2842  ProtocolId = 0xffffffff;
2843   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2844                                    gsm_map_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_ExternalSignalInfo);
2845  
2846 if (!actx->value_ptr)
2847         return offset;
2848  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo);
2849  switch (ProtocolId){
2850         case 1:
2851         /* gsm-0408 */
2852                 /* As per comment abowe Individual IE:(s) will be found here in TLV format
2853                  * Unfortunatly a branch for each IE must be made to call the apropriate
2854                  * function
2855                  */
2856                  /* Get tag */
2857                  octet = tvb_get_guint8(actx->value_ptr,0);
2858                  proto_tree_add_item(subtree, hf_gsm_map_ie_tag, actx->value_ptr, 0,1,FALSE);
2859                  /* get length */
2860                  length = tvb_get_guint8(actx->value_ptr,1);
2861                  proto_tree_add_item(subtree, hf_gsm_map_len, actx->value_ptr, 1,1,FALSE);
2862                  /* Branch on tag */
2863                  switch(octet){
2864                  case 4:
2865                         /* Dissect the data part */                     
2866                         de_bearer_cap(actx->value_ptr, subtree, 2, length, NULL, 0);
2867                         /* TODO: There may be more than one IE */
2868                         break;
2869                  default:
2870                         proto_tree_add_text(subtree, actx->value_ptr, 0, length, "If you want this decoded send the packet to Wireshark-dev");
2871                         break;
2872                 }/* switch(octet) */
2873                 break;
2874         case 2:
2875                 /* gsm-0806 */
2876                 octet = tvb_get_guint8(actx->value_ptr,0);
2877                 /* Discrimination parameter */
2878                 proto_tree_add_item(subtree, hf_gsm_map_disc_par, actx->value_ptr, 0,1,FALSE);
2879                 if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
2880                         /* Strip off discrimination and length */
2881                         proto_tree_add_item(subtree, hf_gsm_map_len, actx->value_ptr, 1,1,FALSE);
2882                         next_tvb = tvb_new_subset(actx->value_ptr, 2, -1, -1);
2883                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
2884                 }else if(octet==1){
2885                         proto_tree_add_item(subtree, hf_gsm_map_dlci, actx->value_ptr, 1,1,FALSE);
2886                         proto_tree_add_item(subtree, hf_gsm_map_len, actx->value_ptr, 2,1,FALSE);
2887                         next_tvb = tvb_new_subset(actx->value_ptr, 3, -1, -1);
2888                         call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree); 
2889                 }       
2890                 break;
2891         case 3:
2892         /* gsm-BSSMAP TODO Is it correct to stripp off two first octets here?*/
2893                 octet = tvb_get_guint8(actx->value_ptr,0);
2894                 length = tvb_get_guint8(actx->value_ptr,1);
2895                 if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
2896                         next_tvb = tvb_new_subset(actx->value_ptr, 2, -1, -1);
2897                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
2898                 }
2899                 break;
2900         /* ets-300102-1 (~Q.931 ) */
2901         case 4:
2902                 octet = tvb_get_guint8(actx->value_ptr,0);
2903                 length = tvb_get_guint8(actx->value_ptr,1);
2904                 if ( octet == 4 )
2905                         dissect_q931_bearer_capability_ie(actx->value_ptr, 2, length, subtree);
2906                 break;
2907         default:
2908                 break;
2909         }/*switch (ProtocolId)*/
2910
2911
2912
2913   return offset;
2914 }
2915
2916
2917 static const value_string gsm_map_Ext_ProtocolId_vals[] = {
2918   {   1, "ets-300356" },
2919   { 0, NULL }
2920 };
2921
2922
2923 static int
2924 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_) {
2925   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2926                                   NULL);
2927
2928   return offset;
2929 }
2930
2931
2932 static const ber_sequence_t gsm_map_Ext_ExternalSignalInfo_sequence[] = {
2933   { &hf_gsm_map_ext_ProtocolId, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_ProtocolId },
2934   { &hf_gsm_map_signalInfo  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
2935   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
2936   { NULL, 0, 0, 0, NULL }
2937 };
2938
2939 static int
2940 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_) {
2941   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2942                                    gsm_map_Ext_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_Ext_ExternalSignalInfo);
2943
2944   return offset;
2945 }
2946
2947
2948 static const value_string gsm_map_AccessNetworkProtocolId_vals[] = {
2949   {   1, "ts3G-48006" },
2950   {   2, "ts3G-25413" },
2951   { 0, NULL }
2952 };
2953
2954
2955 static int
2956 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_) {
2957   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2958                                   NULL);
2959
2960   return offset;
2961 }
2962
2963
2964
2965 static int
2966 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_) {
2967 #line 208 "gsmmap.cnf"
2968
2969  tvbuff_t       *parameter_tvb;
2970  guint8         octet;
2971  guint8         length;
2972  tvbuff_t       *next_tvb;
2973  proto_tree *subtree;
2974
2975
2976   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2977                                        &parameter_tvb);
2978
2979
2980  if (!parameter_tvb)
2981         return offset;
2982
2983  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LongSignalInfo); 
2984
2985  switch (AccessNetworkProtocolId){
2986         /* ts3G-48006 */
2987         case 1:
2988                 octet = tvb_get_guint8(parameter_tvb,0);
2989                 /* Discrimination parameter */
2990                 proto_tree_add_item(subtree, hf_gsm_map_disc_par, parameter_tvb, 0,1,FALSE);
2991                 if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
2992                         /* Strip off discrimination and length */
2993                         length = tvb_get_guint8(parameter_tvb,0);
2994                         proto_tree_add_item(subtree, hf_gsm_map_len, parameter_tvb, 1,1,FALSE);
2995                         next_tvb = tvb_new_subset(parameter_tvb, 2, -1, -1);
2996                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
2997                 }else if(octet==1){
2998                         proto_tree_add_item(subtree, hf_gsm_map_dlci, parameter_tvb, 1,1,FALSE);
2999                         proto_tree_add_item(subtree, hf_gsm_map_len, parameter_tvb, 2,1,FALSE);
3000                         length = tvb_get_guint8(parameter_tvb,0);
3001                         next_tvb = tvb_new_subset(parameter_tvb, 3, -1, -1);
3002                         call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree); 
3003                 }       
3004                 break;
3005         /* ts3G-25413 */
3006         case 2:
3007                 call_dissector(ranap_handle, parameter_tvb, actx->pinfo, tree); 
3008                 break;
3009         default:
3010                 break;
3011
3012  }
3013
3014
3015   return offset;
3016 }
3017
3018
3019 static const ber_sequence_t gsm_map_AccessNetworkSignalInfo_sequence[] = {
3020   { &hf_gsm_map_accessNetworkProtocolId, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkProtocolId },
3021   { &hf_gsm_map_signalInfo_01, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LongSignalInfo },
3022   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
3023   { NULL, 0, 0, 0, NULL }
3024 };
3025
3026 static int
3027 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_) {
3028   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3029                                    gsm_map_AccessNetworkSignalInfo_sequence, hf_index, ett_gsm_map_AccessNetworkSignalInfo);
3030
3031   return offset;
3032 }
3033
3034
3035
3036 int
3037 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_) {
3038   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3039                                        NULL);
3040
3041   return offset;
3042 }
3043
3044
3045
3046 int
3047 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_) {
3048   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
3049
3050   return offset;
3051 }
3052
3053
3054
3055 static int
3056 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_) {
3057   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3058                                        NULL);
3059
3060   return offset;
3061 }
3062
3063
3064 static const ber_sequence_t gsm_map_IMSI_WithLMSI_sequence[] = {
3065   { &hf_gsm_map_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
3066   { &hf_gsm_map_lmsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
3067   { NULL, 0, 0, 0, NULL }
3068 };
3069
3070 static int
3071 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_) {
3072   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3073                                    gsm_map_IMSI_WithLMSI_sequence, hf_index, ett_gsm_map_IMSI_WithLMSI);
3074
3075   return offset;
3076 }
3077
3078
3079 static const value_string gsm_map_Identity_vals[] = {
3080   {   0, "imsi" },
3081   {   1, "imsi-WithLMSI" },
3082   { 0, NULL }
3083 };
3084
3085 static const ber_choice_t gsm_map_Identity_choice[] = {
3086   {   0, &hf_gsm_map_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
3087   {   1, &hf_gsm_map_imsi_WithLMSI, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI_WithLMSI },
3088   { 0, NULL, 0, 0, 0, NULL }
3089 };
3090
3091 static int
3092 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_) {
3093   offset = dissect_ber_choice(actx, tree, tvb, offset,
3094                                  gsm_map_Identity_choice, hf_index, ett_gsm_map_Identity,
3095                                  NULL);
3096
3097   return offset;
3098 }
3099
3100
3101
3102 static int
3103 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_) {
3104   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
3105
3106   return offset;
3107 }
3108
3109
3110
3111 static int
3112 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_) {
3113   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3114                                        NULL);
3115
3116   return offset;
3117 }
3118
3119
3120
3121 int
3122 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_) {
3123   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
3124
3125   return offset;
3126 }
3127
3128
3129
3130 static int
3131 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_) {
3132   offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
3133
3134   return offset;
3135 }
3136
3137
3138 static const ber_sequence_t gsm_map_HLR_List_sequence_of[1] = {
3139   { &hf_gsm_map_HLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_Id },
3140 };
3141
3142 static int
3143 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_) {
3144   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3145                                       gsm_map_HLR_List_sequence_of, hf_index, ett_gsm_map_HLR_List);
3146
3147   return offset;
3148 }
3149
3150
3151
3152 int
3153 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_) {
3154 #line 778 "gsmmap.cnf"
3155     tvbuff_t    *parameter_tvb; 
3156         proto_tree      *subtree;
3157
3158   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3159                                        &parameter_tvb);
3160  
3161
3162         if (!parameter_tvb) 
3163                 return offset; 
3164
3165     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GlobalCellId); 
3166         be_cell_id_aux(parameter_tvb, subtree, 0, tvb_length_remaining(tvb,0), NULL, 0, 0);
3167
3168
3169
3170   return offset;
3171 }
3172
3173
3174 static const value_string gsm_map_NetworkResource_vals[] = {
3175   {   0, "plmn" },
3176   {   1, "hlr" },
3177   {   2, "vlr" },
3178   {   3, "pvlr" },
3179   {   4, "controllingMSC" },
3180   {   5, "vmsc" },
3181   {   6, "eir" },
3182   {   7, "rss" },
3183   { 0, NULL }
3184 };
3185
3186
3187 static int
3188 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_) {
3189   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3190                                   NULL);
3191
3192   return offset;
3193 }
3194
3195
3196 static const value_string gsm_map_AdditionalNetworkResource_vals[] = {
3197   {   0, "sgsn" },
3198   {   1, "ggsn" },
3199   {   2, "gmlc" },
3200   {   3, "gsmSCF" },
3201   {   4, "nplr" },
3202   {   5, "auc" },
3203   {   6, "ue" },
3204   { 0, NULL }
3205 };
3206
3207
3208 static int
3209 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_) {
3210   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3211                                   NULL);
3212
3213   return offset;
3214 }
3215
3216
3217
3218 static int
3219 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_) {
3220   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3221                                        NULL);
3222
3223   return offset;
3224 }
3225
3226
3227 static const ber_sequence_t gsm_map_NAEA_PreferredCI_sequence[] = {
3228   { &hf_gsm_map_naea_PreferredCIC, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_CIC },
3229   { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
3230   { NULL, 0, 0, 0, NULL }
3231 };
3232
3233 static int
3234 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_) {
3235   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3236                                    gsm_map_NAEA_PreferredCI_sequence, hf_index, ett_gsm_map_NAEA_PreferredCI);
3237
3238   return offset;
3239 }
3240
3241
3242 static const value_string gsm_map_SubscriberIdentity_vals[] = {
3243   {   0, "imsi" },
3244   {   1, "msisdn" },
3245   { 0, NULL }
3246 };
3247
3248 static const ber_choice_t gsm_map_SubscriberIdentity_choice[] = {
3249   {   0, &hf_gsm_map_imsi        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
3250   {   1, &hf_gsm_map_msisdn      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3251   { 0, NULL, 0, 0, 0, NULL }
3252 };
3253
3254 static int
3255 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_) {
3256   offset = dissect_ber_choice(actx, tree, tvb, offset,
3257                                  gsm_map_SubscriberIdentity_choice, hf_index, ett_gsm_map_SubscriberIdentity,
3258                                  NULL);
3259
3260   return offset;
3261 }
3262
3263
3264 static const ber_sequence_t gsm_map_LCSClientExternalID_sequence[] = {
3265   { &hf_gsm_map_externalAddress, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3266   { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
3267   { NULL, 0, 0, 0, NULL }
3268 };
3269
3270 int
3271 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_) {
3272   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3273                                    gsm_map_LCSClientExternalID_sequence, hf_index, ett_gsm_map_LCSClientExternalID);
3274
3275   return offset;
3276 }
3277
3278
3279 static const value_string gsm_map_LCSClientInternalID_vals[] = {
3280   {   0, "broadcastService" },
3281   {   1, "o-andM-HPLMN" },
3282   {   2, "o-andM-VPLMN" },
3283   {   3, "anonymousLocation" },
3284   {   4, "targetMSsubscribedService" },
3285   { 0, NULL }
3286 };
3287
3288
3289 static int
3290 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_) {
3291   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3292                                   NULL);
3293
3294   return offset;
3295 }
3296
3297
3298 const value_string gsm_map_LCSServiceTypeID_vals[] = {
3299   {   0, "emergencyServices" },
3300   {   1, "emergencyAlertServices" },
3301   {   2, "personTracking" },
3302   {   3, "fleetManagement" },
3303   {   4, "assetManagement" },
3304   {   5, "trafficCongestionReporting" },
3305   {   6, "roadsideAssistance" },
3306   {   7, "routingToNearestCommercialEnterprise" },
3307   {   8, "navigation" },
3308   {   9, "citySightseeing" },
3309   {  10, "localizedAdvertising" },
3310   {  11, "mobileYellowPages" },
3311   {  12, "trafficAndPublicTransportationInfo" },
3312   {  13, "weather" },
3313   {  14, "assetAndServiceFinding" },
3314   {  15, "gaming" },
3315   {  16, "findYourFriend" },
3316   {  17, "dating" },
3317   {  18, "chatting" },
3318   {  19, "routeFinding" },
3319   {  20, "whereAmI" },
3320   {  64, "serv64" },
3321   {  65, "serv65" },
3322   {  66, "serv66" },
3323   {  67, "serv67" },
3324   {  68, "serv68" },
3325   {  69, "serv69" },
3326   {  70, "serv70" },
3327   {  71, "serv71" },
3328   {  72, "serv72" },
3329   {  73, "serv73" },
3330   {  74, "serv74" },
3331   {  75, "serv75" },
3332   {  76, "serv76" },
3333   {  77, "serv77" },
3334   {  78, "serv78" },
3335   {  79, "serv79" },
3336   {  80, "serv80" },
3337   {  81, "serv81" },
3338   {  82, "serv82" },
3339   {  83, "serv83" },
3340   {  84, "serv84" },
3341   {  85, "serv85" },
3342   {  86, "serv86" },
3343   {  87, "serv87" },
3344   {  88, "serv88" },
3345   {  89, "serv89" },
3346   {  90, "serv90" },
3347   {  91, "serv91" },
3348   {  92, "serv92" },
3349   {  93, "serv93" },
3350   {  94, "serv94" },
3351   {  95, "serv95" },
3352   {  96, "serv96" },
3353   {  97, "serv97" },
3354   {  98, "serv98" },
3355   {  99, "serv99" },
3356   { 100, "serv100" },
3357   { 101, "serv101" },
3358   { 102, "serv102" },
3359   { 103, "serv103" },
3360   { 104, "serv104" },
3361   { 105, "serv105" },
3362   { 106, "serv106" },
3363   { 107, "serv107" },
3364   { 108, "serv108" },
3365   { 109, "serv109" },
3366   { 110, "serv110" },
3367   { 111, "serv111" },
3368   { 112, "serv112" },
3369   { 113, "serv113" },
3370   { 114, "serv114" },
3371   { 115, "serv115" },
3372   { 116, "serv116" },
3373   { 117, "serv117" },
3374   { 118, "serv118" },
3375   { 119, "serv119" },
3376   { 120, "serv120" },
3377   { 121, "serv121" },
3378   { 122, "serv122" },
3379   { 123, "serv123" },
3380   { 124, "serv124" },
3381   { 125, "serv125" },
3382   { 126, "serv126" },
3383   { 127, "serv127" },
3384   { 0, NULL }
3385 };
3386
3387
3388 int
3389 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_) {
3390   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3391                                                 NULL);
3392
3393   return offset;
3394 }
3395
3396
3397
3398 static int
3399 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_) {
3400   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3401                                        NULL);
3402
3403   return offset;
3404 }
3405
3406
3407
3408 int
3409 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_) {
3410   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3411                                        NULL);
3412
3413   return offset;
3414 }
3415
3416
3417
3418 int
3419 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_) {
3420 #line 557 "gsmmap.cnf"
3421
3422         tvbuff_t        *parameter_tvb; 
3423         proto_tree *subtree; 
3424
3425   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3426                                        &parameter_tvb);
3427  
3428
3429          if (!parameter_tvb) 
3430                 return offset; 
3431         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LAIFixedLength); 
3432         dissect_e212_mcc_mnc(parameter_tvb, subtree, 0); 
3433
3434
3435
3436   return offset;
3437 }
3438
3439
3440 static const value_string gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals[] = {
3441   {   0, "cellGlobalIdOrServiceAreaIdFixedLength" },
3442   {   1, "laiFixedLength" },
3443   { 0, NULL }
3444 };
3445
3446 static const ber_choice_t gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice[] = {
3447   {   0, &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength },
3448   {   1, &hf_gsm_map_laiFixedLength, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
3449   { 0, NULL, 0, 0, 0, NULL }
3450 };
3451
3452 static int
3453 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_) {
3454   offset = dissect_ber_choice(actx, tree, tvb, offset,
3455                                  gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice, hf_index, ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
3456                                  NULL);
3457
3458   return offset;
3459 }
3460
3461
3462 static const value_string gsm_map_BasicServiceCode_vals[] = {
3463   {   2, "bearerService" },
3464   {   3, "teleservice" },
3465   { 0, NULL }
3466 };
3467
3468 static const ber_choice_t gsm_map_BasicServiceCode_choice[] = {
3469   {   2, &hf_gsm_map_bearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_BearerServiceCode },
3470   {   3, &hf_gsm_map_teleservice , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_TeleserviceCode },
3471   { 0, NULL, 0, 0, 0, NULL }
3472 };
3473
3474 static int
3475 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_) {
3476   offset = dissect_ber_choice(actx, tree, tvb, offset,
3477                                  gsm_map_BasicServiceCode_choice, hf_index, ett_gsm_map_BasicServiceCode,
3478                                  NULL);
3479
3480   return offset;
3481 }
3482
3483
3484 const value_string gsm_map_Ext_BasicServiceCode_vals[] = {
3485   {   2, "ext-BearerService" },
3486   {   3, "ext-Teleservice" },
3487   { 0, NULL }
3488 };
3489
3490 static const ber_choice_t gsm_map_Ext_BasicServiceCode_choice[] = {
3491   {   2, &hf_gsm_map_ext_BearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BearerServiceCode },
3492   {   3, &hf_gsm_map_ext_Teleservice, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_TeleserviceCode },
3493   { 0, NULL, 0, 0, 0, NULL }
3494 };
3495
3496 int
3497 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_) {
3498   offset = dissect_ber_choice(actx, tree, tvb, offset,
3499                                  gsm_map_Ext_BasicServiceCode_choice, hf_index, ett_gsm_map_Ext_BasicServiceCode,
3500                                  NULL);
3501
3502   return offset;
3503 }
3504
3505
3506 static const value_string gsm_map_EMLPP_Priority_vals[] = {
3507   {   6, "priorityLevelA" },
3508   {   5, "priorityLevelB" },
3509   {   0, "priorityLevel0" },
3510   {   1, "priorityLevel1" },
3511   {   2, "priorityLevel2" },
3512   {   3, "priorityLevel3" },
3513   {   4, "priorityLevel4" },
3514   { 0, NULL }
3515 };
3516
3517
3518 static int
3519 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_) {
3520   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3521                                                 NULL);
3522
3523   return offset;
3524 }
3525
3526
3527 static const ber_sequence_t gsm_map_EMLPP_Info_sequence[] = {
3528   { &hf_gsm_map_maximumentitledPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
3529   { &hf_gsm_map_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
3530   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
3531   { NULL, 0, 0, 0, NULL }
3532 };
3533
3534 static int
3535 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_) {
3536   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3537                                    gsm_map_EMLPP_Info_sequence, hf_index, ett_gsm_map_EMLPP_Info);
3538
3539   return offset;
3540 }
3541
3542
3543
3544 static int
3545 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_) {
3546 #line 368 "gsmmap.cnf"
3547  /* Note Ext-SS-Status can have more than one byte */
3548
3549  tvbuff_t       *parameter_tvb;
3550  guint8         octet;
3551
3552   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3553                                        &parameter_tvb);
3554
3555
3556  if (!parameter_tvb)
3557         return offset;
3558
3559  octet = tvb_get_guint8(parameter_tvb,0);
3560
3561  proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
3562  if ((octet & 0x01)== 1)        
3563         proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
3564                                                                                 
3565  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);                                                                    
3566  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);                                                                    
3567  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);                                                                    
3568
3569
3570
3571   return offset;
3572 }
3573
3574
3575
3576 static int
3577 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_) {
3578   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3579                                                 NULL);
3580
3581   return offset;
3582 }
3583
3584
3585
3586 static int
3587 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_) {
3588   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3589                                                 NULL);
3590
3591   return offset;
3592 }
3593
3594
3595 static const ber_sequence_t gsm_map_MC_SS_Info_sequence[] = {
3596   { &hf_gsm_map_ss_Code     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
3597   { &hf_gsm_map_ss_Status   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
3598   { &hf_gsm_map_nbrSB       , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers },
3599   { &hf_gsm_map_nbrUser     , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3600   { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
3601   { NULL, 0, 0, 0, NULL }
3602 };
3603
3604 static int
3605 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_) {
3606   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3607                                    gsm_map_MC_SS_Info_sequence, hf_index, ett_gsm_map_MC_SS_Info);
3608
3609   return offset;
3610 }
3611
3612
3613
3614 int
3615 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_) {
3616   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3617                                                 NULL);
3618
3619   return offset;
3620 }
3621
3622
3623 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
3624
3625
3626
3627 static int
3628 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_) {
3629   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3630                                                 NULL);
3631
3632   return offset;
3633 }
3634
3635
3636
3637 static int
3638 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_) {
3639   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
3640
3641   return offset;
3642 }
3643
3644
3645 static const ber_sequence_t gsm_map_ss_RegisterSS_Arg_sequence[] = {
3646   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3647   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3648   { &hf_gsm_map_ss_forwardedToNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
3649   { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
3650   { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime },
3651   { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
3652   { &hf_gsm_map_ss_nbrUser  , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3653   { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL },
3654   { NULL, 0, 0, 0, NULL }
3655 };
3656
3657 int
3658 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_) {
3659   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3660                                    gsm_map_ss_RegisterSS_Arg_sequence, hf_index, ett_gsm_map_ss_RegisterSS_Arg);
3661
3662   return offset;
3663 }
3664
3665
3666
3667 int
3668 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_) {
3669 #line 348 "gsmmap.cnf"
3670
3671  tvbuff_t       *parameter_tvb;
3672  guint8         octet;
3673
3674   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3675                                        &parameter_tvb);
3676
3677
3678  if (!parameter_tvb)
3679         return offset;
3680
3681  octet = tvb_get_guint8(parameter_tvb,0);
3682
3683  proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
3684  if ((octet & 0x01)== 1)        
3685         proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
3686                                                                                 
3687  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);                                                                    
3688  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);                                                                    
3689  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);                                                                    
3690
3691
3692
3693   return offset;
3694 }
3695
3696
3697
3698 static int
3699 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_) {
3700   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3701                                        NULL);
3702
3703 #line 464 "gsmmap.cnf"
3704
3705         proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE);
3706         proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE);
3707         proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE);
3708         proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE);
3709
3710   return offset;
3711 }
3712
3713
3714 static const ber_sequence_t gsm_map_ss_ForwardingFeature_sequence[] = {
3715   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3716   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
3717   { &hf_gsm_map_ss_forwardedToNumber_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3718   { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
3719   { &hf_gsm_map_ss_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions },
3720   { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime },
3721   { &hf_gsm_map_ss_longForwardedToNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
3722   { NULL, 0, 0, 0, NULL }
3723 };
3724
3725 static int
3726 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_) {
3727   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3728                                    gsm_map_ss_ForwardingFeature_sequence, hf_index, ett_gsm_map_ss_ForwardingFeature);
3729
3730   return offset;
3731 }
3732
3733
3734 static const ber_sequence_t gsm_map_ss_ForwardingFeatureList_sequence_of[1] = {
3735   { &hf_gsm_map_ss_ForwardingFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeature },
3736 };
3737
3738 static int
3739 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_) {
3740   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3741                                       gsm_map_ss_ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_ss_ForwardingFeatureList);
3742
3743   return offset;
3744 }
3745
3746
3747 static const ber_sequence_t gsm_map_ss_ForwardingInfo_sequence[] = {
3748   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3749   { &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeatureList },
3750   { NULL, 0, 0, 0, NULL }
3751 };
3752
3753 static int
3754 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_) {
3755   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3756                                    gsm_map_ss_ForwardingInfo_sequence, hf_index, ett_gsm_map_ss_ForwardingInfo);
3757
3758   return offset;
3759 }
3760
3761
3762 static const ber_sequence_t gsm_map_ss_CallBarringFeature_sequence[] = {
3763   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3764   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
3765   { NULL, 0, 0, 0, NULL }
3766 };
3767
3768 static int
3769 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_) {
3770   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3771                                    gsm_map_ss_CallBarringFeature_sequence, hf_index, ett_gsm_map_ss_CallBarringFeature);
3772
3773   return offset;
3774 }
3775
3776
3777 static const ber_sequence_t gsm_map_ss_CallBarringFeatureList_sequence_of[1] = {
3778   { &hf_gsm_map_ss_CallBarringFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeature },
3779 };
3780
3781 static int
3782 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_) {
3783   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3784                                       gsm_map_ss_CallBarringFeatureList_sequence_of, hf_index, ett_gsm_map_ss_CallBarringFeatureList);
3785
3786   return offset;
3787 }
3788
3789
3790 static const ber_sequence_t gsm_map_ss_CallBarringInfo_sequence[] = {
3791   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3792   { &hf_gsm_map_ss_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeatureList },
3793   { NULL, 0, 0, 0, NULL }
3794 };
3795
3796 static int
3797 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_) {
3798   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3799                                    gsm_map_ss_CallBarringInfo_sequence, hf_index, ett_gsm_map_ss_CallBarringInfo);
3800
3801   return offset;
3802 }
3803
3804
3805 static const value_string gsm_map_ss_CliRestrictionOption_vals[] = {
3806   {   0, "permanent" },
3807   {   1, "temporaryDefaultRestricted" },
3808   {   2, "temporaryDefaultAllowed" },
3809   { 0, NULL }
3810 };
3811
3812
3813 static int
3814 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_) {
3815   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3816                                   NULL);
3817
3818   return offset;
3819 }
3820
3821
3822 static const value_string gsm_map_ss_OverrideCategory_vals[] = {
3823   {   0, "overrideEnabled" },
3824   {   1, "overrideDisabled" },
3825   { 0, NULL }
3826 };
3827
3828
3829 static int
3830 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_) {
3831   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3832                                   NULL);
3833
3834   return offset;
3835 }
3836
3837
3838 static const value_string gsm_map_ss_SS_SubscriptionOption_vals[] = {
3839   {   2, "cliRestrictionOption" },
3840   {   1, "overrideCategory" },
3841   { 0, NULL }
3842 };
3843
3844 static const ber_choice_t gsm_map_ss_SS_SubscriptionOption_choice[] = {
3845   {   2, &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption },
3846   {   1, &hf_gsm_map_ss_overrideCategory, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory },
3847   { 0, NULL, 0, 0, 0, NULL }
3848 };
3849
3850 static int
3851 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_) {
3852   offset = dissect_ber_choice(actx, tree, tvb, offset,
3853                                  gsm_map_ss_SS_SubscriptionOption_choice, hf_index, ett_gsm_map_ss_SS_SubscriptionOption,
3854                                  NULL);
3855
3856   return offset;
3857 }
3858
3859
3860 static const ber_sequence_t gsm_map_ss_BasicServiceGroupList_sequence_of[1] = {
3861   { &hf_gsm_map_ss_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3862 };
3863
3864 static int
3865 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_) {
3866   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3867                                       gsm_map_ss_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ss_BasicServiceGroupList);
3868
3869   return offset;
3870 }
3871
3872
3873 static const ber_sequence_t gsm_map_ss_SS_Data_sequence[] = {
3874   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3875   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
3876   { &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 },
3877   { &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_BasicServiceGroupList },
3878   { &hf_gsm_map_ss_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
3879   { &hf_gsm_map_ss_nbrUser  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3880   { NULL, 0, 0, 0, NULL }
3881 };
3882
3883 static int
3884 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_) {
3885   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3886                                    gsm_map_ss_SS_Data_sequence, hf_index, ett_gsm_map_ss_SS_Data);
3887
3888   return offset;
3889 }
3890
3891
3892 const value_string gsm_map_ss_SS_Info_vals[] = {
3893   {   0, "forwardingInfo" },
3894   {   1, "callBarringInfo" },
3895   {   3, "ss-Data" },
3896   { 0, NULL }
3897 };
3898
3899 static const ber_choice_t gsm_map_ss_SS_Info_choice[] = {
3900   {   0, &hf_gsm_map_ss_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingInfo },
3901   {   1, &hf_gsm_map_ss_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CallBarringInfo },
3902   {   3, &hf_gsm_map_ss_ss_Data  , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Data },
3903   { 0, NULL, 0, 0, 0, NULL }
3904 };
3905
3906 int
3907 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_) {
3908   offset = dissect_ber_choice(actx, tree, tvb, offset,
3909                                  gsm_map_ss_SS_Info_choice, hf_index, ett_gsm_map_ss_SS_Info,
3910                                  NULL);
3911
3912   return offset;
3913 }
3914
3915
3916 static const ber_sequence_t gsm_map_ss_SS_ForBS_Code_sequence[] = {
3917   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
3918   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
3919   { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL },
3920   { NULL, 0, 0, 0, NULL }
3921 };
3922
3923 int
3924 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_) {
3925   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3926                                    gsm_map_ss_SS_ForBS_Code_sequence, hf_index, ett_gsm_map_ss_SS_ForBS_Code);
3927
3928   return offset;
3929 }
3930
3931
3932
3933 static int
3934 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_) {
3935   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3936                                                 NULL);
3937
3938   return offset;
3939 }
3940
3941
3942 static const ber_sequence_t gsm_map_ss_CCBS_Feature_sequence[] = {
3943   { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index },
3944   { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3945   { &hf_gsm_map_ss_b_subscriberSubaddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
3946   { &hf_gsm_map_ss_basicServiceGroup, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_BasicServiceCode },
3947   { NULL, 0, 0, 0, NULL }
3948 };
3949
3950 int
3951 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_) {
3952   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3953                                    gsm_map_ss_CCBS_Feature_sequence, hf_index, ett_gsm_map_ss_CCBS_Feature);
3954
3955   return offset;
3956 }
3957
3958
3959 static const ber_sequence_t gsm_map_ss_CCBS_FeatureList_sequence_of[1] = {
3960   { &hf_gsm_map_ss_CCBS_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CCBS_Feature },
3961 };
3962
3963 static int
3964 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_) {
3965   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3966                                       gsm_map_ss_CCBS_FeatureList_sequence_of, hf_index, ett_gsm_map_ss_CCBS_FeatureList);
3967
3968   return offset;
3969 }
3970
3971
3972 static const ber_sequence_t gsm_map_ss_GenericServiceInfo_sequence[] = {
3973   { &hf_gsm_map_ss_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_Status },
3974   { &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CliRestrictionOption },
3975   { &hf_gsm_map_ss_maximumEntitledPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
3976   { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
3977   { &hf_gsm_map_ss_ccbs_FeatureList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_FeatureList },
3978   { &hf_gsm_map_ss_nbrSB    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers },
3979   { &hf_gsm_map_ss_nbrUser  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3980   { &hf_gsm_map_ss_nbrSN    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
3981   { NULL, 0, 0, 0, NULL }
3982 };
3983
3984 static int
3985 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_) {
3986   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3987                                    gsm_map_ss_GenericServiceInfo_sequence, hf_index, ett_gsm_map_ss_GenericServiceInfo);
3988
3989   return offset;
3990 }
3991
3992
3993 const value_string gsm_map_ss_InterrogateSS_Res_vals[] = {
3994   {   0, "ss-Status" },
3995   {   2, "basicServiceGroupList" },
3996   {   3, "forwardingFeatureList" },
3997   {   4, "genericServiceInfo" },
3998   { 0, NULL }
3999 };
4000
4001 static const ber_choice_t gsm_map_ss_InterrogateSS_Res_choice[] = {
4002   {   0, &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4003   {   2, &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_BasicServiceGroupList },
4004   {   3, &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingFeatureList },
4005   {   4, &hf_gsm_map_ss_genericServiceInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_GenericServiceInfo },
4006   { 0, NULL, 0, 0, 0, NULL }
4007 };
4008
4009 int
4010 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_) {
4011   offset = dissect_ber_choice(actx, tree, tvb, offset,
4012                                  gsm_map_ss_InterrogateSS_Res_choice, hf_index, ett_gsm_map_ss_InterrogateSS_Res,
4013                                  NULL);
4014
4015   return offset;
4016 }
4017
4018
4019
4020 int
4021 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_) {
4022 #line 391 "gsmmap.cnf"
4023  /*The structure of the USSD-DataCodingScheme is defined by
4024   * the Cell Broadcast Data Coding Scheme as described in
4025   * TS 3GPP TS 23.038
4026   * TODO: Should dissect_cbs_data_coding_scheme return encoding type? - like 7bit Alphabet
4027   */
4028   tvbuff_t      *parameter_tvb;
4029   proto_tree *subtree;
4030
4031   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4032                                        &parameter_tvb);
4033
4034   if (!parameter_tvb)
4035      return offset;
4036   subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_cbs_data_coding);
4037   dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree);
4038
4039
4040
4041   return offset;
4042 }
4043
4044
4045
4046 int
4047 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_) {
4048 #line 406 "gsmmap.cnf"
4049
4050   tvbuff_t      *parameter_tvb;
4051   int                   length;
4052   guint8                out_len;
4053   /* XXX - The maximum item label length is 240.  Does this really need to be 1024? 
4054    * use ep_alloc ?
4055    * We need a input and an output buffer to gsm_sms_char_ascii_decode()
4056    */
4057   static unsigned char msgbuf[1024];
4058   static unsigned char outbuf[1024];
4059   gchar *utf8_text = NULL;
4060   GIConv cd;    
4061   GError *l_conv_error = NULL;
4062
4063   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4064                                        &parameter_tvb);
4065
4066   if (!parameter_tvb)
4067      return offset;
4068
4069   length = tvb_length_remaining(parameter_tvb,0);
4070   switch(sms_encoding){
4071     case SMS_ENCODING_7BIT:
4072     case SMS_ENCODING_7BIT_LANG:
4073         out_len = gsm_sms_char_7bit_unpack(0, length, sizeof(msgbuf),
4074                                            tvb_get_ptr(parameter_tvb, 0, length),
4075                                                        msgbuf);
4076
4077         msgbuf[out_len] = '\0';
4078         gsm_sms_char_ascii_decode(outbuf, msgbuf, out_len);
4079         msgbuf[1023] = '\0';
4080         proto_tree_add_text(tree, parameter_tvb, 0, length, "USSD String: %s", outbuf);
4081         break;
4082     case SMS_ENCODING_8BIT:
4083         proto_tree_add_text(tree, parameter_tvb , 0, length, "USSD String: %s", tvb_get_ptr(parameter_tvb, 0, length));
4084         break;
4085     case SMS_ENCODING_UCS2:
4086     case SMS_ENCODING_UCS2_LANG:
4087         if ((cd = g_iconv_open("UTF-8","UCS-2BE")) != (GIConv) -1)
4088         {
4089             utf8_text = g_convert_with_iconv(parameter_tvb->real_data, length, cd, NULL, NULL, &l_conv_error);
4090             if(!l_conv_error)
4091                 proto_tree_add_text(tree, tvb, 0, length, "USSD String: %s", utf8_text);
4092             else
4093                 proto_tree_add_text(tree, tvb, 0, length, "USSD String: g_convert_with_iconv FAILED");
4094
4095             if(utf8_text)
4096                 g_free(utf8_text);
4097
4098             g_iconv_close(cd);                          
4099         }
4100         else
4101             proto_tree_add_text(tree, tvb, 0, length, "USSD String: g_iconv_open FAILED contact wireshark");
4102
4103         break;
4104     default:
4105         break;  
4106   }
4107
4108
4109
4110   return offset;
4111 }
4112
4113
4114 static const ber_sequence_t gsm_map_ss_USSD_Arg_sequence[] = {
4115   { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
4116   { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String },
4117   { &hf_gsm_map_ss_alertingPattern, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AlertingPattern },
4118   { &hf_gsm_map_ss_msisdn   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4119   { NULL, 0, 0, 0, NULL }
4120 };
4121
4122 int
4123 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_) {
4124   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4125                                    gsm_map_ss_USSD_Arg_sequence, hf_index, ett_gsm_map_ss_USSD_Arg);
4126
4127   return offset;
4128 }
4129
4130
4131 static const ber_sequence_t gsm_map_ss_USSD_Res_sequence[] = {
4132   { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
4133   { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String },
4134   { NULL, 0, 0, 0, NULL }
4135 };
4136
4137 int
4138 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_) {
4139   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4140                                    gsm_map_ss_USSD_Res_sequence, hf_index, ett_gsm_map_ss_USSD_Res);
4141
4142   return offset;
4143 }
4144
4145
4146
4147 static int
4148 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_) {
4149   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
4150                                             actx, tree, tvb, offset, hf_index,
4151                                             NULL);
4152
4153   return offset;
4154 }
4155
4156
4157 static const ber_sequence_t gsm_map_ss_SS_List_sequence_of[1] = {
4158   { &hf_gsm_map_ss_SS_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
4159 };
4160
4161 static int
4162 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_) {
4163   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4164                                       gsm_map_ss_SS_List_sequence_of, hf_index, ett_gsm_map_ss_SS_List);
4165
4166   return offset;
4167 }
4168
4169
4170 static const ber_sequence_t gsm_map_ss_SS_EventSpecification_sequence_of[1] = {
4171   { &hf_gsm_map_ss_SS_EventSpecification_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
4172 };
4173
4174 static int
4175 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_) {
4176   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4177                                       gsm_map_ss_SS_EventSpecification_sequence_of, hf_index, ett_gsm_map_ss_SS_EventSpecification);
4178
4179   return offset;
4180 }
4181
4182
4183 static const value_string gsm_map_ss_CCBS_RequestState_vals[] = {
4184   {   0, "request" },
4185   {   1, "recall" },
4186   {   2, "active" },
4187   {   3, "completed" },
4188   {   4, "suspended" },
4189   {   5, "frozen" },
4190   {   6, "deleted" },
4191   { 0, NULL }
4192 };
4193
4194
4195 static int
4196 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_) {
4197   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4198                                   NULL);
4199
4200   return offset;
4201 }
4202
4203
4204 static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationArg_sequence[] = {
4205   { &hf_gsm_map_ss_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
4206   { &hf_gsm_map_ss_msisdn   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4207   { &hf_gsm_map_ss_ss_Event , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4208   { &hf_gsm_map_ss_ss_EventSpecification, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_EventSpecification },
4209   { &hf_gsm_map_ss_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
4210   { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4211   { &hf_gsm_map_ss_ccbs_RequestState, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_RequestState },
4212   { NULL, 0, 0, 0, NULL }
4213 };
4214
4215 static int
4216 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_) {
4217   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4218                                    gsm_map_ss_SS_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationArg);
4219
4220   return offset;
4221 }
4222
4223
4224 static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationRes_sequence[] = {
4225   { &hf_gsm_map_ss_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4226   { NULL, 0, 0, 0, NULL }
4227 };
4228
4229 static int
4230 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_) {
4231   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4232                                    gsm_map_ss_SS_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationRes);
4233
4234   return offset;
4235 }
4236
4237
4238 static const asn_namedbit gsm_map_ss_ServiceIndicator_bits[] = {
4239   {  0, &hf_gsm_map_ss_ServiceIndicator_clir_invoked, -1, -1, "clir-invoked", NULL },
4240   {  1, &hf_gsm_map_ss_ServiceIndicator_camel_invoked, -1, -1, "camel-invoked", NULL },
4241   { 0, NULL, 0, 0, NULL, NULL }
4242 };
4243
4244 static int
4245 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_) {
4246   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
4247                                     gsm_map_ss_ServiceIndicator_bits, hf_index, ett_gsm_map_ss_ServiceIndicator,
4248                                     NULL);
4249
4250   return offset;
4251 }
4252
4253
4254 static const ber_sequence_t gsm_map_ss_CCBS_Data_sequence[] = {
4255   { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
4256   { &hf_gsm_map_ss_translatedB_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4257   { &hf_gsm_map_ss_serviceIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ServiceIndicator },
4258   { &hf_gsm_map_ss_callInfo , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
4259   { &hf_gsm_map_ss_networkSignalInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
4260   { NULL, 0, 0, 0, NULL }
4261 };
4262
4263 static int
4264 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_) {
4265   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4266                                    gsm_map_ss_CCBS_Data_sequence, hf_index, ett_gsm_map_ss_CCBS_Data);
4267
4268   return offset;
4269 }
4270
4271
4272 static const ber_sequence_t gsm_map_ss_RegisterCC_EntryArg_sequence[] = {
4273   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4274   { &hf_gsm_map_ss_ccbs_Data, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Data },
4275   { NULL, 0, 0, 0, NULL }
4276 };
4277
4278 static int
4279 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_) {
4280   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4281                                    gsm_map_ss_RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryArg);
4282
4283   return offset;
4284 }
4285
4286
4287 static const ber_sequence_t gsm_map_ss_RegisterCC_EntryRes_sequence[] = {
4288   { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
4289   { NULL, 0, 0, 0, NULL }
4290 };
4291
4292 int
4293 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_) {
4294   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4295                                    gsm_map_ss_RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryRes);
4296
4297   return offset;
4298 }
4299
4300
4301 static const ber_sequence_t gsm_map_ss_EraseCC_EntryArg_sequence[] = {
4302   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4303   { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index },
4304   { NULL, 0, 0, 0, NULL }
4305 };
4306
4307 int
4308 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_) {
4309   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4310                                    gsm_map_ss_EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryArg);
4311
4312   return offset;
4313 }
4314
4315
4316 static const ber_sequence_t gsm_map_ss_EraseCC_EntryRes_sequence[] = {
4317   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4318   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4319   { NULL, 0, 0, 0, NULL }
4320 };
4321
4322 int
4323 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_) {
4324   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4325                                    gsm_map_ss_EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryRes);
4326
4327   return offset;
4328 }
4329
4330
4331 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
4332
4333
4334 static const value_string gsm_map_er_RoamingNotAllowedCause_vals[] = {
4335   {   0, "plmnRoamingNotAllowed" },
4336   {   3, "operatorDeterminedBarring" },
4337   { 0, NULL }
4338 };
4339
4340
4341 static int
4342 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_) {
4343   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4344                                   NULL);
4345
4346   return offset;
4347 }
4348
4349
4350 static const value_string gsm_map_er_AdditionalRoamingNotAllowedCause_vals[] = {
4351   {   0, "supportedRAT-TypesNotAllowed" },
4352   { 0, NULL }
4353 };
4354
4355
4356 static int
4357 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_) {
4358   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4359                                   NULL);
4360
4361   return offset;
4362 }
4363
4364
4365 static const ber_sequence_t gsm_map_er_RoamingNotAllowedParam_sequence[] = {
4366   { &hf_gsm_map_er_roamingNotAllowedCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_RoamingNotAllowedCause },
4367   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4368   { &hf_gsm_map_er_additionalRoamingNotAllowedCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AdditionalRoamingNotAllowedCause },
4369   { NULL, 0, 0, 0, NULL }
4370 };
4371
4372 static int
4373 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_) {
4374   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4375                                    gsm_map_er_RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_er_RoamingNotAllowedParam);
4376
4377   return offset;
4378 }
4379
4380
4381 static const value_string gsm_map_er_CallBarringCause_vals[] = {
4382   {   0, "barringServiceActive" },
4383   {   1, "operatorBarring" },
4384   { 0, NULL }
4385 };
4386
4387
4388 static int
4389 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_) {
4390   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4391                                   NULL);
4392
4393   return offset;
4394 }
4395
4396
4397
4398 static int
4399 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_) {
4400   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4401
4402   return offset;
4403 }
4404
4405
4406 static const ber_sequence_t gsm_map_er_ExtensibleCallBarredParam_sequence[] = {
4407   { &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause },
4408   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4409   { &hf_gsm_map_er_unauthorisedMessageOriginator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4410   { NULL, 0, 0, 0, NULL }
4411 };
4412
4413 static int
4414 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_) {
4415   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4416                                    gsm_map_er_ExtensibleCallBarredParam_sequence, hf_index, ett_gsm_map_er_ExtensibleCallBarredParam);
4417
4418   return offset;
4419 }
4420
4421
4422 static const value_string gsm_map_er_CallBarredParam_vals[] = {
4423   {   0, "callBarringCause" },
4424   {   1, "extensibleCallBarredParam" },
4425   { 0, NULL }
4426 };
4427
4428 static const ber_choice_t gsm_map_er_CallBarredParam_choice[] = {
4429   {   0, &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause },
4430   {   1, &hf_gsm_map_er_extensibleCallBarredParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleCallBarredParam },
4431   { 0, NULL, 0, 0, 0, NULL }
4432 };
4433
4434 static int
4435 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_) {
4436   offset = dissect_ber_choice(actx, tree, tvb, offset,
4437                                  gsm_map_er_CallBarredParam_choice, hf_index, ett_gsm_map_er_CallBarredParam,
4438                                  NULL);
4439
4440   return offset;
4441 }
4442
4443
4444 static const value_string gsm_map_er_CUG_RejectCause_vals[] = {
4445   {   0, "incomingCallsBarredWithinCUG" },
4446   {   1, "subscriberNotMemberOfCUG" },
4447   {   5, "requestedBasicServiceViolatesCUG-Constraints" },
4448   {   7, "calledPartySS-InteractionViolation" },
4449   { 0, NULL }
4450 };
4451
4452
4453 static int
4454 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_) {
4455   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4456                                   NULL);
4457
4458   return offset;
4459 }
4460
4461
4462 static const ber_sequence_t gsm_map_er_CUG_RejectParam_sequence[] = {
4463   { &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 },
4464   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4465   { NULL, 0, 0, 0, NULL }
4466 };
4467
4468 static int
4469 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_) {
4470   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4471                                    gsm_map_er_CUG_RejectParam_sequence, hf_index, ett_gsm_map_er_CUG_RejectParam);
4472
4473   return offset;
4474 }
4475
4476
4477 static const ber_sequence_t gsm_map_er_SS_IncompatibilityCause_sequence[] = {
4478   { &hf_gsm_map_er_ss_Code  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4479   { &hf_gsm_map_er_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
4480   { &hf_gsm_map_er_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4481   { NULL, 0, 0, 0, NULL }
4482 };
4483
4484 static int
4485 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_) {
4486   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4487                                    gsm_map_er_SS_IncompatibilityCause_sequence, hf_index, ett_gsm_map_er_SS_IncompatibilityCause);
4488
4489   return offset;
4490 }
4491
4492
4493 static const value_string gsm_map_er_PW_RegistrationFailureCause_vals[] = {
4494   {   0, "undetermined" },
4495   {   1, "invalidFormat" },
4496   {   2, "newPasswordsMismatch" },
4497   { 0, NULL }
4498 };
4499
4500
4501 static int
4502 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_) {
4503   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4504                                   NULL);
4505
4506   return offset;
4507 }
4508
4509
4510 static const value_string gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals[] = {
4511   {   0, "memoryCapacityExceeded" },
4512   {   1, "equipmentProtocolError" },
4513   {   2, "equipmentNotSM-Equipped" },
4514   {   3, "unknownServiceCentre" },
4515   {   4, "sc-Congestion" },
4516   {   5, "invalidSME-Address" },
4517   {   6, "subscriberNotSC-Subscriber" },
4518   { 0, NULL }
4519 };
4520
4521
4522 static int
4523 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_) {
4524   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4525                                   NULL);
4526
4527   return offset;
4528 }
4529
4530
4531 static const ber_sequence_t gsm_map_er_SM_DeliveryFailureCause_sequence[] = {
4532   { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause },
4533   { &hf_gsm_map_er_diagnosticInfo, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
4534   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4535   { NULL, 0, 0, 0, NULL }
4536 };
4537
4538 static int
4539 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_) {
4540 #line 277 "gsmmap.cnf"
4541         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
4542   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4543                                    gsm_map_er_SM_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_er_SM_DeliveryFailureCause);
4544
4545
4546         if (!actx->value_ptr)
4547                 return offset;
4548         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
4549
4550
4551
4552   return offset;
4553 }
4554
4555
4556
4557 static int
4558 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_) {
4559   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4560                                                 NULL);
4561
4562   return offset;
4563 }
4564
4565
4566 static const ber_sequence_t gsm_map_er_AbsentSubscriberSM_Param_sequence[] = {
4567   { &hf_gsm_map_er_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
4568   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4569   { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
4570   { NULL, 0, 0, 0, NULL }
4571 };
4572
4573 static int
4574 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_) {
4575   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4576                                    gsm_map_er_AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberSM_Param);
4577
4578   return offset;
4579 }
4580
4581
4582 static const value_string gsm_map_er_FailureCauseParam_vals[] = {
4583   {   0, "limitReachedOnNumberOfConcurrentLocationRequests" },
4584   { 0, NULL }
4585 };
4586
4587
4588 static int
4589 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_) {
4590   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4591                                   NULL);
4592
4593   return offset;
4594 }
4595
4596
4597 static const ber_sequence_t gsm_map_er_ExtensibleSystemFailureParam_sequence[] = {
4598   { &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
4599   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4600   { &hf_gsm_map_er_additionalNetworkResource, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AdditionalNetworkResource },
4601   { &hf_gsm_map_er_failureCauseParam, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_FailureCauseParam },
4602   { NULL, 0, 0, 0, NULL }
4603 };
4604
4605 static int
4606 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_) {
4607   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4608                                    gsm_map_er_ExtensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_er_ExtensibleSystemFailureParam);
4609
4610   return offset;
4611 }
4612
4613
4614 static const value_string gsm_map_er_SystemFailureParam_vals[] = {
4615   {   0, "networkResource" },
4616   {   1, "extensibleSystemFailureParam" },
4617   { 0, NULL }
4618 };
4619
4620 static const ber_choice_t gsm_map_er_SystemFailureParam_choice[] = {
4621   {   0, &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
4622   {   1, &hf_gsm_map_er_extensibleSystemFailureParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleSystemFailureParam },
4623   { 0, NULL, 0, 0, 0, NULL }
4624 };
4625
4626 static int
4627 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_) {
4628   offset = dissect_ber_choice(actx, tree, tvb, offset,
4629                                  gsm_map_er_SystemFailureParam_choice, hf_index, ett_gsm_map_er_SystemFailureParam,
4630                                  NULL);
4631
4632   return offset;
4633 }
4634
4635
4636 static const ber_sequence_t gsm_map_er_DataMissingParam_sequence[] = {
4637   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4638   { NULL, 0, 0, 0, NULL }
4639 };
4640
4641 static int
4642 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_) {
4643   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4644                                    gsm_map_er_DataMissingParam_sequence, hf_index, ett_gsm_map_er_DataMissingParam);
4645
4646   return offset;
4647 }
4648
4649
4650 static const ber_sequence_t gsm_map_er_UnexpectedDataParam_sequence[] = {
4651   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4652   { NULL, 0, 0, 0, NULL }
4653 };
4654
4655 static int
4656 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_) {
4657   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4658                                    gsm_map_er_UnexpectedDataParam_sequence, hf_index, ett_gsm_map_er_UnexpectedDataParam);
4659
4660   return offset;
4661 }
4662
4663
4664 static const ber_sequence_t gsm_map_er_FacilityNotSupParam_sequence[] = {
4665   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4666   { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4667   { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4668   { NULL, 0, 0, 0, NULL }
4669 };
4670
4671 static int
4672 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_) {
4673   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4674                                    gsm_map_er_FacilityNotSupParam_sequence, hf_index, ett_gsm_map_er_FacilityNotSupParam);
4675
4676   return offset;
4677 }
4678
4679
4680 static const ber_sequence_t gsm_map_er_OR_NotAllowedParam_sequence[] = {
4681   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4682   { NULL, 0, 0, 0, NULL }
4683 };
4684
4685 static int
4686 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_) {
4687   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4688                                    gsm_map_er_OR_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_OR_NotAllowedParam);
4689
4690   return offset;
4691 }
4692
4693
4694 static const value_string gsm_map_er_UnknownSubscriberDiagnostic_vals[] = {
4695   {   0, "imsiUnknown" },
4696   {   1, "gprsSubscriptionUnknown" },
4697   {   2, "npdbMismatch" },
4698   { 0, NULL }
4699 };
4700
4701
4702 static int
4703 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_) {
4704   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4705                                   NULL);
4706
4707   return offset;
4708 }
4709
4710
4711 static const ber_sequence_t gsm_map_er_UnknownSubscriberParam_sequence[] = {
4712   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4713   { &hf_gsm_map_er_unknownSubscriberDiagnostic, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_UnknownSubscriberDiagnostic },
4714   { NULL, 0, 0, 0, NULL }
4715 };
4716
4717 static int
4718 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_) {
4719   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4720                                    gsm_map_er_UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_er_UnknownSubscriberParam);
4721
4722   return offset;
4723 }
4724
4725
4726 static const ber_sequence_t gsm_map_er_NumberChangedParam_sequence[] = {
4727   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4728   { NULL, 0, 0, 0, NULL }
4729 };
4730
4731 static int
4732 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_) {
4733   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4734                                    gsm_map_er_NumberChangedParam_sequence, hf_index, ett_gsm_map_er_NumberChangedParam);
4735
4736   return offset;
4737 }
4738
4739
4740 static const ber_sequence_t gsm_map_er_UnidentifiedSubParam_sequence[] = {
4741   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4742   { NULL, 0, 0, 0, NULL }
4743 };
4744
4745 static int
4746 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_) {
4747   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4748                                    gsm_map_er_UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_er_UnidentifiedSubParam);
4749
4750   return offset;
4751 }
4752
4753
4754 static const ber_sequence_t gsm_map_er_IllegalSubscriberParam_sequence[] = {
4755   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4756   { NULL, 0, 0, 0, NULL }
4757 };
4758
4759 static int
4760 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_) {
4761   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4762                                    gsm_map_er_IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_er_IllegalSubscriberParam);
4763
4764   return offset;
4765 }
4766
4767
4768 static const ber_sequence_t gsm_map_er_IllegalEquipmentParam_sequence[] = {
4769   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4770   { NULL, 0, 0, 0, NULL }
4771 };
4772
4773 static int
4774 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_) {
4775   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4776                                    gsm_map_er_IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_er_IllegalEquipmentParam);
4777
4778   return offset;
4779 }
4780
4781
4782 static const ber_sequence_t gsm_map_er_BearerServNotProvParam_sequence[] = {
4783   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4784   { NULL, 0, 0, 0, NULL }
4785 };
4786
4787 static int
4788 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_) {
4789   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4790                                    gsm_map_er_BearerServNotProvParam_sequence, hf_index, ett_gsm_map_er_BearerServNotProvParam);
4791
4792   return offset;
4793 }
4794
4795
4796 static const ber_sequence_t gsm_map_er_TeleservNotProvParam_sequence[] = {
4797   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4798   { NULL, 0, 0, 0, NULL }
4799 };
4800
4801 static int
4802 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_) {
4803   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4804                                    gsm_map_er_TeleservNotProvParam_sequence, hf_index, ett_gsm_map_er_TeleservNotProvParam);
4805
4806   return offset;
4807 }
4808
4809
4810 static const ber_sequence_t gsm_map_er_TracingBufferFullParam_sequence[] = {
4811   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4812   { NULL, 0, 0, 0, NULL }
4813 };
4814
4815 static int
4816 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_) {
4817   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4818                                    gsm_map_er_TracingBufferFullParam_sequence, hf_index, ett_gsm_map_er_TracingBufferFullParam);
4819
4820   return offset;
4821 }
4822
4823
4824 static const ber_sequence_t gsm_map_er_NoRoamingNbParam_sequence[] = {
4825   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4826   { NULL, 0, 0, 0, NULL }
4827 };
4828
4829 static int
4830 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_) {
4831   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4832                                    gsm_map_er_NoRoamingNbParam_sequence, hf_index, ett_gsm_map_er_NoRoamingNbParam);
4833
4834   return offset;
4835 }
4836
4837
4838 static const value_string gsm_map_er_AbsentSubscriberReason_vals[] = {
4839   {   0, "imsiDetach" },
4840   {   1, "restrictedArea" },
4841   {   2, "noPageResponse" },
4842   {   3, "purgedMS" },
4843   { 0, NULL }
4844 };
4845
4846
4847 static int
4848 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_) {
4849   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4850                                   NULL);
4851
4852   return offset;
4853 }
4854
4855
4856 static const ber_sequence_t gsm_map_er_AbsentSubscriberParam_sequence[] = {
4857   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4858   { &hf_gsm_map_er_absentSubscriberReason, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberReason },
4859   { NULL, 0, 0, 0, NULL }
4860 };
4861
4862 static int
4863 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_) {
4864   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4865                                    gsm_map_er_AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberParam);
4866
4867   return offset;
4868 }
4869
4870
4871 static const ber_sequence_t gsm_map_er_BusySubscriberParam_sequence[] = {
4872   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4873   { &hf_gsm_map_er_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4874   { &hf_gsm_map_er_ccbs_Busy, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
4875   { NULL, 0, 0, 0, NULL }
4876 };
4877
4878 static int
4879 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_) {
4880   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4881                                    gsm_map_er_BusySubscriberParam_sequence, hf_index, ett_gsm_map_er_BusySubscriberParam);
4882
4883   return offset;
4884 }
4885
4886
4887 static const ber_sequence_t gsm_map_er_NoSubscriberReplyParam_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_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_) {
4894   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4895                                    gsm_map_er_NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_er_NoSubscriberReplyParam);
4896
4897   return offset;
4898 }
4899
4900
4901 static const ber_sequence_t gsm_map_er_ForwardingViolationParam_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_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_) {
4908   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4909                                    gsm_map_er_ForwardingViolationParam_sequence, hf_index, ett_gsm_map_er_ForwardingViolationParam);
4910
4911   return offset;
4912 }
4913
4914
4915 static const ber_sequence_t gsm_map_er_ForwardingFailedParam_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_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_) {
4922   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4923                                    gsm_map_er_ForwardingFailedParam_sequence, hf_index, ett_gsm_map_er_ForwardingFailedParam);
4924
4925   return offset;
4926 }
4927
4928
4929 static const ber_sequence_t gsm_map_er_ATI_NotAllowedParam_sequence[] = {
4930   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4931   { NULL, 0, 0, 0, NULL }
4932 };
4933
4934 static int
4935 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_) {
4936   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4937                                    gsm_map_er_ATI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATI_NotAllowedParam);
4938
4939   return offset;
4940 }
4941
4942
4943 static const ber_sequence_t gsm_map_er_ATSI_NotAllowedParam_sequence[] = {
4944   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4945   { NULL, 0, 0, 0, NULL }
4946 };
4947
4948 static int
4949 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_) {
4950   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4951                                    gsm_map_er_ATSI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATSI_NotAllowedParam);
4952
4953   return offset;
4954 }
4955
4956
4957 static const ber_sequence_t gsm_map_er_ATM_NotAllowedParam_sequence[] = {
4958   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4959   { NULL, 0, 0, 0, NULL }
4960 };
4961
4962 static int
4963 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_) {
4964   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4965                                    gsm_map_er_ATM_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATM_NotAllowedParam);
4966
4967   return offset;
4968 }
4969
4970
4971 static const ber_sequence_t gsm_map_er_IllegalSS_OperationParam_sequence[] = {
4972   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4973   { NULL, 0, 0, 0, NULL }
4974 };
4975
4976 static int
4977 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_) {
4978   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4979                                    gsm_map_er_IllegalSS_OperationParam_sequence, hf_index, ett_gsm_map_er_IllegalSS_OperationParam);
4980
4981   return offset;
4982 }
4983
4984
4985 static const ber_sequence_t gsm_map_er_SS_NotAvailableParam_sequence[] = {
4986   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4987   { NULL, 0, 0, 0, NULL }
4988 };
4989
4990 static int
4991 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_) {
4992   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4993                                    gsm_map_er_SS_NotAvailableParam_sequence, hf_index, ett_gsm_map_er_SS_NotAvailableParam);
4994
4995   return offset;
4996 }
4997
4998
4999 static const ber_sequence_t gsm_map_er_SS_SubscriptionViolationParam_sequence[] = {
5000   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5001   { NULL, 0, 0, 0, NULL }
5002 };
5003
5004 static int
5005 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_) {
5006   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5007                                    gsm_map_er_SS_SubscriptionViolationParam_sequence, hf_index, ett_gsm_map_er_SS_SubscriptionViolationParam);
5008
5009   return offset;
5010 }
5011
5012
5013 static const ber_sequence_t gsm_map_er_InformationNotAvailableParam_sequence[] = {
5014   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5015   { NULL, 0, 0, 0, NULL }
5016 };
5017
5018 static int
5019 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_) {
5020   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5021                                    gsm_map_er_InformationNotAvailableParam_sequence, hf_index, ett_gsm_map_er_InformationNotAvailableParam);
5022
5023   return offset;
5024 }
5025
5026
5027 static const ber_sequence_t gsm_map_er_SubBusyForMT_SMS_Param_sequence[] = {
5028   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5029   { &hf_gsm_map_er_gprsConnectionSuspended, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_NULL },
5030   { NULL, 0, 0, 0, NULL }
5031 };
5032
5033 static int
5034 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_) {
5035   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5036                                    gsm_map_er_SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_er_SubBusyForMT_SMS_Param);
5037
5038   return offset;
5039 }
5040
5041
5042 static const ber_sequence_t gsm_map_er_MessageWaitListFullParam_sequence[] = {
5043   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5044   { NULL, 0, 0, 0, NULL }
5045 };
5046
5047 static int
5048 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_) {
5049   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5050                                    gsm_map_er_MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_er_MessageWaitListFullParam);
5051
5052   return offset;
5053 }
5054
5055
5056 static const ber_sequence_t gsm_map_er_ResourceLimitationParam_sequence[] = {
5057   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5058   { NULL, 0, 0, 0, NULL }
5059 };
5060
5061 static int
5062 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_) {
5063   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5064                                    gsm_map_er_ResourceLimitationParam_sequence, hf_index, ett_gsm_map_er_ResourceLimitationParam);
5065
5066   return offset;
5067 }
5068
5069
5070 static const ber_sequence_t gsm_map_er_NoGroupCallNbParam_sequence[] = {
5071   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5072   { NULL, 0, 0, 0, NULL }
5073 };
5074
5075 static int
5076 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_) {
5077   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5078                                    gsm_map_er_NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_er_NoGroupCallNbParam);
5079
5080   return offset;
5081 }
5082
5083
5084 static const ber_sequence_t gsm_map_er_IncompatibleTerminalParam_sequence[] = {
5085   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5086   { NULL, 0, 0, 0, NULL }
5087 };
5088
5089 static int
5090 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_) {
5091   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5092                                    gsm_map_er_IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_er_IncompatibleTerminalParam);
5093
5094   return offset;
5095 }
5096
5097
5098 static const ber_sequence_t gsm_map_er_ShortTermDenialParam_sequence[] = {
5099   { NULL, 0, 0, 0, NULL }
5100 };
5101
5102 static int
5103 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_) {
5104   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5105                                    gsm_map_er_ShortTermDenialParam_sequence, hf_index, ett_gsm_map_er_ShortTermDenialParam);
5106
5107   return offset;
5108 }
5109
5110
5111 static const ber_sequence_t gsm_map_er_LongTermDenialParam_sequence[] = {
5112   { NULL, 0, 0, 0, NULL }
5113 };
5114
5115 static int
5116 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_) {
5117   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5118                                    gsm_map_er_LongTermDenialParam_sequence, hf_index, ett_gsm_map_er_LongTermDenialParam);
5119
5120   return offset;
5121 }
5122
5123
5124 static const ber_sequence_t gsm_map_er_UnauthorizedRequestingNetwork_Param_sequence[] = {
5125   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5126   { NULL, 0, 0, 0, NULL }
5127 };
5128
5129 static int
5130 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_) {
5131   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5132                                    gsm_map_er_UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedRequestingNetwork_Param);
5133
5134   return offset;
5135 }
5136
5137
5138 static const value_string gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals[] = {
5139   {   0, "noAdditionalInformation" },
5140   {   1, "clientNotInMSPrivacyExceptionList" },
5141   {   2, "callToClientNotSetup" },
5142   {   3, "privacyOverrideNotApplicable" },
5143   {   4, "disallowedByLocalRegulatoryRequirements" },
5144   {   5, "unauthorizedPrivacyClass" },
5145   {   6, "unauthorizedCallSessionUnrelatedExternalClient" },
5146   {   7, "unauthorizedCallSessionRelatedExternalClient" },
5147   { 0, NULL }
5148 };
5149
5150
5151 static int
5152 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_) {
5153   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5154                                   NULL);
5155
5156   return offset;
5157 }
5158
5159
5160 static const ber_sequence_t gsm_map_er_UnauthorizedLCSClient_Param_sequence[] = {
5161   { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_UnauthorizedLCSClient_Diagnostic },
5162   { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5163   { NULL, 0, 0, 0, NULL }
5164 };
5165
5166 static int
5167 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_) {
5168   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5169                                    gsm_map_er_UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedLCSClient_Param);
5170
5171   return offset;
5172 }
5173
5174
5175 static const value_string gsm_map_er_PositionMethodFailure_Diagnostic_vals[] = {
5176   {   0, "congestion" },
5177   {   1, "insufficientResources" },
5178   {   2, "insufficientMeasurementData" },
5179   {   3, "inconsistentMeasurementData" },
5180   {   4, "locationProcedureNotCompleted" },
5181   {   5, "locationProcedureNotSupportedByTargetMS" },
5182   {   6, "qoSNotAttainable" },
5183   {   7, "positionMethodNotAvailableInNetwork" },
5184   {   8, "positionMethodNotAvailableInLocationArea" },
5185   { 0, NULL }
5186 };
5187
5188
5189 static int
5190 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_) {
5191   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5192                                   NULL);
5193
5194   return offset;
5195 }
5196
5197
5198 static const ber_sequence_t gsm_map_er_PositionMethodFailure_Param_sequence[] = {
5199   { &hf_gsm_map_er_positionMethodFailure_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_PositionMethodFailure_Diagnostic },
5200   { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5201   { NULL, 0, 0, 0, NULL }
5202 };
5203
5204 static int
5205 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_) {
5206   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5207                                    gsm_map_er_PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_er_PositionMethodFailure_Param);
5208
5209   return offset;
5210 }
5211
5212
5213 static const ber_sequence_t gsm_map_er_UnknownOrUnreachableLCSClient_Param_sequence[] = {
5214   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5215   { NULL, 0, 0, 0, NULL }
5216 };
5217
5218 static int
5219 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_) {
5220   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5221                                    gsm_map_er_UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param);
5222
5223   return offset;
5224 }
5225
5226
5227 static const ber_sequence_t gsm_map_er_MM_EventNotSupported_Param_sequence[] = {
5228   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5229   { NULL, 0, 0, 0, NULL }
5230 };
5231
5232 static int
5233 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_) {
5234   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5235                                    gsm_map_er_MM_EventNotSupported_Param_sequence, hf_index, ett_gsm_map_er_MM_EventNotSupported_Param);
5236
5237   return offset;
5238 }
5239
5240
5241 static const ber_sequence_t gsm_map_er_TargetCellOutsideGCA_Param_sequence[] = {
5242   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5243   { NULL, 0, 0, 0, NULL }
5244 };
5245
5246 static int
5247 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_) {
5248   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5249                                    gsm_map_er_TargetCellOutsideGCA_Param_sequence, hf_index, ett_gsm_map_er_TargetCellOutsideGCA_Param);
5250
5251   return offset;
5252 }
5253
5254
5255 static const ber_sequence_t gsm_map_er_OngoingGroupCallParam_sequence[] = {
5256   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5257   { NULL, 0, 0, 0, NULL }
5258 };
5259
5260 static int
5261 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_) {
5262   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5263                                    gsm_map_er_OngoingGroupCallParam_sequence, hf_index, ett_gsm_map_er_OngoingGroupCallParam);
5264
5265   return offset;
5266 }
5267
5268
5269 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
5270
5271
5272
5273 static int
5274 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_) {
5275   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
5276
5277   return offset;
5278 }
5279
5280
5281
5282 static int
5283 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_) {
5284   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5285
5286   return offset;
5287 }
5288
5289
5290
5291 static int
5292 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_) {
5293   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5294                                                 NULL);
5295
5296   return offset;
5297 }
5298
5299
5300
5301 static int
5302 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_) {
5303   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5304                                        NULL);
5305
5306   return offset;
5307 }
5308
5309
5310 static const value_string gsm_map_sm_SM_DeliveryNotIntended_vals[] = {
5311   {   0, "onlyIMSI-requested" },
5312   {   1, "onlyMCC-MNC-requested" },
5313   { 0, NULL }
5314 };
5315
5316
5317 static int
5318 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_) {
5319   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5320                                   NULL);
5321
5322   return offset;
5323 }
5324
5325
5326 static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Arg_sequence[] = {
5327   { &hf_gsm_map_sm_msisdn   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5328   { &hf_gsm_map_sm_sm_RP_PRI, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_BOOLEAN },
5329   { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
5330   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5331   { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5332   { &hf_gsm_map_sm_sm_RP_MTI, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_MTI },
5333   { &hf_gsm_map_sm_sm_RP_SMEA, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_SMEA },
5334   { &hf_gsm_map_sm_sm_deliveryNotIntended, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryNotIntended },
5335   { NULL, 0, 0, 0, NULL }
5336 };
5337
5338 static int
5339 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_) {
5340   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5341                                    gsm_map_sm_RoutingInfoForSM_Arg_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Arg);
5342
5343   return offset;
5344 }
5345
5346
5347 static const value_string gsm_map_sm_Additional_Number_vals[] = {
5348   {   0, "msc-Number" },
5349   {   1, "sgsn-Number" },
5350   { 0, NULL }
5351 };
5352
5353 static const ber_choice_t gsm_map_sm_Additional_Number_choice[] = {
5354   {   0, &hf_gsm_map_sm_msc_Number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5355   {   1, &hf_gsm_map_sm_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5356   { 0, NULL, 0, 0, 0, NULL }
5357 };
5358
5359 static int
5360 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_) {
5361   offset = dissect_ber_choice(actx, tree, tvb, offset,
5362                                  gsm_map_sm_Additional_Number_choice, hf_index, ett_gsm_map_sm_Additional_Number,
5363                                  NULL);
5364
5365   return offset;
5366 }
5367
5368
5369 static const ber_sequence_t gsm_map_sm_LocationInfoWithLMSI_sequence[] = {
5370   { &hf_gsm_map_sm_networkNode_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5371   { &hf_gsm_map_sm_lmsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
5372   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5373   { &hf_gsm_map_sm_gprsNodeIndicator, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5374   { &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 },
5375   { NULL, 0, 0, 0, NULL }
5376 };
5377
5378 static int
5379 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_) {
5380   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5381                                    gsm_map_sm_LocationInfoWithLMSI_sequence, hf_index, ett_gsm_map_sm_LocationInfoWithLMSI);
5382
5383   return offset;
5384 }
5385
5386
5387 static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Res_sequence[] = {
5388   { &hf_gsm_map_sm_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
5389   { &hf_gsm_map_sm_locationInfoWithLMSI, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_LocationInfoWithLMSI },
5390   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5391   { NULL, 0, 0, 0, NULL }
5392 };
5393
5394 static int
5395 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_) {
5396   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5397                                    gsm_map_sm_RoutingInfoForSM_Res_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Res);
5398
5399   return offset;
5400 }
5401
5402
5403 static const value_string gsm_map_sm_SM_RP_DA_vals[] = {
5404   {   0, "imsi" },
5405   {   1, "lmsi" },
5406   {   4, "serviceCentreAddressDA" },
5407   {   5, "noSM-RP-DA" },
5408   { 0, NULL }
5409 };
5410
5411 static const ber_choice_t gsm_map_sm_SM_RP_DA_choice[] = {
5412   {   0, &hf_gsm_map_sm_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5413   {   1, &hf_gsm_map_sm_lmsi     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
5414   {   4, &hf_gsm_map_sm_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
5415   {   5, &hf_gsm_map_sm_noSM_RP_DA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5416   { 0, NULL, 0, 0, 0, NULL }
5417 };
5418
5419 static int
5420 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_) {
5421   offset = dissect_ber_choice(actx, tree, tvb, offset,
5422                                  gsm_map_sm_SM_RP_DA_choice, hf_index, ett_gsm_map_sm_SM_RP_DA,
5423                                  NULL);
5424
5425   return offset;
5426 }
5427
5428
5429
5430 static int
5431 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_) {
5432 #line 266 "gsmmap.cnf"
5433 actx->pinfo->p2p_dir = P2P_DIR_RECV;
5434    offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
5435
5436
5437
5438
5439   return offset;
5440 }
5441
5442
5443
5444 static int
5445 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_) {
5446 #line 258 "gsmmap.cnf"
5447         actx->pinfo->p2p_dir = P2P_DIR_SENT;
5448   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
5449
5450
5451
5452
5453   return offset;
5454 }
5455
5456
5457 static const value_string gsm_map_sm_SM_RP_OA_vals[] = {
5458   {   2, "msisdn" },
5459   {   4, "serviceCentreAddressOA" },
5460   {   5, "noSM-RP-OA" },
5461   { 0, NULL }
5462 };
5463
5464 static const ber_choice_t gsm_map_sm_SM_RP_OA_choice[] = {
5465   {   2, &hf_gsm_map_sm_msisdn_01, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_msisdn },
5466   {   4, &hf_gsm_map_sm_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_serviceCentreAddressOA },
5467   {   5, &hf_gsm_map_sm_noSM_RP_OA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5468   { 0, NULL, 0, 0, 0, NULL }
5469 };
5470
5471 static int
5472 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_) {
5473   offset = dissect_ber_choice(actx, tree, tvb, offset,
5474                                  gsm_map_sm_SM_RP_OA_choice, hf_index, ett_gsm_map_sm_SM_RP_OA,
5475                                  NULL);
5476
5477   return offset;
5478 }
5479
5480
5481 static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Arg_sequence[] = {
5482   { &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 },
5483   { &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 },
5484   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5485   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5486   { &hf_gsm_map_sm_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
5487   { NULL, 0, 0, 0, NULL }
5488 };
5489
5490 static int
5491 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_) {
5492 #line 294 "gsmmap.cnf"
5493
5494         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5495   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5496                                    gsm_map_sm_MO_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Arg);
5497
5498
5499         if (!actx->value_ptr)
5500                 return offset;
5501         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5502
5503
5504
5505   return offset;
5506 }
5507
5508
5509 static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Res_sequence[] = {
5510   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5511   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5512   { NULL, 0, 0, 0, NULL }
5513 };
5514
5515 static int
5516 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_) {
5517 #line 303 "gsmmap.cnf"
5518
5519         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5520   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5521                                    gsm_map_sm_MO_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Res);
5522
5523
5524         if (!actx->value_ptr)
5525                 return offset;
5526         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5527
5528
5529
5530   return offset;
5531 }
5532
5533
5534 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Arg_sequence[] = {
5535   { &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 },
5536   { &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 },
5537   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5538   { &hf_gsm_map_sm_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
5539   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5540   { NULL, 0, 0, 0, NULL }
5541 };
5542
5543 static int
5544 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_) {
5545 #line 312 "gsmmap.cnf"
5546
5547         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5548   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5549                                    gsm_map_sm_MT_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Arg);
5550
5551
5552         if (!actx->value_ptr)
5553                 return offset;
5554         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5555
5556
5557
5558   return offset;
5559 }
5560
5561
5562 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Res_sequence[] = {
5563   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5564   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5565   { NULL, 0, 0, 0, NULL }
5566 };
5567
5568 static int
5569 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_) {
5570 #line 321 "gsmmap.cnf"
5571
5572         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5573   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5574                                    gsm_map_sm_MT_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Res);
5575
5576
5577         if (!actx->value_ptr)
5578                 return offset;
5579         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5580
5581
5582
5583   return offset;
5584 }
5585
5586
5587 static const value_string gsm_map_sm_SM_DeliveryOutcome_vals[] = {
5588   {   0, "memoryCapacityExceeded" },
5589   {   1, "absentSubscriber" },
5590   {   2, "successfulTransfer" },
5591   { 0, NULL }
5592 };
5593
5594
5595 static int
5596 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_) {
5597   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5598                                   NULL);
5599
5600   return offset;
5601 }
5602
5603
5604 static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusArg_sequence[] = {
5605   { &hf_gsm_map_sm_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5606   { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
5607   { &hf_gsm_map_sm_sm_DeliveryOutcome, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
5608   { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5609   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5610   { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5611   { &hf_gsm_map_sm_deliveryOutcomeIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5612   { &hf_gsm_map_sm_additionalSM_DeliveryOutcome, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
5613   { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5614   { &hf_gsm_map_sm_ip_sm_gw_Indicator, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5615   { &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 },
5616   { &hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5617   { NULL, 0, 0, 0, NULL }
5618 };
5619
5620 static int
5621 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_) {
5622   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5623                                    gsm_map_sm_ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusArg);
5624
5625   return offset;
5626 }
5627
5628
5629 static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusRes_sequence[] = {
5630   { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5631   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5632   { NULL, 0, 0, 0, NULL }
5633 };
5634
5635 static int
5636 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_) {
5637   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5638                                    gsm_map_sm_ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusRes);
5639
5640   return offset;
5641 }
5642
5643
5644 static const ber_sequence_t gsm_map_sm_AlertServiceCentreArg_sequence[] = {
5645   { &hf_gsm_map_sm_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5646   { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
5647   { NULL, 0, 0, 0, NULL }
5648 };
5649
5650 static int
5651 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_) {
5652   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5653                                    gsm_map_sm_AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_AlertServiceCentreArg);
5654
5655   return offset;
5656 }
5657
5658
5659 static const asn_namedbit gsm_map_sm_MW_Status_bits[] = {
5660   {  0, &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded, -1, -1, "sc-AddressNotIncluded", NULL },
5661   {  1, &hf_gsm_map_sm_MW_Status_mnrf_Set, -1, -1, "mnrf-Set", NULL },
5662   {  2, &hf_gsm_map_sm_MW_Status_mcef_Set, -1, -1, "mcef-Set", NULL },
5663   {  3, &hf_gsm_map_sm_MW_Status_mnrg_Set, -1, -1, "mnrg-Set", NULL },
5664   { 0, NULL, 0, 0, NULL, NULL }
5665 };
5666
5667 static int
5668 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_) {
5669   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5670                                     gsm_map_sm_MW_Status_bits, hf_index, ett_gsm_map_sm_MW_Status,
5671                                     NULL);
5672
5673   return offset;
5674 }
5675
5676
5677 static const ber_sequence_t gsm_map_sm_InformServiceCentreArg_sequence[] = {
5678   { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5679   { &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 },
5680   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5681   { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5682   { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5683   { NULL, 0, 0, 0, NULL }
5684 };
5685
5686 static int
5687 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_) {
5688   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5689                                    gsm_map_sm_InformServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_InformServiceCentreArg);
5690
5691   return offset;
5692 }
5693
5694
5695 static const value_string gsm_map_sm_AlertReason_vals[] = {
5696   {   0, "ms-Present" },
5697   {   1, "memoryAvailable" },
5698   { 0, NULL }
5699 };
5700
5701
5702 static int
5703 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_) {
5704   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5705                                   NULL);
5706
5707   return offset;
5708 }
5709
5710
5711 static const ber_sequence_t gsm_map_sm_ReadyForSM_Arg_sequence[] = {
5712   { &hf_gsm_map_sm_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5713   { &hf_gsm_map_sm_alertReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_AlertReason },
5714   { &hf_gsm_map_sm_alertReasonIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
5715   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5716   { &hf_gsm_map_sm_additionalAlertReasonIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5717   { NULL, 0, 0, 0, NULL }
5718 };
5719
5720 static int
5721 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_) {
5722   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5723                                    gsm_map_sm_ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Arg);
5724
5725   return offset;
5726 }
5727
5728
5729 static const ber_sequence_t gsm_map_sm_ReadyForSM_Res_sequence[] = {
5730   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5731   { NULL, 0, 0, 0, NULL }
5732 };
5733
5734 static int
5735 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_) {
5736   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5737                                    gsm_map_sm_ReadyForSM_Res_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Res);
5738
5739   return offset;
5740 }
5741
5742
5743 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence[] = {
5744   { &hf_gsm_map_sm_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference },
5745   { &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 },
5746   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5747   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5748   { NULL, 0, 0, 0, NULL }
5749 };
5750
5751 static int
5752 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_) {
5753 #line 330 "gsmmap.cnf"
5754
5755         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5756   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5757                                    gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg);
5758
5759
5760         if (!actx->value_ptr)
5761                 return offset;
5762         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5763
5764
5765
5766   return offset;
5767 }
5768
5769
5770 static const ber_sequence_t gsm_map_sm_DispatcherList_sequence_of[1] = {
5771   { &hf_gsm_map_sm_DispatcherList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
5772 };
5773
5774 static int
5775 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_) {
5776   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5777                                       gsm_map_sm_DispatcherList_sequence_of, hf_index, ett_gsm_map_sm_DispatcherList);
5778
5779   return offset;
5780 }
5781
5782
5783 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence[] = {
5784   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
5785   { &hf_gsm_map_sm_dispatcherList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_DispatcherList },
5786   { &hf_gsm_map_sm_ongoingCall, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
5787   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5788   { NULL, 0, 0, 0, NULL }
5789 };
5790
5791 static int
5792 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_) {
5793 #line 339 "gsmmap.cnf"
5794
5795         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5796   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5797                                    gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Res);
5798
5799
5800         if (!actx->value_ptr)
5801                 return offset;
5802         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
5803
5804
5805
5806   return offset;
5807 }
5808
5809
5810 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
5811
5812
5813
5814 static int
5815 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_) {
5816   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5817                                        NULL);
5818
5819   return offset;
5820 }
5821
5822
5823
5824 static int
5825 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_) {
5826   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5827                                                 NULL);
5828
5829   return offset;
5830 }
5831
5832
5833
5834 static int
5835 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_) {
5836   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5837                                        NULL);
5838
5839   return offset;
5840 }
5841
5842
5843 static const value_string gsm_map_om_TraceDepth_vals[] = {
5844   {   0, "minimum" },
5845   {   1, "medium" },
5846   {   2, "maximum" },
5847   { 0, NULL }
5848 };
5849
5850
5851 static int
5852 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_) {
5853   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5854                                   NULL);
5855
5856   return offset;
5857 }
5858
5859
5860 static const ber_sequence_t gsm_map_om_TraceDepthList_sequence[] = {
5861   { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5862   { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5863   { &hf_gsm_map_om_sgsn_TraceDepth, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5864   { &hf_gsm_map_om_ggsn_TraceDepth, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5865   { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5866   { &hf_gsm_map_om_bmsc_TraceDepth, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
5867   { NULL, 0, 0, 0, NULL }
5868 };
5869
5870 static int
5871 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_) {
5872   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5873                                    gsm_map_om_TraceDepthList_sequence, hf_index, ett_gsm_map_om_TraceDepthList);
5874
5875   return offset;
5876 }
5877
5878
5879 static const asn_namedbit gsm_map_om_TraceNE_TypeList_bits[] = {
5880   {  0, &hf_gsm_map_om_TraceNE_TypeList_msc_s, -1, -1, "msc-s", NULL },
5881   {  1, &hf_gsm_map_om_TraceNE_TypeList_mgw, -1, -1, "mgw", NULL },
5882   {  2, &hf_gsm_map_om_TraceNE_TypeList_sgsn, -1, -1, "sgsn", NULL },
5883   {  3, &hf_gsm_map_om_TraceNE_TypeList_ggsn, -1, -1, "ggsn", NULL },
5884   {  4, &hf_gsm_map_om_TraceNE_TypeList_rnc, -1, -1, "rnc", NULL },
5885   {  5, &hf_gsm_map_om_TraceNE_TypeList_bm_sc, -1, -1, "bm-sc", NULL },
5886   { 0, NULL, 0, 0, NULL, NULL }
5887 };
5888
5889 static int
5890 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_) {
5891   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5892                                     gsm_map_om_TraceNE_TypeList_bits, hf_index, ett_gsm_map_om_TraceNE_TypeList,
5893                                     NULL);
5894
5895   return offset;
5896 }
5897
5898
5899 static const asn_namedbit gsm_map_om_MSC_S_InterfaceList_bits[] = {
5900   {  0, &hf_gsm_map_om_MSC_S_InterfaceList_a, -1, -1, "a", NULL },
5901   {  1, &hf_gsm_map_om_MSC_S_InterfaceList_iu, -1, -1, "iu", NULL },
5902   {  2, &hf_gsm_map_om_MSC_S_InterfaceList_mc, -1, -1, "mc", NULL },
5903   {  3, &hf_gsm_map_om_MSC_S_InterfaceList_map_g, -1, -1, "map-g", NULL },
5904   {  4, &hf_gsm_map_om_MSC_S_InterfaceList_map_b, -1, -1, "map-b", NULL },
5905   {  5, &hf_gsm_map_om_MSC_S_InterfaceList_map_e, -1, -1, "map-e", NULL },
5906   {  6, &hf_gsm_map_om_MSC_S_InterfaceList_map_f, -1, -1, "map-f", NULL },
5907   {  7, &hf_gsm_map_om_MSC_S_InterfaceList_cap, -1, -1, "cap", NULL },
5908   {  8, &hf_gsm_map_om_MSC_S_InterfaceList_map_d, -1, -1, "map-d", NULL },
5909   {  9, &hf_gsm_map_om_MSC_S_InterfaceList_map_c, -1, -1, "map-c", NULL },
5910   { 0, NULL, 0, 0, NULL, NULL }
5911 };
5912
5913 static int
5914 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_) {
5915   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5916                                     gsm_map_om_MSC_S_InterfaceList_bits, hf_index, ett_gsm_map_om_MSC_S_InterfaceList,
5917                                     NULL);
5918
5919   return offset;
5920 }
5921
5922
5923 static const asn_namedbit gsm_map_om_MGW_InterfaceList_bits[] = {
5924   {  0, &hf_gsm_map_om_MGW_InterfaceList_mc, -1, -1, "mc", NULL },
5925   {  1, &hf_gsm_map_om_MGW_InterfaceList_nb_up, -1, -1, "nb-up", NULL },
5926   {  2, &hf_gsm_map_om_MGW_InterfaceList_iu_up, -1, -1, "iu-up", NULL },
5927   { 0, NULL, 0, 0, NULL, NULL }
5928 };
5929
5930 static int
5931 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_) {
5932   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5933                                     gsm_map_om_MGW_InterfaceList_bits, hf_index, ett_gsm_map_om_MGW_InterfaceList,
5934                                     NULL);
5935
5936   return offset;
5937 }
5938
5939
5940 static const asn_namedbit gsm_map_om_SGSN_InterfaceList_bits[] = {
5941   {  0, &hf_gsm_map_om_SGSN_InterfaceList_gb, -1, -1, "gb", NULL },
5942   {  1, &hf_gsm_map_om_SGSN_InterfaceList_iu, -1, -1, "iu", NULL },
5943   {  2, &hf_gsm_map_om_SGSN_InterfaceList_gn, -1, -1, "gn", NULL },
5944   {  3, &hf_gsm_map_om_SGSN_InterfaceList_map_gr, -1, -1, "map-gr", NULL },
5945   {  4, &hf_gsm_map_om_SGSN_InterfaceList_map_gd, -1, -1, "map-gd", NULL },
5946   {  5, &hf_gsm_map_om_SGSN_InterfaceList_map_gf, -1, -1, "map-gf", NULL },
5947   {  6, &hf_gsm_map_om_SGSN_InterfaceList_gs, -1, -1, "gs", NULL },
5948   {  7, &hf_gsm_map_om_SGSN_InterfaceList_ge, -1, -1, "ge", NULL },
5949   { 0, NULL, 0, 0, NULL, NULL }
5950 };
5951
5952 static int
5953 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_) {
5954   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5955                                     gsm_map_om_SGSN_InterfaceList_bits, hf_index, ett_gsm_map_om_SGSN_InterfaceList,
5956                                     NULL);
5957
5958   return offset;
5959 }
5960
5961
5962 static const asn_namedbit gsm_map_om_GGSN_InterfaceList_bits[] = {
5963   {  0, &hf_gsm_map_om_GGSN_InterfaceList_gn, -1, -1, "gn", NULL },
5964   {  1, &hf_gsm_map_om_GGSN_InterfaceList_gi, -1, -1, "gi", NULL },
5965   {  2, &hf_gsm_map_om_GGSN_InterfaceList_gmb, -1, -1, "gmb", NULL },
5966   { 0, NULL, 0, 0, NULL, NULL }
5967 };
5968
5969 static int
5970 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_) {
5971   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5972                                     gsm_map_om_GGSN_InterfaceList_bits, hf_index, ett_gsm_map_om_GGSN_InterfaceList,
5973                                     NULL);
5974
5975   return offset;
5976 }
5977
5978
5979 static const asn_namedbit gsm_map_om_RNC_InterfaceList_bits[] = {
5980   {  0, &hf_gsm_map_om_RNC_InterfaceList_iu, -1, -1, "iu", NULL },
5981   {  1, &hf_gsm_map_om_RNC_InterfaceList_iur, -1, -1, "iur", NULL },
5982   {  2, &hf_gsm_map_om_RNC_InterfaceList_iub, -1, -1, "iub", NULL },
5983   {  3, &hf_gsm_map_om_RNC_InterfaceList_uu, -1, -1, "uu", NULL },
5984   { 0, NULL, 0, 0, NULL, NULL }
5985 };
5986
5987 static int
5988 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_) {
5989   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5990                                     gsm_map_om_RNC_InterfaceList_bits, hf_index, ett_gsm_map_om_RNC_InterfaceList,
5991                                     NULL);
5992
5993   return offset;
5994 }
5995
5996
5997 static const asn_namedbit gsm_map_om_BMSC_InterfaceList_bits[] = {
5998   {  0, &hf_gsm_map_om_BMSC_InterfaceList_gmb, -1, -1, "gmb", NULL },
5999   { 0, NULL, 0, 0, NULL, NULL }
6000 };
6001
6002 static int
6003 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_) {
6004   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6005                                     gsm_map_om_BMSC_InterfaceList_bits, hf_index, ett_gsm_map_om_BMSC_InterfaceList,
6006                                     NULL);
6007
6008   return offset;
6009 }
6010
6011
6012 static const ber_sequence_t gsm_map_om_TraceInterfaceList_sequence[] = {
6013   { &hf_gsm_map_om_msc_s_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList },
6014   { &hf_gsm_map_om_mgw_List , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList },
6015   { &hf_gsm_map_om_sgsn_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_InterfaceList },
6016   { &hf_gsm_map_om_ggsn_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_InterfaceList },
6017   { &hf_gsm_map_om_rnc_List , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList },
6018   { &hf_gsm_map_om_bmsc_List, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_InterfaceList },
6019   { NULL, 0, 0, 0, NULL }
6020 };
6021
6022 static int
6023 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_) {
6024   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6025                                    gsm_map_om_TraceInterfaceList_sequence, hf_index, ett_gsm_map_om_TraceInterfaceList);
6026
6027   return offset;
6028 }
6029
6030
6031 static const asn_namedbit gsm_map_om_MSC_S_EventList_bits[] = {
6032   {  0, &hf_gsm_map_om_MSC_S_EventList_mo_mtCall, -1, -1, "mo-mtCall", NULL },
6033   {  1, &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL },
6034   {  2, &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach, -1, -1, "lu-imsiAttach-imsiDetach", NULL },
6035   {  3, &hf_gsm_map_om_MSC_S_EventList_handovers, -1, -1, "handovers", NULL },
6036   {  4, &hf_gsm_map_om_MSC_S_EventList_ss, -1, -1, "ss", NULL },
6037   { 0, NULL, 0, 0, NULL, NULL }
6038 };
6039
6040 static int
6041 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_) {
6042   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6043                                     gsm_map_om_MSC_S_EventList_bits, hf_index, ett_gsm_map_om_MSC_S_EventList,
6044                                     NULL);
6045
6046   return offset;
6047 }
6048
6049
6050 static const asn_namedbit gsm_map_om_MGW_EventList_bits[] = {
6051   {  0, &hf_gsm_map_om_MGW_EventList_context, -1, -1, "context", NULL },
6052   { 0, NULL, 0, 0, NULL, NULL }
6053 };
6054
6055 static int
6056 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_) {
6057   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6058                                     gsm_map_om_MGW_EventList_bits, hf_index, ett_gsm_map_om_MGW_EventList,
6059                                     NULL);
6060
6061   return offset;
6062 }
6063
6064
6065 static const asn_namedbit gsm_map_om_SGSN_EventList_bits[] = {
6066   {  0, &hf_gsm_map_om_SGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL },
6067   {  1, &hf_gsm_map_om_SGSN_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL },
6068   {  2, &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach, -1, -1, "rau-gprsAttach-gprsDetach", NULL },
6069   {  3, &hf_gsm_map_om_SGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL },
6070   { 0, NULL, 0, 0, NULL, NULL }
6071 };
6072
6073 static int
6074 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_) {
6075   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6076                                     gsm_map_om_SGSN_EventList_bits, hf_index, ett_gsm_map_om_SGSN_EventList,
6077                                     NULL);
6078
6079   return offset;
6080 }
6081
6082
6083 static const asn_namedbit gsm_map_om_GGSN_EventList_bits[] = {
6084   {  0, &hf_gsm_map_om_GGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL },
6085   {  1, &hf_gsm_map_om_GGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL },
6086   { 0, NULL, 0, 0, NULL, NULL }
6087 };
6088
6089 static int
6090 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_) {
6091   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6092                                     gsm_map_om_GGSN_EventList_bits, hf_index, ett_gsm_map_om_GGSN_EventList,
6093                                     NULL);
6094
6095   return offset;
6096 }
6097
6098
6099 static const asn_namedbit gsm_map_om_BMSC_EventList_bits[] = {
6100   {  0, &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation, -1, -1, "mbmsMulticastServiceActivation", NULL },
6101   { 0, NULL, 0, 0, NULL, NULL }
6102 };
6103
6104 static int
6105 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_) {
6106   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6107                                     gsm_map_om_BMSC_EventList_bits, hf_index, ett_gsm_map_om_BMSC_EventList,
6108                                     NULL);
6109
6110   return offset;
6111 }
6112
6113
6114 static const ber_sequence_t gsm_map_om_TraceEventList_sequence[] = {
6115   { &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 },
6116   { &hf_gsm_map_om_mgw_List_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList },
6117   { &hf_gsm_map_om_sgsn_List_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_EventList },
6118   { &hf_gsm_map_om_ggsn_List_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_EventList },
6119   { &hf_gsm_map_om_bmsc_List_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_EventList },
6120   { NULL, 0, 0, 0, NULL }
6121 };
6122
6123 static int
6124 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_) {
6125   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6126                                    gsm_map_om_TraceEventList_sequence, hf_index, ett_gsm_map_om_TraceEventList);
6127
6128   return offset;
6129 }
6130
6131
6132 static const ber_sequence_t gsm_map_om_ActivateTraceModeArg_sequence[] = {
6133   { &hf_gsm_map_om_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
6134   { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
6135   { &hf_gsm_map_om_traceType, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
6136   { &hf_gsm_map_om_omc_Id   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
6137   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6138   { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
6139   { &hf_gsm_map_om_traceDepthList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthList },
6140   { &hf_gsm_map_om_traceNE_TypeList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceNE_TypeList },
6141   { &hf_gsm_map_om_traceInterfaceList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceInterfaceList },
6142   { &hf_gsm_map_om_traceEventList, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceEventList },
6143   { NULL, 0, 0, 0, NULL }
6144 };
6145
6146 static int
6147 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_) {
6148   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6149                                    gsm_map_om_ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeArg);
6150
6151   return offset;
6152 }
6153
6154
6155
6156 static int
6157 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_) {
6158   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6159                                        NULL);
6160
6161   return offset;
6162 }
6163
6164
6165 static const ber_sequence_t gsm_map_om_TracePropagationList_sequence[] = {
6166   { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
6167   { &hf_gsm_map_om_traceType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
6168   { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
6169   { &hf_gsm_map_om_traceRecordingSessionReference, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceRecordingSessionReference },
6170   { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6171   { &hf_gsm_map_om_rnc_InterfaceList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList },
6172   { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6173   { &hf_gsm_map_om_msc_s_InterfaceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList },
6174   { &hf_gsm_map_om_msc_s_EventList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_EventList },
6175   { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6176   { &hf_gsm_map_om_mgw_InterfaceList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList },
6177   { &hf_gsm_map_om_mgw_EventList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList },
6178   { NULL, 0, 0, 0, NULL }
6179 };
6180
6181 static int
6182 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_) {
6183   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6184                                    gsm_map_om_TracePropagationList_sequence, hf_index, ett_gsm_map_om_TracePropagationList);
6185
6186   return offset;
6187 }
6188
6189
6190
6191 static int
6192 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_) {
6193   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6194
6195   return offset;
6196 }
6197
6198
6199 static const ber_sequence_t gsm_map_om_ActivateTraceModeRes_sequence[] = {
6200   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6201   { &hf_gsm_map_om_traceSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_NULL },
6202   { NULL, 0, 0, 0, NULL }
6203 };
6204
6205 static int
6206 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_) {
6207   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6208                                    gsm_map_om_ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeRes);
6209
6210   return offset;
6211 }
6212
6213
6214 static const ber_sequence_t gsm_map_om_DeactivateTraceModeArg_sequence[] = {
6215   { &hf_gsm_map_om_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
6216   { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
6217   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6218   { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
6219   { NULL, 0, 0, 0, NULL }
6220 };
6221
6222 static int
6223 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_) {
6224   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6225                                    gsm_map_om_DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeArg);
6226
6227   return offset;
6228 }
6229
6230
6231 static const ber_sequence_t gsm_map_om_DeactivateTraceModeRes_sequence[] = {
6232   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6233   { NULL, 0, 0, 0, NULL }
6234 };
6235
6236 static int
6237 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_) {
6238   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6239                                    gsm_map_om_DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeRes);
6240
6241   return offset;
6242 }
6243
6244
6245 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
6246
6247
6248 static const asn_namedbit gsm_map_ms_SupportedCamelPhases_bits[] = {
6249   {  0, &hf_gsm_map_ms_SupportedCamelPhases_phase1, -1, -1, "phase1", NULL },
6250   {  1, &hf_gsm_map_ms_SupportedCamelPhases_phase2, -1, -1, "phase2", NULL },
6251   {  2, &hf_gsm_map_ms_SupportedCamelPhases_phase3, -1, -1, "phase3", NULL },
6252   {  3, &hf_gsm_map_ms_SupportedCamelPhases_phase4, -1, -1, "phase4", NULL },
6253   { 0, NULL, 0, 0, NULL, NULL }
6254 };
6255
6256 int
6257 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_) {
6258   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6259                                     gsm_map_ms_SupportedCamelPhases_bits, hf_index, ett_gsm_map_ms_SupportedCamelPhases,
6260                                     NULL);
6261
6262   return offset;
6263 }
6264
6265
6266
6267 static int
6268 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_) {
6269   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6270
6271   return offset;
6272 }
6273
6274
6275 static const value_string gsm_map_ms_IST_SupportIndicator_vals[] = {
6276   {   0, "basicISTSupported" },
6277   {   1, "istCommandSupported" },
6278   { 0, NULL }
6279 };
6280
6281
6282 static int
6283 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_) {
6284   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6285                                   NULL);
6286
6287   return offset;
6288 }
6289
6290
6291
6292 static int
6293 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_) {
6294   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6295                                        NULL);
6296
6297   return offset;
6298 }
6299
6300
6301 static const value_string gsm_map_ms_SuperChargerInfo_vals[] = {
6302   {   0, "sendSubscriberData" },
6303   {   1, "subscriberDataStored" },
6304   { 0, NULL }
6305 };
6306
6307 static const ber_choice_t gsm_map_ms_SuperChargerInfo_choice[] = {
6308   {   0, &hf_gsm_map_ms_sendSubscriberData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6309   {   1, &hf_gsm_map_ms_subscriberDataStored, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator },
6310   { 0, NULL, 0, 0, 0, NULL }
6311 };
6312
6313 static int
6314 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_) {
6315   offset = dissect_ber_choice(actx, tree, tvb, offset,
6316                                  gsm_map_ms_SuperChargerInfo_choice, hf_index, ett_gsm_map_ms_SuperChargerInfo,
6317                                  NULL);
6318
6319   return offset;
6320 }
6321
6322
6323 static const asn_namedbit gsm_map_ms_SupportedLCS_CapabilitySets_bits[] = {
6324   {  0, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1, -1, -1, "lcsCapabilitySet1", NULL },
6325   {  1, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2, -1, -1, "lcsCapabilitySet2", NULL },
6326   {  2, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3, -1, -1, "lcsCapabilitySet3", NULL },
6327   {  3, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4, -1, -1, "lcsCapabilitySet4", NULL },
6328   {  4, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5, -1, -1, "lcsCapabilitySet5", NULL },
6329   { 0, NULL, 0, 0, NULL, NULL }
6330 };
6331
6332 static int
6333 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_) {
6334   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6335                                     gsm_map_ms_SupportedLCS_CapabilitySets_bits, hf_index, ett_gsm_map_ms_SupportedLCS_CapabilitySets,
6336                                     NULL);
6337
6338   return offset;
6339 }
6340
6341
6342 static const asn_namedbit gsm_map_ms_OfferedCamel4CSIs_bits[] = {
6343   {  0, &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi, -1, -1, "o-csi", NULL },
6344   {  1, &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi, -1, -1, "d-csi", NULL },
6345   {  2, &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi, -1, -1, "vt-csi", NULL },
6346   {  3, &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi, -1, -1, "t-csi", NULL },
6347   {  4, &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi, -1, -1, "mt-sms-csi", NULL },
6348   {  5, &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi, -1, -1, "mg-csi", NULL },
6349   {  6, &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements, -1, -1, "psi-enhancements", NULL },
6350   { 0, NULL, 0, 0, NULL, NULL }
6351 };
6352
6353 static int
6354 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_) {
6355   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6356                                     gsm_map_ms_OfferedCamel4CSIs_bits, hf_index, ett_gsm_map_ms_OfferedCamel4CSIs,
6357                                     NULL);
6358
6359   return offset;
6360 }
6361
6362
6363 static const asn_namedbit gsm_map_ms_SupportedRAT_Types_bits[] = {
6364   {  0, &hf_gsm_map_ms_SupportedRAT_Types_utran, -1, -1, "utran", NULL },
6365   {  1, &hf_gsm_map_ms_SupportedRAT_Types_geran, -1, -1, "geran", NULL },
6366   { 0, NULL, 0, 0, NULL, NULL }
6367 };
6368
6369 static int
6370 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_) {
6371   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6372                                     gsm_map_ms_SupportedRAT_Types_bits, hf_index, ett_gsm_map_ms_SupportedRAT_Types,
6373                                     NULL);
6374
6375   return offset;
6376 }
6377
6378
6379 static const ber_sequence_t gsm_map_ms_VLR_Capability_sequence[] = {
6380   { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
6381   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6382   { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6383   { &hf_gsm_map_ms_istSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator },
6384   { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo },
6385   { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6386   { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
6387   { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
6388   { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types },
6389   { &hf_gsm_map_ms_longGroupID_Supported, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6390   { NULL, 0, 0, 0, NULL }
6391 };
6392
6393 static int
6394 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_) {
6395   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6396                                    gsm_map_ms_VLR_Capability_sequence, hf_index, ett_gsm_map_ms_VLR_Capability);
6397
6398   return offset;
6399 }
6400
6401
6402
6403 int
6404 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_) {
6405 #line 521 "gsmmap.cnf"
6406
6407         tvbuff_t        *parameter_tvb;
6408         guint8          octet;
6409         proto_tree *subtree;
6410
6411   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6412                                        &parameter_tvb);
6413
6414
6415         if (!parameter_tvb)
6416                 return offset;
6417         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_pdptypenumber);
6418
6419         octet = tvb_get_guint8(parameter_tvb,0);
6420         switch(octet){
6421         case 0x04: /* IPv4 */
6422                 proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE);
6423                 break;
6424         case 0x50: /* IPv4 */
6425                 proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE);
6426                 break;
6427         default:
6428                 break;
6429         }
6430
6431
6432
6433   return offset;
6434 }
6435
6436
6437 static const ber_sequence_t gsm_map_ms_ADD_Info_sequence[] = {
6438   { &hf_gsm_map_ms_imeisv   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
6439   { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6440   { NULL, 0, 0, 0, NULL }
6441 };
6442
6443 static int
6444 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_) {
6445   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6446                                    gsm_map_ms_ADD_Info_sequence, hf_index, ett_gsm_map_ms_ADD_Info);
6447
6448   return offset;
6449 }
6450
6451
6452 static const ber_sequence_t gsm_map_ms_UpdateLocationArg_sequence[] = {
6453   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6454   { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6455   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6456   { &hf_gsm_map_ms_lmsi     , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
6457   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6458   { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability },
6459   { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6460   { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6461   { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
6462   { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info },
6463   { NULL, 0, 0, 0, NULL }
6464 };
6465
6466 static int
6467 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_) {
6468   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6469                                    gsm_map_ms_UpdateLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateLocationArg);
6470
6471   return offset;
6472 }
6473
6474
6475 static const ber_sequence_t gsm_map_ms_UpdateLocationRes_sequence[] = {
6476   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6477   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6478   { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
6479   { NULL, 0, 0, 0, NULL }
6480 };
6481
6482 static int
6483 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_) {
6484   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6485                                    gsm_map_ms_UpdateLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateLocationRes);
6486
6487   return offset;
6488 }
6489
6490
6491 static const value_string gsm_map_ms_CancellationType_vals[] = {
6492   {   0, "updateProcedure" },
6493   {   1, "subscriptionWithdraw" },
6494   { 0, NULL }
6495 };
6496
6497
6498 static int
6499 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_) {
6500   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6501                                   NULL);
6502
6503   return offset;
6504 }
6505
6506
6507 static const ber_sequence_t gsm_map_ms_CancelLocationArg_U_sequence[] = {
6508   { &hf_gsm_map_ms_identity , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Identity },
6509   { &hf_gsm_map_ms_cancellationType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CancellationType },
6510   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6511   { NULL, 0, 0, 0, NULL }
6512 };
6513
6514 static int
6515 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_) {
6516   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6517                                    gsm_map_ms_CancelLocationArg_U_sequence, hf_index, ett_gsm_map_ms_CancelLocationArg_U);
6518
6519   return offset;
6520 }
6521
6522
6523
6524 static int
6525 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_) {
6526   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6527                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_CancelLocationArg_U);
6528
6529   return offset;
6530 }
6531
6532
6533 static const ber_sequence_t gsm_map_ms_CancelLocationRes_sequence[] = {
6534   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6535   { NULL, 0, 0, 0, NULL }
6536 };
6537
6538 static int
6539 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_) {
6540   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6541                                    gsm_map_ms_CancelLocationRes_sequence, hf_index, ett_gsm_map_ms_CancelLocationRes);
6542
6543   return offset;
6544 }
6545
6546
6547 static const ber_sequence_t gsm_map_ms_PurgeMS_Arg_U_sequence[] = {
6548   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6549   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6550   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6551   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6552   { NULL, 0, 0, 0, NULL }
6553 };
6554
6555 static int
6556 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_) {
6557   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6558                                    gsm_map_ms_PurgeMS_Arg_U_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Arg_U);
6559
6560   return offset;
6561 }
6562
6563
6564
6565 static int
6566 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_) {
6567   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6568                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PurgeMS_Arg_U);
6569
6570   return offset;
6571 }
6572
6573
6574 static const ber_sequence_t gsm_map_ms_PurgeMS_Res_sequence[] = {
6575   { &hf_gsm_map_ms_freezeTMSI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6576   { &hf_gsm_map_ms_freezeP_TMSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6577   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6578   { NULL, 0, 0, 0, NULL }
6579 };
6580
6581 static int
6582 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_) {
6583   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6584                                    gsm_map_ms_PurgeMS_Res_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Res);
6585
6586   return offset;
6587 }
6588
6589
6590
6591 static int
6592 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_) {
6593   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6594                                                 NULL);
6595
6596   return offset;
6597 }
6598
6599
6600
6601 static int
6602 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_) {
6603   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6604                                                 NULL);
6605
6606   return offset;
6607 }
6608
6609
6610 static const ber_sequence_t gsm_map_ms_SendIdentificationArg_sequence[] = {
6611   { &hf_gsm_map_ms_tmsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_TMSI },
6612   { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
6613   { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
6614   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6615   { &hf_gsm_map_ms_msc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6616   { &hf_gsm_map_ms_previous_LAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
6617   { &hf_gsm_map_ms_hopCounter, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_HopCounter },
6618   { NULL, 0, 0, 0, NULL }
6619 };
6620
6621 static int
6622 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_) {
6623   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6624                                    gsm_map_ms_SendIdentificationArg_sequence, hf_index, ett_gsm_map_ms_SendIdentificationArg);
6625
6626   return offset;
6627 }
6628
6629
6630
6631 static int
6632 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_) {
6633   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6634                                        NULL);
6635
6636   return offset;
6637 }
6638
6639
6640
6641 static int
6642 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_) {
6643   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6644                                        NULL);
6645
6646   return offset;
6647 }
6648
6649
6650
6651 static int
6652 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_) {
6653   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6654                                        NULL);
6655
6656   return offset;
6657 }
6658
6659
6660 static const ber_sequence_t gsm_map_ms_AuthenticationTriplet_sequence[] = {
6661   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
6662   { &hf_gsm_map_ms_sres     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SRES },
6663   { &hf_gsm_map_ms_kc       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc },
6664   { NULL, 0, 0, 0, NULL }
6665 };
6666
6667 static int
6668 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_) {
6669   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6670                                    gsm_map_ms_AuthenticationTriplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationTriplet);
6671
6672   return offset;
6673 }
6674
6675
6676 static const ber_sequence_t gsm_map_ms_TripletList_sequence_of[1] = {
6677   { &hf_gsm_map_ms_TripletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationTriplet },
6678 };
6679
6680 static int
6681 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_) {
6682   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6683                                       gsm_map_ms_TripletList_sequence_of, hf_index, ett_gsm_map_ms_TripletList);
6684
6685   return offset;
6686 }
6687
6688
6689
6690 static int
6691 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_) {
6692   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6693                                        NULL);
6694
6695   return offset;
6696 }
6697
6698
6699
6700 static int
6701 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_) {
6702   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6703                                        NULL);
6704
6705   return offset;
6706 }
6707
6708
6709
6710 static int
6711 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_) {
6712   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6713                                        NULL);
6714
6715   return offset;
6716 }
6717
6718
6719
6720 static int
6721 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_) {
6722   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6723                                        NULL);
6724
6725   return offset;
6726 }
6727
6728
6729 static const ber_sequence_t gsm_map_ms_AuthenticationQuintuplet_sequence[] = {
6730   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
6731   { &hf_gsm_map_ms_xres     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_XRES },
6732   { &hf_gsm_map_ms_ck       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK },
6733   { &hf_gsm_map_ms_ik       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK },
6734   { &hf_gsm_map_ms_autn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTN },
6735   { NULL, 0, 0, 0, NULL }
6736 };
6737
6738 static int
6739 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_) {
6740   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6741                                    gsm_map_ms_AuthenticationQuintuplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationQuintuplet);
6742
6743   return offset;
6744 }
6745
6746
6747 static const ber_sequence_t gsm_map_ms_QuintupletList_sequence_of[1] = {
6748   { &hf_gsm_map_ms_QuintupletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationQuintuplet },
6749 };
6750
6751 static int
6752 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_) {
6753   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6754                                       gsm_map_ms_QuintupletList_sequence_of, hf_index, ett_gsm_map_ms_QuintupletList);
6755
6756   return offset;
6757 }
6758
6759
6760 static const value_string gsm_map_ms_AuthenticationSetList_vals[] = {
6761   {   0, "tripletList" },
6762   {   1, "quintupletList" },
6763   { 0, NULL }
6764 };
6765
6766 static const ber_choice_t gsm_map_ms_AuthenticationSetList_choice[] = {
6767   {   0, &hf_gsm_map_ms_tripletList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TripletList },
6768   {   1, &hf_gsm_map_ms_quintupletList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QuintupletList },
6769   { 0, NULL, 0, 0, 0, NULL }
6770 };
6771
6772 static int
6773 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_) {
6774   offset = dissect_ber_choice(actx, tree, tvb, offset,
6775                                  gsm_map_ms_AuthenticationSetList_choice, hf_index, ett_gsm_map_ms_AuthenticationSetList,
6776                                  NULL);
6777
6778   return offset;
6779 }
6780
6781
6782
6783 static int
6784 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_) {
6785   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6786                                        NULL);
6787
6788   return offset;
6789 }
6790
6791
6792 static const ber_sequence_t gsm_map_ms_GSM_SecurityContextData_sequence[] = {
6793   { &hf_gsm_map_ms_kc       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc },
6794   { &hf_gsm_map_ms_cksn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Cksn },
6795   { NULL, 0, 0, 0, NULL }
6796 };
6797
6798 static int
6799 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_) {
6800   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6801                                    gsm_map_ms_GSM_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_GSM_SecurityContextData);
6802
6803   return offset;
6804 }
6805
6806
6807
6808 static int
6809 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_) {
6810   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6811                                        NULL);
6812
6813   return offset;
6814 }
6815
6816
6817 static const ber_sequence_t gsm_map_ms_UMTS_SecurityContextData_sequence[] = {
6818   { &hf_gsm_map_ms_ck       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK },
6819   { &hf_gsm_map_ms_ik       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK },
6820   { &hf_gsm_map_ms_ksi      , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_KSI },
6821   { NULL, 0, 0, 0, NULL }
6822 };
6823
6824 static int
6825 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_) {
6826   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6827                                    gsm_map_ms_UMTS_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_UMTS_SecurityContextData);
6828
6829   return offset;
6830 }
6831
6832
6833 static const value_string gsm_map_ms_CurrentSecurityContext_vals[] = {
6834   {   0, "gsm-SecurityContextData" },
6835   {   1, "umts-SecurityContextData" },
6836   { 0, NULL }
6837 };
6838
6839 static const ber_choice_t gsm_map_ms_CurrentSecurityContext_choice[] = {
6840   {   0, &hf_gsm_map_ms_gsm_SecurityContextData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSM_SecurityContextData },
6841   {   1, &hf_gsm_map_ms_umts_SecurityContextData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UMTS_SecurityContextData },
6842   { 0, NULL, 0, 0, 0, NULL }
6843 };
6844
6845 static int
6846 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_) {
6847   offset = dissect_ber_choice(actx, tree, tvb, offset,
6848                                  gsm_map_ms_CurrentSecurityContext_choice, hf_index, ett_gsm_map_ms_CurrentSecurityContext,
6849                                  NULL);
6850
6851   return offset;
6852 }
6853
6854
6855 static const ber_sequence_t gsm_map_ms_SendIdentificationRes_U_sequence[] = {
6856   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6857   { &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 },
6858   { &hf_gsm_map_ms_currentSecurityContext, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_CurrentSecurityContext },
6859   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6860   { NULL, 0, 0, 0, NULL }
6861 };
6862
6863 static int
6864 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_) {
6865   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6866                                    gsm_map_ms_SendIdentificationRes_U_sequence, hf_index, ett_gsm_map_ms_SendIdentificationRes_U);
6867
6868   return offset;
6869 }
6870
6871
6872
6873 static int
6874 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_) {
6875   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
6876                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendIdentificationRes_U);
6877
6878   return offset;
6879 }
6880
6881
6882
6883 static int
6884 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_) {
6885   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6886                                        NULL);
6887
6888   return offset;
6889 }
6890
6891
6892 static const value_string gsm_map_ms_FailureCause_vals[] = {
6893   {   0, "wrongUserResponse" },
6894   {   1, "wrongNetworkSignature" },
6895   { 0, NULL }
6896 };
6897
6898
6899 static int
6900 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_) {
6901   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6902                                   NULL);
6903
6904   return offset;
6905 }
6906
6907
6908
6909 static int
6910 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_) {
6911   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
6912
6913   return offset;
6914 }
6915
6916
6917 static const value_string gsm_map_ms_AccessType_vals[] = {
6918   {   0, "call" },
6919   {   1, "emergencyCall" },
6920   {   2, "locationUpdating" },
6921   {   3, "supplementaryService" },
6922   {   4, "shortMessage" },
6923   {   5, "gprsAttach" },
6924   {   6, "routingAreaUpdating" },
6925   {   7, "serviceRequest" },
6926   {   8, "pdpContextActivation" },
6927   {   9, "pdpContextDeactivation" },
6928   {  10, "gprsDetach" },
6929   { 0, NULL }
6930 };
6931
6932
6933 static int
6934 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_) {
6935   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6936                                   NULL);
6937
6938   return offset;
6939 }
6940
6941
6942 static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportArg_sequence[] = {
6943   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6944   { &hf_gsm_map_ms_failureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_FailureCause },
6945   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6946   { &hf_gsm_map_ms_re_attempt, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BOOLEAN },
6947   { &hf_gsm_map_ms_accessType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AccessType },
6948   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
6949   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6950   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6951   { NULL, 0, 0, 0, NULL }
6952 };
6953
6954 static int
6955 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_) {
6956   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6957                                    gsm_map_ms_AuthenticationFailureReportArg_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportArg);
6958
6959   return offset;
6960 }
6961
6962
6963 static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportRes_sequence[] = {
6964   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6965   { NULL, 0, 0, 0, NULL }
6966 };
6967
6968 static int
6969 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_) {
6970   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6971                                    gsm_map_ms_AuthenticationFailureReportRes_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportRes);
6972
6973   return offset;
6974 }
6975
6976
6977 static const ber_sequence_t gsm_map_ms_SGSN_Capability_sequence[] = {
6978   { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
6979   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6980   { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo },
6981   { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6982   { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
6983   { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
6984   { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
6985   { &hf_gsm_map_ms_smsCallBarringSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
6986   { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types },
6987   { NULL, 0, 0, 0, NULL }
6988 };
6989
6990 static int
6991 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_) {
6992   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6993                                    gsm_map_ms_SGSN_Capability_sequence, hf_index, ett_gsm_map_ms_SGSN_Capability);
6994
6995   return offset;
6996 }
6997
6998
6999 static const ber_sequence_t gsm_map_ms_UpdateGprsLocationArg_sequence[] = {
7000   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
7001   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7002   { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GSN_Address },
7003   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7004   { &hf_gsm_map_ms_sgsn_Capability, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_Capability },
7005   { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7006   { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7007   { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
7008   { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info },
7009   { NULL, 0, 0, 0, NULL }
7010 };
7011
7012 static int
7013 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_) {
7014   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7015                                    gsm_map_ms_UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationArg);
7016
7017   return offset;
7018 }
7019
7020
7021 static const ber_sequence_t gsm_map_ms_UpdateGprsLocationRes_sequence[] = {
7022   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7023   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7024   { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7025   { NULL, 0, 0, 0, NULL }
7026 };
7027
7028 static int
7029 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_) {
7030   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7031                                    gsm_map_ms_UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationRes);
7032
7033   return offset;
7034 }
7035
7036
7037
7038 static int
7039 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_) {
7040 #line 593 "gsmmap.cnf"
7041     tvbuff_t        *parameter_tvb;
7042         asn1_ctx_t              asn1_ctx;
7043
7044   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7045                                        &parameter_tvb);
7046  
7047
7048         if (!parameter_tvb) 
7049                 return offset;
7050
7051         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
7052         dissect_ranap_IntegrityProtectionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_IntegrityProtectionInformation);
7053
7054
7055
7056   return offset;
7057 }
7058
7059
7060
7061 static int
7062 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_) {
7063 #line 605 "gsmmap.cnf"
7064     tvbuff_t        *parameter_tvb;
7065         asn1_ctx_t              asn1_ctx;
7066
7067   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7068                                        &parameter_tvb);
7069  
7070
7071         if (!parameter_tvb) 
7072                 return offset;
7073
7074         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
7075         dissect_ranap_EncryptionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_EncryptionInformation);
7076
7077
7078
7079   return offset;
7080 }
7081
7082
7083 static const value_string gsm_map_ms_KeyStatus_vals[] = {
7084   {   0, "old" },
7085   {   1, "new" },
7086   { 0, NULL }
7087 };
7088
7089
7090 static int
7091 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_) {
7092   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7093                                   NULL);
7094
7095   return offset;
7096 }
7097
7098
7099
7100 static int
7101 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_) {
7102   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7103                                        NULL);
7104
7105   return offset;
7106 }
7107
7108
7109
7110 static int
7111 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_) {
7112   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7113                                        NULL);
7114
7115   return offset;
7116 }
7117
7118
7119
7120 static int
7121 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_) {
7122   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7123                                        NULL);
7124
7125   return offset;
7126 }
7127
7128
7129 static const ber_sequence_t gsm_map_ms_AllowedUMTS_Algorithms_sequence[] = {
7130   { &hf_gsm_map_ms_integrityProtectionAlgorithms, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedIntegrityProtectionAlgorithms },
7131   { &hf_gsm_map_ms_encryptionAlgorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedEncryptionAlgorithms },
7132   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7133   { NULL, 0, 0, 0, NULL }
7134 };
7135
7136 static int
7137 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_) {
7138   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7139                                    gsm_map_ms_AllowedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_AllowedUMTS_Algorithms);
7140
7141   return offset;
7142 }
7143
7144
7145
7146 static int
7147 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_) {
7148 #line 569 "gsmmap.cnf"
7149     tvbuff_t        *parameter_tvb; 
7150         proto_tree *subtree;
7151
7152   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7153                                        &parameter_tvb);
7154  
7155
7156         if (!parameter_tvb) 
7157                 return offset; 
7158
7159     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RadioResourceInformation); 
7160         be_chan_type(parameter_tvb, subtree, 0, tvb_length_remaining(tvb,0), NULL, 0);
7161
7162
7163
7164   return offset;
7165 }
7166
7167
7168
7169 static int
7170 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_) {
7171   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7172                                                 NULL);
7173
7174   return offset;
7175 }
7176
7177
7178 static const ber_sequence_t gsm_map_ms_RadioResource_sequence[] = {
7179   { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResourceInformation },
7180   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
7181   { NULL, 0, 0, 0, NULL }
7182 };
7183
7184 static int
7185 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_) {
7186   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7187                                    gsm_map_ms_RadioResource_sequence, hf_index, ett_gsm_map_ms_RadioResource);
7188
7189   return offset;
7190 }
7191
7192
7193 static const ber_sequence_t gsm_map_ms_RadioResourceList_sequence_of[1] = {
7194   { &hf_gsm_map_ms_RadioResourceList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResource },
7195 };
7196
7197 static int
7198 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_) {
7199   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7200                                       gsm_map_ms_RadioResourceList_sequence_of, hf_index, ett_gsm_map_ms_RadioResourceList);
7201
7202   return offset;
7203 }
7204
7205
7206
7207 static int
7208 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_) {
7209   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7210                                        NULL);
7211
7212   return offset;
7213 }
7214
7215
7216
7217 static int
7218 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_) {
7219 #line 581 "gsmmap.cnf"
7220     tvbuff_t        *parameter_tvb;
7221         asn1_ctx_t              asn1_ctx;
7222
7223   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7224                                        &parameter_tvb);
7225  
7226
7227         if (!parameter_tvb) 
7228                 return offset;
7229
7230         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
7231         dissect_ranap_Service_Handover(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_ranap_service_Handover);
7232
7233
7234
7235   return offset;
7236 }
7237
7238
7239 static const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverInfo_sequence[] = {
7240   { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
7241   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
7242   { NULL, 0, 0, 0, NULL }
7243 };
7244
7245 static int
7246 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_) {
7247   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7248                                    gsm_map_ms_BSSMAP_ServiceHandoverInfo_sequence, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo);
7249
7250   return offset;
7251 }
7252
7253
7254 static const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of[1] = {
7255   { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverInfo },
7256 };
7257
7258 static int
7259 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_) {
7260   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7261                                       gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverList);
7262
7263   return offset;
7264 }
7265
7266
7267
7268 static int
7269 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_) {
7270   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7271                                        NULL);
7272
7273   return offset;
7274 }
7275
7276
7277 static const ber_sequence_t gsm_map_ms_CodecList_sequence[] = {
7278   { &hf_gsm_map_ms_codec1   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7279   { &hf_gsm_map_ms_codec2   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7280   { &hf_gsm_map_ms_codec3   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7281   { &hf_gsm_map_ms_codec4   , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7282   { &hf_gsm_map_ms_codec5   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7283   { &hf_gsm_map_ms_codec6   , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7284   { &hf_gsm_map_ms_codec7   , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7285   { &hf_gsm_map_ms_codec8   , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7286   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7287   { NULL, 0, 0, 0, NULL }
7288 };
7289
7290 static int
7291 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_) {
7292   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7293                                    gsm_map_ms_CodecList_sequence, hf_index, ett_gsm_map_ms_CodecList);
7294
7295   return offset;
7296 }
7297
7298
7299 static const ber_sequence_t gsm_map_ms_SupportedCodecsList_sequence[] = {
7300   { &hf_gsm_map_ms_utranCodecList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7301   { &hf_gsm_map_ms_geranCodecList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7302   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7303   { NULL, 0, 0, 0, NULL }
7304 };
7305
7306 static int
7307 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_) {
7308   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7309                                    gsm_map_ms_SupportedCodecsList_sequence, hf_index, ett_gsm_map_ms_SupportedCodecsList);
7310
7311   return offset;
7312 }
7313
7314
7315 static const ber_sequence_t gsm_map_ms_ForwardAccessSignalling_Arg_U_sequence[] = {
7316   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7317   { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation },
7318   { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation },
7319   { &hf_gsm_map_ms_keyStatus, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_KeyStatus },
7320   { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms },
7321   { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms },
7322   { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7323   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7324   { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList },
7325   { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
7326   { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover },
7327   { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList },
7328   { &hf_gsm_map_ms_currentlyUsedCodec, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7329   { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList },
7330   { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7331   { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7332   { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7333   { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList },
7334   { NULL, 0, 0, 0, NULL }
7335 };
7336
7337 static int
7338 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_) {
7339   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7340                                    gsm_map_ms_ForwardAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ForwardAccessSignalling_Arg_U);
7341
7342   return offset;
7343 }
7344
7345
7346
7347 static int
7348 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_) {
7349   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7350                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_ForwardAccessSignalling_Arg_U);
7351
7352   return offset;
7353 }
7354
7355
7356
7357 static int
7358 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_) {
7359   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7360                                        NULL);
7361
7362   return offset;
7363 }
7364
7365
7366
7367 static int
7368 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_) {
7369   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7370                                        NULL);
7371
7372   return offset;
7373 }
7374
7375
7376
7377 static int
7378 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_) {
7379   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7380                                     NULL, hf_index, -1,
7381                                     NULL);
7382
7383   return offset;
7384 }
7385
7386
7387
7388 static int
7389 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_) {
7390   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7391                                     NULL, hf_index, -1,
7392                                     NULL);
7393
7394   return offset;
7395 }
7396
7397
7398 static const ber_sequence_t gsm_map_ms_UESBI_Iu_sequence[] = {
7399   { &hf_gsm_map_ms_uesbi_IuA, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuA },
7400   { &hf_gsm_map_ms_uesbi_IuB, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuB },
7401   { NULL, 0, 0, 0, NULL }
7402 };
7403
7404 static int
7405 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_) {
7406   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7407                                    gsm_map_ms_UESBI_Iu_sequence, hf_index, ett_gsm_map_ms_UESBI_Iu);
7408
7409   return offset;
7410 }
7411
7412
7413 static const ber_sequence_t gsm_map_ms_PrepareHO_Arg_U_sequence[] = {
7414   { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
7415   { &hf_gsm_map_ms_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7416   { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId },
7417   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7418   { &hf_gsm_map_ms_multipleBearerRequested, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7419   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
7420   { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation },
7421   { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation },
7422   { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7423   { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms },
7424   { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms },
7425   { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList },
7426   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7427   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
7428   { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
7429   { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover },
7430   { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList },
7431   { &hf_gsm_map_ms_asciCallReference, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference },
7432   { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark },
7433   { &hf_gsm_map_ms_iuCurrentlyUsedCodec, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7434   { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList },
7435   { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7436   { &hf_gsm_map_ms_uesbi_Iu , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_Iu },
7437   { &hf_gsm_map_ms_imeisv   , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
7438   { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
7439   { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList },
7440   { NULL, 0, 0, 0, NULL }
7441 };
7442
7443 static int
7444 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_) {
7445   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7446                                    gsm_map_ms_PrepareHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Arg_U);
7447
7448   return offset;
7449 }
7450
7451
7452
7453 static int
7454 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_) {
7455   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7456                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareHO_Arg_U);
7457
7458   return offset;
7459 }
7460
7461
7462 static const ber_sequence_t gsm_map_ms_RelocationNumber_sequence[] = {
7463   { &hf_gsm_map_ms_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7464   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
7465   { NULL, 0, 0, 0, NULL }
7466 };
7467
7468 static int
7469 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_) {
7470   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7471                                    gsm_map_ms_RelocationNumber_sequence, hf_index, ett_gsm_map_ms_RelocationNumber);
7472
7473   return offset;
7474 }
7475
7476
7477 static const ber_sequence_t gsm_map_ms_RelocationNumberList_sequence_of[1] = {
7478   { &hf_gsm_map_ms_RelocationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RelocationNumber },
7479 };
7480
7481 static int
7482 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_) {
7483   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7484                                       gsm_map_ms_RelocationNumberList_sequence_of, hf_index, ett_gsm_map_ms_RelocationNumberList);
7485
7486   return offset;
7487 }
7488
7489
7490
7491 static int
7492 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_) {
7493   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7494                                                 NULL);
7495
7496   return offset;
7497 }
7498
7499
7500
7501 static int
7502 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_) {
7503   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7504                                        NULL);
7505
7506   return offset;
7507 }
7508
7509
7510
7511 static int
7512 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_) {
7513   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7514                                        NULL);
7515
7516   return offset;
7517 }
7518
7519
7520 static const ber_sequence_t gsm_map_ms_SelectedUMTS_Algorithms_sequence[] = {
7521   { &hf_gsm_map_ms_integrityProtectionAlgorithm, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenIntegrityProtectionAlgorithm },
7522   { &hf_gsm_map_ms_encryptionAlgorithm, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenEncryptionAlgorithm },
7523   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7524   { NULL, 0, 0, 0, NULL }
7525 };
7526
7527 static int
7528 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_) {
7529   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7530                                    gsm_map_ms_SelectedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_SelectedUMTS_Algorithms);
7531
7532   return offset;
7533 }
7534
7535
7536
7537 static int
7538 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_) {
7539   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7540                                        NULL);
7541
7542   return offset;
7543 }
7544
7545
7546
7547 static int
7548 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_) {
7549   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7550                                        NULL);
7551
7552   return offset;
7553 }
7554
7555
7556 static const ber_sequence_t gsm_map_ms_ChosenRadioResourceInformation_sequence[] = {
7557   { &hf_gsm_map_ms_chosenChannelInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenChannelInfo },
7558   { &hf_gsm_map_ms_chosenSpeechVersion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenSpeechVersion },
7559   { NULL, 0, 0, 0, NULL }
7560 };
7561
7562 static int
7563 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_) {
7564   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7565                                    gsm_map_ms_ChosenRadioResourceInformation_sequence, hf_index, ett_gsm_map_ms_ChosenRadioResourceInformation);
7566
7567   return offset;
7568 }
7569
7570
7571 static const ber_sequence_t gsm_map_ms_PrepareHO_Res_U_sequence[] = {
7572   { &hf_gsm_map_ms_handoverNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7573   { &hf_gsm_map_ms_relocationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RelocationNumberList },
7574   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7575   { &hf_gsm_map_ms_multicallBearerInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MulticallBearerInfo },
7576   { &hf_gsm_map_ms_multipleBearerNotSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7577   { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms },
7578   { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation },
7579   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7580   { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7581   { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7582   { NULL, 0, 0, 0, NULL }
7583 };
7584
7585 static int
7586 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_) {
7587   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7588                                    gsm_map_ms_PrepareHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Res_U);
7589
7590   return offset;
7591 }
7592
7593
7594
7595 static int
7596 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_) {
7597   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7598                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareHO_Res_U);
7599
7600   return offset;
7601 }
7602
7603
7604 static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Arg_U_sequence[] = {
7605   { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
7606   { &hf_gsm_map_ms_targetMSC_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7607   { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId },
7608   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7609   { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
7610   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7611   { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark },
7612   { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7613   { NULL, 0, 0, 0, NULL }
7614 };
7615
7616 static int
7617 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_) {
7618   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7619                                    gsm_map_ms_PrepareSubsequentHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Arg_U);
7620
7621   return offset;
7622 }
7623
7624
7625
7626 static int
7627 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_) {
7628   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7629                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg_U);
7630
7631   return offset;
7632 }
7633
7634
7635 static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Res_U_sequence[] = {
7636   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7637   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7638   { NULL, 0, 0, 0, NULL }
7639 };
7640
7641 static int
7642 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_) {
7643   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7644                                    gsm_map_ms_PrepareSubsequentHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Res_U);
7645
7646   return offset;
7647 }
7648
7649
7650
7651 static int
7652 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_) {
7653   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7654                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Res_U);
7655
7656   return offset;
7657 }
7658
7659
7660
7661 static int
7662 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_) {
7663   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7664                                        NULL);
7665
7666   return offset;
7667 }
7668
7669
7670 static const ber_sequence_t gsm_map_ms_ProcessAccessSignalling_Arg_U_sequence[] = {
7671   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7672   { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms },
7673   { &hf_gsm_map_ms_selectedGSM_Algorithm, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedGSM_Algorithm },
7674   { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation },
7675   { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
7676   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7677   { &hf_gsm_map_ms_iUSelectedCodec, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
7678   { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
7679   { NULL, 0, 0, 0, NULL }
7680 };
7681
7682 static int
7683 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_) {
7684   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7685                                    gsm_map_ms_ProcessAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ProcessAccessSignalling_Arg_U);
7686
7687   return offset;
7688 }
7689
7690
7691
7692 static int
7693 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_) {
7694   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7695                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_ProcessAccessSignalling_Arg_U);
7696
7697   return offset;
7698 }
7699
7700
7701 static const ber_sequence_t gsm_map_ms_SendEndSignal_Arg_U_sequence[] = {
7702   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
7703   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7704   { NULL, 0, 0, 0, NULL }
7705 };
7706
7707 static int
7708 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_) {
7709   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7710                                    gsm_map_ms_SendEndSignal_Arg_U_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Arg_U);
7711
7712   return offset;
7713 }
7714
7715
7716
7717 static int
7718 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_) {
7719   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7720                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendEndSignal_Arg_U);
7721
7722   return offset;
7723 }
7724
7725
7726 static const ber_sequence_t gsm_map_ms_SendEndSignal_Res_sequence[] = {
7727   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7728   { NULL, 0, 0, 0, NULL }
7729 };
7730
7731 static int
7732 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_) {
7733   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7734                                    gsm_map_ms_SendEndSignal_Res_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Res);
7735
7736   return offset;
7737 }
7738
7739
7740 static const ber_sequence_t gsm_map_ms_Re_synchronisationInfo_sequence[] = {
7741   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
7742   { &hf_gsm_map_ms_auts     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTS },
7743   { NULL, 0, 0, 0, NULL }
7744 };
7745
7746 static int
7747 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_) {
7748   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7749                                    gsm_map_ms_Re_synchronisationInfo_sequence, hf_index, ett_gsm_map_ms_Re_synchronisationInfo);
7750
7751   return offset;
7752 }
7753
7754
7755 static const value_string gsm_map_ms_RequestingNodeType_vals[] = {
7756   {   0, "vlr" },
7757   {   1, "sgsn" },
7758   {   2, "s-cscf" },
7759   {   3, "bsf" },
7760   {   4, "gan-aaa-server" },
7761   {   5, "wlan-aaa-server" },
7762   { 0, NULL }
7763 };
7764
7765
7766 static int
7767 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_) {
7768   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7769                                   NULL);
7770
7771   return offset;
7772 }
7773
7774
7775 static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoArg_sequence[] = {
7776   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
7777   { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
7778   { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7779   { &hf_gsm_map_ms_immediateResponsePreferred, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7780   { &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 },
7781   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7782   { &hf_gsm_map_ms_requestingNodeType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestingNodeType },
7783   { &hf_gsm_map_ms_requestingPLMN_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
7784   { NULL, 0, 0, 0, NULL }
7785 };
7786
7787 static int
7788 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_) {
7789   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7790                                    gsm_map_ms_SendAuthenticationInfoArg_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoArg);
7791
7792   return offset;
7793 }
7794
7795
7796 static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoRes_U_sequence[] = {
7797   { &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 },
7798   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7799   { NULL, 0, 0, 0, NULL }
7800 };
7801
7802 static int
7803 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_) {
7804   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7805                                    gsm_map_ms_SendAuthenticationInfoRes_U_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoRes_U);
7806
7807   return offset;
7808 }
7809
7810
7811
7812 static int
7813 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_) {
7814   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7815                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendAuthenticationInfoRes_U);
7816
7817   return offset;
7818 }
7819
7820
7821 static const asn_namedbit gsm_map_ms_RequestedEquipmentInfo_bits[] = {
7822   {  0, &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus, -1, -1, "equipmentStatus", NULL },
7823   {  1, &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef, -1, -1, "bmuef", NULL },
7824   { 0, NULL, 0, 0, NULL, NULL }
7825 };
7826
7827 static int
7828 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_) {
7829   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7830                                     gsm_map_ms_RequestedEquipmentInfo_bits, hf_index, ett_gsm_map_ms_RequestedEquipmentInfo,
7831                                     NULL);
7832
7833   return offset;
7834 }
7835
7836
7837 static const ber_sequence_t gsm_map_ms_CheckIMEI_Arg_sequence[] = {
7838   { &hf_gsm_map_ms_imei     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMEI },
7839   { &hf_gsm_map_ms_requestedEquipmentInfo, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RequestedEquipmentInfo },
7840   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7841   { NULL, 0, 0, 0, NULL }
7842 };
7843
7844 static int
7845 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_) {
7846   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7847                                    gsm_map_ms_CheckIMEI_Arg_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Arg);
7848
7849   return offset;
7850 }
7851
7852
7853 static const value_string gsm_map_ms_EquipmentStatus_vals[] = {
7854   {   0, "whiteListed" },
7855   {   1, "blackListed" },
7856   {   2, "greyListed" },
7857   { 0, NULL }
7858 };
7859
7860
7861 static int
7862 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_) {
7863   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7864                                   NULL);
7865
7866   return offset;
7867 }
7868
7869
7870 static const ber_sequence_t gsm_map_ms_CheckIMEI_Res_sequence[] = {
7871   { &hf_gsm_map_ms_equipmentStatus, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_EquipmentStatus },
7872   { &hf_gsm_map_ms_bmuef    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_UESBI_Iu },
7873   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7874   { NULL, 0, 0, 0, NULL }
7875 };
7876
7877 static int
7878 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_) {
7879   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7880                                    gsm_map_ms_CheckIMEI_Res_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Res);
7881
7882   return offset;
7883 }
7884
7885
7886
7887 static int
7888 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_) {
7889   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7890                                        NULL);
7891
7892   return offset;
7893 }
7894
7895
7896 static const value_string gsm_map_ms_SubscriberStatus_vals[] = {
7897   {   0, "serviceGranted" },
7898   {   1, "operatorDeterminedBarring" },
7899   { 0, NULL }
7900 };
7901
7902
7903 static int
7904 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_) {
7905   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7906                                   NULL);
7907
7908   return offset;
7909 }
7910
7911
7912 static const ber_sequence_t gsm_map_ms_BearerServiceList_sequence_of[1] = {
7913   { &hf_gsm_map_ms_BearerServiceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BearerServiceCode },
7914 };
7915
7916 static int
7917 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_) {
7918   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7919                                       gsm_map_ms_BearerServiceList_sequence_of, hf_index, ett_gsm_map_ms_BearerServiceList);
7920
7921   return offset;
7922 }
7923
7924
7925 static const ber_sequence_t gsm_map_ms_TeleserviceList_sequence_of[1] = {
7926   { &hf_gsm_map_ms_TeleserviceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
7927 };
7928
7929 static int
7930 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_) {
7931   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7932                                       gsm_map_ms_TeleserviceList_sequence_of, hf_index, ett_gsm_map_ms_TeleserviceList);
7933
7934   return offset;
7935 }
7936
7937
7938
7939 static int
7940 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_) {
7941   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7942                                        NULL);
7943
7944   return offset;
7945 }
7946
7947
7948
7949 static int
7950 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_) {
7951   offset = dissect_gsm_map_ms_Ext_ForwOptions(implicit_tag, tvb, offset, actx, tree, hf_index);
7952
7953 #line 470 "gsmmap.cnf"
7954
7955         proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE);
7956         proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE);
7957         proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE);
7958         proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE);
7959
7960
7961
7962   return offset;
7963 }
7964
7965
7966
7967 static int
7968 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_) {
7969   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7970                                                 NULL);
7971
7972   return offset;
7973 }
7974
7975
7976 static const ber_sequence_t gsm_map_ms_Ext_ForwFeature_sequence[] = {
7977   { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
7978   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
7979   { &hf_gsm_map_ms_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7980   { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
7981   { &hf_gsm_map_ms_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_forwardingOptions },
7982   { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime },
7983   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7984   { &hf_gsm_map_ms_longForwardedToNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
7985   { NULL, 0, 0, 0, NULL }
7986 };
7987
7988 static int
7989 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_) {
7990   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7991                                    gsm_map_ms_Ext_ForwFeature_sequence, hf_index, ett_gsm_map_ms_Ext_ForwFeature);
7992
7993   return offset;
7994 }
7995
7996
7997 static const ber_sequence_t gsm_map_ms_Ext_ForwFeatureList_sequence_of[1] = {
7998   { &hf_gsm_map_ms_Ext_ForwFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeature },
7999 };
8000
8001 static int
8002 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_) {
8003   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8004                                       gsm_map_ms_Ext_ForwFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ForwFeatureList);
8005
8006   return offset;
8007 }
8008
8009
8010 static const ber_sequence_t gsm_map_ms_Ext_ForwInfo_sequence[] = {
8011   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
8012   { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
8013   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8014   { NULL, 0, 0, 0, NULL }
8015 };
8016
8017 static int
8018 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_) {
8019   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8020                                    gsm_map_ms_Ext_ForwInfo_sequence, hf_index, ett_gsm_map_ms_Ext_ForwInfo);
8021
8022   return offset;
8023 }
8024
8025
8026 static const ber_sequence_t gsm_map_ms_Ext_CallBarringFeature_sequence[] = {
8027   { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
8028   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
8029   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8030   { NULL, 0, 0, 0, NULL }
8031 };
8032
8033 static int
8034 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_) {
8035   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8036                                    gsm_map_ms_Ext_CallBarringFeature_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringFeature);
8037
8038   return offset;
8039 }
8040
8041
8042 static const ber_sequence_t gsm_map_ms_Ext_CallBarFeatureList_sequence_of[1] = {
8043   { &hf_gsm_map_ms_Ext_CallBarFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarringFeature },
8044 };
8045
8046 static int
8047 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_) {
8048   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8049                                       gsm_map_ms_Ext_CallBarFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_CallBarFeatureList);
8050
8051   return offset;
8052 }
8053
8054
8055 static const ber_sequence_t gsm_map_ms_Ext_CallBarInfo_sequence[] = {
8056   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
8057   { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
8058   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8059   { NULL, 0, 0, 0, NULL }
8060 };
8061
8062 static int
8063 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_) {
8064   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8065                                    gsm_map_ms_Ext_CallBarInfo_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarInfo);
8066
8067   return offset;
8068 }
8069
8070
8071
8072 int
8073 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_) {
8074   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8075                                                 NULL);
8076
8077   return offset;
8078 }
8079
8080
8081
8082 int
8083 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_) {
8084   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8085                                        NULL);
8086
8087   return offset;
8088 }
8089
8090
8091 static const value_string gsm_map_ms_IntraCUG_Options_vals[] = {
8092   {   0, "noCUG-Restrictions" },
8093   {   1, "cugIC-CallBarred" },
8094   {   2, "cugOG-CallBarred" },
8095   { 0, NULL }
8096 };
8097
8098
8099 static int
8100 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_) {
8101   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8102                                   NULL);
8103
8104   return offset;
8105 }
8106
8107
8108 static const ber_sequence_t gsm_map_ms_Ext_BasicServiceGroupList_sequence_of[1] = {
8109   { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
8110 };
8111
8112 static int
8113 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_) {
8114   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8115                                       gsm_map_ms_Ext_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ms_Ext_BasicServiceGroupList);
8116
8117   return offset;
8118 }
8119
8120
8121 static const ber_sequence_t gsm_map_ms_CUG_Subscription_sequence[] = {
8122   { &hf_gsm_map_ms_cug_Index, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Index },
8123   { &hf_gsm_map_ms_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock },
8124   { &hf_gsm_map_ms_intraCUG_Options, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IntraCUG_Options },
8125   { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList },
8126   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8127   { NULL, 0, 0, 0, NULL }
8128 };
8129
8130 static int
8131 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_) {
8132   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8133                                    gsm_map_ms_CUG_Subscription_sequence, hf_index, ett_gsm_map_ms_CUG_Subscription);
8134
8135   return offset;
8136 }
8137
8138
8139 static const ber_sequence_t gsm_map_ms_CUG_SubscriptionList_sequence_of[1] = {
8140   { &hf_gsm_map_ms_CUG_SubscriptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Subscription },
8141 };
8142
8143 static int
8144 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_) {
8145   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8146                                       gsm_map_ms_CUG_SubscriptionList_sequence_of, hf_index, ett_gsm_map_ms_CUG_SubscriptionList);
8147
8148   return offset;
8149 }
8150
8151
8152
8153 static int
8154 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_) {
8155   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8156                                        NULL);
8157
8158   return offset;
8159 }
8160
8161
8162 static const ber_sequence_t gsm_map_ms_CUG_Feature_sequence[] = {
8163   { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
8164   { &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 },
8165   { &hf_gsm_map_ms_interCUG_Restrictions, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_InterCUG_Restrictions },
8166   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8167   { NULL, 0, 0, 0, NULL }
8168 };
8169
8170 static int
8171 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_) {
8172   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8173                                    gsm_map_ms_CUG_Feature_sequence, hf_index, ett_gsm_map_ms_CUG_Feature);
8174
8175   return offset;
8176 }
8177
8178
8179 static const ber_sequence_t gsm_map_ms_CUG_FeatureList_sequence_of[1] = {
8180   { &hf_gsm_map_ms_CUG_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Feature },
8181 };
8182
8183 static int
8184 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_) {
8185   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8186                                       gsm_map_ms_CUG_FeatureList_sequence_of, hf_index, ett_gsm_map_ms_CUG_FeatureList);
8187
8188   return offset;
8189 }
8190
8191
8192 static const ber_sequence_t gsm_map_ms_CUG_Info_sequence[] = {
8193   { &hf_gsm_map_ms_cug_SubscriptionList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_SubscriptionList },
8194   { &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 },
8195   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8196   { NULL, 0, 0, 0, NULL }
8197 };
8198
8199 int
8200 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_) {
8201   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8202                                    gsm_map_ms_CUG_Info_sequence, hf_index, ett_gsm_map_ms_CUG_Info);
8203
8204   return offset;
8205 }
8206
8207
8208 static const ber_sequence_t gsm_map_ms_Ext_SS_Data_sequence[] = {
8209   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
8210   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
8211   { &hf_gsm_map_ms_ss_SubscriptionOption, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_SubscriptionOption },
8212   { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList },
8213   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8214   { NULL, 0, 0, 0, NULL }
8215 };
8216
8217 static int
8218 dissect_gsm_map_ms_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_) {
8219   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8220                                    gsm_map_ms_Ext_SS_Data_sequence, hf_index, ett_gsm_map_ms_Ext_SS_Data);
8221
8222   return offset;
8223 }
8224
8225
8226 static const value_string gsm_map_ms_Ext_SS_Info_vals[] = {
8227   {   0, "forwardingInfo" },
8228   {   1, "callBarringInfo" },
8229   {   2, "cug-Info" },
8230   {   3, "ss-Data" },
8231   {   4, "emlpp-Info" },
8232   { 0, NULL }
8233 };
8234
8235 static const ber_choice_t gsm_map_ms_Ext_SS_Info_choice[] = {
8236   {   0, &hf_gsm_map_ms_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwInfo },
8237   {   1, &hf_gsm_map_ms_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarInfo },
8238   {   2, &hf_gsm_map_ms_cug_Info , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Info },
8239   {   3, &hf_gsm_map_ms_ss_Data  , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_Data },
8240   {   4, &hf_gsm_map_ms_emlpp_Info, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Info },
8241   { 0, NULL, 0, 0, 0, NULL }
8242 };
8243
8244 static int
8245 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_) {
8246   offset = dissect_ber_choice(actx, tree, tvb, offset,
8247                                  gsm_map_ms_Ext_SS_Info_choice, hf_index, ett_gsm_map_ms_Ext_SS_Info,
8248                                  NULL);
8249
8250   return offset;
8251 }
8252
8253
8254 static const ber_sequence_t gsm_map_ms_Ext_SS_InfoList_sequence_of[1] = {
8255   { &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 },
8256 };
8257
8258 static int
8259 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_) {
8260   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8261                                       gsm_map_ms_Ext_SS_InfoList_sequence_of, hf_index, ett_gsm_map_ms_Ext_SS_InfoList);
8262
8263   return offset;
8264 }
8265
8266
8267 static const asn_namedbit gsm_map_ms_ODB_GeneralData_bits[] = {
8268   {  0, &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred, -1, -1, "allOG-CallsBarred", NULL },
8269   {  1, &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred, -1, -1, "internationalOGCallsBarred", NULL },
8270   {  2, &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "internationalOGCallsNotToHPLMN-CountryBarred", NULL },
8271   {  6, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred, -1, -1, "interzonalOGCallsBarred", NULL },
8272   {  7, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsNotToHPLMN-CountryBarred", NULL },
8273   {  8, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", NULL },
8274   {  3, &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred, -1, -1, "premiumRateInformationOGCallsBarred", NULL },
8275   {  4, &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred, -1, -1, "premiumRateEntertainementOGCallsBarred", NULL },
8276   {  5, &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred, -1, -1, "ss-AccessBarred", NULL },
8277   {  9, &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred, -1, -1, "allECT-Barred", NULL },
8278   { 10, &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred, -1, -1, "chargeableECT-Barred", NULL },
8279   { 11, &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred, -1, -1, "internationalECT-Barred", NULL },
8280   { 12, &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred, -1, -1, "interzonalECT-Barred", NULL },
8281   { 13, &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred, -1, -1, "doublyChargeableECT-Barred", NULL },
8282   { 14, &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred, -1, -1, "multipleECT-Barred", NULL },
8283   { 15, &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred, -1, -1, "allPacketOrientedServicesBarred", NULL },
8284   { 16, &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred, -1, -1, "roamerAccessToHPLMN-AP-Barred", NULL },
8285   { 17, &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred, -1, -1, "roamerAccessToVPLMN-AP-Barred", NULL },
8286   { 18, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred, -1, -1, "roamingOutsidePLMNOG-CallsBarred", NULL },
8287   { 19, &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred, -1, -1, "allIC-CallsBarred", NULL },
8288   { 20, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred, -1, -1, "roamingOutsidePLMNIC-CallsBarred", NULL },
8289   { 21, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred, -1, -1, "roamingOutsidePLMNICountryIC-CallsBarred", NULL },
8290   { 22, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred, -1, -1, "roamingOutsidePLMN-Barred", NULL },
8291   { 23, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred, -1, -1, "roamingOutsidePLMN-CountryBarred", NULL },
8292   { 24, &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred, -1, -1, "registrationAllCF-Barred", NULL },
8293   { 25, &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred, -1, -1, "registrationCFNotToHPLMN-Barred", NULL },
8294   { 26, &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred, -1, -1, "registrationInterzonalCF-Barred", NULL },
8295   { 27, &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred, -1, -1, "registrationInterzonalCFNotToHPLMN-Barred", NULL },
8296   { 28, &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred, -1, -1, "registrationInternationalCF-Barred", NULL },
8297   { 0, NULL, 0, 0, NULL, NULL }
8298 };
8299
8300 static int
8301 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_) {
8302   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8303                                     gsm_map_ms_ODB_GeneralData_bits, hf_index, ett_gsm_map_ms_ODB_GeneralData,
8304                                     NULL);
8305
8306   return offset;
8307 }
8308
8309
8310 static const asn_namedbit gsm_map_ms_ODB_HPLMN_Data_bits[] = {
8311   {  0, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1, -1, -1, "plmn-SpecificBarringType1", NULL },
8312   {  1, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2, -1, -1, "plmn-SpecificBarringType2", NULL },
8313   {  2, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3, -1, -1, "plmn-SpecificBarringType3", NULL },
8314   {  3, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4, -1, -1, "plmn-SpecificBarringType4", NULL },
8315   { 0, NULL, 0, 0, NULL, NULL }
8316 };
8317
8318 static int
8319 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_) {
8320   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8321                                     gsm_map_ms_ODB_HPLMN_Data_bits, hf_index, ett_gsm_map_ms_ODB_HPLMN_Data,
8322                                     NULL);
8323
8324   return offset;
8325 }
8326
8327
8328 static const ber_sequence_t gsm_map_ms_ODB_Data_sequence[] = {
8329   { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_GeneralData },
8330   { &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 },
8331   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8332   { NULL, 0, 0, 0, NULL }
8333 };
8334
8335 static int
8336 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_) {
8337   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8338                                    gsm_map_ms_ODB_Data_sequence, hf_index, ett_gsm_map_ms_ODB_Data);
8339
8340   return offset;
8341 }
8342
8343
8344
8345 static int
8346 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_) {
8347   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8348                                        NULL);
8349
8350   return offset;
8351 }
8352
8353
8354 static const ber_sequence_t gsm_map_ms_ZoneCodeList_sequence_of[1] = {
8355   { &hf_gsm_map_ms_ZoneCodeList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ZoneCode },
8356 };
8357
8358 static int
8359 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_) {
8360   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8361                                       gsm_map_ms_ZoneCodeList_sequence_of, hf_index, ett_gsm_map_ms_ZoneCodeList);
8362
8363   return offset;
8364 }
8365
8366
8367
8368 static int
8369 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_) {
8370   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
8371
8372   return offset;
8373 }
8374
8375
8376 static const ber_sequence_t gsm_map_ms_VoiceBroadcastData_sequence[] = {
8377   { &hf_gsm_map_ms_groupid  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId },
8378   { &hf_gsm_map_ms_broadcastInitEntitlement, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
8379   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8380   { NULL, 0, 0, 0, NULL }
8381 };
8382
8383 static int
8384 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_) {
8385   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8386                                    gsm_map_ms_VoiceBroadcastData_sequence, hf_index, ett_gsm_map_ms_VoiceBroadcastData);
8387
8388   return offset;
8389 }
8390
8391
8392 static const ber_sequence_t gsm_map_ms_VBSDataList_sequence_of[1] = {
8393   { &hf_gsm_map_ms_VBSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceBroadcastData },
8394 };
8395
8396 static int
8397 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_) {
8398   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8399                                       gsm_map_ms_VBSDataList_sequence_of, hf_index, ett_gsm_map_ms_VBSDataList);
8400
8401   return offset;
8402 }
8403
8404
8405 static const asn_namedbit gsm_map_ms_AdditionalSubscriptions_bits[] = {
8406   {  0, &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest, -1, -1, "privilegedUplinkRequest", NULL },
8407   {  1, &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest, -1, -1, "emergencyUplinkRequest", NULL },
8408   {  2, &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset, -1, -1, "emergencyReset", NULL },
8409   { 0, NULL, 0, 0, NULL, NULL }
8410 };
8411
8412 static int
8413 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_) {
8414   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8415                                     gsm_map_ms_AdditionalSubscriptions_bits, hf_index, ett_gsm_map_ms_AdditionalSubscriptions,
8416                                     NULL);
8417
8418   return offset;
8419 }
8420
8421
8422
8423 static int
8424 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_) {
8425   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8426                                     NULL, hf_index, -1,
8427                                     NULL);
8428
8429   return offset;
8430 }
8431
8432
8433
8434 static int
8435 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_) {
8436   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
8437
8438   return offset;
8439 }
8440
8441
8442 static const ber_sequence_t gsm_map_ms_VoiceGroupCallData_sequence[] = {
8443   { &hf_gsm_map_ms_groupId  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId },
8444   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8445   { &hf_gsm_map_ms_additionalSubscriptions, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AdditionalSubscriptions },
8446   { &hf_gsm_map_ms_additionalInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
8447   { &hf_gsm_map_ms_longGroupId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Long_GroupId },
8448   { NULL, 0, 0, 0, NULL }
8449 };
8450
8451 static int
8452 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_) {
8453   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8454                                    gsm_map_ms_VoiceGroupCallData_sequence, hf_index, ett_gsm_map_ms_VoiceGroupCallData);
8455
8456   return offset;
8457 }
8458
8459
8460 static const ber_sequence_t gsm_map_ms_VGCSDataList_sequence_of[1] = {
8461   { &hf_gsm_map_ms_VGCSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceGroupCallData },
8462 };
8463
8464 static int
8465 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_) {
8466   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8467                                       gsm_map_ms_VGCSDataList_sequence_of, hf_index, ett_gsm_map_ms_VGCSDataList);
8468
8469   return offset;
8470 }
8471
8472
8473 static const value_string gsm_map_ms_O_BcsmTriggerDetectionPoint_vals[] = {
8474   {   2, "collectedInfo" },
8475   {   4, "routeSelectFailure" },
8476   { 0, NULL }
8477 };
8478
8479
8480 static int
8481 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_) {
8482   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8483                                   NULL);
8484
8485   return offset;
8486 }
8487
8488
8489
8490 static int
8491 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_) {
8492   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8493                                                 NULL);
8494
8495   return offset;
8496 }
8497
8498
8499 static const value_string gsm_map_ms_DefaultCallHandling_vals[] = {
8500   {   0, "continueCall" },
8501   {   1, "releaseCall" },
8502   { 0, NULL }
8503 };
8504
8505
8506 static int
8507 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_) {
8508   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8509                                   NULL);
8510
8511   return offset;
8512 }
8513
8514
8515 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPData_sequence[] = {
8516   { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint },
8517   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
8518   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8519   { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling },
8520   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8521   { NULL, 0, 0, 0, NULL }
8522 };
8523
8524 static int
8525 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_) {
8526   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8527                                    gsm_map_ms_O_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPData);
8528
8529   return offset;
8530 }
8531
8532
8533 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of[1] = {
8534   { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPData },
8535 };
8536
8537 static int
8538 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_) {
8539   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8540                                       gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPDataList);
8541
8542   return offset;
8543 }
8544
8545
8546
8547 static int
8548 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_) {
8549   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8550                                                 NULL);
8551
8552   return offset;
8553 }
8554
8555
8556 static const ber_sequence_t gsm_map_ms_O_CSI_sequence[] = {
8557   { &hf_gsm_map_ms_o_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPDataList },
8558   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8559   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
8560   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8561   { &hf_gsm_map_ms_csiActive, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8562   { NULL, 0, 0, 0, NULL }
8563 };
8564
8565 static int
8566 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_) {
8567   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8568                                    gsm_map_ms_O_CSI_sequence, hf_index, ett_gsm_map_ms_O_CSI);
8569
8570   return offset;
8571 }
8572
8573
8574 static const ber_sequence_t gsm_map_ms_SS_EventList_sequence_of[1] = {
8575   { &hf_gsm_map_ms_SS_EventList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
8576 };
8577
8578 static int
8579 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_) {
8580   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8581                                       gsm_map_ms_SS_EventList_sequence_of, hf_index, ett_gsm_map_ms_SS_EventList);
8582
8583   return offset;
8584 }
8585
8586
8587 static const ber_sequence_t gsm_map_ms_SS_CamelData_sequence[] = {
8588   { &hf_gsm_map_ms_ss_EventList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_EventList },
8589   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
8590   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8591   { NULL, 0, 0, 0, NULL }
8592 };
8593
8594 static int
8595 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_) {
8596   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8597                                    gsm_map_ms_SS_CamelData_sequence, hf_index, ett_gsm_map_ms_SS_CamelData);
8598
8599   return offset;
8600 }
8601
8602
8603 static const ber_sequence_t gsm_map_ms_SS_CSI_sequence[] = {
8604   { &hf_gsm_map_ms_ss_CamelData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_CamelData },
8605   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8606   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8607   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8608   { NULL, 0, 0, 0, NULL }
8609 };
8610
8611 static int
8612 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_) {
8613   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8614                                    gsm_map_ms_SS_CSI_sequence, hf_index, ett_gsm_map_ms_SS_CSI);
8615
8616   return offset;
8617 }
8618
8619
8620 static const value_string gsm_map_ms_MatchType_vals[] = {
8621   {   0, "inhibiting" },
8622   {   1, "enabling" },
8623   { 0, NULL }
8624 };
8625
8626
8627 static int
8628 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_) {
8629   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8630                                   NULL);
8631
8632   return offset;
8633 }
8634
8635
8636 static const ber_sequence_t gsm_map_ms_DestinationNumberList_sequence_of[1] = {
8637   { &hf_gsm_map_ms_DestinationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
8638 };
8639
8640 static int
8641 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_) {
8642   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8643                                       gsm_map_ms_DestinationNumberList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberList);
8644
8645   return offset;
8646 }
8647
8648
8649
8650 static int
8651 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_) {
8652   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8653                                                 NULL);
8654
8655   return offset;
8656 }
8657
8658
8659 static const ber_sequence_t gsm_map_ms_DestinationNumberLengthList_sequence_of[1] = {
8660   { &hf_gsm_map_ms_DestinationNumberLengthList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_INTEGER_1_maxNumOfISDN_AddressDigits },
8661 };
8662
8663 static int
8664 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_) {
8665   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8666                                       gsm_map_ms_DestinationNumberLengthList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberLengthList);
8667
8668   return offset;
8669 }
8670
8671
8672 static const ber_sequence_t gsm_map_ms_DestinationNumberCriteria_sequence[] = {
8673   { &hf_gsm_map_ms_matchType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MatchType },
8674   { &hf_gsm_map_ms_destinationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberList },
8675   { &hf_gsm_map_ms_destinationNumberLengthList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberLengthList },
8676   { NULL, 0, 0, 0, NULL }
8677 };
8678
8679 static int
8680 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_) {
8681   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8682                                    gsm_map_ms_DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_ms_DestinationNumberCriteria);
8683
8684   return offset;
8685 }
8686
8687
8688 static const ber_sequence_t gsm_map_ms_BasicServiceCriteria_sequence_of[1] = {
8689   { &hf_gsm_map_ms_BasicServiceCriteria_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
8690 };
8691
8692 static int
8693 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_) {
8694   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8695                                       gsm_map_ms_BasicServiceCriteria_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceCriteria);
8696
8697   return offset;
8698 }
8699
8700
8701 static const value_string gsm_map_ms_CallTypeCriteria_vals[] = {
8702   {   0, "forwarded" },
8703   {   1, "notForwarded" },
8704   { 0, NULL }
8705 };
8706
8707
8708 static int
8709 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_) {
8710   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8711                                   NULL);
8712
8713   return offset;
8714 }
8715
8716
8717
8718 static int
8719 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_) {
8720   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8721                                        NULL);
8722
8723   return offset;
8724 }
8725
8726
8727 static const ber_sequence_t gsm_map_ms_O_CauseValueCriteria_sequence_of[1] = {
8728   { &hf_gsm_map_ms_O_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue },
8729 };
8730
8731 static int
8732 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_) {
8733   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8734                                       gsm_map_ms_O_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_O_CauseValueCriteria);
8735
8736   return offset;
8737 }
8738
8739
8740 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDP_Criteria_sequence[] = {
8741   { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint },
8742   { &hf_gsm_map_ms_destinationNumberCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberCriteria },
8743   { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria },
8744   { &hf_gsm_map_ms_callTypeCriteria, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallTypeCriteria },
8745   { &hf_gsm_map_ms_o_CauseValueCriteria, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CauseValueCriteria },
8746   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8747   { NULL, 0, 0, 0, NULL }
8748 };
8749
8750 static int
8751 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_) {
8752   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8753                                    gsm_map_ms_O_BcsmCamelTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDP_Criteria);
8754
8755   return offset;
8756 }
8757
8758
8759 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of[1] = {
8760   { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDP_Criteria },
8761 };
8762
8763 static int
8764 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_) {
8765   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8766                                       gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList);
8767
8768   return offset;
8769 }
8770
8771
8772
8773 static int
8774 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_) {
8775   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8776                                        NULL);
8777
8778   return offset;
8779 }
8780
8781
8782 static const ber_sequence_t gsm_map_ms_MobilityTriggers_sequence_of[1] = {
8783   { &hf_gsm_map_ms_MobilityTriggers_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MM_Code },
8784 };
8785
8786 static int
8787 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_) {
8788   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8789                                       gsm_map_ms_MobilityTriggers_sequence_of, hf_index, ett_gsm_map_ms_MobilityTriggers);
8790
8791   return offset;
8792 }
8793
8794
8795 static const ber_sequence_t gsm_map_ms_M_CSI_sequence[] = {
8796   { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers },
8797   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
8798   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8799   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8800   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8801   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8802   { NULL, 0, 0, 0, NULL }
8803 };
8804
8805 static int
8806 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_) {
8807   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8808                                    gsm_map_ms_M_CSI_sequence, hf_index, ett_gsm_map_ms_M_CSI);
8809
8810   return offset;
8811 }
8812
8813
8814 static const value_string gsm_map_ms_SMS_TriggerDetectionPoint_vals[] = {
8815   {   1, "sms-CollectedInfo" },
8816   {   2, "sms-DeliveryRequest" },
8817   { 0, NULL }
8818 };
8819
8820
8821 static int
8822 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_) {
8823   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8824                                   NULL);
8825
8826   return offset;
8827 }
8828
8829
8830 static const value_string gsm_map_ms_DefaultSMS_Handling_vals[] = {
8831   {   0, "continueTransaction" },
8832   {   1, "releaseTransaction" },
8833   { 0, NULL }
8834 };
8835
8836
8837 static int
8838 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_) {
8839   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8840                                   NULL);
8841
8842   return offset;
8843 }
8844
8845
8846 static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_Data_sequence[] = {
8847   { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint },
8848   { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
8849   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8850   { &hf_gsm_map_ms_defaultSMS_Handling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultSMS_Handling },
8851   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8852   { NULL, 0, 0, 0, NULL }
8853 };
8854
8855 static int
8856 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_) {
8857   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8858                                    gsm_map_ms_SMS_CAMEL_TDP_Data_sequence, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_Data);
8859
8860   return offset;
8861 }
8862
8863
8864 static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of[1] = {
8865   { &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 },
8866 };
8867
8868 static int
8869 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_) {
8870   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8871                                       gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_DataList);
8872
8873   return offset;
8874 }
8875
8876
8877 static const ber_sequence_t gsm_map_ms_SMS_CSI_sequence[] = {
8878   { &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 },
8879   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
8880   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8881   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8882   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8883   { NULL, 0, 0, 0, NULL }
8884 };
8885
8886 static int
8887 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_) {
8888   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8889                                    gsm_map_ms_SMS_CSI_sequence, hf_index, ett_gsm_map_ms_SMS_CSI);
8890
8891   return offset;
8892 }
8893
8894
8895 static const value_string gsm_map_ms_T_BcsmTriggerDetectionPoint_vals[] = {
8896   {  12, "termAttemptAuthorized" },
8897   {  13, "tBusy" },
8898   {  14, "tNoAnswer" },
8899   { 0, NULL }
8900 };
8901
8902
8903 static int
8904 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_) {
8905   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8906                                   NULL);
8907
8908   return offset;
8909 }
8910
8911
8912 static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPData_sequence[] = {
8913   { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint },
8914   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
8915   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8916   { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling },
8917   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8918   { NULL, 0, 0, 0, NULL }
8919 };
8920
8921 static int
8922 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_) {
8923   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8924                                    gsm_map_ms_T_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPData);
8925
8926   return offset;
8927 }
8928
8929
8930 static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of[1] = {
8931   { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPData },
8932 };
8933
8934 static int
8935 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_) {
8936   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8937                                       gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPDataList);
8938
8939   return offset;
8940 }
8941
8942
8943 static const ber_sequence_t gsm_map_ms_T_CSI_sequence[] = {
8944   { &hf_gsm_map_ms_t_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPDataList },
8945   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8946   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
8947   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8948   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8949   { NULL, 0, 0, 0, NULL }
8950 };
8951
8952 static int
8953 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_) {
8954   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8955                                    gsm_map_ms_T_CSI_sequence, hf_index, ett_gsm_map_ms_T_CSI);
8956
8957   return offset;
8958 }
8959
8960
8961 static const ber_sequence_t gsm_map_ms_T_CauseValueCriteria_sequence_of[1] = {
8962   { &hf_gsm_map_ms_T_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue },
8963 };
8964
8965 static int
8966 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_) {
8967   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8968                                       gsm_map_ms_T_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_T_CauseValueCriteria);
8969
8970   return offset;
8971 }
8972
8973
8974 static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence[] = {
8975   { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint },
8976   { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria },
8977   { &hf_gsm_map_ms_t_CauseValueCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CauseValueCriteria },
8978   { NULL, 0, 0, 0, NULL }
8979 };
8980
8981 static int
8982 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_) {
8983   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8984                                    gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria);
8985
8986   return offset;
8987 }
8988
8989
8990 static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = {
8991   { &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 },
8992 };
8993
8994 static int
8995 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_) {
8996   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8997                                       gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList);
8998
8999   return offset;
9000 }
9001
9002
9003 static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriterium_sequence[] = {
9004   { &hf_gsm_map_ms_dialledNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9005   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
9006   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9007   { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DefaultCallHandling },
9008   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9009   { NULL, 0, 0, 0, NULL }
9010 };
9011
9012 static int
9013 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_) {
9014   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9015                                    gsm_map_ms_DP_AnalysedInfoCriterium_sequence, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriterium);
9016
9017   return offset;
9018 }
9019
9020
9021 static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of[1] = {
9022   { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriterium },
9023 };
9024
9025 static int
9026 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_) {
9027   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9028                                       gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriteriaList);
9029
9030   return offset;
9031 }
9032
9033
9034 static const ber_sequence_t gsm_map_ms_D_CSI_sequence[] = {
9035   { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriteriaList },
9036   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
9037   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9038   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9039   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9040   { NULL, 0, 0, 0, NULL }
9041 };
9042
9043 static int
9044 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_) {
9045   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9046                                    gsm_map_ms_D_CSI_sequence, hf_index, ett_gsm_map_ms_D_CSI);
9047
9048   return offset;
9049 }
9050
9051
9052 static const value_string gsm_map_ms_MT_SMS_TPDU_Type_vals[] = {
9053   {   0, "sms-DELIVER" },
9054   {   1, "sms-SUBMIT-REPORT" },
9055   {   2, "sms-STATUS-REPORT" },
9056   { 0, NULL }
9057 };
9058
9059
9060 static int
9061 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_) {
9062   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9063                                   NULL);
9064
9065   return offset;
9066 }
9067
9068
9069 static const ber_sequence_t gsm_map_ms_TPDU_TypeCriterion_sequence_of[1] = {
9070   { &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 },
9071 };
9072
9073 static int
9074 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_) {
9075   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9076                                       gsm_map_ms_TPDU_TypeCriterion_sequence_of, hf_index, ett_gsm_map_ms_TPDU_TypeCriterion);
9077
9078   return offset;
9079 }
9080
9081
9082 static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_Criteria_sequence[] = {
9083   { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint },
9084   { &hf_gsm_map_ms_tpdu_TypeCriterion, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TPDU_TypeCriterion },
9085   { NULL, 0, 0, 0, NULL }
9086 };
9087
9088 static int
9089 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_) {
9090   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9091                                    gsm_map_ms_MT_smsCAMELTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_Criteria);
9092
9093   return offset;
9094 }
9095
9096
9097 static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of[1] = {
9098   { &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 },
9099 };
9100
9101 static int
9102 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_) {
9103   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9104                                       gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList);
9105
9106   return offset;
9107 }
9108
9109
9110 static const ber_sequence_t gsm_map_ms_VlrCamelSubscriptionInfo_sequence[] = {
9111   { &hf_gsm_map_ms_o_CSI    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
9112   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9113   { &hf_gsm_map_ms_ss_CSI   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI },
9114   { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
9115   { &hf_gsm_map_ms_tif_CSI  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9116   { &hf_gsm_map_ms_m_CSI    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI },
9117   { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
9118   { &hf_gsm_map_ms_vt_CSI   , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
9119   { &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 },
9120   { &hf_gsm_map_ms_d_CSI    , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
9121   { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
9122   { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
9123   { NULL, 0, 0, 0, NULL }
9124 };
9125
9126 static int
9127 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_) {
9128   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9129                                    gsm_map_ms_VlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_VlrCamelSubscriptionInfo);
9130
9131   return offset;
9132 }
9133
9134
9135
9136 static int
9137 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_) {
9138   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9139                                                 NULL);
9140
9141   return offset;
9142 }
9143
9144
9145
9146 static int
9147 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_) {
9148 #line 478 "gsmmap.cnf"
9149         guint8 pdp_type_org;
9150         tvbuff_t        *parameter_tvb;
9151
9152
9153   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9154                                        &parameter_tvb);
9155
9156
9157  if (!parameter_tvb)
9158         return offset;
9159         proto_tree_add_item(tree, hf_gsm_map_pdp_type_org, parameter_tvb, 0,1,FALSE);
9160         pdp_type_org = tvb_get_guint8(parameter_tvb,1);
9161         switch (pdp_type_org){
9162                 case 0: /* ETSI */
9163                         proto_tree_add_item(tree, hf_gsm_map_etsi_pdp_type_number, parameter_tvb, 0,1,FALSE);
9164                         break;
9165                 case 1: /* IETF */
9166                         proto_tree_add_item(tree, hf_gsm_map_ietf_pdp_type_number, parameter_tvb, 0,1,FALSE);
9167                         break;
9168                 default:
9169                 break;
9170         }
9171
9172
9173
9174   return offset;
9175 }
9176
9177
9178
9179 static int
9180 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_) {
9181   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9182                                        NULL);
9183
9184   return offset;
9185 }
9186
9187
9188
9189 int
9190 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_) {
9191 #line 500 "gsmmap.cnf"
9192
9193
9194         tvbuff_t        *parameter_tvb;
9195
9196   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9197                                        &parameter_tvb);
9198
9199
9200          if (!parameter_tvb)
9201                 return offset;
9202         de_sm_qos(parameter_tvb, tree, 0, 3, NULL,0);
9203
9204
9205
9206   return offset;
9207 }
9208
9209
9210
9211 static int
9212 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_) {
9213   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9214                                        NULL);
9215
9216   return offset;
9217 }
9218
9219
9220
9221 int
9222 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_) {
9223 #line 511 "gsmmap.cnf"
9224
9225         tvbuff_t        *parameter_tvb;
9226
9227   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9228                                        &parameter_tvb);
9229
9230
9231         if (!parameter_tvb)
9232                 return offset;
9233         dissect_gsm_map_ext_qos_subscribed(tvb, actx->pinfo, tree, actx);
9234
9235
9236
9237   return offset;
9238 }
9239
9240
9241
9242 static int
9243 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_) {
9244   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9245                                        NULL);
9246
9247   return offset;
9248 }
9249
9250
9251
9252 int
9253 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_) {
9254   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9255                                        NULL);
9256
9257   return offset;
9258 }
9259
9260
9261
9262 static int
9263 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_) {
9264   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9265                                        NULL);
9266
9267   return offset;
9268 }
9269
9270
9271 static const ber_sequence_t gsm_map_ms_PDP_Context_sequence[] = {
9272   { &hf_gsm_map_ms_pdp_ContextId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
9273   { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type },
9274   { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
9275   { &hf_gsm_map_ms_qos_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QoS_Subscribed },
9276   { &hf_gsm_map_ms_vplmnAddressAllowed, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9277   { &hf_gsm_map_ms_apn      , BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
9278   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9279   { &hf_gsm_map_ms_ext_QoS_Subscribed, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
9280   { &hf_gsm_map_ms_pdp_ChargingCharacteristics, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
9281   { &hf_gsm_map_ms_ext2_QoS_Subscribed, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
9282   { &hf_gsm_map_ms_ext3_QoS_Subscribed, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
9283   { NULL, 0, 0, 0, NULL }
9284 };
9285
9286 static int
9287 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_) {
9288   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9289                                    gsm_map_ms_PDP_Context_sequence, hf_index, ett_gsm_map_ms_PDP_Context);
9290
9291   return offset;
9292 }
9293
9294
9295 static const ber_sequence_t gsm_map_ms_GPRSDataList_sequence_of[1] = {
9296   { &hf_gsm_map_ms_GPRSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_Context },
9297 };
9298
9299 static int
9300 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_) {
9301   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9302                                       gsm_map_ms_GPRSDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRSDataList);
9303
9304   return offset;
9305 }
9306
9307
9308 static const ber_sequence_t gsm_map_ms_GPRSSubscriptionData_sequence[] = {
9309   { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9310   { &hf_gsm_map_ms_gprsDataList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSDataList },
9311   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9312   { NULL, 0, 0, 0, NULL }
9313 };
9314
9315 static int
9316 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_) {
9317   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9318                                    gsm_map_ms_GPRSSubscriptionData_sequence, hf_index, ett_gsm_map_ms_GPRSSubscriptionData);
9319
9320   return offset;
9321 }
9322
9323
9324 static const value_string gsm_map_ms_NetworkAccessMode_vals[] = {
9325   {   0, "bothMSCAndSGSN" },
9326   {   1, "onlyMSC" },
9327   {   2, "onlySGSN" },
9328   { 0, NULL }
9329 };
9330
9331
9332 static int
9333 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_) {
9334   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9335                                   NULL);
9336
9337   return offset;
9338 }
9339
9340
9341 static const value_string gsm_map_ms_LSAOnlyAccessIndicator_vals[] = {
9342   {   0, "accessOutsideLSAsAllowed" },
9343   {   1, "accessOutsideLSAsRestricted" },
9344   { 0, NULL }
9345 };
9346
9347
9348 static int
9349 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_) {
9350   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9351                                   NULL);
9352
9353   return offset;
9354 }
9355
9356
9357
9358 int
9359 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_) {
9360   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9361                                        NULL);
9362
9363   return offset;
9364 }
9365
9366
9367
9368 static int
9369 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_) {
9370   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9371                                        NULL);
9372
9373   return offset;
9374 }
9375
9376
9377 static const ber_sequence_t gsm_map_ms_LSAData_sequence[] = {
9378   { &hf_gsm_map_ms_lsaIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
9379   { &hf_gsm_map_ms_lsaAttributes, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAAttributes },
9380   { &hf_gsm_map_ms_lsaActiveModeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9381   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9382   { NULL, 0, 0, 0, NULL }
9383 };
9384
9385 static int
9386 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_) {
9387   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9388                                    gsm_map_ms_LSAData_sequence, hf_index, ett_gsm_map_ms_LSAData);
9389
9390   return offset;
9391 }
9392
9393
9394 static const ber_sequence_t gsm_map_ms_LSADataList_sequence_of[1] = {
9395   { &hf_gsm_map_ms_LSADataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAData },
9396 };
9397
9398 static int
9399 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_) {
9400   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9401                                       gsm_map_ms_LSADataList_sequence_of, hf_index, ett_gsm_map_ms_LSADataList);
9402
9403   return offset;
9404 }
9405
9406
9407 static const ber_sequence_t gsm_map_ms_LSAInformation_sequence[] = {
9408   { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9409   { &hf_gsm_map_ms_lsaOnlyAccessIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAOnlyAccessIndicator },
9410   { &hf_gsm_map_ms_lsaDataList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSADataList },
9411   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9412   { NULL, 0, 0, 0, NULL }
9413 };
9414
9415 static int
9416 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_) {
9417   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9418                                    gsm_map_ms_LSAInformation_sequence, hf_index, ett_gsm_map_ms_LSAInformation);
9419
9420   return offset;
9421 }
9422
9423
9424 static const ber_sequence_t gsm_map_ms_GMLC_List_sequence_of[1] = {
9425   { &hf_gsm_map_ms_GMLC_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9426 };
9427
9428 static int
9429 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_) {
9430   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9431                                       gsm_map_ms_GMLC_List_sequence_of, hf_index, ett_gsm_map_ms_GMLC_List);
9432
9433   return offset;
9434 }
9435
9436
9437 const value_string gsm_map_ms_NotificationToMSUser_vals[] = {
9438   {   0, "notifyLocationAllowed" },
9439   {   1, "notifyAndVerify-LocationAllowedIfNoResponse" },
9440   {   2, "notifyAndVerify-LocationNotAllowedIfNoResponse" },
9441   {   3, "locationNotAllowed" },
9442   { 0, NULL }
9443 };
9444
9445
9446 int
9447 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_) {
9448   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9449                                   NULL);
9450
9451   return offset;
9452 }
9453
9454
9455 static const value_string gsm_map_ms_GMLC_Restriction_vals[] = {
9456   {   0, "gmlc-List" },
9457   {   1, "home-Country" },
9458   { 0, NULL }
9459 };
9460
9461
9462 static int
9463 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_) {
9464   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9465                                   NULL);
9466
9467   return offset;
9468 }
9469
9470
9471 static const ber_sequence_t gsm_map_ms_ExternalClient_sequence[] = {
9472   { &hf_gsm_map_ms_clientIdentity, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientExternalID },
9473   { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction },
9474   { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
9475   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9476   { NULL, 0, 0, 0, NULL }
9477 };
9478
9479 static int
9480 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_) {
9481   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9482                                    gsm_map_ms_ExternalClient_sequence, hf_index, ett_gsm_map_ms_ExternalClient);
9483
9484   return offset;
9485 }
9486
9487
9488 static const ber_sequence_t gsm_map_ms_ExternalClientList_sequence_of[1] = {
9489   { &hf_gsm_map_ms_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient },
9490 };
9491
9492 static int
9493 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_) {
9494   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9495                                       gsm_map_ms_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_ExternalClientList);
9496
9497   return offset;
9498 }
9499
9500
9501 static const ber_sequence_t gsm_map_ms_PLMNClientList_sequence_of[1] = {
9502   { &hf_gsm_map_ms_PLMNClientList_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientInternalID },
9503 };
9504
9505 static int
9506 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_) {
9507   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9508                                       gsm_map_ms_PLMNClientList_sequence_of, hf_index, ett_gsm_map_ms_PLMNClientList);
9509
9510   return offset;
9511 }
9512
9513
9514 static const ber_sequence_t gsm_map_ms_Ext_ExternalClientList_sequence_of[1] = {
9515   { &hf_gsm_map_ms_Ext_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient },
9516 };
9517
9518 static int
9519 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_) {
9520   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9521                                       gsm_map_ms_Ext_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ExternalClientList);
9522
9523   return offset;
9524 }
9525
9526
9527 static const ber_sequence_t gsm_map_ms_ServiceType_sequence[] = {
9528   { &hf_gsm_map_ms_serviceTypeIdentity, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSServiceTypeID },
9529   { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction },
9530   { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
9531   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9532   { NULL, 0, 0, 0, NULL }
9533 };
9534
9535 static int
9536 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_) {
9537   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9538                                    gsm_map_ms_ServiceType_sequence, hf_index, ett_gsm_map_ms_ServiceType);
9539
9540   return offset;
9541 }
9542
9543
9544 static const ber_sequence_t gsm_map_ms_ServiceTypeList_sequence_of[1] = {
9545   { &hf_gsm_map_ms_ServiceTypeList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceType },
9546 };
9547
9548 static int
9549 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_) {
9550   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9551                                       gsm_map_ms_ServiceTypeList_sequence_of, hf_index, ett_gsm_map_ms_ServiceTypeList);
9552
9553   return offset;
9554 }
9555
9556
9557 static const ber_sequence_t gsm_map_ms_LCS_PrivacyClass_sequence[] = {
9558   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
9559   { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
9560   { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
9561   { &hf_gsm_map_ms_externalClientList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ExternalClientList },
9562   { &hf_gsm_map_ms_plmnClientList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PLMNClientList },
9563   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9564   { &hf_gsm_map_ms_ext_externalClientList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ExternalClientList },
9565   { &hf_gsm_map_ms_serviceTypeList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceTypeList },
9566   { NULL, 0, 0, 0, NULL }
9567 };
9568
9569 static int
9570 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_) {
9571   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9572                                    gsm_map_ms_LCS_PrivacyClass_sequence, hf_index, ett_gsm_map_ms_LCS_PrivacyClass);
9573
9574   return offset;
9575 }
9576
9577
9578 static const ber_sequence_t gsm_map_ms_LCS_PrivacyExceptionList_sequence_of[1] = {
9579   { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LCS_PrivacyClass },
9580 };
9581
9582 static int
9583 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_) {
9584   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9585                                       gsm_map_ms_LCS_PrivacyExceptionList_sequence_of, hf_index, ett_gsm_map_ms_LCS_PrivacyExceptionList);
9586
9587   return offset;
9588 }
9589
9590
9591 static const ber_sequence_t gsm_map_ms_MOLR_Class_sequence[] = {
9592   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
9593   { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
9594   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9595   { NULL, 0, 0, 0, NULL }
9596 };
9597
9598 static int
9599 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_) {
9600   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9601                                    gsm_map_ms_MOLR_Class_sequence, hf_index, ett_gsm_map_ms_MOLR_Class);
9602
9603   return offset;
9604 }
9605
9606
9607 static const ber_sequence_t gsm_map_ms_MOLR_List_sequence_of[1] = {
9608   { &hf_gsm_map_ms_MOLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MOLR_Class },
9609 };
9610
9611 static int
9612 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_) {
9613   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9614                                       gsm_map_ms_MOLR_List_sequence_of, hf_index, ett_gsm_map_ms_MOLR_List);
9615
9616   return offset;
9617 }
9618
9619
9620 static const ber_sequence_t gsm_map_ms_LCSInformation_sequence[] = {
9621   { &hf_gsm_map_ms_gmlc_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_List },
9622   { &hf_gsm_map_ms_lcs_PrivacyExceptionList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList },
9623   { &hf_gsm_map_ms_molr_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MOLR_List },
9624   { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList },
9625   { NULL, 0, 0, 0, NULL }
9626 };
9627
9628 static int
9629 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_) {
9630   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9631                                    gsm_map_ms_LCSInformation_sequence, hf_index, ett_gsm_map_ms_LCSInformation);
9632
9633   return offset;
9634 }
9635
9636
9637
9638 static int
9639 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_) {
9640   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9641                                                 NULL);
9642
9643   return offset;
9644 }
9645
9646
9647
9648 static int
9649 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_) {
9650   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9651                                        NULL);
9652
9653   return offset;
9654 }
9655
9656
9657 static const value_string gsm_map_ms_GPRS_TriggerDetectionPoint_vals[] = {
9658   {   1, "attach" },
9659   {   2, "attachChangeOfPosition" },
9660   {  11, "pdp-ContextEstablishment" },
9661   {  12, "pdp-ContextEstablishmentAcknowledgement" },
9662   {  14, "pdp-ContextChangeOfPosition" },
9663   { 0, NULL }
9664 };
9665
9666
9667 static int
9668 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_) {
9669   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9670                                   NULL);
9671
9672   return offset;
9673 }
9674
9675
9676 static const value_string gsm_map_ms_DefaultGPRS_Handling_vals[] = {
9677   {   0, "continueTransaction" },
9678   {   1, "releaseTransaction" },
9679   { 0, NULL }
9680 };
9681
9682
9683 static int
9684 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_) {
9685   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9686                                   NULL);
9687
9688   return offset;
9689 }
9690
9691
9692 static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPData_sequence[] = {
9693   { &hf_gsm_map_ms_gprs_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_TriggerDetectionPoint },
9694   { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
9695   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9696   { &hf_gsm_map_ms_defaultSessionHandling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultGPRS_Handling },
9697   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9698   { NULL, 0, 0, 0, NULL }
9699 };
9700
9701 static int
9702 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_) {
9703   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9704                                    gsm_map_ms_GPRS_CamelTDPData_sequence, hf_index, ett_gsm_map_ms_GPRS_CamelTDPData);
9705
9706   return offset;
9707 }
9708
9709
9710 static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPDataList_sequence_of[1] = {
9711   { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GPRS_CamelTDPData },
9712 };
9713
9714 static int
9715 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_) {
9716   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9717                                       gsm_map_ms_GPRS_CamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRS_CamelTDPDataList);
9718
9719   return offset;
9720 }
9721
9722
9723 static const ber_sequence_t gsm_map_ms_GPRS_CSI_sequence[] = {
9724   { &hf_gsm_map_ms_gprs_CamelTDPDataList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CamelTDPDataList },
9725   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
9726   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9727   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9728   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9729   { NULL, 0, 0, 0, NULL }
9730 };
9731
9732 static int
9733 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_) {
9734   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9735                                    gsm_map_ms_GPRS_CSI_sequence, hf_index, ett_gsm_map_ms_GPRS_CSI);
9736
9737   return offset;
9738 }
9739
9740
9741 static const ber_sequence_t gsm_map_ms_MG_CSI_sequence[] = {
9742   { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers },
9743   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
9744   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9745   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9746   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9747   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9748   { NULL, 0, 0, 0, NULL }
9749 };
9750
9751 static int
9752 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_) {
9753   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9754                                    gsm_map_ms_MG_CSI_sequence, hf_index, ett_gsm_map_ms_MG_CSI);
9755
9756   return offset;
9757 }
9758
9759
9760 static const ber_sequence_t gsm_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence[] = {
9761   { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI },
9762   { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
9763   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9764   { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
9765   { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
9766   { &hf_gsm_map_ms_mg_csi   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI },
9767   { NULL, 0, 0, 0, NULL }
9768 };
9769
9770 static int
9771 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_) {
9772   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9773                                    gsm_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo);
9774
9775   return offset;
9776 }
9777
9778
9779 static const asn_namedbit gsm_map_ms_AccessRestrictionData_bits[] = {
9780   {  0, &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed, -1, -1, "utranNotAllowed", NULL },
9781   {  1, &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed, -1, -1, "geranNotAllowed", NULL },
9782   { 0, NULL, 0, 0, NULL, NULL }
9783 };
9784
9785 static int
9786 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_) {
9787   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9788                                     gsm_map_ms_AccessRestrictionData_bits, hf_index, ett_gsm_map_ms_AccessRestrictionData,
9789                                     NULL);
9790
9791   return offset;
9792 }
9793
9794
9795 static const ber_sequence_t gsm_map_ms_InsertSubscriberDataArg_sequence[] = {
9796   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
9797   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9798   { &hf_gsm_map_ms_category , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category },
9799   { &hf_gsm_map_ms_subscriberStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberStatus },
9800   { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
9801   { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
9802   { &hf_gsm_map_ms_provisionedSS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_InfoList },
9803   { &hf_gsm_map_ms_odb_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
9804   { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9805   { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList },
9806   { &hf_gsm_map_ms_vbsSubscriptionData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VBSDataList },
9807   { &hf_gsm_map_ms_vgcsSubscriptionData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VGCSDataList },
9808   { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VlrCamelSubscriptionInfo },
9809   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9810   { &hf_gsm_map_ms_naea_PreferredCI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI },
9811   { &hf_gsm_map_ms_gprsSubscriptionData, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSSubscriptionData },
9812   { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9813   { &hf_gsm_map_ms_networkAccessMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NetworkAccessMode },
9814   { &hf_gsm_map_ms_lsaInformation, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAInformation },
9815   { &hf_gsm_map_ms_lmu_Indicator, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9816   { &hf_gsm_map_ms_lcsInformation, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCSInformation },
9817   { &hf_gsm_map_ms_istAlertTimer, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
9818   { &hf_gsm_map_ms_superChargerSupportedInHLR, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator },
9819   { &hf_gsm_map_ms_mc_SS_Info, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_SS_Info },
9820   { &hf_gsm_map_ms_cs_AllocationRetentionPriority, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CS_AllocationRetentionPriority },
9821   { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo },
9822   { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
9823   { &hf_gsm_map_ms_accessRestrictionData, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AccessRestrictionData },
9824   { NULL, 0, 0, 0, NULL }
9825 };
9826
9827 static int
9828 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_) {
9829   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9830                                    gsm_map_ms_InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataArg);
9831
9832   return offset;
9833 }
9834
9835
9836 static const ber_sequence_t gsm_map_ms_SubscriberData_sequence[] = {
9837   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9838   { &hf_gsm_map_ms_category , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category },
9839   { &hf_gsm_map_ms_subscriberStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberStatus },
9840   { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
9841   { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
9842   { &hf_gsm_map_ms_provisionedSS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_InfoList },
9843   { &hf_gsm_map_ms_odb_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
9844   { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9845   { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList },
9846   { &hf_gsm_map_ms_vbsSubscriptionData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VBSDataList },
9847   { &hf_gsm_map_ms_vgcsSubscriptionData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VGCSDataList },
9848   { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VlrCamelSubscriptionInfo },
9849   { NULL, 0, 0, 0, NULL }
9850 };
9851
9852 static int
9853 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_) {
9854   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9855                                    gsm_map_ms_SubscriberData_sequence, hf_index, ett_gsm_map_ms_SubscriberData);
9856
9857   return offset;
9858 }
9859
9860
9861 static const value_string gsm_map_ms_RegionalSubscriptionResponse_vals[] = {
9862   {   0, "networkNode-AreaRestricted" },
9863   {   1, "tooManyZoneCodes" },
9864   {   2, "zoneCodesConflict" },
9865   {   3, "regionalSubscNotSupported" },
9866   { 0, NULL }
9867 };
9868
9869
9870 static int
9871 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_) {
9872   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9873                                   NULL);
9874
9875   return offset;
9876 }
9877
9878
9879 static const ber_sequence_t gsm_map_ms_InsertSubscriberDataRes_sequence[] = {
9880   { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
9881   { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
9882   { &hf_gsm_map_ms_ss_List  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
9883   { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_GeneralData },
9884   { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse },
9885   { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
9886   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9887   { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
9888   { NULL, 0, 0, 0, NULL }
9889 };
9890
9891 static int
9892 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_) {
9893   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9894                                    gsm_map_ms_InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataRes);
9895
9896   return offset;
9897 }
9898
9899
9900 static const ber_sequence_t gsm_map_ms_BasicServiceList_sequence_of[1] = {
9901   { &hf_gsm_map_ms_BasicServiceList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
9902 };
9903
9904 static int
9905 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_) {
9906   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9907                                       gsm_map_ms_BasicServiceList_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceList);
9908
9909   return offset;
9910 }
9911
9912
9913 static const ber_sequence_t gsm_map_ms_ContextIdList_sequence_of[1] = {
9914   { &hf_gsm_map_ms_ContextIdList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
9915 };
9916
9917 static int
9918 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_) {
9919   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9920                                       gsm_map_ms_ContextIdList_sequence_of, hf_index, ett_gsm_map_ms_ContextIdList);
9921
9922   return offset;
9923 }
9924
9925
9926 static const value_string gsm_map_ms_GPRSSubscriptionDataWithdraw_vals[] = {
9927   {   0, "allGPRSData" },
9928   {   1, "contextIdList" },
9929   { 0, NULL }
9930 };
9931
9932 static const ber_choice_t gsm_map_ms_GPRSSubscriptionDataWithdraw_choice[] = {
9933   {   0, &hf_gsm_map_ms_allGPRSData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9934   {   1, &hf_gsm_map_ms_contextIdList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextIdList },
9935   { 0, NULL, 0, 0, 0, NULL }
9936 };
9937
9938 static int
9939 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_) {
9940   offset = dissect_ber_choice(actx, tree, tvb, offset,
9941                                  gsm_map_ms_GPRSSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_ms_GPRSSubscriptionDataWithdraw,
9942                                  NULL);
9943
9944   return offset;
9945 }
9946
9947
9948 static const ber_sequence_t gsm_map_ms_LSAIdentityList_sequence_of[1] = {
9949   { &hf_gsm_map_ms_LSAIdentityList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentity },
9950 };
9951
9952 static int
9953 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_) {
9954   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9955                                       gsm_map_ms_LSAIdentityList_sequence_of, hf_index, ett_gsm_map_ms_LSAIdentityList);
9956
9957   return offset;
9958 }
9959
9960
9961 static const value_string gsm_map_ms_LSAInformationWithdraw_vals[] = {
9962   {   0, "allLSAData" },
9963   {   1, "lsaIdentityList" },
9964   { 0, NULL }
9965 };
9966
9967 static const ber_choice_t gsm_map_ms_LSAInformationWithdraw_choice[] = {
9968   {   0, &hf_gsm_map_ms_allLSAData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9969   {   1, &hf_gsm_map_ms_lsaIdentityList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentityList },
9970   { 0, NULL, 0, 0, 0, NULL }
9971 };
9972
9973 static int
9974 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_) {
9975   offset = dissect_ber_choice(actx, tree, tvb, offset,
9976                                  gsm_map_ms_LSAInformationWithdraw_choice, hf_index, ett_gsm_map_ms_LSAInformationWithdraw,
9977                                  NULL);
9978
9979   return offset;
9980 }
9981
9982
9983 static const asn_namedbit gsm_map_ms_SpecificCSI_Withdraw_bits[] = {
9984   {  0, &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi, -1, -1, "o-csi", NULL },
9985   {  1, &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi, -1, -1, "ss-csi", NULL },
9986   {  2, &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi, -1, -1, "tif-csi", NULL },
9987   {  3, &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi, -1, -1, "d-csi", NULL },
9988   {  4, &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi, -1, -1, "vt-csi", NULL },
9989   {  5, &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi, -1, -1, "mo-sms-csi", NULL },
9990   {  6, &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi, -1, -1, "m-csi", NULL },
9991   {  7, &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi, -1, -1, "gprs-csi", NULL },
9992   {  8, &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi, -1, -1, "t-csi", NULL },
9993   {  9, &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi, -1, -1, "mt-sms-csi", NULL },
9994   { 10, &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi, -1, -1, "mg-csi", NULL },
9995   { 11, &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI, -1, -1, "o-IM-CSI", NULL },
9996   { 12, &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI, -1, -1, "d-IM-CSI", NULL },
9997   { 13, &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI, -1, -1, "vt-IM-CSI", NULL },
9998   { 0, NULL, 0, 0, NULL, NULL }
9999 };
10000
10001 static int
10002 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_) {
10003   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10004                                     gsm_map_ms_SpecificCSI_Withdraw_bits, hf_index, ett_gsm_map_ms_SpecificCSI_Withdraw,
10005                                     NULL);
10006
10007   return offset;
10008 }
10009
10010
10011 static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataArg_sequence[] = {
10012   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10013   { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList },
10014   { &hf_gsm_map_ms_ss_List  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
10015   { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10016   { &hf_gsm_map_ms_regionalSubscriptionIdentifier, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCode },
10017   { &hf_gsm_map_ms_vbsGroupIndication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10018   { &hf_gsm_map_ms_vgcsGroupIndication, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10019   { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10020   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10021   { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_GPRSSubscriptionDataWithdraw },
10022   { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10023   { &hf_gsm_map_ms_lsaInformationWithdraw, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_LSAInformationWithdraw },
10024   { &hf_gsm_map_ms_gmlc_ListWithdraw, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10025   { &hf_gsm_map_ms_istInformationWithdraw, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10026   { &hf_gsm_map_ms_specificCSI_Withdraw, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw },
10027   { &hf_gsm_map_ms_chargingCharacteristicsWithdraw, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10028   { NULL, 0, 0, 0, NULL }
10029 };
10030
10031 static int
10032 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_) {
10033   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10034                                    gsm_map_ms_DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataArg);
10035
10036   return offset;
10037 }
10038
10039
10040 static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataRes_sequence[] = {
10041   { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse },
10042   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10043   { NULL, 0, 0, 0, NULL }
10044 };
10045
10046 static int
10047 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_) {
10048   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10049                                    gsm_map_ms_DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataRes);
10050
10051   return offset;
10052 }
10053
10054
10055 static const asn_namedbit gsm_map_ms_OfferedCamel4Functionalities_bits[] = {
10056   {  0, &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt, -1, -1, "initiateCallAttempt", NULL },
10057   {  1, &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg, -1, -1, "splitLeg", NULL },
10058   {  2, &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg, -1, -1, "moveLeg", NULL },
10059   {  3, &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg, -1, -1, "disconnectLeg", NULL },
10060   {  4, &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased, -1, -1, "entityReleased", NULL },
10061   {  5, &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument, -1, -1, "dfc-WithArgument", NULL },
10062   {  6, &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone, -1, -1, "playTone", NULL },
10063   {  7, &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall, -1, -1, "dtmf-MidCall", NULL },
10064   {  8, &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator, -1, -1, "chargingIndicator", NULL },
10065   {  9, &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP, -1, -1, "alertingDP", NULL },
10066   { 10, &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting, -1, -1, "locationAtAlerting", NULL },
10067   { 11, &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP, -1, -1, "changeOfPositionDP", NULL },
10068   { 12, &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions, -1, -1, "or-Interactions", NULL },
10069   { 13, &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements, -1, -1, "warningToneEnhancements", NULL },
10070   { 14, &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements, -1, -1, "cf-Enhancements", NULL },
10071   { 15, &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices, -1, -1, "subscribedEnhancedDialledServices", NULL },
10072   { 16, &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices, -1, -1, "servingNetworkEnhancedDialledServices", NULL },
10073   { 17, &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP, -1, -1, "criteriaForChangeOfPositionDP", NULL },
10074   { 18, &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP, -1, -1, "serviceChangeDP", NULL },
10075   { 19, &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation, -1, -1, "collectInformation", NULL },
10076   { 0, NULL, 0, 0, NULL, NULL }
10077 };
10078
10079 int
10080 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_) {
10081   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10082                                     gsm_map_ms_OfferedCamel4Functionalities_bits, hf_index, ett_gsm_map_ms_OfferedCamel4Functionalities,
10083                                     NULL);
10084
10085   return offset;
10086 }
10087
10088
10089 static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsArg_sequence[] = {
10090   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10091   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10092   { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10093   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10094   { NULL, 0, 0, 0, NULL }
10095 };
10096
10097 static int
10098 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_) {
10099   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10100                                    gsm_map_ms_SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsArg);
10101
10102   return offset;
10103 }
10104
10105
10106 static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsRes_sequence[] = {
10107   { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10108   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10109   { &hf_gsm_map_ms_mobileNotReachableReason, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
10110   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10111   { NULL, 0, 0, 0, NULL }
10112 };
10113
10114 static int
10115 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_) {
10116   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10117                                    gsm_map_ms_SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsRes);
10118
10119   return offset;
10120 }
10121
10122
10123 static const ber_sequence_t gsm_map_ms_FailureReportArg_sequence[] = {
10124   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10125   { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10126   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10127   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10128   { NULL, 0, 0, 0, NULL }
10129 };
10130
10131 static int
10132 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_) {
10133   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10134                                    gsm_map_ms_FailureReportArg_sequence, hf_index, ett_gsm_map_ms_FailureReportArg);
10135
10136   return offset;
10137 }
10138
10139
10140 static const ber_sequence_t gsm_map_ms_FailureReportRes_sequence[] = {
10141   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10142   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10143   { NULL, 0, 0, 0, NULL }
10144 };
10145
10146 static int
10147 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_) {
10148   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10149                                    gsm_map_ms_FailureReportRes_sequence, hf_index, ett_gsm_map_ms_FailureReportRes);
10150
10151   return offset;
10152 }
10153
10154
10155 static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsArg_sequence[] = {
10156   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10157   { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10158   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10159   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10160   { NULL, 0, 0, 0, NULL }
10161 };
10162
10163 static int
10164 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_) {
10165   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10166                                    gsm_map_ms_NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsArg);
10167
10168   return offset;
10169 }
10170
10171
10172 static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsRes_sequence[] = {
10173   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10174   { NULL, 0, 0, 0, NULL }
10175 };
10176
10177 static int
10178 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_) {
10179   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10180                                    gsm_map_ms_NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsRes);
10181
10182   return offset;
10183 }
10184
10185
10186 static const ber_sequence_t gsm_map_ms_ResetArg_sequence[] = {
10187   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10188   { &hf_gsm_map_ms_hlr_List , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_List },
10189   { NULL, 0, 0, 0, NULL }
10190 };
10191
10192 static int
10193 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_) {
10194   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10195                                    gsm_map_ms_ResetArg_sequence, hf_index, ett_gsm_map_ms_ResetArg);
10196
10197   return offset;
10198 }
10199
10200
10201 static const ber_sequence_t gsm_map_ms_RestoreDataArg_sequence[] = {
10202   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
10203   { &hf_gsm_map_ms_lmsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
10204   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10205   { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability },
10206   { NULL, 0, 0, 0, NULL }
10207 };
10208
10209 static int
10210 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_) {
10211   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10212                                    gsm_map_ms_RestoreDataArg_sequence, hf_index, ett_gsm_map_ms_RestoreDataArg);
10213
10214   return offset;
10215 }
10216
10217
10218 static const ber_sequence_t gsm_map_ms_RestoreDataRes_sequence[] = {
10219   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10220   { &hf_gsm_map_ms_msNotReachable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10221   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10222   { NULL, 0, 0, 0, NULL }
10223 };
10224
10225 static int
10226 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_) {
10227   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10228                                    gsm_map_ms_RestoreDataRes_sequence, hf_index, ett_gsm_map_ms_RestoreDataRes);
10229
10230   return offset;
10231 }
10232
10233
10234 static const value_string gsm_map_ms_DomainType_vals[] = {
10235   {   0, "cs-Domain" },
10236   {   1, "ps-Domain" },
10237   { 0, NULL }
10238 };
10239
10240
10241 static int
10242 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_) {
10243   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10244                                   NULL);
10245
10246   return offset;
10247 }
10248
10249
10250 static const ber_sequence_t gsm_map_ms_RequestedInfo_sequence[] = {
10251   { &hf_gsm_map_ms_locationInformation_01, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10252   { &hf_gsm_map_ms_subscriberState_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10253   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10254   { &hf_gsm_map_ms_currentLocation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10255   { &hf_gsm_map_ms_requestedDomain, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DomainType },
10256   { &hf_gsm_map_ms_imei_01  , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10257   { &hf_gsm_map_ms_ms_classmark, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10258   { &hf_gsm_map_ms_mnpRequestedInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10259   { NULL, 0, 0, 0, NULL }
10260 };
10261
10262 static int
10263 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_) {
10264   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10265                                    gsm_map_ms_RequestedInfo_sequence, hf_index, ett_gsm_map_ms_RequestedInfo);
10266
10267   return offset;
10268 }
10269
10270
10271 static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoArg_sequence[] = {
10272   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10273   { &hf_gsm_map_ms_lmsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
10274   { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo },
10275   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10276   { NULL, 0, 0, 0, NULL }
10277 };
10278
10279 static int
10280 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_) {
10281   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10282                                    gsm_map_ms_ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoArg);
10283
10284   return offset;
10285 }
10286
10287
10288
10289 int
10290 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_) {
10291   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10292                                        NULL);
10293
10294   return offset;
10295 }
10296
10297
10298
10299 static int
10300 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_) {
10301   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10302                                        NULL);
10303
10304   return offset;
10305 }
10306
10307
10308
10309 static int
10310 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_) {
10311   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10312                                        NULL);
10313
10314   return offset;
10315 }
10316
10317
10318 static const ber_sequence_t gsm_map_ms_LocationInformation_sequence[] = {
10319   { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AgeOfLocationInformation },
10320   { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
10321   { &hf_gsm_map_ms_vlr_number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10322   { &hf_gsm_map_ms_locationNumber, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationNumber },
10323   { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
10324   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10325   { &hf_gsm_map_ms_selectedLSA_Id, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
10326   { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10327   { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
10328   { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10329   { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10330   { NULL, 0, 0, 0, NULL }
10331 };
10332
10333 int
10334 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_) {
10335   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10336                                    gsm_map_ms_LocationInformation_sequence, hf_index, ett_gsm_map_ms_LocationInformation);
10337
10338   return offset;
10339 }
10340
10341
10342 static const value_string gsm_map_ms_NotReachableReason_vals[] = {
10343   {   0, "msPurged" },
10344   {   1, "imsiDetached" },
10345   {   2, "restrictedArea" },
10346   {   3, "notRegistered" },
10347   { 0, NULL }
10348 };
10349
10350
10351 static int
10352 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_) {
10353   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10354                                   NULL);
10355
10356   return offset;
10357 }
10358
10359
10360 const value_string gsm_map_ms_SubscriberState_vals[] = {
10361   {   0, "assumedIdle" },
10362   {   1, "camelBusy" },
10363   {   2, "netDetNotReachable" },
10364   {   3, "notProvidedFromVLR" },
10365   { 0, NULL }
10366 };
10367
10368 static const ber_choice_t gsm_map_ms_SubscriberState_choice[] = {
10369   {   0, &hf_gsm_map_ms_assumedIdle, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10370   {   1, &hf_gsm_map_ms_camelBusy, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10371   {   2, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason },
10372   {   3, &hf_gsm_map_ms_notProvidedFromVLR, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10373   { 0, NULL, 0, 0, 0, NULL }
10374 };
10375
10376 int
10377 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_) {
10378   offset = dissect_ber_choice(actx, tree, tvb, offset,
10379                                  gsm_map_ms_SubscriberState_choice, hf_index, ett_gsm_map_ms_SubscriberState,
10380                                  NULL);
10381
10382   return offset;
10383 }
10384
10385
10386
10387 int
10388 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_) {
10389 #line 545 "gsmmap.cnf"
10390
10391         tvbuff_t        *parameter_tvb;
10392         proto_tree *subtree;
10393
10394   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10395                                        &parameter_tvb);
10396
10397
10398          if (!parameter_tvb)
10399                 return offset;
10400         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RAIdentity);
10401         de_gmm_rai(parameter_tvb, subtree, 0, 3, NULL,0);
10402
10403
10404
10405   return offset;
10406 }
10407
10408
10409 static const ber_sequence_t gsm_map_ms_LocationInformationGPRS_sequence[] = {
10410   { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
10411   { &hf_gsm_map_ms_routeingAreaIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAIdentity },
10412   { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
10413   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10414   { &hf_gsm_map_ms_selectedLSAIdentity, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
10415   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10416   { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10417   { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
10418   { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10419   { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
10420   { NULL, 0, 0, 0, NULL }
10421 };
10422
10423 static int
10424 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_) {
10425   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10426                                    gsm_map_ms_LocationInformationGPRS_sequence, hf_index, ett_gsm_map_ms_LocationInformationGPRS);
10427
10428   return offset;
10429 }
10430
10431
10432
10433 static int
10434 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_) {
10435   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10436                                                 NULL);
10437
10438   return offset;
10439 }
10440
10441
10442
10443 static int
10444 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_) {
10445   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10446                                        NULL);
10447
10448   return offset;
10449 }
10450
10451
10452
10453 static int
10454 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_) {
10455   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10456                                        NULL);
10457
10458   return offset;
10459 }
10460
10461
10462
10463 int
10464 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_) {
10465   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10466                                        NULL);
10467
10468   return offset;
10469 }
10470
10471
10472 static const ber_sequence_t gsm_map_ms_PDP_ContextInfo_sequence[] = {
10473   { &hf_gsm_map_ms_pdp_ContextIdentifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
10474   { &hf_gsm_map_ms_pdp_ContextActive, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10475   { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type },
10476   { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
10477   { &hf_gsm_map_ms_apn_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
10478   { &hf_gsm_map_ms_apn_InUse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
10479   { &hf_gsm_map_ms_nsapi    , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NSAPI },
10480   { &hf_gsm_map_ms_transactionId, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TransactionId },
10481   { &hf_gsm_map_ms_teid_ForGnAndGp, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID },
10482   { &hf_gsm_map_ms_teid_ForIu, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID },
10483   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10484   { &hf_gsm_map_ms_qos_Subscribed_01, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
10485   { &hf_gsm_map_ms_qos_Requested, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
10486   { &hf_gsm_map_ms_qos_Negotiated, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
10487   { &hf_gsm_map_ms_chargingId, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSChargingID },
10488   { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
10489   { &hf_gsm_map_ms_rnc_Address, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
10490   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10491   { &hf_gsm_map_ms_qos2_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
10492   { &hf_gsm_map_ms_qos2_Requested, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
10493   { &hf_gsm_map_ms_qos2_Negotiated, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
10494   { &hf_gsm_map_ms_qos3_Subscribed, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
10495   { &hf_gsm_map_ms_qos3_Requested, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
10496   { &hf_gsm_map_ms_qos3_Negotiated, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
10497   { NULL, 0, 0, 0, NULL }
10498 };
10499
10500 static int
10501 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_) {
10502   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10503                                    gsm_map_ms_PDP_ContextInfo_sequence, hf_index, ett_gsm_map_ms_PDP_ContextInfo);
10504
10505   return offset;
10506 }
10507
10508
10509 static const ber_sequence_t gsm_map_ms_PDP_ContextInfoList_sequence_of[1] = {
10510   { &hf_gsm_map_ms_PDP_ContextInfoList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_ContextInfo },
10511 };
10512
10513 static int
10514 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_) {
10515   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10516                                       gsm_map_ms_PDP_ContextInfoList_sequence_of, hf_index, ett_gsm_map_ms_PDP_ContextInfoList);
10517
10518   return offset;
10519 }
10520
10521
10522 static const value_string gsm_map_ms_PS_SubscriberState_vals[] = {
10523   {   0, "notProvidedFromSGSN" },
10524   {   1, "ps-Detached" },
10525   {   2, "ps-AttachedNotReachableForPaging" },
10526   {   3, "ps-AttachedReachableForPaging" },
10527   {   4, "ps-PDP-ActiveNotReachableForPaging" },
10528   {   5, "ps-PDP-ActiveReachableForPaging" },
10529   {   6, "netDetNotReachable" },
10530   { 0, NULL }
10531 };
10532
10533 static const ber_choice_t gsm_map_ms_PS_SubscriberState_choice[] = {
10534   {   0, &hf_gsm_map_ms_notProvidedFromSGSN, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10535   {   1, &hf_gsm_map_ms_ps_Detached, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10536   {   2, &hf_gsm_map_ms_ps_AttachedNotReachableForPaging, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10537   {   3, &hf_gsm_map_ms_ps_AttachedReachableForPaging, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10538   {   4, &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList },
10539   {   5, &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList },
10540   {   6, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason },
10541   { 0, NULL, 0, 0, 0, NULL }
10542 };
10543
10544 static int
10545 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_) {
10546   offset = dissect_ber_choice(actx, tree, tvb, offset,
10547                                  gsm_map_ms_PS_SubscriberState_choice, hf_index, ett_gsm_map_ms_PS_SubscriberState,
10548                                  NULL);
10549
10550   return offset;
10551 }
10552
10553
10554
10555 int
10556 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_) {
10557   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10558                                        NULL);
10559
10560   return offset;
10561 }
10562
10563
10564
10565 static int
10566 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_) {
10567   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10568                                        NULL);
10569
10570   return offset;
10571 }
10572
10573
10574
10575 static int
10576 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_) {
10577   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10578                                        NULL);
10579
10580   return offset;
10581 }
10582
10583
10584 static const ber_sequence_t gsm_map_ms_GPRSMSClass_sequence[] = {
10585   { &hf_gsm_map_ms_mSNetworkCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSNetworkCapability },
10586   { &hf_gsm_map_ms_mSRadioAccessCapability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSRadioAccessCapability },
10587   { NULL, 0, 0, 0, NULL }
10588 };
10589
10590 int
10591 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_) {
10592   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10593                                    gsm_map_ms_GPRSMSClass_sequence, hf_index, ett_gsm_map_ms_GPRSMSClass);
10594
10595   return offset;
10596 }
10597
10598
10599
10600 static int
10601 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_) {
10602   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
10603
10604   return offset;
10605 }
10606
10607
10608 static const value_string gsm_map_ms_NumberPortabilityStatus_vals[] = {
10609   {   0, "notKnownToBePorted" },
10610   {   1, "ownNumberPortedOut" },
10611   {   2, "foreignNumberPortedToForeignNetwork" },
10612   {   4, "ownNumberNotPortedOut" },
10613   {   5, "foreignNumberPortedIn" },
10614   { 0, NULL }
10615 };
10616
10617
10618 static int
10619 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_) {
10620   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10621                                   NULL);
10622
10623   return offset;
10624 }
10625
10626
10627 static const ber_sequence_t gsm_map_ms_MNPInfoRes_sequence[] = {
10628   { &hf_gsm_map_ms_routeingNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RouteingNumber },
10629   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10630   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10631   { &hf_gsm_map_ms_numberPortabilityStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus },
10632   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10633   { NULL, 0, 0, 0, NULL }
10634 };
10635
10636 static int
10637 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_) {
10638   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10639                                    gsm_map_ms_MNPInfoRes_sequence, hf_index, ett_gsm_map_ms_MNPInfoRes);
10640
10641   return offset;
10642 }
10643
10644
10645 static const ber_sequence_t gsm_map_ms_SubscriberInfo_sequence[] = {
10646   { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
10647   { &hf_gsm_map_ms_subscriberState, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SubscriberState },
10648   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10649   { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
10650   { &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 },
10651   { &hf_gsm_map_ms_imei     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
10652   { &hf_gsm_map_ms_ms_Classmark2, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MS_Classmark2 },
10653   { &hf_gsm_map_ms_gprs_MS_Class, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSMSClass },
10654   { &hf_gsm_map_ms_mnpInfoRes, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MNPInfoRes },
10655   { NULL, 0, 0, 0, NULL }
10656 };
10657
10658 static int
10659 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_) {
10660   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10661                                    gsm_map_ms_SubscriberInfo_sequence, hf_index, ett_gsm_map_ms_SubscriberInfo);
10662
10663   return offset;
10664 }
10665
10666
10667 static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoRes_sequence[] = {
10668   { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo },
10669   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10670   { NULL, 0, 0, 0, NULL }
10671 };
10672
10673 static int
10674 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_) {
10675   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10676                                    gsm_map_ms_ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoRes);
10677
10678   return offset;
10679 }
10680
10681
10682 static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationArg_sequence[] = {
10683   { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
10684   { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo },
10685   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10686   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10687   { NULL, 0, 0, 0, NULL }
10688 };
10689
10690 static int
10691 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_) {
10692   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10693                                    gsm_map_ms_AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationArg);
10694
10695   return offset;
10696 }
10697
10698
10699 static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationRes_sequence[] = {
10700   { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo },
10701   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10702   { NULL, 0, 0, 0, NULL }
10703 };
10704
10705 static int
10706 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_) {
10707   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10708                                    gsm_map_ms_AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationRes);
10709
10710   return offset;
10711 }
10712
10713
10714 static const value_string gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals[] = {
10715   {   0, "o-CSI" },
10716   {   1, "t-CSI" },
10717   {   2, "vt-CSI" },
10718   {   3, "tif-CSI" },
10719   {   4, "gprs-CSI" },
10720   {   5, "mo-sms-CSI" },
10721   {   6, "ss-CSI" },
10722   {   7, "m-CSI" },
10723   {   8, "d-csi" },
10724   { 0, NULL }
10725 };
10726
10727
10728 static int
10729 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_) {
10730   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10731                                   NULL);
10732
10733   return offset;
10734 }
10735
10736
10737 static const value_string gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals[] = {
10738   {   0, "mt-sms-CSI" },
10739   {   1, "mg-csi" },
10740   {   2, "o-IM-CSI" },
10741   {   3, "d-IM-CSI" },
10742   {   4, "vt-IM-CSI" },
10743   { 0, NULL }
10744 };
10745
10746
10747 static int
10748 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_) {
10749   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10750                                   NULL);
10751
10752   return offset;
10753 }
10754
10755
10756 static const ber_sequence_t gsm_map_ms_RequestedSubscriptionInfo_sequence[] = {
10757   { &hf_gsm_map_ms_requestedSS_Info, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_ForBS_Code },
10758   { &hf_gsm_map_ms_odb      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10759   { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo },
10760   { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10761   { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10762   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10763   { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo },
10764   { &hf_gsm_map_ms_msisdn_BS_List_01, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10765   { NULL, 0, 0, 0, NULL }
10766 };
10767
10768 static int
10769 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_) {
10770   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10771                                    gsm_map_ms_RequestedSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_RequestedSubscriptionInfo);
10772
10773   return offset;
10774 }
10775
10776
10777 static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationArg_sequence[] = {
10778   { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
10779   { &hf_gsm_map_ms_requestedSubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedSubscriptionInfo },
10780   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10781   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10782   { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10783   { NULL, 0, 0, 0, NULL }
10784 };
10785
10786 static int
10787 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_) {
10788   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10789                                    gsm_map_ms_AnyTimeSubscriptionInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg);
10790
10791   return offset;
10792 }
10793
10794
10795 static const ber_sequence_t gsm_map_ms_CallForwardingData_sequence[] = {
10796   { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
10797   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10798   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10799   { NULL, 0, 0, 0, NULL }
10800 };
10801
10802 static int
10803 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_) {
10804   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10805                                    gsm_map_ms_CallForwardingData_sequence, hf_index, ett_gsm_map_ms_CallForwardingData);
10806
10807   return offset;
10808 }
10809
10810
10811
10812 static int
10813 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_) {
10814   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10815                                                 NULL);
10816
10817   return offset;
10818 }
10819
10820
10821 static const ber_sequence_t gsm_map_ms_CallBarringData_sequence[] = {
10822   { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
10823   { &hf_gsm_map_ms_password , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_Password },
10824   { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
10825   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10826   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10827   { NULL, 0, 0, 0, NULL }
10828 };
10829
10830 static int
10831 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_) {
10832   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10833                                    gsm_map_ms_CallBarringData_sequence, hf_index, ett_gsm_map_ms_CallBarringData);
10834
10835   return offset;
10836 }
10837
10838
10839 static const ber_sequence_t gsm_map_ms_ODB_Info_sequence[] = {
10840   { &hf_gsm_map_ms_odb_Data , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_Data },
10841   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10842   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10843   { NULL, 0, 0, 0, NULL }
10844 };
10845
10846 static int
10847 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_) {
10848   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10849                                    gsm_map_ms_ODB_Info_sequence, hf_index, ett_gsm_map_ms_ODB_Info);
10850
10851   return offset;
10852 }
10853
10854
10855 static const ber_sequence_t gsm_map_ms_CAMEL_SubscriptionInfo_sequence[] = {
10856   { &hf_gsm_map_ms_o_CSI    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
10857   { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
10858   { &hf_gsm_map_ms_d_CSI    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
10859   { &hf_gsm_map_ms_t_CSI    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
10860   { &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 },
10861   { &hf_gsm_map_ms_vt_CSI   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
10862   { &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 },
10863   { &hf_gsm_map_ms_tif_CSI  , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10864   { &hf_gsm_map_ms_tif_CSI_NotificationToCSE, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10865   { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI },
10866   { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
10867   { &hf_gsm_map_ms_ss_CSI   , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI },
10868   { &hf_gsm_map_ms_m_CSI    , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI },
10869   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10870   { &hf_gsm_map_ms_specificCSIDeletedList, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw },
10871   { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
10872   { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
10873   { &hf_gsm_map_ms_mg_csi   , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI },
10874   { &hf_gsm_map_ms_o_IM_CSI , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
10875   { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
10876   { &hf_gsm_map_ms_d_IM_CSI , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
10877   { &hf_gsm_map_ms_vt_IM_CSI, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
10878   { &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 },
10879   { NULL, 0, 0, 0, NULL }
10880 };
10881
10882 static int
10883 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_) {
10884   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10885                                    gsm_map_ms_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_CAMEL_SubscriptionInfo);
10886
10887   return offset;
10888 }
10889
10890
10891 static const ber_sequence_t gsm_map_ms_MSISDN_BS_sequence[] = {
10892   { &hf_gsm_map_ms_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10893   { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList },
10894   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10895   { NULL, 0, 0, 0, NULL }
10896 };
10897
10898 static int
10899 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_) {
10900   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10901                                    gsm_map_ms_MSISDN_BS_sequence, hf_index, ett_gsm_map_ms_MSISDN_BS);
10902
10903   return offset;
10904 }
10905
10906
10907 static const ber_sequence_t gsm_map_ms_MSISDN_BS_List_sequence_of[1] = {
10908   { &hf_gsm_map_ms_MSISDN_BS_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MSISDN_BS },
10909 };
10910
10911 static int
10912 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_) {
10913   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10914                                       gsm_map_ms_MSISDN_BS_List_sequence_of, hf_index, ett_gsm_map_ms_MSISDN_BS_List);
10915
10916   return offset;
10917 }
10918
10919
10920 static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationRes_sequence[] = {
10921   { &hf_gsm_map_ms_callForwardingData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallForwardingData },
10922   { &hf_gsm_map_ms_callBarringData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallBarringData },
10923   { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
10924   { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
10925   { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
10926   { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
10927   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10928   { &hf_gsm_map_ms_offeredCamel4CSIsInVLR, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
10929   { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
10930   { &hf_gsm_map_ms_msisdn_BS_List, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSISDN_BS_List },
10931   { NULL, 0, 0, 0, NULL }
10932 };
10933
10934 static int
10935 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_) {
10936   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10937                                    gsm_map_ms_AnyTimeSubscriptionInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes);
10938
10939   return offset;
10940 }
10941
10942
10943 static const value_string gsm_map_ms_ModificationInstruction_vals[] = {
10944   {   0, "deactivate" },
10945   {   1, "activate" },
10946   { 0, NULL }
10947 };
10948
10949
10950 static int
10951 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_) {
10952   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10953                                   NULL);
10954
10955   return offset;
10956 }
10957
10958
10959 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CF_Info_sequence[] = {
10960   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
10961   { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
10962   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
10963   { &hf_gsm_map_ms_forwardedToNumber_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
10964   { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
10965   { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime },
10966   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
10967   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10968   { NULL, 0, 0, 0, NULL }
10969 };
10970
10971 static int
10972 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_) {
10973   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10974                                    gsm_map_ms_ModificationRequestFor_CF_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CF_Info);
10975
10976   return offset;
10977 }
10978
10979
10980 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CB_Info_sequence[] = {
10981   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
10982   { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
10983   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
10984   { &hf_gsm_map_ms_password , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password },
10985   { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
10986   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
10987   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10988   { NULL, 0, 0, 0, NULL }
10989 };
10990
10991 static int
10992 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_) {
10993   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10994                                    gsm_map_ms_ModificationRequestFor_CB_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CB_Info);
10995
10996   return offset;
10997 }
10998
10999
11000 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CSI_sequence[] = {
11001   { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo },
11002   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11003   { &hf_gsm_map_ms_modifyCSI_State, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11004   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11005   { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo },
11006   { NULL, 0, 0, 0, NULL }
11007 };
11008
11009 static int
11010 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_) {
11011   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11012                                    gsm_map_ms_ModificationRequestFor_CSI_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CSI);
11013
11014   return offset;
11015 }
11016
11017
11018 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_ODB_data_sequence[] = {
11019   { &hf_gsm_map_ms_odb_data , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
11020   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11021   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11022   { NULL, 0, 0, 0, NULL }
11023 };
11024
11025 static int
11026 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_) {
11027   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11028                                    gsm_map_ms_ModificationRequestFor_ODB_data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_ODB_data);
11029
11030   return offset;
11031 }
11032
11033
11034 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence[] = {
11035   { &hf_gsm_map_ms_modifyRegistrationStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
11036   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11037   { NULL, 0, 0, 0, NULL }
11038 };
11039
11040 static int
11041 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_) {
11042   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11043                                    gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data);
11044
11045   return offset;
11046 }
11047
11048
11049 static const ber_sequence_t gsm_map_ms_AnyTimeModificationArg_sequence[] = {
11050   { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
11051   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11052   { &hf_gsm_map_ms_modificationRequestFor_CF_Info, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CF_Info },
11053   { &hf_gsm_map_ms_modificationRequestFor_CB_Info, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CB_Info },
11054   { &hf_gsm_map_ms_modificationRequestFor_CSI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CSI },
11055   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11056   { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11057   { &hf_gsm_map_ms_modificationRequestFor_ODB_data, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_ODB_data },
11058   { &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 },
11059   { NULL, 0, 0, 0, NULL }
11060 };
11061
11062 static int
11063 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_) {
11064   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11065                                    gsm_map_ms_AnyTimeModificationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationArg);
11066
11067   return offset;
11068 }
11069
11070
11071 static const ber_sequence_t gsm_map_ms_Ext_ForwardingInfoFor_CSE_sequence[] = {
11072   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
11073   { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
11074   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11075   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11076   { NULL, 0, 0, 0, NULL }
11077 };
11078
11079 static int
11080 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_) {
11081   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11082                                    gsm_map_ms_Ext_ForwardingInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE);
11083
11084   return offset;
11085 }
11086
11087
11088 static const ber_sequence_t gsm_map_ms_Ext_CallBarringInfoFor_CSE_sequence[] = {
11089   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
11090   { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
11091   { &hf_gsm_map_ms_password , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password },
11092   { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
11093   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11094   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11095   { NULL, 0, 0, 0, NULL }
11096 };
11097
11098 static int
11099 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_) {
11100   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11101                                    gsm_map_ms_Ext_CallBarringInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE);
11102
11103   return offset;
11104 }
11105
11106
11107 static const value_string gsm_map_ms_Ext_SS_InfoFor_CSE_vals[] = {
11108   {   0, "forwardingInfoFor-CSE" },
11109   {   1, "callBarringInfoFor-CSE" },
11110   { 0, NULL }
11111 };
11112
11113 static const ber_choice_t gsm_map_ms_Ext_SS_InfoFor_CSE_choice[] = {
11114   {   0, &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE },
11115   {   1, &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE },
11116   { 0, NULL, 0, 0, 0, NULL }
11117 };
11118
11119 static int
11120 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_) {
11121   offset = dissect_ber_choice(actx, tree, tvb, offset,
11122                                  gsm_map_ms_Ext_SS_InfoFor_CSE_choice, hf_index, ett_gsm_map_ms_Ext_SS_InfoFor_CSE,
11123                                  NULL);
11124
11125   return offset;
11126 }
11127
11128
11129 static const ber_sequence_t gsm_map_ms_AnyTimeModificationRes_sequence[] = {
11130   { &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 },
11131   { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
11132   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11133   { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
11134   { NULL, 0, 0, 0, NULL }
11135 };
11136
11137 static int
11138 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_) {
11139   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11140                                    gsm_map_ms_AnyTimeModificationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationRes);
11141
11142   return offset;
11143 }
11144
11145
11146 static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedArg_sequence[] = {
11147   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
11148   { &hf_gsm_map_ms_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11149   { &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE },
11150   { &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE },
11151   { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
11152   { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
11153   { &hf_gsm_map_ms_allInformationSent, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11154   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11155   { NULL, 0, 0, 0, NULL }
11156 };
11157
11158 static int
11159 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_) {
11160   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11161                                    gsm_map_ms_NoteSubscriberDataModifiedArg_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedArg);
11162
11163   return offset;
11164 }
11165
11166
11167 static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedRes_sequence[] = {
11168   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11169   { NULL, 0, 0, 0, NULL }
11170 };
11171
11172 static int
11173 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_) {
11174   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11175                                    gsm_map_ms_NoteSubscriberDataModifiedRes_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedRes);
11176
11177   return offset;
11178 }
11179
11180
11181 static const ber_sequence_t gsm_map_ms_NoteMM_EventArg_sequence[] = {
11182   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
11183   { &hf_gsm_map_ms_eventMet , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MM_Code },
11184   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11185   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11186   { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
11187   { &hf_gsm_map_ms_supportedCAMELPhases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11188   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11189   { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
11190   { &hf_gsm_map_ms_offeredCamel4Functionalities, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4Functionalities },
11191   { NULL, 0, 0, 0, NULL }
11192 };
11193
11194 static int
11195 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_) {
11196   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11197                                    gsm_map_ms_NoteMM_EventArg_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventArg);
11198
11199   return offset;
11200 }
11201
11202
11203 static const ber_sequence_t gsm_map_ms_NoteMM_EventRes_sequence[] = {
11204   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11205   { NULL, 0, 0, 0, NULL }
11206 };
11207
11208 static int
11209 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_) {
11210   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11211                                    gsm_map_ms_NoteMM_EventRes_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventRes);
11212
11213   return offset;
11214 }
11215
11216
11217 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
11218
11219
11220
11221 static int
11222 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_) {
11223   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
11224
11225   return offset;
11226 }
11227
11228
11229 static const ber_sequence_t gsm_map_ch_CUG_CheckInfo_sequence[] = {
11230   { &hf_gsm_map_ch_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock },
11231   { &hf_gsm_map_ch_cug_OutgoingAccess, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
11232   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11233   { NULL, 0, 0, 0, NULL }
11234 };
11235
11236 static int
11237 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_) {
11238   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11239                                    gsm_map_ch_CUG_CheckInfo_sequence, hf_index, ett_gsm_map_ch_CUG_CheckInfo);
11240
11241   return offset;
11242 }
11243
11244
11245
11246 static int
11247 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_) {
11248   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11249                                                 NULL);
11250
11251   return offset;
11252 }
11253
11254
11255 static const value_string gsm_map_ch_InterrogationType_vals[] = {
11256   {   0, "basicCall" },
11257   {   1, "forwarding" },
11258   { 0, NULL }
11259 };
11260
11261
11262 static int
11263 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_) {
11264   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11265                                   NULL);
11266
11267   return offset;
11268 }
11269
11270
11271
11272 static int
11273 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_) {
11274   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11275                                                 NULL);
11276
11277   return offset;
11278 }
11279
11280
11281
11282 int
11283 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_) {
11284   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11285                                        NULL);
11286
11287   return offset;
11288 }
11289
11290
11291 static const value_string gsm_map_ch_ForwardingReason_vals[] = {
11292   {   0, "notReachable" },
11293   {   1, "busy" },
11294   {   2, "noReply" },
11295   { 0, NULL }
11296 };
11297
11298
11299 static int
11300 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_) {
11301   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11302                                   NULL);
11303
11304   return offset;
11305 }
11306
11307
11308 static const ber_sequence_t gsm_map_ch_CamelInfo_sequence[] = {
11309   { &hf_gsm_map_ch_supportedCamelPhases, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11310   { &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 },
11311   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11312   { &hf_gsm_map_ch_offeredCamel4CSIs, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
11313   { NULL, 0, 0, 0, NULL }
11314 };
11315
11316 static int
11317 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_) {
11318   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11319                                    gsm_map_ch_CamelInfo_sequence, hf_index, ett_gsm_map_ch_CamelInfo);
11320
11321   return offset;
11322 }
11323
11324
11325
11326 int
11327 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_) {
11328   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
11329
11330   return offset;
11331 }
11332
11333
11334
11335 static int
11336 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_) {
11337   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11338                                                 NULL);
11339
11340   return offset;
11341 }
11342
11343
11344
11345 static int
11346 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_) {
11347   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11348                                        NULL);
11349
11350   return offset;
11351 }
11352
11353
11354 static const asn_namedbit gsm_map_ch_SuppressMTSS_bits[] = {
11355   {  0, &hf_gsm_map_ch_SuppressMTSS_suppressCUG, -1, -1, "suppressCUG", NULL },
11356   {  1, &hf_gsm_map_ch_SuppressMTSS_suppressCCBS, -1, -1, "suppressCCBS", NULL },
11357   { 0, NULL, 0, 0, NULL, NULL }
11358 };
11359
11360 static int
11361 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_) {
11362   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11363                                     gsm_map_ch_SuppressMTSS_bits, hf_index, ett_gsm_map_ch_SuppressMTSS,
11364                                     NULL);
11365
11366   return offset;
11367 }
11368
11369
11370 static const ber_sequence_t gsm_map_ch_SendRoutingInfoArg_sequence[] = {
11371   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11372   { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
11373   { &hf_gsm_map_ch_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding },
11374   { &hf_gsm_map_ch_interrogationType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_InterrogationType },
11375   { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11376   { &hf_gsm_map_ch_or_Capability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_OR_Phase },
11377   { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11378   { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
11379   { &hf_gsm_map_ch_forwardingReason, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingReason },
11380   { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11381   { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11382   { &hf_gsm_map_ch_camelInfo, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelInfo },
11383   { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
11384   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11385   { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
11386   { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11387   { &hf_gsm_map_ch_supportedCCBS_Phase, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SupportedCCBS_Phase },
11388   { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo },
11389   { &hf_gsm_map_ch_istSupportIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator },
11390   { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11391   { &hf_gsm_map_ch_callDiversionTreatmentIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallDiversionTreatmentIndicator },
11392   { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11393   { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11394   { &hf_gsm_map_ch_suppressIncomingCallBarring, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11395   { &hf_gsm_map_ch_gsmSCF_InitiatedCall, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11396   { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11397   { &hf_gsm_map_ch_networkSignalInfo2, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11398   { &hf_gsm_map_ch_suppressMTSS, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressMTSS },
11399   { &hf_gsm_map_ch_mtRoamingRetrySupported, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11400   { NULL, 0, 0, 0, NULL }
11401 };
11402
11403 static int
11404 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_) {
11405   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11406                                    gsm_map_ch_SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoArg);
11407
11408   return offset;
11409 }
11410
11411
11412 static const ber_sequence_t gsm_map_ch_ForwardingData_sequence[] = {
11413   { &hf_gsm_map_ch_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11414   { &hf_gsm_map_ch_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
11415   { &hf_gsm_map_ch_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions },
11416   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11417   { &hf_gsm_map_ch_longForwardedToNumber, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
11418   { NULL, 0, 0, 0, NULL }
11419 };
11420
11421 static int
11422 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_) {
11423   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11424                                    gsm_map_ch_ForwardingData_sequence, hf_index, ett_gsm_map_ch_ForwardingData);
11425
11426   return offset;
11427 }
11428
11429
11430 static const value_string gsm_map_ch_RoutingInfo_vals[] = {
11431   {   0, "roamingNumber" },
11432   {   1, "forwardingData" },
11433   { 0, NULL }
11434 };
11435
11436 static const ber_choice_t gsm_map_ch_RoutingInfo_choice[] = {
11437   {   0, &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11438   {   1, &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData },
11439   { 0, NULL, 0, 0, 0, NULL }
11440 };
11441
11442 static int
11443 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_) {
11444   offset = dissect_ber_choice(actx, tree, tvb, offset,
11445                                  gsm_map_ch_RoutingInfo_choice, hf_index, ett_gsm_map_ch_RoutingInfo,
11446                                  NULL);
11447
11448   return offset;
11449 }
11450
11451
11452 static const ber_sequence_t gsm_map_ch_GmscCamelSubscriptionInfo_sequence[] = {
11453   { &hf_gsm_map_ch_t_CSI    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
11454   { &hf_gsm_map_ch_o_CSI    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
11455   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11456   { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
11457   { &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 },
11458   { &hf_gsm_map_ch_d_csi    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
11459   { NULL, 0, 0, 0, NULL }
11460 };
11461
11462 static int
11463 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_) {
11464   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11465                                    gsm_map_ch_GmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ch_GmscCamelSubscriptionInfo);
11466
11467   return offset;
11468 }
11469
11470
11471 static const ber_sequence_t gsm_map_ch_CamelRoutingInfo_sequence[] = {
11472   { &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData },
11473   { &hf_gsm_map_ch_gmscCamelSubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_GmscCamelSubscriptionInfo },
11474   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11475   { NULL, 0, 0, 0, NULL }
11476 };
11477
11478 static int
11479 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_) {
11480   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11481                                    gsm_map_ch_CamelRoutingInfo_sequence, hf_index, ett_gsm_map_ch_CamelRoutingInfo);
11482
11483   return offset;
11484 }
11485
11486
11487 static const value_string gsm_map_ch_ExtendedRoutingInfo_vals[] = {
11488   {   0, "routingInfo" },
11489   {   1, "camelRoutingInfo" },
11490   { 0, NULL }
11491 };
11492
11493 static const ber_choice_t gsm_map_ch_ExtendedRoutingInfo_choice[] = {
11494   {   0, &hf_gsm_map_ch_routingInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo },
11495   {   1, &hf_gsm_map_ch_camelRoutingInfo, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelRoutingInfo },
11496   { 0, NULL, 0, 0, 0, NULL }
11497 };
11498
11499 static int
11500 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_) {
11501   offset = dissect_ber_choice(actx, tree, tvb, offset,
11502                                  gsm_map_ch_ExtendedRoutingInfo_choice, hf_index, ett_gsm_map_ch_ExtendedRoutingInfo,
11503                                  NULL);
11504
11505   return offset;
11506 }
11507
11508
11509 static const ber_sequence_t gsm_map_ch_CCBS_Indicators_sequence[] = {
11510   { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11511   { &hf_gsm_map_ch_keepCCBS_CallIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11512   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11513   { NULL, 0, 0, 0, NULL }
11514 };
11515
11516 static int
11517 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_) {
11518   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11519                                    gsm_map_ch_CCBS_Indicators_sequence, hf_index, ett_gsm_map_ch_CCBS_Indicators);
11520
11521   return offset;
11522 }
11523
11524
11525 static const asn_namedbit gsm_map_ch_AllowedServices_bits[] = {
11526   {  0, &hf_gsm_map_ch_AllowedServices_firstServiceAllowed, -1, -1, "firstServiceAllowed", NULL },
11527   {  1, &hf_gsm_map_ch_AllowedServices_secondServiceAllowed, -1, -1, "secondServiceAllowed", NULL },
11528   { 0, NULL, 0, 0, NULL, NULL }
11529 };
11530
11531 static int
11532 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_) {
11533   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11534                                     gsm_map_ch_AllowedServices_bits, hf_index, ett_gsm_map_ch_AllowedServices,
11535                                     NULL);
11536
11537   return offset;
11538 }
11539
11540
11541 static const value_string gsm_map_ch_UnavailabilityCause_vals[] = {
11542   {   1, "bearerServiceNotProvisioned" },
11543   {   2, "teleserviceNotProvisioned" },
11544   {   3, "absentSubscriber" },
11545   {   4, "busySubscriber" },
11546   {   5, "callBarred" },
11547   {   6, "cug-Reject" },
11548   { 0, NULL }
11549 };
11550
11551
11552 static int
11553 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_) {
11554   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11555                                   NULL);
11556
11557   return offset;
11558 }
11559
11560
11561 static const ber_sequence_t gsm_map_ch_SendRoutingInfoRes_U_sequence[] = {
11562   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11563   { &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 },
11564   { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
11565   { &hf_gsm_map_ch_cugSubscriptionFlag, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11566   { &hf_gsm_map_ch_subscriberInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberInfo },
11567   { &hf_gsm_map_ch_ss_List  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
11568   { &hf_gsm_map_ch_basicService, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11569   { &hf_gsm_map_ch_forwardingInterrogationRequired, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11570   { &hf_gsm_map_ch_vmsc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11571   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11572   { &hf_gsm_map_ch_naea_PreferredCI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI },
11573   { &hf_gsm_map_ch_ccbs_Indicators, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_Indicators },
11574   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11575   { &hf_gsm_map_ch_numberPortabilityStatus, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus },
11576   { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
11577   { &hf_gsm_map_ch_supportedCamelPhasesInVMSC, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11578   { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
11579   { &hf_gsm_map_ch_routingInfo2, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ch_RoutingInfo },
11580   { &hf_gsm_map_ch_ss_List2 , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
11581   { &hf_gsm_map_ch_basicService2, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11582   { &hf_gsm_map_ch_allowedServices, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_AllowedServices },
11583   { &hf_gsm_map_ch_unavailabilityCause, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UnavailabilityCause },
11584   { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11585   { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11586   { NULL, 0, 0, 0, NULL }
11587 };
11588
11589 static int
11590 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_) {
11591   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11592                                    gsm_map_ch_SendRoutingInfoRes_U_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoRes_U);
11593
11594   return offset;
11595 }
11596
11597
11598
11599 static int
11600 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_) {
11601   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
11602                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ch_SendRoutingInfoRes_U);
11603
11604   return offset;
11605 }
11606
11607
11608 static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberArg_sequence[] = {
11609   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11610   { &hf_gsm_map_ch_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11611   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11612   { &hf_gsm_map_ch_lmsi     , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
11613   { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11614   { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11615   { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
11616   { &hf_gsm_map_ch_gmsc_Address, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11617   { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
11618   { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11619   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11620   { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
11621   { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11622   { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11623   { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo },
11624   { &hf_gsm_map_ch_orNotSupportedInGMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11625   { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11626   { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11627   { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11628   { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
11629   { &hf_gsm_map_ch_mtRoamingRetrySupported, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11630   { NULL, 0, 0, 0, NULL }
11631 };
11632
11633 static int
11634 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_) {
11635   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11636                                    gsm_map_ch_ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberArg);
11637
11638   return offset;
11639 }
11640
11641
11642 static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberRes_sequence[] = {
11643   { &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11644   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11645   { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
11646   { NULL, 0, 0, 0, NULL }
11647 };
11648
11649 static int
11650 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_) {
11651   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11652                                    gsm_map_ch_ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberRes);
11653
11654   return offset;
11655 }
11656
11657
11658
11659 static int
11660 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_) {
11661   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11662                                        NULL);
11663
11664   return offset;
11665 }
11666
11667
11668
11669 static int
11670 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_) {
11671   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11672                                        NULL);
11673
11674   return offset;
11675 }
11676
11677
11678 static const ber_sequence_t gsm_map_ch_UU_Data_sequence[] = {
11679   { &hf_gsm_map_ch_uuIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUIndicator },
11680   { &hf_gsm_map_ch_uui      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUI },
11681   { &hf_gsm_map_ch_uusCFInteraction, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11682   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11683   { NULL, 0, 0, 0, NULL }
11684 };
11685
11686 int
11687 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_) {
11688   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11689                                    gsm_map_ch_UU_Data_sequence, hf_index, ett_gsm_map_ch_UU_Data);
11690
11691   return offset;
11692 }
11693
11694
11695 static const ber_sequence_t gsm_map_ch_ResumeCallHandlingArg_sequence[] = {
11696   { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
11697   { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11698   { &hf_gsm_map_ch_forwardingData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingData },
11699   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11700   { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
11701   { &hf_gsm_map_ch_o_CSI    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
11702   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11703   { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11704   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11705   { &hf_gsm_map_ch_uu_Data  , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UU_Data },
11706   { &hf_gsm_map_ch_allInformationSent, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11707   { &hf_gsm_map_ch_d_csi    , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
11708   { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
11709   { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
11710   { &hf_gsm_map_ch_mtRoamingRetry, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11711   { NULL, 0, 0, 0, NULL }
11712 };
11713
11714 static int
11715 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_) {
11716   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11717                                    gsm_map_ch_ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingArg);
11718
11719   return offset;
11720 }
11721
11722
11723 static const ber_sequence_t gsm_map_ch_ResumeCallHandlingRes_sequence[] = {
11724   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11725   { NULL, 0, 0, 0, NULL }
11726 };
11727
11728 static int
11729 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_) {
11730   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11731                                    gsm_map_ch_ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingRes);
11732
11733   return offset;
11734 }
11735
11736
11737 static const value_string gsm_map_ch_ReportingState_vals[] = {
11738   {   0, "stopMonitoring" },
11739   {   1, "startMonitoring" },
11740   { 0, NULL }
11741 };
11742
11743
11744 static int
11745 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_) {
11746   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11747                                   NULL);
11748
11749   return offset;
11750 }
11751
11752
11753 static const ber_sequence_t gsm_map_ch_SetReportingStateArg_sequence[] = {
11754   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11755   { &hf_gsm_map_ch_lmsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
11756   { &hf_gsm_map_ch_ccbs_Monitoring, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ReportingState },
11757   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11758   { NULL, 0, 0, 0, NULL }
11759 };
11760
11761 static int
11762 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_) {
11763   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11764                                    gsm_map_ch_SetReportingStateArg_sequence, hf_index, ett_gsm_map_ch_SetReportingStateArg);
11765
11766   return offset;
11767 }
11768
11769
11770 static const value_string gsm_map_ch_CCBS_SubscriberStatus_vals[] = {
11771   {   0, "ccbsNotIdle" },
11772   {   1, "ccbsIdle" },
11773   {   2, "ccbsNotReachable" },
11774   { 0, NULL }
11775 };
11776
11777
11778 static int
11779 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_) {
11780   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11781                                   NULL);
11782
11783   return offset;
11784 }
11785
11786
11787 static const ber_sequence_t gsm_map_ch_SetReportingStateRes_sequence[] = {
11788   { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus },
11789   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11790   { NULL, 0, 0, 0, NULL }
11791 };
11792
11793 static int
11794 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_) {
11795   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11796                                    gsm_map_ch_SetReportingStateRes_sequence, hf_index, ett_gsm_map_ch_SetReportingStateRes);
11797
11798   return offset;
11799 }
11800
11801
11802 static const ber_sequence_t gsm_map_ch_EventReportData_sequence[] = {
11803   { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus },
11804   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11805   { NULL, 0, 0, 0, NULL }
11806 };
11807
11808 static int
11809 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_) {
11810   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11811                                    gsm_map_ch_EventReportData_sequence, hf_index, ett_gsm_map_ch_EventReportData);
11812
11813   return offset;
11814 }
11815
11816
11817 static const value_string gsm_map_ch_MonitoringMode_vals[] = {
11818   {   0, "a-side" },
11819   {   1, "b-side" },
11820   { 0, NULL }
11821 };
11822
11823
11824 static int
11825 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_) {
11826   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11827                                   NULL);
11828
11829   return offset;
11830 }
11831
11832
11833 static const value_string gsm_map_ch_CallOutcome_vals[] = {
11834   {   0, "success" },
11835   {   1, "failure" },
11836   {   2, "busy" },
11837   { 0, NULL }
11838 };
11839
11840
11841 static int
11842 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_) {
11843   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11844                                   NULL);
11845
11846   return offset;
11847 }
11848
11849
11850 static const ber_sequence_t gsm_map_ch_CallReportData_sequence[] = {
11851   { &hf_gsm_map_ch_monitoringMode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_MonitoringMode },
11852   { &hf_gsm_map_ch_callOutcome, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallOutcome },
11853   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11854   { NULL, 0, 0, 0, NULL }
11855 };
11856
11857 static int
11858 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_) {
11859   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11860                                    gsm_map_ch_CallReportData_sequence, hf_index, ett_gsm_map_ch_CallReportData);
11861
11862   return offset;
11863 }
11864
11865
11866 static const ber_sequence_t gsm_map_ch_StatusReportArg_sequence[] = {
11867   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11868   { &hf_gsm_map_ch_eventReportData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_EventReportData },
11869   { &hf_gsm_map_ch_callReportdata, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReportData },
11870   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11871   { NULL, 0, 0, 0, NULL }
11872 };
11873
11874 static int
11875 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_) {
11876   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11877                                    gsm_map_ch_StatusReportArg_sequence, hf_index, ett_gsm_map_ch_StatusReportArg);
11878
11879   return offset;
11880 }
11881
11882
11883 static const ber_sequence_t gsm_map_ch_StatusReportRes_sequence[] = {
11884   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11885   { NULL, 0, 0, 0, NULL }
11886 };
11887
11888 static int
11889 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_) {
11890   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11891                                    gsm_map_ch_StatusReportRes_sequence, hf_index, ett_gsm_map_ch_StatusReportRes);
11892
11893   return offset;
11894 }
11895
11896
11897 static const ber_sequence_t gsm_map_ch_RemoteUserFreeArg_sequence[] = {
11898   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11899   { &hf_gsm_map_ch_callInfo , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
11900   { &hf_gsm_map_ch_ccbs_Feature, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
11901   { &hf_gsm_map_ch_translatedB_Number, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11902   { &hf_gsm_map_ch_replaceB_Number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11903   { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
11904   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11905   { NULL, 0, 0, 0, NULL }
11906 };
11907
11908 static int
11909 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_) {
11910   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11911                                    gsm_map_ch_RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeArg);
11912
11913   return offset;
11914 }
11915
11916
11917 static const value_string gsm_map_ch_RUF_Outcome_vals[] = {
11918   {   0, "accepted" },
11919   {   1, "rejected" },
11920   {   2, "noResponseFromFreeMS" },
11921   {   3, "noResponseFromBusyMS" },
11922   {   4, "udubFromFreeMS" },
11923   {   5, "udubFromBusyMS" },
11924   { 0, NULL }
11925 };
11926
11927
11928 static int
11929 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_) {
11930   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11931                                   NULL);
11932
11933   return offset;
11934 }
11935
11936
11937 static const ber_sequence_t gsm_map_ch_RemoteUserFreeRes_sequence[] = {
11938   { &hf_gsm_map_ch_ruf_Outcome, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_RUF_Outcome },
11939   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11940   { NULL, 0, 0, 0, NULL }
11941 };
11942
11943 static int
11944 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_) {
11945   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11946                                    gsm_map_ch_RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeRes);
11947
11948   return offset;
11949 }
11950
11951
11952 static const ber_sequence_t gsm_map_ch_IST_AlertArg_sequence[] = {
11953   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11954   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11955   { NULL, 0, 0, 0, NULL }
11956 };
11957
11958 static int
11959 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_) {
11960   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11961                                    gsm_map_ch_IST_AlertArg_sequence, hf_index, ett_gsm_map_ch_IST_AlertArg);
11962
11963   return offset;
11964 }
11965
11966
11967 static const value_string gsm_map_ch_CallTerminationIndicator_vals[] = {
11968   {   0, "terminateCallActivityReferred" },
11969   {   1, "terminateAllCallActivities" },
11970   { 0, NULL }
11971 };
11972
11973
11974 static int
11975 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_) {
11976   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11977                                   NULL);
11978
11979   return offset;
11980 }
11981
11982
11983 static const ber_sequence_t gsm_map_ch_IST_AlertRes_sequence[] = {
11984   { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
11985   { &hf_gsm_map_ch_istInformationWithdraw, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
11986   { &hf_gsm_map_ch_callTerminationIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallTerminationIndicator },
11987   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11988   { NULL, 0, 0, 0, NULL }
11989 };
11990
11991 static int
11992 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_) {
11993   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11994                                    gsm_map_ch_IST_AlertRes_sequence, hf_index, ett_gsm_map_ch_IST_AlertRes);
11995
11996   return offset;
11997 }
11998
11999
12000 static const ber_sequence_t gsm_map_ch_IST_CommandArg_sequence[] = {
12001   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12002   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12003   { NULL, 0, 0, 0, NULL }
12004 };
12005
12006 static int
12007 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_) {
12008   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12009                                    gsm_map_ch_IST_CommandArg_sequence, hf_index, ett_gsm_map_ch_IST_CommandArg);
12010
12011   return offset;
12012 }
12013
12014
12015 static const ber_sequence_t gsm_map_ch_IST_CommandRes_sequence[] = {
12016   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12017   { NULL, 0, 0, 0, NULL }
12018 };
12019
12020 static int
12021 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_) {
12022   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12023                                    gsm_map_ch_IST_CommandRes_sequence, hf_index, ett_gsm_map_ch_IST_CommandRes);
12024
12025   return offset;
12026 }
12027
12028
12029 static const ber_sequence_t gsm_map_ch_ReleaseResourcesArg_sequence[] = {
12030   { &hf_gsm_map_ch_msrn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12031   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12032   { NULL, 0, 0, 0, NULL }
12033 };
12034
12035 static int
12036 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_) {
12037   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12038                                    gsm_map_ch_ReleaseResourcesArg_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesArg);
12039
12040   return offset;
12041 }
12042
12043
12044 static const ber_sequence_t gsm_map_ch_ReleaseResourcesRes_sequence[] = {
12045   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12046   { NULL, 0, 0, 0, NULL }
12047 };
12048
12049 static int
12050 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_) {
12051   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12052                                    gsm_map_ch_ReleaseResourcesRes_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesRes);
12053
12054   return offset;
12055 }
12056
12057
12058 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
12059
12060
12061 static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Arg_sequence[] = {
12062   { &hf_gsm_map_lcs_mlcNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12063   { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
12064   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12065   { NULL, 0, 0, 0, NULL }
12066 };
12067
12068 static int
12069 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_) {
12070   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12071                                    gsm_map_lcs_RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Arg);
12072
12073   return offset;
12074 }
12075
12076
12077
12078 static int
12079 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_) {
12080   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
12081
12082   return offset;
12083 }
12084
12085
12086 static const ber_sequence_t gsm_map_lcs_LCSLocationInfo_sequence[] = {
12087   { &hf_gsm_map_lcs_networkNode_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12088   { &hf_gsm_map_lcs_lmsi    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
12089   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12090   { &hf_gsm_map_lcs_gprsNodeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12091   { &hf_gsm_map_lcs_additional_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_Additional_Number },
12092   { &hf_gsm_map_lcs_supportedLCS_CapabilitySets, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
12093   { &hf_gsm_map_lcs_additional_LCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
12094   { NULL, 0, 0, 0, NULL }
12095 };
12096
12097 static int
12098 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_) {
12099   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12100                                    gsm_map_lcs_LCSLocationInfo_sequence, hf_index, ett_gsm_map_lcs_LCSLocationInfo);
12101
12102   return offset;
12103 }
12104
12105
12106 static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Res_sequence[] = {
12107   { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
12108   { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo },
12109   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12110   { &hf_gsm_map_lcs_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12111   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12112   { &hf_gsm_map_lcs_ppr_Address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12113   { &hf_gsm_map_lcs_additional_v_gmlc_Address, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12114   { NULL, 0, 0, 0, NULL }
12115 };
12116
12117 static int
12118 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_) {
12119   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12120                                    gsm_map_lcs_RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Res);
12121
12122   return offset;
12123 }
12124
12125
12126 static const value_string gsm_map_lcs_LocationEstimateType_vals[] = {
12127   {   0, "currentLocation" },
12128   {   1, "currentOrLastKnownLocation" },
12129   {   2, "initialLocation" },
12130   {   3, "activateDeferredLocation" },
12131   {   4, "cancelDeferredLocation" },
12132   {   5, "notificationVerificationOnly" },
12133   { 0, NULL }
12134 };
12135
12136
12137 static int
12138 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_) {
12139   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12140                                   NULL);
12141
12142   return offset;
12143 }
12144
12145
12146 static const asn_namedbit gsm_map_lcs_DeferredLocationEventType_bits[] = {
12147   {  0, &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable, -1, -1, "msAvailable", NULL },
12148   {  1, &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea, -1, -1, "enteringIntoArea", NULL },
12149   {  2, &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea, -1, -1, "leavingFromArea", NULL },
12150   {  3, &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea, -1, -1, "beingInsideArea", NULL },
12151   {  4, &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR, -1, -1, "periodicLDR", NULL },
12152   { 0, NULL, 0, 0, NULL, NULL }
12153 };
12154
12155 int
12156 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_) {
12157   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
12158                                     gsm_map_lcs_DeferredLocationEventType_bits, hf_index, ett_gsm_map_lcs_DeferredLocationEventType,
12159                                     NULL);
12160
12161   return offset;
12162 }
12163
12164
12165 static const ber_sequence_t gsm_map_lcs_LocationType_sequence[] = {
12166   { &hf_gsm_map_lcs_locationEstimateType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationEstimateType },
12167   { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
12168   { NULL, 0, 0, 0, NULL }
12169 };
12170
12171 int
12172 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_) {
12173   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12174                                    gsm_map_lcs_LocationType_sequence, hf_index, ett_gsm_map_lcs_LocationType);
12175
12176   return offset;
12177 }
12178
12179
12180 static const value_string gsm_map_lcs_LCSClientType_vals[] = {
12181   {   0, "emergencyServices" },
12182   {   1, "valueAddedServices" },
12183   {   2, "plmnOperatorServices" },
12184   {   3, "lawfulInterceptServices" },
12185   { 0, NULL }
12186 };
12187
12188
12189 static int
12190 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_) {
12191   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12192                                   NULL);
12193
12194   return offset;
12195 }
12196
12197
12198
12199 static int
12200 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_) {
12201   offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
12202
12203   return offset;
12204 }
12205
12206
12207 static const value_string gsm_map_lcs_LCS_FormatIndicator_vals[] = {
12208   {   0, "logicalName" },
12209   {   1, "e-mailAddress" },
12210   {   2, "msisdn" },
12211   {   3, "url" },
12212   {   4, "sipUrl" },
12213   { 0, NULL }
12214 };
12215
12216
12217 static int
12218 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_) {
12219   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12220                                   NULL);
12221
12222   return offset;
12223 }
12224
12225
12226 static const ber_sequence_t gsm_map_lcs_LCSClientName_sequence[] = {
12227   { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
12228   { &hf_gsm_map_lcs_nameString, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NameString },
12229   { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator },
12230   { NULL, 0, 0, 0, NULL }
12231 };
12232
12233 int
12234 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_) {
12235   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12236                                    gsm_map_lcs_LCSClientName_sequence, hf_index, ett_gsm_map_lcs_LCSClientName);
12237
12238   return offset;
12239 }
12240
12241
12242
12243 static int
12244 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_) {
12245   offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
12246
12247   return offset;
12248 }
12249
12250
12251 static const ber_sequence_t gsm_map_lcs_LCSRequestorID_sequence[] = {
12252   { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
12253   { &hf_gsm_map_lcs_requestorIDString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RequestorIDString },
12254   { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator },
12255   { NULL, 0, 0, 0, NULL }
12256 };
12257
12258 int
12259 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_) {
12260   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12261                                    gsm_map_lcs_LCSRequestorID_sequence, hf_index, ett_gsm_map_lcs_LCSRequestorID);
12262
12263   return offset;
12264 }
12265
12266
12267 static const ber_sequence_t gsm_map_lcs_LCS_ClientID_sequence[] = {
12268   { &hf_gsm_map_lcs_lcsClientType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientType },
12269   { &hf_gsm_map_lcs_lcsClientExternalID, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
12270   { &hf_gsm_map_lcs_lcsClientDialedByMS, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
12271   { &hf_gsm_map_lcs_lcsClientInternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientInternalID },
12272   { &hf_gsm_map_lcs_lcsClientName, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName },
12273   { &hf_gsm_map_lcs_lcsAPN  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
12274   { &hf_gsm_map_lcs_lcsRequestorID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID },
12275   { NULL, 0, 0, 0, NULL }
12276 };
12277
12278 static int
12279 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_) {
12280   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12281                                    gsm_map_lcs_LCS_ClientID_sequence, hf_index, ett_gsm_map_lcs_LCS_ClientID);
12282
12283   return offset;
12284 }
12285
12286
12287
12288 static int
12289 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_) {
12290   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12291                                        NULL);
12292
12293   return offset;
12294 }
12295
12296
12297
12298 static int
12299 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_) {
12300   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12301                                        NULL);
12302
12303   return offset;
12304 }
12305
12306
12307
12308 static int
12309 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_) {
12310   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12311                                        NULL);
12312
12313   return offset;
12314 }
12315
12316
12317 static const value_string gsm_map_lcs_ResponseTimeCategory_vals[] = {
12318   {   0, "lowdelay" },
12319   {   1, "delaytolerant" },
12320   { 0, NULL }
12321 };
12322
12323
12324 static int
12325 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_) {
12326   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12327                                   NULL);
12328
12329   return offset;
12330 }
12331
12332
12333 static const ber_sequence_t gsm_map_lcs_ResponseTime_sequence[] = {
12334   { &hf_gsm_map_lcs_responseTimeCategory, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ResponseTimeCategory },
12335   { NULL, 0, 0, 0, NULL }
12336 };
12337
12338 static int
12339 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_) {
12340   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12341                                    gsm_map_lcs_ResponseTime_sequence, hf_index, ett_gsm_map_lcs_ResponseTime);
12342
12343   return offset;
12344 }
12345
12346
12347 static const ber_sequence_t gsm_map_lcs_LCS_QoS_sequence[] = {
12348   { &hf_gsm_map_lcs_horizontal_accuracy, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Horizontal_Accuracy },
12349   { &hf_gsm_map_lcs_verticalCoordinateRequest, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12350   { &hf_gsm_map_lcs_vertical_accuracy, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Vertical_Accuracy },
12351   { &hf_gsm_map_lcs_responseTime, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ResponseTime },
12352   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12353   { &hf_gsm_map_lcs_velocityRequest, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12354   { NULL, 0, 0, 0, NULL }
12355 };
12356
12357 int
12358 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_) {
12359   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12360                                    gsm_map_lcs_LCS_QoS_sequence, hf_index, ett_gsm_map_lcs_LCS_QoS);
12361
12362   return offset;
12363 }
12364
12365
12366 static const asn_namedbit gsm_map_lcs_SupportedGADShapes_bits[] = {
12367   {  0, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint, -1, -1, "ellipsoidPoint", NULL },
12368   {  1, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle, -1, -1, "ellipsoidPointWithUncertaintyCircle", NULL },
12369   {  2, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse, -1, -1, "ellipsoidPointWithUncertaintyEllipse", NULL },
12370   {  3, &hf_gsm_map_lcs_SupportedGADShapes_polygon, -1, -1, "polygon", NULL },
12371   {  4, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude, -1, -1, "ellipsoidPointWithAltitude", NULL },
12372   {  5, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid, -1, -1, "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", NULL },
12373   {  6, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc, -1, -1, "ellipsoidArc", NULL },
12374   { 0, NULL, 0, 0, NULL, NULL }
12375 };
12376
12377 int
12378 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_) {
12379   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
12380                                     gsm_map_lcs_SupportedGADShapes_bits, hf_index, ett_gsm_map_lcs_SupportedGADShapes,
12381                                     NULL);
12382
12383   return offset;
12384 }
12385
12386
12387
12388 int
12389 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_) {
12390   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12391                                        NULL);
12392
12393   return offset;
12394 }
12395
12396
12397
12398 static int
12399 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_) {
12400   offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
12401
12402   return offset;
12403 }
12404
12405
12406 static const ber_sequence_t gsm_map_lcs_LCSCodeword_sequence[] = {
12407   { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
12408   { &hf_gsm_map_lcs_lcsCodewordString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodewordString },
12409   { NULL, 0, 0, 0, NULL }
12410 };
12411
12412 int
12413 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_) {
12414   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12415                                    gsm_map_lcs_LCSCodeword_sequence, hf_index, ett_gsm_map_lcs_LCSCodeword);
12416
12417   return offset;
12418 }
12419
12420
12421 static const value_string gsm_map_lcs_PrivacyCheckRelatedAction_vals[] = {
12422   {   0, "allowedWithoutNotification" },
12423   {   1, "allowedWithNotification" },
12424   {   2, "allowedIfNoResponse" },
12425   {   3, "restrictedIfNoResponse" },
12426   {   4, "notAllowed" },
12427   { 0, NULL }
12428 };
12429
12430
12431 static int
12432 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_) {
12433   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12434                                   NULL);
12435
12436   return offset;
12437 }
12438
12439
12440 static const ber_sequence_t gsm_map_lcs_LCS_PrivacyCheck_sequence[] = {
12441   { &hf_gsm_map_lcs_callSessionUnrelated, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction },
12442   { &hf_gsm_map_lcs_callSessionRelated, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction },
12443   { NULL, 0, 0, 0, NULL }
12444 };
12445
12446 static int
12447 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_) {
12448   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12449                                    gsm_map_lcs_LCS_PrivacyCheck_sequence, hf_index, ett_gsm_map_lcs_LCS_PrivacyCheck);
12450
12451   return offset;
12452 }
12453
12454
12455 static const value_string gsm_map_lcs_AreaType_vals[] = {
12456   {   0, "countryCode" },
12457   {   1, "plmnId" },
12458   {   2, "locationAreaId" },
12459   {   3, "routingAreaId" },
12460   {   4, "cellGlobalId" },
12461   {   5, "utranCellId" },
12462   { 0, NULL }
12463 };
12464
12465
12466 static int
12467 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_) {
12468   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12469                                   NULL);
12470
12471   return offset;
12472 }
12473
12474
12475
12476 static int
12477 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_) {
12478   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12479                                        NULL);
12480
12481   return offset;
12482 }
12483
12484
12485 static const ber_sequence_t gsm_map_lcs_Area_sequence[] = {
12486   { &hf_gsm_map_lcs_areaType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaType },
12487   { &hf_gsm_map_lcs_areaIdentification, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaIdentification },
12488   { NULL, 0, 0, 0, NULL }
12489 };
12490
12491 static int
12492 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_) {
12493   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12494                                    gsm_map_lcs_Area_sequence, hf_index, ett_gsm_map_lcs_Area);
12495
12496   return offset;
12497 }
12498
12499
12500 static const ber_sequence_t gsm_map_lcs_AreaList_sequence_of[1] = {
12501   { &hf_gsm_map_lcs_AreaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Area },
12502 };
12503
12504 static int
12505 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_) {
12506   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12507                                       gsm_map_lcs_AreaList_sequence_of, hf_index, ett_gsm_map_lcs_AreaList);
12508
12509   return offset;
12510 }
12511
12512
12513 static const ber_sequence_t gsm_map_lcs_AreaDefinition_sequence[] = {
12514   { &hf_gsm_map_lcs_areaList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaList },
12515   { NULL, 0, 0, 0, NULL }
12516 };
12517
12518 static int
12519 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_) {
12520   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12521                                    gsm_map_lcs_AreaDefinition_sequence, hf_index, ett_gsm_map_lcs_AreaDefinition);
12522
12523   return offset;
12524 }
12525
12526
12527 static const value_string gsm_map_lcs_OccurrenceInfo_vals[] = {
12528   {   0, "oneTimeEvent" },
12529   {   1, "multipleTimeEvent" },
12530   { 0, NULL }
12531 };
12532
12533
12534 static int
12535 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_) {
12536   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12537                                   NULL);
12538
12539   return offset;
12540 }
12541
12542
12543
12544 static int
12545 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_) {
12546   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12547                                                 NULL);
12548
12549   return offset;
12550 }
12551
12552
12553 static const ber_sequence_t gsm_map_lcs_AreaEventInfo_sequence[] = {
12554   { &hf_gsm_map_lcs_areaDefinition, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaDefinition },
12555   { &hf_gsm_map_lcs_occurrenceInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_OccurrenceInfo },
12556   { &hf_gsm_map_lcs_intervalTime, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_IntervalTime },
12557   { NULL, 0, 0, 0, NULL }
12558 };
12559
12560 int
12561 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_) {
12562   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12563                                    gsm_map_lcs_AreaEventInfo_sequence, hf_index, ett_gsm_map_lcs_AreaEventInfo);
12564
12565   return offset;
12566 }
12567
12568
12569
12570 static int
12571 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_) {
12572   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12573                                                 NULL);
12574
12575   return offset;
12576 }
12577
12578
12579
12580 static int
12581 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_) {
12582   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12583                                                 NULL);
12584
12585   return offset;
12586 }
12587
12588
12589 static const ber_sequence_t gsm_map_lcs_PeriodicLDRInfo_sequence[] = {
12590   { &hf_gsm_map_lcs_reportingAmount, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingAmount },
12591   { &hf_gsm_map_lcs_reportingInterval, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingInterval },
12592   { NULL, 0, 0, 0, NULL }
12593 };
12594
12595 static int
12596 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_) {
12597   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12598                                    gsm_map_lcs_PeriodicLDRInfo_sequence, hf_index, ett_gsm_map_lcs_PeriodicLDRInfo);
12599
12600   return offset;
12601 }
12602
12603
12604 static const value_string gsm_map_lcs_RAN_Technology_vals[] = {
12605   {   0, "gsm" },
12606   {   1, "umts" },
12607   { 0, NULL }
12608 };
12609
12610
12611 static int
12612 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_) {
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_lcs_ReportingPLMN_sequence[] = {
12621   { &hf_gsm_map_lcs_plmn_Id , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
12622   { &hf_gsm_map_lcs_ran_Technology, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RAN_Technology },
12623   { &hf_gsm_map_lcs_ran_PeriodicLocationSupport, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12624   { NULL, 0, 0, 0, NULL }
12625 };
12626
12627 static int
12628 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_) {
12629   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12630                                    gsm_map_lcs_ReportingPLMN_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMN);
12631
12632   return offset;
12633 }
12634
12635
12636 static const ber_sequence_t gsm_map_lcs_PLMNList_sequence_of[1] = {
12637   { &hf_gsm_map_lcs_PLMNList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingPLMN },
12638 };
12639
12640 static int
12641 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_) {
12642   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12643                                       gsm_map_lcs_PLMNList_sequence_of, hf_index, ett_gsm_map_lcs_PLMNList);
12644
12645   return offset;
12646 }
12647
12648
12649 static const ber_sequence_t gsm_map_lcs_ReportingPLMNList_sequence[] = {
12650   { &hf_gsm_map_lcs_plmn_ListPrioritized, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12651   { &hf_gsm_map_lcs_plmn_List, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PLMNList },
12652   { NULL, 0, 0, 0, NULL }
12653 };
12654
12655 static int
12656 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_) {
12657   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12658                                    gsm_map_lcs_ReportingPLMNList_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMNList);
12659
12660   return offset;
12661 }
12662
12663
12664 static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Arg_sequence[] = {
12665   { &hf_gsm_map_lcs_locationType, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LocationType },
12666   { &hf_gsm_map_lcs_mlc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12667   { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ClientID },
12668   { &hf_gsm_map_lcs_privacyOverride, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12669   { &hf_gsm_map_lcs_imsi    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12670   { &hf_gsm_map_lcs_msisdn  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12671   { &hf_gsm_map_lcs_lmsi    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
12672   { &hf_gsm_map_lcs_imei    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
12673   { &hf_gsm_map_lcs_lcs_Priority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_Priority },
12674   { &hf_gsm_map_lcs_lcs_QoS , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
12675   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12676   { &hf_gsm_map_lcs_supportedGADShapes, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
12677   { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
12678   { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
12679   { &hf_gsm_map_lcs_lcsCodeword, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword },
12680   { &hf_gsm_map_lcs_lcs_PrivacyCheck, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_PrivacyCheck },
12681   { &hf_gsm_map_lcs_areaEventInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo },
12682   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12683   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12684   { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
12685   { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
12686   { NULL, 0, 0, 0, NULL }
12687 };
12688
12689 static int
12690 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_) {
12691   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12692                                    gsm_map_lcs_ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Arg);
12693
12694   return offset;
12695 }
12696
12697
12698
12699 int
12700 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_) {
12701 #line 790 "gsmmap.cnf"
12702     tvbuff_t    *parameter_tvb; 
12703         proto_tree      *subtree;
12704
12705   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12706                                        &parameter_tvb);
12707  
12708
12709         if (!parameter_tvb) 
12710                 return offset; 
12711
12712     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GeographicalInformation);
12713         dissect_geographical_description(parameter_tvb, actx->pinfo, subtree); 
12714
12715
12716
12717   return offset;
12718 }
12719
12720
12721
12722 int
12723 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_) {
12724   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12725                                        NULL);
12726
12727   return offset;
12728 }
12729
12730
12731
12732 static int
12733 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_) {
12734   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12735                                        NULL);
12736
12737   return offset;
12738 }
12739
12740
12741
12742 static int
12743 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_) {
12744   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12745                                        NULL);
12746
12747   return offset;
12748 }
12749
12750
12751 static const value_string gsm_map_lcs_AccuracyFulfilmentIndicator_vals[] = {
12752   {   0, "requestedAccuracyFulfilled" },
12753   {   1, "requestedAccuracyNotFulfilled" },
12754   { 0, NULL }
12755 };
12756
12757
12758 static int
12759 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_) {
12760   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12761                                   NULL);
12762
12763   return offset;
12764 }
12765
12766
12767
12768 int
12769 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_) {
12770   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12771                                        NULL);
12772
12773   return offset;
12774 }
12775
12776
12777 static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Res_sequence[] = {
12778   { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
12779   { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
12780   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12781   { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
12782   { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12783   { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation },
12784   { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo },
12785   { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
12786   { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12787   { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator },
12788   { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
12789   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12790   { NULL, 0, 0, 0, NULL }
12791 };
12792
12793 static int
12794 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_) {
12795   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12796                                    gsm_map_lcs_ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Res);
12797
12798   return offset;
12799 }
12800
12801
12802 static const value_string gsm_map_lcs_LCS_Event_vals[] = {
12803   {   0, "emergencyCallOrigination" },
12804   {   1, "emergencyCallRelease" },
12805   {   2, "mo-lr" },
12806   {   3, "deferredmt-lrResponse" },
12807   {   4, "deferredmo-lrTTTPInitiation" },
12808   { 0, NULL }
12809 };
12810
12811
12812 static int
12813 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_) {
12814   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12815                                   NULL);
12816
12817   return offset;
12818 }
12819
12820
12821 static const value_string gsm_map_lcs_TerminationCause_vals[] = {
12822   {   0, "normal" },
12823   {   1, "errorundefined" },
12824   {   2, "internalTimeout" },
12825   {   3, "congestion" },
12826   {   4, "mt-lrRestart" },
12827   {   5, "privacyViolation" },
12828   {   6, "shapeOfLocationEstimateNotSupported" },
12829   {   7, "subscriberTermination" },
12830   {   8, "uETermination" },
12831   {   9, "networkTermination" },
12832   { 0, NULL }
12833 };
12834
12835
12836 static int
12837 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_) {
12838   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12839                                   NULL);
12840
12841   return offset;
12842 }
12843
12844
12845 static const ber_sequence_t gsm_map_lcs_Deferredmt_lrData_sequence[] = {
12846   { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
12847   { &hf_gsm_map_lcs_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_TerminationCause },
12848   { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo },
12849   { NULL, 0, 0, 0, NULL }
12850 };
12851
12852 static int
12853 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_) {
12854   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12855                                    gsm_map_lcs_Deferredmt_lrData_sequence, hf_index, ett_gsm_map_lcs_Deferredmt_lrData);
12856
12857   return offset;
12858 }
12859
12860
12861
12862 static int
12863 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_) {
12864   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12865                                                 NULL);
12866
12867   return offset;
12868 }
12869
12870
12871 static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Arg_sequence[] = {
12872   { &hf_gsm_map_lcs_lcs_Event, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_Event },
12873   { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_ClientID },
12874   { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCSLocationInfo },
12875   { &hf_gsm_map_lcs_msisdn  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12876   { &hf_gsm_map_lcs_imsi    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12877   { &hf_gsm_map_lcs_imei    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
12878   { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12879   { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12880   { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
12881   { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
12882   { &hf_gsm_map_lcs_slr_ArgExtensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_ArgExtensionContainer },
12883   { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
12884   { &hf_gsm_map_lcs_deferredmt_lrData, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Deferredmt_lrData },
12885   { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
12886   { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation },
12887   { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo },
12888   { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
12889   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12890   { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
12891   { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12892   { &hf_gsm_map_lcs_pseudonymIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12893   { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator },
12894   { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
12895   { &hf_gsm_map_lcs_sequenceNumber, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
12896   { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
12897   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12898   { NULL, 0, 0, 0, NULL }
12899 };
12900
12901 static int
12902 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_) {
12903   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12904                                    gsm_map_lcs_SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Arg);
12905
12906   return offset;
12907 }
12908
12909
12910 static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Res_sequence[] = {
12911   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12912   { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12913   { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12914   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
12915   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
12916   { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
12917   { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
12918   { NULL, 0, 0, 0, NULL }
12919 };
12920
12921 static int
12922 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_) {
12923   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12924                                    gsm_map_lcs_SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Res);
12925
12926   return offset;
12927 }
12928
12929
12930 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
12931
12932
12933
12934 static int
12935 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_) {
12936   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12937                                        NULL);
12938
12939   return offset;
12940 }
12941
12942
12943
12944 static int
12945 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_) {
12946   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12947                                        NULL);
12948
12949   return offset;
12950 }
12951
12952
12953
12954 static int
12955 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_) {
12956   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12957                                                 NULL);
12958
12959   return offset;
12960 }
12961
12962
12963
12964 static int
12965 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_) {
12966   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
12967
12968   return offset;
12969 }
12970
12971
12972
12973 static int
12974 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_) {
12975   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12976                                        NULL);
12977
12978   return offset;
12979 }
12980
12981
12982
12983 static int
12984 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_) {
12985   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12986                                        NULL);
12987
12988   return offset;
12989 }
12990
12991
12992 static const ber_sequence_t gsm_map_gr_PrepareGroupCallArg_sequence[] = {
12993   { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
12994   { &hf_gsm_map_gr_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference },
12995   { &hf_gsm_map_gr_codec_Info, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CODEC_Info },
12996   { &hf_gsm_map_gr_cipheringAlgorithm, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CipheringAlgorithm },
12997   { &hf_gsm_map_gr_groupKeyNumber_Vk_Id, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_GroupKeyNumber },
12998   { &hf_gsm_map_gr_groupKey , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc },
12999   { &hf_gsm_map_gr_priority , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
13000   { &hf_gsm_map_gr_uplinkFree, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13001   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13002   { &hf_gsm_map_gr_vstk     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK },
13003   { &hf_gsm_map_gr_vstk_rand, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK_RAND },
13004   { &hf_gsm_map_gr_talkerChannelParameter, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13005   { NULL, 0, 0, 0, NULL }
13006 };
13007
13008 static int
13009 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_) {
13010   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13011                                    gsm_map_gr_PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallArg);
13012
13013   return offset;
13014 }
13015
13016
13017 static const ber_sequence_t gsm_map_gr_PrepareGroupCallRes_sequence[] = {
13018   { &hf_gsm_map_gr_groupCallNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
13019   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13020   { NULL, 0, 0, 0, NULL }
13021 };
13022
13023 static int
13024 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_) {
13025   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13026                                    gsm_map_gr_PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallRes);
13027
13028   return offset;
13029 }
13030
13031
13032 static const value_string gsm_map_gr_TalkerPriority_vals[] = {
13033   {   0, "normal" },
13034   {   1, "privileged" },
13035   {   2, "emergency" },
13036   { 0, NULL }
13037 };
13038
13039
13040 static int
13041 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_) {
13042   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13043                                   NULL);
13044
13045   return offset;
13046 }
13047
13048
13049 static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalArg_sequence[] = {
13050   { &hf_gsm_map_gr_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
13051   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13052   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
13053   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
13054   { NULL, 0, 0, 0, NULL }
13055 };
13056
13057 static int
13058 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_) {
13059   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13060                                    gsm_map_gr_SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalArg);
13061
13062   return offset;
13063 }
13064
13065
13066 static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalRes_sequence[] = {
13067   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13068   { NULL, 0, 0, 0, NULL }
13069 };
13070
13071 static int
13072 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_) {
13073   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13074                                    gsm_map_gr_SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalRes);
13075
13076   return offset;
13077 }
13078
13079
13080 static const ber_sequence_t gsm_map_gr_StateAttributes_sequence[] = {
13081   { &hf_gsm_map_gr_downlinkAttached, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13082   { &hf_gsm_map_gr_uplinkAttached, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13083   { &hf_gsm_map_gr_dualCommunication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13084   { &hf_gsm_map_gr_callOriginator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13085   { NULL, 0, 0, 0, NULL }
13086 };
13087
13088 static int
13089 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_) {
13090   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13091                                    gsm_map_gr_StateAttributes_sequence, hf_index, ett_gsm_map_gr_StateAttributes);
13092
13093   return offset;
13094 }
13095
13096
13097 static const ber_sequence_t gsm_map_gr_ForwardGroupCallSignallingArg_sequence[] = {
13098   { &hf_gsm_map_gr_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
13099   { &hf_gsm_map_gr_uplinkRequestAck, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13100   { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13101   { &hf_gsm_map_gr_uplinkRejectCommand, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13102   { &hf_gsm_map_gr_uplinkSeizedCommand, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13103   { &hf_gsm_map_gr_uplinkReleaseCommand, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13104   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13105   { &hf_gsm_map_gr_stateAttributes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_StateAttributes },
13106   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
13107   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
13108   { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13109   { &hf_gsm_map_gr_sm_RP_UI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
13110   { &hf_gsm_map_gr_an_APDU  , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
13111   { NULL, 0, 0, 0, NULL }
13112 };
13113
13114 static int
13115 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_) {
13116   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13117                                    gsm_map_gr_ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ForwardGroupCallSignallingArg);
13118
13119   return offset;
13120 }
13121
13122
13123 static const ber_sequence_t gsm_map_gr_ProcessGroupCallSignallingArg_sequence[] = {
13124   { &hf_gsm_map_gr_uplinkRequest, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13125   { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13126   { &hf_gsm_map_gr_releaseGroupCall, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13127   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13128   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
13129   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
13130   { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
13131   { &hf_gsm_map_gr_an_APDU  , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
13132   { NULL, 0, 0, 0, NULL }
13133 };
13134
13135 static int
13136 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_) {
13137   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13138                                    gsm_map_gr_ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ProcessGroupCallSignallingArg);
13139
13140   return offset;
13141 }
13142
13143
13144 static const value_string gsm_map_gr_RequestedInfo_vals[] = {
13145   {   0, "anchorMSC-AddressAndASCI-CallReference" },
13146   {   1, "imsiAndAdditionalInfoAndAdditionalSubscription" },
13147   { 0, NULL }
13148 };
13149
13150
13151 static int
13152 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_) {
13153   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13154                                   NULL);
13155
13156   return offset;
13157 }
13158
13159
13160 static const ber_sequence_t gsm_map_gr_SendGroupCallInfoArg_sequence[] = {
13161   { &hf_gsm_map_gr_requestedInfo, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_RequestedInfo },
13162   { &hf_gsm_map_gr_groupId  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Long_GroupId },
13163   { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
13164   { &hf_gsm_map_gr_cellId   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
13165   { &hf_gsm_map_gr_imsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13166   { &hf_gsm_map_gr_tmsi     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TMSI },
13167   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
13168   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
13169   { &hf_gsm_map_gr_cksn     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Cksn },
13170   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13171   { NULL, 0, 0, 0, NULL }
13172 };
13173
13174 static int
13175 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_) {
13176   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13177                                    gsm_map_gr_SendGroupCallInfoArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoArg);
13178
13179   return offset;
13180 }
13181
13182
13183 static const ber_sequence_t gsm_map_gr_SendGroupCallInfoRes_sequence[] = {
13184   { &hf_gsm_map_gr_anchorMSC_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13185   { &hf_gsm_map_gr_asciCallReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference },
13186   { &hf_gsm_map_gr_imsi     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13187   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
13188   { &hf_gsm_map_gr_additionalSubscriptions, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalSubscriptions },
13189   { &hf_gsm_map_gr_kc       , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc },
13190   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13191   { NULL, 0, 0, 0, NULL }
13192 };
13193
13194 static int
13195 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_) {
13196   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13197                                    gsm_map_gr_SendGroupCallInfoRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoRes);
13198
13199   return offset;
13200 }
13201
13202
13203 /* --- Module MAP-DialogueInformation --- --- ---                             */
13204
13205
13206 static const ber_sequence_t gsm_map_dialogue_MAP_OpenInfo_sequence[] = {
13207   { &hf_gsm_map_dialogue_destinationReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
13208   { &hf_gsm_map_dialogue_originationReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
13209   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13210   { NULL, 0, 0, 0, NULL }
13211 };
13212
13213 static int
13214 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_) {
13215   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13216                                    gsm_map_dialogue_MAP_OpenInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_OpenInfo);
13217
13218   return offset;
13219 }
13220
13221
13222 static const ber_sequence_t gsm_map_dialogue_MAP_AcceptInfo_sequence[] = {
13223   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13224   { NULL, 0, 0, 0, NULL }
13225 };
13226
13227 static int
13228 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_) {
13229   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13230                                    gsm_map_dialogue_MAP_AcceptInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_AcceptInfo);
13231
13232   return offset;
13233 }
13234
13235
13236 static const ber_sequence_t gsm_map_dialogue_MAP_CloseInfo_sequence[] = {
13237   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13238   { NULL, 0, 0, 0, NULL }
13239 };
13240
13241 static int
13242 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_) {
13243   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13244                                    gsm_map_dialogue_MAP_CloseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_CloseInfo);
13245
13246   return offset;
13247 }
13248
13249
13250 static const value_string gsm_map_dialogue_Reason_vals[] = {
13251   {   0, "noReasonGiven" },
13252   {   1, "invalidDestinationReference" },
13253   {   2, "invalidOriginatingReference" },
13254   { 0, NULL }
13255 };
13256
13257
13258 static int
13259 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_) {
13260   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13261                                   NULL);
13262
13263   return offset;
13264 }
13265
13266
13267
13268 static int
13269 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_) {
13270   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
13271
13272   return offset;
13273 }
13274
13275
13276 static const ber_sequence_t gsm_map_dialogue_MAP_RefuseInfo_sequence[] = {
13277   { &hf_gsm_map_dialogue_reason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_Reason },
13278   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13279   { &hf_gsm_map_dialogue_alternativeApplicationContext, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_OBJECT_IDENTIFIER },
13280   { NULL, 0, 0, 0, NULL }
13281 };
13282
13283 static int
13284 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_) {
13285   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13286                                    gsm_map_dialogue_MAP_RefuseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_RefuseInfo);
13287
13288   return offset;
13289 }
13290
13291
13292
13293 static int
13294 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_) {
13295   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
13296
13297   return offset;
13298 }
13299
13300
13301 static const value_string gsm_map_dialogue_ResourceUnavailableReason_vals[] = {
13302   {   0, "shortTermResourceLimitation" },
13303   {   1, "longTermResourceLimitation" },
13304   { 0, NULL }
13305 };
13306
13307
13308 static int
13309 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_) {
13310   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13311                                   NULL);
13312
13313   return offset;
13314 }
13315
13316
13317 static const value_string gsm_map_dialogue_ProcedureCancellationReason_vals[] = {
13318   {   0, "handoverCancellation" },
13319   {   1, "radioChannelRelease" },
13320   {   2, "networkPathRelease" },
13321   {   3, "callRelease" },
13322   {   4, "associatedProcedureFailure" },
13323   {   5, "tandemDialogueRelease" },
13324   {   6, "remoteOperationsFailure" },
13325   { 0, NULL }
13326 };
13327
13328
13329 static int
13330 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_) {
13331   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13332                                   NULL);
13333
13334   return offset;
13335 }
13336
13337
13338 static const value_string gsm_map_dialogue_MAP_UserAbortChoice_vals[] = {
13339   {   0, "userSpecificReason" },
13340   {   1, "userResourceLimitation" },
13341   {   2, "resourceUnavailable" },
13342   {   3, "applicationProcedureCancellation" },
13343   { 0, NULL }
13344 };
13345
13346 static const ber_choice_t gsm_map_dialogue_MAP_UserAbortChoice_choice[] = {
13347   {   0, &hf_gsm_map_dialogue_userSpecificReason, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL },
13348   {   1, &hf_gsm_map_dialogue_userResourceLimitation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL },
13349   {   2, &hf_gsm_map_dialogue_resourceUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ResourceUnavailableReason },
13350   {   3, &hf_gsm_map_dialogue_applicationProcedureCancellation, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ProcedureCancellationReason },
13351   { 0, NULL, 0, 0, 0, NULL }
13352 };
13353
13354 static int
13355 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_) {
13356   offset = dissect_ber_choice(actx, tree, tvb, offset,
13357                                  gsm_map_dialogue_MAP_UserAbortChoice_choice, hf_index, ett_gsm_map_dialogue_MAP_UserAbortChoice,
13358                                  NULL);
13359
13360   return offset;
13361 }
13362
13363
13364 static const ber_sequence_t gsm_map_dialogue_MAP_UserAbortInfo_sequence[] = {
13365   { &hf_gsm_map_dialogue_map_UserAbortChoice, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_dialogue_MAP_UserAbortChoice },
13366   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13367   { NULL, 0, 0, 0, NULL }
13368 };
13369
13370 static int
13371 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_) {
13372   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13373                                    gsm_map_dialogue_MAP_UserAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_UserAbortInfo);
13374
13375   return offset;
13376 }
13377
13378
13379 static const value_string gsm_map_dialogue_MAP_ProviderAbortReason_vals[] = {
13380   {   0, "abnormalDialogue" },
13381   {   1, "invalidPDU" },
13382   { 0, NULL }
13383 };
13384
13385
13386 static int
13387 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_) {
13388   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13389                                   NULL);
13390
13391   return offset;
13392 }
13393
13394
13395 static const ber_sequence_t gsm_map_dialogue_MAP_ProviderAbortInfo_sequence[] = {
13396   { &hf_gsm_map_dialogue_map_ProviderAbortReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortReason },
13397   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13398   { NULL, 0, 0, 0, NULL }
13399 };
13400
13401 static int
13402 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_) {
13403   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13404                                    gsm_map_dialogue_MAP_ProviderAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_ProviderAbortInfo);
13405
13406   return offset;
13407 }
13408
13409
13410 static const value_string gsm_map_dialogue_MAP_DialoguePDU_vals[] = {
13411   {   0, "map-open" },
13412   {   1, "map-accept" },
13413   {   2, "map-close" },
13414   {   3, "map-refuse" },
13415   {   4, "map-userAbort" },
13416   {   5, "map-providerAbort" },
13417   { 0, NULL }
13418 };
13419
13420 static const ber_choice_t gsm_map_dialogue_MAP_DialoguePDU_choice[] = {
13421   {   0, &hf_gsm_map_dialogue_map_open, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_OpenInfo },
13422   {   1, &hf_gsm_map_dialogue_map_accept, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_AcceptInfo },
13423   {   2, &hf_gsm_map_dialogue_map_close, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_CloseInfo },
13424   {   3, &hf_gsm_map_dialogue_map_refuse, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_RefuseInfo },
13425   {   4, &hf_gsm_map_dialogue_map_userAbort, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_UserAbortInfo },
13426   {   5, &hf_gsm_map_dialogue_map_providerAbort, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortInfo },
13427   { 0, NULL, 0, 0, 0, NULL }
13428 };
13429
13430 static int
13431 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_) {
13432   offset = dissect_ber_choice(actx, tree, tvb, offset,
13433                                  gsm_map_dialogue_MAP_DialoguePDU_choice, hf_index, ett_gsm_map_dialogue_MAP_DialoguePDU,
13434                                  NULL);
13435
13436   return offset;
13437 }
13438
13439 /*--- PDUs ---*/
13440
13441 static void dissect_gsm_map_dialogue_MAP_DialoguePDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
13442   asn1_ctx_t asn1_ctx;
13443   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
13444   dissect_gsm_map_dialogue_MAP_DialoguePDU(FALSE, tvb, 0, &asn1_ctx, tree, hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU);
13445 }
13446
13447
13448 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
13449
13450
13451 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
13452
13453
13454 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
13455
13456
13457 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
13458
13459
13460 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
13461
13462
13463 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
13464
13465
13466 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
13467
13468
13469 /* --- Module MAP-Errors --- --- ---                                          */
13470
13471
13472 /* --- Module MAP-Protocol --- --- ---                                        */
13473
13474
13475 /* --- Module DummyMAP --- --- ---                                            */
13476
13477
13478
13479 static int
13480 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_) {
13481   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13482                                                 NULL);
13483
13484   return offset;
13485 }
13486
13487
13488 static const value_string gsm_old_GSMMAPOperationLocalvalue_vals[] = {
13489   {   2, "updateLocation" },
13490   {   3, "cancelLocation" },
13491   {   4, "provideRoamingNumber" },
13492   {   5, "noteSubscriberDataModified" },
13493   {   6, "resumeCallHandling" },
13494   {   7, "insertSubscriberData" },
13495   {   8, "deleteSubscriberData" },
13496   {   9, "sendParameters" },
13497   {  10, "registerSS" },
13498   {  11, "eraseSS" },
13499   {  12, "activateSS" },
13500   {  13, "deactivateSS" },
13501   {  14, "interrogateSS" },
13502   {  15, "authenticationFailureReport" },
13503   {  16, "notifySS" },
13504   {  17, "registerPassword" },
13505   {  18, "getPassword" },
13506   {  19, "processUnstructuredSS-Data" },
13507   {  20, "releaseResources" },
13508   {  21, "mt-ForwardSM-VGCS" },
13509   {  22, "sendRoutingInfo" },
13510   {  23, "updateGprsLocation" },
13511   {  24, "sendRoutingInfoForGprs" },
13512   {  25, "failureReport" },
13513   {  26, "noteMsPresentForGprs" },
13514   {  28, "performHandover" },
13515   {  29, "sendEndSignal" },
13516   {  30, "performSubsequentHandover" },
13517   {  31, "provideSIWFSNumber" },
13518   {  32, "sIWFSSignallingModify" },
13519   {  33, "processAccessSignalling" },
13520   {  34, "forwardAccessSignalling" },
13521   {  35, "noteInternalHandover" },
13522   {  37, "reset" },
13523   {  38, "forwardCheckSS" },
13524   {  39, "prepareGroupCall" },
13525   {  40, "sendGroupCallEndSignal" },
13526   {  41, "processGroupCallSignalling" },
13527   {  42, "forwardGroupCallSignalling" },
13528   {  43, "checkIMEI" },
13529   {  44, "mt-forwardSM" },
13530   {  45, "sendRoutingInfoForSM" },
13531   {  46, "mo-forwardSM" },
13532   {  47, "reportSM-DeliveryStatus" },
13533   {  48, "noteSubscriberPresent" },
13534   {  49, "alertServiceCentreWithoutResult" },
13535   {  50, "activateTraceMode" },
13536   {  51, "deactivateTraceMode" },
13537   {  52, "traceSubscriberActivity" },
13538   {  54, "beginSubscriberActivity" },
13539   {  55, "sendIdentification" },
13540   {  56, "sendAuthenticationInfo" },
13541   {  57, "restoreData" },
13542   {  58, "sendIMSI" },
13543   {  59, "processUnstructuredSS-Request" },
13544   {  60, "unstructuredSS-Request" },
13545   {  61, "unstructuredSS-Notify" },
13546   {  62, "anyTimeSubscriptionInterrogation" },
13547   {  63, "informServiceCentre" },
13548   {  64, "alertServiceCentre" },
13549   {  65, "anyTimeModification" },
13550   {  66, "readyForSM" },
13551   {  67, "purgeMS" },
13552   {  68, "prepareHandover" },
13553   {  69, "prepareSubsequentHandover" },
13554   {  70, "provideSubscriberInfo" },
13555   {  71, "anyTimeInterrogation" },
13556   {  72, "ss-InvocationNotification" },
13557   {  73, "setReportingState" },
13558   {  74, "statusReport" },
13559   {  75, "remoteUserFree" },
13560   {  76, "registerCC-Entry" },
13561   {  77, "eraseCC-Entry" },
13562   {  78, "secureTransportClass1" },
13563   {  79, "secureTransportClass2" },
13564   {  80, "secureTransportClass3" },
13565   {  81, "secureTransportClass4" },
13566   {  83, "provideSubscriberLocation" },
13567   {  84, "sendGroupCallInfo" },
13568   {  85, "sendRoutingInfoForLCS" },
13569   {  86, "subscriberLocationReport" },
13570   {  87, "ist-Alert" },
13571   {  88, "ist-Command" },
13572   {  89, "noteMM-Event" },
13573   { 109, "lcs-PeriodicLocationCancellation" },
13574   { 110, "lcs-LocationUpdate" },
13575   { 111, "lcs-PeriodicLocationRequest" },
13576   { 112, "lcs-AreaEventCancellation" },
13577   { 113, "lcs-AreaEventReport" },
13578   { 114, "lcs-AreaEventRequest" },
13579   { 115, "lcs-MOLR" },
13580   { 116, "lcs-LocationNotification" },
13581   { 117, "callDeflection" },
13582   { 118, "userUserService" },
13583   { 119, "accessRegisterCCEntry" },
13584   { 120, "forwardCUG-Info" },
13585   { 121, "splitMPTY" },
13586   { 122, "retrieveMPTY" },
13587   { 123, "holdMPTY" },
13588   { 124, "buildMPTY" },
13589   { 125, "forwardChargeAdvice" },
13590   { 126, "explicitCT" },
13591   { 0, NULL }
13592 };
13593
13594
13595 static int
13596 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_) {
13597 #line 151 "gsmmap.cnf"
13598
13599   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13600                                                 &opcode);
13601  
13602   if (check_col(actx->pinfo->cinfo, COL_INFO)){
13603     col_append_str(actx->pinfo->cinfo, COL_INFO, gsm_map_opr_code(opcode));
13604     col_append_fstr(actx->pinfo->cinfo, COL_INFO, " ");
13605   }
13606
13607
13608
13609   return offset;
13610 }
13611
13612
13613
13614 static int
13615 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_) {
13616   offset = dissect_gsm_old_GSMMAPOperationLocalvalue(implicit_tag, tvb, offset, actx, tree, hf_index);
13617
13618   return offset;
13619 }
13620
13621
13622
13623 static int
13624 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_) {
13625   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
13626
13627   return offset;
13628 }
13629
13630
13631 static const value_string gsm_old_MAP_OPERATION_vals[] = {
13632   {   0, "localValue" },
13633   {   1, "globalValue" },
13634   { 0, NULL }
13635 };
13636
13637 static const ber_choice_t gsm_old_MAP_OPERATION_choice[] = {
13638   {   0, &hf_gsm_old_localValue  , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OperationLocalvalue },
13639   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
13640   { 0, NULL, 0, 0, 0, NULL }
13641 };
13642
13643 static int
13644 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_) {
13645   offset = dissect_ber_choice(actx, tree, tvb, offset,
13646                                  gsm_old_MAP_OPERATION_choice, hf_index, ett_gsm_old_MAP_OPERATION,
13647                                  NULL);
13648
13649   return offset;
13650 }
13651
13652
13653
13654 static int
13655 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_) {
13656 #line 138 "gsmmap.cnf"
13657         offset = dissect_invokeData(tree, tvb, offset, actx);
13658
13659
13660
13661   return offset;
13662 }
13663
13664
13665 static const ber_sequence_t gsm_old_Invoke_sequence[] = {
13666   { &hf_gsm_old_invokeID    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
13667   { &hf_gsm_old_linkedID    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeIdType },
13668   { &hf_gsm_old_opCode      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION },
13669   { &hf_gsm_old_invokeparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeParameter },
13670   { NULL, 0, 0, 0, NULL }
13671 };
13672
13673 static int
13674 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_) {
13675   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13676                                    gsm_old_Invoke_sequence, hf_index, ett_gsm_old_Invoke);
13677
13678   return offset;
13679 }
13680
13681
13682
13683 static int
13684 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_) {
13685 #line 141 "gsmmap.cnf"
13686         offset = dissect_returnResultData(tree, tvb, offset, actx);
13687
13688
13689
13690   return offset;
13691 }
13692
13693
13694 static const ber_sequence_t gsm_old_T_resultretres_sequence[] = {
13695   { &hf_gsm_old_opCode      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION },
13696   { &hf_gsm_old_returnparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnResultParameter },
13697   { NULL, 0, 0, 0, NULL }
13698 };
13699
13700 static int
13701 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_) {
13702   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13703                                    gsm_old_T_resultretres_sequence, hf_index, ett_gsm_old_T_resultretres);
13704
13705   return offset;
13706 }
13707
13708
13709 static const ber_sequence_t gsm_old_ReturnResult_sequence[] = {
13710   { &hf_gsm_old_invokeID    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
13711   { &hf_gsm_old_resultretres, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_T_resultretres },
13712   { NULL, 0, 0, 0, NULL }
13713 };
13714
13715 static int
13716 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_) {
13717   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13718                                    gsm_old_ReturnResult_sequence, hf_index, ett_gsm_old_ReturnResult);
13719
13720   return offset;
13721 }
13722
13723
13724 const value_string gsm_old_GSMMAPLocalErrorcode_vals[] = {
13725   {  34, "systemFailure" },
13726   {  35, "dataMissing" },
13727   {  36, "unexpectedDataValue" },
13728   {  21, "facilityNotSupported" },
13729   {  28, "incompatibleTerminal" },
13730   {  51, "resourceLimitation" },
13731   {   1, "unknownSubscriber" },
13732   {  44, "numberChanged" },
13733   {   3, "unknownMSC" },
13734   {   5, "unidentifiedSubscriber" },
13735   {   7, "unknownEquipment" },
13736   {   8, "roamingNotAllowed" },
13737   {   9, "illegalSubscriber" },
13738   {  12, "illegalEquipment" },
13739   {  10, "bearerServiceNotProvisioned" },
13740   {  11, "teleserviceNotProvisioned" },
13741   {  25, "noHandoverNumberAvailable" },
13742   {  26, "subsequentHandoverFailure" },
13743   {  42, "targetCellOutsideGroupCallArea" },
13744   {  40, "tracingBufferFull" },
13745   {  39, "noRoamingNumberAvailable" },
13746   {  27, "absentSubscriber" },
13747   {  45, "busySubscriber" },
13748   {  46, "noSubscriberReply" },
13749   {  13, "callBarred" },
13750   {  14, "forwardingViolation" },
13751   {  47, "forwardingFailed" },
13752   {  15, "cug-Reject" },
13753   {  48, "or-NotAllowed" },
13754   {  49, "ati-NotAllowed" },
13755   {  60, "atsi-NotAllowed" },
13756   {  61, "atm-NotAllowed" },
13757   {  62, "informationNotAvailabl" },
13758   {  16, "illegalSS-Operation" },
13759   {  17, "ss-ErrorStatus" },
13760   {  18, "ss-NotAvailable" },
13761   {  19, "ss-SubscriptionViolatio" },
13762   {  20, "ss-Incompatibility" },
13763   {  71, "unknownAlphabe" },
13764   {  72, "ussd-Busy" },
13765   {  37, "pw-RegistrationFailur" },
13766   {  38, "negativePW-Check" },
13767   {  43, "numberOfPW-AttemptsViolation" },
13768   {  29, "shortTermDenial" },
13769   {  30, "longTermDenial" },
13770   {  31, "subscriberBusyForMT-SMS" },
13771   {  32, "sm-DeliveryFailure" },
13772   {  33, "messageWaitingListFull" },
13773   {   6, "absentSubscriberSM" },
13774   {  50, "noGroupCallNumberAvailable" },
13775   {  52, "unauthorizedRequestingNetwork" },
13776   {  53, "unauthorizedLCSClient" },
13777   {  54, "positionMethodFailure" },
13778   {  58, "unknownOrUnreachableLCSClient" },
13779   {  59, "mm-EventNotSupported" },
13780   {   4, "secureTransportError" },
13781   { 0, NULL }
13782 };
13783
13784
13785 int
13786 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_) {
13787   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13788                                                 &errorCode);
13789
13790   return offset;
13791 }
13792
13793
13794
13795 static int
13796 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_) {
13797   offset = dissect_gsm_old_GSMMAPLocalErrorcode(implicit_tag, tvb, offset, actx, tree, hf_index);
13798
13799   return offset;
13800 }
13801
13802
13803 static const value_string gsm_old_MAP_ERROR_vals[] = {
13804   {   0, "localValue" },
13805   {   1, "globalValue" },
13806   { 0, NULL }
13807 };
13808
13809 static const ber_choice_t gsm_old_MAP_ERROR_choice[] = {
13810   {   0, &hf_gsm_old_localValue_01, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_LocalErrorcode },
13811   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
13812   { 0, NULL, 0, 0, 0, NULL }
13813 };
13814
13815 static int
13816 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_) {
13817   offset = dissect_ber_choice(actx, tree, tvb, offset,
13818                                  gsm_old_MAP_ERROR_choice, hf_index, ett_gsm_old_MAP_ERROR,
13819                                  NULL);
13820
13821   return offset;
13822 }
13823
13824
13825
13826 static int
13827 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_) {
13828 #line 144 "gsmmap.cnf"
13829         offset = dissect_returnErrorData(tree, tvb, offset, actx);
13830
13831
13832
13833   return offset;
13834 }
13835
13836
13837 static const ber_sequence_t gsm_old_ReturnError_sequence[] = {
13838   { &hf_gsm_old_invokeID    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
13839   { &hf_gsm_old_errorCode   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_ERROR },
13840   { &hf_gsm_old_parameter   , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnErrorParameter },
13841   { NULL, 0, 0, 0, NULL }
13842 };
13843
13844 static int
13845 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_) {
13846   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13847                                    gsm_old_ReturnError_sequence, hf_index, ett_gsm_old_ReturnError);
13848
13849   return offset;
13850 }
13851
13852
13853
13854 static int
13855 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_) {
13856   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
13857
13858   return offset;
13859 }
13860
13861
13862 static const value_string gsm_old_T_invokeIDRej_vals[] = {
13863   {   0, "derivable" },
13864   {   1, "not-derivable" },
13865   { 0, NULL }
13866 };
13867
13868 static const ber_choice_t gsm_old_T_invokeIDRej_choice[] = {
13869   {   0, &hf_gsm_old_derivable   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
13870   {   1, &hf_gsm_old_not_derivable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
13871   { 0, NULL, 0, 0, 0, NULL }
13872 };
13873
13874 static int
13875 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_) {
13876   offset = dissect_ber_choice(actx, tree, tvb, offset,
13877                                  gsm_old_T_invokeIDRej_choice, hf_index, ett_gsm_old_T_invokeIDRej,
13878                                  NULL);
13879
13880   return offset;
13881 }
13882
13883
13884 static const value_string gsm_old_GeneralProblem_vals[] = {
13885   {   0, "unrecognizedComponent" },
13886   {   1, "mistypedComponent" },
13887   {   2, "badlyStructuredComponent" },
13888   { 0, NULL }
13889 };
13890
13891
13892 static int
13893 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_) {
13894   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13895                                                 NULL);
13896
13897   return offset;
13898 }
13899
13900
13901 static const value_string gsm_old_InvokeProblem_vals[] = {
13902   {   0, "duplicateInvokeID" },
13903   {   1, "unrecognizedOperation" },
13904   {   2, "mistypedParameter" },
13905   {   3, "resourceLimitation" },
13906   {   4, "initiatingRelease" },
13907   {   5, "unrecognizedLinkedID" },
13908   {   6, "linkedResponseUnexpected" },
13909   {   7, "unexpectedLinkedOperation" },
13910   { 0, NULL }
13911 };
13912
13913
13914 static int
13915 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_) {
13916   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13917                                                 NULL);
13918
13919   return offset;
13920 }
13921
13922
13923 static const value_string gsm_old_ReturnResultProblem_vals[] = {
13924   {   0, "unrecognizedInvokeID" },
13925   {   1, "returnResultUnexpected" },
13926   {   2, "mistypedParameter" },
13927   { 0, NULL }
13928 };
13929
13930
13931 static int
13932 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_) {
13933   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13934                                                 NULL);
13935
13936   return offset;
13937 }
13938
13939
13940 static const value_string gsm_old_ReturnErrorProblem_vals[] = {
13941   {   0, "unrecognizedInvokeID" },
13942   {   1, "returnErrorUnexpected" },
13943   {   2, "unrecognizedError" },
13944   {   3, "unexpectedError" },
13945   {   4, "mistypedParameter" },
13946   { 0, NULL }
13947 };
13948
13949
13950 static int
13951 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_) {
13952   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13953                                                 NULL);
13954
13955   return offset;
13956 }
13957
13958
13959 static const value_string gsm_old_T_problem_vals[] = {
13960   {   0, "generalProblem" },
13961   {   1, "invokeProblem" },
13962   {   2, "returnResultProblem" },
13963   {   3, "returnErrorProblem" },
13964   { 0, NULL }
13965 };
13966
13967 static const ber_choice_t gsm_old_T_problem_choice[] = {
13968   {   0, &hf_gsm_old_generalProblem, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_GeneralProblem },
13969   {   1, &hf_gsm_old_invokeProblem, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeProblem },
13970   {   2, &hf_gsm_old_returnResultProblem, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResultProblem },
13971   {   3, &hf_gsm_old_returnErrorProblem, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnErrorProblem },
13972   { 0, NULL, 0, 0, 0, NULL }
13973 };
13974
13975 static int
13976 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_) {
13977   offset = dissect_ber_choice(actx, tree, tvb, offset,
13978                                  gsm_old_T_problem_choice, hf_index, ett_gsm_old_T_problem,
13979                                  NULL);
13980
13981   return offset;
13982 }
13983
13984
13985 static const ber_sequence_t gsm_old_Reject_sequence[] = {
13986   { &hf_gsm_old_invokeIDRej , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_invokeIDRej },
13987   { &hf_gsm_old_problem     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_problem },
13988   { NULL, 0, 0, 0, NULL }
13989 };
13990
13991 static int
13992 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_) {
13993   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13994                                    gsm_old_Reject_sequence, hf_index, ett_gsm_old_Reject);
13995
13996   return offset;
13997 }
13998
13999
14000 static const value_string gsm_old_Component_vals[] = {
14001   {   1, "invoke" },
14002   {   2, "returnResultLast" },
14003   {   3, "returnError" },
14004   {   4, "reject" },
14005   {   7, "returnResultNotLast" },
14006   { 0, NULL }
14007 };
14008
14009 static const ber_choice_t gsm_old_Component_choice[] = {
14010   {   1, &hf_gsm_old_invoke      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_Invoke },
14011   {   2, &hf_gsm_old_returnResultLast, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult },
14012   {   3, &hf_gsm_old_returnError , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnError },
14013   {   4, &hf_gsm_old_reject      , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_Reject },
14014   {   7, &hf_gsm_old_returnResultNotLast, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult },
14015   { 0, NULL, 0, 0, 0, NULL }
14016 };
14017
14018 static int
14019 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_) {
14020   offset = dissect_ber_choice(actx, tree, tvb, offset,
14021                                  gsm_old_Component_choice, hf_index, ett_gsm_old_Component,
14022                                  NULL);
14023
14024   return offset;
14025 }
14026
14027
14028 static const ber_sequence_t gsm_old_Bss_APDU_sequence[] = {
14029   { &hf_gsm_old_protocolId  , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId },
14030   { &hf_gsm_old_signalInfo  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
14031   { &hf_gsm_old_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14032   { NULL, 0, 0, 0, NULL }
14033 };
14034
14035 static int
14036 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_) {
14037 #line 618 "gsmmap.cnf"
14038  guint8         octet;
14039  guint8         length;
14040  tvbuff_t       *next_tvb;
14041  proto_tree *subtree;
14042 /*
14043 ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
14044 5.6.9.1 BSS-apdu
14045 This parameter includes one or two concatenated complete 08.06 messages, as described in GSM 03.09
14046 and GSM 09.10. The Protocol ID indicates that the message or messages are according to GSM 08.06.
14047 For the coding of the messages see GSM 08.06 and GSM 08.08.
14048 */
14049  ProtocolId = 0xffffffff;
14050   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14051                                    gsm_old_Bss_APDU_sequence, hf_index, ett_gsm_old_Bss_APDU);
14052  
14053 if (!actx->value_ptr)
14054         return offset;
14055  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo);
14056  switch (ProtocolId){
14057         case 1:
14058         /* gsm-0408 */
14059                 /* As per comment abowe Individual IE:(s) will be found here in TLV format
14060                  * Unfortunatly a branch for each IE must be made to call the apropriate
14061                  * function
14062                  */
14063                  /* Get tag */
14064                  octet = tvb_get_guint8(actx->value_ptr,0);
14065                  proto_tree_add_item(subtree, hf_gsm_map_ie_tag, actx->value_ptr, 0,1,FALSE);
14066                  /* get length */
14067                  length = tvb_get_guint8(actx->value_ptr,1);
14068                  proto_tree_add_item(subtree, hf_gsm_map_len, actx->value_ptr, 1,1,FALSE);
14069                  /* Branch on tag */
14070                  switch(octet){
14071                  case 4:
14072                         /* Dissect the data part */                     
14073                         de_bearer_cap(actx->value_ptr, subtree, 2, length, NULL, 0);
14074                         /* TODO: There may be more than one IE */
14075                         break;
14076                  default:
14077                         proto_tree_add_text(subtree, actx->value_ptr, 0, length, "If you want this decoded send the packet to Wireshark-dev");
14078                         break;
14079                 }/* switch(octet) */
14080                 break;
14081         case 2:
14082                 /* gsm-0806 */
14083                 octet = tvb_get_guint8(actx->value_ptr,0);
14084                 /* Discrimination parameter */
14085                 proto_tree_add_item(subtree, hf_gsm_map_disc_par, actx->value_ptr, 0,1,FALSE);
14086                 if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
14087                         /* Strip off discrimination and length */
14088                         proto_tree_add_item(subtree, hf_gsm_map_len, actx->value_ptr, 1,1,FALSE);
14089                         next_tvb = tvb_new_subset(actx->value_ptr, 2, -1, -1);
14090                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
14091                 }else if(octet==1){
14092                         proto_tree_add_item(subtree, hf_gsm_map_dlci, actx->value_ptr, 1,1,FALSE);
14093                         proto_tree_add_item(subtree, hf_gsm_map_len, actx->value_ptr, 2,1,FALSE);
14094                         next_tvb = tvb_new_subset(actx->value_ptr, 3, -1, -1);
14095                         call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree); 
14096                 }       
14097                 break;
14098         case 3:
14099         /* gsm-BSSMAP -- Value 3 is reserved and must not be used*/
14100                 octet = tvb_get_guint8(actx->value_ptr,0);
14101                 length = tvb_get_guint8(actx->value_ptr,1);
14102                 if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
14103                         next_tvb = tvb_new_subset(actx->value_ptr, 2, -1, -1);
14104                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
14105                 }
14106                 break;
14107         /* ets-300102-1 (~Q.931 ) */
14108         case 4:
14109                 octet = tvb_get_guint8(actx->value_ptr,0);
14110                 length = tvb_get_guint8(actx->value_ptr,1);
14111                 if ( octet == 4 )
14112                         dissect_q931_bearer_capability_ie(actx->value_ptr, 2, length, subtree);
14113                 break;
14114         default:
14115                 break;
14116         }/*switch (ProtocolId)*/
14117
14118
14119
14120   return offset;
14121 }
14122
14123
14124
14125 static int
14126 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_) {
14127   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14128                                        NULL);
14129
14130   return offset;
14131 }
14132
14133
14134 static const ber_sequence_t gsm_old_ProvideSIWFSNumberArg_sequence[] = {
14135   { &hf_gsm_old_gsm_BearerCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14136   { &hf_gsm_old_isdn_BearerCapability, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14137   { &hf_gsm_old_call_Direction, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_CallDirection },
14138   { &hf_gsm_old_b_Subscriber_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14139   { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14140   { &hf_gsm_old_lowerLayerCompatibility, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14141   { &hf_gsm_old_highLayerCompatibility, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14142   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14143   { NULL, 0, 0, 0, NULL }
14144 };
14145
14146 static int
14147 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_) {
14148   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14149                                    gsm_old_ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberArg);
14150
14151   return offset;
14152 }
14153
14154
14155 static const ber_sequence_t gsm_old_ProvideSIWFSNumberRes_sequence[] = {
14156   { &hf_gsm_old_sIWFSNumber , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14157   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14158   { NULL, 0, 0, 0, NULL }
14159 };
14160
14161 static int
14162 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_) {
14163   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14164                                    gsm_old_ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberRes);
14165
14166   return offset;
14167 }
14168
14169
14170 static const ber_sequence_t gsm_old_PurgeMSArgV2_sequence[] = {
14171   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
14172   { &hf_gsm_old_vlr_Number  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
14173   { NULL, 0, 0, 0, NULL }
14174 };
14175
14176 static int
14177 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_) {
14178   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14179                                    gsm_old_PurgeMSArgV2_sequence, hf_index, ett_gsm_old_PurgeMSArgV2);
14180
14181   return offset;
14182 }
14183
14184
14185 static const ber_sequence_t gsm_old_PrepareHO_ArgOld_sequence[] = {
14186   { &hf_gsm_old_targetCellId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_GlobalCellId },
14187   { &hf_gsm_old_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
14188   { &hf_gsm_old_bss_APDU    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU },
14189   { NULL, 0, 0, 0, NULL }
14190 };
14191
14192 static int
14193 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_) {
14194   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14195                                    gsm_old_PrepareHO_ArgOld_sequence, hf_index, ett_gsm_old_PrepareHO_ArgOld);
14196
14197   return offset;
14198 }
14199
14200
14201 static const ber_sequence_t gsm_old_PrepareHO_ResOld_sequence[] = {
14202   { &hf_gsm_old_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
14203   { &hf_gsm_old_bss_APDU    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU },
14204   { NULL, 0, 0, 0, NULL }
14205 };
14206
14207 static int
14208 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_) {
14209   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14210                                    gsm_old_PrepareHO_ResOld_sequence, hf_index, ett_gsm_old_PrepareHO_ResOld);
14211
14212   return offset;
14213 }
14214
14215
14216
14217 static int
14218 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_) {
14219   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14220                                        NULL);
14221
14222   return offset;
14223 }
14224
14225
14226
14227 static int
14228 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_) {
14229   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14230                                        NULL);
14231
14232   return offset;
14233 }
14234
14235
14236
14237 static int
14238 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_) {
14239   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14240                                        NULL);
14241
14242   return offset;
14243 }
14244
14245
14246 static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_item_sequence[] = {
14247   { &hf_gsm_old_rand        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND },
14248   { &hf_gsm_old_sres        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES },
14249   { &hf_gsm_old_kc          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc },
14250   { NULL, 0, 0, 0, NULL }
14251 };
14252
14253 static int
14254 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_) {
14255   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14256                                    gsm_old_SendAuthenticationInfoResOld_item_sequence, hf_index, ett_gsm_old_SendAuthenticationInfoResOld_item);
14257
14258   return offset;
14259 }
14260
14261
14262 static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_sequence_of[1] = {
14263   { &hf_gsm_old_SendAuthenticationInfoResOld_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SendAuthenticationInfoResOld_item },
14264 };
14265
14266 static int
14267 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_) {
14268   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
14269                                       gsm_old_SendAuthenticationInfoResOld_sequence_of, hf_index, ett_gsm_old_SendAuthenticationInfoResOld);
14270
14271   return offset;
14272 }
14273
14274
14275 static const ber_sequence_t gsm_old_AuthenticationTriplet_v2_sequence[] = {
14276   { &hf_gsm_old_rand        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND },
14277   { &hf_gsm_old_sres        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES },
14278   { &hf_gsm_old_kc          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc },
14279   { NULL, 0, 0, 0, NULL }
14280 };
14281
14282 static int
14283 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_) {
14284   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14285                                    gsm_old_AuthenticationTriplet_v2_sequence, hf_index, ett_gsm_old_AuthenticationTriplet_v2);
14286
14287   return offset;
14288 }
14289
14290
14291 static const ber_sequence_t gsm_old_TripletListold_sequence_of[1] = {
14292   { &hf_gsm_old_TripletListold_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_AuthenticationTriplet_v2 },
14293 };
14294
14295 static int
14296 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_) {
14297   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
14298                                       gsm_old_TripletListold_sequence_of, hf_index, ett_gsm_old_TripletListold);
14299
14300   return offset;
14301 }
14302
14303
14304 static const ber_sequence_t gsm_old_SendIdentificationResV2_sequence[] = {
14305   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
14306   { &hf_gsm_old_tripletList , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_TripletListold },
14307   { NULL, 0, 0, 0, NULL }
14308 };
14309
14310 static int
14311 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_) {
14312   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14313                                    gsm_old_SendIdentificationResV2_sequence, hf_index, ett_gsm_old_SendIdentificationResV2);
14314
14315   return offset;
14316 }
14317
14318
14319 static const ber_sequence_t gsm_old_SIWFSSignallingModifyArg_sequence[] = {
14320   { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14321   { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14322   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14323   { NULL, 0, 0, 0, NULL }
14324 };
14325
14326 static int
14327 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_) {
14328   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14329                                    gsm_old_SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyArg);
14330
14331   return offset;
14332 }
14333
14334
14335 static const ber_sequence_t gsm_old_SIWFSSignallingModifyRes_sequence[] = {
14336   { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14337   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14338   { NULL, 0, 0, 0, NULL }
14339 };
14340
14341 static int
14342 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_) {
14343   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14344                                    gsm_old_SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyRes);
14345
14346   return offset;
14347 }
14348
14349
14350
14351 int
14352 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_) {
14353   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
14354                                             actx, tree, tvb, offset, hf_index,
14355                                             NULL);
14356
14357   return offset;
14358 }
14359
14360
14361 const value_string gsm_old_GetPasswordArg_vals[] = {
14362   {   0, "enterPW" },
14363   {   1, "enterNewPW" },
14364   {   2, "enterNewPW-Again" },
14365   { 0, NULL }
14366 };
14367
14368
14369 int
14370 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_) {
14371   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14372                                   NULL);
14373
14374   return offset;
14375 }
14376
14377
14378
14379 int
14380 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_) {
14381   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
14382                                             actx, tree, tvb, offset, hf_index,
14383                                             NULL);
14384
14385   return offset;
14386 }
14387
14388
14389
14390 static int
14391 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_) {
14392   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14393                                        NULL);
14394
14395   return offset;
14396 }
14397
14398
14399
14400 static int
14401 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_) {
14402   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14403                                                 NULL);
14404
14405   return offset;
14406 }
14407
14408
14409 static const value_string gsm_old_OperationCode_vals[] = {
14410   {   0, "localValue" },
14411   {   1, "globalValue" },
14412   { 0, NULL }
14413 };
14414
14415 static const ber_choice_t gsm_old_OperationCode_choice[] = {
14416   {   0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER },
14417   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
14418   { 0, NULL, 0, 0, 0, NULL }
14419 };
14420
14421 static int
14422 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_) {
14423   offset = dissect_ber_choice(actx, tree, tvb, offset,
14424                                  gsm_old_OperationCode_choice, hf_index, ett_gsm_old_OperationCode,
14425                                  NULL);
14426
14427   return offset;
14428 }
14429
14430
14431 static const value_string gsm_old_ErrorCode_vals[] = {
14432   {   0, "localValue" },
14433   {   1, "globalValue" },
14434   { 0, NULL }
14435 };
14436
14437 static const ber_choice_t gsm_old_ErrorCode_choice[] = {
14438   {   0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER },
14439   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
14440   { 0, NULL, 0, 0, 0, NULL }
14441 };
14442
14443 static int
14444 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_) {
14445   offset = dissect_ber_choice(actx, tree, tvb, offset,
14446                                  gsm_old_ErrorCode_choice, hf_index, ett_gsm_old_ErrorCode,
14447                                  NULL);
14448
14449   return offset;
14450 }
14451
14452
14453 static const value_string gsm_old_OriginalComponentIdentifier_vals[] = {
14454   {   0, "operationCode" },
14455   {   1, "errorCode" },
14456   {   2, "userInfo" },
14457   { 0, NULL }
14458 };
14459
14460 static const ber_choice_t gsm_old_OriginalComponentIdentifier_choice[] = {
14461   {   0, &hf_gsm_old_operationCode, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_OperationCode },
14462   {   1, &hf_gsm_old_errorCode_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_ErrorCode },
14463   {   2, &hf_gsm_old_userInfo    , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
14464   { 0, NULL, 0, 0, 0, NULL }
14465 };
14466
14467 static int
14468 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_) {
14469   offset = dissect_ber_choice(actx, tree, tvb, offset,
14470                                  gsm_old_OriginalComponentIdentifier_choice, hf_index, ett_gsm_old_OriginalComponentIdentifier,
14471                                  NULL);
14472
14473   return offset;
14474 }
14475
14476
14477
14478 static int
14479 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_) {
14480   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14481                                        NULL);
14482
14483   return offset;
14484 }
14485
14486
14487 static const ber_sequence_t gsm_old_SecurityHeader_sequence[] = {
14488   { &hf_gsm_old_securityParametersIndex, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityParametersIndex },
14489   { &hf_gsm_old_originalComponentIdentifier, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_OriginalComponentIdentifier },
14490   { &hf_gsm_old_initialisationVector, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InitialisationVector },
14491   { NULL, 0, 0, 0, NULL }
14492 };
14493
14494 int
14495 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_) {
14496   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14497                                    gsm_old_SecurityHeader_sequence, hf_index, ett_gsm_old_SecurityHeader);
14498
14499   return offset;
14500 }
14501
14502
14503
14504 int
14505 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_) {
14506   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14507                                        NULL);
14508
14509   return offset;
14510 }
14511
14512
14513 static const ber_sequence_t gsm_old_SecureTransportArg_sequence[] = {
14514   { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
14515   { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
14516   { NULL, 0, 0, 0, NULL }
14517 };
14518
14519 static int
14520 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_) {
14521   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14522                                    gsm_old_SecureTransportArg_sequence, hf_index, ett_gsm_old_SecureTransportArg);
14523
14524   return offset;
14525 }
14526
14527
14528 static const ber_sequence_t gsm_old_SecureTransportErrorParam_sequence[] = {
14529   { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
14530   { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
14531   { NULL, 0, 0, 0, NULL }
14532 };
14533
14534 static int
14535 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_) {
14536   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14537                                    gsm_old_SecureTransportErrorParam_sequence, hf_index, ett_gsm_old_SecureTransportErrorParam);
14538
14539   return offset;
14540 }
14541
14542
14543 static const ber_sequence_t gsm_old_SecureTransportRes_sequence[] = {
14544   { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
14545   { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
14546   { NULL, 0, 0, 0, NULL }
14547 };
14548
14549 static int
14550 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_) {
14551   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14552                                    gsm_old_SecureTransportRes_sequence, hf_index, ett_gsm_old_SecureTransportRes);
14553
14554   return offset;
14555 }
14556
14557
14558
14559 static int
14560 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_) {
14561   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14562                                        NULL);
14563
14564   return offset;
14565 }
14566
14567
14568
14569 static int
14570 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_) {
14571   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14572                                        NULL);
14573
14574   return offset;
14575 }
14576
14577
14578 static const ber_sequence_t gsm_old_T_operatorSS_Code_sequence_of[1] = {
14579   { &hf_gsm_old_operatorSS_Code_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OCTET_STRING_SIZE_1 },
14580 };
14581
14582 static int
14583 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_) {
14584   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
14585                                       gsm_old_T_operatorSS_Code_sequence_of, hf_index, ett_gsm_old_T_operatorSS_Code);
14586
14587   return offset;
14588 }
14589
14590
14591 static const ber_sequence_t gsm_old_PlmnContainer_U_sequence[] = {
14592   { &hf_gsm_old_msisdn      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14593   { &hf_gsm_old_category    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_Category },
14594   { &hf_gsm_old_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
14595   { &hf_gsm_old_operatorSS_Code, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_T_operatorSS_Code },
14596   { NULL, 0, 0, 0, NULL }
14597 };
14598
14599 static int
14600 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_) {
14601   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14602                                    gsm_old_PlmnContainer_U_sequence, hf_index, ett_gsm_old_PlmnContainer_U);
14603
14604   return offset;
14605 }
14606
14607
14608
14609 static int
14610 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_) {
14611   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
14612                                       hf_index, BER_CLASS_PRI, 2, TRUE, dissect_gsm_old_PlmnContainer_U);
14613
14614   return offset;
14615 }
14616
14617
14618 static const value_string gsm_old_SM_RP_DAold_vals[] = {
14619   {   0, "imsi" },
14620   {   1, "lmsi" },
14621   {   4, "serviceCentreAddressDA" },
14622   {   5, "noSM-RP-DA" },
14623   { 0, NULL }
14624 };
14625
14626 static const ber_choice_t gsm_old_SM_RP_DAold_choice[] = {
14627   {   0, &hf_gsm_old_imsi        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
14628   {   1, &hf_gsm_old_lmsi        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
14629   {   4, &hf_gsm_old_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
14630   {   5, &hf_gsm_old_noSM_RP_DA  , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
14631   { 0, NULL, 0, 0, 0, NULL }
14632 };
14633
14634 static int
14635 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_) {
14636   offset = dissect_ber_choice(actx, tree, tvb, offset,
14637                                  gsm_old_SM_RP_DAold_choice, hf_index, ett_gsm_old_SM_RP_DAold,
14638                                  NULL);
14639
14640   return offset;
14641 }
14642
14643
14644
14645 static int
14646 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_) {
14647 #line 262 "gsmmap.cnf"
14648 actx->pinfo->p2p_dir = P2P_DIR_RECV;
14649    offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
14650
14651
14652
14653
14654   return offset;
14655 }
14656
14657
14658
14659 static int
14660 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_) {
14661 #line 254 "gsmmap.cnf"
14662         actx->pinfo->p2p_dir = P2P_DIR_SENT;
14663   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
14664
14665
14666
14667
14668   return offset;
14669 }
14670
14671
14672 static const value_string gsm_old_SM_RP_OAold_vals[] = {
14673   {   2, "msisdn" },
14674   {   4, "serviceCentreAddressOA" },
14675   {   5, "noSM-RP-OA" },
14676   { 0, NULL }
14677 };
14678
14679 static const ber_choice_t gsm_old_SM_RP_OAold_choice[] = {
14680   {   2, &hf_gsm_old_msisdn_01   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_msisdn },
14681   {   4, &hf_gsm_old_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_serviceCentreAddressOA },
14682   {   5, &hf_gsm_old_noSM_RP_OA  , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
14683   { 0, NULL, 0, 0, 0, NULL }
14684 };
14685
14686 static int
14687 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_) {
14688   offset = dissect_ber_choice(actx, tree, tvb, offset,
14689                                  gsm_old_SM_RP_OAold_choice, hf_index, ett_gsm_old_SM_RP_OAold,
14690                                  NULL);
14691
14692   return offset;
14693 }
14694
14695
14696 static const ber_sequence_t gsm_old_ForwardSM_Arg_sequence[] = {
14697   { &hf_gsm_old_sm_RP_DA    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_DAold },
14698   { &hf_gsm_old_sm_RP_OA    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_OAold },
14699   { &hf_gsm_old_sm_RP_UI    , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
14700   { &hf_gsm_old_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
14701   { NULL, 0, 0, 0, NULL }
14702 };
14703
14704 static int
14705 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_) {
14706 #line 285 "gsmmap.cnf"
14707
14708         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
14709   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14710                                    gsm_old_ForwardSM_Arg_sequence, hf_index, ett_gsm_old_ForwardSM_Arg);
14711
14712
14713         if (!actx->value_ptr)
14714                 return offset;
14715         dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree);
14716
14717
14718
14719   return offset;
14720 }
14721
14722
14723 static const ber_sequence_t gsm_old_SendRoutingInfoArgV2_sequence[] = {
14724   { &hf_gsm_old_msisdn      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14725   { &hf_gsm_old_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
14726   { &hf_gsm_old_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding },
14727   { &hf_gsm_old_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14728   { NULL, 0, 0, 0, NULL }
14729 };
14730
14731 static int
14732 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_) {
14733   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14734                                    gsm_old_SendRoutingInfoArgV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoArgV2);
14735
14736   return offset;
14737 }
14738
14739
14740 static const ber_sequence_t gsm_old_SendRoutingInfoResV2_sequence[] = {
14741   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
14742   { &hf_gsm_old_routingInfo , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo },
14743   { &hf_gsm_old_cug_CheckInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_CUG_CheckInfo },
14744   { NULL, 0, 0, 0, NULL }
14745 };
14746
14747 static int
14748 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_) {
14749   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14750                                    gsm_old_SendRoutingInfoResV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoResV2);
14751
14752   return offset;
14753 }
14754
14755
14756 /* --- Module SS-DataTypes --- --- ---                                        */
14757
14758
14759
14760 static int
14761 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_) {
14762   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
14763                                             actx, tree, tvb, offset, hf_index,
14764                                             NULL);
14765
14766   return offset;
14767 }
14768
14769
14770
14771 static int
14772 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_) {
14773   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14774                                        NULL);
14775
14776   return offset;
14777 }
14778
14779
14780
14781 static int
14782 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_) {
14783   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
14784
14785   return offset;
14786 }
14787
14788
14789 static const value_string gsm_ss_CallOnHold_Indicator_vals[] = {
14790   {   0, "callRetrieved" },
14791   {   1, "callOnHold" },
14792   { 0, NULL }
14793 };
14794
14795
14796 static int
14797 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_) {
14798   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14799                                   NULL);
14800
14801   return offset;
14802 }
14803
14804
14805 static const value_string gsm_ss_ECT_CallState_vals[] = {
14806   {   0, "alerting" },
14807   {   1, "active" },
14808   { 0, NULL }
14809 };
14810
14811
14812 static int
14813 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_) {
14814   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14815                                   NULL);
14816
14817   return offset;
14818 }
14819
14820
14821 static const ber_sequence_t gsm_ss_RemotePartyNumber_sequence[] = {
14822   { &hf_gsm_ss_partyNumber  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14823   { &hf_gsm_ss_partyNumberSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
14824   { NULL, 0, 0, 0, NULL }
14825 };
14826
14827 static int
14828 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_) {
14829   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14830                                    gsm_ss_RemotePartyNumber_sequence, hf_index, ett_gsm_ss_RemotePartyNumber);
14831
14832   return offset;
14833 }
14834
14835
14836 static const value_string gsm_ss_RDN_vals[] = {
14837   {   0, "presentationAllowedAddress" },
14838   {   1, "presentationRestricted" },
14839   {   2, "numberNotAvailableDueToInterworking" },
14840   {   3, "presentationRestrictedAddress" },
14841   { 0, NULL }
14842 };
14843
14844 static const ber_choice_t gsm_ss_RDN_choice[] = {
14845   {   0, &hf_gsm_ss_presentationAllowedAddress, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber },
14846   {   1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14847   {   2, &hf_gsm_ss_numberNotAvailableDueToInterworking, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14848   {   3, &hf_gsm_ss_presentationRestrictedAddress, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber },
14849   { 0, NULL, 0, 0, 0, NULL }
14850 };
14851
14852 static int
14853 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_) {
14854   offset = dissect_ber_choice(actx, tree, tvb, offset,
14855                                  gsm_ss_RDN_choice, hf_index, ett_gsm_ss_RDN,
14856                                  NULL);
14857
14858   return offset;
14859 }
14860
14861
14862 static const ber_sequence_t gsm_ss_ECT_Indicator_sequence[] = {
14863   { &hf_gsm_ss_ect_CallState, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_CallState },
14864   { &hf_gsm_ss_rdn          , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_RDN },
14865   { NULL, 0, 0, 0, NULL }
14866 };
14867
14868 static int
14869 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_) {
14870   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14871                                    gsm_ss_ECT_Indicator_sequence, hf_index, ett_gsm_ss_ECT_Indicator);
14872
14873   return offset;
14874 }
14875
14876
14877
14878 static int
14879 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_) {
14880   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14881                                                 NULL);
14882
14883   return offset;
14884 }
14885
14886
14887 static const ber_sequence_t gsm_ss_NameSet_sequence[] = {
14888   { &hf_gsm_ss_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
14889   { &hf_gsm_ss_lengthInCharacters, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_INTEGER },
14890   { &hf_gsm_ss_nameString   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_String },
14891   { NULL, 0, 0, 0, NULL }
14892 };
14893
14894 static int
14895 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_) {
14896   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14897                                    gsm_ss_NameSet_sequence, hf_index, ett_gsm_ss_NameSet);
14898
14899   return offset;
14900 }
14901
14902
14903 static const value_string gsm_ss_Name_vals[] = {
14904   {   0, "namePresentationAllowed" },
14905   {   1, "presentationRestricted" },
14906   {   2, "nameUnavailable" },
14907   {   3, "namePresentationRestricted" },
14908   { 0, NULL }
14909 };
14910
14911 static const ber_choice_t gsm_ss_Name_choice[] = {
14912   {   0, &hf_gsm_ss_namePresentationAllowed, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet },
14913   {   1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14914   {   2, &hf_gsm_ss_nameUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14915   {   3, &hf_gsm_ss_namePresentationRestricted, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet },
14916   { 0, NULL, 0, 0, 0, NULL }
14917 };
14918
14919 static int
14920 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_) {
14921   offset = dissect_ber_choice(actx, tree, tvb, offset,
14922                                  gsm_ss_Name_choice, hf_index, ett_gsm_ss_Name,
14923                                  NULL);
14924
14925   return offset;
14926 }
14927
14928
14929 static const ber_sequence_t gsm_ss_NameIndicator_sequence[] = {
14930   { &hf_gsm_ss_callingName  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_Name },
14931   { NULL, 0, 0, 0, NULL }
14932 };
14933
14934 static int
14935 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_) {
14936   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14937                                    gsm_ss_NameIndicator_sequence, hf_index, ett_gsm_ss_NameIndicator);
14938
14939   return offset;
14940 }
14941
14942
14943 static const value_string gsm_ss_Multicall_Indicator_vals[] = {
14944   {   0, "nbr-SNexceeded" },
14945   {   1, "nbr-Userexceeded" },
14946   { 0, NULL }
14947 };
14948
14949
14950 static int
14951 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_) {
14952   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14953                                   NULL);
14954
14955   return offset;
14956 }
14957
14958
14959 static const ber_sequence_t gsm_ss_NotifySS_Arg_sequence[] = {
14960   { &hf_gsm_ss_ss_Code      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
14961   { &hf_gsm_ss_ss_Status    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
14962   { &hf_gsm_ss_ss_Notification, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_SS_Notification },
14963   { &hf_gsm_ss_callIsWaiting_Indicator, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14964   { &hf_gsm_ss_callOnHold_Indicator, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_CallOnHold_Indicator },
14965   { &hf_gsm_ss_mpty_Indicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14966   { &hf_gsm_ss_cug_Index    , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index },
14967   { &hf_gsm_ss_clirSuppressionRejected, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
14968   { &hf_gsm_ss_ect_Indicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_Indicator },
14969   { &hf_gsm_ss_nameIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameIndicator },
14970   { &hf_gsm_ss_ccbs_Feature , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
14971   { &hf_gsm_ss_alertingPattern, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
14972   { &hf_gsm_ss_multicall_Indicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Multicall_Indicator },
14973   { NULL, 0, 0, 0, NULL }
14974 };
14975
14976 static int
14977 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_) {
14978   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14979                                    gsm_ss_NotifySS_Arg_sequence, hf_index, ett_gsm_ss_NotifySS_Arg);
14980
14981   return offset;
14982 }
14983
14984
14985 static const ber_sequence_t gsm_ss_BeginSubscriberActivityArg_sequence[] = {
14986   { &hf_gsm_ss_imsi         , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
14987   { &hf_gsm_ss_originatingEntityNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
14988   { &hf_gsm_ss_msisdn       , BER_CLASS_PRI, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
14989   { NULL, 0, 0, 0, NULL }
14990 };
14991
14992 static int
14993 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_) {
14994   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14995                                    gsm_ss_BeginSubscriberActivityArg_sequence, hf_index, ett_gsm_ss_BeginSubscriberActivityArg);
14996
14997   return offset;
14998 }
14999
15000
15001
15002 static int
15003 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_) {
15004   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15005                                                 NULL);
15006
15007   return offset;
15008 }
15009
15010
15011
15012 static int
15013 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_) {
15014   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15015                                                 NULL);
15016
15017   return offset;
15018 }
15019
15020
15021
15022 static int
15023 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_) {
15024   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15025                                                 NULL);
15026
15027   return offset;
15028 }
15029
15030
15031
15032 static int
15033 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_) {
15034   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15035                                                 NULL);
15036
15037   return offset;
15038 }
15039
15040
15041
15042 static int
15043 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_) {
15044   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15045                                                 NULL);
15046
15047   return offset;
15048 }
15049
15050
15051
15052 static int
15053 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_) {
15054   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15055                                                 NULL);
15056
15057   return offset;
15058 }
15059
15060
15061
15062 static int
15063 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_) {
15064   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15065                                                 NULL);
15066
15067   return offset;
15068 }
15069
15070
15071 static const ber_sequence_t gsm_ss_ChargingInformation_sequence[] = {
15072   { &hf_gsm_ss_e1           , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E1 },
15073   { &hf_gsm_ss_e2           , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E2 },
15074   { &hf_gsm_ss_e3           , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E3 },
15075   { &hf_gsm_ss_e4           , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E4 },
15076   { &hf_gsm_ss_e5           , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E5 },
15077   { &hf_gsm_ss_e6           , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E6 },
15078   { &hf_gsm_ss_e7           , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E7 },
15079   { NULL, 0, 0, 0, NULL }
15080 };
15081
15082 static int
15083 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_) {
15084   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15085                                    gsm_ss_ChargingInformation_sequence, hf_index, ett_gsm_ss_ChargingInformation);
15086
15087   return offset;
15088 }
15089
15090
15091 static const ber_sequence_t gsm_ss_ForwardChargeAdviceArg_sequence[] = {
15092   { &hf_gsm_ss_ss_Code      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
15093   { &hf_gsm_ss_chargingInformation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ChargingInformation },
15094   { NULL, 0, 0, 0, NULL }
15095 };
15096
15097 static int
15098 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_) {
15099   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15100                                    gsm_ss_ForwardChargeAdviceArg_sequence, hf_index, ett_gsm_ss_ForwardChargeAdviceArg);
15101
15102   return offset;
15103 }
15104
15105
15106 static const ber_sequence_t gsm_ss_ForwardCUG_InfoArg_sequence[] = {
15107   { &hf_gsm_ss_cug_Index    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index },
15108   { &hf_gsm_ss_suppressPrefCUG, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15109   { &hf_gsm_ss_suppressOA   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15110   { NULL, 0, 0, 0, NULL }
15111 };
15112
15113 static int
15114 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_) {
15115   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15116                                    gsm_ss_ForwardCUG_InfoArg_sequence, hf_index, ett_gsm_ss_ForwardCUG_InfoArg);
15117
15118   return offset;
15119 }
15120
15121
15122 static const ber_sequence_t gsm_ss_AccessRegisterCCEntryArg_sequence[] = {
15123   { NULL, 0, 0, 0, NULL }
15124 };
15125
15126 static int
15127 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_) {
15128   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15129                                    gsm_ss_AccessRegisterCCEntryArg_sequence, hf_index, ett_gsm_ss_AccessRegisterCCEntryArg);
15130
15131   return offset;
15132 }
15133
15134
15135 static const ber_sequence_t gsm_ss_CallDeflectionArg_sequence[] = {
15136   { &hf_gsm_ss_deflectedToNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
15137   { &hf_gsm_ss_deflectedToSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
15138   { NULL, 0, 0, 0, NULL }
15139 };
15140
15141 static int
15142 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_) {
15143   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15144                                    gsm_ss_CallDeflectionArg_sequence, hf_index, ett_gsm_ss_CallDeflectionArg);
15145
15146   return offset;
15147 }
15148
15149
15150 static const value_string gsm_ss_UUS_Service_vals[] = {
15151   {   1, "uUS1" },
15152   {   2, "uUS2" },
15153   {   3, "uUS3" },
15154   { 0, NULL }
15155 };
15156
15157
15158 static int
15159 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_) {
15160   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15161                                   NULL);
15162
15163   return offset;
15164 }
15165
15166
15167
15168 static int
15169 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_) {
15170   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
15171
15172   return offset;
15173 }
15174
15175
15176 static const ber_sequence_t gsm_ss_UserUserServiceArg_sequence[] = {
15177   { &hf_gsm_ss_uUS_Service  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_UUS_Service },
15178   { &hf_gsm_ss_uUS_Required , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_BOOLEAN },
15179   { NULL, 0, 0, 0, NULL }
15180 };
15181
15182 static int
15183 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_) {
15184   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15185                                    gsm_ss_UserUserServiceArg_sequence, hf_index, ett_gsm_ss_UserUserServiceArg);
15186
15187   return offset;
15188 }
15189
15190
15191 static const ber_sequence_t gsm_ss_LocationNotificationArg_sequence[] = {
15192   { &hf_gsm_ss_notificationType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
15193   { &hf_gsm_ss_locationType , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType },
15194   { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
15195   { &hf_gsm_ss_lcsClientName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName },
15196   { &hf_gsm_ss_lcsRequestorID, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID },
15197   { &hf_gsm_ss_lcsCodeword  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword },
15198   { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
15199   { NULL, 0, 0, 0, NULL }
15200 };
15201
15202 static int
15203 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_) {
15204   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15205                                    gsm_ss_LocationNotificationArg_sequence, hf_index, ett_gsm_ss_LocationNotificationArg);
15206
15207   return offset;
15208 }
15209
15210
15211 static const value_string gsm_ss_VerificationResponse_vals[] = {
15212   {   0, "permissionDenied" },
15213   {   1, "permissionGranted" },
15214   { 0, NULL }
15215 };
15216
15217
15218 static int
15219 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_) {
15220   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15221                                   NULL);
15222
15223   return offset;
15224 }
15225
15226
15227 static const ber_sequence_t gsm_ss_LocationNotificationRes_sequence[] = {
15228   { &hf_gsm_ss_verificationResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_VerificationResponse },
15229   { NULL, 0, 0, 0, NULL }
15230 };
15231
15232 static int
15233 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_) {
15234   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15235                                    gsm_ss_LocationNotificationRes_sequence, hf_index, ett_gsm_ss_LocationNotificationRes);
15236
15237   return offset;
15238 }
15239
15240
15241 static const value_string gsm_ss_MOLR_Type_vals[] = {
15242   {   0, "locationEstimate" },
15243   {   1, "assistanceData" },
15244   {   2, "deCipheringKeys" },
15245   {   3, "deferredMo-lrTTTPInitiation" },
15246   {   4, "deferredMo-lrSelfLocationInitiation" },
15247   {   5, "deferredMt-lrOrmo-lrTTTPLocationEstimate" },
15248   {   6, "deferredMt-lrOrmo-lrCancellation" },
15249   { 0, NULL }
15250 };
15251
15252
15253 static int
15254 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_) {
15255   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15256                                   NULL);
15257
15258   return offset;
15259 }
15260
15261
15262 static const value_string gsm_ss_LocationMethod_vals[] = {
15263   {   0, "msBasedEOTD" },
15264   {   1, "msAssistedEOTD" },
15265   {   2, "assistedGPS" },
15266   {   3, "msBasedOTDOA" },
15267   {   4, "assistedGANSS" },
15268   {   5, "assistedGPSandGANSS" },
15269   { 0, NULL }
15270 };
15271
15272
15273 static int
15274 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_) {
15275   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15276                                   NULL);
15277
15278   return offset;
15279 }
15280
15281
15282
15283 static int
15284 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_) {
15285   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15286                                        NULL);
15287
15288   return offset;
15289 }
15290
15291
15292 static const value_string gsm_ss_TerminationCause_vals[] = {
15293   {   0, "subscriberTermination" },
15294   {   1, "uETermination" },
15295   { 0, NULL }
15296 };
15297
15298
15299 static int
15300 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_) {
15301   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15302                                   NULL);
15303
15304   return offset;
15305 }
15306
15307
15308
15309 static int
15310 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_) {
15311   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15312                                        NULL);
15313
15314   return offset;
15315 }
15316
15317
15318 static const ber_sequence_t gsm_ss_LCS_MOLRArg_sequence[] = {
15319   { &hf_gsm_ss_molr_Type    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_MOLR_Type },
15320   { &hf_gsm_ss_locationMethod, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LocationMethod },
15321   { &hf_gsm_ss_lcs_QoS      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
15322   { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
15323   { &hf_gsm_ss_mlc_Number   , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15324   { &hf_gsm_ss_gpsAssistanceData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_GPSAssistanceData },
15325   { &hf_gsm_ss_supportedGADShapes, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
15326   { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
15327   { &hf_gsm_ss_ageOfLocationInfo, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
15328   { &hf_gsm_ss_locationType , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType },
15329   { &hf_gsm_ss_pseudonymIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15330   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15331   { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
15332   { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
15333   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15334   { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
15335   { &hf_gsm_ss_locationUpdateRequest, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15336   { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
15337   { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
15338   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15339   { &hf_gsm_ss_ganssAssistanceData, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_GANSSAssistanceData },
15340   { NULL, 0, 0, 0, NULL }
15341 };
15342
15343 static int
15344 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_) {
15345   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15346                                    gsm_ss_LCS_MOLRArg_sequence, hf_index, ett_gsm_ss_LCS_MOLRArg);
15347
15348   return offset;
15349 }
15350
15351
15352
15353 static int
15354 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_) {
15355   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15356                                        NULL);
15357
15358   return offset;
15359 }
15360
15361
15362 static const ber_sequence_t gsm_ss_LCS_MOLRRes_sequence[] = {
15363   { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
15364   { &hf_gsm_ss_decipheringKeys, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DecipheringKeys },
15365   { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
15366   { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
15367   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15368   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15369   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15370   { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
15371   { NULL, 0, 0, 0, NULL }
15372 };
15373
15374 static int
15375 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_) {
15376   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15377                                    gsm_ss_LCS_MOLRRes_sequence, hf_index, ett_gsm_ss_LCS_MOLRRes);
15378
15379   return offset;
15380 }
15381
15382
15383 static const ber_sequence_t gsm_ss_LCS_AreaEventRequestArg_sequence[] = {
15384   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15385   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15386   { &hf_gsm_ss_deferredLocationEventType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
15387   { &hf_gsm_ss_areaEventInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo },
15388   { NULL, 0, 0, 0, NULL }
15389 };
15390
15391 static int
15392 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_) {
15393   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15394                                    gsm_ss_LCS_AreaEventRequestArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventRequestArg);
15395
15396   return offset;
15397 }
15398
15399
15400 static const ber_sequence_t gsm_ss_LCS_AreaEventReportArg_sequence[] = {
15401   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15402   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15403   { NULL, 0, 0, 0, NULL }
15404 };
15405
15406 static int
15407 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_) {
15408   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15409                                    gsm_ss_LCS_AreaEventReportArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventReportArg);
15410
15411   return offset;
15412 }
15413
15414
15415 static const ber_sequence_t gsm_ss_LCS_AreaEventCancellationArg_sequence[] = {
15416   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15417   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15418   { NULL, 0, 0, 0, NULL }
15419 };
15420
15421 static int
15422 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_) {
15423   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15424                                    gsm_ss_LCS_AreaEventCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventCancellationArg);
15425
15426   return offset;
15427 }
15428
15429
15430 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestArg_sequence[] = {
15431   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15432   { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
15433   { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
15434   { &hf_gsm_ss_qoS          , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
15435   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15436   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15437   { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
15438   { NULL, 0, 0, 0, NULL }
15439 };
15440
15441 static int
15442 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_) {
15443   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15444                                    gsm_ss_LCS_PeriodicLocationRequestArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestArg);
15445
15446   return offset;
15447 }
15448
15449
15450 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestRes_sequence[] = {
15451   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
15452   { NULL, 0, 0, 0, NULL }
15453 };
15454
15455 static int
15456 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_) {
15457   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15458                                    gsm_ss_LCS_PeriodicLocationRequestRes_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestRes);
15459
15460   return offset;
15461 }
15462
15463
15464 static const ber_sequence_t gsm_ss_LCS_LocationUpdateArg_sequence[] = {
15465   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15466   { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
15467   { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
15468   { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
15469   { NULL, 0, 0, 0, NULL }
15470 };
15471
15472 static int
15473 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_) {
15474   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15475                                    gsm_ss_LCS_LocationUpdateArg_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateArg);
15476
15477   return offset;
15478 }
15479
15480
15481 static const ber_sequence_t gsm_ss_LCS_LocationUpdateRes_sequence[] = {
15482   { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
15483   { NULL, 0, 0, 0, NULL }
15484 };
15485
15486 static int
15487 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_) {
15488   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15489                                    gsm_ss_LCS_LocationUpdateRes_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateRes);
15490
15491   return offset;
15492 }
15493
15494
15495 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationCancellationArg_sequence[] = {
15496   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15497   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address },
15498   { NULL, 0, 0, 0, NULL }
15499 };
15500
15501 static int
15502 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_) {
15503   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15504                                    gsm_ss_LCS_PeriodicLocationCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationCancellationArg);
15505
15506   return offset;
15507 }
15508
15509
15510 /* --- Module SS-Operations --- --- ---                                       */
15511
15512
15513 /*--- End of included file: packet-gsm_map-fn.c ---*/
15514 #line 748 "packet-gsmmap-template.c"
15515
15516 /* Specific translation for MAP V3 */
15517 const value_string gsm_map_V1V2_opr_code_strings[] = {
15518   {  44, "forwardSM" },
15519   {  45, "sendRoutingInfoForSM" },
15520   {  46, "forwardSM" },
15521   { 0, NULL }
15522 };
15523 /* Generic translation for MAP operation */
15524 const value_string gsm_map_opr_code_strings[] = {
15525
15526 /*--- Included file: packet-gsm_map-table.c ---*/
15527 #line 1 "packet-gsm_map-table.c"
15528
15529 /* --- Module Remote-Operations-Information-Objects --- --- ---               */
15530
15531 /* Unknown or empty loop list OPERATION */
15532
15533 /* --- Module MobileDomainDefinitions --- --- ---                             */
15534
15535 /* Unknown or empty loop list OPERATION */
15536
15537 /* --- Module MAP-ApplicationContexts --- --- ---                             */
15538
15539 /* Unknown or empty loop list OPERATION */
15540
15541 /* --- Module MAP-SS-Code --- --- ---                                         */
15542
15543 /* Unknown or empty loop list OPERATION */
15544
15545 /* --- Module MAP-BS-Code --- --- ---                                         */
15546
15547 /* Unknown or empty loop list OPERATION */
15548
15549 /* --- Module MAP-TS-Code --- --- ---                                         */
15550
15551 /* Unknown or empty loop list OPERATION */
15552
15553 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
15554
15555 /* Unknown or empty loop list OPERATION */
15556
15557 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
15558
15559 /* Unknown or empty loop list OPERATION */
15560
15561 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
15562
15563 /* Unknown or empty loop list OPERATION */
15564
15565 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
15566
15567 /* Unknown or empty loop list OPERATION */
15568
15569 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
15570
15571 /* Unknown or empty loop list OPERATION */
15572
15573 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
15574
15575 /* Unknown or empty loop list OPERATION */
15576
15577 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
15578
15579 /* Unknown or empty loop list OPERATION */
15580
15581 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
15582
15583 /* Unknown or empty loop list OPERATION */
15584
15585 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
15586
15587 /* Unknown or empty loop list OPERATION */
15588
15589 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
15590
15591 /* Unknown or empty loop list OPERATION */
15592
15593 /* --- Module MAP-DialogueInformation --- --- ---                             */
15594
15595 /* Unknown or empty loop list OPERATION */
15596
15597 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
15598
15599         { 85, "sendRoutingInfoForLCS" },
15600         { 83, "provideSubscriberLocation" },
15601         { 86, "subscriberLocationReport" },
15602
15603 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
15604
15605         { 39, "prepareGroupCall" },
15606         { 40, "sendGroupCallEndSignal" },
15607         { 41, "processGroupCallSignalling" },
15608         { 42, "forwardGroupCallSignalling" },
15609         { 84, "sendGroupCallInfo" },
15610
15611 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
15612
15613         { 45, "sendRoutingInfoForSM" },
15614         { 46, "mo_ForwardSM" },
15615         { 44, "mt_ForwardSM" },
15616         { 47, "reportSM_DeliveryStatus" },
15617         { 64, "alertServiceCentre" },
15618         { 63, "informServiceCentre" },
15619         { 66, "readyForSM" },
15620         { 21, "mt_ForwardSM_VGCS" },
15621
15622 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
15623
15624         { 10, "registerSS" },
15625         { 11, "eraseSS" },
15626         { 12, "activateSS" },
15627         { 13, "deactivateSS" },
15628         { 14, "interrogateSS" },
15629         { 59, "processUnstructuredSS_Request" },
15630         { 60, "unstructuredSS_Request" },
15631         { 61, "unstructuredSS_Notify" },
15632         { 17, "registerPassword" },
15633         { 18, "getPassword" },
15634         { 72, "ss_InvocationNotification" },
15635         { 76, "registerCC_Entry" },
15636         { 77, "eraseCC_Entry" },
15637
15638 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
15639
15640         { 22, "sendRoutingInfo" },
15641         { 4, "provideRoamingNumber" },
15642         { 6, "resumeCallHandling" },
15643         { 73, "setReportingState" },
15644         { 74, "statusReport" },
15645         { 75, "remoteUserFree" },
15646         { 87, "ist_Alert" },
15647         { 88, "ist_Command" },
15648         { 20, "releaseResources" },
15649
15650 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
15651
15652         { 50, "activateTraceMode" },
15653         { 51, "deactivateTraceMode" },
15654         { 58, "sendIMSI" },
15655
15656 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
15657
15658         { 2, "updateLocation" },
15659         { 3, "cancelLocation" },
15660         { 67, "purgeMS" },
15661         { 55, "sendIdentification" },
15662         { 23, "updateGprsLocation" },
15663         { 70, "provideSubscriberInfo" },
15664         { 71, "anyTimeInterrogation" },
15665         { 62, "anyTimeSubscriptionInterrogation" },
15666         { 65, "anyTimeModification" },
15667         { 5, "noteSubscriberDataModified" },
15668         { 68, "prepareHandover" },
15669         { 29, "sendEndSignal" },
15670         { 33, "processAccessSignalling" },
15671         { 34, "forwardAccessSignalling" },
15672         { 69, "prepareSubsequentHandover" },
15673         { 56, "sendAuthenticationInfo" },
15674         { 15, "authenticationFailureReport" },
15675         { 43, "checkIMEI" },
15676         { 7, "insertSubscriberData" },
15677         { 8, "deleteSubscriberData" },
15678         { 37, "reset" },
15679         { 38, "forwardCheckSS_Indication" },
15680         { 57, "restoreData" },
15681         { 24, "sendRoutingInfoForGprs" },
15682         { 25, "failureReport" },
15683         { 26, "noteMsPresentForGprs" },
15684         { 89, "noteMM_Event" },
15685
15686 /* --- Module MAP-Errors --- --- ---                                          */
15687
15688 /* Unknown or empty loop list OPERATION */
15689
15690 /* --- Module MAP-Protocol --- --- ---                                        */
15691
15692 /* Unknown or empty loop list OPERATION */
15693
15694 /* --- Module DummyMAP --- --- ---                                            */
15695
15696 /* Unknown or empty loop list OPERATION */
15697
15698 /* --- Module SS-DataTypes --- --- ---                                        */
15699
15700 /* Unknown or empty loop list OPERATION */
15701
15702 /* --- Module SS-Operations --- --- ---                                       */
15703
15704         { 19, "processUnstructuredSS_Data" },
15705         { 54, "beginSubscriberActivity" },
15706         { 16, "notifySS" },
15707         { 125, "forwardChargeAdvice" },
15708         { 120, "forwardCUG_Info" },
15709         { 124, "buildMPTY" },
15710         { 123, "holdMPTY" },
15711         { 122, "retrieveMPTY" },
15712         { 121, "splitMPTY" },
15713         { 126, "explicitCT" },
15714         { 119, "accessRegisterCCEntry" },
15715         { 117, "callDeflection" },
15716         { 118, "userUserService" },
15717         { 116, "lcs_LocationNotification" },
15718         { 115, "lcs_MOLR" },
15719         { 114, "lcs_AreaEventRequest" },
15720         { 113, "lcs_AreaEventReport" },
15721         { 112, "lcs_AreaEventCancellation" },
15722         { 111, "lcs_PeriodicLocationRequest" },
15723         { 110, "lcs_LocationUpdate" },
15724         { 109, "lcs_PeriodicLocationCancellation" },
15725
15726 /*--- End of included file: packet-gsm_map-table.c ---*/
15727 #line 759 "packet-gsmmap-template.c"
15728   { 0, NULL }
15729 };
15730 static const value_string gsm_map_err_code_string_vals[] = {
15731
15732 /*--- Included file: packet-gsm_map-table.c ---*/
15733 #line 1 "packet-gsm_map-table.c"
15734
15735 /* --- Module Remote-Operations-Information-Objects --- --- ---               */
15736
15737 /* Unknown or empty loop list OPERATION */
15738
15739 /* --- Module MobileDomainDefinitions --- --- ---                             */
15740
15741 /* Unknown or empty loop list OPERATION */
15742
15743 /* --- Module MAP-ApplicationContexts --- --- ---                             */
15744
15745 /* Unknown or empty loop list OPERATION */
15746
15747 /* --- Module MAP-SS-Code --- --- ---                                         */
15748
15749 /* Unknown or empty loop list OPERATION */
15750
15751 /* --- Module MAP-BS-Code --- --- ---                                         */
15752
15753 /* Unknown or empty loop list OPERATION */
15754
15755 /* --- Module MAP-TS-Code --- --- ---                                         */
15756
15757 /* Unknown or empty loop list OPERATION */
15758
15759 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
15760
15761 /* Unknown or empty loop list OPERATION */
15762
15763 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
15764
15765 /* Unknown or empty loop list OPERATION */
15766
15767 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
15768
15769 /* Unknown or empty loop list OPERATION */
15770
15771 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
15772
15773 /* Unknown or empty loop list OPERATION */
15774
15775 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
15776
15777 /* Unknown or empty loop list OPERATION */
15778
15779 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
15780
15781 /* Unknown or empty loop list OPERATION */
15782
15783 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
15784
15785 /* Unknown or empty loop list OPERATION */
15786
15787 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
15788
15789 /* Unknown or empty loop list OPERATION */
15790
15791 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
15792
15793 /* Unknown or empty loop list OPERATION */
15794
15795 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
15796
15797 /* Unknown or empty loop list OPERATION */
15798
15799 /* --- Module MAP-DialogueInformation --- --- ---                             */
15800
15801 /* Unknown or empty loop list OPERATION */
15802
15803 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
15804
15805         { 85, "sendRoutingInfoForLCS" },
15806         { 83, "provideSubscriberLocation" },
15807         { 86, "subscriberLocationReport" },
15808
15809 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
15810
15811         { 39, "prepareGroupCall" },
15812         { 40, "sendGroupCallEndSignal" },
15813         { 41, "processGroupCallSignalling" },
15814         { 42, "forwardGroupCallSignalling" },
15815         { 84, "sendGroupCallInfo" },
15816
15817 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
15818
15819         { 45, "sendRoutingInfoForSM" },
15820         { 46, "mo_ForwardSM" },
15821         { 44, "mt_ForwardSM" },
15822         { 47, "reportSM_DeliveryStatus" },
15823         { 64, "alertServiceCentre" },
15824         { 63, "informServiceCentre" },
15825         { 66, "readyForSM" },
15826         { 21, "mt_ForwardSM_VGCS" },
15827
15828 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
15829
15830         { 10, "registerSS" },
15831         { 11, "eraseSS" },
15832         { 12, "activateSS" },
15833         { 13, "deactivateSS" },
15834         { 14, "interrogateSS" },
15835         { 59, "processUnstructuredSS_Request" },
15836         { 60, "unstructuredSS_Request" },
15837         { 61, "unstructuredSS_Notify" },
15838         { 17, "registerPassword" },
15839         { 18, "getPassword" },
15840         { 72, "ss_InvocationNotification" },
15841         { 76, "registerCC_Entry" },
15842         { 77, "eraseCC_Entry" },
15843
15844 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
15845
15846         { 22, "sendRoutingInfo" },
15847         { 4, "provideRoamingNumber" },
15848         { 6, "resumeCallHandling" },
15849         { 73, "setReportingState" },
15850         { 74, "statusReport" },
15851         { 75, "remoteUserFree" },
15852         { 87, "ist_Alert" },
15853         { 88, "ist_Command" },
15854         { 20, "releaseResources" },
15855
15856 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
15857
15858         { 50, "activateTraceMode" },
15859         { 51, "deactivateTraceMode" },
15860         { 58, "sendIMSI" },
15861
15862 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
15863
15864         { 2, "updateLocation" },
15865         { 3, "cancelLocation" },
15866         { 67, "purgeMS" },
15867         { 55, "sendIdentification" },
15868         { 23, "updateGprsLocation" },
15869         { 70, "provideSubscriberInfo" },
15870         { 71, "anyTimeInterrogation" },
15871         { 62, "anyTimeSubscriptionInterrogation" },
15872         { 65, "anyTimeModification" },
15873         { 5, "noteSubscriberDataModified" },
15874         { 68, "prepareHandover" },
15875         { 29, "sendEndSignal" },
15876         { 33, "processAccessSignalling" },
15877         { 34, "forwardAccessSignalling" },
15878         { 69, "prepareSubsequentHandover" },
15879         { 56, "sendAuthenticationInfo" },
15880         { 15, "authenticationFailureReport" },
15881         { 43, "checkIMEI" },
15882         { 7, "insertSubscriberData" },
15883         { 8, "deleteSubscriberData" },
15884         { 37, "reset" },
15885         { 38, "forwardCheckSS_Indication" },
15886         { 57, "restoreData" },
15887         { 24, "sendRoutingInfoForGprs" },
15888         { 25, "failureReport" },
15889         { 26, "noteMsPresentForGprs" },
15890         { 89, "noteMM_Event" },
15891
15892 /* --- Module MAP-Errors --- --- ---                                          */
15893
15894 /* Unknown or empty loop list OPERATION */
15895
15896 /* --- Module MAP-Protocol --- --- ---                                        */
15897
15898 /* Unknown or empty loop list OPERATION */
15899
15900 /* --- Module DummyMAP --- --- ---                                            */
15901
15902 /* Unknown or empty loop list OPERATION */
15903
15904 /* --- Module SS-DataTypes --- --- ---                                        */
15905
15906 /* Unknown or empty loop list OPERATION */
15907
15908 /* --- Module SS-Operations --- --- ---                                       */
15909
15910         { 19, "processUnstructuredSS_Data" },
15911         { 54, "beginSubscriberActivity" },
15912         { 16, "notifySS" },
15913         { 125, "forwardChargeAdvice" },
15914         { 120, "forwardCUG_Info" },
15915         { 124, "buildMPTY" },
15916         { 123, "holdMPTY" },
15917         { 122, "retrieveMPTY" },
15918         { 121, "splitMPTY" },
15919         { 126, "explicitCT" },
15920         { 119, "accessRegisterCCEntry" },
15921         { 117, "callDeflection" },
15922         { 118, "userUserService" },
15923         { 116, "lcs_LocationNotification" },
15924         { 115, "lcs_MOLR" },
15925         { 114, "lcs_AreaEventRequest" },
15926         { 113, "lcs_AreaEventReport" },
15927         { 112, "lcs_AreaEventCancellation" },
15928         { 111, "lcs_PeriodicLocationRequest" },
15929         { 110, "lcs_LocationUpdate" },
15930         { 109, "lcs_PeriodicLocationCancellation" },
15931
15932 /*--- End of included file: packet-gsm_map-table.c ---*/
15933 #line 763 "packet-gsmmap-template.c"
15934     { 0, NULL }
15935 };
15936 static const true_false_string gsm_map_extension_value = {
15937   "No Extension",
15938   "Extension"
15939 };
15940 static const value_string gsm_map_nature_of_number_values[] = {
15941         {   0x00,       "unknown" },
15942         {   0x01,       "International Number" },
15943         {   0x02,       "National Significant Number" },
15944         {   0x03,       "Network Specific Number" },
15945         {   0x04,       "Subscriber Number" },
15946         {   0x05,       "Reserved" },
15947         {   0x06,       "Abbreviated Number" },
15948         {   0x07,       "Reserved for extension" },
15949         { 0, NULL }
15950 };
15951 static const value_string gsm_map_number_plan_values[] = {
15952         {   0x00,       "unknown" },
15953         {   0x01,       "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
15954         {   0x02,       "spare" },
15955         {   0x03,       "Data Numbering (ITU-T Rec. X.121)" },
15956         {   0x04,       "Telex Numbering (ITU-T Rec. F.69)" },
15957         {   0x05,       "spare" },
15958         {   0x06,       "Land Mobile Numbering (ITU-T Rec. E.212)" },
15959         {   0x07,       "spare" },
15960         {   0x08,       "National Numbering" },
15961         {   0x09,       "Private Numbering" },
15962         {   0x0f,       "Reserved for extension" },
15963         { 0, NULL }
15964 };
15965
15966 static const true_false_string gsm_map_Ss_Status_q_bit_values = {
15967   "Quiescent",
15968   "Operative"
15969 };
15970 static const true_false_string gsm_map_Ss_Status_p_values = {
15971   "Provisioned",
15972   "Not Provisioned"
15973 };
15974 static const true_false_string gsm_map_Ss_Status_r_values = {
15975   "Registered",
15976   "Not Registered"
15977 };
15978 static const true_false_string gsm_map_Ss_Status_a_values = {
15979   "Active",
15980   "not Active"
15981 };
15982
15983 /*
15984  * Translate the MAP operation code value to a text string
15985  * Take into account the MAP version for ForwardSM
15986  */
15987 const gchar* gsm_map_opr_code(guint32 val) {
15988   switch (val) { 
15989   case 44: /*mt-forwardSM*/
15990   case 46: /*mo-forwardSM*/
15991     if (application_context_version < 3) {
15992       return val_to_str(val, gsm_map_V1V2_opr_code_strings, "Unknown GSM-MAP (%u)");
15993     }
15994     /* Else use the default map operation translation */
15995   default:
15996     return val_to_str(val, gsm_old_GSMMAPOperationLocalvalue_vals, "Unknown GSM-MAP opcode (%u)");
15997     break;
15998   }
15999 }
16000
16001 /* Prototype for a decoding function */
16002 typedef int (* dissect_function_t)( gboolean,
16003                                     tvbuff_t *,
16004                                     int ,
16005                                         asn1_ctx_t *,
16006                                     proto_tree *,
16007                                     int);
16008
16009 /*
16010  * Dissect Multiple Choice Message
16011  * This function is used to decode a message, when several encoding may be used.
16012  * For exemple, in the last MAP version, the Cancel Location is defined like this:
16013  * CancelLocationArg ::= [3] IMPLICIT SEQUENCE
16014  * But in the previous MAP version, it was a CHOICE between a SEQUENCE and an IMSI
16015  * As ASN1 encoders (or software) still uses the old encoding, this function allows
16016  * the decoding of both versions.
16017  * Moreover, some optimizations (or bad practice ?) in ASN1 encoder, removes the 
16018  * SEQUENCE tag, when only one parameter is present in the SEQUENCE.
16019  * This explain why the function expects 3 parameters:
16020  * - a [3] SEQUENCE corresponding the recent ASN1 MAP encoding
16021  * - a SEQUENCE for old style
16022  * - and a single parameter, for old version or optimizations
16023  *
16024  * The analyze of the first ASN1 tag, indicate what kind of decoding should be used, 
16025  * if the decoding function is provided (so not a NULL function)
16026  */
16027 static int dissect_mc_message(tvbuff_t *tvb,
16028                               int offset,
16029                                   asn1_ctx_t *actx,
16030                               proto_tree *tree,
16031                               gboolean implicit_param _U_, dissect_function_t parameter, int hf_index_param _U_,
16032                               gboolean implicit_seq   _U_, dissect_function_t sequence,  int hf_index_seq   _U_,
16033                               gboolean implicit_seq3 _U_, dissect_function_t sequence3, int hf_index_seq3 _U_ )
16034 {
16035   guint8 octet;
16036   gint8 bug_class;
16037   gboolean bug_pc, bug_ind_field;
16038   gint32 bug_tag;
16039   guint32 bug_len;
16040   proto_item *cause;
16041
16042   octet = tvb_get_guint8(tvb,0);
16043   if ( (octet & 0xf) == 3) {
16044     /* XXX  asn2wrs can not yet handle tagged assignment yes so this
16045      * XXX is some conformance file magic to work around that bug
16046      */
16047     offset = get_ber_identifier(tvb, offset, &bug_class, &bug_pc, &bug_tag);
16048     offset = get_ber_length(tvb, offset, &bug_len, &bug_ind_field);
16049     if (sequence3 != NULL) {
16050       offset= (sequence3) (implicit_seq3, tvb, offset, actx, tree, hf_index_seq3);
16051     } else {
16052       cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented [3] sequence, cannot decode");
16053       proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR);
16054       expert_add_info_format(actx->pinfo, cause, PI_UNDECODED, PI_ERROR, "Unknown or not implemented [3] sequence");
16055     }
16056   } else if (octet == 0x30) {
16057     if (sequence != NULL) {
16058       offset= (sequence) (implicit_seq, tvb, 0, actx, tree, hf_index_seq);
16059     } else {
16060       cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented sequence");
16061       proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR);
16062       expert_add_info_format(actx->pinfo, cause, PI_UNDECODED, PI_ERROR, "Unknown or not implemented sequence");
16063     }
16064   } else {
16065     if (parameter != NULL) {
16066       offset= (parameter) (implicit_param, tvb, offset, actx, tree, hf_index_param);
16067     } else {
16068       cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented parameter");
16069       proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR);
16070       expert_add_info_format(actx->pinfo, cause, PI_UNDECODED, PI_ERROR, "Unknown or not implemented parameter");
16071     }
16072   }
16073   return offset;
16074 }
16075
16076 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
16077  
16078   proto_item *cause;
16079
16080   switch(opcode){
16081   case  2: /*updateLocation*/   
16082     offset=dissect_gsm_map_ms_UpdateLocationArg(FALSE, tvb, offset, actx, tree, -1);
16083     break;
16084   case  3: /*cancelLocation*/
16085     offset=dissect_mc_message(tvb, offset, actx, tree,    
16086                               FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
16087                               FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
16088                               TRUE , dissect_gsm_map_ms_CancelLocationArg, -1);/*undefined*/
16089     break;
16090   case  4: /*provideRoamingNumber*/
16091     offset=dissect_gsm_map_ch_ProvideRoamingNumberArg(FALSE, tvb, offset, actx, tree, -1);
16092     break;
16093   case  5: /*noteSubscriberDataModified*/
16094     offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(FALSE, tvb, offset, actx, tree, -1);
16095     break;
16096   case  6: /*resumeCallHandling*/
16097     offset=dissect_gsm_map_ch_ResumeCallHandlingArg(FALSE, tvb, offset, actx, tree, -1);
16098     break;
16099   case  7: /*insertSubscriberData*/
16100     offset=dissect_gsm_map_ms_InsertSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
16101     break;
16102   case  8: /*deleteSubscriberData*/
16103     offset=dissect_gsm_map_ms_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
16104     break;
16105     /* TODO find out why this isn't in the ASN1 file */
16106     /* reserved sendParameters (9) */
16107   case  10: /*registerSS*/
16108     offset=dissect_gsm_map_ss_RegisterSS_Arg(FALSE, tvb, offset, actx, tree, -1);
16109     break;
16110   case  11: /*eraseSS*/
16111     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
16112     break;
16113   case 12: /*activateSS*/
16114     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
16115     break;
16116   case 13: /*deactivateSS*/
16117     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
16118     break;
16119   case 14: /*interrogateSS*/
16120     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
16121     break;
16122   case 15: /*authenticationFailureReport*/
16123     offset=dissect_gsm_map_ms_AuthenticationFailureReportArg(FALSE, tvb, offset, actx, tree, -1);
16124     break;
16125   case 16: /*SS-protocol notifySS*/
16126     offset=dissect_gsm_ss_NotifySS_Arg(FALSE, tvb, offset, actx, tree, -1);
16127     break;
16128   case 17: /*registerPassword*/
16129     offset=dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
16130     break;
16131   case 18: /*getPassword*/
16132     offset=dissect_gsm_old_GetPasswordArg(FALSE, tvb, offset, actx, tree, hf_gsm_map_getPassword);
16133     break;
16134   case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
16135     offset=dissect_gsm_ss_SS_UserData(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData);
16136     break;
16137   case 20: /*releaseResources*/
16138     offset=dissect_gsm_map_ch_ReleaseResourcesArg(FALSE, tvb, offset, actx, tree, -1);
16139     break;
16140   case 21: /*mt-ForwardSM-VGCS*/
16141     offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(FALSE, tvb, offset, actx, tree, -1);
16142     break;
16143   case 22: /*sendRoutingInfo*/
16144           if (application_context_version == 3){
16145                   offset=dissect_gsm_map_ch_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1);
16146           }else{
16147                   offset=dissect_gsm_old_SendRoutingInfoArgV2(FALSE, tvb, offset, actx, tree, -1);
16148           }
16149     break;
16150   case 23: /*updateGprsLocation*/
16151     offset=dissect_gsm_map_ms_UpdateGprsLocationArg(FALSE, tvb, offset, actx, tree, -1);
16152     break;
16153   case 24: /*sendRoutingInfoForGprs*/
16154     offset=dissect_gsm_map_ms_SendRoutingInfoForGprsArg(FALSE, tvb, offset, actx, tree, -1);
16155     break;
16156   case 25: /*failureReport*/
16157     offset=dissect_gsm_map_ms_FailureReportArg(FALSE, tvb, offset, actx, tree, -1);
16158     break;
16159   case 26: /*noteMsPresentForGprs*/
16160     offset=dissect_gsm_map_ms_NoteMsPresentForGprsArg(FALSE, tvb, offset, actx, tree, -1);
16161     break;
16162     /* undefined 27 */
16163     /* reserved performHandover (28) */
16164   case 29: /*sendEndSignal*/
16165     offset=dissect_mc_message(tvb, offset, actx, tree,    
16166                               FALSE, NULL, -1,
16167                               FALSE, dissect_gsm_old_Bss_APDU, -1,
16168                               TRUE , dissect_gsm_map_ms_SendEndSignal_Arg, -1);
16169     break;
16170     /* reserved performSubsequentHandover (30) */
16171   case 31: /*provideSIWFSNumber*/
16172     offset=dissect_gsm_old_ProvideSIWFSNumberArg(FALSE, tvb, offset, actx, tree, -1);
16173     break;
16174   case 32: /*sIWFSSignallingModify*/
16175     offset=dissect_gsm_old_SIWFSSignallingModifyArg(FALSE, tvb, offset, actx, tree, -1);
16176     break;
16177   case 33: /*processAccessSignalling*/
16178     offset=dissect_mc_message(tvb, offset, actx, tree,    
16179                               FALSE, NULL, -1,
16180                               FALSE, dissect_gsm_old_Bss_APDU, -1,
16181                               TRUE , dissect_gsm_map_ms_ProcessAccessSignalling_Arg, -1);
16182     break;
16183   case 34: /*forwardAccessSignalling*/
16184     offset=dissect_mc_message(tvb, offset, actx, tree,    
16185                               FALSE, NULL, -1,
16186                               FALSE, dissect_gsm_old_Bss_APDU, -1,
16187                               TRUE , dissect_gsm_map_ms_ForwardAccessSignalling_Arg, -1);
16188     break;
16189     /* reserved noteInternalHandover (35) */
16190     /* undefined 36 */
16191   case 37: /*reset*/
16192     offset=dissect_gsm_map_ms_ResetArg(FALSE, tvb, offset, actx, tree, -1);
16193     break;
16194   case 38: /*forwardCheckSS-Indication*/
16195     return offset;
16196     break;
16197   case 39: /*prepareGroupCall*/
16198     offset=dissect_gsm_map_gr_PrepareGroupCallArg(FALSE, tvb, offset, actx, tree, -1);
16199     break;
16200   case 40: /*sendGroupCallEndSignal*/
16201     offset = dissect_gsm_map_gr_SendGroupCallEndSignalArg(FALSE, tvb, offset, actx, tree, -1);
16202     break;
16203   case 41: /*processGroupCallSignalling*/
16204     offset = dissect_gsm_map_gr_ProcessGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1);
16205     break;
16206   case 42: /*forwardGroupCallSignalling*/
16207     offset=dissect_gsm_map_gr_ForwardGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1);
16208     break;
16209   case 43: /*checkIMEI*/
16210     offset=dissect_mc_message(tvb, offset, actx, tree,    
16211                               FALSE, dissect_gsm_map_IMEI, hf_gsm_map_ms_imei,
16212                               FALSE, dissect_gsm_map_ms_CheckIMEI_Arg, -1,
16213                               TRUE , NULL, -1); /* no [3] SEQUENCE */
16214     break;
16215   case 44: /*mt-forwardSM(v3) or ForwardSM(v1/v2)*/
16216     if (application_context_version == 3)
16217       offset=dissect_gsm_map_sm_MT_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16218     else {
16219       offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16220     }
16221     break;
16222   case 45: /*sendRoutingInfoForSM*/
16223     offset=dissect_gsm_map_sm_RoutingInfoForSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16224     break;
16225   case 46: /*mo-forwardSM(v3) or ForwardSM(v1/v2)*/
16226     if (application_context_version == 3)
16227       offset=dissect_gsm_map_sm_MO_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16228     else {
16229       offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16230     }
16231     break;
16232   case 47: /*reportSM-DeliveryStatus*/
16233     offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, actx, tree, -1);
16234     break;
16235     /* reserved noteSubscriberPresent (48) */
16236     /* reserved alertServiceCentreWithoutResult (49)  
16237          * ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
16238          * -- alertServiceCentreWithoutResult must not be used in
16239          * -- version greater 1
16240          */
16241   case 49:
16242         offset = dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
16243         break;
16244   case 50: /*activateTraceMode*/
16245     offset=dissect_gsm_map_om_ActivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1);
16246     break;
16247   case 51: /*deactivateTraceMode*/
16248     offset=dissect_gsm_map_om_DeactivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1);
16249     break;
16250     /* reserved traceSubscriberActivity (52) */
16251     /* undefined 53 */
16252   case 54: /*beginSubscriberActivity*/
16253     offset=dissect_gsm_ss_BeginSubscriberActivityArg(FALSE, tvb, offset, actx, tree, -1);
16254     break;
16255   case 55: /*sendIdentification*/
16256     offset=dissect_mc_message(tvb, offset, actx, tree,    
16257                               FALSE, dissect_gsm_map_TMSI, hf_gsm_map_tmsi,
16258                               FALSE, dissect_gsm_map_ms_SendIdentificationArg, -1,
16259                               TRUE,  NULL, -1);
16260     break;
16261   case 56: /*sendAuthenticationInfo*/ 
16262     offset=dissect_mc_message(tvb, offset, actx, tree,    
16263                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
16264                               FALSE, dissect_gsm_map_ms_SendAuthenticationInfoArg, -1,
16265                               TRUE,  NULL, -1);
16266     break;
16267   case 57: /*restoreData*/
16268     offset=dissect_gsm_map_ms_RestoreDataArg(FALSE, tvb, offset, actx, tree, -1);
16269     break;
16270   case 58: /*sendIMSI*/
16271     offset = dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_msisdn);
16272     break;
16273   case 59: /*processUnstructuredSS-Request*/
16274     offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
16275     break;
16276   case 60: /*unstructuredSS-Request*/
16277     offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
16278     break;
16279   case 61: /*unstructuredSS-Notify*/
16280     offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
16281     break;
16282   case 62: /*AnyTimeSubscriptionInterrogation*/
16283     offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(FALSE, tvb, offset, actx, tree, -1);
16284     break;
16285   case 63: /*informServiceCentre*/
16286     offset=dissect_gsm_map_sm_InformServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
16287     break;
16288   case 64: /*alertServiceCentre*/
16289     offset=dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
16290     break;
16291   case 65: /*AnyTimeModification*/
16292     offset=dissect_gsm_map_ms_AnyTimeModificationArg(FALSE, tvb, offset, actx, tree, -1);
16293     break;
16294   case 66: /*readyForSM*/
16295     offset=dissect_gsm_map_sm_ReadyForSM_Arg(FALSE, tvb, offset, actx, tree, -1);
16296     break;
16297   case 67: /*purgeMS*/
16298     offset=dissect_mc_message(tvb, offset, actx, tree,    
16299                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
16300                               FALSE, dissect_gsm_old_PurgeMSArgV2, -1, /*undefined*/
16301                               TRUE , dissect_gsm_map_ms_PurgeMS_Arg, -1);
16302     break;
16303   case 68: /*prepareHandover*/
16304     offset=dissect_mc_message(tvb, offset, actx, tree,    
16305                               FALSE, NULL, -1,
16306                               FALSE, dissect_gsm_old_PrepareHO_ArgOld, -1,
16307                               TRUE, dissect_gsm_map_ms_PrepareHO_Arg, -1);
16308     break;
16309   case 69: /*prepareSubsequentHandover*/
16310     offset=dissect_mc_message(tvb, offset, actx, tree,    
16311                               FALSE, NULL, -1,
16312                               FALSE, NULL, -1,
16313                               TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg, -1);
16314     break;
16315   case 70: /*provideSubscriberInfo*/
16316     offset=dissect_gsm_map_ms_ProvideSubscriberInfoArg(FALSE, tvb, offset, actx, tree, -1);
16317     break;
16318   case 71: /*anyTimeInterrogation*/
16319     offset=dissect_gsm_map_ms_AnyTimeInterrogationArg(FALSE, tvb, offset, actx, tree, -1);
16320     break;
16321   case 72: /*ss-InvocationNotificatio*/
16322     offset=dissect_gsm_map_ss_SS_InvocationNotificationArg(FALSE, tvb, offset, actx, tree, -1);
16323     break;
16324   case 73: /*setReportingState*/
16325     offset=dissect_gsm_map_ch_SetReportingStateArg(FALSE, tvb, offset, actx, tree, -1);
16326     break;
16327   case 74: /*statusReport*/
16328     offset=dissect_gsm_map_ch_StatusReportArg(FALSE, tvb, offset, actx, tree, -1);
16329     break;
16330   case 75: /*remoteUserFree*/
16331     offset=dissect_gsm_map_ch_RemoteUserFreeArg(FALSE, tvb, offset, actx, tree, -1);
16332     break;
16333   case 76: /*registerCC-Entry*/
16334     offset=dissect_gsm_map_ss_RegisterCC_EntryArg(FALSE, tvb, offset, actx, tree, -1);
16335     break;
16336   case 77: /*eraseCC-Entry*/
16337     offset=dissect_gsm_map_ss_EraseCC_EntryArg(FALSE, tvb, offset, actx, tree, -1);
16338     break;
16339   case 78: /*secureTransportClass1*/
16340   case 79: /*secureTransportClass1*/
16341   case 80: /*secureTransportClass1*/
16342   case 81: /*secureTransportClass1*/
16343     offset=dissect_gsm_old_SecureTransportArg(FALSE, tvb, offset, actx, tree, -1);
16344     break;
16345     /* undefined 82 */
16346   case 83: /*provideSubscriberLocation*/
16347     offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, actx, tree, -1);
16348     break;
16349   case 84: /*sendGroupCallInfo*/
16350     offset=dissect_gsm_map_gr_SendGroupCallInfoArg(FALSE, tvb, offset, actx, tree, -1);
16351     break;
16352   case 85: /*sendRoutingInfoForLCS*/
16353     offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(FALSE, tvb, offset, actx, tree, -1);
16354     break;
16355   case 86: /*subscriberLocationReport*/
16356     offset=dissect_gsm_map_lcs_SubscriberLocationReport_Arg(FALSE, tvb, offset, actx, tree, -1);
16357     break;
16358   case 87: /*ist-Alert*/
16359     offset=dissect_gsm_map_ch_IST_AlertArg(FALSE, tvb, offset, actx, tree, -1);
16360     break;
16361   case 88: /*ist-Command*/
16362     offset=dissect_gsm_map_ch_IST_CommandArg(FALSE, tvb, offset, actx, tree, -1);
16363     break;
16364   case 89: /*noteMM-Event*/
16365     offset=dissect_gsm_map_ms_NoteMM_EventArg(FALSE, tvb, offset, actx, tree, -1);
16366     break;
16367   case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
16368     offset=dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(FALSE, tvb, offset, actx, tree, -1);
16369     break;
16370   case 110: /*SS-protocol lcs-LocationUpdate*/
16371     offset=dissect_gsm_ss_LCS_LocationUpdateArg(FALSE, tvb, offset, actx, tree, -1);
16372     break;
16373   case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
16374     offset=dissect_gsm_ss_LCS_PeriodicLocationRequestArg(FALSE, tvb, offset, actx, tree, -1);
16375     break;
16376   case 112: /*SS-protocol lcs-AreaEventCancellation*/
16377     offset=dissect_gsm_ss_LCS_AreaEventCancellationArg(FALSE, tvb, offset, actx, tree, -1);
16378     break;
16379   case 113: /*SS-protocol lcs-AreaEventReport*/
16380     offset=dissect_gsm_ss_LCS_AreaEventReportArg(FALSE, tvb, offset, actx, tree, -1);
16381     break;
16382   case 114: /*SS-protocol lcs-AreaEventRequest*/
16383     offset=dissect_gsm_ss_LCS_AreaEventRequestArg(FALSE, tvb, offset, actx, tree, -1);
16384     break;
16385   case 115: /*SS-protocol lcs-MOLR*/
16386     offset=dissect_gsm_ss_LCS_MOLRArg(FALSE, tvb, offset, actx, tree, -1);
16387     break;
16388   case 116: /*SS-protocol lcs-LocationNotification*/
16389     offset=dissect_gsm_ss_LocationNotificationArg(FALSE, tvb, offset, actx, tree, -1);
16390     break;
16391   case 117: /*SS-protocol callDeflection*/
16392     offset=dissect_gsm_ss_CallDeflectionArg(FALSE, tvb, offset, actx, tree, -1);
16393     break;
16394   case 118: /*SS-protocol userUserService*/
16395     offset=dissect_gsm_ss_UserUserServiceArg(FALSE, tvb, offset, actx, tree, -1);
16396     break;
16397   case 119: /*SS-protocol accessRegisterCCEntry*/
16398     offset=dissect_gsm_ss_AccessRegisterCCEntryArg(FALSE, tvb, offset, actx, tree, -1);
16399     break;
16400   case 120: /*SS-protocol forwardCUG-Info*/
16401         application_context_version = 3;
16402     offset=dissect_gsm_ss_ForwardCUG_InfoArg(FALSE, tvb, offset, actx, tree, -1);
16403     break;
16404   case 121: /*SS-protocol splitMPTY no Argument*/
16405     break;
16406   case 122: /*SS-protocol retrieveMPTY no Argument*/
16407     break;
16408   case 123: /*SS-protocol holdMPTY no Argument*/
16409     break;
16410   case 124: /*SS-protocol buildMPTY no Argument*/
16411     break;
16412   case 125: /*SS-protocol forwardChargeAdvice*/
16413     offset=dissect_gsm_ss_ForwardChargeAdviceArg(FALSE, tvb, offset, actx, tree, -1);
16414     break;
16415   case 126: /*SS-protocol explicitCT no Argument*/
16416     break;
16417   default:
16418     cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
16419     proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
16420     expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",opcode);
16421   }
16422   return offset;
16423 }
16424
16425
16426 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
16427
16428   proto_item *cause;
16429         
16430   switch(opcode){
16431   case  2: /*updateLocation*/ 
16432     offset=dissect_mc_message(tvb, offset, actx, tree,    
16433                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
16434                               FALSE, dissect_gsm_map_ms_UpdateLocationRes, -1,
16435                               TRUE , NULL, -1);
16436     break;
16437   case  3: /*cancelLocation*/
16438     offset=dissect_gsm_map_ms_CancelLocationRes(FALSE, tvb, offset, actx, tree, -1);
16439     break;
16440   case  4: /*provideRoamingNumber*/
16441     offset=dissect_gsm_map_ch_ProvideRoamingNumberRes(FALSE, tvb, offset, actx, tree, -1);
16442     break;
16443   case  5: /*noteSubscriberDataModified*/
16444     offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(FALSE, tvb, offset, actx, tree, -1);
16445     break;
16446   case  6: /*resumeCallHandling*/
16447     offset=dissect_gsm_map_ch_ResumeCallHandlingRes(FALSE, tvb, offset, actx, tree, -1);
16448     break;
16449   case  7: /*insertSubscriberData*/
16450     offset=dissect_gsm_map_ms_InsertSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
16451     break;
16452   case  8: /*deleteSubscriberData*/
16453     offset=dissect_gsm_map_ms_DeleteSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
16454     break;
16455         /* TODO find out why this isn't in the ASN1 file
16456   case  9: sendParameters
16457     offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
16458     break;
16459         */
16460   case  10: /*registerSS*/
16461     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
16462     break;
16463   case  11: /*eraseSS*/
16464     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
16465     break;
16466   case 12: /*activateSS*/
16467     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
16468     break;
16469   case 13: /*deactivateSS*/
16470     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
16471     break;
16472   case 14: /*interrogateSS*/
16473     offset=dissect_gsm_map_ss_InterrogateSS_Res(FALSE, tvb, offset, actx, tree, -1);
16474     break;
16475   case 15: /*authenticationFailureReport*/
16476     offset=dissect_gsm_map_ms_AuthenticationFailureReportRes(FALSE, tvb, offset, actx, tree, -1);
16477     break;
16478   case 17: /*registerPassword*/
16479     /* change hf_gsm_map_ss_Code to something with password */
16480     offset=dissect_gsm_old_NewPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
16481     break;
16482   case 18: /*getPassword*/
16483     offset=dissect_gsm_old_CurrentPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_currentPassword);
16484     break;
16485   case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
16486     offset=dissect_gsm_ss_SS_UserData(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData);
16487     break;
16488   case 20: /*releaseResources*/
16489     offset=dissect_gsm_map_ch_ReleaseResourcesRes(FALSE, tvb, offset, actx, tree, -1);
16490     break;
16491   case 21: /*mt-ForwardSM-VGCS*/
16492     offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(FALSE, tvb, offset, actx, tree, -1);
16493     break;
16494   case 22: /*sendRoutingInfo*/ 
16495           if (application_context_version == 3){
16496                   /* If the tag is missing use SendRoutingInfoRes_U */
16497                   offset=dissect_mc_message(tvb, offset, actx, tree,    
16498                               FALSE, NULL, -1,
16499                               FALSE, dissect_gsm_map_ch_SendRoutingInfoRes_U, -1,
16500                               TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
16501           }else{
16502                   offset=dissect_mc_message(tvb, offset, actx, tree,    
16503                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
16504                               FALSE, dissect_gsm_old_SendRoutingInfoResV2, -1,
16505                               TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
16506           }
16507     break;
16508   case 23: /*updateGprsLocation*/
16509     offset=dissect_gsm_map_ms_UpdateGprsLocationRes(FALSE, tvb, offset, actx, tree, -1);
16510     break;
16511   case 24: /*sendRoutingInfoForGprs*/
16512     offset=dissect_gsm_map_ms_SendRoutingInfoForGprsRes(FALSE, tvb, offset, actx, tree, -1);
16513     break;
16514   case 25: /*failureReport*/
16515     offset=dissect_gsm_map_ms_FailureReportRes(FALSE, tvb, offset, actx, tree, -1);
16516     break;
16517   case 26: /*noteMsPresentForGprs*/
16518     offset=dissect_gsm_map_ms_NoteMsPresentForGprsRes(FALSE, tvb, offset, actx, tree, -1);
16519     break;
16520   case 29: /*sendEndSignal*/
16521           /* Taken from MAP-MobileServiceOperations{ 0 identified-organization (4) etsi (0) mobileDomain 
16522            * (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) version9 (9) }
16523            */
16524     offset=dissect_gsm_map_ms_SendEndSignal_Res(FALSE, tvb, offset, actx, tree, -1);
16525     break;
16526   case 31: /*provideSIWFSNumber*/
16527     offset=dissect_gsm_old_ProvideSIWFSNumberRes(FALSE, tvb, offset, actx, tree, -1);
16528     break;
16529   case 32: /*provideSIWFSSignallingModify*/
16530     offset=dissect_gsm_old_SIWFSSignallingModifyRes(FALSE, tvb, offset, actx, tree, -1);
16531     break;
16532   case 39: /*prepareGroupCall*/
16533     offset=dissect_gsm_map_gr_PrepareGroupCallRes(FALSE, tvb, offset, actx, tree, -1);
16534     break;
16535   case 40: /*sendGroupCallEndSignal*/
16536     offset=dissect_gsm_map_gr_SendGroupCallEndSignalRes(FALSE, tvb, offset, actx, tree, -1);
16537     break;
16538   case 43: /*checkIMEI*/ 
16539     offset=dissect_mc_message(tvb, offset, actx, tree,    
16540                               FALSE, dissect_gsm_map_ms_EquipmentStatus, hf_gsm_map_ms_equipmentStatus,
16541                               FALSE, dissect_gsm_map_ms_CheckIMEI_Res, -1,
16542                               TRUE,  NULL, -1);
16543     break;
16544   case 44: /*mt-forwardSM*/
16545     offset=dissect_gsm_map_sm_MT_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1);
16546     break;
16547   case 45: /*sendRoutingInfoForSM*/
16548     offset=dissect_gsm_map_sm_RoutingInfoForSM_Res(FALSE, tvb, offset, actx, tree, -1);
16549     break;
16550   case 46: /*mo-forwardSM*/
16551     offset=dissect_gsm_map_sm_MO_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1);
16552     break;
16553   case 47: /*reportSM-DeliveryStatus*/
16554     offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusRes(FALSE, tvb, offset, actx, tree, -1);
16555     break;
16556   case 48: /*noteSubscriberPresent*/
16557     break;
16558   case 50: /*activateTraceMode*/
16559     offset=dissect_gsm_map_om_ActivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1);
16560     break;
16561   case 51: /*deactivateTraceMode*/
16562     offset=dissect_gsm_map_om_DeactivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1);
16563     break;
16564   case 55: /*sendIdentification */
16565     offset=dissect_mc_message(tvb, offset, actx, tree,    
16566                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
16567                               FALSE, dissect_gsm_old_SendIdentificationResV2, -1,/*undefined*/
16568                               TRUE,  dissect_gsm_map_ms_SendIdentificationRes, -1);
16569     break;
16570   case 56: /*sendAuthenticationInfo*/ 
16571     offset=dissect_mc_message(tvb, offset, actx, tree,    
16572                               FALSE, NULL, -1,
16573                               FALSE, dissect_gsm_old_SendAuthenticationInfoResOld, -1,
16574                               TRUE , dissect_gsm_map_ms_SendAuthenticationInfoRes, -1);
16575     break;
16576   case 57: /*restoreData*/
16577     offset=dissect_gsm_map_ms_RestoreDataRes(FALSE, tvb, offset, actx, tree, -1);
16578     break;
16579   case 58: /*sendIMSI*/
16580     offset=dissect_gsm_map_IMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_ms_imsi);
16581     break;
16582   case 59: /*unstructuredSS-Request*/
16583     offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1);
16584     break;
16585   case 60: /*unstructuredSS-Request*/
16586     offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1);
16587     break;
16588   case 61: /*unstructuredSS-Notify*/
16589     /* TRUE ? */
16590     proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
16591     break;
16592   case 62: /*AnyTimeSubscriptionInterrogation*/
16593     offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationRes(FALSE, tvb, offset, actx, tree, -1);
16594     break;
16595   case 64: /*alertServiceCentre*/
16596     /* TRUE */
16597     break;
16598   case 65: /*AnyTimeModification*/
16599     offset=dissect_gsm_map_ms_AnyTimeModificationRes(FALSE, tvb, offset, actx, tree, -1);
16600     break;
16601   case 66: /*readyForSM*/
16602     offset=dissect_gsm_map_sm_ReadyForSM_Res(FALSE, tvb, offset, actx, tree, -1);
16603     break;
16604   case 67: /*purgeMS*/
16605     offset=dissect_gsm_map_ms_PurgeMS_Res(FALSE, tvb, offset, actx, tree, -1);
16606     break;
16607   case 68: /*prepareHandover*/ 
16608     offset=dissect_mc_message(tvb, offset, actx, tree,    
16609                               FALSE, NULL, -1,
16610                               FALSE, dissect_gsm_old_PrepareHO_ResOld, -1,
16611                               TRUE , dissect_gsm_map_ms_PrepareHO_Res, -1);
16612     break;
16613   case 69: /*prepareSubsequentHandover*/
16614     offset=dissect_mc_message(tvb, offset, actx, tree,    
16615                               FALSE, NULL, -1,
16616                               FALSE, NULL, -1,
16617                               TRUE , dissect_gsm_map_ms_PrepareSubsequentHO_Res, -1);
16618     break;
16619   case 70: /*provideSubscriberInfo*/
16620     offset=dissect_gsm_map_ms_ProvideSubscriberInfoRes(FALSE, tvb, offset, actx, tree, -1);
16621     break;
16622   case 71: /*anyTimeInterrogation*/
16623     offset=dissect_gsm_map_ms_AnyTimeInterrogationRes(FALSE, tvb, offset, actx, tree, -1);
16624     break;
16625   case 72: /*ss-InvocationNotificatio*/
16626     offset=dissect_gsm_map_ss_SS_InvocationNotificationRes(FALSE, tvb, offset, actx, tree, -1);
16627     break;
16628   case 73: /*setReportingState*/
16629     offset=dissect_gsm_map_ch_SetReportingStateRes(FALSE, tvb, offset, actx, tree, -1);
16630     break;
16631   case 74: /*statusReport*/
16632     offset=dissect_gsm_map_ch_StatusReportRes(FALSE, tvb, offset, actx, tree, -1);
16633     break;
16634   case 75: /*remoteUserFree*/
16635     offset=dissect_gsm_map_ch_RemoteUserFreeRes(FALSE, tvb, offset, actx, tree, -1);
16636     break;
16637   case 76: /*registerCC-Entry*/
16638     offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
16639     break;
16640   case 77: /*eraseCC-Entry*/
16641     offset=dissect_gsm_map_ss_EraseCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
16642     break;
16643   case 78: /*secureTransportClass1*/
16644   case 79: /*secureTransportClass2*/
16645   case 80: /*secureTransportClass3*/
16646   case 81: /*secureTransportClass4*/
16647     offset=dissect_gsm_old_SecureTransportRes(FALSE, tvb, offset, actx, tree, -1);
16648     break;
16649   case 83: /*provideSubscriberLocation*/
16650     offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(FALSE, tvb, offset, actx, tree, -1);
16651     break;
16652   case 84: /*sendGroupCallInfo*/
16653     offset=dissect_gsm_map_gr_SendGroupCallInfoRes(FALSE, tvb, offset, actx, tree, -1);
16654     break;
16655   case 85: /*sendRoutingInfoForLCS*/
16656     offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Res(FALSE, tvb, offset, actx, tree, -1);
16657     break;
16658   case 86: /*subscriberLocationReport*/
16659     offset=dissect_gsm_map_lcs_SubscriberLocationReport_Res(FALSE, tvb, offset, actx, tree, -1);
16660     break;
16661   case 87: /*ist-Alert*/
16662     offset=dissect_gsm_map_ch_IST_AlertRes(FALSE, tvb, offset, actx, tree, -1);
16663     break;
16664   case 88: /*ist-Command*/
16665     offset=dissect_gsm_map_ch_IST_CommandRes(FALSE, tvb, offset, actx, tree, -1);
16666     break;
16667   case 89: /*noteMM-Event*/
16668     offset=dissect_gsm_map_ms_NoteMM_EventRes(FALSE, tvb, offset, actx, tree, -1);
16669     break;
16670   case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
16671           /* No parameter */
16672     break;
16673   case 110: /*SS-protocol lcs-LocationUpdate*/
16674           offset=dissect_gsm_ss_LCS_LocationUpdateRes(FALSE, tvb, offset, actx, tree, -1);
16675     break;
16676   case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
16677     offset=dissect_gsm_ss_LCS_PeriodicLocationRequestRes(FALSE, tvb, offset, actx, tree, -1);
16678     break;
16679   case 112: /*SS-protocol lcs-AreaEventCancellation*/
16680     break;
16681   case 113: /*SS-protocol lcs-AreaEventReport*/
16682     break;
16683   case 114: /*SS-protocol lcs-AreaEventRequest No RESULT data*/
16684     break;
16685   case 115: /*SS-protocol lcs-MOLR*/
16686     offset=dissect_gsm_ss_LCS_MOLRRes(FALSE, tvb, offset, actx, tree, -1);
16687     break;
16688   case 116: /*SS-protocol lcs-LocationNotification*/
16689     offset=dissect_gsm_ss_LocationNotificationRes(FALSE, tvb, offset, actx, tree, -1);
16690     break;
16691   case 117: /*SS-protocol callDeflection no RESULT*/
16692     break;
16693   case 118: /*SS-protocol userUserService no RESULT*/
16694     break;
16695   case 119: /*SS-protocol accessRegisterCCEntry*/
16696     offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
16697     break;
16698   case 120: /*SS-protocol forwardCUG-Info*/
16699           /* No RETURN RESULT*/
16700     break;
16701   case 121: /*SS-protocol splitMPTY no RESULT*/
16702     break;
16703   case 122: /*SS-protocol retrieveMPTY no RESULT*/
16704     break;
16705   case 123: /*SS-protocol holdMPTY no RESULT*/
16706     break;
16707   case 124: /*SS-protocol buildMPTY no RESULT*/
16708     break;
16709   case 125: /*SS-protocol forwardChargeAdvice no RESULT*/
16710     break;
16711   case 126: /*SS-protocol explicitCT no RESULT*/
16712     break;
16713
16714  default:
16715    cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
16716    proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
16717    expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",opcode);
16718   }
16719   return offset;
16720 }
16721
16722
16723
16724 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
16725   proto_item *cause;
16726         
16727   switch(errorCode){
16728   case 1: /* UnknownSubscriberParam */
16729           offset=dissect_gsm_map_er_UnknownSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
16730           break;
16731   case 4: /* SecureTransportErrorParam */
16732           offset=dissect_gsm_old_SecureTransportErrorParam(FALSE, tvb, offset, actx, tree, -1);
16733           break;
16734   case 5: /* UnidentifiedSubParam */
16735           offset=dissect_gsm_map_er_UnidentifiedSubParam(FALSE, tvb, offset, actx, tree, -1);
16736           break;
16737   case 6: /* AbsentSubscriberSM-Param */
16738           offset=dissect_gsm_map_er_AbsentSubscriberSM_Param(FALSE, tvb, offset, actx, tree, -1);
16739           break;
16740   case 8: /* RoamingNotAllowedParam */
16741           offset=dissect_gsm_map_er_RoamingNotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
16742           break;
16743   case 9: /* IllegalSubscriberParam */
16744           offset=dissect_gsm_map_er_IllegalSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
16745           break;
16746   case 10: /* BearerServNotProvParam */
16747           offset=dissect_gsm_map_er_BearerServNotProvParam(FALSE, tvb, offset, actx, tree, -1);
16748           break;
16749   case 11: /* TeleservNotProvParam */
16750           offset=dissect_gsm_map_er_TeleservNotProvParam(FALSE, tvb, offset, actx, tree, -1);
16751           break;
16752   case 12: /* IllegalEquipmentParam */
16753           offset=dissect_gsm_map_er_IllegalEquipmentParam(FALSE, tvb, offset, actx, tree, -1);
16754           break;
16755   case 13: /* CallBarredParam */
16756           offset=dissect_gsm_map_er_CallBarredParam(FALSE, tvb, offset, actx, tree, -1);
16757           break;
16758   case 14: /* ForwardingViolationParam */
16759           offset=dissect_gsm_map_er_ForwardingViolationParam(FALSE, tvb, offset, actx, tree, -1);
16760           break;
16761   case 15: /* CUG-RejectParam */
16762           offset=dissect_gsm_map_er_CUG_RejectParam(FALSE, tvb, offset, actx, tree, -1);
16763           break;
16764   case 16: /* IllegalSS-OperationParam */
16765           offset=dissect_gsm_map_er_IllegalSS_OperationParam(FALSE, tvb, offset, actx, tree, -1);
16766           break;
16767   case 17: /* SS-ErrorStatus */
16768           offset=dissect_gsm_map_ss_SS_Status(FALSE, tvb, offset, actx, tree, -1);
16769           break;
16770   case 18: /* SS-NotAvailableParam */
16771           offset=dissect_gsm_map_er_SS_NotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
16772           break;
16773   case 19: /* SS-SubscriptionViolationParam */
16774           offset=dissect_gsm_map_er_SS_SubscriptionViolationParam(FALSE, tvb, offset, actx, tree, -1);
16775           break;
16776   case 20: /* SS-IncompatibilityCause */
16777           offset=dissect_gsm_map_er_SS_IncompatibilityCause(FALSE, tvb, offset, actx, tree, -1);
16778           break;
16779   case 21: /* FacilityNotSupParam */
16780           offset=dissect_gsm_map_er_FacilityNotSupParam(FALSE, tvb, offset, actx, tree, -1);
16781           break;
16782   case 22: /* OngoingGroupCallParam */
16783           offset=dissect_gsm_map_er_OngoingGroupCallParam(FALSE, tvb, offset, actx, tree, -1);
16784           break;
16785   case 27: /* AbsentSubscriberParam */
16786           offset=dissect_gsm_map_er_AbsentSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
16787           break;
16788   case 28: /* IncompatibleTerminalParam */
16789           offset=dissect_gsm_map_er_IncompatibleTerminalParam(FALSE, tvb, offset, actx, tree, -1);
16790           break;
16791   case 29: /* ShortTermDenialParam */
16792           offset=dissect_gsm_map_er_ShortTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
16793           break;
16794   case 30: /* LongTermDenialParam */
16795           offset=dissect_gsm_map_er_LongTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
16796           break;
16797   case 31: /* SubBusyForMT-SMS-Param */
16798           offset=dissect_gsm_map_er_SubBusyForMT_SMS_Param(FALSE, tvb, offset, actx, tree, -1);
16799           break;
16800   case 32: /* SM-DeliveryFailureCause */
16801           offset=dissect_gsm_map_er_SM_DeliveryFailureCause(FALSE, tvb, offset, actx, tree, -1);
16802           break;
16803   case 33: /* MessageWaitListFullParam */
16804           offset=dissect_gsm_map_er_MessageWaitListFullParam(FALSE, tvb, offset, actx, tree, -1);
16805           break;
16806   case 34: /* SystemFailureParam */
16807           offset=dissect_gsm_map_er_SystemFailureParam(FALSE, tvb, offset, actx, tree, -1);
16808           break;
16809   case 35: /* DataMissingParam */
16810           offset=dissect_gsm_map_er_DataMissingParam(FALSE, tvb, offset, actx, tree, -1);
16811           break;
16812   case 36: /* UnexpectedDataParam */
16813           offset=dissect_gsm_map_er_UnexpectedDataParam(FALSE, tvb, offset, actx, tree, -1);
16814           break;
16815   case 37: /* PW-RegistrationFailureCause */
16816           offset=dissect_gsm_map_er_PW_RegistrationFailureCause(FALSE, tvb, offset, actx, tree, -1);
16817           break;
16818   case 39: /* NoRoamingNbParam */
16819           offset=dissect_gsm_map_er_NoRoamingNbParam(FALSE, tvb, offset, actx, tree, -1);
16820           break;
16821   case 40: /* TracingBufferFullParam */
16822           offset=dissect_gsm_map_er_TracingBufferFullParam(FALSE, tvb, offset, actx, tree, -1);
16823           break;
16824   case 42: /* TargetCellOutsideGCA-Param */
16825           offset=dissect_gsm_map_er_TargetCellOutsideGCA_Param(FALSE, tvb, offset, actx, tree, -1);
16826           break;
16827   case 44: /* NumberChangedParam */
16828           offset=dissect_gsm_map_er_NumberChangedParam(FALSE, tvb, offset, actx, tree, -1);
16829           break;
16830   case 45: /* BusySubscriberParam */
16831           offset=dissect_gsm_map_er_BusySubscriberParam(FALSE, tvb, offset, actx, tree, -1);
16832           break;
16833   case 46: /* NoSubscriberReplyParam */
16834           offset=dissect_gsm_map_er_NoSubscriberReplyParam(FALSE, tvb, offset, actx, tree, -1);
16835           break;
16836   case 47: /* ForwardingFailedParam */
16837           offset=dissect_gsm_map_er_ForwardingFailedParam(FALSE, tvb, offset, actx, tree, -1);
16838           break;
16839   case 48: /* OR-NotAllowedParam */
16840           offset=dissect_gsm_map_er_OR_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
16841           break;
16842   case 49: /* ATI-NotAllowedParam */
16843           offset=dissect_gsm_map_er_ATI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
16844           break;
16845   case 50: /* NoGroupCallNbParam */
16846           offset=dissect_gsm_map_er_NoGroupCallNbParam(FALSE, tvb, offset, actx, tree, -1);
16847           break;
16848   case 51: /* ResourceLimitationParam */
16849           offset=dissect_gsm_map_er_ResourceLimitationParam(FALSE, tvb, offset, actx, tree, -1);
16850           break;
16851   case 52: /* UnauthorizedRequestingNetwork-Param */
16852           offset=dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(FALSE, tvb, offset, actx, tree, -1);
16853           break;
16854   case 53: /* UnauthorizedLCSClient-Param */
16855           offset=dissect_gsm_map_er_UnauthorizedLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
16856           break;
16857   case 54: /* PositionMethodFailure-Param */
16858           offset=dissect_gsm_map_er_PositionMethodFailure_Param(FALSE, tvb, offset, actx, tree, -1);
16859           break;
16860   case 58: /* UnknownOrUnreachableLCSClient-Param */
16861           offset=dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
16862           break;
16863   case 59: /* MM-EventNotSupported-Param */
16864           offset=dissect_gsm_map_er_MM_EventNotSupported_Param(FALSE, tvb, offset, actx, tree, -1);
16865           break;
16866   case 60: /* ATSI-NotAllowedParam */
16867           offset=dissect_gsm_map_er_ATSI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
16868           break;
16869   case 61: /* ATM-NotAllowedParam */
16870           offset=dissect_gsm_map_er_ATM_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
16871           break;
16872   case 62: /* InformationNotAvailableParam */
16873           offset=dissect_gsm_map_er_InformationNotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
16874           break;
16875   default:
16876     cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnErrorData blob");
16877     proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
16878     expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",errorCode);
16879     break;
16880   }
16881   return offset;
16882 }
16883
16884 /* Private extension container for PLMN Data */
16885 static void dissect_gsm_mapext_PlmnContainer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) {
16886   proto_item    *item=NULL;
16887   proto_tree    *tree=NULL;
16888   asn1_ctx_t asn1_ctx;
16889   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);  
16890   /* create display subtree for the protocol */
16891   if(parent_tree){
16892     item = proto_tree_add_text(parent_tree, tvb, 0, -1, "MAP Ext. Plmn Container");
16893     tree = proto_item_add_subtree(item, ett_gsm_old_PlmnContainer_U);
16894   }
16895   dissect_gsm_old_PlmnContainer(FALSE, tvb, 0, &asn1_ctx, tree, -1);
16896 }
16897
16898
16899 static guint8 gsmmap_pdu_type = 0;
16900 static guint8 gsm_map_pdu_size = 0;
16901
16902 static int
16903 dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) {
16904
16905   char *version_ptr;
16906   struct tcap_private_t * p_private_tcap;
16907
16908   opcode = 0;
16909   application_context_version = 0;
16910   if (actx->pinfo->private_data != NULL){
16911     p_private_tcap=actx->pinfo->private_data;
16912     if (p_private_tcap->acv==TRUE ){
16913       version_ptr = strrchr(p_private_tcap->oid,'.');
16914       if (version_ptr){
16915                   application_context_version = atoi(version_ptr+1);
16916           }
16917     }
16918   }
16919
16920   gsmmap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
16921   /* Get the length and add 2 */
16922   gsm_map_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
16923
16924   if (check_col(actx->pinfo->cinfo, COL_INFO)){
16925     col_set_str(actx->pinfo->cinfo, COL_INFO, val_to_str(gsmmap_pdu_type, gsm_old_Component_vals, "Unknown GSM-MAP PDU (%u)"));
16926         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " ");
16927   }
16928   offset = dissect_gsm_old_Component(FALSE, tvb, 0, actx, tree, hf_gsm_map_old_Component_PDU);
16929   return offset;
16930 /*
16931   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
16932                               GSMMAPPDU_choice, hf_index, ett_gsm_map_GSMMAPPDU, NULL);
16933 */
16934
16935   return offset;
16936 }
16937
16938 static void
16939 dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
16940 {
16941     proto_item          *item=NULL;
16942     proto_tree          *tree=NULL;
16943     /* Used for gsm_map TAP */
16944     static              gsm_map_tap_rec_t tap_rec;
16945     gint                op_idx;
16946         asn1_ctx_t asn1_ctx;
16947
16948         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
16949
16950
16951     if (check_col(pinfo->cinfo, COL_PROTOCOL))
16952     {
16953         col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
16954     }
16955
16956     top_tree = parent_tree;
16957
16958     /* create display subtree for the protocol */
16959     if(parent_tree){
16960         item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, FALSE);
16961         tree = proto_item_add_subtree(item, ett_gsm_map);
16962     }
16963
16964     dissect_gsm_map_GSMMAPPDU(FALSE, tvb, 0, &asn1_ctx, tree, -1);
16965     match_strval_idx(opcode, gsm_map_opr_code_strings, &op_idx);
16966
16967     tap_rec.invoke = FALSE;
16968     if ( gsmmap_pdu_type  == 1 )
16969         tap_rec.invoke = TRUE;
16970     tap_rec.opr_code_idx = op_idx;
16971     tap_rec.size = gsm_map_pdu_size;
16972
16973     tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
16974 }
16975
16976 const value_string ssCode_vals[] = {
16977   { 0x00, "allSS - all SS" },
16978   { 0x10 ,"allLineIdentificationSS - all line identification SS" },
16979   { 0x11 ,"clip - calling line identification presentation" },
16980   { 0x12 ,"clir - calling line identification restriction" },
16981   { 0x13 ,"colp - connected line identification presentation" },
16982   { 0x14 ,"colr - connected line identification restriction" },
16983   { 0x15 ,"mci - malicious call identification" },
16984   { 0x18 ,"allNameIdentificationSS - all name indentification SS" },
16985   { 0x19 ,"cnap - calling name presentation" },
16986   { 0x20 ,"allForwardingSS - all forwarding SS" },
16987   { 0x21 ,"cfu - call forwarding unconditional" },
16988   { 0x28 ,"allCondForwardingSS - all conditional forwarding SS" },
16989   { 0x29 ,"cfb - call forwarding busy" },
16990   { 0x2a ,"cfnry - call forwarding on no reply" },
16991   { 0x2b ,"cfnrc - call forwarding on mobile subscriber not reachable" },
16992   { 0x24 ,"cd - call deflection" },
16993   { 0x30 ,"allCallOfferingSS - all call offering SS includes also all forwarding SS" },
16994   { 0x31 ,"ect - explicit call transfer" },
16995   { 0x32 ,"mah - mobile access hunting" },
16996   { 0x40 ,"allCallCompletionSS - all Call completion SS" },
16997   { 0x41 ,"cw - call waiting" },
16998   { 0x42 ,"hold - call hold" },
16999   { 0x43 ,"ccbs-A - completion of call to busy subscribers, originating side" },
17000   { 0x44 ,"ccbs-B - completion of call to busy subscribers, destination side" },
17001   { 0x45 ,"mc - multicall" },
17002   { 0x50 ,"allMultiPartySS - all multiparty SS" },
17003   { 0x51 ,"multiPTY - multiparty" },
17004   { 0x60 ,"allCommunityOfInterestSS - all community of interest SS" },
17005   { 0x61 ,"cug - closed user group" },
17006   { 0x70 ,"allChargingSS - all charging SS" },
17007   { 0x71 ,"aoci - advice of charge information" },
17008   { 0x72 ,"aocc - advice of charge charging" },
17009   { 0x80 ,"allAdditionalInfoTransferSS - all additional information transfer SS" },
17010   { 0x81 ,"uus1 - UUS1 user-to-user signalling" },
17011   { 0x82 ,"uus2 - UUS2 user-to-user signalling" },
17012   { 0x83 ,"uus3 - UUS3 user-to-user signalling" },
17013   { 0x90 ,"allCallRestrictionSS - all Callrestriction SS" },
17014   { 0x91 ,"barringOfOutgoingCalls" },
17015   { 0x92 ,"baoc - barring of all outgoing calls" },
17016   { 0x93 ,"boic - barring of outgoing international calls" },
17017   { 0x94 ,"boicExHC - barring of outgoing international calls except those directed to the home PLMN" },
17018   { 0x99 ,"barringOfIncomingCalls" },
17019   { 0x9a ,"baic - barring of all incoming calls" },
17020   { 0x9b ,"bicRoam - barring of incoming calls when roaming outside home PLMN Country" },
17021   { 0xf0 ,"allPLMN-specificSS" },
17022   { 0xa0 ,"allCallPrioritySS - all call priority SS" },
17023   { 0xa1 ,"emlpp - enhanced Multilevel Precedence Pre-emption (EMLPP) service" },
17024   { 0xb0 ,"allLCSPrivacyException - all LCS Privacy Exception Classes" },
17025   { 0xb1 ,"universal - allow location by any LCS client" },
17026   { 0xb2 ,"callrelated - allow location by any value added LCS client to which a call is established from the target MS" },
17027   { 0xb3 ,"callunrelated - allow location by designated external value added LCS clients" },
17028   { 0xb4 ,"plmnoperator - allow location by designated PLMN operator LCS clients" },
17029   { 0xb5 ,"serviceType - allow location by LCS clients of a designated LCS service type" },
17030   { 0xc0 ,"allMOLR-SS - all Mobile Originating Location Request Classes" },
17031   { 0xc1 ,"basicSelfLocation - allow an MS to request its own location" },
17032   { 0xc2 ,"autonomousSelfLocation - allow an MS to perform self location without interaction with the PLMN for a predetermined period of time" },
17033   { 0xc3 ,"transferToThirdParty - allow an MS to request transfer of its location to another LCS client" },
17034
17035   { 0xf1 ,"plmn-specificSS-1" },
17036   { 0xf2 ,"plmn-specificSS-2" },
17037   { 0xf3 ,"plmn-specificSS-3" },
17038   { 0xf4 ,"plmn-specificSS-4" },
17039   { 0xf5 ,"plmn-specificSS-5" },
17040   { 0xf6 ,"plmn-specificSS-6" },
17041   { 0xf7 ,"plmn-specificSS-7" },
17042   { 0xf8 ,"plmn-specificSS-8" },
17043   { 0xf9 ,"plmn-specificSS-9" },
17044   { 0xfa ,"plmn-specificSS-a" },
17045   { 0xfb ,"plmn-specificSS-b" },
17046   { 0xfc ,"plmn-specificSS-c" },
17047   { 0xfd ,"plmn-specificSS-d" },
17048   { 0xfe ,"plmn-specificSS-e" },
17049   { 0xff ,"plmn-specificSS-f" },
17050   { 0, NULL }
17051 };
17052
17053 static const value_string Teleservice_vals[] = {
17054 {0x00, "allTeleservices" },
17055 {0x10, "allSpeechTransmissionServices" },
17056 {0x11, "telephony" },
17057 {0x12, "emergencyCalls" },
17058 {0x20, "allShortMessageServices" },
17059 {0x21, "shortMessageMT-PP" },
17060 {0x22, "shortMessageMO-PP" },
17061 {0x60, "allFacsimileTransmissionServices" },
17062 {0x61, "facsimileGroup3AndAlterSpeech" },
17063 {0x62, "automaticFacsimileGroup3" },
17064 {0x63, "facsimileGroup4" },
17065
17066 {0x70, "allDataTeleservices" },
17067 {0x80, "allTeleservices-ExeptSMS" },
17068
17069 {0x90, "allVoiceGroupCallServices" },
17070 {0x91, "voiceGroupCall" },
17071 {0x92, "voiceBroadcastCall" },
17072
17073 {0xd0, "allPLMN-specificTS" },
17074 {0xd1, "plmn-specificTS-1" },
17075 {0xd2, "plmn-specificTS-2" },
17076 {0xd3, "plmn-specificTS-3" },
17077 {0xd4, "plmn-specificTS-4" },
17078 {0xd5, "plmn-specificTS-5" },
17079 {0xd6, "plmn-specificTS-6" },
17080 {0xd7, "plmn-specificTS-7" },
17081 {0xd8, "plmn-specificTS-8" },
17082 {0xd9, "plmn-specificTS-9" },
17083 {0xda, "plmn-specificTS-A" },
17084 {0xdb, "plmn-specificTS-B" },
17085 {0xdc, "plmn-specificTS-C" },
17086 {0xdd, "plmn-specificTS-D" },
17087 {0xde, "plmn-specificTS-E" },
17088 {0xdf, "plmn-specificTS-F" },
17089   { 0, NULL }
17090 };
17091
17092 static const value_string Bearerservice_vals[] = {
17093 {0x00, "allBearerServices" },
17094 {0x10, "allDataCDA-Services" },
17095 {0x11, "dataCDA-300bps" },
17096 {0x12, "dataCDA-1200bps" },
17097 {0x13, "dataCDA-1200-75bps" },
17098 {0x14, "dataCDA-2400bps" },
17099 {0x15, "dataCDA-4800bps" },
17100 {0x16, "dataCDA-9600bps" },
17101 {0x17, "general-dataCDA" },
17102
17103 {0x18, "allDataCDS-Services" },
17104 {0x1A, "dataCDS-1200bps" },
17105 {0x1C, "dataCDS-2400bps" },
17106 {0x1D, "dataCDS-4800bps" },
17107 {0x1E, "dataCDS-9600bps" },
17108 {0x1F, "general-dataCDS" },
17109
17110 {0x20, "allPadAccessCA-Services" },
17111 {0x21, "padAccessCA-300bps" },
17112 {0x22, "padAccessCA-1200bps" },
17113 {0x23, "padAccessCA-1200-75bps" },
17114 {0x24, "padAccessCA-2400bps" },
17115 {0x25, "padAccessCA-4800bps" },
17116 {0x26, "padAccessCA-9600bps" },
17117 {0x27, "general-padAccessCA" },
17118
17119 {0x28, "allDataPDS-Services" },
17120 {0x2C, "dataPDS-2400bps" },
17121 {0x2D, "dataPDS-4800bps" },
17122 {0x2E, "dataPDS-9600bps" },
17123 {0x2F, "general-dataPDS" },
17124
17125 {0x30, "allAlternateSpeech-DataCDA" },
17126 {0x38, "allAlternateSpeech-DataCDS" },
17127 {0x40, "allSpeechFollowedByDataCDA" },
17128 {0x48, "allSpeechFollowedByDataCDS" },
17129
17130 {0x50, "allDataCircuitAsynchronous" },
17131 {0x60, "allAsynchronousServices" },
17132 {0x58, "allDataCircuitSynchronous" },
17133 {0x68, "allSynchronousServices" },
17134
17135 {0xD0, "allPLMN-specificBS" },
17136 {0xD1, "plmn-specificBS-1" },
17137 {0xD2, "plmn-specificBS-2" },
17138 {0xD3, "plmn-specificBS-3" },
17139 {0xD4, "plmn-specificBS-4" },
17140 {0xD5, "plmn-specificBS-5" },
17141 {0xD6, "plmn-specificBS-6" },
17142 {0xD7, "plmn-specificBS-7" },
17143 {0xD8, "plmn-specificBS-8" },
17144 {0xD9, "plmn-specificBS-9" },
17145 {0xDA, "plmn-specificBS-A" },
17146 {0xDB, "plmn-specificBS-B" },
17147 {0xDC, "plmn-specificBS-C" },
17148 {0xDD, "plmn-specificBS-D" },
17149 {0xDE, "plmn-specificBS-E" },
17150 {0xDF, "plmn-specificBS-F" },
17151
17152 { 0, NULL }
17153 };
17154
17155 /* ForwardingOptions 
17156
17157 -- bit 8: notification to forwarding party
17158 -- 0 no notification
17159 -- 1 notification
17160 */
17161 static const true_false_string notification_value  = {
17162   "Notification",
17163   "No notification"
17164 };
17165 /*
17166 -- bit 7: redirecting presentation
17167 -- 0 no presentation
17168 -- 1 presentation
17169 */
17170 static const true_false_string redirecting_presentation_value  = {
17171   "Presentation",
17172   "No presentationn"
17173 };
17174 /*
17175 -- bit 6: notification to calling party
17176 -- 0 no notification
17177 -- 1 notification
17178 */
17179 /*
17180 -- bit 5: 0 (unused)
17181 -- bits 43: forwarding reason
17182 -- 00 ms not reachable
17183 -- 01 ms busy
17184 -- 10 no reply
17185 -- 11 unconditional when used in a SRI Result,
17186 -- or call deflection when used in a RCH Argument
17187 */
17188 static const value_string forwarding_reason_values[] = {
17189 {0x0, "ms not reachable" },
17190 {0x1, "ms busy" },
17191 {0x2, "no reply" },
17192 {0x3, "unconditional when used in a SRI Result or call deflection when used in a RCH Argument" },
17193 { 0, NULL }
17194 };
17195 /*
17196 -- bits 21: 00 (unused)
17197 */
17198
17199 static const value_string pdp_type_org_values[] = {
17200 {0x0, "ETSI" },
17201 {0x1, "IETF" },
17202 {0xf, "Empty PDP type" },
17203 { 0, NULL }
17204 };
17205
17206 static const value_string etsi_pdp_type_number_values[] = {
17207 {0x0, "Reserved, used in earlier version of this protocol" },
17208 {0x1, "PPP" },
17209 { 0, NULL }
17210 };
17211
17212 static const value_string ietf_pdp_type_number_values[] = {
17213 {0x21, "IPv4 Address" },
17214 {0x57, "IPv6 Address" },
17215 { 0, NULL }
17216 };
17217
17218 /*
17219 ChargingCharacteristics ::= OCTET STRING (SIZE (2))
17220 -- Octets are coded according to 3GPP TS 32.015.
17221 -- From 3GPP TS 32.015.
17222 --
17223 -- Descriptions for the bits of the flag set:
17224 --
17225 -- Bit 1: H (Hot billing) := '00000001'B
17226 -- Bit 2: F (Flat rate) := '00000010'B
17227 -- Bit 3: P (Prepaid service) := '00000100'B
17228 -- Bit 4: N (Normal billing) := '00001000'B
17229 -- Bit 5: - (Reserved, set to 0) := '00010000'B
17230 -- Bit 6: - (Reserved, set to 0) := '00100000'B
17231 -- Bit 7: - (Reserved, set to 0) := '01000000'B
17232 -- Bit 8: - (Reserved, set to 0) := '10000000'B
17233 */
17234 static const value_string chargingcharacteristics_values[] = {
17235 {0x1, "H (Hot billing)" },
17236 {0x2, "F (Flat rate)" },
17237 {0x4, "P (Prepaid service)" },
17238 {0x8, "N (Normal billing)" },
17239 { 0, NULL }
17240 };
17241
17242 /*--- proto_reg_handoff_gsm_map ---------------------------------------*/
17243 static void range_delete_callback(guint32 ssn)
17244 {
17245     if (ssn) {
17246         delete_itu_tcap_subdissector(ssn, map_handle);
17247     }
17248 }
17249
17250 static void range_add_callback(guint32 ssn)
17251 {
17252     if (ssn) {
17253         add_itu_tcap_subdissector(ssn, map_handle);
17254     }
17255 }
17256
17257 void proto_reg_handoff_gsm_map(void) {
17258
17259     static gboolean map_prefs_initialized = FALSE;
17260     static range_t *ssn_range;
17261
17262     if (!map_prefs_initialized) {
17263         map_prefs_initialized = TRUE;
17264         data_handle = find_dissector("data");
17265         ranap_handle = find_dissector("ranap");
17266         dtap_handle = find_dissector("gsm_a_dtap");
17267
17268         map_handle = find_dissector("gsm_map");
17269         register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map,"networkLocUpContext-v3");  
17270         register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"networkLocUpContext-v2" );
17271         register_ber_oid_dissector_handle("0.4.0.0.1.0.1.1", map_handle, proto_gsm_map,"networkLocUpContext-v1" );
17272         register_ber_oid_dissector_handle("0.4.0.0.1.0.2.3", map_handle, proto_gsm_map,"locationCancellationContext-v3" );
17273         register_ber_oid_dissector_handle("0.4.0.0.1.0.2.2", map_handle, proto_gsm_map,"locationCancellationContext-v2" );
17274         register_ber_oid_dissector_handle("0.4.0.0.1.0.2.1", map_handle, proto_gsm_map,"locationCancellationContext-v1" );
17275         register_ber_oid_dissector_handle("0.4.0.0.1.0.3.3", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v3" );
17276         register_ber_oid_dissector_handle("0.4.0.0.1.0.3.2", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v2" );
17277         register_ber_oid_dissector_handle("0.4.0.0.1.0.3.1", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v1" );
17278         register_ber_oid_dissector_handle("0.4.0.0.1.0.4.3", map_handle, proto_gsm_map,"istAlertingContext-v3" );
17279         register_ber_oid_dissector_handle("0.4.0.0.1.0.5.3", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v3" );
17280         register_ber_oid_dissector_handle("0.4.0.0.1.0.5.2", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v2" );
17281         register_ber_oid_dissector_handle("0.4.0.0.1.0.5.1", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v1" );
17282         register_ber_oid_dissector_handle("0.4.0.0.1.0.6.4", map_handle, proto_gsm_map,"callControlTransferContext-v4" );
17283         register_ber_oid_dissector_handle("0.4.0.0.1.0.6.3", map_handle, proto_gsm_map,"callControlTransferContext-v3" );
17284         register_ber_oid_dissector_handle("0.4.0.0.1.0.7.3", map_handle, proto_gsm_map,"reportingContext-v3" );
17285         register_ber_oid_dissector_handle("0.4.0.0.1.0.8.3", map_handle, proto_gsm_map,"callCompletionContext-v3" );
17286         register_ber_oid_dissector_handle("0.4.0.0.1.0.9.3", map_handle, proto_gsm_map,"serviceTerminationContext-v3" );
17287         register_ber_oid_dissector_handle("0.4.0.0.1.0.10.2", map_handle, proto_gsm_map,"resetContext-v2" );
17288         register_ber_oid_dissector_handle("0.4.0.0.1.0.10.1", map_handle, proto_gsm_map,"resetContext-v1" );
17289         register_ber_oid_dissector_handle("0.4.0.0.1.0.11.3", map_handle, proto_gsm_map,"handoverControlContext-v3" );
17290         register_ber_oid_dissector_handle("0.4.0.0.1.0.11.2", map_handle, proto_gsm_map,"handoverControlContext-v2" );
17291         register_ber_oid_dissector_handle("0.4.0.0.1.0.11.1", map_handle, proto_gsm_map,"handoverControlContext-v1" );
17292         register_ber_oid_dissector_handle("0.4.0.0.1.0.12.3", map_handle, proto_gsm_map,"sIWFSAllocationContext-v3" );
17293         register_ber_oid_dissector_handle("0.4.0.0.1.0.13.3", map_handle, proto_gsm_map,"equipmentMngtContext-v3" );
17294         register_ber_oid_dissector_handle("0.4.0.0.1.0.13.2", map_handle, proto_gsm_map,"equipmentMngtContext-v2" );
17295         register_ber_oid_dissector_handle("0.4.0.0.1.0.13.1", map_handle, proto_gsm_map,"equipmentMngtContext-v1" );
17296         register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"infoRetrievalContext-v3" );
17297         register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"infoRetrievalContext-v2" );
17298         register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"infoRetrievalContext-v1" );
17299         /* fallback to infoRetrieval(14) version1(1) and not interVlrInfoRetrieval(15) version1(1) */
17300         /*register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"map-ac interVlrInfoRetrieval(15) version1(1)" );*/
17301         register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v2" );
17302         register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v3" );
17303         register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"subscriberDataMngtContext-v3" );
17304         register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"subscriberDataMngtContext-v2" );
17305         register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"subscriberDataMngtContext-v1" );
17306         register_ber_oid_dissector_handle("0.4.0.0.1.0.17.3", map_handle, proto_gsm_map,"tracingContext-v3" );
17307         register_ber_oid_dissector_handle("0.4.0.0.1.0.17.2", map_handle, proto_gsm_map,"tracingContext-v2" );
17308         register_ber_oid_dissector_handle("0.4.0.0.1.0.17.1", map_handle, proto_gsm_map,"tracingContext-v1" );
17309         register_ber_oid_dissector_handle("0.4.0.0.1.0.18.2", map_handle, proto_gsm_map,"networkFunctionalSsContext-v2" );
17310         register_ber_oid_dissector_handle("0.4.0.0.1.0.18.1", map_handle, proto_gsm_map,"networkFunctionalSsContext-v1" );
17311         register_ber_oid_dissector_handle("0.4.0.0.1.0.19.2", map_handle, proto_gsm_map,"networkUnstructuredSsContext-v2" );
17312         register_ber_oid_dissector_handle("0.4.0.0.1.0.20.3", map_handle, proto_gsm_map,"shortMsgGatewayContext-v3" );
17313         register_ber_oid_dissector_handle("0.4.0.0.1.0.20.2", map_handle, proto_gsm_map,"shortMsgGatewayContext-v2" );
17314         register_ber_oid_dissector_handle("0.4.0.0.1.0.20.1", map_handle, proto_gsm_map,"shortMsgGatewayContext-v1" );
17315         register_ber_oid_dissector_handle("0.4.0.0.1.0.21.3", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v3" );
17316         register_ber_oid_dissector_handle("0.4.0.0.1.0.21.2", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v2" );
17317         register_ber_oid_dissector_handle("0.4.0.0.1.0.21.1", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v1" );
17318         register_ber_oid_dissector_handle("0.4.0.0.1.0.22.3", map_handle, proto_gsm_map,"subscriberDataModificationNotificationContext-v3" );
17319         register_ber_oid_dissector_handle("0.4.0.0.1.0.23.2", map_handle, proto_gsm_map,"shortMsgAlertContext-v2" );
17320         register_ber_oid_dissector_handle("0.4.0.0.1.0.23.1", map_handle, proto_gsm_map,"shortMsgAlertContext-v1" );
17321         register_ber_oid_dissector_handle("0.4.0.0.1.0.24.3", map_handle, proto_gsm_map,"mwdMngtContext-v3" );
17322         register_ber_oid_dissector_handle("0.4.0.0.1.0.24.2", map_handle, proto_gsm_map,"mwdMngtContext-v2" );
17323         register_ber_oid_dissector_handle("0.4.0.0.1.0.24.1", map_handle, proto_gsm_map,"mwdMngtContext-v1" );
17324         register_ber_oid_dissector_handle("0.4.0.0.1.0.25.3", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v3" );
17325         register_ber_oid_dissector_handle("0.4.0.0.1.0.25.2", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v2" );
17326         register_ber_oid_dissector_handle("0.4.0.0.1.0.26.2", map_handle, proto_gsm_map,"imsiRetrievalContext-v2" );
17327         register_ber_oid_dissector_handle("0.4.0.0.1.0.27.2", map_handle, proto_gsm_map,"msPurgingContext-v2" );
17328         register_ber_oid_dissector_handle("0.4.0.0.1.0.27.3", map_handle, proto_gsm_map,"msPurgingContext-v3" );
17329         register_ber_oid_dissector_handle("0.4.0.0.1.0.28.3", map_handle, proto_gsm_map,"subscriberInfoEnquiryContext-v3" );
17330         register_ber_oid_dissector_handle("0.4.0.0.1.0.29.3", map_handle, proto_gsm_map,"anyTimeInfoEnquiryContext-v3" );
17331         register_ber_oid_dissector_handle("0.4.0.0.1.0.31.3", map_handle, proto_gsm_map,"groupCallControlContext-v3" );
17332         register_ber_oid_dissector_handle("0.4.0.0.1.0.32.3", map_handle, proto_gsm_map,"gprsLocationUpdateContext-v3" );
17333         register_ber_oid_dissector_handle("0.4.0.0.1.0.33.4", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v4" );
17334         register_ber_oid_dissector_handle("0.4.0.0.1.0.33.3", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v3" );
17335         register_ber_oid_dissector_handle("0.4.0.0.1.0.34.3", map_handle, proto_gsm_map,"failureReportContext-v3" );
17336         register_ber_oid_dissector_handle("0.4.0.0.1.0.35.3", map_handle, proto_gsm_map,"gprsNotifyContext-v3" );
17337         register_ber_oid_dissector_handle("0.4.0.0.1.0.36.3", map_handle, proto_gsm_map,"ss-InvocationNotificationContext-v3" );
17338         register_ber_oid_dissector_handle("0.4.0.0.1.0.37.3", map_handle, proto_gsm_map,"locationSvcGatewayContext-v3" );
17339         register_ber_oid_dissector_handle("0.4.0.0.1.0.38.3", map_handle, proto_gsm_map,"locationSvcEnquiryContext-v3" );
17340         register_ber_oid_dissector_handle("0.4.0.0.1.0.39.3", map_handle, proto_gsm_map,"authenticationFailureReportContext-v3" );
17341         register_ber_oid_dissector_handle("0.4.0.0.1.0.40.3", map_handle, proto_gsm_map,"secureTransportHandlingContext-v3" );
17342         register_ber_oid_dissector_handle("0.4.0.0.1.0.41.3", map_handle, proto_gsm_map,"shortMsgMT-Relay-VGCS-Context-v3" );
17343         register_ber_oid_dissector_handle("0.4.0.0.1.0.42.3", map_handle, proto_gsm_map,"mm-EventReportingContext-v3" );
17344         register_ber_oid_dissector_handle("0.4.0.0.1.0.43.3", map_handle, proto_gsm_map,"anyTimeInfoHandlingContext-v3" );
17345         register_ber_oid_dissector_handle("0.4.0.0.1.0.44.3", map_handle, proto_gsm_map,"resourceManagementContext-v3" );
17346         register_ber_oid_dissector_handle("0.4.0.0.1.0.45.3", map_handle, proto_gsm_map,"groupCallInfoRetrievalContext-v3" );
17347         /* Private extension container */
17348         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" );
17349     }
17350     else {
17351         range_foreach(ssn_range, range_delete_callback);
17352         g_free(ssn_range);
17353     }
17354
17355     ssn_range = range_copy(global_ssn_range);
17356     range_foreach(ssn_range, range_add_callback);
17357
17358 }
17359
17360 /*--- proto_register_gsm_map -------------------------------------------*/
17361 void proto_register_gsm_map(void) {
17362         module_t *gsm_map_module;
17363
17364   /* List of fields */
17365   static hf_register_info hf[] = {
17366       { &hf_gsm_map_old_Component_PDU,
17367         { "Component", "gsm_map.old.Component",
17368           FT_UINT32, BASE_DEC, VALS(gsm_old_Component_vals), 0,
17369           "gsm_map.old.Component", HFILL }},
17370       { &hf_gsm_map_getPassword,
17371         { "getPassword", "gsm_map.getPassword",
17372           FT_BYTES, BASE_HEX, NULL, 0,
17373           "getPassword", HFILL }},
17374       { &hf_gsm_map_currentPassword,
17375         { "currentPassword", "gsm_map.currentPassword",
17376           FT_STRING, BASE_NONE, NULL, 0,
17377           "", HFILL }},
17378       { &hf_gsm_map_extension,
17379         { "Extension", "gsm_map.extension",
17380           FT_BOOLEAN, 8, TFS(&gsm_map_extension_value), 0x80,
17381           "Extension", HFILL }},
17382       { &hf_gsm_map_nature_of_number,
17383         { "Nature of number", "gsm_map.nature_of_number",
17384           FT_UINT8, BASE_HEX, VALS(gsm_map_nature_of_number_values), 0x70,
17385           "Nature of number", HFILL }},
17386       { &hf_gsm_map_number_plan,
17387         { "Number plan", "gsm_map.number_plan",
17388           FT_UINT8, BASE_HEX, VALS(gsm_map_number_plan_values), 0x0f,
17389           "Number plan", HFILL }},
17390       { &hf_gsm_map_isdn_address_digits,
17391         { "ISDN Address digits", "gsm_map.isdn.address.digits",
17392           FT_STRING, BASE_NONE, NULL, 0,
17393           "ISDN Address digits", HFILL }},
17394       { &hf_gsm_map_address_digits,
17395         { "Address digits", "gsm_map.address.digits",
17396           FT_STRING, BASE_NONE, NULL, 0,
17397           "Address digits", HFILL }},
17398       { &hf_gsm_map_servicecentreaddress_digits,
17399         { "ServiceCentreAddress digits", "gsm_map.servicecentreaddress_digits",
17400           FT_STRING, BASE_NONE, NULL, 0,
17401           "ServiceCentreAddress digits", HFILL }},
17402       { &hf_gsm_map_imsi_digits,
17403         { "IMSI digits", "gsm_map.imsi_digits",
17404           FT_STRING, BASE_NONE, NULL, 0,
17405           "IMSI digits", HFILL }},
17406       { &hf_gsm_map_TBCD_digits,
17407         { "TBCD digits", "gsm_map.imsi_digits",
17408           FT_STRING, BASE_NONE, NULL, 0,
17409           "TBCD digits", HFILL }},
17410       { &hf_gsm_map_Ss_Status_unused,
17411         { "Unused", "gsm_map.unused",
17412           FT_UINT8, BASE_HEX, NULL, 0xf0,
17413           "Unused", HFILL }},
17414       { &hf_gsm_map_Ss_Status_q_bit,
17415         { "Q bit", "gsm_map.ss_status_q_bit",
17416           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_q_bit_values), 0x08,
17417           "Q bit", HFILL }},
17418       { &hf_gsm_map_Ss_Status_p_bit,
17419         { "P bit", "gsm_map.ss_status_p_bit",
17420           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_p_values), 0x04,
17421           "P bit", HFILL }},
17422       { &hf_gsm_map_Ss_Status_r_bit,
17423         { "R bit", "gsm_map.ss_status_r_bit",
17424           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_r_values), 0x02,
17425           "R bit", HFILL }},
17426       { &hf_gsm_map_Ss_Status_a_bit,
17427         { "A bit", "gsm_map.ss_status_a_bit",
17428           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_a_values), 0x01,
17429           "A bit", HFILL }},
17430       { &hf_gsm_map_notification_to_forwarding_party,
17431         { "Notification to forwarding party", "gsm_map.notification_to_forwarding_party",
17432           FT_BOOLEAN, 8, TFS(&notification_value), 0x80,
17433           "Notification to forwarding party", HFILL }},
17434       { &hf_gsm_map_redirecting_presentation,
17435         { "Redirecting presentation", "gsm_map.redirecting_presentation",
17436           FT_BOOLEAN, 8, TFS(&redirecting_presentation_value), 0x40,
17437           "Redirecting presentation", HFILL }},
17438       { &hf_gsm_map_notification_to_calling_party,
17439         { "Notification to calling party", "gsm_map.notification_to_clling_party",
17440           FT_BOOLEAN, 8, TFS(&notification_value), 0x20,
17441           "Notification to calling party", HFILL }},
17442       { &hf_gsm_map_forwarding_reason,
17443         { "Forwarding reason", "gsm_map.forwarding_reason",
17444           FT_UINT8, BASE_HEX, VALS(forwarding_reason_values), 0x0c,
17445           "forwarding reason", HFILL }},
17446       { &hf_gsm_map_pdp_type_org,
17447         { "PDP Type Organization", "gsm_map.pdp_type_org",
17448           FT_UINT8, BASE_HEX, VALS(pdp_type_org_values), 0x0f,
17449           "PDP Type Organization", HFILL }},
17450       { &hf_gsm_map_etsi_pdp_type_number,
17451         { "PDP Type Number", "gsm_map.pdp_type_org",
17452           FT_UINT8, BASE_HEX, VALS(etsi_pdp_type_number_values), 0,
17453           "ETSI PDP Type Number", HFILL }},
17454       { &hf_gsm_map_ietf_pdp_type_number,
17455         { "PDP Type Number", "gsm_map.ietf_pdp_type_number",
17456           FT_UINT8, BASE_HEX, VALS(ietf_pdp_type_number_values), 0,
17457           "IETF PDP Type Number", HFILL }},
17458       { &hf_gsm_map_ext_qos_subscribed_pri,
17459         { "Allocation/Retention priority", "gsm_map.ext_qos_subscribed_pri",
17460           FT_UINT8, BASE_DEC, NULL, 0xff,
17461           "Allocation/Retention priority", HFILL }},
17462       { &hf_gsm_map_qos_traffic_cls,
17463         { "Traffic class", "gsm_map.qos.traffic_cls",
17464           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0xe0,
17465           "Traffic class", HFILL }},
17466       { &hf_gsm_map_qos_del_order,
17467         { "Delivery order", "gsm_map.qos.del_order",
17468           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0x18,
17469           "Delivery order", HFILL }},
17470       { &hf_gsm_map_qos_del_of_err_sdu,
17471         { "Delivery of erroneous SDUs", "gsm_map.qos.del_of_err_sdu",
17472           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_del_of_err_sdu_vals), 0x03,
17473           "Delivery of erroneous SDUs", HFILL }},
17474       { &hf_gsm_map_qos_ber,
17475         { "Residual Bit Error Rate (BER)", "gsm_map.qos.ber",
17476           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_ber_vals), 0xf0,
17477           "Residual Bit Error Rate (BER)", HFILL }},
17478       { &hf_gsm_map_qos_sdu_err_rat,
17479         { "SDU error ratio", "gsm_map.qos.sdu_err_rat",
17480           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_sdu_err_rat_vals), 0x0f,
17481           "SDU error ratio", HFILL }},
17482       { &hf_gsm_map_qos_traff_hdl_pri,
17483         { "Traffic handling priority", "gsm_map.qos.traff_hdl_pri",
17484           FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traff_hdl_pri_vals), 0x03,
17485           "Traffic handling priority", HFILL }},
17486       
17487       { &hf_gsm_map_qos_max_sdu,
17488         { "Maximum SDU size", "gsm_map.qos.max_sdu",
17489           FT_UINT32, BASE_DEC, NULL, 0x0,
17490           "Maximum SDU size", HFILL }},         
17491       { &hf_gsm_map_max_brate_ulink,
17492         { "Maximum bit rate for uplink in kbit/s", "gsm_map.qos.max_brate_ulink",
17493           FT_UINT32, BASE_DEC, NULL, 0x0,
17494           "Maximum bit rate for uplink", HFILL }},
17495       { &hf_gsm_map_max_brate_dlink,
17496         { "Maximum bit rate for downlink in kbit/s", "gsm_map.qos.max_brate_dlink",
17497           FT_UINT32, BASE_DEC, NULL, 0x0,
17498           "Maximum bit rate for downlink", HFILL }},
17499       { &hf_gsm_map_qos_transfer_delay,
17500         { "Transfer delay (Raw data see TS 24.008 for interpretation)", "gsm_map.qos.transfer_delay",
17501           FT_UINT8, BASE_DEC, NULL, 0xfc,
17502           "Transfer delay", HFILL }},
17503       { &hf_gsm_map_guaranteed_max_brate_ulink,
17504         { "Guaranteed bit rate for uplink in kbit/s", "gsm_map.qos.brate_ulink",
17505           FT_UINT32, BASE_DEC, NULL, 0x0,
17506           "Guaranteed bit rate for uplink", HFILL }},
17507       { &hf_gsm_map_guaranteed_max_brate_dlink,
17508         { "Guaranteed bit rate for downlink in kbit/s", "gsm_map.qos.brate_dlink",
17509           FT_UINT32, BASE_DEC, NULL, 0x0,
17510           "Guaranteed bit rate for downlink", HFILL }},
17511       { &hf_gsm_map_GSNAddress_IPv4,
17512         { "GSN-Address IPv4",  "gsm_map.gsnaddress_ipv4",
17513           FT_IPv4, BASE_NONE, NULL, 0,
17514           "IPAddress IPv4", HFILL }},
17515       { &hf_gsm_map_GSNAddress_IPv6,
17516         { "GSN Address IPv6",  "gsm_map.gsnaddress_ipv6",
17517           FT_IPv4, BASE_NONE, NULL, 0,
17518           "IPAddress IPv6", HFILL }},
17519       { &hf_gsm_map_ranap_service_Handover,
17520         { "service-Handover", "gsm_map.ranap.service_Handover",
17521           FT_UINT32, BASE_DEC, VALS(ranap_Service_Handover_vals), 0,
17522           "gsm_map.ranap.Service_Handover", HFILL }},
17523       { &hf_gsm_map_IntegrityProtectionInformation,
17524         { "IntegrityProtectionInformation", "gsm_map.ranap.IntegrityProtectionInformation",
17525           FT_NONE, BASE_NONE, NULL, 0,
17526           "gsm_map.ranap.IntegrityProtectionInformation", HFILL }},
17527       { &hf_gsm_map_EncryptionInformation,
17528         { "EncryptionInformation", "gsm_map.ranap.EncryptionInformation",
17529           FT_NONE, BASE_NONE, NULL, 0,
17530           "gsm_map.ranap.EncryptionInformation", HFILL }},
17531       { &hf_gsm_map_PlmnContainer_PDU,
17532         { "PlmnContainer", "gsm_map.PlmnContainer",
17533           FT_NONE, BASE_NONE, NULL, 0,
17534           "gsm_map.PlmnContainer", HFILL }},
17535       { &hf_gsm_map_ss_SS_UserData,
17536         { "SS-UserData", "gsm_ss.SS_UserData",
17537           FT_STRING, BASE_NONE, NULL, 0,
17538           "gsm_map.ss.SS_UserData", HFILL }},
17539       { &hf_gsm_map_cbs_coding_grp,
17540         { "Coding Group","gsm_map.cbs.coding_grp",
17541           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_data_coding_scheme_coding_grp_vals), 0xf0,          
17542           "Coding Group", HFILL }
17543       },
17544       { &hf_gsm_map_cbs_coding_grp0_lang,
17545         { "Language","gsm_map.cbs.coding_grp0_lang",
17546           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp0_lang_vals), 0x0f,          
17547           "Language", HFILL }
17548       },
17549       { &hf_gsm_map_cbs_coding_grp1_lang,
17550         { "Language","gsm_map.cbs.coding_grp1_lang",
17551           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp1_lang_vals), 0x0f,          
17552           "Language", HFILL }
17553       },
17554       { &hf_gsm_map_cbs_coding_grp2_lang,
17555         { "Language","gsm_map.cbs.coding_grp2_lang",
17556           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp2_lang_vals), 0x0f,          
17557           "Language", HFILL }
17558       },
17559       { &hf_gsm_map_cbs_coding_grp3_lang,
17560         { "Language","gsm_map.cbs.coding_grp3_lang",
17561           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp3_lang_vals), 0x0f,          
17562           "Language", HFILL }
17563       },
17564       { &hf_gsm_map_cbs_coding_grp4_7_comp,
17565         { "Compressed indicator","gsm_map.cbs.coding_grp4_7_comp",
17566           FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_comp_vals), 0x20,          
17567           "Compressed indicator", HFILL }
17568       },
17569       { &hf_gsm_map_cbs_coding_grp4_7_class_ind,
17570         { "Message Class present","gsm_map.cbs.coding_grp4_7_class_ind",
17571           FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_class_ind_vals), 0x10,          
17572           "Message Class present", HFILL }
17573       },
17574       { &hf_gsm_map_cbs_coding_grp4_7_char_set,
17575         { "Character set being used","gsm_map.cbs.coding_grp4_7_char_set",
17576           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_char_set_vals), 0x0c,          
17577           "Character set being used", HFILL }
17578       },
17579       { &hf_gsm_map_cbs_coding_grp4_7_class,
17580         { "Message Class","gsm_map.cbs.coding_grp4_7_class",
17581           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_class_vals), 0x03,          
17582           "Message Class", HFILL }
17583       },
17584       { &hf_gsm_map_cbs_coding_grp15_mess_code,
17585         { "Message coding","gsm_map.cbs.cbs_coding_grp15_mess_code",
17586           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_mess_code_vals), 0x04,          
17587           "Message coding", HFILL }
17588       },
17589       { &hf_gsm_map_cbs_coding_grp15_class,
17590         { "Message Class","gsm_map.cbs.gsm_map_cbs_coding_grp15_class",
17591           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_class_vals), 0x03,          
17592           "Message Class", HFILL }
17593       },
17594       { &hf_gsm_map_tmsi,
17595         { "tmsi", "gsm_map.tmsi",
17596           FT_BYTES, BASE_HEX, NULL, 0,
17597           "gsm_map.TMSI", HFILL }},
17598       
17599       { &hf_gsm_map_ie_tag,
17600         { "Tag", "gsm_map.ie_tag",
17601           FT_UINT8, BASE_DEC, VALS(gsm_map_tag_vals), 0,
17602           "GSM 04.08 tag", HFILL }},
17603       { &hf_gsm_map_len,
17604         { "Length", "gsm_map.length",
17605           FT_UINT8, BASE_DEC, NULL, 0,
17606           "Length", HFILL }},
17607       { &hf_gsm_map_disc_par,
17608         { "Discrimination parameter", "gsm_map.disc_par",
17609           FT_UINT8, BASE_DEC, VALS(gsm_map_disc_par_vals), 0,
17610           "Discrimination parameter", HFILL }},
17611       { &hf_gsm_map_dlci,
17612         { "DLCI", "gsm_map.disc_par",
17613           FT_UINT8, BASE_DEC, NULL, 0,
17614           "Data Link Connection Indicator", HFILL }},
17615
17616
17617 /*--- Included file: packet-gsm_map-hfarr.c ---*/
17618 #line 1 "packet-gsm_map-hfarr.c"
17619
17620 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
17621
17622     { &hf_gsm_map_privateExtensionList,
17623       { "privateExtensionList", "gsm_map.privateExtensionList",
17624         FT_UINT32, BASE_DEC, NULL, 0,
17625         "gsm_map.PrivateExtensionList", HFILL }},
17626     { &hf_gsm_map_pcs_Extensions,
17627       { "pcs-Extensions", "gsm_map.pcs_Extensions",
17628         FT_NONE, BASE_NONE, NULL, 0,
17629         "gsm_map.PCS_Extensions", HFILL }},
17630     { &hf_gsm_map_slr_Arg_PCS_Extensions,
17631       { "slr-Arg-PCS-Extensions", "gsm_map.slr_Arg_PCS_Extensions",
17632         FT_NONE, BASE_NONE, NULL, 0,
17633         "gsm_map.SLR_Arg_PCS_Extensions", HFILL }},
17634     { &hf_gsm_map_PrivateExtensionList_item,
17635       { "PrivateExtensionList", "gsm_map.PrivateExtensionList_item",
17636         FT_NONE, BASE_NONE, NULL, 0,
17637         "gsm_map.PrivateExtension", HFILL }},
17638     { &hf_gsm_map_extId,
17639       { "extId", "gsm_map.extId",
17640         FT_OID, BASE_NONE, NULL, 0,
17641         "gsm_map.T_extId", HFILL }},
17642     { &hf_gsm_map_extType,
17643       { "extType", "gsm_map.extType",
17644         FT_NONE, BASE_NONE, NULL, 0,
17645         "gsm_map.T_extType", HFILL }},
17646     { &hf_gsm_map_na_ESRK_Request,
17647       { "na-ESRK-Request", "gsm_map.na_ESRK_Request",
17648         FT_NONE, BASE_NONE, NULL, 0,
17649         "gsm_map.NULL", HFILL }},
17650
17651 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
17652
17653     { &hf_gsm_map_protocolId,
17654       { "protocolId", "gsm_map.protocolId",
17655         FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
17656         "gsm_map.ProtocolId", HFILL }},
17657     { &hf_gsm_map_signalInfo,
17658       { "signalInfo", "gsm_map.signalInfo",
17659         FT_BYTES, BASE_HEX, NULL, 0,
17660         "gsm_map.SignalInfo", HFILL }},
17661     { &hf_gsm_map_extensionContainer,
17662       { "extensionContainer", "gsm_map.extensionContainer",
17663         FT_NONE, BASE_NONE, NULL, 0,
17664         "gsm_map.ExtensionContainer", HFILL }},
17665     { &hf_gsm_map_ext_ProtocolId,
17666       { "ext-ProtocolId", "gsm_map.ext_ProtocolId",
17667         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_ProtocolId_vals), 0,
17668         "gsm_map.Ext_ProtocolId", HFILL }},
17669     { &hf_gsm_map_accessNetworkProtocolId,
17670       { "accessNetworkProtocolId", "gsm_map.accessNetworkProtocolId",
17671         FT_UINT32, BASE_DEC, VALS(gsm_map_AccessNetworkProtocolId_vals), 0,
17672         "gsm_map.AccessNetworkProtocolId", HFILL }},
17673     { &hf_gsm_map_signalInfo_01,
17674       { "signalInfo", "gsm_map.signalInfo",
17675         FT_BYTES, BASE_HEX, NULL, 0,
17676         "gsm_map.LongSignalInfo", HFILL }},
17677     { &hf_gsm_map_imsi,
17678       { "imsi", "gsm_map.imsi",
17679         FT_BYTES, BASE_HEX, NULL, 0,
17680         "gsm_map.IMSI", HFILL }},
17681     { &hf_gsm_map_imsi_WithLMSI,
17682       { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI",
17683         FT_NONE, BASE_NONE, NULL, 0,
17684         "gsm_map.IMSI_WithLMSI", HFILL }},
17685     { &hf_gsm_map_lmsi,
17686       { "lmsi", "gsm_map.lmsi",
17687         FT_BYTES, BASE_HEX, NULL, 0,
17688         "gsm_map.LMSI", HFILL }},
17689     { &hf_gsm_map_HLR_List_item,
17690       { "HLR-List", "gsm_map.HLR_List_item",
17691         FT_BYTES, BASE_HEX, NULL, 0,
17692         "gsm_map.HLR_Id", HFILL }},
17693     { &hf_gsm_map_naea_PreferredCIC,
17694       { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC",
17695         FT_BYTES, BASE_HEX, NULL, 0,
17696         "gsm_map.NAEA_CIC", HFILL }},
17697     { &hf_gsm_map_msisdn,
17698       { "msisdn", "gsm_map.msisdn",
17699         FT_BYTES, BASE_HEX, NULL, 0,
17700         "gsm_map.ISDN_AddressString", HFILL }},
17701     { &hf_gsm_map_externalAddress,
17702       { "externalAddress", "gsm_map.externalAddress",
17703         FT_BYTES, BASE_HEX, NULL, 0,
17704         "gsm_map.ISDN_AddressString", HFILL }},
17705     { &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength,
17706       { "cellGlobalIdOrServiceAreaIdFixedLength", "gsm_map.cellGlobalIdOrServiceAreaIdFixedLength",
17707         FT_BYTES, BASE_HEX, NULL, 0,
17708         "gsm_map.CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
17709     { &hf_gsm_map_laiFixedLength,
17710       { "laiFixedLength", "gsm_map.laiFixedLength",
17711         FT_BYTES, BASE_HEX, NULL, 0,
17712         "gsm_map.LAIFixedLength", HFILL }},
17713     { &hf_gsm_map_bearerService,
17714       { "bearerService", "gsm_map.bearerService",
17715         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
17716         "gsm_map.BearerServiceCode", HFILL }},
17717     { &hf_gsm_map_teleservice,
17718       { "teleservice", "gsm_map.teleservice",
17719         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
17720         "gsm_map.TeleserviceCode", HFILL }},
17721     { &hf_gsm_map_ext_BearerService,
17722       { "ext-BearerService", "gsm_map.ext_BearerService",
17723         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
17724         "gsm_map.Ext_BearerServiceCode", HFILL }},
17725     { &hf_gsm_map_ext_Teleservice,
17726       { "ext-Teleservice", "gsm_map.ext_Teleservice",
17727         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
17728         "gsm_map.Ext_TeleserviceCode", HFILL }},
17729     { &hf_gsm_map_maximumentitledPriority,
17730       { "maximumentitledPriority", "gsm_map.maximumentitledPriority",
17731         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
17732         "gsm_map.EMLPP_Priority", HFILL }},
17733     { &hf_gsm_map_defaultPriority,
17734       { "defaultPriority", "gsm_map.defaultPriority",
17735         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
17736         "gsm_map.EMLPP_Priority", HFILL }},
17737     { &hf_gsm_map_ss_Code,
17738       { "ss-Code", "gsm_map.ss_Code",
17739         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
17740         "gsm_map.SS_Code", HFILL }},
17741     { &hf_gsm_map_ss_Status,
17742       { "ss-Status", "gsm_map.ss_Status",
17743         FT_BYTES, BASE_HEX, NULL, 0,
17744         "gsm_map.Ext_SS_Status", HFILL }},
17745     { &hf_gsm_map_nbrSB,
17746       { "nbrSB", "gsm_map.nbrSB",
17747         FT_UINT32, BASE_DEC, NULL, 0,
17748         "gsm_map.MaxMC_Bearers", HFILL }},
17749     { &hf_gsm_map_nbrUser,
17750       { "nbrUser", "gsm_map.nbrUser",
17751         FT_UINT32, BASE_DEC, NULL, 0,
17752         "gsm_map.MC_Bearers", HFILL }},
17753
17754 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
17755
17756     { &hf_gsm_map_ss_ss_Code,
17757       { "ss-Code", "gsm_map.ss.ss_Code",
17758         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
17759         "gsm_map.SS_Code", HFILL }},
17760     { &hf_gsm_map_ss_basicService,
17761       { "basicService", "gsm_map.ss.basicService",
17762         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
17763         "gsm_map.BasicServiceCode", HFILL }},
17764     { &hf_gsm_map_ss_forwardedToNumber,
17765       { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
17766         FT_BYTES, BASE_HEX, NULL, 0,
17767         "gsm_map.AddressString", HFILL }},
17768     { &hf_gsm_map_ss_forwardedToSubaddress,
17769       { "forwardedToSubaddress", "gsm_map.ss.forwardedToSubaddress",
17770         FT_BYTES, BASE_HEX, NULL, 0,
17771         "gsm_map.ISDN_SubaddressString", HFILL }},
17772     { &hf_gsm_map_ss_noReplyConditionTime,
17773       { "noReplyConditionTime", "gsm_map.ss.noReplyConditionTime",
17774         FT_UINT32, BASE_DEC, NULL, 0,
17775         "gsm_map_ss.NoReplyConditionTime", HFILL }},
17776     { &hf_gsm_map_ss_defaultPriority,
17777       { "defaultPriority", "gsm_map.ss.defaultPriority",
17778         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
17779         "gsm_map.EMLPP_Priority", HFILL }},
17780     { &hf_gsm_map_ss_nbrUser,
17781       { "nbrUser", "gsm_map.ss.nbrUser",
17782         FT_UINT32, BASE_DEC, NULL, 0,
17783         "gsm_map.MC_Bearers", HFILL }},
17784     { &hf_gsm_map_ss_longFTN_Supported,
17785       { "longFTN-Supported", "gsm_map.ss.longFTN_Supported",
17786         FT_NONE, BASE_NONE, NULL, 0,
17787         "gsm_map_ss.NULL", HFILL }},
17788     { &hf_gsm_map_ss_forwardingInfo,
17789       { "forwardingInfo", "gsm_map.ss.forwardingInfo",
17790         FT_NONE, BASE_NONE, NULL, 0,
17791         "gsm_map_ss.ForwardingInfo", HFILL }},
17792     { &hf_gsm_map_ss_callBarringInfo,
17793       { "callBarringInfo", "gsm_map.ss.callBarringInfo",
17794         FT_NONE, BASE_NONE, NULL, 0,
17795         "gsm_map_ss.CallBarringInfo", HFILL }},
17796     { &hf_gsm_map_ss_ss_Data,
17797       { "ss-Data", "gsm_map.ss.ss_Data",
17798         FT_NONE, BASE_NONE, NULL, 0,
17799         "gsm_map_ss.SS_Data", HFILL }},
17800     { &hf_gsm_map_ss_forwardingFeatureList,
17801       { "forwardingFeatureList", "gsm_map.ss.forwardingFeatureList",
17802         FT_UINT32, BASE_DEC, NULL, 0,
17803         "gsm_map_ss.ForwardingFeatureList", HFILL }},
17804     { &hf_gsm_map_ss_ForwardingFeatureList_item,
17805       { "ForwardingFeatureList", "gsm_map.ss.ForwardingFeatureList_item",
17806         FT_NONE, BASE_NONE, NULL, 0,
17807         "gsm_map_ss.ForwardingFeature", HFILL }},
17808     { &hf_gsm_map_ss_ss_Status,
17809       { "ss-Status", "gsm_map.ss.ss_Status",
17810         FT_BYTES, BASE_HEX, NULL, 0,
17811         "gsm_map_ss.SS_Status", HFILL }},
17812     { &hf_gsm_map_ss_forwardedToNumber_01,
17813       { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
17814         FT_BYTES, BASE_HEX, NULL, 0,
17815         "gsm_map.ISDN_AddressString", HFILL }},
17816     { &hf_gsm_map_ss_forwardingOptions,
17817       { "forwardingOptions", "gsm_map.ss.forwardingOptions",
17818         FT_BYTES, BASE_HEX, NULL, 0,
17819         "gsm_map_ss.ForwardingOptions", HFILL }},
17820     { &hf_gsm_map_ss_longForwardedToNumber,
17821       { "longForwardedToNumber", "gsm_map.ss.longForwardedToNumber",
17822         FT_BYTES, BASE_HEX, NULL, 0,
17823         "gsm_map.FTN_AddressString", HFILL }},
17824     { &hf_gsm_map_ss_callBarringFeatureList,
17825       { "callBarringFeatureList", "gsm_map.ss.callBarringFeatureList",
17826         FT_UINT32, BASE_DEC, NULL, 0,
17827         "gsm_map_ss.CallBarringFeatureList", HFILL }},
17828     { &hf_gsm_map_ss_CallBarringFeatureList_item,
17829       { "CallBarringFeatureList", "gsm_map.ss.CallBarringFeatureList_item",
17830         FT_NONE, BASE_NONE, NULL, 0,
17831         "gsm_map_ss.CallBarringFeature", HFILL }},
17832     { &hf_gsm_map_ss_ss_SubscriptionOption,
17833       { "ss-SubscriptionOption", "gsm_map.ss.ss_SubscriptionOption",
17834         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
17835         "gsm_map_ss.SS_SubscriptionOption", HFILL }},
17836     { &hf_gsm_map_ss_basicServiceGroupList,
17837       { "basicServiceGroupList", "gsm_map.ss.basicServiceGroupList",
17838         FT_UINT32, BASE_DEC, NULL, 0,
17839         "gsm_map_ss.BasicServiceGroupList", HFILL }},
17840     { &hf_gsm_map_ss_cliRestrictionOption,
17841       { "cliRestrictionOption", "gsm_map.ss.cliRestrictionOption",
17842         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CliRestrictionOption_vals), 0,
17843         "gsm_map_ss.CliRestrictionOption", HFILL }},
17844     { &hf_gsm_map_ss_overrideCategory,
17845       { "overrideCategory", "gsm_map.ss.overrideCategory",
17846         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_OverrideCategory_vals), 0,
17847         "gsm_map_ss.OverrideCategory", HFILL }},
17848     { &hf_gsm_map_ss_maximumEntitledPriority,
17849       { "maximumEntitledPriority", "gsm_map.ss.maximumEntitledPriority",
17850         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
17851         "gsm_map.EMLPP_Priority", HFILL }},
17852     { &hf_gsm_map_ss_ccbs_FeatureList,
17853       { "ccbs-FeatureList", "gsm_map.ss.ccbs_FeatureList",
17854         FT_UINT32, BASE_DEC, NULL, 0,
17855         "gsm_map_ss.CCBS_FeatureList", HFILL }},
17856     { &hf_gsm_map_ss_nbrSB,
17857       { "nbrSB", "gsm_map.ss.nbrSB",
17858         FT_UINT32, BASE_DEC, NULL, 0,
17859         "gsm_map.MaxMC_Bearers", HFILL }},
17860     { &hf_gsm_map_ss_nbrSN,
17861       { "nbrSN", "gsm_map.ss.nbrSN",
17862         FT_UINT32, BASE_DEC, NULL, 0,
17863         "gsm_map.MC_Bearers", HFILL }},
17864     { &hf_gsm_map_ss_CCBS_FeatureList_item,
17865       { "CCBS-FeatureList", "gsm_map.ss.CCBS_FeatureList_item",
17866         FT_NONE, BASE_NONE, NULL, 0,
17867         "gsm_map_ss.CCBS_Feature", HFILL }},
17868     { &hf_gsm_map_ss_ccbs_Index,
17869       { "ccbs-Index", "gsm_map.ss.ccbs_Index",
17870         FT_UINT32, BASE_DEC, NULL, 0,
17871         "gsm_map_ss.CCBS_Index", HFILL }},
17872     { &hf_gsm_map_ss_b_subscriberNumber,
17873       { "b-subscriberNumber", "gsm_map.ss.b_subscriberNumber",
17874         FT_BYTES, BASE_HEX, NULL, 0,
17875         "gsm_map.ISDN_AddressString", HFILL }},
17876     { &hf_gsm_map_ss_b_subscriberSubaddress,
17877       { "b-subscriberSubaddress", "gsm_map.ss.b_subscriberSubaddress",
17878         FT_BYTES, BASE_HEX, NULL, 0,
17879         "gsm_map.ISDN_SubaddressString", HFILL }},
17880     { &hf_gsm_map_ss_basicServiceGroup,
17881       { "basicServiceGroup", "gsm_map.ss.basicServiceGroup",
17882         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
17883         "gsm_map.BasicServiceCode", HFILL }},
17884     { &hf_gsm_map_ss_genericServiceInfo,
17885       { "genericServiceInfo", "gsm_map.ss.genericServiceInfo",
17886         FT_NONE, BASE_NONE, NULL, 0,
17887         "gsm_map_ss.GenericServiceInfo", HFILL }},
17888     { &hf_gsm_map_ss_ussd_DataCodingScheme,
17889       { "ussd-DataCodingScheme", "gsm_map.ss.ussd_DataCodingScheme",
17890         FT_BYTES, BASE_HEX, NULL, 0,
17891         "gsm_map_ss.USSD_DataCodingScheme", HFILL }},
17892     { &hf_gsm_map_ss_ussd_String,
17893       { "ussd-String", "gsm_map.ss.ussd_String",
17894         FT_BYTES, BASE_HEX, NULL, 0,
17895         "gsm_map_ss.USSD_String", HFILL }},
17896     { &hf_gsm_map_ss_alertingPattern,
17897       { "alertingPattern", "gsm_map.ss.alertingPattern",
17898         FT_BYTES, BASE_HEX, NULL, 0,
17899         "gsm_map.AlertingPattern", HFILL }},
17900     { &hf_gsm_map_ss_msisdn,
17901       { "msisdn", "gsm_map.ss.msisdn",
17902         FT_BYTES, BASE_HEX, NULL, 0,
17903         "gsm_map.ISDN_AddressString", HFILL }},
17904     { &hf_gsm_map_ss_SS_List_item,
17905       { "SS-List", "gsm_map.ss.SS_List_item",
17906         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
17907         "gsm_map.SS_Code", HFILL }},
17908     { &hf_gsm_map_ss_BasicServiceGroupList_item,
17909       { "BasicServiceGroupList", "gsm_map.ss.BasicServiceGroupList_item",
17910         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
17911         "gsm_map.BasicServiceCode", HFILL }},
17912     { &hf_gsm_map_ss_imsi,
17913       { "imsi", "gsm_map.ss.imsi",
17914         FT_BYTES, BASE_HEX, NULL, 0,
17915         "gsm_map.IMSI", HFILL }},
17916     { &hf_gsm_map_ss_ss_Event,
17917       { "ss-Event", "gsm_map.ss.ss_Event",
17918         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
17919         "gsm_map.SS_Code", HFILL }},
17920     { &hf_gsm_map_ss_ss_EventSpecification,
17921       { "ss-EventSpecification", "gsm_map.ss.ss_EventSpecification",
17922         FT_UINT32, BASE_DEC, NULL, 0,
17923         "gsm_map_ss.SS_EventSpecification", HFILL }},
17924     { &hf_gsm_map_ss_extensionContainer,
17925       { "extensionContainer", "gsm_map.ss.extensionContainer",
17926         FT_NONE, BASE_NONE, NULL, 0,
17927         "gsm_map.ExtensionContainer", HFILL }},
17928     { &hf_gsm_map_ss_ccbs_RequestState,
17929       { "ccbs-RequestState", "gsm_map.ss.ccbs_RequestState",
17930         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CCBS_RequestState_vals), 0,
17931         "gsm_map_ss.CCBS_RequestState", HFILL }},
17932     { &hf_gsm_map_ss_SS_EventSpecification_item,
17933       { "SS-EventSpecification", "gsm_map.ss.SS_EventSpecification_item",
17934         FT_BYTES, BASE_HEX, NULL, 0,
17935         "gsm_map.AddressString", HFILL }},
17936     { &hf_gsm_map_ss_ccbs_Data,
17937       { "ccbs-Data", "gsm_map.ss.ccbs_Data",
17938         FT_NONE, BASE_NONE, NULL, 0,
17939         "gsm_map_ss.CCBS_Data", HFILL }},
17940     { &hf_gsm_map_ss_ccbs_Feature,
17941       { "ccbs-Feature", "gsm_map.ss.ccbs_Feature",
17942         FT_NONE, BASE_NONE, NULL, 0,
17943         "gsm_map_ss.CCBS_Feature", HFILL }},
17944     { &hf_gsm_map_ss_translatedB_Number,
17945       { "translatedB-Number", "gsm_map.ss.translatedB_Number",
17946         FT_BYTES, BASE_HEX, NULL, 0,
17947         "gsm_map.ISDN_AddressString", HFILL }},
17948     { &hf_gsm_map_ss_serviceIndicator,
17949       { "serviceIndicator", "gsm_map.ss.serviceIndicator",
17950         FT_BYTES, BASE_HEX, NULL, 0,
17951         "gsm_map_ss.ServiceIndicator", HFILL }},
17952     { &hf_gsm_map_ss_callInfo,
17953       { "callInfo", "gsm_map.ss.callInfo",
17954         FT_NONE, BASE_NONE, NULL, 0,
17955         "gsm_map.ExternalSignalInfo", HFILL }},
17956     { &hf_gsm_map_ss_networkSignalInfo,
17957       { "networkSignalInfo", "gsm_map.ss.networkSignalInfo",
17958         FT_NONE, BASE_NONE, NULL, 0,
17959         "gsm_map.ExternalSignalInfo", HFILL }},
17960     { &hf_gsm_map_ss_ServiceIndicator_clir_invoked,
17961       { "clir-invoked", "gsm_map.ss.clir-invoked",
17962         FT_BOOLEAN, 8, NULL, 0x80,
17963         "", HFILL }},
17964     { &hf_gsm_map_ss_ServiceIndicator_camel_invoked,
17965       { "camel-invoked", "gsm_map.ss.camel-invoked",
17966         FT_BOOLEAN, 8, NULL, 0x40,
17967         "", HFILL }},
17968
17969 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
17970
17971     { &hf_gsm_map_er_roamingNotAllowedCause,
17972       { "roamingNotAllowedCause", "gsm_map.er.roamingNotAllowedCause",
17973         FT_UINT32, BASE_DEC, VALS(gsm_map_er_RoamingNotAllowedCause_vals), 0,
17974         "gsm_map_er.RoamingNotAllowedCause", HFILL }},
17975     { &hf_gsm_map_er_extensionContainer,
17976       { "extensionContainer", "gsm_map.er.extensionContainer",
17977         FT_NONE, BASE_NONE, NULL, 0,
17978         "gsm_map.ExtensionContainer", HFILL }},
17979     { &hf_gsm_map_er_additionalRoamingNotAllowedCause,
17980       { "additionalRoamingNotAllowedCause", "gsm_map.er.additionalRoamingNotAllowedCause",
17981         FT_UINT32, BASE_DEC, VALS(gsm_map_er_AdditionalRoamingNotAllowedCause_vals), 0,
17982         "gsm_map_er.AdditionalRoamingNotAllowedCause", HFILL }},
17983     { &hf_gsm_map_er_callBarringCause,
17984       { "callBarringCause", "gsm_map.er.callBarringCause",
17985         FT_UINT32, BASE_DEC, VALS(gsm_map_er_CallBarringCause_vals), 0,
17986         "gsm_map_er.CallBarringCause", HFILL }},
17987     { &hf_gsm_map_er_extensibleCallBarredParam,
17988       { "extensibleCallBarredParam", "gsm_map.er.extensibleCallBarredParam",
17989         FT_NONE, BASE_NONE, NULL, 0,
17990         "gsm_map_er.ExtensibleCallBarredParam", HFILL }},
17991     { &hf_gsm_map_er_unauthorisedMessageOriginator,
17992       { "unauthorisedMessageOriginator", "gsm_map.er.unauthorisedMessageOriginator",
17993         FT_NONE, BASE_NONE, NULL, 0,
17994         "gsm_map_er.NULL", HFILL }},
17995     { &hf_gsm_map_er_cug_RejectCause,
17996       { "cug-RejectCause", "gsm_map.er.cug_RejectCause",
17997         FT_UINT32, BASE_DEC, VALS(gsm_map_er_CUG_RejectCause_vals), 0,
17998         "gsm_map_er.CUG_RejectCause", HFILL }},
17999     { &hf_gsm_map_er_ss_Code,
18000       { "ss-Code", "gsm_map.er.ss_Code",
18001         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
18002         "gsm_map.SS_Code", HFILL }},
18003     { &hf_gsm_map_er_basicService,
18004       { "basicService", "gsm_map.er.basicService",
18005         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
18006         "gsm_map.BasicServiceCode", HFILL }},
18007     { &hf_gsm_map_er_ss_Status,
18008       { "ss-Status", "gsm_map.er.ss_Status",
18009         FT_BYTES, BASE_HEX, NULL, 0,
18010         "gsm_map_ss.SS_Status", HFILL }},
18011     { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause,
18012       { "sm-EnumeratedDeliveryFailureCause", "gsm_map.er.sm_EnumeratedDeliveryFailureCause",
18013         FT_UINT32, BASE_DEC, VALS(gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals), 0,
18014         "gsm_map_er.SM_EnumeratedDeliveryFailureCause", HFILL }},
18015     { &hf_gsm_map_er_diagnosticInfo,
18016       { "diagnosticInfo", "gsm_map.er.diagnosticInfo",
18017         FT_BYTES, BASE_HEX, NULL, 0,
18018         "gsm_map.SignalInfo", HFILL }},
18019     { &hf_gsm_map_er_absentSubscriberDiagnosticSM,
18020       { "absentSubscriberDiagnosticSM", "gsm_map.er.absentSubscriberDiagnosticSM",
18021         FT_UINT32, BASE_DEC, NULL, 0,
18022         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18023     { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM,
18024       { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.er.additionalAbsentSubscriberDiagnosticSM",
18025         FT_UINT32, BASE_DEC, NULL, 0,
18026         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18027     { &hf_gsm_map_er_networkResource,
18028       { "networkResource", "gsm_map.er.networkResource",
18029         FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0,
18030         "gsm_map.NetworkResource", HFILL }},
18031     { &hf_gsm_map_er_extensibleSystemFailureParam,
18032       { "extensibleSystemFailureParam", "gsm_map.er.extensibleSystemFailureParam",
18033         FT_NONE, BASE_NONE, NULL, 0,
18034         "gsm_map_er.ExtensibleSystemFailureParam", HFILL }},
18035     { &hf_gsm_map_er_additionalNetworkResource,
18036       { "additionalNetworkResource", "gsm_map.er.additionalNetworkResource",
18037         FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalNetworkResource_vals), 0,
18038         "gsm_map.AdditionalNetworkResource", HFILL }},
18039     { &hf_gsm_map_er_failureCauseParam,
18040       { "failureCauseParam", "gsm_map.er.failureCauseParam",
18041         FT_UINT32, BASE_DEC, VALS(gsm_map_er_FailureCauseParam_vals), 0,
18042         "gsm_map_er.FailureCauseParam", HFILL }},
18043     { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported,
18044       { "shapeOfLocationEstimateNotSupported", "gsm_map.er.shapeOfLocationEstimateNotSupported",
18045         FT_NONE, BASE_NONE, NULL, 0,
18046         "gsm_map_er.NULL", HFILL }},
18047     { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode,
18048       { "neededLcsCapabilityNotSupportedInServingNode", "gsm_map.er.neededLcsCapabilityNotSupportedInServingNode",
18049         FT_NONE, BASE_NONE, NULL, 0,
18050         "gsm_map_er.NULL", HFILL }},
18051     { &hf_gsm_map_er_unknownSubscriberDiagnostic,
18052       { "unknownSubscriberDiagnostic", "gsm_map.er.unknownSubscriberDiagnostic",
18053         FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnknownSubscriberDiagnostic_vals), 0,
18054         "gsm_map_er.UnknownSubscriberDiagnostic", HFILL }},
18055     { &hf_gsm_map_er_absentSubscriberReason,
18056       { "absentSubscriberReason", "gsm_map.er.absentSubscriberReason",
18057         FT_UINT32, BASE_DEC, VALS(gsm_map_er_AbsentSubscriberReason_vals), 0,
18058         "gsm_map_er.AbsentSubscriberReason", HFILL }},
18059     { &hf_gsm_map_er_ccbs_Possible,
18060       { "ccbs-Possible", "gsm_map.er.ccbs_Possible",
18061         FT_NONE, BASE_NONE, NULL, 0,
18062         "gsm_map_er.NULL", HFILL }},
18063     { &hf_gsm_map_er_ccbs_Busy,
18064       { "ccbs-Busy", "gsm_map.er.ccbs_Busy",
18065         FT_NONE, BASE_NONE, NULL, 0,
18066         "gsm_map_er.NULL", HFILL }},
18067     { &hf_gsm_map_er_gprsConnectionSuspended,
18068       { "gprsConnectionSuspended", "gsm_map.er.gprsConnectionSuspended",
18069         FT_NONE, BASE_NONE, NULL, 0,
18070         "gsm_map_er.NULL", HFILL }},
18071     { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic,
18072       { "unauthorizedLCSClient-Diagnostic", "gsm_map.er.unauthorizedLCSClient_Diagnostic",
18073         FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals), 0,
18074         "gsm_map_er.UnauthorizedLCSClient_Diagnostic", HFILL }},
18075     { &hf_gsm_map_er_positionMethodFailure_Diagnostic,
18076       { "positionMethodFailure-Diagnostic", "gsm_map.er.positionMethodFailure_Diagnostic",
18077         FT_UINT32, BASE_DEC, VALS(gsm_map_er_PositionMethodFailure_Diagnostic_vals), 0,
18078         "gsm_map_er.PositionMethodFailure_Diagnostic", HFILL }},
18079
18080 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
18081
18082     { &hf_gsm_map_sm_msisdn,
18083       { "msisdn", "gsm_map.sm.msisdn",
18084         FT_BYTES, BASE_HEX, NULL, 0,
18085         "gsm_map.ISDN_AddressString", HFILL }},
18086     { &hf_gsm_map_sm_sm_RP_PRI,
18087       { "sm-RP-PRI", "gsm_map.sm.sm_RP_PRI",
18088         FT_BOOLEAN, 8, NULL, 0,
18089         "gsm_map_sm.BOOLEAN", HFILL }},
18090     { &hf_gsm_map_sm_serviceCentreAddress,
18091       { "serviceCentreAddress", "gsm_map.sm.serviceCentreAddress",
18092         FT_BYTES, BASE_HEX, NULL, 0,
18093         "gsm_map.AddressString", HFILL }},
18094     { &hf_gsm_map_sm_extensionContainer,
18095       { "extensionContainer", "gsm_map.sm.extensionContainer",
18096         FT_NONE, BASE_NONE, NULL, 0,
18097         "gsm_map.ExtensionContainer", HFILL }},
18098     { &hf_gsm_map_sm_gprsSupportIndicator,
18099       { "gprsSupportIndicator", "gsm_map.sm.gprsSupportIndicator",
18100         FT_NONE, BASE_NONE, NULL, 0,
18101         "gsm_map_sm.NULL", HFILL }},
18102     { &hf_gsm_map_sm_sm_RP_MTI,
18103       { "sm-RP-MTI", "gsm_map.sm.sm_RP_MTI",
18104         FT_UINT32, BASE_DEC, NULL, 0,
18105         "gsm_map_sm.SM_RP_MTI", HFILL }},
18106     { &hf_gsm_map_sm_sm_RP_SMEA,
18107       { "sm-RP-SMEA", "gsm_map.sm.sm_RP_SMEA",
18108         FT_BYTES, BASE_HEX, NULL, 0,
18109         "gsm_map_sm.SM_RP_SMEA", HFILL }},
18110     { &hf_gsm_map_sm_sm_deliveryNotIntended,
18111       { "sm-deliveryNotIntended", "gsm_map.sm.sm_deliveryNotIntended",
18112         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryNotIntended_vals), 0,
18113         "gsm_map_sm.SM_DeliveryNotIntended", HFILL }},
18114     { &hf_gsm_map_sm_imsi,
18115       { "imsi", "gsm_map.sm.imsi",
18116         FT_BYTES, BASE_HEX, NULL, 0,
18117         "gsm_map.IMSI", HFILL }},
18118     { &hf_gsm_map_sm_locationInfoWithLMSI,
18119       { "locationInfoWithLMSI", "gsm_map.sm.locationInfoWithLMSI",
18120         FT_NONE, BASE_NONE, NULL, 0,
18121         "gsm_map_sm.LocationInfoWithLMSI", HFILL }},
18122     { &hf_gsm_map_sm_networkNode_Number,
18123       { "networkNode-Number", "gsm_map.sm.networkNode_Number",
18124         FT_BYTES, BASE_HEX, NULL, 0,
18125         "gsm_map.ISDN_AddressString", HFILL }},
18126     { &hf_gsm_map_sm_lmsi,
18127       { "lmsi", "gsm_map.sm.lmsi",
18128         FT_BYTES, BASE_HEX, NULL, 0,
18129         "gsm_map.LMSI", HFILL }},
18130     { &hf_gsm_map_sm_gprsNodeIndicator,
18131       { "gprsNodeIndicator", "gsm_map.sm.gprsNodeIndicator",
18132         FT_NONE, BASE_NONE, NULL, 0,
18133         "gsm_map_sm.NULL", HFILL }},
18134     { &hf_gsm_map_sm_additional_Number,
18135       { "additional-Number", "gsm_map.sm.additional_Number",
18136         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
18137         "gsm_map_sm.Additional_Number", HFILL }},
18138     { &hf_gsm_map_sm_msc_Number,
18139       { "msc-Number", "gsm_map.sm.msc_Number",
18140         FT_BYTES, BASE_HEX, NULL, 0,
18141         "gsm_map.ISDN_AddressString", HFILL }},
18142     { &hf_gsm_map_sm_sgsn_Number,
18143       { "sgsn-Number", "gsm_map.sm.sgsn_Number",
18144         FT_BYTES, BASE_HEX, NULL, 0,
18145         "gsm_map.ISDN_AddressString", HFILL }},
18146     { &hf_gsm_map_sm_sm_RP_DA,
18147       { "sm-RP-DA", "gsm_map.sm.sm_RP_DA",
18148         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_DA_vals), 0,
18149         "gsm_map_sm.SM_RP_DA", HFILL }},
18150     { &hf_gsm_map_sm_sm_RP_OA,
18151       { "sm-RP-OA", "gsm_map.sm.sm_RP_OA",
18152         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_OA_vals), 0,
18153         "gsm_map_sm.SM_RP_OA", HFILL }},
18154     { &hf_gsm_map_sm_sm_RP_UI,
18155       { "sm-RP-UI", "gsm_map.sm.sm_RP_UI",
18156         FT_BYTES, BASE_HEX, NULL, 0,
18157         "gsm_map.SignalInfo", HFILL }},
18158     { &hf_gsm_map_sm_moreMessagesToSend,
18159       { "moreMessagesToSend", "gsm_map.sm.moreMessagesToSend",
18160         FT_NONE, BASE_NONE, NULL, 0,
18161         "gsm_map_sm.NULL", HFILL }},
18162     { &hf_gsm_map_sm_serviceCentreAddressDA,
18163       { "serviceCentreAddressDA", "gsm_map.sm.serviceCentreAddressDA",
18164         FT_BYTES, BASE_HEX, NULL, 0,
18165         "gsm_map.AddressString", HFILL }},
18166     { &hf_gsm_map_sm_noSM_RP_DA,
18167       { "noSM-RP-DA", "gsm_map.sm.noSM_RP_DA",
18168         FT_NONE, BASE_NONE, NULL, 0,
18169         "gsm_map_sm.NULL", HFILL }},
18170     { &hf_gsm_map_sm_msisdn_01,
18171       { "msisdn", "gsm_map.sm.msisdn",
18172         FT_BYTES, BASE_HEX, NULL, 0,
18173         "gsm_map_sm.T_msisdn", HFILL }},
18174     { &hf_gsm_map_sm_serviceCentreAddressOA,
18175       { "serviceCentreAddressOA", "gsm_map.sm.serviceCentreAddressOA",
18176         FT_BYTES, BASE_HEX, NULL, 0,
18177         "gsm_map_sm.T_serviceCentreAddressOA", HFILL }},
18178     { &hf_gsm_map_sm_noSM_RP_OA,
18179       { "noSM-RP-OA", "gsm_map.sm.noSM_RP_OA",
18180         FT_NONE, BASE_NONE, NULL, 0,
18181         "gsm_map_sm.NULL", HFILL }},
18182     { &hf_gsm_map_sm_sm_DeliveryOutcome,
18183       { "sm-DeliveryOutcome", "gsm_map.sm.sm_DeliveryOutcome",
18184         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
18185         "gsm_map_sm.SM_DeliveryOutcome", HFILL }},
18186     { &hf_gsm_map_sm_absentSubscriberDiagnosticSM,
18187       { "absentSubscriberDiagnosticSM", "gsm_map.sm.absentSubscriberDiagnosticSM",
18188         FT_UINT32, BASE_DEC, NULL, 0,
18189         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18190     { &hf_gsm_map_sm_deliveryOutcomeIndicator,
18191       { "deliveryOutcomeIndicator", "gsm_map.sm.deliveryOutcomeIndicator",
18192         FT_NONE, BASE_NONE, NULL, 0,
18193         "gsm_map_sm.NULL", HFILL }},
18194     { &hf_gsm_map_sm_additionalSM_DeliveryOutcome,
18195       { "additionalSM-DeliveryOutcome", "gsm_map.sm.additionalSM_DeliveryOutcome",
18196         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
18197         "gsm_map_sm.SM_DeliveryOutcome", HFILL }},
18198     { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM,
18199       { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.sm.additionalAbsentSubscriberDiagnosticSM",
18200         FT_UINT32, BASE_DEC, NULL, 0,
18201         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18202     { &hf_gsm_map_sm_ip_sm_gw_Indicator,
18203       { "ip-sm-gw-Indicator", "gsm_map.sm.ip_sm_gw_Indicator",
18204         FT_NONE, BASE_NONE, NULL, 0,
18205         "gsm_map_sm.NULL", HFILL }},
18206     { &hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome,
18207       { "ip-sm-gw-sm-deliveryOutcome", "gsm_map.sm.ip_sm_gw_sm_deliveryOutcome",
18208         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
18209         "gsm_map_sm.SM_DeliveryOutcome", HFILL }},
18210     { &hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM,
18211       { "ip-sm-gw-absentSubscriberDiagnosticSM", "gsm_map.sm.ip_sm_gw_absentSubscriberDiagnosticSM",
18212         FT_UINT32, BASE_DEC, NULL, 0,
18213         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
18214     { &hf_gsm_map_sm_storedMSISDN,
18215       { "storedMSISDN", "gsm_map.sm.storedMSISDN",
18216         FT_BYTES, BASE_HEX, NULL, 0,
18217         "gsm_map.ISDN_AddressString", HFILL }},
18218     { &hf_gsm_map_sm_mw_Status,
18219       { "mw-Status", "gsm_map.sm.mw_Status",
18220         FT_BYTES, BASE_HEX, NULL, 0,
18221         "gsm_map_sm.MW_Status", HFILL }},
18222     { &hf_gsm_map_sm_alertReason,
18223       { "alertReason", "gsm_map.sm.alertReason",
18224         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_AlertReason_vals), 0,
18225         "gsm_map_sm.AlertReason", HFILL }},
18226     { &hf_gsm_map_sm_alertReasonIndicator,
18227       { "alertReasonIndicator", "gsm_map.sm.alertReasonIndicator",
18228         FT_NONE, BASE_NONE, NULL, 0,
18229         "gsm_map_sm.NULL", HFILL }},
18230     { &hf_gsm_map_sm_additionalAlertReasonIndicator,
18231       { "additionalAlertReasonIndicator", "gsm_map.sm.additionalAlertReasonIndicator",
18232         FT_NONE, BASE_NONE, NULL, 0,
18233         "gsm_map_sm.NULL", HFILL }},
18234     { &hf_gsm_map_sm_asciCallReference,
18235       { "asciCallReference", "gsm_map.sm.asciCallReference",
18236         FT_BYTES, BASE_HEX, NULL, 0,
18237         "gsm_map.ASCI_CallReference", HFILL }},
18238     { &hf_gsm_map_sm_dispatcherList,
18239       { "dispatcherList", "gsm_map.sm.dispatcherList",
18240         FT_UINT32, BASE_DEC, NULL, 0,
18241         "gsm_map_sm.DispatcherList", HFILL }},
18242     { &hf_gsm_map_sm_ongoingCall,
18243       { "ongoingCall", "gsm_map.sm.ongoingCall",
18244         FT_NONE, BASE_NONE, NULL, 0,
18245         "gsm_map_sm.NULL", HFILL }},
18246     { &hf_gsm_map_sm_DispatcherList_item,
18247       { "DispatcherList", "gsm_map.sm.DispatcherList_item",
18248         FT_BYTES, BASE_HEX, NULL, 0,
18249         "gsm_map.ISDN_AddressString", HFILL }},
18250     { &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded,
18251       { "sc-AddressNotIncluded", "gsm_map.sm.sc-AddressNotIncluded",
18252         FT_BOOLEAN, 8, NULL, 0x80,
18253         "", HFILL }},
18254     { &hf_gsm_map_sm_MW_Status_mnrf_Set,
18255       { "mnrf-Set", "gsm_map.sm.mnrf-Set",
18256         FT_BOOLEAN, 8, NULL, 0x40,
18257         "", HFILL }},
18258     { &hf_gsm_map_sm_MW_Status_mcef_Set,
18259       { "mcef-Set", "gsm_map.sm.mcef-Set",
18260         FT_BOOLEAN, 8, NULL, 0x20,
18261         "", HFILL }},
18262     { &hf_gsm_map_sm_MW_Status_mnrg_Set,
18263       { "mnrg-Set", "gsm_map.sm.mnrg-Set",
18264         FT_BOOLEAN, 8, NULL, 0x10,
18265         "", HFILL }},
18266
18267 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
18268
18269     { &hf_gsm_map_om_imsi,
18270       { "imsi", "gsm_map.om.imsi",
18271         FT_BYTES, BASE_HEX, NULL, 0,
18272         "gsm_map.IMSI", HFILL }},
18273     { &hf_gsm_map_om_traceReference,
18274       { "traceReference", "gsm_map.om.traceReference",
18275         FT_BYTES, BASE_HEX, NULL, 0,
18276         "gsm_map_om.TraceReference", HFILL }},
18277     { &hf_gsm_map_om_traceType,
18278       { "traceType", "gsm_map.om.traceType",
18279         FT_UINT32, BASE_DEC, NULL, 0,
18280         "gsm_map_om.TraceType", HFILL }},
18281     { &hf_gsm_map_om_omc_Id,
18282       { "omc-Id", "gsm_map.om.omc_Id",
18283         FT_BYTES, BASE_HEX, NULL, 0,
18284         "gsm_map.AddressString", HFILL }},
18285     { &hf_gsm_map_om_extensionContainer,
18286       { "extensionContainer", "gsm_map.om.extensionContainer",
18287         FT_NONE, BASE_NONE, NULL, 0,
18288         "gsm_map.ExtensionContainer", HFILL }},
18289     { &hf_gsm_map_om_traceReference2,
18290       { "traceReference2", "gsm_map.om.traceReference2",
18291         FT_BYTES, BASE_HEX, NULL, 0,
18292         "gsm_map_om.TraceReference2", HFILL }},
18293     { &hf_gsm_map_om_traceDepthList,
18294       { "traceDepthList", "gsm_map.om.traceDepthList",
18295         FT_NONE, BASE_NONE, NULL, 0,
18296         "gsm_map_om.TraceDepthList", HFILL }},
18297     { &hf_gsm_map_om_traceNE_TypeList,
18298       { "traceNE-TypeList", "gsm_map.om.traceNE_TypeList",
18299         FT_BYTES, BASE_HEX, NULL, 0,
18300         "gsm_map_om.TraceNE_TypeList", HFILL }},
18301     { &hf_gsm_map_om_traceInterfaceList,
18302       { "traceInterfaceList", "gsm_map.om.traceInterfaceList",
18303         FT_NONE, BASE_NONE, NULL, 0,
18304         "gsm_map_om.TraceInterfaceList", HFILL }},
18305     { &hf_gsm_map_om_traceEventList,
18306       { "traceEventList", "gsm_map.om.traceEventList",
18307         FT_NONE, BASE_NONE, NULL, 0,
18308         "gsm_map_om.TraceEventList", HFILL }},
18309     { &hf_gsm_map_om_msc_s_TraceDepth,
18310       { "msc-s-TraceDepth", "gsm_map.om.msc_s_TraceDepth",
18311         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18312         "gsm_map_om.TraceDepth", HFILL }},
18313     { &hf_gsm_map_om_mgw_TraceDepth,
18314       { "mgw-TraceDepth", "gsm_map.om.mgw_TraceDepth",
18315         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18316         "gsm_map_om.TraceDepth", HFILL }},
18317     { &hf_gsm_map_om_sgsn_TraceDepth,
18318       { "sgsn-TraceDepth", "gsm_map.om.sgsn_TraceDepth",
18319         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18320         "gsm_map_om.TraceDepth", HFILL }},
18321     { &hf_gsm_map_om_ggsn_TraceDepth,
18322       { "ggsn-TraceDepth", "gsm_map.om.ggsn_TraceDepth",
18323         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18324         "gsm_map_om.TraceDepth", HFILL }},
18325     { &hf_gsm_map_om_rnc_TraceDepth,
18326       { "rnc-TraceDepth", "gsm_map.om.rnc_TraceDepth",
18327         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18328         "gsm_map_om.TraceDepth", HFILL }},
18329     { &hf_gsm_map_om_bmsc_TraceDepth,
18330       { "bmsc-TraceDepth", "gsm_map.om.bmsc_TraceDepth",
18331         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
18332         "gsm_map_om.TraceDepth", HFILL }},
18333     { &hf_gsm_map_om_msc_s_List,
18334       { "msc-s-List", "gsm_map.om.msc_s_List",
18335         FT_BYTES, BASE_HEX, NULL, 0,
18336         "gsm_map_om.MSC_S_InterfaceList", HFILL }},
18337     { &hf_gsm_map_om_mgw_List,
18338       { "mgw-List", "gsm_map.om.mgw_List",
18339         FT_BYTES, BASE_HEX, NULL, 0,
18340         "gsm_map_om.MGW_InterfaceList", HFILL }},
18341     { &hf_gsm_map_om_sgsn_List,
18342       { "sgsn-List", "gsm_map.om.sgsn_List",
18343         FT_BYTES, BASE_HEX, NULL, 0,
18344         "gsm_map_om.SGSN_InterfaceList", HFILL }},
18345     { &hf_gsm_map_om_ggsn_List,
18346       { "ggsn-List", "gsm_map.om.ggsn_List",
18347         FT_BYTES, BASE_HEX, NULL, 0,
18348         "gsm_map_om.GGSN_InterfaceList", HFILL }},
18349     { &hf_gsm_map_om_rnc_List,
18350       { "rnc-List", "gsm_map.om.rnc_List",
18351         FT_BYTES, BASE_HEX, NULL, 0,
18352         "gsm_map_om.RNC_InterfaceList", HFILL }},
18353     { &hf_gsm_map_om_bmsc_List,
18354       { "bmsc-List", "gsm_map.om.bmsc_List",
18355         FT_BYTES, BASE_HEX, NULL, 0,
18356         "gsm_map_om.BMSC_InterfaceList", HFILL }},
18357     { &hf_gsm_map_om_msc_s_List_01,
18358       { "msc-s-List", "gsm_map.om.msc_s_List",
18359         FT_BYTES, BASE_HEX, NULL, 0,
18360         "gsm_map_om.MSC_S_EventList", HFILL }},
18361     { &hf_gsm_map_om_mgw_List_01,
18362       { "mgw-List", "gsm_map.om.mgw_List",
18363         FT_BYTES, BASE_HEX, NULL, 0,
18364         "gsm_map_om.MGW_EventList", HFILL }},
18365     { &hf_gsm_map_om_sgsn_List_01,
18366       { "sgsn-List", "gsm_map.om.sgsn_List",
18367         FT_BYTES, BASE_HEX, NULL, 0,
18368         "gsm_map_om.SGSN_EventList", HFILL }},
18369     { &hf_gsm_map_om_ggsn_List_01,
18370       { "ggsn-List", "gsm_map.om.ggsn_List",
18371         FT_BYTES, BASE_HEX, NULL, 0,
18372         "gsm_map_om.GGSN_EventList", HFILL }},
18373     { &hf_gsm_map_om_bmsc_List_01,
18374       { "bmsc-List", "gsm_map.om.bmsc_List",
18375         FT_BYTES, BASE_HEX, NULL, 0,
18376         "gsm_map_om.BMSC_EventList", HFILL }},
18377     { &hf_gsm_map_om_traceRecordingSessionReference,
18378       { "traceRecordingSessionReference", "gsm_map.om.traceRecordingSessionReference",
18379         FT_BYTES, BASE_HEX, NULL, 0,
18380         "gsm_map_om.TraceRecordingSessionReference", HFILL }},
18381     { &hf_gsm_map_om_rnc_InterfaceList,
18382       { "rnc-InterfaceList", "gsm_map.om.rnc_InterfaceList",
18383         FT_BYTES, BASE_HEX, NULL, 0,
18384         "gsm_map_om.RNC_InterfaceList", HFILL }},
18385     { &hf_gsm_map_om_msc_s_InterfaceList,
18386       { "msc-s-InterfaceList", "gsm_map.om.msc_s_InterfaceList",
18387         FT_BYTES, BASE_HEX, NULL, 0,
18388         "gsm_map_om.MSC_S_InterfaceList", HFILL }},
18389     { &hf_gsm_map_om_msc_s_EventList,
18390       { "msc-s-EventList", "gsm_map.om.msc_s_EventList",
18391         FT_BYTES, BASE_HEX, NULL, 0,
18392         "gsm_map_om.MSC_S_EventList", HFILL }},
18393     { &hf_gsm_map_om_mgw_InterfaceList,
18394       { "mgw-InterfaceList", "gsm_map.om.mgw_InterfaceList",
18395         FT_BYTES, BASE_HEX, NULL, 0,
18396         "gsm_map_om.MGW_InterfaceList", HFILL }},
18397     { &hf_gsm_map_om_mgw_EventList,
18398       { "mgw-EventList", "gsm_map.om.mgw_EventList",
18399         FT_BYTES, BASE_HEX, NULL, 0,
18400         "gsm_map_om.MGW_EventList", HFILL }},
18401     { &hf_gsm_map_om_traceSupportIndicator,
18402       { "traceSupportIndicator", "gsm_map.om.traceSupportIndicator",
18403         FT_NONE, BASE_NONE, NULL, 0,
18404         "gsm_map_om.NULL", HFILL }},
18405     { &hf_gsm_map_om_TraceNE_TypeList_msc_s,
18406       { "msc-s", "gsm_map.om.msc-s",
18407         FT_BOOLEAN, 8, NULL, 0x80,
18408         "", HFILL }},
18409     { &hf_gsm_map_om_TraceNE_TypeList_mgw,
18410       { "mgw", "gsm_map.om.mgw",
18411         FT_BOOLEAN, 8, NULL, 0x40,
18412         "", HFILL }},
18413     { &hf_gsm_map_om_TraceNE_TypeList_sgsn,
18414       { "sgsn", "gsm_map.om.sgsn",
18415         FT_BOOLEAN, 8, NULL, 0x20,
18416         "", HFILL }},
18417     { &hf_gsm_map_om_TraceNE_TypeList_ggsn,
18418       { "ggsn", "gsm_map.om.ggsn",
18419         FT_BOOLEAN, 8, NULL, 0x10,
18420         "", HFILL }},
18421     { &hf_gsm_map_om_TraceNE_TypeList_rnc,
18422       { "rnc", "gsm_map.om.rnc",
18423         FT_BOOLEAN, 8, NULL, 0x08,
18424         "", HFILL }},
18425     { &hf_gsm_map_om_TraceNE_TypeList_bm_sc,
18426       { "bm-sc", "gsm_map.om.bm-sc",
18427         FT_BOOLEAN, 8, NULL, 0x04,
18428         "", HFILL }},
18429     { &hf_gsm_map_om_MSC_S_InterfaceList_a,
18430       { "a", "gsm_map.om.a",
18431         FT_BOOLEAN, 8, NULL, 0x80,
18432         "", HFILL }},
18433     { &hf_gsm_map_om_MSC_S_InterfaceList_iu,
18434       { "iu", "gsm_map.om.iu",
18435         FT_BOOLEAN, 8, NULL, 0x40,
18436         "", HFILL }},
18437     { &hf_gsm_map_om_MSC_S_InterfaceList_mc,
18438       { "mc", "gsm_map.om.mc",
18439         FT_BOOLEAN, 8, NULL, 0x20,
18440         "", HFILL }},
18441     { &hf_gsm_map_om_MSC_S_InterfaceList_map_g,
18442       { "map-g", "gsm_map.om.map-g",
18443         FT_BOOLEAN, 8, NULL, 0x10,
18444         "", HFILL }},
18445     { &hf_gsm_map_om_MSC_S_InterfaceList_map_b,
18446       { "map-b", "gsm_map.om.map-b",
18447         FT_BOOLEAN, 8, NULL, 0x08,
18448         "", HFILL }},
18449     { &hf_gsm_map_om_MSC_S_InterfaceList_map_e,
18450       { "map-e", "gsm_map.om.map-e",
18451         FT_BOOLEAN, 8, NULL, 0x04,
18452         "", HFILL }},
18453     { &hf_gsm_map_om_MSC_S_InterfaceList_map_f,
18454       { "map-f", "gsm_map.om.map-f",
18455         FT_BOOLEAN, 8, NULL, 0x02,
18456         "", HFILL }},
18457     { &hf_gsm_map_om_MSC_S_InterfaceList_cap,
18458       { "cap", "gsm_map.om.cap",
18459         FT_BOOLEAN, 8, NULL, 0x01,
18460         "", HFILL }},
18461     { &hf_gsm_map_om_MSC_S_InterfaceList_map_d,
18462       { "map-d", "gsm_map.om.map-d",
18463         FT_BOOLEAN, 8, NULL, 0x80,
18464         "", HFILL }},
18465     { &hf_gsm_map_om_MSC_S_InterfaceList_map_c,
18466       { "map-c", "gsm_map.om.map-c",
18467         FT_BOOLEAN, 8, NULL, 0x40,
18468         "", HFILL }},
18469     { &hf_gsm_map_om_MGW_InterfaceList_mc,
18470       { "mc", "gsm_map.om.mc",
18471         FT_BOOLEAN, 8, NULL, 0x80,
18472         "", HFILL }},
18473     { &hf_gsm_map_om_MGW_InterfaceList_nb_up,
18474       { "nb-up", "gsm_map.om.nb-up",
18475         FT_BOOLEAN, 8, NULL, 0x40,
18476         "", HFILL }},
18477     { &hf_gsm_map_om_MGW_InterfaceList_iu_up,
18478       { "iu-up", "gsm_map.om.iu-up",
18479         FT_BOOLEAN, 8, NULL, 0x20,
18480         "", HFILL }},
18481     { &hf_gsm_map_om_SGSN_InterfaceList_gb,
18482       { "gb", "gsm_map.om.gb",
18483         FT_BOOLEAN, 8, NULL, 0x80,
18484         "", HFILL }},
18485     { &hf_gsm_map_om_SGSN_InterfaceList_iu,
18486       { "iu", "gsm_map.om.iu",
18487         FT_BOOLEAN, 8, NULL, 0x40,
18488         "", HFILL }},
18489     { &hf_gsm_map_om_SGSN_InterfaceList_gn,
18490       { "gn", "gsm_map.om.gn",
18491         FT_BOOLEAN, 8, NULL, 0x20,
18492         "", HFILL }},
18493     { &hf_gsm_map_om_SGSN_InterfaceList_map_gr,
18494       { "map-gr", "gsm_map.om.map-gr",
18495         FT_BOOLEAN, 8, NULL, 0x10,
18496         "", HFILL }},
18497     { &hf_gsm_map_om_SGSN_InterfaceList_map_gd,
18498       { "map-gd", "gsm_map.om.map-gd",
18499         FT_BOOLEAN, 8, NULL, 0x08,
18500         "", HFILL }},
18501     { &hf_gsm_map_om_SGSN_InterfaceList_map_gf,
18502       { "map-gf", "gsm_map.om.map-gf",
18503         FT_BOOLEAN, 8, NULL, 0x04,
18504         "", HFILL }},
18505     { &hf_gsm_map_om_SGSN_InterfaceList_gs,
18506       { "gs", "gsm_map.om.gs",
18507         FT_BOOLEAN, 8, NULL, 0x02,
18508         "", HFILL }},
18509     { &hf_gsm_map_om_SGSN_InterfaceList_ge,
18510       { "ge", "gsm_map.om.ge",
18511         FT_BOOLEAN, 8, NULL, 0x01,
18512         "", HFILL }},
18513     { &hf_gsm_map_om_GGSN_InterfaceList_gn,
18514       { "gn", "gsm_map.om.gn",
18515         FT_BOOLEAN, 8, NULL, 0x80,
18516         "", HFILL }},
18517     { &hf_gsm_map_om_GGSN_InterfaceList_gi,
18518       { "gi", "gsm_map.om.gi",
18519         FT_BOOLEAN, 8, NULL, 0x40,
18520         "", HFILL }},
18521     { &hf_gsm_map_om_GGSN_InterfaceList_gmb,
18522       { "gmb", "gsm_map.om.gmb",
18523         FT_BOOLEAN, 8, NULL, 0x20,
18524         "", HFILL }},
18525     { &hf_gsm_map_om_RNC_InterfaceList_iu,
18526       { "iu", "gsm_map.om.iu",
18527         FT_BOOLEAN, 8, NULL, 0x80,
18528         "", HFILL }},
18529     { &hf_gsm_map_om_RNC_InterfaceList_iur,
18530       { "iur", "gsm_map.om.iur",
18531         FT_BOOLEAN, 8, NULL, 0x40,
18532         "", HFILL }},
18533     { &hf_gsm_map_om_RNC_InterfaceList_iub,
18534       { "iub", "gsm_map.om.iub",
18535         FT_BOOLEAN, 8, NULL, 0x20,
18536         "", HFILL }},
18537     { &hf_gsm_map_om_RNC_InterfaceList_uu,
18538       { "uu", "gsm_map.om.uu",
18539         FT_BOOLEAN, 8, NULL, 0x10,
18540         "", HFILL }},
18541     { &hf_gsm_map_om_BMSC_InterfaceList_gmb,
18542       { "gmb", "gsm_map.om.gmb",
18543         FT_BOOLEAN, 8, NULL, 0x80,
18544         "", HFILL }},
18545     { &hf_gsm_map_om_MSC_S_EventList_mo_mtCall,
18546       { "mo-mtCall", "gsm_map.om.mo-mtCall",
18547         FT_BOOLEAN, 8, NULL, 0x80,
18548         "", HFILL }},
18549     { &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms,
18550       { "mo-mt-sms", "gsm_map.om.mo-mt-sms",
18551         FT_BOOLEAN, 8, NULL, 0x40,
18552         "", HFILL }},
18553     { &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach,
18554       { "lu-imsiAttach-imsiDetach", "gsm_map.om.lu-imsiAttach-imsiDetach",
18555         FT_BOOLEAN, 8, NULL, 0x20,
18556         "", HFILL }},
18557     { &hf_gsm_map_om_MSC_S_EventList_handovers,
18558       { "handovers", "gsm_map.om.handovers",
18559         FT_BOOLEAN, 8, NULL, 0x10,
18560         "", HFILL }},
18561     { &hf_gsm_map_om_MSC_S_EventList_ss,
18562       { "ss", "gsm_map.om.ss",
18563         FT_BOOLEAN, 8, NULL, 0x08,
18564         "", HFILL }},
18565     { &hf_gsm_map_om_MGW_EventList_context,
18566       { "context", "gsm_map.om.context",
18567         FT_BOOLEAN, 8, NULL, 0x80,
18568         "", HFILL }},
18569     { &hf_gsm_map_om_SGSN_EventList_pdpContext,
18570       { "pdpContext", "gsm_map.om.pdpContext",
18571         FT_BOOLEAN, 8, NULL, 0x80,
18572         "", HFILL }},
18573     { &hf_gsm_map_om_SGSN_EventList_mo_mt_sms,
18574       { "mo-mt-sms", "gsm_map.om.mo-mt-sms",
18575         FT_BOOLEAN, 8, NULL, 0x40,
18576         "", HFILL }},
18577     { &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach,
18578       { "rau-gprsAttach-gprsDetach", "gsm_map.om.rau-gprsAttach-gprsDetach",
18579         FT_BOOLEAN, 8, NULL, 0x20,
18580         "", HFILL }},
18581     { &hf_gsm_map_om_SGSN_EventList_mbmsContext,
18582       { "mbmsContext", "gsm_map.om.mbmsContext",
18583         FT_BOOLEAN, 8, NULL, 0x10,
18584         "", HFILL }},
18585     { &hf_gsm_map_om_GGSN_EventList_pdpContext,
18586       { "pdpContext", "gsm_map.om.pdpContext",
18587         FT_BOOLEAN, 8, NULL, 0x80,
18588         "", HFILL }},
18589     { &hf_gsm_map_om_GGSN_EventList_mbmsContext,
18590       { "mbmsContext", "gsm_map.om.mbmsContext",
18591         FT_BOOLEAN, 8, NULL, 0x40,
18592         "", HFILL }},
18593     { &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation,
18594       { "mbmsMulticastServiceActivation", "gsm_map.om.mbmsMulticastServiceActivation",
18595         FT_BOOLEAN, 8, NULL, 0x80,
18596         "", HFILL }},
18597
18598 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
18599
18600     { &hf_gsm_map_ms_imsi,
18601       { "imsi", "gsm_map.ms.imsi",
18602         FT_BYTES, BASE_HEX, NULL, 0,
18603         "gsm_map.IMSI", HFILL }},
18604     { &hf_gsm_map_ms_msc_Number,
18605       { "msc-Number", "gsm_map.ms.msc_Number",
18606         FT_BYTES, BASE_HEX, NULL, 0,
18607         "gsm_map.ISDN_AddressString", HFILL }},
18608     { &hf_gsm_map_ms_vlr_Number,
18609       { "vlr-Number", "gsm_map.ms.vlr_Number",
18610         FT_BYTES, BASE_HEX, NULL, 0,
18611         "gsm_map.ISDN_AddressString", HFILL }},
18612     { &hf_gsm_map_ms_lmsi,
18613       { "lmsi", "gsm_map.ms.lmsi",
18614         FT_BYTES, BASE_HEX, NULL, 0,
18615         "gsm_map.LMSI", HFILL }},
18616     { &hf_gsm_map_ms_extensionContainer,
18617       { "extensionContainer", "gsm_map.ms.extensionContainer",
18618         FT_NONE, BASE_NONE, NULL, 0,
18619         "gsm_map.ExtensionContainer", HFILL }},
18620     { &hf_gsm_map_ms_vlr_Capability,
18621       { "vlr-Capability", "gsm_map.ms.vlr_Capability",
18622         FT_NONE, BASE_NONE, NULL, 0,
18623         "gsm_map_ms.VLR_Capability", HFILL }},
18624     { &hf_gsm_map_ms_informPreviousNetworkEntity,
18625       { "informPreviousNetworkEntity", "gsm_map.ms.informPreviousNetworkEntity",
18626         FT_NONE, BASE_NONE, NULL, 0,
18627         "gsm_map_ms.NULL", HFILL }},
18628     { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE,
18629       { "cs-LCS-NotSupportedByUE", "gsm_map.ms.cs_LCS_NotSupportedByUE",
18630         FT_NONE, BASE_NONE, NULL, 0,
18631         "gsm_map_ms.NULL", HFILL }},
18632     { &hf_gsm_map_ms_v_gmlc_Address,
18633       { "v-gmlc-Address", "gsm_map.ms.v_gmlc_Address",
18634         FT_BYTES, BASE_HEX, NULL, 0,
18635         "gsm_map_ms.GSN_Address", HFILL }},
18636     { &hf_gsm_map_ms_add_info,
18637       { "add-info", "gsm_map.ms.add_info",
18638         FT_NONE, BASE_NONE, NULL, 0,
18639         "gsm_map_ms.ADD_Info", HFILL }},
18640     { &hf_gsm_map_ms_supportedCamelPhases,
18641       { "supportedCamelPhases", "gsm_map.ms.supportedCamelPhases",
18642         FT_BYTES, BASE_HEX, NULL, 0,
18643         "gsm_map_ms.SupportedCamelPhases", HFILL }},
18644     { &hf_gsm_map_ms_solsaSupportIndicator,
18645       { "solsaSupportIndicator", "gsm_map.ms.solsaSupportIndicator",
18646         FT_NONE, BASE_NONE, NULL, 0,
18647         "gsm_map_ms.NULL", HFILL }},
18648     { &hf_gsm_map_ms_istSupportIndicator,
18649       { "istSupportIndicator", "gsm_map.ms.istSupportIndicator",
18650         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
18651         "gsm_map_ms.IST_SupportIndicator", HFILL }},
18652     { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity,
18653       { "superChargerSupportedInServingNetworkEntity", "gsm_map.ms.superChargerSupportedInServingNetworkEntity",
18654         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SuperChargerInfo_vals), 0,
18655         "gsm_map_ms.SuperChargerInfo", HFILL }},
18656     { &hf_gsm_map_ms_longFTN_Supported,
18657       { "longFTN-Supported", "gsm_map.ms.longFTN_Supported",
18658         FT_NONE, BASE_NONE, NULL, 0,
18659         "gsm_map_ms.NULL", HFILL }},
18660     { &hf_gsm_map_ms_supportedLCS_CapabilitySets,
18661       { "supportedLCS-CapabilitySets", "gsm_map.ms.supportedLCS_CapabilitySets",
18662         FT_BYTES, BASE_HEX, NULL, 0,
18663         "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }},
18664     { &hf_gsm_map_ms_offeredCamel4CSIs,
18665       { "offeredCamel4CSIs", "gsm_map.ms.offeredCamel4CSIs",
18666         FT_BYTES, BASE_HEX, NULL, 0,
18667         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
18668     { &hf_gsm_map_ms_supportedRAT_TypesIndicator,
18669       { "supportedRAT-TypesIndicator", "gsm_map.ms.supportedRAT_TypesIndicator",
18670         FT_BYTES, BASE_HEX, NULL, 0,
18671         "gsm_map_ms.SupportedRAT_Types", HFILL }},
18672     { &hf_gsm_map_ms_longGroupID_Supported,
18673       { "longGroupID-Supported", "gsm_map.ms.longGroupID_Supported",
18674         FT_NONE, BASE_NONE, NULL, 0,
18675         "gsm_map_ms.NULL", HFILL }},
18676     { &hf_gsm_map_ms_sendSubscriberData,
18677       { "sendSubscriberData", "gsm_map.ms.sendSubscriberData",
18678         FT_NONE, BASE_NONE, NULL, 0,
18679         "gsm_map_ms.NULL", HFILL }},
18680     { &hf_gsm_map_ms_subscriberDataStored,
18681       { "subscriberDataStored", "gsm_map.ms.subscriberDataStored",
18682         FT_BYTES, BASE_HEX, NULL, 0,
18683         "gsm_map_ms.AgeIndicator", HFILL }},
18684     { &hf_gsm_map_ms_hlr_Number,
18685       { "hlr-Number", "gsm_map.ms.hlr_Number",
18686         FT_BYTES, BASE_HEX, NULL, 0,
18687         "gsm_map.ISDN_AddressString", HFILL }},
18688     { &hf_gsm_map_ms_add_Capability,
18689       { "add-Capability", "gsm_map.ms.add_Capability",
18690         FT_NONE, BASE_NONE, NULL, 0,
18691         "gsm_map_ms.NULL", HFILL }},
18692     { &hf_gsm_map_ms_imeisv,
18693       { "imeisv", "gsm_map.ms.imeisv",
18694         FT_BYTES, BASE_HEX, NULL, 0,
18695         "gsm_map.IMEI", HFILL }},
18696     { &hf_gsm_map_ms_skipSubscriberDataUpdate,
18697       { "skipSubscriberDataUpdate", "gsm_map.ms.skipSubscriberDataUpdate",
18698         FT_NONE, BASE_NONE, NULL, 0,
18699         "gsm_map_ms.NULL", HFILL }},
18700     { &hf_gsm_map_ms_identity,
18701       { "identity", "gsm_map.ms.identity",
18702         FT_UINT32, BASE_DEC, VALS(gsm_map_Identity_vals), 0,
18703         "gsm_map.Identity", HFILL }},
18704     { &hf_gsm_map_ms_cancellationType,
18705       { "cancellationType", "gsm_map.ms.cancellationType",
18706         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CancellationType_vals), 0,
18707         "gsm_map_ms.CancellationType", HFILL }},
18708     { &hf_gsm_map_ms_sgsn_Number,
18709       { "sgsn-Number", "gsm_map.ms.sgsn_Number",
18710         FT_BYTES, BASE_HEX, NULL, 0,
18711         "gsm_map.ISDN_AddressString", HFILL }},
18712     { &hf_gsm_map_ms_freezeTMSI,
18713       { "freezeTMSI", "gsm_map.ms.freezeTMSI",
18714         FT_NONE, BASE_NONE, NULL, 0,
18715         "gsm_map_ms.NULL", HFILL }},
18716     { &hf_gsm_map_ms_freezeP_TMSI,
18717       { "freezeP-TMSI", "gsm_map.ms.freezeP_TMSI",
18718         FT_NONE, BASE_NONE, NULL, 0,
18719         "gsm_map_ms.NULL", HFILL }},
18720     { &hf_gsm_map_ms_tmsi,
18721       { "tmsi", "gsm_map.ms.tmsi",
18722         FT_BYTES, BASE_HEX, NULL, 0,
18723         "gsm_map.TMSI", HFILL }},
18724     { &hf_gsm_map_ms_numberOfRequestedVectors,
18725       { "numberOfRequestedVectors", "gsm_map.ms.numberOfRequestedVectors",
18726         FT_UINT32, BASE_DEC, NULL, 0,
18727         "gsm_map_ms.NumberOfRequestedVectors", HFILL }},
18728     { &hf_gsm_map_ms_segmentationProhibited,
18729       { "segmentationProhibited", "gsm_map.ms.segmentationProhibited",
18730         FT_NONE, BASE_NONE, NULL, 0,
18731         "gsm_map_ms.NULL", HFILL }},
18732     { &hf_gsm_map_ms_previous_LAI,
18733       { "previous-LAI", "gsm_map.ms.previous_LAI",
18734         FT_BYTES, BASE_HEX, NULL, 0,
18735         "gsm_map.LAIFixedLength", HFILL }},
18736     { &hf_gsm_map_ms_hopCounter,
18737       { "hopCounter", "gsm_map.ms.hopCounter",
18738         FT_UINT32, BASE_DEC, NULL, 0,
18739         "gsm_map_ms.HopCounter", HFILL }},
18740     { &hf_gsm_map_ms_authenticationSetList,
18741       { "authenticationSetList", "gsm_map.ms.authenticationSetList",
18742         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AuthenticationSetList_vals), 0,
18743         "gsm_map_ms.AuthenticationSetList", HFILL }},
18744     { &hf_gsm_map_ms_currentSecurityContext,
18745       { "currentSecurityContext", "gsm_map.ms.currentSecurityContext",
18746         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CurrentSecurityContext_vals), 0,
18747         "gsm_map_ms.CurrentSecurityContext", HFILL }},
18748     { &hf_gsm_map_ms_tripletList,
18749       { "tripletList", "gsm_map.ms.tripletList",
18750         FT_UINT32, BASE_DEC, NULL, 0,
18751         "gsm_map_ms.TripletList", HFILL }},
18752     { &hf_gsm_map_ms_quintupletList,
18753       { "quintupletList", "gsm_map.ms.quintupletList",
18754         FT_UINT32, BASE_DEC, NULL, 0,
18755         "gsm_map_ms.QuintupletList", HFILL }},
18756     { &hf_gsm_map_ms_TripletList_item,
18757       { "TripletList", "gsm_map.ms.TripletList_item",
18758         FT_NONE, BASE_NONE, NULL, 0,
18759         "gsm_map_ms.AuthenticationTriplet", HFILL }},
18760     { &hf_gsm_map_ms_QuintupletList_item,
18761       { "QuintupletList", "gsm_map.ms.QuintupletList_item",
18762         FT_NONE, BASE_NONE, NULL, 0,
18763         "gsm_map_ms.AuthenticationQuintuplet", HFILL }},
18764     { &hf_gsm_map_ms_rand,
18765       { "rand", "gsm_map.ms.rand",
18766         FT_BYTES, BASE_HEX, NULL, 0,
18767         "gsm_map_ms.RAND", HFILL }},
18768     { &hf_gsm_map_ms_sres,
18769       { "sres", "gsm_map.ms.sres",
18770         FT_BYTES, BASE_HEX, NULL, 0,
18771         "gsm_map_ms.SRES", HFILL }},
18772     { &hf_gsm_map_ms_kc,
18773       { "kc", "gsm_map.ms.kc",
18774         FT_BYTES, BASE_HEX, NULL, 0,
18775         "gsm_map_ms.Kc", HFILL }},
18776     { &hf_gsm_map_ms_xres,
18777       { "xres", "gsm_map.ms.xres",
18778         FT_BYTES, BASE_HEX, NULL, 0,
18779         "gsm_map_ms.XRES", HFILL }},
18780     { &hf_gsm_map_ms_ck,
18781       { "ck", "gsm_map.ms.ck",
18782         FT_BYTES, BASE_HEX, NULL, 0,
18783         "gsm_map_ms.CK", HFILL }},
18784     { &hf_gsm_map_ms_ik,
18785       { "ik", "gsm_map.ms.ik",
18786         FT_BYTES, BASE_HEX, NULL, 0,
18787         "gsm_map_ms.IK", HFILL }},
18788     { &hf_gsm_map_ms_autn,
18789       { "autn", "gsm_map.ms.autn",
18790         FT_BYTES, BASE_HEX, NULL, 0,
18791         "gsm_map_ms.AUTN", HFILL }},
18792     { &hf_gsm_map_ms_gsm_SecurityContextData,
18793       { "gsm-SecurityContextData", "gsm_map.ms.gsm_SecurityContextData",
18794         FT_NONE, BASE_NONE, NULL, 0,
18795         "gsm_map_ms.GSM_SecurityContextData", HFILL }},
18796     { &hf_gsm_map_ms_umts_SecurityContextData,
18797       { "umts-SecurityContextData", "gsm_map.ms.umts_SecurityContextData",
18798         FT_NONE, BASE_NONE, NULL, 0,
18799         "gsm_map_ms.UMTS_SecurityContextData", HFILL }},
18800     { &hf_gsm_map_ms_cksn,
18801       { "cksn", "gsm_map.ms.cksn",
18802         FT_BYTES, BASE_HEX, NULL, 0,
18803         "gsm_map_ms.Cksn", HFILL }},
18804     { &hf_gsm_map_ms_ksi,
18805       { "ksi", "gsm_map.ms.ksi",
18806         FT_BYTES, BASE_HEX, NULL, 0,
18807         "gsm_map_ms.KSI", HFILL }},
18808     { &hf_gsm_map_ms_failureCause,
18809       { "failureCause", "gsm_map.ms.failureCause",
18810         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_FailureCause_vals), 0,
18811         "gsm_map_ms.FailureCause", HFILL }},
18812     { &hf_gsm_map_ms_re_attempt,
18813       { "re-attempt", "gsm_map.ms.re_attempt",
18814         FT_BOOLEAN, 8, NULL, 0,
18815         "gsm_map_ms.BOOLEAN", HFILL }},
18816     { &hf_gsm_map_ms_accessType,
18817       { "accessType", "gsm_map.ms.accessType",
18818         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AccessType_vals), 0,
18819         "gsm_map_ms.AccessType", HFILL }},
18820     { &hf_gsm_map_ms_sgsn_Address,
18821       { "sgsn-Address", "gsm_map.ms.sgsn_Address",
18822         FT_BYTES, BASE_HEX, NULL, 0,
18823         "gsm_map_ms.GSN_Address", HFILL }},
18824     { &hf_gsm_map_ms_sgsn_Capability,
18825       { "sgsn-Capability", "gsm_map.ms.sgsn_Capability",
18826         FT_NONE, BASE_NONE, NULL, 0,
18827         "gsm_map_ms.SGSN_Capability", HFILL }},
18828     { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE,
18829       { "ps-LCS-NotSupportedByUE", "gsm_map.ms.ps_LCS_NotSupportedByUE",
18830         FT_NONE, BASE_NONE, NULL, 0,
18831         "gsm_map_ms.NULL", HFILL }},
18832     { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator,
18833       { "gprsEnhancementsSupportIndicator", "gsm_map.ms.gprsEnhancementsSupportIndicator",
18834         FT_NONE, BASE_NONE, NULL, 0,
18835         "gsm_map_ms.NULL", HFILL }},
18836     { &hf_gsm_map_ms_smsCallBarringSupportIndicator,
18837       { "smsCallBarringSupportIndicator", "gsm_map.ms.smsCallBarringSupportIndicator",
18838         FT_NONE, BASE_NONE, NULL, 0,
18839         "gsm_map_ms.NULL", HFILL }},
18840     { &hf_gsm_map_ms_an_APDU,
18841       { "an-APDU", "gsm_map.ms.an_APDU",
18842         FT_NONE, BASE_NONE, NULL, 0,
18843         "gsm_map.AccessNetworkSignalInfo", HFILL }},
18844     { &hf_gsm_map_ms_integrityProtectionInfo,
18845       { "integrityProtectionInfo", "gsm_map.ms.integrityProtectionInfo",
18846         FT_BYTES, BASE_HEX, NULL, 0,
18847         "gsm_map_ms.IntegrityProtectionInformation", HFILL }},
18848     { &hf_gsm_map_ms_encryptionInfo,
18849       { "encryptionInfo", "gsm_map.ms.encryptionInfo",
18850         FT_BYTES, BASE_HEX, NULL, 0,
18851         "gsm_map_ms.EncryptionInformation", HFILL }},
18852     { &hf_gsm_map_ms_keyStatus,
18853       { "keyStatus", "gsm_map.ms.keyStatus",
18854         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_KeyStatus_vals), 0,
18855         "gsm_map_ms.KeyStatus", HFILL }},
18856     { &hf_gsm_map_ms_allowedGSM_Algorithms,
18857       { "allowedGSM-Algorithms", "gsm_map.ms.allowedGSM_Algorithms",
18858         FT_BYTES, BASE_HEX, NULL, 0,
18859         "gsm_map_ms.AllowedGSM_Algorithms", HFILL }},
18860     { &hf_gsm_map_ms_allowedUMTS_Algorithms,
18861       { "allowedUMTS-Algorithms", "gsm_map.ms.allowedUMTS_Algorithms",
18862         FT_NONE, BASE_NONE, NULL, 0,
18863         "gsm_map_ms.AllowedUMTS_Algorithms", HFILL }},
18864     { &hf_gsm_map_ms_radioResourceInformation,
18865       { "radioResourceInformation", "gsm_map.ms.radioResourceInformation",
18866         FT_BYTES, BASE_HEX, NULL, 0,
18867         "gsm_map_ms.RadioResourceInformation", HFILL }},
18868     { &hf_gsm_map_ms_radioResourceList,
18869       { "radioResourceList", "gsm_map.ms.radioResourceList",
18870         FT_UINT32, BASE_DEC, NULL, 0,
18871         "gsm_map_ms.RadioResourceList", HFILL }},
18872     { &hf_gsm_map_ms_bssmap_ServiceHandover,
18873       { "bssmap-ServiceHandover", "gsm_map.ms.bssmap_ServiceHandover",
18874         FT_BYTES, BASE_HEX, NULL, 0,
18875         "gsm_map_ms.BSSMAP_ServiceHandover", HFILL }},
18876     { &hf_gsm_map_ms_ranap_ServiceHandover,
18877       { "ranap-ServiceHandover", "gsm_map.ms.ranap_ServiceHandover",
18878         FT_BYTES, BASE_HEX, NULL, 0,
18879         "gsm_map_ms.RANAP_ServiceHandover", HFILL }},
18880     { &hf_gsm_map_ms_bssmap_ServiceHandoverList,
18881       { "bssmap-ServiceHandoverList", "gsm_map.ms.bssmap_ServiceHandoverList",
18882         FT_UINT32, BASE_DEC, NULL, 0,
18883         "gsm_map_ms.BSSMAP_ServiceHandoverList", HFILL }},
18884     { &hf_gsm_map_ms_currentlyUsedCodec,
18885       { "currentlyUsedCodec", "gsm_map.ms.currentlyUsedCodec",
18886         FT_BYTES, BASE_HEX, NULL, 0,
18887         "gsm_map_ms.Codec", HFILL }},
18888     { &hf_gsm_map_ms_iuSupportedCodecsList,
18889       { "iuSupportedCodecsList", "gsm_map.ms.iuSupportedCodecsList",
18890         FT_NONE, BASE_NONE, NULL, 0,
18891         "gsm_map_ms.SupportedCodecsList", HFILL }},
18892     { &hf_gsm_map_ms_rab_ConfigurationIndicator,
18893       { "rab-ConfigurationIndicator", "gsm_map.ms.rab_ConfigurationIndicator",
18894         FT_NONE, BASE_NONE, NULL, 0,
18895         "gsm_map_ms.NULL", HFILL }},
18896     { &hf_gsm_map_ms_iuSelectedCodec,
18897       { "iuSelectedCodec", "gsm_map.ms.iuSelectedCodec",
18898         FT_BYTES, BASE_HEX, NULL, 0,
18899         "gsm_map_ms.Codec", HFILL }},
18900     { &hf_gsm_map_ms_alternativeChannelType,
18901       { "alternativeChannelType", "gsm_map.ms.alternativeChannelType",
18902         FT_BYTES, BASE_HEX, NULL, 0,
18903         "gsm_map_ms.RadioResourceInformation", HFILL }},
18904     { &hf_gsm_map_ms_tracePropagationList,
18905       { "tracePropagationList", "gsm_map.ms.tracePropagationList",
18906         FT_NONE, BASE_NONE, NULL, 0,
18907         "gsm_map_om.TracePropagationList", HFILL }},
18908     { &hf_gsm_map_ms_integrityProtectionAlgorithms,
18909       { "integrityProtectionAlgorithms", "gsm_map.ms.integrityProtectionAlgorithms",
18910         FT_BYTES, BASE_HEX, NULL, 0,
18911         "gsm_map_ms.PermittedIntegrityProtectionAlgorithms", HFILL }},
18912     { &hf_gsm_map_ms_encryptionAlgorithms,
18913       { "encryptionAlgorithms", "gsm_map.ms.encryptionAlgorithms",
18914         FT_BYTES, BASE_HEX, NULL, 0,
18915         "gsm_map_ms.PermittedEncryptionAlgorithms", HFILL }},
18916     { &hf_gsm_map_ms_targetCellId,
18917       { "targetCellId", "gsm_map.ms.targetCellId",
18918         FT_BYTES, BASE_HEX, NULL, 0,
18919         "gsm_map.GlobalCellId", HFILL }},
18920     { &hf_gsm_map_ms_ho_NumberNotRequired,
18921       { "ho-NumberNotRequired", "gsm_map.ms.ho_NumberNotRequired",
18922         FT_NONE, BASE_NONE, NULL, 0,
18923         "gsm_map_ms.NULL", HFILL }},
18924     { &hf_gsm_map_ms_targetRNCId,
18925       { "targetRNCId", "gsm_map.ms.targetRNCId",
18926         FT_BYTES, BASE_HEX, NULL, 0,
18927         "gsm_map_ms.RNCId", HFILL }},
18928     { &hf_gsm_map_ms_multipleBearerRequested,
18929       { "multipleBearerRequested", "gsm_map.ms.multipleBearerRequested",
18930         FT_NONE, BASE_NONE, NULL, 0,
18931         "gsm_map_ms.NULL", HFILL }},
18932     { &hf_gsm_map_ms_rab_Id,
18933       { "rab-Id", "gsm_map.ms.rab_Id",
18934         FT_UINT32, BASE_DEC, NULL, 0,
18935         "gsm_map_ms.RAB_Id", HFILL }},
18936     { &hf_gsm_map_ms_asciCallReference,
18937       { "asciCallReference", "gsm_map.ms.asciCallReference",
18938         FT_BYTES, BASE_HEX, NULL, 0,
18939         "gsm_map.ASCI_CallReference", HFILL }},
18940     { &hf_gsm_map_ms_geran_classmark,
18941       { "geran-classmark", "gsm_map.ms.geran_classmark",
18942         FT_BYTES, BASE_HEX, NULL, 0,
18943         "gsm_map_ms.GERAN_Classmark", HFILL }},
18944     { &hf_gsm_map_ms_iuCurrentlyUsedCodec,
18945       { "iuCurrentlyUsedCodec", "gsm_map.ms.iuCurrentlyUsedCodec",
18946         FT_BYTES, BASE_HEX, NULL, 0,
18947         "gsm_map_ms.Codec", HFILL }},
18948     { &hf_gsm_map_ms_uesbi_Iu,
18949       { "uesbi-Iu", "gsm_map.ms.uesbi_Iu",
18950         FT_NONE, BASE_NONE, NULL, 0,
18951         "gsm_map_ms.UESBI_Iu", HFILL }},
18952     { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item,
18953       { "BSSMAP-ServiceHandoverList", "gsm_map.ms.BSSMAP_ServiceHandoverList_item",
18954         FT_NONE, BASE_NONE, NULL, 0,
18955         "gsm_map_ms.BSSMAP_ServiceHandoverInfo", HFILL }},
18956     { &hf_gsm_map_ms_RadioResourceList_item,
18957       { "RadioResourceList", "gsm_map.ms.RadioResourceList_item",
18958         FT_NONE, BASE_NONE, NULL, 0,
18959         "gsm_map_ms.RadioResource", HFILL }},
18960     { &hf_gsm_map_ms_handoverNumber,
18961       { "handoverNumber", "gsm_map.ms.handoverNumber",
18962         FT_BYTES, BASE_HEX, NULL, 0,
18963         "gsm_map.ISDN_AddressString", HFILL }},
18964     { &hf_gsm_map_ms_relocationNumberList,
18965       { "relocationNumberList", "gsm_map.ms.relocationNumberList",
18966         FT_UINT32, BASE_DEC, NULL, 0,
18967         "gsm_map_ms.RelocationNumberList", HFILL }},
18968     { &hf_gsm_map_ms_multicallBearerInfo,
18969       { "multicallBearerInfo", "gsm_map.ms.multicallBearerInfo",
18970         FT_UINT32, BASE_DEC, NULL, 0,
18971         "gsm_map_ms.MulticallBearerInfo", HFILL }},
18972     { &hf_gsm_map_ms_multipleBearerNotSupported,
18973       { "multipleBearerNotSupported", "gsm_map.ms.multipleBearerNotSupported",
18974         FT_NONE, BASE_NONE, NULL, 0,
18975         "gsm_map_ms.NULL", HFILL }},
18976     { &hf_gsm_map_ms_selectedUMTS_Algorithms,
18977       { "selectedUMTS-Algorithms", "gsm_map.ms.selectedUMTS_Algorithms",
18978         FT_NONE, BASE_NONE, NULL, 0,
18979         "gsm_map_ms.SelectedUMTS_Algorithms", HFILL }},
18980     { &hf_gsm_map_ms_chosenRadioResourceInformation,
18981       { "chosenRadioResourceInformation", "gsm_map.ms.chosenRadioResourceInformation",
18982         FT_NONE, BASE_NONE, NULL, 0,
18983         "gsm_map_ms.ChosenRadioResourceInformation", HFILL }},
18984     { &hf_gsm_map_ms_iuAvailableCodecsList,
18985       { "iuAvailableCodecsList", "gsm_map.ms.iuAvailableCodecsList",
18986         FT_NONE, BASE_NONE, NULL, 0,
18987         "gsm_map_ms.CodecList", HFILL }},
18988     { &hf_gsm_map_ms_integrityProtectionAlgorithm,
18989       { "integrityProtectionAlgorithm", "gsm_map.ms.integrityProtectionAlgorithm",
18990         FT_BYTES, BASE_HEX, NULL, 0,
18991         "gsm_map_ms.ChosenIntegrityProtectionAlgorithm", HFILL }},
18992     { &hf_gsm_map_ms_encryptionAlgorithm,
18993       { "encryptionAlgorithm", "gsm_map.ms.encryptionAlgorithm",
18994         FT_BYTES, BASE_HEX, NULL, 0,
18995         "gsm_map_ms.ChosenEncryptionAlgorithm", HFILL }},
18996     { &hf_gsm_map_ms_chosenChannelInfo,
18997       { "chosenChannelInfo", "gsm_map.ms.chosenChannelInfo",
18998         FT_BYTES, BASE_HEX, NULL, 0,
18999         "gsm_map_ms.ChosenChannelInfo", HFILL }},
19000     { &hf_gsm_map_ms_chosenSpeechVersion,
19001       { "chosenSpeechVersion", "gsm_map.ms.chosenSpeechVersion",
19002         FT_BYTES, BASE_HEX, NULL, 0,
19003         "gsm_map_ms.ChosenSpeechVersion", HFILL }},
19004     { &hf_gsm_map_ms_targetMSC_Number,
19005       { "targetMSC-Number", "gsm_map.ms.targetMSC_Number",
19006         FT_BYTES, BASE_HEX, NULL, 0,
19007         "gsm_map.ISDN_AddressString", HFILL }},
19008     { &hf_gsm_map_ms_selectedRab_Id,
19009       { "selectedRab-Id", "gsm_map.ms.selectedRab_Id",
19010         FT_UINT32, BASE_DEC, NULL, 0,
19011         "gsm_map_ms.RAB_Id", HFILL }},
19012     { &hf_gsm_map_ms_selectedGSM_Algorithm,
19013       { "selectedGSM-Algorithm", "gsm_map.ms.selectedGSM_Algorithm",
19014         FT_BYTES, BASE_HEX, NULL, 0,
19015         "gsm_map_ms.SelectedGSM_Algorithm", HFILL }},
19016     { &hf_gsm_map_ms_iUSelectedCodec,
19017       { "iUSelectedCodec", "gsm_map.ms.iUSelectedCodec",
19018         FT_BYTES, BASE_HEX, NULL, 0,
19019         "gsm_map_ms.Codec", HFILL }},
19020     { &hf_gsm_map_ms_utranCodecList,
19021       { "utranCodecList", "gsm_map.ms.utranCodecList",
19022         FT_NONE, BASE_NONE, NULL, 0,
19023         "gsm_map_ms.CodecList", HFILL }},
19024     { &hf_gsm_map_ms_geranCodecList,
19025       { "geranCodecList", "gsm_map.ms.geranCodecList",
19026         FT_NONE, BASE_NONE, NULL, 0,
19027         "gsm_map_ms.CodecList", HFILL }},
19028     { &hf_gsm_map_ms_codec1,
19029       { "codec1", "gsm_map.ms.codec1",
19030         FT_BYTES, BASE_HEX, NULL, 0,
19031         "gsm_map_ms.Codec", HFILL }},
19032     { &hf_gsm_map_ms_codec2,
19033       { "codec2", "gsm_map.ms.codec2",
19034         FT_BYTES, BASE_HEX, NULL, 0,
19035         "gsm_map_ms.Codec", HFILL }},
19036     { &hf_gsm_map_ms_codec3,
19037       { "codec3", "gsm_map.ms.codec3",
19038         FT_BYTES, BASE_HEX, NULL, 0,
19039         "gsm_map_ms.Codec", HFILL }},
19040     { &hf_gsm_map_ms_codec4,
19041       { "codec4", "gsm_map.ms.codec4",
19042         FT_BYTES, BASE_HEX, NULL, 0,
19043         "gsm_map_ms.Codec", HFILL }},
19044     { &hf_gsm_map_ms_codec5,
19045       { "codec5", "gsm_map.ms.codec5",
19046         FT_BYTES, BASE_HEX, NULL, 0,
19047         "gsm_map_ms.Codec", HFILL }},
19048     { &hf_gsm_map_ms_codec6,
19049       { "codec6", "gsm_map.ms.codec6",
19050         FT_BYTES, BASE_HEX, NULL, 0,
19051         "gsm_map_ms.Codec", HFILL }},
19052     { &hf_gsm_map_ms_codec7,
19053       { "codec7", "gsm_map.ms.codec7",
19054         FT_BYTES, BASE_HEX, NULL, 0,
19055         "gsm_map_ms.Codec", HFILL }},
19056     { &hf_gsm_map_ms_codec8,
19057       { "codec8", "gsm_map.ms.codec8",
19058         FT_BYTES, BASE_HEX, NULL, 0,
19059         "gsm_map_ms.Codec", HFILL }},
19060     { &hf_gsm_map_ms_RelocationNumberList_item,
19061       { "RelocationNumberList", "gsm_map.ms.RelocationNumberList_item",
19062         FT_NONE, BASE_NONE, NULL, 0,
19063         "gsm_map_ms.RelocationNumber", HFILL }},
19064     { &hf_gsm_map_ms_immediateResponsePreferred,
19065       { "immediateResponsePreferred", "gsm_map.ms.immediateResponsePreferred",
19066         FT_NONE, BASE_NONE, NULL, 0,
19067         "gsm_map_ms.NULL", HFILL }},
19068     { &hf_gsm_map_ms_re_synchronisationInfo,
19069       { "re-synchronisationInfo", "gsm_map.ms.re_synchronisationInfo",
19070         FT_NONE, BASE_NONE, NULL, 0,
19071         "gsm_map_ms.Re_synchronisationInfo", HFILL }},
19072     { &hf_gsm_map_ms_requestingNodeType,
19073       { "requestingNodeType", "gsm_map.ms.requestingNodeType",
19074         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestingNodeType_vals), 0,
19075         "gsm_map_ms.RequestingNodeType", HFILL }},
19076     { &hf_gsm_map_ms_requestingPLMN_Id,
19077       { "requestingPLMN-Id", "gsm_map.ms.requestingPLMN_Id",
19078         FT_BYTES, BASE_HEX, NULL, 0,
19079         "gsm_map.PLMN_Id", HFILL }},
19080     { &hf_gsm_map_ms_auts,
19081       { "auts", "gsm_map.ms.auts",
19082         FT_BYTES, BASE_HEX, NULL, 0,
19083         "gsm_map_ms.AUTS", HFILL }},
19084     { &hf_gsm_map_ms_imei,
19085       { "imei", "gsm_map.ms.imei",
19086         FT_BYTES, BASE_HEX, NULL, 0,
19087         "gsm_map.IMEI", HFILL }},
19088     { &hf_gsm_map_ms_requestedEquipmentInfo,
19089       { "requestedEquipmentInfo", "gsm_map.ms.requestedEquipmentInfo",
19090         FT_BYTES, BASE_HEX, NULL, 0,
19091         "gsm_map_ms.RequestedEquipmentInfo", HFILL }},
19092     { &hf_gsm_map_ms_equipmentStatus,
19093       { "equipmentStatus", "gsm_map.ms.equipmentStatus",
19094         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EquipmentStatus_vals), 0,
19095         "gsm_map_ms.EquipmentStatus", HFILL }},
19096     { &hf_gsm_map_ms_bmuef,
19097       { "bmuef", "gsm_map.ms.bmuef",
19098         FT_NONE, BASE_NONE, NULL, 0,
19099         "gsm_map_ms.UESBI_Iu", HFILL }},
19100     { &hf_gsm_map_ms_uesbi_IuA,
19101       { "uesbi-IuA", "gsm_map.ms.uesbi_IuA",
19102         FT_BYTES, BASE_HEX, NULL, 0,
19103         "gsm_map_ms.UESBI_IuA", HFILL }},
19104     { &hf_gsm_map_ms_uesbi_IuB,
19105       { "uesbi-IuB", "gsm_map.ms.uesbi_IuB",
19106         FT_BYTES, BASE_HEX, NULL, 0,
19107         "gsm_map_ms.UESBI_IuB", HFILL }},
19108     { &hf_gsm_map_ms_gmlc_List,
19109       { "gmlc-List", "gsm_map.ms.gmlc_List",
19110         FT_UINT32, BASE_DEC, NULL, 0,
19111         "gsm_map_ms.GMLC_List", HFILL }},
19112     { &hf_gsm_map_ms_lcs_PrivacyExceptionList,
19113       { "lcs-PrivacyExceptionList", "gsm_map.ms.lcs_PrivacyExceptionList",
19114         FT_UINT32, BASE_DEC, NULL, 0,
19115         "gsm_map_ms.LCS_PrivacyExceptionList", HFILL }},
19116     { &hf_gsm_map_ms_molr_List,
19117       { "molr-List", "gsm_map.ms.molr_List",
19118         FT_UINT32, BASE_DEC, NULL, 0,
19119         "gsm_map_ms.MOLR_List", HFILL }},
19120     { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList,
19121       { "add-lcs-PrivacyExceptionList", "gsm_map.ms.add_lcs_PrivacyExceptionList",
19122         FT_UINT32, BASE_DEC, NULL, 0,
19123         "gsm_map_ms.LCS_PrivacyExceptionList", HFILL }},
19124     { &hf_gsm_map_ms_GMLC_List_item,
19125       { "GMLC-List", "gsm_map.ms.GMLC_List_item",
19126         FT_BYTES, BASE_HEX, NULL, 0,
19127         "gsm_map.ISDN_AddressString", HFILL }},
19128     { &hf_gsm_map_ms_GPRSDataList_item,
19129       { "GPRSDataList", "gsm_map.ms.GPRSDataList_item",
19130         FT_NONE, BASE_NONE, NULL, 0,
19131         "gsm_map_ms.PDP_Context", HFILL }},
19132     { &hf_gsm_map_ms_pdp_ContextId,
19133       { "pdp-ContextId", "gsm_map.ms.pdp_ContextId",
19134         FT_UINT32, BASE_DEC, NULL, 0,
19135         "gsm_map_ms.ContextId", HFILL }},
19136     { &hf_gsm_map_ms_pdp_Type,
19137       { "pdp-Type", "gsm_map.ms.pdp_Type",
19138         FT_BYTES, BASE_HEX, NULL, 0,
19139         "gsm_map_ms.PDP_Type", HFILL }},
19140     { &hf_gsm_map_ms_pdp_Address,
19141       { "pdp-Address", "gsm_map.ms.pdp_Address",
19142         FT_BYTES, BASE_HEX, NULL, 0,
19143         "gsm_map_ms.PDP_Address", HFILL }},
19144     { &hf_gsm_map_ms_qos_Subscribed,
19145       { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
19146         FT_BYTES, BASE_HEX, NULL, 0,
19147         "gsm_map_ms.QoS_Subscribed", HFILL }},
19148     { &hf_gsm_map_ms_vplmnAddressAllowed,
19149       { "vplmnAddressAllowed", "gsm_map.ms.vplmnAddressAllowed",
19150         FT_NONE, BASE_NONE, NULL, 0,
19151         "gsm_map_ms.NULL", HFILL }},
19152     { &hf_gsm_map_ms_apn,
19153       { "apn", "gsm_map.ms.apn",
19154         FT_BYTES, BASE_HEX, NULL, 0,
19155         "gsm_map_ms.APN", HFILL }},
19156     { &hf_gsm_map_ms_ext_QoS_Subscribed,
19157       { "ext-QoS-Subscribed", "gsm_map.ms.ext_QoS_Subscribed",
19158         FT_BYTES, BASE_HEX, NULL, 0,
19159         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
19160     { &hf_gsm_map_ms_pdp_ChargingCharacteristics,
19161       { "pdp-ChargingCharacteristics", "gsm_map.ms.pdp_ChargingCharacteristics",
19162         FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
19163         "gsm_map_ms.ChargingCharacteristics", HFILL }},
19164     { &hf_gsm_map_ms_ext2_QoS_Subscribed,
19165       { "ext2-QoS-Subscribed", "gsm_map.ms.ext2_QoS_Subscribed",
19166         FT_BYTES, BASE_HEX, NULL, 0,
19167         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
19168     { &hf_gsm_map_ms_ext3_QoS_Subscribed,
19169       { "ext3-QoS-Subscribed", "gsm_map.ms.ext3_QoS_Subscribed",
19170         FT_BYTES, BASE_HEX, NULL, 0,
19171         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
19172     { &hf_gsm_map_ms_completeDataListIncluded,
19173       { "completeDataListIncluded", "gsm_map.ms.completeDataListIncluded",
19174         FT_NONE, BASE_NONE, NULL, 0,
19175         "gsm_map_ms.NULL", HFILL }},
19176     { &hf_gsm_map_ms_gprsDataList,
19177       { "gprsDataList", "gsm_map.ms.gprsDataList",
19178         FT_UINT32, BASE_DEC, NULL, 0,
19179         "gsm_map_ms.GPRSDataList", HFILL }},
19180     { &hf_gsm_map_ms_gprs_CSI,
19181       { "gprs-CSI", "gsm_map.ms.gprs_CSI",
19182         FT_NONE, BASE_NONE, NULL, 0,
19183         "gsm_map_ms.GPRS_CSI", HFILL }},
19184     { &hf_gsm_map_ms_mo_sms_CSI,
19185       { "mo-sms-CSI", "gsm_map.ms.mo_sms_CSI",
19186         FT_NONE, BASE_NONE, NULL, 0,
19187         "gsm_map_ms.SMS_CSI", HFILL }},
19188     { &hf_gsm_map_ms_mt_sms_CSI,
19189       { "mt-sms-CSI", "gsm_map.ms.mt_sms_CSI",
19190         FT_NONE, BASE_NONE, NULL, 0,
19191         "gsm_map_ms.SMS_CSI", HFILL }},
19192     { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList,
19193       { "mt-smsCAMELTDP-CriteriaList", "gsm_map.ms.mt_smsCAMELTDP_CriteriaList",
19194         FT_UINT32, BASE_DEC, NULL, 0,
19195         "gsm_map_ms.MT_smsCAMELTDP_CriteriaList", HFILL }},
19196     { &hf_gsm_map_ms_mg_csi,
19197       { "mg-csi", "gsm_map.ms.mg_csi",
19198         FT_NONE, BASE_NONE, NULL, 0,
19199         "gsm_map_ms.MG_CSI", HFILL }},
19200     { &hf_gsm_map_ms_gprs_CamelTDPDataList,
19201       { "gprs-CamelTDPDataList", "gsm_map.ms.gprs_CamelTDPDataList",
19202         FT_UINT32, BASE_DEC, NULL, 0,
19203         "gsm_map_ms.GPRS_CamelTDPDataList", HFILL }},
19204     { &hf_gsm_map_ms_camelCapabilityHandling,
19205       { "camelCapabilityHandling", "gsm_map.ms.camelCapabilityHandling",
19206         FT_UINT32, BASE_DEC, NULL, 0,
19207         "gsm_map_ms.CamelCapabilityHandling", HFILL }},
19208     { &hf_gsm_map_ms_notificationToCSE,
19209       { "notificationToCSE", "gsm_map.ms.notificationToCSE",
19210         FT_NONE, BASE_NONE, NULL, 0,
19211         "gsm_map_ms.NULL", HFILL }},
19212     { &hf_gsm_map_ms_csi_Active,
19213       { "csi-Active", "gsm_map.ms.csi_Active",
19214         FT_NONE, BASE_NONE, NULL, 0,
19215         "gsm_map_ms.NULL", HFILL }},
19216     { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item,
19217       { "GPRS-CamelTDPDataList", "gsm_map.ms.GPRS_CamelTDPDataList_item",
19218         FT_NONE, BASE_NONE, NULL, 0,
19219         "gsm_map_ms.GPRS_CamelTDPData", HFILL }},
19220     { &hf_gsm_map_ms_gprs_TriggerDetectionPoint,
19221       { "gprs-TriggerDetectionPoint", "gsm_map.ms.gprs_TriggerDetectionPoint",
19222         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRS_TriggerDetectionPoint_vals), 0,
19223         "gsm_map_ms.GPRS_TriggerDetectionPoint", HFILL }},
19224     { &hf_gsm_map_ms_serviceKey,
19225       { "serviceKey", "gsm_map.ms.serviceKey",
19226         FT_UINT32, BASE_DEC, NULL, 0,
19227         "gsm_map_ms.ServiceKey", HFILL }},
19228     { &hf_gsm_map_ms_gsmSCF_Address,
19229       { "gsmSCF-Address", "gsm_map.ms.gsmSCF_Address",
19230         FT_BYTES, BASE_HEX, NULL, 0,
19231         "gsm_map.ISDN_AddressString", HFILL }},
19232     { &hf_gsm_map_ms_defaultSessionHandling,
19233       { "defaultSessionHandling", "gsm_map.ms.defaultSessionHandling",
19234         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultGPRS_Handling_vals), 0,
19235         "gsm_map_ms.DefaultGPRS_Handling", HFILL }},
19236     { &hf_gsm_map_ms_LSADataList_item,
19237       { "LSADataList", "gsm_map.ms.LSADataList_item",
19238         FT_NONE, BASE_NONE, NULL, 0,
19239         "gsm_map_ms.LSAData", HFILL }},
19240     { &hf_gsm_map_ms_lsaIdentity,
19241       { "lsaIdentity", "gsm_map.ms.lsaIdentity",
19242         FT_BYTES, BASE_HEX, NULL, 0,
19243         "gsm_map_ms.LSAIdentity", HFILL }},
19244     { &hf_gsm_map_ms_lsaAttributes,
19245       { "lsaAttributes", "gsm_map.ms.lsaAttributes",
19246         FT_BYTES, BASE_HEX, NULL, 0,
19247         "gsm_map_ms.LSAAttributes", HFILL }},
19248     { &hf_gsm_map_ms_lsaActiveModeIndicator,
19249       { "lsaActiveModeIndicator", "gsm_map.ms.lsaActiveModeIndicator",
19250         FT_NONE, BASE_NONE, NULL, 0,
19251         "gsm_map_ms.NULL", HFILL }},
19252     { &hf_gsm_map_ms_lsaOnlyAccessIndicator,
19253       { "lsaOnlyAccessIndicator", "gsm_map.ms.lsaOnlyAccessIndicator",
19254         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAOnlyAccessIndicator_vals), 0,
19255         "gsm_map_ms.LSAOnlyAccessIndicator", HFILL }},
19256     { &hf_gsm_map_ms_lsaDataList,
19257       { "lsaDataList", "gsm_map.ms.lsaDataList",
19258         FT_UINT32, BASE_DEC, NULL, 0,
19259         "gsm_map_ms.LSADataList", HFILL }},
19260     { &hf_gsm_map_ms_msisdn,
19261       { "msisdn", "gsm_map.ms.msisdn",
19262         FT_BYTES, BASE_HEX, NULL, 0,
19263         "gsm_map.ISDN_AddressString", HFILL }},
19264     { &hf_gsm_map_ms_category,
19265       { "category", "gsm_map.ms.category",
19266         FT_BYTES, BASE_HEX, NULL, 0,
19267         "gsm_map_ms.Category", HFILL }},
19268     { &hf_gsm_map_ms_subscriberStatus,
19269       { "subscriberStatus", "gsm_map.ms.subscriberStatus",
19270         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberStatus_vals), 0,
19271         "gsm_map_ms.SubscriberStatus", HFILL }},
19272     { &hf_gsm_map_ms_bearerServiceList,
19273       { "bearerServiceList", "gsm_map.ms.bearerServiceList",
19274         FT_UINT32, BASE_DEC, NULL, 0,
19275         "gsm_map_ms.BearerServiceList", HFILL }},
19276     { &hf_gsm_map_ms_teleserviceList,
19277       { "teleserviceList", "gsm_map.ms.teleserviceList",
19278         FT_UINT32, BASE_DEC, NULL, 0,
19279         "gsm_map_ms.TeleserviceList", HFILL }},
19280     { &hf_gsm_map_ms_provisionedSS,
19281       { "provisionedSS", "gsm_map.ms.provisionedSS",
19282         FT_UINT32, BASE_DEC, NULL, 0,
19283         "gsm_map_ms.Ext_SS_InfoList", HFILL }},
19284     { &hf_gsm_map_ms_odb_Data,
19285       { "odb-Data", "gsm_map.ms.odb_Data",
19286         FT_NONE, BASE_NONE, NULL, 0,
19287         "gsm_map_ms.ODB_Data", HFILL }},
19288     { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature,
19289       { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictionDueToUnsupportedFeature",
19290         FT_NONE, BASE_NONE, NULL, 0,
19291         "gsm_map_ms.NULL", HFILL }},
19292     { &hf_gsm_map_ms_regionalSubscriptionData,
19293       { "regionalSubscriptionData", "gsm_map.ms.regionalSubscriptionData",
19294         FT_UINT32, BASE_DEC, NULL, 0,
19295         "gsm_map_ms.ZoneCodeList", HFILL }},
19296     { &hf_gsm_map_ms_vbsSubscriptionData,
19297       { "vbsSubscriptionData", "gsm_map.ms.vbsSubscriptionData",
19298         FT_UINT32, BASE_DEC, NULL, 0,
19299         "gsm_map_ms.VBSDataList", HFILL }},
19300     { &hf_gsm_map_ms_vgcsSubscriptionData,
19301       { "vgcsSubscriptionData", "gsm_map.ms.vgcsSubscriptionData",
19302         FT_UINT32, BASE_DEC, NULL, 0,
19303         "gsm_map_ms.VGCSDataList", HFILL }},
19304     { &hf_gsm_map_ms_vlrCamelSubscriptionInfo,
19305       { "vlrCamelSubscriptionInfo", "gsm_map.ms.vlrCamelSubscriptionInfo",
19306         FT_NONE, BASE_NONE, NULL, 0,
19307         "gsm_map_ms.VlrCamelSubscriptionInfo", HFILL }},
19308     { &hf_gsm_map_ms_BearerServiceList_item,
19309       { "BearerServiceList", "gsm_map.ms.BearerServiceList_item",
19310         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
19311         "gsm_map.Ext_BearerServiceCode", HFILL }},
19312     { &hf_gsm_map_ms_TeleserviceList_item,
19313       { "TeleserviceList", "gsm_map.ms.TeleserviceList_item",
19314         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
19315         "gsm_map.Ext_TeleserviceCode", HFILL }},
19316     { &hf_gsm_map_ms_odb_GeneralData,
19317       { "odb-GeneralData", "gsm_map.ms.odb_GeneralData",
19318         FT_BYTES, BASE_HEX, NULL, 0,
19319         "gsm_map_ms.ODB_GeneralData", HFILL }},
19320     { &hf_gsm_map_ms_odb_HPLMN_Data,
19321       { "odb-HPLMN-Data", "gsm_map.ms.odb_HPLMN_Data",
19322         FT_BYTES, BASE_HEX, NULL, 0,
19323         "gsm_map_ms.ODB_HPLMN_Data", HFILL }},
19324     { &hf_gsm_map_ms_Ext_SS_InfoList_item,
19325       { "Ext-SS-InfoList", "gsm_map.ms.Ext_SS_InfoList_item",
19326         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_Info_vals), 0,
19327         "gsm_map_ms.Ext_SS_Info", HFILL }},
19328     { &hf_gsm_map_ms_forwardingInfo,
19329       { "forwardingInfo", "gsm_map.ms.forwardingInfo",
19330         FT_NONE, BASE_NONE, NULL, 0,
19331         "gsm_map_ms.Ext_ForwInfo", HFILL }},
19332     { &hf_gsm_map_ms_callBarringInfo,
19333       { "callBarringInfo", "gsm_map.ms.callBarringInfo",
19334         FT_NONE, BASE_NONE, NULL, 0,
19335         "gsm_map_ms.Ext_CallBarInfo", HFILL }},
19336     { &hf_gsm_map_ms_cug_Info,
19337       { "cug-Info", "gsm_map.ms.cug_Info",
19338         FT_NONE, BASE_NONE, NULL, 0,
19339         "gsm_map_ms.CUG_Info", HFILL }},
19340     { &hf_gsm_map_ms_ss_Data,
19341       { "ss-Data", "gsm_map.ms.ss_Data",
19342         FT_NONE, BASE_NONE, NULL, 0,
19343         "gsm_map_ms.Ext_SS_Data", HFILL }},
19344     { &hf_gsm_map_ms_emlpp_Info,
19345       { "emlpp-Info", "gsm_map.ms.emlpp_Info",
19346         FT_NONE, BASE_NONE, NULL, 0,
19347         "gsm_map.EMLPP_Info", HFILL }},
19348     { &hf_gsm_map_ms_ss_Code,
19349       { "ss-Code", "gsm_map.ms.ss_Code",
19350         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
19351         "gsm_map.SS_Code", HFILL }},
19352     { &hf_gsm_map_ms_forwardingFeatureList,
19353       { "forwardingFeatureList", "gsm_map.ms.forwardingFeatureList",
19354         FT_UINT32, BASE_DEC, NULL, 0,
19355         "gsm_map_ms.Ext_ForwFeatureList", HFILL }},
19356     { &hf_gsm_map_ms_Ext_ForwFeatureList_item,
19357       { "Ext-ForwFeatureList", "gsm_map.ms.Ext_ForwFeatureList_item",
19358         FT_NONE, BASE_NONE, NULL, 0,
19359         "gsm_map_ms.Ext_ForwFeature", HFILL }},
19360     { &hf_gsm_map_ms_basicService,
19361       { "basicService", "gsm_map.ms.basicService",
19362         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
19363         "gsm_map.Ext_BasicServiceCode", HFILL }},
19364     { &hf_gsm_map_ms_ss_Status,
19365       { "ss-Status", "gsm_map.ms.ss_Status",
19366         FT_BYTES, BASE_HEX, NULL, 0,
19367         "gsm_map.Ext_SS_Status", HFILL }},
19368     { &hf_gsm_map_ms_forwardedToNumber,
19369       { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
19370         FT_BYTES, BASE_HEX, NULL, 0,
19371         "gsm_map.ISDN_AddressString", HFILL }},
19372     { &hf_gsm_map_ms_forwardedToSubaddress,
19373       { "forwardedToSubaddress", "gsm_map.ms.forwardedToSubaddress",
19374         FT_BYTES, BASE_HEX, NULL, 0,
19375         "gsm_map.ISDN_SubaddressString", HFILL }},
19376     { &hf_gsm_map_ms_forwardingOptions,
19377       { "forwardingOptions", "gsm_map.ms.forwardingOptions",
19378         FT_BYTES, BASE_HEX, NULL, 0,
19379         "gsm_map_ms.T_forwardingOptions", HFILL }},
19380     { &hf_gsm_map_ms_noReplyConditionTime,
19381       { "noReplyConditionTime", "gsm_map.ms.noReplyConditionTime",
19382         FT_UINT32, BASE_DEC, NULL, 0,
19383         "gsm_map_ms.Ext_NoRepCondTime", HFILL }},
19384     { &hf_gsm_map_ms_longForwardedToNumber,
19385       { "longForwardedToNumber", "gsm_map.ms.longForwardedToNumber",
19386         FT_BYTES, BASE_HEX, NULL, 0,
19387         "gsm_map.FTN_AddressString", HFILL }},
19388     { &hf_gsm_map_ms_callBarringFeatureList,
19389       { "callBarringFeatureList", "gsm_map.ms.callBarringFeatureList",
19390         FT_UINT32, BASE_DEC, NULL, 0,
19391         "gsm_map_ms.Ext_CallBarFeatureList", HFILL }},
19392     { &hf_gsm_map_ms_Ext_CallBarFeatureList_item,
19393       { "Ext-CallBarFeatureList", "gsm_map.ms.Ext_CallBarFeatureList_item",
19394         FT_NONE, BASE_NONE, NULL, 0,
19395         "gsm_map_ms.Ext_CallBarringFeature", HFILL }},
19396     { &hf_gsm_map_ms_cug_SubscriptionList,
19397       { "cug-SubscriptionList", "gsm_map.ms.cug_SubscriptionList",
19398         FT_UINT32, BASE_DEC, NULL, 0,
19399         "gsm_map_ms.CUG_SubscriptionList", HFILL }},
19400     { &hf_gsm_map_ms_cug_FeatureList,
19401       { "cug-FeatureList", "gsm_map.ms.cug_FeatureList",
19402         FT_UINT32, BASE_DEC, NULL, 0,
19403         "gsm_map_ms.CUG_FeatureList", HFILL }},
19404     { &hf_gsm_map_ms_CUG_SubscriptionList_item,
19405       { "CUG-SubscriptionList", "gsm_map.ms.CUG_SubscriptionList_item",
19406         FT_NONE, BASE_NONE, NULL, 0,
19407         "gsm_map_ms.CUG_Subscription", HFILL }},
19408     { &hf_gsm_map_ms_cug_Index,
19409       { "cug-Index", "gsm_map.ms.cug_Index",
19410         FT_UINT32, BASE_DEC, NULL, 0,
19411         "gsm_map_ms.CUG_Index", HFILL }},
19412     { &hf_gsm_map_ms_cug_Interlock,
19413       { "cug-Interlock", "gsm_map.ms.cug_Interlock",
19414         FT_BYTES, BASE_HEX, NULL, 0,
19415         "gsm_map_ms.CUG_Interlock", HFILL }},
19416     { &hf_gsm_map_ms_intraCUG_Options,
19417       { "intraCUG-Options", "gsm_map.ms.intraCUG_Options",
19418         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IntraCUG_Options_vals), 0,
19419         "gsm_map_ms.IntraCUG_Options", HFILL }},
19420     { &hf_gsm_map_ms_basicServiceGroupList,
19421       { "basicServiceGroupList", "gsm_map.ms.basicServiceGroupList",
19422         FT_UINT32, BASE_DEC, NULL, 0,
19423         "gsm_map_ms.Ext_BasicServiceGroupList", HFILL }},
19424     { &hf_gsm_map_ms_CUG_FeatureList_item,
19425       { "CUG-FeatureList", "gsm_map.ms.CUG_FeatureList_item",
19426         FT_NONE, BASE_NONE, NULL, 0,
19427         "gsm_map_ms.CUG_Feature", HFILL }},
19428     { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item,
19429       { "Ext-BasicServiceGroupList", "gsm_map.ms.Ext_BasicServiceGroupList_item",
19430         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
19431         "gsm_map.Ext_BasicServiceCode", HFILL }},
19432     { &hf_gsm_map_ms_preferentialCUG_Indicator,
19433       { "preferentialCUG-Indicator", "gsm_map.ms.preferentialCUG_Indicator",
19434         FT_UINT32, BASE_DEC, NULL, 0,
19435         "gsm_map_ms.CUG_Index", HFILL }},
19436     { &hf_gsm_map_ms_interCUG_Restrictions,
19437       { "interCUG-Restrictions", "gsm_map.ms.interCUG_Restrictions",
19438         FT_BYTES, BASE_HEX, NULL, 0,
19439         "gsm_map_ms.InterCUG_Restrictions", HFILL }},
19440     { &hf_gsm_map_ms_ss_SubscriptionOption,
19441       { "ss-SubscriptionOption", "gsm_map.ms.ss_SubscriptionOption",
19442         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
19443         "gsm_map_ss.SS_SubscriptionOption", HFILL }},
19444     { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item,
19445       { "LCS-PrivacyExceptionList", "gsm_map.ms.LCS_PrivacyExceptionList_item",
19446         FT_NONE, BASE_NONE, NULL, 0,
19447         "gsm_map_ms.LCS_PrivacyClass", HFILL }},
19448     { &hf_gsm_map_ms_notificationToMSUser,
19449       { "notificationToMSUser", "gsm_map.ms.notificationToMSUser",
19450         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
19451         "gsm_map_ms.NotificationToMSUser", HFILL }},
19452     { &hf_gsm_map_ms_externalClientList,
19453       { "externalClientList", "gsm_map.ms.externalClientList",
19454         FT_UINT32, BASE_DEC, NULL, 0,
19455         "gsm_map_ms.ExternalClientList", HFILL }},
19456     { &hf_gsm_map_ms_plmnClientList,
19457       { "plmnClientList", "gsm_map.ms.plmnClientList",
19458         FT_UINT32, BASE_DEC, NULL, 0,
19459         "gsm_map_ms.PLMNClientList", HFILL }},
19460     { &hf_gsm_map_ms_ext_externalClientList,
19461       { "ext-externalClientList", "gsm_map.ms.ext_externalClientList",
19462         FT_UINT32, BASE_DEC, NULL, 0,
19463         "gsm_map_ms.Ext_ExternalClientList", HFILL }},
19464     { &hf_gsm_map_ms_serviceTypeList,
19465       { "serviceTypeList", "gsm_map.ms.serviceTypeList",
19466         FT_UINT32, BASE_DEC, NULL, 0,
19467         "gsm_map_ms.ServiceTypeList", HFILL }},
19468     { &hf_gsm_map_ms_ExternalClientList_item,
19469       { "ExternalClientList", "gsm_map.ms.ExternalClientList_item",
19470         FT_NONE, BASE_NONE, NULL, 0,
19471         "gsm_map_ms.ExternalClient", HFILL }},
19472     { &hf_gsm_map_ms_PLMNClientList_item,
19473       { "PLMNClientList", "gsm_map.ms.PLMNClientList_item",
19474         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
19475         "gsm_map.LCSClientInternalID", HFILL }},
19476     { &hf_gsm_map_ms_Ext_ExternalClientList_item,
19477       { "Ext-ExternalClientList", "gsm_map.ms.Ext_ExternalClientList_item",
19478         FT_NONE, BASE_NONE, NULL, 0,
19479         "gsm_map_ms.ExternalClient", HFILL }},
19480     { &hf_gsm_map_ms_clientIdentity,
19481       { "clientIdentity", "gsm_map.ms.clientIdentity",
19482         FT_NONE, BASE_NONE, NULL, 0,
19483         "gsm_map.LCSClientExternalID", HFILL }},
19484     { &hf_gsm_map_ms_gmlc_Restriction,
19485       { "gmlc-Restriction", "gsm_map.ms.gmlc_Restriction",
19486         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GMLC_Restriction_vals), 0,
19487         "gsm_map_ms.GMLC_Restriction", HFILL }},
19488     { &hf_gsm_map_ms_ServiceTypeList_item,
19489       { "ServiceTypeList", "gsm_map.ms.ServiceTypeList_item",
19490         FT_NONE, BASE_NONE, NULL, 0,
19491         "gsm_map_ms.ServiceType", HFILL }},
19492     { &hf_gsm_map_ms_serviceTypeIdentity,
19493       { "serviceTypeIdentity", "gsm_map.ms.serviceTypeIdentity",
19494         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
19495         "gsm_map.LCSServiceTypeID", HFILL }},
19496     { &hf_gsm_map_ms_MOLR_List_item,
19497       { "MOLR-List", "gsm_map.ms.MOLR_List_item",
19498         FT_NONE, BASE_NONE, NULL, 0,
19499         "gsm_map_ms.MOLR_Class", HFILL }},
19500     { &hf_gsm_map_ms_ZoneCodeList_item,
19501       { "ZoneCodeList", "gsm_map.ms.ZoneCodeList_item",
19502         FT_BYTES, BASE_HEX, NULL, 0,
19503         "gsm_map_ms.ZoneCode", HFILL }},
19504     { &hf_gsm_map_ms_ss_List,
19505       { "ss-List", "gsm_map.ms.ss_List",
19506         FT_UINT32, BASE_DEC, NULL, 0,
19507         "gsm_map_ss.SS_List", HFILL }},
19508     { &hf_gsm_map_ms_regionalSubscriptionResponse,
19509       { "regionalSubscriptionResponse", "gsm_map.ms.regionalSubscriptionResponse",
19510         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RegionalSubscriptionResponse_vals), 0,
19511         "gsm_map_ms.RegionalSubscriptionResponse", HFILL }},
19512     { &hf_gsm_map_ms_basicServiceList,
19513       { "basicServiceList", "gsm_map.ms.basicServiceList",
19514         FT_UINT32, BASE_DEC, NULL, 0,
19515         "gsm_map_ms.BasicServiceList", HFILL }},
19516     { &hf_gsm_map_ms_regionalSubscriptionIdentifier,
19517       { "regionalSubscriptionIdentifier", "gsm_map.ms.regionalSubscriptionIdentifier",
19518         FT_BYTES, BASE_HEX, NULL, 0,
19519         "gsm_map_ms.ZoneCode", HFILL }},
19520     { &hf_gsm_map_ms_vbsGroupIndication,
19521       { "vbsGroupIndication", "gsm_map.ms.vbsGroupIndication",
19522         FT_NONE, BASE_NONE, NULL, 0,
19523         "gsm_map_ms.NULL", HFILL }},
19524     { &hf_gsm_map_ms_vgcsGroupIndication,
19525       { "vgcsGroupIndication", "gsm_map.ms.vgcsGroupIndication",
19526         FT_NONE, BASE_NONE, NULL, 0,
19527         "gsm_map_ms.NULL", HFILL }},
19528     { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw,
19529       { "camelSubscriptionInfoWithdraw", "gsm_map.ms.camelSubscriptionInfoWithdraw",
19530         FT_NONE, BASE_NONE, NULL, 0,
19531         "gsm_map_ms.NULL", HFILL }},
19532     { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw,
19533       { "gprsSubscriptionDataWithdraw", "gsm_map.ms.gprsSubscriptionDataWithdraw",
19534         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRSSubscriptionDataWithdraw_vals), 0,
19535         "gsm_map_ms.GPRSSubscriptionDataWithdraw", HFILL }},
19536     { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature,
19537       { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsuppportedFeature",
19538         FT_NONE, BASE_NONE, NULL, 0,
19539         "gsm_map_ms.NULL", HFILL }},
19540     { &hf_gsm_map_ms_lsaInformationWithdraw,
19541       { "lsaInformationWithdraw", "gsm_map.ms.lsaInformationWithdraw",
19542         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAInformationWithdraw_vals), 0,
19543         "gsm_map_ms.LSAInformationWithdraw", HFILL }},
19544     { &hf_gsm_map_ms_gmlc_ListWithdraw,
19545       { "gmlc-ListWithdraw", "gsm_map.ms.gmlc_ListWithdraw",
19546         FT_NONE, BASE_NONE, NULL, 0,
19547         "gsm_map_ms.NULL", HFILL }},
19548     { &hf_gsm_map_ms_istInformationWithdraw,
19549       { "istInformationWithdraw", "gsm_map.ms.istInformationWithdraw",
19550         FT_NONE, BASE_NONE, NULL, 0,
19551         "gsm_map_ms.NULL", HFILL }},
19552     { &hf_gsm_map_ms_specificCSI_Withdraw,
19553       { "specificCSI-Withdraw", "gsm_map.ms.specificCSI_Withdraw",
19554         FT_BYTES, BASE_HEX, NULL, 0,
19555         "gsm_map_ms.SpecificCSI_Withdraw", HFILL }},
19556     { &hf_gsm_map_ms_chargingCharacteristicsWithdraw,
19557       { "chargingCharacteristicsWithdraw", "gsm_map.ms.chargingCharacteristicsWithdraw",
19558         FT_NONE, BASE_NONE, NULL, 0,
19559         "gsm_map_ms.NULL", HFILL }},
19560     { &hf_gsm_map_ms_allGPRSData,
19561       { "allGPRSData", "gsm_map.ms.allGPRSData",
19562         FT_NONE, BASE_NONE, NULL, 0,
19563         "gsm_map_ms.NULL", HFILL }},
19564     { &hf_gsm_map_ms_contextIdList,
19565       { "contextIdList", "gsm_map.ms.contextIdList",
19566         FT_UINT32, BASE_DEC, NULL, 0,
19567         "gsm_map_ms.ContextIdList", HFILL }},
19568     { &hf_gsm_map_ms_ContextIdList_item,
19569       { "ContextIdList", "gsm_map.ms.ContextIdList_item",
19570         FT_UINT32, BASE_DEC, NULL, 0,
19571         "gsm_map_ms.ContextId", HFILL }},
19572     { &hf_gsm_map_ms_allLSAData,
19573       { "allLSAData", "gsm_map.ms.allLSAData",
19574         FT_NONE, BASE_NONE, NULL, 0,
19575         "gsm_map_ms.NULL", HFILL }},
19576     { &hf_gsm_map_ms_lsaIdentityList,
19577       { "lsaIdentityList", "gsm_map.ms.lsaIdentityList",
19578         FT_UINT32, BASE_DEC, NULL, 0,
19579         "gsm_map_ms.LSAIdentityList", HFILL }},
19580     { &hf_gsm_map_ms_LSAIdentityList_item,
19581       { "LSAIdentityList", "gsm_map.ms.LSAIdentityList_item",
19582         FT_BYTES, BASE_HEX, NULL, 0,
19583         "gsm_map_ms.LSAIdentity", HFILL }},
19584     { &hf_gsm_map_ms_BasicServiceList_item,
19585       { "BasicServiceList", "gsm_map.ms.BasicServiceList_item",
19586         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
19587         "gsm_map.Ext_BasicServiceCode", HFILL }},
19588     { &hf_gsm_map_ms_o_CSI,
19589       { "o-CSI", "gsm_map.ms.o_CSI",
19590         FT_NONE, BASE_NONE, NULL, 0,
19591         "gsm_map_ms.O_CSI", HFILL }},
19592     { &hf_gsm_map_ms_ss_CSI,
19593       { "ss-CSI", "gsm_map.ms.ss_CSI",
19594         FT_NONE, BASE_NONE, NULL, 0,
19595         "gsm_map_ms.SS_CSI", HFILL }},
19596     { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList,
19597       { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_BcsmCamelTDP_CriteriaList",
19598         FT_UINT32, BASE_DEC, NULL, 0,
19599         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
19600     { &hf_gsm_map_ms_tif_CSI,
19601       { "tif-CSI", "gsm_map.ms.tif_CSI",
19602         FT_NONE, BASE_NONE, NULL, 0,
19603         "gsm_map_ms.NULL", HFILL }},
19604     { &hf_gsm_map_ms_m_CSI,
19605       { "m-CSI", "gsm_map.ms.m_CSI",
19606         FT_NONE, BASE_NONE, NULL, 0,
19607         "gsm_map_ms.M_CSI", HFILL }},
19608     { &hf_gsm_map_ms_vt_CSI,
19609       { "vt-CSI", "gsm_map.ms.vt_CSI",
19610         FT_NONE, BASE_NONE, NULL, 0,
19611         "gsm_map_ms.T_CSI", HFILL }},
19612     { &hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList,
19613       { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.t_BCSM_CAMEL_TDP_CriteriaList",
19614         FT_UINT32, BASE_DEC, NULL, 0,
19615         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
19616     { &hf_gsm_map_ms_d_CSI,
19617       { "d-CSI", "gsm_map.ms.d_CSI",
19618         FT_NONE, BASE_NONE, NULL, 0,
19619         "gsm_map_ms.D_CSI", HFILL }},
19620     { &hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item,
19621       { "MT-smsCAMELTDP-CriteriaList", "gsm_map.ms.MT_smsCAMELTDP_CriteriaList_item",
19622         FT_NONE, BASE_NONE, NULL, 0,
19623         "gsm_map_ms.MT_smsCAMELTDP_Criteria", HFILL }},
19624     { &hf_gsm_map_ms_sms_TriggerDetectionPoint,
19625       { "sms-TriggerDetectionPoint", "gsm_map.ms.sms_TriggerDetectionPoint",
19626         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SMS_TriggerDetectionPoint_vals), 0,
19627         "gsm_map_ms.SMS_TriggerDetectionPoint", HFILL }},
19628     { &hf_gsm_map_ms_tpdu_TypeCriterion,
19629       { "tpdu-TypeCriterion", "gsm_map.ms.tpdu_TypeCriterion",
19630         FT_UINT32, BASE_DEC, NULL, 0,
19631         "gsm_map_ms.TPDU_TypeCriterion", HFILL }},
19632     { &hf_gsm_map_ms_TPDU_TypeCriterion_item,
19633       { "TPDU-TypeCriterion", "gsm_map.ms.TPDU_TypeCriterion_item",
19634         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MT_SMS_TPDU_Type_vals), 0,
19635         "gsm_map_ms.MT_SMS_TPDU_Type", HFILL }},
19636     { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList,
19637       { "dp-AnalysedInfoCriteriaList", "gsm_map.ms.dp_AnalysedInfoCriteriaList",
19638         FT_UINT32, BASE_DEC, NULL, 0,
19639         "gsm_map_ms.DP_AnalysedInfoCriteriaList", HFILL }},
19640     { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item,
19641       { "DP-AnalysedInfoCriteriaList", "gsm_map.ms.DP_AnalysedInfoCriteriaList_item",
19642         FT_NONE, BASE_NONE, NULL, 0,
19643         "gsm_map_ms.DP_AnalysedInfoCriterium", HFILL }},
19644     { &hf_gsm_map_ms_dialledNumber,
19645       { "dialledNumber", "gsm_map.ms.dialledNumber",
19646         FT_BYTES, BASE_HEX, NULL, 0,
19647         "gsm_map.ISDN_AddressString", HFILL }},
19648     { &hf_gsm_map_ms_defaultCallHandling,
19649       { "defaultCallHandling", "gsm_map.ms.defaultCallHandling",
19650         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultCallHandling_vals), 0,
19651         "gsm_map_ms.DefaultCallHandling", HFILL }},
19652     { &hf_gsm_map_ms_ss_CamelData,
19653       { "ss-CamelData", "gsm_map.ms.ss_CamelData",
19654         FT_NONE, BASE_NONE, NULL, 0,
19655         "gsm_map_ms.SS_CamelData", HFILL }},
19656     { &hf_gsm_map_ms_ss_EventList,
19657       { "ss-EventList", "gsm_map.ms.ss_EventList",
19658         FT_UINT32, BASE_DEC, NULL, 0,
19659         "gsm_map_ms.SS_EventList", HFILL }},
19660     { &hf_gsm_map_ms_SS_EventList_item,
19661       { "SS-EventList", "gsm_map.ms.SS_EventList_item",
19662         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
19663         "gsm_map.SS_Code", HFILL }},
19664     { &hf_gsm_map_ms_o_BcsmCamelTDPDataList,
19665       { "o-BcsmCamelTDPDataList", "gsm_map.ms.o_BcsmCamelTDPDataList",
19666         FT_UINT32, BASE_DEC, NULL, 0,
19667         "gsm_map_ms.O_BcsmCamelTDPDataList", HFILL }},
19668     { &hf_gsm_map_ms_csiActive,
19669       { "csiActive", "gsm_map.ms.csiActive",
19670         FT_NONE, BASE_NONE, NULL, 0,
19671         "gsm_map_ms.NULL", HFILL }},
19672     { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item,
19673       { "O-BcsmCamelTDPDataList", "gsm_map.ms.O_BcsmCamelTDPDataList_item",
19674         FT_NONE, BASE_NONE, NULL, 0,
19675         "gsm_map_ms.O_BcsmCamelTDPData", HFILL }},
19676     { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint,
19677       { "o-BcsmTriggerDetectionPoint", "gsm_map.ms.o_BcsmTriggerDetectionPoint",
19678         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_O_BcsmTriggerDetectionPoint_vals), 0,
19679         "gsm_map_ms.O_BcsmTriggerDetectionPoint", HFILL }},
19680     { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item,
19681       { "O-BcsmCamelTDPCriteriaList", "gsm_map.ms.O_BcsmCamelTDPCriteriaList_item",
19682         FT_NONE, BASE_NONE, NULL, 0,
19683         "gsm_map_ms.O_BcsmCamelTDP_Criteria", HFILL }},
19684     { &hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item,
19685       { "T-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.T_BCSM_CAMEL_TDP_CriteriaList_item",
19686         FT_NONE, BASE_NONE, NULL, 0,
19687         "gsm_map_ms.T_BCSM_CAMEL_TDP_Criteria", HFILL }},
19688     { &hf_gsm_map_ms_destinationNumberCriteria,
19689       { "destinationNumberCriteria", "gsm_map.ms.destinationNumberCriteria",
19690         FT_NONE, BASE_NONE, NULL, 0,
19691         "gsm_map_ms.DestinationNumberCriteria", HFILL }},
19692     { &hf_gsm_map_ms_basicServiceCriteria,
19693       { "basicServiceCriteria", "gsm_map.ms.basicServiceCriteria",
19694         FT_UINT32, BASE_DEC, NULL, 0,
19695         "gsm_map_ms.BasicServiceCriteria", HFILL }},
19696     { &hf_gsm_map_ms_callTypeCriteria,
19697       { "callTypeCriteria", "gsm_map.ms.callTypeCriteria",
19698         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CallTypeCriteria_vals), 0,
19699         "gsm_map_ms.CallTypeCriteria", HFILL }},
19700     { &hf_gsm_map_ms_o_CauseValueCriteria,
19701       { "o-CauseValueCriteria", "gsm_map.ms.o_CauseValueCriteria",
19702         FT_UINT32, BASE_DEC, NULL, 0,
19703         "gsm_map_ms.O_CauseValueCriteria", HFILL }},
19704     { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint,
19705       { "t-BCSM-TriggerDetectionPoint", "gsm_map.ms.t_BCSM_TriggerDetectionPoint",
19706         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
19707         "gsm_map_ms.T_BcsmTriggerDetectionPoint", HFILL }},
19708     { &hf_gsm_map_ms_t_CauseValueCriteria,
19709       { "t-CauseValueCriteria", "gsm_map.ms.t_CauseValueCriteria",
19710         FT_UINT32, BASE_DEC, NULL, 0,
19711         "gsm_map_ms.T_CauseValueCriteria", HFILL }},
19712     { &hf_gsm_map_ms_matchType,
19713       { "matchType", "gsm_map.ms.matchType",
19714         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MatchType_vals), 0,
19715         "gsm_map_ms.MatchType", HFILL }},
19716     { &hf_gsm_map_ms_destinationNumberList,
19717       { "destinationNumberList", "gsm_map.ms.destinationNumberList",
19718         FT_UINT32, BASE_DEC, NULL, 0,
19719         "gsm_map_ms.DestinationNumberList", HFILL }},
19720     { &hf_gsm_map_ms_destinationNumberLengthList,
19721       { "destinationNumberLengthList", "gsm_map.ms.destinationNumberLengthList",
19722         FT_UINT32, BASE_DEC, NULL, 0,
19723         "gsm_map_ms.DestinationNumberLengthList", HFILL }},
19724     { &hf_gsm_map_ms_DestinationNumberList_item,
19725       { "DestinationNumberList", "gsm_map.ms.DestinationNumberList_item",
19726         FT_BYTES, BASE_HEX, NULL, 0,
19727         "gsm_map.ISDN_AddressString", HFILL }},
19728     { &hf_gsm_map_ms_DestinationNumberLengthList_item,
19729       { "DestinationNumberLengthList", "gsm_map.ms.DestinationNumberLengthList_item",
19730         FT_UINT32, BASE_DEC, NULL, 0,
19731         "gsm_map_ms.INTEGER_1_maxNumOfISDN_AddressDigits", HFILL }},
19732     { &hf_gsm_map_ms_BasicServiceCriteria_item,
19733       { "BasicServiceCriteria", "gsm_map.ms.BasicServiceCriteria_item",
19734         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
19735         "gsm_map.Ext_BasicServiceCode", HFILL }},
19736     { &hf_gsm_map_ms_O_CauseValueCriteria_item,
19737       { "O-CauseValueCriteria", "gsm_map.ms.O_CauseValueCriteria_item",
19738         FT_BYTES, BASE_HEX, NULL, 0,
19739         "gsm_map_ms.CauseValue", HFILL }},
19740     { &hf_gsm_map_ms_T_CauseValueCriteria_item,
19741       { "T-CauseValueCriteria", "gsm_map.ms.T_CauseValueCriteria_item",
19742         FT_BYTES, BASE_HEX, NULL, 0,
19743         "gsm_map_ms.CauseValue", HFILL }},
19744     { &hf_gsm_map_ms_sms_CAMEL_TDP_DataList,
19745       { "sms-CAMEL-TDP-DataList", "gsm_map.ms.sms_CAMEL_TDP_DataList",
19746         FT_UINT32, BASE_DEC, NULL, 0,
19747         "gsm_map_ms.SMS_CAMEL_TDP_DataList", HFILL }},
19748     { &hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item,
19749       { "SMS-CAMEL-TDP-DataList", "gsm_map.ms.SMS_CAMEL_TDP_DataList_item",
19750         FT_NONE, BASE_NONE, NULL, 0,
19751         "gsm_map_ms.SMS_CAMEL_TDP_Data", HFILL }},
19752     { &hf_gsm_map_ms_defaultSMS_Handling,
19753       { "defaultSMS-Handling", "gsm_map.ms.defaultSMS_Handling",
19754         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultSMS_Handling_vals), 0,
19755         "gsm_map_ms.DefaultSMS_Handling", HFILL }},
19756     { &hf_gsm_map_ms_mobilityTriggers,
19757       { "mobilityTriggers", "gsm_map.ms.mobilityTriggers",
19758         FT_UINT32, BASE_DEC, NULL, 0,
19759         "gsm_map_ms.MobilityTriggers", HFILL }},
19760     { &hf_gsm_map_ms_MobilityTriggers_item,
19761       { "MobilityTriggers", "gsm_map.ms.MobilityTriggers_item",
19762         FT_BYTES, BASE_HEX, NULL, 0,
19763         "gsm_map_ms.MM_Code", HFILL }},
19764     { &hf_gsm_map_ms_t_BcsmCamelTDPDataList,
19765       { "t-BcsmCamelTDPDataList", "gsm_map.ms.t_BcsmCamelTDPDataList",
19766         FT_UINT32, BASE_DEC, NULL, 0,
19767         "gsm_map_ms.T_BcsmCamelTDPDataList", HFILL }},
19768     { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item,
19769       { "T-BcsmCamelTDPDataList", "gsm_map.ms.T_BcsmCamelTDPDataList_item",
19770         FT_NONE, BASE_NONE, NULL, 0,
19771         "gsm_map_ms.T_BcsmCamelTDPData", HFILL }},
19772     { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint,
19773       { "t-BcsmTriggerDetectionPoint", "gsm_map.ms.t_BcsmTriggerDetectionPoint",
19774         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
19775         "gsm_map_ms.T_BcsmTriggerDetectionPoint", HFILL }},
19776     { &hf_gsm_map_ms_ggsn_Address,
19777       { "ggsn-Address", "gsm_map.ms.ggsn_Address",
19778         FT_BYTES, BASE_HEX, NULL, 0,
19779         "gsm_map_ms.GSN_Address", HFILL }},
19780     { &hf_gsm_map_ms_ggsn_Number,
19781       { "ggsn-Number", "gsm_map.ms.ggsn_Number",
19782         FT_BYTES, BASE_HEX, NULL, 0,
19783         "gsm_map.ISDN_AddressString", HFILL }},
19784     { &hf_gsm_map_ms_mobileNotReachableReason,
19785       { "mobileNotReachableReason", "gsm_map.ms.mobileNotReachableReason",
19786         FT_UINT32, BASE_DEC, NULL, 0,
19787         "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }},
19788     { &hf_gsm_map_ms_hlr_List,
19789       { "hlr-List", "gsm_map.ms.hlr_List",
19790         FT_UINT32, BASE_DEC, NULL, 0,
19791         "gsm_map.HLR_List", HFILL }},
19792     { &hf_gsm_map_ms_msNotReachable,
19793       { "msNotReachable", "gsm_map.ms.msNotReachable",
19794         FT_NONE, BASE_NONE, NULL, 0,
19795         "gsm_map_ms.NULL", HFILL }},
19796     { &hf_gsm_map_ms_VBSDataList_item,
19797       { "VBSDataList", "gsm_map.ms.VBSDataList_item",
19798         FT_NONE, BASE_NONE, NULL, 0,
19799         "gsm_map_ms.VoiceBroadcastData", HFILL }},
19800     { &hf_gsm_map_ms_VGCSDataList_item,
19801       { "VGCSDataList", "gsm_map.ms.VGCSDataList_item",
19802         FT_NONE, BASE_NONE, NULL, 0,
19803         "gsm_map_ms.VoiceGroupCallData", HFILL }},
19804     { &hf_gsm_map_ms_groupId,
19805       { "groupId", "gsm_map.ms.groupId",
19806         FT_BYTES, BASE_HEX, NULL, 0,
19807         "gsm_map_ms.GroupId", HFILL }},
19808     { &hf_gsm_map_ms_additionalSubscriptions,
19809       { "additionalSubscriptions", "gsm_map.ms.additionalSubscriptions",
19810         FT_BYTES, BASE_HEX, NULL, 0,
19811         "gsm_map_ms.AdditionalSubscriptions", HFILL }},
19812     { &hf_gsm_map_ms_additionalInfo,
19813       { "additionalInfo", "gsm_map.ms.additionalInfo",
19814         FT_BYTES, BASE_HEX, NULL, 0,
19815         "gsm_map_ms.AdditionalInfo", HFILL }},
19816     { &hf_gsm_map_ms_longGroupId,
19817       { "longGroupId", "gsm_map.ms.longGroupId",
19818         FT_BYTES, BASE_HEX, NULL, 0,
19819         "gsm_map_ms.Long_GroupId", HFILL }},
19820     { &hf_gsm_map_ms_groupid,
19821       { "groupid", "gsm_map.ms.groupid",
19822         FT_BYTES, BASE_HEX, NULL, 0,
19823         "gsm_map_ms.GroupId", HFILL }},
19824     { &hf_gsm_map_ms_broadcastInitEntitlement,
19825       { "broadcastInitEntitlement", "gsm_map.ms.broadcastInitEntitlement",
19826         FT_NONE, BASE_NONE, NULL, 0,
19827         "gsm_map_ms.NULL", HFILL }},
19828     { &hf_gsm_map_ms_requestedInfo,
19829       { "requestedInfo", "gsm_map.ms.requestedInfo",
19830         FT_NONE, BASE_NONE, NULL, 0,
19831         "gsm_map_ms.RequestedInfo", HFILL }},
19832     { &hf_gsm_map_ms_subscriberInfo,
19833       { "subscriberInfo", "gsm_map.ms.subscriberInfo",
19834         FT_NONE, BASE_NONE, NULL, 0,
19835         "gsm_map_ms.SubscriberInfo", HFILL }},
19836     { &hf_gsm_map_ms_locationInformation,
19837       { "locationInformation", "gsm_map.ms.locationInformation",
19838         FT_NONE, BASE_NONE, NULL, 0,
19839         "gsm_map_ms.LocationInformation", HFILL }},
19840     { &hf_gsm_map_ms_subscriberState,
19841       { "subscriberState", "gsm_map.ms.subscriberState",
19842         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberState_vals), 0,
19843         "gsm_map_ms.SubscriberState", HFILL }},
19844     { &hf_gsm_map_ms_locationInformationGPRS,
19845       { "locationInformationGPRS", "gsm_map.ms.locationInformationGPRS",
19846         FT_NONE, BASE_NONE, NULL, 0,
19847         "gsm_map_ms.LocationInformationGPRS", HFILL }},
19848     { &hf_gsm_map_ms_ps_SubscriberState,
19849       { "ps-SubscriberState", "gsm_map.ms.ps_SubscriberState",
19850         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PS_SubscriberState_vals), 0,
19851         "gsm_map_ms.PS_SubscriberState", HFILL }},
19852     { &hf_gsm_map_ms_ms_Classmark2,
19853       { "ms-Classmark2", "gsm_map.ms.ms_Classmark2",
19854         FT_BYTES, BASE_HEX, NULL, 0,
19855         "gsm_map_ms.MS_Classmark2", HFILL }},
19856     { &hf_gsm_map_ms_gprs_MS_Class,
19857       { "gprs-MS-Class", "gsm_map.ms.gprs_MS_Class",
19858         FT_NONE, BASE_NONE, NULL, 0,
19859         "gsm_map_ms.GPRSMSClass", HFILL }},
19860     { &hf_gsm_map_ms_mnpInfoRes,
19861       { "mnpInfoRes", "gsm_map.ms.mnpInfoRes",
19862         FT_NONE, BASE_NONE, NULL, 0,
19863         "gsm_map_ms.MNPInfoRes", HFILL }},
19864     { &hf_gsm_map_ms_routeingNumber,
19865       { "routeingNumber", "gsm_map.ms.routeingNumber",
19866         FT_BYTES, BASE_HEX, NULL, 0,
19867         "gsm_map_ms.RouteingNumber", HFILL }},
19868     { &hf_gsm_map_ms_numberPortabilityStatus,
19869       { "numberPortabilityStatus", "gsm_map.ms.numberPortabilityStatus",
19870         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
19871         "gsm_map_ms.NumberPortabilityStatus", HFILL }},
19872     { &hf_gsm_map_ms_mSNetworkCapability,
19873       { "mSNetworkCapability", "gsm_map.ms.mSNetworkCapability",
19874         FT_BYTES, BASE_HEX, NULL, 0,
19875         "gsm_map_ms.MSNetworkCapability", HFILL }},
19876     { &hf_gsm_map_ms_mSRadioAccessCapability,
19877       { "mSRadioAccessCapability", "gsm_map.ms.mSRadioAccessCapability",
19878         FT_BYTES, BASE_HEX, NULL, 0,
19879         "gsm_map_ms.MSRadioAccessCapability", HFILL }},
19880     { &hf_gsm_map_ms_locationInformation_01,
19881       { "locationInformation", "gsm_map.ms.locationInformation",
19882         FT_NONE, BASE_NONE, NULL, 0,
19883         "gsm_map_ms.NULL", HFILL }},
19884     { &hf_gsm_map_ms_subscriberState_01,
19885       { "subscriberState", "gsm_map.ms.subscriberState",
19886         FT_NONE, BASE_NONE, NULL, 0,
19887         "gsm_map_ms.NULL", HFILL }},
19888     { &hf_gsm_map_ms_currentLocation,
19889       { "currentLocation", "gsm_map.ms.currentLocation",
19890         FT_NONE, BASE_NONE, NULL, 0,
19891         "gsm_map_ms.NULL", HFILL }},
19892     { &hf_gsm_map_ms_requestedDomain,
19893       { "requestedDomain", "gsm_map.ms.requestedDomain",
19894         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DomainType_vals), 0,
19895         "gsm_map_ms.DomainType", HFILL }},
19896     { &hf_gsm_map_ms_imei_01,
19897       { "imei", "gsm_map.ms.imei",
19898         FT_NONE, BASE_NONE, NULL, 0,
19899         "gsm_map_ms.NULL", HFILL }},
19900     { &hf_gsm_map_ms_ms_classmark,
19901       { "ms-classmark", "gsm_map.ms.ms_classmark",
19902         FT_NONE, BASE_NONE, NULL, 0,
19903         "gsm_map_ms.NULL", HFILL }},
19904     { &hf_gsm_map_ms_mnpRequestedInfo,
19905       { "mnpRequestedInfo", "gsm_map.ms.mnpRequestedInfo",
19906         FT_NONE, BASE_NONE, NULL, 0,
19907         "gsm_map_ms.NULL", HFILL }},
19908     { &hf_gsm_map_ms_ageOfLocationInformation,
19909       { "ageOfLocationInformation", "gsm_map.ms.ageOfLocationInformation",
19910         FT_UINT32, BASE_DEC, NULL, 0,
19911         "gsm_map.AgeOfLocationInformation", HFILL }},
19912     { &hf_gsm_map_ms_geographicalInformation,
19913       { "geographicalInformation", "gsm_map.ms.geographicalInformation",
19914         FT_BYTES, BASE_HEX, NULL, 0,
19915         "gsm_map_ms.GeographicalInformation", HFILL }},
19916     { &hf_gsm_map_ms_vlr_number,
19917       { "vlr-number", "gsm_map.ms.vlr_number",
19918         FT_BYTES, BASE_HEX, NULL, 0,
19919         "gsm_map.ISDN_AddressString", HFILL }},
19920     { &hf_gsm_map_ms_locationNumber,
19921       { "locationNumber", "gsm_map.ms.locationNumber",
19922         FT_BYTES, BASE_HEX, NULL, 0,
19923         "gsm_map_ms.LocationNumber", HFILL }},
19924     { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI,
19925       { "cellGlobalIdOrServiceAreaIdOrLAI", "gsm_map.ms.cellGlobalIdOrServiceAreaIdOrLAI",
19926         FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
19927         "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
19928     { &hf_gsm_map_ms_selectedLSA_Id,
19929       { "selectedLSA-Id", "gsm_map.ms.selectedLSA_Id",
19930         FT_BYTES, BASE_HEX, NULL, 0,
19931         "gsm_map_ms.LSAIdentity", HFILL }},
19932     { &hf_gsm_map_ms_geodeticInformation,
19933       { "geodeticInformation", "gsm_map.ms.geodeticInformation",
19934         FT_BYTES, BASE_HEX, NULL, 0,
19935         "gsm_map_ms.GeodeticInformation", HFILL }},
19936     { &hf_gsm_map_ms_currentLocationRetrieved,
19937       { "currentLocationRetrieved", "gsm_map.ms.currentLocationRetrieved",
19938         FT_NONE, BASE_NONE, NULL, 0,
19939         "gsm_map_ms.NULL", HFILL }},
19940     { &hf_gsm_map_ms_sai_Present,
19941       { "sai-Present", "gsm_map.ms.sai_Present",
19942         FT_NONE, BASE_NONE, NULL, 0,
19943         "gsm_map_ms.NULL", HFILL }},
19944     { &hf_gsm_map_ms_routeingAreaIdentity,
19945       { "routeingAreaIdentity", "gsm_map.ms.routeingAreaIdentity",
19946         FT_BYTES, BASE_HEX, NULL, 0,
19947         "gsm_map_ms.RAIdentity", HFILL }},
19948     { &hf_gsm_map_ms_selectedLSAIdentity,
19949       { "selectedLSAIdentity", "gsm_map.ms.selectedLSAIdentity",
19950         FT_BYTES, BASE_HEX, NULL, 0,
19951         "gsm_map_ms.LSAIdentity", HFILL }},
19952     { &hf_gsm_map_ms_assumedIdle,
19953       { "assumedIdle", "gsm_map.ms.assumedIdle",
19954         FT_NONE, BASE_NONE, NULL, 0,
19955         "gsm_map_ms.NULL", HFILL }},
19956     { &hf_gsm_map_ms_camelBusy,
19957       { "camelBusy", "gsm_map.ms.camelBusy",
19958         FT_NONE, BASE_NONE, NULL, 0,
19959         "gsm_map_ms.NULL", HFILL }},
19960     { &hf_gsm_map_ms_netDetNotReachable,
19961       { "netDetNotReachable", "gsm_map.ms.netDetNotReachable",
19962         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotReachableReason_vals), 0,
19963         "gsm_map_ms.NotReachableReason", HFILL }},
19964     { &hf_gsm_map_ms_notProvidedFromVLR,
19965       { "notProvidedFromVLR", "gsm_map.ms.notProvidedFromVLR",
19966         FT_NONE, BASE_NONE, NULL, 0,
19967         "gsm_map_ms.NULL", HFILL }},
19968     { &hf_gsm_map_ms_notProvidedFromSGSN,
19969       { "notProvidedFromSGSN", "gsm_map.ms.notProvidedFromSGSN",
19970         FT_NONE, BASE_NONE, NULL, 0,
19971         "gsm_map_ms.NULL", HFILL }},
19972     { &hf_gsm_map_ms_ps_Detached,
19973       { "ps-Detached", "gsm_map.ms.ps_Detached",
19974         FT_NONE, BASE_NONE, NULL, 0,
19975         "gsm_map_ms.NULL", HFILL }},
19976     { &hf_gsm_map_ms_ps_AttachedNotReachableForPaging,
19977       { "ps-AttachedNotReachableForPaging", "gsm_map.ms.ps_AttachedNotReachableForPaging",
19978         FT_NONE, BASE_NONE, NULL, 0,
19979         "gsm_map_ms.NULL", HFILL }},
19980     { &hf_gsm_map_ms_ps_AttachedReachableForPaging,
19981       { "ps-AttachedReachableForPaging", "gsm_map.ms.ps_AttachedReachableForPaging",
19982         FT_NONE, BASE_NONE, NULL, 0,
19983         "gsm_map_ms.NULL", HFILL }},
19984     { &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging,
19985       { "ps-PDP-ActiveNotReachableForPaging", "gsm_map.ms.ps_PDP_ActiveNotReachableForPaging",
19986         FT_UINT32, BASE_DEC, NULL, 0,
19987         "gsm_map_ms.PDP_ContextInfoList", HFILL }},
19988     { &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging,
19989       { "ps-PDP-ActiveReachableForPaging", "gsm_map.ms.ps_PDP_ActiveReachableForPaging",
19990         FT_UINT32, BASE_DEC, NULL, 0,
19991         "gsm_map_ms.PDP_ContextInfoList", HFILL }},
19992     { &hf_gsm_map_ms_PDP_ContextInfoList_item,
19993       { "PDP-ContextInfoList", "gsm_map.ms.PDP_ContextInfoList_item",
19994         FT_NONE, BASE_NONE, NULL, 0,
19995         "gsm_map_ms.PDP_ContextInfo", HFILL }},
19996     { &hf_gsm_map_ms_pdp_ContextIdentifier,
19997       { "pdp-ContextIdentifier", "gsm_map.ms.pdp_ContextIdentifier",
19998         FT_UINT32, BASE_DEC, NULL, 0,
19999         "gsm_map_ms.ContextId", HFILL }},
20000     { &hf_gsm_map_ms_pdp_ContextActive,
20001       { "pdp-ContextActive", "gsm_map.ms.pdp_ContextActive",
20002         FT_NONE, BASE_NONE, NULL, 0,
20003         "gsm_map_ms.NULL", HFILL }},
20004     { &hf_gsm_map_ms_apn_Subscribed,
20005       { "apn-Subscribed", "gsm_map.ms.apn_Subscribed",
20006         FT_BYTES, BASE_HEX, NULL, 0,
20007         "gsm_map_ms.APN", HFILL }},
20008     { &hf_gsm_map_ms_apn_InUse,
20009       { "apn-InUse", "gsm_map.ms.apn_InUse",
20010         FT_BYTES, BASE_HEX, NULL, 0,
20011         "gsm_map_ms.APN", HFILL }},
20012     { &hf_gsm_map_ms_nsapi,
20013       { "nsapi", "gsm_map.ms.nsapi",
20014         FT_UINT32, BASE_DEC, NULL, 0,
20015         "gsm_map_ms.NSAPI", HFILL }},
20016     { &hf_gsm_map_ms_transactionId,
20017       { "transactionId", "gsm_map.ms.transactionId",
20018         FT_BYTES, BASE_HEX, NULL, 0,
20019         "gsm_map_ms.TransactionId", HFILL }},
20020     { &hf_gsm_map_ms_teid_ForGnAndGp,
20021       { "teid-ForGnAndGp", "gsm_map.ms.teid_ForGnAndGp",
20022         FT_BYTES, BASE_HEX, NULL, 0,
20023         "gsm_map_ms.TEID", HFILL }},
20024     { &hf_gsm_map_ms_teid_ForIu,
20025       { "teid-ForIu", "gsm_map.ms.teid_ForIu",
20026         FT_BYTES, BASE_HEX, NULL, 0,
20027         "gsm_map_ms.TEID", HFILL }},
20028     { &hf_gsm_map_ms_qos_Subscribed_01,
20029       { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
20030         FT_BYTES, BASE_HEX, NULL, 0,
20031         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
20032     { &hf_gsm_map_ms_qos_Requested,
20033       { "qos-Requested", "gsm_map.ms.qos_Requested",
20034         FT_BYTES, BASE_HEX, NULL, 0,
20035         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
20036     { &hf_gsm_map_ms_qos_Negotiated,
20037       { "qos-Negotiated", "gsm_map.ms.qos_Negotiated",
20038         FT_BYTES, BASE_HEX, NULL, 0,
20039         "gsm_map_ms.Ext_QoS_Subscribed", HFILL }},
20040     { &hf_gsm_map_ms_chargingId,
20041       { "chargingId", "gsm_map.ms.chargingId",
20042         FT_BYTES, BASE_HEX, NULL, 0,
20043         "gsm_map_ms.GPRSChargingID", HFILL }},
20044     { &hf_gsm_map_ms_chargingCharacteristics,
20045       { "chargingCharacteristics", "gsm_map.ms.chargingCharacteristics",
20046         FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
20047         "gsm_map_ms.ChargingCharacteristics", HFILL }},
20048     { &hf_gsm_map_ms_rnc_Address,
20049       { "rnc-Address", "gsm_map.ms.rnc_Address",
20050         FT_BYTES, BASE_HEX, NULL, 0,
20051         "gsm_map_ms.GSN_Address", HFILL }},
20052     { &hf_gsm_map_ms_qos2_Subscribed,
20053       { "qos2-Subscribed", "gsm_map.ms.qos2_Subscribed",
20054         FT_BYTES, BASE_HEX, NULL, 0,
20055         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
20056     { &hf_gsm_map_ms_qos2_Requested,
20057       { "qos2-Requested", "gsm_map.ms.qos2_Requested",
20058         FT_BYTES, BASE_HEX, NULL, 0,
20059         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
20060     { &hf_gsm_map_ms_qos2_Negotiated,
20061       { "qos2-Negotiated", "gsm_map.ms.qos2_Negotiated",
20062         FT_BYTES, BASE_HEX, NULL, 0,
20063         "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }},
20064     { &hf_gsm_map_ms_qos3_Subscribed,
20065       { "qos3-Subscribed", "gsm_map.ms.qos3_Subscribed",
20066         FT_BYTES, BASE_HEX, NULL, 0,
20067         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
20068     { &hf_gsm_map_ms_qos3_Requested,
20069       { "qos3-Requested", "gsm_map.ms.qos3_Requested",
20070         FT_BYTES, BASE_HEX, NULL, 0,
20071         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
20072     { &hf_gsm_map_ms_qos3_Negotiated,
20073       { "qos3-Negotiated", "gsm_map.ms.qos3_Negotiated",
20074         FT_BYTES, BASE_HEX, NULL, 0,
20075         "gsm_map_ms.Ext3_QoS_Subscribed", HFILL }},
20076     { &hf_gsm_map_ms_subscriberIdentity,
20077       { "subscriberIdentity", "gsm_map.ms.subscriberIdentity",
20078         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
20079         "gsm_map.SubscriberIdentity", HFILL }},
20080     { &hf_gsm_map_ms_requestedSubscriptionInfo,
20081       { "requestedSubscriptionInfo", "gsm_map.ms.requestedSubscriptionInfo",
20082         FT_NONE, BASE_NONE, NULL, 0,
20083         "gsm_map_ms.RequestedSubscriptionInfo", HFILL }},
20084     { &hf_gsm_map_ms_callForwardingData,
20085       { "callForwardingData", "gsm_map.ms.callForwardingData",
20086         FT_NONE, BASE_NONE, NULL, 0,
20087         "gsm_map_ms.CallForwardingData", HFILL }},
20088     { &hf_gsm_map_ms_callBarringData,
20089       { "callBarringData", "gsm_map.ms.callBarringData",
20090         FT_NONE, BASE_NONE, NULL, 0,
20091         "gsm_map_ms.CallBarringData", HFILL }},
20092     { &hf_gsm_map_ms_odb_Info,
20093       { "odb-Info", "gsm_map.ms.odb_Info",
20094         FT_NONE, BASE_NONE, NULL, 0,
20095         "gsm_map_ms.ODB_Info", HFILL }},
20096     { &hf_gsm_map_ms_camel_SubscriptionInfo,
20097       { "camel-SubscriptionInfo", "gsm_map.ms.camel_SubscriptionInfo",
20098         FT_NONE, BASE_NONE, NULL, 0,
20099         "gsm_map_ms.CAMEL_SubscriptionInfo", HFILL }},
20100     { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases,
20101       { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases",
20102         FT_BYTES, BASE_HEX, NULL, 0,
20103         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20104     { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases,
20105       { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases",
20106         FT_BYTES, BASE_HEX, NULL, 0,
20107         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20108     { &hf_gsm_map_ms_offeredCamel4CSIsInVLR,
20109       { "offeredCamel4CSIsInVLR", "gsm_map.ms.offeredCamel4CSIsInVLR",
20110         FT_BYTES, BASE_HEX, NULL, 0,
20111         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20112     { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN,
20113       { "offeredCamel4CSIsInSGSN", "gsm_map.ms.offeredCamel4CSIsInSGSN",
20114         FT_BYTES, BASE_HEX, NULL, 0,
20115         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20116     { &hf_gsm_map_ms_msisdn_BS_List,
20117       { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List",
20118         FT_UINT32, BASE_DEC, NULL, 0,
20119         "gsm_map_ms.MSISDN_BS_List", HFILL }},
20120     { &hf_gsm_map_ms_requestedSS_Info,
20121       { "requestedSS-Info", "gsm_map.ms.requestedSS_Info",
20122         FT_NONE, BASE_NONE, NULL, 0,
20123         "gsm_map_ss.SS_ForBS_Code", HFILL }},
20124     { &hf_gsm_map_ms_odb,
20125       { "odb", "gsm_map.ms.odb",
20126         FT_NONE, BASE_NONE, NULL, 0,
20127         "gsm_map_ms.NULL", HFILL }},
20128     { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo,
20129       { "requestedCAMEL-SubscriptionInfo", "gsm_map.ms.requestedCAMEL_SubscriptionInfo",
20130         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
20131         "gsm_map_ms.RequestedCAMEL_SubscriptionInfo", HFILL }},
20132     { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01,
20133       { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases",
20134         FT_NONE, BASE_NONE, NULL, 0,
20135         "gsm_map_ms.NULL", HFILL }},
20136     { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01,
20137       { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases",
20138         FT_NONE, BASE_NONE, NULL, 0,
20139         "gsm_map_ms.NULL", HFILL }},
20140     { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo,
20141       { "additionalRequestedCAMEL-SubscriptionInfo", "gsm_map.ms.additionalRequestedCAMEL_SubscriptionInfo",
20142         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals), 0,
20143         "gsm_map_ms.AdditionalRequestedCAMEL_SubscriptionInfo", HFILL }},
20144     { &hf_gsm_map_ms_msisdn_BS_List_01,
20145       { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List",
20146         FT_NONE, BASE_NONE, NULL, 0,
20147         "gsm_map_ms.NULL", HFILL }},
20148     { &hf_gsm_map_ms_MSISDN_BS_List_item,
20149       { "MSISDN-BS-List", "gsm_map.ms.MSISDN_BS_List_item",
20150         FT_NONE, BASE_NONE, NULL, 0,
20151         "gsm_map_ms.MSISDN_BS", HFILL }},
20152     { &hf_gsm_map_ms_password,
20153       { "password", "gsm_map.ms.password",
20154         FT_STRING, BASE_NONE, NULL, 0,
20155         "gsm_map_ss.Password", HFILL }},
20156     { &hf_gsm_map_ms_wrongPasswordAttemptsCounter,
20157       { "wrongPasswordAttemptsCounter", "gsm_map.ms.wrongPasswordAttemptsCounter",
20158         FT_UINT32, BASE_DEC, NULL, 0,
20159         "gsm_map_ms.WrongPasswordAttemptsCounter", HFILL }},
20160     { &hf_gsm_map_ms_t_CSI,
20161       { "t-CSI", "gsm_map.ms.t_CSI",
20162         FT_NONE, BASE_NONE, NULL, 0,
20163         "gsm_map_ms.T_CSI", HFILL }},
20164     { &hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList,
20165       { "vt-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_BCSM_CAMEL_TDP_CriteriaList",
20166         FT_UINT32, BASE_DEC, NULL, 0,
20167         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
20168     { &hf_gsm_map_ms_tif_CSI_NotificationToCSE,
20169       { "tif-CSI-NotificationToCSE", "gsm_map.ms.tif_CSI_NotificationToCSE",
20170         FT_NONE, BASE_NONE, NULL, 0,
20171         "gsm_map_ms.NULL", HFILL }},
20172     { &hf_gsm_map_ms_specificCSIDeletedList,
20173       { "specificCSIDeletedList", "gsm_map.ms.specificCSIDeletedList",
20174         FT_BYTES, BASE_HEX, NULL, 0,
20175         "gsm_map_ms.SpecificCSI_Withdraw", HFILL }},
20176     { &hf_gsm_map_ms_o_IM_CSI,
20177       { "o-IM-CSI", "gsm_map.ms.o_IM_CSI",
20178         FT_NONE, BASE_NONE, NULL, 0,
20179         "gsm_map_ms.O_CSI", HFILL }},
20180     { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList,
20181       { "o-IM-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_IM_BcsmCamelTDP_CriteriaList",
20182         FT_UINT32, BASE_DEC, NULL, 0,
20183         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
20184     { &hf_gsm_map_ms_d_IM_CSI,
20185       { "d-IM-CSI", "gsm_map.ms.d_IM_CSI",
20186         FT_NONE, BASE_NONE, NULL, 0,
20187         "gsm_map_ms.D_CSI", HFILL }},
20188     { &hf_gsm_map_ms_vt_IM_CSI,
20189       { "vt-IM-CSI", "gsm_map.ms.vt_IM_CSI",
20190         FT_NONE, BASE_NONE, NULL, 0,
20191         "gsm_map_ms.T_CSI", HFILL }},
20192     { &hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList,
20193       { "vt-IM-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_IM_BCSM_CAMEL_TDP_CriteriaList",
20194         FT_UINT32, BASE_DEC, NULL, 0,
20195         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
20196     { &hf_gsm_map_ms_modificationRequestFor_CF_Info,
20197       { "modificationRequestFor-CF-Info", "gsm_map.ms.modificationRequestFor_CF_Info",
20198         FT_NONE, BASE_NONE, NULL, 0,
20199         "gsm_map_ms.ModificationRequestFor_CF_Info", HFILL }},
20200     { &hf_gsm_map_ms_modificationRequestFor_CB_Info,
20201       { "modificationRequestFor-CB-Info", "gsm_map.ms.modificationRequestFor_CB_Info",
20202         FT_NONE, BASE_NONE, NULL, 0,
20203         "gsm_map_ms.ModificationRequestFor_CB_Info", HFILL }},
20204     { &hf_gsm_map_ms_modificationRequestFor_CSI,
20205       { "modificationRequestFor-CSI", "gsm_map.ms.modificationRequestFor_CSI",
20206         FT_NONE, BASE_NONE, NULL, 0,
20207         "gsm_map_ms.ModificationRequestFor_CSI", HFILL }},
20208     { &hf_gsm_map_ms_modificationRequestFor_ODB_data,
20209       { "modificationRequestFor-ODB-data", "gsm_map.ms.modificationRequestFor_ODB_data",
20210         FT_NONE, BASE_NONE, NULL, 0,
20211         "gsm_map_ms.ModificationRequestFor_ODB_data", HFILL }},
20212     { &hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data,
20213       { "modificationRequestFor-IP-SM-GW-Data", "gsm_map.ms.modificationRequestFor_IP_SM_GW_Data",
20214         FT_NONE, BASE_NONE, NULL, 0,
20215         "gsm_map_ms.ModificationRequestFor_IP_SM_GW_Data", HFILL }},
20216     { &hf_gsm_map_ms_ss_InfoFor_CSE,
20217       { "ss-InfoFor-CSE", "gsm_map.ms.ss_InfoFor_CSE",
20218         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_InfoFor_CSE_vals), 0,
20219         "gsm_map_ms.Ext_SS_InfoFor_CSE", HFILL }},
20220     { &hf_gsm_map_ms_forwardedToNumber_01,
20221       { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
20222         FT_BYTES, BASE_HEX, NULL, 0,
20223         "gsm_map.AddressString", HFILL }},
20224     { &hf_gsm_map_ms_modifyNotificationToCSE,
20225       { "modifyNotificationToCSE", "gsm_map.ms.modifyNotificationToCSE",
20226         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
20227         "gsm_map_ms.ModificationInstruction", HFILL }},
20228     { &hf_gsm_map_ms_odb_data,
20229       { "odb-data", "gsm_map.ms.odb_data",
20230         FT_NONE, BASE_NONE, NULL, 0,
20231         "gsm_map_ms.ODB_Data", HFILL }},
20232     { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo,
20233       { "requestedCamel-SubscriptionInfo", "gsm_map.ms.requestedCamel_SubscriptionInfo",
20234         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
20235         "gsm_map_ms.RequestedCAMEL_SubscriptionInfo", HFILL }},
20236     { &hf_gsm_map_ms_modifyCSI_State,
20237       { "modifyCSI-State", "gsm_map.ms.modifyCSI_State",
20238         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
20239         "gsm_map_ms.ModificationInstruction", HFILL }},
20240     { &hf_gsm_map_ms_modifyRegistrationStatus,
20241       { "modifyRegistrationStatus", "gsm_map.ms.modifyRegistrationStatus",
20242         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
20243         "gsm_map_ms.ModificationInstruction", HFILL }},
20244     { &hf_gsm_map_ms_forwardingInfoFor_CSE,
20245       { "forwardingInfoFor-CSE", "gsm_map.ms.forwardingInfoFor_CSE",
20246         FT_NONE, BASE_NONE, NULL, 0,
20247         "gsm_map_ms.Ext_ForwardingInfoFor_CSE", HFILL }},
20248     { &hf_gsm_map_ms_callBarringInfoFor_CSE,
20249       { "callBarringInfoFor-CSE", "gsm_map.ms.callBarringInfoFor_CSE",
20250         FT_NONE, BASE_NONE, NULL, 0,
20251         "gsm_map_ms.Ext_CallBarringInfoFor_CSE", HFILL }},
20252     { &hf_gsm_map_ms_allInformationSent,
20253       { "allInformationSent", "gsm_map.ms.allInformationSent",
20254         FT_NONE, BASE_NONE, NULL, 0,
20255         "gsm_map_ms.NULL", HFILL }},
20256     { &hf_gsm_map_ms_eventMet,
20257       { "eventMet", "gsm_map.ms.eventMet",
20258         FT_BYTES, BASE_HEX, NULL, 0,
20259         "gsm_map_ms.MM_Code", HFILL }},
20260     { &hf_gsm_map_ms_supportedCAMELPhases,
20261       { "supportedCAMELPhases", "gsm_map.ms.supportedCAMELPhases",
20262         FT_BYTES, BASE_HEX, NULL, 0,
20263         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20264     { &hf_gsm_map_ms_offeredCamel4Functionalities,
20265       { "offeredCamel4Functionalities", "gsm_map.ms.offeredCamel4Functionalities",
20266         FT_BYTES, BASE_HEX, NULL, 0,
20267         "gsm_map_ms.OfferedCamel4Functionalities", HFILL }},
20268     { &hf_gsm_map_ms_naea_PreferredCI,
20269       { "naea-PreferredCI", "gsm_map.ms.naea_PreferredCI",
20270         FT_NONE, BASE_NONE, NULL, 0,
20271         "gsm_map.NAEA_PreferredCI", HFILL }},
20272     { &hf_gsm_map_ms_gprsSubscriptionData,
20273       { "gprsSubscriptionData", "gsm_map.ms.gprsSubscriptionData",
20274         FT_NONE, BASE_NONE, NULL, 0,
20275         "gsm_map_ms.GPRSSubscriptionData", HFILL }},
20276     { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature,
20277       { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsupportedFeature",
20278         FT_NONE, BASE_NONE, NULL, 0,
20279         "gsm_map_ms.NULL", HFILL }},
20280     { &hf_gsm_map_ms_networkAccessMode,
20281       { "networkAccessMode", "gsm_map.ms.networkAccessMode",
20282         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NetworkAccessMode_vals), 0,
20283         "gsm_map_ms.NetworkAccessMode", HFILL }},
20284     { &hf_gsm_map_ms_lsaInformation,
20285       { "lsaInformation", "gsm_map.ms.lsaInformation",
20286         FT_NONE, BASE_NONE, NULL, 0,
20287         "gsm_map_ms.LSAInformation", HFILL }},
20288     { &hf_gsm_map_ms_lmu_Indicator,
20289       { "lmu-Indicator", "gsm_map.ms.lmu_Indicator",
20290         FT_NONE, BASE_NONE, NULL, 0,
20291         "gsm_map_ms.NULL", HFILL }},
20292     { &hf_gsm_map_ms_lcsInformation,
20293       { "lcsInformation", "gsm_map.ms.lcsInformation",
20294         FT_NONE, BASE_NONE, NULL, 0,
20295         "gsm_map_ms.LCSInformation", HFILL }},
20296     { &hf_gsm_map_ms_istAlertTimer,
20297       { "istAlertTimer", "gsm_map.ms.istAlertTimer",
20298         FT_UINT32, BASE_DEC, NULL, 0,
20299         "gsm_map_ms.IST_AlertTimerValue", HFILL }},
20300     { &hf_gsm_map_ms_superChargerSupportedInHLR,
20301       { "superChargerSupportedInHLR", "gsm_map.ms.superChargerSupportedInHLR",
20302         FT_BYTES, BASE_HEX, NULL, 0,
20303         "gsm_map_ms.AgeIndicator", HFILL }},
20304     { &hf_gsm_map_ms_mc_SS_Info,
20305       { "mc-SS-Info", "gsm_map.ms.mc_SS_Info",
20306         FT_NONE, BASE_NONE, NULL, 0,
20307         "gsm_map.MC_SS_Info", HFILL }},
20308     { &hf_gsm_map_ms_cs_AllocationRetentionPriority,
20309       { "cs-AllocationRetentionPriority", "gsm_map.ms.cs_AllocationRetentionPriority",
20310         FT_BYTES, BASE_HEX, NULL, 0,
20311         "gsm_map_ms.CS_AllocationRetentionPriority", HFILL }},
20312     { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo,
20313       { "sgsn-CAMEL-SubscriptionInfo", "gsm_map.ms.sgsn_CAMEL_SubscriptionInfo",
20314         FT_NONE, BASE_NONE, NULL, 0,
20315         "gsm_map_ms.SGSN_CAMEL_SubscriptionInfo", HFILL }},
20316     { &hf_gsm_map_ms_accessRestrictionData,
20317       { "accessRestrictionData", "gsm_map.ms.accessRestrictionData",
20318         FT_BYTES, BASE_HEX, NULL, 0,
20319         "gsm_map_ms.AccessRestrictionData", HFILL }},
20320     { &hf_gsm_map_ms_SupportedRAT_Types_utran,
20321       { "utran", "gsm_map.ms.utran",
20322         FT_BOOLEAN, 8, NULL, 0x80,
20323         "", HFILL }},
20324     { &hf_gsm_map_ms_SupportedRAT_Types_geran,
20325       { "geran", "gsm_map.ms.geran",
20326         FT_BOOLEAN, 8, NULL, 0x40,
20327         "", HFILL }},
20328     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1,
20329       { "lcsCapabilitySet1", "gsm_map.ms.lcsCapabilitySet1",
20330         FT_BOOLEAN, 8, NULL, 0x80,
20331         "", HFILL }},
20332     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2,
20333       { "lcsCapabilitySet2", "gsm_map.ms.lcsCapabilitySet2",
20334         FT_BOOLEAN, 8, NULL, 0x40,
20335         "", HFILL }},
20336     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3,
20337       { "lcsCapabilitySet3", "gsm_map.ms.lcsCapabilitySet3",
20338         FT_BOOLEAN, 8, NULL, 0x20,
20339         "", HFILL }},
20340     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4,
20341       { "lcsCapabilitySet4", "gsm_map.ms.lcsCapabilitySet4",
20342         FT_BOOLEAN, 8, NULL, 0x10,
20343         "", HFILL }},
20344     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5,
20345       { "lcsCapabilitySet5", "gsm_map.ms.lcsCapabilitySet5",
20346         FT_BOOLEAN, 8, NULL, 0x08,
20347         "", HFILL }},
20348     { &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus,
20349       { "equipmentStatus", "gsm_map.ms.equipmentStatus",
20350         FT_BOOLEAN, 8, NULL, 0x80,
20351         "", HFILL }},
20352     { &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef,
20353       { "bmuef", "gsm_map.ms.bmuef",
20354         FT_BOOLEAN, 8, NULL, 0x40,
20355         "", HFILL }},
20356     { &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed,
20357       { "utranNotAllowed", "gsm_map.ms.utranNotAllowed",
20358         FT_BOOLEAN, 8, NULL, 0x80,
20359         "", HFILL }},
20360     { &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed,
20361       { "geranNotAllowed", "gsm_map.ms.geranNotAllowed",
20362         FT_BOOLEAN, 8, NULL, 0x40,
20363         "", HFILL }},
20364     { &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred,
20365       { "allOG-CallsBarred", "gsm_map.ms.allOG-CallsBarred",
20366         FT_BOOLEAN, 8, NULL, 0x80,
20367         "", HFILL }},
20368     { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred,
20369       { "internationalOGCallsBarred", "gsm_map.ms.internationalOGCallsBarred",
20370         FT_BOOLEAN, 8, NULL, 0x40,
20371         "", HFILL }},
20372     { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred,
20373       { "internationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.internationalOGCallsNotToHPLMN-CountryBarred",
20374         FT_BOOLEAN, 8, NULL, 0x20,
20375         "", HFILL }},
20376     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred,
20377       { "interzonalOGCallsBarred", "gsm_map.ms.interzonalOGCallsBarred",
20378         FT_BOOLEAN, 8, NULL, 0x02,
20379         "", HFILL }},
20380     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred,
20381       { "interzonalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.interzonalOGCallsNotToHPLMN-CountryBarred",
20382         FT_BOOLEAN, 8, NULL, 0x01,
20383         "", HFILL }},
20384     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred,
20385       { "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred",
20386         FT_BOOLEAN, 8, NULL, 0x80,
20387         "", HFILL }},
20388     { &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred,
20389       { "premiumRateInformationOGCallsBarred", "gsm_map.ms.premiumRateInformationOGCallsBarred",
20390         FT_BOOLEAN, 8, NULL, 0x10,
20391         "", HFILL }},
20392     { &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred,
20393       { "premiumRateEntertainementOGCallsBarred", "gsm_map.ms.premiumRateEntertainementOGCallsBarred",
20394         FT_BOOLEAN, 8, NULL, 0x08,
20395         "", HFILL }},
20396     { &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred,
20397       { "ss-AccessBarred", "gsm_map.ms.ss-AccessBarred",
20398         FT_BOOLEAN, 8, NULL, 0x04,
20399         "", HFILL }},
20400     { &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred,
20401       { "allECT-Barred", "gsm_map.ms.allECT-Barred",
20402         FT_BOOLEAN, 8, NULL, 0x40,
20403         "", HFILL }},
20404     { &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred,
20405       { "chargeableECT-Barred", "gsm_map.ms.chargeableECT-Barred",
20406         FT_BOOLEAN, 8, NULL, 0x20,
20407         "", HFILL }},
20408     { &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred,
20409       { "internationalECT-Barred", "gsm_map.ms.internationalECT-Barred",
20410         FT_BOOLEAN, 8, NULL, 0x10,
20411         "", HFILL }},
20412     { &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred,
20413       { "interzonalECT-Barred", "gsm_map.ms.interzonalECT-Barred",
20414         FT_BOOLEAN, 8, NULL, 0x08,
20415         "", HFILL }},
20416     { &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred,
20417       { "doublyChargeableECT-Barred", "gsm_map.ms.doublyChargeableECT-Barred",
20418         FT_BOOLEAN, 8, NULL, 0x04,
20419         "", HFILL }},
20420     { &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred,
20421       { "multipleECT-Barred", "gsm_map.ms.multipleECT-Barred",
20422         FT_BOOLEAN, 8, NULL, 0x02,
20423         "", HFILL }},
20424     { &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred,
20425       { "allPacketOrientedServicesBarred", "gsm_map.ms.allPacketOrientedServicesBarred",
20426         FT_BOOLEAN, 8, NULL, 0x01,
20427         "", HFILL }},
20428     { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred,
20429       { "roamerAccessToHPLMN-AP-Barred", "gsm_map.ms.roamerAccessToHPLMN-AP-Barred",
20430         FT_BOOLEAN, 8, NULL, 0x80,
20431         "", HFILL }},
20432     { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred,
20433       { "roamerAccessToVPLMN-AP-Barred", "gsm_map.ms.roamerAccessToVPLMN-AP-Barred",
20434         FT_BOOLEAN, 8, NULL, 0x40,
20435         "", HFILL }},
20436     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred,
20437       { "roamingOutsidePLMNOG-CallsBarred", "gsm_map.ms.roamingOutsidePLMNOG-CallsBarred",
20438         FT_BOOLEAN, 8, NULL, 0x20,
20439         "", HFILL }},
20440     { &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred,
20441       { "allIC-CallsBarred", "gsm_map.ms.allIC-CallsBarred",
20442         FT_BOOLEAN, 8, NULL, 0x10,
20443         "", HFILL }},
20444     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred,
20445       { "roamingOutsidePLMNIC-CallsBarred", "gsm_map.ms.roamingOutsidePLMNIC-CallsBarred",
20446         FT_BOOLEAN, 8, NULL, 0x08,
20447         "", HFILL }},
20448     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred,
20449       { "roamingOutsidePLMNICountryIC-CallsBarred", "gsm_map.ms.roamingOutsidePLMNICountryIC-CallsBarred",
20450         FT_BOOLEAN, 8, NULL, 0x04,
20451         "", HFILL }},
20452     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred,
20453       { "roamingOutsidePLMN-Barred", "gsm_map.ms.roamingOutsidePLMN-Barred",
20454         FT_BOOLEAN, 8, NULL, 0x02,
20455         "", HFILL }},
20456     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred,
20457       { "roamingOutsidePLMN-CountryBarred", "gsm_map.ms.roamingOutsidePLMN-CountryBarred",
20458         FT_BOOLEAN, 8, NULL, 0x01,
20459         "", HFILL }},
20460     { &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred,
20461       { "registrationAllCF-Barred", "gsm_map.ms.registrationAllCF-Barred",
20462         FT_BOOLEAN, 8, NULL, 0x80,
20463         "", HFILL }},
20464     { &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred,
20465       { "registrationCFNotToHPLMN-Barred", "gsm_map.ms.registrationCFNotToHPLMN-Barred",
20466         FT_BOOLEAN, 8, NULL, 0x40,
20467         "", HFILL }},
20468     { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred,
20469       { "registrationInterzonalCF-Barred", "gsm_map.ms.registrationInterzonalCF-Barred",
20470         FT_BOOLEAN, 8, NULL, 0x20,
20471         "", HFILL }},
20472     { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred,
20473       { "registrationInterzonalCFNotToHPLMN-Barred", "gsm_map.ms.registrationInterzonalCFNotToHPLMN-Barred",
20474         FT_BOOLEAN, 8, NULL, 0x10,
20475         "", HFILL }},
20476     { &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred,
20477       { "registrationInternationalCF-Barred", "gsm_map.ms.registrationInternationalCF-Barred",
20478         FT_BOOLEAN, 8, NULL, 0x08,
20479         "", HFILL }},
20480     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1,
20481       { "plmn-SpecificBarringType1", "gsm_map.ms.plmn-SpecificBarringType1",
20482         FT_BOOLEAN, 8, NULL, 0x80,
20483         "", HFILL }},
20484     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2,
20485       { "plmn-SpecificBarringType2", "gsm_map.ms.plmn-SpecificBarringType2",
20486         FT_BOOLEAN, 8, NULL, 0x40,
20487         "", HFILL }},
20488     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3,
20489       { "plmn-SpecificBarringType3", "gsm_map.ms.plmn-SpecificBarringType3",
20490         FT_BOOLEAN, 8, NULL, 0x20,
20491         "", HFILL }},
20492     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4,
20493       { "plmn-SpecificBarringType4", "gsm_map.ms.plmn-SpecificBarringType4",
20494         FT_BOOLEAN, 8, NULL, 0x10,
20495         "", HFILL }},
20496     { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi,
20497       { "o-csi", "gsm_map.ms.o-csi",
20498         FT_BOOLEAN, 8, NULL, 0x80,
20499         "", HFILL }},
20500     { &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi,
20501       { "ss-csi", "gsm_map.ms.ss-csi",
20502         FT_BOOLEAN, 8, NULL, 0x40,
20503         "", HFILL }},
20504     { &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi,
20505       { "tif-csi", "gsm_map.ms.tif-csi",
20506         FT_BOOLEAN, 8, NULL, 0x20,
20507         "", HFILL }},
20508     { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi,
20509       { "d-csi", "gsm_map.ms.d-csi",
20510         FT_BOOLEAN, 8, NULL, 0x10,
20511         "", HFILL }},
20512     { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi,
20513       { "vt-csi", "gsm_map.ms.vt-csi",
20514         FT_BOOLEAN, 8, NULL, 0x08,
20515         "", HFILL }},
20516     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi,
20517       { "mo-sms-csi", "gsm_map.ms.mo-sms-csi",
20518         FT_BOOLEAN, 8, NULL, 0x04,
20519         "", HFILL }},
20520     { &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi,
20521       { "m-csi", "gsm_map.ms.m-csi",
20522         FT_BOOLEAN, 8, NULL, 0x02,
20523         "", HFILL }},
20524     { &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi,
20525       { "gprs-csi", "gsm_map.ms.gprs-csi",
20526         FT_BOOLEAN, 8, NULL, 0x01,
20527         "", HFILL }},
20528     { &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi,
20529       { "t-csi", "gsm_map.ms.t-csi",
20530         FT_BOOLEAN, 8, NULL, 0x80,
20531         "", HFILL }},
20532     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi,
20533       { "mt-sms-csi", "gsm_map.ms.mt-sms-csi",
20534         FT_BOOLEAN, 8, NULL, 0x40,
20535         "", HFILL }},
20536     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi,
20537       { "mg-csi", "gsm_map.ms.mg-csi",
20538         FT_BOOLEAN, 8, NULL, 0x20,
20539         "", HFILL }},
20540     { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI,
20541       { "o-IM-CSI", "gsm_map.ms.o-IM-CSI",
20542         FT_BOOLEAN, 8, NULL, 0x10,
20543         "", HFILL }},
20544     { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI,
20545       { "d-IM-CSI", "gsm_map.ms.d-IM-CSI",
20546         FT_BOOLEAN, 8, NULL, 0x08,
20547         "", HFILL }},
20548     { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI,
20549       { "vt-IM-CSI", "gsm_map.ms.vt-IM-CSI",
20550         FT_BOOLEAN, 8, NULL, 0x04,
20551         "", HFILL }},
20552     { &hf_gsm_map_ms_SupportedCamelPhases_phase1,
20553       { "phase1", "gsm_map.ms.phase1",
20554         FT_BOOLEAN, 8, NULL, 0x80,
20555         "", HFILL }},
20556     { &hf_gsm_map_ms_SupportedCamelPhases_phase2,
20557       { "phase2", "gsm_map.ms.phase2",
20558         FT_BOOLEAN, 8, NULL, 0x40,
20559         "", HFILL }},
20560     { &hf_gsm_map_ms_SupportedCamelPhases_phase3,
20561       { "phase3", "gsm_map.ms.phase3",
20562         FT_BOOLEAN, 8, NULL, 0x20,
20563         "", HFILL }},
20564     { &hf_gsm_map_ms_SupportedCamelPhases_phase4,
20565       { "phase4", "gsm_map.ms.phase4",
20566         FT_BOOLEAN, 8, NULL, 0x10,
20567         "", HFILL }},
20568     { &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi,
20569       { "o-csi", "gsm_map.ms.o-csi",
20570         FT_BOOLEAN, 8, NULL, 0x80,
20571         "", HFILL }},
20572     { &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi,
20573       { "d-csi", "gsm_map.ms.d-csi",
20574         FT_BOOLEAN, 8, NULL, 0x40,
20575         "", HFILL }},
20576     { &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi,
20577       { "vt-csi", "gsm_map.ms.vt-csi",
20578         FT_BOOLEAN, 8, NULL, 0x20,
20579         "", HFILL }},
20580     { &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi,
20581       { "t-csi", "gsm_map.ms.t-csi",
20582         FT_BOOLEAN, 8, NULL, 0x10,
20583         "", HFILL }},
20584     { &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi,
20585       { "mt-sms-csi", "gsm_map.ms.mt-sms-csi",
20586         FT_BOOLEAN, 8, NULL, 0x08,
20587         "", HFILL }},
20588     { &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi,
20589       { "mg-csi", "gsm_map.ms.mg-csi",
20590         FT_BOOLEAN, 8, NULL, 0x04,
20591         "", HFILL }},
20592     { &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements,
20593       { "psi-enhancements", "gsm_map.ms.psi-enhancements",
20594         FT_BOOLEAN, 8, NULL, 0x02,
20595         "", HFILL }},
20596     { &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt,
20597       { "initiateCallAttempt", "gsm_map.ms.initiateCallAttempt",
20598         FT_BOOLEAN, 8, NULL, 0x80,
20599         "", HFILL }},
20600     { &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg,
20601       { "splitLeg", "gsm_map.ms.splitLeg",
20602         FT_BOOLEAN, 8, NULL, 0x40,
20603         "", HFILL }},
20604     { &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg,
20605       { "moveLeg", "gsm_map.ms.moveLeg",
20606         FT_BOOLEAN, 8, NULL, 0x20,
20607         "", HFILL }},
20608     { &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg,
20609       { "disconnectLeg", "gsm_map.ms.disconnectLeg",
20610         FT_BOOLEAN, 8, NULL, 0x10,
20611         "", HFILL }},
20612     { &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased,
20613       { "entityReleased", "gsm_map.ms.entityReleased",
20614         FT_BOOLEAN, 8, NULL, 0x08,
20615         "", HFILL }},
20616     { &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument,
20617       { "dfc-WithArgument", "gsm_map.ms.dfc-WithArgument",
20618         FT_BOOLEAN, 8, NULL, 0x04,
20619         "", HFILL }},
20620     { &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone,
20621       { "playTone", "gsm_map.ms.playTone",
20622         FT_BOOLEAN, 8, NULL, 0x02,
20623         "", HFILL }},
20624     { &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall,
20625       { "dtmf-MidCall", "gsm_map.ms.dtmf-MidCall",
20626         FT_BOOLEAN, 8, NULL, 0x01,
20627         "", HFILL }},
20628     { &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator,
20629       { "chargingIndicator", "gsm_map.ms.chargingIndicator",
20630         FT_BOOLEAN, 8, NULL, 0x80,
20631         "", HFILL }},
20632     { &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP,
20633       { "alertingDP", "gsm_map.ms.alertingDP",
20634         FT_BOOLEAN, 8, NULL, 0x40,
20635         "", HFILL }},
20636     { &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting,
20637       { "locationAtAlerting", "gsm_map.ms.locationAtAlerting",
20638         FT_BOOLEAN, 8, NULL, 0x20,
20639         "", HFILL }},
20640     { &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP,
20641       { "changeOfPositionDP", "gsm_map.ms.changeOfPositionDP",
20642         FT_BOOLEAN, 8, NULL, 0x10,
20643         "", HFILL }},
20644     { &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions,
20645       { "or-Interactions", "gsm_map.ms.or-Interactions",
20646         FT_BOOLEAN, 8, NULL, 0x08,
20647         "", HFILL }},
20648     { &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements,
20649       { "warningToneEnhancements", "gsm_map.ms.warningToneEnhancements",
20650         FT_BOOLEAN, 8, NULL, 0x04,
20651         "", HFILL }},
20652     { &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements,
20653       { "cf-Enhancements", "gsm_map.ms.cf-Enhancements",
20654         FT_BOOLEAN, 8, NULL, 0x02,
20655         "", HFILL }},
20656     { &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices,
20657       { "subscribedEnhancedDialledServices", "gsm_map.ms.subscribedEnhancedDialledServices",
20658         FT_BOOLEAN, 8, NULL, 0x01,
20659         "", HFILL }},
20660     { &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices,
20661       { "servingNetworkEnhancedDialledServices", "gsm_map.ms.servingNetworkEnhancedDialledServices",
20662         FT_BOOLEAN, 8, NULL, 0x80,
20663         "", HFILL }},
20664     { &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP,
20665       { "criteriaForChangeOfPositionDP", "gsm_map.ms.criteriaForChangeOfPositionDP",
20666         FT_BOOLEAN, 8, NULL, 0x40,
20667         "", HFILL }},
20668     { &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP,
20669       { "serviceChangeDP", "gsm_map.ms.serviceChangeDP",
20670         FT_BOOLEAN, 8, NULL, 0x20,
20671         "", HFILL }},
20672     { &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation,
20673       { "collectInformation", "gsm_map.ms.collectInformation",
20674         FT_BOOLEAN, 8, NULL, 0x10,
20675         "", HFILL }},
20676     { &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest,
20677       { "privilegedUplinkRequest", "gsm_map.ms.privilegedUplinkRequest",
20678         FT_BOOLEAN, 8, NULL, 0x80,
20679         "", HFILL }},
20680     { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest,
20681       { "emergencyUplinkRequest", "gsm_map.ms.emergencyUplinkRequest",
20682         FT_BOOLEAN, 8, NULL, 0x40,
20683         "", HFILL }},
20684     { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset,
20685       { "emergencyReset", "gsm_map.ms.emergencyReset",
20686         FT_BOOLEAN, 8, NULL, 0x20,
20687         "", HFILL }},
20688
20689 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
20690
20691     { &hf_gsm_map_ch_cug_Interlock,
20692       { "cug-Interlock", "gsm_map.ch.cug_Interlock",
20693         FT_BYTES, BASE_HEX, NULL, 0,
20694         "gsm_map_ms.CUG_Interlock", HFILL }},
20695     { &hf_gsm_map_ch_cug_OutgoingAccess,
20696       { "cug-OutgoingAccess", "gsm_map.ch.cug_OutgoingAccess",
20697         FT_NONE, BASE_NONE, NULL, 0,
20698         "gsm_map_ch.NULL", HFILL }},
20699     { &hf_gsm_map_ch_extensionContainer,
20700       { "extensionContainer", "gsm_map.ch.extensionContainer",
20701         FT_NONE, BASE_NONE, NULL, 0,
20702         "gsm_map.ExtensionContainer", HFILL }},
20703     { &hf_gsm_map_ch_msisdn,
20704       { "msisdn", "gsm_map.ch.msisdn",
20705         FT_BYTES, BASE_HEX, NULL, 0,
20706         "gsm_map.ISDN_AddressString", HFILL }},
20707     { &hf_gsm_map_ch_cug_CheckInfo,
20708       { "cug-CheckInfo", "gsm_map.ch.cug_CheckInfo",
20709         FT_NONE, BASE_NONE, NULL, 0,
20710         "gsm_map_ch.CUG_CheckInfo", HFILL }},
20711     { &hf_gsm_map_ch_numberOfForwarding,
20712       { "numberOfForwarding", "gsm_map.ch.numberOfForwarding",
20713         FT_UINT32, BASE_DEC, NULL, 0,
20714         "gsm_map_ch.NumberOfForwarding", HFILL }},
20715     { &hf_gsm_map_ch_interrogationType,
20716       { "interrogationType", "gsm_map.ch.interrogationType",
20717         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_InterrogationType_vals), 0,
20718         "gsm_map_ch.InterrogationType", HFILL }},
20719     { &hf_gsm_map_ch_or_Interrogation,
20720       { "or-Interrogation", "gsm_map.ch.or_Interrogation",
20721         FT_NONE, BASE_NONE, NULL, 0,
20722         "gsm_map_ch.NULL", HFILL }},
20723     { &hf_gsm_map_ch_or_Capability,
20724       { "or-Capability", "gsm_map.ch.or_Capability",
20725         FT_UINT32, BASE_DEC, NULL, 0,
20726         "gsm_map_ch.OR_Phase", HFILL }},
20727     { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address,
20728       { "gmsc-OrGsmSCF-Address", "gsm_map.ch.gmsc_OrGsmSCF_Address",
20729         FT_BYTES, BASE_HEX, NULL, 0,
20730         "gsm_map.ISDN_AddressString", HFILL }},
20731     { &hf_gsm_map_ch_callReferenceNumber,
20732       { "callReferenceNumber", "gsm_map.ch.callReferenceNumber",
20733         FT_BYTES, BASE_HEX, NULL, 0,
20734         "gsm_map_ch.CallReferenceNumber", HFILL }},
20735     { &hf_gsm_map_ch_forwardingReason,
20736       { "forwardingReason", "gsm_map.ch.forwardingReason",
20737         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ForwardingReason_vals), 0,
20738         "gsm_map_ch.ForwardingReason", HFILL }},
20739     { &hf_gsm_map_ch_basicServiceGroup,
20740       { "basicServiceGroup", "gsm_map.ch.basicServiceGroup",
20741         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20742         "gsm_map.Ext_BasicServiceCode", HFILL }},
20743     { &hf_gsm_map_ch_networkSignalInfo,
20744       { "networkSignalInfo", "gsm_map.ch.networkSignalInfo",
20745         FT_NONE, BASE_NONE, NULL, 0,
20746         "gsm_map.ExternalSignalInfo", HFILL }},
20747     { &hf_gsm_map_ch_camelInfo,
20748       { "camelInfo", "gsm_map.ch.camelInfo",
20749         FT_NONE, BASE_NONE, NULL, 0,
20750         "gsm_map_ch.CamelInfo", HFILL }},
20751     { &hf_gsm_map_ch_suppressionOfAnnouncement,
20752       { "suppressionOfAnnouncement", "gsm_map.ch.suppressionOfAnnouncement",
20753         FT_NONE, BASE_NONE, NULL, 0,
20754         "gsm_map_ch.SuppressionOfAnnouncement", HFILL }},
20755     { &hf_gsm_map_ch_alertingPattern,
20756       { "alertingPattern", "gsm_map.ch.alertingPattern",
20757         FT_BYTES, BASE_HEX, NULL, 0,
20758         "gsm_map.AlertingPattern", HFILL }},
20759     { &hf_gsm_map_ch_ccbs_Call,
20760       { "ccbs-Call", "gsm_map.ch.ccbs_Call",
20761         FT_NONE, BASE_NONE, NULL, 0,
20762         "gsm_map_ch.NULL", HFILL }},
20763     { &hf_gsm_map_ch_supportedCCBS_Phase,
20764       { "supportedCCBS-Phase", "gsm_map.ch.supportedCCBS_Phase",
20765         FT_UINT32, BASE_DEC, NULL, 0,
20766         "gsm_map_ch.SupportedCCBS_Phase", HFILL }},
20767     { &hf_gsm_map_ch_additionalSignalInfo,
20768       { "additionalSignalInfo", "gsm_map.ch.additionalSignalInfo",
20769         FT_NONE, BASE_NONE, NULL, 0,
20770         "gsm_map.Ext_ExternalSignalInfo", HFILL }},
20771     { &hf_gsm_map_ch_istSupportIndicator,
20772       { "istSupportIndicator", "gsm_map.ch.istSupportIndicator",
20773         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
20774         "gsm_map_ms.IST_SupportIndicator", HFILL }},
20775     { &hf_gsm_map_ch_pre_pagingSupported,
20776       { "pre-pagingSupported", "gsm_map.ch.pre_pagingSupported",
20777         FT_NONE, BASE_NONE, NULL, 0,
20778         "gsm_map_ch.NULL", HFILL }},
20779     { &hf_gsm_map_ch_callDiversionTreatmentIndicator,
20780       { "callDiversionTreatmentIndicator", "gsm_map.ch.callDiversionTreatmentIndicator",
20781         FT_BYTES, BASE_HEX, NULL, 0,
20782         "gsm_map_ch.CallDiversionTreatmentIndicator", HFILL }},
20783     { &hf_gsm_map_ch_longFTN_Supported,
20784       { "longFTN-Supported", "gsm_map.ch.longFTN_Supported",
20785         FT_NONE, BASE_NONE, NULL, 0,
20786         "gsm_map_ch.NULL", HFILL }},
20787     { &hf_gsm_map_ch_suppress_VT_CSI,
20788       { "suppress-VT-CSI", "gsm_map.ch.suppress_VT_CSI",
20789         FT_NONE, BASE_NONE, NULL, 0,
20790         "gsm_map_ch.NULL", HFILL }},
20791     { &hf_gsm_map_ch_suppressIncomingCallBarring,
20792       { "suppressIncomingCallBarring", "gsm_map.ch.suppressIncomingCallBarring",
20793         FT_NONE, BASE_NONE, NULL, 0,
20794         "gsm_map_ch.NULL", HFILL }},
20795     { &hf_gsm_map_ch_gsmSCF_InitiatedCall,
20796       { "gsmSCF-InitiatedCall", "gsm_map.ch.gsmSCF_InitiatedCall",
20797         FT_NONE, BASE_NONE, NULL, 0,
20798         "gsm_map_ch.NULL", HFILL }},
20799     { &hf_gsm_map_ch_basicServiceGroup2,
20800       { "basicServiceGroup2", "gsm_map.ch.basicServiceGroup2",
20801         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20802         "gsm_map.Ext_BasicServiceCode", HFILL }},
20803     { &hf_gsm_map_ch_networkSignalInfo2,
20804       { "networkSignalInfo2", "gsm_map.ch.networkSignalInfo2",
20805         FT_NONE, BASE_NONE, NULL, 0,
20806         "gsm_map.ExternalSignalInfo", HFILL }},
20807     { &hf_gsm_map_ch_suppressMTSS,
20808       { "suppressMTSS", "gsm_map.ch.suppressMTSS",
20809         FT_BYTES, BASE_HEX, NULL, 0,
20810         "gsm_map_ch.SuppressMTSS", HFILL }},
20811     { &hf_gsm_map_ch_mtRoamingRetrySupported,
20812       { "mtRoamingRetrySupported", "gsm_map.ch.mtRoamingRetrySupported",
20813         FT_NONE, BASE_NONE, NULL, 0,
20814         "gsm_map_ch.NULL", HFILL }},
20815     { &hf_gsm_map_ch_imsi,
20816       { "imsi", "gsm_map.ch.imsi",
20817         FT_BYTES, BASE_HEX, NULL, 0,
20818         "gsm_map.IMSI", HFILL }},
20819     { &hf_gsm_map_ch_extendedRoutingInfo,
20820       { "extendedRoutingInfo", "gsm_map.ch.extendedRoutingInfo",
20821         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ExtendedRoutingInfo_vals), 0,
20822         "gsm_map_ch.ExtendedRoutingInfo", HFILL }},
20823     { &hf_gsm_map_ch_cugSubscriptionFlag,
20824       { "cugSubscriptionFlag", "gsm_map.ch.cugSubscriptionFlag",
20825         FT_NONE, BASE_NONE, NULL, 0,
20826         "gsm_map_ch.NULL", HFILL }},
20827     { &hf_gsm_map_ch_subscriberInfo,
20828       { "subscriberInfo", "gsm_map.ch.subscriberInfo",
20829         FT_NONE, BASE_NONE, NULL, 0,
20830         "gsm_map_ms.SubscriberInfo", HFILL }},
20831     { &hf_gsm_map_ch_ss_List,
20832       { "ss-List", "gsm_map.ch.ss_List",
20833         FT_UINT32, BASE_DEC, NULL, 0,
20834         "gsm_map_ss.SS_List", HFILL }},
20835     { &hf_gsm_map_ch_basicService,
20836       { "basicService", "gsm_map.ch.basicService",
20837         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20838         "gsm_map.Ext_BasicServiceCode", HFILL }},
20839     { &hf_gsm_map_ch_forwardingInterrogationRequired,
20840       { "forwardingInterrogationRequired", "gsm_map.ch.forwardingInterrogationRequired",
20841         FT_NONE, BASE_NONE, NULL, 0,
20842         "gsm_map_ch.NULL", HFILL }},
20843     { &hf_gsm_map_ch_vmsc_Address,
20844       { "vmsc-Address", "gsm_map.ch.vmsc_Address",
20845         FT_BYTES, BASE_HEX, NULL, 0,
20846         "gsm_map.ISDN_AddressString", HFILL }},
20847     { &hf_gsm_map_ch_naea_PreferredCI,
20848       { "naea-PreferredCI", "gsm_map.ch.naea_PreferredCI",
20849         FT_NONE, BASE_NONE, NULL, 0,
20850         "gsm_map.NAEA_PreferredCI", HFILL }},
20851     { &hf_gsm_map_ch_ccbs_Indicators,
20852       { "ccbs-Indicators", "gsm_map.ch.ccbs_Indicators",
20853         FT_NONE, BASE_NONE, NULL, 0,
20854         "gsm_map_ch.CCBS_Indicators", HFILL }},
20855     { &hf_gsm_map_ch_numberPortabilityStatus,
20856       { "numberPortabilityStatus", "gsm_map.ch.numberPortabilityStatus",
20857         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
20858         "gsm_map_ms.NumberPortabilityStatus", HFILL }},
20859     { &hf_gsm_map_ch_istAlertTimer,
20860       { "istAlertTimer", "gsm_map.ch.istAlertTimer",
20861         FT_UINT32, BASE_DEC, NULL, 0,
20862         "gsm_map_ms.IST_AlertTimerValue", HFILL }},
20863     { &hf_gsm_map_ch_supportedCamelPhasesInVMSC,
20864       { "supportedCamelPhasesInVMSC", "gsm_map.ch.supportedCamelPhasesInVMSC",
20865         FT_BYTES, BASE_HEX, NULL, 0,
20866         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20867     { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC,
20868       { "offeredCamel4CSIsInVMSC", "gsm_map.ch.offeredCamel4CSIsInVMSC",
20869         FT_BYTES, BASE_HEX, NULL, 0,
20870         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20871     { &hf_gsm_map_ch_routingInfo2,
20872       { "routingInfo2", "gsm_map.ch.routingInfo2",
20873         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
20874         "gsm_map_ch.RoutingInfo", HFILL }},
20875     { &hf_gsm_map_ch_ss_List2,
20876       { "ss-List2", "gsm_map.ch.ss_List2",
20877         FT_UINT32, BASE_DEC, NULL, 0,
20878         "gsm_map_ss.SS_List", HFILL }},
20879     { &hf_gsm_map_ch_basicService2,
20880       { "basicService2", "gsm_map.ch.basicService2",
20881         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
20882         "gsm_map.Ext_BasicServiceCode", HFILL }},
20883     { &hf_gsm_map_ch_allowedServices,
20884       { "allowedServices", "gsm_map.ch.allowedServices",
20885         FT_BYTES, BASE_HEX, NULL, 0,
20886         "gsm_map_ch.AllowedServices", HFILL }},
20887     { &hf_gsm_map_ch_unavailabilityCause,
20888       { "unavailabilityCause", "gsm_map.ch.unavailabilityCause",
20889         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_UnavailabilityCause_vals), 0,
20890         "gsm_map_ch.UnavailabilityCause", HFILL }},
20891     { &hf_gsm_map_ch_releaseResourcesSupported,
20892       { "releaseResourcesSupported", "gsm_map.ch.releaseResourcesSupported",
20893         FT_NONE, BASE_NONE, NULL, 0,
20894         "gsm_map_ch.NULL", HFILL }},
20895     { &hf_gsm_map_ch_gsm_BearerCapability,
20896       { "gsm-BearerCapability", "gsm_map.ch.gsm_BearerCapability",
20897         FT_NONE, BASE_NONE, NULL, 0,
20898         "gsm_map.ExternalSignalInfo", HFILL }},
20899     { &hf_gsm_map_ch_ccbs_Possible,
20900       { "ccbs-Possible", "gsm_map.ch.ccbs_Possible",
20901         FT_NONE, BASE_NONE, NULL, 0,
20902         "gsm_map_ch.NULL", HFILL }},
20903     { &hf_gsm_map_ch_keepCCBS_CallIndicator,
20904       { "keepCCBS-CallIndicator", "gsm_map.ch.keepCCBS_CallIndicator",
20905         FT_NONE, BASE_NONE, NULL, 0,
20906         "gsm_map_ch.NULL", HFILL }},
20907     { &hf_gsm_map_ch_roamingNumber,
20908       { "roamingNumber", "gsm_map.ch.roamingNumber",
20909         FT_BYTES, BASE_HEX, NULL, 0,
20910         "gsm_map.ISDN_AddressString", HFILL }},
20911     { &hf_gsm_map_ch_forwardingData,
20912       { "forwardingData", "gsm_map.ch.forwardingData",
20913         FT_NONE, BASE_NONE, NULL, 0,
20914         "gsm_map_ch.ForwardingData", HFILL }},
20915     { &hf_gsm_map_ch_forwardedToNumber,
20916       { "forwardedToNumber", "gsm_map.ch.forwardedToNumber",
20917         FT_BYTES, BASE_HEX, NULL, 0,
20918         "gsm_map.ISDN_AddressString", HFILL }},
20919     { &hf_gsm_map_ch_forwardedToSubaddress,
20920       { "forwardedToSubaddress", "gsm_map.ch.forwardedToSubaddress",
20921         FT_BYTES, BASE_HEX, NULL, 0,
20922         "gsm_map.ISDN_SubaddressString", HFILL }},
20923     { &hf_gsm_map_ch_forwardingOptions,
20924       { "forwardingOptions", "gsm_map.ch.forwardingOptions",
20925         FT_BYTES, BASE_HEX, NULL, 0,
20926         "gsm_map_ss.ForwardingOptions", HFILL }},
20927     { &hf_gsm_map_ch_longForwardedToNumber,
20928       { "longForwardedToNumber", "gsm_map.ch.longForwardedToNumber",
20929         FT_BYTES, BASE_HEX, NULL, 0,
20930         "gsm_map.FTN_AddressString", HFILL }},
20931     { &hf_gsm_map_ch_msc_Number,
20932       { "msc-Number", "gsm_map.ch.msc_Number",
20933         FT_BYTES, BASE_HEX, NULL, 0,
20934         "gsm_map.ISDN_AddressString", HFILL }},
20935     { &hf_gsm_map_ch_lmsi,
20936       { "lmsi", "gsm_map.ch.lmsi",
20937         FT_BYTES, BASE_HEX, NULL, 0,
20938         "gsm_map.LMSI", HFILL }},
20939     { &hf_gsm_map_ch_gmsc_Address,
20940       { "gmsc-Address", "gsm_map.ch.gmsc_Address",
20941         FT_BYTES, BASE_HEX, NULL, 0,
20942         "gsm_map.ISDN_AddressString", HFILL }},
20943     { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode,
20944       { "supportedCamelPhasesInInterrogatingNode", "gsm_map.ch.supportedCamelPhasesInInterrogatingNode",
20945         FT_BYTES, BASE_HEX, NULL, 0,
20946         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20947     { &hf_gsm_map_ch_orNotSupportedInGMSC,
20948       { "orNotSupportedInGMSC", "gsm_map.ch.orNotSupportedInGMSC",
20949         FT_NONE, BASE_NONE, NULL, 0,
20950         "gsm_map_ch.NULL", HFILL }},
20951     { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode,
20952       { "offeredCamel4CSIsInInterrogatingNode", "gsm_map.ch.offeredCamel4CSIsInInterrogatingNode",
20953         FT_BYTES, BASE_HEX, NULL, 0,
20954         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
20955     { &hf_gsm_map_ch_o_CSI,
20956       { "o-CSI", "gsm_map.ch.o_CSI",
20957         FT_NONE, BASE_NONE, NULL, 0,
20958         "gsm_map_ms.O_CSI", HFILL }},
20959     { &hf_gsm_map_ch_uu_Data,
20960       { "uu-Data", "gsm_map.ch.uu_Data",
20961         FT_NONE, BASE_NONE, NULL, 0,
20962         "gsm_map_ch.UU_Data", HFILL }},
20963     { &hf_gsm_map_ch_allInformationSent,
20964       { "allInformationSent", "gsm_map.ch.allInformationSent",
20965         FT_NONE, BASE_NONE, NULL, 0,
20966         "gsm_map_ch.NULL", HFILL }},
20967     { &hf_gsm_map_ch_d_csi,
20968       { "d-csi", "gsm_map.ch.d_csi",
20969         FT_NONE, BASE_NONE, NULL, 0,
20970         "gsm_map_ms.D_CSI", HFILL }},
20971     { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList,
20972       { "o-BcsmCamelTDPCriteriaList", "gsm_map.ch.o_BcsmCamelTDPCriteriaList",
20973         FT_UINT32, BASE_DEC, NULL, 0,
20974         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
20975     { &hf_gsm_map_ch_mtRoamingRetry,
20976       { "mtRoamingRetry", "gsm_map.ch.mtRoamingRetry",
20977         FT_NONE, BASE_NONE, NULL, 0,
20978         "gsm_map_ch.NULL", HFILL }},
20979     { &hf_gsm_map_ch_uuIndicator,
20980       { "uuIndicator", "gsm_map.ch.uuIndicator",
20981         FT_BYTES, BASE_HEX, NULL, 0,
20982         "gsm_map_ch.UUIndicator", HFILL }},
20983     { &hf_gsm_map_ch_uui,
20984       { "uui", "gsm_map.ch.uui",
20985         FT_BYTES, BASE_HEX, NULL, 0,
20986         "gsm_map_ch.UUI", HFILL }},
20987     { &hf_gsm_map_ch_uusCFInteraction,
20988       { "uusCFInteraction", "gsm_map.ch.uusCFInteraction",
20989         FT_NONE, BASE_NONE, NULL, 0,
20990         "gsm_map_ch.NULL", HFILL }},
20991     { &hf_gsm_map_ch_supportedCamelPhases,
20992       { "supportedCamelPhases", "gsm_map.ch.supportedCamelPhases",
20993         FT_BYTES, BASE_HEX, NULL, 0,
20994         "gsm_map_ms.SupportedCamelPhases", HFILL }},
20995     { &hf_gsm_map_ch_suppress_T_CSI,
20996       { "suppress-T-CSI", "gsm_map.ch.suppress_T_CSI",
20997         FT_NONE, BASE_NONE, NULL, 0,
20998         "gsm_map_ch.NULL", HFILL }},
20999     { &hf_gsm_map_ch_offeredCamel4CSIs,
21000       { "offeredCamel4CSIs", "gsm_map.ch.offeredCamel4CSIs",
21001         FT_BYTES, BASE_HEX, NULL, 0,
21002         "gsm_map_ms.OfferedCamel4CSIs", HFILL }},
21003     { &hf_gsm_map_ch_routingInfo,
21004       { "routingInfo", "gsm_map.ch.routingInfo",
21005         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
21006         "gsm_map_ch.RoutingInfo", HFILL }},
21007     { &hf_gsm_map_ch_camelRoutingInfo,
21008       { "camelRoutingInfo", "gsm_map.ch.camelRoutingInfo",
21009         FT_NONE, BASE_NONE, NULL, 0,
21010         "gsm_map_ch.CamelRoutingInfo", HFILL }},
21011     { &hf_gsm_map_ch_gmscCamelSubscriptionInfo,
21012       { "gmscCamelSubscriptionInfo", "gsm_map.ch.gmscCamelSubscriptionInfo",
21013         FT_NONE, BASE_NONE, NULL, 0,
21014         "gsm_map_ch.GmscCamelSubscriptionInfo", HFILL }},
21015     { &hf_gsm_map_ch_t_CSI,
21016       { "t-CSI", "gsm_map.ch.t_CSI",
21017         FT_NONE, BASE_NONE, NULL, 0,
21018         "gsm_map_ms.T_CSI", HFILL }},
21019     { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList,
21020       { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ch.o_BcsmCamelTDP_CriteriaList",
21021         FT_UINT32, BASE_DEC, NULL, 0,
21022         "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }},
21023     { &hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList,
21024       { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ch.t_BCSM_CAMEL_TDP_CriteriaList",
21025         FT_UINT32, BASE_DEC, NULL, 0,
21026         "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
21027     { &hf_gsm_map_ch_ccbs_Monitoring,
21028       { "ccbs-Monitoring", "gsm_map.ch.ccbs_Monitoring",
21029         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ReportingState_vals), 0,
21030         "gsm_map_ch.ReportingState", HFILL }},
21031     { &hf_gsm_map_ch_ccbs_SubscriberStatus,
21032       { "ccbs-SubscriberStatus", "gsm_map.ch.ccbs_SubscriberStatus",
21033         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CCBS_SubscriberStatus_vals), 0,
21034         "gsm_map_ch.CCBS_SubscriberStatus", HFILL }},
21035     { &hf_gsm_map_ch_eventReportData,
21036       { "eventReportData", "gsm_map.ch.eventReportData",
21037         FT_NONE, BASE_NONE, NULL, 0,
21038         "gsm_map_ch.EventReportData", HFILL }},
21039     { &hf_gsm_map_ch_callReportdata,
21040       { "callReportdata", "gsm_map.ch.callReportdata",
21041         FT_NONE, BASE_NONE, NULL, 0,
21042         "gsm_map_ch.CallReportData", HFILL }},
21043     { &hf_gsm_map_ch_monitoringMode,
21044       { "monitoringMode", "gsm_map.ch.monitoringMode",
21045         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_MonitoringMode_vals), 0,
21046         "gsm_map_ch.MonitoringMode", HFILL }},
21047     { &hf_gsm_map_ch_callOutcome,
21048       { "callOutcome", "gsm_map.ch.callOutcome",
21049         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallOutcome_vals), 0,
21050         "gsm_map_ch.CallOutcome", HFILL }},
21051     { &hf_gsm_map_ch_callInfo,
21052       { "callInfo", "gsm_map.ch.callInfo",
21053         FT_NONE, BASE_NONE, NULL, 0,
21054         "gsm_map.ExternalSignalInfo", HFILL }},
21055     { &hf_gsm_map_ch_ccbs_Feature,
21056       { "ccbs-Feature", "gsm_map.ch.ccbs_Feature",
21057         FT_NONE, BASE_NONE, NULL, 0,
21058         "gsm_map_ss.CCBS_Feature", HFILL }},
21059     { &hf_gsm_map_ch_translatedB_Number,
21060       { "translatedB-Number", "gsm_map.ch.translatedB_Number",
21061         FT_BYTES, BASE_HEX, NULL, 0,
21062         "gsm_map.ISDN_AddressString", HFILL }},
21063     { &hf_gsm_map_ch_replaceB_Number,
21064       { "replaceB-Number", "gsm_map.ch.replaceB_Number",
21065         FT_NONE, BASE_NONE, NULL, 0,
21066         "gsm_map_ch.NULL", HFILL }},
21067     { &hf_gsm_map_ch_ruf_Outcome,
21068       { "ruf-Outcome", "gsm_map.ch.ruf_Outcome",
21069         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RUF_Outcome_vals), 0,
21070         "gsm_map_ch.RUF_Outcome", HFILL }},
21071     { &hf_gsm_map_ch_istInformationWithdraw,
21072       { "istInformationWithdraw", "gsm_map.ch.istInformationWithdraw",
21073         FT_NONE, BASE_NONE, NULL, 0,
21074         "gsm_map_ch.NULL", HFILL }},
21075     { &hf_gsm_map_ch_callTerminationIndicator,
21076       { "callTerminationIndicator", "gsm_map.ch.callTerminationIndicator",
21077         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallTerminationIndicator_vals), 0,
21078         "gsm_map_ch.CallTerminationIndicator", HFILL }},
21079     { &hf_gsm_map_ch_msrn,
21080       { "msrn", "gsm_map.ch.msrn",
21081         FT_BYTES, BASE_HEX, NULL, 0,
21082         "gsm_map.ISDN_AddressString", HFILL }},
21083     { &hf_gsm_map_ch_SuppressMTSS_suppressCUG,
21084       { "suppressCUG", "gsm_map.ch.suppressCUG",
21085         FT_BOOLEAN, 8, NULL, 0x80,
21086         "", HFILL }},
21087     { &hf_gsm_map_ch_SuppressMTSS_suppressCCBS,
21088       { "suppressCCBS", "gsm_map.ch.suppressCCBS",
21089         FT_BOOLEAN, 8, NULL, 0x40,
21090         "", HFILL }},
21091     { &hf_gsm_map_ch_AllowedServices_firstServiceAllowed,
21092       { "firstServiceAllowed", "gsm_map.ch.firstServiceAllowed",
21093         FT_BOOLEAN, 8, NULL, 0x80,
21094         "", HFILL }},
21095     { &hf_gsm_map_ch_AllowedServices_secondServiceAllowed,
21096       { "secondServiceAllowed", "gsm_map.ch.secondServiceAllowed",
21097         FT_BOOLEAN, 8, NULL, 0x40,
21098         "", HFILL }},
21099
21100 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
21101
21102     { &hf_gsm_map_lcs_mlcNumber,
21103       { "mlcNumber", "gsm_map.lcs.mlcNumber",
21104         FT_BYTES, BASE_HEX, NULL, 0,
21105         "gsm_map.ISDN_AddressString", HFILL }},
21106     { &hf_gsm_map_lcs_targetMS,
21107       { "targetMS", "gsm_map.lcs.targetMS",
21108         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
21109         "gsm_map.SubscriberIdentity", HFILL }},
21110     { &hf_gsm_map_lcs_extensionContainer,
21111       { "extensionContainer", "gsm_map.lcs.extensionContainer",
21112         FT_NONE, BASE_NONE, NULL, 0,
21113         "gsm_map.ExtensionContainer", HFILL }},
21114     { &hf_gsm_map_lcs_lcsLocationInfo,
21115       { "lcsLocationInfo", "gsm_map.lcs.lcsLocationInfo",
21116         FT_NONE, BASE_NONE, NULL, 0,
21117         "gsm_map_lcs.LCSLocationInfo", HFILL }},
21118     { &hf_gsm_map_lcs_v_gmlc_Address,
21119       { "v-gmlc-Address", "gsm_map.lcs.v_gmlc_Address",
21120         FT_BYTES, BASE_HEX, NULL, 0,
21121         "gsm_map_ms.GSN_Address", HFILL }},
21122     { &hf_gsm_map_lcs_h_gmlc_Address,
21123       { "h-gmlc-Address", "gsm_map.lcs.h_gmlc_Address",
21124         FT_BYTES, BASE_HEX, NULL, 0,
21125         "gsm_map_ms.GSN_Address", HFILL }},
21126     { &hf_gsm_map_lcs_ppr_Address,
21127       { "ppr-Address", "gsm_map.lcs.ppr_Address",
21128         FT_BYTES, BASE_HEX, NULL, 0,
21129         "gsm_map_ms.GSN_Address", HFILL }},
21130     { &hf_gsm_map_lcs_additional_v_gmlc_Address,
21131       { "additional-v-gmlc-Address", "gsm_map.lcs.additional_v_gmlc_Address",
21132         FT_BYTES, BASE_HEX, NULL, 0,
21133         "gsm_map_ms.GSN_Address", HFILL }},
21134     { &hf_gsm_map_lcs_networkNode_Number,
21135       { "networkNode-Number", "gsm_map.lcs.networkNode_Number",
21136         FT_BYTES, BASE_HEX, NULL, 0,
21137         "gsm_map.ISDN_AddressString", HFILL }},
21138     { &hf_gsm_map_lcs_lmsi,
21139       { "lmsi", "gsm_map.lcs.lmsi",
21140         FT_BYTES, BASE_HEX, NULL, 0,
21141         "gsm_map.LMSI", HFILL }},
21142     { &hf_gsm_map_lcs_gprsNodeIndicator,
21143       { "gprsNodeIndicator", "gsm_map.lcs.gprsNodeIndicator",
21144         FT_NONE, BASE_NONE, NULL, 0,
21145         "gsm_map_lcs.NULL", HFILL }},
21146     { &hf_gsm_map_lcs_additional_Number,
21147       { "additional-Number", "gsm_map.lcs.additional_Number",
21148         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
21149         "gsm_map_sm.Additional_Number", HFILL }},
21150     { &hf_gsm_map_lcs_supportedLCS_CapabilitySets,
21151       { "supportedLCS-CapabilitySets", "gsm_map.lcs.supportedLCS_CapabilitySets",
21152         FT_BYTES, BASE_HEX, NULL, 0,
21153         "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }},
21154     { &hf_gsm_map_lcs_additional_LCS_CapabilitySets,
21155       { "additional-LCS-CapabilitySets", "gsm_map.lcs.additional_LCS_CapabilitySets",
21156         FT_BYTES, BASE_HEX, NULL, 0,
21157         "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }},
21158     { &hf_gsm_map_lcs_locationType,
21159       { "locationType", "gsm_map.lcs.locationType",
21160         FT_NONE, BASE_NONE, NULL, 0,
21161         "gsm_map_lcs.LocationType", HFILL }},
21162     { &hf_gsm_map_lcs_mlc_Number,
21163       { "mlc-Number", "gsm_map.lcs.mlc_Number",
21164         FT_BYTES, BASE_HEX, NULL, 0,
21165         "gsm_map.ISDN_AddressString", HFILL }},
21166     { &hf_gsm_map_lcs_lcs_ClientID,
21167       { "lcs-ClientID", "gsm_map.lcs.lcs_ClientID",
21168         FT_NONE, BASE_NONE, NULL, 0,
21169         "gsm_map_lcs.LCS_ClientID", HFILL }},
21170     { &hf_gsm_map_lcs_privacyOverride,
21171       { "privacyOverride", "gsm_map.lcs.privacyOverride",
21172         FT_NONE, BASE_NONE, NULL, 0,
21173         "gsm_map_lcs.NULL", HFILL }},
21174     { &hf_gsm_map_lcs_imsi,
21175       { "imsi", "gsm_map.lcs.imsi",
21176         FT_BYTES, BASE_HEX, NULL, 0,
21177         "gsm_map.IMSI", HFILL }},
21178     { &hf_gsm_map_lcs_msisdn,
21179       { "msisdn", "gsm_map.lcs.msisdn",
21180         FT_BYTES, BASE_HEX, NULL, 0,
21181         "gsm_map.ISDN_AddressString", HFILL }},
21182     { &hf_gsm_map_lcs_imei,
21183       { "imei", "gsm_map.lcs.imei",
21184         FT_BYTES, BASE_HEX, NULL, 0,
21185         "gsm_map.IMEI", HFILL }},
21186     { &hf_gsm_map_lcs_lcs_Priority,
21187       { "lcs-Priority", "gsm_map.lcs.lcs_Priority",
21188         FT_BYTES, BASE_HEX, NULL, 0,
21189         "gsm_map_lcs.LCS_Priority", HFILL }},
21190     { &hf_gsm_map_lcs_lcs_QoS,
21191       { "lcs-QoS", "gsm_map.lcs.lcs_QoS",
21192         FT_NONE, BASE_NONE, NULL, 0,
21193         "gsm_map_lcs.LCS_QoS", HFILL }},
21194     { &hf_gsm_map_lcs_supportedGADShapes,
21195       { "supportedGADShapes", "gsm_map.lcs.supportedGADShapes",
21196         FT_BYTES, BASE_HEX, NULL, 0,
21197         "gsm_map_lcs.SupportedGADShapes", HFILL }},
21198     { &hf_gsm_map_lcs_lcs_ReferenceNumber,
21199       { "lcs-ReferenceNumber", "gsm_map.lcs.lcs_ReferenceNumber",
21200         FT_BYTES, BASE_HEX, NULL, 0,
21201         "gsm_map_lcs.LCS_ReferenceNumber", HFILL }},
21202     { &hf_gsm_map_lcs_lcsServiceTypeID,
21203       { "lcsServiceTypeID", "gsm_map.lcs.lcsServiceTypeID",
21204         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
21205         "gsm_map.LCSServiceTypeID", HFILL }},
21206     { &hf_gsm_map_lcs_lcsCodeword,
21207       { "lcsCodeword", "gsm_map.lcs.lcsCodeword",
21208         FT_NONE, BASE_NONE, NULL, 0,
21209         "gsm_map_lcs.LCSCodeword", HFILL }},
21210     { &hf_gsm_map_lcs_lcs_PrivacyCheck,
21211       { "lcs-PrivacyCheck", "gsm_map.lcs.lcs_PrivacyCheck",
21212         FT_NONE, BASE_NONE, NULL, 0,
21213         "gsm_map_lcs.LCS_PrivacyCheck", HFILL }},
21214     { &hf_gsm_map_lcs_areaEventInfo,
21215       { "areaEventInfo", "gsm_map.lcs.areaEventInfo",
21216         FT_NONE, BASE_NONE, NULL, 0,
21217         "gsm_map_lcs.AreaEventInfo", HFILL }},
21218     { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator,
21219       { "mo-lrShortCircuitIndicator", "gsm_map.lcs.mo_lrShortCircuitIndicator",
21220         FT_NONE, BASE_NONE, NULL, 0,
21221         "gsm_map_lcs.NULL", HFILL }},
21222     { &hf_gsm_map_lcs_periodicLDRInfo,
21223       { "periodicLDRInfo", "gsm_map.lcs.periodicLDRInfo",
21224         FT_NONE, BASE_NONE, NULL, 0,
21225         "gsm_map_lcs.PeriodicLDRInfo", HFILL }},
21226     { &hf_gsm_map_lcs_reportingPLMNList,
21227       { "reportingPLMNList", "gsm_map.lcs.reportingPLMNList",
21228         FT_NONE, BASE_NONE, NULL, 0,
21229         "gsm_map_lcs.ReportingPLMNList", HFILL }},
21230     { &hf_gsm_map_lcs_locationEstimateType,
21231       { "locationEstimateType", "gsm_map.lcs.locationEstimateType",
21232         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LocationEstimateType_vals), 0,
21233         "gsm_map_lcs.LocationEstimateType", HFILL }},
21234     { &hf_gsm_map_lcs_deferredLocationEventType,
21235       { "deferredLocationEventType", "gsm_map.lcs.deferredLocationEventType",
21236         FT_BYTES, BASE_HEX, NULL, 0,
21237         "gsm_map_lcs.DeferredLocationEventType", HFILL }},
21238     { &hf_gsm_map_lcs_lcsClientType,
21239       { "lcsClientType", "gsm_map.lcs.lcsClientType",
21240         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCSClientType_vals), 0,
21241         "gsm_map_lcs.LCSClientType", HFILL }},
21242     { &hf_gsm_map_lcs_lcsClientExternalID,
21243       { "lcsClientExternalID", "gsm_map.lcs.lcsClientExternalID",
21244         FT_NONE, BASE_NONE, NULL, 0,
21245         "gsm_map.LCSClientExternalID", HFILL }},
21246     { &hf_gsm_map_lcs_lcsClientDialedByMS,
21247       { "lcsClientDialedByMS", "gsm_map.lcs.lcsClientDialedByMS",
21248         FT_BYTES, BASE_HEX, NULL, 0,
21249         "gsm_map.AddressString", HFILL }},
21250     { &hf_gsm_map_lcs_lcsClientInternalID,
21251       { "lcsClientInternalID", "gsm_map.lcs.lcsClientInternalID",
21252         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
21253         "gsm_map.LCSClientInternalID", HFILL }},
21254     { &hf_gsm_map_lcs_lcsClientName,
21255       { "lcsClientName", "gsm_map.lcs.lcsClientName",
21256         FT_NONE, BASE_NONE, NULL, 0,
21257         "gsm_map_lcs.LCSClientName", HFILL }},
21258     { &hf_gsm_map_lcs_lcsAPN,
21259       { "lcsAPN", "gsm_map.lcs.lcsAPN",
21260         FT_BYTES, BASE_HEX, NULL, 0,
21261         "gsm_map_ms.APN", HFILL }},
21262     { &hf_gsm_map_lcs_lcsRequestorID,
21263       { "lcsRequestorID", "gsm_map.lcs.lcsRequestorID",
21264         FT_NONE, BASE_NONE, NULL, 0,
21265         "gsm_map_lcs.LCSRequestorID", HFILL }},
21266     { &hf_gsm_map_lcs_dataCodingScheme,
21267       { "dataCodingScheme", "gsm_map.lcs.dataCodingScheme",
21268         FT_BYTES, BASE_HEX, NULL, 0,
21269         "gsm_map_ss.USSD_DataCodingScheme", HFILL }},
21270     { &hf_gsm_map_lcs_nameString,
21271       { "nameString", "gsm_map.lcs.nameString",
21272         FT_BYTES, BASE_HEX, NULL, 0,
21273         "gsm_map_lcs.NameString", HFILL }},
21274     { &hf_gsm_map_lcs_lcs_FormatIndicator,
21275       { "lcs-FormatIndicator", "gsm_map.lcs.lcs_FormatIndicator",
21276         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_FormatIndicator_vals), 0,
21277         "gsm_map_lcs.LCS_FormatIndicator", HFILL }},
21278     { &hf_gsm_map_lcs_requestorIDString,
21279       { "requestorIDString", "gsm_map.lcs.requestorIDString",
21280         FT_BYTES, BASE_HEX, NULL, 0,
21281         "gsm_map_lcs.RequestorIDString", HFILL }},
21282     { &hf_gsm_map_lcs_horizontal_accuracy,
21283       { "horizontal-accuracy", "gsm_map.lcs.horizontal_accuracy",
21284         FT_BYTES, BASE_HEX, NULL, 0,
21285         "gsm_map_lcs.Horizontal_Accuracy", HFILL }},
21286     { &hf_gsm_map_lcs_verticalCoordinateRequest,
21287       { "verticalCoordinateRequest", "gsm_map.lcs.verticalCoordinateRequest",
21288         FT_NONE, BASE_NONE, NULL, 0,
21289         "gsm_map_lcs.NULL", HFILL }},
21290     { &hf_gsm_map_lcs_vertical_accuracy,
21291       { "vertical-accuracy", "gsm_map.lcs.vertical_accuracy",
21292         FT_BYTES, BASE_HEX, NULL, 0,
21293         "gsm_map_lcs.Vertical_Accuracy", HFILL }},
21294     { &hf_gsm_map_lcs_responseTime,
21295       { "responseTime", "gsm_map.lcs.responseTime",
21296         FT_NONE, BASE_NONE, NULL, 0,
21297         "gsm_map_lcs.ResponseTime", HFILL }},
21298     { &hf_gsm_map_lcs_velocityRequest,
21299       { "velocityRequest", "gsm_map.lcs.velocityRequest",
21300         FT_NONE, BASE_NONE, NULL, 0,
21301         "gsm_map_lcs.NULL", HFILL }},
21302     { &hf_gsm_map_lcs_responseTimeCategory,
21303       { "responseTimeCategory", "gsm_map.lcs.responseTimeCategory",
21304         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_ResponseTimeCategory_vals), 0,
21305         "gsm_map_lcs.ResponseTimeCategory", HFILL }},
21306     { &hf_gsm_map_lcs_lcsCodewordString,
21307       { "lcsCodewordString", "gsm_map.lcs.lcsCodewordString",
21308         FT_BYTES, BASE_HEX, NULL, 0,
21309         "gsm_map_lcs.LCSCodewordString", HFILL }},
21310     { &hf_gsm_map_lcs_callSessionUnrelated,
21311       { "callSessionUnrelated", "gsm_map.lcs.callSessionUnrelated",
21312         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
21313         "gsm_map_lcs.PrivacyCheckRelatedAction", HFILL }},
21314     { &hf_gsm_map_lcs_callSessionRelated,
21315       { "callSessionRelated", "gsm_map.lcs.callSessionRelated",
21316         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
21317         "gsm_map_lcs.PrivacyCheckRelatedAction", HFILL }},
21318     { &hf_gsm_map_lcs_areaDefinition,
21319       { "areaDefinition", "gsm_map.lcs.areaDefinition",
21320         FT_NONE, BASE_NONE, NULL, 0,
21321         "gsm_map_lcs.AreaDefinition", HFILL }},
21322     { &hf_gsm_map_lcs_occurrenceInfo,
21323       { "occurrenceInfo", "gsm_map.lcs.occurrenceInfo",
21324         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_OccurrenceInfo_vals), 0,
21325         "gsm_map_lcs.OccurrenceInfo", HFILL }},
21326     { &hf_gsm_map_lcs_intervalTime,
21327       { "intervalTime", "gsm_map.lcs.intervalTime",
21328         FT_UINT32, BASE_DEC, NULL, 0,
21329         "gsm_map_lcs.IntervalTime", HFILL }},
21330     { &hf_gsm_map_lcs_areaList,
21331       { "areaList", "gsm_map.lcs.areaList",
21332         FT_UINT32, BASE_DEC, NULL, 0,
21333         "gsm_map_lcs.AreaList", HFILL }},
21334     { &hf_gsm_map_lcs_AreaList_item,
21335       { "AreaList", "gsm_map.lcs.AreaList_item",
21336         FT_NONE, BASE_NONE, NULL, 0,
21337         "gsm_map_lcs.Area", HFILL }},
21338     { &hf_gsm_map_lcs_areaType,
21339       { "areaType", "gsm_map.lcs.areaType",
21340         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AreaType_vals), 0,
21341         "gsm_map_lcs.AreaType", HFILL }},
21342     { &hf_gsm_map_lcs_areaIdentification,
21343       { "areaIdentification", "gsm_map.lcs.areaIdentification",
21344         FT_BYTES, BASE_HEX, NULL, 0,
21345         "gsm_map_lcs.AreaIdentification", HFILL }},
21346     { &hf_gsm_map_lcs_reportingAmount,
21347       { "reportingAmount", "gsm_map.lcs.reportingAmount",
21348         FT_UINT32, BASE_DEC, NULL, 0,
21349         "gsm_map_lcs.ReportingAmount", HFILL }},
21350     { &hf_gsm_map_lcs_reportingInterval,
21351       { "reportingInterval", "gsm_map.lcs.reportingInterval",
21352         FT_UINT32, BASE_DEC, NULL, 0,
21353         "gsm_map_lcs.ReportingInterval", HFILL }},
21354     { &hf_gsm_map_lcs_plmn_ListPrioritized,
21355       { "plmn-ListPrioritized", "gsm_map.lcs.plmn_ListPrioritized",
21356         FT_NONE, BASE_NONE, NULL, 0,
21357         "gsm_map_lcs.NULL", HFILL }},
21358     { &hf_gsm_map_lcs_plmn_List,
21359       { "plmn-List", "gsm_map.lcs.plmn_List",
21360         FT_UINT32, BASE_DEC, NULL, 0,
21361         "gsm_map_lcs.PLMNList", HFILL }},
21362     { &hf_gsm_map_lcs_PLMNList_item,
21363       { "PLMNList", "gsm_map.lcs.PLMNList_item",
21364         FT_NONE, BASE_NONE, NULL, 0,
21365         "gsm_map_lcs.ReportingPLMN", HFILL }},
21366     { &hf_gsm_map_lcs_plmn_Id,
21367       { "plmn-Id", "gsm_map.lcs.plmn_Id",
21368         FT_BYTES, BASE_HEX, NULL, 0,
21369         "gsm_map.PLMN_Id", HFILL }},
21370     { &hf_gsm_map_lcs_ran_Technology,
21371       { "ran-Technology", "gsm_map.lcs.ran_Technology",
21372         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_RAN_Technology_vals), 0,
21373         "gsm_map_lcs.RAN_Technology", HFILL }},
21374     { &hf_gsm_map_lcs_ran_PeriodicLocationSupport,
21375       { "ran-PeriodicLocationSupport", "gsm_map.lcs.ran_PeriodicLocationSupport",
21376         FT_NONE, BASE_NONE, NULL, 0,
21377         "gsm_map_lcs.NULL", HFILL }},
21378     { &hf_gsm_map_lcs_locationEstimate,
21379       { "locationEstimate", "gsm_map.lcs.locationEstimate",
21380         FT_BYTES, BASE_HEX, NULL, 0,
21381         "gsm_map_lcs.Ext_GeographicalInformation", HFILL }},
21382     { &hf_gsm_map_lcs_ageOfLocationEstimate,
21383       { "ageOfLocationEstimate", "gsm_map.lcs.ageOfLocationEstimate",
21384         FT_UINT32, BASE_DEC, NULL, 0,
21385         "gsm_map.AgeOfLocationInformation", HFILL }},
21386     { &hf_gsm_map_lcs_add_LocationEstimate,
21387       { "add-LocationEstimate", "gsm_map.lcs.add_LocationEstimate",
21388         FT_BYTES, BASE_HEX, NULL, 0,
21389         "gsm_map_lcs.Add_GeographicalInformation", HFILL }},
21390     { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator,
21391       { "deferredmt-lrResponseIndicator", "gsm_map.lcs.deferredmt_lrResponseIndicator",
21392         FT_NONE, BASE_NONE, NULL, 0,
21393         "gsm_map_lcs.NULL", HFILL }},
21394     { &hf_gsm_map_lcs_geranPositioningData,
21395       { "geranPositioningData", "gsm_map.lcs.geranPositioningData",
21396         FT_BYTES, BASE_HEX, NULL, 0,
21397         "gsm_map_lcs.PositioningDataInformation", HFILL }},
21398     { &hf_gsm_map_lcs_utranPositioningData,
21399       { "utranPositioningData", "gsm_map.lcs.utranPositioningData",
21400         FT_BYTES, BASE_HEX, NULL, 0,
21401         "gsm_map_lcs.UtranPositioningDataInfo", HFILL }},
21402     { &hf_gsm_map_lcs_cellIdOrSai,
21403       { "cellIdOrSai", "gsm_map.lcs.cellIdOrSai",
21404         FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
21405         "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
21406     { &hf_gsm_map_lcs_sai_Present,
21407       { "sai-Present", "gsm_map.lcs.sai_Present",
21408         FT_NONE, BASE_NONE, NULL, 0,
21409         "gsm_map_lcs.NULL", HFILL }},
21410     { &hf_gsm_map_lcs_accuracyFulfilmentIndicator,
21411       { "accuracyFulfilmentIndicator", "gsm_map.lcs.accuracyFulfilmentIndicator",
21412         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AccuracyFulfilmentIndicator_vals), 0,
21413         "gsm_map_lcs.AccuracyFulfilmentIndicator", HFILL }},
21414     { &hf_gsm_map_lcs_velocityEstimate,
21415       { "velocityEstimate", "gsm_map.lcs.velocityEstimate",
21416         FT_BYTES, BASE_HEX, NULL, 0,
21417         "gsm_map_lcs.VelocityEstimate", HFILL }},
21418     { &hf_gsm_map_lcs_lcs_Event,
21419       { "lcs-Event", "gsm_map.lcs.lcs_Event",
21420         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_Event_vals), 0,
21421         "gsm_map_lcs.LCS_Event", HFILL }},
21422     { &hf_gsm_map_lcs_na_ESRD,
21423       { "na-ESRD", "gsm_map.lcs.na_ESRD",
21424         FT_BYTES, BASE_HEX, NULL, 0,
21425         "gsm_map.ISDN_AddressString", HFILL }},
21426     { &hf_gsm_map_lcs_na_ESRK,
21427       { "na-ESRK", "gsm_map.lcs.na_ESRK",
21428         FT_BYTES, BASE_HEX, NULL, 0,
21429         "gsm_map.ISDN_AddressString", HFILL }},
21430     { &hf_gsm_map_lcs_slr_ArgExtensionContainer,
21431       { "slr-ArgExtensionContainer", "gsm_map.lcs.slr_ArgExtensionContainer",
21432         FT_NONE, BASE_NONE, NULL, 0,
21433         "gsm_map.SLR_ArgExtensionContainer", HFILL }},
21434     { &hf_gsm_map_lcs_deferredmt_lrData,
21435       { "deferredmt-lrData", "gsm_map.lcs.deferredmt_lrData",
21436         FT_NONE, BASE_NONE, NULL, 0,
21437         "gsm_map_lcs.Deferredmt_lrData", HFILL }},
21438     { &hf_gsm_map_lcs_pseudonymIndicator,
21439       { "pseudonymIndicator", "gsm_map.lcs.pseudonymIndicator",
21440         FT_NONE, BASE_NONE, NULL, 0,
21441         "gsm_map_lcs.NULL", HFILL }},
21442     { &hf_gsm_map_lcs_sequenceNumber,
21443       { "sequenceNumber", "gsm_map.lcs.sequenceNumber",
21444         FT_UINT32, BASE_DEC, NULL, 0,
21445         "gsm_map_lcs.SequenceNumber", HFILL }},
21446     { &hf_gsm_map_lcs_terminationCause,
21447       { "terminationCause", "gsm_map.lcs.terminationCause",
21448         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_TerminationCause_vals), 0,
21449         "gsm_map_lcs.TerminationCause", HFILL }},
21450     { &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable,
21451       { "msAvailable", "gsm_map.lcs.msAvailable",
21452         FT_BOOLEAN, 8, NULL, 0x80,
21453         "", HFILL }},
21454     { &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea,
21455       { "enteringIntoArea", "gsm_map.lcs.enteringIntoArea",
21456         FT_BOOLEAN, 8, NULL, 0x40,
21457         "", HFILL }},
21458     { &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea,
21459       { "leavingFromArea", "gsm_map.lcs.leavingFromArea",
21460         FT_BOOLEAN, 8, NULL, 0x20,
21461         "", HFILL }},
21462     { &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea,
21463       { "beingInsideArea", "gsm_map.lcs.beingInsideArea",
21464         FT_BOOLEAN, 8, NULL, 0x10,
21465         "", HFILL }},
21466     { &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR,
21467       { "periodicLDR", "gsm_map.lcs.periodicLDR",
21468         FT_BOOLEAN, 8, NULL, 0x08,
21469         "", HFILL }},
21470     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint,
21471       { "ellipsoidPoint", "gsm_map.lcs.ellipsoidPoint",
21472         FT_BOOLEAN, 8, NULL, 0x80,
21473         "", HFILL }},
21474     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle,
21475       { "ellipsoidPointWithUncertaintyCircle", "gsm_map.lcs.ellipsoidPointWithUncertaintyCircle",
21476         FT_BOOLEAN, 8, NULL, 0x40,
21477         "", HFILL }},
21478     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse,
21479       { "ellipsoidPointWithUncertaintyEllipse", "gsm_map.lcs.ellipsoidPointWithUncertaintyEllipse",
21480         FT_BOOLEAN, 8, NULL, 0x20,
21481         "", HFILL }},
21482     { &hf_gsm_map_lcs_SupportedGADShapes_polygon,
21483       { "polygon", "gsm_map.lcs.polygon",
21484         FT_BOOLEAN, 8, NULL, 0x10,
21485         "", HFILL }},
21486     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude,
21487       { "ellipsoidPointWithAltitude", "gsm_map.lcs.ellipsoidPointWithAltitude",
21488         FT_BOOLEAN, 8, NULL, 0x08,
21489         "", HFILL }},
21490     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid,
21491       { "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", "gsm_map.lcs.ellipsoidPointWithAltitudeAndUncertaintyElipsoid",
21492         FT_BOOLEAN, 8, NULL, 0x04,
21493         "", HFILL }},
21494     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc,
21495       { "ellipsoidArc", "gsm_map.lcs.ellipsoidArc",
21496         FT_BOOLEAN, 8, NULL, 0x02,
21497         "", HFILL }},
21498
21499 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
21500
21501     { &hf_gsm_map_gr_teleservice,
21502       { "teleservice", "gsm_map.gr.teleservice",
21503         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
21504         "gsm_map.Ext_TeleserviceCode", HFILL }},
21505     { &hf_gsm_map_gr_asciCallReference,
21506       { "asciCallReference", "gsm_map.gr.asciCallReference",
21507         FT_BYTES, BASE_HEX, NULL, 0,
21508         "gsm_map.ASCI_CallReference", HFILL }},
21509     { &hf_gsm_map_gr_codec_Info,
21510       { "codec-Info", "gsm_map.gr.codec_Info",
21511         FT_BYTES, BASE_HEX, NULL, 0,
21512         "gsm_map_gr.CODEC_Info", HFILL }},
21513     { &hf_gsm_map_gr_cipheringAlgorithm,
21514       { "cipheringAlgorithm", "gsm_map.gr.cipheringAlgorithm",
21515         FT_BYTES, BASE_HEX, NULL, 0,
21516         "gsm_map_gr.CipheringAlgorithm", HFILL }},
21517     { &hf_gsm_map_gr_groupKeyNumber_Vk_Id,
21518       { "groupKeyNumber-Vk-Id", "gsm_map.gr.groupKeyNumber_Vk_Id",
21519         FT_UINT32, BASE_DEC, NULL, 0,
21520         "gsm_map_gr.GroupKeyNumber", HFILL }},
21521     { &hf_gsm_map_gr_groupKey,
21522       { "groupKey", "gsm_map.gr.groupKey",
21523         FT_BYTES, BASE_HEX, NULL, 0,
21524         "gsm_map_ms.Kc", HFILL }},
21525     { &hf_gsm_map_gr_priority,
21526       { "priority", "gsm_map.gr.priority",
21527         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
21528         "gsm_map.EMLPP_Priority", HFILL }},
21529     { &hf_gsm_map_gr_uplinkFree,
21530       { "uplinkFree", "gsm_map.gr.uplinkFree",
21531         FT_NONE, BASE_NONE, NULL, 0,
21532         "gsm_map_gr.NULL", HFILL }},
21533     { &hf_gsm_map_gr_extensionContainer,
21534       { "extensionContainer", "gsm_map.gr.extensionContainer",
21535         FT_NONE, BASE_NONE, NULL, 0,
21536         "gsm_map.ExtensionContainer", HFILL }},
21537     { &hf_gsm_map_gr_vstk,
21538       { "vstk", "gsm_map.gr.vstk",
21539         FT_BYTES, BASE_HEX, NULL, 0,
21540         "gsm_map_gr.VSTK", HFILL }},
21541     { &hf_gsm_map_gr_vstk_rand,
21542       { "vstk-rand", "gsm_map.gr.vstk_rand",
21543         FT_BYTES, BASE_HEX, NULL, 0,
21544         "gsm_map_gr.VSTK_RAND", HFILL }},
21545     { &hf_gsm_map_gr_talkerChannelParameter,
21546       { "talkerChannelParameter", "gsm_map.gr.talkerChannelParameter",
21547         FT_NONE, BASE_NONE, NULL, 0,
21548         "gsm_map_gr.NULL", HFILL }},
21549     { &hf_gsm_map_gr_groupCallNumber,
21550       { "groupCallNumber", "gsm_map.gr.groupCallNumber",
21551         FT_BYTES, BASE_HEX, NULL, 0,
21552         "gsm_map.ISDN_AddressString", HFILL }},
21553     { &hf_gsm_map_gr_imsi,
21554       { "imsi", "gsm_map.gr.imsi",
21555         FT_BYTES, BASE_HEX, NULL, 0,
21556         "gsm_map.IMSI", HFILL }},
21557     { &hf_gsm_map_gr_talkerPriority,
21558       { "talkerPriority", "gsm_map.gr.talkerPriority",
21559         FT_UINT32, BASE_DEC, VALS(gsm_map_gr_TalkerPriority_vals), 0,
21560         "gsm_map_gr.TalkerPriority", HFILL }},
21561     { &hf_gsm_map_gr_additionalInfo,
21562       { "additionalInfo", "gsm_map.gr.additionalInfo",
21563         FT_BYTES, BASE_HEX, NULL, 0,
21564         "gsm_map_ms.AdditionalInfo", HFILL }},
21565     { &hf_gsm_map_gr_uplinkRequestAck,
21566       { "uplinkRequestAck", "gsm_map.gr.uplinkRequestAck",
21567         FT_NONE, BASE_NONE, NULL, 0,
21568         "gsm_map_gr.NULL", HFILL }},
21569     { &hf_gsm_map_gr_uplinkReleaseIndication,
21570       { "uplinkReleaseIndication", "gsm_map.gr.uplinkReleaseIndication",
21571         FT_NONE, BASE_NONE, NULL, 0,
21572         "gsm_map_gr.NULL", HFILL }},
21573     { &hf_gsm_map_gr_uplinkRejectCommand,
21574       { "uplinkRejectCommand", "gsm_map.gr.uplinkRejectCommand",
21575         FT_NONE, BASE_NONE, NULL, 0,
21576         "gsm_map_gr.NULL", HFILL }},
21577     { &hf_gsm_map_gr_uplinkSeizedCommand,
21578       { "uplinkSeizedCommand", "gsm_map.gr.uplinkSeizedCommand",
21579         FT_NONE, BASE_NONE, NULL, 0,
21580         "gsm_map_gr.NULL", HFILL }},
21581     { &hf_gsm_map_gr_uplinkReleaseCommand,
21582       { "uplinkReleaseCommand", "gsm_map.gr.uplinkReleaseCommand",
21583         FT_NONE, BASE_NONE, NULL, 0,
21584         "gsm_map_gr.NULL", HFILL }},
21585     { &hf_gsm_map_gr_stateAttributes,
21586       { "stateAttributes", "gsm_map.gr.stateAttributes",
21587         FT_NONE, BASE_NONE, NULL, 0,
21588         "gsm_map_gr.StateAttributes", HFILL }},
21589     { &hf_gsm_map_gr_emergencyModeResetCommandFlag,
21590       { "emergencyModeResetCommandFlag", "gsm_map.gr.emergencyModeResetCommandFlag",
21591         FT_NONE, BASE_NONE, NULL, 0,
21592         "gsm_map_gr.NULL", HFILL }},
21593     { &hf_gsm_map_gr_sm_RP_UI,
21594       { "sm-RP-UI", "gsm_map.gr.sm_RP_UI",
21595         FT_BYTES, BASE_HEX, NULL, 0,
21596         "gsm_map.SignalInfo", HFILL }},
21597     { &hf_gsm_map_gr_an_APDU,
21598       { "an-APDU", "gsm_map.gr.an_APDU",
21599         FT_NONE, BASE_NONE, NULL, 0,
21600         "gsm_map.AccessNetworkSignalInfo", HFILL }},
21601     { &hf_gsm_map_gr_uplinkRequest,
21602       { "uplinkRequest", "gsm_map.gr.uplinkRequest",
21603         FT_NONE, BASE_NONE, NULL, 0,
21604         "gsm_map_gr.NULL", HFILL }},
21605     { &hf_gsm_map_gr_releaseGroupCall,
21606       { "releaseGroupCall", "gsm_map.gr.releaseGroupCall",
21607         FT_NONE, BASE_NONE, NULL, 0,
21608         "gsm_map_gr.NULL", HFILL }},
21609     { &hf_gsm_map_gr_downlinkAttached,
21610       { "downlinkAttached", "gsm_map.gr.downlinkAttached",
21611         FT_NONE, BASE_NONE, NULL, 0,
21612         "gsm_map_gr.NULL", HFILL }},
21613     { &hf_gsm_map_gr_uplinkAttached,
21614       { "uplinkAttached", "gsm_map.gr.uplinkAttached",
21615         FT_NONE, BASE_NONE, NULL, 0,
21616         "gsm_map_gr.NULL", HFILL }},
21617     { &hf_gsm_map_gr_dualCommunication,
21618       { "dualCommunication", "gsm_map.gr.dualCommunication",
21619         FT_NONE, BASE_NONE, NULL, 0,
21620         "gsm_map_gr.NULL", HFILL }},
21621     { &hf_gsm_map_gr_callOriginator,
21622       { "callOriginator", "gsm_map.gr.callOriginator",
21623         FT_NONE, BASE_NONE, NULL, 0,
21624         "gsm_map_gr.NULL", HFILL }},
21625     { &hf_gsm_map_gr_requestedInfo,
21626       { "requestedInfo", "gsm_map.gr.requestedInfo",
21627         FT_UINT32, BASE_DEC, VALS(gsm_map_gr_RequestedInfo_vals), 0,
21628         "gsm_map_gr.RequestedInfo", HFILL }},
21629     { &hf_gsm_map_gr_groupId,
21630       { "groupId", "gsm_map.gr.groupId",
21631         FT_BYTES, BASE_HEX, NULL, 0,
21632         "gsm_map_ms.Long_GroupId", HFILL }},
21633     { &hf_gsm_map_gr_cellId,
21634       { "cellId", "gsm_map.gr.cellId",
21635         FT_BYTES, BASE_HEX, NULL, 0,
21636         "gsm_map.GlobalCellId", HFILL }},
21637     { &hf_gsm_map_gr_tmsi,
21638       { "tmsi", "gsm_map.gr.tmsi",
21639         FT_BYTES, BASE_HEX, NULL, 0,
21640         "gsm_map.TMSI", HFILL }},
21641     { &hf_gsm_map_gr_cksn,
21642       { "cksn", "gsm_map.gr.cksn",
21643         FT_BYTES, BASE_HEX, NULL, 0,
21644         "gsm_map_ms.Cksn", HFILL }},
21645     { &hf_gsm_map_gr_anchorMSC_Address,
21646       { "anchorMSC-Address", "gsm_map.gr.anchorMSC_Address",
21647         FT_BYTES, BASE_HEX, NULL, 0,
21648         "gsm_map.ISDN_AddressString", HFILL }},
21649     { &hf_gsm_map_gr_additionalSubscriptions,
21650       { "additionalSubscriptions", "gsm_map.gr.additionalSubscriptions",
21651         FT_BYTES, BASE_HEX, NULL, 0,
21652         "gsm_map_ms.AdditionalSubscriptions", HFILL }},
21653     { &hf_gsm_map_gr_kc,
21654       { "kc", "gsm_map.gr.kc",
21655         FT_BYTES, BASE_HEX, NULL, 0,
21656         "gsm_map_ms.Kc", HFILL }},
21657
21658 /* --- Module MAP-DialogueInformation --- --- ---                             */
21659
21660     { &hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU,
21661       { "MAP-DialoguePDU", "gsm_map.dialogue.MAP_DialoguePDU",
21662         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_DialoguePDU_vals), 0,
21663         "gsm_map_dialogue.MAP_DialoguePDU", HFILL }},
21664     { &hf_gsm_map_dialogue_map_open,
21665       { "map-open", "gsm_map.dialogue.map_open",
21666         FT_NONE, BASE_NONE, NULL, 0,
21667         "gsm_map_dialogue.MAP_OpenInfo", HFILL }},
21668     { &hf_gsm_map_dialogue_map_accept,
21669       { "map-accept", "gsm_map.dialogue.map_accept",
21670         FT_NONE, BASE_NONE, NULL, 0,
21671         "gsm_map_dialogue.MAP_AcceptInfo", HFILL }},
21672     { &hf_gsm_map_dialogue_map_close,
21673       { "map-close", "gsm_map.dialogue.map_close",
21674         FT_NONE, BASE_NONE, NULL, 0,
21675         "gsm_map_dialogue.MAP_CloseInfo", HFILL }},
21676     { &hf_gsm_map_dialogue_map_refuse,
21677       { "map-refuse", "gsm_map.dialogue.map_refuse",
21678         FT_NONE, BASE_NONE, NULL, 0,
21679         "gsm_map_dialogue.MAP_RefuseInfo", HFILL }},
21680     { &hf_gsm_map_dialogue_map_userAbort,
21681       { "map-userAbort", "gsm_map.dialogue.map_userAbort",
21682         FT_NONE, BASE_NONE, NULL, 0,
21683         "gsm_map_dialogue.MAP_UserAbortInfo", HFILL }},
21684     { &hf_gsm_map_dialogue_map_providerAbort,
21685       { "map-providerAbort", "gsm_map.dialogue.map_providerAbort",
21686         FT_NONE, BASE_NONE, NULL, 0,
21687         "gsm_map_dialogue.MAP_ProviderAbortInfo", HFILL }},
21688     { &hf_gsm_map_dialogue_destinationReference,
21689       { "destinationReference", "gsm_map.dialogue.destinationReference",
21690         FT_BYTES, BASE_HEX, NULL, 0,
21691         "gsm_map.AddressString", HFILL }},
21692     { &hf_gsm_map_dialogue_originationReference,
21693       { "originationReference", "gsm_map.dialogue.originationReference",
21694         FT_BYTES, BASE_HEX, NULL, 0,
21695         "gsm_map.AddressString", HFILL }},
21696     { &hf_gsm_map_dialogue_extensionContainer,
21697       { "extensionContainer", "gsm_map.dialogue.extensionContainer",
21698         FT_NONE, BASE_NONE, NULL, 0,
21699         "gsm_map.ExtensionContainer", HFILL }},
21700     { &hf_gsm_map_dialogue_reason,
21701       { "reason", "gsm_map.dialogue.reason",
21702         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_Reason_vals), 0,
21703         "gsm_map_dialogue.Reason", HFILL }},
21704     { &hf_gsm_map_dialogue_alternativeApplicationContext,
21705       { "alternativeApplicationContext", "gsm_map.dialogue.alternativeApplicationContext",
21706         FT_OID, BASE_NONE, NULL, 0,
21707         "gsm_map_dialogue.OBJECT_IDENTIFIER", HFILL }},
21708     { &hf_gsm_map_dialogue_map_UserAbortChoice,
21709       { "map-UserAbortChoice", "gsm_map.dialogue.map_UserAbortChoice",
21710         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_UserAbortChoice_vals), 0,
21711         "gsm_map_dialogue.MAP_UserAbortChoice", HFILL }},
21712     { &hf_gsm_map_dialogue_userSpecificReason,
21713       { "userSpecificReason", "gsm_map.dialogue.userSpecificReason",
21714         FT_NONE, BASE_NONE, NULL, 0,
21715         "gsm_map_dialogue.NULL", HFILL }},
21716     { &hf_gsm_map_dialogue_userResourceLimitation,
21717       { "userResourceLimitation", "gsm_map.dialogue.userResourceLimitation",
21718         FT_NONE, BASE_NONE, NULL, 0,
21719         "gsm_map_dialogue.NULL", HFILL }},
21720     { &hf_gsm_map_dialogue_resourceUnavailable,
21721       { "resourceUnavailable", "gsm_map.dialogue.resourceUnavailable",
21722         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ResourceUnavailableReason_vals), 0,
21723         "gsm_map_dialogue.ResourceUnavailableReason", HFILL }},
21724     { &hf_gsm_map_dialogue_applicationProcedureCancellation,
21725       { "applicationProcedureCancellation", "gsm_map.dialogue.applicationProcedureCancellation",
21726         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ProcedureCancellationReason_vals), 0,
21727         "gsm_map_dialogue.ProcedureCancellationReason", HFILL }},
21728     { &hf_gsm_map_dialogue_map_ProviderAbortReason,
21729       { "map-ProviderAbortReason", "gsm_map.dialogue.map_ProviderAbortReason",
21730         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_ProviderAbortReason_vals), 0,
21731         "gsm_map_dialogue.MAP_ProviderAbortReason", HFILL }},
21732
21733 /* --- Module DummyMAP --- --- ---                                            */
21734
21735     { &hf_gsm_old_invoke,
21736       { "invoke", "gsm_old.invoke",
21737         FT_NONE, BASE_NONE, NULL, 0,
21738         "gsm_old.Invoke", HFILL }},
21739     { &hf_gsm_old_returnResultLast,
21740       { "returnResultLast", "gsm_old.returnResultLast",
21741         FT_NONE, BASE_NONE, NULL, 0,
21742         "gsm_old.ReturnResult", HFILL }},
21743     { &hf_gsm_old_returnError,
21744       { "returnError", "gsm_old.returnError",
21745         FT_NONE, BASE_NONE, NULL, 0,
21746         "gsm_old.ReturnError", HFILL }},
21747     { &hf_gsm_old_reject,
21748       { "reject", "gsm_old.reject",
21749         FT_NONE, BASE_NONE, NULL, 0,
21750         "gsm_old.Reject", HFILL }},
21751     { &hf_gsm_old_returnResultNotLast,
21752       { "returnResultNotLast", "gsm_old.returnResultNotLast",
21753         FT_NONE, BASE_NONE, NULL, 0,
21754         "gsm_old.ReturnResult", HFILL }},
21755     { &hf_gsm_old_invokeID,
21756       { "invokeID", "gsm_old.invokeID",
21757         FT_INT32, BASE_DEC, NULL, 0,
21758         "gsm_old.InvokeIdType", HFILL }},
21759     { &hf_gsm_old_linkedID,
21760       { "linkedID", "gsm_old.linkedID",
21761         FT_INT32, BASE_DEC, NULL, 0,
21762         "gsm_old.InvokeIdType", HFILL }},
21763     { &hf_gsm_old_opCode,
21764       { "opCode", "gsm_old.opCode",
21765         FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_OPERATION_vals), 0,
21766         "gsm_old.MAP_OPERATION", HFILL }},
21767     { &hf_gsm_old_invokeparameter,
21768       { "invokeparameter", "gsm_old.invokeparameter",
21769         FT_NONE, BASE_NONE, NULL, 0,
21770         "gsm_old.InvokeParameter", HFILL }},
21771     { &hf_gsm_old_resultretres,
21772       { "resultretres", "gsm_old.resultretres",
21773         FT_NONE, BASE_NONE, NULL, 0,
21774         "gsm_old.T_resultretres", HFILL }},
21775     { &hf_gsm_old_returnparameter,
21776       { "returnparameter", "gsm_old.returnparameter",
21777         FT_NONE, BASE_NONE, NULL, 0,
21778         "gsm_old.ReturnResultParameter", HFILL }},
21779     { &hf_gsm_old_errorCode,
21780       { "errorCode", "gsm_old.errorCode",
21781         FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_ERROR_vals), 0,
21782         "gsm_old.MAP_ERROR", HFILL }},
21783     { &hf_gsm_old_parameter,
21784       { "parameter", "gsm_old.parameter",
21785         FT_NONE, BASE_NONE, NULL, 0,
21786         "gsm_old.ReturnErrorParameter", HFILL }},
21787     { &hf_gsm_old_invokeIDRej,
21788       { "invokeIDRej", "gsm_old.invokeIDRej",
21789         FT_UINT32, BASE_DEC, VALS(gsm_old_T_invokeIDRej_vals), 0,
21790         "gsm_old.T_invokeIDRej", HFILL }},
21791     { &hf_gsm_old_derivable,
21792       { "derivable", "gsm_old.derivable",
21793         FT_INT32, BASE_DEC, NULL, 0,
21794         "gsm_old.InvokeIdType", HFILL }},
21795     { &hf_gsm_old_not_derivable,
21796       { "not-derivable", "gsm_old.not_derivable",
21797         FT_NONE, BASE_NONE, NULL, 0,
21798         "gsm_old.NULL", HFILL }},
21799     { &hf_gsm_old_problem,
21800       { "problem", "gsm_old.problem",
21801         FT_UINT32, BASE_DEC, VALS(gsm_old_T_problem_vals), 0,
21802         "gsm_old.T_problem", HFILL }},
21803     { &hf_gsm_old_generalProblem,
21804       { "generalProblem", "gsm_old.generalProblem",
21805         FT_INT32, BASE_DEC, VALS(gsm_old_GeneralProblem_vals), 0,
21806         "gsm_old.GeneralProblem", HFILL }},
21807     { &hf_gsm_old_invokeProblem,
21808       { "invokeProblem", "gsm_old.invokeProblem",
21809         FT_INT32, BASE_DEC, VALS(gsm_old_InvokeProblem_vals), 0,
21810         "gsm_old.InvokeProblem", HFILL }},
21811     { &hf_gsm_old_returnResultProblem,
21812       { "returnResultProblem", "gsm_old.returnResultProblem",
21813         FT_INT32, BASE_DEC, VALS(gsm_old_ReturnResultProblem_vals), 0,
21814         "gsm_old.ReturnResultProblem", HFILL }},
21815     { &hf_gsm_old_returnErrorProblem,
21816       { "returnErrorProblem", "gsm_old.returnErrorProblem",
21817         FT_INT32, BASE_DEC, VALS(gsm_old_ReturnErrorProblem_vals), 0,
21818         "gsm_old.ReturnErrorProblem", HFILL }},
21819     { &hf_gsm_old_localValue,
21820       { "localValue", "gsm_old.localValue",
21821         FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPOperationLocalvalue_vals), 0,
21822         "gsm_old.OperationLocalvalue", HFILL }},
21823     { &hf_gsm_old_globalValue,
21824       { "globalValue", "gsm_old.globalValue",
21825         FT_OID, BASE_NONE, NULL, 0,
21826         "gsm_old.OBJECT_IDENTIFIER", HFILL }},
21827     { &hf_gsm_old_localValue_01,
21828       { "localValue", "gsm_old.localValue",
21829         FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPLocalErrorcode_vals), 0,
21830         "gsm_old.LocalErrorcode", HFILL }},
21831     { &hf_gsm_old_protocolId,
21832       { "protocolId", "gsm_old.protocolId",
21833         FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
21834         "gsm_map.ProtocolId", HFILL }},
21835     { &hf_gsm_old_signalInfo,
21836       { "signalInfo", "gsm_old.signalInfo",
21837         FT_BYTES, BASE_HEX, NULL, 0,
21838         "gsm_map.SignalInfo", HFILL }},
21839     { &hf_gsm_old_extensionContainer,
21840       { "extensionContainer", "gsm_old.extensionContainer",
21841         FT_NONE, BASE_NONE, NULL, 0,
21842         "gsm_map.ExtensionContainer", HFILL }},
21843     { &hf_gsm_old_gsm_BearerCapability,
21844       { "gsm-BearerCapability", "gsm_old.gsm_BearerCapability",
21845         FT_NONE, BASE_NONE, NULL, 0,
21846         "gsm_map.ExternalSignalInfo", HFILL }},
21847     { &hf_gsm_old_isdn_BearerCapability,
21848       { "isdn-BearerCapability", "gsm_old.isdn_BearerCapability",
21849         FT_NONE, BASE_NONE, NULL, 0,
21850         "gsm_map.ExternalSignalInfo", HFILL }},
21851     { &hf_gsm_old_call_Direction,
21852       { "call-Direction", "gsm_old.call_Direction",
21853         FT_BYTES, BASE_HEX, NULL, 0,
21854         "gsm_old.CallDirection", HFILL }},
21855     { &hf_gsm_old_b_Subscriber_Address,
21856       { "b-Subscriber-Address", "gsm_old.b_Subscriber_Address",
21857         FT_BYTES, BASE_HEX, NULL, 0,
21858         "gsm_map.ISDN_AddressString", HFILL }},
21859     { &hf_gsm_old_chosenChannel,
21860       { "chosenChannel", "gsm_old.chosenChannel",
21861         FT_NONE, BASE_NONE, NULL, 0,
21862         "gsm_map.ExternalSignalInfo", HFILL }},
21863     { &hf_gsm_old_lowerLayerCompatibility,
21864       { "lowerLayerCompatibility", "gsm_old.lowerLayerCompatibility",
21865         FT_NONE, BASE_NONE, NULL, 0,
21866         "gsm_map.ExternalSignalInfo", HFILL }},
21867     { &hf_gsm_old_highLayerCompatibility,
21868       { "highLayerCompatibility", "gsm_old.highLayerCompatibility",
21869         FT_NONE, BASE_NONE, NULL, 0,
21870         "gsm_map.ExternalSignalInfo", HFILL }},
21871     { &hf_gsm_old_sIWFSNumber,
21872       { "sIWFSNumber", "gsm_old.sIWFSNumber",
21873         FT_BYTES, BASE_HEX, NULL, 0,
21874         "gsm_map.ISDN_AddressString", HFILL }},
21875     { &hf_gsm_old_imsi,
21876       { "imsi", "gsm_old.imsi",
21877         FT_BYTES, BASE_HEX, NULL, 0,
21878         "gsm_map.IMSI", HFILL }},
21879     { &hf_gsm_old_vlr_Number,
21880       { "vlr-Number", "gsm_old.vlr_Number",
21881         FT_BYTES, BASE_HEX, NULL, 0,
21882         "gsm_map.ISDN_AddressString", HFILL }},
21883     { &hf_gsm_old_targetCellId,
21884       { "targetCellId", "gsm_old.targetCellId",
21885         FT_BYTES, BASE_HEX, NULL, 0,
21886         "gsm_map.GlobalCellId", HFILL }},
21887     { &hf_gsm_old_ho_NumberNotRequired,
21888       { "ho-NumberNotRequired", "gsm_old.ho_NumberNotRequired",
21889         FT_NONE, BASE_NONE, NULL, 0,
21890         "gsm_old.NULL", HFILL }},
21891     { &hf_gsm_old_bss_APDU,
21892       { "bss-APDU", "gsm_old.bss_APDU",
21893         FT_NONE, BASE_NONE, NULL, 0,
21894         "gsm_old.Bss_APDU", HFILL }},
21895     { &hf_gsm_old_handoverNumber,
21896       { "handoverNumber", "gsm_old.handoverNumber",
21897         FT_BYTES, BASE_HEX, NULL, 0,
21898         "gsm_map.ISDN_AddressString", HFILL }},
21899     { &hf_gsm_old_SendAuthenticationInfoResOld_item,
21900       { "SendAuthenticationInfoResOld", "gsm_old.SendAuthenticationInfoResOld_item",
21901         FT_NONE, BASE_NONE, NULL, 0,
21902         "gsm_old.SendAuthenticationInfoResOld_item", HFILL }},
21903     { &hf_gsm_old_rand,
21904       { "rand", "gsm_old.rand",
21905         FT_BYTES, BASE_HEX, NULL, 0,
21906         "gsm_old.RAND", HFILL }},
21907     { &hf_gsm_old_sres,
21908       { "sres", "gsm_old.sres",
21909         FT_BYTES, BASE_HEX, NULL, 0,
21910         "gsm_old.SRES", HFILL }},
21911     { &hf_gsm_old_kc,
21912       { "kc", "gsm_old.kc",
21913         FT_BYTES, BASE_HEX, NULL, 0,
21914         "gsm_old.Kc", HFILL }},
21915     { &hf_gsm_old_tripletList,
21916       { "tripletList", "gsm_old.tripletList",
21917         FT_UINT32, BASE_DEC, NULL, 0,
21918         "gsm_old.TripletListold", HFILL }},
21919     { &hf_gsm_old_TripletListold_item,
21920       { "TripletListold", "gsm_old.TripletListold_item",
21921         FT_NONE, BASE_NONE, NULL, 0,
21922         "gsm_old.AuthenticationTriplet_v2", HFILL }},
21923     { &hf_gsm_old_channelType,
21924       { "channelType", "gsm_old.channelType",
21925         FT_NONE, BASE_NONE, NULL, 0,
21926         "gsm_map.ExternalSignalInfo", HFILL }},
21927     { &hf_gsm_old_securityHeader,
21928       { "securityHeader", "gsm_old.securityHeader",
21929         FT_NONE, BASE_NONE, NULL, 0,
21930         "gsm_old.SecurityHeader", HFILL }},
21931     { &hf_gsm_old_protectedPayload,
21932       { "protectedPayload", "gsm_old.protectedPayload",
21933         FT_BYTES, BASE_HEX, NULL, 0,
21934         "gsm_old.ProtectedPayload", HFILL }},
21935     { &hf_gsm_old_securityParametersIndex,
21936       { "securityParametersIndex", "gsm_old.securityParametersIndex",
21937         FT_BYTES, BASE_HEX, NULL, 0,
21938         "gsm_old.SecurityParametersIndex", HFILL }},
21939     { &hf_gsm_old_originalComponentIdentifier,
21940       { "originalComponentIdentifier", "gsm_old.originalComponentIdentifier",
21941         FT_UINT32, BASE_DEC, VALS(gsm_old_OriginalComponentIdentifier_vals), 0,
21942         "gsm_old.OriginalComponentIdentifier", HFILL }},
21943     { &hf_gsm_old_initialisationVector,
21944       { "initialisationVector", "gsm_old.initialisationVector",
21945         FT_BYTES, BASE_HEX, NULL, 0,
21946         "gsm_old.InitialisationVector", HFILL }},
21947     { &hf_gsm_old_operationCode,
21948       { "operationCode", "gsm_old.operationCode",
21949         FT_UINT32, BASE_DEC, VALS(gsm_old_OperationCode_vals), 0,
21950         "gsm_old.OperationCode", HFILL }},
21951     { &hf_gsm_old_errorCode_01,
21952       { "errorCode", "gsm_old.errorCode",
21953         FT_UINT32, BASE_DEC, VALS(gsm_old_ErrorCode_vals), 0,
21954         "gsm_old.ErrorCode", HFILL }},
21955     { &hf_gsm_old_userInfo,
21956       { "userInfo", "gsm_old.userInfo",
21957         FT_NONE, BASE_NONE, NULL, 0,
21958         "gsm_old.NULL", HFILL }},
21959     { &hf_gsm_old_localValue_02,
21960       { "localValue", "gsm_old.localValue",
21961         FT_INT32, BASE_DEC, NULL, 0,
21962         "gsm_old.INTEGER", HFILL }},
21963     { &hf_gsm_old_msisdn,
21964       { "msisdn", "gsm_old.msisdn",
21965         FT_BYTES, BASE_HEX, NULL, 0,
21966         "gsm_map.ISDN_AddressString", HFILL }},
21967     { &hf_gsm_old_category,
21968       { "category", "gsm_old.category",
21969         FT_BYTES, BASE_HEX, NULL, 0,
21970         "gsm_old.Category", HFILL }},
21971     { &hf_gsm_old_basicService,
21972       { "basicService", "gsm_old.basicService",
21973         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
21974         "gsm_map.BasicServiceCode", HFILL }},
21975     { &hf_gsm_old_operatorSS_Code,
21976       { "operatorSS-Code", "gsm_old.operatorSS_Code",
21977         FT_UINT32, BASE_DEC, NULL, 0,
21978         "gsm_old.T_operatorSS_Code", HFILL }},
21979     { &hf_gsm_old_operatorSS_Code_item,
21980       { "operatorSS-Code", "gsm_old.operatorSS_Code_item",
21981         FT_BYTES, BASE_HEX, NULL, 0,
21982         "gsm_old.OCTET_STRING_SIZE_1", HFILL }},
21983     { &hf_gsm_old_sm_RP_DA,
21984       { "sm-RP-DA", "gsm_old.sm_RP_DA",
21985         FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_DAold_vals), 0,
21986         "gsm_old.SM_RP_DAold", HFILL }},
21987     { &hf_gsm_old_sm_RP_OA,
21988       { "sm-RP-OA", "gsm_old.sm_RP_OA",
21989         FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_OAold_vals), 0,
21990         "gsm_old.SM_RP_OAold", HFILL }},
21991     { &hf_gsm_old_sm_RP_UI,
21992       { "sm-RP-UI", "gsm_old.sm_RP_UI",
21993         FT_BYTES, BASE_HEX, NULL, 0,
21994         "gsm_map.SignalInfo", HFILL }},
21995     { &hf_gsm_old_moreMessagesToSend,
21996       { "moreMessagesToSend", "gsm_old.moreMessagesToSend",
21997         FT_NONE, BASE_NONE, NULL, 0,
21998         "gsm_old.NULL", HFILL }},
21999     { &hf_gsm_old_lmsi,
22000       { "lmsi", "gsm_old.lmsi",
22001         FT_BYTES, BASE_HEX, NULL, 0,
22002         "gsm_map.LMSI", HFILL }},
22003     { &hf_gsm_old_serviceCentreAddressDA,
22004       { "serviceCentreAddressDA", "gsm_old.serviceCentreAddressDA",
22005         FT_BYTES, BASE_HEX, NULL, 0,
22006         "gsm_map.AddressString", HFILL }},
22007     { &hf_gsm_old_noSM_RP_DA,
22008       { "noSM-RP-DA", "gsm_old.noSM_RP_DA",
22009         FT_NONE, BASE_NONE, NULL, 0,
22010         "gsm_old.NULL", HFILL }},
22011     { &hf_gsm_old_msisdn_01,
22012       { "msisdn", "gsm_old.msisdn",
22013         FT_BYTES, BASE_HEX, NULL, 0,
22014         "gsm_old.T_msisdn", HFILL }},
22015     { &hf_gsm_old_serviceCentreAddressOA,
22016       { "serviceCentreAddressOA", "gsm_old.serviceCentreAddressOA",
22017         FT_BYTES, BASE_HEX, NULL, 0,
22018         "gsm_old.T_serviceCentreAddressOA", HFILL }},
22019     { &hf_gsm_old_noSM_RP_OA,
22020       { "noSM-RP-OA", "gsm_old.noSM_RP_OA",
22021         FT_NONE, BASE_NONE, NULL, 0,
22022         "gsm_old.NULL", HFILL }},
22023     { &hf_gsm_old_cug_CheckInfo,
22024       { "cug-CheckInfo", "gsm_old.cug_CheckInfo",
22025         FT_NONE, BASE_NONE, NULL, 0,
22026         "gsm_map_ch.CUG_CheckInfo", HFILL }},
22027     { &hf_gsm_old_numberOfForwarding,
22028       { "numberOfForwarding", "gsm_old.numberOfForwarding",
22029         FT_UINT32, BASE_DEC, NULL, 0,
22030         "gsm_map_ch.NumberOfForwarding", HFILL }},
22031     { &hf_gsm_old_networkSignalInfo,
22032       { "networkSignalInfo", "gsm_old.networkSignalInfo",
22033         FT_NONE, BASE_NONE, NULL, 0,
22034         "gsm_map.ExternalSignalInfo", HFILL }},
22035     { &hf_gsm_old_routingInfo,
22036       { "routingInfo", "gsm_old.routingInfo",
22037         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
22038         "gsm_map_ch.RoutingInfo", HFILL }},
22039
22040 /* --- Module SS-DataTypes --- --- ---                                        */
22041
22042     { &hf_gsm_ss_ss_Code,
22043       { "ss-Code", "gsm_ss.ss_Code",
22044         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
22045         "gsm_map.SS_Code", HFILL }},
22046     { &hf_gsm_ss_ss_Status,
22047       { "ss-Status", "gsm_ss.ss_Status",
22048         FT_BYTES, BASE_HEX, NULL, 0,
22049         "gsm_map_ss.SS_Status", HFILL }},
22050     { &hf_gsm_ss_ss_Notification,
22051       { "ss-Notification", "gsm_ss.ss_Notification",
22052         FT_BYTES, BASE_HEX, NULL, 0,
22053         "gsm_ss.SS_Notification", HFILL }},
22054     { &hf_gsm_ss_callIsWaiting_Indicator,
22055       { "callIsWaiting-Indicator", "gsm_ss.callIsWaiting_Indicator",
22056         FT_NONE, BASE_NONE, NULL, 0,
22057         "gsm_ss.NULL", HFILL }},
22058     { &hf_gsm_ss_callOnHold_Indicator,
22059       { "callOnHold-Indicator", "gsm_ss.callOnHold_Indicator",
22060         FT_UINT32, BASE_DEC, VALS(gsm_ss_CallOnHold_Indicator_vals), 0,
22061         "gsm_ss.CallOnHold_Indicator", HFILL }},
22062     { &hf_gsm_ss_mpty_Indicator,
22063       { "mpty-Indicator", "gsm_ss.mpty_Indicator",
22064         FT_NONE, BASE_NONE, NULL, 0,
22065         "gsm_ss.NULL", HFILL }},
22066     { &hf_gsm_ss_cug_Index,
22067       { "cug-Index", "gsm_ss.cug_Index",
22068         FT_UINT32, BASE_DEC, NULL, 0,
22069         "gsm_map_ms.CUG_Index", HFILL }},
22070     { &hf_gsm_ss_clirSuppressionRejected,
22071       { "clirSuppressionRejected", "gsm_ss.clirSuppressionRejected",
22072         FT_NONE, BASE_NONE, NULL, 0,
22073         "gsm_ss.NULL", HFILL }},
22074     { &hf_gsm_ss_ect_Indicator,
22075       { "ect-Indicator", "gsm_ss.ect_Indicator",
22076         FT_NONE, BASE_NONE, NULL, 0,
22077         "gsm_ss.ECT_Indicator", HFILL }},
22078     { &hf_gsm_ss_nameIndicator,
22079       { "nameIndicator", "gsm_ss.nameIndicator",
22080         FT_NONE, BASE_NONE, NULL, 0,
22081         "gsm_ss.NameIndicator", HFILL }},
22082     { &hf_gsm_ss_ccbs_Feature,
22083       { "ccbs-Feature", "gsm_ss.ccbs_Feature",
22084         FT_NONE, BASE_NONE, NULL, 0,
22085         "gsm_map_ss.CCBS_Feature", HFILL }},
22086     { &hf_gsm_ss_alertingPattern,
22087       { "alertingPattern", "gsm_ss.alertingPattern",
22088         FT_BYTES, BASE_HEX, NULL, 0,
22089         "gsm_map.AlertingPattern", HFILL }},
22090     { &hf_gsm_ss_multicall_Indicator,
22091       { "multicall-Indicator", "gsm_ss.multicall_Indicator",
22092         FT_UINT32, BASE_DEC, VALS(gsm_ss_Multicall_Indicator_vals), 0,
22093         "gsm_ss.Multicall_Indicator", HFILL }},
22094     { &hf_gsm_ss_imsi,
22095       { "imsi", "gsm_ss.imsi",
22096         FT_BYTES, BASE_HEX, NULL, 0,
22097         "gsm_map.IMSI", HFILL }},
22098     { &hf_gsm_ss_originatingEntityNumber,
22099       { "originatingEntityNumber", "gsm_ss.originatingEntityNumber",
22100         FT_BYTES, BASE_HEX, NULL, 0,
22101         "gsm_map.ISDN_AddressString", HFILL }},
22102     { &hf_gsm_ss_msisdn,
22103       { "msisdn", "gsm_ss.msisdn",
22104         FT_BYTES, BASE_HEX, NULL, 0,
22105         "gsm_map.AddressString", HFILL }},
22106     { &hf_gsm_ss_chargingInformation,
22107       { "chargingInformation", "gsm_ss.chargingInformation",
22108         FT_NONE, BASE_NONE, NULL, 0,
22109         "gsm_ss.ChargingInformation", HFILL }},
22110     { &hf_gsm_ss_e1,
22111       { "e1", "gsm_ss.e1",
22112         FT_UINT32, BASE_DEC, NULL, 0,
22113         "gsm_ss.E1", HFILL }},
22114     { &hf_gsm_ss_e2,
22115       { "e2", "gsm_ss.e2",
22116         FT_UINT32, BASE_DEC, NULL, 0,
22117         "gsm_ss.E2", HFILL }},
22118     { &hf_gsm_ss_e3,
22119       { "e3", "gsm_ss.e3",
22120         FT_UINT32, BASE_DEC, NULL, 0,
22121         "gsm_ss.E3", HFILL }},
22122     { &hf_gsm_ss_e4,
22123       { "e4", "gsm_ss.e4",
22124         FT_UINT32, BASE_DEC, NULL, 0,
22125         "gsm_ss.E4", HFILL }},
22126     { &hf_gsm_ss_e5,
22127       { "e5", "gsm_ss.e5",
22128         FT_UINT32, BASE_DEC, NULL, 0,
22129         "gsm_ss.E5", HFILL }},
22130     { &hf_gsm_ss_e6,
22131       { "e6", "gsm_ss.e6",
22132         FT_UINT32, BASE_DEC, NULL, 0,
22133         "gsm_ss.E6", HFILL }},
22134     { &hf_gsm_ss_e7,
22135       { "e7", "gsm_ss.e7",
22136         FT_UINT32, BASE_DEC, NULL, 0,
22137         "gsm_ss.E7", HFILL }},
22138     { &hf_gsm_ss_suppressPrefCUG,
22139       { "suppressPrefCUG", "gsm_ss.suppressPrefCUG",
22140         FT_NONE, BASE_NONE, NULL, 0,
22141         "gsm_ss.NULL", HFILL }},
22142     { &hf_gsm_ss_suppressOA,
22143       { "suppressOA", "gsm_ss.suppressOA",
22144         FT_NONE, BASE_NONE, NULL, 0,
22145         "gsm_ss.NULL", HFILL }},
22146     { &hf_gsm_ss_ect_CallState,
22147       { "ect-CallState", "gsm_ss.ect_CallState",
22148         FT_UINT32, BASE_DEC, VALS(gsm_ss_ECT_CallState_vals), 0,
22149         "gsm_ss.ECT_CallState", HFILL }},
22150     { &hf_gsm_ss_rdn,
22151       { "rdn", "gsm_ss.rdn",
22152         FT_UINT32, BASE_DEC, VALS(gsm_ss_RDN_vals), 0,
22153         "gsm_ss.RDN", HFILL }},
22154     { &hf_gsm_ss_callingName,
22155       { "callingName", "gsm_ss.callingName",
22156         FT_UINT32, BASE_DEC, VALS(gsm_ss_Name_vals), 0,
22157         "gsm_ss.Name", HFILL }},
22158     { &hf_gsm_ss_namePresentationAllowed,
22159       { "namePresentationAllowed", "gsm_ss.namePresentationAllowed",
22160         FT_NONE, BASE_NONE, NULL, 0,
22161         "gsm_ss.NameSet", HFILL }},
22162     { &hf_gsm_ss_presentationRestricted,
22163       { "presentationRestricted", "gsm_ss.presentationRestricted",
22164         FT_NONE, BASE_NONE, NULL, 0,
22165         "gsm_ss.NULL", HFILL }},
22166     { &hf_gsm_ss_nameUnavailable,
22167       { "nameUnavailable", "gsm_ss.nameUnavailable",
22168         FT_NONE, BASE_NONE, NULL, 0,
22169         "gsm_ss.NULL", HFILL }},
22170     { &hf_gsm_ss_namePresentationRestricted,
22171       { "namePresentationRestricted", "gsm_ss.namePresentationRestricted",
22172         FT_NONE, BASE_NONE, NULL, 0,
22173         "gsm_ss.NameSet", HFILL }},
22174     { &hf_gsm_ss_dataCodingScheme,
22175       { "dataCodingScheme", "gsm_ss.dataCodingScheme",
22176         FT_BYTES, BASE_HEX, NULL, 0,
22177         "gsm_map_ss.USSD_DataCodingScheme", HFILL }},
22178     { &hf_gsm_ss_lengthInCharacters,
22179       { "lengthInCharacters", "gsm_ss.lengthInCharacters",
22180         FT_INT32, BASE_DEC, NULL, 0,
22181         "gsm_ss.INTEGER", HFILL }},
22182     { &hf_gsm_ss_nameString,
22183       { "nameString", "gsm_ss.nameString",
22184         FT_BYTES, BASE_HEX, NULL, 0,
22185         "gsm_map_ss.USSD_String", HFILL }},
22186     { &hf_gsm_ss_presentationAllowedAddress,
22187       { "presentationAllowedAddress", "gsm_ss.presentationAllowedAddress",
22188         FT_NONE, BASE_NONE, NULL, 0,
22189         "gsm_ss.RemotePartyNumber", HFILL }},
22190     { &hf_gsm_ss_numberNotAvailableDueToInterworking,
22191       { "numberNotAvailableDueToInterworking", "gsm_ss.numberNotAvailableDueToInterworking",
22192         FT_NONE, BASE_NONE, NULL, 0,
22193         "gsm_ss.NULL", HFILL }},
22194     { &hf_gsm_ss_presentationRestrictedAddress,
22195       { "presentationRestrictedAddress", "gsm_ss.presentationRestrictedAddress",
22196         FT_NONE, BASE_NONE, NULL, 0,
22197         "gsm_ss.RemotePartyNumber", HFILL }},
22198     { &hf_gsm_ss_partyNumber,
22199       { "partyNumber", "gsm_ss.partyNumber",
22200         FT_BYTES, BASE_HEX, NULL, 0,
22201         "gsm_map.ISDN_AddressString", HFILL }},
22202     { &hf_gsm_ss_partyNumberSubaddress,
22203       { "partyNumberSubaddress", "gsm_ss.partyNumberSubaddress",
22204         FT_BYTES, BASE_HEX, NULL, 0,
22205         "gsm_map.ISDN_SubaddressString", HFILL }},
22206     { &hf_gsm_ss_deflectedToNumber,
22207       { "deflectedToNumber", "gsm_ss.deflectedToNumber",
22208         FT_BYTES, BASE_HEX, NULL, 0,
22209         "gsm_map.AddressString", HFILL }},
22210     { &hf_gsm_ss_deflectedToSubaddress,
22211       { "deflectedToSubaddress", "gsm_ss.deflectedToSubaddress",
22212         FT_BYTES, BASE_HEX, NULL, 0,
22213         "gsm_map.ISDN_SubaddressString", HFILL }},
22214     { &hf_gsm_ss_uUS_Service,
22215       { "uUS-Service", "gsm_ss.uUS_Service",
22216         FT_UINT32, BASE_DEC, VALS(gsm_ss_UUS_Service_vals), 0,
22217         "gsm_ss.UUS_Service", HFILL }},
22218     { &hf_gsm_ss_uUS_Required,
22219       { "uUS-Required", "gsm_ss.uUS_Required",
22220         FT_BOOLEAN, 8, NULL, 0,
22221         "gsm_ss.BOOLEAN", HFILL }},
22222     { &hf_gsm_ss_notificationType,
22223       { "notificationType", "gsm_ss.notificationType",
22224         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
22225         "gsm_map_ms.NotificationToMSUser", HFILL }},
22226     { &hf_gsm_ss_locationType,
22227       { "locationType", "gsm_ss.locationType",
22228         FT_NONE, BASE_NONE, NULL, 0,
22229         "gsm_map_lcs.LocationType", HFILL }},
22230     { &hf_gsm_ss_lcsClientExternalID,
22231       { "lcsClientExternalID", "gsm_ss.lcsClientExternalID",
22232         FT_NONE, BASE_NONE, NULL, 0,
22233         "gsm_map.LCSClientExternalID", HFILL }},
22234     { &hf_gsm_ss_lcsClientName,
22235       { "lcsClientName", "gsm_ss.lcsClientName",
22236         FT_NONE, BASE_NONE, NULL, 0,
22237         "gsm_map_lcs.LCSClientName", HFILL }},
22238     { &hf_gsm_ss_lcsRequestorID,
22239       { "lcsRequestorID", "gsm_ss.lcsRequestorID",
22240         FT_NONE, BASE_NONE, NULL, 0,
22241         "gsm_map_lcs.LCSRequestorID", HFILL }},
22242     { &hf_gsm_ss_lcsCodeword,
22243       { "lcsCodeword", "gsm_ss.lcsCodeword",
22244         FT_NONE, BASE_NONE, NULL, 0,
22245         "gsm_map_lcs.LCSCodeword", HFILL }},
22246     { &hf_gsm_ss_lcsServiceTypeID,
22247       { "lcsServiceTypeID", "gsm_ss.lcsServiceTypeID",
22248         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
22249         "gsm_map.LCSServiceTypeID", HFILL }},
22250     { &hf_gsm_ss_verificationResponse,
22251       { "verificationResponse", "gsm_ss.verificationResponse",
22252         FT_UINT32, BASE_DEC, VALS(gsm_ss_VerificationResponse_vals), 0,
22253         "gsm_ss.VerificationResponse", HFILL }},
22254     { &hf_gsm_ss_molr_Type,
22255       { "molr-Type", "gsm_ss.molr_Type",
22256         FT_UINT32, BASE_DEC, VALS(gsm_ss_MOLR_Type_vals), 0,
22257         "gsm_ss.MOLR_Type", HFILL }},
22258     { &hf_gsm_ss_locationMethod,
22259       { "locationMethod", "gsm_ss.locationMethod",
22260         FT_UINT32, BASE_DEC, VALS(gsm_ss_LocationMethod_vals), 0,
22261         "gsm_ss.LocationMethod", HFILL }},
22262     { &hf_gsm_ss_lcs_QoS,
22263       { "lcs-QoS", "gsm_ss.lcs_QoS",
22264         FT_NONE, BASE_NONE, NULL, 0,
22265         "gsm_map_lcs.LCS_QoS", HFILL }},
22266     { &hf_gsm_ss_mlc_Number,
22267       { "mlc-Number", "gsm_ss.mlc_Number",
22268         FT_BYTES, BASE_HEX, NULL, 0,
22269         "gsm_map.ISDN_AddressString", HFILL }},
22270     { &hf_gsm_ss_gpsAssistanceData,
22271       { "gpsAssistanceData", "gsm_ss.gpsAssistanceData",
22272         FT_BYTES, BASE_HEX, NULL, 0,
22273         "gsm_ss.GPSAssistanceData", HFILL }},
22274     { &hf_gsm_ss_supportedGADShapes,
22275       { "supportedGADShapes", "gsm_ss.supportedGADShapes",
22276         FT_BYTES, BASE_HEX, NULL, 0,
22277         "gsm_map_lcs.SupportedGADShapes", HFILL }},
22278     { &hf_gsm_ss_ageOfLocationInfo,
22279       { "ageOfLocationInfo", "gsm_ss.ageOfLocationInfo",
22280         FT_UINT32, BASE_DEC, NULL, 0,
22281         "gsm_map.AgeOfLocationInformation", HFILL }},
22282     { &hf_gsm_ss_pseudonymIndicator,
22283       { "pseudonymIndicator", "gsm_ss.pseudonymIndicator",
22284         FT_NONE, BASE_NONE, NULL, 0,
22285         "gsm_ss.NULL", HFILL }},
22286     { &hf_gsm_ss_h_gmlc_address,
22287       { "h-gmlc-address", "gsm_ss.h_gmlc_address",
22288         FT_BYTES, BASE_HEX, NULL, 0,
22289         "gsm_map_ms.GSN_Address", HFILL }},
22290     { &hf_gsm_ss_locationEstimate,
22291       { "locationEstimate", "gsm_ss.locationEstimate",
22292         FT_BYTES, BASE_HEX, NULL, 0,
22293         "gsm_map_lcs.Ext_GeographicalInformation", HFILL }},
22294     { &hf_gsm_ss_velocityEstimate,
22295       { "velocityEstimate", "gsm_ss.velocityEstimate",
22296         FT_BYTES, BASE_HEX, NULL, 0,
22297         "gsm_map_lcs.VelocityEstimate", HFILL }},
22298     { &hf_gsm_ss_referenceNumber,
22299       { "referenceNumber", "gsm_ss.referenceNumber",
22300         FT_BYTES, BASE_HEX, NULL, 0,
22301         "gsm_map_lcs.LCS_ReferenceNumber", HFILL }},
22302     { &hf_gsm_ss_periodicLDRInfo,
22303       { "periodicLDRInfo", "gsm_ss.periodicLDRInfo",
22304         FT_NONE, BASE_NONE, NULL, 0,
22305         "gsm_map_lcs.PeriodicLDRInfo", HFILL }},
22306     { &hf_gsm_ss_locationUpdateRequest,
22307       { "locationUpdateRequest", "gsm_ss.locationUpdateRequest",
22308         FT_NONE, BASE_NONE, NULL, 0,
22309         "gsm_ss.NULL", HFILL }},
22310     { &hf_gsm_ss_sequenceNumber,
22311       { "sequenceNumber", "gsm_ss.sequenceNumber",
22312         FT_UINT32, BASE_DEC, NULL, 0,
22313         "gsm_map_lcs.SequenceNumber", HFILL }},
22314     { &hf_gsm_ss_terminationCause,
22315       { "terminationCause", "gsm_ss.terminationCause",
22316         FT_UINT32, BASE_DEC, VALS(gsm_ss_TerminationCause_vals), 0,
22317         "gsm_ss.TerminationCause", HFILL }},
22318     { &hf_gsm_ss_mo_lrShortCircuit,
22319       { "mo-lrShortCircuit", "gsm_ss.mo_lrShortCircuit",
22320         FT_NONE, BASE_NONE, NULL, 0,
22321         "gsm_ss.NULL", HFILL }},
22322     { &hf_gsm_ss_ganssAssistanceData,
22323       { "ganssAssistanceData", "gsm_ss.ganssAssistanceData",
22324         FT_BYTES, BASE_HEX, NULL, 0,
22325         "gsm_ss.GANSSAssistanceData", HFILL }},
22326     { &hf_gsm_ss_decipheringKeys,
22327       { "decipheringKeys", "gsm_ss.decipheringKeys",
22328         FT_BYTES, BASE_HEX, NULL, 0,
22329         "gsm_ss.DecipheringKeys", HFILL }},
22330     { &hf_gsm_ss_add_LocationEstimate,
22331       { "add-LocationEstimate", "gsm_ss.add_LocationEstimate",
22332         FT_BYTES, BASE_HEX, NULL, 0,
22333         "gsm_map_lcs.Add_GeographicalInformation", HFILL }},
22334     { &hf_gsm_ss_reportingPLMNList,
22335       { "reportingPLMNList", "gsm_ss.reportingPLMNList",
22336         FT_NONE, BASE_NONE, NULL, 0,
22337         "gsm_map_lcs.ReportingPLMNList", HFILL }},
22338     { &hf_gsm_ss_deferredLocationEventType,
22339       { "deferredLocationEventType", "gsm_ss.deferredLocationEventType",
22340         FT_BYTES, BASE_HEX, NULL, 0,
22341         "gsm_map_lcs.DeferredLocationEventType", HFILL }},
22342     { &hf_gsm_ss_areaEventInfo,
22343       { "areaEventInfo", "gsm_ss.areaEventInfo",
22344         FT_NONE, BASE_NONE, NULL, 0,
22345         "gsm_map_lcs.AreaEventInfo", HFILL }},
22346     { &hf_gsm_ss_qoS,
22347       { "qoS", "gsm_ss.qoS",
22348         FT_NONE, BASE_NONE, NULL, 0,
22349         "gsm_map_lcs.LCS_QoS", HFILL }},
22350
22351 /*--- End of included file: packet-gsm_map-hfarr.c ---*/
22352 #line 2446 "packet-gsmmap-template.c"
22353   };
22354
22355   /* List of subtrees */
22356   static gint *ett[] = {
22357     &ett_gsm_map,
22358     &ett_gsm_map_InvokeId,
22359     &ett_gsm_map_InvokePDU,
22360     &ett_gsm_map_ReturnResultPDU,
22361     &ett_gsm_map_ReturnErrorPDU,
22362     &ett_gsm_map_ReturnResult_result,
22363     &ett_gsm_map_ReturnError_result,
22364     &ett_gsm_map_GSMMAPPDU,
22365     &ett_gsm_map_ext_qos_subscribed,
22366     &ett_gsm_map_pdptypenumber,
22367     &ett_gsm_map_RAIdentity,
22368     &ett_gsm_map_LAIFixedLength,
22369     &ett_gsm_map_isdn_address_string,
22370     &ett_gsm_map_geo_desc,
22371     &ett_gsm_map_LongSignalInfo,
22372     &ett_gsm_map_RadioResourceInformation,
22373     &ett_gsm_map_MSNetworkCapability,
22374     &ett_gsm_map_MSRadioAccessCapability,
22375     &ett_gsm_map_externalsignalinfo,
22376     &ett_gsm_map_cbs_data_coding,
22377     &ett_gsm_map_GlobalCellId,
22378     &ett_gsm_map_GeographicalInformation,
22379
22380
22381 /*--- Included file: packet-gsm_map-ettarr.c ---*/
22382 #line 1 "packet-gsm_map-ettarr.c"
22383
22384 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
22385
22386     &ett_gsm_map_ExtensionContainer,
22387     &ett_gsm_map_SLR_ArgExtensionContainer,
22388     &ett_gsm_map_PrivateExtensionList,
22389     &ett_gsm_map_PrivateExtension,
22390     &ett_gsm_map_PCS_Extensions,
22391     &ett_gsm_map_SLR_Arg_PCS_Extensions,
22392
22393 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
22394
22395     &ett_gsm_map_ExternalSignalInfo,
22396     &ett_gsm_map_Ext_ExternalSignalInfo,
22397     &ett_gsm_map_AccessNetworkSignalInfo,
22398     &ett_gsm_map_Identity,
22399     &ett_gsm_map_IMSI_WithLMSI,
22400     &ett_gsm_map_HLR_List,
22401     &ett_gsm_map_NAEA_PreferredCI,
22402     &ett_gsm_map_SubscriberIdentity,
22403     &ett_gsm_map_LCSClientExternalID,
22404     &ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
22405     &ett_gsm_map_BasicServiceCode,
22406     &ett_gsm_map_Ext_BasicServiceCode,
22407     &ett_gsm_map_EMLPP_Info,
22408     &ett_gsm_map_MC_SS_Info,
22409
22410 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
22411
22412     &ett_gsm_map_ss_RegisterSS_Arg,
22413     &ett_gsm_map_ss_SS_Info,
22414     &ett_gsm_map_ss_ForwardingInfo,
22415     &ett_gsm_map_ss_ForwardingFeatureList,
22416     &ett_gsm_map_ss_ForwardingFeature,
22417     &ett_gsm_map_ss_CallBarringInfo,
22418     &ett_gsm_map_ss_CallBarringFeatureList,
22419     &ett_gsm_map_ss_CallBarringFeature,
22420     &ett_gsm_map_ss_SS_Data,
22421     &ett_gsm_map_ss_SS_SubscriptionOption,
22422     &ett_gsm_map_ss_SS_ForBS_Code,
22423     &ett_gsm_map_ss_GenericServiceInfo,
22424     &ett_gsm_map_ss_CCBS_FeatureList,
22425     &ett_gsm_map_ss_CCBS_Feature,
22426     &ett_gsm_map_ss_InterrogateSS_Res,
22427     &ett_gsm_map_ss_USSD_Arg,
22428     &ett_gsm_map_ss_USSD_Res,
22429     &ett_gsm_map_ss_SS_List,
22430     &ett_gsm_map_ss_BasicServiceGroupList,
22431     &ett_gsm_map_ss_SS_InvocationNotificationArg,
22432     &ett_gsm_map_ss_SS_InvocationNotificationRes,
22433     &ett_gsm_map_ss_SS_EventSpecification,
22434     &ett_gsm_map_ss_RegisterCC_EntryArg,
22435     &ett_gsm_map_ss_CCBS_Data,
22436     &ett_gsm_map_ss_ServiceIndicator,
22437     &ett_gsm_map_ss_RegisterCC_EntryRes,
22438     &ett_gsm_map_ss_EraseCC_EntryArg,
22439     &ett_gsm_map_ss_EraseCC_EntryRes,
22440
22441 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
22442
22443     &ett_gsm_map_er_RoamingNotAllowedParam,
22444     &ett_gsm_map_er_CallBarredParam,
22445     &ett_gsm_map_er_ExtensibleCallBarredParam,
22446     &ett_gsm_map_er_CUG_RejectParam,
22447     &ett_gsm_map_er_SS_IncompatibilityCause,
22448     &ett_gsm_map_er_SM_DeliveryFailureCause,
22449     &ett_gsm_map_er_AbsentSubscriberSM_Param,
22450     &ett_gsm_map_er_SystemFailureParam,
22451     &ett_gsm_map_er_ExtensibleSystemFailureParam,
22452     &ett_gsm_map_er_DataMissingParam,
22453     &ett_gsm_map_er_UnexpectedDataParam,
22454     &ett_gsm_map_er_FacilityNotSupParam,
22455     &ett_gsm_map_er_OR_NotAllowedParam,
22456     &ett_gsm_map_er_UnknownSubscriberParam,
22457     &ett_gsm_map_er_NumberChangedParam,
22458     &ett_gsm_map_er_UnidentifiedSubParam,
22459     &ett_gsm_map_er_IllegalSubscriberParam,
22460     &ett_gsm_map_er_IllegalEquipmentParam,
22461     &ett_gsm_map_er_BearerServNotProvParam,
22462     &ett_gsm_map_er_TeleservNotProvParam,
22463     &ett_gsm_map_er_TracingBufferFullParam,
22464     &ett_gsm_map_er_NoRoamingNbParam,
22465     &ett_gsm_map_er_AbsentSubscriberParam,
22466     &ett_gsm_map_er_BusySubscriberParam,
22467     &ett_gsm_map_er_NoSubscriberReplyParam,
22468     &ett_gsm_map_er_ForwardingViolationParam,
22469     &ett_gsm_map_er_ForwardingFailedParam,
22470     &ett_gsm_map_er_ATI_NotAllowedParam,
22471     &ett_gsm_map_er_ATSI_NotAllowedParam,
22472     &ett_gsm_map_er_ATM_NotAllowedParam,
22473     &ett_gsm_map_er_IllegalSS_OperationParam,
22474     &ett_gsm_map_er_SS_NotAvailableParam,
22475     &ett_gsm_map_er_SS_SubscriptionViolationParam,
22476     &ett_gsm_map_er_InformationNotAvailableParam,
22477     &ett_gsm_map_er_SubBusyForMT_SMS_Param,
22478     &ett_gsm_map_er_MessageWaitListFullParam,
22479     &ett_gsm_map_er_ResourceLimitationParam,
22480     &ett_gsm_map_er_NoGroupCallNbParam,
22481     &ett_gsm_map_er_IncompatibleTerminalParam,
22482     &ett_gsm_map_er_ShortTermDenialParam,
22483     &ett_gsm_map_er_LongTermDenialParam,
22484     &ett_gsm_map_er_UnauthorizedRequestingNetwork_Param,
22485     &ett_gsm_map_er_UnauthorizedLCSClient_Param,
22486     &ett_gsm_map_er_PositionMethodFailure_Param,
22487     &ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param,
22488     &ett_gsm_map_er_MM_EventNotSupported_Param,
22489     &ett_gsm_map_er_TargetCellOutsideGCA_Param,
22490     &ett_gsm_map_er_OngoingGroupCallParam,
22491
22492 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
22493
22494     &ett_gsm_map_sm_RoutingInfoForSM_Arg,
22495     &ett_gsm_map_sm_RoutingInfoForSM_Res,
22496     &ett_gsm_map_sm_LocationInfoWithLMSI,
22497     &ett_gsm_map_sm_Additional_Number,
22498     &ett_gsm_map_sm_MO_ForwardSM_Arg,
22499     &ett_gsm_map_sm_MO_ForwardSM_Res,
22500     &ett_gsm_map_sm_MT_ForwardSM_Arg,
22501     &ett_gsm_map_sm_MT_ForwardSM_Res,
22502     &ett_gsm_map_sm_SM_RP_DA,
22503     &ett_gsm_map_sm_SM_RP_OA,
22504     &ett_gsm_map_sm_ReportSM_DeliveryStatusArg,
22505     &ett_gsm_map_sm_ReportSM_DeliveryStatusRes,
22506     &ett_gsm_map_sm_AlertServiceCentreArg,
22507     &ett_gsm_map_sm_InformServiceCentreArg,
22508     &ett_gsm_map_sm_MW_Status,
22509     &ett_gsm_map_sm_ReadyForSM_Arg,
22510     &ett_gsm_map_sm_ReadyForSM_Res,
22511     &ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg,
22512     &ett_gsm_map_sm_MT_ForwardSM_VGCS_Res,
22513     &ett_gsm_map_sm_DispatcherList,
22514
22515 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
22516
22517     &ett_gsm_map_om_ActivateTraceModeArg,
22518     &ett_gsm_map_om_TraceDepthList,
22519     &ett_gsm_map_om_TraceNE_TypeList,
22520     &ett_gsm_map_om_TraceInterfaceList,
22521     &ett_gsm_map_om_MSC_S_InterfaceList,
22522     &ett_gsm_map_om_MGW_InterfaceList,
22523     &ett_gsm_map_om_SGSN_InterfaceList,
22524     &ett_gsm_map_om_GGSN_InterfaceList,
22525     &ett_gsm_map_om_RNC_InterfaceList,
22526     &ett_gsm_map_om_BMSC_InterfaceList,
22527     &ett_gsm_map_om_TraceEventList,
22528     &ett_gsm_map_om_MSC_S_EventList,
22529     &ett_gsm_map_om_MGW_EventList,
22530     &ett_gsm_map_om_SGSN_EventList,
22531     &ett_gsm_map_om_GGSN_EventList,
22532     &ett_gsm_map_om_BMSC_EventList,
22533     &ett_gsm_map_om_TracePropagationList,
22534     &ett_gsm_map_om_ActivateTraceModeRes,
22535     &ett_gsm_map_om_DeactivateTraceModeArg,
22536     &ett_gsm_map_om_DeactivateTraceModeRes,
22537
22538 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
22539
22540     &ett_gsm_map_ms_UpdateLocationArg,
22541     &ett_gsm_map_ms_VLR_Capability,
22542     &ett_gsm_map_ms_SupportedRAT_Types,
22543     &ett_gsm_map_ms_SuperChargerInfo,
22544     &ett_gsm_map_ms_SupportedLCS_CapabilitySets,
22545     &ett_gsm_map_ms_UpdateLocationRes,
22546     &ett_gsm_map_ms_ADD_Info,
22547     &ett_gsm_map_ms_CancelLocationArg_U,
22548     &ett_gsm_map_ms_CancelLocationRes,
22549     &ett_gsm_map_ms_PurgeMS_Arg_U,
22550     &ett_gsm_map_ms_PurgeMS_Res,
22551     &ett_gsm_map_ms_SendIdentificationArg,
22552     &ett_gsm_map_ms_SendIdentificationRes_U,
22553     &ett_gsm_map_ms_AuthenticationSetList,
22554     &ett_gsm_map_ms_TripletList,
22555     &ett_gsm_map_ms_QuintupletList,
22556     &ett_gsm_map_ms_AuthenticationTriplet,
22557     &ett_gsm_map_ms_AuthenticationQuintuplet,
22558     &ett_gsm_map_ms_CurrentSecurityContext,
22559     &ett_gsm_map_ms_GSM_SecurityContextData,
22560     &ett_gsm_map_ms_UMTS_SecurityContextData,
22561     &ett_gsm_map_ms_AuthenticationFailureReportArg,
22562     &ett_gsm_map_ms_AuthenticationFailureReportRes,
22563     &ett_gsm_map_ms_UpdateGprsLocationArg,
22564     &ett_gsm_map_ms_SGSN_Capability,
22565     &ett_gsm_map_ms_UpdateGprsLocationRes,
22566     &ett_gsm_map_ms_ForwardAccessSignalling_Arg_U,
22567     &ett_gsm_map_ms_AllowedUMTS_Algorithms,
22568     &ett_gsm_map_ms_PrepareHO_Arg_U,
22569     &ett_gsm_map_ms_BSSMAP_ServiceHandoverList,
22570     &ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo,
22571     &ett_gsm_map_ms_RadioResourceList,
22572     &ett_gsm_map_ms_RadioResource,
22573     &ett_gsm_map_ms_PrepareHO_Res_U,
22574     &ett_gsm_map_ms_SelectedUMTS_Algorithms,
22575     &ett_gsm_map_ms_ChosenRadioResourceInformation,
22576     &ett_gsm_map_ms_PrepareSubsequentHO_Arg_U,
22577     &ett_gsm_map_ms_PrepareSubsequentHO_Res_U,
22578     &ett_gsm_map_ms_ProcessAccessSignalling_Arg_U,
22579     &ett_gsm_map_ms_SupportedCodecsList,
22580     &ett_gsm_map_ms_CodecList,
22581     &ett_gsm_map_ms_SendEndSignal_Arg_U,
22582     &ett_gsm_map_ms_SendEndSignal_Res,
22583     &ett_gsm_map_ms_RelocationNumberList,
22584     &ett_gsm_map_ms_RelocationNumber,
22585     &ett_gsm_map_ms_SendAuthenticationInfoArg,
22586     &ett_gsm_map_ms_Re_synchronisationInfo,
22587     &ett_gsm_map_ms_SendAuthenticationInfoRes_U,
22588     &ett_gsm_map_ms_CheckIMEI_Arg,
22589     &ett_gsm_map_ms_CheckIMEI_Res,
22590     &ett_gsm_map_ms_RequestedEquipmentInfo,
22591     &ett_gsm_map_ms_UESBI_Iu,
22592     &ett_gsm_map_ms_InsertSubscriberDataArg,
22593     &ett_gsm_map_ms_AccessRestrictionData,
22594     &ett_gsm_map_ms_LCSInformation,
22595     &ett_gsm_map_ms_GMLC_List,
22596     &ett_gsm_map_ms_GPRSDataList,
22597     &ett_gsm_map_ms_PDP_Context,
22598     &ett_gsm_map_ms_GPRSSubscriptionData,
22599     &ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo,
22600     &ett_gsm_map_ms_GPRS_CSI,
22601     &ett_gsm_map_ms_GPRS_CamelTDPDataList,
22602     &ett_gsm_map_ms_GPRS_CamelTDPData,
22603     &ett_gsm_map_ms_LSADataList,
22604     &ett_gsm_map_ms_LSAData,
22605     &ett_gsm_map_ms_LSAInformation,
22606     &ett_gsm_map_ms_SubscriberData,
22607     &ett_gsm_map_ms_BearerServiceList,
22608     &ett_gsm_map_ms_TeleserviceList,
22609     &ett_gsm_map_ms_ODB_Data,
22610     &ett_gsm_map_ms_ODB_GeneralData,
22611     &ett_gsm_map_ms_ODB_HPLMN_Data,
22612     &ett_gsm_map_ms_Ext_SS_InfoList,
22613     &ett_gsm_map_ms_Ext_SS_Info,
22614     &ett_gsm_map_ms_Ext_ForwInfo,
22615     &ett_gsm_map_ms_Ext_ForwFeatureList,
22616     &ett_gsm_map_ms_Ext_ForwFeature,
22617     &ett_gsm_map_ms_Ext_CallBarInfo,
22618     &ett_gsm_map_ms_Ext_CallBarFeatureList,
22619     &ett_gsm_map_ms_Ext_CallBarringFeature,
22620     &ett_gsm_map_ms_CUG_Info,
22621     &ett_gsm_map_ms_CUG_SubscriptionList,
22622     &ett_gsm_map_ms_CUG_Subscription,
22623     &ett_gsm_map_ms_CUG_FeatureList,
22624     &ett_gsm_map_ms_Ext_BasicServiceGroupList,
22625     &ett_gsm_map_ms_CUG_Feature,
22626     &ett_gsm_map_ms_Ext_SS_Data,
22627     &ett_gsm_map_ms_LCS_PrivacyExceptionList,
22628     &ett_gsm_map_ms_LCS_PrivacyClass,
22629     &ett_gsm_map_ms_ExternalClientList,
22630     &ett_gsm_map_ms_PLMNClientList,
22631     &ett_gsm_map_ms_Ext_ExternalClientList,
22632     &ett_gsm_map_ms_ExternalClient,
22633     &ett_gsm_map_ms_ServiceTypeList,
22634     &ett_gsm_map_ms_ServiceType,
22635     &ett_gsm_map_ms_MOLR_List,
22636     &ett_gsm_map_ms_MOLR_Class,
22637     &ett_gsm_map_ms_ZoneCodeList,
22638     &ett_gsm_map_ms_InsertSubscriberDataRes,
22639     &ett_gsm_map_ms_DeleteSubscriberDataArg,
22640     &ett_gsm_map_ms_SpecificCSI_Withdraw,
22641     &ett_gsm_map_ms_GPRSSubscriptionDataWithdraw,
22642     &ett_gsm_map_ms_ContextIdList,
22643     &ett_gsm_map_ms_LSAInformationWithdraw,
22644     &ett_gsm_map_ms_LSAIdentityList,
22645     &ett_gsm_map_ms_BasicServiceList,
22646     &ett_gsm_map_ms_DeleteSubscriberDataRes,
22647     &ett_gsm_map_ms_VlrCamelSubscriptionInfo,
22648     &ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList,
22649     &ett_gsm_map_ms_MT_smsCAMELTDP_Criteria,
22650     &ett_gsm_map_ms_TPDU_TypeCriterion,
22651     &ett_gsm_map_ms_D_CSI,
22652     &ett_gsm_map_ms_DP_AnalysedInfoCriteriaList,
22653     &ett_gsm_map_ms_DP_AnalysedInfoCriterium,
22654     &ett_gsm_map_ms_SS_CSI,
22655     &ett_gsm_map_ms_SS_CamelData,
22656     &ett_gsm_map_ms_SS_EventList,
22657     &ett_gsm_map_ms_O_CSI,
22658     &ett_gsm_map_ms_O_BcsmCamelTDPDataList,
22659     &ett_gsm_map_ms_O_BcsmCamelTDPData,
22660     &ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList,
22661     &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList,
22662     &ett_gsm_map_ms_O_BcsmCamelTDP_Criteria,
22663     &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria,
22664     &ett_gsm_map_ms_DestinationNumberCriteria,
22665     &ett_gsm_map_ms_DestinationNumberList,
22666     &ett_gsm_map_ms_DestinationNumberLengthList,
22667     &ett_gsm_map_ms_BasicServiceCriteria,
22668     &ett_gsm_map_ms_O_CauseValueCriteria,
22669     &ett_gsm_map_ms_T_CauseValueCriteria,
22670     &ett_gsm_map_ms_SupportedCamelPhases,
22671     &ett_gsm_map_ms_OfferedCamel4CSIs,
22672     &ett_gsm_map_ms_OfferedCamel4Functionalities,
22673     &ett_gsm_map_ms_SMS_CSI,
22674     &ett_gsm_map_ms_SMS_CAMEL_TDP_DataList,
22675     &ett_gsm_map_ms_SMS_CAMEL_TDP_Data,
22676     &ett_gsm_map_ms_M_CSI,
22677     &ett_gsm_map_ms_MG_CSI,
22678     &ett_gsm_map_ms_MobilityTriggers,
22679     &ett_gsm_map_ms_T_CSI,
22680     &ett_gsm_map_ms_T_BcsmCamelTDPDataList,
22681     &ett_gsm_map_ms_T_BcsmCamelTDPData,
22682     &ett_gsm_map_ms_SendRoutingInfoForGprsArg,
22683     &ett_gsm_map_ms_SendRoutingInfoForGprsRes,
22684     &ett_gsm_map_ms_FailureReportArg,
22685     &ett_gsm_map_ms_FailureReportRes,
22686     &ett_gsm_map_ms_NoteMsPresentForGprsArg,
22687     &ett_gsm_map_ms_NoteMsPresentForGprsRes,
22688     &ett_gsm_map_ms_ResetArg,
22689     &ett_gsm_map_ms_RestoreDataArg,
22690     &ett_gsm_map_ms_RestoreDataRes,
22691     &ett_gsm_map_ms_VBSDataList,
22692     &ett_gsm_map_ms_VGCSDataList,
22693     &ett_gsm_map_ms_VoiceGroupCallData,
22694     &ett_gsm_map_ms_AdditionalSubscriptions,
22695     &ett_gsm_map_ms_VoiceBroadcastData,
22696     &ett_gsm_map_ms_ProvideSubscriberInfoArg,
22697     &ett_gsm_map_ms_ProvideSubscriberInfoRes,
22698     &ett_gsm_map_ms_SubscriberInfo,
22699     &ett_gsm_map_ms_MNPInfoRes,
22700     &ett_gsm_map_ms_GPRSMSClass,
22701     &ett_gsm_map_ms_RequestedInfo,
22702     &ett_gsm_map_ms_LocationInformation,
22703     &ett_gsm_map_ms_LocationInformationGPRS,
22704     &ett_gsm_map_ms_SubscriberState,
22705     &ett_gsm_map_ms_PS_SubscriberState,
22706     &ett_gsm_map_ms_PDP_ContextInfoList,
22707     &ett_gsm_map_ms_PDP_ContextInfo,
22708     &ett_gsm_map_ms_AnyTimeInterrogationArg,
22709     &ett_gsm_map_ms_AnyTimeInterrogationRes,
22710     &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg,
22711     &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes,
22712     &ett_gsm_map_ms_RequestedSubscriptionInfo,
22713     &ett_gsm_map_ms_MSISDN_BS_List,
22714     &ett_gsm_map_ms_MSISDN_BS,
22715     &ett_gsm_map_ms_CallForwardingData,
22716     &ett_gsm_map_ms_CallBarringData,
22717     &ett_gsm_map_ms_ODB_Info,
22718     &ett_gsm_map_ms_CAMEL_SubscriptionInfo,
22719     &ett_gsm_map_ms_AnyTimeModificationArg,
22720     &ett_gsm_map_ms_AnyTimeModificationRes,
22721     &ett_gsm_map_ms_ModificationRequestFor_CF_Info,
22722     &ett_gsm_map_ms_ModificationRequestFor_CB_Info,
22723     &ett_gsm_map_ms_ModificationRequestFor_ODB_data,
22724     &ett_gsm_map_ms_ModificationRequestFor_CSI,
22725     &ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data,
22726     &ett_gsm_map_ms_NoteSubscriberDataModifiedArg,
22727     &ett_gsm_map_ms_NoteSubscriberDataModifiedRes,
22728     &ett_gsm_map_ms_NoteMM_EventArg,
22729     &ett_gsm_map_ms_NoteMM_EventRes,
22730     &ett_gsm_map_ms_Ext_SS_InfoFor_CSE,
22731     &ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE,
22732     &ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE,
22733
22734 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
22735
22736     &ett_gsm_map_ch_CUG_CheckInfo,
22737     &ett_gsm_map_ch_SendRoutingInfoArg,
22738     &ett_gsm_map_ch_SuppressMTSS,
22739     &ett_gsm_map_ch_SendRoutingInfoRes_U,
22740     &ett_gsm_map_ch_AllowedServices,
22741     &ett_gsm_map_ch_CCBS_Indicators,
22742     &ett_gsm_map_ch_RoutingInfo,
22743     &ett_gsm_map_ch_ForwardingData,
22744     &ett_gsm_map_ch_ProvideRoamingNumberArg,
22745     &ett_gsm_map_ch_ProvideRoamingNumberRes,
22746     &ett_gsm_map_ch_ResumeCallHandlingArg,
22747     &ett_gsm_map_ch_UU_Data,
22748     &ett_gsm_map_ch_ResumeCallHandlingRes,
22749     &ett_gsm_map_ch_CamelInfo,
22750     &ett_gsm_map_ch_ExtendedRoutingInfo,
22751     &ett_gsm_map_ch_CamelRoutingInfo,
22752     &ett_gsm_map_ch_GmscCamelSubscriptionInfo,
22753     &ett_gsm_map_ch_SetReportingStateArg,
22754     &ett_gsm_map_ch_SetReportingStateRes,
22755     &ett_gsm_map_ch_StatusReportArg,
22756     &ett_gsm_map_ch_EventReportData,
22757     &ett_gsm_map_ch_CallReportData,
22758     &ett_gsm_map_ch_StatusReportRes,
22759     &ett_gsm_map_ch_RemoteUserFreeArg,
22760     &ett_gsm_map_ch_RemoteUserFreeRes,
22761     &ett_gsm_map_ch_IST_AlertArg,
22762     &ett_gsm_map_ch_IST_AlertRes,
22763     &ett_gsm_map_ch_IST_CommandArg,
22764     &ett_gsm_map_ch_IST_CommandRes,
22765     &ett_gsm_map_ch_ReleaseResourcesArg,
22766     &ett_gsm_map_ch_ReleaseResourcesRes,
22767
22768 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
22769
22770     &ett_gsm_map_lcs_RoutingInfoForLCS_Arg,
22771     &ett_gsm_map_lcs_RoutingInfoForLCS_Res,
22772     &ett_gsm_map_lcs_LCSLocationInfo,
22773     &ett_gsm_map_lcs_ProvideSubscriberLocation_Arg,
22774     &ett_gsm_map_lcs_LocationType,
22775     &ett_gsm_map_lcs_DeferredLocationEventType,
22776     &ett_gsm_map_lcs_LCS_ClientID,
22777     &ett_gsm_map_lcs_LCSClientName,
22778     &ett_gsm_map_lcs_LCSRequestorID,
22779     &ett_gsm_map_lcs_LCS_QoS,
22780     &ett_gsm_map_lcs_ResponseTime,
22781     &ett_gsm_map_lcs_SupportedGADShapes,
22782     &ett_gsm_map_lcs_LCSCodeword,
22783     &ett_gsm_map_lcs_LCS_PrivacyCheck,
22784     &ett_gsm_map_lcs_AreaEventInfo,
22785     &ett_gsm_map_lcs_AreaDefinition,
22786     &ett_gsm_map_lcs_AreaList,
22787     &ett_gsm_map_lcs_Area,
22788     &ett_gsm_map_lcs_PeriodicLDRInfo,
22789     &ett_gsm_map_lcs_ReportingPLMNList,
22790     &ett_gsm_map_lcs_PLMNList,
22791     &ett_gsm_map_lcs_ReportingPLMN,
22792     &ett_gsm_map_lcs_ProvideSubscriberLocation_Res,
22793     &ett_gsm_map_lcs_SubscriberLocationReport_Arg,
22794     &ett_gsm_map_lcs_Deferredmt_lrData,
22795     &ett_gsm_map_lcs_SubscriberLocationReport_Res,
22796
22797 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
22798
22799     &ett_gsm_map_gr_PrepareGroupCallArg,
22800     &ett_gsm_map_gr_PrepareGroupCallRes,
22801     &ett_gsm_map_gr_SendGroupCallEndSignalArg,
22802     &ett_gsm_map_gr_SendGroupCallEndSignalRes,
22803     &ett_gsm_map_gr_ForwardGroupCallSignallingArg,
22804     &ett_gsm_map_gr_ProcessGroupCallSignallingArg,
22805     &ett_gsm_map_gr_StateAttributes,
22806     &ett_gsm_map_gr_SendGroupCallInfoArg,
22807     &ett_gsm_map_gr_SendGroupCallInfoRes,
22808
22809 /* --- Module MAP-DialogueInformation --- --- ---                             */
22810
22811     &ett_gsm_map_dialogue_MAP_DialoguePDU,
22812     &ett_gsm_map_dialogue_MAP_OpenInfo,
22813     &ett_gsm_map_dialogue_MAP_AcceptInfo,
22814     &ett_gsm_map_dialogue_MAP_CloseInfo,
22815     &ett_gsm_map_dialogue_MAP_RefuseInfo,
22816     &ett_gsm_map_dialogue_MAP_UserAbortInfo,
22817     &ett_gsm_map_dialogue_MAP_UserAbortChoice,
22818     &ett_gsm_map_dialogue_MAP_ProviderAbortInfo,
22819
22820 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
22821
22822
22823 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
22824
22825
22826 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
22827
22828
22829 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
22830
22831
22832 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
22833
22834
22835 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
22836
22837
22838 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
22839
22840
22841 /* --- Module MAP-Errors --- --- ---                                          */
22842
22843
22844 /* --- Module MAP-Protocol --- --- ---                                        */
22845
22846
22847 /* --- Module DummyMAP --- --- ---                                            */
22848
22849     &ett_gsm_old_Component,
22850     &ett_gsm_old_Invoke,
22851     &ett_gsm_old_ReturnResult,
22852     &ett_gsm_old_T_resultretres,
22853     &ett_gsm_old_ReturnError,
22854     &ett_gsm_old_Reject,
22855     &ett_gsm_old_T_invokeIDRej,
22856     &ett_gsm_old_T_problem,
22857     &ett_gsm_old_MAP_OPERATION,
22858     &ett_gsm_old_MAP_ERROR,
22859     &ett_gsm_old_Bss_APDU,
22860     &ett_gsm_old_ProvideSIWFSNumberArg,
22861     &ett_gsm_old_ProvideSIWFSNumberRes,
22862     &ett_gsm_old_PurgeMSArgV2,
22863     &ett_gsm_old_PrepareHO_ArgOld,
22864     &ett_gsm_old_PrepareHO_ResOld,
22865     &ett_gsm_old_SendAuthenticationInfoResOld,
22866     &ett_gsm_old_SendAuthenticationInfoResOld_item,
22867     &ett_gsm_old_SendIdentificationResV2,
22868     &ett_gsm_old_TripletListold,
22869     &ett_gsm_old_AuthenticationTriplet_v2,
22870     &ett_gsm_old_SIWFSSignallingModifyArg,
22871     &ett_gsm_old_SIWFSSignallingModifyRes,
22872     &ett_gsm_old_SecureTransportArg,
22873     &ett_gsm_old_SecureTransportErrorParam,
22874     &ett_gsm_old_SecureTransportRes,
22875     &ett_gsm_old_SecurityHeader,
22876     &ett_gsm_old_OriginalComponentIdentifier,
22877     &ett_gsm_old_OperationCode,
22878     &ett_gsm_old_ErrorCode,
22879     &ett_gsm_old_PlmnContainer_U,
22880     &ett_gsm_old_T_operatorSS_Code,
22881     &ett_gsm_old_ForwardSM_Arg,
22882     &ett_gsm_old_SM_RP_DAold,
22883     &ett_gsm_old_SM_RP_OAold,
22884     &ett_gsm_old_SendRoutingInfoArgV2,
22885     &ett_gsm_old_SendRoutingInfoResV2,
22886
22887 /* --- Module SS-DataTypes --- --- ---                                        */
22888
22889     &ett_gsm_ss_NotifySS_Arg,
22890     &ett_gsm_ss_BeginSubscriberActivityArg,
22891     &ett_gsm_ss_ForwardChargeAdviceArg,
22892     &ett_gsm_ss_ChargingInformation,
22893     &ett_gsm_ss_ForwardCUG_InfoArg,
22894     &ett_gsm_ss_ECT_Indicator,
22895     &ett_gsm_ss_NameIndicator,
22896     &ett_gsm_ss_Name,
22897     &ett_gsm_ss_NameSet,
22898     &ett_gsm_ss_RDN,
22899     &ett_gsm_ss_RemotePartyNumber,
22900     &ett_gsm_ss_AccessRegisterCCEntryArg,
22901     &ett_gsm_ss_CallDeflectionArg,
22902     &ett_gsm_ss_UserUserServiceArg,
22903     &ett_gsm_ss_LocationNotificationArg,
22904     &ett_gsm_ss_LocationNotificationRes,
22905     &ett_gsm_ss_LCS_MOLRArg,
22906     &ett_gsm_ss_LCS_MOLRRes,
22907     &ett_gsm_ss_LCS_AreaEventRequestArg,
22908     &ett_gsm_ss_LCS_AreaEventReportArg,
22909     &ett_gsm_ss_LCS_AreaEventCancellationArg,
22910     &ett_gsm_ss_LCS_PeriodicLocationRequestArg,
22911     &ett_gsm_ss_LCS_PeriodicLocationRequestRes,
22912     &ett_gsm_ss_LCS_LocationUpdateArg,
22913     &ett_gsm_ss_LCS_LocationUpdateRes,
22914     &ett_gsm_ss_LCS_PeriodicLocationCancellationArg,
22915
22916 /* --- Module SS-Operations --- --- ---                                       */
22917
22918
22919 /*--- End of included file: packet-gsm_map-ettarr.c ---*/
22920 #line 2474 "packet-gsmmap-template.c"
22921   };
22922
22923   /* Register protocol */
22924   proto_gsm_map_dialogue =proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
22925
22926   register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);
22927   
22928   /* Register fields and subtrees */
22929   proto_register_field_array(proto_gsm_map, hf, array_length(hf));
22930   proto_register_subtree_array(ett, array_length(ett));
22931
22932   sms_dissector_table = register_dissector_table("gsm_map.sms_tpdu", 
22933                                                  "GSM SMS TPDU", FT_UINT8,
22934                                                  BASE_DEC);
22935
22936   gsm_map_tap = register_tap("gsm_map");
22937
22938
22939 /*--- Included file: packet-gsm_map-dis-tab.c ---*/
22940 #line 1 "packet-gsm_map-dis-tab.c"
22941
22942 /* --- Module MAP-DialogueInformation --- --- ---                             */
22943
22944   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");
22945
22946
22947 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
22948
22949
22950
22951 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
22952
22953
22954
22955 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
22956
22957
22958
22959 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
22960
22961
22962
22963 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
22964
22965
22966
22967 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
22968
22969
22970
22971 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
22972
22973
22974
22975 /* --- Module MAP-Errors --- --- ---                                          */
22976
22977
22978
22979 /* --- Module MAP-Protocol --- --- ---                                        */
22980
22981
22982
22983 /* --- Module DummyMAP --- --- ---                                            */
22984
22985
22986
22987 /* --- Module SS-DataTypes --- --- ---                                        */
22988
22989
22990
22991 /* --- Module SS-Operations --- --- ---                                       */
22992
22993
22994
22995 /*--- End of included file: packet-gsm_map-dis-tab.c ---*/
22996 #line 2492 "packet-gsmmap-template.c"
22997   oid_add_from_string("ericsson-gsm-Map-Ext","1.2.826.0.1249.58.1.0" );
22998   oid_add_from_string("accessTypeNotAllowed-id","1.3.12.2.1107.3.66.1.2");
22999   /*oid_add_from_string("map-ac networkLocUp(1) version3(3)","0.4.0.0.1.0.1.3" );
23000    *
23001    * Register our configuration options, particularly our ssn:s
23002    * Set default SSNs
23003    */
23004   range_convert_str(&global_ssn_range, "6-9", MAX_SSN);
23005
23006   gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
23007
23008   prefs_register_range_preference(gsm_map_module, "tcap.ssn", "TCAP SSNs",
23009                                   "TCAP Subsystem numbers used for GSM MAP",
23010                                   &global_ssn_range, MAX_SSN);
23011 }