gbarr/perl-Convert-ASN1

Can not decode my ASN it's written: decode error a6<=>30 0 8 at /Library/Perl/5.12/Convert/ASN1/_decode.pm line 113.

arifkyi opened this issue · 8 comments

Hello Sir Graham,

I tried to use the Conver ASN module and stack with this error :
$VAR1 = undef;
ERROR: decode error a6<=>30 0 8 at /Library/Perl/5.12/Convert/ASN1/_decode.pm line 113

The complete of my script is:

!/usr/bin/perl

use Data::Dumper;
use Convert::ASN1 qw(:io :debug :tag :const);

CreateObJect#######;

$asn = Convert::ASN1->new;

#asn spec##########;

$specfile = "/Users/ahmadrifky/myscript/asn/myasnspec.txt";
$r = $asn->prepare_file($specfile);

Open File#### ;

my $file= $ARGV[0];
open my $fh, '<', $file or die "unable to open file '$file' for reading : $!";

Only Test

$nbytes = asn_read($fh, $data);
$yes = asn_ready($fh);
$aku = asn_dump($data);

print " yes $aku $nbytes \n";

$structure=$asn->decode($data) or print $asn->error();
print Dumper($asn->decode($data));

print "BEGIN SPECIFICATION:\n" if $DEBUG;

$asn->dump_all;

$asn->dump_op;

$asn->_hexdump($data);

print "END SPECIFICATION\n" if $DEBUG;

my $myresultcode = $asn->find("resultCode");

if (!defined($myresultcode)) { die "ERROR: " . $asn->error . "\n"; }

print "RRCTransactionIdentifier ", $myresultcode->decode($data) ;

the myasn.txt file is like this:

ChargingDataOutputRecord ::= CHOICE {
sCFPDPRecord SCFPDPRecord,
sCFSMSPSMORecord SCFSMSMORecord,
sCFSMSCSMORecord SCFSMSMORecord,
diameterCreditControlRecord DiameterCreditControlRecord,
fBCRatingRecord FBCRatingRecord,
rTCCreditControlRecord RTCCreditControlRecord,
onlineCreditControlRecord OnlineCreditControlRecord,
...
}
SCFPDPRecord ::= SEQUENCE {
chargingID ChargingID,
ggsnAddressUsed GSNAddress,
accessPointName AccessPointName OPTIONAL,
recordSequenceNumber RecordSequenceNumber,
nodeID NodeID,
localSequenceNumber LocalSequenceNumber,
lastPartialOutput BOOLEAN,
trafficCase TrafficCase OPTIONAL,
subscriberNumber AddressString OPTIONAL,
serviceClass ServiceClass OPTIONAL,
accountValueBefore MoneyAmount OPTIONAL,
accountValueAfter MoneyAmount OPTIONAL,
finalCharge MoneyAmount OPTIONAL,
chargedDuration ChargedDuration OPTIONAL,
cdrReason CdrReason,
teleServiceCode TeleServiceCode OPTIONAL,
startOfChargingOfContext TimeStamp OPTIONAL,
familyAndFriendsIndicator FamilyAndFriendsIndicator OPTIONAL,
numberOfSDPInterrogations NumberOfSDPInterrogations,
dataVolume DataVolume OPTIONAL,
currencyType CurrencyType OPTIONAL,
callingPartyNumber AddressString OPTIONAL,
originatingLocationInfo AddressString OPTIONAL,
accountNumber AddressString OPTIONAL,
terminatingLocationInfo AddressString OPTIONAL,
calledPartyNumber AddressString OPTIONAL,
accumulatorValueInfo SEQUENCE OF
AccumulatorValueInfo OPTIONAL,
dedicatedAccountInfo SEQUENCE OF
DedicatedAccountInfo OPTIONAL,
accountGroupID AccountGroupID OPTIONAL,
serviceOfferings ServiceOfferings OPTIONAL,
communityDataInfo SEQUENCE OF CommunityDataInfo OPTIONAL,
triggerTime TimeStamp OPTIONAL,
cellID CellID OPTIONAL,
locationAreaID LocationAreaID OPTIONAL,
categorizationInformation CategorizationInformation OPTIONAL,
ratedDurations RatedDurations OPTIONAL,
servedIMSI IMSI OPTIONAL,
...
}
SCFSMSMORecord ::= SEQUENCE {
servedIMSI IMSI,
servedMSISDN AddressString,
serviceCenter AddressString,
nodeID NodeID,
localSequenceNumber LocalSequenceNumber,
trafficCase TrafficCase OPTIONAL,
serviceClass ServiceClass OPTIONAL,
accountValueBefore MoneyAmount OPTIONAL,
accountValueAfter MoneyAmount OPTIONAL,
finalCharge MoneyAmount OPTIONAL,
cdrReason CdrReason,
teleServiceCode TeleServiceCode OPTIONAL,
startOfChargingOfEvent TimeStamp OPTIONAL,
familyAndFriendsIndicator FamilyAndFriendsIndicator OPTIONAL,
numberOfSDPInterrogations NumberOfSDPInterrogations,
currencyType CurrencyType OPTIONAL,
originatingLocationInfo AddressString OPTIONAL,
accountNumber AddressString OPTIONAL,
destinationNumber AddressString,
accumulatorValueInfo SEQUENCE OF
AccumulatorValueInfo OPTIONAL,
dedicatedAccountInfo SEQUENCE OF
DedicatedAccountInfo OPTIONAL,
eventTimeStamp TimeStamp,
networkID NetworkID OPTIONAL,
smsReferenceNumber CallReferenceNumber OPTIONAL,
mscAddress AddressString OPTIONAL,
sgsn-Number AddressString OPTIONAL,
accountGroupID AccountGroupID OPTIONAL,
serviceOfferings ServiceOfferings OPTIONAL,
communityDataInfo SEQUENCE OF CommunityDataInfo OPTIONAL,
calledPartyNumber AddressString OPTIONAL,
cellID CellID OPTIONAL,
locationAreaID LocationAreaID OPTIONAL,
categorizationInformation CategorizationInformation OPTIONAL,
ratedDurations RatedDurations OPTIONAL,
individualPriceFactorHistory IndividualPriceFactorHistory OPTIONAL,
-- PC 09943
originalCalledPartyNumber AddressString OPTIONAL,
-- PC 09943 end
...
}
DiameterCreditControlRecord ::= SEQUENCE {
cdrReason CdrReason,
nodeID NodeID,
recordSequenceNumber RecordSequenceNumber,
lastPartialOutput BOOLEAN,
trafficCase TrafficCase OPTIONAL,
teleServiceCode TeleServiceCode OPTIONAL,
subscriberID AddressString OPTIONAL,
callingPartyNumber AddressString OPTIONAL,
calledPartyNumber AddressString OPTIONAL,
triggerTime TimeStamp OPTIONAL,
chargedDuration ChargedDuration OPTIONAL,
dataVolume DataVolume OPTIONAL,
numberOfEvents NumberOfEvents OPTIONAL,
finalCharge MoneyAmount OPTIONAL,
accountValueBefore MoneyAmount OPTIONAL,
accountValueAfter MoneyAmount OPTIONAL,
sessionID SessionID,
userName UserName OPTIONAL,
numberOfSDPInterrogations NumberOfSDPInterrogations,
originRealm OriginRealm OPTIONAL,
originHost OriginHost OPTIONAL,
serviceClass ServiceClass OPTIONAL,
accountNumber AddressString OPTIONAL,
localSequenceNumber LocalSequenceNumber,
familyAndFriendsIndicator FamilyAndFriendsIndicator OPTIONAL,
currencyType CurrencyType OPTIONAL,
accumulatorValueInfo SEQUENCE OF AccumulatorValueInfo OPTIONAL,
dedicatedAccountInfo SEQUENCE OF DedicatedAccountInfo OPTIONAL,
serviceProviderID ServiceProviderID OPTIONAL,
extInt1 ExtInt OPTIONAL,
extInt2 ExtInt OPTIONAL,
extInt3 ExtInt OPTIONAL,
extInt4 ExtInt OPTIONAL,
extText ExtText OPTIONAL,
gprsQoS GPRSQoS OPTIONAL,
redirectingPartyNumber AddressString OPTIONAL,
originatingLocationInfo AddressString OPTIONAL,
terminatingLocationInfo AddressString OPTIONAL,
networkID NetworkID OPTIONAL,
subscriptionType SubscriptionType OPTIONAL,
smsDeliveryStatus SmsDeliveryStatus OPTIONAL,
calledPartyNumber2 AddressString OPTIONAL,
calledPartyNumber3 AddressString OPTIONAL,
radiusSessionID RadiusSessionID OPTIONAL,
multiSessionID MultiSessionID OPTIONAL,
originalSubscriptionIDData SubscriptionIDData OPTIONAL,
originalSubscriptionIDType SubscriptionIDType OPTIONAL,
accountingCorrelationID AccountingCorrelationID OPTIONAL,
abnormalTerminationReason AbnormalTerminationReason OPTIONAL,
accountGroupID AccountGroupID OPTIONAL,
serviceOfferings ServiceOfferings OPTIONAL,
communityDataInfo SEQUENCE OF CommunityDataInfo OPTIONAL,
usedAmountLastInterval MoneyAmount OPTIONAL,
deductedAmountLastInterval MoneyAmount OPTIONAL,
categorizationInformation CategorizationInformation OPTIONAL,
ratedDurations RatedDurations OPTIONAL,
...
}
FBCRatingRecord ::= SEQUENCE {
serviceClassInfo SEQUENCE OF ServiceClassInfo,
ggsnAddressUsed GSNAddress,
chargingID SEQUENCE OF ChargingID,
timeStamp TimeStamp,
volumeULAccumulatedTotal DataVolume,
volumeDLAccumulatedTotal DataVolume,
subscriberGroup SubscriberGroup,
nodeID NodeID,
localSequenceNumber LocalSequenceNumber,
servedIMSI IMSI OPTIONAL,
servedMSISDN AddressString OPTIONAL,
userName UserName OPTIONAL,
recoveryData RecoveryRecord OPTIONAL,
serviceClassExtendedInfo SEQUENCE OF
ServiceClassExtendedInfo OPTIONAL,
ratingRequested BOOLEAN OPTIONAL,
ratingSuccessful BOOLEAN OPTIONAL,
startOfUsageInfo SEQUENCE OF StartOfUsageInfo OPTIONAL,
...
}
RTCCreditControlRecord ::= SEQUENCE {
cdrReason CdrReason,
nodeID NodeID,
recordSequenceNumber RecordSequenceNumber,
lastPartialOutput BOOLEAN,
trafficCase TrafficCase OPTIONAL,
teleServiceCode TeleServiceCode OPTIONAL,
subscriberID AddressString OPTIONAL,
callingPartyNumber AddressString OPTIONAL,
calledPartyNumber AddressString OPTIONAL,
triggerTime TimeStamp OPTIONAL,
chargedDuration ChargedDuration OPTIONAL,
servedIMSI IMSI OPTIONAL,
numberOfEvents NumberOfEvents OPTIONAL,
finalCharge MoneyAmount OPTIONAL,
accountValueBefore MoneyAmount OPTIONAL,
accountValueAfter MoneyAmount OPTIONAL,
accountingCorrelationID AccountingCorrelationID,
numberOfSDPInterrogations NumberOfSDPInterrogations,
serviceClass ServiceClass OPTIONAL,
accountNumber AddressString OPTIONAL,
localSequenceNumber LocalSequenceNumber,
familyAndFriendsIndicator FamilyAndFriendsIndicator OPTIONAL,
currencyType CurrencyType OPTIONAL,
accumulatorValueInfo SEQUENCE OF
AccumulatorValueInfo OPTIONAL,
dedicatedAccountInfo SEQUENCE OF
DedicatedAccountInfo OPTIONAL,
redirectingPartyNumber AddressString OPTIONAL,
originatingLocationInfo AddressString OPTIONAL,
terminatingLocationInfo AddressString OPTIONAL,
networkID NetworkID OPTIONAL,
subscriptionType SubscriptionType OPTIONAL,
calledPartyNumber2 AddressString OPTIONAL,
calledPartyNumber3 AddressString OPTIONAL,
accountGroupID AccountGroupID OPTIONAL,
serviceOfferings ServiceOfferings OPTIONAL,
communityDataInfo SEQUENCE OF CommunityDataInfo OPTIONAL,
serviceCenter AddressString OPTIONAL,
startOfCharging TimeStamp OPTIONAL,
callSetUpResultCode CallSetUpResultCode OPTIONAL,
usedUnchargedDuration UsedUnchargedDuration OPTIONAL,
usedUnchargedEvent UsedUnchargedEvent OPTIONAL,
categorizationInformation CategorizationInformation OPTIONAL,
ratedDurations RatedDurations OPTIONAL,
individualPriceFactorHistory IndividualPriceFactorHistory OPTIONAL,
...
}
OnlineCreditControlRecord ::= SEQUENCE {
--- resultcode aslinya Unsigned32
resultCode INTEGER,
resultCodeExtension Unsigned32 OPTIONAL,
triggerTime TimeStamp OPTIONAL,
nodeName UTF8String,
serviceContextID UTF8String,
chargingContextID ChargingContext,
serviceSessionID UTF8String,
recordIdentificationNumber RecordIdentificationNumber,
partialSequenceNumber INTEGER OPTIONAL,
lastPartialOutput BOOLEAN OPTIONAL,
servedSubscriptionID SEQUENCE OF SubscriptionID OPTIONAL,
correlationID EXPLICIT CorrelationID OPTIONAL,
servingElement EXPLICIT ServingElement OPTIONAL,
creditControlRecords SEQUENCE OF SDPCreditControlRecord OPTIONAL,
usedUnchargedServiceUnits UsedServiceUnits OPTIONAL,
-- PC 07959
originalCalledPartyNumber AddressString OPTIONAL,
-- PC 07959 end
-- PC
chargedDuration UsedServiceUnits OPTIONAL,
usedStartPulses OCTET STRING OPTIONAL,
-- PC end
-- PC 08940
nonServedSubscriptionID UTF8String OPTIONAL,
-- PC 08940 end
authorizedQoS SEQUENCE OF AuthorizedQoS OPTIONAL,
-- PC 09687
firstCallInfo AddressString OPTIONAL,
-- PC 09687 end
--PC:08842
chargingSuppressionAtForwarding ChargingSuppressionAtForwarding OPTIONAL,
--PC:08842 end
--PC:10210
iMEI IMEI OPTIONAL,
trunkInformation TrunkInformation OPTIONAL,
-- PC:10210 end
-- PC:10064
authorizedChargingRules SEQUENCE OF AuthorizedChargingRules,
-- PC:10064 end
iMSChargingIdentifier IMSChargingIdentifier OPTIONAL,
--PC:09785
outgoingSessionId OutgoingSessionId OPTIONAL,
userSessionID UserSessionID OPTIONAL,
causeCode CauseCode OPTIONAL,
creditControlFailureHandling CreditControlFailureHandling OPTIONAL,
-- PC:09785 end
--PC:11040
accessPointName AccessPointName OPTIONAL,
dataVolume DataVolume OPTIONAL,
-- PC:11040 end
--PC:11376
receivedshortcodeNumber UTF8String OPTIONAL,
-- PC:11376 end
...
}

AbnormalTerminationReason ::= ENUMERATED {
serviceElementTermination (0),
connectionToUserBroken (1)
}
AccessPointName ::= OCTET STRING
AccountFlags ::= IA5String

AccountGroupID ::= INTEGER
-- 0 undefined
-- 1 - 2147483647 accountGroupID
AccountingCorrelationID ::= UTF8String
AccountUnitType ::= ENUMERATED
{
time(0),
money(1),
totalOctets(2),
inputOctets(3),
outputOctets(4),
serviceSpecificUnits(5),
volume(6)
}
AcctMultiSessionID ::= OCTET STRING
AccumulatorID ::= INTEGER
AccumulatorValue ::= INTEGER

Accumulator ::= SEQUENCE
{
accumulatorID AccumulatorID,
accumulatorBefore Integer32 OPTIONAL,
accumulatorChange Integer32,
accumulatorAfter Integer32,
accumulatorBeforeSession Integer32 OPTIONAL,
...
}

Accumulators ::= SEQUENCE OF Accumulator
AccountSpecifiedConsumption ::= CHOICE
{
dedicatedAccountSpecifiedConsumption DedicatedAccountSpecifiedConsumption,
mainAccountSpecifiedConsumption MainAccountSpecifiedConsumption,
specifiedConsumptionNoCost SpecifiedConsumptionNoCost,
...
}
AccumulatorSpecifiedConsumptions ::= SEQUENCE OF AccumulatorSpecifiedConsumption

AccumulatorSpecifiedConsumption ::= SEQUENCE
{
accumulatorID AccumulatorID,
accumulatorChange Integer32 OPTIONAL,
...
}

AccumulatorValueInfo ::= SEQUENCE {
accumulatorID AccumulatorID OPTIONAL,
accumulatorValue AccumulatorValue OPTIONAL,
accumulatorDeltaValue AccumulatorValue OPTIONAL,
...
}
AddressString ::= OCTET STRING
-- PC:10064
AuthorizedChargingRules ::= SEQUENCE {
triggerTime TimeStamp,
activatedChargingRuleName SEQUENCE OF ChargingRuleName OPTIONAL,
deactivatedChargingRuleName SEQUENCE OF ChargingRuleName OPTIONAL,
activatedChargingRuleBaseName SEQUENCE OF ChargingRuleBaseName,
deactivatedChargingRuleBaseName SEQUENCE OF ChargingRuleBaseName,
...
}
-- PC:10064 end
AuthorizedQoS ::= SEQUENCE {
triggerTime TimeStamp,
qoSClassIdentifier QoSClassIdentifier OPTIONAL,
maxRequestedBandwidthUL Unsigned32 OPTIONAL,
maxRequestedBandwidthDL Unsigned32 OPTIONAL,
priorityLevel PriorityLevel OPTIONAL,
preEmptionCapability BOOLEAN OPTIONAL,
preEmptionVulnerability BOOLEAN OPTIONAL,
...
}

BonusAdjustment ::= SEQUENCE
{
accountValueBefore MonetaryUnits OPTIONAL,
accountValueAfter MonetaryUnits OPTIONAL,
bonusAmount MonetaryUnits OPTIONAL,
accumulators Accumulators OPTIONAL,
dedicatedAccounts DedicatedAccounts OPTIONAL,
lifeCycleInformation LifeCycleInformation OPTIONAL,
-- PC
aggregatedValueBefore MonetaryUnits OPTIONAL,
aggregatedValueAfter MonetaryUnits OPTIONAL,
-- end PC
bonusOffers SEQUENCE OF BonusOffer OPTIONAL,
...
}

BonusOffer ::= SEQUENCE
{
offerID OfferID,
offerExpiryDateBefore Date OPTIONAL,
offerExpiryDateAfter Date OPTIONAL,
offerStartDateBefore Date OPTIONAL,
offerStartDateAfter Date OPTIONAL,
offerType OfferType OPTIONAL,
...
}

CallReferenceNumber ::= OCTET STRING
CallSetUpResultCode ::= ENUMERATED {
successful-ReleasedByService (0),
successful-DisconnectByCallingParty (1),
successful-DisconnectByCalledParty (2),
successful-OngoingTollFree (3),
non-Successful-CalledPartyRouteSelectFailure (4),
non-Successful-CalledPartyBusy (5),
non-Successful-CalledPartyNotReachable (6),
non-Successful-CalledPartyNoAnswer (7),
non-Successful-CallingPartyAbandon (8),
non-Successful-OtherReason (14),
callForwardingHasBeenInvoked-ChargingCancelled (15)
}
CampaignIdentifier ::= INTEGER
CategoryValue ::= INTEGER
CategorizationInformation ::= SEQUENCE {
categoryType1 CategoryValue OPTIONAL,
categoryType2 CategoryValue OPTIONAL,
categoryType3 CategoryValue OPTIONAL,
categoryType4 CategoryValue OPTIONAL,
...
}
-- PC:09785
CauseCode ::= Integer32
-- PC:09785 end
CdrReason ::= ENUMERATED {
serviceClassRequested (0),
firstInterrogationUnsuccessful (1),
invokeIntermediateInterrogationFinalReportUnsucc (2),
internalError (3),
subscriberTemporaryBlocked (4),
partialDeduction (5)
}
CCAccountData ::= SEQUENCE
{
servedAccount AddressString,
serviceClassID ServiceClassID,
accountGroupID AccountGroupID,
accountValueBefore MonetaryUnits OPTIONAL,
accountValueAfter MonetaryUnits OPTIONAL,
communityInformation CommunityInformation OPTIONAL,
accumulators Accumulators OPTIONAL,
dedicatedAccounts DedicatedAccounts OPTIONAL,
familyAndFriendsID FamilyAndFriendsID OPTIONAL,
familyAndFriendsNo AddressString OPTIONAL,
serviceOfferings Unsigned32,
accumulatedCost MonetaryUnits OPTIONAL,
accountValueUsed MonetaryUnits OPTIONAL,
accountValueDeducted MonetaryUnits,
-- PC
aggregatedValueBefore MonetaryUnits OPTIONAL,
aggregatedValueAfter MonetaryUnits OPTIONAL,
-- end PC
accumulatedUnits Integer64 OPTIONAL,
accountUnitsUsed Integer64 OPTIONAL,
accountUnitsDeducted Integer64 OPTIONAL,
specifiedConsumptions SpecifiedConsumptions OPTIONAL,
usedOffers UsedOffers OPTIONAL,
usageCounters SEQUENCE OF UsageCounter OPTIONAL,
providersFamilyAndFriendsID FamilyAndFriendsID OPTIONAL,
-- PC:10276
usedOffersAdditionalInfo UsedOffersAdditionalInfo OPTIONAL,
-- PC:10276 end
...
}
CellID ::= OCTET STRING
ChargingContext ::= UTF8String
ChargedDuration ::= OCTET STRING

ChargedProductFee ::= SEQUENCE
{
chargedFee MonetaryUnits,
accountValueBefore MonetaryUnits OPTIONAL,
accountValueAfter MonetaryUnits OPTIONAL,
dedicatedAccounts DedicatedAccounts OPTIONAL,
usageCounters SEQUENCE OF UsageCounter OPTIONAL,
...
}

ChargingID ::= OCTET STRING
-- PC:10064
ChargingRuleBaseName ::= UTF8String
ChargingRuleName ::= OCTET STRING
-- PC:10064 end
-- PC:08842
ChargingSuppressionAtForwarding ::= ENUMERATED {
notSuppressChargingAtForwarding (0),
suppressChargingAtForwarding (1)
}
-- PC:08842 end
CommunityDataInfo ::= SEQUENCE {
selectedCommunityIndicator SelectedCommunityIndicator OPTIONAL,
communityIDCharged SEQUENCE OF CommunityID OPTIONAL,
communityIDNonCharged SEQUENCE OF CommunityID OPTIONAL,
communityDataNonChargedNotAvailable BOOLEAN OPTIONAL,
...
}
CommunityID ::= INTEGER

CommunityIDs ::= SEQUENCE
{
communityID1 CommunityID OPTIONAL,
communityID2 CommunityID OPTIONAL,
communityID3 CommunityID OPTIONAL,
...
}

CommunityInformation ::= SEQUENCE
{
selectedCommunityID CommunityID OPTIONAL,
servedCommunityIDs CommunityIDs OPTIONAL,
nonServedCommunityIDs CommunityIDs OPTIONAL,
nonServedCommunityIDNA BOOLEAN OPTIONAL,
nonServedCommunityNo AddressString OPTIONAL,
...
}

ContextParameter ::= SEQUENCE
{
parameterID Integer64,
parameterValue ContextParameterValueType
}

ContextParameterValueType ::= CHOICE
{
boolean BOOLEAN,
integer32 Integer32,
integer64 Integer64,
unsigned32 Unsigned32,
unsigned64 Unsigned64,
addressString AddressString,
octetString OCTET STRING,
string UTF8String,
time Time,
partyInformation PartyInformation,
-- PC:09750
group Group,
partyInformations PartyInformations,
strings Strings,
groups Groups,
-- PC:09750 end
--PC:10699
monetaryUnits MonetaryUnits,
--PC:10699 end

...
}

CorrelationID ::= CHOICE {
callReference CallReferenceNumber,
chargingID ChargingID,
accountingCorrelationID AccountingCorrelationID,
dccCorrelationId DccCorrelationID,
...
}
-- PC:09785

CreditControlFailureHandling ::= ENUMERATED {
terminate (0),
continue (1)
}

CreditControlRecord ::= SEQUENCE
{
serviceIdentifier Unsigned32,
usedServiceUnits UsedServiceUnits OPTIONAL,
eventTime TimeStamp,
triggerTime TimeStamp,
serviceScenario ServiceScenario,
serviceExtension ServiceExtension OPTIONAL,
roamingPosition RoamingPosition OPTIONAL,
tariffInfo SEQUENCE OF
SelectionTreeParameter OPTIONAL,
cCAccountData CCAccountData,
chargingContextSpecific SEQUENCE OF
ContextParameter OPTIONAL,
treeDefinedFields SEQUENCE OF
TreeDefinedField OPTIONAL,
bonusAdjustment BonusAdjustment OPTIONAL,
serviceSetupResult ServiceSetupResult OPTIONAL,
terminationCause TerminationCause OPTIONAL,
ratedUnits RatedUnits OPTIONAL,
individualPriceFactorHistory SEQUENCE OF IndividualPriceFactorHistory OPTIONAL,
periodicAccountMgmtData PeriodicAccountMgmtData OPTIONAL,
providerCreditControlRecord SEQUENCE OF ProviderCreditControlRecord OPTIONAL,
-- PC:10739
chargingContextOutputFields SEQUENCE OF
ServiceOutputField OPTIONAL,
-- PC:10739 end
...
}
-- PC:09785 end
CurrencyType ::= ENUMERATED {
localCurrency (0),
eURO (1)
}
DAID ::= INTEGER
DataVolume ::= OCTET STRING
Date ::= IA5String
DccCorrelationID ::= SEQUENCE {
acctMultiSessionID AcctMultiSessionID OPTIONAL,
ccCorrelationId OCTET STRING OPTIONAL,
sessionId UTF8String OPTIONAL,
ccRequestNumber Unsigned32 OPTIONAL,
...
}

DedicatedAccountAccDuration ::= INTEGER
DedicatedAccountInfo ::= SEQUENCE {
identity DAID OPTIONAL,
valueBefore MoneyAmount OPTIONAL,
valueAfter MoneyAmount OPTIONAL,
campaignIdentifier CampaignIdentifier OPTIONAL,
accumulatedDuration DedicatedAccountAccDuration OPTIONAL,
...
}
DedicatedAccounts ::= SEQUENCE OF DedicatedAccount
DedicatedAccount ::= SEQUENCE
{
dedicatedAccountID DedicatedAccountID,
dedicatedAccountValueBefore MonetaryUnits OPTIONAL,
dedicatedAccountValueAfter MonetaryUnits OPTIONAL,
dedicatedAccountChange MonetaryUnits OPTIONAL,
dedicatedAccountCampaignID DedicatedAccountCampaignID OPTIONAL,
accountExpiryDateBefore Date OPTIONAL,
accountExpiryDateAfter Date OPTIONAL,
accountStartDateBefore Date OPTIONAL,
accountStartDateAfter Date OPTIONAL,
-- PC
realMoney BOOLEAN OPTIONAL,
-- end PC
offerID OfferID OPTIONAL,
dedicatedAccountUnitsBefore Unsigned64 OPTIONAL,
dedicatedAccountUnitsAfter Unsigned64 OPTIONAL,
dedicatedAccountUnitsChange Integer64 OPTIONAL,
accountUnitType AccountUnitType OPTIONAL,
subDedicatedAccounts SubDedicatedAccounts OPTIONAL,
-- PC:09847
productID ProductID OPTIONAL,
-- end PC:09847
-- PC:10276
offerExpiryDate Date OPTIONAL,
offerStartDate Date OPTIONAL,
-- PC:10276 end
...
}
DedicatedAccountID ::= INTEGER
DedicatedAccountCampaignID ::= INTEGER

DedicatedAccountSpecifiedConsumption ::= SEQUENCE
{
dedicatedAccountID DedicatedAccountID,
dedicatedAccountRatedUnits ServiceUnits OPTIONAL,
dedicatedAccountDeducted MonetaryUnits,
...
}

FloatingDecimal ::= SEQUENCE
{
digits Integer64,
decimals Integer32,
...
}

ExtInt ::= INTEGER
ExtText ::= OCTET STRING

FamilyAndFriendsID ::= INTEGER
FamilyAndFriendsIndicator ::= INTEGER

Group ::= SEQUENCE OF ContextParameter
Groups ::= SEQUENCE OF Group

GPRSQoS ::= INTEGER
GSNAddress ::= EXPLICIT IPBinaryAddress
IndividualPriceFactor ::= INTEGER

IndividualPriceFactorHistory ::= SEQUENCE {
individualPriceFactor1 IndividualPriceFactor OPTIONAL,
individualPriceFactor2 IndividualPriceFactor OPTIONAL,
individualPriceFactor1Units Units OPTIONAL,
...
}
-- PC:10210
IMEI ::= OCTET STRING
-- PC:10210 end
IMSChargingIdentifier ::= UTF8String
IMSI ::= OCTET STRING

Integer8 ::= INTEGER

Integer32 ::= INTEGER
Integer64 ::= INTEGER
IPBinaryAddress ::= CHOICE {
iPBinV4Address OCTET STRING,
iPBinV6Address OCTET STRING
}

LifeCycleInformation ::= SEQUENCE
{
supervisionExpDateBefore Date OPTIONAL,
supervisionExpDateAfter Date OPTIONAL,
creditClearancePeriodBefore Period OPTIONAL,
creditClearancePeriodAfter Period OPTIONAL,
servFeeExpDateBefore Date OPTIONAL,
servFeeExpDateAfter Date OPTIONAL,
serviceRemovalPeriodBefore Period OPTIONAL,
serviceRemovalPeriodAfter Period OPTIONAL,
accountFlagsBefore AccountFlags OPTIONAL,
accountFlagsAfter AccountFlags OPTIONAL,
...
}
LocationAreaID ::= OCTET STRING
LocalSequenceNumber ::= OCTET STRING

MainAccountSpecifiedConsumption ::= SEQUENCE
{
mainAccountRatedUnits ServiceUnits OPTIONAL,
mainAccountDeducted MonetaryUnits,
...
}

MonetaryUnits ::= SEQUENCE
{
amount Integer64,
decimals Integer32,
currency Unsigned32
}
MoneyAmount ::= OCTET STRING
MultiSessionID ::= OCTET STRING
NetworkID ::= INTEGER
NodeID ::= OCTET STRING
NumberOfEvents ::= INTEGER
NumberOfSDPInterrogations ::= INTEGER
OriginHost ::= OCTET STRING
OriginInfo ::= SEQUENCE {
originRealm OriginRealm OPTIONAL,
originHost OriginHost OPTIONAL,
...
}

OfferAttributes ::= SEQUENCE OF OfferAttribute
OfferAttribute ::= SEQUENCE
{
attributeName UTF8String,
attributeValueString UTF8String OPTIONAL,
...
}

OfferID ::= INTEGER

OfferType ::= ENUMERATED
{
account (0),
multiUserIdentification (1)
}

OriginRealm ::= OCTET STRING
-- PC:09785
OutgoingSessionId ::= UTF8String
-- PC:09785 end

PamPeriod ::= IA5String

PartyInformations ::= SEQUENCE OF PartyInformation

PartyInformation ::= CHOICE
{
msisdn AddressString,
imsi AddressString,
sipUri UTF8String,
nai UTF8String,
...
}

Percent ::= IA5String

Period ::= Unsigned8

PeriodicAccountMgmtData ::= SEQUENCE
{
pamServiceID Integer32,
pamClassID Integer32,
scheduleID Integer32,
currentPamPeriod PamPeriod,
...
}

PriceFactor ::= SEQUENCE
{
priceFactor Percent OPTIONAL,
units ServiceUnits OPTIONAL,
...
}

PriorityLevel ::= INTEGER

ProductID ::= INTEGER

ProviderCCAccountData ::= SEQUENCE
{
providerAccount AddressString,
providerServiceClassID ServiceClassID,
accountGroupID AccountGroupID,
dedicatedAccounts DedicatedAccounts OPTIONAL,
familyAndFriendsID FamilyAndFriendsID OPTIONAL,
familyAndFriendsNo AddressString OPTIONAL,
accumulatedCost MonetaryUnits OPTIONAL,
accountValueUsed MonetaryUnits OPTIONAL,
accountValueDeducted MonetaryUnits,
accumulatedUnits Integer64 OPTIONAL,
accountUnitsDeducted Integer64 OPTIONAL,
specifiedConsumptions SpecifiedConsumptions OPTIONAL,
usageCounters SEQUENCE OF UsageCounter OPTIONAL,
providersFamilyAndFriendsID FamilyAndFriendsID OPTIONAL,
...
}

ProviderCreditControlRecord ::= SEQUENCE
{
providerCCAccountData ProviderCCAccountData,
providerRatedUnits RatedUnits OPTIONAL,
providerPAMData PeriodicAccountMgmtData OPTIONAL,
...
}

ProviderCreditControlRecord ::= SEQUENCE
{
providerCCAccountData ProviderCCAccountData,
providerRatedUnits RatedUnits OPTIONAL,
providerPAMData PeriodicAccountMgmtData OPTIONAL,
...
}

QoSClassIdentifier ::= INTEGER
Qualifier ::= INTEGER

RatedUnits ::= SEQUENCE
{
debitUnits RatedUnitsValues OPTIONAL,
creditUnits RatedUnitsValues OPTIONAL,
freeUnits RatedUnitsValues OPTIONAL,
...
}

RatedUnitsValues ::= SEQUENCE
{
ratedTimeUnits Unsigned32 OPTIONAL,
ratedTotalOctetsUnits Unsigned64 OPTIONAL,
ratedUplinkOctetsUnits Unsigned64 OPTIONAL,
ratedDownlinkOctetsUnits Unsigned64 OPTIONAL,
ratedServiceSpecificUnits Unsigned64 OPTIONAL,
...
}

RadiusSessionID ::= OCTET STRING
RatedDurations ::= SEQUENCE {
debitDuration ChargedDuration OPTIONAL,
creditDuration ChargedDuration OPTIONAL,
freeDuration ChargedDuration OPTIONAL,
...
}
RecordIdentificationNumber ::= OCTET STRING
RecordSequenceNumber ::= OCTET STRING
RecoveryRecord ::= SEQUENCE {
ccnTimeStamp TimeStamp,
accumulatorModificationDate TimeStamp,
recoveryState RecoveryState,
globalDeltaVolumeUL DataVolume OPTIONAL,
globalDeltaVolumeDL DataVolume OPTIONAL,
serviceClassDeltaValueList SEQUENCE OF
RecoveryServiceClassInfo OPTIONAL,
...
}
RecoveryServiceClassInfo ::= SEQUENCE {
serviceClass ServiceClass,
deltaTime DataVolume OPTIONAL,
deltaVolumeUL DataVolume OPTIONAL,
deltaVolumeDL DataVolume OPTIONAL,
...
}
RecoveryState ::= ENUMERATED {
normal (1),
provisioningRecovery (2),
cdrRecovery (3)
}
RoamingPosition ::= ENUMERATED
{
insideHPLMN(0),
outsideHPLMN(1)
}
SelectionTreeParameter ::= SEQUENCE
{
selectionTreeID UTF8String,
selectionTreeVersion UTF8String,
selectionTreeType SelectionTreeType,
...
}
SelectionTreeType ::= ENUMERATED
{
rating(0),
bonus(1),
selection(2),
dedicatedAccount(3),
communityCharging(4),
numberNormalization(5),
ussdTextMessage(6),
accountManagement(7),
preAnalysis(8),
periodicAccountManagement(9)
}
SDPCreditControlRecord ::= CHOICE
{
creditControlRecord CreditControlRecord,
...
}
SelectedCommunityIndicator ::= INTEGER
ServiceClass ::= INTEGER
ServiceClassID ::= INTEGER
ServiceClassExtendedInfo ::= SEQUENCE {
serviceClass ServiceClass,
timeAccumulated DataVolume,
...
}

ServiceExtension ::= ENUMERATED
{
ussdCallback(0),
capV1Roaming(1)
}

ServiceOfferings ::= INTEGER
-- 0 undefined
-- 1 - 2147483647 serviceOfferings

ServiceOutputField ::= SEQUENCE
{
parameterID Unsigned32,
parameterValue ServiceOutputFieldType,
parameterName UTF8String OPTIONAL,
...
}

ServiceOutputFieldType ::= CHOICE
{
integer64 Integer64,
string UTF8String,
octetString OCTET STRING,
...
}

ServiceProviderID ::= INTEGER
ServiceClassInfo ::= SEQUENCE {
serviceClass ServiceClass,
volumeULAccumulated DataVolume,
volumeDLAccumulated DataVolume
}
ServiceScenario ::= ENUMERATED
{
mobileOriginating(0),
mobileForwarding(1),
mobileTerminating(2)
}
ServingElement ::= CHOICE {
originInfo OriginInfo,
mSCAddress AddressString,
ggsnAddress GSNAddress,
sgsnAddress GSNAddress,
...
}
SessionID ::= OCTET STRING
SmsDeliveryStatus ::= ENUMERATED {
delivered (1),
expired (2)
}

SpecifiedConsumptions ::= SEQUENCE OF SpecifiedConsumption
SpecifiedConsumptionAccounts ::= SEQUENCE OF SpecifiedConsumptionPerAccount

SpecifiedConsumption ::= SEQUENCE
{
selectionTreeQualifiers SelectionTreeQualifiers,
specifiedConsumptionAccounts SpecifiedConsumptionAccounts,
offerID OfferID OPTIONAL,
individualPriceFactorAtUnit
IndividualPriceFactorHistory OPTIONAL,
terminationAtUnit ServiceUnits OPTIONAL,
eligibleOfferAtUnit ServiceUnits OPTIONAL,
offerProviderID AddressString OPTIONAL,
productID ProductID OPTIONAL,
offerAttributes OfferAttributes OPTIONAL, -- No
--Not use, under development
chargedProductFee ChargedProductFee OPTIONAL,
--Not use, under development end
priceFactorAtUnit PriceFactor OPTIONAL,
...
}

SpecifiedConsumptionNoCost ::= SEQUENCE
{
providedUnits ServiceUnits,
...
}

SpecifiedConsumptionPerAccount ::= SEQUENCE
{
units ServiceUnits,
accountSpecifiedConsumption AccountSpecifiedConsumption,
accumulatorSpecifiedConsumptions AccumulatorSpecifiedConsumptions OPTIONAL,
usageCounterSpecifiedConsumptions UsageCounterSpecifiedConsumptions OPTIONAL,
...
}
SelectionTreeQualifiers ::= SEQUENCE OF Qualifier

StartOfUsageInfo ::= SEQUENCE {
serviceClass ServiceClass,
startOfUsage TimeStamp
}

Strings ::= SEQUENCE OF UTF8String

ServiceUnits ::= SEQUENCE
{
timeUnit Unsigned32 OPTIONAL,
moneyUnit MonetaryUnits OPTIONAL,
totalOctetsUnit Unsigned64 OPTIONAL,
uplinkOctetsUnit Unsigned64 OPTIONAL,
downlinkOctetsUnit Unsigned64 OPTIONAL,
serviceSpecificUnit Unsigned64 OPTIONAL,
...
}

ServiceSetupResult ::= ENUMERATED
{
successfulReleasedByService(0),
successfulDisconnectedByCallingParty(1),
successfulDisconnectByCalledParty(2),
successfulTollfree(3),
nonSuccessfulCalledPartyRouteSelectFailure(4),
nonSuccessfulCalledPartyBusy(5),
nonSuccessfulCalledPartyNotReachable(6),
nonSuccessfulCalledPartyNoAnswer(7),
nonSuccessfulCallingPartyAbandon(8),
nonSuccessfulOtherReason(14),
callForwardingChargingCancelled(15)
}

SubDedicatedAccounts ::= SEQUENCE OF SubDedicatedAccount

SubDedicatedAccount ::= SEQUENCE
{
dedicatedAccountID DedicatedAccountID,
dedicatedAccountValueBefore MonetaryUnits OPTIONAL,
dedicatedAccountValueAfter MonetaryUnits OPTIONAL,
dedicatedAccountChange MonetaryUnits OPTIONAL,
accountExpiryDateAfter Date OPTIONAL,
accountStartDateAfter Date OPTIONAL,
dedicatedAccountUnitsBefore Unsigned64 OPTIONAL,
dedicatedAccountUnitsAfter Unsigned64 OPTIONAL,
dedicatedAccountUnitsChange Integer64 OPTIONAL,
...
}

SubscriberGroup ::= OCTET STRING
SubscriptionID ::= SEQUENCE {
subscriptionIDType SubscriptionIDType,
subscriptionIDValue SubscriptionIDData
}
SubscriptionIDData ::= UTF8String
SubscriptionIDType ::= ENUMERATED {
endUserE164 (0),
endUserIMSI (1),
endUserSIPURI (2),
endUserNAI (3),
endUserPrivate (4)
}
SubscriptionType ::= INTEGER

TariffChangeUsage ::= ENUMERATED
{
before (0),
after (1),
indeterminate (2)
}
TeleServiceCode ::= ENUMERATED {
voice (0),
fax (1),
data (2),
unknown (3),
sMS (4),
gPRS (5),
content (6),
videoTelephony (7),
videoConference (8),
extensionTSC1 (65526),
extensionTSC2 (65527),
extensionTSC3 (65528),
extensionTSC4 (65529),
extensionTSC5 (65530),
extensionTSC6 (65531),
extensionTSC7 (65532),
extensionTSC8 (65533),
extensionTSC9 (65534),
extensionTSC10 (65535)
}

TerminationCause ::= ENUMERATED
{
diameterLogout(1),
diameterServiceNotProvided(2),
diameterBadAnswer(3),
diameterAdministrative(4),
diameterLinkBroken(5),
diameterAuthExpired(6),
diameterUserMoved(7),
diameterSessionTimeout(8)
}

Time ::= SEQUENCE
{
sec Integer32,
tz Integer8
}

TimeStamp ::= OCTET STRING
TrafficCase ::= ENUMERATED {
originatingInsideHPLMN (0),
forwardedInsideHPLMN (1),
terminatingInsideHPLMN (2),
originatingOutsideHPLMNCAPv1 (3),
forwardedOutsideHPLMNCAPv1 (4),
terminatingOutsideHPLMN (5),
roamingCallBackOutsideHPLMN (6),
originatingOutsideHPLMNCAPv2 (7),
forwardedOutsideHPLMNCAPv2 (8),
terminatingOutsideHPLMNCAPv2 (9),
originatingOutsideHPLMNCAPv3 (10),
forwardedOutsideHPLMNCAPv3 (11),
terminatingOutsideHPLMNCAPv3 (12),
originatingServiceCharging (20),
terminatingServiceCharging (21)
}
-- PC:10210
TreeDefinedField ::= SEQUENCE
{
parameterID UTF8String,
parameterValue TreeDefinedFieldType
}

TreeDefinedFieldType ::= CHOICE
{
boolean BOOLEAN,
integer64 Integer64,
date Date,
string UTF8String,
floatingDecimalTDF FloatingDecimal,
amountTDF MonetaryUnits,
...
}

TrunkGrpNo ::= INTEGER
TrunkInformation ::= SEQUENCE {
inTrunkGrpNo TrunkGrpNo OPTIONAL,
outTrunkGrpNo TrunkGrpNo OPTIONAL,
...
}
-- PC:10210 end
Units::= SEQUENCE {
duration ChargedDuration OPTIONAL,
numberOfEvents NumberOfEvents OPTIONAL,
...
}

Unsigned8 ::= INTEGER
Unsigned32 ::= INTEGER
Unsigned64 ::= INTEGER

UsageCounter ::= SEQUENCE
{
usageCounterID UsageCounterID,
usageCounterValueBefore UsageCounterType OPTIONAL,
usageCounterValueAfter UsageCounterType OPTIONAL,
usageCounterChange UsageCounterType OPTIONAL,
productID ProductID OPTIONAL,
...
}

UsageCounterID ::= INTEGER

UsageCounterSpecifiedConsumptions ::= SEQUENCE OF UsageCounterSpecifiedConsumption
UsageCounterSpecifiedConsumption ::= SEQUENCE
{
usageCounterID UsageCounterID,
usageCounterChange UsageCounterType OPTIONAL,
productID ProductID OPTIONAL,
...
}

UsageCounterType ::= CHOICE
{
usageCounterUnit Unsigned64,
usageCounterMoney MonetaryUnits,
...
}

UsedOffers ::= SEQUENCE OF OfferID

UsedOffersAdditionalInfo ::= SEQUENCE OF UsedOfferAdditionalInfo
--PC:10276 end

-- PC:10276
UsedOfferAdditionalInfo ::= SEQUENCE
{
offerID OfferID,
offerExpiryDate Date OPTIONAL,
offerStartDate Date OPTIONAL,
offerType OfferType OPTIONAL,
offerDisabled BOOLEAN OPTIONAL,
offerExpiryDateTime TimeStamp OPTIONAL,
offerStartDateTime TimeStamp OPTIONAL,
...
}

UsedServiceUnit ::= SEQUENCE {
tariffChangeUsage TariffChangeUsage OPTIONAL,
timeUnit Unsigned32 OPTIONAL,
moneyUnit MonetaryUnits OPTIONAL,
totalOctetsUnit Unsigned64 OPTIONAL,
uplinkOctetsUnit Unsigned64 OPTIONAL,
downlinkOctetsUnit Unsigned64 OPTIONAL,
serviceSpecificUnit Unsigned64 OPTIONAL,
...
}
UsedServiceUnits ::= SEQUENCE OF UsedServiceUnit
UsedUnchargedDuration ::= OCTET STRING
UsedUnchargedEvent ::= OCTET STRING
UserName ::= OCTET STRING

--PC:09785
UserSessionID ::= UTF8String
--PC:09785 end

sorry was so hassle to posting, my question , any thing that i missed ? and any suggestion to resolve this issue ?

Thank you so much in advance :)

Re-attach again the script and ASN, The ASN structured already test via --> http://asn1-playground.oss.com/ and yield no Error in ASN format is already okay.

The script yield this error --> decode error 62<=>30 0 8 at /Library/Perl/5.12/Convert/ASN1/_decode.pm line 113.

#!/usr/bin/perl

use Data::Dumper;
use Convert::ASN1 qw(:io :debug :tag :const);

####CreateObJect#######;
$asn = Convert::ASN1->new;
#######asn spec##########;
$specfile = "/Users/ahmadrifky/myscript/asn/myasnspec.txt";
$r = $asn->prepare_file($specfile);

###Open File#### ;
my $file= $ARGV[0];
open my $fh, '<', $file or die "unable to open file '$file' for reading : $!";

######Only Test#############
$nbytes = asn_read($fh, $data);
$yes = asn_ready($fh);
$aku = asn_dump($data);

print " yes $aku $nbytes \n";

#print Dumper( $asn->decode($data));
#decode( pack("H_", "b0805f92cb") );
#$data = pack("H_", $data);
#$structure=$asn->decode(pack("H*", $data)) or print $asn->error();
$structure=$asn->decode($data) or print $asn->error();
#print Dumper($asn->decode($data));

#isi context
#$asn->dump_all;

my $myresultcode = $asn->find("OnlineCreditControlRecord");

if (!defined($myresultcode)) { die "ERROR: " . $asn->error . "\n"; }

print "RRCTransactionIdentifier ", $myresultcode->decode($data) ;

Got Error:

decode error 62<=>30 0 8 at /Library/Perl/5.12/Convert/ASN1/_decode.pm line 113.

===== The ASN ======

ChargingDataOutputRecord ::= CHOICE {
sCFPDPRecord SCFPDPRecord,
sCFSMSPSMORecord SCFSMSMORecord,
sCFSMSCSMORecord SCFSMSMORecord,
diameterCreditControlRecord DiameterCreditControlRecord,
fBCRatingRecord FBCRatingRecord,
rTCCreditControlRecord RTCCreditControlRecord,
onlineCreditControlRecord OnlineCreditControlRecord,
...
}

SCFPDPRecord ::= SEQUENCE {
chargingID ChargingID,
ggsnAddressUsed GSNAddress,
accessPointName AccessPointName OPTIONAL,
recordSequenceNumber RecordSequenceNumber,
nodeID NodeID,
localSequenceNumber LocalSequenceNumber,
lastPartialOutput BOOLEAN,
trafficCase TrafficCase OPTIONAL,
subscriberNumber AddressString OPTIONAL,
serviceClass ServiceClass OPTIONAL,
accountValueBefore MoneyAmount OPTIONAL,
accountValueAfter MoneyAmount OPTIONAL,
finalCharge MoneyAmount OPTIONAL,
chargedDuration ChargedDuration OPTIONAL,
cdrReason CdrReason,
teleServiceCode TeleServiceCode OPTIONAL,
startOfChargingOfContext TimeStamp OPTIONAL,
familyAndFriendsIndicator FamilyAndFriendsIndicator OPTIONAL,
numberOfSDPInterrogations NumberOfSDPInterrogations,
dataVolume DataVolume OPTIONAL,
currencyType CurrencyType OPTIONAL,
callingPartyNumber AddressString OPTIONAL,
originatingLocationInfo AddressString OPTIONAL,
accountNumber AddressString OPTIONAL,
terminatingLocationInfo AddressString OPTIONAL,
calledPartyNumber AddressString OPTIONAL,
accumulatorValueInfo SEQUENCE OF
AccumulatorValueInfo OPTIONAL,
dedicatedAccountInfo SEQUENCE OF
DedicatedAccountInfo OPTIONAL,
accountGroupID AccountGroupID OPTIONAL,
serviceOfferings ServiceOfferings OPTIONAL,
communityDataInfo SEQUENCE OF CommunityDataInfo OPTIONAL,
triggerTime TimeStamp OPTIONAL,
cellID CellID OPTIONAL,
locationAreaID LocationAreaID OPTIONAL,
categorizationInformation CategorizationInformation OPTIONAL,
ratedDurations RatedDurations OPTIONAL,
servedIMSI IMSI OPTIONAL,
...
}
SCFSMSMORecord ::= SEQUENCE {
servedIMSI IMSI,
servedMSISDN AddressString,
serviceCenter AddressString,
nodeID NodeID,
localSequenceNumber LocalSequenceNumber,
trafficCase TrafficCase OPTIONAL,
serviceClass ServiceClass OPTIONAL,
accountValueBefore MoneyAmount OPTIONAL,
accountValueAfter MoneyAmount OPTIONAL,
finalCharge MoneyAmount OPTIONAL,
cdrReason CdrReason,
teleServiceCode TeleServiceCode OPTIONAL,
startOfChargingOfEvent TimeStamp OPTIONAL,
familyAndFriendsIndicator FamilyAndFriendsIndicator OPTIONAL,
numberOfSDPInterrogations NumberOfSDPInterrogations,
currencyType CurrencyType OPTIONAL,
originatingLocationInfo AddressString OPTIONAL,
accountNumber AddressString OPTIONAL,
destinationNumber AddressString,
accumulatorValueInfo SEQUENCE OF
AccumulatorValueInfo OPTIONAL,
dedicatedAccountInfo SEQUENCE OF
DedicatedAccountInfo OPTIONAL,
eventTimeStamp TimeStamp,
networkID NetworkID OPTIONAL,
smsReferenceNumber CallReferenceNumber OPTIONAL,
mscAddress AddressString OPTIONAL,
sgsn-Number AddressString OPTIONAL,
accountGroupID AccountGroupID OPTIONAL,
serviceOfferings ServiceOfferings OPTIONAL,
communityDataInfo SEQUENCE OF CommunityDataInfo OPTIONAL,
calledPartyNumber AddressString OPTIONAL,
cellID CellID OPTIONAL,
locationAreaID LocationAreaID OPTIONAL,
categorizationInformation CategorizationInformation OPTIONAL,
ratedDurations RatedDurations OPTIONAL,
individualPriceFactorHistory IndividualPriceFactorHistory OPTIONAL,
-- PC 09943
originalCalledPartyNumber AddressString OPTIONAL,
-- PC 09943 end
...
}

DiameterCreditControlRecord ::= SEQUENCE {
cdrReason CdrReason,
nodeID NodeID,
recordSequenceNumber RecordSequenceNumber,
lastPartialOutput BOOLEAN,
trafficCase TrafficCase OPTIONAL,
teleServiceCode TeleServiceCode OPTIONAL,
subscriberID AddressString OPTIONAL,
callingPartyNumber AddressString OPTIONAL,
calledPartyNumber AddressString OPTIONAL,
triggerTime TimeStamp OPTIONAL,
chargedDuration ChargedDuration OPTIONAL,
dataVolume DataVolume OPTIONAL,
numberOfEvents NumberOfEvents OPTIONAL,
finalCharge MoneyAmount OPTIONAL,
accountValueBefore MoneyAmount OPTIONAL,
accountValueAfter MoneyAmount OPTIONAL,
sessionID SessionID,
userName UserName OPTIONAL,
numberOfSDPInterrogations NumberOfSDPInterrogations,
originRealm OriginRealm OPTIONAL,
originHost OriginHost OPTIONAL,
serviceClass ServiceClass OPTIONAL,
accountNumber AddressString OPTIONAL,
localSequenceNumber LocalSequenceNumber,
familyAndFriendsIndicator FamilyAndFriendsIndicator OPTIONAL,
currencyType CurrencyType OPTIONAL,
accumulatorValueInfo SEQUENCE OF AccumulatorValueInfo OPTIONAL,
dedicatedAccountInfo SEQUENCE OF DedicatedAccountInfo OPTIONAL,
serviceProviderID ServiceProviderID OPTIONAL,
extInt1 ExtInt OPTIONAL,
extInt2 ExtInt OPTIONAL,
extInt3 ExtInt OPTIONAL,
extInt4 ExtInt OPTIONAL,
extText ExtText OPTIONAL,
gprsQoS GPRSQoS OPTIONAL,
redirectingPartyNumber AddressString OPTIONAL,
originatingLocationInfo AddressString OPTIONAL,
terminatingLocationInfo AddressString OPTIONAL,
networkID NetworkID OPTIONAL,
subscriptionType SubscriptionType OPTIONAL,
smsDeliveryStatus SmsDeliveryStatus OPTIONAL,
calledPartyNumber2 AddressString OPTIONAL,
calledPartyNumber3 AddressString OPTIONAL,
radiusSessionID RadiusSessionID OPTIONAL,
multiSessionID MultiSessionID OPTIONAL,
originalSubscriptionIDData SubscriptionIDData OPTIONAL,
originalSubscriptionIDType SubscriptionIDType OPTIONAL,
accountingCorrelationID AccountingCorrelationID OPTIONAL,
abnormalTerminationReason AbnormalTerminationReason OPTIONAL,
accountGroupID AccountGroupID OPTIONAL,
serviceOfferings ServiceOfferings OPTIONAL,
communityDataInfo SEQUENCE OF CommunityDataInfo OPTIONAL,
usedAmountLastInterval MoneyAmount OPTIONAL,
deductedAmountLastInterval MoneyAmount OPTIONAL,
categorizationInformation CategorizationInformation OPTIONAL,
ratedDurations RatedDurations OPTIONAL,
...
}
FBCRatingRecord ::= SEQUENCE {
serviceClassInfo SEQUENCE OF ServiceClassInfo,
ggsnAddressUsed GSNAddress,
chargingID SEQUENCE OF ChargingID,
timeStamp TimeStamp,
volumeULAccumulatedTotal DataVolume,
volumeDLAccumulatedTotal DataVolume,
subscriberGroup SubscriberGroup,
nodeID NodeID,
localSequenceNumber LocalSequenceNumber,
servedIMSI IMSI OPTIONAL,
servedMSISDN AddressString OPTIONAL,
userName UserName OPTIONAL,
recoveryData RecoveryRecord OPTIONAL,
serviceClassExtendedInfo SEQUENCE OF
ServiceClassExtendedInfo OPTIONAL,
ratingRequested BOOLEAN OPTIONAL,
ratingSuccessful BOOLEAN OPTIONAL,
startOfUsageInfo SEQUENCE OF StartOfUsageInfo OPTIONAL,
...
}
RTCCreditControlRecord ::= SEQUENCE {
cdrReason CdrReason,
nodeID NodeID,
recordSequenceNumber RecordSequenceNumber,
lastPartialOutput BOOLEAN,
trafficCase TrafficCase OPTIONAL,
teleServiceCode TeleServiceCode OPTIONAL,
subscriberID AddressString OPTIONAL,
callingPartyNumber AddressString OPTIONAL,
calledPartyNumber AddressString OPTIONAL,
triggerTime TimeStamp OPTIONAL,
chargedDuration ChargedDuration OPTIONAL,
servedIMSI IMSI OPTIONAL,
numberOfEvents NumberOfEvents OPTIONAL,
finalCharge MoneyAmount OPTIONAL,
accountValueBefore MoneyAmount OPTIONAL,
accountValueAfter MoneyAmount OPTIONAL,
accountingCorrelationID AccountingCorrelationID,
numberOfSDPInterrogations NumberOfSDPInterrogations,
serviceClass ServiceClass OPTIONAL,
accountNumber AddressString OPTIONAL,
localSequenceNumber LocalSequenceNumber,
familyAndFriendsIndicator FamilyAndFriendsIndicator OPTIONAL,
currencyType CurrencyType OPTIONAL,
accumulatorValueInfo SEQUENCE OF
AccumulatorValueInfo OPTIONAL,
dedicatedAccountInfo SEQUENCE OF
DedicatedAccountInfo OPTIONAL,
redirectingPartyNumber AddressString OPTIONAL,
originatingLocationInfo AddressString OPTIONAL,
terminatingLocationInfo AddressString OPTIONAL,
networkID NetworkID OPTIONAL,
subscriptionType SubscriptionType OPTIONAL,
calledPartyNumber2 AddressString OPTIONAL,
calledPartyNumber3 AddressString OPTIONAL,
accountGroupID AccountGroupID OPTIONAL,
serviceOfferings ServiceOfferings OPTIONAL,
communityDataInfo SEQUENCE OF CommunityDataInfo OPTIONAL,
serviceCenter AddressString OPTIONAL,
startOfCharging TimeStamp OPTIONAL,
callSetUpResultCode CallSetUpResultCode OPTIONAL,
usedUnchargedDuration UsedUnchargedDuration OPTIONAL,
usedUnchargedEvent UsedUnchargedEvent OPTIONAL,
categorizationInformation CategorizationInformation OPTIONAL,
ratedDurations RatedDurations OPTIONAL,
individualPriceFactorHistory IndividualPriceFactorHistory OPTIONAL,
...
}

OnlineCreditControlRecord ::= SEQUENCE {
resultCode INTEGER,
resultCodeExtension Unsigned32 OPTIONAL,
triggerTime TimeStamp OPTIONAL,
nodeName UTF8String,
serviceContextID UTF8String,
chargingContextID ChargingContext,
serviceSessionID UTF8String,
recordIdentificationNumber RecordIdentificationNumber,
partialSequenceNumber INTEGER OPTIONAL,
lastPartialOutput BOOLEAN OPTIONAL,
servedSubscriptionID SEQUENCE OF SubscriptionID OPTIONAL,
correlationID CorrelationID OPTIONAL,
servingElement ServingElement OPTIONAL,
creditControlRecords SEQUENCE OF SDPCreditControlRecord OPTIONAL,
usedUnchargedServiceUnits UsedServiceUnits OPTIONAL,
-- PC 07959
originalCalledPartyNumber AddressString OPTIONAL,
-- PC 07959 end
-- PC
chargedDuration UsedServiceUnits OPTIONAL,
usedStartPulses OCTET STRING OPTIONAL,
-- PC end
-- PC 08940
nonServedSubscriptionID UTF8String OPTIONAL,
-- PC 08940 end
authorizedQoS SEQUENCE OF AuthorizedQoS OPTIONAL,
-- PC 09687
firstCallInfo AddressString OPTIONAL,
-- PC 09687 end
--PC:08842
chargingSuppressionAtForwarding ChargingSuppressionAtForwarding OPTIONAL,
--PC:08842 end
--PC:10210
iMEI IMEI OPTIONAL,
trunkInformation TrunkInformation OPTIONAL,
-- PC:10210 end
-- PC:10064
authorizedChargingRules SEQUENCE OF AuthorizedChargingRules,
-- PC:10064 end
iMSChargingIdentifier IMSChargingIdentifier OPTIONAL,
--PC:09785
outgoingSessionId OutgoingSessionId OPTIONAL,
userSessionID UserSessionID OPTIONAL,
causeCode CauseCode OPTIONAL,
creditControlFailureHandling CreditControlFailureHandling OPTIONAL,
-- PC:09785 end
--PC:11040
accessPointName AccessPointName OPTIONAL,
dataVolume DataVolume OPTIONAL,
-- PC:11040 end
--PC:11376
receivedshortcodeNumber UTF8String OPTIONAL,
-- PC:11376 end
...
}

AbnormalTerminationReason ::= ENUMERATED {
serviceElementTermination (0),
connectionToUserBroken (1)
}
AccessPointName ::= OCTET STRING
AccountFlags ::= IA5String

AccountGroupID ::= INTEGER
-- 0 undefined
-- 1 - 2147483647 accountGroupID
AccountingCorrelationID ::= UTF8String
AccountUnitType ::= ENUMERATED
{
time(0),
money(1),
totalOctets(2),
inputOctets(3),
outputOctets(4),
serviceSpecificUnits(5),
volume(6)
}
AcctMultiSessionID ::= OCTET STRING
AccumulatorID ::= INTEGER
AccumulatorValue ::= INTEGER

Accumulator ::= SEQUENCE
{
accumulatorID AccumulatorID,
accumulatorBefore Integer32 OPTIONAL,
accumulatorChange Integer32,
accumulatorAfter Integer32,
accumulatorBeforeSession Integer32 OPTIONAL,
...
}

Accumulators ::= SEQUENCE OF Accumulator
AccountSpecifiedConsumption ::= CHOICE
{
dedicatedAccountSpecifiedConsumption DedicatedAccountSpecifiedConsumption,
mainAccountSpecifiedConsumption MainAccountSpecifiedConsumption,
specifiedConsumptionNoCost SpecifiedConsumptionNoCost,
...
}
AccumulatorSpecifiedConsumptions ::= SEQUENCE OF AccumulatorSpecifiedConsumption

AccumulatorSpecifiedConsumption ::= SEQUENCE
{
accumulatorID AccumulatorID,
accumulatorChange Integer32 OPTIONAL,
...
}

AccumulatorValueInfo ::= SEQUENCE {
accumulatorID AccumulatorID OPTIONAL,
accumulatorValue AccumulatorValue OPTIONAL,
accumulatorDeltaValue AccumulatorValue OPTIONAL,
...
}
AddressString ::= OCTET STRING
-- PC:10064
AuthorizedChargingRules ::= SEQUENCE {
triggerTime TimeStamp,
activatedChargingRuleName SEQUENCE OF ChargingRuleName OPTIONAL,
deactivatedChargingRuleName SEQUENCE OF ChargingRuleName OPTIONAL,
activatedChargingRuleBaseName SEQUENCE OF ChargingRuleBaseName,
deactivatedChargingRuleBaseName SEQUENCE OF ChargingRuleBaseName,
...
}
-- PC:10064 end
AuthorizedQoS ::= SEQUENCE {
triggerTime TimeStamp,
qoSClassIdentifier QoSClassIdentifier OPTIONAL,
maxRequestedBandwidthUL Unsigned32 OPTIONAL,
maxRequestedBandwidthDL Unsigned32 OPTIONAL,
priorityLevel PriorityLevel OPTIONAL,
preEmptionCapability BOOLEAN OPTIONAL,
preEmptionVulnerability BOOLEAN OPTIONAL,
...
}

BonusAdjustment ::= SEQUENCE
{
accountValueBefore MonetaryUnits OPTIONAL,
accountValueAfter MonetaryUnits OPTIONAL,
bonusAmount MonetaryUnits OPTIONAL,
accumulators Accumulators OPTIONAL,
dedicatedAccounts DedicatedAccounts OPTIONAL,
lifeCycleInformation LifeCycleInformation OPTIONAL,
-- PC
aggregatedValueBefore MonetaryUnits OPTIONAL,
aggregatedValueAfter MonetaryUnits OPTIONAL,
-- end PC
bonusOffers SEQUENCE OF BonusOffer OPTIONAL,
...
}

BonusOffer ::= SEQUENCE
{
offerID OfferID,
offerExpiryDateBefore Date OPTIONAL,
offerExpiryDateAfter Date OPTIONAL,
offerStartDateBefore Date OPTIONAL,
offerStartDateAfter Date OPTIONAL,
offerType OfferType OPTIONAL,
...
}

CallReferenceNumber ::= OCTET STRING
CallSetUpResultCode ::= ENUMERATED {
successful-ReleasedByService (0),
successful-DisconnectByCallingParty (1),
successful-DisconnectByCalledParty (2),
successful-OngoingTollFree (3),
non-Successful-CalledPartyRouteSelectFailure (4),
non-Successful-CalledPartyBusy (5),
non-Successful-CalledPartyNotReachable (6),
non-Successful-CalledPartyNoAnswer (7),
non-Successful-CallingPartyAbandon (8),
non-Successful-OtherReason (14),
callForwardingHasBeenInvoked-ChargingCancelled (15)
}
CampaignIdentifier ::= INTEGER
CategoryValue ::= INTEGER
CategorizationInformation ::= SEQUENCE {
categoryType1 CategoryValue OPTIONAL,
categoryType2 CategoryValue OPTIONAL,
categoryType3 CategoryValue OPTIONAL,
categoryType4 CategoryValue OPTIONAL,
...
}
-- PC:09785
CauseCode ::= Integer32
-- PC:09785 end
CdrReason ::= ENUMERATED {
serviceClassRequested (0),
firstInterrogationUnsuccessful (1),
invokeIntermediateInterrogationFinalReportUnsucc (2),
internalError (3),
subscriberTemporaryBlocked (4),
partialDeduction (5)
}
CCAccountData ::= SEQUENCE
{
servedAccount AddressString,
serviceClassID ServiceClassID,
accountGroupID AccountGroupID,
accountValueBefore MonetaryUnits OPTIONAL,
accountValueAfter MonetaryUnits OPTIONAL,
communityInformation CommunityInformation OPTIONAL,
accumulators Accumulators OPTIONAL,
dedicatedAccounts DedicatedAccounts OPTIONAL,
familyAndFriendsID FamilyAndFriendsID OPTIONAL,
familyAndFriendsNo AddressString OPTIONAL,
serviceOfferings Unsigned32,
accumulatedCost MonetaryUnits OPTIONAL,
accountValueUsed MonetaryUnits OPTIONAL,
accountValueDeducted MonetaryUnits,
-- PC
aggregatedValueBefore MonetaryUnits OPTIONAL,
aggregatedValueAfter MonetaryUnits OPTIONAL,
-- end PC
accumulatedUnits Integer64 OPTIONAL,
accountUnitsUsed Integer64 OPTIONAL,
accountUnitsDeducted Integer64 OPTIONAL,
specifiedConsumptions SpecifiedConsumptions OPTIONAL,
usedOffers UsedOffers OPTIONAL,
usageCounters SEQUENCE OF UsageCounter OPTIONAL,
providersFamilyAndFriendsID FamilyAndFriendsID OPTIONAL,
-- PC:10276
usedOffersAdditionalInfo UsedOffersAdditionalInfo OPTIONAL,
-- PC:10276 end
...
}
CellID ::= OCTET STRING
ChargingContext ::= UTF8String
ChargedDuration ::= OCTET STRING

ChargedProductFee ::= SEQUENCE
{
chargedFee MonetaryUnits,
accountValueBefore MonetaryUnits OPTIONAL,
accountValueAfter MonetaryUnits OPTIONAL,
dedicatedAccounts DedicatedAccounts OPTIONAL,
usageCounters SEQUENCE OF UsageCounter OPTIONAL,
...
}

ChargingID ::= OCTET STRING
-- PC:10064
ChargingRuleBaseName ::= UTF8String
ChargingRuleName ::= OCTET STRING
-- PC:10064 end
-- PC:08842
ChargingSuppressionAtForwarding ::= ENUMERATED {
notSuppressChargingAtForwarding (0),
suppressChargingAtForwarding (1)
}
-- PC:08842 end
CommunityDataInfo ::= SEQUENCE {
selectedCommunityIndicator SelectedCommunityIndicator OPTIONAL,
communityIDCharged SEQUENCE OF CommunityID OPTIONAL,
communityIDNonCharged SEQUENCE OF CommunityID OPTIONAL,
communityDataNonChargedNotAvailable BOOLEAN OPTIONAL,
...
}
CommunityID ::= INTEGER

CommunityIDs ::= SEQUENCE
{
communityID1 CommunityID OPTIONAL,
communityID2 CommunityID OPTIONAL,
communityID3 CommunityID OPTIONAL,
...
}

CommunityInformation ::= SEQUENCE
{
selectedCommunityID CommunityID OPTIONAL,
servedCommunityIDs CommunityIDs OPTIONAL,
nonServedCommunityIDs CommunityIDs OPTIONAL,
nonServedCommunityIDNA BOOLEAN OPTIONAL,
nonServedCommunityNo AddressString OPTIONAL,
...
}

ContextParameter ::= SEQUENCE
{
parameterID Integer64,
parameterValue ContextParameterValueType
}

ContextParameterValueType ::= CHOICE
{
boolean BOOLEAN,
integer32 Integer32,
integer64 Integer64,
unsigned32 Unsigned32,
unsigned64 Unsigned64,
addressString AddressString,
octetString OCTET STRING,
string UTF8String,
time Time,
partyInformation PartyInformation,
-- PC:09750
group Group,
partyInformations PartyInformations,
strings Strings,
groups Groups,
-- PC:09750 end
--PC:10699
monetaryUnits MonetaryUnits,
--PC:10699 end

...
}

CorrelationID ::= CHOICE {
callReference CallReferenceNumber,
chargingID ChargingID,
accountingCorrelationID AccountingCorrelationID,
dccCorrelationId DccCorrelationID,
...
}
-- PC:09785

CreditControlFailureHandling ::= ENUMERATED {
terminate (0),
continue (1)
}

CreditControlRecord ::= SEQUENCE
{
serviceIdentifier Unsigned32,
usedServiceUnits UsedServiceUnits OPTIONAL,
eventTime TimeStamp,
triggerTime TimeStamp,
serviceScenario ServiceScenario,
serviceExtension ServiceExtension OPTIONAL,
roamingPosition RoamingPosition OPTIONAL,
tariffInfo SEQUENCE OF
SelectionTreeParameter OPTIONAL,
cCAccountData CCAccountData,
chargingContextSpecific SEQUENCE OF
ContextParameter OPTIONAL,
treeDefinedFields SEQUENCE OF
TreeDefinedField OPTIONAL,
bonusAdjustment BonusAdjustment OPTIONAL,
serviceSetupResult ServiceSetupResult OPTIONAL,
terminationCause TerminationCause OPTIONAL,
ratedUnits RatedUnits OPTIONAL,
individualPriceFactorHistory SEQUENCE OF IndividualPriceFactorHistory OPTIONAL,
periodicAccountMgmtData PeriodicAccountMgmtData OPTIONAL,
providerCreditControlRecord SEQUENCE OF ProviderCreditControlRecord OPTIONAL,
-- PC:10739
chargingContextOutputFields SEQUENCE OF
ServiceOutputField OPTIONAL,
-- PC:10739 end
...
}
-- PC:09785 end
CurrencyType ::= ENUMERATED {
localCurrency (0),
eURO (1)
}
DAID ::= INTEGER
DataVolume ::= OCTET STRING
Date ::= IA5String
DccCorrelationID ::= SEQUENCE {
acctMultiSessionID AcctMultiSessionID OPTIONAL,
ccCorrelationId OCTET STRING OPTIONAL,
sessionId UTF8String OPTIONAL,
ccRequestNumber Unsigned32 OPTIONAL,
...
}

DedicatedAccountAccDuration ::= INTEGER
DedicatedAccountInfo ::= SEQUENCE {
identity DAID OPTIONAL,
valueBefore MoneyAmount OPTIONAL,
valueAfter MoneyAmount OPTIONAL,
campaignIdentifier CampaignIdentifier OPTIONAL,
accumulatedDuration DedicatedAccountAccDuration OPTIONAL,
...
}
DedicatedAccounts ::= SEQUENCE OF DedicatedAccount
DedicatedAccount ::= SEQUENCE
{
dedicatedAccountID DedicatedAccountID,
dedicatedAccountValueBefore MonetaryUnits OPTIONAL,
dedicatedAccountValueAfter MonetaryUnits OPTIONAL,
dedicatedAccountChange MonetaryUnits OPTIONAL,
dedicatedAccountCampaignID DedicatedAccountCampaignID OPTIONAL,
accountExpiryDateBefore Date OPTIONAL,
accountExpiryDateAfter Date OPTIONAL,
accountStartDateBefore Date OPTIONAL,
accountStartDateAfter Date OPTIONAL,
-- PC
realMoney BOOLEAN OPTIONAL,
-- end PC
offerID OfferID OPTIONAL,
dedicatedAccountUnitsBefore Unsigned64 OPTIONAL,
dedicatedAccountUnitsAfter Unsigned64 OPTIONAL,
dedicatedAccountUnitsChange Integer64 OPTIONAL,
accountUnitType AccountUnitType OPTIONAL,
subDedicatedAccounts SubDedicatedAccounts OPTIONAL,
-- PC:09847
productID ProductID OPTIONAL,
-- end PC:09847
-- PC:10276
offerExpiryDate Date OPTIONAL,
offerStartDate Date OPTIONAL,
-- PC:10276 end
...
}
DedicatedAccountID ::= INTEGER
DedicatedAccountCampaignID ::= INTEGER

DedicatedAccountSpecifiedConsumption ::= SEQUENCE
{
dedicatedAccountID DedicatedAccountID,
dedicatedAccountRatedUnits ServiceUnits OPTIONAL,
dedicatedAccountDeducted MonetaryUnits,
...
}

FloatingDecimal ::= SEQUENCE
{
digits Integer64,
decimals Integer32,
...
}

ExtInt ::= INTEGER
ExtText ::= OCTET STRING

FamilyAndFriendsID ::= INTEGER
FamilyAndFriendsIndicator ::= INTEGER

Group ::= SEQUENCE OF ContextParameter
Groups ::= SEQUENCE OF Group

GPRSQoS ::= INTEGER

GSNAddress ::= IPBinaryAddress

IndividualPriceFactor ::= INTEGER

IndividualPriceFactorHistory ::= SEQUENCE {
individualPriceFactor1 IndividualPriceFactor OPTIONAL,
individualPriceFactor2 IndividualPriceFactor OPTIONAL,
individualPriceFactor1Units Units OPTIONAL,
...
}
-- PC:10210
IMEI ::= OCTET STRING
-- PC:10210 end
IMSChargingIdentifier ::= UTF8String
IMSI ::= OCTET STRING

Integer8 ::= INTEGER

Integer32 ::= INTEGER
Integer64 ::= INTEGER
IPBinaryAddress ::= CHOICE {
iPBinV4Address OCTET STRING,
iPBinV6Address OCTET STRING
}

LifeCycleInformation ::= SEQUENCE
{
supervisionExpDateBefore Date OPTIONAL,
supervisionExpDateAfter Date OPTIONAL,
creditClearancePeriodBefore Period OPTIONAL,
creditClearancePeriodAfter Period OPTIONAL,
servFeeExpDateBefore Date OPTIONAL,
servFeeExpDateAfter Date OPTIONAL,
serviceRemovalPeriodBefore Period OPTIONAL,
serviceRemovalPeriodAfter Period OPTIONAL,
accountFlagsBefore AccountFlags OPTIONAL,
accountFlagsAfter AccountFlags OPTIONAL,
...
}
LocationAreaID ::= OCTET STRING
LocalSequenceNumber ::= OCTET STRING

MainAccountSpecifiedConsumption ::= SEQUENCE
{
mainAccountRatedUnits ServiceUnits OPTIONAL,
mainAccountDeducted MonetaryUnits,
...
}

MonetaryUnits ::= SEQUENCE
{
amount Integer64,
decimals Integer32,
currency Unsigned32
}
MoneyAmount ::= OCTET STRING
MultiSessionID ::= OCTET STRING
NetworkID ::= INTEGER
NodeID ::= OCTET STRING
NumberOfEvents ::= INTEGER
NumberOfSDPInterrogations ::= INTEGER
OriginHost ::= OCTET STRING
OriginInfo ::= SEQUENCE {
originRealm OriginRealm OPTIONAL,
originHost OriginHost OPTIONAL,
...
}

OfferAttributes ::= SEQUENCE OF OfferAttribute
OfferAttribute ::= SEQUENCE
{
attributeName UTF8String,
attributeValueString UTF8String OPTIONAL,
...
}

OfferID ::= INTEGER

OfferType ::= ENUMERATED
{
account (0),
multiUserIdentification (1)
}

OriginRealm ::= OCTET STRING
-- PC:09785
OutgoingSessionId ::= UTF8String
-- PC:09785 end

PamPeriod ::= IA5String

PartyInformations ::= SEQUENCE OF PartyInformation

PartyInformation ::= CHOICE
{
msisdn AddressString,
imsi AddressString,
sipUri UTF8String,
nai UTF8String,
...
}

Percent ::= IA5String

Period ::= Unsigned8

PeriodicAccountMgmtData ::= SEQUENCE
{
pamServiceID Integer32,
pamClassID Integer32,
scheduleID Integer32,
currentPamPeriod PamPeriod,
...
}

PriceFactor ::= SEQUENCE
{
priceFactor Percent OPTIONAL,
units ServiceUnits OPTIONAL,
...
}

PriorityLevel ::= INTEGER

ProductID ::= INTEGER

ProviderCCAccountData ::= SEQUENCE
{
providerAccount AddressString,
providerServiceClassID ServiceClassID,
accountGroupID AccountGroupID,
dedicatedAccounts DedicatedAccounts OPTIONAL,
familyAndFriendsID FamilyAndFriendsID OPTIONAL,
familyAndFriendsNo AddressString OPTIONAL,
accumulatedCost MonetaryUnits OPTIONAL,
accountValueUsed MonetaryUnits OPTIONAL,
accountValueDeducted MonetaryUnits,
accumulatedUnits Integer64 OPTIONAL,
accountUnitsDeducted Integer64 OPTIONAL,
specifiedConsumptions SpecifiedConsumptions OPTIONAL,
usageCounters SEQUENCE OF UsageCounter OPTIONAL,
providersFamilyAndFriendsID FamilyAndFriendsID OPTIONAL,
...
}

ProviderCreditControlRecord ::= SEQUENCE
{
providerCCAccountData ProviderCCAccountData,
providerRatedUnits RatedUnits OPTIONAL,
providerPAMData PeriodicAccountMgmtData OPTIONAL,
...
}

QoSClassIdentifier ::= INTEGER
Qualifier ::= INTEGER

RatedUnits ::= SEQUENCE
{
debitUnits RatedUnitsValues OPTIONAL,
creditUnits RatedUnitsValues OPTIONAL,
freeUnits RatedUnitsValues OPTIONAL,
...
}

RatedUnitsValues ::= SEQUENCE
{
ratedTimeUnits Unsigned32 OPTIONAL,
ratedTotalOctetsUnits Unsigned64 OPTIONAL,
ratedUplinkOctetsUnits Unsigned64 OPTIONAL,
ratedDownlinkOctetsUnits Unsigned64 OPTIONAL,
ratedServiceSpecificUnits Unsigned64 OPTIONAL,
...
}

RadiusSessionID ::= OCTET STRING
RatedDurations ::= SEQUENCE {
debitDuration ChargedDuration OPTIONAL,
creditDuration ChargedDuration OPTIONAL,
freeDuration ChargedDuration OPTIONAL,
...
}
RecordIdentificationNumber ::= OCTET STRING
RecordSequenceNumber ::= OCTET STRING
RecoveryRecord ::= SEQUENCE {
ccnTimeStamp TimeStamp,
accumulatorModificationDate TimeStamp,
recoveryState RecoveryState,
globalDeltaVolumeUL DataVolume OPTIONAL,
globalDeltaVolumeDL DataVolume OPTIONAL,
serviceClassDeltaValueList SEQUENCE OF
RecoveryServiceClassInfo OPTIONAL,
...
}
RecoveryServiceClassInfo ::= SEQUENCE {
serviceClass ServiceClass,
deltaTime DataVolume OPTIONAL,
deltaVolumeUL DataVolume OPTIONAL,
deltaVolumeDL DataVolume OPTIONAL,
...
}
RecoveryState ::= ENUMERATED {
normal (1),
provisioningRecovery (2),
cdrRecovery (3)
}
RoamingPosition ::= ENUMERATED
{
insideHPLMN(0),
outsideHPLMN(1)
}
SelectionTreeParameter ::= SEQUENCE
{
selectionTreeID UTF8String,
selectionTreeVersion UTF8String,
selectionTreeType SelectionTreeType,
...
}
SelectionTreeType ::= ENUMERATED
{
rating(0),
bonus(1),
selection(2),
dedicatedAccount(3),
communityCharging(4),
numberNormalization(5),
ussdTextMessage(6),
accountManagement(7),
preAnalysis(8),
periodicAccountManagement(9)
}
SDPCreditControlRecord ::= CHOICE
{
creditControlRecord CreditControlRecord,
...
}
SelectedCommunityIndicator ::= INTEGER
ServiceClass ::= INTEGER
ServiceClassID ::= INTEGER
ServiceClassExtendedInfo ::= SEQUENCE {
serviceClass ServiceClass,
timeAccumulated DataVolume,
...
}

ServiceExtension ::= ENUMERATED
{
ussdCallback(0),
capV1Roaming(1)
}

ServiceOfferings ::= INTEGER
-- 0 undefined
-- 1 - 2147483647 serviceOfferings

ServiceOutputField ::= SEQUENCE
{
parameterID Unsigned32,
parameterValue ServiceOutputFieldType,
parameterName UTF8String OPTIONAL,
...
}

ServiceOutputFieldType ::= CHOICE
{
integer64 Integer64,
string UTF8String,
octetString OCTET STRING,
...
}

ServiceProviderID ::= INTEGER
ServiceClassInfo ::= SEQUENCE {
serviceClass ServiceClass,
volumeULAccumulated DataVolume,
volumeDLAccumulated DataVolume
}
ServiceScenario ::= ENUMERATED
{
mobileOriginating(0),
mobileForwarding(1),
mobileTerminating(2)
}
ServingElement ::= CHOICE {
originInfo OriginInfo,
mSCAddress AddressString,
ggsnAddress GSNAddress,
sgsnAddress GSNAddress,
...
}
SessionID ::= OCTET STRING
SmsDeliveryStatus ::= ENUMERATED {
delivered (1),
expired (2)
}

SpecifiedConsumptions ::= SEQUENCE OF SpecifiedConsumption
SpecifiedConsumptionAccounts ::= SEQUENCE OF SpecifiedConsumptionPerAccount

SpecifiedConsumption ::= SEQUENCE
{
selectionTreeQualifiers SelectionTreeQualifiers,
specifiedConsumptionAccounts SpecifiedConsumptionAccounts,
offerID OfferID OPTIONAL,
individualPriceFactorAtUnit
IndividualPriceFactorHistory OPTIONAL,
terminationAtUnit ServiceUnits OPTIONAL,
eligibleOfferAtUnit ServiceUnits OPTIONAL,
offerProviderID AddressString OPTIONAL,
productID ProductID OPTIONAL,
offerAttributes OfferAttributes OPTIONAL, -- No
--Not use, under development
chargedProductFee ChargedProductFee OPTIONAL,
--Not use, under development end
priceFactorAtUnit PriceFactor OPTIONAL,
...
}

SpecifiedConsumptionNoCost ::= SEQUENCE
{
providedUnits ServiceUnits,
...
}

SpecifiedConsumptionPerAccount ::= SEQUENCE
{
units ServiceUnits,
accountSpecifiedConsumption AccountSpecifiedConsumption,
accumulatorSpecifiedConsumptions AccumulatorSpecifiedConsumptions OPTIONAL,
usageCounterSpecifiedConsumptions UsageCounterSpecifiedConsumptions OPTIONAL,
...
}
SelectionTreeQualifiers ::= SEQUENCE OF Qualifier

StartOfUsageInfo ::= SEQUENCE {
serviceClass ServiceClass,
startOfUsage TimeStamp
}

Strings ::= SEQUENCE OF UTF8String

ServiceUnits ::= SEQUENCE
{
timeUnit Unsigned32 OPTIONAL,
moneyUnit MonetaryUnits OPTIONAL,
totalOctetsUnit Unsigned64 OPTIONAL,
uplinkOctetsUnit Unsigned64 OPTIONAL,
downlinkOctetsUnit Unsigned64 OPTIONAL,
serviceSpecificUnit Unsigned64 OPTIONAL,
...
}

ServiceSetupResult ::= ENUMERATED
{
successfulReleasedByService(0),
successfulDisconnectedByCallingParty(1),
successfulDisconnectByCalledParty(2),
successfulTollfree(3),
nonSuccessfulCalledPartyRouteSelectFailure(4),
nonSuccessfulCalledPartyBusy(5),
nonSuccessfulCalledPartyNotReachable(6),
nonSuccessfulCalledPartyNoAnswer(7),
nonSuccessfulCallingPartyAbandon(8),
nonSuccessfulOtherReason(14),
callForwardingChargingCancelled(15)
}

SubDedicatedAccounts ::= SEQUENCE OF SubDedicatedAccount

SubDedicatedAccount ::= SEQUENCE
{
dedicatedAccountID DedicatedAccountID,
dedicatedAccountValueBefore MonetaryUnits OPTIONAL,
dedicatedAccountValueAfter MonetaryUnits OPTIONAL,
dedicatedAccountChange MonetaryUnits OPTIONAL,
accountExpiryDateAfter Date OPTIONAL,
accountStartDateAfter Date OPTIONAL,
dedicatedAccountUnitsBefore Unsigned64 OPTIONAL,
dedicatedAccountUnitsAfter Unsigned64 OPTIONAL,
dedicatedAccountUnitsChange Integer64 OPTIONAL,
...
}

SubscriberGroup ::= OCTET STRING
SubscriptionID ::= SEQUENCE {
subscriptionIDType SubscriptionIDType,
subscriptionIDValue SubscriptionIDData
}
SubscriptionIDData ::= UTF8String
SubscriptionIDType ::= ENUMERATED {
endUserE164 (0),
endUserIMSI (1),
endUserSIPURI (2),
endUserNAI (3),
endUserPrivate (4)
}
SubscriptionType ::= INTEGER

TariffChangeUsage ::= ENUMERATED
{
before (0),
after (1),
indeterminate (2)
}
TeleServiceCode ::= ENUMERATED {
voice (0),
fax (1),
data (2),
unknown (3),
sMS (4),
gPRS (5),
content (6),
videoTelephony (7),
videoConference (8),
extensionTSC1 (65526),
extensionTSC2 (65527),
extensionTSC3 (65528),
extensionTSC4 (65529),
extensionTSC5 (65530),
extensionTSC6 (65531),
extensionTSC7 (65532),
extensionTSC8 (65533),
extensionTSC9 (65534),
extensionTSC10 (65535)
}

TerminationCause ::= ENUMERATED
{
diameterLogout(1),
diameterServiceNotProvided(2),
diameterBadAnswer(3),
diameterAdministrative(4),
diameterLinkBroken(5),
diameterAuthExpired(6),
diameterUserMoved(7),
diameterSessionTimeout(8)
}

Time ::= SEQUENCE
{
sec Integer32,
tz Integer8
}

TimeStamp ::= OCTET STRING
TrafficCase ::= ENUMERATED {
originatingInsideHPLMN (0),
forwardedInsideHPLMN (1),
terminatingInsideHPLMN (2),
originatingOutsideHPLMNCAPv1 (3),
forwardedOutsideHPLMNCAPv1 (4),
terminatingOutsideHPLMN (5),
roamingCallBackOutsideHPLMN (6),
originatingOutsideHPLMNCAPv2 (7),
forwardedOutsideHPLMNCAPv2 (8),
terminatingOutsideHPLMNCAPv2 (9),
originatingOutsideHPLMNCAPv3 (10),
forwardedOutsideHPLMNCAPv3 (11),
terminatingOutsideHPLMNCAPv3 (12),
originatingServiceCharging (20),
terminatingServiceCharging (21)
}
-- PC:10210
TreeDefinedField ::= SEQUENCE
{
parameterID UTF8String,
parameterValue TreeDefinedFieldType
}

TreeDefinedFieldType ::= CHOICE
{
boolean BOOLEAN,
integer64 Integer64,
date Date,
string UTF8String,
floatingDecimalTDF FloatingDecimal,
amountTDF MonetaryUnits,
...
}

TrunkGrpNo ::= INTEGER
TrunkInformation ::= SEQUENCE {
inTrunkGrpNo TrunkGrpNo OPTIONAL,
outTrunkGrpNo TrunkGrpNo OPTIONAL,
...
}
-- PC:10210 end
Units::= SEQUENCE {
duration ChargedDuration OPTIONAL,
numberOfEvents NumberOfEvents OPTIONAL,
...
}

Unsigned8 ::= INTEGER
Unsigned32 ::= INTEGER
Unsigned64 ::= INTEGER

UsageCounter ::= SEQUENCE
{
usageCounterID UsageCounterID,
usageCounterValueBefore UsageCounterType OPTIONAL,
usageCounterValueAfter UsageCounterType OPTIONAL,
usageCounterChange UsageCounterType OPTIONAL,
productID ProductID OPTIONAL,
...
}

UsageCounterID ::= INTEGER

UsageCounterSpecifiedConsumptions ::= SEQUENCE OF UsageCounterSpecifiedConsumption
UsageCounterSpecifiedConsumption ::= SEQUENCE
{
usageCounterID UsageCounterID,
usageCounterChange UsageCounterType OPTIONAL,
productID ProductID OPTIONAL,
...
}

UsageCounterType ::= CHOICE
{
usageCounterUnit Unsigned64,
usageCounterMoney MonetaryUnits,
...
}

UsedOffers ::= SEQUENCE OF OfferID

UsedOffersAdditionalInfo ::= SEQUENCE OF UsedOfferAdditionalInfo
--PC:10276 end

-- PC:10276
UsedOfferAdditionalInfo ::= SEQUENCE
{
offerID OfferID,
offerExpiryDate Date OPTIONAL,
offerStartDate Date OPTIONAL,
offerType OfferType OPTIONAL,
offerDisabled BOOLEAN OPTIONAL,
offerExpiryDateTime TimeStamp OPTIONAL,
offerStartDateTime TimeStamp OPTIONAL,
...
}

UsedServiceUnit ::= SEQUENCE {
tariffChangeUsage TariffChangeUsage OPTIONAL,
timeUnit Unsigned32 OPTIONAL,
moneyUnit MonetaryUnits OPTIONAL,
totalOctetsUnit Unsigned64 OPTIONAL,
uplinkOctetsUnit Unsigned64 OPTIONAL,
downlinkOctetsUnit Unsigned64 OPTIONAL,
serviceSpecificUnit Unsigned64 OPTIONAL,
...
}
UsedServiceUnits ::= SEQUENCE OF UsedServiceUnit
UsedUnchargedDuration ::= OCTET STRING
UsedUnchargedEvent ::= OCTET STRING
UserName ::= OCTET STRING

--PC:09785
UserSessionID ::= UTF8String
--PC:09785 end

I had the exact same problem. Commenting out line 113 solved the problem.

Hello Jackson,
woow after 2 months someone reply this 👍
I just tried and it lead to another error:
decode error 0 662 at /Library/Perl/5.12/Convert/ASN1/_decode.pm line 260.

and i commented this and the result only like this:
$VAR1 = {};

Help .... Help ....

please help

I meet the same issue,
need help

Commenting this also not help

Ahmad Rifky

On Wednesday, June 18, 2014 at 3:13 PM, scarlett2008 wrote:

I meet the same issue,
need help


Reply to this email directly or view it on GitHub (#16 (comment)).

Is this issue resolved. I am facing similar issue...