aboutsummaryrefslogtreecommitdiffstats
path: root/asn1
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2007-01-05 07:32:39 +0000
committerAnders Broman <anders.broman@ericsson.com>2007-01-05 07:32:39 +0000
commitdee9a1745aef39814d9314b932bfe527de277f62 (patch)
tree453cd616b1780b177f7f691c1575538ef88112aa /asn1
parent1a25d263d6664261866c7229c00829bc607ed7bf (diff)
- Dissect IA5 digits
- Update info column - Call subdissectors - fix some asn1 bugs - clean up .cnf file. svn path=/trunk/; revision=20325
Diffstat (limited to 'asn1')
-rw-r--r--asn1/ansi_map/ansi_map.asn12
-rw-r--r--asn1/ansi_map/ansi_map.cnf197
-rw-r--r--asn1/ansi_map/packet-ansi_map-template.c47
3 files changed, 104 insertions, 152 deletions
diff --git a/asn1/ansi_map/ansi_map.asn b/asn1/ansi_map/ansi_map.asn
index d34e140673..fc74d55572 100644
--- a/asn1/ansi_map/ansi_map.asn
+++ b/asn1/ansi_map/ansi_map.asn
@@ -1715,11 +1715,11 @@ LocationRequestRes ::= [PRIVATE 18] SET {
-- O 6.5.2.60 i
dmh-BillingDigits [142] IMPLICIT DMH-BillingDigits OPTIONAL,
-- O 6.5.2.61 i
- dmh-RedirectionIndicator [88] DMH-RedirectionIndicator OPTIONAL,
+ dmh-RedirectionIndicator [88] IMPLICIT DMH-RedirectionIndicator OPTIONAL,
-- O 6.5.2.62 j
dmh-ServiceID [177] IMPLICIT DMH-ServiceID OPTIONAL,
-- O 6.5.2.ei q
- groupInformation [163] GroupInformation OPTIONAL,
+ groupInformation [163] IMPLICIT GroupInformation OPTIONAL,
-- O 6.5.2.69 k
mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
-- O 6.5.2.80 i
@@ -5785,7 +5785,7 @@ SystemOperatorCode ::= OCTET STRING
-- 1 0 0 1 1 1 1 1 (0x9f)
-- 1 0 0 0 0 0 0 1 (0x81)
-- 0 1 0 1 1 0 0 1 (0x59)()
--- SecondInterMSCCircuitID
+-- SecondInterMSCCircuitID N.S0008-0 v 1.0
-- 6.5.2.ak (N.S0007-0 v 1.0)
-- 1 0 1 1 1 1 1 1 (0x9f)
@@ -5874,7 +5874,7 @@ DataPrivacyParameters ::= OCTET STRING
-- 0 1 0 1 1 0 0 1 (0x59)(217)
ISLPInformation ::= OCTET STRING
--- 6.5.2.aw ReasonList
+-- 6.5.2.aw ReasonList N.S0008-0 v 1.0
-- 1 0 0 1 1 1 1 1 (0x9f)
-- 1 0 0 0 0 0 0 1 (0x81)
-- 0 1 0 1 1 0 1 0 (0x5a)(218)
@@ -5888,14 +5888,14 @@ ReasonList ::= ENUMERATED {
required-parameters-unavailable (6)
}
--- 6.5.2.ay
+-- 6.5.2.ay N.S0008-0 v 1.0
-- 1 0 0 1 1 1 1 1 (0x9f)
-- 1 0 0 0 0 0 0 1 (0x81)
-- 0 1 0 1 1 1 0 0 (0x5c)(220)
TDMABandwidth ::= OCTET STRING
--- 6.5.2.az
+-- 6.5.2.az N.S0008-0 v 1.0
-- 1 0 0 1 1 1 1 1 (0x9f)
-- 1 0 0 0 0 0 0 1 (0x81)
-- 0 1 0 1 1 1 0 1 (0x5d)(221)
diff --git a/asn1/ansi_map/ansi_map.cnf b/asn1/ansi_map/ansi_map.cnf
index 152d44c02b..65776a711c 100644
--- a/asn1/ansi_map/ansi_map.cnf
+++ b/asn1/ansi_map/ansi_map.cnf
@@ -35,42 +35,26 @@ OriginationRequestRes
#.FN_BODY RejectParameters
-#.FN_PARS PrivateOperationCode
-
-VAL_PTR = &OperationCode
-
-#.FN_BODY PrivateOperationCode
+#.FN_BODY PrivateOperationCode VAL_PTR = &OperationCode
%(DEFAULT_BODY)s
proto_tree_add_item(tree, hf_ansi_map_op_code_fam, tvb, offset-2,1,FALSE);
proto_tree_add_item(tree, hf_ansi_map_op_code, tvb, offset-1,1,FALSE);
-#.FN_PARS MINType
-
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY MINType
+#.FN_BODY MINType VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
dissect_ansi_map_min_type(parameter_tvb,pinfo,tree);
}
-#.FN_PARS DigitsType
-
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY DigitsType
+#.FN_BODY DigitsType VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
dissect_ansi_map_digits_type(parameter_tvb,pinfo,tree);
}
-#.FN_PARS Subaddress
-
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY Subaddress
+#.FN_BODY Subaddress VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -78,10 +62,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.3 AlertCode
-#.FN_PARS AlertCode
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY AlertCode
+#.FN_BODY AlertCode VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -89,10 +70,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.5 AnnouncementCode
-#.FN_PARS AnnouncementCode
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY AnnouncementCode
+#.FN_BODY AnnouncementCode VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -100,10 +78,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.14 AuthorizationPeriod
-#.FN_PARS AuthorizationPeriod
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY AuthorizationPeriod
+#.FN_BODY AuthorizationPeriod VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -112,10 +87,7 @@ VAL_PTR = &parameter_tvb
# 6.5.2.16 BillingID
-#.FN_PARS BillingID
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY BillingID
+#.FN_BODY BillingID VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -123,30 +95,21 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.20 CallingFeaturesIndicator
-#.FN_PARS CallingFeaturesIndicator
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY CallingFeaturesIndicator
+#.FN_BODY CallingFeaturesIndicator VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
dissect_ansi_map_callingfeaturesindicator(parameter_tvb,pinfo,tree);
}
# 6.5.2.29 CDMACallMode
-#.FN_PARS CDMACallMode
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY CDMACallMode
+#.FN_BODY CDMACallMode VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
dissect_ansi_map_cdmacallmode(parameter_tvb,pinfo,tree);
}
# 6.5.2.41 CDMAStationClassMark
-#.FN_PARS CDMAStationClassMark
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY CDMAStationClassMark
+#.FN_BODY CDMAStationClassMark VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -154,10 +117,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.47 ChannelData
-#.FN_PARS ChannelData
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY ChannelData
+#.FN_BODY ChannelData VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -165,10 +125,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.50 ConfidentialityModes
-#.FN_PARS ConfidentialityModes
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY ConfidentialityModes
+#.FN_BODY ConfidentialityModes VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -176,10 +133,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.53 DeniedAuthorizationPeriod
-#.FN_PARS DeniedAuthorizationPeriod
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY DeniedAuthorizationPeriod
+#.FN_BODY DeniedAuthorizationPeriod VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -187,10 +141,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.64 ExtendedMSCID
-#.FN_PARS ExtendedMSCID
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY ExtendedMSCID
+#.FN_BODY ExtendedMSCID VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -198,20 +149,14 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.65 ExtendedSystemMyTypeCode
-#.FN_PARS ExtendedSystemMyTypeCode
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY ExtendedSystemMyTypeCode
+#.FN_BODY ExtendedSystemMyTypeCode VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
dissect_ansi_map_extendedsystemmytypecode(parameter_tvb,pinfo,tree);
}
#6.5.2.71 HandoffState
-#.FN_PARS HandoffState
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY HandoffState
+#.FN_BODY HandoffState VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -219,10 +164,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.72 InterMSCCircuitID
-#.FN_PARS InterMSCCircuitID
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY InterMSCCircuitID
+#.FN_BODY InterMSCCircuitID VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -230,10 +172,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.78 MessageWaitingNotificationCount
-#.FN_PARS MessageWaitingNotificationCount
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY MessageWaitingNotificationCount
+#.FN_BODY MessageWaitingNotificationCount VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -241,10 +180,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.79 MessageWaitingNotificationType
-#.FN_PARS MessageWaitingNotificationType
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY MessageWaitingNotificationType
+#.FN_BODY MessageWaitingNotificationType VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -253,20 +189,15 @@ VAL_PTR = &parameter_tvb
# 6.5.2.82 MSCID
-#.FN_PARS MSCID
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY MSCID
+#.FN_BODY MSCID VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
dissect_ansi_map_mscid(parameter_tvb,pinfo,tree);
}
-# 6.5.2.84 MSLocation
-#.FN_PARS MSLocation
-VAL_PTR = &parameter_tvb
-#.FN_BODY MSLocation
+# 6.5.2.84 MSLocation
+#.FN_BODY MSLocation VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -274,10 +205,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.85 NAMPSCallMode
-#.FN_PARS NAMPSCallMode
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY NAMPSCallMode
+#.FN_BODY NAMPSCallMode VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -285,10 +213,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.86 NAMPSChannelData
-#.FN_PARS NAMPSChannelData
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY NAMPSChannelData
+#.FN_BODY NAMPSChannelData VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -296,10 +221,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.88 OneTimeFeatureIndicator
-#.FN_PARS OneTimeFeatureIndicator
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY OneTimeFeatureIndicator
+#.FN_BODY OneTimeFeatureIndicator VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -307,10 +229,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.90 OriginationTriggers
-#.FN_PARS OriginationTriggers
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY OriginationTriggers
+#.FN_BODY OriginationTriggers VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -318,10 +237,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.91 PACAIndicator
-#.FN_PARS PACAIndicator
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY PACAIndicator
+#.FN_BODY PACAIndicator VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -329,10 +245,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.93 PC_SSN
-#.FN_PARS PC-SSN
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY PC-SSN
+#.FN_BODY PC-SSN VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -340,10 +253,8 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.94 PilotBillingID
-#.FN_PARS PilotBillingID
-VAL_PTR = &parameter_tvb
+#.FN_BODY PilotBillingID VAL_PTR = &parameter_tvb
-#.FN_BODY PilotBillingID
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -379,7 +290,6 @@ static gint32 ansi_map_sms_tele_id = -1;
# 6.5.2.159 TerminationTriggers
-
#.FN_BODY TerminationTriggers VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
@@ -388,10 +298,7 @@ static gint32 ansi_map_sms_tele_id = -1;
}
# 6.5.2.160 TransactionCapability
-#.FN_PARS TransactionCapability
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY TransactionCapability
+#.FN_BODY TransactionCapability VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -402,10 +309,7 @@ VAL_PTR = &parameter_tvb
# -- XXX Same code as ISLPinformation???
# 6.5.2.bw CallingPartyName N.S0012-0 v 1.0
-#.FN_PARS CallingPartyName
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY CallingPartyName
+#.FN_BODY CallingPartyName VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -413,10 +317,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.df TriggerCapability
-#.FN_PARS TriggerCapability
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY TriggerCapability
+#.FN_BODY TriggerCapability VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -424,10 +325,7 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.dj WINOperationsCapability
-#.FN_PARS WINOperationsCapability
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY WINOperationsCapability
+#.FN_BODY WINOperationsCapability VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
@@ -435,16 +333,35 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.ek ControlNetworkID
-#.FN_PARS ControlNetworkID
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY ControlNetworkID
+#.FN_BODY ControlNetworkID VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
dissect_ansi_map_controlnetworkid(parameter_tvb,pinfo,tree);
}
+#6.5.2.wB ServiceIndicator
+#.FN_BODY ServiceIndicator VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+ guint8 ServiceIndicator;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ if (SMS_BearerData_tvb !=NULL)
+ {
+ ServiceIndicator = tvb_get_guint8(parameter_tvb,0);
+ switch(ServiceIndicator){
+ case 1: /* CDMA OTASP Service */
+ case 3: /* CDMA OTAPA Service */
+ dissector_try_port(is683_dissector_table, ansi_map_is_invoke ? 0 : 1, SMS_BearerData_tvb, g_pinfo, g_tree);
+ break;
+ case 4: /* CDMA Position Determination Service */
+ dissector_try_port(is801_dissector_table, ansi_map_is_invoke ? 0 : 1, SMS_BearerData_tvb, g_pinfo, g_tree);
+ break;
+ default:
+ break;
+ }
+ }
+ }
#.TYPE_ATTR
ActionCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ActionCode_vals)
diff --git a/asn1/ansi_map/packet-ansi_map-template.c b/asn1/ansi_map/packet-ansi_map-template.c
index 1c0da173e5..1c66977d9b 100644
--- a/asn1/ansi_map/packet-ansi_map-template.c
+++ b/asn1/ansi_map/packet-ansi_map-template.c
@@ -133,6 +133,7 @@ static int hf_ansi_map_digits_enc = -1;
static int hf_ansi_map_np = -1;
static int hf_ansi_map_nr_digits = -1;
static int hf_ansi_map_bcd_digits = -1;
+static int hf_ansi_map_ia5_digits = -1;
static int hf_ansi_map_subaddr_type = -1;
static int hf_ansi_map_subaddr_odd_even = -1;
static int hf_ansi_alertcode_cadence = -1;
@@ -636,12 +637,23 @@ dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
case 2:/* Telephony Numbering (ITU-T Rec. E.164,E.163). */
case 6:/* Land Mobile Numbering (ITU-T Rec. E.212) */
case 7:/* Private Numbering Plan */
- if ((octet&0xf) == 1){
+ proto_tree_add_item(subtree, hf_ansi_map_nr_digits, tvb, offset, 1, FALSE);
+ offset++;
+ switch ((octet&0xf)){
+ case 1:
/* BCD Coding */
- proto_tree_add_item(subtree, hf_ansi_map_nr_digits, tvb, offset, 1, FALSE);
- offset++;
digit_str = unpack_digits2(tvb, offset, &Dgt_tbcd);
proto_tree_add_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, digit_str);
+ break;
+ case 2:
+ /* IA5 Coding */
+ proto_tree_add_item(subtree, hf_ansi_map_ia5_digits, tvb, offset, -1, FALSE);
+ break;
+ case 3:
+ /* Octet string */
+ break;
+ default:
+ break;
}
break;
case 13:/* ANSI SS7 Point Code (PC) and Subsystem Number (SSN). */
@@ -2009,17 +2021,26 @@ dissect_ansi_map_pc_ssn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){
int offset = 0;
proto_item *item;
proto_tree *subtree;
+ guint8 b1,b2,b3,b4;
item = get_ber_last_created_item();
subtree = proto_item_add_subtree(item, ett_billingid);
/* Type (octet 1) */
proto_tree_add_item(subtree, hf_ansi_map_msc_type, tvb, offset, 1, FALSE);
offset++;
- /* TODO Put this info in the tree ( use function from MTP3 ? )
/* Point Code Member Number octet 2 */
+ b1 = tvb_get_guint8(tvb,offset);
+ offset++;
/* Point Code Cluster Number octet 3 */
+ b2 = tvb_get_guint8(tvb,offset);
+ offset++;
/* Point Code Network Number octet 4 */
+ b3 = tvb_get_guint8(tvb,offset);
+ offset++;
/* Subsystem Number (SSN) octet 5 */
+ b4 = tvb_get_guint8(tvb,offset);
+ proto_tree_add_text(subtree, tvb, offset-3, 4 , "Point Code %u-%u-%u SSN %u",
+ b3, b2, b1, b4);
}
/* 6.5.2.94 PilotBillingID */
@@ -3158,11 +3179,17 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
if (pinfo->private_data != NULL){
p_private_tcap=pinfo->private_data;
opcode = g_malloc(sizeof(gint));
- *opcode = OperationCode&0x00ff;
+ OperationCode = OperationCode&0x00ff;
+ *opcode = OperationCode;
g_hash_table_insert(TransactionId_table, g_strdup(p_private_tcap->TransactionID_str), opcode);
}
- switch(OperationCode & 0x00ff){
+ ansi_map_is_invoke = TRUE;
+ if (check_col(pinfo->cinfo, COL_INFO)){
+ col_set_str(pinfo->cinfo, COL_INFO, val_to_str(OperationCode, ansi_map_opr_code_strings, "Unknown ANSI-MAP PDU (%u)"));
+ }
+
+ switch(OperationCode){
case 1: /*Handoff Measurement Request*/
offset = dissect_ansi_map_HandoffMeasurementRequest(TRUE, tvb, offset, pinfo, tree, -1);
break;
@@ -3511,6 +3538,10 @@ static int dissect_returnData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
item = proto_tree_add_text(tree, tvb, offset, -1, "OperationCode %s",val_to_str(OperationCode, ansi_map_opr_code_strings, "Unknown %u"));
PROTO_ITEM_SET_GENERATED(item);
+ if (check_col(pinfo->cinfo, COL_INFO)){
+ col_clear(pinfo->cinfo, COL_INFO);
+ col_add_fstr(pinfo->cinfo, COL_INFO,"%s Response", val_to_str(OperationCode, ansi_map_opr_code_strings, "Unknown ANSI-MAP PDU (%u)"));
+ }
switch(OperationCode){
case 1: /*Handoff Measurement Request*/
@@ -3826,6 +3857,10 @@ void proto_register_ansi_map(void) {
{ "BCD digits", "gsm_map.bcd_digits",
FT_STRING, BASE_NONE, NULL, 0,
"BCD digits", HFILL }},
+ { &hf_ansi_map_ia5_digits,
+ { "IA5 digits", "gsm_map.ia5_digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "IA5 digits", HFILL }},
{ &hf_ansi_map_subaddr_type,
{ "Type of Subaddress", "ansi_subaddr_type",
FT_UINT8, BASE_DEC, VALS(ansi_map_sub_addr_type_vals), 0x70,