aboutsummaryrefslogtreecommitdiffstats
path: root/asn1
diff options
context:
space:
mode:
authorAndersBroman <anders.broman@ericsson.com>2015-08-25 12:45:01 +0200
committerAnders Broman <a.broman58@gmail.com>2015-08-25 10:54:10 +0000
commit31bf40eacfbd9bab69c3da9f6989ac70ba5c2490 (patch)
tree1afb51edddafe6cb9306891e45f90291aec010d1 /asn1
parent2af57832b6384d49fab6c8fd98748969a2f40ca7 (diff)
[Camel] The tags used in EstablishTemporaryConnectionArg differs in V2 and
V3 versions of Camel. Add ASN1 code for EstablishTemporaryConnectionArgV2 Bug: 11466 Change-Id: I0dbb9c83e520c269dd567f3c3bc34c99c9aa5e15 Reviewed-on: https://code.wireshark.org/review/10249 Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'asn1')
-rw-r--r--asn1/camel/CamelV2diff.asn40
-rw-r--r--asn1/camel/camel.cnf8
-rw-r--r--asn1/camel/packet-camel-template.c2
3 files changed, 48 insertions, 2 deletions
diff --git a/asn1/camel/CamelV2diff.asn b/asn1/camel/CamelV2diff.asn
index 22c94511e2..4f1899631b 100644
--- a/asn1/camel/CamelV2diff.asn
+++ b/asn1/camel/CamelV2diff.asn
@@ -16,6 +16,26 @@ gsm-Network(1) modules(3) map-CommonDataTypes(18) version12(12)}
;
+-- From:
+-- CAP-Operations {ccitt(0) identified-organization(4) etsi(0) mobileDomain(0)
+-- gsm-Network(1) modules(3) cap-operations(50) version2(1)}
+-- This module contains the type definitions for the CAP v.2 operations.
+EstablishTemporaryConnectionArgV2 ::= SEQUENCE {
+ assistingSSPIPRoutingAddress [0] AssistingSSPIPRoutingAddress,
+ correlationID [1] CorrelationID OPTIONAL,
+ scfID [3] ScfID OPTIONAL,
+ extensions [4] SEQUENCE SIZE(1..numOfExtensions) OF
+ ExtensionField OPTIONAL,
+ serviceInteractionIndicatorsTwo [7] ServiceInteractionIndicatorsTwo OPTIONAL,
+ ...,
+ na-info [50] NA-Info OPTIONAL
+ }
+-- na-info is included at the discretion of the
+-- gsmSCF operator.
+
+-- Use of the text parameter is network operator/equipment vendor specific.
+-- End CAP-Operations
+
-- TYPE DEFINITIONS FOR CAP v.2 DATA TYPES FOLLOW
InitialDPArgExtensionV2 ::= SEQUENCE {
@@ -26,8 +46,6 @@ InitialDPArgExtensionV2 ::= SEQUENCE {
}
--- Use of the text parameter is network operator/equipment vendor specific.
-
NACarrierInformation ::= SEQUENCE {
naCarrierId [0] NAEA-CIC OPTIONAL,
naCICSelectionType [1] NACarrierSelectionInfo OPTIONAL,
@@ -41,6 +59,24 @@ NACarrierSelectionInfo ::= OCTET STRING (SIZE (1))
-- '03'H - subscribed with dialing undetermined
-- '04'H - dialed CIC not subscribed
+NAChargeNumber ::= OCTET STRING (SIZE (2..7))
+-- This parameter uniquely identifies the chargeable number for a call sent into a North American
+-- long distance carrier. It transports the ChargeNumber Parameter Field
+-- as defined in ANSI ISUP T1.113. This provides
+-- - 1 octet for the nature of address indicator field, plus
+-- - 1 octet for a numbering plan field, plus
+-- - up to 5 octets for the address signal (up to 10 digits)
+
+-- The Charge Number in ANSI T1.113 normally contains a 10 digit national number within the North
+-- American Numbering Plan (NANP); longer (e.g. international) charge numbers are not supported in
+-- T1.113
+
+NA-Info ::= SEQUENCE {
+ naCarrierInformation [0] NACarrierInformation OPTIONAL,
+ naOliInfo [1] NAOliInfo OPTIONAL,
+ naChargeNumber [2] NAChargeNumber OPTIONAL,
+ ...}
+
CAMEL-AChBillingChargingCharacteristicsV2 ::= CHOICE {
timeDurationCharging [0] SEQUENCE {
diff --git a/asn1/camel/camel.cnf b/asn1/camel/camel.cnf
index b12b0fbc59..15734ae91e 100644
--- a/asn1/camel/camel.cnf
+++ b/asn1/camel/camel.cnf
@@ -689,6 +689,14 @@ proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_camel_additionalcallingpartynumber);
dissect_isup_generic_number_parameter(parameter_tvb, actx->pinfo, subtree, NULL);
+# I don't know how to "access" the EstablishTemporaryConnectionArg-PDU which would have been cleaner.
+#.FN_BODY EstablishTemporaryConnectionArg
+
+ if(camel_ver==2){
+ return dissect_camel_EstablishTemporaryConnectionArgV2(implicit_tag, tvb, offset, actx, tree, hf_index);
+ }
+%(DEFAULT_BODY)s
+
#.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 374c4488fd..bbb129de6f 100644
--- a/asn1/camel/packet-camel-template.c
+++ b/asn1/camel/packet-camel-template.c
@@ -121,6 +121,7 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,a
static int dissect_camel_CAMEL_AChBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
static int dissect_camel_CAMEL_AChBillingChargingCharacteristicsV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
static int dissect_camel_CAMEL_CallResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_camel_EstablishTemporaryConnectionArgV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/* XXX - can we get rid of these and always do the SRT work? */
static gboolean gcamel_HandleSRT=FALSE;
@@ -1160,6 +1161,7 @@ dissect_camel_v2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, voi
if(parent_tree){
item = proto_tree_add_item(parent_tree, proto_camel, tvb, 0, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_camel);
+ proto_item_append_text(item, "-V2");
}
/* camelsrt reset counter, and initialise global pointer
to store service response time related data */