Phonebill

log file analyzer Version 3.3b

17-Jun-95

by Raymond Penners

1 Legal issues

1.1 License

This license applies to the product called ‘phonebill’, a program for the Amiga computer, published by Raymond Penners under the concepts of ShareWare, and the accompanying documentation, example files and anything else that comes with the original distribution. The terms ‘Program’ and ‘phonebill’ below, refer to this product. The licensee is addressed as ‘you’.

• You may copy and distribute verbatim copies of the program’s executable code and documentation as you receive it, in any medium, provided that you conspicuously and appropriately publish only the original, unmodified program, with all copyright notices and disclaimers of warranty intact and including all the accompanying documentation, example files and anything else that came with the original.

• You may not copy and/or distribute this program without the accompanying documentation and other additional files that came with the original. You may not copy and/or distribute modified versions of this program.

• You may not copy, modify, sublicense, distribute or transfer the program except as expressly provided under this license. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the program is void, and will automatically terminate your rights to use the program under this license. However, parties who have received copies, or rights to use copies, from you under this license will not have their licenses terminated so long as such parties remain in full compliance.

• By copying, distributing and/or using the program you indicate your acceptance of this license to do so, and all its terms and conditions.

• Each time you redistribute the program, the recipient automatically receives a license from the original licensor to copy, distribute and/or use the program subject to these terms and conditions. You may not impose any further restrictions on the recipients’ exercise of the rights granted herein.

• You may not disassemble, decompile, re-source or otherwise reverse engineer the program.

• You may use the programs for a period of up to 3 weeks for evaluation. After that, you have to register or quit using the program.

• If you wish to incorporate parts of the programs into other programs, write to the author to ask for permission.

• You agree to cease distributing the program and data involved if requested to do so by the author.

• You may charge a fee to recover distribution costs. The fee for diskette distribution may not be more than the cost to obtain a public domain diskette from Fred Fish.

1.2 No warranty

THERE IS NO WARRANTY FOR THE PROGRAMS, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPY-RIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAMS "AS IS" WITH-OUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PER-FORMANCE OF THE PROGRAMS IS WITH YOU. SHOULD THE PROGRAMS PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRIT-ING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY REDIS-TRIBUTE THE PROGRAMS AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAM-AGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAM-AGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAMS (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMS TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

1.3 Disclaimer

No warranty, either express or implied, is made with respect to the fitness or merchantability of ‘phonebill’.

Raymond Penners (referred to as ‘the author’), reserves the right to not develop any future versions of ‘phonebill’.

The author will try to make a good faith attempt at correcting any problems if any are discovered, but is in no way required, nor bound to correct them.

The author neither assumes nor accepts any responsibility for the use or misuse of these programs. He will also not be held liable for damages or any compensation beyond the original registration fee due to loss of profit or any other damages arising out of the use, or inability to use this program.

The author will not be liable for any damage arising from the failure of this program to perform as described, or any destruction of other programs or data residing on a system attempting to run the programs. The user of this program uses it at his or her own risk.

2 Introduction

‘phonebill’ is, simply said, a log file analyzer. What it basically does is scan log file(s) generated by a terminal program or a mailer, extract all information about calls you have made by using your modem, and store this in its own (short) format. After extracting the calls ‘phonebill’ can generate various reports in which you can find information on duration and costs of the calls.

Here is a small list of the main features:

• Very flexible user-configurable rates, supporting exceptions for certain days and dates.

• User-configurable log scanners: ‘phonebill’ by default supports various log files, but for any log file that is not supported the user is able to create a scanner. The following is a list of log files that are already supported:

• AmiTel

• AutoPilot

• CyberPager

• DreamTerm

• GMS

• GPFax

• ISDN Master Telephone log

• JamMail

• JrComm

• MagiCall

• MicroDot

• Multifax (both v2.0 and Multifax professional)

• NComm

• Off-line Amiga

• Plink

• Term action log and Term call log

• Terminus

• TheAnswer

• TKR-BTX

• Trapdoor

• Trapfax

• UUCP TimeLog • XenoLink

• ZeeTerm

• Log files can be automatically truncated if their size exceeds the maximum size.

• Generates miscellaneous reports: statistics, total costs, ....

• Context-sensitive online help.

• Supports new 3.0 features (new look menus, ...).

• Nice ‘Amiga User Interface Style Guide’ conformant user interface.

• Supports ‘traplist.library’.

3 Installation

There are two ways to install ‘phonebill’: the hard way and the easy way. If you choose the latter, just double click the ‘Install phonebill’ icon to execute the Commodore installer. This installer can be found on the ‘Install2.1’ or ‘Install3.0’ disk from Commodore. If you don’t have it then you’ll have to install the program manually, which really is not that hard. Just drag the ‘phonebill’ drawer over the drawer where you like to copy it to. If you haven’t used any previous version of ‘phonebill’ then this is all you have to do. If you already have a version older than 3.0 installed then you’ll have to follow these steps:

• Convert the configuration files so that they can be used with this release. This can be done

by running the supplied program called ‘ConvertConfig’ from the shell:

         1> ConvertConfig

• After running the converter, the new configuration files can be found in ‘T:’. You should copy

these files to the ‘Phonebill/Config’ directory, e.g.:

         1> copy T:#?.config Phonebill/Config

• If you wish, delete the ‘phonebill’ configuration files found in ‘ENV:’ and ‘ENVARC:’.

         1> delete ENV:Phonebill all
         1> delete ENVARC:Phonebill all

4 Workbench and Shell

The program can be started from both the shell and the workbench. When started from the shell, the program accepts commandline arguments. To view all known arguments, supply a "?" as the only argument to the program, for example:

        1.SPHINX-O-HD:Comm/Phonebill> Phonebill ?

The following keywords/switches are supported:

PROC=PROCESS/S

Supplying this switch will cause the program to process the log files and return control to the shell when done.

LIST=LISTCALLS/K,BILL/K,STATS=STATISTICS/K,BILL/K

Generates the specified report and outputs it to a file.

FROM/K,TO/K

Use these to specify the scanrange. If you don’t supply these arguments the range specified in the configuration will be used.

QUIET/S Supplying this argument disables output produced when processing the logs.

CONFIG/S Specify the location of the configuration directory.

The following command will cause the program to quietly process the log files and then save two reports. The former will be displayed in the console, the latter will be saved to ‘t:bill.txt’:

     1> phonebill proc list=* bill=t:bill.txt quiet

5 Menus

The following sections describe the menu items available in the ‘phonebill’ main panel.

5.1 Project

Process logs

Scans and/or truncates all listed log files, See Section 6.3 [Log files panel], page 11. If new calls were found, they will be added to the binary log file.

Rescan logs

Same as ‘Process logs’, except that this operation extracts all calls from the log files if they were already found by a previous scan operation. Please note that a rescan can cause calls previously removed or modified using maintenance to reappear.

Iconify Closes the window and drops an icon labeled ‘phonebill’ on the Workbench window. Double-clicking this icon will cause the program to wake up and to return the state it was in before it was iconified.

About `phonebill'...

Shows some additional information on the program.

Quit Terminates the program. If the configuration has been changed, you will be prompted to confirm your decision.

5.2 Settings

Miscellaneous...

See Section 6.2 [Miscellaneous settings panel], page 10.

Host... See Section 6.5 [Hosts panel], page 13.

Log... See Section 6.3 [Log files panel], page 11.

Rates... See Section 6.7 [Rates panel], page 13.

Group... See Section 6.11 [Group settings panel], page 16.

Report presets...

See Section 6.12 [Report presets panel], page 16.

Save settings

Saves all the configuration files to disk.

5.3 Groups

Note: this menu is only available if groups have been defined. See Section 6.11 [Group settings panel], page 16.

If the Default item is checked, all hosts will be taken into account when generating reports. However, if Default is not checked, only hosts that are member of the checked groups will appear in the reports.

5.4 Presets

Note: this menu is only available if presets have been defined. See Section 6.12 [Report presets panel], page 16.

Using this menu you can use the settings of the selected preset.

6 Control panels

6.1 Main panel

Here it all begins. This panel provides gadgets and Chapter 5 [Menus], page 8 which give you control over the main functions of the program.

Process logs

Scans and/or truncates all listed log files, See Section 6.3 [Log files panel], page 11. If new calls were found, they will be added to the binary log file.

Settings See Section 6.2 [Miscellaneous settings panel], page 10.

About Shows some additional information on the program.

From, To The dates entered here specify the period over which a report is to be made. Besides entering dates it is also possible to enter a number that specifies a number of days in the future starting from the current date. For example: the period from "-6" to "today" specifies the last 7 days.

Statistics, Bill, List calls

Selecting one of these will cause a report to be generated. If the program encounters calls to a host that is not known, you will be prompted to either add the host, skip it, or cancel the report generation. When the report was generated succesfully, it will be shown to you using a text viewer.

Maintenance

See Section 6.10 [Maintenance panel], page 15.

6.2 Miscellaneous settings panel

In the miscellaneous panel you can configure general program options.

Binary log file

The file name of the binary log file used for storing calls.

Nodelist path

Set this to the directory where you keep your nodelist files. This is only useful if ‘traplist’ is installed, leave this blank otherwise.

Carrier detect time

It always takes some time before your modem has detected a carrier. The connect time in the log files generated by your terminal program are therefore incorrect, because the modem has been online trying to get a carrier for a couple of seconds. For example, it takes my modem approximately 15 seconds to connect.

Public screen

The name of the public screen to be used.

Save dates on exit

If this option is checked, the <from> and <to> date will be saved automatically when you exit the program.

Close only hides

Specifies the behaviour of the main window close gadget: if this option is checked the program will be hidden when closed instead of exited.

Use icon when hidden

Specifies whether or not to put an icon on the workbench when the program is in hidden state.

Process logs on startup

Specifies whether or not to process the log files automatically when the program is started.

Text viewer

The text viewer to be used for displaying reports.

Report file

The file name of the report to be generated.

Bill sort method

The order in which the hosts from the bill report are to be sorted.

Delete report after viewing

If this option is checked, the report will be deleted after it has been viewed.

Save Saves current settings, and closes the panel. The from- and to dates from the main panel are also saved.

Use Closes the panel, without saving the settings.

6.3 Log files panel

In the log files panel you can add, remove log files and edit their options for use with the program.

Log files The list of log files to be processed by the program.

Add Adds a new log file to the list.

Edit Lets you edit the settings of the selected log file, See Section 6.4 [Log settings panel], page 12. Log files can also be editted by double clicking the entry in the list.

Remove Removes the selected log file.

Save Saves current log files settings, and closes the panel.

Use Closes the panel, without saving the log files settings.

6.4 Log settings panel

This is where you edit the options of a log file.

File name The file name of the log file.

Truncate log file

If this option is enabled log files will be truncated. See Max. size.

Max. size, Truncate %

The maximum size in kilo-bytes of the log file. If the files’ size exceeds this value, the file will be truncated to the percentage specified in Truncate % of the original size. This only works if the truncate option is activated.

Preserve blocks

If this option is enabled the log file will be truncated at the position of an empty line seperator.

Scan log file

If this option is enabled, the log file will be scanned for calls using the scanner selected in the list of Scanners.

Check archivebit

If enabled, the files’ archivebit will be set after processing. If a log file with the archivebit set is encountered, it will be regarded as not changed since the last time it was scanned. Selecting this option increases processing of the log files significantly.

Sign log file

If enabled (recommended), the program adds a signature to the end of the log file to keep track of what calls have already been processed. If this option is disabled all calls found in the log file will be regarded as new, which might result in the reappearance of calls previously deleted/modified using maintenance.

Scanners A list of several types of log files the program is able to scan. Select the appropriate entry that belongs to the current log file if you wish to scan the log for calls.

6.5 Hosts panel

In the hosts panel you see a list of all ‘known’ hosts. You can add, remove and edit hosts.

Hosts The list of hosts known to the program.

Add Adds a new hosts to the list.

Edit Lets you edit the settings of the selected host, See Section 6.6 [Host settings panel], page 13. Hosts can also be editted by double clicking the entry in the list.

Remove Removes the selected host.

Save, Use Save and/or use the current settings.

6.6 Host settings panel

In the host panel you can specify information about the host, like carrier detect time, rates, and telephone number.

Name, Telephone number

The name and/or telephone number of the host. You must at least fill in one of these. If a host has more than one node, you can enter the telephone numbers seperated by a vertical bar | character, e.g.: "12345|6789".

Use default, Carrier detect time

If the carrier detect time is not the same for each host, you can choose here whether you want to use the default carrier detect time as specified in the Section 6.2 [Miscellaneous settings panel], page 10 or use the Carrier detect time specified for this host.

Rate The rate set for this host.

Groups Check all groups you wish the host to be a member of. See Section 6.11 [Group settings

panel], page 16.

Use,Cancel

Use or drop the current host settings.

6.7 Rates panel

In the rates panel you can create new rates, or modify existing rates.

Rates This list contains all installed rates.

Add Adds a new rate to the list.

Copy The selected rate will be duplicated.

Edit Lets you edit the selected rate, See Section 6.8 [Rate settings panel], page 14.

Remove Removes the selected rate.

Save,Use Save and/or use the current settings.

6.8 Rate settings panel

The information to be specified in this control panel will be used to calculate the amount of money to be paid for a call.

Name Specifies the name of the rate.

Area codes pattern

If an unlisted host is encountered ‘phonebill’ will try to match the hosts’ phonenumber to the area codes pattern of all rates. If a match is found the rate is accordingly set and you are not prompted to do so manually. For arguments sake, let’s say phonenumbers starting with 12 and 23 belong to rate A, others belong to rate B. If you set the area codes pattern of rate A and B to "(12#?|23#?)" resp. "~(12#?|23#?)" you will never be prompted to add hosts manually.

Groups The group settings of a host that is added automatically using the area codes pattern

will be set to the group settings selected here.

List of periods

The phone companies have the bad tendency to increase the costs you have to pay each couple of years. This will cause calls in a certain time period to be accounted different than calls in another time period. You can specify a different rate for each period, for example: from 1-jan-90 to 1-jan-92 there is rate A, but from 1-jan-92 up to now is rate B. You’ll find all different periods in the list of periods

Add, Copy, Edit, Remove

Use these to add, copy, edit and remove certain rate periods.

6.9 Rate period settings panel

The information to be specified in this control panel will be used to calculate the amount of money to be paid for a call, specifically for a certain time period.

From, To The period in which the rate settings specified in this panel are active. If you don’t

want to set a date, then just enter nothing.

Days and dates

This list contains the standard settings and exceptions for certain dates and days of the week. When calculating the costs for a call, ‘phonebill’ first checks if the date on which the call was made is listed in one of the exceptions. If this is the case, then the settings for that exception will be used. If this isn’t the case, the day of the call will be compared with the days listed in all ‘day’ exceptions. If no exception is found, the standard settings will be used.

Add date(s)

Will invoke a control panel to create a new rate entry to be used on specific date(s). Multiple dates should be seperated by by a vertical bar | character, e.g.: "25-Dec|1-Jan".

Add day(s)

Will create a new rate entry referring to one or more days of the week. Use the buttons of the control panel to select the days the current settings will be valid for.

Time For each entry in the Days and dates list there is at least one associated starting time available which defines when the associated rate settings are to be used. You will find the time settings in the list titled Time. To add a new time use the Add button, to edit an existing entry, use the Edit button. To remove an entry, press the Remove button.

Units For each entry in the Time list there is at least on associated unit available which defines how much you have to pay per set amount of seconds starting at that time. Normally, only one entry will be listed. If the first unit should be accounted differently than the second, you can enter two different units in the Units list. This can be applied to as much units as you like. Furthermore you can specify the costs you have to pay in Connection costs, and the minimal amount of costs in Minimal costs.

6.10 Maintenance panel

In the maintenance panel you can modify the binary log file. Only calls that fall within the specified scan range from the main panel will be shown in the list.

Add Adds a new call to the list.

Edit Lets you edit the selected call. Calls can also be editted by double clicking the entry in the list.

Remove Removes the selected call from the list.

Remove all

Removes all calls from the list.

Save Saves the binary log file. Cancel Closes the maintenance panel without saving any changes.

6.11 Group settings panel

Hosts can be divided into several groups, for example hosts where you ‘poll’ your mail belong to the group "Mail". In the group panel you control the groups.

Groups This list contains all installed groups. Add Add a new group to the list. Remove Removes the selected group from the list. Save,Use Save and/or use the current settings.

6.12 Report presets panel

You are most likely interested in more than one specific report period. Instead of having to change the from/to dates and other report settings manually over and over again it is possible to store these settings in a preset. After doing this you only need to select the preset from the ‘Presets’ menu and all report settings will be set to the desired settings. The report presets panel is where you define the presets.

Presets This list contains all installed presets. Add Add a new preset to the list. Edit Edit current preset. Remove Removes the selected preset from the list. Save,Use Save and/or use the current settings.

7 User interface notes

To operate a gadget, press the key corresponding to the letter highlighted in the gadget label. Suppose a slider is labeled Minutes with the letter M underlined; in order to increase the slider value one has to hit the key labeled M, to decrease the value one is to hold down either Shift key while pressing the key M.

Windows in which only a single scrolling list is present cursor keys may be used to scroll the contents.

The Return and Escape keys are respected by most windows. A button surrounded by a recessed box represents the default choice in a requester, pressing the Return key will select it. The Escape key mostly selects the most negative response (e.g. ‘Cancel’), whereas the Return key selects the most positive respone (e.g.‘Use’). Most windows to feature a close gadget in the upper left corner can be closed by pressing the Escape key.

Numeric entry fields accept input several notations, namely hexadecimal ($.. and 0x..), octal (&..) and binary (%..).

The user interface support library tries to make all control panel windows fit on the screen. If the first attempt fails a different font is used. If this did not help either a new screen will be opened for the window.

8 Configuration

This section describes briefly how to configure ‘phonebill’ manually by editting the configuration files. All configuration files are plain ASCII text files, which are parsed at startup of the program. For each configuration file there are several keywords which let you control the certain variables. The following list describes all keyword types:

string A keyword of type string is of the following form:

               (<NAME> <STRING>)

where <STRING> is a valid c-style string.

stringlist

Keywords of type stringlist are of the following form:

               (<NAME>  <STRING1> <STRING2> ... <STRINGn>)

integer Keywords of this type are used to assign a integer value to a variable:

               (<NAME> n)

where n is a valid integer number.

boolean A keyword of type boolean can only have the value 1 (which stands for true) or 0 (which stands for false).

block Keywords of this type are used to enter a block in which a new set of keywords is valid.

               (<NAME>
                   ; Block keywords
               )

Most configuration files can be controlled by editting the settings using the the program. The description of these configuration files will therefore be ommited.

8.1 Scanner configuration (Scanner.config)

The "Scanner.config" file is used for defining the log file scanners. Before listing the format of this configuration file you’ll have to learn about the way ‘phonebill’ scans a log file.

Log files are scanned line by line. Each line is searched for certain information concerning calls. If enough information is found to make up the date, time, duration and destination of the call, the call is insert in the list of new calls. The information needed can be divided into different types, for example: day of the month in which the call took place, telephone number, etc. Each line of the log file is compared to a format string which contains so called ‘cookies’ on certain places in which information is to be expected.

Cookie  Description                         Type        Range
------- ----------------------------------- ----------- -----
%n      host name                           STRING
%a      phone number                        STRING
%A      phone number (char restriction)     STRING
%f      Fido-style address                  INT:INT/INT(.INT)
%h      hour (connection)                   INT         0..23
%m      minutes (connection)                INT         0..59
%s      seconds (connection)                INT         0..59
%y      year (connection)                   INT         1970..
%e      year, short (connection)            INT         0..99
%o      month (connection)                  INT         1..12
%t      month, string (connection)          STRING
%d      day of month (connection)           INT         1..31
%p      AM or PM (connection)               STRING      (AM|PM|A|P| )
%l      localized date (connection)
%H      hour (end of connection)            INT         0..23
%M      minutes (end of connection)         INT         0..59
%S      seconds (end of connection)         INT         0..59
%Y      year (end of connection)            INT         1970..
%E      year, short (end of connection)     INT         0..99
%O      month (end of connection)           INT         1..12
%T      month, string (end of connection)   STRING
%D      day of month (end of connection)    INT         1..31
%P      AM or PM (end of connection)        STRING      (AM|PM|A|P| )
%L      localized date (end of connection)
%U      hours (connection length)           INT
%I      minutes (connection length)         INT
%X      seconds (connection length)         INT
%#      dummy number                        INT
%$      dummy string                        STRING      # >= 1
%c      dummy character                     CHAR

Now, let’s take a look at the following log file:

01-Jul-94 18:04:04 Connected to "BBS" (911)
01-Jul-94 18:06:33 Disconnected

The following are scanstrings used for comparing with lines of this log file:

"%d-%t-%e %h:%m:%s Connected to \"%n\" (%a)"
"%D-%T-%E %H:%M:%S Disconnected"

Such scanstrings are listed in keyword "scanstring.default" of type stringlist. Now take a look at the following part of the log file:

01-Jul-94 18:07:01 Calling 911
01-Jul-94 18:07:16 BUSY
...
01-Jul-94 18:14:01 Connected to "BBS"
01-Jul-94 18:23:21 Disconnected

The line that contains "BUSY" has to be taken special care of: all information found up to that line needs to be disposed. This can be done using the keyword "scanstring.reset" of type

stringlist:

scanstring.reset = "%#-%3$-%# %#:%#:%# BUSY"

If a string is encountered that matches the above string, all information found so far gets disposed. There are however cases in which not all information may be disposed. Take a look at this log file:

-------- 10 Aug 94
13:33:30 Connected to "BBS"
13:41:22 Disconnected
13:42:10 Connected to "Other BBS"
13:52:56 Disconnected
-------- 11 Aug 94
16:42:64 Start of session

This time it’s not that easy to create a log scanner because the date is only listed once. When the first ‘Disconnected’ is encountered, the call will be inserted in the list of new calls, and every information gets disposed. The second call won’t have a date, which is required for the call to be recognized. To resolve this problem, use the following two scanstrings: "scanstring.sticky" and "scanstring.hardreset", both of type stringlist. Every information detected by a sticky scanstring will only be lost by a hardreset, not by a reset. This all results in the following log scanner for the above log:

(scanner
(name                       "foobar")
(scanstring.reset           "%#:%#:%# BUSY")
(scanstring.hardreset       "")
(scanstring.sticky          "-------- %d-%o-%e")
(scanstring.default         "%h:%m:%s Connected to \"%n\""
                 "%H:%M:%S Disconnected")
)

Now you have seen some examples, a more formal description is given. Valid keywords in "Scanner.config" are:

scanner (block)

Using this keyword a new scanner can be defined. The following keywords are valid within a scanner block:

name (string)

Defines the name of the scanner.

scanstring.reset, .hardreset, .sticky, .default (stringlist)

Explained above.

noyear (boolean)

Set this to true (e.g. "(noyear 1)") if the year in which the calls are made is not logged. The program will try to fill in the year itself.

signature (string)

To keep track of what calls have already been processed, it is possible to add a signature to the end of the log file. All calls that appear before this signature are regarded as ‘previously scanned’.

As you can see, creating your own log file scanner is not that easy. If you have a log file that is currently not supported then please don’t hesitate to mail it to me (uuencoded please) and I’ll create the scanner for you. See Chapter 14 [Author Info], page 35 for my address.

9 Supported log files

This section contains a couple of notes on some log files:

`GPFax' log

The log produced by ‘GPFax’ is a binary log file. As it is currently not possible to define a scanner for binary log files, the scanner for this file format is built-in. I didn’t have any information about the structure of this log, so the built-in scanner is a bit of a hack. Therefore it is currently not possible to truncate this kind of log file.

`term' action log

The call information placed in the action log files was never intended for postprocessing with call-log analyzers. There is no fixed defined file structure and localization of ‘term’ can introduce a lot of trouble. Therefore it is recommended to use the ‘term’ call log instead.

`term' call log

The file format of this log file is compatible to that of ‘NComm’.

`terminus' log

‘terminus’ has an option to select the format of the logged date. You can choose "ddmm-yy", "dd/mm/yy" and "mm/dd/yy". It isn’t always possible to decide what format is being used, for example: is "05/01/94" of type "dd/mm/yy" or "mm/dd/yy"? Therefore only the first date format is supported, no calls will be found in a log file using the other two date formats.

`trapdoor' log

If the ‘trapdoor’ scanner doesn’t work with your log file, you probably have insufficient loglevel settings. You should put the following settings in the ‘trapdoor’ configuration file:

     LOGLEVEL 0:2            ; debugger
     LOGLEVEL 1:2            ; link
     LOGLEVEL 2:2            ; transfer
     LOGLEVEL 3:2            ; system
     LOGLEVEL 4:2            ; modem
     LOGLEVEL 5:2            ; session
     LOGLEVEL 6:7            ; security
     LOGLEVEL 7:2            ; outside
     LOGLEVEL 8:7            ; information
     LOGLEVEL 9:2            ; scheduler

10 Program updates

Whenever a new release of ‘phonebill’ becomes available it will be uploaded to:

Grafix Attack (SysOp: Kees Huizer)
+31-(0)10-4745816   (28K8)
+31-(0)10-4741062   (19k2 ZyXEL)
+31-(0)10-4744682   (28K8)
FidoNet:   2:286/407.0
AmigaNet: 39:153/201.0
NLA:      14:101/200.0

Decades BBS (Sysop: Thomas Andersson)
+46-54-831561 (USR 28.8 V.Everything)
FidoNet:   2:203/625.0
AmigaNet: 39:160/105.0

For those of you who have access to the aminet, the latest version can be found in directory comm/misc, filename pbill??.lha (where ?? stands for the version/revision number).

11 How to register

As with the previous versions of the program, ‘phonebill’ v2.0 and higher are shareware. There is one difference: starting from version 2.0 ‘phonebill’ has been crippled, not all features are available in the unregistered version:

• Binary log file maintenance and report presets are disabled.

• ‘phonebill’ only calculates the fees with up to two decimals (e.g. $0,15). In the registered version nine decimals are supported, which provides a better accuracy.

Many people hate crippled software, including myself. But it just seems that uncrippled software isn’t ‘appreciated’ anymore, because very few people registered. That is why I decided to cripple the program.

Important information: The registration fee for the uncrippled version was $5 US, but I had to raise the price because starting from version 2.0 I will have to send users that register a disk containing a keyfile. Now, starting from 27 September 1993, the registration fee will be $10 US. If I receive any registrations containing $5 US after this date, they will be regarded as a registration for the ‘old’ (pre 2.0) version of the program. So, if you registered with $5 US after this date you will not receive a keyfile: you’ll have to send another $5 US. I would to thank all people that have registered the uncrippled version of the program before this date by sending them a keyfile without having to pay extra.

Registration procedure: Complete the details in one of the supplied registration forms found in the "Documentation" directory, and follow the instructions given there. If for some reason you don’t have the registration form, then do the following:

1. Write a note with your complete name and mailing address, and state clearly that you want to register the Amiga version of ‘phonebill’. If you have access to e-mail (e.g. internet, fidonet, etc.) please specify your e-mail address too. If you want your key to arrive fast I can send it by e-mail, but for security measures you will have to send me your PGP (Pretty Good Privacy) public key first.

2. The registration fee is $10 US, DM 15,-, FL 15,-, AUD $15, or the equivalent of $10 US in any other currency. Decide how to transfer the money, e.g.:

• cash (at your own risk).

• a postal money order.

• a EuroCheque (only in FL!), foreign cheques are *NOT* accepted!

3. Send this to:

          Raymond Penners
          Berkenlaan 4
          NL-6241 AZ Bunde (The Netherlands)

4. Wait for your keyfile to arrive. You should receive your key within 10 days after the arrival of your registration fee. Please allow up to four weeks, due to unforseen circumstances.

5. Copy the keyfile to the directory where you keep ‘phonebill’ in or to the ‘L:’ directory. Thanks for registering!

12 Acknowledgements

I would like to thank the following people for support, suggestions, help and assistance: Richard Schiffelers, Maurice Lahaye, Matthias Scheler, Philippe Duchein, Eric Delord, Johan Billing, Henrik Gelius, Jan van den Baard, Michael Holloway, Lars Hanke, Sven Kuenzler, Jos Swolfs, Kenneth Fribert, Finn Kettner, Stephan Grochowina, Richard Galezowski, Peter C. Lowish, Thomas Andersson, Andreas Baum, Francesco Dipietromaria, Cedric Souchon ...

Special thanks go to Olaf ‘Olsen’ Barthel, for releasing the sourcecode of ‘term’ and creating ‘gtlayout.library’. Great work!

Some quick greetings to: Erwin Penders, Mel Nijsten, Maurice Penners, Walter Konrad, Frans Bouma (Not at ericson anymore? What’s your e-mail adr.?), Robert Udo, Bart Cremers, Arnaud Gouder de Beauregard, Walter Dees, Rino Roufs, Rex (the ONE and ONLY SPHINX-O-Dog), Marcel Meuldijk, Edwin Boesten, Ephrem Bollen, Marcel Franquinet ...

Furthermore I would like to say hello to all ‘dudes’ on IRC : Ikke, Bilbo1, Savage, Dense, Milano, Pjotr, ALFred, Mnemo, Xed, SteveVai, Zop, Janne, Outland, Mjoelnir, Juggi, Goldrnr, Lundman, Shocker, Mag, VAG, Herb, ho and everyone I know but forgot to mention here!

These are all listed in chaotic order! I am sorry if I forgot someone (which I’m sure I have) ...

13 Revision history

13.1 Version 1.0

Version 1.0 was released 6-Jun-1993:

• First public release.

13.2 Version 1.07

Version 1.07 was released 14-Jul-1993:

• Compiled on A4000 :-)

• All configuration files now use the IFF format, and are stored in ENV: and ENVARC:.

• The documentation is now in guide format.

• Improved preferences: more options.

• Added requester that warns you on exit if the configuration has been modified.

• Keyboard shortcuts for most of the gadgets.

• Requester warning if <from> date is ’above’ <to> date.

• At the beginning of the report you’ll now see the time period.

• If no calls were found during scanning the report will state an error message. (In V1.00 an empty textfile would be displayed)

• Included built-in rates: German, French, Dutch, Swedish rates.

• Added commandline arguments. Try "Phonebill ?".

• Added menus to the main window.

• Added support for MagiCall log file.

• In the report produced by "List Calls" sometimes only the phonenumber would be displayed, although a name was provided in the hostmanager.

• If Phonebill was running under a localized workbench, the default from-date ("Yesterday") and to-date ("Today") weren’t accepted anymore.

• Fixed some V39 problems: the busy pointer now appears in the same resolution as the normal mouse pointer, and some problem concerning V39 listviews is fixed too.

• If you were using a bigger system font the rate exception editor would mess up. Also, if you de-zoomed the editor window you wouldn’t see the exception anymore.

13.3 Version 1.08

Version 1.08 was released 1-Aug-1993:

• Added Terminus support.

• Severe bugs were found in Term, Magicall and NComm scanning (thanks to Benno Zuure, Henrik Gelius and Frank Petzold). I’ve rewritten all log scanning routines to avoid software failures when unknown log messages were encountered.

• The saved configuration files had the wrong version/revision tag. Also, Phonebill would disregard this tag and load any configuration file. So if the configuration files need to be changed in the future, the old version of the program would load the new config files which would probably result in a software failure.

• Under some circumstances phonebill refused to remove a rate, although it wasn’t in use.

13.4 Version 1.1

Version 1.1 was released 16-Aug-1993:

• The host and log lists now show some additional information.

• Added support for Amiga UUCP timelog.

• The pre-defined rate "Sverige: Riks 1" was wrong. The exception "Monday-Friday 18:00-22:00 0.29 per 52 secs" was missing.

13.5 Version 2.0

Version 2.0 was released 27-Sep-1993:

• GUI facelift: windows backfilled, listview doubleclick, changes in the menus.

• Brand new rate editor

• Improved "Do you really want to quit?" requester.

• <From> and <To> date are now saved as strings.

• Iconification.

• Crippled.

• Added JrComm support.

• Binary log file maintenance.

• Context-sensitive online help, by pressing ‘help’.

• New improved documentation, including ASCII and DVI formats.

• Improved keyboard control: ‘Escape’ will function as a cancel/use action, and ‘return’ as an ok/save action.

• ‘Skip’ in the ‘Unlisted host found’-requester now really skips the host, and not just for once.

• Now ‘phonebill’ is able to scan a ‘Terminus 2.0b’ log file correctly (it has some strange ‘LF’ before its connection string).

13.6 Version 2.1

Version 2.1 was released 19-Oct-1993:

• Fixed bug in ‘trapdoor’ scanner: you don’t have to pay for incoming calls anymore.

• Fixed bug in ‘AmigaUUCP’ scanner: calls of length greater then 99 minutes in the UUCP log are misaligned. This caused ‘phonebill’ to skip such calls.

• Now you can add and edit calls from within the binary log file editor.

• Time units extended with upto 4 decimals (e.g. $1,2345 per 12,3456 seconds).

• Bugfix: If the textviewer name contained spaces ‘phonebill’ couldn’t find the viewer.

13.7 Version 2.2

Version 2.2 was released 7-Dec-1993:

• Under most circumstances the updating of the binary log file is much faster and efficient compared to previous versions.

• Added MultiFax proffesional support.

13.8 Version 2.3

Version 2.3 was released 6-Feb-1994:

• New callrate feature: least costs.

• The statistics have been improved and new statistics have been added (hourly activity).

• Bugfix: the calls in the binary log file weren’t always sorted chronologically.

• Added MicroDot support.

• Added TrapFax support.

• Due to the use of the quotes when running the textviewer you couldn’t specify any commandline arguments (e.g. "WatchIt -i"). This has been fixed.

13.9 Version 2.4

Version 2.4 was released 13-Mar-1994:

• Added TKR-BTX support.

• Added AutoPilot support.

• Fixed a problem with the MicroDot log file: A call ending with "NETCALL abgebrochen" was not recognized as a valid call, and therefore skipped.

• Any trailing spaces entered at the end of the from/to-date strings are ignored now.

• The ‘LogScan’ signature from the term log file did not have the appropriate dateformat. Therefore, it could happen that the signature wasn’t recognized during some months, which might have resulted in ‘fake’ (duplicate) new calls.

• Generating report now is approx twice as fast due to the use of asynchronous I/O.

• More commandline arguments are supported.

• Added a "Save"-button in the "Settings not saved" requester.

• Added ‘dupe’-detection: duplicate calls are automatically removed. So now there is no harm done when a log file is accidently scanned twice. I recommend that you re-save your binary log file by pressing ‘Save’ in the maintenance panel, so that dupes from previous versions are removed (if there were any).

13.10 Version 2.5

Version 2.5 was released 6-Apr-1994:

• When adding calls using the maintenance panel the date is automatically set to the current date instead of 01-jan-78.

• Added GPFax support.

• Bugfix: dupe-detection failed sometimes.

• AutoPilot problem fixed: only sessions ending with "End of Session" were recognized.

13.11 Version 3.0

Version 3.0 was releaded 25-Aug-1994.

• The program can now be localized by translating the supplied catalog description file.

• The configuration files have changed from IFF to plain ASCII text files which are parsed on startup. Files in ENV:Phonebill are no longer needed, which saves memory.

• Moved from built-in scanners to user-configurable scanners. The only built-in scanner left is ‘GPFax’ (which is binary log file).

• Improved the rates: extended the limit of 4 decimals for units and seconds to 9, support for different rates in different time periods, you can enter more than one date in a date exception by seperating them using a ‘|’ character, first and second unit have made place for a listview in which you can configure as much units as you wish.

• Replaced the ugly CON: window by a nice intuition window.

• You can set a different carrier detect time for each host, or use the default carrier detect time as desired.

• Support for hosts with more than one phone number by seperating the numbers using a ‘|’ character.

• Cleaned up the statistics report a bit. It’s also possible to define the sort order in which the host listed in the bill report are sorted.

• Added support for ‘CyberPager’, ‘TheAnswer’, ‘JamMail’ and ‘Multifax 2.0’.

• New user-interface featuring ‘gtlayout.library’ by Olaf ‘Olsen’ Barthel. I found this the best compromise between a plain and fast gui like the old ‘phonebill’, and a slow but very configurable gui like ‘MUI’.

• Re-arranged the menus. I noticed that the ‘Project’ menu was called ‘Projects’, which looks very ugly. Why didn’t anyone report this? :)

• Cleaned up the code: large parts have been re-written.

• Installation is now done by using the Commodore Installer (or should that be Samsung Installer, or Philips Installer? :-)

13.12 Version 3.1

Version 3.1 was releaded 4-Oct-1994.

• Changed: the program now also looks for the keyfile in the directory specified by the KEYPATH variable, if it exists.

• Changed: The cookie %a only accepted certain phonenumbers, which caused a lot of problems. Now %a accepts any string. So now, "Calling %n (%a)" and "Calling BBS (123-AMI)" match. "A BBS 123" and "%n %a" match too: name="A" nr="BBS 123", to resolve this "%n %A" should be used.

• Bug fix: Updating the binary log files on MC68000-amigas could crash because of reading from an odd address.

• Changed: when adding hosts the last selected rate will be used as default for a new unlisted host.

• Added an option called ‘connection costs’ to the rates.

• Changed: if "ENV:AmigaGuide/Path" is set-up correctly, you can put the "Phonebill.guide" whereever you want.

• Added some average costs/calls/online per day to the stats. Also, if the <to date> is set somewhere in the future, ‘phonebill’ will estimate the total costs on that date (bill report).

• Changed: hosts with multiple phonenumbers did not work the way it was supposed to be. For example, now you can group a host "Line A" (9111) and host "Line B" (9112) to "Lines" (9111|9112).

• New: Hosts can be assigned to groups, over which reports can be generated seperately, for example: create a group called "Poll" and assign all hosts you poll for mail to this group. Then you can view reports concerning these hosts only...

• Bug fix: the ‘minimal costs’ weren’t saved.

• By pressing ‘Cancel’ in the host settings panel the changes to the host were dropped, but changes to the rates weren’t. Now, you can only pick a rate from within the host settings panel. Editting rates is done by using the rate editor.

• The format of the configuration files has changed again. For example: "scanner ... endscanner" is now "(scanner ...)" The new format is more compact, and the parser should be a bit faster compared to the old parser.

• Added German and Swedish catalogs, updated Swedish rates.

• And last but not least: my fido e-mail addresses have changed. :)

13.13 Version 3.1a

Version 3.1a was released 14-Oct-1994.

• The unregistered version could crash when you were presented with the shareware requester, but only if the localized strings were larger than the original strings.

• Fixed possible software failures in the routines responsible for adding hosts manually.

• Removed a spelling mistake. :-)

• An italian catalog has been added.

13.14 Version 3.2

Version 3.2 was released 24-Dec-1994.

• Added NewIcons and MagicWB icons to the distribution.

• The program no longer requires both %I and %X or %U and %I to be present to determine the length of the call. An occurence of %X only suffices.

• Re-added writing signatures to the GPFax log file. If you don’t like this, turn it off in the log settings.

• Added scanners for AmiTel, Off-line Amiga, DreamTerm, ISDN-Master-Telephone-Log.

• Added a new cookie for fido-style addresses to the scanner. If you have ‘traplist’ installed the address found will be used to find the real name and phonenumber of the host. You’ll need to configure the "Nodelist path" (see miscellaneous settings).

• Phonebill has become a commodity: a hotkey can be defined in the tooltypes (CX POPKEY, defaults to "ctrl alt b") to (de)iconify the program.

• Added: if you want to rescan the log files you won’t have to go through the trouble of removing the signatures with a text editor, just use the new ‘Rescan logs’ menu item.

• New: option for disabling writing signatures to the log file

• Changed: a signature will only be added if new calls were found.

• Added new date format: an integer can be used to specify the number of days after today (e.g. scanning from "-6" up to "today" results in a report of the last seven days.

• New: report presets (for the scan range and groups).

• New hosts can be automatically added by supplying the rate(s) with a pattern to match certain area codes.

• Fixed a problem in call appending.

13.15 Version 3.3

• Added a new ‘cookie’ for scanning a localized date (e.g. newer versions of autopilot started logging localized dates). Help, I am running out of cookies! :-)

• Accidently mapped the month string "maa" (dutch for March) to may. Also, "mär" was unknown.

• Added support for Plink.

• A linefeed at the end of the bill report was missing.

• Added AutoPilot scanner for v1.75 or higher.

• The program can be opened on a public screen.

• Added option to process log files on startup.

• Bug fix: somewhere in the log panel information from memory was read after it had been freed already, causing enforcer hits. Oops!

• Added commandline switch "CONFIG/S" to specify the location of the configuration directory.

• Fixed bugs in the terminus scanner.

• Added a scanner for ZeeTerm.

• When pressing ‘enter’ in the from/to gadgets of the rate period settings panel the date(s) or day(s) settings panel could popup with no particular reason. This has been fixed.

• Cosmetical changes: menu checkmarks and Amiga keys are now scaled according to the current screen display ratio, added a zoom gadget to all windows.

• Added a new truncating option called "Preserve blocks". If this option is enabled the log file will be truncated at the position of an empty line seperator.

• Monetary values are now displayed according to the current locale settings.

• Removed my name and address from .cd file.

13.16 Version 3.3a

Version 3.3a was released 11-Apr-1995.

• The executable from the previous release was mangled: AmigaDOS 2.04 wasn’t able to execute it, but for some reason AmigaDOS 3.0+ didn’t have any problems with it. Needless to say that it has been fixed...

13.17 Version 3.3b

Version 3.3b was released 17-Jun-1995.

• A French translation is now available, thanks to Cedric Souchon.

• Important note: Continental Drift (the Australian registration site) is closing down, meaning that they no longer accept registrations. Ofcourse, it is always possible for Australian people to get registered by me directly.

• A switch is now available to make sure that the reports contain ASCII characters only (Miscellaneous settings).

• "Off-line Amiga" scanner modified to recognize sessions other than "girotel" (e.g. Rabobank).

• Added GMS scanner.

14 Author Info

Send bug reports, log files, suggestions, comments, postcards, flames, contributions, etc. to:

• Snail-Mail:

      Raymond Penners
      Berkenlaan 4
      NL-6241 AZ Bunde (the Netherlands)

• Internet: raymondp@stack.urc.tue.nl

• Fido: 2:286/407.60

• AmigaNet: 39:153/201.60

• NLA: 14:101/200.60

• You may also find me (nickname "Sphinx") on IRC in the #amiga channel.

Below you will find my public key.

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.3a
mQCNAixCIEEAAAEEAMYJLUgyMWTJHOzMaiL1k50GXN86f2Ym2R7sHt6To3XluXhN
UYtkL+G2FYlGI+FzVL4oRBUCnzkqkvvIQHYbanxuVEX3XJ/w0tHWMc6+nj0/XniQ
4N9sUk4a0CiQWlo6CH6O6l+JvUoEamLpOmHeNKbOsjzh3Ekg2WxCH+ITWUepAAUR
tCtSYXltb25kIFBlbm5lcnMgPHJheW1vbmRwQHN0YWNrLnVyYy50dWUubmw+
=CMBu
-----END PGP PUBLIC KEY BLOCK-----

Table of Contents

1 Legal issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1 License. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 No warranty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4 Workbench and Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5 Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

5.1 Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.2 Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.3 Groups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.4 Presets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

6 Control panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

6.1 Main panel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 6.2 Miscellaneous settings panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 6.3 Log files panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6.4 Log settings panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 6.5 Hosts panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 6.6 Host settings panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 6.7 Rates panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 6.8 Rate settings panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 6.9 Rate period settings panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 6.10 Maintenance panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 6.11 Group settings panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 6.12 Report presets panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

7 User interface notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 8 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

8.1 Scanner configuration (Scanner.config). . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

9 Supported log files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

10 Program updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

11 How to register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

12 Acknowledgements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

13 Revision history. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

13.1 Version 1.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 13.2 Version 1.07. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 13.3 Version 1.08. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 13.4 Version 1.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 13.5 Version 2.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 13.6 Version 2.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 13.7 Version 2.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 13.8 Version 2.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 13.9 Version 2.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 13.10 Version 2.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 13.11 Version 3.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 13.12 Version 3.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 13.13 Version 3.1a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 13.14 Version 3.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 13.15 Version 3.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 13.16 Version 3.3a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 13.17 Version 3.3b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

14 Author Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36