@DATABASE XCaller Guide
@master "Xcaller.guide"

@$VER: XCaller.guide v1.56 (10.02.95)

@node MAIN "X-Caller Documentation 1995"

                             Documentation for

                              X-Caller v1.56

             Written by Brett Ramdeen (Zed) of Midnight Magic
                 Copyright (c) 1994, 1995 by Brett Ramdeen
                           All rights reserved.


@{" Introduction " Link INTRO}  Introduction To X-Caller
@{" Requirements " Link REQUI}  X-Caller Requirements
@{" Features     " Link FEATU}  Features of X-Caller
@{" Installation " Link INSTA}  How to install X-Caller
@{" Usage        " Link USAGE}  Commands supported
@{" Credits      " Link CREDI}  Authors' Address
@{" History      " Link HISTO}  Version History of X-Caller


            R E A C H   A   S T A T E   O F   P E R F E C T I O N

 ==========================================================================
    [Node 1: 28.8k Dual] 905-796-2931  [Node 2: 16.8k Dual] 905-796-0196
 ==========================================================================

@endnode

@node INTRO "X-Caller v1.5 Introduction"
Introduction
~~~~~~~~~~~~

X-Caller is a last ten callers bulletin generator for Xenolink.  It was
originally written for AmiX as an alternative to NosCaller (old Yeller) and to
the countless NosCaller wanna-be's which provided decent information in the
generated bulletins but ugly output.

This will probably mean nothing to Xenolink owners, but those of you who
used to own AmiX know exactly what I am talking about.

All output generated by X-Caller has been designed with 16 colour ANSI users in
mind but still looks good in 8 or 2 colours.

@endnode

@node REQUI "X-Caller v1.5 Requirements"
Requirements and Compatibility
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    - An Amiga (da!)
    - ADOS v2.x or higher.
    - Xenolink v1.97+
    - Verbose log files.  All logfiles must be in VERBOSE format.
   - Log files must reside in 'XENOLINK:Log/'


@endnode

@node FEATU "X-Caller v1.5 Features"
Features
~~~~~~~~

XCaller has been designed with two key ideas in mind, decent output and fast
execution.  As far as I am concerned both requirements have been made but as
time progresses I will undoubtedly add numerous enhancements.

XCaller supports three different command line options.  The first two specify
the type of last caller bulletin to generate.  I won't go into much detail
about the differences between the two types since you can simply view the
example IFF screen grabs.  The third option supported by XCaller is the ability
to strip the callerslog for a defined node.  It will truncate the log so that
only the last caller on that node will be contained in the log file.

XCaller has been tested with Xenolink v1.97 and is both MungWall and Enforcer
clean.  Simply stated, if you have any problems with XCaller, it is more
than likely that something in the background is interfering with its
execution and not an actual flaw of X-Caller.


The Future:

XCaller is under constant development.  If you have any suggestions, bug
reports or comments of any type just post me a message in the Xeno Support
echos.  Current features under development include a Callers Graph, System
Top Stats, and System Weekly Stats.


@endnode

@node INSTA "X-Caller v1.5 Installation"
Installation
~~~~~~~~~~~~

Copy the main executable (XCaller) to 'DOORS:XCall/'.  This path is not
necessary for X-Caller to work properly, but it is recommended since
X-Caller creates a small data file (less than 1k) and this provides an easy
way to keep track of things.  Please note that the data file will be
created when X-Caller is run for the first time.

-------- Cut Here ---------
wait 4
DOORS:XCall/XCaller 1 x XENOLINK:Systemtext/login.txt   ;generate report for Node x

-------- Cut Here --------

Would you like to see a list of supported commands? @{"Yes" Link USAGE} or No?

You would of course add this line to all logoff batches and vary the node
number. You must also include the 'wait' command with a respectable delay
value.  This is to compensate for Xeno's method of buffering the logs.
Ideally you will want to add a delay eqaul to 1.5 times the rate at which
your logs are flushed.

    IE: If Xeno flushes your logs every 4 secs.  Add the line 'wait 6'.
        If Xeno flushes your logs every 8 secs.  Add the line 'wait 12'.

This will ensure that the logs have been flushed before XCaller attempts to
read them.

In order for XCaller to detect File Scanning/Browsing, New Users, and Sysop
Pages, the following LogMessage commands (case sensitive) must be added to the
necessary menus:

   LogMessage "Filescan"       - Must be added prior to all catalogue and browse
                                 functions.

   LogMessage "Operator Paged" - Must be added prior to all PageSysop
                                 functions.

   LogEntry "NewUser"          - must be added to NewUser.rexx so that
                                 XCaller can pick up on new users.



NOTE: These additions to the menus/template.config are by no means
      necessary.  They are only recommended if you want XCaller to detect
      the above conditions.

Does this annoy you since you don't have to do anything like this with
LastCaller?  @{"Yes" Link ANNOY} or No?


@endnode

@node CREDI "X-Caller v1.5 Credits"

X-Caller has been written by Zed of Midnight Magic.  All bug reports should be
sent to Midnight Magic or one of the following BBS's.  All updates can be obtained
from Midnight Magic.

Contact
~~~~~~~

I can be reached via the Xenolink support echos as Brett Ramdeen or by one of
the following methods:

Fido    : Brett Ramdeen @ 1:259/236.0
Internet: e0f8htx8@credit.erin.utoronto.ca
Internet: brett.ramdeen@midnight.gryn.org

Zed at Midnight Magic +1-905-796-2931 [28.8 Dual]
                      +1-905-796-0196 [16.8 Dual]

Greetings
~~~~~~~~~

KillRaven     - ConfScan is still the BEST, perhaps you should port those
                utils to Xenolink.
Zardoz        - Thanks for testing out the program in the dark ages (AmiX)
                and now.
Wraith        - Thanks for convincing me to switch from CrappyX to Xenolink, by
                the way, I still have your manual, hehe.
Night Stalker - Thanks for all the help with the Fido set-up and for
                testing XCaller.
Ian Forest    - For finding the problem with XSpawn and testing out my
                fixes.


And last but not least, to all the users of Midnight Magic.  You guys are what
make the board happen.


@endnode

@node HISTO "X-Caller v1.5 History"
History
~~~~~~~

v0.97 - First beta release.

v0.98 - Added routine to scan for incomplete calls or connections
      - Improved parsing of command line options
      - Removed all debugging code

v0.99 - Fixed User Location overflow
      - Modified Output
      - Implemented Fail Safe Feature to User Name and Duration
      - Modified Output to allow transfers greater than 9999kb.
      - Improved Error Checking of User Name

v1.00 - Release Version
      - Removed Debugging Code
      - Compiled for ADOS 2.x

v1.08 - Implemented Command Parsing
      - Re-organized source layout
      - Increased maximum bytes d/l and u/l to 999 megs per day.
      - Implemented parsing of number of files transfered.

v1.23 [28-Apr-1995] - Conversion to Xenolink started

v1.29 [04-May-1995] - Fixed User Name and Location modules which were causing
                      Enforcer hits.

v1.34 [06-May-1995] - Conversion from AmiX to Xenolink completed
                    - Modified log scanning routines to give much increased
                      performance.
                    - Improved error checking routines

v1.36 [10-May-1995] - Changed log path from BBS:Log/ to XENOLINK:Log/
                    - Added second command which is an alternative last
                      caller screen.
                    - Optimized integer handling shaving 12 bytes from
                      executable.
                    - Fixed display bug on command 2 which caused an extra
                      line feed per line.

v1.42 [29-Jun-1995] - Added third command which strips the log FILE.
                    - Added routine to detect if last log entry was an XMailer 
                      session and exit cleanly of so.
                    - parsing of connect rate now allows for full connect
                      strings instead of just the rate itself.

v1.45 [04-Jul-1995] - Improved reliability of Scan function.
                    - Changed 2 character limit on user names to 1 character to
                      allow for users with names such as 'U2'.
                    - Modified location scan function which would pick up the
                      users phone number instead, if they enclosed the area
                      code with brackets.

v1.56 [16-Sep-1995] - Updated for Xenolink v1.97+.
                    - Increased buffer size to allow for increased system
                      usage.
                    - Added second scan function to accomodate for sysops
                      using XSpawn.
                    - Improved reliability of routine to check for Xmailer
                      Sessions.


@endnode

@node USAGE "X-Caller v1.5 Usage Template"
Usage Template
~~~~~~~~~~~~~~

Usage: XCaller <command> <node> <output_file|flush_delay>

<command>:
        @{" 1 " Link OP1} Last ten callers: Name, Location, Rate, Node, Activity, Logon, Duration,
                               Kb Up, Kb Down.
        @{" 2 " Link OP2} Last ten callers: Name, Location, Rate, Activity, Logon, Duration, Files Up,
                               Kb Up, Files Down, Kb Down.
        @{" 3 " Link OP3} Strip log files : Truncate log file for specified node to last entry.

@endnode

@node OP1 "Command 1 Usage"

Usage: XCaller <command> <node> <output_file|flush_delay>

Example: XCaller 1 2 xenolink:systemtext/outfile.txt

The above example would cause Xcaller to create Bulletin #1 for Node 2 and
save it in the file 'outfile.txt' within the SystemText directory of the
Xenolink: assign.

Recomendation: Execute this command by adding it to your logoff.x script file.

@endnode

@node OP2 "Command 2 Usage"

Usage: XCaller <command> <node> <output_file|flush_delay>

Example: XCaller 2 3 xenolink:systemtext/outfile.txt

The above example would cause Xcaller to create Bulletin #2 for Node 3 and
save it in the file 'outfile.txt' within the SystemText directory of the
Xenolink: assign.

Recomendation: Execute this command by adding it to your logoff.x script file.

@endnode

@node OP3 "Command 3 Usage"

Usage: XCaller <command> <node> <output_file|flush_delay>

Example: XCaller 3 1 30

The above example would cause Xcaller to open the log file for Node 1 and
truncate it to one entry.  The final argument, '30', is the flush delay to be
used when XCaller reestablishes the Log Server.

Recomendation: Execute this command via a Cron utility to keep your log files
               in check.

@endnode

@node ANNOY "Grievances"

The reason you must add these LogMessage entries to your menus for XCaller
while you do not for LastCaller is quite simple.  XCaller is a LOGFILE analyzer
while LastCaller analyzes the data files found in the SystemData directory.
In short, both program utilize completely different methods to achieve the
same means.

The pros and cons to these two differences are such that with LastCaller you do
not need to add a LogMessage command to detect Sysop Pages while you must add
this in order for XCaller to detect them.  On the other hand XCaller can detect
the complete results of users dload and uload activities including the total
number of files transfered and the total amount of bytes transfered,
LastCaller can not.  Filescanning and NewUsers need not be mentioned since
LastCaller does not detect these anyways.

In any case the choice is yours and with either program there is a give and
take.

@endnode
