aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2009-12-15 06:31:18 +0000
committerAnders Broman <anders.broman@ericsson.com>2009-12-15 06:31:18 +0000
commit393a236663c6a9646fe50c4ce6fe4f6a078483c5 (patch)
treef153e481cd1cd08bfd369779fc6c71eb64552021
parent07f9348849048380a33d3f9fac1e735dc119d19b (diff)
From Vasil Velichkov:
Bug 4330 - Add dissection of HighLayerCompatibility parameter in CAMEL/INAP InitialDP operation. svn path=/trunk/; revision=31272
-rw-r--r--asn1/inap/inap.cnf13
-rw-r--r--asn1/inap/packet-inap-template.c2
-rw-r--r--epan/dissectors/packet-inap.c32
3 files changed, 39 insertions, 8 deletions
diff --git a/asn1/inap/inap.cnf b/asn1/inap/inap.cnf
index 6bffe6af71..1d84b6eaba 100644
--- a/asn1/inap/inap.cnf
+++ b/asn1/inap/inap.cnf
@@ -288,6 +288,19 @@ dissect_isup_called_party_number_parameter(parameter_tvb, tree, NULL);
return offset;
dissect_isup_redirecting_number_parameter(parameter_tvb, tree, NULL);
+#.FN_BODY HighLayerCompatibility VAL_PTR = &parameter_tvb
+/*
+ * -- Indicates the teleservice. For encoding, DSS1 (Q.931) is used.
+ */
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_inap_HighLayerCompatibility);
+ dissect_q931_high_layer_compat_ie(parameter_tvb, 0, tvb_length_remaining(parameter_tvb,0), subtree);
#.TYPE_ATTR
CallingPartysCategory TYPE = FT_UINT16 DISPLAY = BASE_DEC STRINGS = VALS(isup_calling_partys_category_value)
diff --git a/asn1/inap/packet-inap-template.c b/asn1/inap/packet-inap-template.c
index 9cafc19f6f..38ef917943 100644
--- a/asn1/inap/packet-inap-template.c
+++ b/asn1/inap/packet-inap-template.c
@@ -76,6 +76,7 @@ static int inap_opcode_type;
/* Initialize the subtree pointers */
static gint ett_inap = -1;
static gint ett_inapisup_parameter = -1;
+static gint ett_inap_HighLayerCompatibility = -1;
#include "packet-inap-ett.c"
#include "packet-inap-table.c"
@@ -201,6 +202,7 @@ void proto_register_inap(void) {
static gint *ett[] = {
&ett_inap,
&ett_inapisup_parameter,
+ &ett_inap_HighLayerCompatibility,
#include "packet-inap-ettarr.c"
};
diff --git a/epan/dissectors/packet-inap.c b/epan/dissectors/packet-inap.c
index 98afc2fa83..19c69e748d 100644
--- a/epan/dissectors/packet-inap.c
+++ b/epan/dissectors/packet-inap.c
@@ -1016,6 +1016,7 @@ static int inap_opcode_type;
/* Initialize the subtree pointers */
static gint ett_inap = -1;
static gint ett_inapisup_parameter = -1;
+static gint ett_inap_HighLayerCompatibility = -1;
/*--- Included file: packet-inap-ett.c ---*/
#line 1 "packet-inap-ett.c"
@@ -1254,7 +1255,7 @@ static gint ett_inap_T_problem = -1;
static gint ett_inap_InvokeId = -1;
/*--- End of included file: packet-inap-ett.c ---*/
-#line 80 "packet-inap-template.c"
+#line 81 "packet-inap-template.c"
/*--- Included file: packet-inap-table.c ---*/
@@ -1362,7 +1363,7 @@ static const value_string inap_err_code_string_vals[] = {
/*--- End of included file: packet-inap-table.c ---*/
-#line 82 "packet-inap-template.c"
+#line 83 "packet-inap-template.c"
const value_string inap_general_problem_strings[] = {
{0,"General Problem Unrecognized Component"},
@@ -4466,8 +4467,23 @@ dissect_inap_GlobalCallReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
int
dissect_inap_HighLayerCompatibility(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 292 "inap.cnf"
+/*
+ * -- Indicates the teleservice. For encoding, DSS1 (Q.931) is used.
+ */
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ &parameter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_inap_HighLayerCompatibility);
+ dissect_q931_high_layer_compat_ie(parameter_tvb, 0, tvb_length_remaining(parameter_tvb,0), subtree);
+
+
return offset;
}
@@ -4702,7 +4718,6 @@ dissect_inap_RedirectingPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
-
return offset;
}
@@ -8782,7 +8797,7 @@ static int dissect_SRFCallGapArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
/*--- End of included file: packet-inap-fn.c ---*/
-#line 96 "packet-inap-template.c"
+#line 97 "packet-inap-template.c"
/*
TC-Invokable OPERATION ::=
{activateServiceFiltering | activityTest | analysedInformation |
@@ -9121,7 +9136,7 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,a
/*--- End of included file: packet-inap-table2.c ---*/
-#line 117 "packet-inap-template.c"
+#line 118 "packet-inap-template.c"
static guint8 inap_pdu_type = 0;
@@ -11394,7 +11409,7 @@ void proto_register_inap(void) {
"inap.InvokeId_present", HFILL }},
/*--- End of included file: packet-inap-hfarr.c ---*/
-#line 193 "packet-inap-template.c"
+#line 194 "packet-inap-template.c"
};
@@ -11406,6 +11421,7 @@ void proto_register_inap(void) {
static gint *ett[] = {
&ett_inap,
&ett_inapisup_parameter,
+ &ett_inap_HighLayerCompatibility,
/*--- Included file: packet-inap-ettarr.c ---*/
#line 1 "packet-inap-ettarr.c"
@@ -11644,7 +11660,7 @@ void proto_register_inap(void) {
&ett_inap_InvokeId,
/*--- End of included file: packet-inap-ettarr.c ---*/
-#line 205 "packet-inap-template.c"
+#line 207 "packet-inap-template.c"
};
/* Register protocol */