2007-08-17 21:31:22 +00:00
/* packet-dpnss_dass2.c
* Routines for DPNNS / DASS2 dissection
* Copyright 2007 , Anders Broman < anders . broman [ at ] ericsson . com >
2007-08-22 21:47:31 +00:00
*
2008-12-17 17:23:37 +00:00
* Supplementary string parameter table and testing by Tomas Muehlhoff .
2007-08-17 21:31:22 +00:00
*
* $ Id $
*
* Wireshark - Network traffic analyzer
* By Gerald Combs < gerald @ wireshark . org >
* 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 .
*
* References :
* ND1301 : 2001 / 03 http : //www.nicc.org.uk/nicc-public/Public/interconnectstandards/dpnss/nd1301_2004_11.pdf
2007-08-28 17:50:02 +00:00
* http : //acacia-net.com/wwwcla/protocol/dass2_l3.htm
2007-08-17 21:31:22 +00:00
*/
# ifdef HAVE_CONFIG_H
# include "config.h"
# endif
# include <stdlib.h>
# include <glib.h>
# include <epan/packet.h>
# include <epan/proto.h>
/* Initialize the protocol and registered fields */
2007-08-19 20:26:08 +00:00
static int proto_dpnss = - 1 ;
static int hf_dpnss_msg_grp_id = - 1 ;
static int hf_dpnss_cc_msg_type = - 1 ;
static int hf_dpnss_e2e_msg_type = - 1 ;
static int hf_dpnss_LbL_msg_type = - 1 ;
static int hf_dpnss_ext_bit = - 1 ;
static int hf_dpnss_ext_bit_notall = - 1 ;
static int hf_dpnss_sic_type = - 1 ;
static int hf_dpnss_sic_details_for_speech = - 1 ;
static int hf_dpnss_sic_details_for_data1 = - 1 ;
static int hf_dpnss_sic_details_for_data2 = - 1 ;
static int hf_dpnss_dest_addr = - 1 ;
static int hf_dpnss_sic_oct2_data_type = - 1 ;
static int hf_dpnss_sic_oct2_duplex = - 1 ;
static int hf_dpnss_sic_oct2_sync_data_format = - 1 ;
static int hf_dpnss_sic_oct2_sync_byte_timing = - 1 ;
static int hf_dpnss_sic_oct2_net_ind_clk = - 1 ;
static int hf_dpnss_sic_oct2_async_data = - 1 ;
static int hf_dpnss_sic_oct2_async_flow_ctrl = - 1 ;
static int hf_dpnss_clearing_cause = - 1 ;
2007-08-20 20:58:02 +00:00
static int hf_dpnss_rejection_cause = - 1 ;
static int hf_dpnss_man_code = - 1 ;
static int hf_dpnss_subcode = - 1 ;
static int hf_dpnss_maintenance_action = - 1 ;
2007-08-17 21:31:22 +00:00
2007-08-28 17:50:02 +00:00
/* parameters */
static int hf_dpnss_a_b_party_addr = - 1 ;
static int hf_dpnss_call_idx = - 1 ;
2007-08-17 21:31:22 +00:00
# define DPNNS_MESSAGE_GROUP_CC 0
# define DPNNS_MESSAGE_GROUP_E2E 2
# define DPNNS_MESSAGE_GROUP_LbL 4
2007-08-19 20:26:08 +00:00
# define DPNSS_CC_MSG_ISRM_C 0
# define DPNSS_CC_MSG_ISRM_I 1
# define DPNSS_CC_MSG_RM_C 2
# define DPNSS_CC_MSG_RM_I 3
2007-08-28 17:50:02 +00:00
# define DPNSS_CC_MSG_CS 4
2007-08-19 20:26:08 +00:00
# define DPNSS_CC_MSG_CCM 5
# define DPNSS_CC_MSG_NIM 6
2007-08-28 17:50:02 +00:00
# define DPNSS_CC_MSG_CA 7
2007-08-19 20:26:08 +00:00
# define DPNSS_CC_MSG_CRM 8
# define DPNSS_CC_MSG_NAM 9
# define DPNSS_CC_MSG_RRM 10
# define DPNSS_CC_MSG_SSRM_I 11
# define DPNSS_CC_MSG_SSRM_C 12
2007-08-17 21:31:22 +00:00
/* Initialize the subtree pointers */
2007-08-19 20:26:08 +00:00
static int ett_dpnss = - 1 ;
static int ett_dpnss_sel_field = - 1 ;
static int ett_dpnss_sic_field = - 1 ;
static int ett_dpnss_ind_field = - 1 ;
2007-08-22 21:47:31 +00:00
static int ett_dpnss_sup_str = - 1 ;
2007-08-17 21:31:22 +00:00
static const value_string dpnss_msg_grp_id_vals [ ] = {
{ 0 , " Call Control Message Group " } ,
{ 2 , " End-to-End Message Group " } ,
{ 4 , " Link-by-Link Message Group " } ,
{ 0 , NULL }
} ;
static const value_string dpnss_cc_msg_type_vals [ ] = {
2007-08-22 21:47:31 +00:00
{ DPNSS_CC_MSG_ISRM_C , " INITIAL SERVICE REQUEST Message (COMPLETE) - ISRM(C) " } ,
2007-08-19 20:26:08 +00:00
{ DPNSS_CC_MSG_ISRM_I , " INITIAL SERVICE REQUEST Message (INCOMPLETE) - ISRM(I) " } ,
{ DPNSS_CC_MSG_RM_C , " RECALL Message (COMPLETE) - RM(C) " } ,
{ DPNSS_CC_MSG_RM_I , " RECALL Message (INCOMPLETE) - RM(I) " } ,
2007-08-28 17:50:02 +00:00
{ DPNSS_CC_MSG_CS , " CHANNEL SEIZED - CS " } ,
2007-08-19 20:26:08 +00:00
{ DPNSS_CC_MSG_CCM , " CALL CONNECTED Message - CCM " } ,
{ DPNSS_CC_MSG_NIM , " NETWORK INDICATION Message - NIM " } ,
2007-08-28 17:50:02 +00:00
{ DPNSS_CC_MSG_CA , " CALL ARRIVAL Message - CA " } ,
2007-08-19 20:26:08 +00:00
{ DPNSS_CC_MSG_CRM , " CLEAR REQUEST Message - CRM/CLEAR INDICATION Message - CIM " } , /* Humm chek 2.1.7/2.1.8 - depends on dir? */
{ DPNSS_CC_MSG_NAM , " NUMBER ACKNOWLEDGE Message - NAM " } ,
{ DPNSS_CC_MSG_RRM , " RECALL REJECTION Message - RRM " } ,
{ DPNSS_CC_MSG_SSRM_I , " SUBSEQUENT SERVICE REQUEST Message (INCOMPLETE) - SSRM(I) " } ,
{ DPNSS_CC_MSG_SSRM_C , " SUBSEQUENT SERVICE REQUEST Message (COMPLETE) - SSRM(C) " } ,
2007-08-17 21:31:22 +00:00
{ 0 , NULL }
} ;
static const value_string dpnss_cc_msg_short_type_vals [ ] = {
2007-08-22 21:47:31 +00:00
{ DPNSS_CC_MSG_ISRM_C , " ISRM(C) " } ,
2007-08-19 20:26:08 +00:00
{ DPNSS_CC_MSG_ISRM_I , " ISRM(I) " } ,
{ DPNSS_CC_MSG_RM_C , " RM(C) " } ,
{ DPNSS_CC_MSG_RM_I , " RM(I) " } ,
2007-08-28 17:50:02 +00:00
{ DPNSS_CC_MSG_CS , " CS " } ,
2007-08-19 20:26:08 +00:00
{ DPNSS_CC_MSG_CCM , " CCM " } ,
2007-08-28 17:50:02 +00:00
{ DPNSS_CC_MSG_CA , " CA " } ,
2007-08-19 20:26:08 +00:00
{ DPNSS_CC_MSG_NIM , " NIM " } ,
{ DPNSS_CC_MSG_CRM , " CRM/CIM " } , /* Humm chek 2.1.7/2.1.8 - depends on dir? */
{ DPNSS_CC_MSG_NAM , " NAM " } ,
{ DPNSS_CC_MSG_RRM , " RRM " } ,
{ DPNSS_CC_MSG_SSRM_I , " SSRM(I) " } ,
{ DPNSS_CC_MSG_SSRM_C , " SSRM(C) " } ,
2007-08-17 21:31:22 +00:00
{ 0 , NULL }
} ;
2007-08-20 20:58:02 +00:00
# define DPNSS_E2E_MSG_EEM_C 2
# define DPNSS_E2E_MSG_EEM_I 3
# define DPNSS_E2E_MSG_SCRM 4
# define DPNSS_E2E_MSG_SCIM 5
# define DPNSS_E2E_MSG_ERM_C 6
# define DPNSS_E2E_MSG_ERM_I 7
# define DPNSS_E2E_MSG_NSIM 8
2007-08-17 21:31:22 +00:00
/* 2.2 END-TO-END MESSAGE GROUP */
static const value_string dpnss_e2e_msg_type_vals [ ] = {
{ 2 , " END-to-END Message (COMPLETE) - EEM(C) " } ,
{ 3 , " END-to-END Message (INCOMPLETE) - EEM(I) " } ,
{ 4 , " SINGLE-CHANNEL CLEAR REQUEST Message - SCRM " } ,
{ 5 , " SINGLE-CHANNEL CLEAR INDICATION Message - SCIM " } ,
{ 6 , " END-to-END RECALL Message (COMPLETE) - ERM(C) " } ,
{ 7 , " END-to-END RECALL Message (INCOMPLETE) - ERM(I) " } ,
{ 8 , " NON SPECIFIED INFORMATION Message - NSIM " } ,
{ 0 , NULL }
} ;
static const value_string dpnss_e2e_msg_short_type_vals [ ] = {
{ 2 , " EEM(C) " } ,
{ 3 , " EEM(I) " } ,
{ 4 , " SCRM " } ,
{ 5 , " SCIM " } ,
{ 6 , " ERM(C) " } ,
{ 7 , " ERM(I) " } ,
{ 8 , " NSIM " } ,
{ 0 , NULL }
} ;
2007-08-20 20:58:02 +00:00
# define DPNSS_LbL_MSG_LLM_C 0
# define DPNSS_LbL_MSG_LLM_I 1
# define DPNSS_LbL_MSG_LLRM 2
# define DPNSS_LbL_MSG_SM 4
# define DPNSS_LbL_MSG_LMM 5
# define DPNSS_LbL_MSG_LMRM 6
2007-08-17 21:31:22 +00:00
/* 2.3 LINK-BY-LINK MESSAGE GROUP */
static const value_string dpnss_LbL_msg_type_vals [ ] = {
{ 0 , " LINK-by-LINK Message (COMPLETE) - LLM(C) " } ,
{ 1 , " LINK-by-LINK Message (INCOMPLETE) - LLM(I) " } ,
{ 2 , " LINK-by-LINK REJECT Message - LLRM " } ,
{ 4 , " SWAP Message - SM " } ,
{ 5 , " LINK MAINTENANCE Message - LMM " } ,
{ 6 , " LINK MAINTENANCE REJECT Message - LMRM " } ,
{ 0 , NULL }
} ;
static const value_string dpnss_LbL_msg_short_type_vals [ ] = {
{ 0 , " LLM(C) " } ,
{ 1 , " LLM(I) " } ,
{ 2 , " LLRM " } ,
{ 4 , " SM " } ,
{ 5 , " LMM " } ,
{ 6 , " LMRM " } ,
{ 0 , NULL }
} ;
static const true_false_string dpnss_ext_bit_vals = {
" further octet(s) follow " ,
" no further octets "
} ;
2007-08-19 20:26:08 +00:00
static const true_false_string dpnss_ext_bit_no_ext_vals = {
" no further octets " ,
" Invalid "
} ;
2007-08-17 21:31:22 +00:00
/* SECTION 4 ANNEX 1 */
static const value_string dpnss_sic_type_type_vals [ ] = {
{ 0 , " invalid " } ,
{ 1 , " speech " } ,
{ 2 , " data " } ,
{ 3 , " data " } ,
{ 4 , " interworking with DASS 2 - treat as data " } ,
{ 5 , " interworking with DASS 2 - treat as data " } ,
{ 6 , " interworking with DASS 2 - treat as data " } ,
{ 7 , " interworking with DASS 2 - treat as data " } ,
{ 0 , NULL }
} ;
2007-08-19 20:26:08 +00:00
static const value_string dpnss_sic_details_for_speech_vals [ ] = {
2007-08-17 21:31:22 +00:00
{ 0 , " 64 kbit/s PCM G.711 A-Law or analogue " } ,
{ 1 , " 32 kbit/s ADPCM G.721 " } ,
{ 2 , " 64 kbit/s PCM G.711 u-Law or analogue " } ,
{ 3 , " Invalid " } ,
{ 4 , " Invalid " } ,
{ 5 , " Invalid " } ,
{ 6 , " Invalid " } ,
{ 7 , " Invalid " } ,
{ 8 , " Invalid " } ,
{ 9 , " Invalid " } ,
{ 10 , " Invalid " } ,
{ 11 , " Invalid " } ,
{ 12 , " Invalid " } ,
{ 13 , " Invalid " } ,
{ 14 , " Invalid " } ,
{ 15 , " Invalid " } ,
{ 0 , NULL }
} ;
2007-08-19 20:26:08 +00:00
static const value_string dpnss_sic_details_for_data_rates1_vals [ ] = {
2007-08-17 21:31:22 +00:00
{ 0 , " 64000 bit/s " } ,
{ 1 , " 56000 bit/s " } ,
{ 2 , " 48000 bit/s " } ,
{ 3 , " 32000 bit/s " } ,
{ 4 , " 19200 bit/s " } ,
{ 5 , " 16000 bit/s " } ,
{ 6 , " 14400 bit/s " } ,
{ 7 , " 12000 bit/s " } ,
{ 8 , " 9600 bit/s " } ,
{ 9 , " 8000 bit/s " } ,
{ 10 , " 7200 bit/s " } ,
{ 11 , " 4800 bit/s " } ,
{ 12 , " 3600 bit/s " } ,
{ 13 , " 2400 bit/s " } ,
{ 14 , " 1200 bit/s " } ,
{ 15 , " 600 bit/s " } ,
{ 0 , NULL }
} ;
2007-08-19 20:26:08 +00:00
static const value_string dpnss_sic_details_for_data_rates2_vals [ ] = {
2007-08-17 21:31:22 +00:00
{ 0 , " 300 bit/s " } ,
{ 1 , " 200 bit/s " } ,
{ 2 , " 150 bit/s " } ,
{ 3 , " 134.5 bit/s " } ,
{ 4 , " 110 bit/s " } ,
{ 5 , " 100 bit/s " } ,
{ 6 , " 75 bit/s " } ,
{ 7 , " 50 bit/s " } ,
{ 8 , " 75/1200 bit/s " } ,
{ 9 , " 1200/75 bit/s " } ,
{ 10 , " invalid " } ,
{ 11 , " invalid " } ,
{ 12 , " invalid " } ,
{ 13 , " invalid " } ,
{ 14 , " invalid " } ,
{ 15 , " invalid " } ,
{ 0 , NULL }
} ;
2007-08-19 20:26:08 +00:00
/* Octet 2 */
static const value_string dpnss_sic_oct2_data_type_vals [ ] = {
{ 0 , " Invalid " } ,
{ 1 , " Invalid " } ,
{ 2 , " Invalid " } ,
{ 3 , " Synchronous " } ,
{ 4 , " Synchronous " } ,
{ 5 , " Asynchronous " } ,
{ 6 , " Asynchronous " } ,
{ 7 , " Asynchronous " } ,
{ 0 , NULL }
} ;
static const true_false_string dpnss_duplex_vals = {
" Half Duplex (HDX) " ,
" Full Duplex (FDX) "
} ;
static const true_false_string dpnss_sic_oct2_sync_data_format_vals = {
" X.25 Packet Mode " ,
" Anonymous or Unformatted "
} ;
static const true_false_string dpnss_sic_oct2_net_ind_clk_vals = {
" Bits E4/E5/E6 indicate phase " ,
" Clock Locked to Transmission "
} ;
static const true_false_string dpnss_provided_vals = {
" Provided " ,
" Not Provided "
} ;
static const value_string dpnss_sic_oct2_async_data_type_vals [ ] = {
{ 0 , " Unspecified " } ,
{ 1 , " 5 data bits " } ,
{ 2 , " 7 data bits " } ,
{ 3 , " 8 data bits " } ,
{ 0 , NULL }
} ;
static const true_false_string dpnss_flow_control_vals = {
" TA has ESRA capability " ,
" TA does not have ESRA capability "
} ;
/* SECTION 4 Global Issue 7
* ANNEX 3 CLEARING / REJECTION CAUSE CODES
*/
static const value_string dpnss_clearing_cause_code_vals [ ] = {
{ 0x29 , " Access Barred " } ,
{ 0x14 , " Acknowledgement " } ,
{ 0x01 , " Address Incomplete " } ,
{ 0x08 , " Busy " } ,
{ 0x23 , " Channel Out of Service " } ,
{ 0x2d , " DTE Controlled Not Ready " } ,
{ 0x07 , " Congestion " } ,
{ 0x30 , " Call Termination " } ,
{ 0x18 , " Facility Not Registered " } ,
{ 0x0a , " Incoming Calls Barred " } ,
{ 0x13 , " Service Incompatible " } ,
{ 0x1a , " Message Not Understood " } ,
{ 0x1e , " Network Address Extension-Error " } ,
{ 0x02 , " Network Termination " } ,
{ 0x00 , " Number Unobtainable " } ,
{ 0x24 , " Priority Forced Release " } ,
{ 0x19 , " Reject " } ,
{ 0x1c , " Route Out of Service " } ,
{ 0x04 , " Subscriber Incompatible " } ,
{ 0x15 , " Signal Not Understood " } ,
{ 0x16 , " Signal Not Valid " } ,
{ 0x09 , " Subscriber Out of Service " } ,
{ 0x1b , " Signalling System Incompatible " } ,
{ 0x17 , " Service Temporarily Unavailable " } ,
{ 0x03 , " Service Unavailable " } ,
{ 0x1d , " Transferred " } ,
{ 0x2e , " DTE Uncontrolled Not Ready " } ,
{ 0 , NULL }
} ;
2007-08-20 20:58:02 +00:00
/* ANNEX 6 : MAINTENANCE ACTIONS (p235) */
static const value_string dpnss_maintenance_actions_vals [ ] = {
{ 0x1 , " BBC - Back-Busy Control " } ,
{ 0x2 , " LBC - Loop-Back Control " } ,
{ 0x3 , " LBA - Loop-Back Abort " } ,
{ 0x4 , " TCS-R - Traffic Channel Status Request " } ,
{ 0x5 , " ACK - Acknowledge " } ,
{ 0x6 , " NTC - Non-Looped-Back Test Control " } ,
{ 0 , NULL }
} ;
/* ANNEX 7 : CODING OF USAGE IDENTIFIERS */
static const value_string dpnss_man_code_vals [ ] = {
{ 0x0 , " Reserved " } ,
{ 0x1 , " BT " } ,
{ 0x2 , " Ericsson " } ,
{ 0x3 , " Lucent " } ,
{ 0x4 , " Philips " } ,
{ 0x5 , " Siemens " } ,
{ 0x6 , " Westell " } ,
{ 0x7 , " Mitel " } ,
{ 0 , NULL }
} ;
2007-08-22 21:47:31 +00:00
# define DPNSS_NONE 0
# define DPNSS_SERV_MAR 1
# define DPNSS_STATUS 2
# define DPNSS_ROUTE_RES_CLASS 3
# define DPNSS_CBR_GRP 4
# define DPNSS_FAC_LST_CODE 5
# define DPNSS_NO_OF_FUR_TRANS 6
# define DPNSS_NO_OF_FUR_ALT_R 7
# define DPNSS_INT_CAP_LEV 8
# define DPNSS_NESTING_LEVEL 9
# define DPNSS_C_PARTY_ADDR 10
# define DPNSS_B_PARTY_ADDR 11
# define DPNSS_SIC 12
# define DPNSS_A_B_PARTY_ADDR 13
# define DPNSS_DIVERSION_TYPE 14
# define DPNSS_NSI_IDENTIFIER 15
# define DPNSS_USER_DEFINED 16
# define DPNSS_TEXT 17
# define DPNSS_CALL_INDEX 18
# define DPNSS_PASSWORD 19
# define DPNSS_CALL_DIR 20
# define DPNSS_DPNSS_ISDN_TYPE 21
# define DPNSS_HC_CLC 22
# define DPNSS_ENHANCED_STR_ID 23
# define DPNSS_STRING_ID 24
# define DPNSS_STRING_ID_LIST 25
# define DPNSS_TEXT_TYPE 26
# define DPNSS_CHANNEL_STATUS 27
# define DPNSS_CHANNEL_NUMBER 28
# define DPNSS_BPL 29
# define DPNSS_BCL 30
# define DPNSS_DEVICE_INDEX 31
# define DPNSS_CR_NO 32
# define DPNSS_CALL_ID_LENGTH 33
# define DPNSS_STATE_OF_DEST 34
# define DPNSS_STATE_OF_DEST_QUAL 35
# define DPNSS_REASON_FOR_REDIR 36
# define DPNSS_CLEARING_CAUSE 37
# define DPNSS_RECONT_ADDR 38
# define DPNSS_STATE_OF_OPERATOR 39
# define DPNSS_NIGHT_SERVICE 40
# define DPNSS_PBX_FLAG 41
# define DPNSS_NUMBER_OF_CALLS 42
# define DPNSS_NUMBER_OF_SERVERS 43
# define DPNSS_PRIORITY_LEVEL 44
# define DPNSS_LOCATION 45
# define DPNSS_SUBADDRESS 46
# define DPNSS_ALARM_LEVEL 47
# define DPNSS_STAFF_PRESENT 48
# define DPNSS_TIME_AND_DATE 49
# define DPNSS_SERVICES 50
# define DPNSS_PBX_REFERENCE 51
# define DPNSS_TRUNK_GROUP_REF_NUMBER 52
# define DPNSS_TRUNK_MEMBER_REF_NUMBER 53
# define DPNSS_CONF_PARTY_INDEX 54
# define DPNSS_CONF_PARTY_DET 55
# define DPNSS_ACCOUNT_CODE 56
# define DPNSS_CONF_BRIDGE_ADDR 57
# define DPNSS_COST_QUALIFIER 58
# define DPNSS_CURRENCY_INDICATION 59
# define DPNSS_CURRENCY_UNITS 60
# define DPNSS_TIME_INTERVAL 61
# define DPNSS_UNITS 62
# define DPNSS_REMOTE_ADDRESS 63
# define DPNSS_TEST_INDEX 64
# define DPNSS_TEST_RESULT 65
# define DPNSS_TYPE_OF_ASSISTANCE 66
# define DPNSS_REST_DOMAIN 67
# define DPNSS_GRP_PICK_UP_CODE 68
# define DPNSS_PICK_UP_CALL_TYPE 69
# define DPNSS_MALICIOUS_CALL_REF 70
# define DPNSS_TIMER_VALUE 71
# define DPNSS_BEARER_CAP 72
# define DPNSS_ISDN_NUM_ATTR 73
# define DPNSS_ISDN_DPNSS_SUBADDRESS 74
# define DPNSS_ISDN_NUMBER_DIGITS 75
# define DPNSS_HIGH_LAYER_COMP 76
# define DPNSS_LOW_LAYER_COMP 77
# define DPNSS_PROGRESS_INDICATOR 78
# define DPNSS_VPN_ACCESS_REF_NUM 79
# define DPNSS_INDEX_NUMBER 80
# define DPNSS_RESTRICTION_INDICATOR 81
# define DPNSS_CAUSE 82
typedef struct {
2009-05-08 14:46:01 +00:00
gint id_code_no ;
const char * compact_name ;
const char * name ;
gint par1_num ;
gint par2_num ;
gint par3_num ;
gint par4_num ;
2007-08-22 21:47:31 +00:00
} dpnns_sup_serv_set_t ;
static const dpnns_sup_serv_set_t dpnns_sup_serv_set [ ] = {
{ 0 , " NOT USED " , " NOT USED " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 1 , " CLC-ORD " , " CALLING/CALLED LINE CATEGORY ORDINARY " , DPNSS_SERV_MAR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 2 , " CLC-DEC " , " CALLING/CALLED LINE CATEGORY DECADIC " , DPNSS_STATUS , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 3 , " CLC-ISDN " , " CALLING/CALLED LINE CATEGORY-PUBLIC ISDN " , DPNSS_STATUS , DPNSS_DPNSS_ISDN_TYPE , DPNSS_NONE , DPNSS_NONE } ,
{ 4 , " CLC-PSTN " , " CALLING/CALLED LINE CATEGORY-PSTN " , DPNSS_STATUS , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 5 , " CLC-MF5 " , " CALLING/CALLED LINE CATEGORY-SSMF5 " , DPNSS_STATUS , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 6 , " CLC-OP " , " CALLING/CALLED LINE CATEGORY-OPERATOR " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 7 , " CLC-NET " , " CALLING/CALLED LINE CATEGORY-NETWORK " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 8 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 9 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 10 , " CBWF-R " , " CALL BACK WHEN FREE-REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 11 , " CBWF-FN " , " CALL BACK WHEN FREE-FREE NOTIFICATION " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 12 , " CBWF-CSUI " , " CALL BACK WHEN FREE-CALL SET-UP(IMMEDIATE) " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 13 , " CBWF-C " , " CALL BACK WHEN FREE-CANCEL " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 14 , " RO " , " RING OUT " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 15 , " CBC " , " CALL BACK COMPLETE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 16 , " CBWF-CSUD " , " CALL BACK WHEN FREE -CALL SET-UP(DELAYED) " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 17 , " CBWNU-R " , " CALL BACK WHEN NEXT USEDREQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 18 , " COS " , " CLASS OF SERVICE " , DPNSS_ROUTE_RES_CLASS , DPNSS_CBR_GRP , DPNSS_FAC_LST_CODE , DPNSS_NONE } ,
{ 19 , " LA " , " LOOP AVOIDANCE " , DPNSS_NO_OF_FUR_TRANS , DPNSS_NO_OF_FUR_ALT_R , DPNSS_NONE , DPNSS_NONE } ,
{ 20 , " EI-PVR " , " EXECUTIVE INTRUSION-PRIOR VALIDATION " , DPNSS_INT_CAP_LEV , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 21 , " EI-R " , " EXECUTIVE INTRUSION-REQUEST " , DPNSS_INT_CAP_LEV , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 22 , " IPL-R " , " INTRUSION PROTECTION LEVEL-REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 23 , " IPL " , " INTRUSION PROTECTION LEVEL " , DPNSS_INT_CAP_LEV , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 24 , " EI-C " , " EXECUTIVE INTRUSION-CONVERT " , DPNSS_INT_CAP_LEV , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 25 , " EI-I " , " EXECUTIVE INTRUSION-INTRUDED " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 26 , " CW " , " CALL WAITING " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 27 , " CO " , " CALL OFFER " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 28 , " SN-REQ " , " SEND NEXT-REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 29 , " HGF " , " HUNT GROUP FORWARDED " , DPNSS_NESTING_LEVEL , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 30 , " DIV-V " , " DIVERSION-VALIDATION " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 31 , " DIV-FM " , " DIVERSION-FOLLOW ME " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 32 , " DIV-BY " , " DIVERSION-BY PASS " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 33 , " DIV-CI " , " DIVERSION CANCEL-IMMEDIATE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 34 , " DIV-CR " , " DIVERSION CANCEL-ON NO REPLY " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 35 , " DIV-CB " , " DIVERSION CANCEL-ON BUSY " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 36 , " DIV-CA " , " DIVERSION CANCEL-ALL " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 37 , " DVG-I " , " DIVERTING IMMEDIATE " , DPNSS_B_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 38 , " DVG-B " , " DIVERTING ON BUSY " , DPNSS_B_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 39 , " DVG-R " , " DIVERTING ON NO REPLY " , DPNSS_B_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 40 , " DVT-I " , " DIVERT IMMEDIATE " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 41 , " DVT-B " , " DIVERT ON BUSY " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 42 , " DVD-I " , " DIVERTED IMMEDIATE " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 43 , " DVD-B " , " DIVERTED ON BUSY " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 44 , " DVD-R " , " DIVERTED ON NO REPLY " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 45 , " DVT-R " , " DIVERT ON NO REPLY " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 46 , " SIC " , " SERVICE INDICATOR CODE " , DPNSS_SIC , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 47 , " BSS-M " , " BEARER SERVICE SELECTION-MANDATORY " , DPNSS_SIC , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 48 , " BSS-P " , " BEARER SERVICE SELECTION-PREFERRED " , DPNSS_SIC , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 49 , " BSS-N " , " BEARER SERVICE SELECTION-NOTIFICATION " , DPNSS_SIC , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 50 , " OLI/CLI " , " ORIGINATING LINE IDENTITY/CALLED LINE IDENTITY " , DPNSS_A_B_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 51 , " RTI " , " ROUTING INFORMATION, ROUTING INFORMATION " , DPNSS_DPNSS_ISDN_TYPE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 52 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 53 , " DVD-E " , " DIVERTED-EXTERNALLY " , DPNSS_DIVERSION_TYPE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 54 , " REJ " , " REJECT " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 55 , " ACK " , " ACKNOWLEDGE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 56 , " SN " , " SEND NEXT " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 57 , " D-SIC " , " DASS 2-SERVICE INDICATOR CODE " , DPNSS_SIC , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 58 , " NSI " , " NON-SPECIFIED INFORMATION " , DPNSS_NSI_IDENTIFIER , DPNSS_USER_DEFINED , DPNSS_USER_DEFINED , DPNSS_NONE } ,
{ 59 , " OCP " , " ORIGINALLY CALLED PARTY " , DPNSS_B_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 60 , " HOLD-REQ " , " HOLD REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 61 , " RECON " , " RECONNECTED " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 62 , " HDG " , " HOLDING " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 63 , " CD-Q " , " CALL DISTRIBUTION-QUEUE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 64 , " TEXT-M " , " TEXT MESSAGE " , DPNSS_TEXT , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 65 , " SOD-B " , " STATE OF DESTINATION-BUSY " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 66 , " SOD-F " , " STATE OF DESTINATION-FREE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 67 , " CD-DNQ " , " CALL DISTRIBUTION-DO NOT QUEUE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 68 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 69 , " CD-LINK " , " CALL DISTRIBUTION-LINKED " , DPNSS_CALL_INDEX , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 70 , " DIV-RSI " , " DIVERSION-REMOTE SET IMMEDIATE " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 71 , " DIV-RSB " , " DIVERSION-REMOTE SET ON BUSY " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 72 , " DIV-RSR " , " DIVERSION-REMOTE SET ON NO REPLY " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 73 , " DIV-RCI " , " DIVERSION-REMOTE CANCEL IMMEDIATE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 74 , " DIV-RCB " , " DIVERSION-REMOTE CANCEL ON BUSY " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 75 , " DIV-RCR " , " DIVERSION-REMOTE CANCEL ON NO REPLY " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 76 , " DIV-RCA " , " DIVERSION-REMOTE CANCEL ALL " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 77 , " PASSW " , " PASSWORD " , DPNSS_PASSWORD , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 78 , " SPL " , " SPLIT " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 79 , " TWP " , " TWO PARTY " , DPNSS_CALL_DIR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 80 , " ENQ " , " ENQUIRY CALL " , DPNSS_HC_CLC , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 81 , " SCE " , " SINGLE CHANNEL ENQUIRY " , DPNSS_HC_CLC , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 82 , " TRFD " , " TRANSFERRED " , DPNSS_CALL_DIR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 83 , " SHTL " , " SHUTTLE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 84 , " COC " , " CONNECTED CALL " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 85 , " TRFR " , " TRANSFER " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 86 , " CD-FN " , " CALL DISTRIBUTION-FREE NOTIFY " , DPNSS_CALL_INDEX , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 87 , " ICC " , " INTERCOM CALL " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 88 , " AD-RQ " , " ADD-ON REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 89 , " AD-V " , " ADD-ON VALIDATION " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 90 , " AD-O " , " ADDED-ON " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 91 , " ENH " , " ENHANCED SSMF5 " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 92 , " BAS " , " BASIC SSMF5 " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 93 , " CD-UNLINK " , " CALL DISTRIBUTION-UNLINKED " , DPNSS_CALL_INDEX , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 94 , " SNU " , " SIGNAL NOT UNDERSTOOD " , DPNSS_ENHANCED_STR_ID , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 95 , " SU " , " SERVICE UNAVAILABLE " , DPNSS_STRING_ID , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 96 , " RR-SNU " , " RECALL REJECTED SIGNAL NOT UNDERSTOOD " , DPNSS_ENHANCED_STR_ID , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 97 , " CD-CSU " , " CALL DISTRIBUTION-CALL SET UP " , DPNSS_CALL_INDEX , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 98 , " IG-SNU " , " IGNORED-SIGNAL NOT UNDERSTOOD " , DPNSS_STRING_ID_LIST , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 99 , " IG-SU " , " IGNORED-SERVICE UNAVAILABLE " , DPNSS_STRING_ID_LIST , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 100 , " TEXT " , " TEXTUAL DISPLAY " , DPNSS_TEXT , DPNSS_TEXT_TYPE , DPNSS_NONE , DPNSS_NONE } ,
{ 101 , " SIM-A " , " SIMULATED ANSWER " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 102 , " ACT " , " ACTIVATE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 103 , " DEACT " , " DEACTIVATE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 104 , " TCS " , " TRAFFIC-CHANNEL STATUS " , DPNSS_CHANNEL_STATUS , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 105 , " CHID " , " CHANNEL IDENTITY " , DPNSS_CHANNEL_NUMBER , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 106 , " FR-R " , " FORCED RELEASE-REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 107 , " PB-P " , " PRIORITY BREAKDOWN-PROTECTION " , DPNSS_BPL , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 108 , " PB-R " , " PRIORITY BREAKDOWN-REQUEST " , DPNSS_BCL , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 109 , " DI " , " DEVICE IDENTITY " , DPNSS_DEVICE_INDEX , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 110 , " ROP-R " , " ROUTE OPTIMISATION-REQUEST " , DPNSS_CR_NO , DPNSS_CALL_ID_LENGTH , DPNSS_NONE , DPNSS_NONE } ,
{ 111 , " ROP-CSU " , " ROUTE OPTIMISATION-CALL SET UP " , DPNSS_CALL_ID_LENGTH , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 112 , " ROP-CON " , " ROUTE OPTIMISATION-CONNECTED " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 113 , " DND " , " DO NOT DISTURB " , DPNSS_STATE_OF_DEST , DPNSS_STATE_OF_DEST_QUAL , DPNSS_NONE , DPNSS_NONE } ,
{ 114 , " DND-O " , " DO NOT DISTURB-OVERRIDE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 115 , " DND-S " , " DO NOT DISTURB-SET " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 116 , " DND-C " , " DO NOT DISTURB-CLEAR " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 117 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 118 , " EST " , " EXTENSION STATUS CALL " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 119 , " CDIV " , " CONTROLLED DIVERSION " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 120 , " RDG " , " REDIRECTING " , DPNSS_REASON_FOR_REDIR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 121 , " RCF " , " REDIRECTING ON CALL FAILURE " , DPNSS_CLEARING_CAUSE , DPNSS_B_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE } ,
{ 122 , " TOV-R " , " TAKEOVER REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 123 , " TOV-V " , " TAKEOVER VALIDATION " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 124 , " SER-R " , " SERIES CALL REQUEST " , DPNSS_RECONT_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 125 , " SER-C " , " SERIES CALL-CANCEL " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 126 , " SER-E " , " SERIES CALL-ESTABLISHMENT " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 127 , " NS-N, NIGHT " , " SERVICE-NOTIFICATION " , DPNSS_STATE_OF_OPERATOR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 128 , " NS-DVT " , " NIGHT SERVICE-DIVERT " , DPNSS_NIGHT_SERVICE , DPNSS_PBX_FLAG , DPNSS_NONE , DPNSS_NONE } ,
{ 129 , " NS-DVG " , " DPNSS_NIGHT_SERVICE-DIVERTING " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 130 , " NS-DVD " , " DPNSS_NIGHT_SERVICE-DIVERTED " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 131 , " NS-RDVT " , " DPNSS_NIGHT_SERVICE-REDIVERT " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 132 , " NS-RDVG " , " DPNSS_NIGHT_SERVICE-REDIVERTING " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 133 , " NS-RDVD " , " DPNSS_NIGHT_SERVICE-REDIVERTED " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 134 , " NS-DA " , " DPNSS_NIGHT_SERVICE-DEACTIVATED " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 135 , " Q-INFO " , " QUEUE INFORMATION " , DPNSS_NUMBER_OF_CALLS , DPNSS_NUMBER_OF_SERVERS , DPNSS_NONE , DPNSS_NONE } ,
{ 136 , " Q-PRIO " , " QUEUE PRIORITY " , DPNSS_PRIORITY_LEVEL , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 137 , " SW-V " , " SWAP - VALIDATION " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 138 , " SW-R " , " SWAP - REJECTED " , DPNSS_LOCATION , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 139 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 140 , " A2 " , " SSMF5 SIGNAL 'A-2' " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 141 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 142 , " A5 " , " SSMF5 SIGNAL 'A-5' " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 143 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 144 , " A8 " , " SSMF5 SIGNAL 'A-8' " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 145 , " A10 " , " SSMF5 SIGNAL 'A-10' " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 146 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 147 , " A13 " , " SSMF5 SIGNAL 'A-13' " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 148 , " A14 " , " SSMF5 SIGNAL 'A-14' " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 149 , " A12 " , " SSMF5 SIGNAL 'A-12' " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 150 , " A7 " , " SSMF5 SIGNAL 'A-7' " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 151 , " CBWF-CLB " , " CALL BACK WHEN FREE-CALL BACK " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 152 , " DVT " , " DIVERT " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 153 , " SOD-I " , " DPNSS_STATE_OF_DEST-INDETERMINABLE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 154 , " DVG " , " DIVERTING " , DPNSS_B_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 155 , " SOD-REQ " , " REQUEST DPNSS_STATE_OF_DEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 156 , " CBWF-CB " , " CALL BACK WHEN FREE-CALL BACK REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 157 , " NAE-DC " , " NETWORK ADDRESS EXTENSION " , DPNSS_SUBADDRESS , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 158 , " SFI " , " SUPPLEMENTARY FACILITIES INHIBITED " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 159 , " NAE-DI " , " NETWORK ADDRESS EXTENSION-DESTINATION INCOMPLETE " , DPNSS_SUBADDRESS , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 160 , " DRS " , " DIRECT ROUTE SELECT " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 161 , " AS " , " ALARM STATUS " , DPNSS_ALARM_LEVEL , DPNSS_STAFF_PRESENT , DPNSS_NONE , DPNSS_NONE } ,
{ 162 , " AS-R " , " ALARM STATUS-REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 163 , " TAD-R " , " TIME AND DATE-REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 164 , " TAD " , " TIME AND DATE " , DPNSS_TIME_AND_DATE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 165 , " SATB " , " SATELLITE BARRED " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 166 , " SERV " , " SERVICE INFORMATION " , DPNSS_SERVICES , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 167 , " TID " , " TRUNK IDENTITY " , DPNSS_PBX_REFERENCE , DPNSS_TRUNK_GROUP_REF_NUMBER , DPNSS_TRUNK_MEMBER_REF_NUMBER , DPNSS_NONE } ,
{ 168 , " PARK " , " PARK REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 169 , " PKD " , " PARKED " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 170 , " AC-NAO " , " ADD-ON CONFERENCE-NO ADD ON CURRENTLY AVAILABLE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 171 , " CBM-R " , " CALL BACK MESSAGING-REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 172 , " CBM-C " , " CALL BACK MESSAGING-CANCEL " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 173 , " NAE-CC " , " NETWORK ADDRESS EXTENSION-CALLING/CALLED IDENTITY COMPLETE " , DPNSS_SUBADDRESS , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 174 , " NAE-CI " , " NETWORK ADDRESS EXTENSION-CALLING/CALLED IDENTITY INCOMPLETE " , DPNSS_SUBADDRESS , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 175 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 176 , " AC-CDC " , " ADD-ON CONFERENCE-CLEARDOWN CONFERENCE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 177 , " AC-PI " , " ADD-ON CONFERENCE-PARTY INDEX " , DPNSS_CONF_PARTY_INDEX , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 178 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 179 , " AC-DR " , " ADD-ON CONFERENCE - DETAILS REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 180 , " AC-PD " , " ADD-ON CONFERENCE - PARTY " , DPNSS_CONF_PARTY_DET , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 181 , " AC-CBI " , " ADD-ON CONFERENCE - CONFERENCE BRIDGE IDENTITY " , DPNSS_CONF_BRIDGE_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 182 , " CH-AC " , " CHARGE REPORTING ACCOUNT CODE " , DPNSS_ACCOUNT_CODE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 183 , " CH-ACR " , " CHARGE REPORTING ACCOUNT CODE REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 184 , " CH-ACT " , " CHARGE REPORTING - ACTIVE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 185 , " CH-CLR " , " CHARGE REPORTING - CLEAR " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 186 , " CH-CR " , " CHARGE REPORTING - COST REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 187 , " CH-CST " , " CHARGE REPORTING - COST, CURRENCY UNITS " , DPNSS_COST_QUALIFIER , DPNSS_CURRENCY_INDICATION , DPNSS_NONE , DPNSS_NONE } ,
{ 188 , " CH-TR " , " CHARGE REPORTING - TIME RATE " , DPNSS_CURRENCY_UNITS , DPNSS_TIME_INTERVAL , DPNSS_COST_QUALIFIER , DPNSS_CURRENCY_INDICATION } ,
{ 189 , " CH-UR " , " CHARGE REPORTING - UNIT " , DPNSS_CURRENCY_UNITS , DPNSS_COST_QUALIFIER , DPNSS_CURRENCY_INDICATION , DPNSS_NONE } ,
{ 190 , " CH-UU " , " CHARGE REPORTING - UNITS USED " , DPNSS_UNITS , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 191 , " OPD " , " OUTPUT DIGITS " , DPNSS_REMOTE_ADDRESS , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 192 , " OPD-R " , " OUTPUT DIGITS - REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 193 , " IRD " , " INTERNAL REROUTING DISABLED " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 194 , " ERD " , " EXTERNAL REROUTING DISABLED " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 195 , " NLT-PT " , " NON-LOOPED BACK TEST-PERFORM TEST " , DPNSS_TEST_INDEX , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 196 , " NLT-RQ " , " NON-LOOPED BACK TEST-TEST REQUEST " , DPNSS_TEST_INDEX , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 197 , " NLT-SC " , " NON-LOOPED BACK TEST-SEQUENCE COMPLETE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 198 , " NLT-RES " , " NON-LOOPED BACK TEST-RESULT " , DPNSS_TEST_RESULT , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 199 , " AUTO-A " , " AUTOANSWER " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 200 , " HF-A " , " HANDS-FREE - ACTIVATED " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 201 , " HF-D " , " HANDS-FREE - DEACTIVATED " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 202 , " EI-W " , " EXECUTIVE INTRUSION-WITHDRAW " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 203 , " DVT-RD " , " DIVERT-REDIRECTION " , DPNSS_REASON_FOR_REDIR , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE } ,
{ 204 , " DVT-CF " , " DIVERT-CALL FAILURE " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 205 , " ASST-INFO " , " ASSISTANCE-INFORMATION " , DPNSS_TYPE_OF_ASSISTANCE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 206 , " RED-BY " , " REDIRECTION-BYPASS " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 207 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 208 , " VIC " , " VPN INITIATED CLEAR " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 209 , " NPR-A " , " NUMBER PRESENTATION RESTRICTION-A PARTY " , DPNSS_REST_DOMAIN , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 210 , " NPR-B " , " NUMBER PRESENTATION RESTRICTION-B PARTY " , DPNSS_REST_DOMAIN , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 211 , " ARC " , " AUXILIARY DPNSS_ROUTE_RES_CLASS " , DPNSS_ROUTE_RES_CLASS , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 212 , " WOB " , " WAIT ON BUSY " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 213 , " GPU-R " , " GROUP PICK-UP REQUEST " , DPNSS_GRP_PICK_UP_CODE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 214 , " PU-DVT " , " PICK-UP DIVERT " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 215 , " PU-DVG " , " PICK-UP DIVERTING " , DPNSS_TIME_INTERVAL , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 216 , " DPU-R " , " DIRECTED PICK-UP REQUEST " , DPNSS_PICK_UP_CALL_TYPE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 217 , " RCC-CA " , " ROUTE CAPACITY CONTROL-CAPACITY AVAILABLE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 218 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 219 , " RCC-OI " , " ROUTE CAPACITY CONTROL-OVERRIDE INVOKED " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 220 , " PU-DVD " , " PICK-UP DIVERTED " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 221 , " NPR-O " , " NUMBER PRESENTATION RESTRICTION - OTHER PARTY " , DPNSS_REST_DOMAIN , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 222 , " MCI " , " MALICIOUS CALL INDICATION " , DPNSS_MALICIOUS_CALL_REF , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 223 , " NSL " , " NETWORK SIGNALLING LIMIT " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 224 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 225 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 226 , " TCOS " , " TRAVELLING CLASS OF SERVICE " , DPNSS_ROUTE_RES_CLASS , DPNSS_CBR_GRP , DPNSS_FAC_LST_CODE , DPNSS_NONE } ,
{ 227 , " TCOS-R " , " TRAVELLING CLASS OF SERVICE-REQUEST " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 228 , " DIV-RSC " , " DIVERSION-REMOTE SET COMBINED " , DPNSS_C_PARTY_ADDR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 229 , " DIV-RCC " , " DIVERSION-REMOTE CANCEL COMBINED " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 230 , " RDC " , " REDIRECTION CONTROL " , DPNSS_TIMER_VALUE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 231 , " CAUSE " , " DPNSS_CLEARING_CAUSE " , DPNSS_CLEARING_CAUSE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 232 , " CP " , " CALL PROCEEDING " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 233 , " I-BC " , " ISDN-BEARER CAPABILITY " , DPNSS_BEARER_CAP , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 234 , " I-CC " , " ISDN-DPNSS_CLEARING_CAUSE " , DPNSS_CAUSE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 235 , " I-CPN " , " ISDN-CALLING PARTY/CONNECTED NUMBER " , DPNSS_ISDN_NUM_ATTR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 236 , " I-CSA " , " ISDN-CALLING PARTY/CONNECTED DPNSS_SUBADDRESS " , DPNSS_ISDN_DPNSS_SUBADDRESS , DPNSS_ISDN_NUMBER_DIGITS , DPNSS_NONE , DPNSS_NONE } ,
2009-05-08 14:46:01 +00:00
{ 237 , " I-DSA " , " ISDN-DESTINATION (CALLED PARTY) DPNSS_SUBADDRESS " , DPNSS_ISDN_DPNSS_SUBADDRESS , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
2007-08-22 21:47:31 +00:00
{ 238 , " I-HLC " , " ISDN-HIGH LAYER COMPATIBILITY " , DPNSS_HIGH_LAYER_COMP , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 239 , " I-LLC " , " ISDN-LOW LAYER COMPATIBILITY " , DPNSS_LOW_LAYER_COMP , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 240 , " I-PROG " , " ISDN-PROGRESS " , DPNSS_PROGRESS_INDICATOR , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 241 , " IPN " , " INTERWORKING VIA A PRIVATE ISDN " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 242 , " SAVE " , " SAVE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 243 , " V-NID " , " VPN-NODAL IDENTITY " , DPNSS_VPN_ACCESS_REF_NUM , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 244 , " M-INDEX " , " MESSAGE INDEX " , DPNSS_INDEX_NUMBER , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 245 , " CBM-CSU " , " CALL BACK MESSAGING CALL SET-UP " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 246 , " INT-A " , " INTERIM ANSWER " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 247 , " undefined " , " undefined " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 248 , " DVL " , " DIVERSION - LAST CONTROLLING EXTENSION IDENTITY " , DPNSS_B_PARTY_ADDR , DPNSS_DIVERSION_TYPE , DPNSS_RESTRICTION_INDICATOR , DPNSS_NONE } ,
{ 249 , " ROP-INV " , " ROUTE OPTIMISATION INVITE " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 250 , " ROP-INVA " , " ROUTE OPTIMISATION INVITE WITH ACKNOWLEDGEMENT " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
{ 251 , " PCLG-P " , " PUBLIC CALLING PARTY NUMBER-PROVIDED " , DPNSS_ISDN_NUM_ATTR , DPNSS_ISDN_NUMBER_DIGITS , DPNSS_NONE , DPNSS_NONE } ,
{ 252 , " PCLG-D " , " PUBLIC CALLING PARTY NUMBER-DEFAULT " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
2007-08-22 22:32:13 +00:00
{ 253 , " PCON-P " , " PUBLIC CONNECTED NUMBER-PROVIDED " , DPNSS_ISDN_NUM_ATTR , DPNSS_ISDN_NUMBER_DIGITS , DPNSS_NONE , DPNSS_NONE } ,
2007-08-22 21:47:31 +00:00
{ 254 , " PCON-D " , " PUBLIC CONNECTED NUMBER-DEFAULT " , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE , DPNSS_NONE } ,
} ;
2007-08-19 20:26:08 +00:00
static int
2007-08-19 21:56:11 +00:00
dissect_dpnss_sic ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree , int offset )
2007-08-19 20:26:08 +00:00
{
guint8 octet , type_of_data ;
2009-05-08 14:46:01 +00:00
octet = tvb_get_guint8 ( tvb , offset ) ;
type_of_data = ( octet & 0x70 ) > > 4 ;
proto_tree_add_item ( tree , hf_dpnss_ext_bit , tvb , offset , 1 , FALSE ) ;
proto_tree_add_item ( tree , hf_dpnss_sic_type , tvb , offset , 1 , FALSE ) ;
switch ( type_of_data ) {
case 1 :
/* Type of Data (001) : Details for Speech */
proto_tree_add_item ( tree , hf_dpnss_sic_details_for_speech , tvb , offset , 1 , FALSE ) ;
break ;
case 2 :
/* Type of Data (010) : Data Rates */
proto_tree_add_item ( tree , hf_dpnss_sic_details_for_data1 , tvb , offset , 1 , FALSE ) ;
break ;
case 3 :
/* Type of Data (011) : Data Rates */
proto_tree_add_item ( tree , hf_dpnss_sic_details_for_data2 , tvb , offset , 1 , FALSE ) ;
break ;
default :
/* Illegal */
break ;
}
offset + + ;
if ( ( octet & 0x80 ) = = 0x80 ) {
/* Extension bit set
* Synch / Asynchronous Information
*/
2007-08-19 20:26:08 +00:00
octet = tvb_get_guint8 ( tvb , offset ) ;
2009-05-08 14:46:01 +00:00
type_of_data = octet & 0x3 ;
proto_tree_add_item ( tree , hf_dpnss_ext_bit_notall , tvb , offset , 1 , FALSE ) ;
2007-08-19 20:26:08 +00:00
switch ( type_of_data ) {
case 3 :
2009-05-08 14:46:01 +00:00
/* Synchronous */
case 4 :
/* Synchronous */
proto_tree_add_item ( tree , hf_dpnss_sic_oct2_net_ind_clk , tvb , offset , 1 , FALSE ) ;
proto_tree_add_item ( tree , hf_dpnss_sic_oct2_sync_data_format , tvb , offset , 1 , FALSE ) ;
proto_tree_add_item ( tree , hf_dpnss_sic_oct2_sync_byte_timing , tvb , offset , 1 , FALSE ) ;
break ;
case 5 :
/* Asynchronous */
case 6 :
/* Asynchronous */
case 7 :
/* Asynchronous */
proto_tree_add_item ( tree , hf_dpnss_sic_oct2_async_flow_ctrl , tvb , offset , 1 , FALSE ) ;
proto_tree_add_item ( tree , hf_dpnss_sic_oct2_async_data , tvb , offset , 1 , FALSE ) ;
2007-08-19 20:26:08 +00:00
break ;
default :
break ;
}
2009-05-08 14:46:01 +00:00
proto_tree_add_item ( tree , hf_dpnss_sic_oct2_duplex , tvb , offset , 1 , FALSE ) ;
proto_tree_add_item ( tree , hf_dpnss_sic_oct2_data_type , tvb , offset , 1 , FALSE ) ;
2007-08-19 20:26:08 +00:00
offset + + ;
2009-05-08 14:46:01 +00:00
}
return offset ;
2007-08-19 20:26:08 +00:00
}
2007-08-22 21:47:31 +00:00
/*
static const value_string dpnss_serv_mark_vals [ ] = {
{ 1 , " PSTN BARRED " } ,
{ 2 , " EMERGENCY TELEPHONE " } ,
{ 3 , " HUNT GROUP " } ,
{ 4 , " DISTRIBUTED GROUP " } ,
{ 5 , " UNABLE TO INITIATE CLEARING AFTER ANSWER " } ,
{ 6 , " RING GROUP " } ,
{ 0 , NULL }
} ;
*/
/* Supplementary Information parameters
* TODO Add decoding of parameters where needed .
*/
static const value_string dpnss_sup_serv_par_str_vals [ ] = {
{ DPNSS_NONE , " None " } ,
{ DPNSS_SERV_MAR , " Servive Marking " } ,
{ DPNSS_STATUS , " Status " } ,
{ DPNSS_ROUTE_RES_CLASS , " Route Restriction Class " } ,
{ DPNSS_CBR_GRP , " Call Barring Group " } ,
{ DPNSS_FAC_LST_CODE , " Facility list code " } ,
2008-12-17 00:08:38 +00:00
{ DPNSS_NO_OF_FUR_TRANS , " Number of Further Transits " } ,
2007-08-22 21:47:31 +00:00
{ DPNSS_NO_OF_FUR_ALT_R , " Number of Further Alternative routes " } ,
2008-12-17 00:08:38 +00:00
{ DPNSS_INT_CAP_LEV , " Intrusion Capability level " } ,
2007-08-22 21:47:31 +00:00
{ DPNSS_NESTING_LEVEL , " Nesting level " } ,
{ DPNSS_C_PARTY_ADDR , " C Party Address " } ,
{ DPNSS_B_PARTY_ADDR , " B Party Address " } ,
{ DPNSS_SIC , " SIC " } ,
{ DPNSS_A_B_PARTY_ADDR , " A/B Party Address " } ,
{ DPNSS_DIVERSION_TYPE , " Diversion Type " } ,
{ DPNSS_NSI_IDENTIFIER , " NSI Identifier " } ,
{ DPNSS_USER_DEFINED , " User Defined " } ,
{ DPNSS_TEXT , " Text " } ,
{ DPNSS_CALL_INDEX , " Call Index " } ,
{ DPNSS_PASSWORD , " Password " } ,
{ DPNSS_CALL_DIR , " Call Direction " } ,
{ DPNSS_DPNSS_ISDN_TYPE , " DPNNS ISDN Type " } ,
{ DPNSS_HC_CLC , " HC CLC " } ,
{ DPNSS_ENHANCED_STR_ID , " Enhanced String Identity " } ,
{ DPNSS_STRING_ID , " String Identity " } ,
{ DPNSS_STRING_ID_LIST , " String Identity List " } ,
{ DPNSS_TEXT_TYPE , " Text Type " } ,
{ DPNSS_CHANNEL_STATUS , " Channel Status " } ,
{ DPNSS_CHANNEL_NUMBER , " Channel Number " } ,
{ DPNSS_BPL , " BPL " } ,
{ DPNSS_BCL , " BCL " } ,
{ DPNSS_DEVICE_INDEX , " Device Index " } ,
{ DPNSS_CR_NO , " Call Reference Number " } ,
{ DPNSS_CALL_ID_LENGTH , " Call Identity Length " } ,
{ DPNSS_STATE_OF_DEST , " State of Destination " } ,
{ DPNSS_STATE_OF_DEST_QUAL , " State of Destination Qualifier " } ,
2008-12-18 19:08:49 +00:00
{ DPNSS_REASON_FOR_REDIR , " Reason For Redirection " } ,
2007-08-22 21:47:31 +00:00
{ DPNSS_CLEARING_CAUSE , " Clearing Cause " } ,
{ DPNSS_RECONT_ADDR , " Reconnect Address " } ,
{ DPNSS_STATE_OF_OPERATOR , " State of Operator " } ,
{ DPNSS_NIGHT_SERVICE , " Night Service " } ,
{ DPNSS_PBX_FLAG , " PBX flag " } ,
{ DPNSS_NUMBER_OF_CALLS , " Number of Calls " } ,
{ DPNSS_NUMBER_OF_SERVERS , " Number of Servers " } ,
{ DPNSS_PRIORITY_LEVEL , " Priority Level " } ,
{ DPNSS_LOCATION , " Location " } ,
{ DPNSS_SUBADDRESS , " Subaddress " } ,
{ DPNSS_ALARM_LEVEL , " Alarm Level " } ,
2008-12-18 19:08:49 +00:00
{ DPNSS_STAFF_PRESENT , " Staff Present " } ,
2007-08-22 21:47:31 +00:00
{ DPNSS_TIME_AND_DATE , " Time and Date " } ,
{ DPNSS_SERVICES , " Services " } ,
{ DPNSS_PBX_REFERENCE , " PBX Reference " } ,
{ DPNSS_TRUNK_GROUP_REF_NUMBER , " Trunk Group reference Number " } ,
{ DPNSS_TRUNK_MEMBER_REF_NUMBER , " Trunk Member Reference Number " } ,
{ DPNSS_CONF_PARTY_INDEX , " Conference Party Index " } ,
{ DPNSS_CONF_PARTY_DET , " Conference Party Details " } ,
{ DPNSS_ACCOUNT_CODE , " Account code " } ,
{ DPNSS_CONF_BRIDGE_ADDR , " Conference Bridge Address " } ,
{ DPNSS_COST_QUALIFIER , " Cost Qualifier " } ,
{ DPNSS_CURRENCY_INDICATION , " Currency Indication " } ,
{ DPNSS_CURRENCY_UNITS , " Currency Units " } ,
{ DPNSS_TIME_INTERVAL , " Time Interval " } ,
{ DPNSS_UNITS , " Units " } ,
{ DPNSS_REMOTE_ADDRESS , " Remote Address " } ,
{ DPNSS_TEST_INDEX , " Test Index " } ,
{ DPNSS_TEST_RESULT , " Test Result " } ,
{ DPNSS_TYPE_OF_ASSISTANCE , " Type of assistance " } ,
{ DPNSS_REST_DOMAIN , " Restriction Domain " } ,
{ DPNSS_GRP_PICK_UP_CODE , " Group Pick-Up Code " } ,
{ DPNSS_PICK_UP_CALL_TYPE , " Pick-Up call type " } ,
{ DPNSS_MALICIOUS_CALL_REF , " Malicious call reference " } ,
{ DPNSS_TIMER_VALUE , " Timer Value " } ,
{ DPNSS_BEARER_CAP , " Bearer capability " } ,
{ DPNSS_ISDN_NUM_ATTR , " ISDM number attribute " } ,
{ DPNSS_ISDN_DPNSS_SUBADDRESS , " ISDN DPNNS Subaddress " } ,
{ DPNSS_ISDN_NUMBER_DIGITS , " ISDN Number Digits " } ,
2008-12-18 19:08:49 +00:00
{ DPNSS_HIGH_LAYER_COMP , " High Layer Compatibility " } ,
{ DPNSS_LOW_LAYER_COMP , " Low layer Compatibility " } ,
2007-08-22 21:47:31 +00:00
{ DPNSS_PROGRESS_INDICATOR , " Progress Indicator " } ,
{ DPNSS_VPN_ACCESS_REF_NUM , " VPN Access reference Number " } ,
{ DPNSS_INDEX_NUMBER , " Index Number " } ,
{ DPNSS_RESTRICTION_INDICATOR , " Restriction Indicator " } ,
{ DPNSS_CAUSE , " Cause " } ,
{ 0 , NULL }
} ;
static void
dissect_dpnns_sup_str_par ( tvbuff_t * tvb , proto_tree * tree , int par_type_num , int par_start_offset , int par_end_offset )
{
int par_len ;
par_len = par_end_offset - par_start_offset ;
if ( par_len = = 0 ) {
par_type_num = DPNSS_NONE ;
}
switch ( par_type_num ) {
case DPNSS_NONE :
proto_tree_add_text ( tree , tvb , par_start_offset , par_len , " Par: None " ) ;
break ;
/* TODO: Use individual dissection of parameters if hf fields needed or in the case where
special handling is needed for greater detail
case DPNSS_SERV_MAR :
* p 173
* More than one Service Marking character can be
* included in the Parameter , each being separated
* by the IA5 character space ( 2 / 0 ) .
* If decoded use : dpnss_serv_mark_vals
*
case DPNSS_STATUS :
case DPNSS_ROUTE_RES_CLASS :
case DPNSS_CBR_GRP :
case DPNSS_FAC_LST_CODE :
case DPNSS_NO_OF_FUR_TRANS :
case DPNSS_NO_OF_FUR_ALT_R :
case DPNSS_INT_CAP_LEV :
case DPNSS_NESTING_LEVEL :
case DPNSS_C_PARTY_ADDR :
case DPNSS_B_PARTY_ADDR :
case DPNSS_SIC :
2007-08-28 17:50:02 +00:00
*/
2007-08-22 21:47:31 +00:00
case DPNSS_A_B_PARTY_ADDR :
2007-08-28 17:50:02 +00:00
proto_tree_add_item ( tree , hf_dpnss_a_b_party_addr , tvb , par_start_offset , par_len , FALSE ) ;
break ;
/*
2007-08-22 21:47:31 +00:00
case DPNSS_DIVERSION_TYPE :
case DPNSS_NSI_IDENTIFIER :
case DPNSS_USER_DEFINED :
case DPNSS_TEXT :
2007-08-28 17:50:02 +00:00
*/
2007-08-22 21:47:31 +00:00
case DPNSS_CALL_INDEX :
2007-08-28 17:50:02 +00:00
proto_tree_add_item ( tree , hf_dpnss_call_idx , tvb , par_start_offset , par_len , FALSE ) ;
break ;
/*
2007-08-22 21:47:31 +00:00
case DPNSS_PASSWORD :
case DPNSS_CALL_DIR :
case DPNSS_DPNSS_ISDN_TYPE :
case DPNSS_HC_CLC :
case DPNSS_ENHANCED_STR_ID :
case DPNSS_STRING_ID :
case DPNSS_STRING_ID_LIST :
case DPNSS_TEXT_TYPE :
case DPNSS_CHANNEL_STATUS :
case DPNSS_CHANNEL_NUMBER :
case DPNSS_BPL :
case DPNSS_BCL :
case DPNSS_DEVICE_INDEX :
case DPNSS_CR_NO :
case DPNSS_CALL_ID_LENGTH :
case DPNSS_STATE_OF_DEST :
case DPNSS_STATE_OF_DEST_QUAL :
case DPNSS_REASON_FOR_REDIR :
case DPNSS_CLEARING_CAUSE :
case DPNSS_RECONT_ADDR :
case DPNSS_STATE_OF_OPERATOR :
case DPNSS_NIGHT_SERVICE :
case DPNSS_PBX_FLAG :
case DPNSS_NUMBER_OF_CALLS :
case DPNSS_NUMBER_OF_SERVERS :
case DPNSS_PRIORITY_LEVEL :
case DPNSS_LOCATION :
case DPNSS_SUBADDRESS :
case DPNSS_ALARM_LEVEL :
case DPNSS_STAFF_PRESENT :
case DPNSS_TIME_AND_DATE :
case DPNSS_SERVICES :
* More than one Service Marking character can be
* included in the Parameter , each being separated
* by the IA5 character space ( 2 / 0 ) .
* 1 = Call Offer not possible
* 2 = Executive Intrusion not possible
* 3 = Call Back When Free not possible
* 4 = Call Back Messaging not possible ( see Note )
* 5 = Hold not possible
* 6 = Call Back When Next Used not possible
case DPNSS_PBX_REFERENCE :
case DPNSS_TRUNK_GROUP_REF_NUMBER :
case DPNSS_TRUNK_MEMBER_REF_NUMBER :
case DPNSS_CONF_PARTY_INDEX :
case DPNSS_CONF_PARTY_DET :
case DPNSS_ACCOUNT_CODE :
case DPNSS_CONF_BRIDGE_ADDR :
case DPNSS_COST_QUALIFIER :
case DPNSS_CURRENCY_INDICATION :
case DPNSS_CURRENCY_UNITS :
case DPNSS_TIME_INTERVAL :
case DPNSS_UNITS :
case DPNSS_REMOTE_ADDRESS :
case DPNSS_TEST_INDEX :
case DPNSS_TEST_RESULT :
case DPNSS_TYPE_OF_ASSISTANCE :
case DPNSS_REST_DOMAIN :
case DPNSS_GRP_PICK_UP_CODE :
case DPNSS_PICK_UP_CALL_TYPE :
case DPNSS_MALICIOUS_CALL_REF :
case DPNSS_TIMER_VALUE :
case DPNSS_BEARER_CAP :
case DPNSS_ISDN_NUM_ATTR :
case DPNSS_ISDN_DPNSS_SUBADDRESS :
case DPNSS_ISDN_NUMBER_DIGITS :
case DPNSS_HIGH_LAYER_COMP :
case DPNSS_LOW_LAYER_COMP :
case DPNSS_PROGRESS_INDICATOR :
case DPNSS_VPN_ACCESS_REF_NUM :
case DPNSS_INDEX_NUMBER :
case DPNSS_RESTRICTION_INDICATOR :
case DPNSS_CAUSE :
*/
default :
/* Used to print all pars without any special handling */
2007-08-28 17:50:02 +00:00
proto_tree_add_text ( tree , tvb , par_start_offset , par_len , " Parameter %s: %s " ,
2007-08-22 21:47:31 +00:00
val_to_str ( par_type_num , dpnss_sup_serv_par_str_vals , " Unknown (%d) " ) ,
tvb_format_text ( tvb , par_start_offset , par_len )
) ;
break ;
}
}
2007-08-17 21:31:22 +00:00
2007-08-19 20:26:08 +00:00
/* 3.1 Supplementary Information Strings
* A Supplementary Information String comprises a Supplementary
* Information Identifier which may be followed by one or more
* Parameters . A Supplementary Information String starts with the
* IA5 character * and ends with the IA5 character # .
*
* When the Supplementary Information String includes Parameters
* these are separated from the identifier and each other by a * .
* eg * Supplementary Information Identifier code #
* or * Supplementary Information Identifier code * Parameter #
* or * Supplementary Information Identifier code * Parameter * Parameter #
* A Supplementary Information String shall be wholly contained
* within one Selection or Indication Field ( ie it shall not be
* split between messages ) .
2007-08-17 21:31:22 +00:00
*
2007-08-19 20:26:08 +00:00
* 3.2 Supplementary Information String Identifier
* The identifier comprises one or more IA5 numerals 0 - 9 which may
* be followed by a single IA5 alpha - character suffix in the range A - Z .
* The numerals of the identifier indicate the main function of the
* Supplementary Information String , eg " 39F " indicates " Diverting
* on No Reply " . " F " is the suffix.
*
* 3.5 Destination Address
* The Destination Address comprises one or more IA5 numerals 0 to
* 9 , has no identifier code and is not prefixed by a * or
* terminated by a # . The digits are always the last characters in
* the Selection Block . The first Destination Address digit
* immediately follows the # of the last Supplementary Information
* String .
2007-08-17 21:31:22 +00:00
*/
2007-08-22 21:47:31 +00:00
2007-08-17 21:31:22 +00:00
static int
2007-08-19 20:26:08 +00:00
dissect_dpnss_sup_info_str ( tvbuff_t * tvb , packet_info * pinfo _U_ , proto_tree * tree , gint offset )
2007-08-17 21:31:22 +00:00
{
2007-08-22 21:47:31 +00:00
proto_item * sup_str_item ;
proto_tree * sup_str_tree ;
gint start_offset , hash_offset , tvb_end_offset , sup_inf_str_end_offset , str_no ;
gint par_start_offset , par_end_offset , number_of_found_par ;
2007-08-22 22:32:13 +00:00
gint sup_inf_str_len , par_type_num ;
guint sup_str_num ;
2007-08-19 20:26:08 +00:00
guint8 octet ;
gboolean last_string = FALSE ;
2007-08-22 21:47:31 +00:00
gboolean has_par ;
2007-08-17 21:31:22 +00:00
2007-08-19 20:26:08 +00:00
tvb_end_offset = tvb_length ( tvb ) ;
2007-08-17 21:31:22 +00:00
2007-08-22 21:47:31 +00:00
str_no = 1 ;
2007-08-19 20:26:08 +00:00
while ( ( offset < tvb_end_offset ) & & ( last_string = = FALSE ) ) {
octet = tvb_get_guint8 ( tvb , offset ) ;
if ( octet = = ' * ' ) {
/* Supplementary Information String */
start_offset = offset ;
2007-08-22 21:47:31 +00:00
has_par = TRUE ;
number_of_found_par = 0 ;
/* offset points to start of supplementary information string */
offset + + ;
2007-08-19 20:26:08 +00:00
hash_offset = tvb_find_guint8 ( tvb , offset , - 1 , ' # ' ) ;
2007-08-22 21:47:31 +00:00
sup_str_item = proto_tree_add_text ( tree , tvb , start_offset , hash_offset - start_offset + 1 , " Supplementary Information %u: %s " , str_no , tvb_format_text ( tvb , start_offset , hash_offset - start_offset + 1 ) ) ;
sup_str_tree = proto_item_add_subtree ( sup_str_item , ett_dpnss_sup_str ) ;
/* SUPPLEMENTARY INFORMATION STRING IDENTIFIER
* Get the parameter number string and translate it to an index into the dpnns_sup_serv_set .
* The number may have a trailing alpha character at the end .
*/
sup_inf_str_end_offset = tvb_find_guint8 ( tvb , offset , hash_offset - offset , ' * ' ) ;
if ( sup_inf_str_end_offset = = - 1 ) {
/* no parameters */
has_par = FALSE ;
sup_inf_str_end_offset = hash_offset ;
}
sup_inf_str_len = sup_inf_str_end_offset - offset ;
sup_str_num = atoi ( tvb_format_text ( tvb , offset , sup_inf_str_len ) ) ;
if ( ( sup_str_num ! = 0 ) & & ( sup_str_num < array_length ( dpnns_sup_serv_set ) ) ) {
proto_tree_add_text ( sup_str_tree , tvb , offset , sup_inf_str_len , " Sup str:%s " , dpnns_sup_serv_set [ sup_str_num ] . compact_name ) ;
offset = sup_inf_str_end_offset + 1 ;
/* Find parameter(s) */
while ( has_par ) {
number_of_found_par + + ;
/* 1:st Parameter */
par_start_offset = offset ;
par_end_offset = tvb_find_guint8 ( tvb , offset , - 1 , ' * ' ) ;
if ( par_end_offset = = - 1 ) {
/* last parameter */
par_end_offset = hash_offset ;
has_par = FALSE ;
}
switch ( number_of_found_par ) {
case 1 :
par_type_num = dpnns_sup_serv_set [ sup_str_num ] . par1_num ;
dissect_dpnns_sup_str_par ( tvb , sup_str_tree , par_type_num , par_start_offset , par_end_offset ) ;
break ;
case 2 :
par_type_num = dpnns_sup_serv_set [ sup_str_num ] . par2_num ;
dissect_dpnns_sup_str_par ( tvb , sup_str_tree , par_type_num , par_start_offset , par_end_offset ) ;
break ;
case 3 :
par_type_num = dpnns_sup_serv_set [ sup_str_num ] . par3_num ;
dissect_dpnns_sup_str_par ( tvb , sup_str_tree , par_type_num , par_start_offset , par_end_offset ) ;
break ;
case 4 :
par_type_num = dpnns_sup_serv_set [ sup_str_num ] . par4_num ;
dissect_dpnns_sup_str_par ( tvb , sup_str_tree , par_type_num , par_start_offset , par_end_offset ) ;
break ;
default :
break ;
}
/* More parameters ? */
offset = par_end_offset + 1 ;
2007-08-19 20:26:08 +00:00
2007-08-22 21:47:31 +00:00
}
}
2007-08-19 20:26:08 +00:00
offset = hash_offset + 1 ;
2007-08-22 21:47:31 +00:00
str_no + + ;
2007-08-19 20:26:08 +00:00
} else {
last_string = TRUE ;
proto_tree_add_item ( tree , hf_dpnss_dest_addr , tvb , offset , - 1 , FALSE ) ;
}
}
2007-08-17 21:31:22 +00:00
return offset ;
}
2007-08-19 20:26:08 +00:00
static void
2007-08-17 21:31:22 +00:00
dissect_dpnss_LbL_msg ( tvbuff_t * tvb , packet_info * pinfo , proto_tree * tree )
{
2007-08-20 20:58:02 +00:00
proto_item * sic_field_item , * ind_field_item ;
proto_tree * sic_field_tree , * ind_field_tree ;
2007-08-17 21:31:22 +00:00
int offset = 0 ;
2007-08-20 20:58:02 +00:00
int tvb_end_offset ;
guint8 octet ;
tvb_end_offset = tvb_length ( tvb ) ;
2007-08-17 21:31:22 +00:00
proto_tree_add_item ( tree , hf_dpnss_LbL_msg_type , tvb , offset , 1 , FALSE ) ;
octet = tvb_get_guint8 ( tvb , offset ) & 0x0f ;
offset + + ;
if ( check_col ( pinfo - > cinfo , COL_INFO ) )
2007-08-19 20:26:08 +00:00
col_add_fstr ( pinfo - > cinfo , COL_INFO , " %s " ,
2007-08-17 21:31:22 +00:00
val_to_str ( octet , dpnss_LbL_msg_short_type_vals , " Unknown (%d) " ) ) ;
2007-08-20 20:58:02 +00:00
if ( tree ) {
switch ( octet ) {
case DPNSS_LbL_MSG_LLM_C :
/* 2.3.1 LINK-by-LINK Message (COMPLETE) - LLM(C)*/
case DPNSS_LbL_MSG_LLM_I :
/* 2.3.2 LINK-by-LINK Message (INCOMPLETE) - LLM(I) */
/* Indication Field */
ind_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Indication Field: %s " , tvb_format_text ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
ind_field_tree = proto_item_add_subtree ( ind_field_item , ett_dpnss_ind_field ) ;
offset = dissect_dpnss_sup_info_str ( tvb , pinfo , ind_field_tree , offset ) ;
break ;
case DPNSS_LbL_MSG_LLRM :
/* 2.3.3 LINK-by-LINK REJECT Message - LLRM */
/* Rejection Cause */
proto_tree_add_item ( tree , hf_dpnss_rejection_cause , tvb , offset , 1 , FALSE ) ;
/* Indication Field (Optional) */
if ( tvb_end_offset > offset ) {
ind_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Indication Field: %s " , tvb_format_text ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
ind_field_tree = proto_item_add_subtree ( ind_field_item , ett_dpnss_ind_field ) ;
offset = dissect_dpnss_sup_info_str ( tvb , pinfo , ind_field_tree , offset ) ;
}
break ;
case DPNSS_LbL_MSG_SM :
/* 2.3.4 SWAP Message - SM */
/* Service Indicator Code
* Note : On data calls the SIC may comprise more than one octet .
* The Service Indicator Code is coded in accordance with ANNEX 1.
*/
sic_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Service Indicator Code " ) ;
sic_field_tree = proto_item_add_subtree ( sic_field_item , ett_dpnss_sic_field ) ;
offset = dissect_dpnss_sic ( tvb , pinfo , sic_field_tree , offset ) ;
/* Indication Field */
ind_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Indication Field: %s " , tvb_format_text ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
ind_field_tree = proto_item_add_subtree ( ind_field_item , ett_dpnss_ind_field ) ;
offset = dissect_dpnss_sup_info_str ( tvb , pinfo , ind_field_tree , offset ) ;
break ;
case DPNSS_LbL_MSG_LMM :
/* 2.3.5 LINK MAINTENANCE Message - LMM */
/* Maintenance Action
* respond to a request for , maintenance actions to be performed .
* The Maintenance Action field identifies the action required or
* the response being made . The Maintenance Action field is coded
* as shown in ANNEX 6.
*/
proto_tree_add_item ( tree , hf_dpnss_maintenance_action , tvb , offset , 1 , FALSE ) ;
offset + + ;
/* Indication Field */
ind_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Indication Field: %s " , tvb_format_text ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
ind_field_tree = proto_item_add_subtree ( ind_field_item , ett_dpnss_ind_field ) ;
offset = dissect_dpnss_sup_info_str ( tvb , pinfo , ind_field_tree , offset ) ;
break ;
case DPNSS_LbL_MSG_LMRM :
/* 2.3.6 LINK MAINTENANCE REJECT Message - LMRM */
proto_tree_add_item ( tree , hf_dpnss_clearing_cause , tvb , offset , 1 , FALSE ) ;
offset + + ;
/* Indication Field */
ind_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Indication Field: %s " , tvb_format_text ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
ind_field_tree = proto_item_add_subtree ( ind_field_item , ett_dpnss_ind_field ) ;
offset = dissect_dpnss_sup_info_str ( tvb , pinfo , ind_field_tree , offset ) ;
break ;
default :
proto_tree_add_text ( tree , tvb , offset , 1 , " Dissection of this message not supported yet " ) ;
break ;
}
2007-08-17 21:31:22 +00:00
}
}
2007-08-19 20:26:08 +00:00
static void
2007-08-17 21:31:22 +00:00
dissect_dpnss_e2e_msg ( tvbuff_t * tvb , packet_info * pinfo , proto_tree * tree )
{
2007-08-20 20:58:02 +00:00
proto_item * sel_field_item , * sic_field_item , * ind_field_item ;
proto_tree * sel_field_tree , * sic_field_tree , * ind_field_tree ;
2007-08-17 21:31:22 +00:00
int offset = 0 ;
2007-08-20 20:58:02 +00:00
int tvb_end_offset ;
guint8 octet ;
tvb_end_offset = tvb_length ( tvb ) ;
2007-08-17 21:31:22 +00:00
proto_tree_add_item ( tree , hf_dpnss_e2e_msg_type , tvb , offset , 1 , FALSE ) ;
octet = tvb_get_guint8 ( tvb , offset ) & 0x0f ;
offset + + ;
if ( check_col ( pinfo - > cinfo , COL_INFO ) )
2007-08-19 20:26:08 +00:00
col_add_fstr ( pinfo - > cinfo , COL_INFO , " %s " ,
2007-08-17 21:31:22 +00:00
val_to_str ( octet , dpnss_e2e_msg_short_type_vals , " Unknown (%d) " ) ) ;
2007-08-20 20:58:02 +00:00
if ( tree ) {
switch ( octet ) {
case DPNSS_E2E_MSG_EEM_C :
/* 2.2.1 END-to-END Message (COMPLETE) - EEM(C) */
case DPNSS_E2E_MSG_EEM_I :
2007-08-20 21:48:25 +00:00
/* Fall trough */
2007-08-20 20:58:02 +00:00
/* Indication Field */
ind_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Indication Field: %s " , tvb_format_text ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
ind_field_tree = proto_item_add_subtree ( ind_field_item , ett_dpnss_ind_field ) ;
offset = dissect_dpnss_sup_info_str ( tvb , pinfo , ind_field_tree , offset ) ;
break ;
case DPNSS_E2E_MSG_SCRM :
/* 2.2.3 SINGLE-CHANNEL CLEAR REQUEST Message - SCRM */
case DPNSS_E2E_MSG_SCIM :
/* 2.2.4 SINGLE-CHANNEL CLEAR INDICATION Message - SCIM */
/* Clearing Cause */
proto_tree_add_item ( tree , hf_dpnss_clearing_cause , tvb , offset , 1 , FALSE ) ;
offset + + ;
/* Indication Field (Optional) */
if ( tvb_end_offset > offset ) {
ind_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Indication Field: %s " , tvb_format_text ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
ind_field_tree = proto_item_add_subtree ( ind_field_item , ett_dpnss_ind_field ) ;
offset = dissect_dpnss_sup_info_str ( tvb , pinfo , ind_field_tree , offset ) ;
}
break ;
case DPNSS_E2E_MSG_ERM_C :
/* 2.2.5 END-to-END RECALL Message (COMPLETE) - ERM(C) */
case DPNSS_E2E_MSG_ERM_I :
/* 2.2.6 END-to-END RECALL Message (INCOMPLETE) - ERM(I) */
/* Service Indicator Code
* Note : On data calls the SIC may comprise more than one octet .
* The Service Indicator Code is coded in accordance with ANNEX 1.
*/
sic_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Service Indicator Code " ) ;
sic_field_tree = proto_item_add_subtree ( sic_field_item , ett_dpnss_sic_field ) ;
offset = dissect_dpnss_sic ( tvb , pinfo , sic_field_tree , offset ) ;
/*
* Selection Field
* The Selection Field contains the selection information relating
* to a call set - up or Supplementary Service Request , and is
* structured as shown in Subsection 3.
*/
sel_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Selection Field: %s " , tvb_format_text ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
sel_field_tree = proto_item_add_subtree ( sel_field_item , ett_dpnss_sel_field ) ;
offset = dissect_dpnss_sup_info_str ( tvb , pinfo , sel_field_tree , offset ) ;
break ;
case DPNSS_E2E_MSG_NSIM :
/* 2.2.7 NON SPECIFIED INFORMATION Message - NSIM */
/* Usage Identifier Oct 1 -
* coding of the Usage Identifier , as described in section 49.
* The use of NSIMs is described in greater detail in SECTION 49.
* BIT 8 7 6 5 4 3 2 1
* ext | Manufacturer code | subcode
*/
octet = tvb_get_guint8 ( tvb , offset ) ;
proto_tree_add_item ( tree , hf_dpnss_ext_bit , tvb , offset , 1 , FALSE ) ;
proto_tree_add_item ( tree , hf_dpnss_man_code , tvb , offset , 1 , FALSE ) ;
proto_tree_add_item ( tree , hf_dpnss_subcode , tvb , offset , 1 , FALSE ) ;
offset + + ;
if ( ( octet & 0x80 ) = = 0x80 ) {
2007-08-20 21:48:25 +00:00
/* Extension bit set */
2007-08-20 20:58:02 +00:00
offset + + ;
}
/* User Information oct 2 + n
*/
proto_tree_add_text ( tree , tvb , offset , - 1 , " User Information " ) ;
default :
proto_tree_add_text ( tree , tvb , offset , 1 , " Dissection of this message not supported yet " ) ;
break ;
}
2007-08-17 21:31:22 +00:00
}
}
2007-08-19 20:26:08 +00:00
static void
2007-08-17 21:31:22 +00:00
dissect_dpnss_cc_msg ( tvbuff_t * tvb , packet_info * pinfo , proto_tree * tree )
{
2007-08-19 20:26:08 +00:00
proto_item * sel_field_item , * sic_field_item , * ind_field_item ;
proto_tree * sel_field_tree , * sic_field_tree , * ind_field_tree ;
2007-08-17 21:31:22 +00:00
int offset = 0 ;
2007-08-19 20:26:08 +00:00
int tvb_end_offset ;
2007-08-17 21:31:22 +00:00
guint8 octet ;
2007-08-19 20:26:08 +00:00
tvb_end_offset = tvb_length ( tvb ) ;
2007-08-17 21:31:22 +00:00
proto_tree_add_item ( tree , hf_dpnss_cc_msg_type , tvb , offset , 1 , FALSE ) ;
octet = tvb_get_guint8 ( tvb , offset ) & 0x0f ;
offset + + ;
if ( check_col ( pinfo - > cinfo , COL_INFO ) )
2007-08-28 17:50:02 +00:00
col_add_fstr ( pinfo - > cinfo , COL_INFO , " %s " ,
2007-08-17 21:31:22 +00:00
val_to_str ( octet , dpnss_cc_msg_short_type_vals , " Unknown (%d) " ) ) ;
2007-08-19 20:26:08 +00:00
if ( tree ) {
switch ( octet ) {
case DPNSS_CC_MSG_ISRM_C :
/* 2.1.1 INITIAL SERVICE REQUEST Message (COMPLETE) - ISRM (C) */
/* fall trough */
case DPNSS_CC_MSG_ISRM_I :
/* 2.1.2 INITIAL SERVICE REQUEST Message (INCOMPLETE) - ISRM(I) */
case DPNSS_CC_MSG_RM_C :
/* 2.1.3 RECALL Message (COMPLETE) - RM(C) */
/* fall trough */
case DPNSS_CC_MSG_RM_I :
/* 2.1.4 RECALL Message (INCOMPLETE) - RM(I)*/
/* fall trough */
/* Service Indicator Code
* Note : On data calls the SIC may comprise more than one octet .
* The Service Indicator Code is coded in accordance with ANNEX 1.
*/
2007-08-19 20:41:16 +00:00
sic_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Service Indicator Code " ) ;
2007-08-19 20:26:08 +00:00
sic_field_tree = proto_item_add_subtree ( sic_field_item , ett_dpnss_sic_field ) ;
offset = dissect_dpnss_sic ( tvb , pinfo , sic_field_tree , offset ) ;
/*
* Selection Field
* The Selection Field contains the selection information relating
* to a call set - up or Supplementary Service Request , and is
* structured as shown in Subsection 3.
*/
sel_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Selection Field: %s " , tvb_format_text ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
sel_field_tree = proto_item_add_subtree ( sel_field_item , ett_dpnss_sel_field ) ;
offset = dissect_dpnss_sup_info_str ( tvb , pinfo , sel_field_tree , offset ) ;
2007-08-17 21:31:22 +00:00
break ;
2007-08-19 20:26:08 +00:00
case DPNSS_CC_MSG_CCM :
/* 2.1.5 CALL CONNECTED Message - CCM */
if ( tvb_end_offset > offset ) {
/* Indication Field (Optional) */
ind_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Indication Field: %s " , tvb_format_text ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
ind_field_tree = proto_item_add_subtree ( ind_field_item , ett_dpnss_ind_field ) ;
offset = dissect_dpnss_sup_info_str ( tvb , pinfo , ind_field_tree , offset ) ;
}
2007-08-17 21:31:22 +00:00
break ;
2007-08-19 20:26:08 +00:00
case DPNSS_CC_MSG_NIM :
/* 2.1.6 NETWORK INDICATION Message - NIM */
2007-08-19 20:41:16 +00:00
/* fall trough */
2007-08-19 20:26:08 +00:00
case DPNSS_CC_MSG_NAM :
/* 2.1.9 NUMBER ACKNOWLEDGE Message - NAM */
2007-08-20 20:58:02 +00:00
/* Indication Field */
2007-08-19 20:26:08 +00:00
ind_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Indication Field: %s " , tvb_format_text ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
ind_field_tree = proto_item_add_subtree ( ind_field_item , ett_dpnss_ind_field ) ;
offset = dissect_dpnss_sup_info_str ( tvb , pinfo , ind_field_tree , offset ) ;
2007-08-19 20:41:16 +00:00
break ;
2007-08-19 20:26:08 +00:00
case DPNSS_CC_MSG_CRM :
/* 2.1.7 CLEAR REQUEST Message - CRM */
/* 2.1.8 CLEAR INDICATION Message - CIM */
/* Clearing Cause */
proto_tree_add_item ( tree , hf_dpnss_clearing_cause , tvb , offset , 1 , FALSE ) ;
offset + + ;
/* Indication Field (Optional) */
if ( tvb_end_offset > offset ) {
ind_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Indication Field: %s " , tvb_format_text ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
ind_field_tree = proto_item_add_subtree ( ind_field_item , ett_dpnss_ind_field ) ;
offset = dissect_dpnss_sup_info_str ( tvb , pinfo , ind_field_tree , offset ) ;
}
break ;
case DPNSS_CC_MSG_RRM :
/* 2.1.10 RECALL REJECTION Message - RRM */
/* Rejection Cause */
proto_tree_add_item ( tree , hf_dpnss_rejection_cause , tvb , offset , 1 , FALSE ) ;
/* Indication Field (Optional) */
if ( tvb_end_offset > offset ) {
ind_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Indication Field: %s " , tvb_format_text ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
ind_field_tree = proto_item_add_subtree ( ind_field_item , ett_dpnss_ind_field ) ;
offset = dissect_dpnss_sup_info_str ( tvb , pinfo , ind_field_tree , offset ) ;
}
break ;
case DPNSS_CC_MSG_SSRM_I :
/* 2.1.11 SUBSEQUENT SERVICE REQUEST Message (INCOMPLETE) - SSRM(I) */
2007-08-20 20:58:02 +00:00
/* Selection Field */
2007-08-19 20:26:08 +00:00
sel_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Selection Field: %s " , tvb_format_text ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
sel_field_tree = proto_item_add_subtree ( sel_field_item , ett_dpnss_sel_field ) ;
offset = dissect_dpnss_sup_info_str ( tvb , pinfo , sel_field_tree , offset ) ;
2007-08-17 21:31:22 +00:00
break ;
2007-08-19 20:26:08 +00:00
case DPNSS_CC_MSG_SSRM_C :
/* 2.1.12 SUBSEQUENT SERVICE REQUEST Message (COMPLETE) - SSRM(C) */
/* Selection Field (Optional) */
if ( tvb_end_offset > offset ) {
sel_field_item = proto_tree_add_text ( tree , tvb , offset , - 1 , " Selection Field: %s " , tvb_format_text ( tvb , offset , tvb_length_remaining ( tvb , offset ) ) ) ;
sel_field_tree = proto_item_add_subtree ( sel_field_item , ett_dpnss_sel_field ) ;
offset = dissect_dpnss_sup_info_str ( tvb , pinfo , sel_field_tree , offset ) ;
}
break ;
2007-08-28 17:50:02 +00:00
case DPNSS_CC_MSG_CS :
case DPNSS_CC_MSG_CA :
/* DASS2 ?*/
2007-08-17 21:31:22 +00:00
default :
2007-08-19 20:26:08 +00:00
proto_tree_add_text ( tree , tvb , offset , 1 , " Unknown or Dissection of this message not supported yet " ) ;
2007-08-17 21:31:22 +00:00
break ;
}
}
}
/* Code to actually dissect the packets */
static void
dissect_dpnss ( tvbuff_t * tvb , packet_info * pinfo , proto_tree * tree )
{
int offset = 0 ;
proto_item * item ;
proto_tree * dpnss_tree ;
guint8 octet ;
/* Make entries in Protocol column and Info column on summary display */
2009-08-09 06:26:46 +00:00
col_set_str ( pinfo - > cinfo , COL_PROTOCOL , " DPNSS " ) ;
2007-08-17 21:31:22 +00:00
2007-08-19 20:26:08 +00:00
item = proto_tree_add_item ( tree , proto_dpnss , tvb , 0 , - 1 , FALSE ) ;
dpnss_tree = proto_item_add_subtree ( item , ett_dpnss ) ;
proto_tree_add_item ( dpnss_tree , hf_dpnss_msg_grp_id , tvb , offset , 1 , FALSE ) ;
octet = tvb_get_guint8 ( tvb , offset ) > > 4 ;
switch ( octet ) {
case DPNNS_MESSAGE_GROUP_CC :
/* Call Control Message Group */
dissect_dpnss_cc_msg ( tvb , pinfo , dpnss_tree ) ;
break ;
case DPNNS_MESSAGE_GROUP_E2E :
/* End-to-End Message Group */
dissect_dpnss_e2e_msg ( tvb , pinfo , dpnss_tree ) ;
break ;
case DPNNS_MESSAGE_GROUP_LbL :
/* Link-by-Link Message Group */
dissect_dpnss_LbL_msg ( tvb , pinfo , dpnss_tree ) ;
break ;
default :
proto_tree_add_text ( tree , tvb , offset , 1 , " Unknown Message Group " ) ;
break ;
2007-08-17 21:31:22 +00:00
}
}
void
proto_register_dpnss ( void )
{
/* Setup list of header fields See Section 1.6.1 for details*/
static hf_register_info hf [ ] = {
{ & hf_dpnss_msg_grp_id ,
{ " Message Group Identifier " , " dpnss.msg_grp_id " ,
FT_UINT8 , BASE_DEC , VALS ( dpnss_msg_grp_id_vals ) , 0xf0 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-17 21:31:22 +00:00
} ,
{ & hf_dpnss_cc_msg_type ,
{ " Call Control Message Type " , " dpnss.cc_msg_type " ,
FT_UINT8 , BASE_DEC , VALS ( dpnss_cc_msg_type_vals ) , 0x0f ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-17 21:31:22 +00:00
} ,
{ & hf_dpnss_e2e_msg_type ,
{ " END-TO-END Message Type " , " dpnss.e2e_msg_type " ,
FT_UINT8 , BASE_DEC , VALS ( dpnss_e2e_msg_type_vals ) , 0x0f ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-17 21:31:22 +00:00
} ,
{ & hf_dpnss_LbL_msg_type ,
{ " LINK-BY-LINK Message Type " , " dpnss.lbl_msg_type " ,
FT_UINT8 , BASE_DEC , VALS ( dpnss_LbL_msg_type_vals ) , 0x0f ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-17 21:31:22 +00:00
} ,
{ & hf_dpnss_ext_bit ,
{ " Extension bit " , " dpnss.ext_bit " ,
FT_BOOLEAN , 8 , TFS ( & dpnss_ext_bit_vals ) , 0x80 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-17 21:31:22 +00:00
} ,
2007-08-19 20:26:08 +00:00
{ & hf_dpnss_ext_bit_notall ,
{ " Extension bit " , " dpnss.ext_bit_notall " ,
FT_BOOLEAN , 8 , TFS ( & dpnss_ext_bit_no_ext_vals ) , 0x80 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-19 20:26:08 +00:00
} ,
2007-08-17 21:31:22 +00:00
{ & hf_dpnss_sic_type ,
{ " Type of data " , " dpnss.sic_type " ,
FT_UINT8 , BASE_DEC , VALS ( dpnss_sic_type_type_vals ) , 0x70 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-17 21:31:22 +00:00
} ,
{ & hf_dpnss_sic_details_for_speech ,
{ " Details for Speech " , " dpnss.sic_details_for_speech " ,
2007-08-19 20:26:08 +00:00
FT_UINT8 , BASE_DEC , VALS ( dpnss_sic_details_for_speech_vals ) , 0x0f ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-17 21:31:22 +00:00
} ,
{ & hf_dpnss_sic_details_for_data1 ,
{ " Data Rates " , " dpnss.sic_details_for_data1 " ,
2007-08-19 20:26:08 +00:00
FT_UINT8 , BASE_DEC , VALS ( dpnss_sic_details_for_data_rates1_vals ) , 0x0f ,
2007-08-17 21:31:22 +00:00
" Type of Data (010) : Data Rates " , HFILL }
} ,
{ & hf_dpnss_sic_details_for_data2 ,
{ " Data Rates " , " dpnss.sic_details_data2 " ,
2007-08-19 20:26:08 +00:00
FT_UINT8 , BASE_DEC , VALS ( dpnss_sic_details_for_data_rates2_vals ) , 0x0f ,
2007-08-17 21:31:22 +00:00
" Type of Data (011) : Data Rates " , HFILL }
} ,
2007-08-19 20:26:08 +00:00
{ & hf_dpnss_dest_addr ,
{ " Destination Address " , " dpnss.dest_addr " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-19 20:26:08 +00:00
} ,
{ & hf_dpnss_sic_oct2_data_type ,
{ " Data Type " , " dpnss.sic_oct2_data_type " ,
FT_UINT8 , BASE_DEC , VALS ( dpnss_sic_oct2_data_type_vals ) , 0x03 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-19 20:26:08 +00:00
} ,
{ & hf_dpnss_sic_oct2_duplex ,
{ " Data Type " , " dpnss.sic_oct2_duplex " ,
FT_BOOLEAN , 8 , TFS ( & dpnss_duplex_vals ) , 0x08 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-19 20:26:08 +00:00
} ,
{ & hf_dpnss_sic_oct2_net_ind_clk ,
{ " Network Independent Clock " , " dpnss.sic_oct2_sync_data_format " ,
FT_BOOLEAN , 8 , TFS ( & dpnss_sic_oct2_net_ind_clk_vals ) , 0x40 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-19 20:26:08 +00:00
} ,
{ & hf_dpnss_sic_oct2_sync_data_format ,
{ " Data Format " , " dpnss.sic_oct2_sync_data_format " ,
FT_BOOLEAN , 8 , TFS ( & dpnss_sic_oct2_sync_data_format_vals ) , 0x20 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-19 20:26:08 +00:00
} ,
{ & hf_dpnss_sic_oct2_sync_byte_timing ,
{ " Byte Timing " , " dpnss.sic_oct2_sync_byte_timing " ,
FT_BOOLEAN , 8 , TFS ( & dpnss_provided_vals ) , 0x10 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-19 20:26:08 +00:00
} ,
{ & hf_dpnss_sic_oct2_async_data ,
{ " Data Format " , " dpnss.sic_oct2_async_data " ,
FT_UINT8 , BASE_DEC , VALS ( dpnss_sic_oct2_async_data_type_vals ) , 0x30 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-19 20:26:08 +00:00
} ,
{ & hf_dpnss_sic_oct2_async_flow_ctrl ,
{ " Flow Control " , " dpnss.sic_oct2_async_flow_ctrl " ,
FT_BOOLEAN , 8 , TFS ( & dpnss_flow_control_vals ) , 0x40 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-19 20:26:08 +00:00
} ,
{ & hf_dpnss_clearing_cause ,
{ " Clearing Cause " , " dpnss.clearing_cause " ,
FT_UINT8 , BASE_DEC , VALS ( dpnss_clearing_cause_code_vals ) , 0x0 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-19 20:26:08 +00:00
} ,
{ & hf_dpnss_rejection_cause ,
{ " Rejection Cause " , " dpnss.rejection_cause " ,
FT_UINT8 , BASE_DEC , VALS ( dpnss_clearing_cause_code_vals ) , 0x0 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-19 20:26:08 +00:00
} ,
2007-08-20 20:58:02 +00:00
{ & hf_dpnss_man_code ,
{ " Manufacturer Code " , " dpnss.man_code " ,
FT_UINT8 , BASE_DEC , VALS ( dpnss_man_code_vals ) , 0x3c ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-20 20:58:02 +00:00
} ,
{ & hf_dpnss_subcode ,
{ " Subcode " , " dpnss.subcode " ,
FT_UINT8 , BASE_DEC , NULL , 0x03 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-20 20:58:02 +00:00
} ,
{ & hf_dpnss_maintenance_action ,
{ " Maintenance action " , " dpnss.maint_act " ,
FT_UINT8 , BASE_DEC , VALS ( dpnss_maintenance_actions_vals ) , 0x0 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-20 20:58:02 +00:00
} ,
2007-08-28 17:50:02 +00:00
{ & hf_dpnss_a_b_party_addr ,
{ " A/B party Address " , " dpnss.a_b_party_addr " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-28 17:50:02 +00:00
} ,
{ & hf_dpnss_call_idx ,
{ " Call Index " , " dpnss.call_idx " ,
FT_STRING , BASE_NONE , NULL , 0x0 ,
2009-05-08 14:46:01 +00:00
NULL , HFILL }
2007-08-28 17:50:02 +00:00
} ,
2007-08-17 21:31:22 +00:00
} ;
/* Setup protocol subtree array */
static gint * ett [ ] = {
& ett_dpnss ,
2007-08-19 20:26:08 +00:00
& ett_dpnss_sel_field ,
& ett_dpnss_sic_field ,
& ett_dpnss_ind_field ,
2007-08-22 21:47:31 +00:00
& ett_dpnss_sup_str ,
2007-08-17 21:31:22 +00:00
} ;
/* Register the protocol name and description */
proto_dpnss = proto_register_protocol ( " Digital Private Signalling System No 1 " , " DPNSS " , " dpnss " ) ;
register_dissector ( " dpnss " , dissect_dpnss , proto_dpnss ) ;
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array ( proto_dpnss , hf , array_length ( hf ) ) ;
proto_register_subtree_array ( ett , array_length ( ett ) ) ;
2007-08-18 03:19:44 +00:00
}