home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 2
/
goldfish_vol2_cd1.bin
/
files
/
comm
/
misc
/
cyberpager
/
documentation
< prev
next >
Wrap
Text File
|
1994-10-05
|
17KB
|
417 lines
CyberPager
Copyright © 1993 by Christopher A. Wichura
All rights reserved.
LEGAL MUMBO JUMBO
=================
The CyberPager software is not in the public domain. All source files, along
with the resulting executable, are copyright by C. Wichura. You many not
sell CyberPager. The only allowed charge that may be placed on the CyberPager
software is for media and/or mailing costs.
The CyberPager software may be freely redistributed via BBSs,
InterNet/Usenet, and disk libraries such as Fred Fish's, as long as the
archive is not modified. Disk magazines and services that charge extra for
file transfers may not distribute CyberPager.
In using the CyberPager software, you accept the responsibility for any
damage or loss of productivity/money that may occur through or during its
use. C. Wichura is not and cannot be held accountable.
QUICK DOCKS FOR CYBERPAGER
==========================
Please excuse the crude format of these docs. I don't have a lot of free
time available these days, and so can not take the time to create a full
AmigaGuide doc file right now. Sorry.
WHAT IT DOES
============
The CyberPager software allows one to send alpha-numeric pages from one's
Amiga. This is accomplished by dialing into an IXO protocol compliant
pager central and uploading messages.
FEATURES
========
o Aliases file allows for commonly paged people to be refered to by
name rather than having to remember cryptic PIN numbers.
o Groups file allows one to create "groups" allowing messages to
be easily sent to many people working on the same project, in the
same department, etc.
o Supports multiple pager centrals through a Services configuration
file.
o Any number of messages can be spooled to disk to be uploaded in
a single call to a service.
o Automatically breaks long messages up into seperate pages. Individual
preferences for maximum message length can be set for each account
listed in the aliases file.
o Dialer supports multiple modems and knows how to hunt down a free
modem in priority order.
o Full logging of messages spooled, dialout attempts, etc.
o Supports the OwnDevUnit.library method of locking serial devices,
making the dialer compatible with mith Amiga UUCP, Welmat, and
many major Amiga terminal programs.
SYSTEM REQUIREMENTS
===================
Any Amiga running AmigaDOS 2.0 or higher.
A Hayes compatible modem.
OwnDevUnit.library v2.1 or higher must be installed (v3.3 is included
with this distribution for those that don't already have ODU)
Highly recommended:
A hard drive
A cron program (job scheduler) of some sort, such as CyberCron.
THEORY OF OPERATION
===================
The CyberPager software is comprised mainly of two programs: SpoolPage and
DialIXO. Additional functionality can be provided by using various rexx
scripts to interface other applications to the CyberPager software. A few
such scripts designed for use with Amiga UUCP are included. Additionally,
a script to page a person currently on call given current system time is
also provided. See the rexx/README file for more information on the rexx
scripts provided.
Messages are sent using the SpoolPage program. SpoolPage is responsible
for figuring out who the message is going to, translating 8-bit characters
to 7-bit "best" equivalents (such as ã -> a), breaking the message into
multiple pages (if needed), and finally spooling the message to disk.
Once a message has been spooled, the DialIXO program is used to actually
dial the pager central and upload all messages waiting for that service.
DialIXO knows how to scan the spool directory to see which services have
messages and will only dial out if it needs to deliver a message.
USING SPOOLPAGE
===============
SpoolPage understands the following arguments:
TO/M/A,URGENT/S,LOGLEVEL/N/K,MESSAGE/F
TO
used to specify the person or persons the message is for.
SpoolPage will first check to see if a name is listed in
the groups file. If it is, it will try sending the page
to all people listed as part of that group. If the name
is not found in the groups file, the aliases file will be
checked before an error is reported.
messages can be spooled to people not in the aliases file
by entering an address in the form of:
<service name>:<pin number>
where <service name> is the name of a service found in the
services file and <pin number> is the pager number you
want to send the page to.
URGENT
If specified, SpoolPage will try to start DialIXO after spooling
the message to disk. The ALWAYSURGENT flag in the config file
can be used to force this option to always be on if desired.
LOGLEVEL
controls the level of log output. Higher numbers give more
output. The current version of SpoolPage does not log
much extra when a level higher than default is used, so
this option is of dubious use at the moment.
MESSAGE
if the message keyword is given, everything following it on
the command line will be interpreted as the text of the
message to be sent. if the message keyword is not given
then SpoolPage will read the message text from it's standard
input, allowing one to pipe messages into SpoolPage.
USING DIALIXO
=============
DialIXO understands the following arguments:
SERVICE/K,MODEM/N/K,LOGLEVEL/N/K
SERVICE
limits DialIXO to only checking if work exists for the
service listed. Normally DialIXO tries to scan every
service for work pending.
MODEM
allows one to specify a specific modem (as listed in the
configuration file) to try and dial out on. when a modem
is specified, DialIXO will wait indefinately for the
modem to become free. If no modem is specified, or
modem 0 is specified, DialIXO will try to hunt for a
modem currently not in use. If no modem is available,
DialIXO will exit.
LOGLEVEL
similar to the LOGLEVEL option in SpoolPage. If you are having
trouble connecting to a service reliably, try using
loglevel 5. This will dump all packets received from the
service into the log file and may aide you in determining
why things are failing (assuming you know what IXO result
packets are supposed to look like, of course... :->) As of
release 1.1, DialIXO at loglevel 4 or higher will now log
each packet it is sending to the service as it uploads messages.
INSTALLING THE SOFTWARE
=======================
Make a directory where you want the pager software to be located. Assign
PAGER: to this directory. You'll also probably want to add this assign to
your user-startup (or however you handle assigns at boot time; I use
BindNames, for example). Make a directory called libs in PAGER:. Copy
the pager-support.library to this directory.
NOTE! pager-support.library should __NEVER__ be placed in your
LIBS: directory. SpoolPage and DialIXO expect it to be
located in PAGER:libs!
Choose a place for the spool directory. The software defaults to
PAGER:spool, however, this can be changed via an entry in the configuration
file. Make the directory. It is perfectly legal to point the spool
directory somewhere in RAM:. However, if you do this, spooled pages not
delivered by DialIXO will be lost when the system reboots.
IMPORTANT! If the spool directory does not exist, the software
WILL NOT BE ABLE TO SPOOL PAGES.
If you do not have OwnDevUnit.library installed on your system, copy it to
LIBS: (not PAGER:libs).
Now you need to edit the following files (see the sample files provided for
their format):
PAGER:services
describes the various services that you need to connect to.
for each service, you need to indicate a name that it will be
known by to the rest of the CyberPager software, the phone number
to dial to connect to the service, the maximum baud rate the
service operates at (1200 in most cases these days, although
some are still limited to 300 and one or two support 2400),
the maximum page size the service supports (call the technical
support folks at your service to find this out -- in general,
most services only support page sizes between 196-230 bytes,
even though the IXO protocol supports an unlimited page size),
and whether or not your service supports multi-block IXO packets
(again, ask the tech support folks at your service -- in general,
most services don't and if you turn on multiblock when the
service doesn't support it then longer pages (>250 bytes) will
get trashed). Finally, you must specify the password for the
service. Most systems don't really make use of this, in which
case you must use "1000000" as the password. The password is
limited to 15 characters. The final option that must be specified
in the services file is a flag that indicates if the service uses
8 data bits, no parity, 1 stop bit. The IXO specification states
that IXO TAPs should be using 7E1. However, some services have
started using 8N1, which will cause CyberPager to fail to connect.
By setting this flag to Y, you will cause CyberPager to dial the
service in 8N1 mode, rather than in 7E1.
PAGER:aliases
describes people you commonly send pages to. for each alias, you
need to indicate a name the person will be known by, the service
that the person subscribes to (must be defined in the
PAGER:services file), the PIN (pager identification number) of
the person, the maximum message length (in bytes) that the person
wishes to allow, and the max page size the person wishes to allow.
PAGER:groups
allows one to describe groups of people in the same department,
etc., to easily send a single message to many people who it is
of interest to. see the sample groups file for information on
how this file is set up. if you don't plan to use any groups,
removing this file will speed up SpoolPage's processing a tad.
PAGER:config
defines characteristics of your system, such as where the spool
directory is located, where to place the logfile, etc. most
importantly, it defines the modem(s) to be used to dial out
on. see the config file for comments on the format of each
entry type. you MUST edit this file before you will be able to
use DialIXO (as my modem settings don't use the built-in
serial port).
Install the SpoolPage and DialIXO binaries somewhere in your search path.
I recommend placing them in PAGER:bin and adding PAGER:bin to your path.
This provides a consistant place for higher level scripts to find the
binaries in. Note that both SpoolPage and DialIXO are pure, and thus can
be added to the resident list.
Once this is all done you should try sending yourself a page. Suppose
the alias you created for yourself was called 'me'. You'd run SpoolPage
with something like this:
spoolpage me message this is a test
If spoolpage doesn't complain, try running DialIXO to actually deliver the
message to the service. If all goes well, your pager should go off fairly
shortly thereafter.
Once you know that the software is installed properly and working, you
should probably look into adding a cron event that will run DialIXO
periodically to scan for any spool files waiting to be sent out. I'd
recommend a fairly regular running of DialIXO with no specific modem
specified. Then, at a less frequent interval, run DialIXO on a specific
modem so that it will block for it to come free. This way, if you are
using all your modems when the hunt mode DialIXO is run, you will still
have a lock mode IXO come around every now and again that will wait
until you are done using one of your modems and upload all waiting pages
at that time.
NOTES ON NETWORK SUPPORT
========================
At this time, it is __NOT__ safe to have multiple machines share the same
spool directory (cross mounted from another machine). The locking
mechanism used for files does not extend beyond the local machine. Thus,
if you wish to use this in a networked environment, you must have all
'client' machines (i.e., the ones which DialIXO does not run on) rsh (or
whatever) SpoolPage on the pager server.
FUTURE PLANS
============
Workbench support (currently SpoolPage will quitely exit when started from
Workbench, doing nothing).
Add in localization support.
Redo documentation as a texinfo file, allowing for beautiful hardcopy, an
AmigaGuide file and a text file to be generated from the same
doc file.
A nice GUI interface for this. Won't happen until MUI comes along,
though...
THANKS TO
=========
Mike Meyer for all is comments and beta testing, not to mention letting me
include the rexx scripts he wrote.
Brian Vargyas for getting me hooked on the alpha-numeric pager idea and not
going totally wild when I got side-tracked from this other project he
want's me to do in order to work on CyberPager... :-)
Nickey MacDonald for pointing out and helping track down a bug occuring
on V37 machines.
CONTACTING THE AUTHOR
=====================
If you happen to find a bug or have a suggestion for CyberPager, or just
want to say "hey, cool program", please contact me using one of the ways
listed below. Even if you wanna say "CyberPager sucks", let me know and be
sure to say why you feel this way so that I might be able to fix what you
think is wrong with the program.
These electronic forms are the most prefered means of contacting me. They
will get you a response pretty quick.
e-mail: caw@miroc.chi.il.us
BIX: caw
Snail Mail is pretty slow and I'm not known for being very good about
responding to it... :-)
Christopher A. Wichura
5450 East View Park
Chicago, Il. 60615
USA
You can also reach me by phone. However, please try to limit your calling
to evening hours (I'm in the central time zone). If I'm not home and you
leave a message, call back again anyway. Around here, one tends to get
maybe 5% of the messages left for them, if lucky... :-)
(312)/684-2941
HISTORY
=======
1.0
Initial release
1.1 (7/10/93, SpoolPage v0.136, DialIXO v0.219, library v1.23)
A bug in the checksum generator manifested itself when talking
to services which are more strict about the IXO protocol.
Many IXO services accept a space instead of a zero in the checksum.
Some, like SkyTell, appear not to. DialIXO now uses zeros per
the IXO spec as written by Motorolla.
Added a loglevel 4 entry to DialIXO that causes it to log the
exact packet being sent to the service when uploading each
page.
Added a routine to intelligently add characters to the safe
buffer (i.e., non-printable characters converted to escaped
hex, etc, for display purposes). DialIXO know displays
special characters of the IXO protocol, such as ACK, NAK, STX,
etc., as text rather than hex escape sequences to make
tracing loglevel 5 output easier.
1.2 (7/20/93, SpoolPage v0.136, DialIXO v0.220, library v1.23)
Found a bug that affected people running KickStart V37. The
wildcard mask DialIXO used to look for spool files would not
find any that had a letter in them (i.e., 00000a as opposed
to 000009 which would work). This was due to the mask having
the alpha range specified in lowercase. V37 has a bug that
doesn't uppercase alphabetic letters when a case-insensitive
compare is being made. By changing the mask to specify the
alphabetics in uppercase, things now work properly on V37
machines. Thanks to Nickey MacDonald <i6t4@jupiter.sun.csd.unb.ca>
for reporting this problem.
1.3
Greg Peck had a problem with the 1stPage service where it was
sending out messages before ACKing the page (which the service
is not supposed to do). CyberPager would report an "unknown
packet" and resend the page. It would then see the ACK from
the previous page. The end result was that he was getting
each page twice. CyberPager no-longer resends the page on
unknown packets, but rather continues to look for an ACK or NAK
from the service. Related to this, I changed the log level
of the "unknown packet" message to 2 (which is the same level
as the "saw NAK, retrying" message) so that people in Greg's
position wouldn't have their logfile explode due to the
unknown packet messages being dumped into it for every page.
1.4
(2/7/94, SpoolPage v0.140, DialIXO v0.226, library v1.26)
David Varley reported that his makes use of the password
specification at login time. This is the first time I heard
of any system actually making use of this, rather than always
using the default '1000000'. I have modified the system to
have a password field in the services file.
For most systems, simply specifying "1000000" should suffice.
Note: this change requires that you modify your services file
to include a password field for each service, even if it is
just "1000000".
1.5
(10/5/94, SpoolPage v0.144, DialIXO v0.230, library v1.27)
Added Use8N1 field to services configuration file. The IXO
protocol specification indicates that all IXO TAPs should use
7E1. Some newer services are now using 8N1, however. By
setting this flag to "y", DialIXO will dial the service in
8N1 mode, instead of the default 7E1 mode.
Note: this change requires that you modify your services file
to include a Use8N1 field for each service. For most services,
you should simply specify "n" to continue to use 7E1.