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

View File

@ -351,20 +351,32 @@ VAL_PTR = &parameter_tvb
} }
# 6.5.2.124 # 6.5.2.124
#.FN_BODY SMS-BearerData VAL_PTR = &parameter_tvb #.FN_BODY SMS-BearerData VAL_PTR = &SMS_BearerData_tvb
tvbuff_t *parameter_tvb = NULL; SMS_BearerData_tvb = NULL;
%(DEFAULT_BODY)s %(DEFAULT_BODY)s
# 6.5.2.158 TerminationTreatment # 6.5.2.137
#.FN_PARS TerminationTreatment # 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 VAL_PTR = &parameter_tvb
#.FN_BODY TerminationTreatment #.FN_BODY TerminationTriggers
tvbuff_t *parameter_tvb = NULL; tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s %(DEFAULT_BODY)s
if (parameter_tvb){ if (parameter_tvb){
dissect_ansi_map_terminationtreatment(parameter_tvb,pinfo,tree); dissect_ansi_map_terminationtriggers(parameter_tvb,pinfo,tree);
} }
# 6.5.2.160 TransactionCapability # 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_ndss = -1;
static int hf_ansi_map_trans_cap_nami = -1; static int hf_ansi_map_trans_cap_nami = -1;
static int hf_ansi_trans_cap_multerm = -1; static int hf_ansi_trans_cap_multerm = -1;
static int hf_ansi_map_terminationtreatment_busy = -1; static int hf_ansi_map_terminationtriggers_busy = -1;
static int hf_ansi_map_terminationtreatment_rf = -1; static int hf_ansi_map_terminationtriggers_rf = -1;
static int hf_ansi_map_terminationtreatment_npr = -1; static int hf_ansi_map_terminationtriggers_npr = -1;
static int hf_ansi_map_terminationtreatment_na = -1; static int hf_ansi_map_terminationtriggers_na = -1;
static int hf_ansi_map_terminationtreatment_nr = -1; static int hf_ansi_map_terminationtriggers_nr = -1;
static int hf_ansi_trans_cap_tl = -1; static int hf_ansi_trans_cap_tl = -1;
static int hf_ansi_trans_cap_waddr = -1; static int hf_ansi_trans_cap_waddr = -1;
static int hf_ansi_map_MarketID = -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 dissector_table_t is801_dissector_table; /* IS-801 (PLD) */
static packet_info *g_pinfo; static packet_info *g_pinfo;
static proto_tree *g_tree; 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 is683_ota;
static gboolean is801_pld; static gboolean is801_pld;
static gboolean ansi_map_is_invoke; static gboolean ansi_map_is_invoke;
@ -2129,10 +2129,11 @@ static const value_string ansi_map_SMS_ChargeIndicator_vals[] = {
original originator. 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[] = { static const value_string ansi_map_SMS_NotificationIndicator_vals[] = {
{ 0, "Not used"}, { 0, "Not used"},
{ 1, "Do not notify when available"}, { 1, "Notify when available"},
{ 2, "Do not notify when available"},
{ 0, NULL } { 0, NULL }
}; };
@ -2244,7 +2245,7 @@ static const value_string ansi_map_TerminationTreatment_vals[] = {
/* 6.5.2.159 TerminationTriggers */ /* 6.5.2.159 TerminationTriggers */
/* Busy (octet 1, bits A and B) */ /* 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"}, { 0, "Busy Call"},
{ 1, "Busy Trigger"}, { 1, "Busy Trigger"},
{ 2, "Busy Leg"}, { 2, "Busy Leg"},
@ -2252,7 +2253,7 @@ static const value_string ansi_map_terminationtreatment_busy_vals[] = {
{ 0, NULL } { 0, NULL }
}; };
/* Routing Failure (RF) (octet 1, bits C and D) */ /* 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"}, { 0, "Failed Call"},
{ 1, "Routing Failure Trigger"}, { 1, "Routing Failure Trigger"},
{ 2, "Failed Leg"}, { 2, "Failed Leg"},
@ -2260,7 +2261,7 @@ static const value_string ansi_map_terminationtreatment_rf_vals[] = {
{ 0, NULL } { 0, NULL }
}; };
/* No Page Response (NPR) (octet 1, bits E and F) */ /* 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"}, { 0, "No Page Response Call"},
{ 1, "No Page Response Trigger"}, { 1, "No Page Response Trigger"},
{ 2, "No Page Response Leg"}, { 2, "No Page Response Leg"},
@ -2268,7 +2269,7 @@ static const value_string ansi_map_terminationtreatment_npr_vals[] = {
{ 0, NULL } { 0, NULL }
}; };
/* No Answer (NA) (octet 1, bits G and H) */ /* 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"}, { 0, "No Answer Call"},
{ 1, "No Answer Trigger"}, { 1, "No Answer Trigger"},
{ 2, "No Answer Leg"}, { 2, "No Answer Leg"},
@ -2276,15 +2277,15 @@ static const value_string ansi_map_terminationtreatment_na_vals[] = {
{ 0, NULL } { 0, NULL }
}; };
/* None Reachable (NR) (octet 2, bit A) */ /* 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"}, { 0, "Member Not Reachable"},
{ 1, "Group Not Reachable"}, { 1, "Group Not Reachable"},
{ 0, NULL } { 0, NULL }
}; };
/* 6.5.2.159 TerminationTriggers N.S0005-0 v 1.0*/
static void 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; int offset = 0;
proto_item *item; 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); subtree = proto_item_add_subtree(item, ett_transactioncapability);
/* Busy (octet 1, bits A and B) */ /* 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) */ /* 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) */ /* 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) */ /* 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++; offset++;
/* None Reachable (NR) (octet 2, bit A) */ /* 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) */ /* 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){ switch(OperationCode){
case 1: /*Handoff Measurement Request*/
offset = dissect_ansi_map_HandoffMeasurementRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 2: /*Facilities Directive*/ case 2: /*Facilities Directive*/
offset = dissect_ansi_map_FacilitiesDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_FacilitiesDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
case 4: /*Handoff Back*/ case 4: /*Handoff Back*/
offset = dissect_ansi_map_HandoffBackRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_HandoffBackRes(TRUE, tvb, offset, pinfo, tree, -1);
break; 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); offset = dissect_ansi_map_QualificationRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
case 10: /*Reset Circuit*/
offset = dissect_ansi_map_ResetCircuitRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 13: /*Registration Notification*/ case 13: /*Registration Notification*/
offset = dissect_ansi_map_RegistrationNotificationRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_RegistrationNotificationRes(TRUE, tvb, offset, pinfo, tree, -1);
break; 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*/ case 23: /*Transfer To Number Request*/
offset = dissect_ansi_map_TransferToNumberRequestRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_TransferToNumberRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
@ -3477,27 +3499,46 @@ static int dissect_returnData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
case 31: /*Count Request*/ case 31: /*Count Request*/
offset = dissect_ansi_map_CountRequestRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_CountRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
case 32: /*Inter System Page*/
offset = dissect_ansi_map_InterSystemPageRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 33: /*Unsolicited Response*/ case 33: /*Unsolicited Response*/
offset = dissect_ansi_map_UnsolicitedResponseRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_UnsolicitedResponseRes(TRUE, tvb, offset, pinfo, tree, -1);
break; 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*/ case 37: /*Handoff Back 2*/
offset = dissect_ansi_map_HandoffBack2Res(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_HandoffBack2Res(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
case 38: /*Handoff To Third 2*/ case 38: /*Handoff To Third 2*/
offset = dissect_ansi_map_HandoffToThird2Res(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_HandoffToThird2Res(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
case 39: /*Authentication Directive Forward*/
offset = dissect_ansi_map_AuthenticationDirectiveForwardRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 40: /*Authentication Status Report*/ case 40: /*Authentication Status Report*/
offset = dissect_ansi_map_AuthenticationStatusReportRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_AuthenticationStatusReportRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
/*Reserved 41*/
case 43: /*Information Forward*/ case 43: /*Information Forward*/
offset = dissect_ansi_map_InformationForwardRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_InformationForwardRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
case 45: /*Inter System Page 2*/
offset = dissect_ansi_map_InterSystemPage2Res(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 46: /*Inter System Setup*/ case 46: /*Inter System Setup*/
offset = dissect_ansi_map_InterSystemSetupRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_InterSystemSetupRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
case 47: /*OriginationRequest*/ case 47: /*OriginationRequest*/
offset = dissect_ansi_map_OriginationRequestRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_OriginationRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
case 48: /*Random Variable Request*/
offset = dissect_ansi_map_RandomVariableRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 50: /*Remote User Interaction Directive*/ case 50: /*Remote User Interaction Directive*/
offset = dissect_ansi_map_RemoteUserInteractionDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_RemoteUserInteractionDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1);
break; 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); offset = dissect_ansi_map_SMSRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
/* N.S0008-0 v 1.0 */ /* 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*/ case 58: /*Change Facilities*/
offset = dissect_ansi_map_ChangeFacilitiesRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_ChangeFacilitiesRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
case 59: /*Change Service*/ case 59: /*Change Service*/
offset = dissect_ansi_map_ChangeServiceRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_ChangeServiceRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
case 60: /*Parameter Request*/
offset = dissect_ansi_map_ParameterRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 61: /*TMSI Directive*/ case 61: /*TMSI Directive*/
offset = dissect_ansi_map_TMSIDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_TMSIDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
case 63: /*Service Request*/ case 63: /*Service Request*/
offset = dissect_ansi_map_ServiceRequestRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_ServiceRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break; 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*/ case 68: /*Facility Selected and Available*/
offset = dissect_ansi_map_FacilitySelectedAndAvailableRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_FacilitySelectedAndAvailableRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
@ -3541,12 +3592,18 @@ static int dissect_returnData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
case 73: /*Seize Resource*/ case 73: /*Seize Resource*/
offset = dissect_ansi_map_SeizeResourceRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_SeizeResourceRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
case 74: /*SRF Directive*/
offset = dissect_ansi_map_SRFDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 75: /*T Busy*/ case 75: /*T Busy*/
offset = dissect_ansi_map_TBusyRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_TBusyRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
case 76: /*T NoAnswer*/ case 76: /*T NoAnswer*/
offset = dissect_ansi_map_TNoAnswerRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_TNoAnswerRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
case 81: /*Call Control Directive*/
offset = dissect_ansi_map_CallControlDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 83: /*O Disconnect*/ case 83: /*O Disconnect*/
offset = dissect_ansi_map_ODisconnectRes(TRUE, tvb, offset, pinfo, tree, -1); offset = dissect_ansi_map_ODisconnectRes(TRUE, tvb, offset, pinfo, tree, -1);
break; break;
@ -3592,55 +3649,42 @@ dissect_ansi_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree *ansi_map_tree = NULL; proto_tree *ansi_map_tree = NULL;
int offset = 0; int offset = 0;
SMS_BearerData_tvb = NULL;
g_pinfo = pinfo; g_pinfo = pinfo;
g_tree = tree;
/* /*
* Make entry in the Protocol column on summary display * Make entry in the Protocol column on summary display
*/ */
if (check_col(pinfo->cinfo, COL_PROTOCOL)) 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 * create the ansi_map protocol tree
*/ */
ansi_map_item = ansi_map_item = proto_tree_add_item(tree, proto_ansi_map, tvb, 0, -1, FALSE);
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_tree =
proto_item_add_subtree(ansi_map_item, ett_ansi_map);
ansi_map_is_invoke = FALSE; ansi_map_is_invoke = FALSE;
is683_ota = FALSE; is683_ota = FALSE;
is801_pld = FALSE; is801_pld = FALSE;
dissect_ansi_map_ComponentPDU(FALSE, tvb, offset, pinfo, ansi_map_tree, -1); dissect_ansi_map_ComponentPDU(FALSE, tvb, offset, pinfo, ansi_map_tree, -1);
}
} }
static void range_delete_callback(guint32 ssn) static void range_delete_callback(guint32 ssn)
{ {
if (ssn) { if (ssn) {
delete_ansi_tcap_subdissector(ssn , ansi_map_handle); delete_ansi_tcap_subdissector(ssn , ansi_map_handle);
add_ansi_tcap_subdissector(ssn , ansi_map_handle); add_ansi_tcap_subdissector(ssn , ansi_map_handle);
} }
} }
static void range_add_callback(guint32 ssn) static void range_add_callback(guint32 ssn)
{ {
if (ssn) { if (ssn) {
add_ansi_tcap_subdissector(ssn , ansi_map_handle); add_ansi_tcap_subdissector(ssn , ansi_map_handle);
} }
} }
void void
@ -3835,25 +3879,25 @@ void proto_register_ansi_map(void) {
{ "Multiple Terminations", "ansi_map.trans_cap_multerm", { "Multiple Terminations", "ansi_map.trans_cap_multerm",
FT_UINT8, BASE_DEC, VALS(ansi_map_trans_cap_multerm_vals), 0x0f, FT_UINT8, BASE_DEC, VALS(ansi_map_trans_cap_multerm_vals), 0x0f,
"Multiple Terminations", HFILL }}, "Multiple Terminations", HFILL }},
{ &hf_ansi_map_terminationtreatment_busy, { &hf_ansi_map_terminationtriggers_busy,
{ "Busy", "ansi_map.terminationtreatment.busy", { "Busy", "ansi_map.terminationtriggers.busy",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtreatment_busy_vals), 0x03, FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_busy_vals), 0x03,
"Busy", HFILL }}, "Busy", HFILL }},
{ &hf_ansi_map_terminationtreatment_rf, { &hf_ansi_map_terminationtriggers_rf,
{ "Routing Failure (RF)", "ansi_map.terminationtreatment.rf", { "Routing Failure (RF)", "ansi_map.terminationtriggers.rf",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtreatment_rf_vals), 0x0c, FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_rf_vals), 0x0c,
"Routing Failure (RF)", HFILL }}, "Routing Failure (RF)", HFILL }},
{ &hf_ansi_map_terminationtreatment_npr, { &hf_ansi_map_terminationtriggers_npr,
{ "No Page Response (NPR)", "ansi_map.terminationtreatment.npr", { "No Page Response (NPR)", "ansi_map.terminationtriggers.npr",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtreatment_npr_vals), 0x30, FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_npr_vals), 0x30,
"No Page Response (NPR)", HFILL }}, "No Page Response (NPR)", HFILL }},
{ &hf_ansi_map_terminationtreatment_na, { &hf_ansi_map_terminationtriggers_na,
{ "No Answer (NA)", "ansi_map.terminationtreatment.na", { "No Answer (NA)", "ansi_map.terminationtriggers.na",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtreatment_na_vals), 0xc0, FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_na_vals), 0xc0,
"No Answer (NA)", HFILL }}, "No Answer (NA)", HFILL }},
{ &hf_ansi_map_terminationtreatment_nr, { &hf_ansi_map_terminationtriggers_nr,
{ "None Reachable (NR)", "ansi_map.terminationtreatment.nr", { "None Reachable (NR)", "ansi_map.terminationtriggers.nr",
FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtreatment_nr_vals), 0x01, FT_UINT8, BASE_DEC, VALS(ansi_map_terminationtriggers_nr_vals), 0x01,
"None Reachable (NR)", HFILL }}, "None Reachable (NR)", HFILL }},
{ &hf_ansi_trans_cap_tl, { &hf_ansi_trans_cap_tl,
{ "TerminationList (TL)", "ansi_map.trans_cap_tl", { "TerminationList (TL)", "ansi_map.trans_cap_tl",