2005-12-18 18:17:29 +00:00
/* packet-ansi_map.c
* Routines for ANSI 41 Mobile Application Part ( IS41 MAP ) dissection
* Specications from 3 GPP2 ( www .3 gpp2 . org )
* Based on the dissector by :
* Michael Lum < mlum [ AT ] telostech . com >
* In association with Telos Technology Inc .
*
2009-04-08 06:28:34 +00:00
* Copyright 2005 - 2009 , Anders Broman < anders . broman @ ericsson . com >
2005-12-18 18:17:29 +00:00
*
2006-01-07 13:07:04 +00:00
* $ Id $
2005-12-18 18:17:29 +00:00
*
2006-05-21 05:12:17 +00:00
* Wireshark - Network traffic analyzer
* By Gerald Combs < gerald @ wireshark . org >
2005-12-18 18:17:29 +00:00
* Copyright 1998 Gerald Combs
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation ; either version 2
* of the License , or ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place - Suite 330 , Boston , MA 02111 - 1307 , USA .
*
2006-05-23 15:17:14 +00:00
* Credit to Tomas Kukosa for developing the asn2wrs compiler .
2005-12-18 18:17:29 +00:00
*
2009-03-15 15:40:55 +00:00
* Title 3 GPP2 Other
2005-12-18 18:17:29 +00:00
*
* Cellular Radiotelecommunications Intersystem Operations
2009-09-06 14:25:47 +00:00
* 3 GPP2 N . S0005 - 0 v 1.0 ANSI / TIA / EIA - 41 - D
2005-12-20 18:26:28 +00:00
*
* Network Support for MDN - Based Message Centers
2009-03-15 15:40:55 +00:00
* 3 GPP2 N . S0024 - 0 v1 .0 IS - 841
2005-12-20 18:26:28 +00:00
*
* Enhanced International Calling
2009-03-15 15:40:55 +00:00
* 3 GPP2 N . S0027 IS - 875
2005-12-20 18:26:28 +00:00
*
* ANSI - 41 - D Miscellaneous Enhancements Revision 0
2009-03-15 15:40:55 +00:00
* 3 GPP2 N . S0015 PN - 3590 ( ANSI - 41 - E )
2005-12-20 18:26:28 +00:00
*
* Authentication Enhancements
2009-03-15 15:40:55 +00:00
* 3 GPP2 N . S0014 - 0 v1 .0 IS - 778
2005-12-20 18:26:28 +00:00
*
2006-01-03 15:13:26 +00:00
* Features In CDMA
2009-03-15 15:40:55 +00:00
* 3 GPP2 N . S0010 - 0 v1 .0 IS - 735
2006-01-03 15:13:26 +00:00
*
* OTASP and OTAPA
2009-03-15 15:40:55 +00:00
* 3 GPP2 N . S0011 - 0 v1 .0 IS - 725 - A
2006-01-03 15:13:26 +00:00
*
* Circuit Mode Services
2009-03-15 15:40:55 +00:00
* 3 GPP2 N . S0008 - 0 v1 .0 IS - 737
* XXX SecondInterMSCCircuitID not implemented , parameter ID conflicts with ISLP Information !
2006-01-03 15:13:26 +00:00
*
* IMSI
2009-03-15 15:40:55 +00:00
* 3 GPP2 N . S0009 - 0 v1 .0 IS - 751
2006-01-03 15:13:26 +00:00
*
* WIN Phase 1
2009-03-15 15:40:55 +00:00
* 3 GPP2 N . S0013 - 0 v1 .0 IS - 771
2006-01-03 15:13:26 +00:00
*
2009-09-06 14:25:47 +00:00
* DCCH ( Clarification of Audit Order with Forced
* Re - Registration in pre - TIA / EIA - 136 - A Implementation
2009-03-15 15:40:55 +00:00
* 3 GPP2 A . S0017 - B IS - 730
2005-12-20 18:26:28 +00:00
*
* UIM
2009-03-15 15:40:55 +00:00
* 3 GPP2 N . S0003
2005-12-20 18:26:28 +00:00
*
* WIN Phase 2
2009-03-15 15:40:55 +00:00
* 3 GPP2 N . S0004 - 0 v1 .0 IS - 848
2005-12-20 18:26:28 +00:00
*
2006-01-03 15:13:26 +00:00
* TIA / EIA - 41 - D Pre - Paid Charging
2009-03-15 15:40:55 +00:00
* 3 GPP2 N . S0018 - 0 v1 .0 IS - 826
2006-01-03 15:13:26 +00:00
*
* User Selective Call Forwarding
2009-03-15 15:40:55 +00:00
* 3 GPP2 N . S0021 - 0 v1 .0 IS - 838
2006-01-03 15:13:26 +00:00
*
*
* Answer Hold
2009-03-15 15:40:55 +00:00
* 3 GPP2 N . S0022 - 0 v1 .0 IS - 837
2006-01-03 15:13:26 +00:00
*
2009-09-06 14:25:47 +00:00
*/
2005-12-18 18:17:29 +00:00
# ifdef HAVE_CONFIG_H
# include "config.h"
# endif
# include <glib.h>
# include <epan/packet.h>
2006-06-17 16:19:23 +00:00
# include <epan/prefs.h>
2005-12-18 18:17:29 +00:00
# include <epan/tap.h>
2007-05-13 20:58:29 +00:00
# include <epan/asn1.h>
2005-12-18 18:17:29 +00:00
2007-05-13 20:58:29 +00:00
# include "packet-ber.h"
2005-12-18 18:17:29 +00:00
# include "packet-ansi_map.h"
# include "packet-ansi_a.h"
2005-12-28 21:32:41 +00:00
# include "packet-gsm_map.h"
2005-12-19 19:39:42 +00:00
# include "packet-tcap.h"
2007-09-12 16:45:53 +00:00
# include "packet-ansi_tcap.h"
2005-12-18 18:17:29 +00:00
# define PNAME "ANSI Mobile Application Part"
# define PSNAME "ANSI MAP"
# define PFNAME "ansi_map"
2009-03-15 15:40:55 +00:00
/* Preference settings default */
2006-06-17 16:19:23 +00:00
# define MAX_SSN 254
static range_t * global_ssn_range ;
2011-02-04 16:12:59 +00:00
gint ansi_map_response_matching_type = 1 ;
# define ANSI_MAP_TID_ONLY 0
2006-06-17 16:19:23 +00:00
2006-12-07 20:34:08 +00:00
static dissector_handle_t ansi_map_handle = NULL ;
2005-12-18 18:17:29 +00:00
/* Initialize the protocol and registered fields */
static int ansi_map_tap = - 1 ;
static int proto_ansi_map = - 1 ;
static int hf_ansi_map_op_code_fam = - 1 ;
static int hf_ansi_map_op_code = - 1 ;
2007-01-11 22:26:15 +00:00
static int hf_ansi_map_reservedBitH = - 1 ;
2007-01-13 19:18:46 +00:00
static int hf_ansi_map_reservedBitHG = - 1 ;
2007-01-15 21:07:36 +00:00
static int hf_ansi_map_reservedBitHGFE = - 1 ;
2007-01-16 22:51:08 +00:00
static int hf_ansi_map_reservedBitFED = - 1 ;
static int hf_ansi_map_reservedBitD = - 1 ;
2007-01-12 12:05:56 +00:00
static int hf_ansi_map_reservedBitED = - 1 ;
2007-01-11 22:26:15 +00:00
2005-12-28 21:32:41 +00:00
static int hf_ansi_map_type_of_digits = - 1 ;
static int hf_ansi_map_na = - 1 ;
static int hf_ansi_map_pi = - 1 ;
static int hf_ansi_map_navail = - 1 ;
static int hf_ansi_map_si = - 1 ;
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 ;
2007-01-05 07:32:39 +00:00
static int hf_ansi_map_ia5_digits = - 1 ;
2006-01-12 19:27:56 +00:00
static int hf_ansi_map_subaddr_type = - 1 ;
static int hf_ansi_map_subaddr_odd_even = - 1 ;
2006-01-07 13:07:04 +00:00
static int hf_ansi_alertcode_cadence = - 1 ;
static int hf_ansi_alertcode_pitch = - 1 ;
static int hf_ansi_alertcode_alertaction = - 1 ;
static int hf_ansi_map_announcementcode_tone = - 1 ;
static int hf_ansi_map_announcementcode_class = - 1 ;
static int hf_ansi_map_announcementcode_std_ann = - 1 ;
static int hf_ansi_map_announcementcode_cust_ann = - 1 ;
static int hf_ansi_map_authorizationperiod_period = - 1 ;
static int hf_ansi_map_value = - 1 ;
2006-01-12 19:27:56 +00:00
static int hf_ansi_map_msc_type = - 1 ;
static int hf_ansi_map_handoffstate_pi = - 1 ;
static int hf_ansi_map_tgn = - 1 ;
static int hf_ansi_map_tmn = - 1 ;
static int hf_ansi_map_messagewaitingnotificationcount_tom = - 1 ;
static int hf_ansi_map_messagewaitingnotificationcount_no_mw = - 1 ;
static int hf_ansi_map_messagewaitingnotificationtype_mwi = - 1 ;
static int hf_ansi_map_messagewaitingnotificationtype_apt = - 1 ;
static int hf_ansi_map_messagewaitingnotificationtype_pt = - 1 ;
2006-01-07 13:07:04 +00:00
2006-01-03 15:13:26 +00:00
static int hf_ansi_map_trans_cap_prof = - 1 ;
static int hf_ansi_map_trans_cap_busy = - 1 ;
static int hf_ansi_map_trans_cap_ann = - 1 ;
static int hf_ansi_map_trans_cap_rui = - 1 ;
static int hf_ansi_map_trans_cap_spini = - 1 ;
static int hf_ansi_map_trans_cap_uzci = - 1 ;
static int hf_ansi_map_trans_cap_ndss = - 1 ;
static int hf_ansi_map_trans_cap_nami = - 1 ;
static int hf_ansi_trans_cap_multerm = - 1 ;
2007-01-03 07:55:40 +00:00
static int hf_ansi_map_terminationtriggers_busy = - 1 ;
static int hf_ansi_map_terminationtriggers_rf = - 1 ;
static int hf_ansi_map_terminationtriggers_npr = - 1 ;
static int hf_ansi_map_terminationtriggers_na = - 1 ;
static int hf_ansi_map_terminationtriggers_nr = - 1 ;
2006-01-03 15:13:26 +00:00
static int hf_ansi_trans_cap_tl = - 1 ;
2007-01-12 12:05:56 +00:00
static int hf_ansi_map_cdmaserviceoption = - 1 ;
2006-01-12 19:27:56 +00:00
static int hf_ansi_trans_cap_waddr = - 1 ;
2006-01-03 15:13:26 +00:00
static int hf_ansi_map_MarketID = - 1 ;
static int hf_ansi_map_swno = - 1 ;
static int hf_ansi_map_idno = - 1 ;
static int hf_ansi_map_segcount = - 1 ;
2007-01-15 21:07:36 +00:00
static int hf_ansi_map_sms_originationrestrictions_fmc = - 1 ;
static int hf_ansi_map_sms_originationrestrictions_direct = - 1 ;
static int hf_ansi_map_sms_originationrestrictions_default = - 1 ;
2007-01-04 07:51:26 +00:00
static int hf_ansi_map_systemcapabilities_auth = - 1 ;
static int hf_ansi_map_systemcapabilities_se = - 1 ;
static int hf_ansi_map_systemcapabilities_vp = - 1 ;
static int hf_ansi_map_systemcapabilities_cave = - 1 ;
static int hf_ansi_map_systemcapabilities_ssd = - 1 ;
static int hf_ansi_map_systemcapabilities_dp = - 1 ;
2006-01-12 19:27:56 +00:00
static int hf_ansi_map_mslocation_lat = - 1 ;
static int hf_ansi_map_mslocation_long = - 1 ;
static int hf_ansi_map_mslocation_res = - 1 ;
static int hf_ansi_map_nampscallmode_namps = - 1 ;
static int hf_ansi_map_nampscallmode_amps = - 1 ;
static int hf_ansi_map_nampschanneldata_navca = - 1 ;
static int hf_ansi_map_nampschanneldata_CCIndicator = - 1 ;
2006-01-07 13:07:04 +00:00
static int hf_ansi_map_callingfeaturesindicator_cfufa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_cfbfa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_cfnafa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_cwfa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_3wcfa = - 1 ;
2006-01-15 22:10:56 +00:00
static int hf_ansi_map_callingfeaturesindicator_pcwfa = - 1 ;
2006-01-12 19:27:56 +00:00
static int hf_ansi_map_callingfeaturesindicator_dpfa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_ahfa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_uscfvmfa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_uscfmsfa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_uscfnrfa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_cpdsfa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_ccsfa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_epefa = - 1 ;
2006-01-07 13:07:04 +00:00
static int hf_ansi_map_callingfeaturesindicator_cdfa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_vpfa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_ctfa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_cnip1fa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_cnip2fa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_cnirfa = - 1 ;
static int hf_ansi_map_callingfeaturesindicator_cniroverfa = - 1 ;
static int hf_ansi_map_cdmacallmode_cdma = - 1 ;
static int hf_ansi_map_cdmacallmode_amps = - 1 ;
static int hf_ansi_map_cdmacallmode_namps = - 1 ;
2006-01-12 19:27:56 +00:00
static int hf_ansi_map_cdmacallmode_cls1 = - 1 ;
static int hf_ansi_map_cdmacallmode_cls2 = - 1 ;
static int hf_ansi_map_cdmacallmode_cls3 = - 1 ;
static int hf_ansi_map_cdmacallmode_cls4 = - 1 ;
static int hf_ansi_map_cdmacallmode_cls5 = - 1 ;
static int hf_ansi_map_cdmacallmode_cls6 = - 1 ;
static int hf_ansi_map_cdmacallmode_cls7 = - 1 ;
static int hf_ansi_map_cdmacallmode_cls8 = - 1 ;
static int hf_ansi_map_cdmacallmode_cls9 = - 1 ;
static int hf_ansi_map_cdmacallmode_cls10 = - 1 ;
2007-01-11 22:26:15 +00:00
static int hf_ansi_map_cdmachanneldata_Frame_Offset = - 1 ;
static int hf_ansi_map_cdmachanneldata_CDMA_ch_no = - 1 ;
static int hf_ansi_map_cdmachanneldata_band_cls = - 1 ;
static int hf_ansi_map_cdmachanneldata_lc_mask_b6 = - 1 ;
static int hf_ansi_map_cdmachanneldata_lc_mask_b5 = - 1 ;
static int hf_ansi_map_cdmachanneldata_lc_mask_b4 = - 1 ;
static int hf_ansi_map_cdmachanneldata_lc_mask_b3 = - 1 ;
static int hf_ansi_map_cdmachanneldata_lc_mask_b2 = - 1 ;
static int hf_ansi_map_cdmachanneldata_lc_mask_b1 = - 1 ;
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 ;
2009-09-06 14:25:47 +00:00
2006-01-07 13:07:04 +00:00
static int hf_ansi_map_cdmastationclassmark_pc = - 1 ;
static int hf_ansi_map_cdmastationclassmark_dtx = - 1 ;
static int hf_ansi_map_cdmastationclassmark_smi = - 1 ;
static int hf_ansi_map_cdmastationclassmark_dmi = - 1 ;
static int hf_ansi_map_channeldata_vmac = - 1 ;
static int hf_ansi_map_channeldata_dtx = - 1 ;
static int hf_ansi_map_channeldata_scc = - 1 ;
static int hf_ansi_map_channeldata_chno = - 1 ;
static int hf_ansi_map_ConfidentialityModes_vp = - 1 ;
2007-01-16 22:51:08 +00:00
static int hf_ansi_map_controlchanneldata_dcc = - 1 ;
static int hf_ansi_map_controlchanneldata_cmac = - 1 ;
static int hf_ansi_map_controlchanneldata_chno = - 1 ;
static int hf_ansi_map_controlchanneldata_sdcc1 = - 1 ;
static int hf_ansi_map_controlchanneldata_sdcc2 = - 1 ;
2006-01-07 13:07:04 +00:00
static int hf_ansi_map_ConfidentialityModes_se = - 1 ;
2006-01-12 19:27:56 +00:00
static int hf_ansi_map_deniedauthorizationperiod_period = - 1 ;
static int hf_ansi_map_ConfidentialityModes_dp = - 1 ;
2006-01-07 13:07:04 +00:00
2006-01-03 15:13:26 +00:00
static int hf_ansi_map_originationtriggers_all = - 1 ;
static int hf_ansi_map_originationtriggers_local = - 1 ;
static int hf_ansi_map_originationtriggers_ilata = - 1 ;
static int hf_ansi_map_originationtriggers_olata = - 1 ;
static int hf_ansi_map_originationtriggers_int = - 1 ;
static int hf_ansi_map_originationtriggers_wz = - 1 ;
static int hf_ansi_map_originationtriggers_unrec = - 1 ;
static int hf_ansi_map_originationtriggers_rvtc = - 1 ;
static int hf_ansi_map_originationtriggers_star = - 1 ;
static int hf_ansi_map_originationtriggers_ds = - 1 ;
static int hf_ansi_map_originationtriggers_pound = - 1 ;
static int hf_ansi_map_originationtriggers_dp = - 1 ;
static int hf_ansi_map_originationtriggers_pa = - 1 ;
static int hf_ansi_map_originationtriggers_nodig = - 1 ;
static int hf_ansi_map_originationtriggers_onedig = - 1 ;
static int hf_ansi_map_originationtriggers_twodig = - 1 ;
static int hf_ansi_map_originationtriggers_threedig = - 1 ;
static int hf_ansi_map_originationtriggers_fourdig = - 1 ;
static int hf_ansi_map_originationtriggers_fivedig = - 1 ;
static int hf_ansi_map_originationtriggers_sixdig = - 1 ;
static int hf_ansi_map_originationtriggers_sevendig = - 1 ;
static int hf_ansi_map_originationtriggers_eightdig = - 1 ;
static int hf_ansi_map_originationtriggers_ninedig = - 1 ;
static int hf_ansi_map_originationtriggers_tendig = - 1 ;
static int hf_ansi_map_originationtriggers_elevendig = - 1 ;
2008-12-18 19:08:49 +00:00
static int hf_ansi_map_originationtriggers_twelvedig = - 1 ;
2006-01-03 15:13:26 +00:00
static int hf_ansi_map_originationtriggers_thirteendig = - 1 ;
static int hf_ansi_map_originationtriggers_fourteendig = - 1 ;
static int hf_ansi_map_originationtriggers_fifteendig = - 1 ;
static int hf_ansi_map_triggercapability_init = - 1 ;
static int hf_ansi_map_triggercapability_kdigit = - 1 ;
static int hf_ansi_map_triggercapability_all = - 1 ;
static int hf_ansi_map_triggercapability_rvtc = - 1 ;
static int hf_ansi_map_triggercapability_oaa = - 1 ;
static int hf_ansi_map_triggercapability_oans = - 1 ;
static int hf_ansi_map_triggercapability_odisc = - 1 ;
static int hf_ansi_map_triggercapability_ona = - 1 ;
2006-01-07 13:07:04 +00:00
static int hf_ansi_map_triggercapability_ct = - 1 ;
static int hf_ansi_map_triggercapability_unrec = - 1 ;
static int hf_ansi_map_triggercapability_pa = - 1 ;
static int hf_ansi_map_triggercapability_at = - 1 ;
static int hf_ansi_map_triggercapability_cgraa = - 1 ;
static int hf_ansi_map_triggercapability_it = - 1 ;
static int hf_ansi_map_triggercapability_cdraa = - 1 ;
static int hf_ansi_map_triggercapability_obsy = - 1 ;
static int hf_ansi_map_triggercapability_tra = - 1 ;
static int hf_ansi_map_triggercapability_tbusy = - 1 ;
static int hf_ansi_map_triggercapability_tna = - 1 ;
static int hf_ansi_map_triggercapability_tans = - 1 ;
static int hf_ansi_map_triggercapability_tdisc = - 1 ;
static int hf_ansi_map_winoperationscapability_conn = - 1 ;
static int hf_ansi_map_winoperationscapability_ccdir = - 1 ;
static int hf_ansi_map_winoperationscapability_pos = - 1 ;
static int hf_ansi_map_PACA_Level = - 1 ;
static int hf_ansi_map_pacaindicator_pa = - 1 ;
2005-12-18 18:17:29 +00:00
# include "packet-ansi_map-hf.c"
/* Initialize the subtree pointers */
static gint ett_ansi_map = - 1 ;
2006-01-03 15:13:26 +00:00
static gint ett_mintype = - 1 ;
static gint ett_digitstype = - 1 ;
static gint ett_billingid = - 1 ;
2007-01-14 22:20:02 +00:00
static gint ett_sms_bearer_data = - 1 ;
static gint ett_sms_teleserviceIdentifier = - 1 ;
2007-01-11 22:26:15 +00:00
static gint ett_extendedmscid = - 1 ;
static gint ett_extendedsystemmytypecode = - 1 ;
static gint ett_handoffstate = - 1 ;
2006-01-03 15:13:26 +00:00
static gint ett_mscid = - 1 ;
2007-01-11 22:26:15 +00:00
static gint ett_cdmachanneldata = - 1 ;
static gint ett_cdmastationclassmark = - 1 ;
static gint ett_channeldata = - 1 ;
static gint ett_confidentialitymodes = - 1 ;
2007-01-16 22:51:08 +00:00
static gint ett_controlchanneldata = - 1 ;
2007-01-12 17:50:20 +00:00
static gint ett_CDMA2000HandoffInvokeIOSData = - 1 ;
static gint ett_CDMA2000HandoffResponseIOSData = - 1 ;
2006-01-03 15:13:26 +00:00
static gint ett_originationtriggers = - 1 ;
2007-01-12 17:50:20 +00:00
static gint ett_pacaindicator = - 1 ;
static gint ett_callingpartyname = - 1 ;
static gint ett_triggercapability = - 1 ;
static gint ett_winoperationscapability = - 1 ;
2007-09-06 16:27:17 +00:00
static gint ett_win_trigger_list = - 1 ;
2007-01-12 17:50:20 +00:00
static gint ett_controlnetworkid = - 1 ;
2006-01-03 15:13:26 +00:00
static gint ett_transactioncapability = - 1 ;
2007-01-12 12:05:56 +00:00
static gint ett_cdmaserviceoption = - 1 ;
2007-01-04 07:51:26 +00:00
static gint ett_systemcapabilities = - 1 ;
2007-01-15 21:07:36 +00:00
static gint ett_sms_originationrestrictions = - 1 ;
2006-01-03 15:13:26 +00:00
2005-12-18 18:17:29 +00:00
# include "packet-ansi_map-ett.c"
/* Global variables */
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 ;
2007-01-03 07:55:40 +00:00
tvbuff_t * SMS_BearerData_tvb = NULL ;
2008-10-23 05:56:28 +00:00
gint32 ansi_map_sms_tele_id = - 1 ;
2005-12-18 18:17:29 +00:00
static gboolean is683_ota ;
static gboolean is801_pld ;
static gboolean ansi_map_is_invoke ;
static guint32 OperationCode ;
2007-01-15 10:19:50 +00:00
static guint8 ServiceIndicator ;
2007-09-12 16:45:53 +00:00
struct ansi_map_invokedata_t {
2009-03-15 15:40:55 +00:00
guint32 opcode ;
guint8 ServiceIndicator ;
2007-01-15 10:19:50 +00:00
} ;
2007-09-06 16:27:17 +00:00
static void dissect_ansi_map_win_trigger_list ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) ;
2005-12-18 18:17:29 +00:00
2007-01-01 22:03:01 +00:00
/* Transaction table */
static GHashTable * TransactionId_table = NULL ;
2005-12-28 21:32:41 +00:00
2007-01-01 22:03:01 +00:00
static void
TransactionId_table_cleanup ( gpointer key , gpointer value , gpointer user_data _U_ ) {
2009-03-15 15:40:55 +00:00
struct ansi_map_invokedata_t * ansi_map_saved_invokedata = value ;
gchar * TransactionId_str = key ;
2007-01-01 22:03:01 +00:00
2009-03-15 15:40:55 +00:00
g_free ( TransactionId_str ) ;
g_free ( ansi_map_saved_invokedata ) ;
2007-01-01 22:03:01 +00:00
}
2010-02-23 04:35:23 +00:00
static void
2007-01-01 22:03:01 +00:00
ansi_map_init_transaction_table ( void ) {
2009-03-15 15:40:55 +00:00
/* Destroy any existing memory chunks / hashes. */
if ( TransactionId_table ) {
g_hash_table_foreach ( TransactionId_table , TransactionId_table_cleanup , NULL ) ;
g_hash_table_destroy ( TransactionId_table ) ;
}
2007-01-01 22:03:01 +00:00
2009-03-15 15:40:55 +00:00
TransactionId_table = g_hash_table_new ( g_str_hash , g_str_equal ) ;
2007-01-01 22:03:01 +00:00
}
static void
ansi_map_init_protocol ( void )
{
2009-03-15 15:40:55 +00:00
ansi_map_init_transaction_table ( ) ;
2009-09-06 14:25:47 +00:00
}
2007-01-15 10:19:50 +00:00
/* Store Invoke information needed for the corresponding reply */
static void
2007-09-12 16:45:53 +00:00
update_saved_invokedata ( packet_info * pinfo , proto_tree * tree _U_ , tvbuff_t * tvb _U_ ) {
2009-03-15 15:40:55 +00:00
struct ansi_map_invokedata_t * ansi_map_saved_invokedata ;
struct ansi_tcap_private_t * p_private_tcap ;
address * src = & ( pinfo - > src ) ;
address * dst = & ( pinfo - > dst ) ;
guint8 * src_str ;
guint8 * dst_str ;
char * buf ;
buf = ep_alloc ( 1024 ) ;
2009-09-06 14:25:47 +00:00
src_str = ep_address_to_str ( src ) ;
dst_str = ep_address_to_str ( dst ) ;
2009-03-15 15:40:55 +00:00
/* Data from the TCAP dissector */
if ( pinfo - > private_data ! = NULL ) {
p_private_tcap = pinfo - > private_data ;
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 */
2011-02-04 16:12:59 +00:00
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 ;
}
2009-03-15 15:40:55 +00:00
/* 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 )
return ;
ansi_map_saved_invokedata = g_malloc ( sizeof ( struct ansi_map_invokedata_t ) ) ;
ansi_map_saved_invokedata - > opcode = p_private_tcap - > d . OperationCode_private ;
ansi_map_saved_invokedata - > ServiceIndicator = ServiceIndicator ;
2009-09-06 14:25:47 +00:00
g_hash_table_insert ( TransactionId_table ,
2009-03-15 15:40:55 +00:00
g_strdup ( buf ) ,
ansi_map_saved_invokedata ) ;
2011-02-05 14:37:52 +00:00
/*g_warning("Invoke Hash string %s pkt: %u",buf,pinfo->fd->num);*/
2009-03-15 15:40:55 +00:00
}
}
2007-01-15 10:19:50 +00:00
}
2005-12-18 18:17:29 +00:00
/* value strings */
const value_string ansi_map_opr_code_strings [ ] = {
2009-03-15 15:40:55 +00:00
{ 1 , " Handoff Measurement Request " } ,
{ 2 , " Facilities Directive " } ,
{ 3 , " Mobile On Channel " } ,
{ 4 , " Handoff Back " } ,
{ 5 , " Facilities Release " } ,
{ 6 , " Qualification Request " } ,
{ 7 , " Qualification Directive " } ,
{ 8 , " Blocking " } ,
{ 9 , " Unblocking " } ,
{ 10 , " Reset Circuit " } ,
{ 11 , " Trunk Test " } ,
{ 12 , " Trunk Test Disconnect " } ,
{ 13 , " Registration Notification " } ,
{ 14 , " Registration Cancellation " } ,
{ 15 , " Location Request " } ,
{ 16 , " Routing Request " } ,
{ 17 , " Feature Request " } ,
{ 18 , " Reserved 18 (Service Profile Request, IS-41-C) " } ,
{ 19 , " Reserved 19 (Service Profile Directive, IS-41-C) " } ,
{ 20 , " Unreliable Roamer Data Directive " } ,
{ 21 , " Reserved 21 (Call Data Request, IS-41-C) " } ,
{ 22 , " MS Inactive " } ,
{ 23 , " Transfer To Number Request " } ,
{ 24 , " Redirection Request " } ,
{ 25 , " Handoff To Third " } ,
{ 26 , " Flash Request " } ,
{ 27 , " Authentication Directive " } ,
{ 28 , " Authentication Request " } ,
{ 29 , " Base Station Challenge " } ,
{ 30 , " Authentication Failure Report " } ,
{ 31 , " Count Request " } ,
{ 32 , " Inter System Page " } ,
{ 33 , " Unsolicited Response " } ,
{ 34 , " Bulk Deregistration " } ,
{ 35 , " Handoff Measurement Request 2 " } ,
{ 36 , " Facilities Directive 2 " } ,
{ 37 , " Handoff Back 2 " } ,
{ 38 , " Handoff To Third 2 " } ,
{ 39 , " Authentication Directive Forward " } ,
{ 40 , " Authentication Status Report " } ,
{ 41 , " Reserved 41 " } ,
{ 42 , " Information Directive " } ,
{ 43 , " Information Forward " } ,
{ 44 , " Inter System Answer " } ,
{ 45 , " Inter System Page 2 " } ,
{ 46 , " Inter System Setup " } ,
{ 47 , " Origination Request " } ,
{ 48 , " Random Variable Request " } ,
{ 49 , " Redirection Directive " } ,
{ 50 , " Remote User Interaction Directive " } ,
{ 51 , " SMS Delivery Backward " } ,
{ 52 , " SMS Delivery Forward " } ,
{ 53 , " SMS Delivery Point to Point " } ,
{ 54 , " SMS Notification " } ,
{ 55 , " SMS Request " } ,
{ 56 , " OTASP Request " } ,
{ 57 , " Information Backward " } ,
{ 58 , " Change Facilities " } ,
{ 59 , " Change Service " } ,
{ 60 , " Parameter Request " } ,
{ 61 , " TMSI Directive " } ,
{ 62 , " NumberPortabilityRequest " } ,
{ 63 , " Service Request " } ,
{ 64 , " Analyzed Information Request " } ,
{ 65 , " Connection Failure Report " } ,
{ 66 , " Connect Resource " } ,
{ 67 , " Disconnect Resource " } ,
{ 68 , " Facility Selected and Available " } ,
{ 69 , " Instruction Request " } ,
{ 70 , " Modify " } ,
{ 71 , " Reset Timer " } ,
{ 72 , " Search " } ,
{ 73 , " Seize Resource " } ,
{ 74 , " SRF Directive " } ,
{ 75 , " T Busy " } ,
{ 76 , " T NoAnswer " } ,
{ 77 , " Release " } ,
{ 78 , " SMS Delivery Point to Point Ack " } ,
{ 79 , " Message Directive " } ,
{ 80 , " Bulk Disconnection " } ,
{ 81 , " Call Control Directive " } ,
{ 82 , " O Answer " } ,
{ 83 , " O Disconnect " } ,
{ 84 , " Call Recovery Report " } ,
{ 85 , " T Answer " } ,
{ 86 , " T Disconnect " } ,
{ 87 , " Unreliable Call Data " } ,
{ 88 , " O CalledPartyBusy " } ,
{ 89 , " O NoAnswer " } ,
{ 90 , " Position Request " } ,
{ 91 , " Position Request Forward " } ,
{ 92 , " Call Termination Report " } ,
{ 93 , " Geo Position Directive " } ,
{ 94 , " Geo Position Request " } ,
{ 95 , " Inter System Position Request " } ,
{ 96 , " Inter System Position Request Forward " } ,
{ 97 , " ACG Directive " } ,
{ 98 , " Roamer Database Verification Request " } ,
{ 99 , " Add Service " } ,
{ 100 , " Drop Service " } ,
2009-04-08 06:28:34 +00:00
{ 101 , " InterSystemSMSPage " } ,
2009-03-15 15:40:55 +00:00
{ 102 , " LCSParameterRequest " } ,
2010-11-16 15:20:33 +00:00
{ 103 , " Unknown ANSI-MAP PDU " } ,
{ 104 , " Unknown ANSI-MAP PDU " } ,
{ 105 , " Unknown ANSI-MAP PDU " } ,
2009-03-15 15:40:55 +00:00
{ 106 , " PositionEventNotification " } ,
2010-11-16 15:20:33 +00:00
{ 107 , " Unknown ANSI-MAP PDU " } ,
{ 108 , " Unknown ANSI-MAP PDU " } ,
{ 109 , " Unknown ANSI-MAP PDU " } ,
{ 110 , " Unknown ANSI-MAP PDU " } ,
2009-04-08 06:28:34 +00:00
{ 111 , " InterSystemSMSDelivery-PointToPoint " } ,
{ 112 , " QualificationRequest2 " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL } ,
2005-12-18 18:17:29 +00:00
} ;
2010-11-16 15:20:33 +00:00
static value_string_ext ansi_map_opr_code_strings_ext = VALUE_STRING_EXT_INIT ( ansi_map_opr_code_strings ) ;
2005-12-18 18:17:29 +00:00
2007-05-13 20:58:29 +00:00
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_ ) ;
2005-12-18 18:17:29 +00:00
2010-12-28 12:36:26 +00:00
#if 0
/* Moved to tvbuff.h
* XXX remove after trial period .
*/
2005-12-28 21:32:41 +00:00
typedef struct dgt_set_t
{
unsigned char out [ 15 ] ;
}
dgt_set_t ;
2010-12-28 12:36:26 +00:00
# endif
2005-12-28 21:32:41 +00:00
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 ' , ' ? ' , ' B ' , ' C ' , ' * ' , ' # '
}
} ;
2006-01-03 15:13:26 +00:00
static dgt_set_t Dgt1_9_bcd = {
{
/* 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 ' , ' ? ' , ' ? ' , ' ? ' , ' ? ' , ' ? '
}
} ;
2009-09-06 14:25:47 +00:00
/* Assumes the rest of the tvb contains the digits to be turned into a string
2005-12-28 21:32:41 +00:00
*/
2010-02-23 04:35:23 +00:00
static const char *
2005-12-28 21:32:41 +00:00
unpack_digits2 ( tvbuff_t * tvb , int offset , dgt_set_t * dgt ) {
2009-03-15 15:40:55 +00:00
int length ;
guint8 octet ;
int i = 0 ;
char * digit_str ;
2005-12-28 21:32:41 +00:00
2009-03-15 15:40:55 +00:00
length = tvb_length ( tvb ) ;
if ( length < offset )
return " " ;
digit_str = ep_alloc ( ( length - offset ) * 2 + 1 ) ;
2005-12-28 21:32:41 +00:00
2009-03-15 15:40:55 +00:00
while ( offset < length ) {
2005-12-28 21:32:41 +00:00
2009-03-15 15:40:55 +00:00
octet = tvb_get_guint8 ( tvb , offset ) ;
2009-09-06 14:25:47 +00:00
digit_str [ i ] = dgt - > out [ octet & 0x0f ] ;
2009-03-15 15:40:55 +00:00
i + + ;
2005-12-28 21:32:41 +00:00
2009-03-15 15:40:55 +00:00
/*
* unpack second value in byte
*/
octet = octet > > 4 ;
2005-12-28 21:32:41 +00:00
2009-03-15 15:40:55 +00:00
if ( octet = = 0x0f ) /* odd number bytes - hit filler */
break ;
2005-12-28 21:32:41 +00:00
2009-09-06 14:25:47 +00:00
digit_str [ i ] = dgt - > out [ octet & 0x0f ] ;
2009-03-15 15:40:55 +00:00
i + + ;
offset + + ;
2005-12-28 21:32:41 +00:00
2009-03-15 15:40:55 +00:00
}
digit_str [ i ] = ' \0 ' ;
return digit_str ;
2005-12-28 21:32:41 +00:00
}
/* Type of Digits (octet 1, bits A-H) */
static const value_string ansi_map_type_of_digits_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Not Used " } ,
{ 1 , " Dialed Number or Called Party Number " } ,
{ 2 , " Calling Party Number " } ,
{ 3 , " Caller Interaction " } ,
{ 4 , " Routing Number " } ,
{ 5 , " Billing Number " } ,
{ 6 , " Destination Number " } ,
{ 7 , " LATA " } ,
{ 8 , " Carrier " } ,
{ 0 , NULL }
2005-12-28 21:32:41 +00:00
} ;
/* Nature of Number (octet 2, bits A-H )*/
static const true_false_string ansi_map_na_bool_val = {
2009-03-15 15:40:55 +00:00
" International " ,
" National "
2005-12-28 21:32:41 +00:00
} ;
static const true_false_string ansi_map_pi_bool_val = {
2009-03-15 15:40:55 +00:00
" Presentation Restricted " ,
" Presentation Allowed "
2005-12-28 21:32:41 +00:00
} ;
static const true_false_string ansi_map_navail_bool_val = {
2009-03-15 15:40:55 +00:00
" Number is not available " ,
" Number is available "
2005-12-28 21:32:41 +00:00
} ;
static const true_false_string ansi_map_si_bool_val = {
2009-03-15 15:40:55 +00:00
" User provided, screening passed " ,
" User provided, not screened "
2005-12-28 21:32:41 +00:00
} ;
static const value_string ansi_map_si_vals [ ] = {
{ 0 , " User provided, not screened " } ,
{ 1 , " User provided, screening passed " } ,
{ 2 , " User provided, screening failed " } ,
{ 3 , " Network provided " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2005-12-28 21:32:41 +00:00
} ;
/* Encoding (octet 3, bits A-D) */
static const value_string ansi_map_digits_enc_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " BCD " } ,
{ 2 , " IA5 " } ,
{ 3 , " Octet string " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2005-12-28 21:32:41 +00:00
} ;
/* Numbering Plan (octet 3, bits E-H) */
static const value_string ansi_map_np_vals [ ] = {
{ 0 , " Unknown or not applicable " } ,
{ 1 , " ISDN Numbering " } ,
{ 2 , " Telephony Numbering (ITU-T Rec. E.164,E.163) " } ,
{ 3 , " Data Numbering (ITU-T Rec. X.121) " } ,
{ 4 , " Telex Numbering (ITU-T Rec. F.69) " } ,
{ 5 , " Maritime Mobile Numbering " } ,
{ 6 , " Land Mobile Numbering (ITU-T Rec. E.212) " } ,
{ 7 , " Private Numbering Plan " } ,
2009-03-15 15:40:55 +00:00
{ 13 , " SS7 Point Code (PC) and Subsystem Number (SSN) " } ,
{ 14 , " Internet Protocol (IP) Address. " } ,
{ 15 , " Reserved for extension " } ,
{ 0 , NULL }
2005-12-28 21:32:41 +00:00
} ;
2009-09-06 14:25:47 +00:00
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_min_type ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2010-02-23 04:35:23 +00:00
const char * digit_str ;
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_mintype ) ;
digit_str = unpack_digits2 ( tvb , offset , & Dgt1_9_bcd ) ;
proto_tree_add_string ( subtree , hf_ansi_map_bcd_digits , tvb , offset , - 1 , digit_str ) ;
proto_item_append_text ( actx - > created_item , " - %s " , digit_str ) ;
2006-01-03 15:13:26 +00:00
}
2005-12-28 21:32:41 +00:00
2009-09-06 14:25:47 +00:00
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_digits_type ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2009-03-15 15:40:55 +00:00
guint8 octet , octet_len ;
guint8 b1 , b2 , b3 , b4 ;
int offset = 0 ;
2010-02-23 04:35:23 +00:00
const char * digit_str ;
2009-03-15 15:40:55 +00:00
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_digitstype ) ;
/* Octet 1 */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_type_of_digits , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* Octet 2 */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_reservedBitHG , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( subtree , hf_ansi_map_si , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_reservedBitD , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( subtree , hf_ansi_map_navail , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( subtree , hf_ansi_map_pi , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( subtree , hf_ansi_map_na , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* Octet 3 */
octet = tvb_get_guint8 ( tvb , offset ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_np , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( subtree , hf_ansi_map_digits_enc , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* Octet 4 - */
switch ( octet > > 4 ) {
case 0 : /* Unknown or not applicable */
switch ( ( octet & 0xf ) ) {
case 1 :
/* BCD Coding */
octet_len = tvb_get_guint8 ( tvb , offset ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_nr_digits , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
if ( octet_len = = 0 )
return ;
offset + + ;
digit_str = unpack_digits2 ( tvb , offset , & Dgt_tbcd ) ;
proto_tree_add_string ( subtree , hf_ansi_map_bcd_digits , tvb , offset , - 1 , digit_str ) ;
proto_item_append_text ( actx - > created_item , " - %s " , digit_str ) ;
break ;
case 2 :
/* IA5 Coding */
octet_len = tvb_get_guint8 ( tvb , offset ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_nr_digits , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
if ( octet_len = = 0 )
return ;
offset + + ;
2011-10-15 19:48:19 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_ia5_digits , tvb , offset , - 1 , ENC_ASCII | ENC_NA ) ;
2009-03-15 15:40:55 +00:00
proto_item_append_text ( actx - > created_item , " - %s " , tvb_get_ephemeral_string ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
break ;
case 3 :
/* Octet string */
break ;
default :
break ;
}
break ;
case 1 : /* ISDN Numbering (not used in this Standard). */
case 3 : /* Data Numbering (ITU-T Rec. X.121) (not used in this Standard). */
case 4 : /* Telex Numbering (ITU-T Rec. F.69) (not used in this Standard). */
case 5 : /* Maritime Mobile Numbering (not used in this Standard). */
proto_tree_add_text ( subtree , tvb , offset , - 1 , " This Number plan should not have been used " ) ;
break ;
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 */
octet_len = tvb_get_guint8 ( tvb , offset ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_nr_digits , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
if ( octet_len = = 0 )
return ;
offset + + ;
switch ( ( octet & 0xf ) ) {
case 1 :
/* BCD Coding */
digit_str = unpack_digits2 ( tvb , offset , & Dgt_tbcd ) ;
proto_tree_add_string ( subtree , hf_ansi_map_bcd_digits , tvb , offset , - 1 , digit_str ) ;
proto_item_append_text ( actx - > created_item , " - %s " , digit_str ) ;
break ;
case 2 :
/* IA5 Coding */
2011-10-15 19:48:19 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_ia5_digits , tvb , offset , - 1 , ENC_ASCII | ENC_NA ) ;
2009-03-15 15:40:55 +00:00
proto_item_append_text ( actx - > created_item , " - %s " , tvb_get_ephemeral_string ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
break ;
case 3 :
/* Octet string */
break ;
default :
break ;
}
break ;
case 13 : /* ANSI SS7 Point Code (PC) and Subsystem Number (SSN). */
switch ( ( octet & 0xf ) ) {
case 3 :
/* Octet string */
/* 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 ) ;
proto_item_append_text ( actx - > created_item , " - Point Code %u-%u-%u SSN %u " , b3 , b2 , b1 , b4 ) ;
break ;
default :
break ;
}
break ;
case 14 : /* Internet Protocol (IP) Address. */
break ;
default :
proto_tree_add_text ( subtree , tvb , offset , - 1 , " This Number plan should not have been used " ) ;
break ;
}
2005-12-28 21:32:41 +00:00
2006-01-12 19:27:56 +00:00
}
/* 6.5.3.13. Subaddress */
static const true_false_string ansi_map_Odd_Even_Ind_bool_val = {
" Odd " ,
" Even "
} ;
/* Type of Subaddress (octet 1, bits E-G) */
static const value_string ansi_map_sub_addr_type_vals [ ] = {
{ 0 , " NSAP (CCITT Rec. X.213 or ISO 8348 AD2) " } ,
{ 1 , " User specified " } ,
{ 2 , " Reserved " } ,
{ 3 , " Reserved " } ,
{ 4 , " Reserved " } ,
{ 5 , " Reserved " } ,
{ 6 , " Reserved " } ,
{ 7 , " Reserved " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
2009-09-06 14:25:47 +00:00
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_subaddress ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2009-03-15 15:40:55 +00:00
int offset = 0 ;
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_billingid ) ;
/* Type of Subaddress (octet 1, bits E-G) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_subaddr_type , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Odd/Even Indicator (O/E) (octet 1, bit D) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_subaddr_odd_even , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-12 19:27:56 +00:00
2005-12-28 21:32:41 +00:00
}
2006-01-03 15:13:26 +00:00
/*
* 6.5 .2 .2 ActionCode
* Table 114 ActionCode value
2006-01-07 13:07:04 +00:00
*
2007-02-07 02:41:10 +00:00
* 6.5 .2 .2 ActionCode ( TIA / EIA - 41.5 - D , page 5 - 129 ) */
2006-01-03 15:13:26 +00:00
static const value_string ansi_map_ActionCode_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " Continue processing " } ,
{ 2 , " Disconnect call " } ,
{ 3 , " Disconnect call leg " } ,
{ 4 , " Conference Calling Drop Last Party " } ,
{ 5 , " Bridge call leg(s) to conference call " } ,
{ 6 , " Drop call leg on busy or routing failure " } ,
{ 7 , " Disconnect all call legs " } ,
{ 8 , " Attach MSC to OTAF " } ,
{ 9 , " Initiate RegistrationNotification " } ,
2009-03-15 15:40:55 +00:00
{ 10 , " Generate Public Encryption values " } ,
{ 11 , " Generate A-key " } ,
{ 12 , " Perform SSD Update procedure " } ,
{ 13 , " Perform Re-authentication procedure " } ,
{ 14 , " Release TRN " } ,
{ 15 , " Commit A-key " } ,
{ 16 , " Release Resources (e.g., A-key, Traffic Channel) " } ,
{ 17 , " Record NEWMSID " } ,
{ 18 , " Allocate Resources (e.g., Multiple message traffic channel delivery). " } ,
{ 19 , " Generate Authentication Signature " } ,
{ 20 , " Release leg and redirect subscriber " } ,
{ 21 , " Do Not Wait For MS User Level Response " } ,
{ 22 , " Prepare for CDMA Handset-Based Position Determination " } ,
{ 23 , " CDMA Handset-Based Position Determination Complete " } ,
{ 0 , NULL }
2006-01-03 15:13:26 +00:00
} ;
2010-11-16 15:20:33 +00:00
static value_string_ext ansi_map_ActionCode_vals_ext = VALUE_STRING_EXT_INIT ( ansi_map_ActionCode_vals ) ;
2006-01-07 13:07:04 +00:00
/* 6.5.2.3 AlertCode */
/* Pitch (octet 1, bits G-H) */
static const value_string ansi_map_AlertCode_Pitch_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Medium pitch " } ,
{ 1 , " High pitch " } ,
{ 2 , " Low pitch " } ,
{ 3 , " Reserved " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
/* Cadence (octet 1, bits A-F) */
static const value_string ansi_map_AlertCode_Cadence_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " NoTone " } ,
{ 1 , " Long " } ,
{ 2 , " ShortShort " } ,
{ 3 , " ShortShortLong " } ,
{ 4 , " ShortShort2 " } ,
{ 5 , " ShortLongShort " } ,
{ 6 , " ShortShortShortShort " } ,
{ 7 , " PBXLong " } ,
{ 8 , " PBXShortShort " } ,
{ 9 , " PBXShortShortLong " } ,
{ 10 , " PBXShortLongShort " } ,
{ 11 , " PBXShortShortShortShort " } ,
{ 12 , " PipPipPipPip " } ,
{ 13 , " Reserved. Treat the same as value 0, NoTone " } ,
{ 14 , " Reserved. Treat the same as value 0, NoTone " } ,
{ 15 , " Reserved. Treat the same as value 0, NoTone " } ,
{ 16 , " Reserved. Treat the same as value 0, NoTone " } ,
{ 17 , " Reserved. Treat the same as value 0, NoTone " } ,
{ 18 , " Reserved. Treat the same as value 0, NoTone " } ,
{ 19 , " Reserved. Treat the same as value 0, NoTone " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
/* Alert Action (octet 2, bits A-C) */
static const value_string ansi_map_AlertCode_Alert_Action_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Alert without waiting to report " } ,
{ 1 , " Apply a reminder alert once " } ,
{ 2 , " Other values reserved. Treat the same as value 0, Alert without waiting to report " } ,
{ 3 , " Other values reserved. Treat the same as value 0, Alert without waiting to report " } ,
{ 4 , " Other values reserved. Treat the same as value 0, Alert without waiting to report " } ,
{ 5 , " Other values reserved. Treat the same as value 0, Alert without waiting to report " } ,
{ 6 , " Other values reserved. Treat the same as value 0, Alert without waiting to report " } ,
{ 7 , " Other values reserved. Treat the same as value 0, Alert without waiting to report " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_alertcode ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_billingid ) ;
/* Pitch (octet 1, bits G-H) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_alertcode_pitch , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Cadence (octet 1, bits A-F) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_alertcode_cadence , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
/* Alert Action (octet 2, bits A-C) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_alertcode_alertaction , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-07 13:07:04 +00:00
}
/* 6.5.2.4 AlertResult */
/* Result (octet 1) */
static const value_string ansi_map_AlertResult_result_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Not specified " } ,
{ 1 , " Success " } ,
{ 2 , " Failure " } ,
{ 3 , " Denied " } ,
{ 4 , " NotAttempted " } ,
{ 5 , " NoPageResponse " } ,
{ 6 , " Busy " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
2006-01-12 19:27:56 +00:00
/* 6.5.2.5 AnnouncementCode Updatef from NS0018Re*/
2006-01-07 13:07:04 +00:00
/* Tone (octet 1) */
static const value_string ansi_map_AnnouncementCode_tone_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " DialTone " } ,
{ 1 , " RingBack or AudibleAlerting " } ,
{ 2 , " InterceptTone or MobileReorder " } ,
{ 3 , " CongestionTone or ReorderTone " } ,
{ 4 , " BusyTone " } ,
{ 5 , " ConfirmationTone " } ,
{ 6 , " AnswerTone " } ,
{ 7 , " CallWaitingTone " } ,
{ 8 , " OffHookTone " } ,
{ 17 , " RecallDialTone " } ,
{ 18 , " BargeInTone " } ,
{ 20 , " PPCInsufficientTone " } ,
{ 21 , " PPCWarningTone1 " } ,
{ 22 , " PPCWarningTone2 " } ,
{ 23 , " PPCWarningTone3 " } ,
{ 24 , " PPCDisconnectTone " } ,
{ 25 , " PPCRedirectTone " } ,
{ 63 , " TonesOff " } ,
{ 192 , " PipTone " } ,
{ 193 , " AbbreviatedIntercept " } ,
{ 194 , " AbbreviatedCongestion " } ,
{ 195 , " WarningTone " } ,
{ 196 , " DenialToneBurst " } ,
{ 197 , " DialToneBurst " } ,
{ 250 , " IncomingAdditionalCallTone " } ,
{ 251 , " PriorityAdditionalCallTone " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
/* Class (octet 2, bits A-D) */
static const value_string ansi_map_AnnouncementCode_class_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Concurrent " } ,
{ 1 , " Sequential " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
2006-01-12 19:27:56 +00:00
/* Standard Announcement (octet 3) Updated with N.S0015 */
2006-01-07 13:07:04 +00:00
static const value_string ansi_map_AnnouncementCode_std_ann_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " None " } ,
{ 1 , " UnauthorizedUser " } ,
{ 2 , " InvalidESN " } ,
{ 3 , " UnauthorizedMobile " } ,
{ 4 , " SuspendedOrigination " } ,
{ 5 , " OriginationDenied " } ,
{ 6 , " ServiceAreaDenial " } ,
{ 16 , " PartialDial " } ,
{ 17 , " Require1Plus " } ,
{ 18 , " Require1PlusNPA " } ,
{ 19 , " Require0Plus " } ,
{ 20 , " Require0PlusNPA " } ,
{ 21 , " Deny1Plus " } ,
{ 22 , " Unsupported10plus " } ,
{ 23 , " Deny10plus " } ,
{ 24 , " Unsupported10XXX " } ,
{ 25 , " Deny10XXX " } ,
{ 26 , " Deny10XXXLocally " } ,
{ 27 , " Require10Plus " } ,
{ 28 , " RequireNPA " } ,
{ 29 , " DenyTollOrigination " } ,
{ 30 , " DenyInternationalOrigination " } ,
{ 31 , " Deny0Minus " } ,
{ 48 , " DenyNumber " } ,
{ 49 , " AlternateOperatorServices " } ,
{ 64 , " No Circuit or AllCircuitsBusy or FacilityProblem " } ,
{ 65 , " Overload " } ,
{ 66 , " InternalOfficeFailure " } ,
{ 67 , " NoWinkReceived " } ,
{ 68 , " InterofficeLinkFailure " } ,
{ 69 , " Vacant " } ,
{ 70 , " InvalidPrefix or InvalidAccessCode " } ,
{ 71 , " OtherDialingIrregularity " } ,
{ 80 , " VacantNumber or DisconnectedNumber " } ,
{ 81 , " DenyTermination " } ,
{ 82 , " SuspendedTermination " } ,
{ 83 , " ChangedNumber " } ,
{ 84 , " InaccessibleSubscriber " } ,
{ 85 , " DenyIncomingTol " } ,
{ 86 , " RoamerAccessScreening " } ,
{ 87 , " RefuseCall " } ,
{ 88 , " RedirectCall " } ,
{ 89 , " NoPageResponse " } ,
{ 90 , " NoAnswer " } ,
{ 96 , " RoamerIntercept " } ,
{ 97 , " GeneralInformation " } ,
{ 112 , " UnrecognizedFeatureCode " } ,
{ 113 , " UnauthorizedFeatureCode " } ,
{ 114 , " RestrictedFeatureCode " } ,
{ 115 , " InvalidModifierDigits " } ,
{ 116 , " SuccessfulFeatureRegistration " } ,
{ 117 , " SuccessfulFeatureDeRegistration " } ,
{ 118 , " SuccessfulFeatureActivation " } ,
{ 119 , " SuccessfulFeatureDeActivation " } ,
{ 120 , " InvalidForwardToNumber " } ,
{ 121 , " CourtesyCallWarning " } ,
{ 128 , " EnterPINSendPrompt " } ,
{ 129 , " EnterPINPrompt " } ,
{ 130 , " ReEnterPINSendPrompt " } ,
{ 131 , " ReEnterPINPrompt " } ,
{ 132 , " EnterOldPINSendPrompt " } ,
{ 133 , " EnterOldPINPrompt " } ,
{ 134 , " EnterNewPINSendPrompt " } ,
{ 135 , " EnterNewPINPrompt " } ,
{ 136 , " ReEnterNewPINSendPrompt " } ,
{ 137 , " ReEnterNewPINPrompt " } ,
{ 138 , " EnterPasswordPrompt " } ,
{ 139 , " EnterDirectoryNumberPrompt " } ,
{ 140 , " ReEnterDirectoryNumberPrompt " } ,
{ 141 , " EnterFeatureCodePrompt " } ,
{ 142 , " EnterEnterCreditCardNumberPrompt " } ,
{ 143 , " EnterDestinationNumberPrompt " } ,
{ 152 , " PPCInsufficientAccountBalance " } ,
{ 153 , " PPCFiveMinuteWarning " } ,
{ 154 , " PPCThreeMinuteWarning " } ,
{ 155 , " PPCTwoMinuteWarning " } ,
{ 156 , " PPCOneMinuteWarning " } ,
{ 157 , " PPCDisconnect " } ,
{ 158 , " PPCRedirect " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_announcementcode ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_billingid ) ;
/* Tone (octet 1) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_announcementcode_tone , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* Class (octet 2, bits A-D) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_announcementcode_class , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* Standard Announcement (octet 3) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_announcementcode_std_ann , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* Custom Announcement ( octet 4 )
e . The assignment of this octet is left to bilateral agreement . When a Custom
Announcement is specified it takes precedence over either the Standard
Announcement or Tone
*/
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_announcementcode_cust_ann , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-07 13:07:04 +00:00
}
2006-01-12 19:27:56 +00:00
/* 6.5.2.8 AuthenticationCapability Updated N.S0003*/
2006-01-07 13:07:04 +00:00
static const value_string ansi_map_AuthenticationCapability_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Not used " } ,
{ 1 , " No authentication required " } ,
{ 2 , " Authentication required " } ,
{ 128 , " Authentication required and UIM capable. " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
/* 6.5.2.14 AuthorizationPeriod*/
/* Period (octet 1) */
static const value_string ansi_map_authorizationperiod_period_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Not used " } ,
{ 1 , " Per Call " } ,
{ 2 , " Hours " } ,
{ 3 , " Days " } ,
{ 4 , " Weeks " } ,
{ 5 , " Per Agreement " } ,
{ 6 , " Indefinite (i.e., authorized until canceled or deregistered) " } ,
{ 7 , " Number of calls. Re-authorization should be attempted after this number of (rejected) call attempts " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
/* Value (octet 2)
Number of minutes hours , days , weeks , or
number of calls ( as per Period ) . If Period
indicates anything else the Value is set to zero
2009-09-06 14:25:47 +00:00
on sending and ignored on receipt .
2006-01-07 13:07:04 +00:00
*/
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_authorizationperiod ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_billingid ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_authorizationperiod_period , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_value , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-07 13:07:04 +00:00
}
/* 6.5.2.15 AvailabilityType */
static const value_string ansi_map_AvailabilityType_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Not used " } ,
{ 1 , " Unspecified MS inactivity type " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
2006-01-03 15:13:26 +00:00
/* 6.5.2.16 BillingID */
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_billingid ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-03 15:13:26 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
2006-01-03 15:13:26 +00:00
2009-03-15 15:40:55 +00:00
proto_tree * subtree ;
2006-01-03 15:13:26 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_billingid ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_MarketID , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset = offset + 2 ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_swno , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* ID Number */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_idno , tvb , offset , 3 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset = offset + 3 ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_segcount , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-03 15:13:26 +00:00
}
2006-01-07 13:07:04 +00:00
/* 6.5.2.20 CallingFeaturesIndicator */
static const value_string ansi_map_FeatureActivity_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Not used " } ,
{ 1 , " Not authorized " } ,
{ 2 , " Authorized but de-activated " } ,
{ 3 , " Authorized and activated " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_callingfeaturesindicator ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2009-03-15 15:40:55 +00:00
int offset = 0 ;
2009-09-06 14:25:47 +00:00
int length ;
2009-03-15 15:40:55 +00:00
proto_tree * subtree ;
2009-09-06 14:25:47 +00:00
length = tvb_length_remaining ( tvb , offset ) ;
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_mscid ) ;
/* Call Waiting: FeatureActivity, CW-FA (Octet 1 bits GH ) */
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_cwfa , tvb , offset , 1 , FALSE ) ;
/* Call Forwarding No Answer FeatureActivity, CFNA-FA (Octet 1 bits EF ) */
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_cfnafa , tvb , offset , 1 , FALSE ) ;
/* Call Forwarding Busy FeatureActivity, CFB-FA (Octet 1 bits CD ) */
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_cfbfa , tvb , offset , 1 , FALSE ) ;
/* Call Forwarding Unconditional FeatureActivity, CFU-FA (Octet 1 bits AB ) */
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_cfufa , tvb , offset , 1 , FALSE ) ;
offset + + ;
length - - ;
/* Call Transfer: FeatureActivity, CT-FA (Octet 2 bits GH ) */
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_ctfa , tvb , offset , 1 , FALSE ) ;
/* Voice Privacy FeatureActivity, VP-FA (Octet 2 bits EF ) */
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_vpfa , tvb , offset , 1 , FALSE ) ;
/* Call Delivery: FeatureActivity (not interpreted on reception by IS-41-C or later)
CD - FA ( Octet 2 bits CD ) */
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_cdfa , tvb , offset , 1 , FALSE ) ;
/* Three-Way Calling FeatureActivity, 3WC-FA (Octet 2 bits AB ) */
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_3wcfa , tvb , offset , 1 , FALSE ) ;
offset + + ;
length - - ;
/* Calling Number Identification Restriction Override FeatureActivity CNIROver-FA (Octet 3 bits GH ) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_cniroverfa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Calling Number Identification Restriction: FeatureActivity CNIR-FA (Octet 3 bits EF ) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_cnirfa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Calling Number Identification Presentation: FeatureActivity CNIP2-FA (Octet 3 bits CD ) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_cnip2fa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Calling Number Identification Presentation: FeatureActivity CNIP1-FA (Octet 3 bits AB ) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_cnip1fa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
length - - ;
if ( length = = 0 )
return ;
offset + + ;
/* USCF divert to voice mail: FeatureActivity USCFvm-FA (Octet 4 bits GH ) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_uscfvmfa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Answer Hold: FeatureActivity AH-FA (Octet 4 bits EF ) N.S0029-0 v1.0 */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_ahfa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Data Privacy Feature Activity DP-FA (Octet 4 bits CD ) N.S0008-0 v 1.0 */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_dpfa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Priority Call Waiting FeatureActivity PCW-FA (Octet 4 bits AB ) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_pcwfa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
length - - ;
if ( length = = 0 )
return ;
offset + + ;
/* USCF divert to mobile station provided DN:FeatureActivity.USCFms-FA (Octet 5 bits AB ) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_uscfmsfa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* USCF divert to network registered DN:FeatureActivity. USCFnr-FA (Octet 5 bits CD )*/
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_uscfnrfa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* CDMA-Packet Data Service: FeatureActivity. CPDS-FA (Octet 5 bits EF ) N.S0029-0 v1.0*/
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_cpdsfa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* CDMA-Concurrent Service:FeatureActivity. CCS-FA (Octet 5 bits GH ) N.S0029-0 v1.0*/
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_ccsfa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
length - - ;
if ( length = = 0 )
return ;
offset + + ;
/* TDMA Enhanced Privacy and Encryption:FeatureActivity.TDMA EPE-FA (Octet 6 bits AB ) N.S0029-0 v1.0*/
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_callingfeaturesindicator_epefa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-15 22:10:56 +00:00
}
2006-01-07 13:07:04 +00:00
/* 6.5.2.27 CancellationType */
static const value_string ansi_map_CancellationType_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Not used " } ,
{ 1 , " ServingSystemOption " } ,
{ 2 , " ReportInCall. " } ,
{ 3 , " Discontinue " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
2006-01-12 19:27:56 +00:00
/* 6.5.2.29 CDMACallMode Updated with N.S0029-0 v1.0*/
/* Call Mode (octet 1, bit A) */
2006-01-07 13:07:04 +00:00
static const true_false_string ansi_map_CDMACallMode_cdma_bool_val = {
2006-01-12 19:27:56 +00:00
" CDMA 800 MHz channel (Band Class 0) acceptable. " ,
" CDMA 800 MHz channel (Band Class 0) not acceptable "
} ;
/* Call Mode (octet 1, bit B) */
static const true_false_string ansi_map_CallMode_amps_bool_val = {
2009-03-15 15:40:55 +00:00
" AAMPS 800 MHz channel acceptable " ,
" AMPS 800 MHz channel not acceptable "
2006-01-12 19:27:56 +00:00
} ;
/* Call Mode (octet 1, bit C) */
static const true_false_string ansi_map_CallMode_namps_bool_val = {
2009-03-15 15:40:55 +00:00
" NAMPS 800 MHz channel acceptable " ,
" NAMPS 800 MHz channel not acceptable "
2006-01-07 13:07:04 +00:00
} ;
2006-01-12 19:27:56 +00:00
/* Call Mode (octet 1, bit D) */
static const true_false_string ansi_map_CDMACallMode_cls1_bool_val = {
2009-03-15 15:40:55 +00:00
" CDMA 1900 MHz channel (Band Class 1) acceptable. " ,
" CDMA 1900 MHz channel (Band Class 1) not acceptable "
2006-01-07 13:07:04 +00:00
} ;
2006-01-12 19:27:56 +00:00
/* Call Mode (octet 1, bit E) */
static const true_false_string ansi_map_CDMACallMode_cls2_bool_val = {
2009-03-15 15:40:55 +00:00
" TACS channel (Band Class 2) acceptable " ,
" TACS channel (Band Class 2) not acceptable "
2006-01-12 19:27:56 +00:00
} ;
/* Call Mode (octet 1, bit F) */
static const true_false_string ansi_map_CDMACallMode_cls3_bool_val = {
2009-03-15 15:40:55 +00:00
" JTACS channel (Band Class 3) acceptable " ,
" JTACS channel (Band Class 3) not acceptable "
2006-01-12 19:27:56 +00:00
} ;
/* Call Mode (octet 1, bit G) */
static const true_false_string ansi_map_CDMACallMode_cls4_bool_val = {
2009-03-15 15:40:55 +00:00
" Korean PCS channel (Band Class 4) acceptable " ,
" Korean PCS channel (Band Class 4) not acceptable "
2006-01-12 19:27:56 +00:00
} ;
/* Call Mode (octet 1, bit H) */
static const true_false_string ansi_map_CDMACallMode_cls5_bool_val = {
2009-03-15 15:40:55 +00:00
" 450 MHz channel (Band Class 5) not acceptable " ,
" 450 MHz channel (Band Class 5) not acceptable "
2006-01-12 19:27:56 +00:00
} ;
/* Call Mode (octet 2, bit A) */
static const true_false_string ansi_map_CDMACallMode_cls6_bool_val = {
2009-03-15 15:40:55 +00:00
" 2 GHz channel (Band Class 6) acceptable. " ,
" 2 GHz channel (Band Class 6) not acceptable. "
2006-01-12 19:27:56 +00:00
} ;
/* Call Mode (octet 2, bit B) */
static const true_false_string ansi_map_CDMACallMode_cls7_bool_val = {
2009-03-15 15:40:55 +00:00
" 700 MHz channel (Band Class 7) acceptable " ,
" 700 MHz channel (Band Class 7) not acceptable "
2006-01-12 19:27:56 +00:00
} ;
/* Call Mode (octet 2, bit C) */
static const true_false_string ansi_map_CDMACallMode_cls8_bool_val = {
2009-03-15 15:40:55 +00:00
" 1800 MHz channel (Band Class 8) acceptable " ,
" 1800 MHz channel (Band Class 8) not acceptable "
2006-01-07 13:07:04 +00:00
} ;
2006-01-12 19:27:56 +00:00
/* Call Mode (octet 2, bit D) */
static const true_false_string ansi_map_CDMACallMode_cls9_bool_val = {
2009-03-15 15:40:55 +00:00
" 900 MHz channel (Band Class 9) acceptable " ,
" 900 MHz channel (Band Class 9) not acceptable "
2006-01-12 19:27:56 +00:00
} ;
/* Call Mode (octet 2, bit E) */
static const true_false_string ansi_map_CDMACallMode_cls10_bool_val = {
2009-03-15 15:40:55 +00:00
" Secondary 800 MHz channel (Band Class 10) acceptable. " ,
" Secondary 800 MHz channel (Band Class 10) not acceptable. "
2006-01-12 19:27:56 +00:00
} ;
2006-01-07 13:07:04 +00:00
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_cdmacallmode ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2009-03-15 15:40:55 +00:00
int offset = 0 ;
2009-09-06 14:25:47 +00:00
int length ;
2009-03-15 15:40:55 +00:00
proto_tree * subtree ;
2009-09-06 14:25:47 +00:00
length = tvb_length_remaining ( tvb , offset ) ;
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_mscid ) ;
/* Call Mode (octet 1, bit H) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmacallmode_cls5 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Call Mode (octet 1, bit G) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmacallmode_cls4 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Call Mode (octet 1, bit F) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmacallmode_cls3 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Call Mode (octet 1, bit E) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmacallmode_cls2 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Call Mode (octet 1, bit D) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmacallmode_cls1 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Call Mode (octet 1, bit C) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmacallmode_namps , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Call Mode (octet 1, bit B) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmacallmode_amps , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Call Mode (octet 1, bit A) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmacallmode_cdma , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
2009-09-06 14:25:47 +00:00
length - - ;
2009-03-15 15:40:55 +00:00
if ( length = = 0 )
return ;
offset + + ;
/* Call Mode (octet 2, bit E) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmacallmode_cls10 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Call Mode (octet 2, bit D) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmacallmode_cls9 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Call Mode (octet 2, bit C) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmacallmode_cls8 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Call Mode (octet 2, bit B) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmacallmode_cls7 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Call Mode (octet 2, bit A) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmacallmode_cls6 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-07 13:07:04 +00:00
}
/* 6.5.2.30 CDMAChannelData */
2006-01-12 19:27:56 +00:00
/* Updated with N.S0010-0 v 1.0 */
2006-01-07 13:07:04 +00:00
2007-01-11 22:26:15 +00:00
static const value_string ansi_map_cdmachanneldata_band_cls_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " 800 MHz Cellular System " } ,
{ 0 , NULL }
2007-01-11 22:26:15 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_cdmachanneldata ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2007-01-11 22:26:15 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
2009-09-06 14:25:47 +00:00
int length ;
2009-03-15 15:40:55 +00:00
proto_tree * subtree ;
length = tvb_length_remaining ( tvb , offset ) ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_cdmachanneldata ) ;
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_reservedBitH , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmachanneldata_Frame_Offset , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* CDMA Channel Number */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmachanneldata_CDMA_ch_no , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset = offset + 2 ;
length = length - 2 ;
/* Band Class */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_reservedBitH , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmachanneldata_band_cls , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Long Code Mask */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmachanneldata_lc_mask_b6 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmachanneldata_lc_mask_b5 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmachanneldata_lc_mask_b4 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmachanneldata_lc_mask_b3 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmachanneldata_lc_mask_b2 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmachanneldata_lc_mask_b1 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
length = length - 6 ;
if ( length = = 0 )
return ;
offset + + ;
/* NP_EXT */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmachanneldata_np_ext , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Nominal Power */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmachanneldata_nominal_pwr , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Number Preamble */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmachanneldata_nr_preamble , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2007-01-11 22:26:15 +00:00
}
2006-01-07 13:07:04 +00:00
/* 6.5.2.31 CDMACodeChannel */
/* 6.5.2.41 CDMAStationClassMark */
/* Power Class: (PC) (octet 1, bits A and B) */
static const value_string ansi_map_CDMAStationClassMark_pc_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Class I " } ,
{ 1 , " Class II " } ,
{ 2 , " Class III " } ,
{ 3 , " Reserved " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
/* Analog Transmission: (DTX) (octet 1, bit C) */
static const true_false_string ansi_map_CDMAStationClassMark_dtx_bool_val = {
2009-03-15 15:40:55 +00:00
" Discontinuous " ,
" Continuous "
2006-01-07 13:07:04 +00:00
} ;
/* Slotted Mode Indicator: (SMI) (octet 1, bit F) */
static const true_false_string ansi_map_CDMAStationClassMark_smi_bool_val = {
2009-03-15 15:40:55 +00:00
" Slotted capable " ,
" Slotted incapable "
2006-01-07 13:07:04 +00:00
} ;
/* Dual-mode Indicator(DMI) (octet 1, bit G) */
static const true_false_string ansi_map_CDMAStationClassMark_dmi_bool_val = {
2009-03-15 15:40:55 +00:00
" Dual-mode CDMA " ,
" CDMA only "
2006-01-07 13:07:04 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_cdmastationclassmark ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_cdmastationclassmark ) ;
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_reservedBitH , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Dual-mode Indicator(DMI) (octet 1, bit G) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmastationclassmark_dmi , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Slotted Mode Indicator: (SMI) (octet 1, bit F) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmastationclassmark_smi , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_reservedBitED , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Analog Transmission: (DTX) (octet 1, bit C) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmastationclassmark_dtx , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Power Class: (PC) (octet 1, bits A and B) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmastationclassmark_pc , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-07 13:07:04 +00:00
}
/* 6.5.2.47 ChannelData */
/* Discontinuous Transmission Mode (DTX) (octet 1, bits E and D) */
static const value_string ansi_map_ChannelData_dtx_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " DTX disabled " } ,
{ 1 , " Reserved. Treat the same as value 00, DTX disabled. " } ,
{ 2 , " DTX-low mode " } ,
{ 3 , " DTX mode active or acceptable " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_channeldata ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_channeldata ) ;
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
/* SAT Color Code (SCC) (octet 1, bits H and G) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_channeldata_scc , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Discontinuous Transmission Mode (DTX) (octet 1, bits E and D) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_channeldata_dtx , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Voice Mobile Attenuation Code (VMAC) (octet 1, bits A - C)*/
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_channeldata_vmac , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
offset + + ;
/* Channel Number (CHNO) ( octet 2 and 3 ) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_channeldata_chno , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
2006-01-07 13:07:04 +00:00
}
/* 6.5.2.50 ConfidentialityModes */
2006-01-12 19:27:56 +00:00
/* Updated with N.S0008-0 v 1.0*/
2006-01-07 13:07:04 +00:00
/* Voice Privacy (VP) Confidentiality Status (octet 1, bit A) */
static const true_false_string ansi_map_ConfidentialityModes_bool_val = {
2009-03-15 15:40:55 +00:00
" On " ,
" Off "
2006-01-07 13:07:04 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_confidentialitymodes ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2009-03-15 15:40:55 +00:00
int offset = 0 ;
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
proto_tree * subtree ;
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_confidentialitymodes ) ;
/* DataPrivacy (DP) Confidentiality Status (octet 1, bit C) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_ConfidentialityModes_dp , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Signaling Message Encryption (SE) Confidentiality Status (octet 1, bit B) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_ConfidentialityModes_se , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Voice Privacy (VP) Confidentiality Status (octet 1, bit A) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_ConfidentialityModes_vp , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-07 13:07:04 +00:00
}
/* 6.5.2.51 ControlChannelData */
2006-01-12 19:27:56 +00:00
/* Digital Color Code (DCC) (octet 1, bit H and G) */
/* Control Mobile Attenuation Code (CMAC) (octet 1, bit A - C) */
/* Channel Number (CHNO) ( octet 2 and 3 ) */
/* Supplementary Digital Color Codes (SDCC1 and SDCC2) */
/* SDCC1 ( octet 4, bit D and C )*/
/* SDCC2 ( octet 4, bit A and B )*/
2007-01-16 22:51:08 +00:00
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_controlchanneldata ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_controlchanneldata ) ;
/* Digital Color Code (DCC) (octet 1, bit H and G) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_controlchanneldata_dcc , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( subtree , hf_ansi_map_reservedBitFED , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Control Mobile Attenuation Code (CMAC) (octet 1, bit A - C) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_controlchanneldata_cmac , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* Channel Number (CHNO) ( octet 2 and 3 ) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_controlchanneldata_chno , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Supplementary Digital Color Codes (SDCC1 and SDCC2) */
offset = offset + 2 ;
/* SDCC1 ( octet 4, bit D and C )*/
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_controlchanneldata_sdcc1 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( subtree , hf_ansi_map_reservedBitHGFE , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* SDCC2 ( octet 4, bit A and B )*/
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_controlchanneldata_sdcc2 , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2007-01-16 22:51:08 +00:00
}
2006-01-12 19:27:56 +00:00
2006-01-07 13:07:04 +00:00
/* 6.5.2.52 CountUpdateReport */
static const value_string ansi_map_CountUpdateReport_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Class I " } ,
{ 1 , " Class II " } ,
{ 2 , " Class III " } ,
{ 3 , " Reserved " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
/* 6.5.2.53 DeniedAuthorizationPeriod */
2009-09-06 14:25:47 +00:00
/* Period (octet 1) */
2006-01-12 19:27:56 +00:00
static const value_string ansi_map_deniedauthorizationperiod_period_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Not used " } ,
{ 1 , " Per Call. Re-authorization should be attempted on the next call attempt " } ,
{ 2 , " Hours " } ,
{ 3 , " Days " } ,
{ 4 , " Weeks " } ,
{ 5 , " Per Agreement " } ,
{ 6 , " Reserved " } ,
{ 7 , " Number of calls. Re-authorization should be attempted after this number of (rejected) call attempts " } ,
{ 8 , " Minutes " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
/* Value (octet 2)
Number of minutes hours , days , weeks , or
number of calls ( as per Period ) . If Period
indicates anything else the Value is set to zero
2009-09-06 14:25:47 +00:00
on sending and ignored on receipt .
2006-01-07 13:07:04 +00:00
*/
2006-01-12 19:27:56 +00:00
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_deniedauthorizationperiod ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_billingid ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_deniedauthorizationperiod_period , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_value , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-12 19:27:56 +00:00
}
/* 6.5.2.57 DigitCollectionControl */
/* TODO Add decoding here */
/* 6.5.2.64 ExtendedMSCID */
static const value_string ansi_map_msc_type_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Not specified " } ,
{ 1 , " Serving MSC " } ,
{ 2 , " Home MSC " } ,
{ 3 , " Gateway MSC " } ,
{ 4 , " HLR " } ,
{ 5 , " VLR " } ,
{ 6 , " EIR (reserved) " } ,
{ 7 , " AC " } ,
{ 8 , " Border MSC " } ,
{ 9 , " Originating MSC " } ,
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_extendedmscid ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_extendedmscid ) ;
/* Type (octet 1) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_msc_type , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_MarketID , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset = offset + 2 ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_swno , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-12 19:27:56 +00:00
}
/* 6.5.2.65 ExtendedSystemMyTypeCode */
static void
2007-05-13 20:58:29 +00:00
dissect_ansi_map_extendedsystemmytypecode ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx ) {
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_extendedsystemmytypecode ) ;
/* Type (octet 1) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_msc_type , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
offset = dissect_ansi_map_SystemMyTypeCode ( TRUE , tvb , offset , actx , subtree , hf_ansi_map_systemMyTypeCode ) ;
2006-01-12 19:27:56 +00:00
}
/* 6.5.2.68 GeographicAuthorization */
/* Geographic Authorization (octet 1) */
static const value_string ansi_map_GeographicAuthorization_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Not used " } ,
{ 1 , " Authorized for all MarketIDs served by the VLR " } ,
{ 2 , " Authorized for this MarketID only " } ,
{ 3 , " Authorized for this MarketID and Switch Number only " } ,
{ 4 , " Authorized for this LocationAreaID within a MarketID only " } ,
{ 5 , " VLR " } ,
{ 6 , " EIR (reserved) " } ,
{ 7 , " AC " } ,
{ 8 , " Border MSC " } ,
{ 9 , " Originating MSC " } ,
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* 6.5.2.71 HandoffState */
/* Party Involved (PI) (octet 1, bit A) */
static const true_false_string ansi_map_HandoffState_pi_bool_val = {
2009-03-15 15:40:55 +00:00
" Terminator is handing off " ,
" Originator is handing off "
2006-01-12 19:27:56 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_handoffstate ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_handoffstate ) ;
/* Party Involved (PI) (octet 1, bit A) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_handoffstate_pi , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-12 19:27:56 +00:00
}
/* 6.5.2.72 InterMSCCircuitID */
/* Trunk Member Number (M) Octet2 */
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_intermsccircuitid ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
guint8 octet , octet2 ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_billingid ) ;
/* Trunk Group Number (G) Octet 1 */
octet = tvb_get_guint8 ( tvb , offset ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_tgn , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* Trunk Member Number (M) Octet2 */
octet2 = tvb_get_guint8 ( tvb , offset ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_tmn , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
proto_item_append_text ( actx - > created_item , " (G %u/M %u) " , octet , octet2 ) ;
2006-01-12 19:27:56 +00:00
}
/* 6.5.2.78 MessageWaitingNotificationCount */
/* Type of messages (octet 1) */
static const value_string ansi_map_MessageWaitingNotificationCount_type_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Voice messages " } ,
{ 1 , " Short Message Services (SMS) messages " } ,
{ 2 , " Group 3 (G3) Fax messages " } ,
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_messagewaitingnotificationcount ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_billingid ) ;
/* Type of messages (octet 1) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_messagewaitingnotificationcount_tom , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* Number of Messages Waiting (octet 2) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_messagewaitingnotificationcount_no_mw , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-12 19:27:56 +00:00
}
/* 6.5.2.79 MessageWaitingNotificationType */
/* Pip Tone (PT) (octet 1, bit A) */
static const true_false_string ansi_map_MessageWaitingNotificationType_pt_bool_val = {
2009-03-15 15:40:55 +00:00
" Pip Tone (PT) notification is required " ,
" Pip Tone (PT) notification is not authorized or no notification is required "
2006-01-12 19:27:56 +00:00
} ;
/* Alert Pip Tone (APT) (octet 1, bit B) */
static const true_false_string ansi_map_MessageWaitingNotificationType_apt_bool_val = {
2009-03-15 15:40:55 +00:00
" Alert Pip Tone (APT) notification is required " ,
" Alert Pip Tone (APT) notification is not authorized or notification is not required "
2006-01-12 19:27:56 +00:00
} ;
/* Message Waiting Indication (MWI) (octet 1, bits C and D) */
static const value_string ansi_map_MessageWaitingNotificationType_mwi_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " No MWI. Message Waiting Indication (MWI) notification is not authorized or notification is not required " } ,
{ 1 , " Reserved " } ,
{ 2 , " MWI On. Message Waiting Indication (MWI) notification is required. Messages waiting " } ,
{ 3 , " MWI Off. Message Waiting Indication (MWI) notification is required. No messages waiting " } ,
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_messagewaitingnotificationtype ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_billingid ) ;
/* Message Waiting Indication (MWI) (octet 1, bits C and D) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_messagewaitingnotificationtype_mwi , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Alert Pip Tone (APT) (octet 1, bit B) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_messagewaitingnotificationtype_apt , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Pip Tone (PT) (octet 1, bit A) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_messagewaitingnotificationtype_pt , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-12 19:27:56 +00:00
}
/* 6.5.2.81 MobileIdentificationNumber */
2006-01-03 15:13:26 +00:00
/* 6.5.2.82 MSCID */
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_mscid ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
2006-01-03 15:13:26 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_mscid ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_MarketID , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset = offset + 2 ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_swno , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-03 15:13:26 +00:00
}
2006-01-12 19:27:56 +00:00
/* 6.5.2.84 MSLocation */
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_mslocation ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_mscid ) ;
/* Latitude in tenths of a second octet 1 - 3 */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_mslocation_lat , tvb , offset , 3 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset = offset + 3 ;
/* Longitude in tenths of a second octet 4 - 6 */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_mslocation_long , tvb , offset , 3 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset = offset + 3 ;
/* Resolution in units of 1 foot octet 7, octet 8 optional */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_mslocation_res , tvb , offset , - 1 , ENC_BIG_ENDIAN ) ;
2006-01-12 19:27:56 +00:00
}
/* 6.5.2.85 NAMPSCallMode */
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_nampscallmode ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_mscid ) ;
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
/* Call Mode (octet 1, bits A and B) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_nampscallmode_amps , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( subtree , hf_ansi_map_nampscallmode_namps , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-12 19:27:56 +00:00
}
/* 6.5.2.86 NAMPSChannelData */
/* Narrow Analog Voice Channel Assignment (NAVCA) (octet 1, bits A and B) */
static const value_string ansi_map_NAMPSChannelData_navca_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Wide. 30 kHz AMPS voice channel " } ,
{ 1 , " Upper. 10 kHz NAMPS voice channel " } ,
{ 2 , " Middle. 10 kHz NAMPS voice channel " } ,
{ 3 , " Lower. 10 kHz NAMPS voice channel " } ,
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* Color Code Indicator (CCIndicator) (octet 1, bits C, D, and E) */
static const value_string ansi_map_NAMPSChannelData_ccinidicator_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " ChannelData parameter SCC field applies " } ,
{ 1 , " Digital SAT Color Code 1 (ignore SCC field) " } ,
{ 2 , " Digital SAT Color Code 2 (ignore SCC field) " } ,
{ 3 , " Digital SAT Color Code 3 (ignore SCC field) " } ,
{ 4 , " Digital SAT Color Code 4 (ignore SCC field) " } ,
{ 5 , " Digital SAT Color Code 5 (ignore SCC field) " } ,
{ 6 , " Digital SAT Color Code 6 (ignore SCC field) " } ,
{ 7 , " Digital SAT Color Code 7 (ignore SCC field) " } ,
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_nampschanneldata ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_mscid ) ;
/* Color Code Indicator (CCIndicator) (octet 1, bits C, D, and E) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_nampschanneldata_CCIndicator , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Narrow Analog Voice Channel Assignment (NAVCA) (octet 1, bits A and B) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_nampschanneldata_navca , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-12 19:27:56 +00:00
}
2006-01-03 15:13:26 +00:00
2006-01-12 19:27:56 +00:00
/* 6.5.2.88 OneTimeFeatureIndicator */
/* updated with N.S0012 */
/* Call Waiting for Future Incoming Call (CWFI) (octet 1, bits A and B) */
/* Call Waiting for Incoming Call (CWIC) (octet 1, bits C and D) */
static const value_string ansi_map_onetimefeatureindicator_cw_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Ignore " } ,
{ 1 , " No CW " } ,
{ 2 , " Normal CW " } ,
{ 3 , " Priority CW " } ,
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* MessageWaitingNotification (MWN) (octet 1, bits E and F) */
static const value_string ansi_map_onetimefeatureindicator_mwn_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Ignore " } ,
{ 1 , " Pip Tone Inactive " } ,
{ 2 , " Pip Tone Active " } ,
{ 3 , " Reserved " } ,
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* Calling Number Identification Restriction (CNIR) (octet 1, bits G and H)*/
static const value_string ansi_map_onetimefeatureindicator_cnir_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Ignore " } ,
{ 1 , " CNIR Inactive " } ,
{ 2 , " CNIR Active " } ,
{ 3 , " Reserved " } ,
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* Priority Access and Channel Assignment (PACA) (octet 2, bits A and B)*/
static const value_string ansi_map_onetimefeatureindicator_paca_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Ignore " } ,
{ 1 , " PACA Demand Inactive " } ,
{ 2 , " PACA Demand Activated " } ,
{ 3 , " Reserved " } ,
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* Flash Privileges (Flash) (octet 2, bits C and D) */
static const value_string ansi_map_onetimefeatureindicator_flash_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Ignore " } ,
{ 1 , " Flash Inactive " } ,
{ 2 , " Flash Active " } ,
{ 3 , " Reserved " } ,
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* Calling Name Restriction (CNAR) (octet 2, bits E and F) */
static const value_string ansi_map_onetimefeatureindicator_cnar_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Ignore " } ,
{ 1 , " Presentation Allowed " } ,
{ 2 , " Presentation Restricted. " } ,
{ 3 , " Blocking Toggle " } ,
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_onetimefeatureindicator ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_mscid ) ;
/* Calling Number Identification Restriction (CNIR) (octet 1, bits G and H)*/
/* MessageWaitingNotification (MWN) (octet 1, bits E and F) */
/* Call Waiting for Incoming Call (CWIC) (octet 1, bits C and D) */
/* Call Waiting for Future Incoming Call (CWFI) (octet 1, bits A and B) */
offset + + ;
/* Calling Name Restriction (CNAR) (octet 2, bits E and F) */
/* Flash Privileges (Flash) (octet 2, bits C and D) */
/* Priority Access and Channel Assignment (PACA) (octet 2, bits A and B)*/
2006-01-12 19:27:56 +00:00
}
/* 6.5.2.90 OriginationTriggers */
2006-01-03 15:13:26 +00:00
/* All Origination (All) (octet 1, bit A) */
static const true_false_string ansi_map_originationtriggers_all_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt. This overrides all other values " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* Local (octet 1, bit B) */
static const true_false_string ansi_map_originationtriggers_local_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any local call attempt " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* Intra-LATA Toll (ILATA) (octet 1, bit C) */
static const true_false_string ansi_map_originationtriggers_ilata_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any intra-LATA call attempt " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* Inter-LATA Toll (OLATA) (octet 1, bit D) */
static const true_false_string ansi_map_originationtriggers_olata_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any inter-LATA toll call attempt " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* International (Int'l ) (octet 1, bit E) */
static const true_false_string ansi_map_originationtriggers_int_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any international call attempt " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* World Zone (WZ) (octet 1, bit F) */
static const true_false_string ansi_map_originationtriggers_wz_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt outside of the current World Zone (as defined in ITU-T Rec. E.164) " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* Unrecognized Number (Unrec) (octet 1, bit G) */
static const true_false_string ansi_map_originationtriggers_unrec_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt to an unrecognized number " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* Revertive Call (RvtC) (octet 1, bit H)*/
static const true_false_string ansi_map_originationtriggers_rvtc_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any Revertive Call attempt " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* Star (octet 2, bit A) */
static const true_false_string ansi_map_originationtriggers_star_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any number beginning with a Star '*' digit " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* Double Star (DS) (octet 2, bit B) */
static const true_false_string ansi_map_originationtriggers_ds_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any number beginning with two Star '**' digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* Pound (octet 2, bit C) */
static const true_false_string ansi_map_originationtriggers_pound_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any number beginning with a Pound '#' digit " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* Double Pound (DP) (octet 2, bit D) */
static const true_false_string ansi_map_originationtriggers_dp_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any number beginning with two Pound '##' digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* Prior Agreement (PA) (octet 2, bit E) */
static const true_false_string ansi_map_originationtriggers_pa_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any number matching a criteria of a prior agreement " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* No digits (octet 3, bit A) */
static const true_false_string ansi_map_originationtriggers_nodig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with no digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* 1 digit (octet 3, bit B) */
static const true_false_string ansi_map_originationtriggers_onedig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with 1 digit " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* 1 digit (octet 3, bit C) */
static const true_false_string ansi_map_originationtriggers_twodig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with 2 digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* 1 digit (octet 3, bit D) */
static const true_false_string ansi_map_originationtriggers_threedig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with 3 digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* 1 digit (octet 3, bit E) */
static const true_false_string ansi_map_originationtriggers_fourdig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with 4 digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* 1 digit (octet 3, bit F) */
static const true_false_string ansi_map_originationtriggers_fivedig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with 5 digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* 1 digit (octet 3, bit G) */
static const true_false_string ansi_map_originationtriggers_sixdig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with 6 digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* 1 digit (octet 3, bit H) */
static const true_false_string ansi_map_originationtriggers_sevendig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with 7 digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* 1 digit (octet 4, bit A) */
static const true_false_string ansi_map_originationtriggers_eightdig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with 8 digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* 1 digit (octet 4, bit B) */
static const true_false_string ansi_map_originationtriggers_ninedig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with 9 digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* 1 digit (octet 4, bit C) */
static const true_false_string ansi_map_originationtriggers_tendig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with 10 digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* 1 digit (octet 4, bit D) */
static const true_false_string ansi_map_originationtriggers_elevendig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with 11 digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* 1 digit (octet 4, bit E) */
2008-12-18 19:08:49 +00:00
static const true_false_string ansi_map_originationtriggers_twelvedig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with 12 digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* 1 digit (octet 4, bit F) */
static const true_false_string ansi_map_originationtriggers_thirteendig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with 13 digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* 1 digit (octet 4, bit G) */
static const true_false_string ansi_map_originationtriggers_fourteendig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with 14 digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
/* 1 digit (octet 4, bit H) */
static const true_false_string ansi_map_originationtriggers_fifteendig_bool_val = {
2009-03-15 15:40:55 +00:00
" Launch an OriginationRequest for any call attempt with 15 digits " ,
" Trigger is not active "
2006-01-03 15:13:26 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_originationtriggers ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-03 15:13:26 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_originationtriggers ) ;
/* Revertive Call (RvtC) (octet 1, bit H)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_rvtc , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Unrecognized Number (Unrec) (octet 1, bit G) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_unrec , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* World Zone (WZ) (octet 1, bit F) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_wz , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* International (Int'l ) (octet 1, bit E) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_int , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Inter-LATA Toll (OLATA) (octet 1, bit D) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_olata , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Intra-LATA Toll (ILATA) (octet 1, bit C) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_ilata , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Local (octet 1, bit B) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_local , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* All Origination (All) (octet 1, bit A) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_all , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/*Prior Agreement (PA) (octet 2, bit E) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_pa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Double Pound (DP) (octet 2, bit D) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_dp , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Pound (octet 2, bit C) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_pound , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Double Star (DS) (octet 2, bit B) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_ds , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Star (octet 2, bit A) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_star , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* 7 digit (octet 3, bit H) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_sevendig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* 6 digit (octet 3, bit G) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_sixdig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* 5 digit (octet 3, bit F) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_fivedig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* 4 digit (octet 3, bit E) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_fourdig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* 3 digit (octet 3, bit D) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_threedig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* 2 digit (octet 3, bit C) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_twodig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* 1 digit (octet 3, bit B) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_onedig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* No digits (octet 3, bit A) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_nodig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* 15 digit (octet 4, bit H) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_fifteendig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* 14 digit (octet 4, bit G) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_fourteendig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* 13 digit (octet 4, bit F) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_thirteendig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* 12 digit (octet 4, bit E) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_twelvedig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* 11 digit (octet 4, bit D) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_elevendig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* 10 digit (octet 4, bit C) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_tendig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* 9 digit (octet 4, bit B) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_ninedig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* 8 digits (octet 4, bit A) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_originationtriggers_eightdig , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-03 15:13:26 +00:00
}
2006-01-07 13:07:04 +00:00
/* 6.5.2.91 PACAIndicator */
/* Permanent Activation (PA) (octet 1, bit A) */
static const true_false_string ansi_map_pacaindicator_pa_bool_val = {
2009-03-15 15:40:55 +00:00
" PACA is permanently activated " ,
" PACA is not permanently activated "
2006-01-07 13:07:04 +00:00
} ;
static const value_string ansi_map_PACA_Level_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " Priority Level. 1 This is the highest level " } ,
{ 2 , " Priority Level 2 " } ,
{ 3 , " Priority Level 3 " } ,
{ 4 , " Priority Level 4 " } ,
{ 5 , " Priority Level 5 " } ,
{ 6 , " Priority Level 6 " } ,
{ 7 , " Priority Level 7 " } ,
{ 8 , " Priority Level 8 " } ,
2011-05-18 20:06:17 +00:00
{ 9 , " Priority Level 9 " } ,
2006-01-07 13:07:04 +00:00
{ 10 , " Priority Level 10 " } ,
{ 11 , " Priority Level 11 " } ,
{ 12 , " Priority Level 12 " } ,
{ 13 , " Priority Level 13 " } ,
{ 14 , " Priority Level 14 " } ,
{ 15 , " Priority Level 15 " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_pacaindicator ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_pacaindicator ) ;
/* PACA Level (octet 1, bits B-E) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_PACA_Level , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Permanent Activation (PA) (octet 1, bit A) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_pacaindicator_pa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-07 13:07:04 +00:00
}
/* 6.5.2.92 PageIndicator */
static const value_string ansi_map_PageIndicator_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " Page " } ,
{ 2 , " Listen only " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
2006-01-12 19:27:56 +00:00
/* 6.5.2.93 PC_SSN */
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_pc_ssn ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
guint8 b1 , b2 , b3 , b4 ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_billingid ) ;
/* Type (octet 1) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_msc_type , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* 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 ) ;
2006-01-12 19:27:56 +00:00
}
/* 6.5.2.94 PilotBillingID */
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_pilotbillingid ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_billingid ) ;
/* First Originating MarketID octet 1 and 2 */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_MarketID , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset = offset + 2 ;
/* First Originating Switch Number octet 3*/
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_swno , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* ID Number */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_idno , tvb , offset , 3 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset = offset + 3 ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_segcount , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-12 19:27:56 +00:00
}
/* 6.5.2.96 PreferredLanguageIndicator */
static const value_string ansi_map_PreferredLanguageIndicator_vals [ ] = {
{ 0 , " Unspecified " } ,
{ 1 , " English " } ,
{ 2 , " French " } ,
{ 3 , " Spanish " } ,
{ 4 , " German " } ,
{ 5 , " Portuguese " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* 6.5.2.106 ReceivedSignalQuality */
/* a. This octet is encoded the same as octet 1 in the SignalQuality parameter (see
2009-03-15 15:40:55 +00:00
6.5 .2 .121 ) .
2006-01-12 19:27:56 +00:00
*/
/* 6.5.2.118 SetupResult */
static const value_string ansi_map_SetupResult_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " Unsuccessful " } ,
{ 2 , " Successful " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* 6.5.2.121 SignalQuality */
/* TODO */
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
/* 6.5.2.122 SMS_AccessDeniedReason (TIA/EIA-41.5-D, page 5-256)
N . S0011 - 0 v 1.0
*/
2006-01-03 15:13:26 +00:00
static const value_string ansi_map_SMS_AccessDeniedReason_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " Denied " } ,
{ 2 , " Postponed " } ,
{ 3 , " Unavailable " } ,
{ 4 , " Invalid " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-03 15:13:26 +00:00
} ;
2006-01-12 19:27:56 +00:00
2006-01-03 15:13:26 +00:00
/* 6.5.2.125 SMS_CauseCode (TIA/EIA-41.5-D, page 5-262)
2009-03-15 15:40:55 +00:00
N . S0011 - 0 v 1.0
*/
2006-01-03 15:13:26 +00:00
static const value_string ansi_map_SMS_CauseCode_vals [ ] = {
{ 0 , " Address vacant " } ,
{ 1 , " Address translation failure " } ,
{ 2 , " Network resource shortage " } ,
{ 3 , " Network failure " } ,
{ 4 , " Invalid Teleservice ID " } ,
{ 5 , " Other network problem " } ,
{ 6 , " Unsupported network interface " } ,
2007-06-18 19:20:52 +00:00
{ 8 , " CDMA handset-based position determination failure " } ,
{ 9 , " CDMA handset-based position determination resources released - voice service request " } ,
2007-12-09 21:10:25 +00:00
{ 10 , " CDMA handset-based position determination resources released - voice service request - message acknowledged " } ,
2007-06-18 19:20:52 +00:00
{ 11 , " Reserved " } ,
{ 12 , " Reserved " } ,
{ 13 , " Reserved " } ,
{ 14 , " Emergency Services Call Precedence " } ,
2006-01-03 15:13:26 +00:00
{ 32 , " No page response " } ,
{ 33 , " Destination busy " } ,
{ 34 , " No acknowledgment " } ,
{ 35 , " Destination resource shortage " } ,
{ 36 , " SMS delivery postponed " } ,
{ 37 , " Destination out of service " } ,
{ 38 , " Destination no longer at this address " } ,
{ 39 , " Other terminal problem " } ,
{ 64 , " Radio interface resource shortage " } ,
{ 65 , " Radio interface incompatibility " } ,
{ 66 , " Other radio interface problem " } ,
{ 67 , " Unsupported Base Station Capability " } ,
{ 96 , " Encoding problem " } ,
{ 97 , " Service origination denied " } ,
{ 98 , " Service termination denied " } ,
{ 99 , " Supplementary service not supported " } ,
{ 100 , " Service not supported " } ,
{ 101 , " Reserved " } ,
{ 102 , " Missing expected parameter " } ,
{ 103 , " Missing mandatory parameter " } ,
{ 104 , " Unrecognized parameter value " } ,
{ 105 , " Unexpected parameter value " } ,
{ 106 , " User Data size error " } ,
{ 107 , " Other general problems " } ,
{ 108 , " Session not active " } ,
2007-06-18 19:20:52 +00:00
{ 109 , " Reserved " } ,
{ 110 , " MS Disconnect " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-03 15:13:26 +00:00
} ;
2010-11-16 15:20:33 +00:00
static value_string_ext ansi_map_SMS_CauseCode_vals_ext = VALUE_STRING_EXT_INIT ( ansi_map_SMS_CauseCode_vals ) ;
2006-01-03 15:13:26 +00:00
2006-01-12 19:27:56 +00:00
/* 6.5.2.126 SMS_ChargeIndicator */
/* SMS Charge Indicator (octet 1) */
static const value_string ansi_map_SMS_ChargeIndicator_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " No charge " } ,
{ 2 , " Charge original originator " } ,
{ 3 , " Charge original destination " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
2009-03-15 15:40:55 +00:00
/* 4 through 63 Reserved. Treat the same as value 1, No charge.
64 through 127 Reserved . Treat the same as value 2 , Charge original originator .
128 through 223 Reserved . Treat the same as value 3 , Charge original destination .
224 through 255 Reserved for TIA / EIA - 41 protocol extension . If unknown , treat the same as value 2 , Charge
original originator .
*/
2006-01-12 19:27:56 +00:00
2007-01-03 07:55:40 +00:00
/* 6.5.2.130 SMS_NotificationIndicator N.S0005-0 v 1.0*/
2006-01-12 19:27:56 +00:00
static const value_string ansi_map_SMS_NotificationIndicator_vals [ ] = {
{ 0 , " Not used " } ,
2007-01-03 07:55:40 +00:00
{ 1 , " Notify when available " } ,
{ 2 , " Do not notify when available " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* 6.5.2.136 SMS_OriginationRestrictions */
/* DEFAULT (octet 1, bits A and B) */
static const value_string ansi_map_SMS_OriginationRestrictions_default_vals [ ] = {
{ 0 , " Block all " } ,
{ 1 , " Reserved " } ,
2011-05-18 20:06:17 +00:00
{ 2 , " Allow specific " } ,
{ 3 , " Allow all " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* DIRECT (octet 1, bit C) */
static const true_false_string ansi_map_SMS_OriginationRestrictions_direct_bool_val = {
2009-03-15 15:40:55 +00:00
" Allow Direct " ,
" Block Direct "
2006-01-12 19:27:56 +00:00
} ;
/* Force Message Center (FMC) (octet 1, bit D) */
static const true_false_string ansi_map_SMS_OriginationRestrictions_fmc_bool_val = {
2009-03-15 15:40:55 +00:00
" Force Indirect " ,
" No effect "
2006-01-12 19:27:56 +00:00
} ;
2007-02-07 02:41:10 +00:00
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_sms_originationrestrictions ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2007-01-15 21:07:36 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
2007-01-15 21:07:36 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_sms_originationrestrictions ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_reservedBitHGFE , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_sms_originationrestrictions_fmc , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( subtree , hf_ansi_map_sms_originationrestrictions_direct , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_sms_originationrestrictions_default , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2007-01-15 21:07:36 +00:00
}
2006-01-12 19:27:56 +00:00
/* 6.5.2.137 SMS_TeleserviceIdentifier */
/* Updated with N.S0011-0 v 1.0 */
/* SMS Teleservice Identifier (octets 1 and 2) */
static const value_string ansi_map_SMS_TeleserviceIdentifier_vals [ ] = {
2006-06-17 16:19:23 +00:00
{ 0 , " Not used " } ,
{ 1 , " Reserved for maintenance " } ,
{ 2 , " SSD Update no response " } ,
{ 3 , " SSD Update successful " } ,
{ 4 , " SSD Update failed " } ,
{ 4096 , " AMPS Extended Protocol Enhanced Services " } ,
{ 4097 , " CDMA Cellular Paging Teleservice " } ,
{ 4098 , " CDMA Cellular Messaging Teleservice " } ,
{ 4099 , " CDMA Voice Mail Notification " } ,
{ 32513 , " TDMA Cellular Messaging Teleservice " } ,
{ 32520 , " TDMA System Assisted Mobile Positioning through Satellite (SAMPS) " } ,
{ 32584 , " TDMA Segmented System Assisted Mobile Positioning Service " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
2006-01-12 19:27:56 +00:00
/* 6.5.2.140 SPINITriggers */
/* All Origination (All) (octet 1, bit A) */
/* 6.5.2.142 SSDUpdateReport */
static const value_string ansi_map_SSDUpdateReport_vals [ ] = {
2009-03-15 15:40:55 +00:00
{ 0 , " Not used " } ,
{ 4096 , " AMPS Extended Protocol Enhanced Services " } ,
{ 4097 , " CDMA Cellular Paging Teleservice " } ,
{ 4098 , " CDMA Cellular Messaging Teleservice " } ,
2006-01-12 19:27:56 +00:00
{ 32513 , " TDMA Cellular Messaging Teleservice " } ,
{ 32514 , " TDMA Cellular Paging Teleservice (CPT-136) " } ,
{ 32515 , " TDMA Over-the-Air Activation Teleservice (OATS) " } ,
{ 32516 , " TDMA Over-the-Air Programming Teleservice (OPTS) " } ,
{ 32517 , " TDMA General UDP Transport Service (GUTS) " } ,
{ 32576 , " Reserved " } ,
{ 32577 , " TDMA Segmented Cellular MessagingTeleservice " } ,
{ 32578 , " TDMA Segmented Cellular Paging Teleservice " } ,
{ 32579 , " TDMA Segmented Over-the-Air Activation Teleservice (OATS) " } ,
{ 32580 , " TDMA Segmented Over-the-Air Programming Teleservice (OPTS). " } ,
{ 32581 , " TDMA Segmented General UDP Transport Service (GUTS) " } ,
{ 32576 , " Reserved " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* 6.5.2.143 StationClassMark */
/* 6.5.2.144 SystemAccessData */
/* 6.5.2.146 SystemCapabilities */
/* Updated in N.S0008-0 v 1.0 */
2007-01-04 07:51:26 +00:00
static const true_false_string ansi_map_systemcapabilities_auth_bool_val = {
2009-03-15 15:40:55 +00:00
" Authentication parameters were requested on this system access (AUTH=1 in the OMT) " ,
" Authentication parameters were not requested on this system access (AUTH=0 in the OMT). "
2007-01-04 07:51:26 +00:00
} ;
static const true_false_string ansi_map_systemcapabilities_se_bool_val = {
2009-03-15 15:40:55 +00:00
" Signaling Message Encryption supported by the system " ,
" Signaling Message Encryption not supported by the system "
2007-01-04 07:51:26 +00:00
} ;
static const true_false_string ansi_map_systemcapabilities_vp_bool_val = {
2009-03-15 15:40:55 +00:00
" Voice Privacy supported by the system " ,
" Voice Privacy not supported by the system "
2007-01-04 07:51:26 +00:00
} ;
static const true_false_string ansi_map_systemcapabilities_cave_bool_val = {
2009-03-15 15:40:55 +00:00
" System can execute the CAVE algorithm and share SSD for the indicated MS " ,
" System cannot execute the CAVE algorithm and cannot share SSD for the indicated MS "
2007-01-04 07:51:26 +00:00
} ;
static const true_false_string ansi_map_systemcapabilities_ssd_bool_val = {
2009-03-15 15:40:55 +00:00
" SSD is shared with the system for the indicated MS " ,
" SSD is not shared with the system for the indicated MS "
2007-01-04 07:51:26 +00:00
} ;
static const true_false_string ansi_map_systemcapabilities_dp_bool_val = {
2009-03-15 15:40:55 +00:00
" DP is supported by the system " ,
" DP is not supported by the system "
2007-01-04 07:51:26 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_systemcapabilities ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2007-01-04 07:51:26 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_systemcapabilities ) ;
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_reservedBitHG , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_systemcapabilities_dp , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( subtree , hf_ansi_map_systemcapabilities_ssd , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( subtree , hf_ansi_map_systemcapabilities_cave , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( subtree , hf_ansi_map_systemcapabilities_vp , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( subtree , hf_ansi_map_systemcapabilities_se , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
proto_tree_add_item ( subtree , hf_ansi_map_systemcapabilities_auth , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2007-01-04 07:51:26 +00:00
}
2006-01-12 19:27:56 +00:00
/* 6.5.2.151 TDMABurstIndicator */
/* 6.5.2.152 TDMACallMode */
/* 6.5.2.153 TDMAChannelData Updated in N.S0007-0 v 1.0*/
2006-01-07 13:07:04 +00:00
/* 6.5.2.155 TerminationAccessType */
/* XXX Fix Me, Fill up the values or do special decoding? */
static const value_string ansi_map_TerminationAccessType_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " Reserved for controlling system assignment (may be a trunk group identifier). " } ,
2009-03-15 15:40:55 +00:00
/* 1 through 127 */
{ 127 , " Reserved for controlling system assignment (may be a trunk group identifier). " } ,
{ 128 , " Reserved for TIA/EIA-41 protocol extension. If unknown, treat the same as value 253, Land-to-Mobile Directory Number access " } ,
/* 128 through 160 */
{ 160 , " Reserved for TIA/EIA-41 protocol extension. If unknown, treat the same as value 253, Land-to-Mobile Directory Number access " } ,
{ 161 , " Reserved for this Standard " } ,
/* 161 through 251 */
{ 151 , " Reserved for this Standard " } ,
{ 252 , " Mobile-to-Mobile Directory Number access " } ,
{ 253 , " Land-to-Mobile Directory Number access " } ,
{ 254 , " Remote Feature Control port access " } ,
{ 255 , " Roamer port access " } ,
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
/* 6.5.2.158 TerminationTreatment */
static const value_string ansi_map_TerminationTreatment_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " MS Termination " } ,
{ 2 , " Voice Mail Storage " } ,
{ 3 , " Voice Mail Retrieval " } ,
{ 4 , " Dialogue Termination " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
/* 6.5.2.159 TerminationTriggers */
/* Busy (octet 1, bits A and B) */
2007-01-03 07:55:40 +00:00
static const value_string ansi_map_terminationtriggers_busy_vals [ ] = {
2006-01-07 13:07:04 +00:00
{ 0 , " Busy Call " } ,
{ 1 , " Busy Trigger " } ,
{ 2 , " Busy Leg " } ,
{ 3 , " Reserved. Treat as an unrecognized parameter value " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
/* Routing Failure (RF) (octet 1, bits C and D) */
2007-01-03 07:55:40 +00:00
static const value_string ansi_map_terminationtriggers_rf_vals [ ] = {
2006-01-07 13:07:04 +00:00
{ 0 , " Failed Call " } ,
{ 1 , " Routing Failure Trigger " } ,
{ 2 , " Failed Leg " } ,
{ 3 , " Reserved. Treat as an unrecognized parameter value " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
/* No Page Response (NPR) (octet 1, bits E and F) */
2007-01-03 07:55:40 +00:00
static const value_string ansi_map_terminationtriggers_npr_vals [ ] = {
2006-01-07 13:07:04 +00:00
{ 0 , " No Page Response Call " } ,
{ 1 , " No Page Response Trigger " } ,
{ 2 , " No Page Response Leg " } ,
{ 3 , " Reserved. Treat as an unrecognized parameter value " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
/* No Answer (NA) (octet 1, bits G and H) */
2007-01-03 07:55:40 +00:00
static const value_string ansi_map_terminationtriggers_na_vals [ ] = {
2006-01-07 13:07:04 +00:00
{ 0 , " No Answer Call " } ,
{ 1 , " No Answer Trigger " } ,
{ 2 , " No Answer Leg " } ,
{ 3 , " Reserved " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
/* None Reachable (NR) (octet 2, bit A) */
2007-01-03 07:55:40 +00:00
static const value_string ansi_map_terminationtriggers_nr_vals [ ] = {
2006-01-07 13:07:04 +00:00
{ 0 , " Member Not Reachable " } ,
{ 1 , " Group Not Reachable " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-07 13:07:04 +00:00
} ;
2007-01-03 07:55:40 +00:00
/* 6.5.2.159 TerminationTriggers N.S0005-0 v 1.0*/
2006-01-07 13:07:04 +00:00
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_terminationtriggers ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-03 15:13:26 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_transactioncapability ) ;
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_reservedBitH , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* No Page Response (NPR) (octet 1, bits E and F) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_terminationtriggers_npr , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* No Answer (NA) (octet 1, bits G and H) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_terminationtriggers_na , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Routing Failure (RF) (octet 1, bits C and D) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_terminationtriggers_rf , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Busy (octet 1, bits A and B) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_terminationtriggers_busy , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* None Reachable (NR) (octet 2, bit A) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_terminationtriggers_nr , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-07 13:07:04 +00:00
}
/* 6.5.2.160 TransactionCapability (TIA/EIA-41.5-D, page 5-315) */
2006-01-12 19:27:56 +00:00
/* Updated with N.S0010-0 v 1.0, N.S0012-0 v 1.0 N.S0013-0 v 1.0 */
2006-01-03 15:13:26 +00:00
static const true_false_string ansi_map_trans_cap_prof_bool_val = {
2009-03-15 15:40:55 +00:00
" The system is capable of supporting the IS-41-C profile parameters " ,
" The system is not capable of supporting the IS-41-C profile parameters "
2006-01-03 15:13:26 +00:00
} ;
static const true_false_string ansi_map_trans_cap_busy_bool_val = {
2009-03-15 15:40:55 +00:00
" The system is capable of detecting a busy condition at the current time " ,
" The system is not capable of detecting a busy condition at the current time "
2006-01-03 15:13:26 +00:00
} ;
static const true_false_string ansi_map_trans_cap_ann_bool_val = {
2009-03-15 15:40:55 +00:00
" The system is capable of honoring the AnnouncementList parameter at the current time " ,
" The system is not capable of honoring the AnnouncementList parameter at the current time "
2006-01-03 15:13:26 +00:00
} ;
static const true_false_string ansi_map_trans_cap_rui_bool_val = {
2009-03-15 15:40:55 +00:00
" The system is capable of interacting with the user " ,
" The system is not capable of interacting with the user "
2006-01-03 15:13:26 +00:00
} ;
static const true_false_string ansi_map_trans_cap_spini_bool_val = {
2009-03-15 15:40:55 +00:00
" The system is capable of supporting local SPINI operation " ,
" The system is not capable of supporting local SPINI operation at the current time "
2006-01-03 15:13:26 +00:00
} ;
static const true_false_string ansi_map_trans_cap_uzci_bool_val = {
2009-03-15 15:40:55 +00:00
" The system is User Zone capable at the current time " ,
" The system is not User Zone capable at the current time "
2006-01-03 15:13:26 +00:00
} ;
static const true_false_string ansi_map_trans_cap_ndss_bool_val = {
2009-03-15 15:40:55 +00:00
" Serving system is NDSS capable " ,
" Serving system is not NDSS capable "
2006-01-03 15:13:26 +00:00
} ;
static const true_false_string ansi_map_trans_cap_nami_bool_val = {
2009-03-15 15:40:55 +00:00
" The system is CNAP/CNAR capable " ,
" The system is not CNAP/CNAR capable "
2006-01-03 15:13:26 +00:00
} ;
static const value_string ansi_map_trans_cap_multerm_vals [ ] = {
{ 0 , " The system cannot accept a termination at this time (i.e., cannot accept routing information) " } ,
{ 1 , " The system supports the number of call legs indicated " } ,
{ 2 , " The system supports the number of call legs indicated " } ,
{ 3 , " The system supports the number of call legs indicated " } ,
{ 4 , " The system supports the number of call legs indicated " } ,
{ 5 , " The system supports the number of call legs indicated " } ,
{ 6 , " The system supports the number of call legs indicated " } ,
{ 7 , " The system supports the number of call legs indicated " } ,
{ 8 , " The system supports the number of call legs indicated " } ,
{ 9 , " The system supports the number of call legs indicated " } ,
{ 10 , " The system supports the number of call legs indicated " } ,
{ 11 , " The system supports the number of call legs indicated " } ,
{ 12 , " The system supports the number of call legs indicated " } ,
{ 13 , " The system supports the number of call legs indicated " } ,
{ 14 , " The system supports the number of call legs indicated " } ,
{ 15 , " The system supports the number of call legs indicated " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-03 15:13:26 +00:00
} ;
static const true_false_string ansi_map_trans_cap_tl_bool_val = {
2009-03-15 15:40:55 +00:00
" The system is capable of supporting the TerminationList parameter at the current time " ,
" The system is not capable of supporting the TerminationList parameter at the current time "
2006-01-03 15:13:26 +00:00
} ;
2006-01-12 19:27:56 +00:00
static const true_false_string ansi_map_trans_cap_waddr_bool_val = {
2009-03-15 15:40:55 +00:00
" The system is capable of supporting the TriggerAddressList parameter " ,
" The system is not capable of supporting the TriggerAddressList parameter "
2006-01-12 19:27:56 +00:00
} ;
2006-01-07 13:07:04 +00:00
2006-01-03 15:13:26 +00:00
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_transactioncapability ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-03 15:13:26 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_transactioncapability ) ;
/*NAME Capability Indicator (NAMI) (octet 1, bit H) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_trans_cap_nami , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* NDSS Capability (NDSS) (octet 1, bit G) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_trans_cap_ndss , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* UZ Capability Indicator (UZCI) (octet 1, bit F) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_trans_cap_uzci , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Subscriber PIN Intercept (SPINI) (octet 1, bit E) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_trans_cap_spini , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Remote User Interaction (RUI) (octet 1, bit D) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_trans_cap_rui , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Announcements (ANN) (octet 1, bit C) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_trans_cap_ann , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Busy Detection (BUSY) (octet 1, bit B) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_trans_cap_busy , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Profile (PROF) (octet 1, bit A) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_trans_cap_prof , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* WIN Addressing (WADDR) (octet 2, bit F) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_trans_cap_waddr , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* TerminationList (TL) (octet 2, bit E) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_trans_cap_tl , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Multiple Terminations (octet 2, bits A-D) */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_trans_cap_multerm , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-03 15:13:26 +00:00
}
2006-01-12 19:27:56 +00:00
/* 6.5.2.162 UniqueChallengeReport */
/* Unique Challenge Report (octet 1) */
static const value_string ansi_map_UniqueChallengeReport_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " Unique Challenge not attempted " } ,
{ 2 , " Unique Challenge no response " } ,
{ 3 , " Unique Challenge successful " } ,
{ 4 , " Unique Challenge failed " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* 6.5.2.166 VoicePrivacyMask */
/* 6.5.2.e (TSB76) CDMAServiceConfigurationRecord N.S0008-0 v 1.0 */
/* a. This field carries the CDMA Service Configuration Record. The bit-layout is the
2009-03-15 15:40:55 +00:00
same as that of Service Configuration Record in TSB74 , and J - STD - 008.
2006-01-12 19:27:56 +00:00
*/
2007-01-12 12:05:56 +00:00
/* 6.5.2.f CDMAServiceOption N.S0010-0 v 1.0 */
2008-12-03 06:46:23 +00:00
/* values copied from old ANSI map dissector */
2007-01-12 12:05:56 +00:00
static const range_string cdmaserviceoption_vals [ ] = {
2009-09-06 14:25:47 +00:00
{ 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) " } ,
2009-03-15 15:40:55 +00:00
{ 5 , 5 , " Group 3 Facsimile (9.6 kbps) " } ,
2009-09-06 14:25:47 +00:00
{ 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) " } ,
2009-03-15 15:40:55 +00:00
{ 25 , 25 , " High Speed Packet Data Service: Internet or ISO Protocol Stack (RS2 forward, RS2 reverse) " } ,
2009-09-06 14:25:47 +00:00
{ 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 " } ,
2009-03-15 15:40:55 +00:00
{ 35 , 35 , " Location Services, Rate Set 1 (9.6 kbps) " } ,
2009-09-06 14:25:47 +00:00
{ 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) " } ,
2009-03-15 15:40:55 +00:00
{ 55 , 55 , " Loopback Service Option (LSO) " } ,
2009-09-06 14:25:47 +00:00
{ 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 " } ,
2009-03-15 15:40:55 +00:00
{ 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 " } ,
2009-09-06 14:25:47 +00:00
{ 68 , 68 , " Enhanced Variable Rate Voice Service (EVRC-B) " } ,
2009-03-15 15:40:55 +00:00
{ 69 , 69 , " HRPD Packet Data Service, which when used in paging over the 1x air interface, a page response is required " } ,
2009-09-06 14:25:47 +00:00
{ 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) " } ,
2009-03-15 15:40:55 +00:00
{ 4102 , 4102 , " Reserved for standard service option " } ,
2009-09-06 14:25:47 +00:00
{ 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 " } ,
2009-03-15 15:40:55 +00:00
{ 32836 , 32839 , " NEC America " } ,
{ 32840 , 32843 , " Samsung Electronics " } ,
{ 32844 , 32847 , " Texas Instruments Incorporated " } ,
{ 32848 , 32851 , " Toshiba Corporation " } ,
{ 32852 , 32855 , " LG Electronics Inc. " } ,
{ 32856 , 32859 , " VIA Telecom Inc. " } ,
{ 0 , 0 , NULL }
2007-01-12 12:05:56 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_cdmaserviceoption ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
2007-01-12 12:05:56 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_cdmaserviceoption ) ;
2007-01-12 12:05:56 +00:00
2009-03-15 15:40:55 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_cdmaserviceoption , tvb , offset , 2 , FALSE ) ;
2007-01-12 12:05:56 +00:00
}
2006-01-12 19:27:56 +00:00
/* 6.5.2.f (TSB76) CDMAServiceOption N.S0008-0 v 1.0*/
/* This field carries the CDMA Service Option. The bit-layout is the same as that of
2009-03-15 15:40:55 +00:00
Service Option in TSB74 and J - STD - 008. */
2006-01-12 19:27:56 +00:00
/* 6.5.2.i (IS-730) TDMAServiceCode N.S0008-0 v 1.0 */
2006-01-03 15:13:26 +00:00
static const value_string ansi_map_TDMAServiceCode_vals [ ] = {
{ 0 , " Analog Speech Only " } ,
{ 1 , " Digital Speech Only " } ,
{ 2 , " Analog or Digital Speech, Analog Preferred " } ,
{ 3 , " Analog or Digital Speech, Digital Preferred " } ,
{ 4 , " Asynchronous Data " } ,
{ 5 , " G3 Fax " } ,
{ 6 , " Not Used (Service Rejected) " } ,
{ 7 , " STU-III " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-03 15:13:26 +00:00
} ;
2006-01-12 19:27:56 +00:00
/* 6.5.2.j (IS-730) TDMATerminalCapability N.S0008-0 v 1.0 Updted with N.S0015-0 */
/* Supported Frequency Band (octet 1) */
/* Voice Coder (octet 2) */
/* Protocol Version (octet 3) N.S0015-0 */
static const value_string ansi_map_TDMATerminalCapability_prot_ver_vals [ ] = {
{ 0 , " EIA-553 or IS-54-A " } ,
{ 1 , " TIA/EIA-627.(IS-54-B) " } ,
{ 2 , " IS-136 " } ,
{ 3 , " Permanently Reserved (ANSI J-STD-011).Treat the same as value 4, IS-136-A. " } ,
{ 4 , " PV 0 as published in TIA/EIA-136-0 and IS-136-A. " } ,
{ 5 , " PV 1 as published in TIA/EIA-136-A. " } ,
{ 6 , " PV 2 as published in TIA/EIA-136-A. " } ,
{ 7 , " PV 3 as published in TIA/EIA-136-A. " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* Asynchronous Data (ADS) (octet 4, bit A) N.S0007-0*/
/* Group 3 Fax (G3FAX) (octet 4, bit B) */
/* Secure Telephone Unit III (STU3) (octet 4, bit C) */
/* Analog Voice (AVOX) (octet 4, bit D) */
/* Half Rate (HRATE) (octet 4, bit E) */
/* Full Rate (FRATE) (octet 4, bit F) */
/* Double Rate (2RATE) (octet 4, bit G) */
/* Triple Rate (3RATE) (octet 4, bit H) */
/* 6.5.2.k (IS-730)) TDMAVoiceCoder N.S0008-0 v 1.0, N.S0007-0 */
/* VoiceCoder (octet 1) */
/* 6.5.2.p UserZoneData N.S0015-0 */
/* 6.5.2.aa BaseStationManufacturerCode N.S0007-0 v 1.0 */
/* The BaseStationManufacturerCode (BSMC) parameter specifies the manufacturer of the
2009-03-15 15:40:55 +00:00
base station that is currently serving the MS ( see IS - 136 for enumeration of values ) . */
2006-01-12 19:27:56 +00:00
/* 6.5.2.ab BSMCStatus */
2005-12-28 21:32:41 +00:00
2006-01-12 19:27:56 +00:00
/* BSMC Status (octet 1) */
static const value_string ansi_map_BSMCStatus_vals [ ] = {
{ 0 , " Same BSMC Value shall not be supported " } ,
{ 1 , " Same BSMC Value shall be supported " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/*- 6.5.2.ac ControlChannelMode (N.S0007-0 v 1.0)*/
2005-12-28 21:32:41 +00:00
static const value_string ansi_map_ControlChannelMode_vals [ ] = {
{ 0 , " Unknown " } ,
{ 1 , " MS is in Analog CC Mode " } ,
{ 2 , " MS is in Digital CC Mode " } ,
{ 3 , " MS is in NAMPS CC Mode " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2005-12-28 21:32:41 +00:00
} ;
2006-01-12 19:27:56 +00:00
/* 6.5.2.ad NonPublicData N.S0007-0 v 1.0*/
/* NP Only Service (NPOS) (octet 1, bits A and B) */
/* Charging Area Tone Service (CATS) (octet 1, bits C - F) */
/* PSID/RSID Download Order (PRDO) (octet 1, bits G and H) */
/* 6.5.2.ae PagingFrameClass N.S0007-0 v 1.0*/
/* Paging Frame Class (octet 1) */
static const value_string ansi_map_PagingFrameClass_vals [ ] = {
{ 0 , " PagingFrameClass 1 (1.28 seconds) " } ,
{ 1 , " PagingFrameClass 2 (2.56 seconds) " } ,
{ 2 , " PagingFrameClass 3 (3.84 seconds) " } ,
{ 3 , " PagingFrameClass 4 (7.68 seconds) " } ,
{ 4 , " PagingFrameClass 5 (15.36 seconds) " } ,
{ 5 , " PagingFrameClass 6 (30.72 seconds) " } ,
{ 6 , " PagingFrameClass 7 (61.44 seconds) " } ,
{ 7 , " PagingFrameClass 8 (122.88 seconds) " } ,
{ 8 , " Reserved. Treat the same as value 0, PagingFrameClass 1 " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* 6.5.2.af PSID_RSIDInformation N.S0007-0 v 1.0*/
/* PSID/RSID Indicator (octet 1, bit A) */
/* PSID/RSID Type (octet 1, bits B-D) */
/* 6.5.2.ah ServicesResult N.S0007-0 v 1.0*/
/* PSID/RSID Download Result (PRDR) (octet 1, bits A and B) */
static const value_string ansi_map_ServicesResult_ppr_vals [ ] = {
{ 0 , " No Indication " } ,
{ 1 , " Unsuccessful PSID/RSID download " } ,
{ 2 , " Successful PSID/RSID download " } ,
{ 3 , " Reserved. Treat the same as value 0, No Indication " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* 6.5.2.ai SOCStatus N.S0007-0 v 1.0*/
/* SOC Status (octet 1) */
static const value_string ansi_map_SOCStatus_vals [ ] = {
{ 0 , " Same SOC Value shall not be supported " } ,
{ 1 , " Same SOC Value shall be supported " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* 6.5.2.aj SystemOperatorCode N.S0007-0 v 1.0*/
/* The SystemOperatorCode (SOC) parameter specifies the system operator that is currently
2009-03-15 15:40:55 +00:00
providing service to a MS ( see IS - 136 for enumeration of values ) */
2006-01-12 19:27:56 +00:00
/* 6.5.2.al UserGroup N.S0007-0 v 1.0*/
/* 6.5.2.am UserZoneData N.S0007-0 v 1.0*/
/*Table 6.5.2.ay TDMABandwidth value N.S0008-0 v 1.0 */
2006-01-03 15:13:26 +00:00
static const value_string ansi_map_TDMABandwidth_vals [ ] = {
{ 0 , " Half-Rate Digital Traffic Channel Only " } ,
{ 1 , " Full-Rate Digital Traffic Channel Only " } ,
{ 2 , " Half-Rate or Full-rate Digital Traffic Channel - Full-Rate Preferred " } ,
{ 3 , " Half-rate or Full-rate Digital Traffic Channel - Half-rate Preferred " } ,
{ 4 , " Double Full-Rate Digital Traffic Channel Only " } ,
{ 5 , " Triple Full-Rate Digital Traffic Channel Only " } ,
{ 6 , " Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only " } ,
{ 7 , " Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only " } ,
{ 8 , " Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only " } ,
{ 9 , " Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only " } ,
{ 10 , " Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only " } ,
{ 11 , " Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only " } ,
{ 12 , " Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only " } ,
{ 13 , " Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only " } ,
{ 14 , " Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only " } ,
{ 15 , " Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-03 15:13:26 +00:00
} ;
2006-01-12 19:27:56 +00:00
/* 6.5.2.az TDMADataFeaturesIndicator N.S0008-0 v 1.0 */
2009-09-06 14:25:47 +00:00
/* TDMADataFeaturesIndicator
2009-03-15 15:40:55 +00:00
ansi_map_FeatureActivity_vals
ADS FeatureActivity ADS - FA ( octet 1 bit A and B )
G3 Fax FeatureActivity G3FAX - FA ( octet 1 bit C and D )
STU - III FeatureActivity STUIII - FA ( octet 1 bit E and F )
Half Rate data FeatureActivity HRATE - FA ( octet 2 bit A and B )
Full Rate data FeatureActivity FRATE - FA ( octet 2 bit C and D )
Double Rate data FeatureActivity 2 RATE - FA ( octet 2 bit E and F )
Triple Rate data FeatureActivity 3 RATE - FA ( octet g bit G and H )
Table 6.5 .2 . azt TDMADataFeaturesIndicator value
static const value_string ansi_map_TDMADataFeaturesIndicator_vals [ ] = {
{ 0 , " Not Used " } ,
{ 1 , " Not Authorized " } ,
{ 2 , " Authorized, but de-activated " } ,
{ 3 , " Authorized and activated " } ,
{ 0 , NULL }
} ;
2006-01-12 19:27:56 +00:00
*/
2007-01-04 07:51:26 +00:00
/* 6.5.2.ba TDMADataMode N.S0008-0 v 1.0*/
2006-01-12 19:27:56 +00:00
/* 6.5.2.bb TDMAVoiceMode */
/* 6.5.2.bb CDMAConnectionReference N.S0008-0 v 1.0 */
/* Service Option Connection Reference Octet 1 */
2009-03-15 15:40:55 +00:00
/* a. This field carries the CDMA Service Option Connection Reference. The bitlayout
is the same as that of Service Option Connection Reference in TSB74 and
J - STD - 008.
2006-01-12 19:27:56 +00:00
*/
/* 6.5.2.ad CDMAState N.S0008-0 v 1.0 */
/* Service Option State Octet 1 */
/* a. This field carries the CDMA Service Option State information. The CDMA
2009-03-15 15:40:55 +00:00
Service Option State is defined in the current CDMA Service Options standard .
If CDMA Service Option State is not explicitly defined within a section of the
relevant CDMA Service Option standard , the CDMA Service Option State shall
carry the value of the ORD_Q octet of all current Service Option Control Orders
( see IS - 95 ) , or the contents of all current CDMA Service Option Control
Messages ( see TSB74 ) type specific field for this connection reference . */
2006-01-12 19:27:56 +00:00
/* 6.5.2.aj SecondInterMSCCircuitID */
/* -- XXX Same code as ISLPinformation???
2009-03-15 15:40:55 +00:00
dissect_ansi_map_secondintermsccircuitid ( tvbuff_t * tvb , packet_info * pinfo , proto_tree * tree ) {
int offset = 0 ;
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_billingid ) ;
/ Trunk Group Number ( G ) Octet 1 /
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_tgn , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/ Trunk Member Number ( M ) Octet2 /
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_tmn , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
}
2006-01-12 19:27:56 +00:00
*/
/* 6.5.2.as ChangeServiceAttributes N.S0008-0 v 1.0 */
/* Change Facilities Flag (CHGFAC)(octet 1, bits A - B) */
static const value_string ansi_map_ChangeServiceAttributes_chgfac_vals [ ] = {
{ 0 , " Change Facilities Operation Requested " } ,
{ 1 , " Change Facilities Operation Not Requested " } ,
{ 2 , " Change Facilities Operation Used " } ,
{ 3 , " Change Facilities Operation Not Used " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* Service Negotiate Flag (SRVNEG)(octet 1, bits C - D) */
static const value_string ansi_map_ChangeServiceAttributes_srvneg_vals [ ] = {
{ 0 , " Service Negotiation Used " } ,
{ 1 , " Service Negotiation Not Used " } ,
{ 2 , " Service Negotiation Required " } ,
{ 3 , " Service Negotiation Not Required " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* 6.5.2.au DataPrivacyParameters N.S0008-0 v 1.0*/
/* Privacy Mode (PM) (octet 1, Bits A and B) */
static const value_string ansi_map_DataPrivacyParameters_pm_vals [ ] = {
{ 0 , " Privacy inactive or not supported " } ,
{ 1 , " Privacy Requested or Acknowledged " } ,
{ 2 , " Reserved. Treat reserved values the same as value 0, Privacy inactive or not supported. " } ,
{ 3 , " Reserved. Treat reserved values the same as value 0, Privacy inactive or not supported. " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* Data Privacy Version (PM) (octet 2) */
static const value_string ansi_map_DataPrivacyParameters_data_priv_ver_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " Data Privacy Version 1 " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* 6.5.2.av ISLPInformation N.S0008-0 v 1.0*/
/* ISLP Type (octet 1) */
static const value_string ansi_map_islp_type_vals [ ] = {
{ 0 , " No ISLP supported " } ,
{ 1 , " ISLP supported " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* 6.5.2.bc AnalogRedirectInfo */
/* Sys Ordering (octet 1, bits A-E) */
/* Ignore CDMA (IC) (octet 1, bit F) */
/* 6.5.2.be CDMAChannelNumber N.S0010-0 v 1.0*/
/* 6.5.2.bg CDMAPowerCombinedIndicator N.S0010-0 v 1.0*/
/* 6.5.2.bi CDMASearchParameters N.S0010-0 v 1.0*/
/* 6.5.2.bk CDMANetworkIdentification N.S0010-0 v 1.0*/
/* See CDMA [J-STD-008] for encoding of this field. */
/* 6.5.2.bo RequiredParametersMask N.S0010-0 v 1.0 */
/* 6.5.2.bp ServiceRedirectionCause */
static const value_string ansi_map_ServiceRedirectionCause_type_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " NormalRegistration " } ,
{ 2 , " SystemNotFound. " } ,
{ 3 , " ProtocolMismatch. " } ,
{ 4 , " RegistrationRejection. " } ,
{ 5 , " WrongSID. " } ,
{ 6 , " WrongNID.. " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* 6.5.2.bq ServiceRedirectionInfo N.S0010-0 v 1.0 */
/* 6.5.2.br RoamingIndication N.S0010-0 v 1.0*/
/* See CDMA [TSB58] for the definition of this field. */
2006-01-03 15:13:26 +00:00
/* 6.5.2.bw CallingPartyName N.S0012-0 v 1.0*/
/* Presentation Status (octet 1, bits A and B) */
static const value_string ansi_map_Presentation_Status_vals [ ] = {
{ 0 , " Presentation allowed " } ,
{ 1 , " Presentation restricted " } ,
{ 2 , " Blocking toggle " } ,
{ 3 , " No indication " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-03 15:13:26 +00:00
} ;
/* Availability (octet 1, bit E) N.S0012-0 v 1.0*/
static const true_false_string ansi_map_Availability_bool_val = {
2009-03-15 15:40:55 +00:00
" Name not available " ,
" Name available/unknown "
2006-01-03 15:13:26 +00:00
} ;
2006-01-12 19:27:56 +00:00
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_callingpartyname ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
proto_tree * subtree ;
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
subtree = proto_item_add_subtree ( actx - > created_item , ett_callingpartyname ) ;
/* Availability (octet 1, bit E) N.S0012-0 v 1.0*/
/* Presentation Status (octet 1, bits A and B) */
2006-01-12 19:27:56 +00:00
}
2006-01-03 15:13:26 +00:00
/* 6.5.2.bx DisplayText N.S0012-0 v 1.0*/
/* a. Refer to ANSI T1.610 for field encoding. */
/* 6.5.2.bz ServiceID
2009-03-15 15:40:55 +00:00
Service Identifier ( octets 1 to n )
0 Not used .
1 Calling Name Presentation - No RND .
2 Calling Name Presentation with RND .
*/
2006-01-03 15:13:26 +00:00
2006-01-12 19:27:56 +00:00
/* 6.5.2.co GlobalTitle N.S0013-0 v 1.0
* Refer to Section 3 of ANSI T1 .112 for the encoding of this field .
*/
/* Address Indicator octet 1 */
/* Global Title Octet 2 - n */
2006-01-03 15:13:26 +00:00
2006-01-12 19:27:56 +00:00
/* 6.5.2.dc SpecializedResource N.S0013-0 v 1.0*/
/* Resource Type (octet 1) */
static const value_string ansi_map_resource_type_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " DTMF tone detector " } ,
{ 2 , " Automatic Speech Recognition - Speaker Independent - Digits " } ,
{ 3 , " Automatic Speech Recognition - Speaker Independent - Speech User Interface Version 1 " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* 6.5.2.df TriggerCapability */
/* Updated with N.S0004 N.S0013-0 v 1.0*/
2006-01-03 15:13:26 +00:00
static const true_false_string ansi_map_triggercapability_bool_val = {
2009-03-15 15:40:55 +00:00
" triggers can be armed by the TriggerAddressList parameter " ,
" triggers cannot be armed by the TriggerAddressList parameter "
2006-01-03 15:13:26 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_triggercapability ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-03 15:13:26 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_triggercapability ) ;
/* O_No_Answer (ONA) (octet 1, bit H)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_ona , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* O_Disconnect (ODISC) (octet 1, bit G)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_odisc , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* O_Answer (OANS) (octet 1, bit F)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_oans , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Origination_Attempt_Authorized (OAA) (octet 1, bit E)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_oaa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Revertive_Call (RvtC) (octet 1, bit D)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_rvtc , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* All_Calls (All) (octet 1, bit C)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_all , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* K-digit (K-digit) (octet 1, bit B)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_kdigit , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Introducing Star/Pound (INIT) (octet 1, bit A) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_init , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* O_Called_Party_Busy (OBSY) (octet 2, bit H)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_obsy , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Called_Routing_Address_Available (CdRAA) (octet 2, bit G)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_cdraa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Initial_Termination (IT) (octet 2, bit F)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_it , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Calling_Routing_Address_Available (CgRAA)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_cgraa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Advanced_Termination (AT) (octet 2, bit D)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_at , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Prior_Agreement (PA) (octet 2, bit C)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_pa , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Unrecognized_Number (Unrec) (octet 2, bit B)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_unrec , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Call Types (CT) (octet 2, bit A)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_ct , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
/* */
/* */
/* */
/* T_Disconnect (TDISC) (octet 3, bit E)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_tdisc , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* T_Answer (TANS) (octet 3, bit D)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_tans , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* T_No_Answer (TNA) (octet 3, bit C)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_tna , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* T_Busy (TBusy) (octet 3, bit B)*/
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_tbusy , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* Terminating_Resource_Available (TRA) (octet 3, bit A) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_triggercapability_tra , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-07 13:07:04 +00:00
}
2006-01-12 19:27:56 +00:00
/* 6.5.2.ei DMH_ServiceID N.S0018 */
2006-01-07 13:07:04 +00:00
/* 6.5.2.dj WINOperationsCapability */
2006-01-12 19:27:56 +00:00
/* Updated with N.S0004 */
2006-01-07 13:07:04 +00:00
/* ConnectResource (CONN) (octet 1, bit A) */
static const true_false_string ansi_map_winoperationscapability_conn_bool_val = {
2009-03-15 15:40:55 +00:00
" Sender is capable of supporting the ConnectResource, DisconnectResource, ConnectionFailureReport and ResetTimer (SSFT timer) operations " ,
" Sender is not capable of supporting the ConnectResource, DisconnectResource,ConnectionFailureReport and ResetTimer (SSFT timer) operations "
2006-01-07 13:07:04 +00:00
} ;
/* CallControlDirective (CCDIR) (octet 1, bit B) */
static const true_false_string ansi_map_winoperationscapability_ccdir_bool_val = {
2009-03-15 15:40:55 +00:00
" Sender is capable of supporting the CallControlDirective operation " ,
" Sender is not capable of supporting the CallControlDirective operation "
2006-01-07 13:07:04 +00:00
} ;
/* PositionRequest (POS) (octet 1, bit C) */
static const true_false_string ansi_map_winoperationscapability_pos_bool_val = {
2009-03-15 15:40:55 +00:00
" Sender is capable of supporting the PositionRequest operation " ,
" Sender is not capable of supporting the PositionRequest operation "
2006-01-07 13:07:04 +00:00
} ;
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_winoperationscapability ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_winoperationscapability ) ;
2006-01-07 13:07:04 +00:00
2009-03-15 15:40:55 +00:00
/* PositionRequest (POS) (octet 1, bit C) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_winoperationscapability_pos , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* CallControlDirective (CCDIR) (octet 1, bit B) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_winoperationscapability_ccdir , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
/* ConnectResource (CONN) (octet 1, bit A) */
2011-10-10 01:38:20 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_winoperationscapability_conn , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2006-01-03 15:13:26 +00:00
}
2007-09-06 16:27:17 +00:00
/*
* 6.5 .2 . dk N . S0013 - 0 v 1.0 , X . S0004 - 550 - E v1 .0 2.301
* Code to be found after include functions .
*/
2006-01-07 13:07:04 +00:00
2007-01-13 23:02:06 +00:00
/* 6.5.2.ei TIA/EIA-41.5-D Modifications N.S0018Re */
/* Octet 1,2 1st MarketID */
/* Octet 3 1st MarketSegmentID */
/* Octet 4,5 1st DMH_ServiceID value */
/* Second marcet ID etc */
2006-01-12 19:27:56 +00:00
/* 6.5.2.ek ControlNetworkID N.S0018*/
static void
2007-09-06 16:27:17 +00:00
dissect_ansi_map_controlnetworkid ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2006-01-12 19:27:56 +00:00
2009-03-15 15:40:55 +00:00
int offset = 0 ;
proto_tree * subtree ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_controlnetworkid ) ;
/* MarketID octet 1 and 2 */
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_MarketID , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset = offset + 2 ;
/* Switch Number octet 3*/
2011-10-06 16:50:13 +00:00
proto_tree_add_item ( subtree , hf_ansi_map_swno , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2009-03-15 15:40:55 +00:00
offset + + ;
2006-01-12 19:27:56 +00:00
}
/* 6.5.2.dk WIN_TriggerList N.S0013-0 v 1.0 */
/* 6.5.2.ec DisplayText2 Updated in N.S0015-0*/
/* 6.5.2.eq MSStatus N.S0004 */
/* 6.5.2.er PositionInformationCode N.S0004 */
/* 6.5.2.fd InterMessageTime N.S0015-0*/
/* Timer value (in 10s of seconds) octet 1 */
/* 6.5.2.fe MSIDUsage N.S0015-0 */
/* M and I Report (octet 1, bits A and B) */
static const value_string ansi_MSIDUsage_m_or_i_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " MIN last used " } ,
{ 2 , " IMSI last used " } ,
{ 3 , " Reserved " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* 6.5.2.ff NewMINExtension N.S0015-0 */
/* 6.5.2.fv ACGEncountered N.S0023-0 v 1.0 */
/* ACG Encountered (octet 1, bits A-F) */
static const value_string ansi_ACGEncountered_vals [ ] = {
{ 0 , " PC_SSN " } ,
{ 1 , " 1-digit control " } ,
{ 2 , " 2-digit control " } ,
{ 3 , " 3-digit control " } ,
{ 4 , " 4-digit control " } ,
{ 5 , " 5-digit control " } ,
{ 6 , " 6-digit control " } ,
{ 7 , " 7-digit control " } ,
{ 8 , " 8-digit control " } ,
{ 9 , " 9-digit control " } ,
{ 10 , " 10-digit control " } ,
{ 11 , " 11-digit control " } ,
{ 12 , " 12-digit control " } ,
{ 13 , " 13-digit control " } ,
{ 14 , " 14-digit control " } ,
{ 15 , " 15-digit control " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* Control Type (octet 1, bits G-H) */
static const value_string ansi_ACGEncountered_cntrl_type_vals [ ] = {
{ 0 , " Not used. " } ,
{ 1 , " Service Management System Initiated control encountered " } ,
{ 2 , " SCF Overload control encountered " } ,
{ 3 , " Reserved. Treat the same as value 0, Not used. " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
2007-02-07 02:41:10 +00:00
/* 6.5.2.fw ControlType N.S0023-0 v 1.0 */
2006-01-12 19:27:56 +00:00
/* 6.5.2.ge QoSPriority N.S0029-0 v1.0*/
/* 6.5.2.xx QOSPriority */
/* Non-Assured Priority (octet 1, bits A-D) */
static const value_string ansi_map_Priority_vals [ ] = {
{ 0 , " Priority Level 0. This is the lowest level " } ,
{ 1 , " Priority Level 1 " } ,
{ 2 , " Priority Level 2 " } ,
{ 3 , " Priority Level 3 " } ,
{ 4 , " Priority Level 4 " } ,
{ 5 , " Priority Level 5 " } ,
{ 6 , " Priority Level 6 " } ,
{ 7 , " Priority Level 7 " } ,
{ 8 , " Priority Level 8 " } ,
{ 8 , " Priority Level 9 " } ,
{ 10 , " Priority Level 10 " } ,
{ 11 , " Priority Level 11 " } ,
{ 12 , " Priority Level 12 " } ,
{ 13 , " Priority Level 13 " } ,
{ 14 , " Reserved " } ,
{ 15 , " Reserved " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
/* Assured Priority (octet 1, bits E-H)*/
/* 6.5.2.gf PDSNAddress N.S0029-0 v1.0*/
/* a. See IOS Handoff Request message for the definition of this field. */
/* 6.5.2.gg PDSNProtocolType N.S0029-0 v1.0*/
/* See IOS Handoff Request message for the definition of this field. */
/* 6.5.2.gh CDMAMSMeasuredChannelIdentity N.S0029-0 v1.0*/
/* 6.5.2.gl CallingPartyCategory N.S0027*/
/* a. Refer to ITU-T Q.763 (Signalling System No. 7 ISDN user part formats and
2009-03-15 15:40:55 +00:00
codes ) for encoding of this parameter .
b . Refer to national ISDN user part specifications for definitions and encoding of the
reserved for national use values .
2006-01-12 19:27:56 +00:00
*/
/* 6.5.2.gm CDMA2000HandoffInvokeIOSData N.S0029-0 v1.0*/
/* IOS A1 Element Handoff Invoke Information */
/* 6.5.2.gn CDMA2000HandoffResponseIOSData */
/* IOS A1 Element Handoff Response Information N.S0029-0 v1.0*/
/* 6.5.2.gr CDMAServiceOptionConnectionIdentifier N.S0029-0 v1.0*/
2007-06-18 19:20:52 +00:00
/* 6.5.2.fk GeographicPosition */
/* Calling Geodetic Location (CGL)
* a . See T1 .628 for encoding .
* b . Ignore extra octets , if received . Send only defined ( or significant ) octets .
*/
/* 6.5.2.fs PositionRequestType (See J-STD-036, page 8-47) X.S0002-0 v2.0
*/
/* Position Request Type (octet 1, bits A-H) */
/*
2009-03-15 15:40:55 +00:00
static const value_string ansi_map_Position_Request_Type_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " Initial Position " } ,
{ 2 , " Return the updated position " } ,
{ 3 , " Return the updated or last known position " } ,
{ 4 , " Reserved for LSP interface " } ,
{ 5 , " Initial Position Only " } ,
{ 6 , " Return the last known position " } ,
{ 7 , " Return the updated position based on the serving cell identity " } ,
2007-06-18 19:20:52 +00:00
*/
/*
2009-03-15 15:40:55 +00:00
values through 95 Reserved . Treat the same as value 1 , Initial position .
96 through 255 Reserved for TIA / EIA - 41 protocol extension . If unknown , treat the
same as value 1 , Initial position .
*
{ 0 , NULL }
} ;
2006-01-12 19:27:56 +00:00
2007-06-18 19:20:52 +00:00
*/
2006-01-12 19:27:56 +00:00
2007-06-18 19:20:52 +00:00
/* LCS Client Type (CTYP) (octet 2, bit A) *
2009-03-15 15:40:55 +00:00
0 Emergency services LCS Client .
1 Non - emergency services LCS Client .
Call - Related Indicator ( CALL ) ( octet 2 , bit B )
Decimal Value Meaning
0 Call - related LCS Client request .
1 Non call - related LCS Client request .
Current Serving Cell Information for Coarse Position Determination ( CELL ) ( octet 2 , bit C )
Decimal Value Meaning
0 No specific request .
1 Current serving cell information . Current serving cell information for
Target MS requested . Radio contact with Target MS is required .
2007-06-18 19:20:52 +00:00
*/
/* 6.5.2.ft PositionResult *
2009-03-15 15:40:55 +00:00
static const value_string ansi_map_PositionResult_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " Initial position returned " } ,
{ 2 , " Updated position returned " } ,
{ 3 , " Last known position returned " } ,
{ 4 , " Requested position is not available " } ,
{ 5 , " Target MS disconnect " } ,
{ 6 , " Target MS has handed-off " } ,
{ 7 , " Identified MS is inactive or has roamed to another system " } ,
{ 8 , " Unresponsive " } ,
{ 9 , " Identified MS is responsive, but refused position request " } ,
{ 10 , " System Failure " } ,
{ 11 , " MSID is not known " } ,
{ 12 , " Callback number is not known " } ,
{ 13 , " Improper request " } ,
{ 14 , " Mobile information returned " } ,
{ 15 , " Signal not detected " } ,
{ 16 , " PDE Timeout " } ,
{ 17 , " Position pending " } ,
{ 18 , " TDMA MAHO Information Returned " } ,
{ 19 , " TDMA MAHO Information is not available " } ,
{ 20 , " Access Denied " } ,
{ 21 , " Requested PQOS not met " } ,
{ 22 , " Resource required for CDMA handset-based position determination is currently unavailable " } ,
{ 23 , " CDMA handset-based position determination failure " } ,
{ 24 , " CDMA handset-based position determination failure detected by the PDE " } ,
{ 25 , " CDMA handset-based position determination incomplete traffic channel requested for voice services " } ,
{ 26 , " Emergency services call notification " } ,
{ 27 , " Emergency services call precedence " } ,
{ 28 , " Request acknowledged " } ,
{ 0 , NULL }
} ;
2007-06-18 19:20:52 +00:00
*/
2005-12-28 21:32:41 +00:00
/* 6.5.2.bp-1 ServiceRedirectionCause value */
static const value_string ansi_map_ServiceRedirectionCause_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " NormalRegistration " } ,
{ 2 , " SystemNotFound " } ,
{ 3 , " ProtocolMismatch " } ,
{ 4 , " RegistrationRejection " } ,
{ 5 , " WrongSID " } ,
{ 6 , " WrongNID " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2005-12-28 21:32:41 +00:00
} ;
2006-01-12 19:27:56 +00:00
/* 6.5.2.mT AuthenticationResponseReauthentication N.S0011-0 v 1.0*/
/* 6.5.2.vT ReauthenticationReport N.S0011-0 v 1.0*/
static const value_string ansi_map_ReauthenticationReport_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " Reauthentication not attempted " } ,
{ 2 , " Reauthentication no response " } ,
{ 3 , " Reauthentication successful " } ,
2008-12-18 19:08:49 +00:00
{ 4 , " Reauthentication failed " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-12 19:27:56 +00:00
} ;
2006-01-03 15:13:26 +00:00
/* 6.5.2.lB AKeyProtocolVersion
2009-03-15 15:40:55 +00:00
N . S0011 - 0 v 1.0
*/
2006-01-03 15:13:26 +00:00
static const value_string ansi_map_AKeyProtocolVersion_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " A-key Generation not supported " } ,
{ 2 , " Diffie Hellman with 768-bit modulus, 160-bit primitive, and 160-bit exponents " } ,
{ 3 , " Diffie Hellman with 512-bit modulus, 160-bit primitive, and 160-bit exponents " } ,
{ 4 , " Diffie Hellman with 768-bit modulus, 32-bit primitive, and 160-bit exponents " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-03 15:13:26 +00:00
} ;
/* 6.5.2.sB OTASP_ResultCode
2009-03-15 15:40:55 +00:00
N . S0011 - 0 v 1.0
*/
2006-01-03 15:13:26 +00:00
static const value_string ansi_map_OTASP_ResultCode_vals [ ] = {
{ 0 , " Accepted - Successful " } ,
{ 1 , " Rejected - Unknown cause. " } ,
{ 2 , " Computation Failure - E.g., unable to compute A-key " } ,
{ 3 , " CSC Rejected - CSC challenge failure " } ,
{ 4 , " Unrecognized OTASPCallEntry " } ,
{ 5 , " Unsupported AKeyProtocolVersion(s) " } ,
{ 6 , " Unable to Commit " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-03 15:13:26 +00:00
} ;
/*6.5.2.wB ServiceIndicator
2009-03-15 15:40:55 +00:00
N . S0011 - 0 v 1.0
*/
2006-01-03 15:13:26 +00:00
static const value_string ansi_map_ServiceIndicator_vals [ ] = {
{ 0 , " Undefined Service " } ,
{ 1 , " CDMA OTASP Service " } ,
{ 2 , " TDMA OTASP Service " } ,
{ 3 , " CDMA OTAPA Service " } ,
2007-06-18 19:20:52 +00:00
{ 4 , " CDMA Position Determination Service (Emergency Services) " } ,
{ 5 , " AMPS Position Determination Service (Emergency Services) " } ,
{ 6 , " CDMA Position Determination Service (Value Added Services) " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-03 15:13:26 +00:00
} ;
/* 6.5.2.xB SignalingMessageEncryptionReport
2009-03-15 15:40:55 +00:00
N . S0011 - 0 v 1.0
*/
2006-01-03 15:13:26 +00:00
static const value_string ansi_map_SMEReport_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " Signaling Message Encryption enabling not attempted " } ,
{ 2 , " Signaling Message Encryption enabling no response " } ,
{ 3 , " Signaling Message Encryption is enabled " } ,
{ 4 , " Signaling Message Encryption enabling failed " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-03 15:13:26 +00:00
} ;
/* 6.5.2.zB VoicePrivacyReport
2009-03-15 15:40:55 +00:00
N . S0011 - 0 v 1.0
*/
2006-01-03 15:13:26 +00:00
static const value_string ansi_map_VoicePrivacyReport_vals [ ] = {
{ 0 , " Not used " } ,
{ 1 , " Voice Privacy not attempted " } ,
{ 2 , " Voice Privacy no response " } ,
2008-12-18 19:08:49 +00:00
{ 3 , " Voice Privacy is active " } ,
2006-01-03 15:13:26 +00:00
{ 4 , " Voice Privacy failed " } ,
2009-03-15 15:40:55 +00:00
{ 0 , NULL }
2006-01-03 15:13:26 +00:00
} ;
2005-12-18 18:17:29 +00:00
# include "packet-ansi_map-fn.c"
2007-09-06 16:27:17 +00:00
/*
* 6.5 .2 . dk N . S0013 - 0 v 1.0 , X . S0004 - 550 - E v1 .0 2.301
*/
static void
dissect_ansi_map_win_trigger_list ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree _U_ , asn1_ctx_t * actx _U_ ) {
2009-03-15 15:40:55 +00:00
int offset = 0 ;
int end_offset = 0 ;
int j = 0 ;
proto_tree * subtree ;
guint8 octet ;
end_offset = tvb_length_remaining ( tvb , offset ) ;
subtree = proto_item_add_subtree ( actx - > created_item , ett_win_trigger_list ) ;
while ( offset < end_offset ) {
octet = tvb_get_guint8 ( tvb , offset ) ;
switch ( octet ) {
case 0xdc :
proto_tree_add_text ( subtree , tvb , offset , 1 , " TDP-R's armed " ) ;
j = 0 ;
break ;
case 0xdd :
proto_tree_add_text ( subtree , tvb , offset , 1 , " TDP-N's armed " ) ;
j = 0 ;
break ;
case 0xde :
proto_tree_add_text ( subtree , tvb , offset , 1 , " EDP-R's armed " ) ;
j = 0 ;
break ;
case 0xdf :
proto_tree_add_text ( subtree , tvb , offset , 1 , " EDP-N's armed " ) ;
j = 0 ;
break ;
default :
2010-11-16 15:20:33 +00:00
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) " ) ) ;
2009-03-15 15:40:55 +00:00
j + + ;
break ;
}
offset + + ;
}
2007-09-06 16:27:17 +00:00
}
2007-09-12 16:45:53 +00:00
2007-05-13 20:58:29 +00:00
static int dissect_invokeData ( proto_tree * tree , tvbuff_t * tvb , int offset , asn1_ctx_t * actx ) {
2009-11-19 21:44:28 +00:00
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 ] ;
2007-01-05 07:32:39 +00:00
2009-03-15 15:40:55 +00:00
switch ( OperationCode ) {
case 1 : /*Handoff Measurement Request*/
offset = dissect_ansi_map_HandoffMeasurementRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_handoffMeasurementRequest ) ;
break ;
case 2 : /*Facilities Directive*/
offset = dissect_ansi_map_FacilitiesDirective ( TRUE , tvb , offset , actx , tree , hf_ansi_map_facilitiesDirective ) ;
break ;
case 3 : /*Mobile On Channel*/
2009-11-17 20:48:04 +00:00
proto_tree_add_text ( tree , tvb , offset , - 1 , " [Carries no data] " ) ;
2009-03-15 15:40:55 +00:00
break ;
case 4 : /*Handoff Back*/
offset = dissect_ansi_map_HandoffBack ( TRUE , tvb , offset , actx , tree , hf_ansi_map_handoffBack ) ;
break ;
case 5 : /*Facilities Release*/
offset = dissect_ansi_map_FacilitiesRelease ( TRUE , tvb , offset , actx , tree , hf_ansi_map_facilitiesRelease ) ;
break ;
case 6 : /*Qualification Request*/
offset = dissect_ansi_map_QualificationRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_qualificationRequest ) ;
break ;
case 7 : /*Qualification Directive*/
offset = dissect_ansi_map_QualificationDirective ( TRUE , tvb , offset , actx , tree , hf_ansi_map_qualificationDirective ) ;
break ;
case 8 : /*Blocking*/
offset = dissect_ansi_map_Blocking ( TRUE , tvb , offset , actx , tree , hf_ansi_map_blocking ) ;
break ;
case 9 : /*Unblocking*/
offset = dissect_ansi_map_Unblocking ( TRUE , tvb , offset , actx , tree , hf_ansi_map_unblocking ) ;
break ;
case 10 : /*Reset Circuit*/
offset = dissect_ansi_map_ResetCircuit ( TRUE , tvb , offset , actx , tree , hf_ansi_map_resetCircuit ) ;
break ;
case 11 : /*Trunk Test*/
offset = dissect_ansi_map_TrunkTest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_trunkTest ) ;
break ;
case 12 : /*Trunk Test Disconnect*/
offset = dissect_ansi_map_TrunkTestDisconnect ( TRUE , tvb , offset , actx , tree , hf_ansi_map_trunkTestDisconnect ) ;
break ;
case 13 : /*Registration Notification*/
offset = dissect_ansi_map_RegistrationNotification ( TRUE , tvb , offset , actx , tree , hf_ansi_map_registrationNotification ) ;
break ;
case 14 : /*Registration Cancellation*/
offset = dissect_ansi_map_RegistrationCancellation ( TRUE , tvb , offset , actx , tree , hf_ansi_map_registrationCancellation ) ;
break ;
case 15 : /*Location Request*/
offset = dissect_ansi_map_LocationRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_locationRequest ) ;
break ;
case 16 : /*Routing Request*/
offset = dissect_ansi_map_RoutingRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_routingRequest ) ;
break ;
case 17 : /*Feature Request*/
offset = dissect_ansi_map_FeatureRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_featureRequest ) ;
break ;
case 18 : /*Reserved 18 (Service Profile Request, IS-41-C)*/
proto_tree_add_text ( tree , tvb , offset , - 1 , " Unknown invokeData blob(18 (Service Profile Request, IS-41-C) " ) ;
break ;
case 19 : /*Reserved 19 (Service Profile Directive, IS-41-C)*/
proto_tree_add_text ( tree , tvb , offset , - 1 , " Unknown invokeData blob(19 Service Profile Directive, IS-41-C) " ) ;
break ;
case 20 : /*Unreliable Roamer Data Directive*/
offset = dissect_ansi_map_UnreliableRoamerDataDirective ( TRUE , tvb , offset , actx , tree , hf_ansi_map_unreliableRoamerDataDirective ) ;
break ;
case 21 : /*Reserved 21 (Call Data Request, IS-41-C)*/
proto_tree_add_text ( tree , tvb , offset , - 1 , " Unknown invokeData blob(Reserved 21 (Call Data Request, IS-41-C) " ) ;
break ;
case 22 : /*MS Inactive*/
offset = dissect_ansi_map_MSInactive ( TRUE , tvb , offset , actx , tree , hf_ansi_map_mSInactive ) ;
break ;
case 23 : /*Transfer To Number Request*/
offset = dissect_ansi_map_TransferToNumberRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_transferToNumberRequest ) ;
break ;
case 24 : /*Redirection Request*/
offset = dissect_ansi_map_RedirectionRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_redirectionRequest ) ;
break ;
case 25 : /*Handoff To Third*/
offset = dissect_ansi_map_HandoffToThird ( TRUE , tvb , offset , actx , tree , hf_ansi_map_handoffToThird ) ;
break ;
case 26 : /*Flash Request*/
offset = dissect_ansi_map_FlashRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_flashRequest ) ;
break ;
case 27 : /*Authentication Directive*/
offset = dissect_ansi_map_AuthenticationDirective ( TRUE , tvb , offset , actx , tree , hf_ansi_map_authenticationDirective ) ;
break ;
case 28 : /*Authentication Request*/
offset = dissect_ansi_map_AuthenticationRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_authenticationRequest ) ;
break ;
case 29 : /*Base Station Challenge*/
offset = dissect_ansi_map_BaseStationChallenge ( TRUE , tvb , offset , actx , tree , hf_ansi_map_baseStationChallenge ) ;
break ;
case 30 : /*Authentication Failure Report*/
offset = dissect_ansi_map_AuthenticationFailureReport ( TRUE , tvb , offset , actx , tree , hf_ansi_map_authenticationFailureReport ) ;
break ;
case 31 : /*Count Request*/
offset = dissect_ansi_map_CountRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_countRequest ) ;
break ;
case 32 : /*Inter System Page*/
offset = dissect_ansi_map_InterSystemPage ( TRUE , tvb , offset , actx , tree , hf_ansi_map_interSystemPage ) ;
break ;
case 33 : /*Unsolicited Response*/
offset = dissect_ansi_map_UnsolicitedResponse ( TRUE , tvb , offset , actx , tree , hf_ansi_map_unsolicitedResponse ) ;
break ;
case 34 : /*Bulk Deregistration*/
offset = dissect_ansi_map_BulkDeregistration ( TRUE , tvb , offset , actx , tree , hf_ansi_map_bulkDeregistration ) ;
break ;
case 35 : /*Handoff Measurement Request 2*/
offset = dissect_ansi_map_HandoffMeasurementRequest2 ( TRUE , tvb , offset , actx , tree , hf_ansi_map_handoffMeasurementRequest2 ) ;
break ;
case 36 : /*Facilities Directive 2*/
offset = dissect_ansi_map_FacilitiesDirective2 ( TRUE , tvb , offset , actx , tree , hf_ansi_map_facilitiesDirective2 ) ;
break ;
case 37 : /*Handoff Back 2*/
offset = dissect_ansi_map_HandoffBack2 ( TRUE , tvb , offset , actx , tree , hf_ansi_map_handoffBack2 ) ;
break ;
case 38 : /*Handoff To Third 2*/
offset = dissect_ansi_map_HandoffToThird2 ( TRUE , tvb , offset , actx , tree , hf_ansi_map_handoffToThird2 ) ;
break ;
case 39 : /*Authentication Directive Forward*/
offset = dissect_ansi_map_AuthenticationDirectiveForward ( TRUE , tvb , offset , actx , tree , hf_ansi_map_authenticationDirectiveForward ) ;
break ;
case 40 : /*Authentication Status Report*/
offset = dissect_ansi_map_AuthenticationStatusReport ( TRUE , tvb , offset , actx , tree , hf_ansi_map_authenticationStatusReport ) ;
break ;
case 41 : /*Reserved 41*/
proto_tree_add_text ( tree , tvb , offset , - 1 , " Reserved 41, Unknown invokeData blob " ) ;
break ;
case 42 : /*Information Directive*/
offset = dissect_ansi_map_InformationDirective ( TRUE , tvb , offset , actx , tree , hf_ansi_map_informationDirective ) ;
break ;
case 43 : /*Information Forward*/
offset = dissect_ansi_map_InformationForward ( TRUE , tvb , offset , actx , tree , hf_ansi_map_informationForward ) ;
break ;
case 44 : /*Inter System Answer*/
offset = dissect_ansi_map_InterSystemAnswer ( TRUE , tvb , offset , actx , tree , hf_ansi_map_interSystemAnswer ) ;
break ;
case 45 : /*Inter System Page 2*/
offset = dissect_ansi_map_InterSystemPage2 ( TRUE , tvb , offset , actx , tree , hf_ansi_map_interSystemPage2 ) ;
break ;
case 46 : /*Inter System Setup*/
offset = dissect_ansi_map_InterSystemSetup ( TRUE , tvb , offset , actx , tree , hf_ansi_map_interSystemSetup ) ;
break ;
case 47 : /*OriginationRequest*/
offset = dissect_ansi_map_OriginationRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_originationRequest ) ;
break ;
case 48 : /*Random Variable Request*/
offset = dissect_ansi_map_RandomVariableRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_randomVariableRequest ) ;
break ;
case 49 : /*Redirection Directive*/
offset = dissect_ansi_map_RedirectionDirective ( TRUE , tvb , offset , actx , tree , hf_ansi_map_redirectionDirective ) ;
break ;
case 50 : /*Remote User Interaction Directive*/
offset = dissect_ansi_map_RemoteUserInteractionDirective ( TRUE , tvb , offset , actx , tree , hf_ansi_map_remoteUserInteractionDirective ) ;
break ;
case 51 : /*SMS Delivery Backward*/
offset = dissect_ansi_map_SMSDeliveryBackward ( TRUE , tvb , offset , actx , tree , hf_ansi_map_sMSDeliveryBackward ) ;
break ;
case 52 : /*SMS Delivery Forward*/
offset = dissect_ansi_map_SMSDeliveryForward ( TRUE , tvb , offset , actx , tree , hf_ansi_map_sMSDeliveryForward ) ;
break ;
case 53 : /*SMS Delivery Point to Point*/
offset = dissect_ansi_map_SMSDeliveryPointToPoint ( TRUE , tvb , offset , actx , tree , hf_ansi_map_sMSDeliveryPointToPoint ) ;
break ;
case 54 : /*SMS Notification*/
offset = dissect_ansi_map_SMSNotification ( TRUE , tvb , offset , actx , tree , hf_ansi_map_sMSNotification ) ;
break ;
case 55 : /*SMS Request*/
offset = dissect_ansi_map_SMSRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_sMSRequest ) ;
break ;
/* End N.S0005*/
/* N.S0010-0 v 1.0 */
/* N.S0011-0 v 1.0 */
case 56 : /*OTASP Request 6.4.2.CC*/
offset = dissect_ansi_map_OTASPRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_oTASPRequest ) ;
break ;
/*End N.S0011-0 v 1.0 */
case 57 : /*Information Backward*/
offset = offset ;
break ;
/* N.S0008-0 v 1.0 */
case 58 : /*Change Facilities*/
offset = dissect_ansi_map_ChangeFacilities ( TRUE , tvb , offset , actx , tree , hf_ansi_map_changeFacilities ) ;
break ;
case 59 : /*Change Service*/
offset = dissect_ansi_map_ChangeService ( TRUE , tvb , offset , actx , tree , hf_ansi_map_changeService ) ;
break ;
2009-09-06 14:25:47 +00:00
/* End N.S0008-0 v 1.0 */
2009-03-15 15:40:55 +00:00
case 60 : /*Parameter Request*/
offset = dissect_ansi_map_ParameterRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_parameterRequest ) ;
break ;
case 61 : /*TMSI Directive*/
offset = dissect_ansi_map_TMSIDirective ( TRUE , tvb , offset , actx , tree , hf_ansi_map_tMSIDirective ) ;
break ;
/*End N.S0010-0 v 1.0 */
case 62 : /*NumberPortabilityRequest 62*/
offset = dissect_ansi_map_NumberPortabilityRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_numberPortabilityRequest ) ;
break ;
case 63 : /*Service Request N.S0012-0 v 1.0*/
offset = dissect_ansi_map_ServiceRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_serviceRequest ) ;
break ;
/* N.S0013 */
case 64 : /*Analyzed Information Request*/
offset = dissect_ansi_map_AnalyzedInformation ( TRUE , tvb , offset , actx , tree , hf_ansi_map_analyzedInformation ) ;
break ;
case 65 : /*Connection Failure Report*/
offset = dissect_ansi_map_ConnectionFailureReport ( TRUE , tvb , offset , actx , tree , hf_ansi_map_connectionFailureReport ) ;
break ;
case 66 : /*Connect Resource*/
offset = dissect_ansi_map_ConnectResource ( TRUE , tvb , offset , actx , tree , hf_ansi_map_connectResource ) ;
break ;
case 67 : /*Disconnect Resource*/
/* No data */
break ;
case 68 : /*Facility Selected and Available*/
offset = dissect_ansi_map_FacilitySelectedAndAvailable ( TRUE , tvb , offset , actx , tree , hf_ansi_map_facilitySelectedAndAvailable ) ;
break ;
case 69 : /*Instruction Request*/
/* No data */
break ;
case 70 : /*Modify*/
offset = dissect_ansi_map_Modify ( TRUE , tvb , offset , actx , tree , hf_ansi_map_modify ) ;
break ;
case 71 : /*Reset Timer*/
/*No Data*/
break ;
case 72 : /*Search*/
offset = dissect_ansi_map_Search ( TRUE , tvb , offset , actx , tree , hf_ansi_map_search ) ;
break ;
case 73 : /*Seize Resource*/
offset = dissect_ansi_map_SeizeResource ( TRUE , tvb , offset , actx , tree , hf_ansi_map_seizeResource ) ;
break ;
case 74 : /*SRF Directive*/
offset = dissect_ansi_map_SRFDirective ( TRUE , tvb , offset , actx , tree , hf_ansi_map_sRFDirective ) ;
break ;
case 75 : /*T Busy*/
offset = dissect_ansi_map_TBusy ( TRUE , tvb , offset , actx , tree , hf_ansi_map_tBusy ) ;
break ;
case 76 : /*T NoAnswer*/
offset = dissect_ansi_map_TNoAnswer ( TRUE , tvb , offset , actx , tree , hf_ansi_map_tNoAnswer ) ;
break ;
/*END N.S0013 */
case 77 : /*Release*/
offset = offset ;
break ;
case 78 : /*SMS Delivery Point to Point Ack*/
2009-04-08 06:28:34 +00:00
offset = dissect_ansi_map_SMSDeliveryPointToPointAck ( TRUE , tvb , offset , actx , tree , hf_ansi_map_smsDeliveryPointToPointAck ) ;
2009-03-15 15:40:55 +00:00
break ;
/* N.S0024*/
case 79 : /*Message Directive*/
offset = dissect_ansi_map_MessageDirective ( TRUE , tvb , offset , actx , tree , hf_ansi_map_messageDirective ) ;
break ;
/*END N.S0024*/
/* N.S0018 PN-4287*/
case 80 : /*Bulk Disconnection*/
offset = dissect_ansi_map_BulkDisconnection ( TRUE , tvb , offset , actx , tree , hf_ansi_map_bulkDisconnection ) ;
break ;
case 81 : /*Call Control Directive*/
offset = dissect_ansi_map_CallControlDirective ( TRUE , tvb , offset , actx , tree , hf_ansi_map_callControlDirective ) ;
break ;
case 82 : /*O Answer*/
offset = dissect_ansi_map_OAnswer ( TRUE , tvb , offset , actx , tree , hf_ansi_map_oAnswer ) ;
break ;
case 83 : /*O Disconnect*/
offset = dissect_ansi_map_ODisconnect ( TRUE , tvb , offset , actx , tree , hf_ansi_map_oDisconnect ) ;
break ;
case 84 : /*Call Recovery Report*/
offset = dissect_ansi_map_CallRecoveryReport ( TRUE , tvb , offset , actx , tree , hf_ansi_map_callRecoveryReport ) ;
break ;
case 85 : /*T Answer*/
offset = dissect_ansi_map_TAnswer ( TRUE , tvb , offset , actx , tree , hf_ansi_map_tAnswer ) ;
break ;
case 86 : /*T Disconnect*/
offset = dissect_ansi_map_TDisconnect ( TRUE , tvb , offset , actx , tree , hf_ansi_map_tDisconnect ) ;
break ;
case 87 : /*Unreliable Call Data*/
offset = dissect_ansi_map_UnreliableCallData ( TRUE , tvb , offset , actx , tree , hf_ansi_map_unreliableCallData ) ;
break ;
/* N.S0018 PN-4287*/
/*N.S0004 */
case 88 : /*O CalledPartyBusy*/
offset = dissect_ansi_map_OCalledPartyBusy ( TRUE , tvb , offset , actx , tree , hf_ansi_map_oCalledPartyBusy ) ;
break ;
case 89 : /*O NoAnswer*/
offset = dissect_ansi_map_ONoAnswer ( TRUE , tvb , offset , actx , tree , hf_ansi_map_oNoAnswer ) ;
break ;
case 90 : /*Position Request*/
offset = dissect_ansi_map_PositionRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_positionRequest ) ;
break ;
case 91 : /*Position Request Forward*/
offset = dissect_ansi_map_PositionRequestForward ( TRUE , tvb , offset , actx , tree , hf_ansi_map_positionRequestForward ) ;
break ;
/*END N.S0004 */
case 92 : /*Call Termination Report*/
offset = dissect_ansi_map_CallTerminationReport ( TRUE , tvb , offset , actx , tree , hf_ansi_map_callTerminationReport ) ;
break ;
case 93 : /*Geo Position Directive*/
offset = offset ;
break ;
case 94 : /*Geo Position Request*/
offset = dissect_ansi_map_GeoPositionRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_interSystemPositionRequest ) ;
break ;
case 95 : /*Inter System Position Request*/
offset = dissect_ansi_map_InterSystemPositionRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_interSystemPositionRequest ) ;
break ;
case 96 : /*Inter System Position Request Forward*/
offset = dissect_ansi_map_InterSystemPositionRequestForward ( TRUE , tvb , offset , actx , tree , hf_ansi_map_interSystemPositionRequestForward ) ;
break ;
/* 3GPP2 N.S0023-0 */
case 97 : /*ACG Directive*/
offset = dissect_ansi_map_ACGDirective ( TRUE , tvb , offset , actx , tree , hf_ansi_map_aCGDirective ) ;
break ;
/* END 3GPP2 N.S0023-0 */
case 98 : /*Roamer Database Verification Request*/
offset = dissect_ansi_map_RoamerDatabaseVerificationRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_roamerDatabaseVerificationRequest ) ;
break ;
/* N.S0029 X.S0001-A v1.0*/
case 99 : /*Add Service*/
offset = dissect_ansi_map_AddService ( TRUE , tvb , offset , actx , tree , hf_ansi_map_addService ) ;
break ;
case 100 : /*Drop Service*/
offset = dissect_ansi_map_DropService ( TRUE , tvb , offset , actx , tree , hf_ansi_map_dropService ) ;
break ;
/*End N.S0029 X.S0001-A v1.0*/
/* X.S0002-0 v1.0 */
/* LCSParameterRequest */
2009-04-08 06:28:34 +00:00
case 101 : /* InterSystemSMSPage 101 */
offset = dissect_ansi_map_InterSystemSMSPage ( TRUE , tvb , offset , actx , tree , hf_ansi_map_interSystemSMSPage ) ;
break ;
2009-03-15 15:40:55 +00:00
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 ) ;
2009-09-06 14:25:47 +00:00
break ;
2009-03-15 15:40:55 +00:00
/* PositionEventNotification */
case 106 :
offset = dissect_ansi_map_PositionEventNotification ( TRUE , tvb , offset , actx , tree , hf_ansi_map_positionEventNotification ) ;
break ;
case 107 :
/* StatusRequest X.S0008-0 v1.0*/
offset = dissect_ansi_map_StatusRequest ( TRUE , tvb , offset , actx , tree , hf_ansi_map_statusRequest ) ;
break ;
2009-04-08 06:28:34 +00:00
/* 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 ;
2009-03-15 15:40:55 +00:00
default :
proto_tree_add_text ( tree , tvb , offset , - 1 , " Unknown invokeData blob " ) ;
2009-11-19 21:44:28 +00:00
opCodeKnown = FALSE ;
2009-03-15 15:40:55 +00:00
break ;
}
2009-11-19 21:44:28 +00:00
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 ) ;
}
2009-03-15 15:40:55 +00:00
2009-11-19 21:44:28 +00:00
return offset ;
2009-03-15 15:40:55 +00:00
}
2005-12-18 18:17:29 +00:00
2007-05-13 20:58:29 +00:00
static int dissect_returnData ( proto_tree * tree , tvbuff_t * tvb , int offset , asn1_ctx_t * actx ) {
2009-11-19 21:44:28 +00:00
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 ] ;
2005-12-18 18:17:29 +00:00
2009-03-15 15:40:55 +00:00
switch ( OperationCode ) {
case 1 : /*Handoff Measurement Request*/
offset = dissect_ansi_map_HandoffMeasurementRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_handoffMeasurementRequestRes ) ;
break ;
case 2 : /*Facilities Directive*/
offset = dissect_ansi_map_FacilitiesDirectiveRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_facilitiesDirectiveRes ) ;
break ;
case 4 : /*Handoff Back*/
offset = dissect_ansi_map_HandoffBackRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_handoffBackRes ) ;
break ;
case 5 : /*Facilities Release*/
offset = dissect_ansi_map_FacilitiesReleaseRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_facilitiesReleaseRes ) ;
break ;
case 6 : /*Qualification Request*/
offset = dissect_ansi_map_QualificationRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_qualificationRequestRes ) ;
break ;
case 7 : /*Qualification Directive*/
offset = dissect_ansi_map_QualificationDirectiveRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_qualificationDirectiveRes ) ;
break ;
case 10 : /*Reset Circuit*/
offset = dissect_ansi_map_ResetCircuitRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_resetCircuitRes ) ;
break ;
case 13 : /*Registration Notification*/
offset = dissect_ansi_map_RegistrationNotificationRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_registrationNotificationRes ) ;
break ;
case 14 : /*Registration Cancellation*/
offset = dissect_ansi_map_RegistrationCancellationRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_registrationCancellationRes ) ;
break ;
case 15 : /*Location Request*/
offset = dissect_ansi_map_LocationRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_locationRequestRes ) ;
break ;
case 16 : /*Routing Request*/
offset = dissect_ansi_map_RoutingRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_routingRequestRes ) ;
break ;
case 17 : /*Feature Request*/
offset = dissect_ansi_map_FeatureRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_featureRequestRes ) ;
break ;
case 23 : /*Transfer To Number Request*/
offset = dissect_ansi_map_TransferToNumberRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_transferToNumberRequestRes ) ;
break ;
case 25 : /*Handoff To Third*/
offset = dissect_ansi_map_HandoffToThirdRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_handoffToThirdRes ) ;
break ;
case 26 : /*Flash Request*/
/* No data */
proto_tree_add_text ( tree , tvb , offset , - 1 , " No Data " ) ;
break ;
case 27 : /*Authentication Directive*/
offset = dissect_ansi_map_AuthenticationDirectiveRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_authenticationDirectiveRes ) ;
break ;
case 28 : /*Authentication Request*/
offset = dissect_ansi_map_AuthenticationRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_authenticationRequestRes ) ;
break ;
case 29 : /*Base Station Challenge*/
offset = dissect_ansi_map_BaseStationChallengeRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_baseStationChallengeRes ) ;
break ;
case 30 : /*Authentication Failure Report*/
offset = dissect_ansi_map_AuthenticationFailureReportRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_authenticationFailureReportRes ) ;
break ;
case 31 : /*Count Request*/
offset = dissect_ansi_map_CountRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_countRequestRes ) ;
break ;
case 32 : /*Inter System Page*/
offset = dissect_ansi_map_InterSystemPageRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_interSystemPageRes ) ;
break ;
case 33 : /*Unsolicited Response*/
offset = dissect_ansi_map_UnsolicitedResponseRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_unsolicitedResponseRes ) ;
break ;
case 35 : /*Handoff Measurement Request 2*/
offset = dissect_ansi_map_HandoffMeasurementRequest2Res ( TRUE , tvb , offset , actx , tree , hf_ansi_map_handoffMeasurementRequest2Res ) ;
break ;
case 36 : /*Facilities Directive 2*/
offset = dissect_ansi_map_FacilitiesDirective2Res ( TRUE , tvb , offset , actx , tree , hf_ansi_map_facilitiesDirective2Res ) ;
break ;
case 37 : /*Handoff Back 2*/
offset = dissect_ansi_map_HandoffBack2Res ( TRUE , tvb , offset , actx , tree , hf_ansi_map_handoffBack2Res ) ;
break ;
case 38 : /*Handoff To Third 2*/
offset = dissect_ansi_map_HandoffToThird2Res ( TRUE , tvb , offset , actx , tree , hf_ansi_map_handoffToThird2Res ) ;
break ;
case 39 : /*Authentication Directive Forward*/
offset = dissect_ansi_map_AuthenticationDirectiveForwardRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_authenticationDirectiveForwardRes ) ;
break ;
case 40 : /*Authentication Status Report*/
offset = dissect_ansi_map_AuthenticationStatusReportRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_authenticationStatusReportRes ) ;
break ;
/*Reserved 41*/
case 42 : /*Information Directive*/
offset = dissect_ansi_map_InformationDirectiveRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_informationDirectiveRes ) ;
break ;
case 43 : /*Information Forward*/
offset = dissect_ansi_map_InformationForwardRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_informationForwardRes ) ;
break ;
case 45 : /*Inter System Page 2*/
offset = dissect_ansi_map_InterSystemPage2Res ( TRUE , tvb , offset , actx , tree , hf_ansi_map_interSystemPage2Res ) ;
break ;
case 46 : /*Inter System Setup*/
offset = dissect_ansi_map_InterSystemSetupRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_interSystemSetupRes ) ;
break ;
case 47 : /*OriginationRequest*/
offset = dissect_ansi_map_OriginationRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_originationRequestRes ) ;
break ;
case 48 : /*Random Variable Request*/
offset = dissect_ansi_map_RandomVariableRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_randomVariableRequestRes ) ;
break ;
case 50 : /*Remote User Interaction Directive*/
offset = dissect_ansi_map_RemoteUserInteractionDirectiveRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_remoteUserInteractionDirectiveRes ) ;
break ;
case 51 : /*SMS Delivery Backward*/
offset = dissect_ansi_map_SMSDeliveryBackwardRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_sMSDeliveryBackwardRes ) ;
break ;
case 52 : /*SMS Delivery Forward*/
offset = dissect_ansi_map_SMSDeliveryForwardRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_sMSDeliveryForwardRes ) ;
break ;
case 53 : /*SMS Delivery Point to Point*/
offset = dissect_ansi_map_SMSDeliveryPointToPointRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_sMSDeliveryPointToPointRes ) ;
break ;
case 54 : /*SMS Notification*/
offset = dissect_ansi_map_SMSNotificationRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_sMSNotificationRes ) ;
break ;
case 55 : /*SMS Request*/
offset = dissect_ansi_map_SMSRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_sMSRequestRes ) ;
break ;
/* N.S0008-0 v 1.0 */
case 56 : /*OTASP Request 6.4.2.CC*/
offset = dissect_ansi_map_OTASPRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_oTASPRequestRes ) ;
break ;
2009-12-18 06:26:20 +00:00
/* 57 Information Backward*/
2009-03-15 15:40:55 +00:00
case 58 : /*Change Facilities*/
offset = dissect_ansi_map_ChangeFacilitiesRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_changeFacilitiesRes ) ;
break ;
case 59 : /*Change Service*/
offset = dissect_ansi_map_ChangeServiceRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_changeServiceRes ) ;
break ;
case 60 : /*Parameter Request*/
offset = dissect_ansi_map_ParameterRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_parameterRequestRes ) ;
break ;
case 61 : /*TMSI Directive*/
offset = dissect_ansi_map_TMSIDirectiveRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_tMSIDirectiveRes ) ;
break ;
2011-05-18 20:06:17 +00:00
case 62 : /*NumberPortabilityRequest */
2009-12-18 06:26:20 +00:00
offset = dissect_ansi_map_NumberPortabilityRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_numberPortabilityRequestRes ) ;
break ;
2009-03-15 15:40:55 +00:00
case 63 : /*Service Request*/
offset = dissect_ansi_map_ServiceRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_serviceRequestRes ) ;
break ;
/* N.S0013 */
case 64 : /*Analyzed Information Request*/
offset = dissect_ansi_map_AnalyzedInformationRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_analyzedInformationRes ) ;
break ;
2009-12-18 06:26:20 +00:00
/* 65 Connection Failure Report*/
/* 66 Connect Resource*/
/* 67 Disconnect Resource*/
2009-03-15 15:40:55 +00:00
case 68 : /*Facility Selected and Available*/
offset = dissect_ansi_map_FacilitySelectedAndAvailableRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_facilitySelectedAndAvailableRes ) ;
break ;
2009-12-18 06:26:20 +00:00
/* 69 Instruction Request*/
2009-03-15 15:40:55 +00:00
case 70 : /*Modify*/
offset = dissect_ansi_map_ModifyRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_modifyRes ) ;
break ;
case 72 : /*Search*/
offset = dissect_ansi_map_SearchRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_searchRes ) ; ;
break ;
case 73 : /*Seize Resource*/
offset = dissect_ansi_map_SeizeResourceRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_seizeResourceRes ) ;
break ;
case 74 : /*SRF Directive*/
offset = dissect_ansi_map_SRFDirectiveRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_sRFDirectiveRes ) ;
break ;
case 75 : /*T Busy*/
offset = dissect_ansi_map_TBusyRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_tBusyRes ) ;
break ;
case 76 : /*T NoAnswer*/
offset = dissect_ansi_map_TNoAnswerRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_tNoAnswerRes ) ;
break ;
case 81 : /*Call Control Directive*/
offset = dissect_ansi_map_CallControlDirectiveRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_callControlDirectiveRes ) ;
break ;
case 83 : /*O Disconnect*/
offset = dissect_ansi_map_ODisconnectRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_oDisconnectRes ) ;
break ;
case 86 : /*T Disconnect*/
offset = dissect_ansi_map_TDisconnectRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_tDisconnectRes ) ;
break ;
case 88 : /*O CalledPartyBusy*/
offset = dissect_ansi_map_OCalledPartyBusyRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_oCalledPartyBusyRes ) ;
break ;
case 89 : /*O NoAnswer*/
offset = dissect_ansi_map_ONoAnswerRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_oNoAnswerRes ) ;
break ;
case 90 : /*Position Request*/
offset = dissect_ansi_map_PositionRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_positionRequestRes ) ;
break ;
case 91 : /*Position Request Forward*/
offset = dissect_ansi_map_PositionRequestForwardRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_positionRequestForwardRes ) ;
break ;
case 95 : /*Inter System Position Request*/
offset = dissect_ansi_map_InterSystemPositionRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_interSystemPositionRequestRes ) ;
break ;
case 96 : /*Inter System Position Request Forward*/
offset = dissect_ansi_map_InterSystemPositionRequestForwardRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_interSystemPositionRequestRes ) ;
break ;
case 98 : /*Roamer Database Verification Request*/
offset = dissect_ansi_map_RoamerDatabaseVerificationRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_roamerDatabaseVerificationRequestRes ) ;
break ;
case 99 : /*Add Service*/
offset = dissect_ansi_map_AddServiceRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_addServiceRes ) ;
break ;
case 100 : /*Drop Service*/
offset = dissect_ansi_map_DropServiceRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_dropServiceRes ) ;
break ;
/*End N.S0029 */
/* X.S0002-0 v1.0 */
/* LCSParameterRequest */
case 102 :
offset = dissect_ansi_map_LCSParameterRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_lcsParameterRequestRes ) ;
break ;
/* CheckMEID X.S0008-0 v1.0*/
case 104 :
offset = dissect_ansi_map_CheckMEIDRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_checkMEIDRes ) ;
2009-09-06 14:25:47 +00:00
break ;
2009-03-15 15:40:55 +00:00
/* PositionEventNotification *
case 106 :
offset = dissect_ansi_map_PositionEventNotification ( TRUE , tvb , offset , actx , tree , hf_ansi_map_positionEventNotificationRes ) ;
break ;
*/
case 107 :
/* StatusRequest X.S0008-0 v1.0*/
offset = dissect_ansi_map_StatusRequestRes ( TRUE , tvb , offset , actx , tree , hf_ansi_map_statusRequestRes ) ;
break ;
2009-04-08 06:28:34 +00:00
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 ;
2009-03-15 15:40:55 +00:00
default :
proto_tree_add_text ( tree , tvb , offset , - 1 , " Unknown invokeData blob " ) ;
2009-11-19 21:44:28 +00:00
opCodeKnown = FALSE ;
2009-03-15 15:40:55 +00:00
break ;
}
2009-11-19 21:44:28 +00:00
if ( opCodeKnown )
{
tap_p - > message_type = OperationCode ;
tap_p - > size = 0 ; /* should be number of octets in message */
2009-03-15 15:40:55 +00:00
2009-11-19 21:44:28 +00:00
tap_queue_packet ( ansi_map_tap , g_pinfo , tap_p ) ;
}
return offset ;
2009-03-15 15:40:55 +00:00
}
2005-12-18 18:17:29 +00:00
2007-09-12 16:45:53 +00:00
static int
find_saved_invokedata ( asn1_ctx_t * actx ) {
2009-03-15 15:40:55 +00:00
struct ansi_map_invokedata_t * ansi_map_saved_invokedata ;
struct ansi_tcap_private_t * p_private_tcap ;
address * src = & ( actx - > pinfo - > src ) ;
address * dst = & ( actx - > pinfo - > dst ) ;
guint8 * src_str ;
guint8 * dst_str ;
char * buf ;
buf = ep_alloc ( 1024 ) ;
2009-09-06 14:25:47 +00:00
src_str = ep_address_to_str ( src ) ;
dst_str = ep_address_to_str ( dst ) ;
2009-03-15 15:40:55 +00:00
/* 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 */
2009-09-06 14:25:47 +00:00
src_str = ep_address_to_str ( src ) ;
dst_str = ep_address_to_str ( dst ) ;
2009-03-15 15:40:55 +00:00
/* Reverse order to invoke */
2011-02-04 16:12:59 +00:00
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 ;
}
2011-02-05 14:37:52 +00:00
/*g_warning("Find Hash string %s pkt: %u",buf,actx->pinfo->fd->num);*/
2009-03-15 15:40:55 +00:00
ansi_map_saved_invokedata = g_hash_table_lookup ( TransactionId_table , buf ) ;
if ( ansi_map_saved_invokedata ) {
OperationCode = ansi_map_saved_invokedata - > opcode & 0xff ;
ServiceIndicator = ansi_map_saved_invokedata - > ServiceIndicator ;
} else {
OperationCode = OperationCode & 0x00ff ;
}
} else {
2011-02-05 14:37:52 +00:00
/*g_warning("No private data pkt: %u",actx->pinfo->fd->num);*/
2009-03-15 15:40:55 +00:00
OperationCode = OperationCode & 0x00ff ;
}
return OperationCode ;
2007-09-12 16:45:53 +00:00
}
2005-12-18 18:17:29 +00:00
static void
dissect_ansi_map ( tvbuff_t * tvb , packet_info * pinfo , proto_tree * tree )
{
proto_item * ansi_map_item ;
proto_tree * ansi_map_tree = NULL ;
int offset = 0 ;
2009-03-15 15:40:55 +00:00
struct ansi_tcap_private_t * p_private_tcap ;
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
2005-12-18 18:17:29 +00:00
2009-03-15 15:40:55 +00:00
SMS_BearerData_tvb = NULL ;
ansi_map_sms_tele_id = - 1 ;
2005-12-18 18:17:29 +00:00
g_pinfo = pinfo ;
2009-03-15 15:40:55 +00:00
g_tree = tree ;
2005-12-18 18:17:29 +00:00
/*
* Make entry in the Protocol column on summary display
*/
2009-08-09 07:59:51 +00:00
col_set_str ( pinfo - > cinfo , COL_PROTOCOL , " ANSI MAP " ) ;
2005-12-18 18:17:29 +00:00
2009-03-15 15:40:55 +00:00
/* Data from the TCAP dissector */
if ( pinfo - > private_data = = NULL ) {
proto_tree_add_text ( tree , tvb , 0 , - 1 , " Dissector ERROR this dissector relays on private data " ) ;
return ;
}
/*
* create the ansi_map protocol tree
*/
ansi_map_item = proto_tree_add_item ( tree , proto_ansi_map , tvb , 0 , - 1 , FALSE ) ;
ansi_map_tree = proto_item_add_subtree ( ansi_map_item , ett_ansi_map ) ;
ansi_map_is_invoke = FALSE ;
is683_ota = FALSE ;
is801_pld = FALSE ;
ServiceIndicator = 0 ;
p_private_tcap = pinfo - > private_data ;
switch ( p_private_tcap - > d . pdu ) {
2009-09-06 14:25:47 +00:00
/*
1 : invoke ,
2 : returnResult ,
2009-03-15 15:40:55 +00:00
3 : returnError ,
4 : reject
*/
case 1 :
OperationCode = p_private_tcap - > d . OperationCode_private & 0x00ff ;
ansi_map_is_invoke = TRUE ;
2011-02-04 16:12:59 +00:00
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) " ) ) ;
2010-11-16 15:20:33 +00:00
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) " ) ) ;
2009-03-15 15:40:55 +00:00
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 ) ;
2011-02-04 16:12:59 +00:00
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) " ) ) ;
2010-11-16 15:20:33 +00:00
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) " ) ) ;
2009-03-15 15:40:55 +00:00
offset = dissect_returnData ( ansi_map_tree , tvb , 0 , & asn1_ctx ) ;
break ;
case 3 :
2011-02-04 16:12:59 +00:00
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) " ) ) ;
2009-03-15 15:40:55 +00:00
break ;
case 4 :
2011-02-04 16:12:59 +00:00
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) " ) ) ;
2009-03-15 15:40:55 +00:00
break ;
default :
/* Must be Invoke ReturnResult ReturnError or Reject */
DISSECTOR_ASSERT_NOT_REACHED ( ) ;
break ;
}
2005-12-18 18:17:29 +00:00
}
2006-06-17 16:19:23 +00:00
static void range_delete_callback ( guint32 ssn )
2008-11-06 22:05:59 +00:00
{
if ( ssn ) {
delete_ansi_tcap_subdissector ( ssn , ansi_map_handle ) ;
2007-01-03 07:55:40 +00:00
}
2008-11-06 22:05:59 +00:00
}
2006-06-17 16:19:23 +00:00
2008-11-06 22:05:59 +00:00
static void range_add_callback ( guint32 ssn )
{
if ( ssn ) {
add_ansi_tcap_subdissector ( ssn , ansi_map_handle ) ;
}
}
void
proto_reg_handoff_ansi_map ( void )
{
static gboolean ansi_map_prefs_initialized = FALSE ;
static range_t * ssn_range ;
2006-06-17 16:19:23 +00:00
2008-11-06 22:05:59 +00:00
if ( ! ansi_map_prefs_initialized )
{
2009-03-15 15:40:55 +00:00
ansi_map_prefs_initialized = TRUE ;
ansi_map_handle = find_dissector ( " ansi_map " ) ;
2008-11-06 22:05:59 +00:00
}
else
{
2009-03-15 15:40:55 +00:00
range_foreach ( ssn_range , range_delete_callback ) ;
g_free ( ssn_range ) ;
2008-11-06 22:05:59 +00:00
}
ssn_range = range_copy ( global_ssn_range ) ;
range_foreach ( ssn_range , range_add_callback ) ;
}
2006-06-17 16:19:23 +00:00
2005-12-18 18:17:29 +00:00
/*--- proto_register_ansi_map -------------------------------------------*/
void proto_register_ansi_map ( void ) {
2009-03-15 15:40:55 +00:00
module_t * ansi_map_module ;
2006-06-17 16:19:23 +00:00
2009-03-15 15:40:55 +00:00
/* List of fields */
2005-12-18 18:17:29 +00:00
static hf_register_info hf [ ] = {
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_op_code_fam ,
{ " Operation Code Family " , " ansi_map.op_code_fam " ,
FT_UINT8 , BASE_DEC , NULL , 0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_reservedBitH ,
{ " Reserved " , " ansi_map.reserved_bitH " ,
FT_BOOLEAN , 8 , NULL , 0x80 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_reservedBitD ,
{ " Reserved " , " ansi_map.reserved_bitD " ,
FT_BOOLEAN , 8 , NULL , 0x08 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_reservedBitHG ,
{ " Reserved " , " ansi_map.reserved_bitHG " ,
FT_UINT8 , BASE_DEC , NULL , 0xc0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_reservedBitHGFE ,
{ " Reserved " , " ansi_map.reserved_bitHGFE " ,
FT_UINT8 , BASE_DEC , NULL , 0xf0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_reservedBitFED ,
{ " Reserved " , " ansi_map.reserved_bitFED " ,
FT_UINT8 , BASE_DEC , NULL , 0x38 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_reservedBitED ,
{ " Reserved " , " ansi_map.reserved_bitED " ,
FT_UINT8 , BASE_DEC , NULL , 0x18 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_op_code ,
{ " Operation Code " , " ansi_map.op_code " ,
2010-11-16 15:20:33 +00:00
FT_UINT8 , BASE_DEC | BASE_EXT_STRING , & ansi_map_opr_code_strings_ext , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_na ,
{ " Nature of Number " , " ansi_map.na " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_na_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_pi ,
{ " Presentation Indication " , " ansi_map.type_of_pi " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_pi_bool_val ) , 0x02 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_navail ,
{ " Number available indication " , " ansi_map.navail " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_navail_bool_val ) , 0x04 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_si ,
{ " Screening indication " , " ansi_map.si " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_si_vals ) , 0x30 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_digits_enc ,
{ " Encoding " , " ansi_map.enc " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_digits_enc_vals ) , 0x0f ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_np ,
{ " Numbering Plan " , " ansi_map.np " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_np_vals ) , 0xf0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_nr_digits ,
{ " Number of Digits " , " ansi_map.nr_digits " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_bcd_digits ,
{ " BCD digits " , " ansi_map.bcd_digits " ,
FT_STRING , BASE_NONE , NULL , 0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_ia5_digits ,
{ " IA5 digits " , " ansi_map.ia5_digits " ,
FT_STRING , BASE_NONE , NULL , 0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_subaddr_type ,
{ " Type of Subaddress " , " ansi_map.subaddr_type " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_sub_addr_type_vals ) , 0x70 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_subaddr_odd_even ,
{ " Odd/Even Indicator " , " ansi_map.subaddr_odd_even " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_navail_bool_val ) , 0x08 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_alertcode_cadence ,
{ " Cadence " , " ansi_map.alertcode.cadence " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_AlertCode_Cadence_vals ) , 0x3f ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_alertcode_pitch ,
{ " Pitch " , " ansi_map.alertcode.pitch " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_AlertCode_Pitch_vals ) , 0xc0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_alertcode_alertaction ,
{ " Alert Action " , " ansi_map.alertcode.alertaction " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_AlertCode_Alert_Action_vals ) , 0x07 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_announcementcode_tone ,
{ " Tone " , " ansi_map.announcementcode.tone " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_AnnouncementCode_tone_vals ) , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_announcementcode_class ,
{ " Tone " , " ansi_map.announcementcode.class " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_AnnouncementCode_class_vals ) , 0xf ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_announcementcode_cust_ann ,
{ " Custom Announcement " , " ansi_map.announcementcode.cust_ann " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_authorizationperiod_period ,
{ " Period " , " ansi_map.authorizationperiod.period " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_authorizationperiod_period_vals ) , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_value ,
2009-06-24 01:40:54 +00:00
{ " Value " , " ansi_map.value " ,
2009-03-15 15:40:55 +00:00
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_msc_type ,
{ " Type " , " ansi_map.extendedmscid.type " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_msc_type_vals ) , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_handoffstate_pi ,
{ " Party Involved (PI) " , " ansi_map.handoffstate.pi " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_HandoffState_pi_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_tgn ,
{ " Trunk Group Number (G) " , " ansi_map.tgn " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_tmn ,
{ " Trunk Member Number (M) " , " ansi_map.tgn " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_messagewaitingnotificationcount_tom ,
{ " Type of messages " , " ansi_map.messagewaitingnotificationcount.tom " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_MessageWaitingNotificationCount_type_vals ) , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_messagewaitingnotificationcount_no_mw ,
{ " Number of Messages Waiting " , " ansi_map.messagewaitingnotificationcount.nomw " ,
FT_UINT8 , BASE_DEC , NULL , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_messagewaitingnotificationtype_mwi ,
{ " Message Waiting Indication (MWI) " , " ansi_map.messagewaitingnotificationcount.mwi " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_MessageWaitingNotificationType_mwi_vals ) , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_messagewaitingnotificationtype_apt ,
{ " Alert Pip Tone (APT) " , " ansi_map.messagewaitingnotificationtype.apt " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_HandoffState_pi_bool_val ) , 0x02 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_messagewaitingnotificationtype_pt ,
{ " Pip Tone (PT) " , " ansi_map.messagewaitingnotificationtype.pt " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_MessageWaitingNotificationType_mwi_vals ) , 0xc0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-09-06 14:25:47 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_trans_cap_multerm ,
{ " Multiple Terminations " , " ansi_map.trans_cap_multerm " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_trans_cap_multerm_vals ) , 0x0f ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_terminationtriggers_busy ,
{ " Busy " , " ansi_map.terminationtriggers.busy " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_terminationtriggers_busy_vals ) , 0x03 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_terminationtriggers_rf ,
{ " Routing Failure (RF) " , " ansi_map.terminationtriggers.rf " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_terminationtriggers_rf_vals ) , 0x0c ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_terminationtriggers_npr ,
{ " No Page Response (NPR) " , " ansi_map.terminationtriggers.npr " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_terminationtriggers_npr_vals ) , 0x30 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_terminationtriggers_na ,
{ " No Answer (NA) " , " ansi_map.terminationtriggers.na " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_terminationtriggers_na_vals ) , 0xc0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_terminationtriggers_nr ,
{ " None Reachable (NR) " , " ansi_map.terminationtriggers.nr " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_terminationtriggers_nr_vals ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_trans_cap_tl ,
{ " TerminationList (TL) " , " ansi_map.trans_cap_tl " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_trans_cap_tl_bool_val ) , 0x10 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmaserviceoption ,
{ " CDMAServiceOption " , " ansi_map.cdmaserviceoption " ,
FT_UINT16 , BASE_RANGE_STRING | BASE_DEC , RVALS ( & cdmaserviceoption_vals ) , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_MarketID ,
{ " MarketID " , " ansi_map.marketid " ,
FT_UINT16 , BASE_DEC , NULL , 0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_swno ,
{ " Switch Number (SWNO) " , " ansi_map.swno " ,
FT_UINT8 , BASE_DEC , NULL , 0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_idno ,
{ " ID Number " , " ansi_map.idno " ,
FT_UINT32 , BASE_DEC , NULL , 0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_segcount ,
{ " Segment Counter " , " ansi_map.segcount " ,
FT_UINT8 , BASE_DEC , NULL , 0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_sms_originationrestrictions_direct ,
{ " DIRECT " , " ansi_map.originationrestrictions.direct " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_SMS_OriginationRestrictions_direct_bool_val ) , 0x04 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_sms_originationrestrictions_default ,
{ " DEFAULT " , " ansi_map.originationrestrictions.default " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_SMS_OriginationRestrictions_default_vals ) , 0x03 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_systemcapabilities_auth ,
{ " Authentication Parameters Requested (AUTH) " , " ansi_map.systemcapabilities.auth " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_systemcapabilities_auth_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_systemcapabilities_vp ,
{ " Voice Privacy Capable (VP ) " , " ansi_map.systemcapabilities.vp " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_systemcapabilities_vp_bool_val ) , 0x04 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_systemcapabilities_cave ,
{ " CAVE Algorithm Capable (CAVE) " , " ansi_map.systemcapabilities.cave " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_systemcapabilities_cave_bool_val ) , 0x08 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_systemcapabilities_ssd ,
{ " Shared SSD (SSD) " , " ansi_map.systemcapabilities.ssd " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_systemcapabilities_ssd_bool_val ) , 0x10 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_systemcapabilities_dp ,
{ " Data Privacy (DP) " , " ansi_map.systemcapabilities.dp " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_systemcapabilities_dp_bool_val ) , 0x20 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_mslocation_lat ,
{ " Latitude in tenths of a second " , " ansi_map.mslocation.lat " ,
FT_UINT8 , BASE_DEC , NULL , 0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_mslocation_long ,
{ " Longitude in tenths of a second " , " ansi_map.mslocation.long " ,
FT_UINT8 , BASE_DEC , NULL , 0 ,
" Switch Number (SWNO) " , HFILL } } ,
{ & hf_ansi_map_mslocation_res ,
{ " Resolution in units of 1 foot " , " ansi_map.mslocation.res " ,
FT_UINT8 , BASE_DEC , NULL , 0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_nampscallmode_namps ,
{ " Call Mode " , " ansi_map.nampscallmode.namps " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CallMode_namps_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_nampscallmode_amps ,
{ " Call Mode " , " ansi_map.nampscallmode.amps " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CallMode_amps_bool_val ) , 0x02 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_nampschanneldata_CCIndicator ,
{ " Color Code Indicator (CCIndicator) " , " ansi_map.nampschanneldata.ccindicator " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_NAMPSChannelData_ccinidicator_vals ) , 0x1c ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_callingfeaturesindicator_cwfa ,
{ " Call Waiting: FeatureActivity, CW-FA " , " ansi_map.callingfeaturesindicator.cwfa " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_FeatureActivity_vals ) , 0xc0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-09-06 14:25:47 +00:00
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_callingfeaturesindicator_ahfa ,
{ " Answer Hold: FeatureActivity AH-FA " , " ansi_map.callingfeaturesindicator.ahfa " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_FeatureActivity_vals ) , 0x30 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_callingfeaturesindicator_cdfa ,
{ " Call Delivery: FeatureActivity, CD-FA " , " ansi_map.callingfeaturesindicator.cdfa " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_FeatureActivity_vals ) , 0x0c ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_callingfeaturesindicator_vpfa ,
{ " Voice Privacy FeatureActivity, VP-FA " , " ansi_map.callingfeaturesindicator.vpfa " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_FeatureActivity_vals ) , 0x30 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_callingfeaturesindicator_ctfa ,
{ " Call Transfer: FeatureActivity, CT-FA " , " ansi_map.callingfeaturesindicator.ctfa " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_FeatureActivity_vals ) , 0xc0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmacallmode_cdma ,
{ " Call Mode " , " ansi_map.cdmacallmode.cdma " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CDMACallMode_cdma_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmacallmode_amps ,
{ " Call Mode " , " ansi_map.cdmacallmode.amps " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CallMode_amps_bool_val ) , 0x02 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmacallmode_namps ,
{ " Call Mode " , " ansi_map.cdmacallmode.namps " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CallMode_namps_bool_val ) , 0x04 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmacallmode_cls1 ,
{ " Call Mode " , " ansi_map.cdmacallmode.cls1 " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CDMACallMode_cls1_bool_val ) , 0x08 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmacallmode_cls2 ,
{ " Call Mode " , " ansi_map.cdmacallmode.cls2 " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CDMACallMode_cls2_bool_val ) , 0x10 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmacallmode_cls3 ,
{ " Call Mode " , " ansi_map.cdmacallmode.cls3 " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CDMACallMode_cls3_bool_val ) , 0x20 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmacallmode_cls4 ,
{ " Call Mode " , " ansi_map.cdmacallmode.cls4 " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CDMACallMode_cls4_bool_val ) , 0x40 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmacallmode_cls5 ,
{ " Call Mode " , " ansi_map.cdmacallmode.cls5 " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CDMACallMode_cls5_bool_val ) , 0x80 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmacallmode_cls6 ,
{ " Call Mode " , " ansi_map.cdmacallmode.cls6 " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CDMACallMode_cls6_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmacallmode_cls7 ,
{ " Call Mode " , " ansi_map.cdmacallmode.cls7 " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CDMACallMode_cls7_bool_val ) , 0x02 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmacallmode_cls8 ,
{ " Call Mode " , " ansi_map.cdmacallmode.cls8 " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CDMACallMode_cls8_bool_val ) , 0x04 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmacallmode_cls9 ,
{ " Call Mode " , " ansi_map.cdmacallmode.cls9 " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CDMACallMode_cls9_bool_val ) , 0x08 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmacallmode_cls10 ,
{ " Call Mode " , " ansi_map.cdmacallmode.cls10 " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CDMACallMode_cls10_bool_val ) , 0x10 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmachanneldata_Frame_Offset ,
{ " Frame Offset " , " ansi_map.cdmachanneldata.frameoffset " ,
FT_UINT8 , BASE_DEC , NULL , 0x78 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmachanneldata_CDMA_ch_no ,
{ " CDMA Channel Number " , " ansi_map.cdmachanneldata.cdma_ch_no " ,
FT_UINT16 , BASE_DEC , NULL , 0x07FF ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
" Long Code Mask MSB (byte 6) " , HFILL } } ,
{ & hf_ansi_map_cdmachanneldata_lc_mask_b5 ,
{ " Long Code Mask (byte 5) " , " ansi_map.cdmachanneldata.lc_mask_b5 " ,
FT_UINT8 , BASE_HEX , NULL , 0xff ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmachanneldata_lc_mask_b4 ,
{ " Long Code Mask (byte 4) " , " ansi_map.cdmachanneldata.lc_mask_b4 " ,
FT_UINT8 , BASE_HEX , NULL , 0xff ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmachanneldata_lc_mask_b3 ,
{ " Long Code Mask (byte 3) " , " ansi_map.cdmachanneldata.lc_mask_b3 " ,
FT_UINT8 , BASE_HEX , NULL , 0xff ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmachanneldata_lc_mask_b2 ,
{ " Long Code Mask (byte 2) " , " ansi_map.cdmachanneldata.lc_mask_b2 " ,
FT_UINT8 , BASE_HEX , NULL , 0xff ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
" Long Code Mask (byte 1)LSB " , HFILL } } ,
{ & hf_ansi_map_cdmachanneldata_np_ext ,
{ " NP EXT " , " ansi_map.cdmachanneldata.np_ext " ,
FT_BOOLEAN , 8 , NULL , 0x80 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmachanneldata_nominal_pwr ,
{ " Nominal Power " , " ansi_map.cdmachanneldata.nominal_pwr " ,
FT_UINT8 , BASE_DEC , NULL , 0x71 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmachanneldata_nr_preamble ,
{ " Number Preamble " , " ansi_map.cdmachanneldata.nr_preamble " ,
FT_UINT8 , BASE_DEC , NULL , 0x07 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmastationclassmark_pc ,
{ " Power Class(PC) " , " ansi_map.cdmastationclassmark.pc " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_CDMAStationClassMark_pc_vals ) , 0x03 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmastationclassmark_dtx ,
{ " Analog Transmission: (DTX) " , " ansi_map.cdmastationclassmark.dtx " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CDMAStationClassMark_dtx_bool_val ) , 0x04 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmastationclassmark_smi ,
2009-06-24 01:40:54 +00:00
{ " Slotted Mode Indicator: (SMI) " , " ansi_map.cdmastationclassmark.smi " ,
2009-03-15 15:40:55 +00:00
FT_BOOLEAN , 8 , TFS ( & ansi_map_CDMAStationClassMark_smi_bool_val ) , 0x20 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_cdmastationclassmark_dmi ,
{ " Dual-mode Indicator(DMI) " , " ansi_map.cdmastationclassmark.dmi " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_CDMAStationClassMark_dmi_bool_val ) , 0x40 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_channeldata_vmac ,
{ " Voice Mobile Attenuation Code (VMAC) " , " ansi_map.channeldata.vmac " ,
FT_UINT8 , BASE_DEC , NULL , 0x07 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_channeldata_dtx ,
{ " Discontinuous Transmission Mode (DTX) " , " ansi_map.channeldata.dtx " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_ChannelData_dtx_vals ) , 0x18 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_channeldata_scc ,
{ " SAT Color Code (SCC) " , " ansi_map.channeldata.scc " ,
FT_UINT8 , BASE_DEC , NULL , 0xc0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_channeldata_chno ,
{ " Channel Number (CHNO) " , " ansi_map.channeldata.chno " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_ConfidentialityModes_vp ,
{ " Voice Privacy (VP) Confidentiality Status " , " ansi_map.confidentialitymodes.vp " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_ConfidentialityModes_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_controlchanneldata_dcc ,
{ " Digital Color Code (DCC) " , " ansi_map.controlchanneldata.dcc " ,
FT_UINT8 , BASE_DEC , NULL , 0xc0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_controlchanneldata_cmac ,
{ " Control Mobile Attenuation Code (CMAC) " , " ansi_map.controlchanneldata.cmac " ,
FT_UINT8 , BASE_DEC , NULL , 0x07 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_controlchanneldata_chno ,
{ " Channel Number (CHNO) " , " ansi_map.controlchanneldata.cmac " ,
FT_UINT16 , BASE_DEC , NULL , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_controlchanneldata_sdcc1 ,
{ " Supplementary Digital Color Codes (SDCC1) " , " ansi_map.controlchanneldata.ssdc1 " ,
FT_UINT8 , BASE_DEC , NULL , 0x0c ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_controlchanneldata_sdcc2 ,
{ " Supplementary Digital Color Codes (SDCC2) " , " ansi_map.controlchanneldata.ssdc2 " ,
FT_UINT8 , BASE_DEC , NULL , 0x03 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & 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 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_ConfidentialityModes_dp ,
{ " DataPrivacy (DP) Confidentiality Status " , " ansi_map.confidentialitymodes.dp " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_ConfidentialityModes_bool_val ) , 0x04 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_deniedauthorizationperiod_period ,
{ " Period " , " ansi_map.deniedauthorizationperiod.period " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_deniedauthorizationperiod_period_vals ) , 0x0 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_all ,
{ " All Origination (All) " , " ansi_map.originationtriggers.all " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_all_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_local ,
{ " Local " , " ansi_map.originationtriggers.all " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_local_bool_val ) , 0x02 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_ilata ,
{ " Intra-LATA Toll (ILATA) " , " ansi_map.originationtriggers.ilata " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_ilata_bool_val ) , 0x04 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_olata ,
{ " Inter-LATA Toll (OLATA) " , " ansi_map.originationtriggers.olata " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_olata_bool_val ) , 0x08 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_int ,
{ " International (Int'l ) " , " ansi_map.originationtriggers.int " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_int_bool_val ) , 0x10 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_wz ,
{ " World Zone (WZ) " , " ansi_map.originationtriggers.wz " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_wz_bool_val ) , 0x20 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_unrec ,
{ " Unrecognized Number (Unrec) " , " ansi_map.originationtriggers.unrec " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_unrec_bool_val ) , 0x40 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_rvtc ,
{ " Revertive Call (RvtC) " , " ansi_map.originationtriggers.rvtc " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_rvtc_bool_val ) , 0x80 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_star ,
{ " Star " , " ansi_map.originationtriggers.star " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_star_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_ds ,
{ " Double Star (DS) " , " ansi_map.originationtriggers.ds " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_ds_bool_val ) , 0x02 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_pound ,
{ " Pound " , " ansi_map.originationtriggers.pound " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_pound_bool_val ) , 0x04 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_dp ,
{ " Double Pound (DP) " , " ansi_map.originationtriggers.dp " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_dp_bool_val ) , 0x08 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_pa ,
{ " Prior Agreement (PA) " , " ansi_map.originationtriggers.pa " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_pa_bool_val ) , 0x10 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_nodig ,
{ " No digits " , " ansi_map.originationtriggers.nodig " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_nodig_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_onedig ,
{ " 1 digit " , " ansi_map.originationtriggers.onedig " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_onedig_bool_val ) , 0x02 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_twodig ,
{ " 2 digits " , " ansi_map.originationtriggers.twodig " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_twodig_bool_val ) , 0x04 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_threedig ,
{ " 3 digits " , " ansi_map.originationtriggers.threedig " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_threedig_bool_val ) , 0x08 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_fourdig ,
{ " 4 digits " , " ansi_map.originationtriggers.fourdig " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_fourdig_bool_val ) , 0x10 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_fivedig ,
{ " 5 digits " , " ansi_map.originationtriggers.fivedig " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_fivedig_bool_val ) , 0x20 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_sixdig ,
{ " 6 digits " , " ansi_map.originationtriggers.sixdig " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_sixdig_bool_val ) , 0x40 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_sevendig ,
{ " 7 digits " , " ansi_map.originationtriggers.sevendig " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_sevendig_bool_val ) , 0x80 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_eightdig ,
{ " 8 digits " , " ansi_map.originationtriggers.eight " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_eightdig_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_ninedig ,
{ " 9 digits " , " ansi_map.originationtriggers.nine " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_ninedig_bool_val ) , 0x02 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_tendig ,
{ " 10 digits " , " ansi_map.originationtriggers.ten " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_tendig_bool_val ) , 0x04 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_elevendig ,
{ " 11 digits " , " ansi_map.originationtriggers.eleven " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_elevendig_bool_val ) , 0x08 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_twelvedig ,
{ " 12 digits " , " ansi_map.originationtriggers.twelve " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_twelvedig_bool_val ) , 0x10 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_thirteendig ,
{ " 13 digits " , " ansi_map.originationtriggers.thirteen " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_thirteendig_bool_val ) , 0x20 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_fourteendig ,
{ " 14 digits " , " ansi_map.originationtriggers.fourteen " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_fourteendig_bool_val ) , 0x40 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_originationtriggers_fifteendig ,
{ " 15 digits " , " ansi_map.originationtriggers.fifteen " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_originationtriggers_fifteendig_bool_val ) , 0x80 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_init ,
{ " Introducing Star/Pound (INIT) " , " ansi_map.triggercapability.init " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_kdigit ,
{ " K-digit (K-digit) " , " ansi_map.triggercapability.kdigit " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x02 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_all ,
{ " All_Calls (All) " , " ansi_map.triggercapability.all " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x04 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_rvtc ,
{ " Revertive_Call (RvtC) " , " ansi_map.triggercapability.rvtc " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x08 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_oaa ,
{ " Origination_Attempt_Authorized (OAA) " , " ansi_map.triggercapability.oaa " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x10 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_oans ,
{ " O_Answer (OANS) " , " ansi_map.triggercapability.oans " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x20 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_odisc ,
{ " O_Disconnect (ODISC) " , " ansi_map.triggercapability.odisc " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x40 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_ona ,
{ " O_No_Answer (ONA) " , " ansi_map.triggercapability.ona " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x80 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_ct ,
{ " Call Types (CT) " , " ansi_map.triggercapability.ona " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_unrec ,
{ " Unrecognized_Number (Unrec) " , " ansi_map.triggercapability.unrec " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x02 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_pa ,
{ " Prior_Agreement (PA) " , " ansi_map.triggercapability.pa " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x04 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_at ,
{ " Advanced_Termination (AT) " , " ansi_map.triggercapability.at " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x08 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_cgraa ,
{ " Calling_Routing_Address_Available (CgRAA) " , " ansi_map.triggercapability.cgraa " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x10 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_it ,
{ " Initial_Termination (IT) " , " ansi_map.triggercapability.it " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x20 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_cdraa ,
{ " Called_Routing_Address_Available (CdRAA) " , " ansi_map.triggercapability.cdraa " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x40 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_obsy ,
{ " O_Called_Party_Busy (OBSY) " , " ansi_map.triggercapability.ona " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x80 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_tra ,
{ " Terminating_Resource_Available (TRA) " , " ansi_map.triggercapability.tra " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_tbusy ,
{ " T_Busy (TBusy) " , " ansi_map.triggercapability.tbusy " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x02 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_tna ,
{ " T_No_Answer (TNA) " , " ansi_map.triggercapability.tna " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x04 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_tans ,
{ " T_Answer (TANS) " , " ansi_map.triggercapability.tans " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x08 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_triggercapability_tdisc ,
2009-06-24 01:40:54 +00:00
{ " T_Disconnect (TDISC) " , " ansi_map.triggercapability.tdisc " ,
2009-03-15 15:40:55 +00:00
FT_BOOLEAN , 8 , TFS ( & ansi_map_triggercapability_bool_val ) , 0x10 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_winoperationscapability_conn ,
{ " ConnectResource (CONN) " , " ansi_map.winoperationscapability.conn " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_winoperationscapability_conn_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_winoperationscapability_ccdir ,
{ " CallControlDirective(CCDIR) " , " ansi_map.winoperationscapability.ccdir " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_winoperationscapability_ccdir_bool_val ) , 0x02 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_winoperationscapability_pos ,
{ " PositionRequest (POS) " , " ansi_map.winoperationscapability.pos " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_winoperationscapability_pos_bool_val ) , 0x04 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_pacaindicator_pa ,
{ " Permanent Activation (PA) " , " ansi_map.pacaindicator_pa " ,
FT_BOOLEAN , 8 , TFS ( & ansi_map_pacaindicator_pa_bool_val ) , 0x01 ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-03-15 15:40:55 +00:00
{ & hf_ansi_map_PACA_Level ,
{ " PACA Level " , " ansi_map.PACA_Level " ,
FT_UINT8 , BASE_DEC , VALS ( ansi_map_PACA_Level_vals ) , 0x1e ,
2009-06-24 01:40:54 +00:00
NULL , HFILL } } ,
2009-09-06 14:25:47 +00:00
2005-12-18 18:17:29 +00:00
# include "packet-ansi_map-hfarr.c"
2009-03-15 15:40:55 +00:00
} ;
/* List of subtrees */
static gint * ett [ ] = {
& ett_ansi_map ,
& ett_mintype ,
& ett_digitstype ,
& ett_billingid ,
& ett_sms_bearer_data ,
& ett_sms_teleserviceIdentifier ,
& ett_extendedmscid ,
& ett_extendedsystemmytypecode ,
& ett_handoffstate ,
& ett_mscid ,
& ett_cdmachanneldata ,
& ett_cdmastationclassmark ,
& ett_channeldata ,
& ett_confidentialitymodes ,
& ett_controlchanneldata ,
& ett_CDMA2000HandoffInvokeIOSData ,
& ett_CDMA2000HandoffResponseIOSData ,
& ett_originationtriggers ,
& ett_pacaindicator ,
& ett_callingpartyname ,
& ett_triggercapability ,
& ett_winoperationscapability ,
& ett_win_trigger_list ,
& ett_controlnetworkid ,
& ett_transactioncapability ,
& ett_cdmaserviceoption ,
& ett_sms_originationrestrictions ,
& ett_systemcapabilities ,
2005-12-18 18:17:29 +00:00
# include "packet-ansi_map-ettarr.c"
2009-03-15 15:40:55 +00:00
} ;
2005-12-18 18:17:29 +00:00
2011-02-04 16:12:59 +00:00
static enum_val_t ansi_map_response_matching_type_values [ ] = {
{ " Only Transaction ID will be used in Invoke/response matching " , " Transaction ID only " , 0 } ,
2011-05-18 20:06:17 +00:00
{ " Transaction ID and Source will be used in Invoke/response matching " , " Transaction ID and Source " , 1 } ,
2011-02-04 16:12:59 +00:00
{ " Transaction ID Source and Destination will be used in Invoke/response matching " , " Transaction ID Source and Destination " , 2 } ,
{ NULL , NULL , - 1 }
} ;
2005-12-18 18:17:29 +00:00
2009-03-15 15:40:55 +00:00
/* 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 ) ) ;
2009-09-06 14:25:47 +00:00
2009-03-15 15:40:55 +00:00
register_dissector ( " ansi_map " , dissect_ansi_map , proto_ansi_map ) ;
2005-12-18 18:17:29 +00:00
2009-03-15 15:40:55 +00:00
is637_tele_id_dissector_table =
register_dissector_table ( " ansi_map.tele_id " , " IS-637 Teleservice ID " ,
FT_UINT8 , BASE_DEC ) ;
2005-12-18 18:17:29 +00:00
2009-03-15 15:40:55 +00:00
is683_dissector_table =
register_dissector_table ( " ansi_map.ota " , " IS-683-A (OTA) " ,
FT_UINT8 , BASE_DEC ) ;
2005-12-18 18:17:29 +00:00
2009-03-15 15:40:55 +00:00
is801_dissector_table =
register_dissector_table ( " ansi_map.pld " , " IS-801 (PLD) " ,
FT_UINT8 , BASE_DEC ) ;
2005-12-18 18:17:29 +00:00
2009-03-15 15:40:55 +00:00
ansi_map_tap = register_tap ( " ansi_map " ) ;
2005-12-18 18:17:29 +00:00
2009-03-15 15:40:55 +00:00
range_convert_str ( & global_ssn_range , " 5-14 " , MAX_SSN ) ;
2005-12-18 18:17:29 +00:00
2009-03-15 15:40:55 +00:00
ansi_map_module = prefs_register_protocol ( proto_ansi_map , proto_reg_handoff_ansi_map ) ;
2009-09-06 14:25:47 +00:00
2005-12-18 18:17:29 +00:00
2009-03-15 15:40:55 +00:00
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 ) ;
2007-01-01 22:03:01 +00:00
2011-02-04 16:12:59 +00:00
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 ) ;
2009-03-15 15:40:55 +00:00
register_init_routine ( & ansi_map_init_protocol ) ;
2005-12-18 18:17:29 +00:00
}
2006-06-17 16:19:23 +00:00