aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-dpnss.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-dpnss.c')
-rw-r--r--epan/dissectors/packet-dpnss.c2825
1 files changed, 1428 insertions, 1397 deletions
diff --git a/epan/dissectors/packet-dpnss.c b/epan/dissectors/packet-dpnss.c
index d1f443ff8c..6bea57d168 100644
--- a/epan/dissectors/packet-dpnss.c
+++ b/epan/dissectors/packet-dpnss.c
@@ -1,7 +1,7 @@
/* packet-dpnss_dass2.c
* Routines for DPNNS/DASS2 dissection
* Copyright 2007, Anders Broman <anders.broman[at]ericsson.com>
- *
+ *
* Supplementary string parameter table and testing by Tomas Muehlhoff.
*
* $Id$
@@ -9,17 +9,17 @@
* 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.
@@ -33,168 +33,166 @@
# include "config.h"
#endif
-#include <stdlib.h>
-
#include <glib.h>
#include <epan/packet.h>
#include <epan/proto.h>
/* Initialize the protocol and registered fields */
-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 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_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;
-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;
+static int hf_dpnss_clearing_cause = -1;
+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;
/* parameters */
-static int hf_dpnss_a_b_party_addr = -1;
-static int hf_dpnss_call_idx = -1;
-
-#define DPNNS_MESSAGE_GROUP_CC 0
-#define DPNNS_MESSAGE_GROUP_E2E 2
-#define DPNNS_MESSAGE_GROUP_LbL 4
-
-#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
-#define DPNSS_CC_MSG_CS 4
-#define DPNSS_CC_MSG_CCM 5
-#define DPNSS_CC_MSG_NIM 6
-#define DPNSS_CC_MSG_CA 7
-#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
+static int hf_dpnss_a_b_party_addr = -1;
+static int hf_dpnss_call_idx = -1;
+
+#define DPNNS_MESSAGE_GROUP_CC 0
+#define DPNNS_MESSAGE_GROUP_E2E 2
+#define DPNNS_MESSAGE_GROUP_LbL 4
+
+#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
+#define DPNSS_CC_MSG_CS 4
+#define DPNSS_CC_MSG_CCM 5
+#define DPNSS_CC_MSG_NIM 6
+#define DPNSS_CC_MSG_CA 7
+#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
/* Initialize the subtree pointers */
-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;
-static int ett_dpnss_sup_str = -1;
+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;
+static int ett_dpnss_sup_str = -1;
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 }
+ {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[] = {
- {DPNSS_CC_MSG_ISRM_C, "INITIAL SERVICE REQUEST Message (COMPLETE) - ISRM(C)"},
- {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)"},
- {DPNSS_CC_MSG_CS, "CHANNEL SEIZED - CS"},
- {DPNSS_CC_MSG_CCM, "CALL CONNECTED Message - CCM"},
- {DPNSS_CC_MSG_NIM, "NETWORK INDICATION Message - NIM"},
- {DPNSS_CC_MSG_CA, "CALL ARRIVAL Message - CA"},
- {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)"},
- { 0, NULL }
+ {DPNSS_CC_MSG_ISRM_C, "INITIAL SERVICE REQUEST Message (COMPLETE) - ISRM(C)"},
+ {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)"},
+ {DPNSS_CC_MSG_CS, "CHANNEL SEIZED - CS"},
+ {DPNSS_CC_MSG_CCM, "CALL CONNECTED Message - CCM"},
+ {DPNSS_CC_MSG_NIM, "NETWORK INDICATION Message - NIM"},
+ {DPNSS_CC_MSG_CA, "CALL ARRIVAL Message - CA"},
+ {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)"},
+ { 0, NULL }
};
static const value_string dpnss_cc_msg_short_type_vals[] = {
- {DPNSS_CC_MSG_ISRM_C, "ISRM(C)"},
- {DPNSS_CC_MSG_ISRM_I, "ISRM(I)"},
- {DPNSS_CC_MSG_RM_C, "RM(C)"},
- {DPNSS_CC_MSG_RM_I, "RM(I)"},
- {DPNSS_CC_MSG_CS, "CS"},
- {DPNSS_CC_MSG_CCM, "CCM"},
- {DPNSS_CC_MSG_CA, "CA"},
- {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)"},
- {0, NULL }
+ {DPNSS_CC_MSG_ISRM_C, "ISRM(C)"},
+ {DPNSS_CC_MSG_ISRM_I, "ISRM(I)"},
+ {DPNSS_CC_MSG_RM_C, "RM(C)"},
+ {DPNSS_CC_MSG_RM_I, "RM(I)"},
+ {DPNSS_CC_MSG_CS, "CS"},
+ {DPNSS_CC_MSG_CCM, "CCM"},
+ {DPNSS_CC_MSG_CA, "CA"},
+ {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)"},
+ {0, NULL }
};
-#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
+#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
/* 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 }
+ {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 }
+ {2, "EEM(C)"},
+ {3, "EEM(I)"},
+ {4, "SCRM"},
+ {5, "SCIM"},
+ {6, "ERM(C)"},
+ {7, "ERM(I)"},
+ {8, "NSIM"},
+ { 0, NULL }
};
-#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
+#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
/* 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 }
+ {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 }
+ {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 = {
@@ -208,88 +206,88 @@ static const true_false_string dpnss_ext_bit_no_ext_vals = {
};
/* 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 }
+ {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 }
};
static const value_string dpnss_sic_details_for_speech_vals[] = {
- {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 }
+ {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 }
};
static const value_string dpnss_sic_details_for_data_rates1_vals[] = {
- {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 }
+ {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 }
};
static const value_string dpnss_sic_details_for_data_rates2_vals[] = {
- {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 }
+ {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 }
};
/* 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 }
+ {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 = {
@@ -313,735 +311,735 @@ static const true_false_string dpnss_provided_vals = {
};
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 }
+ {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
+/* 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 }
+ {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 }
};
/* 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 }
+ {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 }
+ {0x0, "Reserved"},
+ {0x1, "BT"},
+ {0x2, "Ericsson"},
+ {0x3, "Lucent"},
+ {0x4, "Philips"},
+ {0x5, "Siemens"},
+ {0x6, "Westell"},
+ {0x7, "Mitel"},
+ { 0, NULL }
};
-#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
+#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 {
- gint id_code_no;
- const char *compact_name;
- const char *name;
- gint par1_num;
- gint par2_num;
- gint par3_num;
- gint par4_num;
+ gint id_code_no;
+ const char *compact_name;
+ const char *name;
+ gint par1_num;
+ gint par2_num;
+ gint par3_num;
+ gint par4_num;
} 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 },
- {237, "I-DSA", "ISDN-DESTINATION (CALLED PARTY) DPNSS_SUBADDRESS", DPNSS_ISDN_DPNSS_SUBADDRESS, DPNSS_NONE, DPNSS_NONE, DPNSS_NONE },
- {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 },
- {253, "PCON-P", "PUBLIC CONNECTED NUMBER-PROVIDED", DPNSS_ISDN_NUM_ATTR, DPNSS_ISDN_NUMBER_DIGITS, DPNSS_NONE, DPNSS_NONE },
- {254, "PCON-D", "PUBLIC CONNECTED NUMBER-DEFAULT", DPNSS_NONE, DPNSS_NONE, DPNSS_NONE, DPNSS_NONE },
+ {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 },
+ {237, "I-DSA", "ISDN-DESTINATION (CALLED PARTY) DPNSS_SUBADDRESS", DPNSS_ISDN_DPNSS_SUBADDRESS, DPNSS_NONE, DPNSS_NONE, DPNSS_NONE },
+ {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 },
+ {253, "PCON-P", "PUBLIC CONNECTED NUMBER-PROVIDED", DPNSS_ISDN_NUM_ATTR, DPNSS_ISDN_NUMBER_DIGITS, DPNSS_NONE, DPNSS_NONE },
+ {254, "PCON-D", "PUBLIC CONNECTED NUMBER-DEFAULT", DPNSS_NONE, DPNSS_NONE, DPNSS_NONE, DPNSS_NONE },
};
static int
dissect_dpnss_sic(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset)
{
- guint8 octet, type_of_data;
-
- 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
- */
- octet = tvb_get_guint8(tvb,offset);
- type_of_data = octet&0x3;
- proto_tree_add_item(tree, hf_dpnss_ext_bit_notall, tvb, offset, 1, FALSE);
- switch(type_of_data){
- case 3:
- /* 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);
- break;
- default:
- break;
- }
- 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);
- offset++;
- }
- return offset;
+ guint8 octet, type_of_data;
+
+ 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
+ */
+ octet = tvb_get_guint8(tvb,offset);
+ type_of_data = octet&0x3;
+ proto_tree_add_item(tree, hf_dpnss_ext_bit_notall, tvb, offset, 1, FALSE);
+ switch(type_of_data){
+ case 3:
+ /* 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);
+ break;
+ default:
+ break;
+ }
+ 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);
+ offset++;
+ }
+ return offset;
}
/*
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 }
+ { 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
+/* 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"},
- { DPNSS_NO_OF_FUR_TRANS, "Number of Further Transits"},
- { DPNSS_NO_OF_FUR_ALT_R, "Number of Further Alternative routes"},
- { DPNSS_INT_CAP_LEV, "Intrusion Capability level"},
- { 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"},
- { DPNSS_REASON_FOR_REDIR, "Reason For Redirection"},
- { 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"},
- { DPNSS_STAFF_PRESENT, "Staff Present"},
- { 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"},
- { DPNSS_HIGH_LAYER_COMP, "High Layer Compatibility"},
- { DPNSS_LOW_LAYER_COMP, "Low layer Compatibility"},
- { 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 }
+ { 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"},
+ { DPNSS_NO_OF_FUR_TRANS, "Number of Further Transits"},
+ { DPNSS_NO_OF_FUR_ALT_R, "Number of Further Alternative routes"},
+ { DPNSS_INT_CAP_LEV, "Intrusion Capability level"},
+ { 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"},
+ { DPNSS_REASON_FOR_REDIR, "Reason For Redirection"},
+ { 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"},
+ { DPNSS_STAFF_PRESENT, "Staff Present"},
+ { 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"},
+ { DPNSS_HIGH_LAYER_COMP, "High Layer Compatibility"},
+ { DPNSS_LOW_LAYER_COMP, "Low layer Compatibility"},
+ { 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;
+ 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;
+ 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:
- */
- case DPNSS_A_B_PARTY_ADDR:
- proto_tree_add_item(tree, hf_dpnss_a_b_party_addr, tvb, par_start_offset, par_len, FALSE);
- break;
-
- /*
- case DPNSS_DIVERSION_TYPE:
- case DPNSS_NSI_IDENTIFIER:
- case DPNSS_USER_DEFINED:
- case DPNSS_TEXT:
- */
- case DPNSS_CALL_INDEX:
- proto_tree_add_item(tree, hf_dpnss_call_idx, tvb, par_start_offset, par_len, FALSE);
- break;
- /*
-
- 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:
+ 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:
+ */
+ case DPNSS_A_B_PARTY_ADDR:
+ proto_tree_add_item(tree, hf_dpnss_a_b_party_addr, tvb, par_start_offset, par_len, FALSE);
+ break;
+
+ /*
+ case DPNSS_DIVERSION_TYPE:
+ case DPNSS_NSI_IDENTIFIER:
+ case DPNSS_USER_DEFINED:
+ case DPNSS_TEXT:
+ */
+ case DPNSS_CALL_INDEX:
+ proto_tree_add_item(tree, hf_dpnss_call_idx, tvb, par_start_offset, par_len, FALSE);
+ break;
+ /*
+
+ 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 */
- proto_tree_add_text(tree, tvb, par_start_offset, par_len,"Parameter %s: %s",
- val_to_str(par_type_num, dpnss_sup_serv_par_str_vals, "Unknown (%d)" ),
- tvb_format_text(tvb,par_start_offset, par_len)
- );
- break;
- }
+ default:
+ /* Used to print all pars without any special handling */
+ proto_tree_add_text(tree, tvb, par_start_offset, par_len,"Parameter %s: %s",
+ val_to_str(par_type_num, dpnss_sup_serv_par_str_vals, "Unknown (%d)" ),
+ tvb_format_text(tvb,par_start_offset, par_len)
+ );
+ break;
+ }
}
-/* 3.1 Supplementary Information Strings
+/* 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 #.
- *
+ * 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 #
@@ -1057,7 +1055,7 @@ dissect_dpnns_sup_str_par(tvbuff_t *tvb, proto_tree * tree, int par_type_num, in
* 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
@@ -1070,567 +1068,600 @@ dissect_dpnns_sup_str_par(tvbuff_t *tvb, proto_tree * tree, int par_type_num, in
static int
dissect_dpnss_sup_info_str(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, gint offset)
{
- 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;
- gint sup_inf_str_len, par_type_num;
- guint sup_str_num;
- guint8 octet;
- gboolean last_string = FALSE;
- gboolean has_par;
-
- tvb_end_offset = tvb_length(tvb);
-
- str_no = 1;
- while((offset<tvb_end_offset)&&(last_string == FALSE)){
- octet = tvb_get_guint8(tvb,offset);
- if (octet == '*'){
- /* Supplementary Information String */
- start_offset = offset;
- has_par = TRUE;
- number_of_found_par = 0;
- /* offset points to start of supplementary information string */
- offset++;
- hash_offset = tvb_find_guint8(tvb, offset, -1, '#');
- 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;
-
- }
- }
- offset = hash_offset+1;
- str_no++;
- }else{
- last_string = TRUE;
- proto_tree_add_item(tree, hf_dpnss_dest_addr, tvb, offset, -1, FALSE);
- }
- }
- return offset;
+ 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;
+ gint sup_inf_str_len, par_type_num;
+ guint sup_str_num;
+ guint8 octet;
+ gboolean last_string = FALSE;
+ gboolean has_par;
+
+ tvb_end_offset = tvb_length(tvb);
+
+ str_no = 1;
+ while((offset<tvb_end_offset)&&(last_string == FALSE)){
+ octet = tvb_get_guint8(tvb,offset);
+ if (octet == '*'){
+ /* Supplementary Information String */
+ start_offset = offset;
+ has_par = TRUE;
+ number_of_found_par = 0;
+ /* offset points to start of supplementary information string */
+ offset++;
+ hash_offset = tvb_find_guint8(tvb, offset, -1, '#');
+ 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;
+
+ }
+ }
+ offset = hash_offset+1;
+ str_no++;
+ }else{
+ last_string = TRUE;
+ proto_tree_add_item(tree, hf_dpnss_dest_addr, tvb, offset, -1, FALSE);
+ }
+ }
+ return offset;
}
static void
dissect_dpnss_LbL_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- proto_item *sic_field_item, *ind_field_item;
- proto_tree *sic_field_tree, *ind_field_tree;
- int offset = 0;
- int tvb_end_offset;
- guint8 octet;
-
- tvb_end_offset = tvb_length(tvb);
-
- 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))
- col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
- val_to_str(octet, dpnss_LbL_msg_short_type_vals, "Unknown (%d)" ));
- 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;
- }
- }
+ proto_item *sic_field_item, *ind_field_item;
+ proto_tree *sic_field_tree, *ind_field_tree;
+ int offset = 0;
+ int tvb_end_offset;
+ guint8 octet;
+
+ tvb_end_offset = tvb_length(tvb);
+
+ 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))
+ col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(octet, dpnss_LbL_msg_short_type_vals, "Unknown (%d)" ));
+ 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;
+ }
+ }
}
static void
dissect_dpnss_e2e_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- proto_item *sel_field_item, *sic_field_item, *ind_field_item;
- proto_tree *sel_field_tree, *sic_field_tree, *ind_field_tree;
- int offset = 0;
- int tvb_end_offset;
- guint8 octet;
-
- tvb_end_offset = tvb_length(tvb);
-
- 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))
- col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
- val_to_str(octet, dpnss_e2e_msg_short_type_vals, "Unknown (%d)" ));
- 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:
- /* Fall trough */
- /* 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){
- /* Extension bit set */
- 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;
- }
- }
+ proto_item *sel_field_item, *sic_field_item, *ind_field_item;
+ proto_tree *sel_field_tree, *sic_field_tree, *ind_field_tree;
+ int offset = 0;
+ int tvb_end_offset;
+ guint8 octet;
+
+ tvb_end_offset = tvb_length(tvb);
+
+ 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))
+ col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(octet, dpnss_e2e_msg_short_type_vals, "Unknown (%d)" ));
+ 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:
+ /* Fall trough */
+ /* 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){
+ /* Extension bit set */
+ 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;
+ }
+ }
}
static void
dissect_dpnss_cc_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- proto_item *sel_field_item, *sic_field_item, *ind_field_item;
- proto_tree *sel_field_tree, *sic_field_tree, *ind_field_tree;
- int offset = 0;
- int tvb_end_offset;
- guint8 octet;
-
- tvb_end_offset = tvb_length(tvb);
- 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))
- col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
- val_to_str(octet, dpnss_cc_msg_short_type_vals, "Unknown (%d)" ));
-
- 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.
- */
- 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_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);
- }
- break;
- case DPNSS_CC_MSG_NIM:
- /* 2.1.6 NETWORK INDICATION Message - NIM */
- /* fall trough */
- case DPNSS_CC_MSG_NAM:
- /* 2.1.9 NUMBER ACKNOWLEDGE Message - NAM */
- /* 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_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) */
- /* Selection Field */
- 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_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;
- case DPNSS_CC_MSG_CS:
- case DPNSS_CC_MSG_CA:
- /* DASS2 ?*/
- default:
- proto_tree_add_text(tree, tvb, offset, 1, "Unknown or Dissection of this message not supported yet");
- break;
- }
- }
+ proto_item *sel_field_item, *sic_field_item, *ind_field_item;
+ proto_tree *sel_field_tree, *sic_field_tree, *ind_field_tree;
+ int offset = 0;
+ int tvb_end_offset;
+ guint8 octet;
+
+ tvb_end_offset = tvb_length(tvb);
+ 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))
+ col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(octet, dpnss_cc_msg_short_type_vals, "Unknown (%d)" ));
+
+ 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.
+ */
+ 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_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);
+ }
+ break;
+ case DPNSS_CC_MSG_NIM:
+ /* 2.1.6 NETWORK INDICATION Message - NIM */
+ /* fall trough */
+ case DPNSS_CC_MSG_NAM:
+ /* 2.1.9 NUMBER ACKNOWLEDGE Message - NAM */
+ /* 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_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) */
+ /* Selection Field */
+ 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_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;
+ case DPNSS_CC_MSG_CS:
+ case DPNSS_CC_MSG_CA:
+ /* DASS2 ?*/
+ default:
+ proto_tree_add_text(tree, tvb, offset, 1, "Unknown or Dissection of this message not supported yet");
+ 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;
+ int offset = 0;
+ proto_item *item;
+ proto_tree *dpnss_tree;
+ guint8 octet;
/* Make entries in Protocol column and Info column on summary display */
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "DPNSS");
-
- 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;
- }
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "DPNSS");
+
+ 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;
+ }
}
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,
- NULL, HFILL }
- },
- { &hf_dpnss_cc_msg_type,
- { "Call Control Message Type", "dpnss.cc_msg_type",
- FT_UINT8, BASE_DEC, VALS(dpnss_cc_msg_type_vals), 0x0f,
- NULL, HFILL }
- },
- { &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,
- NULL, HFILL }
- },
- { &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,
- NULL, HFILL }
- },
- { &hf_dpnss_ext_bit,
- { "Extension bit", "dpnss.ext_bit",
- FT_BOOLEAN, 8, TFS(&dpnss_ext_bit_vals), 0x80,
- NULL, HFILL }
- },
- { &hf_dpnss_ext_bit_notall,
- { "Extension bit", "dpnss.ext_bit_notall",
- FT_BOOLEAN, 8, TFS(&dpnss_ext_bit_no_ext_vals), 0x80,
- NULL, HFILL }
- },
- { &hf_dpnss_sic_type,
- { "Type of data", "dpnss.sic_type",
- FT_UINT8, BASE_DEC, VALS(dpnss_sic_type_type_vals), 0x70,
- NULL, HFILL }
- },
- { &hf_dpnss_sic_details_for_speech,
- { "Details for Speech", "dpnss.sic_details_for_speech",
- FT_UINT8, BASE_DEC, VALS(dpnss_sic_details_for_speech_vals), 0x0f,
- NULL, HFILL }
- },
- { &hf_dpnss_sic_details_for_data1,
- { "Data Rates", "dpnss.sic_details_for_data1",
- FT_UINT8, BASE_DEC, VALS(dpnss_sic_details_for_data_rates1_vals), 0x0f,
- "Type of Data (010) : Data Rates", HFILL }
- },
- { &hf_dpnss_sic_details_for_data2,
- { "Data Rates", "dpnss.sic_details_data2",
- FT_UINT8, BASE_DEC, VALS(dpnss_sic_details_for_data_rates2_vals), 0x0f,
- "Type of Data (011) : Data Rates", HFILL }
- },
- { &hf_dpnss_dest_addr,
- { "Destination Address", "dpnss.dest_addr",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL }
- },
- { &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,
- NULL, HFILL }
- },
- { &hf_dpnss_sic_oct2_duplex,
- { "Data Type", "dpnss.sic_oct2_duplex",
- FT_BOOLEAN, 8, TFS(&dpnss_duplex_vals), 0x08,
- NULL, HFILL }
- },
- { &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,
- NULL, HFILL }
- },
- { &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,
- NULL, HFILL }
- },
- { &hf_dpnss_sic_oct2_sync_byte_timing,
- { "Byte Timing", "dpnss.sic_oct2_sync_byte_timing",
- FT_BOOLEAN, 8, TFS(&dpnss_provided_vals), 0x10,
- NULL, HFILL }
- },
- { &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,
- NULL, HFILL }
- },
- { &hf_dpnss_sic_oct2_async_flow_ctrl,
- { "Flow Control", "dpnss.sic_oct2_async_flow_ctrl",
- FT_BOOLEAN, 8, TFS(&dpnss_flow_control_vals), 0x40,
- NULL, HFILL }
- },
- { &hf_dpnss_clearing_cause,
- { "Clearing Cause", "dpnss.clearing_cause",
- FT_UINT8, BASE_DEC, VALS(dpnss_clearing_cause_code_vals), 0x0,
- NULL, HFILL }
- },
- { &hf_dpnss_rejection_cause,
- { "Rejection Cause", "dpnss.rejection_cause",
- FT_UINT8, BASE_DEC, VALS(dpnss_clearing_cause_code_vals), 0x0,
- NULL, HFILL }
- },
- { &hf_dpnss_man_code,
- { "Manufacturer Code", "dpnss.man_code",
- FT_UINT8, BASE_DEC, VALS(dpnss_man_code_vals), 0x3c,
- NULL, HFILL }
- },
- { &hf_dpnss_subcode,
- { "Subcode", "dpnss.subcode",
- FT_UINT8, BASE_DEC, NULL, 0x03,
- NULL, HFILL }
- },
- { &hf_dpnss_maintenance_action,
- { "Maintenance action", "dpnss.maint_act",
- FT_UINT8, BASE_DEC, VALS(dpnss_maintenance_actions_vals), 0x0,
- NULL, HFILL }
- },
- { &hf_dpnss_a_b_party_addr,
- { "A/B party Address", "dpnss.a_b_party_addr",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL }
- },
- { &hf_dpnss_call_idx,
- { "Call Index", "dpnss.call_idx",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL }
- },
- };
+ 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,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_cc_msg_type,
+ { "Call Control Message Type", "dpnss.cc_msg_type",
+ FT_UINT8, BASE_DEC, VALS(dpnss_cc_msg_type_vals), 0x0f,
+ NULL, HFILL }
+ },
+ { &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,
+ NULL, HFILL }
+ },
+ { &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,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_ext_bit,
+ { "Extension bit", "dpnss.ext_bit",
+ FT_BOOLEAN, 8, TFS(&dpnss_ext_bit_vals), 0x80,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_ext_bit_notall,
+ { "Extension bit", "dpnss.ext_bit_notall",
+ FT_BOOLEAN, 8, TFS(&dpnss_ext_bit_no_ext_vals), 0x80,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_sic_type,
+ { "Type of data", "dpnss.sic_type",
+ FT_UINT8, BASE_DEC, VALS(dpnss_sic_type_type_vals), 0x70,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_sic_details_for_speech,
+ { "Details for Speech", "dpnss.sic_details_for_speech",
+ FT_UINT8, BASE_DEC, VALS(dpnss_sic_details_for_speech_vals), 0x0f,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_sic_details_for_data1,
+ { "Data Rates", "dpnss.sic_details_for_data1",
+ FT_UINT8, BASE_DEC, VALS(dpnss_sic_details_for_data_rates1_vals), 0x0f,
+ "Type of Data (010) : Data Rates", HFILL }
+ },
+ { &hf_dpnss_sic_details_for_data2,
+ { "Data Rates", "dpnss.sic_details_data2",
+ FT_UINT8, BASE_DEC, VALS(dpnss_sic_details_for_data_rates2_vals), 0x0f,
+ "Type of Data (011) : Data Rates", HFILL }
+ },
+ { &hf_dpnss_dest_addr,
+ { "Destination Address", "dpnss.dest_addr",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &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,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_sic_oct2_duplex,
+ { "Data Type", "dpnss.sic_oct2_duplex",
+ FT_BOOLEAN, 8, TFS(&dpnss_duplex_vals), 0x08,
+ NULL, HFILL }
+ },
+ { &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,
+ NULL, HFILL }
+ },
+ { &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,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_sic_oct2_sync_byte_timing,
+ { "Byte Timing", "dpnss.sic_oct2_sync_byte_timing",
+ FT_BOOLEAN, 8, TFS(&dpnss_provided_vals), 0x10,
+ NULL, HFILL }
+ },
+ { &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,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_sic_oct2_async_flow_ctrl,
+ { "Flow Control", "dpnss.sic_oct2_async_flow_ctrl",
+ FT_BOOLEAN, 8, TFS(&dpnss_flow_control_vals), 0x40,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_clearing_cause,
+ { "Clearing Cause", "dpnss.clearing_cause",
+ FT_UINT8, BASE_DEC, VALS(dpnss_clearing_cause_code_vals), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_rejection_cause,
+ { "Rejection Cause", "dpnss.rejection_cause",
+ FT_UINT8, BASE_DEC, VALS(dpnss_clearing_cause_code_vals), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_man_code,
+ { "Manufacturer Code", "dpnss.man_code",
+ FT_UINT8, BASE_DEC, VALS(dpnss_man_code_vals), 0x3c,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_subcode,
+ { "Subcode", "dpnss.subcode",
+ FT_UINT8, BASE_DEC, NULL, 0x03,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_maintenance_action,
+ { "Maintenance action", "dpnss.maint_act",
+ FT_UINT8, BASE_DEC, VALS(dpnss_maintenance_actions_vals), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_a_b_party_addr,
+ { "A/B party Address", "dpnss.a_b_party_addr",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_dpnss_call_idx,
+ { "Call Index", "dpnss.call_idx",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }
+ },
+ };
/* Setup protocol subtree array */
- static gint *ett[] = {
- &ett_dpnss,
- &ett_dpnss_sel_field,
- &ett_dpnss_sic_field,
- &ett_dpnss_ind_field,
- &ett_dpnss_sup_str,
- };
+ static gint *ett[] = {
+ &ett_dpnss,
+ &ett_dpnss_sel_field,
+ &ett_dpnss_sic_field,
+ &ett_dpnss_ind_field,
+ &ett_dpnss_sup_str,
+ };
/* 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);
+ 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));
+ /* 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));
}