summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndersBroman <anders.broman@ericsson.com>2015-02-04 13:24:57 +0100
committerAnders Broman <a.broman58@gmail.com>2015-02-04 12:30:48 +0000
commit987518153bfdce82b314c1d931104c5e8a24850c (patch)
tree8b7c745b725e90f7c45cb1993922558bd7da2490
parent94011c1d937d40be94ec3c5f3814f90d883ab338 (diff)
downloadwireshark-987518153bfdce82b314c1d931104c5e8a24850c.tar.gz
[CAMEL] Dissect additionalCallingPartyNumber.
Ping-Bug: 10914 Change-Id: I28eb9d7b5192a02f82fe604d20e57aedd706f528 Reviewed-on: https://code.wireshark.org/review/6946 Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r--asn1/camel/camel.cnf27
-rw-r--r--asn1/camel/packet-camel-template.c2
-rw-r--r--epan/dissectors/packet-camel.c45
3 files changed, 65 insertions, 9 deletions
diff --git a/asn1/camel/camel.cnf b/asn1/camel/camel.cnf
index 2342c1933d..b12b0fbc59 100644
--- a/asn1/camel/camel.cnf
+++ b/asn1/camel/camel.cnf
@@ -662,6 +662,33 @@ proto_tree *subtree;
#.END
+#.FN_BODY AdditionalCallingPartyNumber VAL_PTR = &parameter_tvb
+/*
+* Digits {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+* bound.&minDigitsLength .. bound.&maxDigitsLength))
+*-- Indicates the address signalling digits.
+*-- Refer to ETSI EN 300 356 1 [23] Generic Number & Generic Digits parameters for encoding.
+*-- The coding of the subfields 'NumberQualifier' in Generic Number and 'TypeOfDigits' in
+*-- Generic Digits are irrelevant to the CAP;
+*-- the ASN.1 tags are sufficient to identify the parameter.
+*-- The ISUP format does not allow to exclude these subfields,
+*-- therefore the value is network operator specific.
+*--
+*-- The following parameters shall use Generic Number:
+*-- - AdditionalCallingPartyNumber for InitialDP
+*
+*/
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ &parameter_tvb);
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_additionalcallingpartynumber);
+ dissect_isup_generic_number_parameter(parameter_tvb, actx->pinfo, subtree, NULL);
+
#.TYPE_ATTR
PDPTypeOrganization TYPE = FT_UINT8 DISPLAY = BASE_DEC BITMASK = 0x0f STRINGS = VALS(gsm_map_PDP_Type_Organisation_vals)
DateAndTime TYPE = FT_STRING DISPLAY = BASE_NONE
diff --git a/asn1/camel/packet-camel-template.c b/asn1/camel/packet-camel-template.c
index 8c204d44fb..4488eee513 100644
--- a/asn1/camel/packet-camel-template.c
+++ b/asn1/camel/packet-camel-template.c
@@ -137,6 +137,7 @@ static gint ett_camel_stat = -1;
static gint ett_camel_calledpartybcdnumber = -1;
static gint ett_camel_callingpartynumber = -1;
static gint ett_camel_locationnumber = -1;
+static gint ett_camel_additionalcallingpartynumber = -1;
#include "packet-camel-ett.c"
@@ -1403,6 +1404,7 @@ void proto_register_camel(void) {
&ett_camel_calledpartybcdnumber,
&ett_camel_callingpartynumber,
&ett_camel_locationnumber,
+ &ett_camel_additionalcallingpartynumber,
#include "packet-camel-ettarr.c"
};
diff --git a/epan/dissectors/packet-camel.c b/epan/dissectors/packet-camel.c
index 21442f257f..74f917ddf8 100644
--- a/epan/dissectors/packet-camel.c
+++ b/epan/dissectors/packet-camel.c
@@ -634,6 +634,7 @@ static gint ett_camel_stat = -1;
static gint ett_camel_calledpartybcdnumber = -1;
static gint ett_camel_callingpartynumber = -1;
static gint ett_camel_locationnumber = -1;
+static gint ett_camel_additionalcallingpartynumber = -1;
/*--- Included file: packet-camel-ett.c ---*/
@@ -834,7 +835,7 @@ static gint ett_camel_T_problem = -1;
static gint ett_camel_InvokeId = -1;
/*--- End of included file: packet-camel-ett.c ---*/
-#line 142 "../../asn1/camel/packet-camel-template.c"
+#line 143 "../../asn1/camel/packet-camel-template.c"
static expert_field ei_camel_unknown_invokeData = EI_INIT;
static expert_field ei_camel_unknown_returnResultData = EI_INIT;
@@ -1179,7 +1180,7 @@ static const value_string camel_ectTreatmentIndicator_values[] = {
#define noInvokeId NULL
/*--- End of included file: packet-camel-val.h ---*/
-#line 302 "../../asn1/camel/packet-camel-template.c"
+#line 303 "../../asn1/camel/packet-camel-template.c"
/*--- Included file: packet-camel-table.c ---*/
@@ -1269,7 +1270,7 @@ static const value_string camel_err_code_string_vals[] = {
/*--- End of included file: packet-camel-table.c ---*/
-#line 304 "../../asn1/camel/packet-camel-template.c"
+#line 305 "../../asn1/camel/packet-camel-template.c"
/*
* DEBUG fonctions
@@ -1429,7 +1430,32 @@ dissect_camel_Digits(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
static int
dissect_camel_AdditionalCallingPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_camel_Digits(implicit_tag, tvb, offset, actx, tree, hf_index);
+/*
+* Digits {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
+* bound.&minDigitsLength .. bound.&maxDigitsLength))
+*-- Indicates the address signalling digits.
+*-- Refer to ETSI EN 300 356 1 [23] Generic Number & Generic Digits parameters for encoding.
+*-- The coding of the subfields 'NumberQualifier' in Generic Number and 'TypeOfDigits' in
+*-- Generic Digits are irrelevant to the CAP;
+*-- the ASN.1 tags are sufficient to identify the parameter.
+*-- The ISUP format does not allow to exclude these subfields,
+*-- therefore the value is network operator specific.
+*--
+*-- The following parameters shall use Generic Number:
+*-- - AdditionalCallingPartyNumber for InitialDP
+*
+*/
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ &parameter_tvb);
+
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_camel_additionalcallingpartynumber);
+ dissect_isup_generic_number_parameter(parameter_tvb, actx->pinfo, subtree, NULL);
+
return offset;
}
@@ -7045,7 +7071,7 @@ static int dissect_CAP_U_ABORT_REASON_PDU(tvbuff_t *tvb _U_, packet_info *pinfo
/*--- End of included file: packet-camel-fn.c ---*/
-#line 373 "../../asn1/camel/packet-camel-template.c"
+#line 374 "../../asn1/camel/packet-camel-template.c"
/*--- Included file: packet-camel-table2.c ---*/
@@ -7252,7 +7278,7 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,a
/*--- End of included file: packet-camel-table2.c ---*/
-#line 375 "../../asn1/camel/packet-camel-template.c"
+#line 376 "../../asn1/camel/packet-camel-template.c"
/*
* Functions needed for Hash-Table
@@ -8104,7 +8130,7 @@ void proto_reg_handoff_camel(void) {
/*--- End of included file: packet-camel-dis-tab.c ---*/
-#line 1219 "../../asn1/camel/packet-camel-template.c"
+#line 1220 "../../asn1/camel/packet-camel-template.c"
} else {
range_foreach(ssn_range, range_delete_callback);
g_free(ssn_range);
@@ -10218,7 +10244,7 @@ void proto_register_camel(void) {
"InvokeId_present", HFILL }},
/*--- End of included file: packet-camel-hfarr.c ---*/
-#line 1392 "../../asn1/camel/packet-camel-template.c"
+#line 1393 "../../asn1/camel/packet-camel-template.c"
};
/* List of subtrees */
@@ -10233,6 +10259,7 @@ void proto_register_camel(void) {
&ett_camel_calledpartybcdnumber,
&ett_camel_callingpartynumber,
&ett_camel_locationnumber,
+ &ett_camel_additionalcallingpartynumber,
/*--- Included file: packet-camel-ettarr.c ---*/
@@ -10433,7 +10460,7 @@ void proto_register_camel(void) {
&ett_camel_InvokeId,
/*--- End of included file: packet-camel-ettarr.c ---*/
-#line 1408 "../../asn1/camel/packet-camel-template.c"
+#line 1410 "../../asn1/camel/packet-camel-template.c"
};
static ei_register_info ei[] = {