285 lines
11 KiB
Plaintext
285 lines
11 KiB
Plaintext
![]() |
Tom Jennings
|
|||
|
30 Apr 84
|
|||
|
Fido #1: (415)-864-1418
|
|||
|
|
|||
|
Some preliminary ideas for the FidoNet. (If you<6F>
|
|||
|
haven't heard, FidoNet is an intersystem message forwarding<6E>
|
|||
|
system mostly for Fidos, but could be used for others as<61>
|
|||
|
well.)
|
|||
|
|
|||
|
Please, don't worry about all the seeming complexity<74>
|
|||
|
here. Most will go away. I have just typed everything I<>
|
|||
|
could think of all at once, and not all is applicable.<2E>
|
|||
|
(Besides, you're (probably) not gonna code it.)
|
|||
|
|
|||
|
There are some points that need ideas: mainly, how<6F>
|
|||
|
to pay for it, how it will appear to callers trying to send<6E>
|
|||
|
mail, and any mysterious operational type problems you see.<2E>
|
|||
|
Like most of Fido, I imagine this too will be built with 90%<25>
|
|||
|
suggestions.
|
|||
|
|
|||
|
If you have any ideas on this proposed system,<2C>
|
|||
|
please leave me a note on Fido #1 at the above number.<2E>
|
|||
|
Thanks.
|
|||
|
|
|||
|
O P E R A T I O N
|
|||
|
|
|||
|
|
|||
|
From a callers point of view, the system will have<76>
|
|||
|
one additional feature when entering a message. One way or<6F>
|
|||
|
another the caller tells Fido which system the message is to<74>
|
|||
|
be sent to. This could consist of a prompt (System A, B,<2C>
|
|||
|
...) or some such thing. (Any ideas?)
|
|||
|
|
|||
|
In any case, mail will only work from a MAIL<49>
|
|||
|
subdirectory. Messages left here will be like all other<65>
|
|||
|
messages; readable or not, depending on the privacy, etc.<2E>
|
|||
|
Replies can be left, etc, which get mailed in the same way.
|
|||
|
|
|||
|
It may be desirable to search this area for each<63>
|
|||
|
user after signon, the same way message searching works now.<2E>
|
|||
|
If old messages don't pile up like in other areas, this<69>
|
|||
|
should be nice and fast.
|
|||
|
|
|||
|
There will not be any automatic confirmation of<6F>
|
|||
|
received messages. It will be up to the user to do so, by<62>
|
|||
|
mailing a message stating that is was received. Maybe it<69>
|
|||
|
will be possible to confirm, by reading the RECV'D flag from<6F>
|
|||
|
the message, but that won't go into the first one.
|
|||
|
|
|||
|
In the MAIL area, the usual message search<63>
|
|||
|
("Messages to you" etc) should be adequate, if mail traffic<69>
|
|||
|
is less than or the same as the current message traffic.
|
|||
|
|
|||
|
I M P L E M E N T A T I O N
|
|||
|
|
|||
|
The only change to Fido will be a new command line<6E>
|
|||
|
parameter:
|
|||
|
|
|||
|
<number>/Y
|
|||
|
<number>/W
|
|||
|
|
|||
|
/Y Is the hour of the day to start doing mail as<61>
|
|||
|
opposed to normal BBS stuff. /W is the window width, in<69>
|
|||
|
minutes, to do mail in. For example, 0200/Y 90/W says do<64>
|
|||
|
mail from 2:00AM, for up to 90 minutes, i.e. until 3:30AM.<2E>
|
|||
|
During this time, Fido will not accept any normal callers.<2E>
|
|||
|
Also, outside these times, Fido will not accept mail. If no<6E>
|
|||
|
switch is present, or the window is set too small (TBD) then<65>
|
|||
|
it will not send or receive mail, like it does now.
|
|||
|
|
|||
|
Neither will it bump someone off if they happen to<74>
|
|||
|
call just before the appointed time. However, as soon as<61>
|
|||
|
they logoff, it will start handling mail if it's supposed<65>
|
|||
|
to.
|
|||
|
|
|||
|
The mailer (the program that actually sends and<6E>
|
|||
|
receives mail) is a seperate program. It is run from the<68>
|
|||
|
batch file (RUNBBS.BAT) right after Fido.EXE. This works<6B>
|
|||
|
like Control-C and errors do; via ERRORLEVEL. For instance,<2C>
|
|||
|
the batch file might look like:
|
|||
|
|
|||
|
FIDO ... 0200/Y 90/W
|
|||
|
IF ERRORLEVEL 4 GOTO MAIL
|
|||
|
IF ERRORLEVEL 1 GOTO END
|
|||
|
RUNBBS
|
|||
|
MAIL:
|
|||
|
MAILER 0200/Y 90/W
|
|||
|
RUNBBS
|
|||
|
END:
|
|||
|
|
|||
|
Like current Fidos, ERRORLEVEL is 0 if normal<61>
|
|||
|
termination (caller hung up, etc) 1 if Control-C or stack<63>
|
|||
|
overflow, 2 if disk file error (disk full, missing files,<2C>
|
|||
|
etc) or 4, the new level for: "Time to do Mail".
|
|||
|
|
|||
|
If it's time to do mail, Fido exits with ERRORLEVEL<45>
|
|||
|
4. If 4 or higher, it runs MAILER, which then runs<6E>
|
|||
|
RUNBBS.BAT which starts it all over again. Otherwise, if 1<>
|
|||
|
(or higher) it is an error, it goes to the end and stops.
|
|||
|
|
|||
|
When run, the mailer sits and waits for phone calls,<2C>
|
|||
|
or if instructed to do so, (command line switches or a<>
|
|||
|
command file, whatever) makes calls. If a human type caller<65>
|
|||
|
calls, they will get a message to the effect "Waiting for<6F>
|
|||
|
mail, please call back after <xxx>", where <xxx> is the end<6E>
|
|||
|
of the window to wait for mail, and hang up on them. (The /W<>
|
|||
|
and /Y switches will be duplicated in the mailer, for<6F>
|
|||
|
reasons I'll not bother with now.)
|
|||
|
|
|||
|
C O S T
|
|||
|
|
|||
|
First, it is very important that we figure out what<61>
|
|||
|
it would cost. This is the second most important part. The<68>
|
|||
|
cheaper it is, the more likely FidoNet can be made operable.<2E>
|
|||
|
However, no matter how cheap it is, if an ingenous way of<6F>
|
|||
|
paying for it doesn't exist, then it all falls flat.
|
|||
|
|
|||
|
Right now, late night long distance (coast to coast)<29>
|
|||
|
toll charges are about $13.00 per hour. ATT is proposing, as<61>
|
|||
|
part of some other boring issue, lowering this to $10.00 per<65>
|
|||
|
hour. This is quite cheap; a lot of messages can be sent in<69>
|
|||
|
an hour.
|
|||
|
|
|||
|
I hereby declare the mail size unit to be the Cubit:
|
|||
|
|
|||
|
1 Cubit == 80 characters * (1200 / baud rate)
|
|||
|
|
|||
|
A cubit of mail sent at 300 baud will cost 4 times<65>
|
|||
|
as much as one sent at 1200. When 4800 baud modems become<6D>
|
|||
|
available, the price per cubit will drop.
|
|||
|
|
|||
|
Unlike commercial mail systems that are out for<6F>
|
|||
|
profit, FidoNet's mail unit, the Cubit, is small enough to<74>
|
|||
|
account for very small messages, but large enough not to be<62>
|
|||
|
too small to account for. There are 12.8 cubits in a K byte.
|
|||
|
|
|||
|
An error checking transfer protocol is needed;<3B>
|
|||
|
XMODEM will not be used, as transfer times routinely double<6C>
|
|||
|
with long phone lines. (Dont want to pay for that.) More on<6F>
|
|||
|
that later.
|
|||
|
|
|||
|
As an example, say we want to send a small (five<76>
|
|||
|
lines, 64 characters per line) message from Los Angeles to<74>
|
|||
|
New York. Each message has a header (to, from, date, etc)<29>
|
|||
|
that consumes about 80 characters. Assume also that the<68>
|
|||
|
transfer rate is 1200 baud, and also that the transmission<6F>
|
|||
|
method has a 10% overhead.
|
|||
|
|
|||
|
Msg size: 4. Cubits
|
|||
|
Message Overhead: 1. Cubit
|
|||
|
Message Size: 5. Cubits
|
|||
|
Message Size: 400. Characters
|
|||
|
|
|||
|
Cost Per Hour: 13.00 Dollars
|
|||
|
Chars/Second: 120.0 (10 bits/char)
|
|||
|
Cubits/Second: 1.3636.. (120sec / (cubit * 1.10))
|
|||
|
|
|||
|
Cubits/Hour: 4,909. (3600 sec * cubits/sec)
|
|||
|
Cost/Cubit: 0.2648 Cents ($13.00/cubits/hr)
|
|||
|
|
|||
|
Sample Msg Cost: 1.324 Cents
|
|||
|
|
|||
|
Yes ... its cheap. Remember, this is pure cost, no<6E>
|
|||
|
hardware maintenaince overhead, no payroll, no profit, etc.<2E>
|
|||
|
Delivery time, nor even delivery, is garenteed. The above<76>
|
|||
|
does NOT include any connect/disconnect or disk access<73>
|
|||
|
overhead. However, it also does not count any savings from<6F>
|
|||
|
text compression, which could save 10% to 40% maximum.<2E>
|
|||
|
Probably more like 20% maximum in the real world.
|
|||
|
|
|||
|
P A Y I N G F O R A L L T H I S
|
|||
|
|
|||
|
This is the most serious problem. The technical part<72>
|
|||
|
is easy! Also, BBS's in general are run more like little<6C>
|
|||
|
fiefdoms than businesses, in the sense the are usually<6C>
|
|||
|
operated privately, and almost never pay for themselves,<2C>
|
|||
|
never mind make money! If FidoNet takes inordinate amounts<74>
|
|||
|
of effort on the part of the sysop, it'll probably fold up<75>
|
|||
|
due to that also.
|
|||
|
|
|||
|
There are a couple of ways this can be paid for, but<75>
|
|||
|
none are really any good for typical free systems. (Note<74>
|
|||
|
that receiving (accepting) mail costs nothing. FidoNet might<68>
|
|||
|
be able to operate well with only a few well placed<65>
|
|||
|
"benefactors", and work acceptably well with only local<61>
|
|||
|
"paying" nodes, if mail is limited to say, an area code.)
|
|||
|
|
|||
|
IF YOU HAVE ANY IDEAS AT ALL ON THIS SUBJECT PLEASE<53>
|
|||
|
LET ME KNOW!!!!!! THIS WILL MAKE OR BREAK THE FIDONET<45>
|
|||
|
IDEA!!!!
|
|||
|
|
|||
|
In any case, some sort of accounting will have to be<62>
|
|||
|
done. Except for very rare cases, mail will have to be paid<69>
|
|||
|
for. The mailer will be able to account for each messages<65>
|
|||
|
cost, length of transmission, etc. There must be a method<6F>
|
|||
|
for limiting mail sent by a specific user, and a "sysop"<22>
|
|||
|
type feature for relatively unlimited, or at least<73>
|
|||
|
differently limited, mail. The information associated with a<>
|
|||
|
peice of mail will have to be worked out in detail later,<2C>
|
|||
|
and while not too complex (any complexity can be put upon<6F>
|
|||
|
the mailer) it must be adequate for future expansion.
|
|||
|
|
|||
|
Presumably, not everyone will be allowed to forward<72>
|
|||
|
mail indescriminately. That would be awful nice, but<75>
|
|||
|
unfortunately not practical. There may be exceptions: for<6F>
|
|||
|
instance, for a club-run system, you might want to let any<6E>
|
|||
|
user send a fixed amount of mail over a fixed period of<6F>
|
|||
|
time, say, a month. If it was a dues paying club, a number<65>
|
|||
|
could be worked out that would accomodate this. Anything<6E>
|
|||
|
beyond that amount would have to be accounted for by some<6D>
|
|||
|
other method.
|
|||
|
|
|||
|
|
|||
|
IDEA #1
|
|||
|
|
|||
|
Club-run systems. Basically, covered above.
|
|||
|
|
|||
|
IDEA #2
|
|||
|
|
|||
|
Private, pay-ahead system. While this is very<72>
|
|||
|
workable, it means even more work for the sysop, and<6E>
|
|||
|
probably some legal liability, like running a business,<2C>
|
|||
|
unless the proper rigamarole wording is used, i.e.<2E>
|
|||
|
"donations" not "charges".
|
|||
|
|
|||
|
No one will be able to send mail unless they mail<69>
|
|||
|
some amount of money to the sysop. The amount donated is<69>
|
|||
|
kept in a list maintained by the mailer, who subtracts the<68>
|
|||
|
cost of the message from the balance. Usual warnings if not<6F>
|
|||
|
enough, etc, and probably a warning when it reaches some<6D>
|
|||
|
threshold.
|
|||
|
|
|||
|
T H E N E T W O R K
|
|||
|
|
|||
|
|
|||
|
Might as well be trendy and use some network<72>
|
|||
|
terminology here. Some of it's even handy.
|
|||
|
|
|||
|
The topography of FidoNet is in keeping with<74>
|
|||
|
bulletin board philosophy; totally random and as little<6C>
|
|||
|
organization as possible. Also, there is no control over the<68>
|
|||
|
location of the various message nodes (mail send/receive<76>
|
|||
|
systems).
|
|||
|
|
|||
|
My first thought was to pass mail over as short a<>
|
|||
|
distance as possible; however, this is a waste of time, as<61>
|
|||
|
late night long distance calls are charged on a per hour<75>
|
|||
|
basis, and in any case the more transfers the higher<65>
|
|||
|
likelyhood of messages getting lost.
|
|||
|
|
|||
|
Message delivery time, if all is well, should be<62>
|
|||
|
overnight. If a system goes down, delays will be in<69>
|
|||
|
increments of 24 hours.
|
|||
|
|
|||
|
There should also probably be a "broadcast" type<70>
|
|||
|
message, that stops at each node. Also, there really isn't<>
|
|||
|
anything stopping binary files from being mailed; they are<72>
|
|||
|
not included here mainly because costs will skyrocket, but<75>
|
|||
|
it would be a nice way to do Fido updates, etc.
|
|||
|
|
|||
|
|
|||
|
So, my current idea (any other ideas at all<6C>
|
|||
|
welcome!) is:
|
|||
|
|
|||
|
Each sender has a list of systems it can forward to.<2E>
|
|||
|
This can be used to limit forwarding to non-toll call areas<61>
|
|||
|
if desired. Also, this same list can be used to send mail<69>
|
|||
|
destined for one system, to be sent to a different system,<2C>
|
|||
|
for further forwarding. This allows cheapskates to let<65>
|
|||
|
someone else make the toll calls. (If they in turn let it<69>
|
|||
|
go) Also, it lets a well funded system forward mail for<6F>
|
|||
|
other systems.
|
|||
|
|
|||
|
If there are messages destined for five different<6E>
|
|||
|
systems, there will be five calls made (unless the<68>
|
|||
|
abovementioned forwarding is done). This "nodeless" system<65>
|
|||
|
is then relatively insensitive to down machines, etc, such<63>
|
|||
|
that only mail for the down system will not be sent.
|
|||
|
|
|||
|
If the net gets tied up (everyone calling everone<6E>
|
|||
|
else, for instance, though I think thats unlikely!) then<65>
|
|||
|
some message forwarding can be done to lessen the traffic<69>
|
|||
|
load between busy systems.
|
|||
|
|
|||
|
|