aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2010-01-07 20:27:38 +0000
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2010-01-07 20:27:38 +0000
commit522e5e141f97d695cff99a807ce865e276e74563 (patch)
tree47dfc8103be783101a9d60057c37a69ee27b440c
parent3f4e0bdf70eb1d6f83540fc3c0f9676990c68697 (diff)
From Michael Lum:
Fixes for E911 mobile positioning capability and Handoff Back2. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4373 git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@31462 f5534014-38df-0310-8fa8-9805f1628bb7
-rw-r--r--asn1/ansi_map/ansi_map.asn12
-rw-r--r--epan/dissectors/packet-ansi_map.c36
2 files changed, 31 insertions, 17 deletions
diff --git a/asn1/ansi_map/ansi_map.asn b/asn1/ansi_map/ansi_map.asn
index 55f60f7ad1..85f0379ee9 100644
--- a/asn1/ansi_map/ansi_map.asn
+++ b/asn1/ansi_map/ansi_map.asn
@@ -807,7 +807,7 @@ HandoffBack2 ::= [PRIVATE 18] SET {
-- O 6.5.2.h TSB76 c, nn
cdmaTargetMAHOList [136] IMPLICIT CDMATargetMAHOList OPTIONAL,
-- O 6.5.2.43 g
- cdmaTargetMeasurementList [134] IMPLICIT CDMATargetMeasurementList,
+ cdmaTargetMeasurementList [134] IMPLICIT CDMATargetMeasurementList OPTIONAL,
-- O 6.5.2.45 h
channelData [5] IMPLICIT ChannelData OPTIONAL,
-- (Serving) O 6.5.2.47 i
@@ -1952,6 +1952,8 @@ QualificationDirective ::= [PRIVATE 18] SET {
-- O 6.5.2.79 g
mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
-- O 6.5.2.80 d
+ mobilePositionCapability [335] IMPLICIT MobilePositionCapability OPTIONAL,
+ -- O 6.5.2.fm t TIA/EIA/J-STD-036-A
originationIndicator [23] IMPLICIT OriginationIndicator OPTIONAL,
-- O 6.5.2.89 h
originationTriggers [98] IMPLICIT OriginationTriggers OPTIONAL,
@@ -2097,6 +2099,8 @@ QualificationRequestRes ::= [PRIVATE 18] SET {
-- O 6.5.2.79 g
mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
-- O 6.5.2.80 d
+ mobilePositionCapability [335] IMPLICIT MobilePositionCapability OPTIONAL,
+ -- O 6.5.2.fm t TIA/EIA/J-STD-036-A
originationIndicator [23] IMPLICIT OriginationIndicator OPTIONAL,
-- O 6.5.2.89 h
originationTriggers [98] IMPLICIT OriginationTriggers OPTIONAL,
@@ -2362,6 +2366,8 @@ RegistrationNotificationRes ::= [PRIVATE 18] SET {
-- O 6.5.2.79 g
mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
-- O 6.5.2.80 d
+ mobilePositionCapability [335] IMPLICIT MobilePositionCapability OPTIONAL,
+ -- O 6.5.2.fm t TIA/EIA/J-STD-036-A
originationIndicator [23] IMPLICIT OriginationIndicator OPTIONAL,
-- O 6.5.2.89 h
originationTriggers [98] IMPLICIT OriginationTriggers OPTIONAL,
@@ -5103,6 +5109,8 @@ QualificationRequest2Res ::= [PRIVATE 18] SET {
-- O 6.5.2.79 g
mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
-- O 6.5.2.80 d
+ mobilePositionCapability [335] IMPLICIT MobilePositionCapability OPTIONAL,
+ -- O 6.5.2.fm t TIA/EIA/J-STD-036-A
originationIndicator [23] IMPLICIT OriginationIndicator OPTIONAL,
-- O 6.5.2.89 h
originationTriggers [98] IMPLICIT OriginationTriggers OPTIONAL,
@@ -5865,6 +5873,8 @@ PreferredLanguageIndicator ::= OCTET STRING
-- O 6.5.2.79 g
-- mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
-- O 6.5.2.80 d
+-- mobilePositionCapability [335] IMPLICIT MobilePositionCapability OPTIONAL,
+ -- O 6.5.2.fm t TIA/EIA/J-STD-036-A
-- originationIndicator [23] IMPLICIT OriginationIndicator OPTIONAL,
-- O 6.5.2.89 h
-- originationTriggers [98] IMPLICIT OriginationTriggers,
diff --git a/epan/dissectors/packet-ansi_map.c b/epan/dissectors/packet-ansi_map.c
index 7b36843eb1..e8d944a464 100644
--- a/epan/dissectors/packet-ansi_map.c
+++ b/epan/dissectors/packet-ansi_map.c
@@ -526,6 +526,7 @@ static int hf_ansi_map_authenticationCapability = -1; /* AuthenticationCapabili
static int hf_ansi_map_callingFeaturesIndicator = -1; /* CallingFeaturesIndicator */
static int hf_ansi_map_geographicAuthorization = -1; /* GeographicAuthorization */
static int hf_ansi_map_meidValidated = -1; /* MEIDValidated */
+static int hf_ansi_map_mobilePositionCapability = -1; /* MobilePositionCapability */
static int hf_ansi_map_originationIndicator = -1; /* OriginationIndicator */
static int hf_ansi_map_restrictionDigits = -1; /* RestrictionDigits */
static int hf_ansi_map_sms_OriginationRestrictions = -1; /* SMS_OriginationRestrictions */
@@ -606,7 +607,6 @@ static int hf_ansi_map_pSID_RSIDInformation = -1; /* PSID_RSIDInformation */
static int hf_ansi_map_positionRequestType = -1; /* PositionRequestType */
static int hf_ansi_map_lcsBillingID = -1; /* LCSBillingID */
static int hf_ansi_map_lcs_Client_ID = -1; /* LCS_Client_ID */
-static int hf_ansi_map_mobilePositionCapability = -1; /* MobilePositionCapability */
static int hf_ansi_map_dtxIndication = -1; /* DTXIndication */
static int hf_ansi_map_cdmaCodeChannel = -1; /* CDMACodeChannel */
static int hf_ansi_map_cdmaMobileCapabilities = -1; /* CDMAMobileCapabilities */
@@ -7789,7 +7789,7 @@ static const ber_sequence_t HandoffBack2_U_set[] = {
{ &hf_ansi_map_cdmaStationClassMark, BER_CLASS_CON, 59, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_CDMAStationClassMark },
{ &hf_ansi_map_cdmaStationClassMark2, BER_CLASS_CON, 177, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_CDMAStationClassMark2 },
{ &hf_ansi_map_cdmaTargetMAHOList, BER_CLASS_CON, 136, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_CDMATargetMAHOList },
- { &hf_ansi_map_cdmaTargetMeasurementList, BER_CLASS_CON, 134, BER_FLAGS_IMPLTAG, dissect_ansi_map_CDMATargetMeasurementList },
+ { &hf_ansi_map_cdmaTargetMeasurementList, BER_CLASS_CON, 134, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_CDMATargetMeasurementList },
{ &hf_ansi_map_channelData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_ChannelData },
{ &hf_ansi_map_confidentialityModes, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_ConfidentialityModes },
{ &hf_ansi_map_dataKey , BER_CLASS_CON, 215, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_DataKey },
@@ -9585,6 +9585,16 @@ dissect_ansi_map_MEIDValidated(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
}
+
+static int
+dissect_ansi_map_MobilePositionCapability(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_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
static const value_string ansi_map_OriginationIndicator_vals[] = {
{ 0, "not-used" },
{ 1, "prior-agreement" },
@@ -9738,6 +9748,7 @@ static const ber_sequence_t QualificationDirective_U_set[] = {
{ &hf_ansi_map_messageWaitingNotificationCount, BER_CLASS_CON, 92, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MessageWaitingNotificationCount },
{ &hf_ansi_map_messageWaitingNotificationType, BER_CLASS_CON, 145, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MessageWaitingNotificationType },
{ &hf_ansi_map_mobileDirectoryNumber, BER_CLASS_CON, 93, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MobileDirectoryNumber },
+ { &hf_ansi_map_mobilePositionCapability, BER_CLASS_CON, 335, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MobilePositionCapability },
{ &hf_ansi_map_originationIndicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_OriginationIndicator },
{ &hf_ansi_map_originationTriggers, BER_CLASS_CON, 98, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_OriginationTriggers },
{ &hf_ansi_map_pACAIndicator, BER_CLASS_CON, 146, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_PACAIndicator },
@@ -9870,6 +9881,7 @@ static const ber_sequence_t QualificationRequestRes_U_set[] = {
{ &hf_ansi_map_messageWaitingNotificationCount, BER_CLASS_CON, 92, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MessageWaitingNotificationCount },
{ &hf_ansi_map_messageWaitingNotificationType, BER_CLASS_CON, 145, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MessageWaitingNotificationType },
{ &hf_ansi_map_mobileDirectoryNumber, BER_CLASS_CON, 93, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MobileDirectoryNumber },
+ { &hf_ansi_map_mobilePositionCapability, BER_CLASS_CON, 335, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MobilePositionCapability },
{ &hf_ansi_map_originationIndicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_OriginationIndicator },
{ &hf_ansi_map_originationTriggers, BER_CLASS_CON, 98, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_OriginationTriggers },
{ &hf_ansi_map_pACAIndicator, BER_CLASS_CON, 146, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_PACAIndicator },
@@ -10333,6 +10345,7 @@ static const ber_sequence_t RegistrationNotificationRes_U_set[] = {
{ &hf_ansi_map_messageWaitingNotificationCount, BER_CLASS_CON, 92, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MessageWaitingNotificationCount },
{ &hf_ansi_map_messageWaitingNotificationType, BER_CLASS_CON, 145, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MessageWaitingNotificationType },
{ &hf_ansi_map_mobileDirectoryNumber, BER_CLASS_CON, 93, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MobileDirectoryNumber },
+ { &hf_ansi_map_mobilePositionCapability, BER_CLASS_CON, 335, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MobilePositionCapability },
{ &hf_ansi_map_originationIndicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_OriginationIndicator },
{ &hf_ansi_map_originationTriggers, BER_CLASS_CON, 98, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_OriginationTriggers },
{ &hf_ansi_map_pACAIndicator, BER_CLASS_CON, 146, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_PACAIndicator },
@@ -13848,16 +13861,6 @@ dissect_ansi_map_LCS_Client_ID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
-dissect_ansi_map_MobilePositionCapability(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_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-
-
-
-static int
dissect_ansi_map_DTXIndication(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_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -15220,6 +15223,7 @@ static const ber_sequence_t QualificationRequest2Res_U_set[] = {
{ &hf_ansi_map_messageWaitingNotificationCount, BER_CLASS_CON, 92, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MessageWaitingNotificationCount },
{ &hf_ansi_map_messageWaitingNotificationType, BER_CLASS_CON, 145, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MessageWaitingNotificationType },
{ &hf_ansi_map_mobileDirectoryNumber, BER_CLASS_CON, 93, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MobileDirectoryNumber },
+ { &hf_ansi_map_mobilePositionCapability, BER_CLASS_CON, 335, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_MobilePositionCapability },
{ &hf_ansi_map_originationIndicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_OriginationIndicator },
{ &hf_ansi_map_originationTriggers, BER_CLASS_CON, 98, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_OriginationTriggers },
{ &hf_ansi_map_pACAIndicator, BER_CLASS_CON, 146, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ansi_map_PACAIndicator },
@@ -17937,6 +17941,10 @@ void proto_register_ansi_map(void) {
{ "meidValidated", "ansi_map.meidValidated",
FT_NONE, BASE_NONE, NULL, 0,
"ansi_map.MEIDValidated", HFILL }},
+ { &hf_ansi_map_mobilePositionCapability,
+ { "mobilePositionCapability", "ansi_map.mobilePositionCapability",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "ansi_map.MobilePositionCapability", HFILL }},
{ &hf_ansi_map_originationIndicator,
{ "originationIndicator", "ansi_map.originationIndicator",
FT_UINT32, BASE_DEC, VALS(ansi_map_OriginationIndicator_vals), 0,
@@ -18257,10 +18265,6 @@ void proto_register_ansi_map(void) {
{ "lcs-Client-ID", "ansi_map.lcs_Client_ID",
FT_BYTES, BASE_NONE, NULL, 0,
"ansi_map.LCS_Client_ID", HFILL }},
- { &hf_ansi_map_mobilePositionCapability,
- { "mobilePositionCapability", "ansi_map.mobilePositionCapability",
- FT_BYTES, BASE_NONE, NULL, 0,
- "ansi_map.MobilePositionCapability", HFILL }},
{ &hf_ansi_map_dtxIndication,
{ "dtxIndication", "ansi_map.dtxIndication",
FT_BYTES, BASE_NONE, NULL, 0,