data:
-----
CME20CP6.CallDataRecord.uMTSGSMPLMNCallDataRecord
{
sCFChargingOutput
{
callIdentificationNumber : '6CBFD7'H
exchangeIdentity : "DWLCCN6"
gSMCallReferenceNumber : '9103770001'H
switchIdentity : '0001'H
recordSequenceNumber : '39D42E'H
date : '1409071F'H
}
eventModule
{
iNServiceDataEventModule
{
chargePartySingle : 'aPartyToBeCharged (0)'
genericChargingDigits
{
[0] : '2000'H
[1] : '011351'H
[2] : '223A941400'H
[3] : '233A940209'H
[4] : '043A2000'H
[5] : '0542'H
[6] : '2600'H
[7] : '2700'H
[8] : '080290701391620122'H
[9] : '2A02'H
[10] : '72000000000000000000000000'H
[11] : '730000000000000000041F'H
[12] : '7400000000'H
[13] : '3502'H
}
genericChargingNumbers
{
[0] : '0003136985138324'H
[1] : '010413198935930920'H
[2] : '0203136985138324'H
[3] : '038290905893701402'H
[4] : '0B000002000000'H
}
serviceFeatureCode : '0002'H
timeForEvent : '131A01'H
}
}
}
CME20CP6.CallDataRecord.uMTSGSMPLMNCallDataRecord
{
sCFChargingOutput
{
callIdentificationNumber : '6CC99C'H
exchangeIdentity : "DWLCCN6"
switchIdentity : '0001'H
recordSequenceNumber : '39D42F'H
date : '1409071F'H
}
eventModule
{
iNServiceDataEventModule
{
chargePartySingle : 'bPartyToBeCharged (1)'
genericChargingDigits
{
[0] : '2002'H
[1] : '010359'H
[2] : '023A8207'H
[3] : '033A8207'H
[4] : '043A0000'H
[5] : '0506'H
[6] : '2600'H
[7] : '2704'H
[8] : '080290701391622322'H
[9] : '2A02'H
[10] : '72000000000000000000000000'H
[11] : '730000000000000000001F'H
[12] : '3500'H
}
genericChargingNumbers
{
[0] : '0003138935167173'H
[1] : '028210850000'H
[2] : '0303138935167173'H
[3] : '06041319'H
}
serviceFeatureCode : '0002'H
timeForEvent : '131A20'H
}
}
}
..........
The code I had written :
-------------------------
#use strict;
use IO::File;
open (INPUT_FILE, $ARGV[0]) || die "cant open file\n";
my @body = <INPUT_FILE>;
my $count= 0;
my $output_file_name="Decoded_cdr.txt";
my $restartDuringCall = ",";
open(OUT_FILE,">$output_file_name");
#print $body[6];
$no_of_lines=scalar(@body);
$cntr = 1;
$no_of_cdrs = 0;
for ($i=0; $i < $no_of_lines; $i++)
{
$variable = $body[$i];
if ($variable =~ "CME20CP6")
{
$no_of_cdrs = $cntr + 1;
}
}
#print "No of CDRS : $no_of_cdrs \n";
for ( $i = 0 ; $i < $no_of_lines ; $i++)
{
$variable = $body[$i];
if ( $variable =~ /callIdentificationNumber/)
{
@tmp_var = split(/([:\'])/,$variable);
$callIdentificationNumber = $tmp_var[4];
#print "$callIdentificationNumber,";
}
if ($variable =~ m/exchangeIdentity/ )
{
@tmp_var = split(/([:\"])/,$variable);
$exchangeIdentity = $tmp_var[4];
#print "$exchangeIdentity,";
}
if ($variable =~ m/gSMCallReferenceNumber/ )
{
@tmp_var = split(/([:\'])/,$variable);
$gSMCallReferenceNumber = $tmp_var[4];
#print "$gSMCallReferenceNumber,";
}
if ($variable =~ m/restartDuringCall/ )
{
@tmp_var = split(/([:\'])/,$variable);
my $restartDuringCall = $tmp_var[4];
#print "$restartDuringCall,";
}
if ($variable =~ m/restartDuringOutputIndicator/ )
{
@tmp_var = split(/([:\'])/,$variable);
$restartDuringOutputIndicator = $tmp_var[4];
}
if ($variable =~ m/lastPartialOutput/ )
{
@tmp_var = split(/([:\'])/,$variable);
$lastPartialOutput = $tmp_var[4];
}
if ($variable =~ m/partialOutputRecNum/ )
{
@tmp_var = split(/([:\'])/,$variable);
$partialOutputRecNum = $tmp_var[4];
}
if ($variable =~ m/switchIdentity/ )
{
@tmp_var = split(/([:\'])/,$variable);
$switchIdentity = $tmp_var[4];
}
if ($variable =~ m/disconnectionDueToSystemRecovery/ )
{
@tmp_var = split(/([:\'])/,$variable);
$disconnectionDueToSystemRecovery = $tmp_var[4];
}
if ($variable =~ m/forloppDuringOutputIndicator/ )
{
@tmp_var = split(/([:\'])/,$variable);
$forloppDuringOutputIndicator = $tmp_var[4];
}
if ($variable =~ m/forloppReleaseDuringCall/ )
{
@tmp_var = split(/([:\'])/,$variable);
$forloppReleaseDuringCall = $tmp_var[4];
}
if ($variable =~ m/recordSequenceNumber/ )
{
@tmp_var = split(/([:\'])/,$variable);
$recordSequenceNumber = $tmp_var[4];
}
if ($variable =~ m/incompleteCallDataIndicator/ )
{
@tmp_var = split(/([:\'])/,$variable);
$incompleteCallDataIndicator = $tmp_var[4];
}
if ($variable =~ m/mSCAddress/ )
{
@tmp_var = split(/([:\'])/,$variable);
$mSCAddress = $tmp_var[4];
}
if ($variable =~ m/date/ )
{
@tmp_var = split(/([:\'])/,$variable);
$date = $tmp_var[4];
}
if ($variable =~ m/outputType/ )
{
@tmp_var = split(/([:\'])/,$variable);
$outputType = $tmp_var[4];
}
#print "$callIdentificationNumber,$exchangeIdentity,$gSMCallRefere
+nceNumber";
}
print "\n";
close (INPUT_FILE);
close OUT_FILE;
---------------------------------------------
The output generates :
The output not generating the required output..
This is like :
value1,value2...
Please help.. |