aboutsummaryrefslogtreecommitdiffstats
path: root/asn1
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2006-01-03 15:13:26 +0000
committerAnders Broman <anders.broman@ericsson.com>2006-01-03 15:13:26 +0000
commit9d3228610a862c5d8bba52c391b380d0c78dad71 (patch)
tree237e69fa30eacaf68afdca19d4fb9e1fa69c9ce2 /asn1
parent35743cded8aaa02de6c27e2383d204a50c700a9f (diff)
Further asn1 code updates and IE decoding.
svn path=/trunk/; revision=16932
Diffstat (limited to 'asn1')
-rw-r--r--asn1/ansi_map/ansi_map.asn384
-rw-r--r--asn1/ansi_map/ansi_map.cnf73
-rw-r--r--asn1/ansi_map/packet-ansi_map-template.c1046
3 files changed, 1416 insertions, 87 deletions
diff --git a/asn1/ansi_map/ansi_map.asn b/asn1/ansi_map/ansi_map.asn
index 2f66d169f2..f869a079a4 100644
--- a/asn1/ansi_map/ansi_map.asn
+++ b/asn1/ansi_map/ansi_map.asn
@@ -1,4 +1,4 @@
-
+-- $Id:$
MAP-Protocol{ 0 identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-Protocol (4) version5 (5) }
DEFINITIONS ::=
@@ -74,14 +74,20 @@ AuthenticationDirective ::= [PRIVATE 18] SET {
electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
--M 6.5.2.63
- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
--M 6.5.2.81
+ msid MSID OPTIONAL,
+ --
authenticationAlgorithmVersion [77] IMPLICIT AuthenticationAlgorithmVersion,
-- O 6.5.2.7 a
+ authenticationResponseReauthentication [182] IMPLICIT AuthenticationResponseReauthentication,
+ -- O 6.5.2.mT j
authenticationResponseUniqueChallenge [37] IMPLICIT AuthenticationResponseUniqueChallenge OPTIONAL,
-- O 6.5.2.12 b
callHistoryCount [38] IMPLICIT CallHistoryCount OPTIONAL,
-- O 6.5.2.18 c
+ cdmaPrivateLongCodeMask [67] IMPLICIT CDMAPrivateLongCodeMask OPTIONAL,
+ -- O 6.5.2.36 m
carrierDigits [86] IMPLICIT CarrierDigits OPTIONAL,
-- O 6.5.2.28 j
denyAccess [50] IMPLICIT DenyAccess OPTIONAL,
@@ -90,6 +96,12 @@ AuthenticationDirective ::= [PRIVATE 18] SET {
-- O 6.5.2.56
locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
-- O 6.5.2.77 e
+ randomVariableReauthentication [191] IMPLICIT RandomVariableReauthentication OPTIONAL,
+ -- O 6.5.2.uT j
+ mobileStationMIN [184] IMPLICIT MobileStationMIN OPTIONAL,
+ -- O 6.5.2.oC j
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- O 6.5.2.82 n
randomVariableSSD [42] IMPLICIT RandomVariableSSD OPTIONAL,
-- O 6.5.2.103 f
randomVariableUniqueChallenge [43] IMPLICIT RandomVariableUniqueChallenge OPTIONAL,
@@ -100,6 +112,8 @@ AuthenticationDirective ::= [PRIVATE 18] SET {
-- O 6.5.2.116 g
sharedSecretData [46] IMPLICIT SharedSecretData OPTIONAL,
-- O 6.5.2.119 c
+ signalingMessageEncryptionKey [45] IMPLICIT SignalingMessageEncryptionKey OPTIONAL,
+ -- O 6.5.2.120 m
ssdnotShared [52] IMPLICIT SSDNotShared OPTIONAL,
-- O 6.5.2.141 h
updateCount [51] IMPLICIT UpdateCount OPTIONAL
@@ -150,9 +164,9 @@ AuthenticationFailureReport ::= [PRIVATE 18] SET {
-- (Serving) M 6.5.2.146
callHistoryCount [38] IMPLICIT CallHistoryCount OPTIONAL,
-- O 6.5.2.18 a
- callHistoryCountExpected [79] IMPLICIT CallHistoryCountExpected,
+ callHistoryCountExpected [79] IMPLICIT CallHistoryCountExpected OPTIONAL,
-- O 6.5.2.19 a
- mscid [21] IMPLICIT MSCID,
+ mscid [21] IMPLICIT MSCID OPTIONAL,
-- (Serving MSC) O 6.5.2.82 b
reportType2 [44] IMPLICIT ReportType,
-- M 6.5.2.112 c
@@ -207,7 +221,7 @@ AuthenticationRequest ::= [PRIVATE 18] SET {
-- M 6.5.2.145
systemCapabilities [49] IMPLICIT SystemCapabilities,
-- (Serving) M 6.5.2.146
- authenticationData [161] IMPLICIT AuthenticationData,
+ authenticationData [161] IMPLICIT AuthenticationData OPTIONAL,
-- O 6.5.2.9 a
authenticationResponse [35] IMPLICIT AuthenticationResponse,
-- O 6.5.2.10 b
@@ -290,21 +304,30 @@ AuthenticationRequestRes ::= [PRIVATE 18] SET {
AuthenticationStatusReport ::= [PRIVATE 18] SET {
electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
-- M 6.5.2.63
- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
-- M 6.5.2.81
+ msid MSID OPTIONAL,
+ --
systemCapabilities [49] IMPLICIT SystemCapabilities,
-- (Serving) M 6.5.2.146
countUpdateReport [138] IMPLICIT CountUpdateReport OPTIONAL,
-- O 6.5.2.52 a
mscid [21] IMPLICIT MSCID OPTIONAL,
-- (Serving) O 6.5.2.82 e
+ reauthenticationReport [192] IMPLICIT ReauthenticationReport OPTIONAL,
+ -- O 6.5.2.vT e
senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
-- O 6.5.2.116 b
+ serviceIndicator [193] IMPLICIT ServiceIndicator OPTIONAL,
+ -- O 6.5.2.wB e
+ signalingMessageEncryptionReport [194] IMPLICIT SignalingMessageEncryptionReport OPTIONAL,
+ -- O 6.5.2.xB h
ssdUpdateReport [156] IMPLICIT SSDUpdateReport OPTIONAL,
-- O 6.5.2.142 c
uniqueChallengeReport [124] IMPLICIT UniqueChallengeReport OPTIONAL,
-- O 6.5.2.162 d
- ...
+ voicePrivacyReport [196] IMPLICIT VoicePrivacyReport OPTIONAL
+ -- O 6.5.2.zB g
}
-- AuthenticationStatusReport RETURN RESULT Parameters
AuthenticationStatusReportRes ::= [PRIVATE 18] SET {
@@ -338,13 +361,16 @@ AuthenticationStatusReportRes ::= [PRIVATE 18] SET {
BaseStationChallenge ::= [PRIVATE 18] SET {
electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
-- M 6.5.2.63
- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
+-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber,
-- M 6.5.2.81
+ msid MSID OPTIONAL,
+ --
randomVariableBaseStation [41] IMPLICIT RandomVariableBaseStation,
-- M 6.5.2.102
senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
-- O 6.5.2.116 a
- ...
+ serviceIndicator [193] IMPLICIT ServiceIndicator OPTIONAL
+ -- O 6.5.2.wB b
}
-- BaseStationChallenge RETURN RESULT Parameters
BaseStationChallengeRes ::= [PRIVATE 18] SET {
@@ -608,9 +634,11 @@ FacilitiesReleaseRes ::= [PRIVATE 18] SET {
FeatureRequest ::= [PRIVATE 18] SET {
billingID [1] IMPLICIT BillingID,
-- M 6.5.2.16
+ digits [4] IMPLICIT Digits OPTIONAL,
+ -- (Dialed) M 6.5.2.58
electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber,
-- M 6.5.2.63
- interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
+ interMSCCircuitID [6] IMPLICIT InterMSCCircuitID,
-- M 6.5.2.72
interSwitchCount [7] IMPLICIT InterSwitchCount,
-- M 6.5.2.73
@@ -618,8 +646,14 @@ FeatureRequest ::= [PRIVATE 18] SET {
-- M 6.5.2.81
servingCellID [2] IMPLICIT ServingCellID,
-- M 6.5.2.117 a
- targetCellID [3] IMPLICIT TargetCellID OPTIONAL,
- -- O 6.5.2.148 b
+ callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
+ -- O 6.5.2.bw c
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ -- O 6.5.2.21 c
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ -- O 6.5.2.22 c
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 c
cdmaCallMode [62] IMPLICIT CDMACallMode OPTIONAL,
-- O 6.5.2.29 c, d, e
cdmaChannelData [63] IMPLICIT CDMAChannelData OPTIONAL,
@@ -638,28 +672,46 @@ FeatureRequest ::= [PRIVATE 18] SET {
-- O 6.5.2.45 h
channelData [5] IMPLICIT ChannelData OPTIONAL,
-- (Serving) O 6.5.2.47 i
+ conferenceCallingIndicator [137] IMPLICIT ConferenceCallingIndicator OPTIONAL,
+ -- O 6.5.2.49
confidentialityModes [39] IMPLICIT ConfidentialityModes OPTIONAL,
-- (Desired) O 6.5.2.50 j
handoffReason [30] IMPLICIT HandoffReason OPTIONAL,
-- O 6.5.2.70 k
handoffState [164] IMPLICIT HandoffState OPTIONAL,
-- O 6.5.2.71 l
+ mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
+ -- O 6.5.2.80 d
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- (Serving) O 6.5.2.82 e
+ mSCIdentificationNumber [94] IMPLICIT MSCIdentificationNumber OPTIONAL,
+ -- O 6.5.2.83
msLocation [70] IMPLICIT MSLocation OPTIONAL,
-- O 6.5.2.84 c
+ oneTimeFeatureIndicator [97] IMPLICIT OneTimeFeatureIndicator OPTIONAL,
+ -- O 6.5.2.88 f
+ pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
+ -- O 6.5.2.93
nampsCallMode [165] IMPLICIT NAMPSCallMode OPTIONAL,
-- O 6.5.2.85 e, m
nampsChannelData [74] IMPLICIT NAMPSChannelData OPTIONAL,
-- (Serving) O 6.5.2.86 n
+ senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
+ -- O 6.5.2.116
signalingMessageEncryptionKey [45] IMPLICIT SignalingMessageEncryptionKey OPTIONAL,
-- O 6.5.2.120 j
stationClassMark [18] IMPLICIT StationClassMark OPTIONAL,
-- O 6.5.2.143 i, o
+ targetCellID [3] IMPLICIT TargetCellID OPTIONAL,
+ -- O 6.5.2.148 b
tdmaBurstIndicator [31] IMPLICIT TDMABurstIndicator OPTIONAL,
-- (Serving) O 6.5.2.151 o
tdmaCallMode [29] IMPLICIT TDMACallMode OPTIONAL,
-- O 6.5.2.152 e, p
tdmaChannelData [28] IMPLICIT TDMAChannelData OPTIONAL,
-- (Serving) O 6.5.2.153 o
+ transactionCapability [123] IMPLICIT TransactionCapability OPTIONAL,
+ -- 6.5.2.160
voicePrivacyMask [48] IMPLICIT VoicePrivacyMask OPTIONAL
-- O 6.5.2.166 q
}
@@ -685,6 +737,8 @@ FeatureRequestRes ::= [PRIVATE 18] SET {
-- O 6.5.2.49 e
digits [4] IMPLICIT Digits OPTIONAL,
-- (Dialed) O 6.5.2.58 f
+ digits-Destination [4] IMPLICIT Digits OPTIONAL,
+ -- (Destination) O 6.5.2.58 l
displayText [244] IMPLICIT DisplayText OPTIONAL,
-- O 6.5.2.bx l, m
displayText2 [299] IMPLICIT DisplayText2 OPTIONAL,
@@ -1602,6 +1656,8 @@ LocationRequest ::= [PRIVATE 18] SET {
-- (Originating) O 6.5.2.93 c
redirectingNumberDigits [100] IMPLICIT RedirectingNumberDigits OPTIONAL,
-- O 6.5.2.107 a
+ redirectingPartyName [245] IMPLICIT RedirectingPartyName OPTIONAL,
+ -- O 6.5.2.by
redirectingSubaddress [102] IMPLICIT RedirectingSubaddress OPTIONAL,
-- O 6.5.2.109 a
senderIdentificationNumber [103] IMPLICIT SenderIdentificationNumber OPTIONAL,
@@ -2100,6 +2156,8 @@ RegistrationNotification ::= [PRIVATE 18] SET {
-- (VLR) O 6.5.2.64 c
locationAreaID [33] IMPLICIT LocationAreaID OPTIONAL,
-- O 6.5.2.77 d
+ msc-Address [284] IMPLICIT MSC-Address OPTIONAL,
+ -- O 6.5.2.dnC l
pc-ssn [32] IMPLICIT PC-SSN OPTIONAL,
--(Serving MSC or VLR) O 6.5.2.93 e
receivedSignalQuality [72] IMPLICIT ReceivedSignalQuality OPTIONAL,
@@ -2443,11 +2501,14 @@ SMSDeliveryPointToPoint ::= [PRIVATE 18] SET {
-- Exchanged by MSID
msid MSID OPTIONAL,
--6.5.2.bv
--- NewlyAssignedMIN O 6.5.2.rB j
--- NewlyAssignedIMSI O 6.5.2.dqB j
+ newlyAssignedMIN [187] IMPLICIT NewlyAssignedMIN OPTIONAL,
+ -- O 6.5.2.rB j
+ newlyAssignedIMSI [287] IMPLICIT NewlyAssignedIMSI OPTIONAL,
+ -- O 6.5.2.dqB j
newMINExtension [328] IMPLICIT NewMINExtension OPTIONAL,
-- O 6.5.2.ff n
--- ServiceIndicator O 6.5.2.wB
+ serviceIndicator [193] IMPLICIT ServiceIndicator OPTIONAL,
+ -- O 6.5.2.wB
sms-ChargeIndicator [106] IMPLICIT SMS-ChargeIndicator OPTIONAL,
-- O 6.5.2.126 b
sms-DestinationAddress [107] IMPLICIT SMS-DestinationAddress OPTIONAL,
@@ -2464,17 +2525,30 @@ SMSDeliveryPointToPoint ::= [PRIVATE 18] SET {
-- O 6.5.2.133 f
sms-OriginalOriginatingSubaddress [113] IMPLICIT SMS-OriginalOriginatingSubaddress OPTIONAL,
-- O 6.5.2.134 b
- sms-OriginatingAddress [114] IMPLICIT SMS-OriginatingAddress OPTIONAL
+ sms-OriginatingAddress [114] IMPLICIT SMS-OriginatingAddress OPTIONAL,
-- O 6.5.2.135 g
--- TemporaryReferenceNumber O 6.5.2.yC
+ temporaryReferenceNumber [195] IMPLICIT TemporaryReferenceNumber OPTIONAL
+ -- O 6.5.2.yC
}
-- SMSDeliveryPointToPoint RETURN RESULT Parameters
SMSDeliveryPointToPointRes ::= [PRIVATE 18] SET {
+ authorizationDenied [13] IMPLICIT AuthorizationDenied OPTIONAL,
+ -- O 6.5.2.13 h
+ denyAccess [50] IMPLICIT DenyAccess OPTIONAL,
+ -- O 6.5.2.54 c
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 d
+ mobileStationMSID MobileStationMSID OPTIONAL,
+ -- O 6.5.2.oC e
+ mscid [21] IMPLICIT MSCID,
+ -- O 6.5.2.82 f
sms-BearerData [105] IMPLICIT SMS-BearerData OPTIONAL,
-- O 6.5.2.124 a
- sms-CauseCode [153] IMPLICIT SMS-CauseCode OPTIONAL
+ sms-CauseCode [153] IMPLICIT SMS-CauseCode OPTIONAL,
-- O 6.5.2.125 b
+ systemCapabilities [49] IMPLICIT SystemCapabilities OPTIONAL
+ -- O 6.5.2.146 g
}
-- 6.4.2.44 SMSNotification
@@ -2512,7 +2586,8 @@ SMSRequest ::= [PRIVATE 18] SET {
-- O 6.5.2.63
mobileDirectoryNumber [93] IMPLICIT MobileDirectoryNumber OPTIONAL,
-- O 6.5.2.80 e
--- ServiceIndicator O 6.5.2.wB d
+ serviceIndicator [193] IMPLICIT ServiceIndicator OPTIONAL,
+ -- O 6.5.2.wB d
-- O 6.5.2.63 a
sms-NotificationIndicator [109] IMPLICIT SMS-NotificationIndicator OPTIONAL,
-- O 6.5.2.130 b
@@ -2548,6 +2623,14 @@ TransferToNumberRequest ::= [PRIVATE 18] SET {
-- (MSC) M 6.5.2.147
billingID [1] IMPLICIT BillingID,
-- (Originating) O 6.5.2.16 a
+ callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
+ -- O 6.5.2.bw r, u, v
+ callingPartyNumberDigits1 [80] IMPLICIT CallingPartyNumberDigits1 OPTIONAL,
+ -- O 6.5.2.21 c, t
+ callingPartyNumberDigits2 [81] IMPLICIT CallingPartyNumberDigits2 OPTIONAL,
+ -- O 6.5.2.22 c, t
+ callingPartySubaddress [84] IMPLICIT CallingPartySubaddress OPTIONAL,
+ -- O 6.5.2.25 c
cdmaServiceOption [175] IMPLICIT CDMAServiceOption OPTIONAL,
-- O 6.5.2.f
groupInformation [163] GroupInformation OPTIONAL,
@@ -4107,6 +4190,69 @@ DropServiceRes ::= [PRIVATE 18] SET {
billingID [1] IMPLICIT BillingID OPTIONAL
-- O 6.5.2.16 a
}
+
+-- 6.4.2.CC OTASPRequest
+OTASPRequest ::= [PRIVATE 18] SET {
+ ctionCode [128] IMPLICIT ActionCode OPTIONAL,
+ -- O 6.5.2.2 a
+ aKeyProtocolVersion [181] IMPLICIT AKeyProtocolVersion OPTIONAL,
+ -- O 6.5.2.lB b
+ authenticationData [161] IMPLICIT AuthenticationData OPTIONAL,
+ -- O 6.5.2.9 c
+ authenticationResponse [35] IMPLICIT AuthenticationResponse OPTIONAL,
+ -- O 6.5.2.10 c
+ callHistoryCount [38] IMPLICIT CallHistoryCount OPTIONAL,
+ -- O 6.5.2.18 c
+ electronicSerialNumber [9] IMPLICIT ElectronicSerialNumber OPTIONAL,
+ -- O 6.5.2.63 d
+ msid MSID OPTIONAL,
+ -- O 6.5.2.81 e, d
+ mobileStationMSID MobileStationMSID OPTIONAL,
+ -- O 6.5.2.oC f
+ mobileStationPartialKey [185] IMPLICIT MobileStationPartialKey OPTIONAL,
+ -- O 6.5.2.pB g
+ mscid [21] IMPLICIT MSCID OPTIONAL,
+ -- O 6.5.2.64 h
+ newlyAssignedMSID NewlyAssignedMSID OPTIONAL,
+ --O 6.5.2.rB i
+ randomVariable [40] IMPLICIT RandomVariable OPTIONAL,
+ -- O 6.5.2.101 c
+ randomVariableBaseStation [41] IMPLICIT RandomVariableBaseStation,
+ -- O 6.5.2.102 m
+ serviceIndicator [193] IMPLICIT ServiceIndicator OPTIONAL,
+ -- O 6.5.2.wB j
+ systemCapabilities [49] IMPLICIT SystemCapabilities OPTIONAL,
+ -- O 6.5.2.146 k
+ terminalType [47] IMPLICIT TerminalType OPTIONAL
+ -- O 6.5.2.154
+ }
+-- Table 6.4.2.CCy OTASPRequest RETURN RESULT Parameters
+OTASPRequestRes ::= [PRIVATE 18] SET {
+ aKeyProtocolVersion [181] IMPLICIT AKeyProtocolVersion OPTIONAL,
+ -- O 6.5.2.lB a
+ authenticationResponseBaseStation [36] IMPLICIT AuthenticationResponseBaseStation OPTIONAL,
+ -- O 6.5.2.11 g
+ baseStationPartialKey [183] IMPLICIT BaseStationPartialKey OPTIONAL,
+ -- O 6.5.2.nB b
+ denyAccess [50] IMPLICIT DenyAccess OPTIONAL,
+ -- O 6.5.2.54 c
+ modulusValue [186] IMPLICIT ModulusValue OPTIONAL,
+ -- O 6.5.2.qB b
+ otasp-ResultCode [189] IMPLICIT OTASP-ResultCode OPTIONAL,
+ -- O 6.5.2.sB d
+ primitiveValue [190] IMPLICIT PrimitiveValue OPTIONAL,
+ -- O 6.5.2.tB b
+ signalingMessageEncryptionReport [194] IMPLICIT SignalingMessageEncryptionReport OPTIONAL,
+ -- O 6.5.2.xB e
+ ssdUpdateReport [156] IMPLICIT SSDUpdateReport OPTIONAL,
+ -- O 6.5.2.142 f
+ uniqueChallengeReport [124] IMPLICIT UniqueChallengeReport OPTIONAL,
+ -- O 6.5.2.162 f
+ voicePrivacyReport [196] IMPLICIT VoicePrivacyReport OPTIONAL
+ -- O 6.5.2.zB e
+ }
+
+
-- Parameters
-- 6.5.2.1
-- 1 0 0 1 0 1 0 0 (0x94)
@@ -4679,7 +4825,9 @@ MobileDirectoryNumber ::= DigitsType
-- 6.5.2.81
-- 1 0 0 0 1 0 0 0 (0x88)(0x8)
-MobileIdentificationNumber ::= OCTET STRING
+MobileIdentificationNumber ::= MINType
+--N.S0011-0 v 1.0
+-- b. Refer to the MINType parameter type (see 6.5.3.u1) for notes and field encoding.
-- 6.5.2.82
-- 1 0 0 1 0 1 0 1 (0x95)
@@ -5209,15 +5357,16 @@ SystemAccessData ::= OCTET STRING
-- 1 0 0 1 1 1 1 1 (0x9f) (0x9c)
-- 0 0 1 0 0 0 1 0 (0x22)(34)
SystemAccessType ::= ENUMERATED {
- not-used ( 0 ),
- unspecified ( 1 ),
- flash-request ( 2 ),
- autonomous-registration ( 3 ),
- call-origination ( 4 ),
- page-response ( 5 ),
- no-access ( 6 ),
- power-down-registration ( 7 ),
- sms-page-response ( 8 ),
+ not-used (0),
+ unspecified (1),
+ flash-request (2),
+ autonomous-registration (3),
+ call-origination (4),
+ page-response (5),
+ no-access (6),
+ power-down-registration (7),
+ sms-page-response (8),
+ otasp (9),
...
}
@@ -5488,6 +5637,7 @@ TDMATerminalCapability ::= OCTET STRING
-- 1 0 0 1 1 1 1 1 (0x9f)
-- 1 0 0 0 0 0 0 1 (0x81)
-- 0 0 1 1 0 1 0 0 (0x34)(180)
+-- last TSB76 assigned identifier)
TDMAVoiceCoder ::= OCTET STRING
@@ -5845,27 +5995,26 @@ MSID ::= CHOICE {
-- 0 1 1 1 0 0 1 0 (0x72)(242)
IMSI ::= OCTET STRING
--- 6.5.2.bw
+-- 6.5.2.bw N.S0012-0 v 1.0
-- 1 0 0 1 1 1 1 1 (0x9f)
-- 1 0 0 0 0 0 0 1 (0x81)
-- 0 1 1 1 0 0 1 1 (0x73)(243)
CallingPartyName ::= OCTET STRING
-
--- 6.5.2.bx
+-- 6.5.2.bx N.S0012-0 v 1.0
-- 1 0 0 1 1 1 1 1 (0x9f)
-- 1 0 0 0 0 0 0 1 (0x81)
-- 0 1 1 1 0 1 0 0 (0x74)(244)
DisplayText ::= OCTET STRING
--- 6.5.2.by
+-- 6.5.2.by N.S0012-0 v 1.0
-- 1 0 0 1 1 1 1 1 (0x9f)
-- 1 0 0 0 0 0 0 1 (0x81)
-- 0 1 1 1 0 1 0 1 (0x75)(245)
RedirectingPartyName ::= OCTET STRING
--- 6.5.2.bz
+-- 6.5.2.bz N.S0012-0 v 1.0
-- 1 0 0 1 1 1 1 1 (0x9f)
-- 1 0 0 0 0 0 0 1 (0x81)
-- 0 1 1 1 0 1 1 0 (0x76)(246)
@@ -6223,6 +6372,11 @@ TriggerType ::= ENUMERATED {
t-Routable (68),
t-Answer (69),
t-Disconnect (70),
+
+ reserved-for-TDP-R-DP-Type-value (220),
+ reserved-for-TDP-N-DP-Type-value (221),
+ reserved-for-EDP-R-DP-Type-value (222),
+ reserved-for-EDP-N-DP-Type-value (223),
...
}
-- 1 0 1 1 1 1 1 1 (0x9f) (0xbf)
@@ -6433,8 +6587,6 @@ MSIDUsage ::= OCTET STRING
-- 0 1 0 0 1 0 0 0 (0x48)(328)
-- (3xx)
NewMINExtension ::= MINType
--- XXX ???
-MINType ::= OCTET STRING
-- 6.5.2.ge (Misc. 10.9)
-- 1 0 0 1 1 1 1 1 (0x9f)
@@ -6481,9 +6633,9 @@ Range ::= INTEGER
-- 0 1 1 0 0 0 1 1 (0x63)(355)
CallingPartyCategory ::= OCTET STRING
---The CallingPartyCategory (CPC) parameter identifies the Calling Party’s Category. This
---parameter is based on the Calling Party’s Category parameter defined in Section 3.11 of
---ITU-T Q.763-1997 and includes the ”reserved for national use” values.
+--The CallingPartyCategory (CPC) parameter identifies the Calling Party's Category. This
+--parameter is based on the Calling Party's Category parameter defined in Section 3.11 of
+--ITU-T Q.763-1997 and includes the "reserved for national use" values.
-- 6.5.2.gm
@@ -6513,15 +6665,163 @@ CDMA2000HandoffResponseIOSData ::= OCTET STRING
-- 0 1 1 0 1 0 0 1 (0x69)(361)
CDMAServiceOptionConnectionIdentifier ::= OCTET STRING
--- 6.5.2.wB
--- FIX ME
-ServiceIndicator ::= OCTET STRING
+-- 6.5.2.lB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 0 1 0 1 (0x35)(181)
+AKeyProtocolVersion ::= OCTET STRING
+
+
+-- 6.5.2.mT N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 0 1 1 0 (0x36)(182)
+AuthenticationResponseReauthentication ::= OCTET STRING
+
+-- 6.5.2.nB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 0 1 1 1 (0x37)(183)
+BaseStationPartialKey ::= OCTET STRING
+
+-- 6.5.2.oC N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 1 0 0 0 (0x38)(184)
+MobileStationMIN ::= MINType
+-- b. Refer to the MINType parameter type (see 6.5.3.u1) for notes and field encoding.
+
+-- 6.5.2.pB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 1 0 0 1 (0x39)(185)
+MobileStationPartialKey ::= OCTET STRING
+
+-- 6.5.2.qB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 1 0 1 0 (0x3a)(186)
+ModulusValue ::= OCTET STRING
+
+-- 6.5.2.rB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 1 0 1 1 (0x3b)(187)
+NewlyAssignedMIN ::= MINType
+
+
+-- 6.5.2.sB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 1 1 0 1 (0x3d)(189)
+OTASP-ResultCode::= OCTET STRING
+
+-- 6.5.2.tB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 1 1 1 0 (0x3e)(190)
+PrimitiveValue::= OCTET STRING
+
+-- 6.5.2.uT N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 0 1 1 1 1 1 1 (0x3f)(191)
+RandomVariableReauthentication::= OCTET STRING
+
+-- 6.5.2.vT N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 0 0 0 0 (0x40)(192)
+ReauthenticationReport::= OCTET STRING
+
+-- 6.5.2.wB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 0 0 0 1 (0x41)(193)
+ServiceIndicator::= OCTET STRING
+
+-- 6.5.2.xB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 0 0 1 0 (0x42)(194)
+SignalingMessageEncryptionReport::= OCTET STRING
+
+
+-- 6.5.2.yC N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 0 0 1 1 (0x43)(195)
+TemporaryReferenceNumber ::= OCTET STRING
+
+-- 6.5.2.zB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 0 1 (0x81)
+-- 0 1 0 0 0 1 0 0 (0x44)(196)
+VoicePrivacyReport::= OCTET STRING
+
+-- 6.5.2.dnC N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 1 1 0 0 (0x1c)(284)
+MSC-Address::= DigitsType
+
+-- 6.5.2.dpC N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 1 1 1 0 (0x1e)(286)
+MobileStationIMSI ::= IMSIType
+
+-- 6.5.2.dqB N.S0011-0 v 1.0
+-- 1 0 0 1 1 1 1 1 (0x9f)
+-- 1 0 0 0 0 0 1 0 (0x82)
+-- 0 0 0 1 1 1 1 1 (0x1f)(287)
+NewlyAssignedIMSI ::= IMSIType
+
+-- 6.5.2.adC MobileStationMSID N.S0011-0 v 1.0
+--The MobileStationMSID (MS_MSID) identifies the MIN or the IMSI value stored in the
+--MS's permanent memory at an OTASP call origination. The MS_MSID CHOICE is not
+--explicitly encoded with a parameter ID and length.
+
+MobileStationMSID ::= CHOICE {
+ mobileStationMIN [184] IMPLICIT MobileStationMIN,
+ -- O 6.5.2.oC
+ mobileStationIMSI [286] IMPLICIT MobileStationIMSI
+ -- O 6.5.2.dpC
+ }
+
+-- 6.5.2.aeB NewlyAssignedMSID
+--The NewlyAssignedMSID (NEWMSID) identifies the MIN or the IMSI value that may be
+--assigned following the successful completion of the OTASP process. The MS_MSID
+--CHOICE is not explicitly encoded with a parameter ID and length.
+
+NewlyAssignedMSID ::= CHOICE {
+ newlyAssignedMIN [187] IMPLICIT NewlyAssignedMIN,
+ -- O 6.5.2.rB
+ newlyAssignedIMSI [287] IMPLICIT NewlyAssignedIMSI
+ -- O 6.5.2.dqB
+ }
+
+--Notes:
+--a. Parameters with references ending with a "B" in them, such as "6.5.2.qB" are
+--common to BOTH CDMA and TDMA OTASP.
+--b. Parameters with references ending with a "C" in them, such as "6.5.2.oC" are
+--unique to CDMA OTASP.
+--c. Parameters with references ending with a "T" in them, such as "6.5.2.uT" are
+--unique to TDMA OTASP.
+
+-- 6.5.3 Parameter Type Definitions
-- 6.5.3.2
DigitsType ::= OCTET STRING
-- 6.5.3.13
Subaddress ::= OCTET STRING
+-- 6.5.3.u1 MINType
+MINType ::= OCTET STRING
+
+-- 6.5.3.u2 IMSIType
+
+IMSIType ::= OCTET STRING
END \ No newline at end of file
diff --git a/asn1/ansi_map/ansi_map.cnf b/asn1/ansi_map/ansi_map.cnf
index f61e5ca184..aa8c12d6cf 100644
--- a/asn1/ansi_map/ansi_map.cnf
+++ b/asn1/ansi_map/ansi_map.cnf
@@ -1,7 +1,7 @@
# ansi_map.cnf
# ansi_map conformation file
# Copyright 2005 Anders Broman
-# $Id$
+# $Id:$
#.EXPORTS
@@ -40,6 +40,17 @@ VAL_PTR = &OperationCode
proto_tree_add_item(tree, hf_ansi_map_op_code_fam, tvb, offset-2,1,FALSE);
proto_tree_add_item(tree, hf_ansi_map_op_code, tvb, offset-1,1,FALSE);
+#.FN_PARS MINType
+
+VAL_PTR = &parameter_tvb
+
+#.FN_BODY MINType
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_min_type(parameter_tvb,pinfo,tree);
+ }
+
#.FN_PARS DigitsType
VAL_PTR = &parameter_tvb
@@ -50,8 +61,68 @@ VAL_PTR = &parameter_tvb
if (parameter_tvb){
dissect_ansi_map_digits_type(parameter_tvb,pinfo,tree);
}
+
+#.FN_PARS OriginationTriggers
+VAL_PTR = &parameter_tvb
+
+#.FN_BODY OriginationTriggers
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_originationtriggers(parameter_tvb,pinfo,tree);
+ }
+
+#.FN_PARS TriggerCapability
+VAL_PTR = &parameter_tvb
+
+#.FN_BODY TriggerCapability
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_triggercapability(parameter_tvb,pinfo,tree);
+ }
+
+#.FN_PARS BillingID
+VAL_PTR = &parameter_tvb
+
+#.FN_BODY BillingID
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_billingid(parameter_tvb,pinfo,tree);
+ }
+
+#.FN_PARS MSCID
+VAL_PTR = &parameter_tvb
+
+#.FN_BODY MSCID
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_mscid(parameter_tvb,pinfo,tree);
+ }
+
+
+#.FN_PARS TransactionCapability
+VAL_PTR = &parameter_tvb
+
+#.FN_BODY TransactionCapability
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb){
+ dissect_ansi_map_transactioncapability(parameter_tvb,pinfo,tree);
+ }
#.TYPE_ATTR
+ActionCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ActionCode_vals)
ControlChannelMode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ControlChannelMode_vals)
ServiceRedirectionCause TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ServiceRedirectionCause_vals)
+SMS-AccessDeniedReason TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SMS_AccessDeniedReason_vals)
+SMS_CauseCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ansi_map_SMS_CauseCode_vals)
+TDMABandwidth TYPE = FT_UINT8 DISPLAY = BASE_DEC BITMASK = 0x0f STRINGS = VALS(ansi_map_TDMABandwidth_vals)
+TDMAServiceCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_TDMAServiceCode_vals)
+OTASP-ResultCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_OTASP_ResultCode_vals)
+ServiceIndicator TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ServiceIndicator_vals)
+SignalingMessageEncryptionReport TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SMEReport_vals)
+VoicePrivacyReport TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_VoicePrivacyReport_vals)
#.END
diff --git a/asn1/ansi_map/packet-ansi_map-template.c b/asn1/ansi_map/packet-ansi_map-template.c
index 4edaedf772..96c537145d 100644
--- a/asn1/ansi_map/packet-ansi_map-template.c
+++ b/asn1/ansi_map/packet-ansi_map-template.c
@@ -7,7 +7,7 @@
*
* Copyright 2005, Anders Broman <anders.broman@ericsson.com>
*
- * $Id$
+ * $Id:$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -46,6 +46,22 @@
* Authentication Enhancements
* 3GPP2 N.S0014-0 v1.0 IS-778
*
+ * Features In CDMA
+ * 3GPP2 N.S0010-0 v1.0 IS-735
+ *
+ * OTASP and OTAPA
+ * 3GPP2 N.S0011-0 v1.0 IS-725-A
+ *
+ * Circuit Mode Services
+ * 3GPP2 N.S0008-0 v1.0 IS-737
+ * XXX SecondInterMSCCircuitID not implemented, parameter ID conflicts with ISLP Information!
+ *
+ * IMSI
+ * 3GPP2 N.S0009-0 v1.0 IS-751
+ *
+ * WIN Phase 1
+ * 3GPP2 N.S0013-0 v1.0 IS-771
+ *
* DCCH (Clarification of Audit Order with Forced
* Re-Registration in pre-TIA/EIA-136-A Implementation
* 3GPP2 A.S0017-B IS-730
@@ -56,6 +72,19 @@
* WIN Phase 2
* 3GPP2 N.S0004-0 v1.0 IS-848
*
+ * TIA/EIA-41-D Pre-Paid Charging
+ * 3GPP2 N.S0018-0 v1.0 IS-826
+ *
+ * User Selective Call Forwarding
+ * 3GPP2 N.S0021-0 v1.0 IS-838
+ *
+ *
+ * Answer Hold
+ * 3GPP2 N.S0022-0 v1.0 IS-837
+ *
+ * UIM
+ * 3GPP2 N.S0003
+ *
*/
#ifdef HAVE_CONFIG_H
@@ -98,11 +127,69 @@ static int hf_ansi_map_digits_enc = -1;
static int hf_ansi_map_np = -1;
static int hf_ansi_map_nr_digits = -1;
static int hf_ansi_map_bcd_digits = -1;
+static int hf_ansi_map_trans_cap_prof = -1;
+static int hf_ansi_map_trans_cap_busy = -1;
+static int hf_ansi_map_trans_cap_ann = -1;
+static int hf_ansi_map_trans_cap_rui = -1;
+static int hf_ansi_map_trans_cap_spini = -1;
+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_trans_cap_tl = -1;
+static int hf_ansi_map_MarketID = -1;
+static int hf_ansi_map_swno = -1;
+static int hf_ansi_map_idno = -1;
+static int hf_ansi_map_segcount = -1;
+static int hf_ansi_map_originationtriggers_all = -1;
+static int hf_ansi_map_originationtriggers_local = -1;
+static int hf_ansi_map_originationtriggers_ilata = -1;
+static int hf_ansi_map_originationtriggers_olata = -1;
+static int hf_ansi_map_originationtriggers_int = -1;
+static int hf_ansi_map_originationtriggers_wz = -1;
+static int hf_ansi_map_originationtriggers_unrec = -1;
+static int hf_ansi_map_originationtriggers_rvtc = -1;
+static int hf_ansi_map_originationtriggers_star = -1;
+static int hf_ansi_map_originationtriggers_ds = -1;
+static int hf_ansi_map_originationtriggers_pound = -1;
+static int hf_ansi_map_originationtriggers_dp = -1;
+static int hf_ansi_map_originationtriggers_pa = -1;
+static int hf_ansi_map_originationtriggers_nodig = -1;
+static int hf_ansi_map_originationtriggers_onedig = -1;
+static int hf_ansi_map_originationtriggers_twodig = -1;
+static int hf_ansi_map_originationtriggers_threedig = -1;
+static int hf_ansi_map_originationtriggers_fourdig = -1;
+static int hf_ansi_map_originationtriggers_fivedig = -1;
+static int hf_ansi_map_originationtriggers_sixdig = -1;
+static int hf_ansi_map_originationtriggers_sevendig = -1;
+static int hf_ansi_map_originationtriggers_eightdig = -1;
+static int hf_ansi_map_originationtriggers_ninedig = -1;
+static int hf_ansi_map_originationtriggers_tendig = -1;
+static int hf_ansi_map_originationtriggers_elevendig = -1;
+static int hf_ansi_map_originationtriggers_thwelvedig = -1;
+static int hf_ansi_map_originationtriggers_thirteendig = -1;
+static int hf_ansi_map_originationtriggers_fourteendig = -1;
+static int hf_ansi_map_originationtriggers_fifteendig = -1;
+static int hf_ansi_map_triggercapability_init = -1;
+static int hf_ansi_map_triggercapability_kdigit = -1;
+static int hf_ansi_map_triggercapability_all = -1;
+static int hf_ansi_map_triggercapability_rvtc = -1;
+static int hf_ansi_map_triggercapability_oaa = -1;
+static int hf_ansi_map_triggercapability_oans = -1;
+static int hf_ansi_map_triggercapability_odisc = -1;
+static int hf_ansi_map_triggercapability_ona = -1;
#include "packet-ansi_map-hf.c"
/* Initialize the subtree pointers */
static gint ett_ansi_map = -1;
+static gint ett_mintype = -1;
+static gint ett_digitstype = -1;
+static gint ett_billingid = -1;
+static gint ett_mscid = -1;
+static gint ett_originationtriggers = -1;
+static gint ett_transactioncapability = -1;
+
#include "packet-ansi_map-ett.c"
/* Global variables */
@@ -223,21 +310,6 @@ const value_string ansi_map_opr_code_strings[] = {
{ 100, "Drop Service" },
{ 0, NULL },
};
-/*
- * 6.5.2.2 ActionCode
- * Table 114 ActionCode value
- */
-static const value_string ansi_map_ActionCode_vals[] = {
- { 0, "Not used" },
- { 1, "Continue processing" },
- { 2, "Disconnect call" },
- { 3, "Disconnect call leg" },
- { 4, "Conference Calling Drop Last Party" },
- { 5, "Bridge call leg(s) to conference call" },
- { 6, "Drop call leg on busy or routing failure" },
- { 7, "Disconnect all call legs" },
- { 0, NULL }
-};
static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
static int dissect_returnData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
@@ -254,6 +326,12 @@ static dgt_set_t Dgt_tbcd = {
'0','1','2','3','4','5','6','7','8','9','?','B','C','*','#'
}
};
+static dgt_set_t Dgt1_9_bcd = {
+ {
+ /* 0 1 2 3 4 5 6 7 8 9 a b c d e */
+ '0','1','2','3','4','5','6','7','8','9','?','?','?','?','?'
+ }
+};
/* Assumes the rest of the tvb contains the digits to be turned into a string
*/
static char*
@@ -355,6 +433,19 @@ static const value_string ansi_map_np_vals[] = {
{ 0, NULL }
};
+static void
+dissect_ansi_map_min_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){
+ char *digit_str;
+ int offset = 0;
+ proto_item *item;
+ proto_tree *subtree;
+
+ item = get_ber_last_created_item();
+ subtree = proto_item_add_subtree(item, ett_mintype);
+
+ digit_str = unpack_digits2(tvb, offset, &Dgt1_9_bcd);
+ proto_tree_add_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, digit_str);
+}
static void
dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){
@@ -362,20 +453,25 @@ dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
guint8 octet;
int offset = 0;
char *digit_str;
+ proto_item *item;
+ proto_tree *subtree;
+
+ item = get_ber_last_created_item();
+ subtree = proto_item_add_subtree(item, ett_digitstype);
/* Octet 1 */
- proto_tree_add_item(tree, hf_ansi_map_type_of_digits, tvb, offset, 1, FALSE);
+ proto_tree_add_item(subtree, hf_ansi_map_type_of_digits, tvb, offset, 1, FALSE);
offset++;
/* Octet 2 */
- proto_tree_add_item(tree, hf_ansi_map_si, tvb, offset, 1, FALSE);
- proto_tree_add_item(tree, hf_ansi_map_navail, tvb, offset, 1, FALSE);
- proto_tree_add_item(tree, hf_ansi_map_pi, tvb, offset, 1, FALSE);
- proto_tree_add_item(tree, hf_ansi_map_na, tvb, offset, 1, FALSE);
+ proto_tree_add_item(subtree, hf_ansi_map_si, tvb, offset, 1, FALSE);
+ proto_tree_add_item(subtree, hf_ansi_map_navail, tvb, offset, 1, FALSE);
+ proto_tree_add_item(subtree, hf_ansi_map_pi, tvb, offset, 1, FALSE);
+ proto_tree_add_item(subtree, hf_ansi_map_na, tvb, offset, 1, FALSE);
offset++;
/* Octet 3 */
octet = tvb_get_guint8(tvb,offset);
- proto_tree_add_item(tree, hf_ansi_map_np, tvb, offset, 1, FALSE);
- proto_tree_add_item(tree, hf_ansi_map_digits_enc, tvb, offset, 1, FALSE);
+ proto_tree_add_item(subtree, hf_ansi_map_np, tvb, offset, 1, FALSE);
+ proto_tree_add_item(subtree, hf_ansi_map_digits_enc, tvb, offset, 1, FALSE);
offset++;
/* Octet 4 - */
switch(octet>>4){
@@ -384,17 +480,17 @@ dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
case 3:/* Data Numbering (ITU-T Rec. X.121) (not used in this Standard). */
case 4:/* Telex Numbering (ITU-T Rec. F.69) (not used in this Standard). */
case 5:/* Maritime Mobile Numbering (not used in this Standard). */
- proto_tree_add_text(tree, tvb, offset, -1, "This Number plan should not have been used");
+ proto_tree_add_text(subtree, tvb, offset, -1, "This Number plan should not have been used");
break;
case 2:/* Telephony Numbering (ITU-T Rec. E.164,E.163). */
case 6:/* Land Mobile Numbering (ITU-T Rec. E.212) */
case 7:/* Private Numbering Plan */
if ((octet&0xf) == 1){
/* BCD Coding */
- proto_tree_add_item(tree, hf_ansi_map_nr_digits, tvb, offset, 1, FALSE);
+ proto_tree_add_item(subtree, hf_ansi_map_nr_digits, tvb, offset, 1, FALSE);
offset++;
- digit_str = unpack_digits(tvb, offset);
- proto_tree_add_string(tree, hf_ansi_map_bcd_digits, tvb, offset, -1, digit_str);
+ digit_str = unpack_digits2(tvb, offset, &Dgt_tbcd);
+ proto_tree_add_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, digit_str);
}
break;
case 13:/* ANSI SS7 Point Code (PC) and Subsystem Number (SSN). */
@@ -402,11 +498,475 @@ dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
case 14:/* Internet Protocol (IP) Address. */
break;
default:
- proto_tree_add_text(tree, tvb, offset, -1, "This Number plan should not have been used");
+ proto_tree_add_text(subtree, tvb, offset, -1, "This Number plan should not have been used");
break;
}
}
+/*
+ * 6.5.2.2 ActionCode
+ * Table 114 ActionCode value
+ */
+
+
+/* 6.5.2.2 ActionCode(TIA/EIA-41.5-D, page 5-129) */
+
+static const value_string ansi_map_ActionCode_vals[] = {
+ { 0, "Not used"},
+ { 1, "Continue processing"},
+ { 2, "Disconnect call"},
+ { 3, "Disconnect call leg"},
+ { 4, "Conference Calling Drop Last Party"},
+ { 5, "Bridge call leg(s) to conference call"},
+ { 6, "Drop call leg on busy or routing failure"},
+ { 7, "Disconnect all call legs"},
+ { 8, "Attach MSC to OTAF"},
+ { 9, "Initiate RegistrationNotification"},
+ { 10, "Generate Public Encryption values"},
+ { 11, "Generate A-key"},
+ { 12, "Perform SSD Update procedure"},
+ { 13, "Perform Re-authentication procedure"},
+ { 14, "Release TRN"},
+ { 15, "Commit A-key"},
+ { 16, "Release Resources (e.g., A-key, Traffic Channel)"},
+ { 17, "Record NEWMSID"},
+ { 18, "Allocate Resources (e.g., Multiple message traffic channel delivery)."},
+ { 19, "Generate Authentication Signature"},
+ { 0, NULL }
+};
+
+/* 6.5.2.16 BillingID */
+static void
+dissect_ansi_map_billingid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){
+
+ int offset = 0;
+ proto_item *item;
+ proto_tree *subtree;
+
+ item = get_ber_last_created_item();
+ subtree = proto_item_add_subtree(item, ett_billingid);
+
+ proto_tree_add_item(subtree, hf_ansi_map_MarketID, tvb, offset, 2, FALSE);
+ offset = offset + 2;
+ proto_tree_add_item(subtree, hf_ansi_map_swno, tvb, offset, 1, FALSE);
+ offset++;
+ /* ID Number */
+ proto_tree_add_item(subtree, hf_ansi_map_idno, tvb, offset, 3, FALSE);
+ offset = offset + 3;
+ proto_tree_add_item(subtree, hf_ansi_map_segcount, tvb, offset, 1, FALSE);
+
+}
+/* 6.5.2.82 MSCID */
+
+static void
+dissect_ansi_map_mscid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){
+ int offset = 0;
+ proto_item *item;
+ proto_tree *subtree;
+
+ item = get_ber_last_created_item();
+ subtree = proto_item_add_subtree(item, ett_mscid);
+
+ proto_tree_add_item(subtree, hf_ansi_map_MarketID, tvb, offset, 2, FALSE);
+ offset = offset + 2;
+ proto_tree_add_item(subtree, hf_ansi_map_swno, tvb, offset, 1, FALSE);
+}
+
+/* 6.5.2.90 OriginationTriggers */
+
+
+/* All Origination (All) (octet 1, bit A) */
+static const true_false_string ansi_map_originationtriggers_all_bool_val = {
+ "Launch an OriginationRequest for any call attempt. This overrides all other values",
+ "Trigger is not active"
+};
+
+/* Local (octet 1, bit B) */
+static const true_false_string ansi_map_originationtriggers_local_bool_val = {
+ "Launch an OriginationRequest for any local call attempt",
+ "Trigger is not active"
+};
+
+/* Intra-LATA Toll (ILATA) (octet 1, bit C) */
+static const true_false_string ansi_map_originationtriggers_ilata_bool_val = {
+ "Launch an OriginationRequest for any intra-LATA call attempt",
+ "Trigger is not active"
+};
+/* Inter-LATA Toll (OLATA) (octet 1, bit D) */
+static const true_false_string ansi_map_originationtriggers_olata_bool_val = {
+ "Launch an OriginationRequest for any inter-LATA toll call attempt",
+ "Trigger is not active"
+};
+/* International (Int'l ) (octet 1, bit E) */
+static const true_false_string ansi_map_originationtriggers_int_bool_val = {
+ "Launch an OriginationRequest for any international call attempt",
+ "Trigger is not active"
+};
+/* World Zone (WZ) (octet 1, bit F) */
+static const true_false_string ansi_map_originationtriggers_wz_bool_val = {
+ "Launch an OriginationRequest for any call attempt outside of the current World Zone (as defined in ITU-T Rec. E.164)",
+ "Trigger is not active"
+};
+
+/* Unrecognized Number (Unrec) (octet 1, bit G) */
+static const true_false_string ansi_map_originationtriggers_unrec_bool_val = {
+ "Launch an OriginationRequest for any call attempt to an unrecognized number",
+ "Trigger is not active"
+};
+/* Revertive Call (RvtC) (octet 1, bit H)*/
+static const true_false_string ansi_map_originationtriggers_rvtc_bool_val = {
+ "Launch an OriginationRequest for any Revertive Call attempt",
+ "Trigger is not active"
+};
+
+/* Star (octet 2, bit A) */
+static const true_false_string ansi_map_originationtriggers_star_bool_val = {
+ "Launch an OriginationRequest for any number beginning with a Star '*' digit",
+ "Trigger is not active"
+};
+
+/* Double Star (DS) (octet 2, bit B) */
+static const true_false_string ansi_map_originationtriggers_ds_bool_val = {
+ "Launch an OriginationRequest for any number beginning with two Star '**' digits",
+ "Trigger is not active"
+};
+/* Pound (octet 2, bit C) */
+static const true_false_string ansi_map_originationtriggers_pound_bool_val = {
+ "Launch an OriginationRequest for any number beginning with a Pound '#' digit",
+ "Trigger is not active"
+};
+/* Double Pound (DP) (octet 2, bit D) */
+static const true_false_string ansi_map_originationtriggers_dp_bool_val = {
+ "Launch an OriginationRequest for any number beginning with two Pound '##' digits",
+ "Trigger is not active"
+};
+/* Prior Agreement (PA) (octet 2, bit E) */
+static const true_false_string ansi_map_originationtriggers_pa_bool_val = {
+ "Launch an OriginationRequest for any number matching a criteria of a prior agreement",
+ "Trigger is not active"
+};
+
+/* No digits (octet 3, bit A) */
+static const true_false_string ansi_map_originationtriggers_nodig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with no digits",
+ "Trigger is not active"
+};
+
+/* 1 digit (octet 3, bit B) */
+static const true_false_string ansi_map_originationtriggers_onedig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 1 digit",
+ "Trigger is not active"
+};
+/* 1 digit (octet 3, bit C) */
+static const true_false_string ansi_map_originationtriggers_twodig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 2 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 3, bit D) */
+static const true_false_string ansi_map_originationtriggers_threedig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 3 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 3, bit E) */
+static const true_false_string ansi_map_originationtriggers_fourdig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 4 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 3, bit F) */
+static const true_false_string ansi_map_originationtriggers_fivedig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 5 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 3, bit G) */
+static const true_false_string ansi_map_originationtriggers_sixdig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 6 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 3, bit H) */
+static const true_false_string ansi_map_originationtriggers_sevendig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 7 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit A) */
+static const true_false_string ansi_map_originationtriggers_eightdig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 8 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit B) */
+static const true_false_string ansi_map_originationtriggers_ninedig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 9 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit C) */
+static const true_false_string ansi_map_originationtriggers_tendig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 10 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit D) */
+static const true_false_string ansi_map_originationtriggers_elevendig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 11 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit E) */
+static const true_false_string ansi_map_originationtriggers_thwelvdig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 12 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit F) */
+static const true_false_string ansi_map_originationtriggers_thirteendig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 13 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit G) */
+static const true_false_string ansi_map_originationtriggers_fourteendig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 14 digits",
+ "Trigger is not active"
+};
+/* 1 digit (octet 4, bit H) */
+static const true_false_string ansi_map_originationtriggers_fifteendig_bool_val = {
+ "Launch an OriginationRequest for any call attempt with 15 digits",
+ "Trigger is not active"
+};
+
+static void
+dissect_ansi_map_originationtriggers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){
+
+ int offset = 0;
+ proto_item *item;
+ proto_tree *subtree;
+
+ item = get_ber_last_created_item();
+ subtree = proto_item_add_subtree(item, ett_originationtriggers);
+
+ /* Revertive Call (RvtC) (octet 1, bit H)*/
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_rvtc, tvb, offset, 1, FALSE);
+ /* Unrecognized Number (Unrec) (octet 1, bit G) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_unrec, tvb, offset, 1, FALSE);
+ /* World Zone (WZ) (octet 1, bit F) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_wz, tvb, offset, 1, FALSE);
+ /* International (Int'l ) (octet 1, bit E) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_int, tvb, offset, 1, FALSE);
+ /* Inter-LATA Toll (OLATA) (octet 1, bit D) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_olata, tvb, offset, 1, FALSE);
+ /* Intra-LATA Toll (ILATA) (octet 1, bit C) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_ilata, tvb, offset, 1, FALSE);
+ /* Local (octet 1, bit B) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_local, tvb, offset, 1, FALSE);
+ /* All Origination (All) (octet 1, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_all, tvb, offset, 1, FALSE);
+ offset++;
+
+ /*Prior Agreement (PA) (octet 2, bit E) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_pa, tvb, offset, 1, FALSE);
+ /* Double Pound (DP) (octet 2, bit D) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_dp, tvb, offset, 1, FALSE);
+ /* Pound (octet 2, bit C) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_pound, tvb, offset, 1, FALSE);
+ /* Double Star (DS) (octet 2, bit B) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_ds, tvb, offset, 1, FALSE);
+ /* Star (octet 2, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_star, tvb, offset, 1, FALSE);
+ offset++;
+
+ /* 7 digit (octet 3, bit H) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_sevendig, tvb, offset, 1, FALSE);
+ /* 6 digit (octet 3, bit G) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_sixdig, tvb, offset, 1, FALSE);
+ /* 5 digit (octet 3, bit F) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_fivedig, tvb, offset, 1, FALSE);
+ /* 4 digit (octet 3, bit E) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_fourdig, tvb, offset, 1, FALSE);
+ /* 3 digit (octet 3, bit D) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_threedig, tvb, offset, 1, FALSE);
+ /* 2 digit (octet 3, bit C) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_twodig, tvb, offset, 1, FALSE);
+ /* 1 digit (octet 3, bit B) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_onedig, tvb, offset, 1, FALSE);
+ /* No digits (octet 3, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_nodig, tvb, offset, 1, FALSE);
+ offset++;
+
+ /* 15 digit (octet 4, bit H) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_fifteendig, tvb, offset, 1, FALSE);
+ /* 14 digit (octet 4, bit G) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_fourteendig, tvb, offset, 1, FALSE);
+ /* 13 digit (octet 4, bit F) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_thirteendig, tvb, offset, 1, FALSE);
+ /* 12 digit (octet 4, bit E) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_thwelvedig, tvb, offset, 1, FALSE);
+ /* 11 digit (octet 4, bit D) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_elevendig, tvb, offset, 1, FALSE);
+ /* 10 digit (octet 4, bit C) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_tendig, tvb, offset, 1, FALSE);
+ /* 9 digit (octet 4, bit B) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_ninedig, tvb, offset, 1, FALSE);
+ /* 8 digits (octet 4, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_originationtriggers_eightdig, tvb, offset, 1, FALSE);
+
+}
+/* 6.5.2.122 SMS_AccessDeniedReason (TIA/EIA-41.5-D, page 5-256)
+ N.S0011-0 v 1.0
+ */
+static const value_string ansi_map_SMS_AccessDeniedReason_vals[] = {
+ { 0, "Not used"},
+ { 1, "Denied"},
+ { 2, "Postponed"},
+ { 3, "Unavailable"},
+ { 4, "Invalid"},
+ { 0, NULL }
+};
+
+/* 6.5.2.125 SMS_CauseCode (TIA/EIA-41.5-D, page 5-262)
+ N.S0011-0 v 1.0
+ */
+static const value_string ansi_map_SMS_CauseCode_vals[] = {
+ { 0, "Address vacant"},
+ { 1, "Address translation failure"},
+ { 2, "Network resource shortage"},
+ { 3, "Network failure"},
+ { 4, "Invalid Teleservice ID"},
+ { 5, "Other network problem"},
+ { 6, "Unsupported network interface"},
+ { 32, "No page response"},
+ { 33, "Destination busy"},
+ { 34, "No acknowledgment"},
+ { 35, "Destination resource shortage"},
+ { 36, "SMS delivery postponed"},
+ { 37, "Destination out of service"},
+ { 38, "Destination no longer at this address"},
+ { 39, "Other terminal problem"},
+ { 64, "Radio interface resource shortage"},
+ { 65, "Radio interface incompatibility"},
+ { 66, "Other radio interface problem"},
+ { 67, "Unsupported Base Station Capability"},
+ { 96, "Encoding problem"},
+ { 97, "Service origination denied"},
+ { 98, "Service termination denied"},
+ { 99, "Supplementary service not supported"},
+ { 100, "Service not supported"},
+ { 101, "Reserved"},
+ { 102, "Missing expected parameter"},
+ { 103, "Missing mandatory parameter"},
+ { 104, "Unrecognized parameter value"},
+ { 105, "Unexpected parameter value"},
+ { 106, "User Data size error"},
+ { 107, "Other general problems"},
+ { 108, "Session not active"},
+ { 0, NULL }
+};
+
+
+
+
+static const true_false_string ansi_map_trans_cap_prof_bool_val = {
+ "The system is capable of supporting the IS-41-C profile parameters",
+ "The system is not capable of supporting the IS-41-C profile parameters"
+};
+
+static const true_false_string ansi_map_trans_cap_busy_bool_val = {
+ "The system is capable of detecting a busy condition at the current time",
+ "The system is not capable of detecting a busy condition at the current time"
+};
+
+static const true_false_string ansi_map_trans_cap_ann_bool_val = {
+ "The system is capable of honoring the AnnouncementList parameter at the current time",
+ "The system is not capable of honoring the AnnouncementList parameter at the current time"
+};
+
+static const true_false_string ansi_map_trans_cap_rui_bool_val = {
+ "The system is capable of interacting with the user",
+ "The system is not capable of interacting with the user"
+};
+
+static const true_false_string ansi_map_trans_cap_spini_bool_val = {
+ "The system is capable of supporting local SPINI operation",
+ "The system is not capable of supporting local SPINI operation at the current time"
+};
+
+static const true_false_string ansi_map_trans_cap_uzci_bool_val = {
+ "The system is User Zone capable at the current time",
+ "The system is not User Zone capable at the current time"
+};
+static const true_false_string ansi_map_trans_cap_ndss_bool_val = {
+ "Serving system is NDSS capable",
+ "Serving system is not NDSS capable"
+};
+static const true_false_string ansi_map_trans_cap_nami_bool_val = {
+ "The system is CNAP/CNAR capable",
+ "The system is not CNAP/CNAR capable"
+};
+
+static const value_string ansi_map_trans_cap_multerm_vals[] = {
+ { 0, "The system cannot accept a termination at this time (i.e., cannot accept routing information)"},
+ { 1, "The system supports the number of call legs indicated"},
+ { 2, "The system supports the number of call legs indicated"},
+ { 3, "The system supports the number of call legs indicated"},
+ { 4, "The system supports the number of call legs indicated"},
+ { 5, "The system supports the number of call legs indicated"},
+ { 6, "The system supports the number of call legs indicated"},
+ { 7, "The system supports the number of call legs indicated"},
+ { 8, "The system supports the number of call legs indicated"},
+ { 9, "The system supports the number of call legs indicated"},
+ { 10, "The system supports the number of call legs indicated"},
+ { 11, "The system supports the number of call legs indicated"},
+ { 12, "The system supports the number of call legs indicated"},
+ { 13, "The system supports the number of call legs indicated"},
+ { 14, "The system supports the number of call legs indicated"},
+ { 15, "The system supports the number of call legs indicated"},
+ { 0, NULL }
+};
+
+static const true_false_string ansi_map_trans_cap_tl_bool_val = {
+ "The system is capable of supporting the TerminationList parameter at the current time",
+ "The system is not capable of supporting the TerminationList parameter at the current time"
+};
+
+/* 6.5.2.160 TransactionCapability (TIA/EIA-41.5-D, page 5-315) */
+static void
+dissect_ansi_map_transactioncapability(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){
+
+ int offset = 0;
+ proto_item *item;
+ proto_tree *subtree;
+
+ item = get_ber_last_created_item();
+ subtree = proto_item_add_subtree(item, ett_transactioncapability);
+
+ /*NAME Capability Indicator (NAMI) (octet 1, bit H) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_nami, tvb, offset, 1, FALSE);
+ /* NDSS Capability (NDSS) (octet 1, bit G) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_ndss, tvb, offset, 1, FALSE);
+ /* UZ Capability Indicator (UZCI) (octet 1, bit F) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_uzci, tvb, offset, 1, FALSE);
+ /* Subscriber PIN Intercept (SPINI) (octet 1, bit E) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_spini, tvb, offset, 1, FALSE);
+ /* Remote User Interaction (RUI) (octet 1, bit D) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_rui, tvb, offset, 1, FALSE);
+ /* Announcements (ANN) (octet 1, bit C) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_ann, tvb, offset, 1, FALSE);
+ /* Busy Detection (BUSY) (octet 1, bit B) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_busy, tvb, offset, 1, FALSE);
+ /* Profile (PROF) (octet 1, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_trans_cap_prof, tvb, offset, 1, FALSE);
+ offset++;
+
+ /* Multiple Terminations (octet 2, bits A-D) */
+ proto_tree_add_item(subtree, hf_ansi_trans_cap_multerm, tvb, offset, 1, FALSE);
+ /* TerminationList (TL) (octet 2, bit E) */
+ proto_tree_add_item(subtree, hf_ansi_trans_cap_tl, tvb, offset, 1, FALSE);
+}
+/* 6.5.2.i (IS-730) TDMAServiceCode */
+static const value_string ansi_map_TDMAServiceCode_vals[] = {
+ { 0, "Analog Speech Only"},
+ { 1, "Digital Speech Only"},
+ { 2, "Analog or Digital Speech, Analog Preferred"},
+ { 3, "Analog or Digital Speech, Digital Preferred"},
+ { 4, "Asynchronous Data"},
+ { 5, "G3 Fax"},
+ { 6, "Not Used (Service Rejected)"},
+ { 7, "STU-III"},
+ { 0, NULL }
+};
/*- 6.5.2.ac (N.S0007-0 v 1.0) ControlChannelMode */
static const value_string ansi_map_ControlChannelMode_vals[] = {
@@ -417,6 +977,110 @@ static const value_string ansi_map_ControlChannelMode_vals[] = {
{ 0, NULL }
};
+/*Table 6.5.2.ay TDMABandwidth value */
+static const value_string ansi_map_TDMABandwidth_vals[] = {
+ { 0, "Half-Rate Digital Traffic Channel Only"},
+ { 1, "Full-Rate Digital Traffic Channel Only"},
+ { 2, "Half-Rate or Full-rate Digital Traffic Channel - Full-Rate Preferred"},
+ { 3, "Half-rate or Full-rate Digital Traffic Channel - Half-rate Preferred"},
+ { 4, "Double Full-Rate Digital Traffic Channel Only"},
+ { 5, "Triple Full-Rate Digital Traffic Channel Only"},
+ { 6, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 7, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 8, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 9, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 10, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 11, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 12, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 13, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 14, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 15, "Reserved. Treat reserved values the same as value 1 - Full-Rate Digital Traffic Channel Only"},
+ { 0, NULL }
+
+};
+/* 6.5.2.bw CallingPartyName N.S0012-0 v 1.0*/
+
+/* Presentation Status (octet 1, bits A and B) */
+static const value_string ansi_map_Presentation_Status_vals[] = {
+ { 0, "Presentation allowed"},
+ { 1, "Presentation restricted"},
+ { 2, "Blocking toggle"},
+ { 3, "No indication"},
+ { 0, NULL }
+};
+/* Availability (octet 1, bit E) N.S0012-0 v 1.0*/
+static const true_false_string ansi_map_Availability_bool_val = {
+ "Name not available",
+ "Name available/unknown"
+};
+/* 6.5.2.bx DisplayText N.S0012-0 v 1.0*/
+/* a. Refer to ANSI T1.610 for field encoding. */
+
+/* 6.5.2.bz ServiceID
+Service Identifier (octets 1 to n)
+0 Not used.
+1 Calling Name Presentation - No RND.
+2 Calling Name Presentation with RND.
+ */
+
+
+/* 6.5.2.df TriggerCapability */
+
+
+static const true_false_string ansi_map_triggercapability_bool_val = {
+ "triggers can be armed by the TriggerAddressList parameter",
+ "triggers cannot be armed by the TriggerAddressList parameter"
+};
+
+static void
+dissect_ansi_map_triggercapability(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){
+
+ int offset = 0;
+ proto_item *item;
+ proto_tree *subtree;
+
+ item = get_ber_last_created_item();
+ subtree = proto_item_add_subtree(item, ett_originationtriggers);
+
+
+ /* O_No_Answer (ONA) (octet 1, bit H)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_ona, tvb, offset, 1, FALSE);
+ /* O_Disconnect (ODISC) (octet 1, bit G)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_odisc, tvb, offset, 1, FALSE);
+ /* O_Answer (OANS) (octet 1, bit F)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_oans, tvb, offset, 1, FALSE);
+ /* Origination_Attempt_Authorized (OAA) (octet 1, bit E)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_oaa, tvb, offset, 1, FALSE);
+ /* Revertive_Call (RvtC) (octet 1, bit D)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_rvtc, tvb, offset, 1, FALSE);
+ /* All_Calls (All) (octet 1, bit C)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_all, tvb, offset, 1, FALSE);
+ /* K-digit (K-digit) (octet 1, bit B)*/
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_kdigit, tvb, offset, 1, FALSE);
+ /* Introducing Star/Pound (INIT) (octet 1, bit A) */
+ proto_tree_add_item(subtree, hf_ansi_map_triggercapability_init, tvb, offset, 1, FALSE);
+ offset++;
+
+
+ /* O_Called_Party_Busy (OBSY) (octet 2, bit H)*/
+ /* Called_Routing_Address_Available (CdRAA) (octet 2, bit G)*/
+ /* Initial_Termination (IT) (octet 2, bit F)*/
+ /* Calling_Routing_Address_Available (CgRAA)*/
+ /* Advanced_Termination (AT) (octet 2, bit D)*/
+ /* Prior_Agreement (PA) (octet 2, bit C)*/
+ /* Unrecognized_Number (Unrec) (octet 2, bit B)*/
+ /* Call Types (CT) (octet 2, bit A)*/
+
+ /* */
+ /* */
+ /* */
+ /* T_Disconnect (TDISC) (octet 3, bit E)*/
+ /* T_Answer (TANS) (octet 3, bit D)*/
+ /* T_No_Answer (TNA) (octet 3, bit C)*/
+ /* T_Busy (TBusy) (octet 3, bit B)*/
+ /* Terminating_Resource_Available (TRA) (octet 3, bit A) */
+
+}
/* 6.5.2.bp-1 ServiceRedirectionCause value */
static const value_string ansi_map_ServiceRedirectionCause_vals[] = {
{ 0, "Not used"},
@@ -428,6 +1092,68 @@ static const value_string ansi_map_ServiceRedirectionCause_vals[] = {
{ 6, "WrongNID"},
{ 0, NULL }
};
+
+/* 6.5.2.lB AKeyProtocolVersion
+ N.S0011-0 v 1.0
+ */
+static const value_string ansi_map_AKeyProtocolVersion_vals[] = {
+ { 0, "Not used"},
+ { 1, "A-key Generation not supported"},
+ { 2, "Diffie Hellman with 768-bit modulus, 160-bit primitive, and 160-bit exponents"},
+ { 3, "Diffie Hellman with 512-bit modulus, 160-bit primitive, and 160-bit exponents"},
+ { 4, "Diffie Hellman with 768-bit modulus, 32-bit primitive, and 160-bit exponents"},
+ { 0, NULL }
+};
+/* 6.5.2.sB OTASP_ResultCode
+ N.S0011-0 v 1.0
+ */
+static const value_string ansi_map_OTASP_ResultCode_vals[] = {
+ { 0, "Accepted - Successful"},
+ { 1, "Rejected - Unknown cause."},
+ { 2, "Computation Failure - E.g., unable to compute A-key"},
+ { 3, "CSC Rejected - CSC challenge failure"},
+ { 4, "Unrecognized OTASPCallEntry"},
+ { 5, "Unsupported AKeyProtocolVersion(s)"},
+ { 6, "Unable to Commit"},
+ { 0, NULL }
+};
+
+/*6.5.2.wB ServiceIndicator
+ N.S0011-0 v 1.0
+ */
+static const value_string ansi_map_ServiceIndicator_vals[] = {
+ { 0, "Undefined Service"},
+ { 1, "CDMA OTASP Service"},
+ { 2, "TDMA OTASP Service"},
+ { 3, "CDMA OTAPA Service"},
+ { 0, NULL }
+};
+
+/* 6.5.2.xB SignalingMessageEncryptionReport
+ N.S0011-0 v 1.0
+ */
+static const value_string ansi_map_SMEReport_vals[] = {
+ { 0, "Not used"},
+ { 1, "Signaling Message Encryption enabling not attempted"},
+ { 2, "Signaling Message Encryption enabling no response"},
+ { 3, "Signaling Message Encryption is enabled"},
+ { 4, "Signaling Message Encryption enabling failed"},
+ { 0, NULL }
+};
+
+/* 6.5.2.zB VoicePrivacyReport
+ N.S0011-0 v 1.0
+ */
+static const value_string ansi_map_VoicePrivacyReport_vals[] = {
+ { 0, "Not used"},
+ { 1, "Voice Privacy not attempted"},
+ { 2, "Voice Privacy no response"},
+ { 3, "Voiec Privacy is active"},
+ { 4, "Voice Privacy failed"},
+ { 0, NULL }
+};
+
+
#include "packet-ansi_map-fn.c"
static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -601,42 +1327,44 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
break;
/* End N.S0005*/
/* N.S0010-0 v 1.0 */
- case 56: /*OTASP Request*/
- offset = offset;
+ /* N.S0011-0 v 1.0 */
+ case 56: /*OTASP Request 6.4.2.CC*/
+ offset = dissect_ansi_map_OTASPRequest(TRUE, tvb, offset, pinfo, tree, -1);
break;
+ /*End N.S0011-0 v 1.0 */
case 57: /*Information Backward*/
offset = offset;
break;
/* N.S0008-0 v 1.0 */
case 58: /*Change Facilities*/
- offset = offset;
+ offset = dissect_ansi_map_ChangeFacilities(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 59: /*Change Service*/
- offset = offset;
+ offset = dissect_ansi_map_ChangeService(TRUE, tvb, offset, pinfo, tree, -1);
break;
/* End N.S0008-0 v 1.0 */
case 60: /*Parameter Request*/
- offset = offset;
+ offset = dissect_ansi_map_ParameterRequest(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 61: /*TMSI Directive*/
- offset = offset;
+ offset = dissect_ansi_map_TMSIDirective(TRUE, tvb, offset, pinfo, tree, -1);
break;
/*End N.S0010-0 v 1.0 */
case 62: /*Reserved 62*/
- offset = offset;
+ proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob(Reserved 62)");
break;
- case 63: /*Service Request*/
+ case 63: /*Service Request N.S0012-0 v 1.0*/
offset = dissect_ansi_map_ServiceRequest(TRUE, tvb, offset, pinfo, tree, -1);
break;
/* N.S0013 */
case 64: /*Analyzed Information Request*/
- offset = dissect_ansi_map_AnalyzedInformation(TRUE, tvb, offset, pinfo, tree, -1);;
+ offset = dissect_ansi_map_AnalyzedInformation(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 65: /*Connection Failure Report*/
- offset = offset;
+ offset = dissect_ansi_map_ConnectionFailureReport(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 66: /*Connect Resource*/
- offset = offset;
+ offset = dissect_ansi_map_ConnectResource(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 67: /*Disconnect Resource*/
/* No data */
@@ -648,16 +1376,16 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
/* No data */
break;
case 70: /*Modify*/
- offset = offset;
+ offset = dissect_ansi_map_Modify(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 71: /*Reset Timer*/
- offset = offset;
+ /*No Data*/
break;
case 72: /*Search*/
- offset = offset;
+ offset = dissect_ansi_map_Search(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 73: /*Seize Resource*/
- offset = offset;
+ offset = dissect_ansi_map_SeizeResource(TRUE, tvb, offset, pinfo, tree, -1);
break;
case 74: /*SRF Directive*/
offset = dissect_ansi_map_SRFDirective(TRUE, tvb, offset, pinfo, tree, -1);
@@ -828,12 +1556,31 @@ static int dissect_returnData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
case 55: /*SMS Request*/
offset = dissect_ansi_map_SMSRequestRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
+ /* N.S0008-0 v 1.0 */
+ 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 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;
case 68: /*Facility Selected and Available*/
offset = dissect_ansi_map_FacilitySelectedAndAvailableRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
+ case 70: /*Modify*/
+ offset = dissect_ansi_map_ModifyRes(TRUE, tvb, offset, pinfo, tree, -1);
+ break;
+ case 72: /*Search*/
+ offset = dissect_ansi_map_SearchRes(TRUE, tvb, offset, pinfo, tree, -1);;
+ break;
+ case 73: /*Seize Resource*/
+ offset = dissect_ansi_map_SeizeResourceRes(TRUE, tvb, offset, pinfo, tree, -1);
+ break;
case 75: /*T Busy*/
offset = dissect_ansi_map_TBusyRes(TRUE, tvb, offset, pinfo, tree, -1);
break;
@@ -960,12 +1707,224 @@ void proto_register_ansi_map(void) {
{ "BCD digits", "gsm_map.bcd_digits",
FT_STRING, BASE_NONE, NULL, 0,
"BCD digits", HFILL }},
+ { &hf_ansi_map_trans_cap_prof,
+ { "Profile (PROF)", "ansi_map.trans_cap_prof",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_prof_bool_val),0x01,
+ "Profile (PROF)", HFILL }},
+ { &hf_ansi_map_trans_cap_busy,
+ { "Busy Detection (BUSY)", "ansi_map.trans_cap_busy",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_busy_bool_val),0x02,
+ "Busy Detection (BUSY)", HFILL }},
+ { &hf_ansi_map_trans_cap_ann,
+ { "Announcements (ANN)", "ansi_map.trans_cap_ann",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_ann_bool_val),0x04,
+ "Announcements (ANN)", HFILL }},
+ { &hf_ansi_map_trans_cap_rui,
+ { "Remote User Interaction (RUI)", "ansi_map.trans_cap_rui",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_rui_bool_val),0x08,
+ "Remote User Interaction (RUI)", HFILL }},
+ { &hf_ansi_map_trans_cap_spini,
+ { "Subscriber PIN Intercept (SPINI)", "ansi_map.trans_cap_spini",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_spini_bool_val),0x10,
+ "Subscriber PIN Intercept (SPINI)", HFILL }},
+ { &hf_ansi_map_trans_cap_uzci,
+ { "UZ Capability Indicator (UZCI)", "ansi_map.trans_cap_uzci",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_uzci_bool_val),0x20,
+ "UZ Capability Indicator (UZCI)", HFILL }},
+ { &hf_ansi_map_trans_cap_ndss,
+ { "NDSS Capability (NDSS)", "ansi_map.trans_cap_ndss",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_ndss_bool_val),0x40,
+ "NDSS Capability (NDSS)", HFILL }},
+ { &hf_ansi_map_trans_cap_nami,
+ { "NAME Capability Indicator (NAMI)", "ansi_map.trans_cap_nami",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_nami_bool_val),0x80,
+ "NAME Capability Indicator (NAMI)", HFILL }},
+ { &hf_ansi_trans_cap_multerm,
+ { "Multiple Terminations", "ansi_map.trans_cap_multerm",
+ FT_UINT8, BASE_DEC, VALS(ansi_map_trans_cap_multerm_vals), 0x0f,
+ "Multiple Terminations", HFILL }},
+ { &hf_ansi_trans_cap_tl,
+ { "TerminationList (TL)", "ansi_map.trans_cap_tl",
+ FT_BOOLEAN, 8, TFS(&ansi_map_trans_cap_nami_bool_val),0x10,
+ "TerminationList (TL)", HFILL }},
+ { &hf_ansi_map_MarketID,
+ { "MarketID", "ansi_map.marketid",
+ FT_UINT16, BASE_DEC, NULL, 0,
+ "MarketID", HFILL }},
+ { &hf_ansi_map_swno,
+ { "Switch Number (SWNO)", "ansi_map.swno",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ "Switch Number (SWNO)", HFILL }},
+ { &hf_ansi_map_idno,
+ { "ID Number", "ansi_map.idno",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ID Number", HFILL }},
+ { &hf_ansi_map_segcount,
+ { "Segment Counter", "ansi_map.segcount",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ "Segment Counter", HFILL }},
+ { &hf_ansi_map_originationtriggers_all,
+ { "All Origination (All)", "ansi_map.originationtriggers.all",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_all_bool_val),0x01,
+ "All Origination (All)", HFILL }},
+ { &hf_ansi_map_originationtriggers_local,
+ { "Local", "ansi_map.originationtriggers.all",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_local_bool_val),0x02,
+ "Local", HFILL }},
+ { &hf_ansi_map_originationtriggers_ilata,
+ { "Intra-LATA Toll (ILATA)", "ansi_map.originationtriggers.ilata",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_ilata_bool_val),0x04,
+ "Intra-LATA Toll (ILATA)", HFILL }},
+ { &hf_ansi_map_originationtriggers_olata,
+ { "Inter-LATA Toll (OLATA)", "ansi_map.originationtriggers.olata",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_olata_bool_val),0x08,
+ "Inter-LATA Toll (OLATA)", HFILL }},
+ { &hf_ansi_map_originationtriggers_int,
+ { "International (Int'l )", "ansi_map.originationtriggers.int",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_int_bool_val),0x10,
+ "International (Int'l )", HFILL }},
+ { &hf_ansi_map_originationtriggers_wz,
+ { "World Zone (WZ)", "ansi_map.originationtriggers.wz",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_wz_bool_val),0x20,
+ "World Zone (WZ)", HFILL }},
+ { &hf_ansi_map_originationtriggers_unrec,
+ { "Unrecognized Number (Unrec)", "ansi_map.originationtriggers.unrec",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_unrec_bool_val),0x40,
+ "Unrecognized Number (Unrec)", HFILL }},
+ { &hf_ansi_map_originationtriggers_rvtc,
+ { "Revertive Call (RvtC)", "ansi_map.originationtriggers.rvtc",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_rvtc_bool_val),0x80,
+ "Revertive Call (RvtC)", HFILL }},
+ { &hf_ansi_map_originationtriggers_star,
+ { "Star", "ansi_map.originationtriggers.star",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_star_bool_val),0x01,
+ "Star", HFILL }},
+ { &hf_ansi_map_originationtriggers_ds,
+ { "Double Star (DS)", "ansi_map.originationtriggers.ds",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_ds_bool_val),0x02,
+ "Double Star (DS)", HFILL }},
+ { &hf_ansi_map_originationtriggers_pound,
+ { "Pound", "ansi_map.originationtriggers.pound",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_pound_bool_val),0x04,
+ "Pound", HFILL }},
+ { &hf_ansi_map_originationtriggers_dp,
+ { "Double Pound (DP)", "ansi_map.originationtriggers.dp",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_dp_bool_val),0x08,
+ "Double Pound (DP)", HFILL }},
+ { &hf_ansi_map_originationtriggers_pa,
+ { "Prior Agreement (PA)", "ansi_map.originationtriggers.pa",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_pa_bool_val),0x10,
+ "Prior Agreement (PA)", HFILL }},
+ { &hf_ansi_map_originationtriggers_nodig,
+ { "No digits", "ansi_map.originationtriggers.nodig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_nodig_bool_val),0x01,
+ "No digits", HFILL }},
+ { &hf_ansi_map_originationtriggers_onedig,
+ { "1 digit", "ansi_map.originationtriggers.onedig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_onedig_bool_val),0x02,
+ "1 digit", HFILL }},
+ { &hf_ansi_map_originationtriggers_twodig,
+ { "2 digits", "ansi_map.originationtriggers.twodig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_twodig_bool_val),0x04,
+ "2 digits", HFILL }},
+ { &hf_ansi_map_originationtriggers_threedig,
+ { "3 digits", "ansi_map.originationtriggers.threedig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_threedig_bool_val),0x08,
+ "3 digits", HFILL }},
+ { &hf_ansi_map_originationtriggers_fourdig,
+ { "4 digits", "ansi_map.originationtriggers.fourdig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_fourdig_bool_val),0x10,
+ "4 digits", HFILL }},
+ { &hf_ansi_map_originationtriggers_fivedig,
+ { "5 digits", "ansi_map.originationtriggers.fivedig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_fivedig_bool_val),0x20,
+ "5 digits", HFILL }},
+ { &hf_ansi_map_originationtriggers_sixdig,
+ { "6 digits", "ansi_map.originationtriggers.sixdig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_sixdig_bool_val),0x40,
+ "6 digits", HFILL }},
+ { &hf_ansi_map_originationtriggers_sevendig,
+ { "7 digits", "ansi_map.originationtriggers.sevendig",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_sevendig_bool_val),0x80,
+ "7 digits", HFILL }},
+ { &hf_ansi_map_originationtriggers_eightdig,
+ { "8 digits", "ansi_map.originationtriggers.eight",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_eightdig_bool_val),0x01,
+ "8 digits", HFILL }},
+ { &hf_ansi_map_originationtriggers_ninedig,
+ { "9 digits", "ansi_map.originationtriggers.nine",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_ninedig_bool_val),0x02,
+ "9 digits", HFILL }},
+ { &hf_ansi_map_originationtriggers_tendig,
+ { "10 digits", "ansi_map.originationtriggers.ten",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_tendig_bool_val),0x04,
+ "10 digits", HFILL }},
+ { &hf_ansi_map_originationtriggers_elevendig,
+ { "11 digits", "ansi_map.originationtriggers.eleven",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_elevendig_bool_val),0x08,
+ "11 digits", HFILL }},
+ { &hf_ansi_map_originationtriggers_thwelvedig,
+ { "12 digits", "ansi_map.originationtriggers.thwelv",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_thwelvdig_bool_val),0x10,
+ "12 digits", HFILL }},
+ { &hf_ansi_map_originationtriggers_thirteendig,
+ { "13 digits", "ansi_map.originationtriggers.thirteen",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_thirteendig_bool_val),0x20,
+ "13 digits", HFILL }},
+ { &hf_ansi_map_originationtriggers_fourteendig,
+ { "14 digits", "ansi_map.originationtriggers.fourteen",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_fourteendig_bool_val),0x40,
+ "14 digits", HFILL }},
+ { &hf_ansi_map_originationtriggers_fifteendig,
+ { "15 digits", "ansi_map.originationtriggers.fifteen",
+ FT_BOOLEAN, 8, TFS(&ansi_map_originationtriggers_fifteendig_bool_val),0x80,
+ "15 digits", HFILL }},
+
+ { &hf_ansi_map_triggercapability_init,
+ { "Introducing Star/Pound (INIT)", "ansi_map.triggercapability.init",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x01,
+ "Introducing Star/Pound (INIT)", HFILL }},
+ { &hf_ansi_map_triggercapability_kdigit,
+ { "K-digit (K-digit)", "ansi_map.triggercapability.kdigit",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x02,
+ "K-digit (K-digit)", HFILL }},
+ { &hf_ansi_map_triggercapability_all,
+ { "All_Calls (All)", "ansi_map.triggercapability.all",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x04,
+ "All_Calls (All)", HFILL }},
+ { &hf_ansi_map_triggercapability_rvtc,
+ { "Revertive_Call (RvtC)", "ansi_map.triggercapability.rvtc",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x08,
+ "Revertive_Call (RvtC)", HFILL }},
+ { &hf_ansi_map_triggercapability_oaa,
+ { "Origination_Attempt_Authorized (OAA)", "ansi_map.triggercapability.oaa",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x10,
+ "Origination_Attempt_Authorized (OAA)", HFILL }},
+ { &hf_ansi_map_triggercapability_oans,
+ { "O_Answer (OANS)", "ansi_map.triggercapability.oans",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x20,
+ "O_Answer (OANS)", HFILL }},
+ { &hf_ansi_map_triggercapability_odisc,
+ { "O_Disconnect (ODISC)", "ansi_map.triggercapability.odisc",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x40,
+ "O_Disconnect (ODISC)", HFILL }},
+ { &hf_ansi_map_triggercapability_ona,
+ { "O_No_Answer (ONA)", "ansi_map.triggercapability.ona",
+ FT_BOOLEAN, 8, TFS(&ansi_map_triggercapability_bool_val),0x80,
+ "O_No_Answer (ONA)", HFILL }},
+
#include "packet-ansi_map-hfarr.c"
};
/* List of subtrees */
static gint *ett[] = {
&ett_ansi_map,
+ &ett_mintype,
+ &ett_digitstype,
+ &ett_billingid,
+ &ett_mscid,
+ &ett_originationtriggers,
+ &ett_transactioncapability,
#include "packet-ansi_map-ettarr.c"
};
@@ -1014,7 +1973,6 @@ proto_reg_handoff_ansi_map(void)
add_ansi_tcap_subdissector(13 , ansi_map_handle);
add_ansi_tcap_subdissector(14 , ansi_map_handle);
-
data_handle = find_dissector("data");
}