How to develop a CDR generator

Paul Kinlan

My Final Year project covered Telecoms fraud. It included a call detail record generator.

I have had a fair few queries about this, mostly around how to develop a CDR tool.

Whilst I have only ever seen one CDR file. I did do a fair amount of research around the subject and I found out quite a bit.

Firstly, I choose to store the least amount of data that I could get away with. The data that I chose was:


  • Caller (source)

  • Callee (destination)

  • Call Type (local, national etc)

  • Start Time

  • Duration

With those 5 parameters you can work out the cost of the call and you can also work out a lot of other statistics.

To generate a CDR I had to configure a lot of models, high user, low users, business users etc. Each of these models had different parameters. The parameters were attributes such as:


  • The average cost and STDEV of a local call

  • The average number and STDEV of local calls

  • The average cost and STDEV of a PRS call

  • The average number and STDEV of PRS calls

  • The average cost and STDEV of a national call

  • The average number and STDEV of National calls

  • The times most likely to make a call: 8am -5 pm for a business as an example

When you have all these parameters you can get a random number generate to randomly pick values that fall within the bounds set by the model.

When the model generator is finished you should have a spread of customers that fit the model described.

Using this data you can then simulate your network in whatever manner you need.

How you determine the parameters of the model, is upto you because you know the data that you are trying to model.

Paul Kinlan

Trying to make the web and developers better.

RSS Github Medium