aboutsummaryrefslogtreecommitdiffstats
path: root/packet-ansi_map.c
diff options
context:
space:
mode:
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2004-03-27 11:32:30 +0000
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2004-03-27 11:32:30 +0000
commit7d2beeb5311dea83770cfe596a0ec914309ff169 (patch)
treec8031439f99e0d4307c2ab8f841f699754d03795 /packet-ansi_map.c
parent31f93f976ff245fcd6e1b97cfe35c08d2ee3c8a1 (diff)
From Michael Lum:
ANSI IS-801 support; dissect more GSM supplementary services messages and fields. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@10503 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'packet-ansi_map.c')
-rw-r--r--packet-ansi_map.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/packet-ansi_map.c b/packet-ansi_map.c
index d560127440..8d149d9d2b 100644
--- a/packet-ansi_map.c
+++ b/packet-ansi_map.c
@@ -79,7 +79,7 @@
* UIM
* 3GPP2 N.S0003
*
- * $Id: packet-ansi_map.c,v 1.13 2003/12/12 19:55:26 guy Exp $
+ * $Id: packet-ansi_map.c,v 1.14 2004/03/27 11:32:28 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -670,10 +670,12 @@ static gchar ansi_map_add_string[1024];
static dissector_handle_t data_handle;
static dissector_table_t is637_tele_id_dissector_table; /* IS-637 Teleservice ID */
static dissector_table_t is683_dissector_table; /* IS-683-A (OTA) */
+static dissector_table_t is801_dissector_table; /* IS-801 (PLD) */
static packet_info *g_pinfo;
static proto_tree *g_tree;
static gint32 ansi_map_sms_tele_id = -1;
static gboolean is683_ota;
+static gboolean is801_pld;
static gboolean ansi_map_is_invoke;
@@ -863,7 +865,7 @@ param_srvc_ind(ASN1_SCK *asn1, proto_tree *tree, guint len, gchar *add_string)
case 1: str = "CDMA OTASP Service"; is683_ota = TRUE; break;
case 2: str = "TDMA OTASP Service"; break;
case 3: str = "CDMA OTAPA Service"; is683_ota = TRUE; break;
- case 4: str = "CDMA Position Determination Service"; break;
+ case 4: str = "CDMA Position Determination Service"; is801_pld = TRUE; break;
case 5: str = "AMPS Position Determination Service"; break;
default:
if ((value >= 6) && (value <= 223)) { str = "Reserved, treat as Undefined Service"; }
@@ -11748,6 +11750,10 @@ param_sms_bd(ASN1_SCK *asn1, proto_tree *tree, guint len, gchar *add_string)
{
dissector_try_port(is683_dissector_table, ansi_map_is_invoke ? 0 : 1, next_tvb, g_pinfo, g_tree);
}
+ else if (is801_pld)
+ {
+ dissector_try_port(is801_dissector_table, ansi_map_is_invoke ? 0 : 1, next_tvb, g_pinfo, g_tree);
+ }
proto_tree_add_text(tree, asn1->tvb,
asn1->offset, len,
@@ -13083,6 +13089,7 @@ dissect_ansi_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
ansi_map_is_invoke = FALSE;
is683_ota = FALSE;
+ is801_pld = FALSE;
dissect_ansi_map_message(&asn1, pinfo, ansi_map_tree);
asn1_close(&asn1, &offset);
@@ -13189,6 +13196,10 @@ proto_register_ansi_map(void)
register_dissector_table("ansi_map.ota", "IS-683-A (OTA)",
FT_UINT8, BASE_DEC);
+ is801_dissector_table =
+ register_dissector_table("ansi_map.pld", "IS-801 (PLD)",
+ FT_UINT8, BASE_DEC);
+
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_ansi_map, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));