summaryrefslogtreecommitdiff
path: root/asn1/gsm_map
diff options
context:
space:
mode:
authorAlexis La Goutte <alexis.lagoutte@gmail.com>2014-03-14 17:39:52 +0100
committerPascal Quantin <pascal.quantin@gmail.com>2014-03-15 09:02:56 +0000
commit5d2409116e9e58f62a7b41b369d811ded51ffe92 (patch)
tree7b9cc187360a33c9410683ebf33d82b55b0d6541 /asn1/gsm_map
parente63eb0298ad89161fd9aa1ee1c79bbaea9a9dd0f (diff)
downloadwireshark-5d2409116e9e58f62a7b41b369d811ded51ffe92.tar.gz
Fix indent (use 2 spaces)
Change-Id: If7872c510d20e9f04e44e3fdf09c023e5ac602d9 Reviewed-on: https://code.wireshark.org/review/648 Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'asn1/gsm_map')
-rw-r--r--asn1/gsm_map/packet-gsm_map-template.c1609
1 files changed, 804 insertions, 805 deletions
diff --git a/asn1/gsm_map/packet-gsm_map-template.c b/asn1/gsm_map/packet-gsm_map-template.c
index c351b74aa4..2eb7322f6e 100644
--- a/asn1/gsm_map/packet-gsm_map-template.c
+++ b/asn1/gsm_map/packet-gsm_map-template.c
@@ -187,14 +187,14 @@ static expert_field ei_gsm_map_unknown_sequence = EI_INIT;
static expert_field ei_gsm_map_unknown_parameter = EI_INIT;
static expert_field ei_gsm_map_unknown_invokeData = EI_INIT;
-static dissector_handle_t gsm_sms_handle; /* SMS TPDU */
-static dissector_handle_t data_handle;
-static dissector_handle_t ranap_handle;
-static dissector_handle_t dtap_handle;
-static dissector_handle_t map_handle;
-static dissector_table_t map_prop_arg_opcode_table; /* prorietary operation codes */
-static dissector_table_t map_prop_res_opcode_table; /* prorietary operation codes */
-static dissector_table_t map_prop_err_opcode_table; /* prorietary operation codes */
+static dissector_handle_t gsm_sms_handle; /* SMS TPDU */
+static dissector_handle_t data_handle;
+static dissector_handle_t ranap_handle;
+static dissector_handle_t dtap_handle;
+static dissector_handle_t map_handle;
+static dissector_table_t map_prop_arg_opcode_table; /* prorietary operation codes */
+static dissector_table_t map_prop_res_opcode_table; /* prorietary operation codes */
+static dissector_table_t map_prop_err_opcode_table; /* prorietary operation codes */
/* Preferenc settings default */
#define MAX_SSN 254
static range_t *global_ssn_range;
@@ -212,12 +212,12 @@ static guint AccessNetworkProtocolId;
static const char *obj_id = NULL;
static int gsm_map_tap = -1;
-#define SMS_ENCODING_NOT_SET 0
-#define SMS_ENCODING_7BIT 1
-#define SMS_ENCODING_8BIT 2
-#define SMS_ENCODING_UCS2 3
-#define SMS_ENCODING_7BIT_LANG 4
-#define SMS_ENCODING_UCS2_LANG 5
+#define SMS_ENCODING_NOT_SET 0
+#define SMS_ENCODING_7BIT 1
+#define SMS_ENCODING_8BIT 2
+#define SMS_ENCODING_UCS2 3
+#define SMS_ENCODING_7BIT_LANG 4
+#define SMS_ENCODING_UCS2_LANG 5
static guint8 sms_encoding;
@@ -317,172 +317,172 @@ static const value_string gsm_map_screening_ind_vals[] = {
const char *
unpack_digits(tvbuff_t *tvb, int offset) {
- int length;
- guint8 octet;
- int i=0;
- char *digit_str;
+ int length;
+ guint8 octet;
+ int i=0;
+ char *digit_str;
- length = tvb_length(tvb);
- if (length < offset)
- return "";
- digit_str = (char *)wmem_alloc(wmem_packet_scope(), (length - offset)*2+1);
+ length = tvb_length(tvb);
+ if (length < offset)
+ return "";
+ digit_str = (char *)wmem_alloc(wmem_packet_scope(), (length - offset)*2+1);
- while ( offset < length ){
+ while ( offset < length ){
- octet = tvb_get_guint8(tvb,offset);
- digit_str[i] = ((octet & 0x0f) + '0');
- i++;
+ octet = tvb_get_guint8(tvb,offset);
+ digit_str[i] = ((octet & 0x0f) + '0');
+ i++;
- /*
- * unpack second value in byte
- */
- octet = octet >> 4;
+ /*
+ * unpack second value in byte
+ */
+ octet = octet >> 4;
- if (octet == 0x0f) /* odd number bytes - hit filler */
- break;
+ if (octet == 0x0f) /* odd number bytes - hit filler */
+ break;
- digit_str[i] = ((octet & 0x0f) + '0');
- i++;
- offset++;
+ digit_str[i] = ((octet & 0x0f) + '0');
+ i++;
+ offset++;
- }
- digit_str[i]= '\0';
- return digit_str;
+ }
+ digit_str[i]= '\0';
+ return digit_str;
}
/* returns value in kb/s */
static guint
gsm_map_calc_bitrate(guint8 value){
- guint8 granularity;
- guint returnvalue;
-
- if (value == 0xff)
- return 0;
-
- granularity = value >> 6;
- returnvalue = value & 0x7f;
- switch (granularity){
- case 0:
- break;
- case 1:
- returnvalue = ((returnvalue - 0x40) << 3)+64;
- break;
- case 2:
- returnvalue = (returnvalue << 6)+576;
- break;
- case 3:
- returnvalue = (returnvalue << 6)+576;
- break;
- }
- return returnvalue;
+ guint8 granularity;
+ guint returnvalue;
+
+ if (value == 0xff)
+ return 0;
+
+ granularity = value >> 6;
+ returnvalue = value & 0x7f;
+ switch (granularity){
+ case 0:
+ break;
+ case 1:
+ returnvalue = ((returnvalue - 0x40) << 3)+64;
+ break;
+ case 2:
+ returnvalue = (returnvalue << 6)+576;
+ break;
+ case 3:
+ returnvalue = (returnvalue << 6)+576;
+ break;
+ }
+ return returnvalue;
}
static void
dissect_gsm_map_ext_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx){
- int offset = 0;
- proto_tree *subtree;
- guint8 octet;
- guint16 value;
-
- subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext_qos_subscribed);
- /* OCTET 1:
- Allocation/Retention Priority (This octet encodes each priority level defined in
- 23.107 as the binary value of the priority level, declaration in 29.060)
- Octets 2-9 are coded according to 3GPP TS 24.008[35] Quality of Service Octets
- 6-13.
- */
- /* Allocation/Retention Priority */
- proto_tree_add_item(subtree, hf_gsm_map_ext_qos_subscribed_pri, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset++;
-
- /* Quality of Service Octets 6-13.( Octet 2 - 9 Here) */
-
- /* Traffic class, octet 6 (see 3GPP TS 23.107) Bits 8 7 6 */
- proto_tree_add_item(subtree, hf_gsm_map_qos_traffic_cls, tvb, offset, 1, ENC_BIG_ENDIAN);
- /* Delivery order, octet 6 (see 3GPP TS 23.107) Bits 5 4 */
- proto_tree_add_item(subtree, hf_gsm_map_qos_del_order, tvb, offset, 1, ENC_BIG_ENDIAN);
- /* Delivery of erroneous SDUs, octet 6 (see 3GPP TS 23.107) Bits 3 2 1 */
- proto_tree_add_item(subtree, hf_gsm_map_qos_del_of_err_sdu, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset++;
-
- /* Maximum SDU size, octet 7 (see 3GPP TS 23.107) */
- octet = tvb_get_guint8(tvb,offset);
- switch (octet){
- case 0:
- proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum SDU size/Reserved");
- break;
- case 0x93:
- value = 1502;
- proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
- break;
- case 0x98:
- value = 1510;
- proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
- break;
- case 0x99:
- value = 1532;
- proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
- break;
- default:
- if (octet<0x97){
- value = octet * 10;
- proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
- }else{
- proto_tree_add_text(subtree, tvb, offset, 1, "Maximum SDU size value 0x%x not defined in TS 24.008",octet);
- }
- }
- offset++;
-
- /* Maximum bit rate for uplink, octet 8 */
- octet = tvb_get_guint8(tvb,offset);
- if (octet == 0 ){
- proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for uplink/Reserved" );
- }else{
- proto_tree_add_uint(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
- }
- offset++;
- /* Maximum bit rate for downlink, octet 9 (see 3GPP TS 23.107) */
- octet = tvb_get_guint8(tvb,offset);
- if (octet == 0 ){
- proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for downlink/Reserved" );
- }else{
- proto_tree_add_uint(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
- }
- offset++;
- /* Residual Bit Error Rate (BER), octet 10 (see 3GPP TS 23.107) Bits 8 7 6 5 */
- proto_tree_add_item(subtree, hf_gsm_map_qos_ber, tvb, offset, 1, ENC_BIG_ENDIAN);
- /* SDU error ratio, octet 10 (see 3GPP TS 23.107) */
- proto_tree_add_item(subtree, hf_gsm_map_qos_sdu_err_rat, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset++;
-
- /* Transfer delay, octet 11 (See 3GPP TS 23.107) Bits 8 7 6 5 4 3 */
- proto_tree_add_item(subtree, hf_gsm_map_qos_transfer_delay, tvb, offset, 1, ENC_BIG_ENDIAN);
- /* Traffic handling priority, octet 11 (see 3GPP TS 23.107) Bits 2 1 */
- proto_tree_add_item(subtree, hf_gsm_map_qos_traff_hdl_pri, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset++;
-
- /* Guaranteed bit rate for uplink, octet 12 (See 3GPP TS 23.107)
- Coding is identical to that of Maximum bit rate for uplink.
- */
- octet = tvb_get_guint8(tvb,offset);
- if (octet == 0 ){
- proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for uplink/Reserved" );
- }else{
- proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
- }
- offset++;
-
- /* Guaranteed bit rate for downlink, octet 13(See 3GPP TS 23.107)
- Coding is identical to that of Maximum bit rate for uplink.
- */
- octet = tvb_get_guint8(tvb,offset);
- if (octet == 0 ){
- proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for downlink/Reserved" );
- }else{
- proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
- }
+ int offset = 0;
+ proto_tree *subtree;
+ guint8 octet;
+ guint16 value;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext_qos_subscribed);
+ /* OCTET 1:
+ Allocation/Retention Priority (This octet encodes each priority level defined in
+ 23.107 as the binary value of the priority level, declaration in 29.060)
+ Octets 2-9 are coded according to 3GPP TS 24.008[35] Quality of Service Octets
+ 6-13.
+ */
+ /* Allocation/Retention Priority */
+ proto_tree_add_item(subtree, hf_gsm_map_ext_qos_subscribed_pri, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ /* Quality of Service Octets 6-13.( Octet 2 - 9 Here) */
+
+ /* Traffic class, octet 6 (see 3GPP TS 23.107) Bits 8 7 6 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_traffic_cls, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Delivery order, octet 6 (see 3GPP TS 23.107) Bits 5 4 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_del_order, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Delivery of erroneous SDUs, octet 6 (see 3GPP TS 23.107) Bits 3 2 1 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_del_of_err_sdu, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ /* Maximum SDU size, octet 7 (see 3GPP TS 23.107) */
+ octet = tvb_get_guint8(tvb,offset);
+ switch (octet){
+ case 0:
+ proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum SDU size/Reserved");
+ break;
+ case 0x93:
+ value = 1502;
+ proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
+ break;
+ case 0x98:
+ value = 1510;
+ proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
+ break;
+ case 0x99:
+ value = 1532;
+ proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
+ break;
+ default:
+ if (octet<0x97){
+ value = octet * 10;
+ proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
+ }else{
+ proto_tree_add_text(subtree, tvb, offset, 1, "Maximum SDU size value 0x%x not defined in TS 24.008",octet);
+ }
+ }
+ offset++;
+
+ /* Maximum bit rate for uplink, octet 8 */
+ octet = tvb_get_guint8(tvb,offset);
+ if (octet == 0 ){
+ proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for uplink/Reserved" );
+ }else{
+ proto_tree_add_uint(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
+ }
+ offset++;
+ /* Maximum bit rate for downlink, octet 9 (see 3GPP TS 23.107) */
+ octet = tvb_get_guint8(tvb,offset);
+ if (octet == 0 ){
+ proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for downlink/Reserved" );
+ }else{
+ proto_tree_add_uint(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
+ }
+ offset++;
+ /* Residual Bit Error Rate (BER), octet 10 (see 3GPP TS 23.107) Bits 8 7 6 5 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_ber, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* SDU error ratio, octet 10 (see 3GPP TS 23.107) */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_sdu_err_rat, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ /* Transfer delay, octet 11 (See 3GPP TS 23.107) Bits 8 7 6 5 4 3 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_transfer_delay, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Traffic handling priority, octet 11 (see 3GPP TS 23.107) Bits 2 1 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_traff_hdl_pri, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ /* Guaranteed bit rate for uplink, octet 12 (See 3GPP TS 23.107)
+ Coding is identical to that of Maximum bit rate for uplink.
+ */
+ octet = tvb_get_guint8(tvb,offset);
+ if (octet == 0 ){
+ proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for uplink/Reserved" );
+ }else{
+ proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
+ }
+ offset++;
+
+ /* Guaranteed bit rate for downlink, octet 13(See 3GPP TS 23.107)
+ Coding is identical to that of Maximum bit rate for uplink.
+ */
+ octet = tvb_get_guint8(tvb,offset);
+ if (octet == 0 ){
+ proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for downlink/Reserved" );
+ }else{
+ proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
+ }
}
@@ -507,47 +507,47 @@ other values reserved for future use
/* TS 23 032 Table 2a: Coding of Type of Shape */
static const value_string type_of_shape_vals[] = {
- { ELLIPSOID_POINT, "Ellipsoid Point"},
- { ELLIPSOID_POINT_WITH_UNCERT_CIRC, "Ellipsoid point with uncertainty Circle"},
- { ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE, "Ellipsoid point with uncertainty Ellipse"},
- { POLYGON, "Polygon"},
- { ELLIPSOID_POINT_WITH_ALT, "Ellipsoid point with altitude"},
- { ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID, "Ellipsoid point with altitude and uncertainty Ellipsoid"},
- { ELLIPSOID_ARC, "Ellipsoid Arc"},
- { 0, NULL }
+ { ELLIPSOID_POINT, "Ellipsoid Point"},
+ { ELLIPSOID_POINT_WITH_UNCERT_CIRC, "Ellipsoid point with uncertainty Circle"},
+ { ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE, "Ellipsoid point with uncertainty Ellipse"},
+ { POLYGON, "Polygon"},
+ { ELLIPSOID_POINT_WITH_ALT, "Ellipsoid point with altitude"},
+ { ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID, "Ellipsoid point with altitude and uncertainty Ellipsoid"},
+ { ELLIPSOID_ARC, "Ellipsoid Arc"},
+ { 0, NULL }
};
/* 3GPP TS 23.032 7.3.1 */
static const value_string sign_of_latitude_vals[] = {
- { 0, "North"},
- { 1, "South"},
- { 0, NULL }
+ { 0, "North"},
+ { 1, "South"},
+ { 0, NULL }
};
static const value_string dir_of_alt_vals[] = {
- { 0, "Altitude expresses height"},
- { 1, "Altitude expresses depth"},
- { 0, NULL }
+ { 0, "Altitude expresses height"},
+ { 1, "Altitude expresses depth"},
+ { 0, NULL }
};
static const value_string gsm_map_cbs_data_coding_scheme_coding_grp_vals[] = {
- { 0, "Coding Group 0(Language using the GSM 7 bit default alphabet)" },
- { 1, "Coding Group 1" },
- { 2, "Coding Group 2" },
- { 3, "Coding Group 3" },
- { 4, "General Data Coding indication" },
- { 5, "General Data Coding indication" },
- { 6, "General Data Coding indication" },
- { 7, "General Data Coding indication" },
- { 8, "Reserved" },
- { 9, "Message with User Data Header (UDH) structure" },
- { 10,"Reserved" },
- { 11,"Reserved" },
- { 12,"Reserved" },
- { 13,"Reserved" },
- { 14,"Defined by the WAP Forum" },
- { 15,"Data coding / message handling" },
- { 0, NULL}
+ { 0, "Coding Group 0(Language using the GSM 7 bit default alphabet)" },
+ { 1, "Coding Group 1" },
+ { 2, "Coding Group 2" },
+ { 3, "Coding Group 3" },
+ { 4, "General Data Coding indication" },
+ { 5, "General Data Coding indication" },
+ { 6, "General Data Coding indication" },
+ { 7, "General Data Coding indication" },
+ { 8, "Reserved" },
+ { 9, "Message with User Data Header (UDH) structure" },
+ { 10,"Reserved" },
+ { 11,"Reserved" },
+ { 12,"Reserved" },
+ { 13,"Reserved" },
+ { 14,"Defined by the WAP Forum" },
+ { 15,"Data coding / message handling" },
+ { 0, NULL}
};
static value_string_ext gsm_map_cbs_data_coding_scheme_coding_grp_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_data_coding_scheme_coding_grp_vals);
@@ -555,86 +555,86 @@ static value_string_ext gsm_map_cbs_data_coding_scheme_coding_grp_vals_ext = VAL
* Bits 3..0 indicate the language:
*/
static const value_string gsm_map_cbs_coding_grp0_lang_vals[] = {
- { 0, "German"},
- { 1, "English"},
- { 2, "Italian"},
- { 3, "French"},
- { 4, "Spanish"},
- { 5, "Dutch"},
- { 6, "Swedish"},
- { 7, "Danish"},
- { 8, "Portuguese"},
- { 9, "Finnish"},
- { 10, "Norwegian"},
- { 11, "Greek"},
- { 12, "Turkish"},
- { 13, "Hungarian"},
- { 14, "Polish"},
- { 15, "Language unspecified"},
- { 0, NULL }
+ { 0, "German"},
+ { 1, "English"},
+ { 2, "Italian"},
+ { 3, "French"},
+ { 4, "Spanish"},
+ { 5, "Dutch"},
+ { 6, "Swedish"},
+ { 7, "Danish"},
+ { 8, "Portuguese"},
+ { 9, "Finnish"},
+ { 10, "Norwegian"},
+ { 11, "Greek"},
+ { 12, "Turkish"},
+ { 13, "Hungarian"},
+ { 14, "Polish"},
+ { 15, "Language unspecified"},
+ { 0, NULL }
};
static value_string_ext gsm_map_cbs_coding_grp0_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp0_lang_vals);
static const value_string gsm_map_cbs_coding_grp1_lang_vals[] = {
- { 0, "GSM 7 bit default alphabet; message preceded by language indication"},
- { 1, "UCS2; message preceded by language indication"},
- { 2, "Reserved"},
- { 3, "Reserved"},
- { 4, "Reserved"},
- { 5, "Reserved"},
- { 6, "Reserved"},
- { 7, "Reserved"},
- { 8, "Reserved"},
- { 9, "Reserved"},
- { 10, "Reserved"},
- { 11, "Reserved"},
- { 12, "Reserved"},
- { 13, "Reserved"},
- { 14, "Reserved"},
- { 15, "Reserved"},
- { 0, NULL }
+ { 0, "GSM 7 bit default alphabet; message preceded by language indication"},
+ { 1, "UCS2; message preceded by language indication"},
+ { 2, "Reserved"},
+ { 3, "Reserved"},
+ { 4, "Reserved"},
+ { 5, "Reserved"},
+ { 6, "Reserved"},
+ { 7, "Reserved"},
+ { 8, "Reserved"},
+ { 9, "Reserved"},
+ { 10, "Reserved"},
+ { 11, "Reserved"},
+ { 12, "Reserved"},
+ { 13, "Reserved"},
+ { 14, "Reserved"},
+ { 15, "Reserved"},
+ { 0, NULL }
};
static value_string_ext gsm_map_cbs_coding_grp1_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp1_lang_vals);
static const value_string gsm_map_cbs_coding_grp2_lang_vals[] = {
- { 0, "Czech"},
- { 1, "Hebrew"},
- { 2, "Arabic"},
- { 3, "Russian"},
- { 4, "Icelandic"},
- { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 0, NULL }
+ { 0, "Czech"},
+ { 1, "Hebrew"},
+ { 2, "Arabic"},
+ { 3, "Russian"},
+ { 4, "Icelandic"},
+ { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 0, NULL }
};
static value_string_ext gsm_map_cbs_coding_grp2_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp2_lang_vals);
static const value_string gsm_map_cbs_coding_grp3_lang_vals[] = {
- { 0, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 1, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 2, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 3, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 4, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
- { 0, NULL }
+ { 0, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 1, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 2, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 3, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 4, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
+ { 0, NULL }
};
static value_string_ext gsm_map_cbs_coding_grp3_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp3_lang_vals);
@@ -651,31 +651,31 @@ static const true_false_string gsm_map_cbs_coding_grp4_7_class_ind_vals = {
/* Bits 3 and 2 indicate the character set being used, as follows: */
static const value_string gsm_map_cbs_coding_grp4_7_char_set_vals[] = {
- { 0, "GSM 7 bit default alphabet"},
- { 1, "8 bit data"},
- { 2, "UCS2 (16 bit)"},
- { 3, "Reserved"},
- { 0, NULL }
+ { 0, "GSM 7 bit default alphabet"},
+ { 1, "8 bit data"},
+ { 2, "UCS2 (16 bit)"},
+ { 3, "Reserved"},
+ { 0, NULL }
};
static const value_string gsm_map_cbs_coding_grp4_7_class_vals[] = {
- { 0, "Class 0"},
- { 1, "Class 1 Default meaning: ME-specific"},
- { 2, "Class 2 (U)SIM specific message"},
- { 3, "Class 3 Default meaning: TE-specific (see 3GPP TS 27.005"},
- { 0, NULL }
+ { 0, "Class 0"},
+ { 1, "Class 1 Default meaning: ME-specific"},
+ { 2, "Class 2 (U)SIM specific message"},
+ { 3, "Class 3 Default meaning: TE-specific (see 3GPP TS 27.005"},
+ { 0, NULL }
};
static const value_string gsm_map_cbs_coding_grp15_mess_code_vals[] = {
- { 0, "GSM 7 bit default alphabet"},
- { 1, "8 bit data"},
- { 0, NULL }
+ { 0, "GSM 7 bit default alphabet"},
+ { 1, "8 bit data"},
+ { 0, NULL }
};
static const value_string gsm_map_cbs_coding_grp15_class_vals[] = {
- { 0, "GSM 7 bit default alphabet"},
- { 1, "8 bit data"},
- { 0, NULL }
+ { 0, "GSM 7 bit default alphabet"},
+ { 1, "8 bit data"},
+ { 0, NULL }
};
@@ -683,161 +683,161 @@ static const value_string gsm_map_cbs_coding_grp15_class_vals[] = {
guint8
dissect_cbs_data_coding_scheme(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint16 offset)
{
- guint8 octet;
- guint8 coding_grp;
- guint8 character_set;
-
- octet = tvb_get_guint8(tvb,offset);
- coding_grp = octet >>4;
- proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp, tvb, offset, 1, ENC_BIG_ENDIAN);
-
- sms_encoding = SMS_ENCODING_NOT_SET;
- switch (coding_grp){
- case 0:
- proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp0_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
- sms_encoding = SMS_ENCODING_7BIT;
- break;
- case 1:
- proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp1_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
- if ((octet & 0x0f)== 0){
- sms_encoding = SMS_ENCODING_7BIT_LANG;
- }else{
- sms_encoding = SMS_ENCODING_UCS2_LANG;
- }
- break;
- case 2:
- proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp2_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
- sms_encoding = SMS_ENCODING_7BIT;
- break;
- case 3:
- proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp3_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
- sms_encoding = SMS_ENCODING_7BIT;
- break;
- /* Coding_grp 01xx */
- case 4:
- /* FALLTHRU */
- case 5:
- /* FALLTHRU */
- case 6:
- /* FALLTHRU */
- case 7:
- /* FALLTHRU */
- proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_comp, tvb, offset, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class_ind, tvb, offset, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, offset, 1, ENC_BIG_ENDIAN);
- if ((octet & 0x10)== 0x10){
- proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, offset, 1, ENC_BIG_ENDIAN);
- }
- /* Bits 3 and 2 indicate the character set being used, */
- character_set = (octet&0x0c)>>2;
- switch (character_set){
- case 0:
- /* GSM 7 bit default alphabet */
- sms_encoding = SMS_ENCODING_7BIT;
- break;
- case 1:
- /* 8 bit data */
- sms_encoding = SMS_ENCODING_8BIT;
- break;
- case 2:
- /* UCS2 (16 bit) */
- sms_encoding = SMS_ENCODING_UCS2;
- break;
- case 3:
- /* Reserved */
- sms_encoding = SMS_ENCODING_NOT_SET;
- break;
- default:
- break;
- }
- break;
- case 8:
- /* Reserved coding groups */
- break;
- case 9:
- /* Message with User Data Header (UDH) structure:*/
- proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, offset, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, offset, 1, ENC_BIG_ENDIAN);
- character_set = (octet&0x0c)>>2;
- switch (character_set){
- case 0:
- /* GSM 7 bit default alphabet */
- sms_encoding = SMS_ENCODING_7BIT;
- break;
- case 1:
- /* 8 bit data */
- sms_encoding = SMS_ENCODING_8BIT;
- break;
- case 2:
- /* UCS2 (16 bit) */
- sms_encoding = SMS_ENCODING_UCS2;
- break;
- case 3:
- /* Reserved */
- sms_encoding = SMS_ENCODING_NOT_SET;
- break;
- default:
- break;
- }
- break;
- case 10:
- /* FALLTHRU */
- case 11:
- /* FALLTHRU */
- case 12:
- /* FALLTHRU */
- case 13:
- /* FALLTHRU */
- /* 1010..1101 Reserved coding groups */
- break;
- case 14:
- /* Defined by the WAP Forum
- * "Wireless Datagram Protocol Specification", Wireless Application Protocol Forum Ltd.
- */
- break;
- case 15:
- /* Data coding / message handling */
- proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_mess_code, tvb, offset, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_class, tvb, offset, 1, ENC_BIG_ENDIAN);
- character_set = (octet&0x04)>>2;
- if (character_set == 0){
- sms_encoding = SMS_ENCODING_7BIT;
- }else{
- sms_encoding = SMS_ENCODING_8BIT;
- }
- break;
- default:
- break;
- }
-
- return sms_encoding;
+ guint8 octet;
+ guint8 coding_grp;
+ guint8 character_set;
+
+ octet = tvb_get_guint8(tvb,offset);
+ coding_grp = octet >>4;
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+ sms_encoding = SMS_ENCODING_NOT_SET;
+ switch (coding_grp){
+ case 0:
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp0_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
+ sms_encoding = SMS_ENCODING_7BIT;
+ break;
+ case 1:
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp1_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
+ if ((octet & 0x0f)== 0){
+ sms_encoding = SMS_ENCODING_7BIT_LANG;
+ }else{
+ sms_encoding = SMS_ENCODING_UCS2_LANG;
+ }
+ break;
+ case 2:
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp2_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
+ sms_encoding = SMS_ENCODING_7BIT;
+ break;
+ case 3:
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp3_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
+ sms_encoding = SMS_ENCODING_7BIT;
+ break;
+ /* Coding_grp 01xx */
+ case 4:
+ /* FALLTHRU */
+ case 5:
+ /* FALLTHRU */
+ case 6:
+ /* FALLTHRU */
+ case 7:
+ /* FALLTHRU */
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_comp, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class_ind, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, offset, 1, ENC_BIG_ENDIAN);
+ if ((octet & 0x10)== 0x10){
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, offset, 1, ENC_BIG_ENDIAN);
+ }
+ /* Bits 3 and 2 indicate the character set being used, */
+ character_set = (octet&0x0c)>>2;
+ switch (character_set){
+ case 0:
+ /* GSM 7 bit default alphabet */
+ sms_encoding = SMS_ENCODING_7BIT;
+ break;
+ case 1:
+ /* 8 bit data */
+ sms_encoding = SMS_ENCODING_8BIT;
+ break;
+ case 2:
+ /* UCS2 (16 bit) */
+ sms_encoding = SMS_ENCODING_UCS2;
+ break;
+ case 3:
+ /* Reserved */
+ sms_encoding = SMS_ENCODING_NOT_SET;
+ break;
+ default:
+ break;
+ }
+ break;
+ case 8:
+ /* Reserved coding groups */
+ break;
+ case 9:
+ /* Message with User Data Header (UDH) structure:*/
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, offset, 1, ENC_BIG_ENDIAN);
+ character_set = (octet&0x0c)>>2;
+ switch (character_set){
+ case 0:
+ /* GSM 7 bit default alphabet */
+ sms_encoding = SMS_ENCODING_7BIT;
+ break;
+ case 1:
+ /* 8 bit data */
+ sms_encoding = SMS_ENCODING_8BIT;
+ break;
+ case 2:
+ /* UCS2 (16 bit) */
+ sms_encoding = SMS_ENCODING_UCS2;
+ break;
+ case 3:
+ /* Reserved */
+ sms_encoding = SMS_ENCODING_NOT_SET;
+ break;
+ default:
+ break;
+ }
+ break;
+ case 10:
+ /* FALLTHRU */
+ case 11:
+ /* FALLTHRU */
+ case 12:
+ /* FALLTHRU */
+ case 13:
+ /* FALLTHRU */
+ /* 1010..1101 Reserved coding groups */
+ break;
+ case 14:
+ /* Defined by the WAP Forum
+ * "Wireless Datagram Protocol Specification", Wireless Application Protocol Forum Ltd.
+ */
+ break;
+ case 15:
+ /* Data coding / message handling */
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_mess_code, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_class, tvb, offset, 1, ENC_BIG_ENDIAN);
+ character_set = (octet&0x04)>>2;
+ if (character_set == 0){
+ sms_encoding = SMS_ENCODING_7BIT;
+ }else{
+ sms_encoding = SMS_ENCODING_8BIT;
+ }
+ break;
+ default:
+ break;
+ }
+
+ return sms_encoding;
}
void
dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
{
- const char *digit_str;
- guint8 octet;
- guint8 na;
- guint8 np;
+ const char *digit_str;
+ guint8 octet;
+ guint8 na;
+ guint8 np;
- proto_tree_add_item(tree, hf_gsm_map_extension, tvb, 0,1,ENC_BIG_ENDIAN);
- proto_tree_add_item(tree, hf_gsm_map_nature_of_number, tvb, 0,1,ENC_BIG_ENDIAN);
- proto_tree_add_item(tree, hf_gsm_map_number_plan, tvb, 0,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_extension, tvb, 0,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_nature_of_number, tvb, 0,1,ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gsm_map_number_plan, tvb, 0,1,ENC_BIG_ENDIAN);
- if(tvb_length(tvb)==1)
- return;
+ if(tvb_length(tvb)==1)
+ return;
- digit_str = unpack_digits(tvb, 1);
+ digit_str = unpack_digits(tvb, 1);
- proto_tree_add_string(tree, hf_gsm_map_address_digits, tvb, 1, -1, digit_str);
+ proto_tree_add_string(tree, hf_gsm_map_address_digits, tvb, 1, -1, digit_str);
- octet = tvb_get_guint8(tvb,0);
- na = (octet & 0x70)>>4;
- np = octet & 0x0f;
- if ((na == 1) && (np==1))/*International Number & E164*/
- dissect_e164_cc(tvb, tree, 1, TRUE);
- else if(np==6)
- dissect_e212_mcc_mnc_in_address(tvb, pinfo, tree, 1);
+ octet = tvb_get_guint8(tvb,0);
+ na = (octet & 0x70)>>4;
+ np = octet & 0x0f;
+ if ((na == 1) && (np==1))/*International Number & E164*/
+ dissect_e164_cc(tvb, tree, 1, TRUE);
+ else if(np==6)
+ dissect_e212_mcc_mnc_in_address(tvb, pinfo, tree, 1);
}
@@ -864,36 +864,36 @@ static const true_false_string gsm_map_extension_value = {
"Extension"
};
static const value_string gsm_map_nature_of_number_values[] = {
- { 0x00, "unknown" },
- { 0x01, "International Number" },
- { 0x02, "National Significant Number" },
- { 0x03, "Network Specific Number" },
- { 0x04, "Subscriber Number" },
- { 0x05, "Reserved" },
- { 0x06, "Abbreviated Number" },
- { 0x07, "Reserved for extension" },
- { 0, NULL }
+ { 0x00, "unknown" },
+ { 0x01, "International Number" },
+ { 0x02, "National Significant Number" },
+ { 0x03, "Network Specific Number" },
+ { 0x04, "Subscriber Number" },
+ { 0x05, "Reserved" },
+ { 0x06, "Abbreviated Number" },
+ { 0x07, "Reserved for extension" },
+ { 0, NULL }
};
static value_string_ext gsm_map_nature_of_number_values_ext = VALUE_STRING_EXT_INIT(gsm_map_nature_of_number_values);
static const value_string gsm_map_number_plan_values[] = {
- { 0x00, "unknown" },
- { 0x01, "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
- { 0x02, "spare" },
- { 0x03, "Data Numbering (ITU-T Rec. X.121)" },
- { 0x04, "Telex Numbering (ITU-T Rec. F.69)" },
- { 0x05, "spare" },
- { 0x06, "Land Mobile Numbering (ITU-T Rec. E.212)" },
- { 0x07, "spare" },
- { 0x08, "National Numbering" },
- { 0x09, "Private Numbering" },
- { 0x0a, "spare" },
- { 0x0b, "spare" },
- { 0x0c, "spare" },
- { 0x0d, "spare" },
- { 0x0e, "spare" },
- { 0x0f, "Reserved for extension" },
- { 0, NULL }
+ { 0x00, "unknown" },
+ { 0x01, "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
+ { 0x02, "spare" },
+ { 0x03, "Data Numbering (ITU-T Rec. X.121)" },
+ { 0x04, "Telex Numbering (ITU-T Rec. F.69)" },
+ { 0x05, "spare" },
+ { 0x06, "Land Mobile Numbering (ITU-T Rec. E.212)" },
+ { 0x07, "spare" },
+ { 0x08, "National Numbering" },
+ { 0x09, "Private Numbering" },
+ { 0x0a, "spare" },
+ { 0x0b, "spare" },
+ { 0x0c, "spare" },
+ { 0x0d, "spare" },
+ { 0x0e, "spare" },
+ { 0x0f, "Reserved for extension" },
+ { 0, NULL }
};
static value_string_ext gsm_map_number_plan_values_ext = VALUE_STRING_EXT_INIT(gsm_map_number_plan_values);
@@ -921,9 +921,9 @@ static const true_false_string gsm_map_Ss_Status_a_values = {
const gchar* gsm_map_opr_code(guint32 val, proto_item *item) {
switch (val) {
case 44: /*mt-forwardSM*/
- /* FALLTHRU */
+ /* FALLTHRU */
case 46: /*mo-forwardSM*/
- /* FALLTHRU */
+ /* FALLTHRU */
if (application_context_version < 3) {
proto_item_set_text(item, "%s (%d)", val_to_str_const(val, gsm_map_V1V2_opr_code_strings, "Unknown GSM-MAP opcode"), val);
return val_to_str_const(val, gsm_map_V1V2_opr_code_strings, "Unknown GSM-MAP opcode");
@@ -937,11 +937,11 @@ const gchar* gsm_map_opr_code(guint32 val, proto_item *item) {
/* Prototype for a decoding function */
typedef int (* dissect_function_t)( gboolean,
- tvbuff_t *,
- int ,
- asn1_ctx_t *,
- proto_tree *,
- int);
+ tvbuff_t *,
+ int ,
+ asn1_ctx_t *,
+ proto_tree *,
+ int);
/*
* Dissect Multiple Choice Message
@@ -962,12 +962,12 @@ typedef int (* dissect_function_t)( gboolean,
* if the decoding function is provided (so not a NULL function)
*/
static int dissect_mc_message(tvbuff_t *tvb,
- int offset,
- asn1_ctx_t *actx,
- proto_tree *tree,
- gboolean implicit_param _U_, dissect_function_t parameter, int hf_index_param _U_,
- gboolean implicit_seq _U_, dissect_function_t sequence, int hf_index_seq _U_,
- gboolean implicit_seq3 _U_, dissect_function_t sequence3, int hf_index_seq3 _U_ )
+ int offset,
+ asn1_ctx_t *actx,
+ proto_tree *tree,
+ gboolean implicit_param _U_, dissect_function_t parameter, int hf_index_param _U_,
+ gboolean implicit_seq _U_, dissect_function_t sequence, int hf_index_seq _U_,
+ gboolean implicit_seq3 _U_, dissect_function_t sequence3, int hf_index_seq3 _U_ )
{
guint8 octet;
gint8 bug_class;
@@ -1011,9 +1011,9 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
break;
case 3: /*cancelLocation*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
- FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
- TRUE , dissect_gsm_map_ms_CancelLocationArg, -1);/*undefined*/
+ FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
+ FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
+ TRUE , dissect_gsm_map_ms_CancelLocationArg, -1);/*undefined*/
break;
case 4: /*provideRoamingNumber*/
offset=dissect_gsm_map_ch_ProvideRoamingNumberArg(FALSE, tvb, offset, actx, tree, -1);
@@ -1069,11 +1069,11 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(FALSE, tvb, offset, actx, tree, -1);
break;
case 22: /*sendRoutingInfo*/
- if (application_context_version == 3){
- offset=dissect_gsm_map_ch_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1);
- }else{
- offset=dissect_gsm_old_SendRoutingInfoArgV2(FALSE, tvb, offset, actx, tree, -1);
- }
+ if (application_context_version == 3){
+ offset=dissect_gsm_map_ch_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1);
+ }else{
+ offset=dissect_gsm_old_SendRoutingInfoArgV2(FALSE, tvb, offset, actx, tree, -1);
+ }
break;
case 23: /*updateGprsLocation*/
offset=dissect_gsm_map_ms_UpdateGprsLocationArg(FALSE, tvb, offset, actx, tree, -1);
@@ -1091,9 +1091,9 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
/* reserved performHandover (28) */
case 29: /*sendEndSignal*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, NULL, -1,
- FALSE, dissect_gsm_old_Bss_APDU, -1,
- TRUE , dissect_gsm_map_ms_SendEndSignal_Arg, -1);
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_old_Bss_APDU, -1,
+ TRUE , dissect_gsm_map_ms_SendEndSignal_Arg, -1);
break;
/* reserved performSubsequentHandover (30) */
case 31: /*provideSIWFSNumber*/
@@ -1104,15 +1104,15 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
break;
case 33: /*processAccessSignalling*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, NULL, -1,
- FALSE, dissect_gsm_old_Bss_APDU, -1,
- TRUE , dissect_gsm_map_ms_ProcessAccessSignalling_Arg, -1);
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_old_Bss_APDU, -1,
+ TRUE , dissect_gsm_map_ms_ProcessAccessSignalling_Arg, -1);
break;
case 34: /*forwardAccessSignalling*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, NULL, -1,
- FALSE, dissect_gsm_old_Bss_APDU, -1,
- TRUE , dissect_gsm_map_ms_ForwardAccessSignalling_Arg, -1);
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_old_Bss_APDU, -1,
+ TRUE , dissect_gsm_map_ms_ForwardAccessSignalling_Arg, -1);
break;
/* reserved noteInternalHandover (35) */
case 36: /*cancelVcsgLocation*/
@@ -1175,13 +1175,13 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
break;
/* reserved noteSubscriberPresent (48) */
/* reserved alertServiceCentreWithoutResult (49)
- * ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
- * -- alertServiceCentreWithoutResult must not be used in
- * -- version greater 1
- */
+ * ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
+ * -- alertServiceCentreWithoutResult must not be used in
+ * -- version greater 1
+ */
case 49:
- offset = dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset = dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 50: /*activateTraceMode*/
offset=dissect_gsm_map_om_ActivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1);
break;
@@ -1198,15 +1198,15 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
break;
case 55: /*sendIdentification*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, dissect_gsm_map_TMSI, hf_gsm_map_tmsi,
- FALSE, dissect_gsm_map_ms_SendIdentificationArg, -1,
- TRUE, NULL, -1);
+ FALSE, dissect_gsm_map_TMSI, hf_gsm_map_tmsi,
+ FALSE, dissect_gsm_map_ms_SendIdentificationArg, -1,
+ TRUE, NULL, -1);
break;
case 56: /*sendAuthenticationInfo*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
- FALSE, dissect_gsm_map_ms_SendAuthenticationInfoArg, -1,
- TRUE, NULL, -1);
+ FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
+ FALSE, dissect_gsm_map_ms_SendAuthenticationInfoArg, -1,
+ TRUE, NULL, -1);
break;
case 57: /*restoreData*/
offset=dissect_gsm_map_ms_RestoreDataArg(FALSE, tvb, offset, actx, tree, -1);
@@ -1240,21 +1240,21 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
break;
case 67: /*purgeMS*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
- FALSE, dissect_gsm_old_PurgeMSArgV2, -1, /*undefined*/
- TRUE , dissect_gsm_map_ms_PurgeMS_Arg, -1);
+ FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
+ FALSE, dissect_gsm_old_PurgeMSArgV2, -1, /*undefined*/
+ TRUE , dissect_gsm_map_ms_PurgeMS_Arg, -1);
break;
case 68: /*prepareHandover*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, NULL, -1,
- FALSE, dissect_gsm_old_PrepareHO_ArgOld, -1,
- TRUE, dissect_gsm_map_ms_PrepareHO_Arg, -1);
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_old_PrepareHO_ArgOld, -1,
+ TRUE, dissect_gsm_map_ms_PrepareHO_Arg, -1);
break;
case 69: /*prepareSubsequentHandover*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, NULL, -1,
- FALSE, NULL, -1,
- TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg, -1);
+ FALSE, NULL, -1,
+ FALSE, NULL, -1,
+ TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg, -1);
break;
case 70: /*provideSubscriberInfo*/
offset=dissect_gsm_map_ms_ProvideSubscriberInfoArg(FALSE, tvb, offset, actx, tree, -1);
@@ -1342,7 +1342,7 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
offset=dissect_gsm_ss_AccessRegisterCCEntryArg(FALSE, tvb, offset, actx, tree, -1);
break;
case 120: /*SS-protocol forwardCUG-Info*/
- application_context_version = 3;
+ application_context_version = 3;
offset=dissect_gsm_ss_ForwardCUG_InfoArg(FALSE, tvb, offset, actx, tree, -1);
break;
case 121: /*SS-protocol splitMPTY no Argument*/
@@ -1362,9 +1362,9 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
if(!dissector_try_uint(map_prop_arg_opcode_table, (guint8)opcode, tvb, actx->pinfo, tree)){
proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData,
tvb, offset, -1, "Unknown invokeData %d", opcode);
- }
- offset+= tvb_length_remaining(tvb,offset);
- break;
+ }
+ offset+= tvb_length_remaining(tvb,offset);
+ break;
}
return offset;
}
@@ -1375,18 +1375,18 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,
switch(opcode){
case 2: /*updateLocation*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
- FALSE, dissect_gsm_map_ms_UpdateLocationRes, -1,
- TRUE , NULL, -1);
+ FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
+ FALSE, dissect_gsm_map_ms_UpdateLocationRes, -1,
+ TRUE , NULL, -1);
break;
case 3: /*cancelLocation*/
offset=dissect_gsm_map_ms_CancelLocationRes(FALSE, tvb, offset, actx, tree, -1);
break;
case 4: /*provideRoamingNumber*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, dissect_gsm_map_ISDN_AddressString, hf_gsm_map_msisdn,
- FALSE, dissect_gsm_map_ch_ProvideRoamingNumberRes, -1,
- TRUE , NULL, -1);/*undefined*/
+ FALSE, dissect_gsm_map_ISDN_AddressString, hf_gsm_map_msisdn,
+ FALSE, dissect_gsm_map_ch_ProvideRoamingNumberRes, -1,
+ TRUE , NULL, -1);/*undefined*/
break;
case 5: /*noteSubscriberDataModified*/
offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(FALSE, tvb, offset, actx, tree, -1);
@@ -1400,11 +1400,11 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,
case 8: /*deleteSubscriberData*/
offset=dissect_gsm_map_ms_DeleteSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
break;
- /* TODO find out why this isn't in the ASN1 file
+ /* TODO find out why this isn't in the ASN1 file
case 9: sendParameters
offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
break;
- */
+ */
case 10: /*registerSS*/
offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
break;
@@ -1440,18 +1440,18 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,
offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(FALSE, tvb, offset, actx, tree, -1);
break;
case 22: /*sendRoutingInfo*/
- if (application_context_version == 3){
- /* If the tag is missing use SendRoutingInfoRes_U */
- offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, NULL, -1,
- FALSE, dissect_gsm_map_ch_SendRoutingInfoRes_U, -1,
- TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
- }else{
- offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
- FALSE, dissect_gsm_old_SendRoutingInfoResV2, -1,
- TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
- }
+ if (application_context_version == 3){
+ /* If the tag is missing use SendRoutingInfoRes_U */
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_map_ch_SendRoutingInfoRes_U, -1,
+ TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
+ }else{
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
+ FALSE, dissect_gsm_old_SendRoutingInfoResV2, -1,
+ TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
+ }
break;
case 23: /*updateGprsLocation*/
offset=dissect_gsm_map_ms_UpdateGprsLocationRes(FALSE, tvb, offset, actx, tree, -1);
@@ -1466,9 +1466,9 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,
offset=dissect_gsm_map_ms_NoteMsPresentForGprsRes(FALSE, tvb, offset, actx, tree, -1);
break;
case 29: /*sendEndSignal*/
- /* Taken from MAP-MobileServiceOperations{ 0 identified-organization (4) etsi (0) mobileDomain
- * (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) version9 (9) }
- */
+ /* Taken from MAP-MobileServiceOperations{ 0 identified-organization (4) etsi (0) mobileDomain
+ * (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) version9 (9) }
+ */
offset=dissect_gsm_map_ms_SendEndSignal_Res(FALSE, tvb, offset, actx, tree, -1);
break;
case 31: /*provideSIWFSNumber*/
@@ -1488,9 +1488,9 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,
break;
case 43: /*checkIMEI*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, dissect_gsm_map_ms_EquipmentStatus, hf_gsm_map_ms_equipmentStatus,
- FALSE, dissect_gsm_map_ms_CheckIMEI_Res, -1,
- TRUE, NULL, -1);
+ FALSE, dissect_gsm_map_ms_EquipmentStatus, hf_gsm_map_ms_equipmentStatus,
+ FALSE, dissect_gsm_map_ms_CheckIMEI_Res, -1,
+ TRUE, NULL, -1);
break;
case 44: /*mt-forwardSM*/
offset=dissect_gsm_map_sm_MT_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1);
@@ -1503,10 +1503,9 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,
break;
case 47: /*reportSM-DeliveryStatus*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, dissect_gsm_map_ISDN_AddressString, hf_gsm_map_sm_storedMSISDN,
- FALSE, dissect_gsm_map_sm_ReportSM_DeliveryStatusRes, -1,
- FALSE, NULL, -1);/*undefined*/
-
+ FALSE, dissect_gsm_map_ISDN_AddressString, hf_gsm_map_sm_storedMSISDN,
+ FALSE, dissect_gsm_map_sm_ReportSM_DeliveryStatusRes, -1,
+ FALSE, NULL, -1);/*undefined*/
break;
case 48: /*noteSubscriberPresent*/
break;
@@ -1521,15 +1520,15 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,
break;
case 55: /*sendIdentification */
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
- FALSE, dissect_gsm_old_SendIdentificationResV2, -1,/*undefined*/
- TRUE, dissect_gsm_map_ms_SendIdentificationRes, -1);
+ FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
+ FALSE, dissect_gsm_old_SendIdentificationResV2, -1,/*undefined*/
+ TRUE, dissect_gsm_map_ms_SendIdentificationRes, -1);
break;
case 56: /*sendAuthenticationInfo*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, NULL, -1,
- FALSE, dissect_gsm_old_SendAuthenticationInfoResOld, -1,
- TRUE , dissect_gsm_map_ms_SendAuthenticationInfoRes, -1);
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_old_SendAuthenticationInfoResOld, -1,
+ TRUE , dissect_gsm_map_ms_SendAuthenticationInfoRes, -1);
break;
case 57: /*restoreData*/
offset=dissect_gsm_map_ms_RestoreDataRes(FALSE, tvb, offset, actx, tree, -1);
@@ -1564,15 +1563,15 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,
break;
case 68: /*prepareHandover*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, NULL, -1,
- FALSE, dissect_gsm_old_PrepareHO_ResOld, -1,
- TRUE , dissect_gsm_map_ms_PrepareHO_Res, -1);
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_old_PrepareHO_ResOld, -1,
+ TRUE , dissect_gsm_map_ms_PrepareHO_Res, -1);
break;
case 69: /*prepareSubsequentHandover*/
offset=dissect_mc_message(tvb, offset, actx, tree,
- FALSE, NULL, -1,
- FALSE, NULL, -1,
- TRUE , dissect_gsm_map_ms_PrepareSubsequentHO_Res, -1);
+ FALSE, NULL, -1,
+ FALSE, NULL, -1,
+ TRUE , dissect_gsm_map_ms_PrepareSubsequentHO_Res, -1);
break;
case 70: /*provideSubscriberInfo*/
offset=dissect_gsm_map_ms_ProvideSubscriberInfoRes(FALSE, tvb, offset, actx, tree, -1);
@@ -1626,10 +1625,10 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,
offset=dissect_gsm_map_ms_NoteMM_EventRes(FALSE, tvb, offset, actx, tree, -1);
break;
case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
- /* No parameter */
+ /* No parameter */
break;
case 110: /*SS-protocol lcs-LocationUpdate*/
- offset=dissect_gsm_ss_LCS_LocationUpdateRes(FALSE, tvb, offset, actx, tree, -1);
+ offset=dissect_gsm_ss_LCS_LocationUpdateRes(FALSE, tvb, offset, actx, tree, -1);
break;
case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
offset=dissect_gsm_ss_LCS_PeriodicLocationRequestRes(FALSE, tvb, offset, actx, tree, -1);
@@ -1654,7 +1653,7 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,
offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
break;
case 120: /*SS-protocol forwardCUG-Info*/
- /* No RETURN RESULT*/
+ /* No RETURN RESULT*/
break;
case 121: /*SS-protocol splitMPTY no RESULT*/
break;
@@ -1686,158 +1685,158 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,
switch(errorCode){
case 1: /* UnknownSubscriberParam */
- offset=dissect_gsm_map_er_UnknownSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_UnknownSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 4: /* SecureTransportErrorParam */
- offset=dissect_gsm_old_SecureTransportErrorParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_old_SecureTransportErrorParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 5: /* UnidentifiedSubParam */
- offset=dissect_gsm_map_er_UnidentifiedSubParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_UnidentifiedSubParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 6: /* AbsentSubscriberSM-Param */
- offset=dissect_gsm_map_er_AbsentSubscriberSM_Param(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_AbsentSubscriberSM_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 8: /* RoamingNotAllowedParam */
- offset=dissect_gsm_map_er_RoamingNotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_RoamingNotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 9: /* IllegalSubscriberParam */
- offset=dissect_gsm_map_er_IllegalSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_IllegalSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 10: /* BearerServNotProvParam */
- offset=dissect_gsm_map_er_BearerServNotProvParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_BearerServNotProvParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 11: /* TeleservNotProvParam */
- offset=dissect_gsm_map_er_TeleservNotProvParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_TeleservNotProvParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 12: /* IllegalEquipmentParam */
- offset=dissect_gsm_map_er_IllegalEquipmentParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_IllegalEquipmentParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 13: /* CallBarredParam */
- offset=dissect_gsm_map_er_CallBarredParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_CallBarredParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 14: /* ForwardingViolationParam */
- offset=dissect_gsm_map_er_ForwardingViolationParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_ForwardingViolationParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 15: /* CUG-RejectParam */
- offset=dissect_gsm_map_er_CUG_RejectParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_CUG_RejectParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 16: /* IllegalSS-OperationParam */
- offset=dissect_gsm_map_er_IllegalSS_OperationParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_IllegalSS_OperationParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 17: /* SS-ErrorStatus */
- offset=dissect_gsm_map_ss_SS_Status(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_ss_Status);
- break;
+ offset=dissect_gsm_map_ss_SS_Status(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_ss_Status);
+ break;
case 18: /* SS-NotAvailableParam */
- offset=dissect_gsm_map_er_SS_NotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_SS_NotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 19: /* SS-SubscriptionViolationParam */
- offset=dissect_gsm_map_er_SS_SubscriptionViolationParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_SS_SubscriptionViolationParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 20: /* SS-IncompatibilityCause */
- offset=dissect_gsm_map_er_SS_IncompatibilityCause(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_SS_IncompatibilityCause(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 21: /* FacilityNotSupParam */
- offset=dissect_gsm_map_er_FacilityNotSupParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_FacilityNotSupParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 22: /* OngoingGroupCallParam */
offset=dissect_gsm_map_er_OngoingGroupCallParam(FALSE, tvb, offset, actx, tree, -1);
break;
case 27: /* AbsentSubscriberParam */
- offset=dissect_gsm_map_er_AbsentSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_AbsentSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 28: /* IncompatibleTerminalParam */
- offset=dissect_gsm_map_er_IncompatibleTerminalParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_IncompatibleTerminalParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 29: /* ShortTermDenialParam */
- offset=dissect_gsm_map_er_ShortTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_ShortTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 30: /* LongTermDenialParam */
- offset=dissect_gsm_map_er_LongTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_LongTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 31: /* SubBusyForMT-SMS-Param */
- offset=dissect_gsm_map_er_SubBusyForMT_SMS_Param(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_SubBusyForMT_SMS_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 32: /* SM-DeliveryFailureCause */
- offset=dissect_gsm_map_er_SM_DeliveryFailureCause(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_SM_DeliveryFailureCause(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 33: /* MessageWaitListFullParam */
- offset=dissect_gsm_map_er_MessageWaitListFullParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_MessageWaitListFullParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 34: /* SystemFailureParam */
- offset=dissect_gsm_map_er_SystemFailureParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_SystemFailureParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 35: /* DataMissingParam */
- offset=dissect_gsm_map_er_DataMissingParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_DataMissingParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 36: /* UnexpectedDataParam */
- offset=dissect_gsm_map_er_UnexpectedDataParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_UnexpectedDataParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 37: /* PW-RegistrationFailureCause */
- offset=dissect_gsm_map_er_PW_RegistrationFailureCause(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_PW_RegistrationFailureCause(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 39: /* NoRoamingNbParam */
- offset=dissect_gsm_map_er_NoRoamingNbParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_NoRoamingNbParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 40: /* TracingBufferFullParam */
- offset=dissect_gsm_map_er_TracingBufferFullParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_TracingBufferFullParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 42: /* TargetCellOutsideGCA-Param */
- offset=dissect_gsm_map_er_TargetCellOutsideGCA_Param(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_TargetCellOutsideGCA_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 44: /* NumberChangedParam */
- offset=dissect_gsm_map_er_NumberChangedParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_NumberChangedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 45: /* BusySubscriberParam */
- offset=dissect_gsm_map_er_BusySubscriberParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_BusySubscriberParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 46: /* NoSubscriberReplyParam */
- offset=dissect_gsm_map_er_NoSubscriberReplyParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_NoSubscriberReplyParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 47: /* ForwardingFailedParam */
- offset=dissect_gsm_map_er_ForwardingFailedParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_ForwardingFailedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 48: /* OR-NotAllowedParam */
- offset=dissect_gsm_map_er_OR_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_OR_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 49: /* ATI-NotAllowedParam */
- offset=dissect_gsm_map_er_ATI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_ATI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 50: /* NoGroupCallNbParam */
- offset=dissect_gsm_map_er_NoGroupCallNbParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_NoGroupCallNbParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 51: /* ResourceLimitationParam */
- offset=dissect_gsm_map_er_ResourceLimitationParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_ResourceLimitationParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 52: /* UnauthorizedRequestingNetwork-Param */
- offset=dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 53: /* UnauthorizedLCSClient-Param */
- offset=dissect_gsm_map_er_UnauthorizedLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_UnauthorizedLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 54: /* PositionMethodFailure-Param */
- offset=dissect_gsm_map_er_PositionMethodFailure_Param(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_PositionMethodFailure_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 58: /* UnknownOrUnreachableLCSClient-Param */
- offset=dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 59: /* MM-EventNotSupported-Param */
- offset=dissect_gsm_map_er_MM_EventNotSupported_Param(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_MM_EventNotSupported_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 60: /* ATSI-NotAllowedParam */
- offset=dissect_gsm_map_er_ATSI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_ATSI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 61: /* ATM-NotAllowedParam */
- offset=dissect_gsm_map_er_ATM_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_ATM_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 62: /* InformationNotAvailableParam */
- offset=dissect_gsm_map_er_InformationNotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
- break;
+ offset=dissect_gsm_map_er_InformationNotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
default:
if(!dissector_try_uint(map_prop_err_opcode_table, (guint8)opcode, tvb, actx->pinfo, tree)){
proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData,
tvb, offset, -1, "Unknown returnErrorData %d", opcode);
}
- offset+= tvb_length_remaining(tvb,offset);
+ offset+= tvb_length_remaining(tvb,offset);
break;
}
return offset;
@@ -2170,17 +2169,17 @@ dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
opcode = 0;
if (pref_application_context_version == APPLICATON_CONTEXT_FROM_TRACE) {
- application_context_version = 0;
- if (p_private_tcap != NULL){
- if (p_private_tcap->acv==TRUE ){
- version_ptr = strrchr((const char*)p_private_tcap->oid,'.');
- if (version_ptr){
- application_context_version = atoi(version_ptr+1);
- }
- }
- }
+ application_context_version = 0;
+ if (p_private_tcap != NULL){
+ if (p_private_tcap->acv==TRUE ){
+ version_ptr = strrchr((const char*)p_private_tcap->oid,'.');
+ if (version_ptr){
+ application_context_version = atoi(version_ptr+1);
+ }
+ }
+ }
}else{
- application_context_version = pref_application_context_version;
+ application_context_version = pref_application_context_version;
}
gsmmap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
@@ -2201,15 +2200,15 @@ dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
static int
dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
{
- proto_item *item=NULL;
- proto_tree *tree=NULL;
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
/* Used for gsm_map TAP */
- static gsm_map_tap_rec_t tap_rec;
- gint op_idx;
+ static gsm_map_tap_rec_t tap_rec;
+ gint op_idx;
struct tcap_private_t * p_private_tcap = (struct tcap_private_t *)data;
- asn1_ctx_t asn1_ctx;
+ asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
@@ -2502,155 +2501,155 @@ static const value_string chargingcharacteristics_values[] = {
/*--- proto_reg_handoff_gsm_map ---------------------------------------*/
static void range_delete_callback(guint32 ssn)
{
- if (ssn) {
- delete_itu_tcap_subdissector(ssn, map_handle);
- }
+ if (ssn) {
+ delete_itu_tcap_subdissector(ssn, map_handle);
+ }
}
static void range_add_callback(guint32 ssn)
{
- if (ssn) {
- add_itu_tcap_subdissector(ssn, map_handle);
- }
+ if (ssn) {
+ add_itu_tcap_subdissector(ssn, map_handle);
+ }
}
void proto_reg_handoff_gsm_map(void) {
- static gboolean map_prefs_initialized = FALSE;
- static range_t *ssn_range;
-
- if (!map_prefs_initialized) {
- map_prefs_initialized = TRUE;
- data_handle = find_dissector("data");
- ranap_handle = find_dissector("ranap");
- dtap_handle = find_dissector("gsm_a_dtap");
- gsm_sms_handle = find_dissector("gsm_sms");
-
- map_handle = find_dissector("gsm_map");
- oid_add_from_string("itu(0) administration(2) japan(440)","0.2.440" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map,"networkLocUpContext-v3");
- register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"networkLocUpContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.1.1", map_handle, proto_gsm_map,"networkLocUpContext-v1" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.2.3", map_handle, proto_gsm_map,"locationCancellationContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.2.2", map_handle, proto_gsm_map,"locationCancellationContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.2.1", map_handle, proto_gsm_map,"locationCancellationContext-v1" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.3.3", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.3.2", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.3.1", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v1" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.4.3", map_handle, proto_gsm_map,"istAlertingContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.5.3", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.5.2", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.5.1", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v1" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.6.4", map_handle, proto_gsm_map,"callControlTransferContext-v4" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.6.3", map_handle, proto_gsm_map,"callControlTransferContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.7.3", map_handle, proto_gsm_map,"reportingContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.8.3", map_handle, proto_gsm_map,"callCompletionContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.9.3", map_handle, proto_gsm_map,"serviceTerminationContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.10.2", map_handle, proto_gsm_map,"resetContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.10.1", map_handle, proto_gsm_map,"resetContext-v1" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.11.3", map_handle, proto_gsm_map,"handoverControlContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.11.2", map_handle, proto_gsm_map,"handoverControlContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.11.1", map_handle, proto_gsm_map,"handoverControlContext-v1" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.12.3", map_handle, proto_gsm_map,"sIWFSAllocationContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.13.3", map_handle, proto_gsm_map,"equipmentMngtContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.13.2", map_handle, proto_gsm_map,"equipmentMngtContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.13.1", map_handle, proto_gsm_map,"equipmentMngtContext-v1" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"infoRetrievalContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"infoRetrievalContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"infoRetrievalContext-v1" );
- /* fallback to infoRetrieval(14) version1(1) and not interVlrInfoRetrieval(15) version1(1) */
- /*register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"map-ac interVlrInfoRetrieval(15) version1(1)" );*/
- register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"subscriberDataMngtContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"subscriberDataMngtContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"subscriberDataMngtContext-v1" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.17.3", map_handle, proto_gsm_map,"tracingContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.17.2", map_handle, proto_gsm_map,"tracingContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.17.1", map_handle, proto_gsm_map,"tracingContext-v1" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.18.2", map_handle, proto_gsm_map,"networkFunctionalSsContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.18.1", map_handle, proto_gsm_map,"networkFunctionalSsContext-v1" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.19.2", map_handle, proto_gsm_map,"networkUnstructuredSsContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.20.3", map_handle, proto_gsm_map,"shortMsgGatewayContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.20.2", map_handle, proto_gsm_map,"shortMsgGatewayContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.20.1", map_handle, proto_gsm_map,"shortMsgGatewayContext-v1" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.21.3", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.21.2", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.21.1", map_handle, proto_gsm_map,"shortMsgRelayContext-v1" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.22.3", map_handle, proto_gsm_map,"subscriberDataModificationNotificationContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.23.2", map_handle, proto_gsm_map,"shortMsgAlertContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.23.1", map_handle, proto_gsm_map,"shortMsgAlertContext-v1" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.24.3", map_handle, proto_gsm_map,"mwdMngtContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.24.2", map_handle, proto_gsm_map,"mwdMngtContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.24.1", map_handle, proto_gsm_map,"mwdMngtContext-v1" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.25.3", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.25.2", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.26.2", map_handle, proto_gsm_map,"imsiRetrievalContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.27.2", map_handle, proto_gsm_map,"msPurgingContext-v2" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.27.3", map_handle, proto_gsm_map,"msPurgingContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.28.3", map_handle, proto_gsm_map,"subscriberInfoEnquiryContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.29.3", map_handle, proto_gsm_map,"anyTimeInfoEnquiryContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.31.3", map_handle, proto_gsm_map,"groupCallControlContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.32.3", map_handle, proto_gsm_map,"gprsLocationUpdateContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.33.4", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v4" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.33.3", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.34.3", map_handle, proto_gsm_map,"failureReportContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.35.3", map_handle, proto_gsm_map,"gprsNotifyContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.36.3", map_handle, proto_gsm_map,"ss-InvocationNotificationContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.37.3", map_handle, proto_gsm_map,"locationSvcGatewayContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.38.3", map_handle, proto_gsm_map,"locationSvcEnquiryContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.39.3", map_handle, proto_gsm_map,"authenticationFailureReportContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.40.3", map_handle, proto_gsm_map,"secureTransportHandlingContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.41.3", map_handle, proto_gsm_map,"shortMsgMT-Relay-VGCS-Context-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.42.3", map_handle, proto_gsm_map,"mm-EventReportingContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.43.3", map_handle, proto_gsm_map,"anyTimeInfoHandlingContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.44.3", map_handle, proto_gsm_map,"resourceManagementContext-v3" );
- register_ber_oid_dissector_handle("0.4.0.0.1.0.45.3", map_handle, proto_gsm_map,"groupCallInfoRetrievalContext-v3" );
- /* Private extension container */
- 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" );
- register_ber_oid_dissector("0.34.0",dissect_NokiaMAP_ext_IsdArgExtension,proto_gsm_map,"Nokia ISD Extension");
- register_ber_oid_dissector("0.34.1",dissect_NokiaMAP_ext_DsdArgExt,proto_gsm_map,"Nokia Dsd Extension");
- register_ber_oid_dissector("0.34.2",dissect_NokiaMAP_ext_UlResExtension,proto_gsm_map,"Nokia Location Update Extension");
- register_ber_oid_dissector("0.34.4",dissect_NokiaMAP_ext_SS_DataExtension,proto_gsm_map,"Nokia SS Data Extension");
- register_ber_oid_dissector("0.34.5",dissect_NokiaMAP_ext_SriExtension,proto_gsm_map,"Nokia SRI Request Extension");
- register_ber_oid_dissector("0.34.6",dissect_NokiaMAP_ExtraSignalInfo,proto_gsm_map,"Nokia ExtraSignalInfo Extension");
- register_ber_oid_dissector("0.34.7",dissect_NokiaMAP_ext_SriResExtension,proto_gsm_map,"Nokia SRI Response Extension");
- register_ber_oid_dissector("0.34.10",dissect_NokiaMAP_ext_CanLocArgExt,proto_gsm_map,"Nokia Cancel Location Extension");
- register_ber_oid_dissector("0.34.11",dissect_NokiaMAP_ext_ATMargExt,proto_gsm_map,"Nokia ATM Extension");
- register_ber_oid_dissector("0.34.12",dissect_NokiaMAP_ext_DTMargExt,proto_gsm_map,"Nokia DTM Extension");
- register_ber_oid_dissector("0.34.13",dissect_NokiaMAP_ext_NumberPorted,proto_gsm_map,"Nokia NumberPorted Extension");
- register_ber_oid_dissector("0.34.15",dissect_NokiaMAP_ext_HOExtension,proto_gsm_map,"Nokia HandOver Extension");
- register_ber_oid_dissector("0.34.16",dissect_NokiaMAP_ext_ATMresExt,proto_gsm_map,"Nokia ATMres Extension");
- register_ber_oid_dissector("0.34.17",dissect_NokiaMAP_ext_AbsentSubscriberExt,proto_gsm_map,"Nokia AbsentSubscriber Extension");
- register_ber_oid_dissector("0.34.18",dissect_NokiaMAP_ext_SriForSMArgExt,proto_gsm_map,"Nokia SriForSM Extension");
- register_ber_oid_dissector("0.34.19",dissect_NokiaMAP_ext_ReportSMDelStatArgExt,proto_gsm_map,"Nokia ReportSMDelStatt Extension");
- register_ber_oid_dissector("0.34.20",dissect_NokiaMAP_ext_UdlArgExt,proto_gsm_map,"Nokia Udl Extension");
- register_ber_oid_dissector("0.34.21",dissect_NokiaMAP_ext_RoamNotAllowedExt,proto_gsm_map,"Nokia RoamNotAllowed Extension");
- register_ber_oid_dissector("0.34.22",dissect_NokiaMAP_ext_MO_ForwardSM_ArgExt,proto_gsm_map,"Nokia MO-ForwardSM Extension");
- register_ber_oid_dissector("0.34.23",dissect_NokiaMAP_ext_ErrOlcmInfoTableExt,proto_gsm_map,"Nokia ErrOlcmInfoTable Extension");
- register_ber_oid_dissector("0.34.25",dissect_NokiaMAP_ext_RoutingCategoryExt,proto_gsm_map,"Nokia Routing Category Extension");
- register_ber_oid_dissector("0.34.26",dissect_NokiaMAP_ext_AnyTimeModArgExt,proto_gsm_map,"Nokia AnyTimeMod Extension");
-
- register_ber_oid_dissector("1.2.826.0.1249.58.1.0",dissect_NokiaMAP_ext_ExtensionType,proto_gsm_map,"Nokia ExtensionType Extension");
-
- register_ber_oid_dissector("1.3.12.2.1107.3.66.1.1",dissect_NokiaMAP_ext_AccessTypeExt,proto_gsm_map,"Nokia AccessTypeExt Extension");
- register_ber_oid_dissector("1.3.12.2.1107.3.66.1.3",dissect_NokiaMAP_ext_AccessSubscriptionListExt,proto_gsm_map,"Nokia AccessSubscriptionListExt Extension");
- register_ber_oid_dissector("1.3.12.2.1107.3.66.1.6",dissect_NokiaMAP_ext_AllowedServiceData,proto_gsm_map,"Nokia AllowedServiceData Extension");
- }
- else {
- range_foreach(ssn_range, range_delete_callback);
- g_free(ssn_range);
- }
+ static gboolean map_prefs_initialized = FALSE;
+ static range_t *ssn_range;
+
+ if (!map_prefs_initialized) {
+ map_prefs_initialized = TRUE;
+ data_handle = find_dissector("data");
+ ranap_handle = find_dissector("ranap");
+ dtap_handle = find_dissector("gsm_a_dtap");
+ gsm_sms_handle = find_dissector("gsm_sms");
+
+ map_handle = find_dissector("gsm_map");
+ oid_add_from_string("itu(0) administration(2) japan(440)","0.2.440" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map,"networkLocUpContext-v3");
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"networkLocUpContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.1.1", map_handle, proto_gsm_map,"networkLocUpContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.2.3", map_handle, proto_gsm_map,"locationCancellationContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.2.2", map_handle, proto_gsm_map,"locationCancellationContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.2.1", map_handle, proto_gsm_map,"locationCancellationContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.3.3", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.3.2", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.3.1", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.4.3", map_handle, proto_gsm_map,"istAlertingContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.5.3", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.5.2", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.5.1", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.6.4", map_handle, proto_gsm_map,"callControlTransferContext-v4" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.6.3", map_handle, proto_gsm_map,"callControlTransferContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.7.3", map_handle, proto_gsm_map,"reportingContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.8.3", map_handle, proto_gsm_map,"callCompletionContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.9.3", map_handle, proto_gsm_map,"serviceTerminationContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.10.2", map_handle, proto_gsm_map,"resetContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.10.1", map_handle, proto_gsm_map,"resetContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.11.3", map_handle, proto_gsm_map,"handoverControlContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.11.2", map_handle, proto_gsm_map,"handoverControlContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.11.1", map_handle, proto_gsm_map,"handoverControlContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.12.3", map_handle, proto_gsm_map,"sIWFSAllocationContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.13.3", map_handle, proto_gsm_map,"equipmentMngtContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.13.2", map_handle, proto_gsm_map,"equipmentMngtContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.13.1", map_handle, proto_gsm_map,"equipmentMngtContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"infoRetrievalContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"infoRetrievalContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"infoRetrievalContext-v1" );
+ /* fallback to infoRetrieval(14) version1(1) and not interVlrInfoRetrieval(15) version1(1) */
+ /*register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"map-ac interVlrInfoRetrieval(15) version1(1)" );*/
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"subscriberDataMngtContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"subscriberDataMngtContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"subscriberDataMngtContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.17.3", map_handle, proto_gsm_map,"tracingContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.17.2", map_handle, proto_gsm_map,"tracingContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.17.1", map_handle, proto_gsm_map,"tracingContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.18.2", map_handle, proto_gsm_map,"networkFunctionalSsContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.18.1", map_handle, proto_gsm_map,"networkFunctionalSsContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.19.2", map_handle, proto_gsm_map,"networkUnstructuredSsContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.20.3", map_handle, proto_gsm_map,"shortMsgGatewayContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.20.2", map_handle, proto_gsm_map,"shortMsgGatewayContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.20.1", map_handle, proto_gsm_map,"shortMsgGatewayContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.21.3", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.21.2", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.21.1", map_handle, proto_gsm_map,"shortMsgRelayContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.22.3", map_handle, proto_gsm_map,"subscriberDataModificationNotificationContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.23.2", map_handle, proto_gsm_map,"shortMsgAlertContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.23.1", map_handle, proto_gsm_map,"shortMsgAlertContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.24.3", map_handle, proto_gsm_map,"mwdMngtContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.24.2", map_handle, proto_gsm_map,"mwdMngtContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.24.1", map_handle, proto_gsm_map,"mwdMngtContext-v1" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.25.3", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.25.2", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.26.2", map_handle, proto_gsm_map,"imsiRetrievalContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.27.2", map_handle, proto_gsm_map,"msPurgingContext-v2" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.27.3", map_handle, proto_gsm_map,"msPurgingContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.28.3", map_handle, proto_gsm_map,"subscriberInfoEnquiryContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.29.3", map_handle, proto_gsm_map,"anyTimeInfoEnquiryContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.31.3", map_handle, proto_gsm_map,"groupCallControlContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.32.3", map_handle, proto_gsm_map,"gprsLocationUpdateContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.33.4", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v4" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.33.3", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.34.3", map_handle, proto_gsm_map,"failureReportContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.35.3", map_handle, proto_gsm_map,"gprsNotifyContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.36.3", map_handle, proto_gsm_map,"ss-InvocationNotificationContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.37.3", map_handle, proto_gsm_map,"locationSvcGatewayContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.38.3", map_handle, proto_gsm_map,"locationSvcEnquiryContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.39.3", map_handle, proto_gsm_map,"authenticationFailureReportContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.40.3", map_handle, proto_gsm_map,"secureTransportHandlingContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.41.3", map_handle, proto_gsm_map,"shortMsgMT-Relay-VGCS-Context-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.42.3", map_handle, proto_gsm_map,"mm-EventReportingContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.43.3", map_handle, proto_gsm_map,"anyTimeInfoHandlingContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.44.3", map_handle, proto_gsm_map,"resourceManagementContext-v3" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.45.3", map_handle, proto_gsm_map,"groupCallInfoRetrievalContext-v3" );
+ /* Private extension container */
+ 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" );
+ register_ber_oid_dissector("0.34.0",dissect_NokiaMAP_ext_IsdArgExtension,proto_gsm_map,"Nokia ISD Extension");
+ register_ber_oid_dissector("0.34.1",dissect_NokiaMAP_ext_DsdArgExt,proto_gsm_map,"Nokia Dsd Extension");
+ register_ber_oid_dissector("0.34.2",dissect_NokiaMAP_ext_UlResExtension,proto_gsm_map,"Nokia Location Update Extension");
+ register_ber_oid_dissector("0.34.4",dissect_NokiaMAP_ext_SS_DataExtension,proto_gsm_map,"Nokia SS Data Extension");
+ register_ber_oid_dissector("0.34.5",dissect_NokiaMAP_ext_SriExtension,proto_gsm_map,"Nokia SRI Request Extension");
+ register_ber_oid_dissector("0.34.6",dissect_NokiaMAP_ExtraSignalInfo,proto_gsm_map,"Nokia ExtraSignalInfo Extension");
+ register_ber_oid_dissector("0.34.7",dissect_NokiaMAP_ext_SriResExtension,proto_gsm_map,"Nokia SRI Response Extension");
+ register_ber_oid_dissector("0.34.10",dissect_NokiaMAP_ext_CanLocArgExt,proto_gsm_map,"Nokia Cancel Location Extension");
+ register_ber_oid_dissector("0.34.11",dissect_NokiaMAP_ext_ATMargExt,proto_gsm_map,"Nokia ATM Extension");
+ register_ber_oid_dissector("0.34.12",dissect_NokiaMAP_ext_DTMargExt,proto_gsm_map,"Nokia DTM Extension");
+ register_ber_oid_dissector("0.34.13",dissect_NokiaMAP_ext_NumberPorted,proto_gsm_map,"Nokia NumberPorted Extension");
+ register_ber_oid_dissector("0.34.15",dissect_NokiaMAP_ext_HOExtension,proto_gsm_map,"Nokia HandOver Extension");
+ register_ber_oid_dissector("0.34.16",dissect_NokiaMAP_ext_ATMresExt,proto_gsm_map,"Nokia ATMres Extension");
+ register_ber_oid_dissector("0.34.17",dissect_NokiaMAP_ext_AbsentSubscriberExt,proto_gsm_map,"Nokia AbsentSubscriber Extension");
+ register_ber_oid_dissector("0.34.18",dissect_NokiaMAP_ext_SriForSMArgExt,proto_gsm_map,"Nokia SriForSM Extension");
+ register_ber_oid_dissector("0.34.19",dissect_NokiaMAP_ext_ReportSMDelStatArgExt,proto_gsm_map,"Nokia ReportSMDelStatt Extension");
+ register_ber_oid_dissector("0.34.20",dissect_NokiaMAP_ext_UdlArgExt,proto_gsm_map,"Nokia Udl Extension");
+ register_ber_oid_dissector("0.34.21",dissect_NokiaMAP_ext_RoamNotAllowedExt,proto_gsm_map,"Nokia RoamNotAllowed Extension");
+ register_ber_oid_dissector("0.34.22",dissect_NokiaMAP_ext_MO_ForwardSM_ArgExt,proto_gsm_map,"Nokia MO-ForwardSM Extension");
+ register_ber_oid_dissector("0.34.23",dissect_NokiaMAP_ext_ErrOlcmInfoTableExt,proto_gsm_map,"Nokia ErrOlcmInfoTable Extension");
+ register_ber_oid_dissector("0.34.25",dissect_NokiaMAP_ext_RoutingCategoryExt,proto_gsm_map,"Nokia Routing Category Extension");
+ register_ber_oid_dissector("0.34.26",dissect_NokiaMAP_ext_AnyTimeModArgExt,proto_gsm_map,"Nokia AnyTimeMod Extension");
+
+ register_ber_oid_dissector("1.2.826.0.1249.58.1.0",dissect_NokiaMAP_ext_ExtensionType,proto_gsm_map,"Nokia ExtensionType Extension");
+
+ register_ber_oid_dissector("1.3.12.2.1107.3.66.1.1",dissect_NokiaMAP_ext_AccessTypeExt,proto_gsm_map,"Nokia AccessTypeExt Extension");
+ register_ber_oid_dissector("1.3.12.2.1107.3.66.1.3",dissect_NokiaMAP_ext_AccessSubscriptionListExt,proto_gsm_map,"Nokia AccessSubscriptionListExt Extension");
+ register_ber_oid_dissector("1.3.12.2.1107.3.66.1.6",dissect_NokiaMAP_ext_AllowedServiceData,proto_gsm_map,"Nokia AllowedServiceData Extension");
+ }
+ else {
+ range_foreach(ssn_range, range_delete_callback);
+ g_free(ssn_range);
+ }
- ssn_range = range_copy(global_ssn_range);
- range_foreach(ssn_range, range_add_callback);
+ ssn_range = range_copy(global_ssn_range);
+ range_foreach(ssn_range, range_add_callback);
}
/*--- proto_register_gsm_map -------------------------------------------*/
void proto_register_gsm_map(void) {
- module_t *gsm_map_module;
- expert_module_t* expert_gsm_map;
+ module_t *gsm_map_module;
+ expert_module_t* expert_gsm_map;
/* List of fields */
static hf_register_info hf[] = {
@@ -3028,16 +3027,16 @@ void proto_register_gsm_map(void) {
gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
prefs_register_range_preference(gsm_map_module, "tcap.ssn", "TCAP SSNs",
- "TCAP Subsystem numbers used for GSM MAP",
- &global_ssn_range, MAX_SSN);
+ "TCAP Subsystem numbers used for GSM MAP",
+ &global_ssn_range, MAX_SSN);
prefs_register_enum_preference(gsm_map_module, "application.context.version",
- "Application context version",
- "How to treat Application context",
- &pref_application_context_version, application_context_modes, APPLICATON_CONTEXT_FROM_TRACE);
+ "Application context version",
+ "How to treat Application context",
+ &pref_application_context_version, application_context_modes, APPLICATON_CONTEXT_FROM_TRACE);
prefs_register_bool_preference(gsm_map_module, "ericsson.proprietary.extensions",
- "Dissect Ericsson proprietary extensions",
- "When enabled, dissector will use the non 3GPP standard extensions from Ericsson (that can override the standard ones)",
- &pref_ericsson_proprietary_ext);
+ "Dissect Ericsson proprietary extensions",
+ "When enabled, dissector will use the non 3GPP standard extensions from Ericsson (that can override the standard ones)",
+ &pref_ericsson_proprietary_ext);
}