I had originally coded this project in VB and never got it into a distributable format. For example, I had all the file paths and database connection strings hard coded. After educating myself a bit on C# I recoded the application in that language, and have the program using LINQ instead of (oof!) OLE. I also now have it coded to accept values specific to a user’s environment via an XML settings file.
What the program does at this point is that it reads the call detail recording logs that are stored in a directory and commits them to an MS SQL/SQLexpress database. For my own purposes I have all the default settings set on the BCM for recording the log files, so if you’ve changed any of these settings this program may not work. As well, I have my logs FTP’d every day to a server share that I can access via UNC (i.e. \\server\logfiles).
I have a little setup menu within the program so that you can create the database, set the settings, and then write the settings out to an XML file for future use. Using the XML settings file the program can be scheduled to run if the XML settings file is given to the program as a variable (ex, NortelLogParser c:\settings.xml).
In the future I hope to develop a web front end for the database, but for the time being you’ll have to use Excel or some other tool to query the database for the information that you want.
UPDATE: I just noticed (12/14/2011) that the field detection is still a little buggy, and a feature that I added after the fact of associating a record with the file it came out of lags by a day. The program is still better than nothing, but I do have to patch it up a bit when I get some time.