CDR Converter
How to use the CDR Converter ?
This page shows how easy is the conversion of CDR messages to XML or CSV with the Marben CDR Converter.Consider the following CDR syntax in cdrSample1.asn file:
MyModule DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
CDR ::=SEQUENCE {
rc CHOICE
{
transit SET
{
tAC OCTET STRING,
callingSubscriIMSI OCTET STRING,
chargingCase INTEGER
},
mSOriginating SET
{
tAC OCTET STRING,
callingSubscriIMSI OCTET STRING,
tariffSwitchInd ENUMERATED
{
noTariffSwitch(0),
tariffSwitchAfterStartOfCharg(2)
}
}
}
}
The CDR messages are given in a file cdrSample1.ber.
BEGIN
CDR ::=SEQUENCE {
rc CHOICE
{
transit SET
{
tAC OCTET STRING,
callingSubscriIMSI OCTET STRING,
chargingCase INTEGER
},
mSOriginating SET
{
tAC OCTET STRING,
callingSubscriIMSI OCTET STRING,
tariffSwitchInd ENUMERATED
{
noTariffSwitch(0),
tariffSwitchAfterStartOfCharg(2)
}
}
}
}
Conversion to XML
Executing the following command will convert all CDR messages to XML and store the result in the output file cdrSample1.xml:cdrconvert -asn cdrSample1.asn -i cdrSample1.ber -o cdrSample1.xml
Opening the output file cdrSample1.xml looks like:
<CDR>
<rc>
<mSOriginating>
<tAC>04020B</tAC>
<callingSubscriIMSI>32149530978911F7</callingSubscriIMSI>
<tariffSwitchInd><noTariffSwitch/></tariffSwitchInd>
</mSOriginating>
</rc>
</CDR>
<CDR>
<rc>
<transit>
<tAC>01020D</tAC>
<callingSubscriIMSI>32149530392129F8</callingSubscriIMSI>
<chargingCase>69</chargingCase>
</transit>
</rc>
</CDR>
<CDR>
<rc>
<mSOriginating>
<tAC>04020B</tAC>
<callingSubscriIMSI>32149500132532F0</callingSubscriIMSI>
<tariffSwitchInd><tariffSwitchAfterStartOfCharg/></tariffSwitchInd>
</mSOriginating>
</rc>
</CDR>
<CDR>
<rc>
<mSOriginating>
<tAC>01020E</tAC>
<callingSubscriIMSI>3214950013253312</callingSubscriIMSI>
<tariffSwitchInd><noTariffSwitch/></tariffSwitchInd>
</mSOriginating>
</rc>
</CDR>
<CDR>
<rc>
<transit>
<tAC>04020B</tAC>
<callingSubscriIMSI>3214950013253480</callingSubscriIMSI>
<chargingCase>39</chargingCase>
</transit>
</rc>
</CDR>
<rc>
<mSOriginating>
<tAC>04020B</tAC>
<callingSubscriIMSI>32149530978911F7</callingSubscriIMSI>
<tariffSwitchInd><noTariffSwitch/></tariffSwitchInd>
</mSOriginating>
</rc>
</CDR>
<CDR>
<rc>
<transit>
<tAC>01020D</tAC>
<callingSubscriIMSI>32149530392129F8</callingSubscriIMSI>
<chargingCase>69</chargingCase>
</transit>
</rc>
</CDR>
<CDR>
<rc>
<mSOriginating>
<tAC>04020B</tAC>
<callingSubscriIMSI>32149500132532F0</callingSubscriIMSI>
<tariffSwitchInd><tariffSwitchAfterStartOfCharg/></tariffSwitchInd>
</mSOriginating>
</rc>
</CDR>
<CDR>
<rc>
<mSOriginating>
<tAC>01020E</tAC>
<callingSubscriIMSI>3214950013253312</callingSubscriIMSI>
<tariffSwitchInd><noTariffSwitch/></tariffSwitchInd>
</mSOriginating>
</rc>
</CDR>
<CDR>
<rc>
<transit>
<tAC>04020B</tAC>
<callingSubscriIMSI>3214950013253480</callingSubscriIMSI>
<chargingCase>39</chargingCase>
</transit>
</rc>
</CDR>
Conversion to CSV
Executing the following command will convert all CDR messages to CSV and store the result in the output file cdrSample1.csv:cdrconvert -asn cdrSample1.asn -i cdrSample1.ber -o cdrSample1.csv -f csv
Opening the output file cdrSample1.csv looks like:
;;;04020B;32149530978911F7;noTariffSwitch
01020D;32149530392129F8;69;;;
;;;04020B;32149500132532F0;tariffSwitchAfterStartOfCharg
;;;01020E;3214950013253312;noTariffSwitch
04020B;3214950013253480;39;;;
Opening the output file cdrSample.csv with a spreadsheet application gives:01020D;32149530392129F8;69;;;
;;;04020B;32149500132532F0;tariffSwitchAfterStartOfCharg
;;;01020E;3214950013253312;noTariffSwitch
04020B;3214950013253480;39;;;
transit .tAC | transit .callingSubscriIMSI | transit .chargingCase | mSOriginating .tAC | mSOriginating .callingSubscriIMSI | mSOriginating .tariffSwitchInd |
04020B | 32149530978911F7 | noTariffSwitch | |||
01020D | 32149530392129F8 | 69 | |||
04020B | 32149500132532F0 | tariffSwitchAfterStartOfCharg | |||
01020E | 3214950013253312 | noTariffSwitch | |||
04020B | 3214950013253480 | 39 |
Or ask for your own free trial.