Fido's Complete Operating Manual Page FIDONET-1 FIDONET Table of Contents Introduction to FidoNet ________________________ Page 2 FidoNet Description ____________________________ Page 3 Costs __________________________________________ Page 5 FidoNet Operation ______________________________ Page 6 Basic FidoNet Packeting (Figure A) _____________ Page 8 FidoNet Routing and Scheduling (Figure B) ______ Page 9 FidoNet Packet Layout (Figure C) _______________ Page 10 FidoNet Glossary _______________________________ Page 11 Fidonet topologies _____________________________ Page 13 Addressing FidoNet Nodes _______________________ Page 16 Routing: Message Forwarding ____________________ Page 17 Route Files ____________________________________ Page 18 Route File Contents and Syntax _________________ Page 19 Route Statement ROUTE-TO _______________________ Page 22 Route Statement SEND-TO ________________________ Page 23 Route Statement ACCEPT-FROM ____________________ Page 24 Route Statement NET ____________________________ Page 25 Route Statement SEND-ONLY and RECV-ONLY ________ Page 26 Route Statement EXTERNAL-MAIL __________________ Page 27 Route Statement PICKUP _________________________ Page 28 Route Statement POLL ___________________________ Page 29 Route Statement NO-ROUTE _______________________ Page 30 Route Statement HOLD ___________________________ Page 31 Routing Examples _______________________________ Page 32 Using the Scheduler ____________________________ Page 33 The Node List __________________________________ Page 35 Installation of FidoNet ________________________ Page 39 FidoNet Section Index __________________________ Page 41 Fido's Complete Operating Manual Page FIDONET-2 Introduction to FidoNet This manual explains (hopefully) what FidoNet does, how it does it, and how to install and run it. FidoNet is built into, but seperate from, Fido the bulletin board system. Please read the FidoNet Operation chapter for details on how Fidonet works; briefly, FidoNet is a method of connecting many Fido Bulletin Boards in different locations for the purpose of transferring messages and files automatically. The net operates for a short period of time each day; for instance, Fido the Bulletin Board runs for 23 hours each day, and Fidonet for 1 hour. During this hour, any messages marked as mail are combined into packets, and transferred to the each of the Fidonet programs. They are then unpacked, and normal BBS operation resumes. In most local areas (St. Louis, Los Angeles, London, Karlstaad, etc) local networks have been set up for local traffic, and use centralized hosts to send mail nationally. If there is a local net in your area, you must join it or the organization in the geographical area. The host or region manager can supply you with lists of other systems, newsletters, and other timely information on FidoNet. FidoNet inherently "knows" about hosts and regions, which operate similar to the telephone companies' area code system. FidoNet routes messages accordinly; this is covered further in a later section. There are numerous things to control the setup, such as available remote systems, cost control (or prevention) and so on. Once setup, FidoNet is totally automatic, requiring no sysop or user intervention. Fido's Complete Operating Manual Page FIDONET-3 FidoNet Description Fidonet's purpose is to link Fido based Bulletin Board systems together for the purpose of automatic message and file transfers. FidoNet is a true dialup packet switch network system, that supports many different topologies. It supports routing, message forwarding, scheduling, and uses a tuned collision detection algorithm over normal phone lines, for the lowest possible cost and highest effeciency. The simplest scheme, and the one to setup initially, supports point to point messages. Most major geographical areas have a host that will accept mail for itself and it's local nodes. After you have contacted any other Fido sysops in your area, you can tie into their local network, and take advantage of the lower cost. Each local area runs things differently, and cannot be covered here. If you can't find your local region or host, contact Fido #1 at 415-864-1418, where you can find the latest node list and other files to help steer you in the right direction. The original design was built around the current Bulletin Board architecture (if there is such a thing) which is basically: an unknown number of completely independent, standalone systems, with extremely low overhead in both maintenance and cost. FidoNet was designed to be compatible with this, in that it should be: (1) No extra work for the sysop, (2) No effect on normal BBS operations, (3) No unexpected extra costs, (4) No effect upon system reliability. FidoNet is totally automatic, and requires no extra work, once set up. Other than the effect of allowing network-wide message traffic, the only other affect to the current BBS is that it is "down" to normal (human type) traffic during the mail periods. Costs, if any, are controlled by the sysop. Unless specifically enabled, mail will not be sent out from a node. (Sending mail costs; receiving mail is free) Fido provides accounting and cost limitation functions (all automatic) to prevent unauthorized mail from being sent. There can also be "free" traffic to non-toll call nodes. The usual privelege levels can be applied to each of the Mail commands, to control their use. FidoNet message traffic success/failure does not in any way affect BBS operation. (Unless of course of hardware or other unavoidable failure.) Failure to make a connection and transmit a packet, or errors during incoming packets, Fido's Complete Operating Manual Page FIDONET-4 FidoNet Description affect only the mail sent or received. In the case of transmission, the messages will not be sent, nor will charges (if any) be applied to the senders credit account. For a paying system, the sysop must occasionally set the users credit, using the SYSOP command. If reasonably large sums are used as a minimum ($10.00 or more) this will not need to be done more than once every few months. Fido's Complete Operating Manual Page FIDONET-5 Costs Each node maintains a node list, that contains the accessible remote systems. Systems not in the list cannot be mailed to. The sysop controls this file, updating or changing it with any text editor. It can only be read from within Fido; users cannot otherwise access it, and cannot see the actual phone numbers used to dial. If the bulletin board system is a public "free" one, then probably no toll call systems will be allowed for general use. All users credits default to zero, so that mail will not be allowed to non-free systems. Toll call systems can always be accessed by the sysop. Occasional local networks have a host that will accept toll call mail for free; contact the Fidos in your area to find out about this. There are also a number of ways to control access to the mail area; these are described in more detail in the other sections of this manulal. If a system in the node list is marked as free, then anyone may send messages to it. Fido controls all costs, and balances the accounts after messages are sent sucessfully. Each user record contains a credit and a debit. Messages entered are charged to debit, and cannot exceed the credit. Deleteing a message (that has not been sent yet) entered lowers the debit by the cost of the message; the actual cost of the message is stored within the message. Fido's Complete Operating Manual Page FIDONET-6 FidoNet Operation Fido and FidoNet are both contained in one program, run as specified by the scheduler. Fidonet is a time driven system, and the national time slot is at 1:00 AM Pacific Time. (4:00 AM Eastern Time) During normal Fido operation, users can enter FidoNet messages, and during the FidoNet time, these messages are made into packets and sent to the right destination. The messages may be destined to any one or more of the available remote nodes in the nodelist. At the predetermined time, Fidonet takes control. It then creates mail packets, one per node, containing the messages for each node. If there is no mail to a node, no packet is created, and no call is made to that system. After the outgoing packets are made, FidoNet alternately waits for calls and attempts to place calls. Mail packet transfers are done on a collision detection basis. After the first few collisions, the network synchronizes. If there are a number of nodes to send mail to, each one is called in turn, until all are sent, or mail time is over. If it fails with one node, it goes to the next, and repeats the failed one only after trying all of the others first. All of these steps have the appropriate error checks and limits. The list of nodes to call is the same order in which they appear in the node list. In between outgoing calls (if any) FidoNet delays a random interval, during which it waits for incoming calls. This interval, along with the redial algorithm, synchronizes the net after the initial collisions. If an incoming call is detected, it attempts connection with it. The baud rate is determined (same as a normal caller would in Fido) and a message to human callers is displayed (warning them that it is accepting only other FidoNodes) and a synchronization process is started. This process must complete within 60 seconds, or the call is terminated. Once synchronized, the packet transfer is made. The receiver just stores that packet for later use, and then disconnects. Note that at this time, Fidonet has no idea who originated the packet it just received. After an incoming call is received, FidoNet calls out immediately afterwards (assuming there are calls to be made) since there is a high probability that the line is now clear. This helps synchronize the network. To place an outgoing call, the sender dials the number, performs the sync process mentioned above, and transfers it's outgoing packet. (Messages to a given node are again checked against the node list at mail time; if they do not match, the packet is not sent, and an error is logged.) If the transfer was successful, the destination node number is deleted from the senders list of nodes to call. Fido's Complete Operating Manual Page FIDONET-7 FidoNet Operation The collision detect algorithm is optimized such that during the first few minutes of mail time, there are many collisions, after which the net synchronizes, and none or few collisions occur. Of course assumptions have been made on average traffic per node; for heavy (or low) traffic nodes, the collision detect algorithm can be modified by command line parameters, the scheduler, and the various routing control files. When mail time is over, FidoNet deletes all it's outgoing packets that were assembled, and for each one that was sent sucessfully, marks those messages (in the mail area) as SENT, so the originator can tell if they went out or not. Then, the incoming packets are unassembled, and the messages placed sequentially in the mail area. These packets are then deleted. A complete log of all call attempts, incoming calls, and messages sent and received are kept in the log file. If any mail at all was sent, the user credits are balanced. This is somewhat unsatisfactory, as it balances the accounts even if the mail was not sent. This is to prevent extremely long processing time necessary to account for each message and user. (Users lists run upwards of 600 entries typically; on a floppy based system this would become unworkable.) FidoNet then terminates, and if there were no fatal errors invokes Fido for another day. Messages received are then accessible like any other message. Fido's Complete Operating Manual Page FIDONET-8 Basic FidoNet Packeting (Figure A) Fido's Complete Operating Manual Page FIDONET-9 FidoNet Routing and Scheduling (Figure B) Fido's Complete Operating Manual Page FIDONET-10 FidoNet Packet Layout (Figure C) Fido's Complete Operating Manual Page FIDONET-11 FidoNet Glossary First, a small glossary of terms used in this manual to describe FidoNet and all it's permutations. Network: A group of two or more Fidos, with the same net number. A "network" witihn FidoNet implies that there is routing between the systems, and that one of the systems is a host. Region: A geographical area of a continent, arbitrarily chosen during the First FidoNet Conference in St. Louis. Regions are where Fido systems that do not belong to a network are put; it is used only for keeping track of systems. A region has a manager like a network does. From Fidos point of view, a region is just like a network except it does nto do automatic routing to the regin host. Node: One Fido, running FidoNet. It may be a host as well. Host: A node that handles mail for itself as well as other nodes. It may accept mail, and send it on to another node. The sysop of the host system is usually the manager for that area. Manager: The person who manages the node list for a region or network. Usually, the sysop of the zeroth node in the region or net. Zeroth Node The node that acts as host for a region or network has two node numbers; the normal node number (1 - 32767) and zero; zero indicates that it is the "hub" or central node for that region or network. For a newtwork, the zeroth node is where all mail for that network is routed to automaticall by Fido. Local Net: A group of nodes, presumably within a small geographical area, (ie. non-toll call or cheap calls) that consists one or more nodes and a host. Basically, a small, self contained Network. Local Node: Really the same as just "Node", but implies that it is a node that has a host serving it. Topology: Basically, if you were to draw a map showing all the nodes and their interconections. Some of the "shapes" made Fido's Complete Operating Manual Page FIDONET-12 FidoNet Glossary by the map are called "topologies" if they show some recognizable pattern, such as star, ring, etc. Traffic: The actual messages being sent. If you picture messages as things that travel along the phone connection, it makes more sense. Bombing Run The technique of sending the same message to all or many FidoNet nodes. Frequently used for advertising purposes in the past (highly frowned upon; a sure fire way to make enemies these days) and very useful for disseminating information rapidly throughout the net. Fido's Complete Operating Manual Page FIDONET-13 Fidonet topologies Fido works by having "time slots", or windows, in which it sends mail. The national window is one hour, at the same time across the country; 1:00AM Pacific Time, 4:00 AM Eastern Time. During this time, all Fidos send their mail to wherever it is supposed to go. When the time is over, Fido is run again, and callers can read the messages sent and received. Simple topology Fido's simplest layout is "amorphous", ie. a nice name for a randomly interconnected blob. All nodes have access to all other nodes; to send a message, a call is placed directly to the desired other Fido. To illustrate this topology, draw 50 dots on a piece of paper, representing each Fido, and from each, draw a line to every other Fido. (You will end up with a lot of lines) The disadvantages of this are mainly the fact that the window is very, very crowded; it is sometimes difficult to "get into" a busy system, as many others may be calling at the same time. The advantages are mainly simplicity. New Fidos can come into the net just by letting others know of it's existence. A "down" system does not affect any other system. It is very easy to set up a FidoNet, as all you have to do is get a node number and run FidoNet. This is how the original FidoNet was organized (until Sept 84 or so). It collapsed into utter confusion at about the 50 node point. Two Layer topology If you draw in all the Fidos on a map of the world, you will find that they tend to occur in geographical areas. St. Louis, Los Angeles, San Francisco, London, Boston, etc. There are occasional "stragglers" by themselves. To alleviate the crowding problem, the new arrangement is to break the current FidoNet system with all it's many nodes, into local geographic areas and make those into self-contained FidoNets, of the "amorphous" type. Mail traffic within the local area works as it always did; if there is mail to another local system, it is sent directly. Each area is given a net number, to distinguish it from the other nets and regions. There are two types of local organizations; nets and regions. Nets are where a number of systems are all within a non-toll call area, ie. within basic service. Regions are just geographical areas of the country, used to logically organize a group of systems. Except for the fact that Fido does automatic routing to nets, the two are the same. Fido's Complete Operating Manual Page FIDONET-14 Fidonet topologies To interconnect all of the local nets together, each local area designates one node as a "host". This node then has two node numbers; the regular one, plus 0. For local traffic, this has no effect; mail is just sent as necessary. The host is only used to access nodes outside the local area. This is completely automatic and transparent to users. In other words, net and node numbers work the same as ATT's area codes. Systems in a limited area all share the sam enet number (area code), and have unique node numbers. Systems in another network may have the same node number, but will have a different nuet number, just as the seven digits in your home phone number may be the same as someone elses on the other side of the continent. When a person on one net enters a message for a person on another net, at mail time Fido routes that message for effecient use of time. All messages for nodes within a given network are packaged into one packet, and sent to the zeroth node in that net, not directly to the desired net. Later, the zeroth node (the host) unpacks the messages, and passes them on to the desired destination. The advantages of this are mostly effeciency and low cost. Since all outgoing messages are bundled together, costs go down because more messages are sent in a single call (by way of the phone companies one minute minimum and cheaper rates for longer connections) and because messages from two nodes to another single node are sent at the same time. The traffic in each of the time slots is lessened, because of the smaller number of nodes using a particular window. The disadvantages are that if a host goes down, all local nodes do not send nor receive mail that cycle. However, the mail will be again attempted when the next time slot comes around. The "stragglers" mentioned above just connect to the net through the national window, and act like hosts and nodes by themselves, because Fido does not do this automatic routing for regions; only nets. This is the defacto standard organization designed at the First FidoNet Conference, and implemented on June 11th, 1985. Who knows what it will be by the time you read this. This method has both advantages and disadvantages, as you may have already guessed. Most nodes (even local ones) still run the national window; this means that if you want, you can send mail directly. This is still necessary, because File Attach (logically attaching MSDOS disk files to messages) subverts the automatic routing, and send them Fido's Complete Operating Manual Page FIDONET-15 Fidonet topologies directly. Regardless of the configuration, any node may access any other node during the national time window. Fido's Complete Operating Manual Page FIDONET-16 Addressing FidoNet Nodes As mentioned before, Fidonet uses net numbers and node numbers. How this is done is described in detail here. To send a message to another system in FidoNet, you need to know the other systems net/node number. There are a number of ways to determine this. For a telephone system type analogy, net numbers can be thought of as the Area Code, and the node number as the Phone Number. To place a call (or send a message) within your own area code (net) you do not need to specify the net number; the node number will do. For an out of state (to another net) message, you pick the net first. Unlike the phone company, you can either enter the net and node numbers directly, or let Fido give you a list from which you can pick one or more. Fido will let you enter more that one at a time as well, so that the message you enter can be sent to a number of places at the same time! When entering a FidoNet message, you see the prompt: Currently NET #125 ?=Help, #=List NODES /=List NETS This says that you are in Net #125. Entering / gives you a list of networks and regions; this is like getting a list of phonebooks. If you pick another Net, then the prompt will tell you the one you have selected. Entering # lists the nets within the net; this is like reading the phone book, only a lot smaller. You then enter the node number. There is also a shorthand for all these steps, and the syntax will be a familiar one by the end of the manual: NET/NODE For instance, you could go through the lists and enter 125 for the net, and 1 for the node, you just enter "125/1" at the first prompt. This is obviously handy when you send mail to the same node frequently. At any time Fido expects a node number, you can enter this shorthand format. This includes the routing control files. Fido's Complete Operating Manual Page FIDONET-17 Routing: Message Forwarding Routing is accomplished by the router and the scheduler. The scheduler controls when to run FidoNet (ie. when to send and receive mail) and the router controls where to send the mail. Fido does most routing automatically, but you can also completely control routing with route control files. As an example, here is a very simple system, consisting of four nodes, two of which are acting as hosts. (Net #1) (Net #2) Node 1 ------------------- Node 3 | | | | Node 2 Node 4 The interconnecting lines are phone calls. (While it is still true that any node can call any other, that does not use the routing.) Assume that Node 1 to Node 2 is a local call (ie. no charge) and 3 and 4 also. Node 1 to Node 3 is a toll call. Someone at node 2 wants to send a message to someone on Node 4. The message is entered normally; Node 4 is chosen for the message. (Entering mail is covered elsewhere) This is identical to previous FidoNet mail. When Fidonet is run (because the scheduler says so) FidoNet determines what mail to send, and to where. It creates packets of mail, places phone calls, and sends them out. Without the router, Node 2 would call Node 4 directly, and send the mail. The router however, tells it to send it to Node 1 instead. Once it is sent, that is the last that is heard of it as far as Node 2 is concerned. When Node 1 runs FidoNet, it also makes the packets as do all other Fidos. However, it's router tells it to send all mail destined for Node 4 to Node 3 instead. (Since in this case Node 3 is a different net, and Fido need not be told to do it; it's done automatically but you could tell it to manually.) Similarly Node 3 sends mail to Node 4. Since the message has reached it's destination, it is forwarded no longer, and stops. Node 4 has received mail from Node 2. Even though this discussion is about mail in only one direction, it can actually be going in both (or any, or all) directions simultaneously, and in practice does. Mail that is "in transit" disappears when the message has finally be forwarded. Fido's Complete Operating Manual Page FIDONET-18 Route Files Previous Fidos had only one route file, called ROUTE.BBS, and all it did was control routing. Route files now control many different parameters for packet and mail operation. Instead of just one file, there can be one per schedule. The Schedule Tag also reflects the name of the route file used: Schedule A ROUTE.A Schedule B ROUTE.B ... ... Schedule W ROUTE.W If the specified route file cannot be found, then it looks for ROUTE.BBS; if that isn't found, one is not used. IMPORTANT NOTE: Schedule A is a very special schedule. Fido normally will not send any mail unless you very specifically tell it to do so; for this reason, Schedule A was made to simplify life for sysops not part of a local net. Schedule A should be used only if your only schedule is the single, national FidoNet event. If you run any kind of routing or network, please do not use A. Schedule A basically basically executes the following routing statement without the need for a route file: SEND-TO ALL If you need to do fancy routing from Fido to Fido, you will need to set up schedules for each leg of the journey, as covered above. It is recommended that you make each schedule a seperate tag, so that you can have a route file to control each. The best way (well, the only way, since this is how I'm going to cover it all) to get an idea of the capabilities of the route language is to read about each statement. Fido's Complete Operating Manual Page FIDONET-19 Route File Contents and Syntax The route file contains an ASCII text "language", that is more or less format free. There are a number of keywords, that take a variable number of arguments. The commands are: ROUTE-TO SEND-TO ACCEPT-FROM NET SEND-ONLY RECV-ONLY EXTERNAL-MAIL PICKUP POLL NO-ROUTE HOLD The command modifiers and metanumbers are: ALL OURNET HOSTS NOT Arguments to commands are always numbers or metanumbers; the numbers specify node and net numbers. "Metanumbers" represent useful groups of node and net numbers. Route file contents are completely free form; keywords can appear anywhere, in any order. Leading and trailing spaces, commas or tabs are ignored, though you need at least one between each keyword and number. You can use the same keyword more than once. The following two blocks of code accomplish the same thing: SEND-TO 99 SEND-TO 1,77 SEND-TO 99,1,77 Fido will let you put in contradictory commands; the last one encountered will have effect. The two lines below are treated as if the first one does not exist. ROUTE-TO 99,1 ROUTE-TO 1000,1 Comments Comments are considered to be anything starting with Fido's Complete Operating Manual Page FIDONET-20 Route File Contents and Syntax a semicolon and continuing to the end of the line. Comments can be put anywhere in the route file. Node Numbers Most route file commands require numerical arguments, usually a list of nodes. There are a few ways you can specify this; use which ever looks nicer or is shorter. 99 a plain number A number by itself means a node number within your current network or region. For example, if your net is #125, 99 means node 99 in net 125. 125/99 net/node This very explicitly means net 125 node 99; if your net were not 125, then you need to specify the net and this is one way to do it. Another way is to change the "default" net; see the NET command description. For all route file commands, you can enter any number of node or net/node numbers, either on the same line or continuing onto the next. For example, the following are all OK: SEND-TO 99 SEND-TO 129/99 SEND-TO 1,33,76,55 5,33,77/456, 5/23,5/24 SEND-TO 1 99 Metanumbers While you can, and frequently need to, specify long lists of numbers, you usually do this in ordered sets, such as member of your own net, all nodes, or all nodes except your own net, and so on. Fido supports some special "metanumbers" to accomodate this. ALL Means "every node in the node list" OURNET Means "every node in out network or region". HOSTS Means "all network and region hosts". (All node number 0's, the zeroth node for each net and region.) Fido's Complete Operating Manual Page FIDONET-21 Route File Contents and Syntax To extend the above example, you could use: SEND-TO ALL SEND-TO OURNET SEND-TO HOSTS NOT "Undo" the command for the list of nodes to follow. The following example should explain it's main side effect: SEND-TO ALL NOT OURNET If your net is 125, then this means SEND-TO all nodes except those that are in net 125. It is not exactly the same as the word "except"; Fido does not use the word a way a person does. This is a very subtle difference, and exactly how people can get burned by computers. Extremely literally, the above statement means: "Mark ALL nodes as SEND-TO, then remove the marks from nodes in OURNET". Using NOT with the SEND-TO command "undoes" the effect of the SEND-TO command; it is like saying: SEND-TO ALL (UN-SEND-TO OURNET) There is no UN-SEND-TO command of course. Fido scans the line from left to right, first marking all nodes as SEND-TO, then it goes back and removes the marks in OURNET nodes. The only time this will matter is if you had done something like: SEND-TO 99 SEND-TO ALL NOT OURNET The first line says to send to 99, in our net. The second line does what you think it does, EXCEPT that NOT OURNET means "undo" all of OURNET, including the 99 from the previous command. I may be overemphasizing the importance of this, but better warned than not. Fido's Complete Operating Manual Page FIDONET-22 ROUTE-TO ROUTE-TO is the most basic and powerful routing command. It modifies the destination of the basic message unit. It has the syntax: ROUTE-TO Which means in English "Route to dest-node, messages for node, node, node ...". Please keep in mind that internally, Fido will route all mail for nodes inanother net, to the host (node 0) of that net. This could be done via a ROUTE-TO statement (and in previous versions was) but is so universally necessary that it was made implicit. You can use ROUTE-TO to override Fido's default host routing. The list of nodes can be replaced with either ALL or OURNET; for an outgoing host, you could specify ROUTE-TO ALL, which means send to the host node all outgoing mail. ; ;Send all of our outgoing mail to fido 99. Fido 99 ;makes all long distance phone calls. ; ROUTE-TO 99 ALL ; ;Route mail for nodes 100/51 and 100/22 to 125/99 instead. ; ROUTE-TO 125/99 100/51,100/22 HINT: There are certain things that can override any routing that may be in effect. The following things cause a message to go directly to it's final destination rather than to the host or ROUTE-TO node. File attach NO-ROUTE POLL Fido's Complete Operating Manual Page FIDONET-23 SEND-TO SEND-TO tells FidoNet that during this schedule, whatever it is, that it is OK to send mail to the list of nodes that follow. If none are specified, Fido will not send any outgoing mail. The exception to this is Schedule A, which implicitly allows mail to all nodes; this is done for convenience, and historic backwards compatibility. In a multiple schedule system, you may set aside a schedule to send mail to and from your local nodes, say 1/2 hour before or after than national time. Since you only want to deal with your local nodes, the statement: SEND-TO OUTNET Tells Fido to send mail to only the local systems, as defined in the node list. You could of course specify any legal node number, including ALL. If you do not specify a SEND-TO command, then Fido will not send any mail! Most Fidos run the national mail schedule using: ; ;Normal national schedule route file. ; SEND-TO ALL ; ;We use ROBOT.EXE to generate messages to all the ;hosts in FidoNet (net/0 and region/0) and now we want ;to send to them. ; SEND-TO HOSTS Fido's Complete Operating Manual Page FIDONET-24 ACCEPT-FROM ACCEPT-FROM is another basic command, and is used for cost control and security purposes. It controls whose mail your Fido will forward onward. Normally, your Fido system will send only mail that originated on your system; this is to prevent another system from accidentally forwarding it's long distance mail to you for further mailing. There are many cases where you do want to forward others' mail. If you are a host for a number of local systems, you need to accept mail from anyone, for forwarding to your locals only. The statements: ; ;We are an incoming host, and receive all mail for the ;other nodes in our net. We need to pass this on to them, ;and only them! ; SEND-TO OURNET ;our net only ACCEPT-FROM ALL ;but from anyone During a local schedule tells Fido to send mail to only the local systems, and to accept it from anyone. If you were an outgoing host for your locals (you take their outgong mail and send it around the world) you could do that by: ; ;Accept mail from only our local nodes, for mailing anywhere ;in the world. ; ACCEPT-FROM OURNET ;from our own net only SEND-TO ALL ;but send to anywhere NOTE: ACCEPT-FROM does not mean that Fido will reject messages from any other Fido; it means that your Fido will not accept them for FURTHER MAILING. Fido's Complete Operating Manual Page FIDONET-25 NET For all routing commands, Fido assumes, unless told otherwise, that the network is your Fido's network. That is, if you specify a node number without a net number, as in: ROUTE-TO 99,1,2,3,5,77,88,101 ... Fido assumes all of those nodes are in your net. The NET command changes the default network for further routing commands. For example, if you were part of net 125, and ou wanted to specify a number of nodes in another net, the following two are equivalent: ROUTE-TO 99,101/1,101/2,101/3,101/4 ... NET 101 ROUTE-TO 125/99,1,2,3,4 ... Remember that Fido will remember the last set NET; use NET 125 to change it back if necessary. Fido's Complete Operating Manual Page FIDONET-26 SEND-ONLY and RECV-ONLY You may be able to guess at the purpose of these two. They do not control how Fido routes, but how it dials. SEND-ONLY tells Fido not to pause waiting for incoming calls, but to dial as quickly as possible. This is a very special purpose command, only for outgoing-only systems used as outgoing hosts. For example, in the SF Bay Net, there is an unlisted Fido that does outgoing mail only; since it is unlisted, there are no other Fidos trying to call it. RECV-ONLY does just the opposite. Fido makes all of it's outgoing packets normally, but never makes any outgoing calls. this command is useful for incoming hosts that want to stay maximally available, or for systems the rely on other systems using PICKUP or POLL to retrieve their mail. ; ;We never send mail during this schedule, only receive ;it. Fido 99 sends it. So sit and receive only. ; RECV-ONLY ; ;Fido 1 passes all it's outgoing mail to us, Fido 99. ;Since its an unlisted number, no ne ever calls us; do ;nothing but make outgoing phone calls. ; SEND-ONLY Fido's Complete Operating Manual Page FIDONET-27 EXTERNAL-MAIL This is another very special purpose command. It is meant for use as a gateway from Fido to different networking system. All it does it cause Fido to not delete it's packet files and file list files when a schedule ends. Normally, after Fido finishes a schedule, it deletes any unsent packets and lists. Using EXTERNAL-MAIL, you can coerce Fido into creating it's packets and file lists in a coherent fashion, and leave them for you to handle. The way to do this is to make a route file that contains any routing you need, and the EXTERNAL-MAIL command, and make the schedule only ONE MINUTE LONG. (If it is longer, Fido will still attempt to make outgoing calls!) When EXTERNAL-MAIL is specified, Fido will treat all the packetized messages AS IF THEY WERE SENT; messages are marked (SENT) or deleted, as appropriate. It is assumed that you will deal with the packet files yourself. There is a fixed naming format to these files. For each node that there is mail for, there are two files: nnnnmmmm.OUT Message Packet nnnnmmmm.FLO File List The .OUT file is a FidoNet Packet, as defined in FIDOMAIL.DOC, and contains all the outgoing messages. The .FLO file is a list containing all of the pathnames of any files that were attached by messages in the a variable length null terminated string. The net/node number is the filename portion. Both net and node numbers are expressed as zero filed hexadecimal numbers: nnnnmmmm = net/node 007D0001 = 125/1 Fido's Complete Operating Manual Page FIDONET-28 PICKUP PICKUP is a command that lets one system "pick up" it's own mail when it calls another system. For example, if two seperate systems have mail for each other, normally Fido requires that each system make an outgoing call to send it's packet to the other. (This is done in the interest of accountability; it totall yeliminates arguments ...) If PICKUP is specified, in the above example who ever called first would transfer it's packet as it normally would, then additionally ask the system it just called for if there is any mail to "pick up" while it's connected. If there is, the calling system receives the packet that normally would have been delivered by the other system making an outgoing call. Instead of relying on chance determining who calls out first, the RECV-ONLY command can be used on one system. The syntax for PICKUP is: PICKUP n1, n2, n3, n4, n5, ... The calling system requests to pick up mail only if commanded to do so; the receiving system will allways let a calling system pickup it's own mail. Note that routing will affect this command in a very important way. If you desire to PICKUP mail for say, 100/99, your FIdo has to actually call that system, not the host (100/) that it will normally. It is your responsibility to ensure that routing is setup properly. Please refer also to the POLL command, which has a similar function. If you want to send mail normally, but leave one nodes mailfor it to pickup, refer to the HOLD command. ; ;I have a WATS line, so why not pick up mail when I ;make outgoing phone calls. (I wish) ; PICKUP ALL Fido's Complete Operating Manual Page FIDONET-29 POLL POLL is used to force a node to make outgoing calls to the specified nodes even if there i sno mail to send. The purpose of this is to support polling systems that may have mail for pickup. POLL is similar to PICKUP, in that it tells FidoNet to request pickup mail from the specified system; POLL additionally causes FidoNet to place a call and transfer an empty packet even if there are no messages to send. POLL overrides any routing in effect for the listed nodes. The syntax for POLL is the same as PICKUP: POLL n1, n2, n3, n4, ... Call each of the specified nodes even if there is no mail for them, and request any pickup mail. One use of this might be where you have a centrally located system acting as host, and a numebr of locals. To make billing easier, you can arrange it so that the locals never make phone calls; the host calls them in turn and picks up it's own mail. ; ;Host: call all of our nodes and pick up the mail. ; POLL OURNET ; ;Local: make packets, but do not send them; let the host ;call and get it. ; ROUTE-TO 99 ALL RECV-ONLY Refer to the HOLD command for more ways to hold mail for another system to pick up. Fido's Complete Operating Manual Page FIDONET-30 NO-ROUTE This command causes Fido to ignore any routing specified for the list of nodes specified. This command is necessary in many cases to make PICKUP work as desired. The syntax for NO-ROUTE is: NO-ROUTE n1, n2, n3 ... If you have mail for a number of nodes waiting to do PICKUP, make sure you specify them all as NO-ROUTE. The reason is that if the nodes are in another net, then Fido will address the packet to the host, not the nodes themselves; when a node calls in, it will find no mail, because it is addressed to their host! NO-ROUTE tells Fido to not do routing for the specified nodes. ; ;Fido's 100/22 and 100/51 call in for their mail; make ;sure that Fido doesnt address it to 100/0, their host. ; NO-ROUTE 100/22, 100/51 Fido's Complete Operating Manual Page FIDONET-31 HOLD The HOLD command causes Fido to not make outgoing phone calls for the nodes listed. It's main use is so that another system may call in using PICKUP or POLL and retrieve their own mail, by preventing Fido from calling that system to deliver mail. An example might be where you want to deliver most mail normally (let Fido packet it and make phone calls) except for one system; for that system, you want Fido to wait for the other node to come and pick it up. The syntax for the HOLD command is: HOLD n, n2, n3, n4 ... For instance, you could have your system send it's mail out as would any other Fido, except make one system call it to get it's mail. ; ;Normal outgoinging mail, but make 100/111 call in ;and pick up its mail. ; SEND-TO ALL ;OK to send to all, NO-ROUTE 100/111 ;no routing for this one, HOLD 100/111 ;hold it Fido's Complete Operating Manual Page FIDONET-32 Routing Examples I feel the best way to describe routing commands is by example. The example here is for a network, it's incoming host and local nodes. The host receives mail from the rest of the network and passes it on to the locals. There are two schedules for the host: Schedule B 1:00 - 1:50 Schedule C 1:50 - 2:00 Note that this schedule accomplishes all local system routing within the national time slot. It does not need any further schedules, but does assume that the host to local traffic is fairly small. The locals just run one schedule, during the normal national mail time. The schedule tag is arbitrary; it can be anything A to W. A is handy in this case because it does not need a route list. ; ;Schedule B route file for the host; just do ;normal FidoNet mail, as most of the systems in the ;world. Since there is no ACCEPT-FROM, it will only ;send mail actually entered on this system. ; SEND-TO ALL ;we can send to anyone ; ;Schedule C route file for the host; the locals are still ;running schedule A, and are waiting for mail, and maybe ;sending some of their own. This passes any mail received ;during schedule B to the locals. ; SEND-TO OURNET ACCEPT-FROM ALL Fido processes the route files sequentially; you can take advantage of this to make it easier to create custom routing. For example, if you wish tou route all mail to a certain system except for one or two, it is not necessary to list them individually merely to exclude the one or two. You can do it by: ROUTE-TO 99 ALL ROUTE-TO 500 500 With the esception of POLL and NO-ROUTE, commands can overwrite the effect of any previous command. The above effect could be had by: ROUTE-TO 99 ALL NO-ROUTE 500 Fido's Complete Operating Manual Page FIDONET-33 Using the Scheduler The scheduler is the way that Fido controls when, as opposed to how, FidoNet (and other things) are run. The details of operating the scheduler commands is described in the Sysop Only Commands section. This section tells how to use the events. The scheduler contains a list of "events", each of which consists of a day and time and other information on what to do at that time. While Fido is waiting for a caller, it is also watching the scheduler. When Fido accepts a caller, it watches the time until the next scheduled event; if it is less than that callers time limit, it sets their limit to be the time until the event, and warns the user that they have less time than normal. Fido will enforce this limit to ensure that the caller logs off so that the event can be run. The scheduler keeps information on what is to be done to execute the event. The schedule Tag is what determines what kind of event it might be. Tags A to W are reserved as FidoNet schedules; when an event tag A to W is found, FidoNet is run. This tag controls which nodes in the list mail is sent to; this allows sending mail to certain other systems during certain times, by setting a schedule with each desired tag. This example covers making Fido run FidoNet in the national time slot. The time of day depends on your location, that is your time zone. The example below assumes Pacific Time; adjust accordingly. Pacific Time Central Time Eastern Time 01:00 AM 03:00 AM 04:00 AM 60 minutes 60 minutes 60 minutes Do two things: Set Fido to run FidoNet every day at 1:00AM for one hour (normal FidoNet operation) and allow the Yell command to be used only between the hours of 9:00AM and 5:00PM. (Enter command '6') Event # [0 - 34]: 0 (over write the default one) Day of week [All, 0=Sun ...]: A (every day) Start Time [hh:mm]: 9 (9AM) Window Width: 480 (8 hrs) Schedule Tag: [A - W, X, Y]: Y (Yell command) (Yell command now enabled from 9:00 AM to 5:00 PM) (Enter command '6') Event # [0 - 34]: 1 (New event) Fido's Complete Operating Manual Page FIDONET-34 Using the Scheduler Day of Week [All, ...] A (every day) Start time [hh:mm]: 1:00 (at 1 AM) Window Width: 60 (1 hour) Schedule Tag [A - W, X, Y]: A (Normal FidoNet) That is it. It was not necessary to choose events 0 and 1; any two could have been used. Using 0, however, replaced the default yell command enable (10:00 AM til 10:00 PM) with the desired one. To add other events, just choose another event number and enter them as above. There is room for up to 35 events. External Events The scheduler can be used to cause Fido to terminate to DOS (to the RUNBBS.BAT batch file, actually) with an ERRORLEVEL value that can be used to run programs at certain times of the day. This isnt a general purpose way to run programs like data based programs, etc. It is meant for use with programs that can run unattended, such as Fido's RENUM.EXE utility program. You set a schedule normally, except select X for the tag. When you do this, it asks an additional question: ERRORLEVEL [4 - 255]: This is the ERRORLEVEL passed back to DOS. This value can be tested for in the batch file by: IF ERRORLEVEL (xx) GOTO LABEL Where (xx) is the errorlevel you specify, and LABEL is a label in the batch file. You need to understand how MSDOS batch files work; it is too complex a subject to cover here. One reminder though: the IF ERRORLEVEL (xx) GOTO LABEL does not mean "if errorlevel EQUALS (xx) goto label", it means "if errorlevel IS EQUAL TO OR GREATER THAN (xx) goto label". This means that you must put the tests in decreasing order: FIDO_XXX switches ... if errorlevel 10 goto x1 if errorlevel 4 goto x2 if errorlevel 1 goto end Fido's Complete Operating Manual Page FIDONET-35 The Node List The format of the node list has been expanded in version 11 of Fido, over previous versions. The node list is the list of remote systems, the phone numbers, etc. When you apply for a permanent node number, you will receive the latest node list. Node lists will be broadcast to all FidoNodes as it is updated. Most of this information is academic; the node list is too large, and too complicated, to manage manually. The LISTGEN program, by John Warren (see seperate documentation) was written specifically to handle the processing needed to customize the node for your specific area code, modem, dial requirements, etc. As of August 1985, the nodelist is published weekly by Fido 100/51. Please refer to the current lists, or contact a local Fido system to obtain the latest node list. The nodelist distribution process may change without notice. The node list, called NODELIST.BBS, describes each remote system, one per line. You do not need to create one; new ones are distributed on a regular basis, and they are easy to find if you lose one. Note that each component of the nodelist cannot contain spaces or commans; spaces and commas are used to seperate fields. Therefore, use the underscore character to seperate words in a given field. For example, to put in a name of "Fido's Board" do it as "Fido's_Board". See the node below about special text processing done on the node list lines. The basic format for a node list entry is as follows: (KEY) 1 0 1200 Board_Name (415)-864-1418 SF_CA 24_hrs_etc ^ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | | +------ Cmt | | | | | | +------------ City | | | | | +--------------------------- Phone | | | | +-------------------------------------- Name | | | +------------------------------------------- Baud | | +--------------------------------------------- Cost | +----------------------------------------------- Node +--------------------------------------------------- *text Each of these items are seperated by one or more spaces or tabs. Do NOT have spaces, commas or tabs in the middle of any of these. Fido's Complete Operating Manual Page FIDONET-36 The Node List Key This word, if present, tells Fido what kind of line this is. Currently, there are three possibilities: (blank) If no word is present, then this line defines a normal Fido node. The number field is the systems node number. NODELIST This doesn't define a node, but is used to identify the nodelist itself. Fido will display the LIST entry when listing the nodelist when entering messages. In this case, the node number field is the same as the extention of the filename itself; the day of the year in which the file was created. (000 for 1 Jan, etc) This number cannot be zero. All other fields in the node list entry can have any contents. HOST This line defines a Network Host. The number is this networks Net Number. All nodes that follow this line are considered part of this Net until another HOST line is encountered. REGION Same as HOST, but has different meanings to Fido; refer to earlier chapters. COUNTRY This word is reserved; COUNTRY entries are otherwise treated as HOST for all FidoNet purposes. Number This is that systems net or node number, depending on the key field. It cannot be zero. Cost This is the cost, in cents per message, that you want to charge a user for sending mail to this node. If the cost is 0, it is assumed to be a local call. If 0, then anyone may send messages to this node. Otherwise (if not zero) the user must have enough credit in their user record, or Fido will not allow them to enter mail. (Set by the SYSOP.EXE Utility program.) Baud Rate This is the speed to dial this system with when it is time to send them mail. It is any number that is a multiple of 300; i.e. 300, 600, 1200 ... 9600. Fido will attemt to Fido's Complete Operating Manual Page FIDONET-37 The Node List dial at this baud rate even if your modem cannot handle it. Name This is just the descriptive name (mnemonic) for this system. Luckily, most systems have some cutesy name, like Fido's Board, Demon, etc. It must be one word. (Use underlines.) It must also be less than 25 characters long total. Please see the note below about special text processing for this entry. Phone This is the phone number for the system. It is basically a standard D.C. Hayes SmartModem phone number, with one exception. If you use Sprint, etc, you must put it in each number. Do not leave spaces in the number. The legal characters in a phone number are: 1,2,3,4,5,6,7,8,9,0 # * - ignored ( ) ignored . 1 second delay ? Wait for tone @ Wait for quiet _ See note below If a function is not supported by your modem, the command is ignored or converted into the closest command, usually a delay. Note that comma is not the delay character; it is used to seperate items in lists. A dot is translated to a comma when dialing. T Touch Tone P Pulse May be inserted at any point in the number as needed. Fidonet dials in Touch Tone by default, if P is not specified. The maximum length of the phone number is 39 characters. City This is another single word field, usually the city and state. Line the name field, underscores are converted by Fido into spaces. See the note below on how text is proccessed for this entry. Comment The rest of the nodelist entry is considered to be part of the comment field. For future compatibility, all comments should be done as other fields. Fido's Complete Operating Manual Page FIDONET-38 The Node List NOTE: Underscore characters found in nodelist lines are converted to spaces after processing. This allows a neater looking nodelist. Underscores can be used in the Name, City, Phone or Comment fields. Fido's Complete Operating Manual Page FIDONET-39 Installation of FidoNet Assuming you already have Fido running, setting up FidoNet is simple. If you dont have Fido running, then skip this part until you do. The basic steps to do are: (1) Set the basic mail parameters shared by Fido and FidoNet. (2) Set up the MAIL message and file area. (3) Make up a working node list (list of other systems.) (4) Set the scheduler to run FidoNet. (5) If you have a host system, make a route list. (6) Obtain a node number. That is all there is to it. Each step is described below. Also, I can't emphasize how important it is to ... HAVE THE TIME AND DATE SET ACCURATELY!!!!!!!! Fidonet depends heavily on the correct time and date. Within 5 minutes or less is fine, its not that critical, but since this is a time driven system, it is very important. Assuming you already have Fido running completely, pick or create a message area for FidoNet messages. This can be an existing message area, or a totally new one. Install it as you would a regular Fido message area, then: 1 Select your mail area, 1 1\A Set MAIL attribute 1 S Save the changes This informs Fido that entering messages in this area should prompt for net/node numbers, change prompts, and other small internal differences. The "4" command is used to set the net and node numbers, the message path and the file path used for attached files. The message path is the duplicate of what you entered for the FidoNet Message Area; the file path is where Fido will place any files coming in over the FidoNet. Please do not leave it blank! If this path is blank, Fido will put files in the default Fido area, and could overwrite files such as the user list, bulletins, etc. It's a good idea to make the file path the same as your upload path, or possibly an area of it's own. It does not have to be a Fido File Area at all; just an MSDOS directory or disk. Fido's Complete Operating Manual Page FIDONET-40 Installation of FidoNet 4 ? help! 4 lists current settings 4 msgpath\P Set Message Path 4 filepath\F Set File Path If you have a net and node number, set it now: 4 nn\T Set Net Number 4 nn\N Set Node Number If you are a host, or belong to another network, set your alternate net and node to that, otherwise make it the same as your main net and node numbers: 4 nn\H Set Alternate Node Number 4 nn\A Set Alternate Net Number The last item is to set the time to run FidoNet with the Scheduler. The national FidoNet Schedule is based upon 1:00 AM Pacific Time, either Standard or Daylight Savings. You will have to adjust this of course for your local time zone. Follow the Using the Scheduler section, and set the time. Fido's Complete Operating Manual Page FIDONET-41 FidoNet Section Index ACCEPT-FROM............................. 19 ALL..................................... 19,20 Architecture............................ 3 Batch files............................. 34 Baud Rate............................... 36 Bombing Run............................. 12 Collision detect algorithm.............. 7 Collision detection..................... 3,6 Collisions.............................. 6 Cost.................................... 5,36 COUNTRY................................. 36 Credit.................................. 5 Debit................................... 5 ERRORLEVEL.............................. 34 Errors.................................. 7 Events.................................. 33 External Events......................... 34 EXTERNAL-MAIL........................... 19 FidoNet................................. 39 FidoNodes............................... 35 File attach............................. 22 Geographic area......................... 13 Geographical areas...................... 3 HINT:................................... 22 HOLD.................................... 31,29,28,19 HOST.................................... 36,11,19,23,20 Local call.............................. 36 Local Net............................... 11,3 Local Node.............................. 11 Mail parameters......................... 39 Mail time............................... 7 Maintenance............................. 3 Manager:................................ 11 Message traffic......................... 3 National time slot...................... 33 Net number.............................. 13,16 NET/NODE................................ 16 Nets.................................... 13,20 Network:................................ 11,19 NO-ROUTE................................ 19,22 Node list............................... 35,6,5 Node Numbers............................ 20,16 Node:................................... 11 NODELIST.BBS............................ 35,36 NOT..................................... 21,19 Fido's Complete Operating Manual Page FIDONET-42 FidoNet Section Index OURNET.................................. 19,20 Overhead................................ 3 Packets................................. 6,7 Phone number............................ 37,37 PICKUP.................................. 26,19,28,31,30 Point to point messages................. 3 POLL.................................... 19,31,26,22,28 RECV-ONLY............................... 28,19 Redial algorithm........................ 6 REGION.................................. 36,11,13 Remote systems.......................... 5 RENUM.EXE............................... 34 ROUTE-TO................................ 19 ROUTE.BBS............................... 18 Router.................................. 17 RUNBBS.BAT.............................. 34 Scheduler............................... 33,17 SEND-ONLY............................... 19 SEND-TO................................. 19 Synchronization......................... 6 SYSOP.EXE............................... 36 Tags A to W............................. 33 Terminate to DOS........................ 34 Time and date........................... 39 Time of day............................. 33 Time zone............................... 33 Toll call............................... 5 Topology:............................... 11 Traffic:................................ 12 Two Layer topology...................... 13 User credits............................ 7 Users credit............................ 4 Yell command............................ 34 Zeroth Node............................. 11 Zeroth Node............................. 11