FTS-0004 EchoMail Specification This document is directly derived from the documentation of ------------------------------------------------------------------------------- The Conference Mail System By Bob Hartman Sysop of FidoNet(tm) node 132/101 (C) Copyright 1986,87, Spark Software, Inc. 427-3 Amherst Street CS 2032, Suite 232 Nashua, N.H. 03061 ALL RIGHTS RESERVED. ------------------------------------------------------------------------------- version 3.31 of 12 December, 1987. With Bob Hartman's kind consent, copying for the purpose of technological research and advancement is allowed. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- WHAT IS THE CONFERENCE MAIL SYSTEM? Conference Mail is a technique to permit several nodes on a network to share a message base, similar in concept to the conferences available on many of the computer services, but it is most closely related to the Usenet system consisting of more than 8,000 systems world wide. All systems sharing a given conference see any messages entered into the conference by any of the participating systems. This can be implemented in such a way as to be totally transparent to the users of a particular node. In fact, they may not even be aware of the network being used to move their messages about from node to node! Unfortunately, this has its disadvantages also - most users who are not educated about Conference Mail do not realize the messages transmitted cost MANY sysops (system operators) money, not just the local sysop. This is an important consideration in Conference Mail and should not be taken lightly. In a conference with 100 systems as participants the cost per message can get quite high. The Conference Mail System is designed to operate in conjunction with a FidoNet compatible mail server. The currently supported mail servers are Fido(tm), SEAdog(tm), Opus, and Dutchie. Since the mail server is a prerequisite to using the Conference Mail System, it will be assumed you already have your mail server operating correctly on your system, and you are connected into FidoNet or a compatible network. HISTORY OF THE CONFERENCE MAIL SYSTEM In late 1985, Jeff Rush, a Fido sysop in Dallas, wanted a convenient means of sharing ideas with the other Dallas sysops. He created a system of programs he called Echomail, and the Dallas sysops' Conference was born. Within a short time sysops in other areas began hearing of this marvelous new gadget and Echomail took on a life of its own. Today, a scant year and a half later, the FidoNet public network boasts a myriad of conferences varying in size from the dozen-or- so participants in the FidoNet Technical Standards Committee Conference to the Sysops' Conference with several hundred participants. It is not uncommon for a node to carry 30 or more conferences and share those conferences with 10 or more nodes. HOW IT WORKS The Conference Mail System is functionally compatible with the original Echomail utilities. In general, the process is: 1. A message is entered into a designated area on a FidoNet compatible system. 2. This message is "Exported" along with some control information to each system "linked" to the conference through the originating system. 3. Each of the receiving systems "Import" the message into the proper Conference Mail area. 4. The receiving systems then "Export" these messages, along with additional control information, to each of their conference links. 5. Return to step 3. As you can see, the method is quite simple - in general. Of course, following the steps literally would mean messages would never stop being Exported and transmitted to other systems. This obviously would not be desired or the network would quickly become overburdened. The information contained in the 'control information' section is used to prevent transmitting the same message more than once to a single system. CONFERENCE MAIL MESSAGE CONTROL INFORMATION There are five pieces of control information associated with a Conference Mail message. Some are optional, some are not. Normally this information is never entered by the person creating the message. The following control fields determine how Conference Mail is handled: 1. Area line This is the first line of a conference mail message. Its actual appearance is: AREA:CONFERENCE Where CONFERENCE is the name of the conference. This line is added when a conference is being "Exported" to another system. It is based upon information found in the AREAS.BBS (configuration) File for the designated message area. This field is REQUIRED by the receiving system to "Import" a message into the correct Conference Mail area. 2. Tear Line This line is near the end of a message and consists of three dashes (---) followed by an optional program specifier. This is used to show the first program used to add Echomail compatible control information to the message. The tear line generated by Conference Mail looks like: --- This field is optional for most Echomail compatible processors, and is added by the Conference Mail System to ensure complete compatibility. Some systems will place this line in the message when it is first created, but it is normally added when the message is first "exported." 3. Origin line This line appears near the bottom of a message and gives a small amount of information about the system where it originated. It looks like: * Origin: The Conference Mail BBS (1:132/101) The " * Origin: " part of the line is a constant field. This is followed by the name of the system as taken from the AREAS.BBS file or a file named ORIGIN located in the DOS directory of the designated message area. The complete network address (1:132/101 in this case) is added by the program inserting the line. This field is generated at the same time as the tear line, and therefore may either be generated at the time of creation or during the first "export" processing. Although the Origin line is not required by all Echomail processors, it is added by the Conference Mail System to ensure complete compatibility. 4. Seen-by Lines There can be many seen-by lines at the end of Conference Mail messages, and they are the real "meat" of the control information. They are used to determine the systems to receive the exported messages. The format of the line is: SEEN-BY: 132/101 113 136/601 1014/1 The net/node numbers correspond to the net/node numbers of the systems having already received the message. In this way a message is never sent to a system twice. In a conference with many participants the number of seen-by lines can be very large. This line is added if it is not already a part of the message, or added to if it already exists, each time a message is exported to other systems. This is a REQUIRED field, and Conference Mail will not function correctly if this field is not put in place by other Echomail compatible programs. 5. PATH Lines These are the last lines in a Conference Mail message and are a new addition, and therefore is not supported by all Echomail processors. It appears as follows: ^aPATH: 132/101 1014/1 Where the ^a stands for Control-A (ASCII character 1) and the net/nodes listed correspond to those systems having processed the message before it reached the current system. This is not the same as the seen-by lines, because those lines list all systems the message has been sent to, while the path line contains all systems having actually processed the message. This is not a required field, and few echomail processors currently support it, however it can be used safely with any other system, since the line(s) will be ignored. For a discussion on how the path line can be helpful, see the "Advanced Features" section of this manual. METHODS OF SENDING CONFERENCE MAIL To this point the issue of how Conference Mail is actually sent has been glossed over entirely. The phrase has been, "the message is exported to another system." What exactly does this mean? Well, for starters lets show what is called the "basic" setup: In this setup exported mail is placed into the FidoNet mail area. Each message exported from a Conference Mail area has one message generated for each receiving system. This mail is then sent the same as any other network mail. When Echomail was first created this was the only way mail could be sent. The "basic" method has some disadvantages. First, since Echomail has grown so large it is not uncommon to get 200 new messages per day imported into various message bases. It is also not uncommon for a system to be exporting messages to 4 or 5 other systems. Simple arithmetic shows 800-1000 messages per day would be sent in normal netmail! This puts a tremendous strain on any netmail system, not to mention transmission time and the resultant phone charges. When this limitation of Echomail was first noticed a lot of people started scratching their heads wondering what to do. If a solution could not be found it appeared Echomail would certainly overrun the capabilities of FidoNet. Thom Henderson (from System Enhancement Associates) came up with the original ARCmail program. Having previously written the ARC file archiving and compression program, he knew the savings achievable by having all of the netmail messages placed in .ARC format for transmission. As a byproduct, the messages no longer appeared in the netmail area, but were included in a file attached to a message (see your FidoNet mailer manual for file attaches). In this way the tremendous number of messages generated, and the phone bill problems were both solved. Unfortunately, ARCmail required the messages to first be placed into the netmail area before it could be run. In effect, it caused the messages to be scanned once when they were exported, once during the ARCmail phase, once when ARCmail was run at the other end to get the messages out of .ARC format, and once when those messages were later imported into a message base on the receiving system. The Conference Mail System solves this problem by eliminating the ARCmail program. Conference Mail builds the ARCmail files during Export, and unpacks them during Import. This way messages are exported directly to ARCmail style file attaches, and imported directly from ARCmail style file attaches. The scanning phases between importing and exporting messages are totally removed and processing time is proportionally reduced. This is now the most common method for sending Conference Mail between systems. The overhead involved in doing it during the importing and exporting phases is much less than what is involved if ARCmailing is not utilized. This was a primary consideration in the design and implementation of the Conference Mail System, and as a result the entire system is optimized for this type of use. Please refer to the Import and Export functions for specifics on how to use the ARCmailing feature. CONFERENCE TOPOLOGY The way in which systems link together for a particular conference is called the "conference topology." It is important to know this structure for two reasons: 1) It is important to have a topology which is efficient in the transfer of the Conference Mail messages, and 2) It is important to have a topology which will not cause systems to see the same messages more than once. Efficiency can be measured in a number of ways; least time involved for all systems to receive a message, least cost for all systems to receive a message, and fewest phone calls required for all systems to receive a message are all valid indicators of efficiency. Users of Echomail compatible systems have determined (through trial and error) the best measure of efficiency is a combination of all three of the measurements given above. Balancing the equation is not trivial, but some guidelines can be given: 1. Never have two systems attempting to send Conference mail to each other at the same time. This results in "collisions" that will cause both systems to fail. To avoid this, one system should be responsible for polling while the other system is holding mail. This arrangement can alternate based upon various criteria, but both systems should never be attempting to call each other at the same time. 2. Have nodes form "stars" for distribution of Conference Mail. This arrangement has several nodes all receiving their Conference Mail from the same system. In general the systems on the "outside" of the star poll the system on the "inside". The system on the "inside" in turn polls other systems to receive the Conference Mail that is being passed on to the "outside" systems. 3. Utilize fully connected polygons with a few vertices. Nodes can be connected in a triangle (A sends to B and C, B sends to A and C, C sends to A and B) or a fully connected square (all corners of the square send to all of the other corners). This method is useful for getting Conference Mail messages to each node as quickly as possible. All of these efficiency guidelines have to be tempered with the guidelines dealing with keeping duplicate messages from being exported. Duplicates will occur in any topology that forms a closed polygon that is not fully connected. Take for example the following configuration: A ----- B | | | | C ----- D This square is a closed polygon that is not fully connected. It is capable of generating duplicates as follows: 1. A message is entered on node A. 2. Node A exports the message to node B and node C placing the seen-by for A, B, and C in the message as it does so. 3. Node B sees that node D is not listed in the seen-by and exports the message to node D. 4. Node C sees that node D is not listed in the seen-by and exports the message to node D. At this point node D has received the same message twice - a duplicate was generated. Normally a "dup-ring" will not be as simple as a square. Generally it will be caused by a system on one end of a long chain accidentally connecting to a system on the other end of the chain. This causes the two ends of the chain to become connected, forming a polygon. In FidoNet this problem is reduced somewhat by having "Regional Echomail Coordinators" (RECS) that try to keep track of Echomail connections within their regions of the world. A further rule which is followed is that only the RECS are allowed to make inter-regional connections for the larger conferences. In return, the RECS have established a very efficient topology which gets messages from coast to coast, and onto over 200 systems in less than 24 hours. If no one were willing to follow the rules, then this system would collapse, but due to the excellent efficiency it has remained intact for over a year. Why a PATH line? As was previously mentioned, the PATH line is a new concept in Echomail. It stores the net/node numbers of each system having actually processed a message. This information is useful in correcting the biggest problem encountered by nodes running an Echomail compatible system - the problem of finding the cause of duplicate messages. How does the PATH line help solve this problem? Take the following path line as an example: ^aPATH: 107/6 107/312 132/101 This shows the message was processed by system 107/6 and transferred to system 107/312. It further shows system 107/312 transferred the message to 132/101, and 132/101 processed it again. Now take the following path line as the example: ^aPATH: 107/6 107/312 107/528 107/312 132/101 This shows the message having been processed by node 107/312 on more than one occasion. Based upon the earlier description of the 'information control' fields in Echomail messages, this clearly is an error in processing (see the section entitled "How it Works"). This further shows node 107/528 as the node which apparently processed the message incorrectly. In this case the path line can be used to quickly locate the source of duplicate messages. In a conference with many participants it becomes almost impossible to determine the exact topology used. In these cases the use of the path line can help a coordinator of the conference track any possible breakdowns in the overall topology, while not substantially increasing the amount of information transmitted. Having this small amount of information added to the end of each message pays for itself very quickly when it can be used to help detect a topology problem causing duplicate messages to be transmitted to each system. -30-