Add call to the Teleservice dissector add a bunch of missing Return signals and

fix up some cut and paste errors.

svn path=/trunk/; revision=20293
This commit is contained in:
Anders Broman 2007-01-03 07:55:40 +00:00
parent 97df0c4a56
commit b2312da614
3 changed files with 159 additions and 101 deletions

View File

@ -255,9 +255,9 @@ AuthenticationRequest ::= [PRIVATE 18] SET {
-- AuthenticationRequest RETURN RESULT Parameters
AuthenticationRequestRes ::= [PRIVATE 18] SET {
analogRedirectRecord [225] IMPLICIT AnalogRedirectRecord,
analogRedirectRecord [225] IMPLICIT AnalogRedirectRecord OPTIONAL,
-- O 6.5.2.bd j
authenticationAlgorithmVersion [77] IMPLICIT AuthenticationAlgorithmVersion,
authenticationAlgorithmVersion [77] IMPLICIT AuthenticationAlgorithmVersion OPTIONAL,
-- O 6.5.2.7 a
authenticationResponseUniqueChallenge [37] IMPLICIT AuthenticationResponseUniqueChallenge OPTIONAL,
-- O 6.5.2.12 b
@ -273,7 +273,7 @@ AuthenticationRequestRes ::= [PRIVATE 18] SET {
-- O 6.5.2.at j
denyAccess [50] IMPLICIT DenyAccess OPTIONAL,
-- O 6.5.2.54 e
mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
-- O 6.5.2.81 l
roamingIndication [239] IMPLICIT RoamingIndication OPTIONAL,
-- O 6.5.2.br m
@ -728,9 +728,9 @@ FeatureRequestRes ::= [PRIVATE 18] SET {
-- O 6.5.2.2 b
announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
-- O 6.5.2.6 c
callingPartyNumberString1 [84] IMPLICIT CallingPartyNumberString1 OPTIONAL,
callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
-- O 6.5.2.23 d
callingPartyNumberString2 [85] IMPLICIT CallingPartyNumberString2 OPTIONAL,
callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
-- O 6.5.2.24 d
callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
-- O 6.5.2.25 d
@ -1262,9 +1262,9 @@ InformationDirective ::= [PRIVATE 18] SET {
-- O 6.5.2.3 a
announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
-- O 6.5.2.6 b
callingPartyNumberString1 [84] IMPLICIT CallingPartyNumberString1 OPTIONAL,
callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
-- O 6.5.2.23 c
callingPartyNumberString2 [85] IMPLICIT CallingPartyNumberString2 OPTIONAL,
callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
-- O 6.5.2.24 c
callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
-- O 6.5.2.25 c
@ -1297,9 +1297,9 @@ InformationForward ::= [PRIVATE 18] SET {
-- O 6.5.2.3 a
announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
-- O 6.5.2.6 a
callingPartyNumberString1 [84] IMPLICIT CallingPartyNumberString1 OPTIONAL,
callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
-- O 6.5.2.23 b
callingPartyNumberString2 [85] IMPLICIT CallingPartyNumberString2 OPTIONAL,
callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
-- O 6.5.2.24 b
callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
-- O 6.5.2.25 b
@ -1353,9 +1353,9 @@ InterSystemPage ::= [PRIVATE 18] SET {
-- O 6.5.2.21 a
callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
-- O 6.5.2.22 a
callingPartyNumberString1 [84] IMPLICIT CallingPartyNumberString1 OPTIONAL,
callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
-- O 6.5.2.23 a
callingPartyNumberString2 [85] IMPLICIT CallingPartyNumberString2 OPTIONAL,
callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
-- O 6.5.2.24 a
callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
-- O 6.5.2.25 a
@ -1481,9 +1481,9 @@ InterSystemPage2 ::= [PRIVATE 18] SET {
-- M 6.5.2.63
alertCode [75] IMPLICIT AlertCode OPTIONAL,
-- O 6.5.2.3 a
callingPartyNumberString1 [84] IMPLICIT CallingPartyNumberString1 OPTIONAL,
callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
-- O 6.5.2.23 b
callingPartyNumberString2 [85] IMPLICIT CallingPartyNumberString2 OPTIONAL,
callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
-- O 6.5.2.24 b
callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
-- O 6.5.2.25 b
@ -1585,9 +1585,9 @@ InterSystemSetup ::= [PRIVATE 18] SET {
-- (IS-751)
alertCode [75] IMPLICIT AlertCode OPTIONAL,
-- O 6.5.2.3 a, g
callingPartyNumberString1 [84] IMPLICIT CallingPartyNumberString1 OPTIONAL,
callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
-- O 6.5.2.23 b, g
callingPartyNumberString2 [85] IMPLICIT CallingPartyNumberString2 OPTIONAL,
callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
-- O 6.5.2.24 b, g
callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
@ -1693,9 +1693,9 @@ LocationRequestRes ::= [PRIVATE 18] SET {
-- O 6.5.2.1 c
announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
-- O 6.5.2.6 d
callingPartyNumberString1 [84] IMPLICIT CallingPartyNumberString1 OPTIONAL,
callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
-- O 6.5.2.23 e
callingPartyNumberString2 [85] IMPLICIT CallingPartyNumberString2 OPTIONAL,
callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
-- O 6.5.2.24 e
cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
-- O 6.5.2.f
@ -1859,9 +1859,9 @@ OriginationRequestRes ::= [PRIVATE 18] SET {
-- O 6.5.2.2 b
announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
-- O 6.5.2.6 c
callingPartyNumberString1 [84] IMPLICIT CallingPartyNumberString1 OPTIONAL,
callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
-- O 6.5.2.23 d, e
callingPartyNumberString2 [85] IMPLICIT CallingPartyNumberString2 OPTIONAL,
callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
-- O 6.5.2.24 d, e
callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
-- O 6.5.2.25 d, e, f
@ -2326,9 +2326,9 @@ RoutingRequest ::= [PRIVATE 18] SET {
-- O 6.5.2.21 c, t
callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
-- O 6.5.2.22 c, t
callingPartyNumberString1 [84] IMPLICIT CallingPartyNumberString1 OPTIONAL,
callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
-- O 6.5.2.23 c
callingPartyNumberString2 [85] IMPLICIT CallingPartyNumberString2 OPTIONAL,
callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
--, O 6.5.2.24 c
callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
-- O 6.5.2.25 c
@ -2674,9 +2674,9 @@ TransferToNumberRequestRes ::= [PRIVATE 18] SET {
-- O 6.5.2.2 c
announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
-- O 6.5.2.6 d
callingPartyNumberString1 [84] IMPLICIT CallingPartyNumberString1 OPTIONAL,
callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
-- O 6.5.2.23 e
callingPartyNumberString2 [85] IMPLICIT CallingPartyNumberString2 OPTIONAL,
callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
-- O 6.5.2.24 e
callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
-- O 6.5.2.25 e, f
@ -2795,9 +2795,9 @@ UnsolicitedResponseRes ::= [PRIVATE 18] SET {
-- O 6.5.2.21 d
callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
-- O 6.5.2.22 d
callingPartyNumberString1 [84] IMPLICIT CallingPartyNumberString1 OPTIONAL,
callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
-- O 6.5.2.23 c
callingPartyNumberString2 [85] IMPLICIT CallingPartyNumberString2 OPTIONAL,
callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
-- O 6.5.2.24 c
callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
-- O 6.5.2.25 c
@ -3035,9 +3035,9 @@ ServiceRequestRes ::= [PRIVATE 18] SET {
-- O 6.5.2.6 e
callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
-- O 6.5.2.bw a
callingPartyNumberString1 [84] IMPLICIT CallingPartyNumberString1 OPTIONAL,
callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
-- O 6.5.2.23 a
callingPartyNumberString2 [85] IMPLICIT CallingPartyNumberString2 OPTIONAL,
callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
-- O 6.5.2.24 a
callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
-- O 6.5.2.25 a
@ -3461,9 +3461,9 @@ TBusyRes ::= [PRIVATE 18] SET {
-- O 6.5.2.2 b
announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
-- O 6.5.2.6 c
callingPartyNumberString1 [84] IMPLICIT CallingPartyNumberString1 OPTIONAL,
callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
-- O 6.5.2.23 d, e
callingPartyNumberString2 [85] IMPLICIT CallingPartyNumberString2 OPTIONAL,
callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
-- O 6.5.2.24 d, e
carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
-- O 6.5.2.28 l
@ -3564,9 +3564,9 @@ TNoAnswerRes ::= [PRIVATE 18] SET {
-- O 6.5.2.2 b
announcementList [130] IMPLICIT AnnouncementList OPTIONAL,
-- O 6.5.2.6 c
callingPartyNumberString1 [84] IMPLICIT CallingPartyNumberString1 OPTIONAL,
callingPartyNumberString1 [82] IMPLICIT CallingPartyNumberString1 OPTIONAL,
-- O 6.5.2.23 d, e
callingPartyNumberString2 [85] IMPLICIT CallingPartyNumberString2 OPTIONAL,
callingPartyNumberString2 [83] IMPLICIT CallingPartyNumberString2 OPTIONAL,
-- O 6.5.2.24 d, e
carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
-- O 6.5.2.28 l
@ -3757,7 +3757,7 @@ CallControlDirective ::= [PRIVATE 18] SET {
}
-- z-2 CallControlDirective RETURN RESULT Parameters
CallControlDirectiveres ::= [PRIVATE 18] SET {
CallControlDirectiveRes ::= [PRIVATE 18] SET {
callStatus [310] IMPLICIT CallStatus OPTIONAL
-- O 6.5.2.en a
@ -4461,7 +4461,7 @@ CallingPartyNumberDigits2 ::= DigitsType
-- 6.5.2.23
-- 1 0 0 1 1 1 1 1 (0x9f)
-- 0 1 0 1 0 0 1 0 (0x52)(84)
-- 0 1 0 1 0 0 1 0 (0x52)(82)
CallingPartyNumberString1 ::= DigitsType
-- 6.5.2.24
@ -5375,9 +5375,11 @@ SMS-OriginatingAddress ::= DigitsType
SMS-OriginationRestrictions ::= OCTET STRING
-- 6.5.2.137
-- N.S0005-0 v 1.0
-- 1 0 0 1 1 1 1 1 (0x9f)
-- 0 1 1 1 0 1 0 0 (0x74)(116)
SMS-TeleserviceIdentifier ::= OCTET STRING
-- SMS-TeleserviceIdentifier ::= OCTET STRING
SMS-TeleserviceIdentifier ::= INTEGER
-- 6.5.2.138
-- 1 0 0 1 1 1 1 1 (0x9f)

View File

@ -351,20 +351,32 @@ VAL_PTR = &parameter_tvb
}
# 6.5.2.124
#.FN_BODY SMS-BearerData VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
#.FN_BODY SMS-BearerData VAL_PTR = &SMS_BearerData_tvb
SMS_BearerData_tvb = NULL;
%(DEFAULT_BODY)s
# 6.5.2.158 TerminationTreatment
#.FN_PARS TerminationTreatment
# 6.5.2.137
# N.S0005-0 v 1.0
#.FN_BODY SMS-TeleserviceIdentifier VAL_PTR = &ansi_map_sms_tele_id
static gint32 ansi_map_sms_tele_id = -1;
%(DEFAULT_BODY)s
if ((ansi_map_sms_tele_id != -1)&&(SMS_BearerData_tvb !=NULL))
{
dissector_try_port(is637_tele_id_dissector_table, ansi_map_sms_tele_id, SMS_BearerData_tvb, g_pinfo, g_tree);
ansi_map_sms_tele_id = -1;
}
# 6.5.2.159 TerminationTriggers
#.FN_PARS TerminationTriggers
VAL_PTR = &parameter_tvb
#.FN_BODY TerminationTreatment
#.FN_BODY TerminationTriggers
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
dissect_ansi_map_terminationtreatment(parameter_tvb,pinfo,tree);
dissect_ansi_map_terminationtriggers(parameter_tvb,pinfo,tree);
}
# 6.5.2.160 TransactionCapability

View File

@ -163,11 +163,11 @@ static int hf_ansi_map_trans_cap_uzci = -1;
static int hf_ansi_map_trans_cap_ndss = -1;
static int hf_ansi_map_trans_cap_nami = -1;
static int hf_ansi_trans_cap_multerm = -1;
static int hf_ansi_map_terminationtreatment_busy = -1;
static int hf_ansi_map_terminationtreatment_rf = -1;
static int hf_ansi_map_terminationtreatment_npr = -1;
static int hf_ansi_map_terminationtreatment_na = -1;
static int hf_ansi_map_terminationtreatment_nr = -1;
static int hf_ansi_map_terminationtriggers_busy = -1;
static int hf_ansi_map_terminationtriggers_rf = -1;
static int hf_ansi_map_terminationtriggers_npr = -1;
static int hf_ansi_map_terminationtriggers_na = -1;
static int hf_ansi_map_terminationtriggers_nr = -1;
static int hf_ansi_trans_cap_tl = -1;
static int hf_ansi_trans_cap_waddr = -1;
static int hf_ansi_map_MarketID = -1;
@ -306,7 +306,7 @@ static dissector_table_t is683_dissector_table; /* IS-683-A (OTA) */
static dissector_table_t is801_dissector_table; /* IS-801 (PLD) */
static packet_info *g_pinfo;
static proto_tree *g_tree;
static gint32 ansi_map_sms_tele_id = -1;
tvbuff_t *SMS_BearerData_tvb = NULL;
static gboolean is683_ota;
static gboolean is801_pld;
static gboolean ansi_map_is_invoke;
@ -2129,10 +2129,11 @@ static const value_string ansi_map_SMS_ChargeIndicator_vals[] = {
original originator.
*/
/* 6.5.2.130 SMS_NotificationIndicator */
/* 6.5.2.130 SMS_NotificationIndicator N.S0005-0 v 1.0*/
static const value_string ansi_map_SMS_NotificationIndicator_vals[] = {
{ 0, "Not used"},
{ 1, "Do not notify when available"},
{ 1, "Notify when available"},
{ 2, "Do not notify when available"},
{ 0, NULL }
};
@ -2244,7 +2245,7 @@ static const value_string ansi_map_TerminationTreatment_vals[] = {
/* 6.5.2.159 TerminationTriggers */
/* Busy (octet 1, bits A and B) */
static const value_string ansi_map_terminationtreatment_busy_vals[] = {
static const value_string ansi_map_terminationtriggers_busy_vals[] = {
{ 0, "Busy Call"},
{ 1, "Busy Trigger"},
{ 2, "Busy Leg"},
@ -2252,7 +2253,7 @@ static const value_string ansi_map_terminationtreatment_busy_vals[] = {
{ 0, NULL }
};
/* Routing Failure (RF) (octet 1, bits C and D) */
static const value_string ansi_map_terminationtreatment_rf_vals[] = {
static const value_string ansi_map_terminationtriggers_rf_vals[] = {
{ 0, "Failed Call"},
{ 1, "Routing Failure Trigger"},
{ 2, "Failed Leg"},
@ -2260,7 +2261,7 @@ static const value_string ansi_map_terminationtreatment_rf_vals[] = {
{ 0, NULL }
};
/* No Page Response (NPR) (octet 1, bits E and F) */
static const value_string ansi_map_terminationtreatment_npr_vals[] = {
static const value_string ansi_map_terminationtriggers_npr_vals[] = {
{ 0, "No Page Response Call"},
{ 1, "No Page Response Trigger"},
{ 2, "No Page Response Leg"},
@ -2268,7 +2269,7 @@ static const value_string ansi_map_terminationtreatment_npr_vals[] = {
{ 0, NULL }
};
/* No Answer (NA) (octet 1, bits G and H) */
static const value_string ansi_map_terminationtreatment_na_vals[] = {
static const value_string ansi_map_terminationtriggers_na_vals[] = {
{ 0, "No Answer Call"},
{ 1, "No Answer Trigger"},
{ 2, "No Answer Leg"},
@ -2276,15 +2277,15 @@ static const value_string ansi_map_terminationtreatment_na_vals[] = {
{ 0, NULL }
};
/* None Reachable (NR) (octet 2, bit A) */
static const value_string ansi_map_terminationtreatment_nr_vals[] = {
static const value_string ansi_map_terminationtriggers_nr_vals[] = {
{ 0, "Member Not Reachable"},
{ 1, "Group Not Reachable"},
{ 0, NULL }
};
/* 6.5.2.159 TerminationTriggers N.S0005-0 v 1.0*/
static void
dissect_ansi_map_terminationtreatment(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){
dissect_ansi_map_terminationtriggers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){
int offset = 0;
proto_item *item;
@ -2294,18 +2295,18 @@ dissect_ansi_map_terminationtreatment(tvbuff_t *tvb, packet_info *pinfo, proto_t
subtree = proto_item_add_subtree(item, ett_transactioncapability);
/* Busy (octet 1, bits A and B) */
proto_tree_add_item(subtree, hf_ansi_map_terminationtreatment_busy, tvb, offset, 1, FALSE);
proto_tree_add_item(subtree, hf_ansi_map_terminationtriggers_busy, tvb, offset, 1, FALSE);
/* Routing Failure (RF) (octet 1, bits C and D) */
proto_tree_add_item(subtree, hf_ansi_map_terminationtreatment_rf, tvb, offset, 1, FALSE);
proto_tree_add_item(subtree, hf_ansi_map_terminationtriggers_rf, tvb, offset, 1, FALSE);
/* No Answer (NA) (octet 1, bits G and H) */
proto_tree_add_item(subtree, hf_ansi_map_terminationtreatment_na, tvb, offset, 1, FALSE);
proto_tree_add_item(subtree, hf_ansi_map_terminationtriggers_na, tvb, offset, 1, FALSE);
/* No Page Response (NPR) (octet 1, bits E and F) */
proto_tree_add_item(subtree, hf_ansi_map_terminationtreatment_npr, tvb, offset, 1, FALSE);
proto_tree_add_item(subtree, hf_ansi_map_terminationtriggers_npr, tvb, offset, 1, FALSE);
offset++;
/* None Reachable (NR) (octet 2, bit A) */
proto_tree_add_item(subtree, hf_ansi_map_terminationtreatment_nr, tvb, offset, 1, FALSE);
proto_tree_add_item(subtree, hf_ansi_map_terminationtriggers_nr, tvb, offset, 1, FALSE);
}
/* 6.5.2.160 TransactionCapability (TIA/EIA-41.5-D, page 5-315) */
@ -3447,18 +3448,39 @@ static int dissect_returnData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
switch(OperationCode){
case 1: /*Handoff Measurement Request*/
offset = dissect_ansi_map_HandoffMeasurementRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 2: /*Facilities Directive*/
offset = dissect_ansi_map_FacilitiesDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 4: /*Handoff Back*/
offset = dissect_ansi_map_HandoffBackRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 6: /*Qualification Request*/
case 5: /*Facilities Release*/
offset = dissect_ansi_map_FacilitiesReleaseRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 6: /*Qualification Request*/
offset = dissect_ansi_map_QualificationRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 10: /*Reset Circuit*/
offset = dissect_ansi_map_ResetCircuitRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 13: /*Registration Notification*/
offset = dissect_ansi_map_RegistrationNotificationRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 14: /*Registration Cancellation*/
offset = dissect_ansi_map_RegistrationCancellationRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 15: /*Location Request*/
offset = dissect_ansi_map_LocationRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 16: /*Routing Request*/
offset = dissect_ansi_map_RoutingRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 17: /*Feature Request*/
offset = dissect_ansi_map_FeatureRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 23: /*Transfer To Number Request*/
offset = dissect_ansi_map_TransferToNumberRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
@ -3477,27 +3499,46 @@ static int dissect_returnData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
case 31: /*Count Request*/
offset = dissect_ansi_map_CountRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 32: /*Inter System Page*/
offset = dissect_ansi_map_InterSystemPageRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 33: /*Unsolicited Response*/
offset = dissect_ansi_map_UnsolicitedResponseRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 35: /*Handoff Measurement Request 2*/
offset = dissect_ansi_map_HandoffMeasurementRequest2Res(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 36: /*Facilities Directive 2*/
offset = dissect_ansi_map_FacilitiesDirective2Res(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 37: /*Handoff Back 2*/
offset = dissect_ansi_map_HandoffBack2Res(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 38: /*Handoff To Third 2*/
offset = dissect_ansi_map_HandoffToThird2Res(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 39: /*Authentication Directive Forward*/
offset = dissect_ansi_map_AuthenticationDirectiveForwardRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 40: /*Authentication Status Report*/
offset = dissect_ansi_map_AuthenticationStatusReportRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
/*Reserved 41*/
case 43: /*Information Forward*/
offset = dissect_ansi_map_InformationForwardRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 45: /*Inter System Page 2*/
offset = dissect_ansi_map_InterSystemPage2Res(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 46: /*Inter System Setup*/
offset = dissect_ansi_map_InterSystemSetupRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 47: /*OriginationRequest*/
offset = dissect_ansi_map_OriginationRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 48: /*Random Variable Request*/
offset = dissect_ansi_map_RandomVariableRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 50: /*Remote User Interaction Directive*/
offset = dissect_ansi_map_RemoteUserInteractionDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
@ -3517,18 +3558,28 @@ static int dissect_returnData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
offset = dissect_ansi_map_SMSRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
/* N.S0008-0 v 1.0 */
case 56: /*OTASP Request 6.4.2.CC*/
offset = dissect_ansi_map_OTASPRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 58: /*Change Facilities*/
offset = dissect_ansi_map_ChangeFacilitiesRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 59: /*Change Service*/
offset = dissect_ansi_map_ChangeServiceRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 60: /*Parameter Request*/
offset = dissect_ansi_map_ParameterRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 61: /*TMSI Directive*/
offset = dissect_ansi_map_TMSIDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 63: /*Service Request*/
offset = dissect_ansi_map_ServiceRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
/* N.S0013 */
case 64: /*Analyzed Information Request*/
offset = dissect_ansi_map_AnalyzedInformationRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 68: /*Facility Selected and Available*/
offset = dissect_ansi_map_FacilitySelectedAndAvailableRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
@ -3541,12 +3592,18 @@ static int dissect_returnData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
case 73: /*Seize Resource*/
offset = dissect_ansi_map_SeizeResourceRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 74: /*SRF Directive*/
offset = dissect_ansi_map_SRFDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 75: /*T Busy*/
offset = dissect_ansi_map_TBusyRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 76: /*T NoAnswer*/
offset = dissect_ansi_map_TNoAnswerRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 81: /*Call Control Directive*/
offset = dissect_ansi_map_CallControlDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 83: /*O Disconnect*/
offset = dissect_ansi_map_ODisconnectRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
@ -3592,55 +3649,42 @@ dissect_ansi_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree *ansi_map_tree = NULL;
int offset = 0;
SMS_BearerData_tvb = NULL;
g_pinfo = pinfo;
g_tree = tree;
/*
* Make entry in the Protocol column on summary display
*/
if (check_col(pinfo->cinfo, COL_PROTOCOL))
{
col_set_str(pinfo->cinfo, COL_PROTOCOL, "ANSI MAP");
col_set_str(pinfo->cinfo, COL_PROTOCOL, "ANSI MAP");
}
/* In the interest of speed, if "tree" is NULL, don't do any work not
* necessary to generate protocol tree items.
*/
if (tree)
{
g_tree = tree;
/*
* create the ansi_map protocol tree
*/
ansi_map_item =
proto_tree_add_item(tree, proto_ansi_map, tvb, 0, -1, FALSE);
ansi_map_tree =
proto_item_add_subtree(ansi_map_item, ett_ansi_map);
ansi_map_item = proto_tree_add_item(tree, proto_ansi_map, tvb, 0, -1, FALSE);
ansi_map_tree = proto_item_add_subtree(ansi_map_item, ett_ansi_map);
ansi_map_is_invoke = FALSE;
is683_ota = FALSE;
is801_pld = FALSE;
dissect_ansi_map_ComponentPDU(FALSE, tvb, offset, pinfo, ansi_map_tree, -1);
}
}
static void range_delete_callback(guint32 ssn)
{
if (ssn) {
delete_ansi_tcap_subdissector(ssn , ansi_map_handle);
add_ansi_tcap_subdissector(ssn , ansi_map_handle);
}
if (ssn) {
delete_ansi_tcap_subdissector(ssn , ansi_map_handle);
add_ansi_tcap_subdissector(ssn , ansi_map_handle);
}
}
static void range_add_callback(guint32 ssn)
{
if (ssn) {
add_ansi_tcap_subdissector(ssn , ansi_map_handle);
}
if (ssn) {
add_ansi_tcap_subdissector(ssn , ansi_map_handle);
}
}
void
@ -3835,25 +3879,25 @@ void proto_register_ansi_map(void) {
{ "Multiple Terminations", "ansi_map.trans_cap_multerm",
FT_UINT8, BASE_DEC, VALS(ansi_map_trans_cap_multerm_vals), 0x0f,
"Multiple Terminations", HFILL }},
{ &hf_ansi_map_terminationtreatment_busy,
{ "Busy", "ansi_map.terminationtreatment.busy",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtreatment_busy_vals), 0x03,
{ &hf_ansi_map_terminationtriggers_busy,
{ "Busy", "ansi_map.terminationtriggers.busy",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_busy_vals), 0x03,
"Busy", HFILL }},
{ &hf_ansi_map_terminationtreatment_rf,
{ "Routing Failure (RF)", "ansi_map.terminationtreatment.rf",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtreatment_rf_vals), 0x0c,
{ &hf_ansi_map_terminationtriggers_rf,
{ "Routing Failure (RF)", "ansi_map.terminationtriggers.rf",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_rf_vals), 0x0c,
"Routing Failure (RF)", HFILL }},
{ &hf_ansi_map_terminationtreatment_npr,
{ "No Page Response (NPR)", "ansi_map.terminationtreatment.npr",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtreatment_npr_vals), 0x30,
{ &hf_ansi_map_terminationtriggers_npr,
{ "No Page Response (NPR)", "ansi_map.terminationtriggers.npr",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_npr_vals), 0x30,
"No Page Response (NPR)", HFILL }},
{ &hf_ansi_map_terminationtreatment_na,
{ "No Answer (NA)", "ansi_map.terminationtreatment.na",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtreatment_na_vals), 0xc0,
{ &hf_ansi_map_terminationtriggers_na,
{ "No Answer (NA)", "ansi_map.terminationtriggers.na",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_na_vals), 0xc0,
"No Answer (NA)", HFILL }},
{ &hf_ansi_map_terminationtreatment_nr,
{ "None Reachable (NR)", "ansi_map.terminationtreatment.nr",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtreatment_nr_vals), 0x01,
{ &hf_ansi_map_terminationtriggers_nr,
{ "None Reachable (NR)", "ansi_map.terminationtriggers.nr",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_nr_vals), 0x01,
"None Reachable (NR)", HFILL }},
{ &hf_ansi_trans_cap_tl,
{ "TerminationList (TL)", "ansi_map.trans_cap_tl",