aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-q931.c
diff options
context:
space:
mode:
authorjake <jake@f5534014-38df-0310-8fa8-9805f1628bb7>2008-03-18 19:57:35 +0000
committerjake <jake@f5534014-38df-0310-8fa8-9805f1628bb7>2008-03-18 19:57:35 +0000
commit72fb4ca2faabd1ae25af6cc38cc04cb41211fd21 (patch)
tree47b8ce9324f56192e9e85364a318e585509f2130 /epan/dissectors/packet-q931.c
parent68ce2dacf2a7cafd68090982c11bf9f7d0208436 (diff)
Add codeset 5 ETSI party catagory IE.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@24690 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-q931.c')
-rw-r--r--epan/dissectors/packet-q931.c45
1 files changed, 44 insertions, 1 deletions
diff --git a/epan/dissectors/packet-q931.c b/epan/dissectors/packet-q931.c
index e8cd409120..6f12d847f3 100644
--- a/epan/dissectors/packet-q931.c
+++ b/epan/dissectors/packet-q931.c
@@ -333,6 +333,11 @@ static const true_false_string q931_extension_ind_value = {
#define Q931_IE_OPERATOR_SYSTEM_ACCESS 0x1D
/*
+ * Codeset 5 ETSI ETS 300 192
+ */
+#define Q931_IE_PARTY_CATEGORY 0x32
+
+/*
* Codeset 6 (Network-specific) Belgium.
*/
/* 0x1A is Charging Advice, as with Codeset 5 */
@@ -420,6 +425,7 @@ static const value_string q931_info_element_vals4[] = {
static const value_string q931_info_element_vals5[] = {
{ Q931_IE_CHARGING_ADVICE, "Charging advice" },
{ Q931_IE_OPERATOR_SYSTEM_ACCESS, "Operator system access" },
+ { Q931_IE_PARTY_CATEGORY, "Party category"},
{ 0, NULL }
};
/* Codeset 6 */
@@ -427,7 +433,7 @@ static const value_string q931_info_element_vals6[] = {
{ Q931_IE_REDIRECTING_NUMBER, "Redirecting number" },
{ Q931_IE_REDIRECTING_SUBADDR, "Redirecting subaddress" },
{ Q931_IE_CALL_APPEARANCE, "Call appearance" },
- { Q931_IE_DISPLAY, "Avaya Display" }, /* if Avaya codeset to send display = 6 */
+ { Q931_IE_DISPLAY, "Avaya Display" }, /* if Avaya codeset to send display = 6 */
{ 0, NULL }
};
/* Codeset 7 */
@@ -2364,6 +2370,35 @@ dissect_q931_user_user_ie(tvbuff_t *tvb, int offset, int len,
}
}
+static const value_string q931_party_category_vals[] = {
+ { 0x00, "Unknown" },
+ { 0x01, "Extension" },
+ { 0x02, "Operator" },
+ { 0x03, "Emergency extension" },
+ { 0, NULL }
+};
+
+static void
+dissect_q931_party_category_ie(tvbuff_t *tvb, int offset, int len,
+ proto_tree *tree)
+{
+ guint8 octet;
+
+ if (len == 0)
+ return;
+
+ octet = tvb_get_guint8(tvb, offset);
+ proto_tree_add_text(tree, tvb, offset, 1,
+ "Party category: %s",
+ val_to_str(octet&0x07, q931_party_category_vals,
+ "Unknown (0x%02x)"));
+ offset += 1;
+ len -= 1;
+
+ if (len == 0)
+ return;
+}
+
/*
* Dissect information elements consisting of ASCII^H^H^H^H^HIA5 text.
*/
@@ -2991,6 +3026,14 @@ dissect_q931_IEs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *root_tree,
}
break;
+ case CS5 | Q931_IE_PARTY_CATEGORY:
+ if (q931_tree != NULL) {
+ dissect_q931_party_category_ie(tvb,
+ offset + 2, info_element_len,
+ ie_tree);
+ }
+ break;
+
case CS6 | Q931_IE_DISPLAY:
if (q931_tree != NULL) {
dissect_q931_ia5_ie(tvb, offset + 2,