  The program FS12Parser transforms charging file of the exchange Alcatel
S-12 WR1A from internal billing-server format to ordinary text file. The
program was written as an alternative to Alcatel's S12parser, which is
tooooo slow.
  All fields (tags) are decoded without any exception. If the program
can not decode any tag you will see "Error: Tag x.x.x: not found...".
As soon as it happens inform me and I will try to investigate your case.
  The program works from Windows command line:
FS12parser [-d] -i<file name> [-o<file name>] [-c<file name>] [-f<file name>]
 -d - debug mode (!!!be careful!!!, output file can be huge)
 -i - input file name
 -o - output file name (default <input file name>.prs)
 -c - config file name (default FS12Parser.cfg)
 -f - filter file name (no filter by default)
               
               VERY SHORT MANUAL (you may skip reading)
1. Tags.
Charging file contains small pieces - tags. On tag can contain another 
tag within itself. Every tag has its identifier (for more info please 
look into X.208, X.209)
The program knows about how to interpret all tags from the file Tags.cfg.
For example
16.0.4.TagName=productionDateTime
16.0.4.LongTagName=productionDateTime\t\t\t\t\t
16.0.4.Type=DateTime
16.0.4. - identifier of the tag "productionDateTime".
TagName - tag's name in accordance with Q.825 (change is nor recommended)
LongTagName - this is the text you will see in an output file. You can 
       write anything here.
Type - tag's type. It shows the program how to treat this tag's contents.
So, by editing Tags.cfg you can have a little influence on the process of
converting of input file.

2. Configuration file.
It is very simple. One line is one parameter. Lines beginning with # are
ignored. The file can contain:
StartRec=... - charging record's number to begin with
EndRec=... - charging record's number to stop writing at
 If StartRec and EndRec are absent or equal zero them all records 
 are treated.
FilterFile=... - defines filter file name (option -f)
DebugMode=true - turns Debug-mode on

3. Filters.
In filter file you can define conditions at which a record filtering
will be going on. Lines beginning with # are ignored.
One line consists of tag name and tag contents. For example,
callingPartyNumber=725055
will force program to output only those records that have 725055 in 
callingPartyNumner field.
Number of lines (tags) in filter file is not restricted but consider
that in order the record to be in output file all the tags configured
in filter must contain corresponding data (from filter).

4. Debug-mode.
In this mode you can learn the structure of a charging file. The meaning
of every byte is shown. I hope this mode will be usefull to all those
who are interested in writing programs treating these files.
!!!ATTENTON!!! due to redundant information put in output file in this 
mode an input file of 1,4M gives an output file of 153M. So probably
you will need to turn StartRec and EndRec on).

  All opinions and comments are welcomed at finder@tm-k.com
  Good Luck!
