summaryrefslogtreecommitdiff
path: root/FS/FS/cdr/gsm_tap3_12.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2013-01-09 16:22:28 -0800
committerIvan Kohler <ivan@freeside.biz>2013-01-09 16:22:28 -0800
commit27ed323fad9fca12f507a524e1788fb37e36501e (patch)
tree19f3d13dee226e2527c860746083e6ee5ed19e97 /FS/FS/cdr/gsm_tap3_12.pm
parenteb70a0b5a299e8e77e64cd10ee515270fbe14044 (diff)
GSM TAP3.12 import format, RT#20767
Diffstat (limited to 'FS/FS/cdr/gsm_tap3_12.pm')
-rw-r--r--FS/FS/cdr/gsm_tap3_12.pm1563
1 files changed, 1563 insertions, 0 deletions
diff --git a/FS/FS/cdr/gsm_tap3_12.pm b/FS/FS/cdr/gsm_tap3_12.pm
new file mode 100644
index 0000000..d1536c0
--- /dev/null
+++ b/FS/FS/cdr/gsm_tap3_12.pm
@@ -0,0 +1,1563 @@
+package FS::cdr::gsm_tap3_12;
+use base qw( FS::cdr );
+
+use strict;
+use vars qw( %info );
+use Time::Local;
+#use Data::Dumper;
+
+%info = (
+ 'name' => 'GSM TAP3 release 12',
+ 'weight' => 50,
+ 'type' => 'asn.1',
+ 'import_fields' => [],
+ 'asn_format' => {
+ 'spec' => _asn_spec(),
+ 'macro' => 'TransferBatch', #XXX & skip the Notification ones?
+ 'arrayref' => sub { shift->{'callEventDetails'}; },
+ 'map' => {
+ 'startdate' => sub { my $callinfo = shift->{mobileOriginatedCall}{basicCallInformation};
+ my $timestamp = $callinfo->{callEventStartTimeStamp};
+ my $localTimeStamp = $timestamp->{localTimeStamp};
+ my $utcTimeOffsetCode = $timestamp->{utcTimeOffsetCode}; #XXX not handled, utcTimeOffsetInfo in header
+ $localTimeStamp =~ /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/ or die "unparsable timestamp: $localTimeStamp\n"; #. Dumper($callinfo);
+ my($year, $mon, $day, $hour, $min, $sec) = ($1, $2, $3, $4, $5, $6);
+ timelocal($sec, $min, $hour, $day, $mon-1, $year);
+ },
+ 'duration' => sub { shift->{mobileOriginatedCall}{basicCallInformation}{totalCallEventDuration} },
+ 'billsec' => sub { shift->{mobileOriginatedCall}{basicCallInformation}{totalCallEventDuration} }, #same..
+ 'src' => sub { shift->{mobileOriginatedCall}{basicCallInformation}{chargeableSubscriber}{simChargeableSubscriber}{msisdn} },
+ 'charged_party_imsi' => sub { shift->{mobileOriginatedCall}{basicCallInformation}{chargeableSubscriber}{simChargeableSubscriber}{imsi} },
+ 'dst' => sub { shift->{mobileOriginatedCall}{basicCallInformation}{destination}{calledNumber} }, #dialledDigits?
+ 'carrierid' => sub { shift->{mobileOriginatedCall}{locationInformation}{networkLocation}{recEntityCode} },
+ 'userfield' => sub { shift->{mobileOriginatedCall}{operatorSpecInformation}[0] },
+ 'servicecode' => sub { shift->{mobileOriginatedCall}{basicServiceUsedList}[0]{basicService}{serviceCode}{teleServiceCode} },
+ 'upstream_price' => sub { sprintf('%.5f', shift->{mobileOriginatedCall}{basicServiceUsedList}[0]{chargeInformationList}[0]{chargeDetailList}[0]{charge} / 100000 ) }, #XXX numberOfDecimalPlaces in header
+ 'calltypenum' => sub { shift->{mobileOriginatedCall}{basicServiceUsedList}[0]{chargeInformationList}[0]{callTypeGroup}{callTypelevel1} },
+ 'quantity' => sub { shift->{mobileOriginatedCall}{basicServiceUsedList}[0]{chargeInformationList}[0]{chargedUnits} },
+ 'quantity_able' => sub { shift->{mobileOriginatedCall}{basicServiceUsedList}[0]{chargeInformationList}[0]{chargeableUnits} },
+ },
+ },
+);
+
+sub _asn_spec {
+ <<'END';
+--
+--
+-- The following ASN.1 specification defines the abstract syntax for
+--
+-- Data Record Format Version 03
+-- Release 12
+--
+-- The specification is structured as follows:
+-- (1) structure of the Tap batch
+-- (2) definition of the individual Tap ‘records’
+-- (3) Tap data items and groups of data items used within (2)
+-- (4) Common, non-Tap data types
+-- (5) Tap data items for content charging
+--
+-- It is mainly a translation from the logical structure
+-- diagrams. Where appropriate, names used within the
+-- logical structure diagrams have been shortened.
+-- For repeating data items the name as used within the logical
+-- structure have been extended by adding ‘list’ or ‘table’
+-- (in some instances).
+--
+
+
+-- TAP-0312 DEFINITIONS IMPLICIT TAGS ::=
+
+-- BEGIN
+
+--
+-- Structure of a Tap batch
+--
+
+DataInterChange ::= CHOICE
+{
+ transferBatch TransferBatch,
+ notification Notification,
+...
+}
+
+-- Batch Control Information must always, both logically and physically,
+-- be the first group/item within Transfer Batch – this ensures that the
+-- TAP release version can be readily identified. Any new groups/items
+-- required may be inserted at any point after Batch Control Information
+
+TransferBatch ::= [APPLICATION 1] SEQUENCE
+{
+ batchControlInfo BatchControlInfo OPTIONAL, -- *m.m.
+ accountingInfo AccountingInfo OPTIONAL,
+ networkInfo NetworkInfo OPTIONAL, -- *m.m.
+ messageDescriptionInfo MessageDescriptionInfoList OPTIONAL,
+ callEventDetails CallEventDetailList OPTIONAL, -- *m.m.
+ auditControlInfo AuditControlInfo OPTIONAL, -- *m.m.
+...
+}
+
+Notification ::= [APPLICATION 2] SEQUENCE
+{
+ sender Sender OPTIONAL, -- *m.m.
+ recipient Recipient OPTIONAL, -- *m.m.
+ fileSequenceNumber FileSequenceNumber OPTIONAL, -- *m.m.
+ rapFileSequenceNumber RapFileSequenceNumber OPTIONAL,
+ fileCreationTimeStamp FileCreationTimeStamp OPTIONAL,
+ fileAvailableTimeStamp FileAvailableTimeStamp OPTIONAL, -- *m.m.
+ transferCutOffTimeStamp TransferCutOffTimeStamp OPTIONAL, -- *m.m.
+ specificationVersionNumber SpecificationVersionNumber OPTIONAL, -- *m.m.
+ releaseVersionNumber ReleaseVersionNumber OPTIONAL, -- *m.m.
+ fileTypeIndicator FileTypeIndicator OPTIONAL,
+ operatorSpecInformation OperatorSpecInfoList OPTIONAL,
+...
+}
+
+CallEventDetailList ::= [APPLICATION 3] SEQUENCE OF CallEventDetail
+
+CallEventDetail ::= CHOICE
+{
+ mobileOriginatedCall MobileOriginatedCall,
+ mobileTerminatedCall MobileTerminatedCall,
+ supplServiceEvent SupplServiceEvent,
+ serviceCentreUsage ServiceCentreUsage,
+ gprsCall GprsCall,
+ contentTransaction ContentTransaction,
+ locationService LocationService,
+ messagingEvent MessagingEvent,
+ mobileSession MobileSession,
+...
+}
+
+--
+-- Structure of the individual Tap records
+--
+
+BatchControlInfo ::= [APPLICATION 4] SEQUENCE
+{
+ sender Sender OPTIONAL, -- *m.m.
+ recipient Recipient OPTIONAL, -- *m.m.
+ fileSequenceNumber FileSequenceNumber OPTIONAL, -- *m.m.
+ fileCreationTimeStamp FileCreationTimeStamp OPTIONAL,
+ transferCutOffTimeStamp TransferCutOffTimeStamp OPTIONAL, -- *m.m.
+ fileAvailableTimeStamp FileAvailableTimeStamp OPTIONAL, -- *m.m.
+ specificationVersionNumber SpecificationVersionNumber OPTIONAL, -- *m.m.
+ releaseVersionNumber ReleaseVersionNumber OPTIONAL, -- *m.m.
+ fileTypeIndicator FileTypeIndicator OPTIONAL,
+ rapFileSequenceNumber RapFileSequenceNumber OPTIONAL,
+ operatorSpecInformation OperatorSpecInfoList OPTIONAL,
+...
+}
+
+AccountingInfo ::= [APPLICATION 5] SEQUENCE
+{
+ taxation TaxationList OPTIONAL,
+ discounting DiscountingList OPTIONAL,
+ localCurrency LocalCurrency OPTIONAL, -- *m.m.
+ tapCurrency TapCurrency OPTIONAL,
+ currencyConversionInfo CurrencyConversionList OPTIONAL,
+ tapDecimalPlaces TapDecimalPlaces OPTIONAL, -- *m.m.
+...
+}
+
+NetworkInfo ::= [APPLICATION 6] SEQUENCE
+{
+ utcTimeOffsetInfo UtcTimeOffsetInfoList OPTIONAL, -- *m.m.
+ recEntityInfo RecEntityInfoList OPTIONAL,
+...
+}
+
+MessageDescriptionInfoList ::= [APPLICATION 8] SEQUENCE OF MessageDescriptionInformation
+
+MobileOriginatedCall ::= [APPLICATION 9] SEQUENCE
+{
+ basicCallInformation MoBasicCallInformation OPTIONAL, -- *m.m.
+ locationInformation LocationInformation OPTIONAL, -- *m.m.
+ equipmentIdentifier ImeiOrEsn OPTIONAL,
+ basicServiceUsedList BasicServiceUsedList OPTIONAL, -- *m.m.
+ supplServiceCode SupplServiceCode OPTIONAL,
+ thirdPartyInformation ThirdPartyInformation OPTIONAL,
+ camelServiceUsed CamelServiceUsed OPTIONAL,
+ operatorSpecInformation OperatorSpecInfoList OPTIONAL,
+...
+}
+
+MobileTerminatedCall ::= [APPLICATION 10] SEQUENCE
+{
+ basicCallInformation MtBasicCallInformation OPTIONAL, -- *m.m.
+ locationInformation LocationInformation OPTIONAL, -- *m.m.
+ equipmentIdentifier ImeiOrEsn OPTIONAL,
+ basicServiceUsedList BasicServiceUsedList OPTIONAL, -- *m.m.
+ camelServiceUsed CamelServiceUsed OPTIONAL,
+ operatorSpecInformation OperatorSpecInfoList OPTIONAL,
+...
+}
+
+
+SupplServiceEvent ::= [APPLICATION 11] SEQUENCE
+{
+ chargeableSubscriber ChargeableSubscriber OPTIONAL, -- *m.m.
+ rapFileSequenceNumber RapFileSequenceNumber OPTIONAL,
+ locationInformation LocationInformation OPTIONAL, -- *m.m.
+ equipmentIdentifier ImeiOrEsn OPTIONAL,
+ supplServiceUsed SupplServiceUsed OPTIONAL, -- *m.m.
+ operatorSpecInformation OperatorSpecInfoList OPTIONAL,
+...
+}
+
+
+ServiceCentreUsage ::= [APPLICATION 12] SEQUENCE
+{
+ basicInformation ScuBasicInformation OPTIONAL, -- *m.m.
+ rapFileSequenceNumber RapFileSequenceNumber OPTIONAL,
+ servingNetwork ServingNetwork OPTIONAL,
+ recEntityCode RecEntityCode OPTIONAL, -- *m.m.
+ chargeInformation ChargeInformation OPTIONAL, -- *m.m.
+ scuChargeType ScuChargeType OPTIONAL, -- *m.m.
+ scuTimeStamps ScuTimeStamps OPTIONAL, -- *m.m.
+ operatorSpecInformation OperatorSpecInfoList OPTIONAL,
+...
+}
+
+GprsCall ::= [APPLICATION 14] SEQUENCE
+{
+ gprsBasicCallInformation GprsBasicCallInformation OPTIONAL, -- *m.m.
+ gprsLocationInformation GprsLocationInformation OPTIONAL, -- *m.m.
+ equipmentIdentifier ImeiOrEsn OPTIONAL,
+ gprsServiceUsed GprsServiceUsed OPTIONAL, -- *m.m.
+ camelServiceUsed CamelServiceUsed OPTIONAL,
+ operatorSpecInformation OperatorSpecInfoList OPTIONAL,
+...
+}
+
+ContentTransaction ::= [APPLICATION 17] SEQUENCE
+{
+ contentTransactionBasicInfo ContentTransactionBasicInfo OPTIONAL, -- *m.m.
+ chargedPartyInformation ChargedPartyInformation OPTIONAL, -- *m.m.
+ servingPartiesInformation ServingPartiesInformation OPTIONAL, -- *m.m.
+ contentServiceUsed ContentServiceUsedList OPTIONAL, -- *m.m.
+ operatorSpecInformation OperatorSpecInfoList OPTIONAL,
+...
+}
+
+LocationService ::= [APPLICATION 297] SEQUENCE
+{
+ rapFileSequenceNumber RapFileSequenceNumber OPTIONAL,
+ recEntityCode RecEntityCode OPTIONAL, -- *m.m.
+ callReference CallReference OPTIONAL,
+ trackingCustomerInformation TrackingCustomerInformation OPTIONAL,
+ lCSSPInformation LCSSPInformation OPTIONAL,
+ trackedCustomerInformation TrackedCustomerInformation OPTIONAL,
+ locationServiceUsage LocationServiceUsage OPTIONAL, -- *m.m.
+ operatorSpecInformation OperatorSpecInfoList OPTIONAL,
+...
+}
+
+MessagingEvent ::= [APPLICATION 433] SEQUENCE
+{
+ messagingEventService MessagingEventService OPTIONAL, -- *m.m.
+ chargedParty ChargedParty OPTIONAL, -- *m.m.
+ rapFileSequenceNumber RapFileSequenceNumber OPTIONAL,
+ simToolkitIndicator SimToolkitIndicator OPTIONAL,
+ geographicalLocation GeographicalLocation OPTIONAL,
+ eventReference EventReference OPTIONAL, -- *m.m.
+
+ recEntityCodeList RecEntityCodeList OPTIONAL, -- *m.m.
+ networkElementList NetworkElementList OPTIONAL,
+ locationArea LocationArea OPTIONAL,
+ cellId CellId OPTIONAL,
+ serviceStartTimestamp ServiceStartTimestamp OPTIONAL, -- *m.m.
+ nonChargedParty NonChargedParty OPTIONAL,
+ exchangeRateCode ExchangeRateCode OPTIONAL,
+ callTypeGroup CallTypeGroup OPTIONAL, -- *m.m.
+ charge Charge OPTIONAL, -- *m.m.
+ taxInformationList TaxInformationList OPTIONAL,
+ operatorSpecInformation OperatorSpecInfoList OPTIONAL,
+...
+}
+
+MobileSession ::= [APPLICATION 434] SEQUENCE
+{
+ mobileSessionService MobileSessionService OPTIONAL, -- *m.m.
+ chargedParty ChargedParty OPTIONAL, -- *m.m.
+ rapFileSequenceNumber RapFileSequenceNumber OPTIONAL,
+ simToolkitIndicator SimToolkitIndicator OPTIONAL,
+ geographicalLocation GeographicalLocation OPTIONAL,
+ locationArea LocationArea OPTIONAL,
+ cellId CellId OPTIONAL,
+ eventReference EventReference OPTIONAL, -- *m.m.
+
+ recEntityCodeList RecEntityCodeList OPTIONAL, -- *m.m.
+ serviceStartTimestamp ServiceStartTimestamp OPTIONAL, -- *m.m.
+ causeForTerm CauseForTerm OPTIONAL,
+ totalCallEventDuration TotalCallEventDuration OPTIONAL, -- *m.m.
+ nonChargedParty NonChargedParty OPTIONAL,
+ sessionChargeInfoList SessionChargeInfoList OPTIONAL, -- *m.m.
+ operatorSpecInformation OperatorSpecInfoList OPTIONAL,
+...
+}
+
+AuditControlInfo ::= [APPLICATION 15] SEQUENCE
+{
+ earliestCallTimeStamp EarliestCallTimeStamp OPTIONAL,
+ latestCallTimeStamp LatestCallTimeStamp OPTIONAL,
+ totalCharge TotalCharge OPTIONAL, -- *m.m.
+ totalChargeRefund TotalChargeRefund OPTIONAL,
+ totalTaxRefund TotalTaxRefund OPTIONAL,
+ totalTaxValue TotalTaxValue OPTIONAL, -- *m.m.
+ totalDiscountValue TotalDiscountValue OPTIONAL, -- *m.m.
+ totalDiscountRefund TotalDiscountRefund OPTIONAL,
+ totalAdvisedChargeValueList TotalAdvisedChargeValueList OPTIONAL,
+ callEventDetailsCount CallEventDetailsCount OPTIONAL, -- *m.m.
+ operatorSpecInformation OperatorSpecInfoList OPTIONAL,
+...
+}
+
+
+--
+-- Tap data items and groups of data items
+--
+
+AccessPointNameNI ::= [APPLICATION 261] AsciiString --(SIZE(1..63))
+
+AccessPointNameOI ::= [APPLICATION 262] AsciiString --(SIZE(1..37))
+
+ActualDeliveryTimeStamp ::= [APPLICATION 302] DateTime
+
+AddressStringDigits ::= BCDString
+
+AdvisedCharge ::= [APPLICATION 349] Charge
+
+AdvisedChargeCurrency ::= [APPLICATION 348] Currency
+
+AdvisedChargeInformation ::= [APPLICATION 351] SEQUENCE
+{
+ paidIndicator PaidIndicator OPTIONAL,
+ paymentMethod PaymentMethod OPTIONAL,
+ advisedChargeCurrency AdvisedChargeCurrency OPTIONAL,
+ advisedCharge AdvisedCharge OPTIONAL, -- *m.m.
+ commission Commission OPTIONAL,
+...
+}
+
+AgeOfLocation ::= [APPLICATION 396] INTEGER
+
+BasicService ::= [APPLICATION 36] SEQUENCE
+{
+ serviceCode BasicServiceCode OPTIONAL, -- *m.m.
+ transparencyIndicator TransparencyIndicator OPTIONAL,
+ fnur Fnur OPTIONAL,
+ userProtocolIndicator UserProtocolIndicator OPTIONAL,
+ guaranteedBitRate GuaranteedBitRate OPTIONAL,
+ maximumBitRate MaximumBitRate OPTIONAL,
+...
+}
+
+BasicServiceCode ::= [APPLICATION 426] CHOICE
+{
+ teleServiceCode TeleServiceCode,
+ bearerServiceCode BearerServiceCode,
+...
+}
+
+BasicServiceCodeList ::= [APPLICATION 37] SEQUENCE OF BasicServiceCode
+
+BasicServiceUsed ::= [APPLICATION 39] SEQUENCE
+{
+ basicService BasicService OPTIONAL, -- *m.m.
+ chargingTimeStamp ChargingTimeStamp OPTIONAL,
+ chargeInformationList ChargeInformationList OPTIONAL, -- *m.m.
+ hSCSDIndicator HSCSDIndicator OPTIONAL,
+...
+}
+
+BasicServiceUsedList ::= [APPLICATION 38] SEQUENCE OF BasicServiceUsed
+
+BearerServiceCode ::= [APPLICATION 40] HexString --(SIZE(2))
+
+EventReference ::= [APPLICATION 435] AsciiString
+
+
+CalledNumber ::= [APPLICATION 407] AddressStringDigits
+
+CalledPlace ::= [APPLICATION 42] AsciiString
+
+CalledRegion ::= [APPLICATION 46] AsciiString
+
+CallEventDetailsCount ::= [APPLICATION 43] INTEGER
+
+CallEventStartTimeStamp ::= [APPLICATION 44] DateTime
+
+CallingNumber ::= [APPLICATION 405] AddressStringDigits
+
+CallOriginator ::= [APPLICATION 41] SEQUENCE
+{
+ callingNumber CallingNumber OPTIONAL,
+ clirIndicator ClirIndicator OPTIONAL,
+ sMSOriginator SMSOriginator OPTIONAL,
+...
+}
+
+CallReference ::= [APPLICATION 45] OCTET STRING --(SIZE(1..8))
+
+CallTypeGroup ::= [APPLICATION 258] SEQUENCE
+{
+ callTypeLevel1 CallTypeLevel1 OPTIONAL, -- *m.m.
+ callTypeLevel2 CallTypeLevel2 OPTIONAL, -- *m.m.
+ callTypeLevel3 CallTypeLevel3 OPTIONAL, -- *m.m.
+...
+}
+
+CallTypeLevel1 ::= [APPLICATION 259] INTEGER
+
+CallTypeLevel2 ::= [APPLICATION 255] INTEGER
+
+CallTypeLevel3 ::= [APPLICATION 256] INTEGER
+
+CamelDestinationNumber ::= [APPLICATION 404] AddressStringDigits
+
+CamelInvocationFee ::= [APPLICATION 422] AbsoluteAmount
+
+CamelServiceKey ::= [APPLICATION 55] INTEGER
+
+CamelServiceLevel ::= [APPLICATION 56] INTEGER
+
+CamelServiceUsed ::= [APPLICATION 57] SEQUENCE
+{
+ camelServiceLevel CamelServiceLevel OPTIONAL,
+ camelServiceKey CamelServiceKey OPTIONAL, -- *m.m.
+ defaultCallHandling DefaultCallHandlingIndicator OPTIONAL,
+ exchangeRateCode ExchangeRateCode OPTIONAL,
+ taxInformation TaxInformationList OPTIONAL,
+ discountInformation DiscountInformation OPTIONAL,
+ camelInvocationFee CamelInvocationFee OPTIONAL,
+ threeGcamelDestination ThreeGcamelDestination OPTIONAL,
+ cseInformation CseInformation OPTIONAL,
+...
+}
+
+CauseForTerm ::= [APPLICATION 58] INTEGER
+
+CellId ::= [APPLICATION 59] INTEGER
+
+Charge ::= [APPLICATION 62] AbsoluteAmount
+
+ChargeableSubscriber ::= [APPLICATION 427] CHOICE
+{
+ simChargeableSubscriber SimChargeableSubscriber,
+ minChargeableSubscriber MinChargeableSubscriber,
+...
+}
+
+ChargeableUnits ::= [APPLICATION 65] INTEGER
+
+ChargeDetail ::= [APPLICATION 63] SEQUENCE
+{
+ chargeType ChargeType OPTIONAL, -- *m.m.
+ charge Charge OPTIONAL, -- *m.m.
+ chargeableUnits ChargeableUnits OPTIONAL,
+ chargedUnits ChargedUnits OPTIONAL,
+ chargeDetailTimeStamp ChargeDetailTimeStamp OPTIONAL,
+...
+}
+
+ChargeDetailList ::= [APPLICATION 64] SEQUENCE OF ChargeDetail
+
+ChargeDetailTimeStamp ::= [APPLICATION 410] ChargingTimeStamp
+
+ChargedItem ::= [APPLICATION 66] AsciiString --(SIZE(1))
+
+ChargedParty ::= [APPLICATION 436] SEQUENCE
+{
+ imsi Imsi OPTIONAL, -- *m.m.
+ msisdn Msisdn OPTIONAL,
+ publicUserId PublicUserId OPTIONAL,
+ homeBid HomeBid OPTIONAL,
+ homeLocationDescription HomeLocationDescription OPTIONAL,
+ imei Imei OPTIONAL,
+...
+}
+
+ChargedPartyEquipment ::= [APPLICATION 323] SEQUENCE
+{
+ equipmentIdType EquipmentIdType OPTIONAL, -- *m.m.
+ equipmentId EquipmentId OPTIONAL, -- *m.m.
+...
+}
+
+ChargedPartyHomeIdentification ::= [APPLICATION 313] SEQUENCE
+{
+ homeIdType HomeIdType OPTIONAL, -- *m.m.
+ homeIdentifier HomeIdentifier OPTIONAL, -- *m.m.
+...
+}
+
+ChargedPartyHomeIdList ::= [APPLICATION 314] SEQUENCE OF
+ ChargedPartyHomeIdentification
+
+ChargedPartyIdentification ::= [APPLICATION 309] SEQUENCE
+{
+ chargedPartyIdType ChargedPartyIdType OPTIONAL, -- *m.m.
+ chargedPartyIdentifier ChargedPartyIdentifier OPTIONAL, -- *m.m.
+...
+}
+
+ChargedPartyIdentifier ::= [APPLICATION 287] AsciiString
+
+ChargedPartyIdList ::= [APPLICATION 310] SEQUENCE OF ChargedPartyIdentification
+
+ChargedPartyIdType ::= [APPLICATION 305] INTEGER
+
+ChargedPartyInformation ::= [APPLICATION 324] SEQUENCE
+{
+ chargedPartyIdList ChargedPartyIdList OPTIONAL, -- *m.m.
+ chargedPartyHomeIdList ChargedPartyHomeIdList OPTIONAL,
+ chargedPartyLocationList ChargedPartyLocationList OPTIONAL,
+ chargedPartyEquipment ChargedPartyEquipment OPTIONAL,
+...
+}
+
+ChargedPartyLocation ::= [APPLICATION 320] SEQUENCE
+{
+ locationIdType LocationIdType OPTIONAL, -- *m.m.
+ locationIdentifier LocationIdentifier OPTIONAL, -- *m.m.
+...
+}
+
+ChargedPartyLocationList ::= [APPLICATION 321] SEQUENCE OF ChargedPartyLocation
+
+ChargedPartyStatus ::= [APPLICATION 67] INTEGER
+
+ChargedUnits ::= [APPLICATION 68] INTEGER
+
+ChargeInformation ::= [APPLICATION 69] SEQUENCE
+{
+ chargedItem ChargedItem OPTIONAL, -- *m.m.
+ exchangeRateCode ExchangeRateCode OPTIONAL,
+ callTypeGroup CallTypeGroup OPTIONAL,
+ chargeDetailList ChargeDetailList OPTIONAL, -- *m.m.
+ taxInformation TaxInformationList OPTIONAL,
+ discountInformation DiscountInformation OPTIONAL,
+...
+}
+
+ChargeInformationList ::= [APPLICATION 70] SEQUENCE OF ChargeInformation
+
+ChargeRefundIndicator ::= [APPLICATION 344] INTEGER
+
+ChargeType ::= [APPLICATION 71] NumberString --(SIZE(2..3))
+
+ChargingId ::= [APPLICATION 72] INTEGER
+
+ChargingPoint ::= [APPLICATION 73] AsciiString --(SIZE(1))
+
+ChargingTimeStamp ::= [APPLICATION 74] DateTime
+
+ClirIndicator ::= [APPLICATION 75] INTEGER
+
+Commission ::= [APPLICATION 350] Charge
+
+CompletionTimeStamp ::= [APPLICATION 76] DateTime
+
+ContentChargingPoint ::= [APPLICATION 345] INTEGER
+
+ContentProvider ::= [APPLICATION 327] SEQUENCE
+{
+ contentProviderIdType ContentProviderIdType OPTIONAL, -- *m.m.
+ contentProviderIdentifier ContentProviderIdentifier OPTIONAL, -- *m.m.
+...
+}
+
+ContentProviderIdentifier ::= [APPLICATION 292] AsciiString
+
+ContentProviderIdList ::= [APPLICATION 328] SEQUENCE OF ContentProvider
+
+ContentProviderIdType ::= [APPLICATION 291] INTEGER
+
+ContentProviderName ::= [APPLICATION 334] AsciiString
+
+ContentServiceUsed ::= [APPLICATION 352] SEQUENCE
+{
+ contentTransactionCode ContentTransactionCode OPTIONAL, -- *m.m.
+ contentTransactionType ContentTransactionType OPTIONAL, -- *m.m.
+ objectType ObjectType OPTIONAL,
+ transactionDescriptionSupp TransactionDescriptionSupp OPTIONAL,
+ transactionShortDescription TransactionShortDescription OPTIONAL, -- *m.m.
+ transactionDetailDescription TransactionDetailDescription OPTIONAL,
+ transactionIdentifier TransactionIdentifier OPTIONAL, -- *m.m.
+ transactionAuthCode TransactionAuthCode OPTIONAL,
+ dataVolumeIncoming DataVolumeIncoming OPTIONAL,
+ dataVolumeOutgoing DataVolumeOutgoing OPTIONAL,
+ totalDataVolume TotalDataVolume OPTIONAL,
+ chargeRefundIndicator ChargeRefundIndicator OPTIONAL,
+ contentChargingPoint ContentChargingPoint OPTIONAL,
+ chargeInformationList ChargeInformationList OPTIONAL,
+ advisedChargeInformation AdvisedChargeInformation OPTIONAL,
+...
+}
+
+ContentServiceUsedList ::= [APPLICATION 285] SEQUENCE OF ContentServiceUsed
+
+ContentTransactionBasicInfo ::= [APPLICATION 304] SEQUENCE
+{
+ rapFileSequenceNumber RapFileSequenceNumber OPTIONAL,
+ orderPlacedTimeStamp OrderPlacedTimeStamp OPTIONAL,
+ requestedDeliveryTimeStamp RequestedDeliveryTimeStamp OPTIONAL,
+ actualDeliveryTimeStamp ActualDeliveryTimeStamp OPTIONAL,
+ totalTransactionDuration TotalTransactionDuration OPTIONAL,
+ transactionStatus TransactionStatus OPTIONAL,
+...
+}
+
+ContentTransactionCode ::= [APPLICATION 336] INTEGER
+
+ContentTransactionType ::= [APPLICATION 337] INTEGER
+
+CseInformation ::= [APPLICATION 79] OCTET STRING --(SIZE(1..40))
+
+CurrencyConversion ::= [APPLICATION 106] SEQUENCE
+{
+ exchangeRateCode ExchangeRateCode OPTIONAL, -- *m.m.
+ numberOfDecimalPlaces NumberOfDecimalPlaces OPTIONAL, -- *m.m.
+ exchangeRate ExchangeRate OPTIONAL, -- *m.m.
+...
+}
+
+CurrencyConversionList ::= [APPLICATION 80] SEQUENCE OF CurrencyConversion
+
+CustomerIdentifier ::= [APPLICATION 364] AsciiString
+
+CustomerIdType ::= [APPLICATION 363] INTEGER
+
+DataVolume ::= INTEGER
+
+DataVolumeIncoming ::= [APPLICATION 250] DataVolume
+
+DataVolumeOutgoing ::= [APPLICATION 251] DataVolume
+
+--
+-- The following datatypes are used to denote timestamps.
+-- Each timestamp consists of a local timestamp and a
+-- corresponding UTC time offset.
+-- Except for the timestamps used within the Batch Control
+-- Information and the Audit Control Information
+-- the UTC time offset is identified by a code referencing
+-- the UtcTimeOffsetInfo.
+--
+
+--
+-- We start with the “short” datatype referencing the
+-- UtcTimeOffsetInfo.
+--
+
+DateTime ::= SEQUENCE
+{
+ --
+ -- Local timestamps are noted in the format
+ --
+ -- CCYYMMDDhhmmss
+ --
+ -- where CC = century (‘19’, ‘20’,...)
+ -- YY = year (‘00’ – ‘99’)
+ -- MM = month (‘01’, ‘02’, ... , ‘12’)
+ -- DD = day (‘01’, ‘02’, ... , ‘31’)
+ -- hh = hour (‘00’, ‘01’, ... , ‘23’)
+ -- mm = minutes (‘00’, ‘01’, ... , ‘59’)
+ -- ss = seconds (‘00’, ‘01’, ... , ‘59’)
+ --
+ localTimeStamp LocalTimeStamp OPTIONAL, -- *m.m.
+ utcTimeOffsetCode UtcTimeOffsetCode OPTIONAL, -- *m.m.
+...
+}
+
+--
+-- The following version is the “long” datatype
+-- containing the UTC time offset directly.
+--
+
+DateTimeLong ::= SEQUENCE
+{
+ localTimeStamp LocalTimeStamp OPTIONAL, -- *m.m.
+ utcTimeOffset UtcTimeOffset OPTIONAL, -- *m.m.
+...
+}
+
+DefaultCallHandlingIndicator ::= [APPLICATION 87] INTEGER
+
+DepositTimeStamp ::= [APPLICATION 88] DateTime
+
+Destination ::= [APPLICATION 89] SEQUENCE
+{
+ calledNumber CalledNumber OPTIONAL,
+ dialledDigits DialledDigits OPTIONAL,
+ calledPlace CalledPlace OPTIONAL,
+ calledRegion CalledRegion OPTIONAL,
+ sMSDestinationNumber SMSDestinationNumber OPTIONAL,
+...
+}
+
+DestinationNetwork ::= [APPLICATION 90] NetworkId
+
+DialledDigits ::= [APPLICATION 279] AsciiString
+
+Discount ::= [APPLICATION 412] DiscountValue
+
+DiscountableAmount ::= [APPLICATION 423] AbsoluteAmount
+
+DiscountApplied ::= [APPLICATION 428] CHOICE
+{
+ fixedDiscountValue FixedDiscountValue,
+ discountRate DiscountRate,
+...
+}
+
+DiscountCode ::= [APPLICATION 91] INTEGER
+
+DiscountInformation ::= [APPLICATION 96] SEQUENCE
+{
+ discountCode DiscountCode OPTIONAL, -- *m.m.
+ discount Discount OPTIONAL,
+ discountableAmount DiscountableAmount OPTIONAL,
+...
+}
+
+Discounting ::= [APPLICATION 94] SEQUENCE
+{
+ discountCode DiscountCode OPTIONAL, -- *m.m.
+ discountApplied DiscountApplied OPTIONAL, -- *m.m.
+...
+}
+
+DiscountingList ::= [APPLICATION 95] SEQUENCE OF Discounting
+
+DiscountRate ::= [APPLICATION 92] PercentageRate
+
+DiscountValue ::= AbsoluteAmount
+
+DistanceChargeBandCode ::= [APPLICATION 98] AsciiString --(SIZE(1))
+
+EarliestCallTimeStamp ::= [APPLICATION 101] DateTimeLong
+
+ElementId ::= [APPLICATION 437] AsciiString
+
+ElementType ::= [APPLICATION 438] INTEGER
+
+EquipmentId ::= [APPLICATION 290] AsciiString
+
+EquipmentIdType ::= [APPLICATION 322] INTEGER
+
+Esn ::= [APPLICATION 103] NumberString
+
+ExchangeRate ::= [APPLICATION 104] INTEGER
+
+ExchangeRateCode ::= [APPLICATION 105] Code
+
+FileAvailableTimeStamp ::= [APPLICATION 107] DateTimeLong
+
+FileCreationTimeStamp ::= [APPLICATION 108] DateTimeLong
+
+FileSequenceNumber ::= [APPLICATION 109] NumberString --(SIZE(5))
+
+FileTypeIndicator ::= [APPLICATION 110] AsciiString --(SIZE(1))
+
+FixedDiscountValue ::= [APPLICATION 411] DiscountValue
+
+Fnur ::= [APPLICATION 111] INTEGER
+
+GeographicalLocation ::= [APPLICATION 113] SEQUENCE
+{
+ servingNetwork ServingNetwork OPTIONAL,
+ servingBid ServingBid OPTIONAL,
+ servingLocationDescription ServingLocationDescription OPTIONAL,
+...
+}
+
+GprsBasicCallInformation ::= [APPLICATION 114] SEQUENCE
+{
+ gprsChargeableSubscriber GprsChargeableSubscriber OPTIONAL, -- *m.m.
+ rapFileSequenceNumber RapFileSequenceNumber OPTIONAL,
+ gprsDestination GprsDestination OPTIONAL, -- *m.m.
+ callEventStartTimeStamp CallEventStartTimeStamp OPTIONAL, -- *m.m.
+ totalCallEventDuration TotalCallEventDuration OPTIONAL, -- *m.m.
+ causeForTerm CauseForTerm OPTIONAL,
+ partialTypeIndicator PartialTypeIndicator OPTIONAL,
+ pDPContextStartTimestamp PDPContextStartTimestamp OPTIONAL,
+ networkInitPDPContext NetworkInitPDPContext OPTIONAL,
+ chargingId ChargingId OPTIONAL, -- *m.m.
+...
+}
+
+GprsChargeableSubscriber ::= [APPLICATION 115] SEQUENCE
+{
+ chargeableSubscriber ChargeableSubscriber OPTIONAL,
+ pdpAddress PdpAddress OPTIONAL,
+ networkAccessIdentifier NetworkAccessIdentifier OPTIONAL,
+...
+}
+
+GprsDestination ::= [APPLICATION 116] SEQUENCE
+{
+ accessPointNameNI AccessPointNameNI OPTIONAL, -- *m.m.
+ accessPointNameOI AccessPointNameOI OPTIONAL,
+...
+}
+
+GprsLocationInformation ::= [APPLICATION 117] SEQUENCE
+{
+ gprsNetworkLocation GprsNetworkLocation OPTIONAL, -- *m.m.
+ homeLocationInformation HomeLocationInformation OPTIONAL,
+ geographicalLocation GeographicalLocation OPTIONAL,
+...
+}
+
+GprsNetworkLocation ::= [APPLICATION 118] SEQUENCE
+{
+ recEntity RecEntityCodeList OPTIONAL, -- *m.m.
+ locationArea LocationArea OPTIONAL,
+ cellId CellId OPTIONAL,
+...
+}
+
+GprsServiceUsed ::= [APPLICATION 121] SEQUENCE
+{
+ iMSSignallingContext IMSSignallingContext OPTIONAL,
+ dataVolumeIncoming DataVolumeIncoming OPTIONAL, -- *m.m.
+ dataVolumeOutgoing DataVolumeOutgoing OPTIONAL, -- *m.m.
+ chargeInformationList ChargeInformationList OPTIONAL, -- *m.m.
+...
+}
+
+GsmChargeableSubscriber ::= [APPLICATION 286] SEQUENCE
+{
+ imsi Imsi OPTIONAL,
+ msisdn Msisdn OPTIONAL,
+...
+}
+
+GuaranteedBitRate ::= [APPLICATION 420] OCTET STRING --(SIZE (1))
+
+HomeBid ::= [APPLICATION 122] Bid
+
+HomeIdentifier ::= [APPLICATION 288] AsciiString
+
+HomeIdType ::= [APPLICATION 311] INTEGER
+
+HomeLocationDescription ::= [APPLICATION 413] LocationDescription
+
+HomeLocationInformation ::= [APPLICATION 123] SEQUENCE
+{
+ homeBid HomeBid OPTIONAL, -- *m.m.
+ homeLocationDescription HomeLocationDescription OPTIONAL, -- *m.m.
+...
+}
+
+HorizontalAccuracyDelivered ::= [APPLICATION 392] INTEGER
+
+HorizontalAccuracyRequested ::= [APPLICATION 385] INTEGER
+
+HSCSDIndicator ::= [APPLICATION 424] AsciiString --(SIZE(1))
+
+Imei ::= [APPLICATION 128] BCDString --(SIZE(7..8))
+
+ImeiOrEsn ::= [APPLICATION 429] CHOICE
+{
+ imei Imei,
+ esn Esn,
+...
+}
+
+Imsi ::= [APPLICATION 129] BCDString --(SIZE(3..8))
+
+IMSSignallingContext ::= [APPLICATION 418] INTEGER
+
+InternetServiceProvider ::= [APPLICATION 329] SEQUENCE
+{
+ ispIdType IspIdType OPTIONAL, -- *m.m.
+ ispIdentifier IspIdentifier OPTIONAL, -- *m.m.
+...
+}
+
+InternetServiceProviderIdList ::= [APPLICATION 330] SEQUENCE OF InternetServiceProvider
+
+IspIdentifier ::= [APPLICATION 294] AsciiString
+
+IspIdType ::= [APPLICATION 293] INTEGER
+
+ISPList ::= [APPLICATION 378] SEQUENCE OF InternetServiceProvider
+
+NetworkIdType ::= [APPLICATION 331] INTEGER
+
+NetworkIdentifier ::= [APPLICATION 295] AsciiString
+
+Network ::= [APPLICATION 332] SEQUENCE
+{
+ networkIdType NetworkIdType OPTIONAL, -- *m.m.
+ networkIdentifier NetworkIdentifier OPTIONAL, -- *m.m.
+...
+}
+
+NetworkList ::= [APPLICATION 333] SEQUENCE OF Network
+
+LatestCallTimeStamp ::= [APPLICATION 133] DateTimeLong
+
+LCSQosDelivered ::= [APPLICATION 390] SEQUENCE
+{
+ lCSTransactionStatus LCSTransactionStatus OPTIONAL,
+ horizontalAccuracyDelivered HorizontalAccuracyDelivered OPTIONAL,
+ verticalAccuracyDelivered VerticalAccuracyDelivered OPTIONAL,
+ responseTime ResponseTime OPTIONAL,
+ positioningMethod PositioningMethod OPTIONAL,
+ trackingPeriod TrackingPeriod OPTIONAL,
+ trackingFrequency TrackingFrequency OPTIONAL,
+ ageOfLocation AgeOfLocation OPTIONAL,
+...
+}
+
+LCSQosRequested ::= [APPLICATION 383] SEQUENCE
+{
+ lCSRequestTimestamp LCSRequestTimestamp OPTIONAL, -- *m.m.
+ horizontalAccuracyRequested HorizontalAccuracyRequested OPTIONAL,
+ verticalAccuracyRequested VerticalAccuracyRequested OPTIONAL,
+ responseTimeCategory ResponseTimeCategory OPTIONAL,
+ trackingPeriod TrackingPeriod OPTIONAL,
+ trackingFrequency TrackingFrequency OPTIONAL,
+...
+}
+
+LCSRequestTimestamp ::= [APPLICATION 384] DateTime
+
+LCSSPIdentification ::= [APPLICATION 375] SEQUENCE
+{
+ contentProviderIdType ContentProviderIdType OPTIONAL, -- *m.m.
+ contentProviderIdentifier ContentProviderIdentifier OPTIONAL, -- *m.m.
+...
+}
+
+LCSSPIdentificationList ::= [APPLICATION 374] SEQUENCE OF LCSSPIdentification
+
+LCSSPInformation ::= [APPLICATION 373] SEQUENCE
+{
+ lCSSPIdentificationList LCSSPIdentificationList OPTIONAL, -- *m.m.
+ iSPList ISPList OPTIONAL,
+ networkList NetworkList OPTIONAL,
+...
+}
+
+LCSTransactionStatus ::= [APPLICATION 391] INTEGER
+
+LocalCurrency ::= [APPLICATION 135] Currency
+
+LocalTimeStamp ::= [APPLICATION 16] NumberString --(SIZE(14))
+
+LocationArea ::= [APPLICATION 136] INTEGER
+
+LocationDescription ::= AsciiString
+
+LocationIdentifier ::= [APPLICATION 289] AsciiString
+
+LocationIdType ::= [APPLICATION 315] INTEGER
+
+LocationInformation ::= [APPLICATION 138] SEQUENCE
+{
+ networkLocation NetworkLocation OPTIONAL, -- *m.m.
+ homeLocationInformation HomeLocationInformation OPTIONAL,
+ geographicalLocation GeographicalLocation OPTIONAL,
+...
+}
+
+LocationServiceUsage ::= [APPLICATION 382] SEQUENCE
+{
+ lCSQosRequested LCSQosRequested OPTIONAL, -- *m.m.
+ lCSQosDelivered LCSQosDelivered OPTIONAL,
+ chargingTimeStamp ChargingTimeStamp OPTIONAL,
+ chargeInformationList ChargeInformationList OPTIONAL, -- *m.m.
+...
+}
+
+MaximumBitRate ::= [APPLICATION 421] OCTET STRING --(SIZE (1))
+
+Mdn ::= [APPLICATION 253] NumberString
+
+MessageDescription ::= [APPLICATION 142] AsciiString
+
+MessageDescriptionCode ::= [APPLICATION 141] Code
+
+MessageDescriptionInformation ::= [APPLICATION 143] SEQUENCE
+{
+ messageDescriptionCode MessageDescriptionCode OPTIONAL, -- *m.m.
+ messageDescription MessageDescription OPTIONAL, -- *m.m.
+...
+}
+
+MessageStatus ::= [APPLICATION 144] INTEGER
+
+MessageType ::= [APPLICATION 145] INTEGER
+
+MessagingEventService ::= [APPLICATION 439] INTEGER
+
+Min ::= [APPLICATION 146] NumberString --(SIZE(2..15))
+
+MinChargeableSubscriber ::= [APPLICATION 254] SEQUENCE
+{
+ min Min OPTIONAL, -- *m.m.
+ mdn Mdn OPTIONAL,
+...
+}
+
+MoBasicCallInformation ::= [APPLICATION 147] SEQUENCE
+{
+ chargeableSubscriber ChargeableSubscriber OPTIONAL, -- *m.m.
+ rapFileSequenceNumber RapFileSequenceNumber OPTIONAL,
+ destination Destination OPTIONAL,
+ destinationNetwork DestinationNetwork OPTIONAL,
+ callEventStartTimeStamp CallEventStartTimeStamp OPTIONAL, -- *m.m.
+ totalCallEventDuration TotalCallEventDuration OPTIONAL, -- *m.m.
+ simToolkitIndicator SimToolkitIndicator OPTIONAL,
+ causeForTerm CauseForTerm OPTIONAL,
+...
+}
+
+MobileSessionService ::= [APPLICATION 440] INTEGER
+
+Msisdn ::= [APPLICATION 152] BCDString --(SIZE(1..9))
+
+MtBasicCallInformation ::= [APPLICATION 153] SEQUENCE
+{
+ chargeableSubscriber ChargeableSubscriber OPTIONAL, -- *m.m.
+ rapFileSequenceNumber RapFileSequenceNumber OPTIONAL,
+ callOriginator CallOriginator OPTIONAL,
+ originatingNetwork OriginatingNetwork OPTIONAL,
+ callEventStartTimeStamp CallEventStartTimeStamp OPTIONAL, -- *m.m.
+ totalCallEventDuration TotalCallEventDuration OPTIONAL, -- *m.m.
+ simToolkitIndicator SimToolkitIndicator OPTIONAL,
+ causeForTerm CauseForTerm OPTIONAL,
+...
+}
+
+NetworkAccessIdentifier ::= [APPLICATION 417] AsciiString
+
+NetworkElement ::= [APPLICATION 441] SEQUENCE
+{
+elementType ElementType OPTIONAL, -- *m.m.
+elementId ElementId OPTIONAL, -- *m.m.
+...
+}
+
+NetworkElementList ::= [APPLICATION 442] SEQUENCE OF NetworkElement
+
+NetworkId ::= AsciiString --(SIZE(1..6))
+
+NetworkInitPDPContext ::= [APPLICATION 245] INTEGER
+
+NetworkLocation ::= [APPLICATION 156] SEQUENCE
+{
+ recEntityCode RecEntityCode OPTIONAL, -- *m.m.
+ callReference CallReference OPTIONAL,
+ locationArea LocationArea OPTIONAL,
+ cellId CellId OPTIONAL,
+...
+}
+
+NonChargedNumber ::= [APPLICATION 402] AsciiString
+
+NonChargedParty ::= [APPLICATION 443] SEQUENCE
+{
+ nonChargedPartyNumber NonChargedPartyNumber OPTIONAL,
+ nonChargedPublicUserId NonChargedPublicUserId OPTIONAL,
+...
+}
+
+NonChargedPartyNumber ::= [APPLICATION 444] AddressStringDigits
+
+NonChargedPublicUserId ::= [APPLICATION 445] AsciiString
+
+NumberOfDecimalPlaces ::= [APPLICATION 159] INTEGER
+
+ObjectType ::= [APPLICATION 281] INTEGER
+
+OperatorSpecInfoList ::= [APPLICATION 162] SEQUENCE OF OperatorSpecInformation
+
+OperatorSpecInformation ::= [APPLICATION 163] AsciiString
+
+OrderPlacedTimeStamp ::= [APPLICATION 300] DateTime
+
+OriginatingNetwork ::= [APPLICATION 164] NetworkId
+
+PacketDataProtocolAddress ::= [APPLICATION 165] AsciiString
+
+PaidIndicator ::= [APPLICATION 346] INTEGER
+
+PartialTypeIndicator ::= [APPLICATION 166] AsciiString --(SIZE(1))
+
+PaymentMethod ::= [APPLICATION 347] INTEGER
+
+PdpAddress ::= [APPLICATION 167] PacketDataProtocolAddress
+
+PDPContextStartTimestamp ::= [APPLICATION 260] DateTime
+
+PlmnId ::= [APPLICATION 169] AsciiString --(SIZE(5))
+
+PositioningMethod ::= [APPLICATION 395] INTEGER
+
+PriorityCode ::= [APPLICATION 170] INTEGER
+
+PublicUserId ::= [APPLICATION 446] AsciiString
+
+RapFileSequenceNumber ::= [APPLICATION 181] FileSequenceNumber
+
+RecEntityCode ::= [APPLICATION 184] Code
+
+RecEntityCodeList ::= [APPLICATION 185] SEQUENCE OF RecEntityCode
+
+RecEntityId ::= [APPLICATION 400] AsciiString
+
+RecEntityInfoList ::= [APPLICATION 188] SEQUENCE OF RecEntityInformation
+
+RecEntityInformation ::= [APPLICATION 183] SEQUENCE
+{
+ recEntityCode RecEntityCode OPTIONAL, -- *m.m.
+ recEntityType RecEntityType OPTIONAL, -- *m.m.
+ recEntityId RecEntityId OPTIONAL, -- *m.m.
+...
+}
+
+RecEntityType ::= [APPLICATION 186] INTEGER
+
+Recipient ::= [APPLICATION 182] PlmnId
+
+ReleaseVersionNumber ::= [APPLICATION 189] INTEGER
+
+RequestedDeliveryTimeStamp ::= [APPLICATION 301] DateTime
+
+ResponseTime ::= [APPLICATION 394] INTEGER
+
+ResponseTimeCategory ::= [APPLICATION 387] INTEGER
+
+ScuBasicInformation ::= [APPLICATION 191] SEQUENCE
+{
+ chargeableSubscriber ScuChargeableSubscriber OPTIONAL, -- *m.m.
+ chargedPartyStatus ChargedPartyStatus OPTIONAL, -- *m.m.
+ nonChargedNumber NonChargedNumber OPTIONAL, -- *m.m.
+ clirIndicator ClirIndicator OPTIONAL,
+ originatingNetwork OriginatingNetwork OPTIONAL,
+ destinationNetwork DestinationNetwork OPTIONAL,
+...
+}
+
+ScuChargeType ::= [APPLICATION 192] SEQUENCE
+{
+ messageStatus MessageStatus OPTIONAL, -- *m.m.
+ priorityCode PriorityCode OPTIONAL, -- *m.m.
+ distanceChargeBandCode DistanceChargeBandCode OPTIONAL,
+ messageType MessageType OPTIONAL, -- *m.m.
+ messageDescriptionCode MessageDescriptionCode OPTIONAL, -- *m.m.
+...
+}
+
+ScuTimeStamps ::= [APPLICATION 193] SEQUENCE
+{
+ depositTimeStamp DepositTimeStamp OPTIONAL, -- *m.m.
+ completionTimeStamp CompletionTimeStamp OPTIONAL, -- *m.m.
+ chargingPoint ChargingPoint OPTIONAL, -- *m.m.
+...
+}
+
+ScuChargeableSubscriber ::= [APPLICATION 430] CHOICE
+{
+ gsmChargeableSubscriber GsmChargeableSubscriber,
+ minChargeableSubscriber MinChargeableSubscriber,
+...
+}
+
+Sender ::= [APPLICATION 196] PlmnId
+
+ServiceStartTimestamp ::= [APPLICATION 447] DateTime
+
+ServingBid ::= [APPLICATION 198] Bid
+
+ServingLocationDescription ::= [APPLICATION 414] LocationDescription
+
+ServingNetwork ::= [APPLICATION 195] AsciiString
+
+ServingPartiesInformation ::= [APPLICATION 335] SEQUENCE
+{
+ contentProviderName ContentProviderName OPTIONAL, -- *m.m.
+ contentProviderIdList ContentProviderIdList OPTIONAL,
+ internetServiceProviderIdList InternetServiceProviderIdList OPTIONAL,
+ networkList NetworkList OPTIONAL,
+...
+}
+
+SessionChargeInfoList ::= [APPLICATION 448] SEQUENCE OF SessionChargeInformation
+
+SessionChargeInformation ::= [APPLICATION 449] SEQUENCE
+{
+chargedItem ChargedItem OPTIONAL, -- *m.m.
+exchangeRateCode ExchangeRateCode OPTIONAL,
+ callTypeGroup CallTypeGroup OPTIONAL, -- *m.m.
+ chargeDetailList ChargeDetailList OPTIONAL, -- *m.m.
+ taxInformationList TaxInformationList OPTIONAL,
+...
+}
+
+SimChargeableSubscriber ::= [APPLICATION 199] SEQUENCE
+{
+ imsi Imsi OPTIONAL, -- *m.m.
+ msisdn Msisdn OPTIONAL,
+...
+}
+
+SimToolkitIndicator ::= [APPLICATION 200] AsciiString --(SIZE(1))
+
+SMSDestinationNumber ::= [APPLICATION 419] AsciiString
+
+SMSOriginator ::= [APPLICATION 425] AsciiString
+
+SpecificationVersionNumber ::= [APPLICATION 201] INTEGER
+
+SsParameters ::= [APPLICATION 204] AsciiString --(SIZE(1..40))
+
+SupplServiceActionCode ::= [APPLICATION 208] INTEGER
+
+SupplServiceCode ::= [APPLICATION 209] HexString --(SIZE(2))
+
+SupplServiceUsed ::= [APPLICATION 206] SEQUENCE
+{
+ supplServiceCode SupplServiceCode OPTIONAL, -- *m.m.
+ supplServiceActionCode SupplServiceActionCode OPTIONAL, -- *m.m.
+ ssParameters SsParameters OPTIONAL,
+ chargingTimeStamp ChargingTimeStamp OPTIONAL,
+ chargeInformation ChargeInformation OPTIONAL,
+ basicServiceCodeList BasicServiceCodeList OPTIONAL,
+...
+}
+
+TapCurrency ::= [APPLICATION 210] Currency
+
+TapDecimalPlaces ::= [APPLICATION 244] INTEGER
+
+TaxableAmount ::= [APPLICATION 398] AbsoluteAmount
+
+Taxation ::= [APPLICATION 216] SEQUENCE
+{
+ taxCode TaxCode OPTIONAL, -- *m.m.
+ taxType TaxType OPTIONAL, -- *m.m.
+ taxRate TaxRate OPTIONAL,
+ chargeType ChargeType OPTIONAL,
+ taxIndicator TaxIndicator OPTIONAL,
+...
+}
+
+TaxationList ::= [APPLICATION 211] SEQUENCE OF Taxation
+
+TaxCode ::= [APPLICATION 212] INTEGER
+
+TaxIndicator ::= [APPLICATION 432] AsciiString --(SIZE(1))
+
+TaxInformation ::= [APPLICATION 213] SEQUENCE
+{
+ taxCode TaxCode OPTIONAL, -- *m.m.
+ taxValue TaxValue OPTIONAL, -- *m.m.
+ taxableAmount TaxableAmount OPTIONAL,
+...
+}
+
+TaxInformationList ::= [APPLICATION 214] SEQUENCE OF TaxInformation
+
+-- The TaxRate item is of a fixed length to ensure that the full 5
+-- decimal places is provided.
+
+TaxRate ::= [APPLICATION 215] NumberString --(SIZE(7))
+
+TaxType ::= [APPLICATION 217] AsciiString --(SIZE(2))
+
+TaxValue ::= [APPLICATION 397] AbsoluteAmount
+
+TeleServiceCode ::= [APPLICATION 218] HexString --(SIZE(2))
+
+ThirdPartyInformation ::= [APPLICATION 219] SEQUENCE
+{
+ thirdPartyNumber ThirdPartyNumber OPTIONAL,
+ clirIndicator ClirIndicator OPTIONAL,
+...
+}
+
+ThirdPartyNumber ::= [APPLICATION 403] AddressStringDigits
+
+ThreeGcamelDestination ::= [APPLICATION 431] CHOICE
+{
+ camelDestinationNumber CamelDestinationNumber,
+ gprsDestination GprsDestination,
+...
+}
+
+TotalAdvisedCharge ::= [APPLICATION 356] AbsoluteAmount
+
+TotalAdvisedChargeRefund ::= [APPLICATION 357] AbsoluteAmount
+
+TotalAdvisedChargeValue ::= [APPLICATION 360] SEQUENCE
+{
+ advisedChargeCurrency AdvisedChargeCurrency OPTIONAL,
+ totalAdvisedCharge TotalAdvisedCharge OPTIONAL, -- *m.m.
+ totalAdvisedChargeRefund TotalAdvisedChargeRefund OPTIONAL,
+ totalCommission TotalCommission OPTIONAL,
+ totalCommissionRefund TotalCommissionRefund OPTIONAL,
+...
+}
+
+TotalAdvisedChargeValueList ::= [APPLICATION 361] SEQUENCE OF TotalAdvisedChargeValue
+
+TotalCallEventDuration ::= [APPLICATION 223] INTEGER
+
+TotalCharge ::= [APPLICATION 415] AbsoluteAmount
+
+TotalChargeRefund ::= [APPLICATION 355] AbsoluteAmount
+
+TotalCommission ::= [APPLICATION 358] AbsoluteAmount
+
+TotalCommissionRefund ::= [APPLICATION 359] AbsoluteAmount
+
+TotalDataVolume ::= [APPLICATION 343] DataVolume
+
+TotalDiscountRefund ::= [APPLICATION 354] AbsoluteAmount
+
+TotalDiscountValue ::= [APPLICATION 225] AbsoluteAmount
+
+TotalTaxRefund ::= [APPLICATION 353] AbsoluteAmount
+
+TotalTaxValue ::= [APPLICATION 226] AbsoluteAmount
+
+TotalTransactionDuration ::= [APPLICATION 416] TotalCallEventDuration
+
+TrackedCustomerEquipment ::= [APPLICATION 381] SEQUENCE
+{
+ equipmentIdType EquipmentIdType OPTIONAL, -- *m.m.
+ equipmentId EquipmentId OPTIONAL, -- *m.m.
+...
+}
+
+TrackedCustomerHomeId ::= [APPLICATION 377] SEQUENCE
+{
+ homeIdType HomeIdType OPTIONAL, -- *m.m.
+ homeIdentifier HomeIdentifier OPTIONAL, -- *m.m.
+...
+}
+
+TrackedCustomerHomeIdList ::= [APPLICATION 376] SEQUENCE OF TrackedCustomerHomeId
+
+TrackedCustomerIdentification ::= [APPLICATION 372] SEQUENCE
+{
+ customerIdType CustomerIdType OPTIONAL, -- *m.m.
+ customerIdentifier CustomerIdentifier OPTIONAL, -- *m.m.
+...
+}
+
+TrackedCustomerIdList ::= [APPLICATION 370] SEQUENCE OF TrackedCustomerIdentification
+
+TrackedCustomerInformation ::= [APPLICATION 367] SEQUENCE
+{
+ trackedCustomerIdList TrackedCustomerIdList OPTIONAL, -- *m.m.
+ trackedCustomerHomeIdList TrackedCustomerHomeIdList OPTIONAL,
+ trackedCustomerLocList TrackedCustomerLocList OPTIONAL,
+ trackedCustomerEquipment TrackedCustomerEquipment OPTIONAL,
+...
+}
+
+TrackedCustomerLocation ::= [APPLICATION 380] SEQUENCE
+{
+ locationIdType LocationIdType OPTIONAL, -- *m.m.
+ locationIdentifier LocationIdentifier OPTIONAL, -- *m.m.
+...
+}
+
+TrackedCustomerLocList ::= [APPLICATION 379] SEQUENCE OF TrackedCustomerLocation
+
+TrackingCustomerEquipment ::= [APPLICATION 371] SEQUENCE
+{
+ equipmentIdType EquipmentIdType OPTIONAL, -- *m.m.
+ equipmentId EquipmentId OPTIONAL, -- *m.m.
+...
+}
+
+TrackingCustomerHomeId ::= [APPLICATION 366] SEQUENCE
+{
+ homeIdType HomeIdType OPTIONAL, -- *m.m.
+ homeIdentifier HomeIdentifier OPTIONAL, -- *m.m.
+...
+}
+
+TrackingCustomerHomeIdList ::= [APPLICATION 365] SEQUENCE OF TrackingCustomerHomeId
+
+TrackingCustomerIdentification ::= [APPLICATION 362] SEQUENCE
+{
+ customerIdType CustomerIdType OPTIONAL, -- *m.m.
+ customerIdentifier CustomerIdentifier OPTIONAL, -- *m.m.
+...
+}
+
+TrackingCustomerIdList ::= [APPLICATION 299] SEQUENCE OF TrackingCustomerIdentification
+
+TrackingCustomerInformation ::= [APPLICATION 298] SEQUENCE
+{
+ trackingCustomerIdList TrackingCustomerIdList OPTIONAL, -- *m.m.
+ trackingCustomerHomeIdList TrackingCustomerHomeIdList OPTIONAL,
+ trackingCustomerLocList TrackingCustomerLocList OPTIONAL,
+ trackingCustomerEquipment TrackingCustomerEquipment OPTIONAL,
+...
+}
+
+TrackingCustomerLocation ::= [APPLICATION 369] SEQUENCE
+{
+ locationIdType LocationIdType OPTIONAL, -- *m.m.
+ locationIdentifier LocationIdentifier OPTIONAL, -- *m.m.
+...
+}
+
+TrackingCustomerLocList ::= [APPLICATION 368] SEQUENCE OF TrackingCustomerLocation
+
+TrackingFrequency ::= [APPLICATION 389] INTEGER
+
+TrackingPeriod ::= [APPLICATION 388] INTEGER
+
+TransactionAuthCode ::= [APPLICATION 342] AsciiString
+
+TransactionDescriptionSupp ::= [APPLICATION 338] INTEGER
+
+TransactionDetailDescription ::= [APPLICATION 339] AsciiString
+
+TransactionIdentifier ::= [APPLICATION 341] AsciiString
+
+TransactionShortDescription ::= [APPLICATION 340] AsciiString
+
+TransactionStatus ::= [APPLICATION 303] INTEGER
+
+TransferCutOffTimeStamp ::= [APPLICATION 227] DateTimeLong
+
+TransparencyIndicator ::= [APPLICATION 228] INTEGER
+
+UserProtocolIndicator ::= [APPLICATION 280] INTEGER
+
+UtcTimeOffset ::= [APPLICATION 231] AsciiString --(SIZE(5))
+
+UtcTimeOffsetCode ::= [APPLICATION 232] Code
+
+UtcTimeOffsetInfo ::= [APPLICATION 233] SEQUENCE
+{
+ utcTimeOffsetCode UtcTimeOffsetCode OPTIONAL, -- *m.m.
+ utcTimeOffset UtcTimeOffset OPTIONAL, -- *m.m.
+...
+}
+
+UtcTimeOffsetInfoList ::= [APPLICATION 234] SEQUENCE OF UtcTimeOffsetInfo
+
+VerticalAccuracyDelivered ::= [APPLICATION 393] INTEGER
+
+VerticalAccuracyRequested ::= [APPLICATION 386] INTEGER
+
+
+--
+-- Tagged common data types
+--
+
+--
+-- The AbsoluteAmount data type is used to
+-- encode absolute revenue amounts.
+-- The accuracy of all absolute amount values is defined
+-- by the value of TapDecimalPlaces within the group
+-- AccountingInfo for the entire TAP batch.
+-- Note, that only amounts greater than or equal to zero are allowed.
+-- The decimal number representing the amount is
+-- derived from the encoded integer
+-- value by division by 10^TapDecimalPlaces.
+-- for example for TapDecimalPlaces = 3 the following values
+-- will be derived:
+-- 0 represents 0.000
+-- 12 represents 0.012
+-- 1234 represents 1.234
+-- for TapDecimalPlaces = 5 the following values will be
+-- derived:
+-- 0 represents 0.00000
+-- 1234 represents 0.01234
+-- 123456 represents 1.23456
+-- This data type is used to encode (total)
+-- charges, (total) discount values and
+-- (total) tax values.
+--
+AbsoluteAmount ::= INTEGER
+
+Bid ::= AsciiString --(SIZE(5))
+
+Code ::= INTEGER
+
+--
+-- Non-tagged common data types
+--
+--
+-- Recommended common data types to be used for file encoding:
+--
+-- The following definitions should be used for TAP file creation instead of
+-- the default specifications (OCTET STRING)
+--
+-- AsciiString ::= VisibleString
+--
+-- Currency ::= VisibleString
+--
+-- HexString ::= VisibleString
+--
+-- NumberString ::= NumericString
+--
+-- AsciiString contains visible ISO 646 characters.
+-- Leading and trailing spaces must be discarded during processing.
+-- An AsciiString cannot contain only spaces.
+
+AsciiString ::= OCTET STRING
+
+--
+-- The BCDString data type (Binary Coded Decimal String) is used to represent
+-- several digits from 0 through 9, a, b, c, d, e.
+-- Two digits are encoded per octet. The four leftmost bits of the octet represent
+-- the first digit while the four remaining bits represent the following digit.
+-- A single f must be used as a filler when the total number of digits to be
+-- encoded is odd.
+-- No other filler is allowed.
+
+BCDString ::= OCTET STRING
+
+
+--
+-- The currency codes from ISO 4217
+-- are used to identify a currency
+--
+Currency ::= OCTET STRING
+
+--
+-- HexString contains ISO 646 characters from 0 through 9, A, B, C, D, E, F.
+--
+
+HexString ::= OCTET STRING
+
+--
+-- NumberString contains ISO 646 characters from 0 through 9.
+--
+
+NumberString ::= OCTET STRING
+
+
+--
+-- The PercentageRate data type is used to
+-- encode percentage rates with an accuracy of 2 decimal places.
+-- This data type is used to encode discount rates.
+-- The decimal number representing the percentage
+-- rate is obtained by dividing the integer value by 100
+-- Examples:
+--
+-- 1500 represents 15.00 percent
+-- 1 represents 0.01 percent
+--
+PercentageRate ::= INTEGER
+
+
+-- END
+END
+}
+
+1;