aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/ain
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2018-11-19 13:12:02 +0100
committerAnders Broman <a.broman58@gmail.com>2018-11-19 13:28:32 +0000
commitc2d625a5426c9e8281e316f8fb36de286b572965 (patch)
tree7faf9984f75774720e40eb627f02035b218d75cd /epan/dissectors/asn1/ain
parentbc12cdb1a83437f9b04c14ffb02108ab20cf2108 (diff)
ain:Prettify Carrier and AMAslpID parameters.
Bug: 15285 Change-Id: I34fc67e2faa4c4e53834b257796b3f256239f27a Reviewed-on: https://code.wireshark.org/review/30711 Petri-Dish: Anders Broman <a.broman58@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/asn1/ain')
-rw-r--r--epan/dissectors/asn1/ain/AIN-Operations.asn42
-rw-r--r--epan/dissectors/asn1/ain/AIN-Parameters.asn25
-rw-r--r--epan/dissectors/asn1/ain/ain.cnf35
-rw-r--r--epan/dissectors/asn1/ain/packet-ain-template.c63
4 files changed, 131 insertions, 34 deletions
diff --git a/epan/dissectors/asn1/ain/AIN-Operations.asn b/epan/dissectors/asn1/ain/AIN-Operations.asn
index 6cd7384d77..f24c7a2f6d 100644
--- a/epan/dissectors/asn1/ain/AIN-Operations.asn
+++ b/epan/dissectors/asn1/ain/AIN-Operations.asn
@@ -737,7 +737,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
}
CODE private: 25610
}
- --Family Name is “Request / Notification”
+ --Family Name is “Request / Notification”
TAnswerArg ::= SEQUENCE{
userID UserID,
@@ -1086,7 +1086,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
- aMAslpID AMAslpID OPTIONAL,
+ aMAslpID [10] IMPLICIT AMAslpID,
aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
amp1 Amp1 OPTIONAL,
amp2 Amp2 OPTIONAL,
@@ -1127,7 +1127,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
- aMAslpID AMAslpID OPTIONAL,
+ aMAslpID [10] IMPLICIT AMAslpID OPTIONAL,
aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
amp1 Amp1 OPTIONAL,
amp2 Amp2 OPTIONAL,
@@ -1178,7 +1178,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
overflowBillingIndicator OverflowBillingIndicator OPTIONAL,
aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
- aMAslpID AMAslpID OPTIONAL,
+ aMAslpID [10] IMPLICIT AMAslpID OPTIONAL,
aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
amp1 Amp1 OPTIONAL,
amp2 Amp2 OPTIONAL,
@@ -1213,7 +1213,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
- aMAslpID AMAslpID OPTIONAL,
+ aMAslpID [10] IMPLICIT AMAslpID OPTIONAL,
aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
amp1 Amp1 OPTIONAL,
amp2 Amp2 OPTIONAL,
@@ -1241,7 +1241,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
- aMAslpID AMAslpID OPTIONAL,
+ aMAslpID [10] IMPLICIT AMAslpID OPTIONAL,
aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
amp1 Amp1 OPTIONAL,
amp2 Amp2 OPTIONAL,
@@ -1296,7 +1296,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
- aMAslpID AMAslpID OPTIONAL,
+ aMAslpID [10] IMPLICIT AMAslpID OPTIONAL,
aMAserviceProviderID AMAServiceProviderID OPTIONAL,
amp1 Amp1 OPTIONAL,
amp2 Amp2 OPTIONAL,
@@ -1322,7 +1322,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
- aMAslpID AMAslpID OPTIONAL,
+ aMAslpID [10] IMPLICIT AMAslpID OPTIONAL,
aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
amp1 Amp1 OPTIONAL,
amp2 Amp2 OPTIONAL,
@@ -1389,7 +1389,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
- aMAslpID AMAslpID OPTIONAL,
+ aMAslpID [10] IMPLICIT AMAslpID OPTIONAL,
aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
amp1 Amp1 OPTIONAL,
amp2 Amp2 OPTIONAL,
@@ -1430,7 +1430,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
- aMAslpID AMAslpID OPTIONAL,
+ aMAslpID [10] IMPLICIT AMAslpID OPTIONAL,
aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
serviceProviderID ServiceProviderID OPTIONAL,
serviceContext ServiceContext OPTIONAL,
@@ -1478,7 +1478,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
- aMAslpID AMAslpID OPTIONAL,
+ aMAslpID [10] IMPLICIT AMAslpID OPTIONAL,
aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
amp1 Amp1 OPTIONAL,
amp2 Amp2 OPTIONAL,
@@ -1534,7 +1534,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
- aMAslpID AMAslpID OPTIONAL,
+ aMAslpID [10] IMPLICIT AMAslpID OPTIONAL,
aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
amp1 Amp1 OPTIONAL,
amp2 Amp2 OPTIONAL,
@@ -1592,7 +1592,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
aMAAlternateBillingNumber AMAAlternateBillingNumber OPTIONAL,
aMABusinessCustomerID AMABusinessCustomerID OPTIONAL,
aMALineNumberList SEQUENCE SIZE(1..2) OF AMALineNumber OPTIONAL,
- aMAslpID AMAslpID OPTIONAL,
+ aMAslpID [10] IMPLICIT AMAslpID OPTIONAL,
aMADigitsDialedWCList SEQUENCE SIZE(1..5) OF AMADigitsDialedWC OPTIONAL,
amp1 Amp1 OPTIONAL,
amp2 Amp2 OPTIONAL,
@@ -1695,7 +1695,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
ARGUMENT
AcgOverflowArg
CODE private: 26884
- --Family Name is “Network Management”
+ --Family Name is “Network Management”
}
AcgOverflowArg ::= SEQUENCE{
@@ -1714,7 +1714,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
ERRORS{ applicationError
}
CODE private: 26886
- --Family Name is “Network Management”
+ --Family Name is “Network Management”
}
ActivityTestArg ::= SEQUENCE{
@@ -1733,7 +1733,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
faultReport
}
CODE private: 26887
- --Family Name is “Information Revision”
+ --Family Name is “Information Revision”
}
CallTypeRequestArg ::= SEQUENCE{
@@ -1747,7 +1747,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
ControlRequestArg
CODE private: 26885
- --Family Name is “Network Management”
+ --Family Name is “Network Management”
}
ControlRequestArg ::= SEQUENCE{
@@ -1770,7 +1770,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
ERRORS{ applicationError
}
CODE private: 26882
- --Family Name is “Network Management”
+ --Family Name is “Network Management”
}
EchoRequestArg ::= SEQUENCE{
@@ -1785,7 +1785,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
ERRORS{ applicationError
}
CODE private: 27649
- --Family Name is “AMA”
+ --Family Name is “AMA”
}
FurnishAMAInformationArg ::= SEQUENCE{
@@ -1904,7 +1904,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
failureReport
}
CODE private: 26626
- --Family Name is “Information Revision”
+ --Family Name is “Information Revision”
}
QueryRequestArg ::= SEQUENCE{
@@ -1997,7 +1997,7 @@ CallInfoFromResourceArg ::= SEQUENCE {
amp2 Amp2 OPTIONAL,
extensionParameter [84] IMPLICIT ExtensionParameter OPTIONAL,
controlEncountered ControlEncountered OPTIONAL,
- aMAslpID AMAslpID OPTIONAL
+ aMAslpID [10] IMPLICIT AMAslpID OPTIONAL
}
updateRequest OPERATION ::= {
diff --git a/epan/dissectors/asn1/ain/AIN-Parameters.asn b/epan/dissectors/asn1/ain/AIN-Parameters.asn
index e687cbafda..2174d37651 100644
--- a/epan/dissectors/asn1/ain/AIN-Parameters.asn
+++ b/epan/dissectors/asn1/ain/AIN-Parameters.asn
@@ -175,8 +175,8 @@
--a) the number of rings the switch should
-- generate prior to forwarding a call; or
--b) the number of minutes the switch should
- -- wait to generate a “ping” ring for an MWI,
- --i.e., number of minutes between “ping” rings.
+ -- wait to generate a “ping” ring for an MWI,
+ --i.e., number of minutes between “ping” rings.
UpdateGroup3::= SEQUENCE{
service3 [1] IMPLICIT Service3,
@@ -430,7 +430,8 @@
AMASequenceNumber ::= [89] IMPLICIT OCTET STRING(SIZE(2))
- AMAslpID ::= [10] IMPLICIT OCTET STRING(SIZE(5))
+-- AMAslpID ::= [10] IMPLICIT OCTET STRING(SIZE(5))
+ AMAslpID ::= OCTET STRING(SIZE(5))
Amp1 ::= [11] IMPLICIT OCTET STRING(SIZE(6))
@@ -719,14 +720,14 @@
tNoAnswer(5), --always "0"*
termResourceAvailable(6), -- *
tAnswer(7), -- *
- networkBusy(8), --always “0”*
- oSuspended(9), --always “0”
- oDisconnectCalled(10), --always “0”
- oDisconnect(11), --always “0”
- oAbandon(12), --always “0”
- featureActivator(13), --always “0”
- switchHookFlash(14), --always “0”
- success(15), --always “0”
+ networkBusy(8), --always “0”*
+ oSuspended(9), --always “0”
+ oDisconnectCalled(10), --always “0”
+ oDisconnect(11), --always “0”
+ oAbandon(12), --always “0”
+ featureActivator(13), --always “0”
+ switchHookFlash(14), --always “0”
+ success(15), --always “0”
tDisconnect(16),
timeout(17),
originationAttempt(18),
@@ -830,7 +831,7 @@
alternateTrunkGroup AlternateTrunkGroup,
aMAAlternateBillingNumber AMAAlternateBillingNumber,
aMABusinessCustomerID AMABusinessCustomerID,
- aMAslpID AMAslpID,
+ aMAslpID [10] IMPLICIT AMAslpID,
amp1 Amp1,
amp2 Amp2,
answerIndicator AnswerIndicator,
diff --git a/epan/dissectors/asn1/ain/ain.cnf b/epan/dissectors/asn1/ain/ain.cnf
index e0d551c5b9..9d4c328e01 100644
--- a/epan/dissectors/asn1/ain/ain.cnf
+++ b/epan/dissectors/asn1/ain/ain.cnf
@@ -200,6 +200,41 @@ static const ain_err_t ain_err_tab[] = {
digit_str = tvb_bcd_dig_to_wmem_packet_str(parameter_tvb, 2, tvb_reported_length_remaining(parameter_tvb,2), NULL, FALSE);
proto_tree_add_string(subtree, hf_ain_bcd_digits, parameter_tvb, 2, -1, digit_str);
+#.FN_BODY CarrierFormat VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+ const char *digit_str;
+
+ %(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ain_carrierformat);
+ /* Carrier Selection */
+ proto_tree_add_item(subtree, hf_ain_carrier_selection, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
+ /* Nature of Carrier Number of Digits (always 4 )*/
+ proto_tree_add_item(subtree, hf_ain_nature_of_carrier, parameter_tvb, 1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_ain_nr_digits, parameter_tvb, 1, 1, ENC_BIG_ENDIAN);
+
+ /* 2nd Digit 1st Digit .. */
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(parameter_tvb, 2, tvb_reported_length_remaining(parameter_tvb,2), NULL, FALSE);
+ proto_tree_add_string(subtree, hf_ain_carrier_bcd_digits, parameter_tvb, 2, -1, digit_str);
+
+#.FN_BODY AMAslpID VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+ const char *digit_str;
+
+ %(DEFAULT_BODY)s
+
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ain_amaslpid);
+
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb,0), NULL, FALSE);
+ proto_tree_add_string(subtree, hf_ain_amaslpid, parameter_tvb, 0, -1, digit_str);
#.END
diff --git a/epan/dissectors/asn1/ain/packet-ain-template.c b/epan/dissectors/asn1/ain/packet-ain-template.c
index 3721e1314a..cf64e68a5f 100644
--- a/epan/dissectors/asn1/ain/packet-ain-template.c
+++ b/epan/dissectors/asn1/ain/packet-ain-template.c
@@ -53,12 +53,19 @@ static int hf_ain_odd_even_indicator = -1;
static int hf_ain_nature_of_address = -1;
static int hf_ain_numbering_plan = -1;
static int hf_ain_bcd_digits = -1;
+static int hf_ain_carrier_selection = -1;
+static int hf_ain_nature_of_carrier = -1;
+static int hf_ain_nr_digits = -1;
+static int hf_ain_carrier_bcd_digits = -1;
+static int hf_ain_amaslpid = -1;
#include "packet-ain-hf.c"
/* Initialize the subtree pointers */
static int ett_ain = -1;
static int ett_ain_digits = -1;
+static int ett_ain_carrierformat = -1;
+static int ett_ain_amaslpid = -1;
#include "packet-ain-ett.c"
@@ -82,6 +89,38 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
+static const value_string ain_np_vals[] = {
+ { 0, "Unknown or not applicable"},
+ { 1, "ISDN Numbering Plan (ITU Rec. E.164)"},
+ { 2, "Telephony Numbering (ITU-T Rec. E.164,E.163)"},
+ { 3, "Data Numbering (ITU-T Rec. X.121)"},
+ { 4, "Telex Numbering (ITU-T Rec. F.69)"},
+ { 5, "Maritime Mobile Numbering"},
+ { 6, "Land Mobile Numbering (ITU-T Rec. E.212)"},
+ { 7, "Private Numbering Plan"},
+ { 0, NULL }
+};
+
+static const value_string ain_carrier_selection_vals[] = {
+ { 0, "No indication"},
+ { 1, "Selected carrier identification code presubscribed and not input by calling party"},
+ { 2, "Selected carrier identification code presubscribed and input by calling party"},
+ { 3, "Selected carrier identification code presubscribed, no indication of whether input by calling party"},
+ { 4, "Selected carrier identification code not presubscribed and input by calling party"},
+ { 0, NULL }
+};
+
+static const value_string ain_nature_of_carrier_vals[] = {
+ { 0, "No NOC Provided"},
+ { 1, "local"},
+ { 2, "intraLATA toll"},
+ { 3, "interLATA"},
+ { 4, "local, intraLATA toll and interLATA"},
+ { 5, "local and intraLATA toll"},
+ { 6, "intraLATA toll and interLATA"},
+ { 0, NULL }
+};
+
#include "packet-ain-table.c"
#include "packet-ain-fn.c"
@@ -176,12 +215,32 @@ void proto_register_ain(void) {
NULL, HFILL } },
{ &hf_ain_numbering_plan,
{ "Numbering plan", "ain.numbering_plan",
- FT_UINT8, BASE_DEC, NULL, 0x70,
+ FT_UINT8, BASE_DEC, VALS(ain_np_vals), 0x70,
NULL, HFILL } },
{ &hf_ain_bcd_digits,
{ "BCD digits", "ain.bcd_digits",
FT_STRING, BASE_NONE, NULL, 0,
NULL, HFILL } },
+ { &hf_ain_carrier_selection,
+ { "Carrier Selection", "ain.carrier_selection",
+ FT_UINT8, BASE_DEC, VALS(ain_carrier_selection_vals), 0x0,
+ NULL, HFILL } },
+ { &hf_ain_nature_of_carrier,
+ { "Nature of Carrier", "ain.nature_of_carrier",
+ FT_UINT8, BASE_DEC, VALS(ain_nature_of_carrier_vals), 0xf0,
+ NULL, HFILL } },
+ { &hf_ain_nr_digits,
+ { "Number of Digits", "ain.nature_of_carrier",
+ FT_UINT8, BASE_DEC, NULL, 0x0f,
+ NULL, HFILL } },
+ { &hf_ain_carrier_bcd_digits,
+ { "Carrier digits", "ain.carrier_bcd_digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_ain_amaslpid,
+ { "AMAslpID", "ain.amaslpid",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
#include "packet-ain-hfarr.c"
};
@@ -190,6 +249,8 @@ void proto_register_ain(void) {
static gint *ett[] = {
&ett_ain,
&ett_ain_digits,
+ &ett_ain_carrierformat,
+ &ett_ain_amaslpid,
#include "packet-ain-ettarr.c"
};