* Michael Lum <mlum [AT] telostech.com>
* In association with Telos Technology Inc.
*
- * Copyright 2005 - 2008, Anders Broman <anders.broman@ericsson.com>
+ * Copyright 2005 - 2009, Anders Broman <anders.broman@ericsson.com>
*
* $Id$
*
* Title 3GPP2 Other
*
* Cellular Radiotelecommunications Intersystem Operations
- * 3GPP2 N.S0005-0 v 1.0 ANSI/TIA/EIA-41-D
+ * 3GPP2 N.S0005-0 v 1.0 ANSI/TIA/EIA-41-D
*
* Network Support for MDN-Based Message Centers
* 3GPP2 N.S0024-0 v1.0 IS-841
* WIN Phase 1
* 3GPP2 N.S0013-0 v1.0 IS-771
*
- * DCCH (Clarification of Audit Order with Forced
- * Re-Registration in pre-TIA/EIA-136-A Implementation
+ * DCCH (Clarification of Audit Order with Forced
+ * Re-Registration in pre-TIA/EIA-136-A Implementation
* 3GPP2 A.S0017-B IS-730
*
* UIM
* Answer Hold
* 3GPP2 N.S0022-0 v1.0 IS-837
*
- */
+ */
#ifdef HAVE_CONFIG_H
# include "config.h"
#include <epan/tap.h>
#include <epan/asn1.h>
-#include <stdio.h>
-#include <string.h>
-
#include "packet-ber.h"
#include "packet-ansi_map.h"
#include "packet-ansi_a.h"
/* Preference settings default */
#define MAX_SSN 254
static range_t *global_ssn_range;
+gint ansi_map_response_matching_type = 1;
+
+#define ANSI_MAP_TID_ONLY 0
static dissector_handle_t ansi_map_handle=NULL;
static int hf_ansi_map_cdmachanneldata_np_ext = -1;
static int hf_ansi_map_cdmachanneldata_nominal_pwr = -1;
static int hf_ansi_map_cdmachanneldata_nr_preamble = -1;
-
+
static int hf_ansi_map_cdmastationclassmark_pc = -1;
static int hf_ansi_map_cdmastationclassmark_dtx = -1;
static int hf_ansi_map_cdmastationclassmark_smi = -1;
}
-void
+static void
ansi_map_init_transaction_table(void){
/* Destroy any existing memory chunks / hashes. */
ansi_map_init_protocol(void)
{
ansi_map_init_transaction_table();
-}
+}
/* Store Invoke information needed for the corresponding reply */
static void
buf=ep_alloc(1024);
- src_str = address_to_str(src);
- dst_str = address_to_str(dst);
+ src_str = ep_address_to_str(src);
+ dst_str = ep_address_to_str(dst);
/* Data from the TCAP dissector */
if (pinfo->private_data != NULL){
if ((!pinfo->fd->flags.visited)&&(p_private_tcap->TransactionID_str)){
/* Only do this once XXX I hope its the right thing to do */
/* The hash string needs to contain src and dest to distiguish differnt flows */
- g_snprintf(buf,1024,"%s%s%s",p_private_tcap->TransactionID_str,src_str,dst_str);
+ switch(ansi_map_response_matching_type){
+ case ANSI_MAP_TID_ONLY:
+ g_snprintf(buf,1024,"%s",p_private_tcap->TransactionID_str);
+ break;
+ case 1:
+ g_snprintf(buf,1024,"%s%s",p_private_tcap->TransactionID_str,src_str);
+ break;
+ default:
+ g_snprintf(buf,1024,"%s%s%s",p_private_tcap->TransactionID_str,src_str,dst_str);
+ break;
+ }
/* If the entry allready exists don't owervrite it */
ansi_map_saved_invokedata = g_hash_table_lookup(TransactionId_table,buf);
if(ansi_map_saved_invokedata)
ansi_map_saved_invokedata->opcode = p_private_tcap->d.OperationCode_private;
ansi_map_saved_invokedata->ServiceIndicator = ServiceIndicator;
- g_hash_table_insert(TransactionId_table,
+ g_hash_table_insert(TransactionId_table,
g_strdup(buf),
ansi_map_saved_invokedata);
- /*
- g_warning("Invoke Hash string %s",buf);
- */
+
+ /*g_warning("Invoke Hash string %s pkt: %u",buf,pinfo->fd->num);*/
}
}
{ 98, "Roamer Database Verification Request" },
{ 99, "Add Service" },
{ 100, "Drop Service" },
+ { 101, "InterSystemSMSPage" },
{ 102, "LCSParameterRequest" },
+ { 103, "Unknown ANSI-MAP PDU" },
+ { 104, "Unknown ANSI-MAP PDU" },
+ { 105, "Unknown ANSI-MAP PDU" },
{ 106, "PositionEventNotification" },
+ { 107, "Unknown ANSI-MAP PDU" },
+ { 108, "Unknown ANSI-MAP PDU" },
+ { 109, "Unknown ANSI-MAP PDU" },
+ { 110, "Unknown ANSI-MAP PDU" },
+ { 111, "InterSystemSMSDelivery-PointToPoint" },
+ { 112, "QualificationRequest2" },
{ 0, NULL },
};
+static value_string_ext ansi_map_opr_code_strings_ext = VALUE_STRING_EXT_INIT(ansi_map_opr_code_strings);
static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
static int dissect_returnData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
static int dissect_ansi_map_SystemMyTypeCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
+#if 0
+/* Moved to tvbuff.h
+ * XXX remove after trial period.
+ */
typedef struct dgt_set_t
{
unsigned char out[15];
}
dgt_set_t;
-
+#endif
static dgt_set_t Dgt_tbcd = {
{
/* 0 1 2 3 4 5 6 7 8 9 a b c d e */
'0','1','2','3','4','5','6','7','8','9','?','?','?','?','?'
}
};
-/* Assumes the rest of the tvb contains the digits to be turned into a string
+/* Assumes the rest of the tvb contains the digits to be turned into a string
*/
-static char*
+static const char*
unpack_digits2(tvbuff_t *tvb, int offset,dgt_set_t *dgt){
int length;
while ( offset < length ){
octet = tvb_get_guint8(tvb,offset);
- digit_str[i] = dgt->out[octet & 0x0f];
+ digit_str[i] = dgt->out[octet & 0x0f];
i++;
/*
if (octet == 0x0f) /* odd number bytes - hit filler */
break;
- digit_str[i] = dgt->out[octet & 0x0f];
+ digit_str[i] = dgt->out[octet & 0x0f];
i++;
offset++;
{ 0, NULL }
};
-static void
+static void
dissect_ansi_map_min_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
- char *digit_str;
+ const char *digit_str;
int offset = 0;
proto_tree *subtree;
proto_item_append_text(actx->created_item, " - %s", digit_str);
}
-static void
+static void
dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
guint8 octet , octet_len;
guint8 b1,b2,b3,b4;
int offset = 0;
- char *digit_str;
+ const char *digit_str;
proto_tree *subtree;
{ 0, NULL }
};
-static void
+static void
dissect_ansi_map_subaddress(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
int offset = 0;
{ 23, "CDMA Handset-Based Position Determination Complete"},
{ 0, NULL }
};
+static value_string_ext ansi_map_ActionCode_vals_ext = VALUE_STRING_EXT_INIT(ansi_map_ActionCode_vals);
+
/* 6.5.2.3 AlertCode */
/* Pitch (octet 1, bits G-H) */
Number of minutes hours, days, weeks, or
number of calls (as per Period). If Period
indicates anything else the Value is set to zero
-on sending and ignored on receipt.
+on sending and ignored on receipt.
*/
static void
dissect_ansi_map_authorizationperiod(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
static void
dissect_ansi_map_callingfeaturesindicator(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
int offset = 0;
- int length;
+ int length;
proto_tree *subtree;
- length = tvb_length_remaining(tvb,offset);
+ length = tvb_length_remaining(tvb,offset);
subtree = proto_item_add_subtree(actx->created_item, ett_mscid);
static void
dissect_ansi_map_cdmacallmode(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
int offset = 0;
- int length;
+ int length;
proto_tree *subtree;
- length = tvb_length_remaining(tvb,offset);
+ length = tvb_length_remaining(tvb,offset);
subtree = proto_item_add_subtree(actx->created_item, ett_mscid);
/* Call Mode (octet 1, bit A) */
proto_tree_add_item(subtree, hf_ansi_map_cdmacallmode_cdma, tvb, offset, 1, FALSE);
- length--;
+ length--;
if ( length == 0)
return;
offset++;
dissect_ansi_map_cdmachanneldata(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
int offset = 0;
- int length;
+ int length;
proto_tree *subtree;
};
/* 6.5.2.53 DeniedAuthorizationPeriod */
-/* Period (octet 1) */
+/* Period (octet 1) */
static const value_string ansi_map_deniedauthorizationperiod_period_vals[] = {
{ 0, "Not used"},
{ 1, "Per Call. Re-authorization should be attempted on the next call attempt"},
Number of minutes hours, days, weeks, or
number of calls (as per Period). If Period
indicates anything else the Value is set to zero
-on sending and ignored on receipt.
+on sending and ignored on receipt.
*/
static void
{ 110, "MS Disconnect"},
{ 0, NULL }
};
+static value_string_ext ansi_map_SMS_CauseCode_vals_ext = VALUE_STRING_EXT_INIT(ansi_map_SMS_CauseCode_vals);
/* 6.5.2.126 SMS_ChargeIndicator */
/* SMS Charge Indicator (octet 1) */
/* values copied from old ANSI map dissector */
static const range_string cdmaserviceoption_vals[] = {
- { 1, 1, "Basic Variable Rate Voice Service (8 kbps)" },
- { 2, 2, "Mobile Station Loopback (8 kbps)" },
- { 3, 3, "Enhanced Variable Rate Voice Service (8 kbps)" },
- { 4, 4, "Asynchronous Data Service (9.6 kbps)" },
+ { 1, 1, "Basic Variable Rate Voice Service (8 kbps)" },
+ { 2, 2, "Mobile Station Loopback (8 kbps)" },
+ { 3, 3, "Enhanced Variable Rate Voice Service (8 kbps)" },
+ { 4, 4, "Asynchronous Data Service (9.6 kbps)" },
{ 5, 5, "Group 3 Facsimile (9.6 kbps)" },
- { 6, 6, "Short Message Services (Rate Set 1)" },
- { 7, 7, "Packet Data Service: Internet or ISO Protocol Stack (9.6 kbps)" },
- { 8, 8, "Packet Data Service: CDPD Protocol Stack (9.6 kbps)" },
- { 9, 9, "Mobile Station Loopback (13 kbps)" },
- { 10, 10, "STU-III Transparent Service" },
- { 11, 11, "STU-III Non-Transparent Service" },
- { 12, 12, "Asynchronous Data Service (14.4 or 9.6 kbps)" },
- { 13, 13, "Group 3 Facsimile (14.4 or 9.6 kbps)" },
- { 14, 14, "Short Message Services (Rate Set 2)" },
- { 15, 15, "Packet Data Service: Internet or ISO Protocol Stack (14.4 kbps)" },
- { 16, 16, "Packet Data Service: CDPD Protocol Stack (14.4 kbps)" },
- { 17, 17, "High Rate Voice Service (13 kbps)" },
- { 18, 18, "Over-the-Air Parameter Administration (Rate Set 1)" },
- { 19, 19, "Over-the-Air Parameter Administration (Rate Set 2)" },
- { 20, 20, "Group 3 Analog Facsimile (Rate Set 1)" },
- { 21, 21, "Group 3 Analog Facsimile (Rate Set 2)" },
- { 22, 22, "High Speed Packet Data Service: Internet or ISO Protocol Stack (RS1 forward, RS1 reverse)" },
- { 23, 23, "High Speed Packet Data Service: Internet or ISO Protocol Stack (RS1 forward, RS2 reverse)" },
- { 24, 24, "High Speed Packet Data Service: Internet or ISO Protocol Stack (RS2 forward, RS1 reverse)" },
+ { 6, 6, "Short Message Services (Rate Set 1)" },
+ { 7, 7, "Packet Data Service: Internet or ISO Protocol Stack (9.6 kbps)" },
+ { 8, 8, "Packet Data Service: CDPD Protocol Stack (9.6 kbps)" },
+ { 9, 9, "Mobile Station Loopback (13 kbps)" },
+ { 10, 10, "STU-III Transparent Service" },
+ { 11, 11, "STU-III Non-Transparent Service" },
+ { 12, 12, "Asynchronous Data Service (14.4 or 9.6 kbps)" },
+ { 13, 13, "Group 3 Facsimile (14.4 or 9.6 kbps)" },
+ { 14, 14, "Short Message Services (Rate Set 2)" },
+ { 15, 15, "Packet Data Service: Internet or ISO Protocol Stack (14.4 kbps)" },
+ { 16, 16, "Packet Data Service: CDPD Protocol Stack (14.4 kbps)" },
+ { 17, 17, "High Rate Voice Service (13 kbps)" },
+ { 18, 18, "Over-the-Air Parameter Administration (Rate Set 1)" },
+ { 19, 19, "Over-the-Air Parameter Administration (Rate Set 2)" },
+ { 20, 20, "Group 3 Analog Facsimile (Rate Set 1)" },
+ { 21, 21, "Group 3 Analog Facsimile (Rate Set 2)" },
+ { 22, 22, "High Speed Packet Data Service: Internet or ISO Protocol Stack (RS1 forward, RS1 reverse)" },
+ { 23, 23, "High Speed Packet Data Service: Internet or ISO Protocol Stack (RS1 forward, RS2 reverse)" },
+ { 24, 24, "High Speed Packet Data Service: Internet or ISO Protocol Stack (RS2 forward, RS1 reverse)" },
{ 25, 25, "High Speed Packet Data Service: Internet or ISO Protocol Stack (RS2 forward, RS2 reverse)" },
- { 26, 26, "High Speed Packet Data Service: CDPD Protocol Stack (RS1 forward, RS1 reverse)" },
- { 27, 27, "High Speed Packet Data Service: CDPD Protocol Stack (RS1 forward, RS2 reverse)" },
- { 28, 28, "High Speed Packet Data Service: CDPD Protocol Stack (RS2 forward, RS1 reverse)" },
- { 29, 29, "High Speed Packet Data Service: CDPD Protocol Stack (RS2 forward, RS2 reverse)" },
- { 30, 30, "Supplemental Channel Loopback Test for Rate Set 1" },
- { 31, 31, "Supplemental Channel Loopback Test for Rate Set 2" },
- { 32, 32, "Test Data Service Option (TDSO)" },
- { 33, 33, "cdma2000 High Speed Packet Data Service, Internet or ISO Protocol Stack" },
- { 34, 34, "cdma2000 High Speed Packet Data Service, CDPD Protocol Stack" },
+ { 26, 26, "High Speed Packet Data Service: CDPD Protocol Stack (RS1 forward, RS1 reverse)" },
+ { 27, 27, "High Speed Packet Data Service: CDPD Protocol Stack (RS1 forward, RS2 reverse)" },
+ { 28, 28, "High Speed Packet Data Service: CDPD Protocol Stack (RS2 forward, RS1 reverse)" },
+ { 29, 29, "High Speed Packet Data Service: CDPD Protocol Stack (RS2 forward, RS2 reverse)" },
+ { 30, 30, "Supplemental Channel Loopback Test for Rate Set 1" },
+ { 31, 31, "Supplemental Channel Loopback Test for Rate Set 2" },
+ { 32, 32, "Test Data Service Option (TDSO)" },
+ { 33, 33, "cdma2000 High Speed Packet Data Service, Internet or ISO Protocol Stack" },
+ { 34, 34, "cdma2000 High Speed Packet Data Service, CDPD Protocol Stack" },
{ 35, 35, "Location Services, Rate Set 1 (9.6 kbps)" },
- { 36, 36, "Location Services, Rate Set 2 (14.4 kbps)" },
- { 37, 37, "ISDN Interworking Service (64 kbps)" },
- { 38, 38, "GSM Voice" },
- { 39, 39, "GSM Circuit Data" },
- { 40, 40, "GSM Packet Data" },
- { 41, 41, "GSM Short Message Service" },
- { 42, 42, "None Reserved for MC-MAP standard service options" },
- { 54, 54, "Markov Service Option (MSO)" },
+ { 36, 36, "Location Services, Rate Set 2 (14.4 kbps)" },
+ { 37, 37, "ISDN Interworking Service (64 kbps)" },
+ { 38, 38, "GSM Voice" },
+ { 39, 39, "GSM Circuit Data" },
+ { 40, 40, "GSM Packet Data" },
+ { 41, 41, "GSM Short Message Service" },
+ { 42, 42, "None Reserved for MC-MAP standard service options" },
+ { 54, 54, "Markov Service Option (MSO)" },
{ 55, 55, "Loopback Service Option (LSO)" },
- { 56, 56, "Selectable Mode Vocoder" },
- { 57, 57, "32 kbps Circuit Video Conferencing" },
- { 58, 58, "64 kbps Circuit Video Conferencing" },
- { 59, 59, "HRPD Accounting Records Identifier" },
- { 60, 60, "Link Layer Assisted Robust Header Compression (LLA ROHC) - Header Removal" },
- { 61, 61, "Link Layer Assisted Robust Header Compression (LLA ROHC) - Header Compression" },
+ { 56, 56, "Selectable Mode Vocoder" },
+ { 57, 57, "32 kbps Circuit Video Conferencing" },
+ { 58, 58, "64 kbps Circuit Video Conferencing" },
+ { 59, 59, "HRPD Accounting Records Identifier" },
+ { 60, 60, "Link Layer Assisted Robust Header Compression (LLA ROHC) - Header Removal" },
+ { 61, 61, "Link Layer Assisted Robust Header Compression (LLA ROHC) - Header Compression" },
{ 62, 62, "Source-Controlled Variable-Rate Multimode Wideband Speech Codec (VMR-WB) Rate Set 2" },
{ 63, 63, "Source-Controlled Variable-Rate Multimode Wideband Speech Codec (VMR-WB) Rate Set 1" },
{ 64, 64, "HRPD auxiliary Packet Data Service instance" },
{ 65, 65, "cdma2000/GPRS Inter-working" },
{ 66, 66, "cdma2000 High Speed Packet Data Service, Internet or ISO Protocol Stack" },
{ 67, 67, "HRPD Packet Data IP Service where Higher Layer Protocol is IP or ROHC" },
- { 68, 68, "Enhanced Variable Rate Voice Service (EVRC-B)" },
+ { 68, 68, "Enhanced Variable Rate Voice Service (EVRC-B)" },
{ 69, 69, "HRPD Packet Data Service, which when used in paging over the 1x air interface, a page response is required" },
- { 70, 70, "Enhanced Variable Rate Voice Service (EVRC-WB)" },
- { 71, 4099, "None Reserved for standard service options" },
- { 4100, 4100, "Asynchronous Data Service, Revision 1 (9.6 or 14.4 kbps)" },
- { 4101, 4101, "Group 3 Facsimile, Revision 1 (9.6 or 14.4 kbps)" },
+ { 70, 70, "Enhanced Variable Rate Voice Service (EVRC-WB)" },
+ { 71, 4099, "None Reserved for standard service options" },
+ { 4100, 4100, "Asynchronous Data Service, Revision 1 (9.6 or 14.4 kbps)" },
+ { 4101, 4101, "Group 3 Facsimile, Revision 1 (9.6 or 14.4 kbps)" },
{ 4102, 4102, "Reserved for standard service option" },
- { 4103, 4103, "Packet Data Service: Internet or ISO Protocol Stack, Revision 1 (9.6 or 14.4 kbps)" },
- { 4104, 4104, "Packet Data Service: CDPD Protocol Stack, Revision 1 (9.6 or 14.4 kbps)" },
- { 4105, 32767, "Reserved for standard service options" },
- { 32768, 32768, "QCELP (13 kbps)" },
- { 32769, 32771, "Proprietary QUALCOMM Incorporated" },
- { 32772, 32775, "Proprietary OKI Telecom" },
- { 32776, 32779, "Proprietary Lucent Technologies" },
- { 32780, 32783, "Nokia" },
- { 32784, 32787, "NORTEL NETWORKS" },
- { 32788, 32791, "Sony Electronics Inc" },
- { 32792, 32795, "Motorola" },
- { 32796, 32799, "QUALCOMM Incorporated" },
- { 32800, 32803, "QUALCOMM Incorporated" },
- { 32804, 32807, "QUALCOMM Incorporated" },
- { 32808, 32811, "QUALCOMM Incorporated" },
- { 32812, 32815, "Lucent Technologies" },
- { 32816, 32819, "Denso International" },
- { 32820, 32823, "Motorola" },
- { 32824, 32827, "Denso International" },
- { 32828, 32831, "Denso International" },
- { 32832, 32835, "Denso International" },
+ { 4103, 4103, "Packet Data Service: Internet or ISO Protocol Stack, Revision 1 (9.6 or 14.4 kbps)" },
+ { 4104, 4104, "Packet Data Service: CDPD Protocol Stack, Revision 1 (9.6 or 14.4 kbps)" },
+ { 4105, 32767, "Reserved for standard service options" },
+ { 32768, 32768, "QCELP (13 kbps)" },
+ { 32769, 32771, "Proprietary QUALCOMM Incorporated" },
+ { 32772, 32775, "Proprietary OKI Telecom" },
+ { 32776, 32779, "Proprietary Lucent Technologies" },
+ { 32780, 32783, "Nokia" },
+ { 32784, 32787, "NORTEL NETWORKS" },
+ { 32788, 32791, "Sony Electronics Inc" },
+ { 32792, 32795, "Motorola" },
+ { 32796, 32799, "QUALCOMM Incorporated" },
+ { 32800, 32803, "QUALCOMM Incorporated" },
+ { 32804, 32807, "QUALCOMM Incorporated" },
+ { 32808, 32811, "QUALCOMM Incorporated" },
+ { 32812, 32815, "Lucent Technologies" },
+ { 32816, 32819, "Denso International" },
+ { 32820, 32823, "Motorola" },
+ { 32824, 32827, "Denso International" },
+ { 32828, 32831, "Denso International" },
+ { 32832, 32835, "Denso International" },
{ 32836, 32839, "NEC America" },
{ 32840, 32843, "Samsung Electronics" },
{ 32844, 32847, "Texas Instruments Incorporated" },
};
/* 6.5.2.az TDMADataFeaturesIndicator N.S0008-0 v 1.0 */
-/* TDMADataFeaturesIndicator
+/* TDMADataFeaturesIndicator
ansi_map_FeatureActivity_vals
ADS FeatureActivity ADS-FA ( octet 1 bit A and B )
j=0;
break;
default:
- proto_tree_add_text(subtree, tvb, offset, 1, "[%u] (%u) %s",j,octet,val_to_str(octet, ansi_map_TriggerType_vals, "Unknown TriggerType (%u)"));
+ proto_tree_add_text(subtree, tvb, offset, 1, "[%u] (%u) %s",j,octet,val_to_str_ext(octet, &ansi_map_TriggerType_vals_ext, "Unknown TriggerType (%u)"));
j++;
break;
}
static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
+ static gboolean opCodeKnown = TRUE;
+ static ansi_map_tap_rec_t tap_rec[16];
+ static ansi_map_tap_rec_t *tap_p;
+ static int tap_current=0;
+ /*
+ * set tap record pointer
+ */
+ tap_current++;
+ if (tap_current == array_length(tap_rec))
+ {
+ tap_current = 0;
+ }
+ tap_p = &tap_rec[tap_current];
switch(OperationCode){
case 1: /*Handoff Measurement Request*/
offset = dissect_ansi_map_FacilitiesDirective(TRUE, tvb, offset, actx, tree, hf_ansi_map_facilitiesDirective);
break;
case 3: /*Mobile On Channel*/
- proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
+ proto_tree_add_text(tree, tvb, offset, -1, "[Carries no data]");
break;
case 4: /*Handoff Back*/
offset = dissect_ansi_map_HandoffBack(TRUE, tvb, offset, actx, tree, hf_ansi_map_handoffBack);
case 59: /*Change Service*/
offset = dissect_ansi_map_ChangeService(TRUE, tvb, offset, actx, tree, hf_ansi_map_changeService);
break;
- /* End N.S0008-0 v 1.0 */
+ /* End N.S0008-0 v 1.0 */
case 60: /*Parameter Request*/
offset = dissect_ansi_map_ParameterRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_parameterRequest);
break;
offset = offset;
break;
case 78: /*SMS Delivery Point to Point Ack*/
- offset = offset;
+ offset = dissect_ansi_map_SMSDeliveryPointToPointAck(TRUE, tvb, offset, actx, tree, hf_ansi_map_smsDeliveryPointToPointAck);
break;
/* N.S0024*/
case 79: /*Message Directive*/
/*End N.S0029 X.S0001-A v1.0*/
/* X.S0002-0 v1.0 */
/* LCSParameterRequest */
+ case 101: /* InterSystemSMSPage 101 */
+ offset = dissect_ansi_map_InterSystemSMSPage(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemSMSPage);
+ break;
case 102:
offset = dissect_ansi_map_LCSParameterRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_lcsParameterRequest);
break;
/* CheckMEID X.S0008-0 v1.0*/
case 104:
offset = dissect_ansi_map_CheckMEID(TRUE, tvb, offset, actx, tree, hf_ansi_map_checkMEID);
- break;
+ break;
/* PositionEventNotification */
case 106:
offset = dissect_ansi_map_PositionEventNotification(TRUE, tvb, offset, actx, tree, hf_ansi_map_positionEventNotification);
/* StatusRequest X.S0008-0 v1.0*/
offset = dissect_ansi_map_StatusRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_statusRequest);
break;
+ /* InterSystemSMSDelivery-PointToPoint 111 X.S0004-540-E v2.0*/
+ case 111:
+ /* InterSystemSMSDeliveryPointToPoint X.S0004-540-E v2.0 */
+ offset = dissect_ansi_map_InterSystemSMSDeliveryPointToPoint(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemSMSDeliveryPointToPoint);
+ break;
+ case 112:
+ /* QualificationRequest2 112 X.S0004-540-E v2.0*/
+ offset = dissect_ansi_map_QualificationRequest2(TRUE, tvb, offset, actx, tree, hf_ansi_map_qualificationRequest2);
+ break;
default:
proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
+ opCodeKnown = FALSE;
break;
}
- return offset;
+ if (opCodeKnown)
+ {
+ tap_p->message_type = OperationCode;
+ tap_p->size = 0; /* should be number of octets in message */
+
+ tap_queue_packet(ansi_map_tap, g_pinfo, tap_p);
+ }
+ return offset;
}
static int dissect_returnData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
+ static gboolean opCodeKnown = TRUE;
+ static ansi_map_tap_rec_t tap_rec[16];
+ static ansi_map_tap_rec_t *tap_p;
+ static int tap_current=0;
+
+ /*
+ * set tap record pointer
+ */
+ tap_current++;
+ if (tap_current == array_length(tap_rec))
+ {
+ tap_current = 0;
+ }
+ tap_p = &tap_rec[tap_current];
switch(OperationCode){
case 1: /*Handoff Measurement Request*/
case 56: /*OTASP Request 6.4.2.CC*/
offset = dissect_ansi_map_OTASPRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_oTASPRequestRes);
break;
+ /* 57 Information Backward*/
case 58: /*Change Facilities*/
offset = dissect_ansi_map_ChangeFacilitiesRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_changeFacilitiesRes);
break;
case 61: /*TMSI Directive*/
offset = dissect_ansi_map_TMSIDirectiveRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_tMSIDirectiveRes);
break;
+ case 62: /*NumberPortabilityRequest */
+ offset = dissect_ansi_map_NumberPortabilityRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_numberPortabilityRequestRes);
+ break;
case 63: /*Service Request*/
offset = dissect_ansi_map_ServiceRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_serviceRequestRes);
break;
case 64: /*Analyzed Information Request*/
offset = dissect_ansi_map_AnalyzedInformationRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_analyzedInformationRes);
break;
+ /* 65 Connection Failure Report*/
+ /* 66 Connect Resource*/
+ /* 67 Disconnect Resource*/
case 68: /*Facility Selected and Available*/
offset = dissect_ansi_map_FacilitySelectedAndAvailableRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_facilitySelectedAndAvailableRes);
break;
+ /* 69 Instruction Request*/
case 70: /*Modify*/
offset = dissect_ansi_map_ModifyRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_modifyRes);
break;
/* CheckMEID X.S0008-0 v1.0*/
case 104:
offset = dissect_ansi_map_CheckMEIDRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_checkMEIDRes);
- break;
+ break;
/* PositionEventNotification *
case 106:
offset = dissect_ansi_map_PositionEventNotification(TRUE, tvb, offset, actx, tree, hf_ansi_map_positionEventNotificationRes);
/* StatusRequest X.S0008-0 v1.0*/
offset = dissect_ansi_map_StatusRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_statusRequestRes);
break;
-
+ case 111:
+ /* InterSystemSMSDeliveryPointToPointRes X.S0004-540-E v2.0 */
+ offset = dissect_ansi_map_InterSystemSMSDeliveryPointToPointRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemSMSDeliveryPointToPointRes);
+ break;
+ case 112:
+ /* QualificationRequest2Res 112 X.S0004-540-E v2.0*/
+ offset = dissect_ansi_map_QualificationRequest2Res(TRUE, tvb, offset, actx, tree, hf_ansi_map_qualificationRequest2Res);
+ break;
default:
proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
+ opCodeKnown = FALSE;
break;
}
- return offset;
+ if (opCodeKnown)
+ {
+ tap_p->message_type = OperationCode;
+ tap_p->size = 0; /* should be number of octets in message */
+
+ tap_queue_packet(ansi_map_tap, g_pinfo, tap_p);
+ }
+ return offset;
}
static int
char *buf;
buf=ep_alloc(1024);
- src_str = address_to_str(src);
- dst_str = address_to_str(dst);
+ src_str = ep_address_to_str(src);
+ dst_str = ep_address_to_str(dst);
/* Data from the TCAP dissector */
if (actx->pinfo->private_data != NULL){
p_private_tcap=actx->pinfo->private_data;
/* The hash string needs to contain src and dest to distiguish differnt flows */
- src_str = address_to_str(src);
- dst_str = address_to_str(dst);
+ src_str = ep_address_to_str(src);
+ dst_str = ep_address_to_str(dst);
/* Reverse order to invoke */
- g_snprintf(buf,1024,"%s%s%s",p_private_tcap->TransactionID_str,dst_str,src_str);
- /*
- g_warning("Find Hash string %s",buf);
- */
+ switch(ansi_map_response_matching_type){
+ case ANSI_MAP_TID_ONLY:
+ g_snprintf(buf,1024,"%s",p_private_tcap->TransactionID_str);
+ break;
+ case 1:
+ g_snprintf(buf,1024,"%s%s",p_private_tcap->TransactionID_str,dst_str);
+ break;
+ default:
+ g_snprintf(buf,1024,"%s%s%s",p_private_tcap->TransactionID_str,dst_str,src_str);
+ break;
+ }
+
+ /*g_warning("Find Hash string %s pkt: %u",buf,actx->pinfo->fd->num);*/
ansi_map_saved_invokedata = g_hash_table_lookup(TransactionId_table, buf);
if(ansi_map_saved_invokedata){
OperationCode = ansi_map_saved_invokedata->opcode & 0xff;
OperationCode = OperationCode & 0x00ff;
}
}else{
+ /*g_warning("No private data pkt: %u",actx->pinfo->fd->num);*/
OperationCode = OperationCode & 0x00ff;
}
return OperationCode;
/*
* Make entry in the Protocol column on summary display
*/
- if (check_col(pinfo->cinfo, COL_PROTOCOL))
- {
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "ANSI MAP");
- }
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "ANSI MAP");
/* Data from the TCAP dissector */
if (pinfo->private_data == NULL){
p_private_tcap=pinfo->private_data;
switch(p_private_tcap->d.pdu){
- /*
- 1 : invoke,
- 2 : returnResult,
+ /*
+ 1 : invoke,
+ 2 : returnResult,
3 : returnError,
4 : reject
*/
case 1:
OperationCode = p_private_tcap->d.OperationCode_private & 0x00ff;
ansi_map_is_invoke = TRUE;
- if (check_col(pinfo->cinfo, COL_INFO)){
- col_clear(pinfo->cinfo, COL_INFO);
- col_add_fstr(pinfo->cinfo, COL_INFO,"%s Invoke", val_to_str(OperationCode, ansi_map_opr_code_strings, "Unknown ANSI-MAP PDU (%u)"));
- }
- proto_item_append_text(p_private_tcap->d.OperationCode_item," %s",val_to_str(OperationCode, ansi_map_opr_code_strings, "Unknown ANSI-MAP PDU (%u)"));
+ col_add_fstr(pinfo->cinfo, COL_INFO,"%s Invoke ", val_to_str_ext(OperationCode, &ansi_map_opr_code_strings_ext, "Unknown ANSI-MAP PDU (%u)"));
+ proto_item_append_text(p_private_tcap->d.OperationCode_item," %s",val_to_str_ext(OperationCode, &ansi_map_opr_code_strings_ext, "Unknown ANSI-MAP PDU (%u)"));
offset = dissect_invokeData(ansi_map_tree, tvb, 0, &asn1_ctx);
update_saved_invokedata(pinfo, ansi_map_tree, tvb);
break;
case 2:
OperationCode = find_saved_invokedata(&asn1_ctx);
- if (check_col(pinfo->cinfo, COL_INFO)){
- col_clear(pinfo->cinfo, COL_INFO);
- col_add_fstr(pinfo->cinfo, COL_INFO,"%s ReturnResult", val_to_str(OperationCode, ansi_map_opr_code_strings, "Unknown ANSI-MAP PDU (%u)"));
- }
- proto_item_append_text(p_private_tcap->d.OperationCode_item," %s",val_to_str(OperationCode, ansi_map_opr_code_strings, "Unknown ANSI-MAP PDU (%u)"));
+ col_add_fstr(pinfo->cinfo, COL_INFO,"%s ReturnResult ", val_to_str_ext(OperationCode, &ansi_map_opr_code_strings_ext, "Unknown ANSI-MAP PDU (%u)"));
+ proto_item_append_text(p_private_tcap->d.OperationCode_item," %s",val_to_str_ext(OperationCode, &ansi_map_opr_code_strings_ext, "Unknown ANSI-MAP PDU (%u)"));
offset = dissect_returnData(ansi_map_tree, tvb, 0, &asn1_ctx);
break;
case 3:
- if (check_col(pinfo->cinfo, COL_INFO)){
- col_clear(pinfo->cinfo, COL_INFO);
- col_add_fstr(pinfo->cinfo, COL_INFO,"%s ReturnError", val_to_str(OperationCode, ansi_map_opr_code_strings, "Unknown ANSI-MAP PDU (%u)"));
- }
+ col_add_fstr(pinfo->cinfo, COL_INFO,"%s ReturnError ", val_to_str_ext(OperationCode, &ansi_map_opr_code_strings_ext, "Unknown ANSI-MAP PDU (%u)"));
break;
case 4:
- if (check_col(pinfo->cinfo, COL_INFO)){
- col_clear(pinfo->cinfo, COL_INFO);
- col_add_fstr(pinfo->cinfo, COL_INFO,"%s Reject", val_to_str(OperationCode, ansi_map_opr_code_strings, "Unknown ANSI-MAP PDU (%u)"));
- }
+ col_add_fstr(pinfo->cinfo, COL_INFO,"%s Reject ", val_to_str_ext(OperationCode, &ansi_map_opr_code_strings_ext, "Unknown ANSI-MAP PDU (%u)"));
break;
default:
/* Must be Invoke ReturnResult ReturnError or Reject */
{ &hf_ansi_map_op_code_fam,
{ "Operation Code Family", "ansi_map.op_code_fam",
FT_UINT8, BASE_DEC, NULL, 0,
- "Operation Code Family", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_reservedBitH,
{ "Reserved", "ansi_map.reserved_bitH",
FT_BOOLEAN, 8, NULL,0x80,
- "Reserved", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_reservedBitD,
{ "Reserved", "ansi_map.reserved_bitD",
FT_BOOLEAN, 8, NULL,0x08,
- "Reserved", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_reservedBitHG,
{ "Reserved", "ansi_map.reserved_bitHG",
FT_UINT8, BASE_DEC, NULL, 0xc0,
- "Reserved", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_reservedBitHGFE,
{ "Reserved", "ansi_map.reserved_bitHGFE",
FT_UINT8, BASE_DEC, NULL, 0xf0,
- "Reserved", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_reservedBitFED,
{ "Reserved", "ansi_map.reserved_bitFED",
FT_UINT8, BASE_DEC, NULL, 0x38,
- "Reserved", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_reservedBitED,
{ "Reserved", "ansi_map.reserved_bitED",
FT_UINT8, BASE_DEC, NULL, 0x18,
- "Reserved", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_op_code,
{ "Operation Code", "ansi_map.op_code",
- FT_UINT8, BASE_DEC, VALS(ansi_map_opr_code_strings), 0x0,
- "Operation Code", HFILL }},
+ FT_UINT8, BASE_DEC|BASE_EXT_STRING, &ansi_map_opr_code_strings_ext, 0x0,
+ NULL, HFILL }},
{ &hf_ansi_map_type_of_digits,
{ "Type of Digits", "ansi_map.type_of_digits",
FT_UINT8, BASE_DEC, VALS(ansi_map_type_of_digits_vals), 0x0,
- "Type of Digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_na,
{ "Nature of Number", "ansi_map.na",
FT_BOOLEAN, 8, TFS(&ansi_map_na_bool_val),0x01,
- "Nature of Number", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_pi,
{ "Presentation Indication", "ansi_map.type_of_pi",
FT_BOOLEAN, 8, TFS(&ansi_map_pi_bool_val),0x02,
- "Presentation Indication", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_navail,
{ "Number available indication", "ansi_map.navail",
FT_BOOLEAN, 8, TFS(&ansi_map_navail_bool_val),0x04,
- "Number available indication", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_si,
{ "Screening indication", "ansi_map.si",
FT_UINT8, BASE_DEC, VALS(ansi_map_si_vals), 0x30,
- "Screening indication", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_digits_enc,
{ "Encoding", "ansi_map.enc",
FT_UINT8, BASE_DEC, VALS(ansi_map_digits_enc_vals), 0x0f,
- "Encoding", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_np,
{ "Numbering Plan", "ansi_map.np",
FT_UINT8, BASE_DEC, VALS(ansi_map_np_vals), 0xf0,
- "Numbering Plan", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_nr_digits,
{ "Number of Digits", "ansi_map.nr_digits",
FT_UINT8, BASE_DEC, NULL, 0x0,
- "Number of Digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_bcd_digits,
{ "BCD digits", "ansi_map.bcd_digits",
FT_STRING, BASE_NONE, NULL, 0,
- "BCD digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_ia5_digits,
{ "IA5 digits", "ansi_map.ia5_digits",
FT_STRING, BASE_NONE, NULL, 0,
- "IA5 digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_subaddr_type,
{ "Type of Subaddress", "ansi_map.subaddr_type",
FT_UINT8, BASE_DEC, VALS(ansi_map_sub_addr_type_vals), 0x70,
- "Type of Subaddress", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_subaddr_odd_even,
{ "Odd/Even Indicator", "ansi_map.subaddr_odd_even",
FT_BOOLEAN, 8, TFS(&ansi_map_navail_bool_val),0x08,
- "Odd/Even Indicator", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_alertcode_cadence,
{ "Cadence", "ansi_map.alertcode.cadence",
FT_UINT8, BASE_DEC, VALS(ansi_map_AlertCode_Cadence_vals), 0x3f,
- "Cadence", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_alertcode_pitch,
{ "Pitch", "ansi_map.alertcode.pitch",
FT_UINT8, BASE_DEC, VALS(ansi_map_AlertCode_Pitch_vals), 0xc0,
- "Pitch", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_alertcode_alertaction,
{ "Alert Action", "ansi_map.alertcode.alertaction",
FT_UINT8, BASE_DEC, VALS(ansi_map_AlertCode_Alert_Action_vals), 0x07,
- "Alert Action", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_announcementcode_tone,
{ "Tone", "ansi_map.announcementcode.tone",
FT_UINT8, BASE_DEC, VALS(ansi_map_AnnouncementCode_tone_vals), 0x0,
- "Tone", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_announcementcode_class,
{ "Tone", "ansi_map.announcementcode.class",
FT_UINT8, BASE_DEC, VALS(ansi_map_AnnouncementCode_class_vals), 0xf,
- "Tone", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_announcementcode_std_ann,
{ "Standard Announcement", "ansi_map.announcementcode.std_ann",
FT_UINT8, BASE_DEC, VALS(ansi_map_AnnouncementCode_std_ann_vals), 0x0,
- "Standard Announcement", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_announcementcode_cust_ann,
{ "Custom Announcement", "ansi_map.announcementcode.cust_ann",
FT_UINT8, BASE_DEC, NULL, 0x0,
- "Custom Announcement", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_authorizationperiod_period,
{ "Period", "ansi_map.authorizationperiod.period",
FT_UINT8, BASE_DEC, VALS(ansi_map_authorizationperiod_period_vals), 0x0,
- "Period", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_value,
- { " Value", "ansi_map.value",
+ { "Value", "ansi_map.value",
FT_UINT8, BASE_DEC, NULL, 0x0,
- "Value", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_msc_type,
{ "Type", "ansi_map.extendedmscid.type",
FT_UINT8, BASE_DEC, VALS(ansi_map_msc_type_vals), 0x0,
- "Type", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_handoffstate_pi,
{ "Party Involved (PI)", "ansi_map.handoffstate.pi",
FT_BOOLEAN, 8, TFS(&ansi_map_HandoffState_pi_bool_val),0x01,
- "Party Involved (PI)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_tgn,
{ "Trunk Group Number (G)", "ansi_map.tgn",
FT_UINT8, BASE_DEC, NULL,0x0,
- "Trunk Group Number (G)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_tmn,
{ "Trunk Member Number (M)", "ansi_map.tgn",
FT_UINT8, BASE_DEC, NULL,0x0,
- "Trunk Member Number (M)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_messagewaitingnotificationcount_tom,
{ "Type of messages", "ansi_map.messagewaitingnotificationcount.tom",
FT_UINT8, BASE_DEC, VALS(ansi_map_MessageWaitingNotificationCount_type_vals), 0x0,
- "Type of messages", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_messagewaitingnotificationcount_no_mw,
{ "Number of Messages Waiting", "ansi_map.messagewaitingnotificationcount.nomw",
FT_UINT8, BASE_DEC, NULL,0x0,
- "Number of Messages Waiting", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_messagewaitingnotificationtype_mwi,
{ "Message Waiting Indication (MWI)", "ansi_map.messagewaitingnotificationcount.mwi",
FT_UINT8, BASE_DEC, VALS(ansi_map_MessageWaitingNotificationType_mwi_vals), 0x0,
- "Message Waiting Indication (MWI)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_messagewaitingnotificationtype_apt,
{ "Alert Pip Tone (APT)", "ansi_map.messagewaitingnotificationtype.apt",
FT_BOOLEAN, 8, TFS(&ansi_map_HandoffState_pi_bool_val),0x02,
- "Alert Pip Tone (APT)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_messagewaitingnotificationtype_pt,
{ "Pip Tone (PT)", "ansi_map.messagewaitingnotificationtype.pt",
FT_UINT8, BASE_DEC, VALS(ansi_map_MessageWaitingNotificationType_mwi_vals), 0xc0,
- "Pip Tone (PT)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_trans_cap_prof,
{ "Profile (PROF)", "ansi_map.trans_cap_prof",
FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_prof_bool_val),0x01,
- "Profile (PROF)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_trans_cap_busy,
{ "Busy Detection (BUSY)", "ansi_map.trans_cap_busy",
FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_busy_bool_val),0x02,
- "Busy Detection (BUSY)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_trans_cap_ann,
{ "Announcements (ANN)", "ansi_map.trans_cap_ann",
FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_ann_bool_val),0x04,
- "Announcements (ANN)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_trans_cap_rui,
{ "Remote User Interaction (RUI)", "ansi_map.trans_cap_rui",
FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_rui_bool_val),0x08,
- "Remote User Interaction (RUI)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_trans_cap_spini,
{ "Subscriber PIN Intercept (SPINI)", "ansi_map.trans_cap_spini",
FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_spini_bool_val),0x10,
- "Subscriber PIN Intercept (SPINI)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_trans_cap_uzci,
{ "UZ Capability Indicator (UZCI)", "ansi_map.trans_cap_uzci",
FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_uzci_bool_val),0x20,
- "UZ Capability Indicator (UZCI)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_trans_cap_ndss,
{ "NDSS Capability (NDSS)", "ansi_map.trans_cap_ndss",
FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_ndss_bool_val),0x40,
- "NDSS Capability (NDSS)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_trans_cap_nami,
{ "NAME Capability Indicator (NAMI)", "ansi_map.trans_cap_nami",
FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_nami_bool_val),0x80,
- "NAME Capability Indicator (NAMI)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_trans_cap_multerm,
{ "Multiple Terminations", "ansi_map.trans_cap_multerm",
FT_UINT8, BASE_DEC, VALS(ansi_map_trans_cap_multerm_vals), 0x0f,
- "Multiple Terminations", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_terminationtriggers_busy,
{ "Busy", "ansi_map.terminationtriggers.busy",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_busy_vals), 0x03,
- "Busy", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_terminationtriggers_rf,
{ "Routing Failure (RF)", "ansi_map.terminationtriggers.rf",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_rf_vals), 0x0c,
- "Routing Failure (RF)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_terminationtriggers_npr,
{ "No Page Response (NPR)", "ansi_map.terminationtriggers.npr",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_npr_vals), 0x30,
- "No Page Response (NPR)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_terminationtriggers_na,
{ "No Answer (NA)", "ansi_map.terminationtriggers.na",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_na_vals), 0xc0,
- "No Answer (NA)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_terminationtriggers_nr,
{ "None Reachable (NR)", "ansi_map.terminationtriggers.nr",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_nr_vals), 0x01,
- "None Reachable (NR)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_trans_cap_tl,
{ "TerminationList (TL)", "ansi_map.trans_cap_tl",
FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_tl_bool_val),0x10,
- "TerminationList (TL)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmaserviceoption,
{ "CDMAServiceOption", "ansi_map.cdmaserviceoption",
FT_UINT16, BASE_RANGE_STRING | BASE_DEC, RVALS(&cdmaserviceoption_vals), 0x0,
- "CDMAServiceOption", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_trans_cap_waddr,
{ "WIN Addressing (WADDR)", "ansi_map.trans_cap_waddr",
FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_waddr_bool_val),0x20,
- "WIN Addressing (WADDR)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_MarketID,
{ "MarketID", "ansi_map.marketid",
FT_UINT16, BASE_DEC, NULL, 0,
- "MarketID", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_swno,
{ "Switch Number (SWNO)", "ansi_map.swno",
FT_UINT8, BASE_DEC, NULL, 0,
- "Switch Number (SWNO)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_idno,
{ "ID Number", "ansi_map.idno",
FT_UINT32, BASE_DEC, NULL, 0,
- "ID Number", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_segcount,
{ "Segment Counter", "ansi_map.segcount",
FT_UINT8, BASE_DEC, NULL, 0,
- "Segment Counter", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_sms_originationrestrictions_direct,
{ "DIRECT", "ansi_map.originationrestrictions.direct",
FT_BOOLEAN, 8, TFS(&ansi_map_SMS_OriginationRestrictions_direct_bool_val),0x04,
- "DIRECT", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_sms_originationrestrictions_default,
{ "DEFAULT", "ansi_map.originationrestrictions.default",
FT_UINT8, BASE_DEC, VALS(ansi_map_SMS_OriginationRestrictions_default_vals), 0x03,
- "DEFAULT", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_sms_originationrestrictions_fmc,
{ "Force Message Center (FMC)", "ansi_map.originationrestrictions.fmc",
FT_BOOLEAN, 8, TFS(&ansi_map_SMS_OriginationRestrictions_fmc_bool_val),0x08,
- "Force Message Center (FMC)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_systemcapabilities_auth,
{ "Authentication Parameters Requested (AUTH)", "ansi_map.systemcapabilities.auth",
FT_BOOLEAN, 8, TFS(&ansi_map_systemcapabilities_auth_bool_val),0x01,
- "Authentication Parameters Requested (AUTH)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_systemcapabilities_se,
{ "Signaling Message Encryption Capable (SE )", "ansi_map.systemcapabilities.se",
FT_BOOLEAN, 8, TFS(&ansi_map_systemcapabilities_se_bool_val),0x02,
- "Signaling Message Encryption Capable (SE )", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_systemcapabilities_vp,
{ "Voice Privacy Capable (VP )", "ansi_map.systemcapabilities.vp",
FT_BOOLEAN, 8, TFS(&ansi_map_systemcapabilities_vp_bool_val),0x04,
- "Voice Privacy Capable (VP )", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_systemcapabilities_cave,
{ "CAVE Algorithm Capable (CAVE)", "ansi_map.systemcapabilities.cave",
FT_BOOLEAN, 8, TFS(&ansi_map_systemcapabilities_cave_bool_val),0x08,
- "CAVE Algorithm Capable (CAVE)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_systemcapabilities_ssd,
{ "Shared SSD (SSD)", "ansi_map.systemcapabilities.ssd",
FT_BOOLEAN, 8, TFS(&ansi_map_systemcapabilities_ssd_bool_val),0x10,
- "Shared SSD (SSD)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_systemcapabilities_dp,
{ "Data Privacy (DP)", "ansi_map.systemcapabilities.dp",
FT_BOOLEAN, 8, TFS(&ansi_map_systemcapabilities_dp_bool_val),0x20,
- "Data Privacy (DP)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_mslocation_lat,
{ "Latitude in tenths of a second", "ansi_map.mslocation.lat",
FT_UINT8, BASE_DEC, NULL, 0,
- "Latitude in tenths of a second", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_mslocation_long,
{ "Longitude in tenths of a second", "ansi_map.mslocation.long",
FT_UINT8, BASE_DEC, NULL, 0,
{ &hf_ansi_map_mslocation_res,
{ "Resolution in units of 1 foot", "ansi_map.mslocation.res",
FT_UINT8, BASE_DEC, NULL, 0,
- "Resolution in units of 1 foot", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_nampscallmode_namps,
{ "Call Mode", "ansi_map.nampscallmode.namps",
FT_BOOLEAN, 8, TFS(&ansi_map_CallMode_namps_bool_val),0x01,
- "Call Mode", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_nampscallmode_amps,
{ "Call Mode", "ansi_map.nampscallmode.amps",
FT_BOOLEAN, 8, TFS(&ansi_map_CallMode_amps_bool_val),0x02,
- "Call Mode", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_nampschanneldata_navca,
{ "Narrow Analog Voice Channel Assignment (NAVCA)", "ansi_map.nampschanneldata.navca",
FT_UINT8, BASE_DEC, VALS(ansi_map_NAMPSChannelData_navca_vals), 0x03,
- "Narrow Analog Voice Channel Assignment (NAVCA)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_nampschanneldata_CCIndicator,
{ "Color Code Indicator (CCIndicator)", "ansi_map.nampschanneldata.ccindicator",
FT_UINT8, BASE_DEC, VALS(ansi_map_NAMPSChannelData_ccinidicator_vals), 0x1c,
- "Color Code Indicator (CCIndicator)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_cfufa,
{ "Call Forwarding Unconditional FeatureActivity, CFU-FA", "ansi_map.callingfeaturesindicator.cfufa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x03,
- "Call Forwarding Unconditional FeatureActivity, CFU-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_cfbfa,
{ "Call Forwarding Busy FeatureActivity, CFB-FA", "ansi_map.callingfeaturesindicator.cfbafa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x0c,
- "Call Forwarding Busy FeatureActivity, CFB-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_cfnafa,
{ "Call Forwarding No Answer FeatureActivity, CFNA-FA", "ansi_map.callingfeaturesindicator.cfnafa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x30,
- "Call Forwarding No Answer FeatureActivity, CFNA-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_cwfa,
{ "Call Waiting: FeatureActivity, CW-FA", "ansi_map.callingfeaturesindicator.cwfa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0xc0,
- "Call Waiting: FeatureActivity, CW-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_3wcfa,
{ "Three-Way Calling FeatureActivity, 3WC-FA", "ansi_map.callingfeaturesindicator.3wcfa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x03,
- "Three-Way Calling FeatureActivity, 3WC-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_pcwfa,
{ "Priority Call Waiting FeatureActivity PCW-FA", "ansi_map.callingfeaturesindicator.pcwfa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x03,
- "Priority Call Waiting FeatureActivity PCW-FA", HFILL }},
-
+ NULL, HFILL }},
+
{ &hf_ansi_map_callingfeaturesindicator_dpfa,
{ "Data Privacy Feature Activity DP-FA", "ansi_map.callingfeaturesindicator.dpfa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x0c,
- "Data Privacy Feature Activity DP-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_ahfa,
{ "Answer Hold: FeatureActivity AH-FA", "ansi_map.callingfeaturesindicator.ahfa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x30,
- "Answer Hold: FeatureActivity AH-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_uscfvmfa,
{ "USCF divert to voice mail: FeatureActivity USCFvm-FA", "ansi_map.callingfeaturesindicator.uscfvmfa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0xc0,
- "USCF divert to voice mail: FeatureActivity USCFvm-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_uscfmsfa,
{ "USCF divert to mobile station provided DN:FeatureActivity.USCFms-FA", "ansi_map.callingfeaturesindicator.uscfmsfa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x03,
- "USCF divert to mobile station provided DN:FeatureActivity.USCFms-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_uscfnrfa,
{ "USCF divert to network registered DN:FeatureActivity. USCFnr-FA", "ansi_map.callingfeaturesindicator.uscfmsfa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x0c,
- "USCF divert to network registered DN:FeatureActivity. USCFnr-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_cpdsfa,
{ "CDMA-Packet Data Service: FeatureActivity. CPDS-FA", "ansi_map.callingfeaturesindicator.cpdfa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x30,
- "CDMA-Packet Data Service: FeatureActivity. CPDS-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_ccsfa,
{ "CDMA-Concurrent Service:FeatureActivity. CCS-FA", "ansi_map.callingfeaturesindicator.ccsfa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0xc0,
- "CDMA-Concurrent Service:FeatureActivity. CCS-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_epefa,
{ "TDMA Enhanced Privacy and Encryption:FeatureActivity.TDMA EPE-FA", "ansi_map.callingfeaturesindicator.epefa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x03,
- "TDMA Enhanced Privacy and Encryption:FeatureActivity.TDMA EPE-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_cdfa,
{ "Call Delivery: FeatureActivity, CD-FA", "ansi_map.callingfeaturesindicator.cdfa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x0c,
- "Call Delivery: FeatureActivity, CD-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_vpfa,
{ "Voice Privacy FeatureActivity, VP-FA", "ansi_map.callingfeaturesindicator.vpfa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x30,
- "Voice Privacy FeatureActivity, VP-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_ctfa,
{ "Call Transfer: FeatureActivity, CT-FA", "ansi_map.callingfeaturesindicator.ctfa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0xc0,
- "Call Transfer: FeatureActivity, CT-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_cnip1fa,
{ "One number (network-provided only) Calling Number Identification Presentation: FeatureActivity CNIP1-FA", "ansi_map.callingfeaturesindicator.cnip1fa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x03,
- "One number (network-provided only) Calling Number Identification Presentation: FeatureActivity CNIP1-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_cnip2fa,
{ "Two number (network-provided and user-provided) Calling Number Identification Presentation: FeatureActivity CNIP2-FA", "ansi_map.callingfeaturesindicator.cnip2fa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x0c,
- "Two number (network-provided and user-provided) Calling Number Identification Presentation: FeatureActivity CNIP2-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_cnirfa,
{ "Calling Number Identification Restriction: FeatureActivity CNIR-FA", "ansi_map.callingfeaturesindicator.cnirfa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0x30,
- "Calling Number Identification Restriction: FeatureActivity CNIR-FA", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_callingfeaturesindicator_cniroverfa,
{ "Calling Number Identification Restriction Override FeatureActivity CNIROver-FA", "ansi_map.callingfeaturesindicator.cniroverfa",
FT_UINT8, BASE_DEC, VALS(ansi_map_FeatureActivity_vals), 0xc0,
- "", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmacallmode_cdma,
{ "Call Mode", "ansi_map.cdmacallmode.cdma",
FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cdma_bool_val),0x01,
- "Call Mode", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmacallmode_amps,
{ "Call Mode", "ansi_map.cdmacallmode.amps",
FT_BOOLEAN, 8, TFS(&ansi_map_CallMode_amps_bool_val),0x02,
- "Call Mode", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmacallmode_namps,
{ "Call Mode", "ansi_map.cdmacallmode.namps",
FT_BOOLEAN, 8, TFS(&ansi_map_CallMode_namps_bool_val),0x04,
- "Call Mode", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmacallmode_cls1,
{ "Call Mode", "ansi_map.cdmacallmode.cls1",
FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls1_bool_val),0x08,
- "Call Mode", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmacallmode_cls2,
{ "Call Mode", "ansi_map.cdmacallmode.cls2",
FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls2_bool_val),0x10,
- "Call Mode", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmacallmode_cls3,
{ "Call Mode", "ansi_map.cdmacallmode.cls3",
FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls3_bool_val),0x20,
- "Call Mode", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmacallmode_cls4,
{ "Call Mode", "ansi_map.cdmacallmode.cls4",
FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls4_bool_val),0x40,
- "Call Mode", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmacallmode_cls5,
{ "Call Mode", "ansi_map.cdmacallmode.cls5",
FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls5_bool_val),0x80,
- "Call Mode", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmacallmode_cls6,
{ "Call Mode", "ansi_map.cdmacallmode.cls6",
FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls6_bool_val),0x01,
- "Call Mode", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmacallmode_cls7,
{ "Call Mode", "ansi_map.cdmacallmode.cls7",
FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls7_bool_val),0x02,
- "Call Mode", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmacallmode_cls8,
{ "Call Mode", "ansi_map.cdmacallmode.cls8",
FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls8_bool_val),0x04,
- "Call Mode", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmacallmode_cls9,
{ "Call Mode", "ansi_map.cdmacallmode.cls9",
FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls9_bool_val),0x08,
- "Call Mode", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmacallmode_cls10,
{ "Call Mode", "ansi_map.cdmacallmode.cls10",
FT_BOOLEAN, 8, TFS(&ansi_map_CDMACallMode_cls10_bool_val),0x10,
- "Call Mode", HFILL }},
+ NULL, HFILL }},
{&hf_ansi_map_cdmachanneldata_Frame_Offset,
{ "Frame Offset", "ansi_map.cdmachanneldata.frameoffset",
FT_UINT8, BASE_DEC, NULL, 0x78,
- "Frame Offset", HFILL }},
+ NULL, HFILL }},
{&hf_ansi_map_cdmachanneldata_CDMA_ch_no,
{ "CDMA Channel Number", "ansi_map.cdmachanneldata.cdma_ch_no",
FT_UINT16, BASE_DEC, NULL, 0x07FF,
- "CDMA Channel Number", HFILL }},
+ NULL, HFILL }},
{&hf_ansi_map_cdmachanneldata_band_cls,
{ "Band Class", "ansi_map.cdmachanneldata.band_cls",
FT_UINT8, BASE_DEC, VALS(ansi_map_cdmachanneldata_band_cls_vals), 0x7c,
- "Band Class", HFILL }},
+ NULL, HFILL }},
{&hf_ansi_map_cdmachanneldata_lc_mask_b6,
{ "Long Code Mask (byte 6) MSB", "ansi_map.cdmachanneldata.lc_mask_b6",
FT_UINT8, BASE_HEX, NULL, 0x03,
{&hf_ansi_map_cdmachanneldata_lc_mask_b5,
{ "Long Code Mask (byte 5)", "ansi_map.cdmachanneldata.lc_mask_b5",
FT_UINT8, BASE_HEX, NULL, 0xff,
- "Long Code Mask (byte 5)", HFILL }},
+ NULL, HFILL }},
{&hf_ansi_map_cdmachanneldata_lc_mask_b4,
{ "Long Code Mask (byte 4)", "ansi_map.cdmachanneldata.lc_mask_b4",
FT_UINT8, BASE_HEX, NULL, 0xff,
- "Long Code Mask (byte 4)", HFILL }},
+ NULL, HFILL }},
{&hf_ansi_map_cdmachanneldata_lc_mask_b3,
{ "Long Code Mask (byte 3)", "ansi_map.cdmachanneldata.lc_mask_b3",
FT_UINT8, BASE_HEX, NULL, 0xff,
- "Long Code Mask (byte 3)", HFILL }},
+ NULL, HFILL }},
{&hf_ansi_map_cdmachanneldata_lc_mask_b2,
{ "Long Code Mask (byte 2)", "ansi_map.cdmachanneldata.lc_mask_b2",
FT_UINT8, BASE_HEX, NULL, 0xff,
- "Long Code Mask (byte 2)", HFILL }},
+ NULL, HFILL }},
{&hf_ansi_map_cdmachanneldata_lc_mask_b1,
{ "Long Code Mask LSB(byte 1)", "ansi_map.cdmachanneldata.lc_mask_b1",
FT_UINT8, BASE_HEX, NULL, 0xff,
{&hf_ansi_map_cdmachanneldata_np_ext,
{ "NP EXT", "ansi_map.cdmachanneldata.np_ext",
FT_BOOLEAN, 8, NULL,0x80,
- "NP EXT", HFILL }},
+ NULL, HFILL }},
{&hf_ansi_map_cdmachanneldata_nominal_pwr,
{ "Nominal Power", "ansi_map.cdmachanneldata.nominal_pwr",
FT_UINT8, BASE_DEC, NULL, 0x71,
- "Nominal Power", HFILL }},
+ NULL, HFILL }},
{&hf_ansi_map_cdmachanneldata_nr_preamble,
{ "Number Preamble", "ansi_map.cdmachanneldata.nr_preamble",
FT_UINT8, BASE_DEC, NULL, 0x07,
- "Number Preamble", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmastationclassmark_pc,
{ "Power Class(PC)", "ansi_map.cdmastationclassmark.pc",
FT_UINT8, BASE_DEC, VALS(ansi_map_CDMAStationClassMark_pc_vals), 0x03,
- "Power Class(PC)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmastationclassmark_dtx,
{ "Analog Transmission: (DTX)", "ansi_map.cdmastationclassmark.dtx",
FT_BOOLEAN, 8, TFS(&ansi_map_CDMAStationClassMark_dtx_bool_val),0x04,
- "Analog Transmission: (DTX)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmastationclassmark_smi,
- { " Slotted Mode Indicator: (SMI)", "ansi_map.cdmastationclassmark.smi",
+ { "Slotted Mode Indicator: (SMI)", "ansi_map.cdmastationclassmark.smi",
FT_BOOLEAN, 8, TFS(&ansi_map_CDMAStationClassMark_smi_bool_val),0x20,
- " Slotted Mode Indicator: (SMI)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_cdmastationclassmark_dmi,
{ "Dual-mode Indicator(DMI)", "ansi_map.cdmastationclassmark.dmi",
FT_BOOLEAN, 8, TFS(&ansi_map_CDMAStationClassMark_dmi_bool_val),0x40,
- "Dual-mode Indicator(DMI)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_channeldata_vmac,
{ "Voice Mobile Attenuation Code (VMAC)", "ansi_map.channeldata.vmac",
FT_UINT8, BASE_DEC, NULL, 0x07,
- "Voice Mobile Attenuation Code (VMAC)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_channeldata_dtx,
{ "Discontinuous Transmission Mode (DTX)", "ansi_map.channeldata.dtx",
FT_UINT8, BASE_DEC, VALS(ansi_map_ChannelData_dtx_vals), 0x18,
- "Discontinuous Transmission Mode (DTX)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_channeldata_scc,
{ "SAT Color Code (SCC)", "ansi_map.channeldata.scc",
FT_UINT8, BASE_DEC, NULL, 0xc0,
- "SAT Color Code (SCC)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_channeldata_chno,
{ "Channel Number (CHNO)", "ansi_map.channeldata.chno",
FT_UINT16, BASE_DEC, NULL, 0x0,
- "Channel Number (CHNO)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_ConfidentialityModes_vp,
{ "Voice Privacy (VP) Confidentiality Status", "ansi_map.confidentialitymodes.vp",
FT_BOOLEAN, 8, TFS(&ansi_map_ConfidentialityModes_bool_val),0x01,
- "Voice Privacy (VP) Confidentiality Status", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_controlchanneldata_dcc,
{ "Digital Color Code (DCC)", "ansi_map.controlchanneldata.dcc",
FT_UINT8, BASE_DEC, NULL, 0xc0,
- "Digital Color Code (DCC)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_controlchanneldata_cmac,
{ "Control Mobile Attenuation Code (CMAC)", "ansi_map.controlchanneldata.cmac",
FT_UINT8, BASE_DEC, NULL, 0x07,
- "Control Mobile Attenuation Code (CMAC)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_controlchanneldata_chno,
{ "Channel Number (CHNO)", "ansi_map.controlchanneldata.cmac",
FT_UINT16, BASE_DEC, NULL, 0x0,
- "Channel Number (CHNO)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_controlchanneldata_sdcc1,
{ "Supplementary Digital Color Codes (SDCC1)", "ansi_map.controlchanneldata.ssdc1",
FT_UINT8, BASE_DEC, NULL, 0x0c,
- "Supplementary Digital Color Codes (SDCC1)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_controlchanneldata_sdcc2,
{ "Supplementary Digital Color Codes (SDCC2)", "ansi_map.controlchanneldata.ssdc2",
FT_UINT8, BASE_DEC, NULL, 0x03,
- "Supplementary Digital Color Codes (SDCC2)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_ConfidentialityModes_se,
{ "Signaling Message Encryption (SE) Confidentiality Status", "ansi_map.confidentialitymodes.se",
FT_BOOLEAN, 8, TFS(&ansi_map_ConfidentialityModes_bool_val),0x02,
- "Signaling Message Encryption (SE) Confidentiality Status", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_ConfidentialityModes_dp,
{ "DataPrivacy (DP) Confidentiality Status", "ansi_map.confidentialitymodes.dp",
FT_BOOLEAN, 8, TFS(&ansi_map_ConfidentialityModes_bool_val),0x04,
- "DataPrivacy (DP) Confidentiality Status", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_deniedauthorizationperiod_period,
{ "Period", "ansi_map.deniedauthorizationperiod.period",
FT_UINT8, BASE_DEC, VALS(ansi_map_deniedauthorizationperiod_period_vals), 0x0,
- "Period", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_all,
{ "All Origination (All)", "ansi_map.originationtriggers.all",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_all_bool_val),0x01,
- "All Origination (All)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_local,
{ "Local", "ansi_map.originationtriggers.all",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_local_bool_val),0x02,
- "Local", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_ilata,
{ "Intra-LATA Toll (ILATA)", "ansi_map.originationtriggers.ilata",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_ilata_bool_val),0x04,
- "Intra-LATA Toll (ILATA)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_olata,
{ "Inter-LATA Toll (OLATA)", "ansi_map.originationtriggers.olata",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_olata_bool_val),0x08,
- "Inter-LATA Toll (OLATA)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_int,
{ "International (Int'l )", "ansi_map.originationtriggers.int",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_int_bool_val),0x10,
- "International (Int'l )", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_wz,
{ "World Zone (WZ)", "ansi_map.originationtriggers.wz",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_wz_bool_val),0x20,
- "World Zone (WZ)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_unrec,
{ "Unrecognized Number (Unrec)", "ansi_map.originationtriggers.unrec",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_unrec_bool_val),0x40,
- "Unrecognized Number (Unrec)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_rvtc,
{ "Revertive Call (RvtC)", "ansi_map.originationtriggers.rvtc",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_rvtc_bool_val),0x80,
- "Revertive Call (RvtC)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_star,
{ "Star", "ansi_map.originationtriggers.star",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_star_bool_val),0x01,
- "Star", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_ds,
{ "Double Star (DS)", "ansi_map.originationtriggers.ds",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_ds_bool_val),0x02,
- "Double Star (DS)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_pound,
{ "Pound", "ansi_map.originationtriggers.pound",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_pound_bool_val),0x04,
- "Pound", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_dp,
{ "Double Pound (DP)", "ansi_map.originationtriggers.dp",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_dp_bool_val),0x08,
- "Double Pound (DP)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_pa,
{ "Prior Agreement (PA)", "ansi_map.originationtriggers.pa",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_pa_bool_val),0x10,
- "Prior Agreement (PA)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_nodig,
{ "No digits", "ansi_map.originationtriggers.nodig",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_nodig_bool_val),0x01,
- "No digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_onedig,
{ "1 digit", "ansi_map.originationtriggers.onedig",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_onedig_bool_val),0x02,
- "1 digit", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_twodig,
{ "2 digits", "ansi_map.originationtriggers.twodig",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_twodig_bool_val),0x04,
- "2 digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_threedig,
{ "3 digits", "ansi_map.originationtriggers.threedig",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_threedig_bool_val),0x08,
- "3 digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_fourdig,
{ "4 digits", "ansi_map.originationtriggers.fourdig",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_fourdig_bool_val),0x10,
- "4 digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_fivedig,
{ "5 digits", "ansi_map.originationtriggers.fivedig",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_fivedig_bool_val),0x20,
- "5 digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_sixdig,
{ "6 digits", "ansi_map.originationtriggers.sixdig",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_sixdig_bool_val),0x40,
- "6 digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_sevendig,
{ "7 digits", "ansi_map.originationtriggers.sevendig",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_sevendig_bool_val),0x80,
- "7 digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_eightdig,
{ "8 digits", "ansi_map.originationtriggers.eight",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_eightdig_bool_val),0x01,
- "8 digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_ninedig,
{ "9 digits", "ansi_map.originationtriggers.nine",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_ninedig_bool_val),0x02,
- "9 digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_tendig,
{ "10 digits", "ansi_map.originationtriggers.ten",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_tendig_bool_val),0x04,
- "10 digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_elevendig,
{ "11 digits", "ansi_map.originationtriggers.eleven",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_elevendig_bool_val),0x08,
- "11 digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_twelvedig,
{ "12 digits", "ansi_map.originationtriggers.twelve",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_twelvedig_bool_val),0x10,
- "12 digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_thirteendig,
{ "13 digits", "ansi_map.originationtriggers.thirteen",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_thirteendig_bool_val),0x20,
- "13 digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_fourteendig,
{ "14 digits", "ansi_map.originationtriggers.fourteen",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_fourteendig_bool_val),0x40,
- "14 digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_originationtriggers_fifteendig,
{ "15 digits", "ansi_map.originationtriggers.fifteen",
FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_fifteendig_bool_val),0x80,
- "15 digits", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_init,
{ "Introducing Star/Pound (INIT)", "ansi_map.triggercapability.init",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x01,
- "Introducing Star/Pound (INIT)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_kdigit,
{ "K-digit (K-digit)", "ansi_map.triggercapability.kdigit",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x02,
- "K-digit (K-digit)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_all,
{ "All_Calls (All)", "ansi_map.triggercapability.all",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x04,
- "All_Calls (All)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_rvtc,
{ "Revertive_Call (RvtC)", "ansi_map.triggercapability.rvtc",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x08,
- "Revertive_Call (RvtC)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_oaa,
{ "Origination_Attempt_Authorized (OAA)", "ansi_map.triggercapability.oaa",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x10,
- "Origination_Attempt_Authorized (OAA)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_oans,
{ "O_Answer (OANS)", "ansi_map.triggercapability.oans",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x20,
- "O_Answer (OANS)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_odisc,
{ "O_Disconnect (ODISC)", "ansi_map.triggercapability.odisc",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x40,
- "O_Disconnect (ODISC)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_ona,
{ "O_No_Answer (ONA)", "ansi_map.triggercapability.ona",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x80,
- "O_No_Answer (ONA)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_ct ,
{ "Call Types (CT)", "ansi_map.triggercapability.ona",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x01,
- "Call Types (CT)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_unrec,
{ "Unrecognized_Number (Unrec)", "ansi_map.triggercapability.unrec",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x02,
- "Unrecognized_Number (Unrec)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_pa,
{ "Prior_Agreement (PA)", "ansi_map.triggercapability.pa",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x04,
- "Prior_Agreement (PA)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_at,
{ "Advanced_Termination (AT)", "ansi_map.triggercapability.at",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x08,
- "Advanced_Termination (AT)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_cgraa,
{ "Calling_Routing_Address_Available (CgRAA)", "ansi_map.triggercapability.cgraa",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x10,
- "Calling_Routing_Address_Available (CgRAA)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_it,
{ "Initial_Termination (IT)", "ansi_map.triggercapability.it",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x20,
- "Initial_Termination (IT)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_cdraa,
{ "Called_Routing_Address_Available (CdRAA)", "ansi_map.triggercapability.cdraa",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x40,
- "Called_Routing_Address_Available (CdRAA)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_obsy,
{ "O_Called_Party_Busy (OBSY)", "ansi_map.triggercapability.ona",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x80,
- "O_Called_Party_Busy (OBSY)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_tra ,
{ "Terminating_Resource_Available (TRA)", "ansi_map.triggercapability.tra",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x01,
- "Terminating_Resource_Available (TRA)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_tbusy,
{ "T_Busy (TBusy)", "ansi_map.triggercapability.tbusy",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x02,
- "T_Busy (TBusy)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_tna,
{ "T_No_Answer (TNA)", "ansi_map.triggercapability.tna",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x04,
- "T_No_Answer (TNA)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_tans,
{ "T_Answer (TANS)", "ansi_map.triggercapability.tans",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x08,
- "T_Answer (TANS)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_triggercapability_tdisc,
- { "T_Disconnect (TDISC) ", "ansi_map.triggercapability.tdisc",
+ { "T_Disconnect (TDISC)", "ansi_map.triggercapability.tdisc",
FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x10,
- "T_Disconnect (TDISC) ", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_winoperationscapability_conn,
{ "ConnectResource (CONN)", "ansi_map.winoperationscapability.conn",
FT_BOOLEAN, 8, TFS(&ansi_map_winoperationscapability_conn_bool_val),0x01,
- "ConnectResource (CONN)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_winoperationscapability_ccdir,
{ "CallControlDirective(CCDIR)", "ansi_map.winoperationscapability.ccdir",
FT_BOOLEAN, 8, TFS(&ansi_map_winoperationscapability_ccdir_bool_val),0x02,
- "CallControlDirective(CCDIR)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_winoperationscapability_pos,
{ "PositionRequest (POS)", "ansi_map.winoperationscapability.pos",
FT_BOOLEAN, 8, TFS(&ansi_map_winoperationscapability_pos_bool_val),0x04,
- "PositionRequest (POS)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_pacaindicator_pa,
{ "Permanent Activation (PA)", "ansi_map.pacaindicator_pa",
FT_BOOLEAN, 8, TFS(&ansi_map_pacaindicator_pa_bool_val),0x01,
- "Permanent Activation (PA)", HFILL }},
+ NULL, HFILL }},
{ &hf_ansi_map_PACA_Level,
{ "PACA Level", "ansi_map.PACA_Level",
FT_UINT8, BASE_DEC, VALS(ansi_map_PACA_Level_vals), 0x1e,
- "PACA Level", HFILL }},
-
+ NULL, HFILL }},
+
#include "packet-ansi_map-hfarr.c"
};
#include "packet-ansi_map-ettarr.c"
};
+ static enum_val_t ansi_map_response_matching_type_values[] = {
+ {"Only Transaction ID will be used in Invoke/response matching", "Transaction ID only", 0},
+ {"Transaction ID and Source will be used in Invoke/response matching", "Transaction ID and Source", 1},
+ {"Transaction ID Source and Destination will be used in Invoke/response matching", "Transaction ID Source and Destination", 2},
+ {NULL, NULL, -1}
+ };
/* Register protocol */
proto_ansi_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
/* Register fields and subtrees */
proto_register_field_array(proto_ansi_map, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
+
register_dissector("ansi_map", dissect_ansi_map, proto_ansi_map);
is637_tele_id_dissector_table =
range_convert_str(&global_ssn_range, "5-14", MAX_SSN);
ansi_map_module = prefs_register_protocol(proto_ansi_map, proto_reg_handoff_ansi_map);
-
+
prefs_register_range_preference(ansi_map_module, "map.ssn", "ANSI MAP SSNs",
"ANSI MAP SSNs to decode as ANSI MAP",
&global_ssn_range, MAX_SSN);
+ prefs_register_enum_preference(ansi_map_module, "transaction.matchtype",
+ "Type of matching invoke/response",
+ "Type of matching invoke/response, risk of missmatch if loose matching choosen",
+ &ansi_map_response_matching_type, ansi_map_response_matching_type_values, FALSE);
+
register_init_routine(&ansi_map_init_protocol);
}