diff options
author | Anders Broman <anders.broman@ericsson.com> | 2006-01-03 15:13:26 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2006-01-03 15:13:26 +0000 |
commit | 9d3228610a862c5d8bba52c391b380d0c78dad71 (patch) | |
tree | 237e69fa30eacaf68afdca19d4fb9e1fa69c9ce2 /asn1 | |
parent | 35743cded8aaa02de6c27e2383d204a50c700a9f (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.asn | 384 | ||||
-rw-r--r-- | asn1/ansi_map/ansi_map.cnf | 73 | ||||
-rw-r--r-- | asn1/ansi_map/packet-ansi_map-template.c | 1046 |
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 = ¶meter_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 = ¶meter_tvb @@ -50,8 +61,68 @@ VAL_PTR = ¶meter_tvb if (parameter_tvb){ dissect_ansi_map_digits_type(parameter_tvb,pinfo,tree); } + +#.FN_PARS OriginationTriggers +VAL_PTR = ¶meter_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 = ¶meter_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 = ¶meter_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 = ¶meter_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 = ¶meter_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"); } |