Table of Contents
Synchronet's FidoNet Packet Tosser
SBBSecho is a full-blown FTN echomail program (tosser/scanner) for Synchronet BBS version 2.0 and higher.
As of SBBSecho v2.30 (Nov-2015), SBBSecho will also export FTN NetMail from the Synchronet mail base (
data/mail message base) to FTS-1 (
FidoNet Technology Network: Any network using FidoNet standards for addressing, mail packets, mail sessions, node lists, etc.
Zones, Nets, Nodes, and Points?
FTN node addresses are like phone numbers, they are made up of multiple components (four to be exact). The components are: zone, net, node, and point. Each component is specified by a decimal (base-10) number, separated by symbols (no spaces):
The zone represents the continent (if FidoNet) or the network number (if other FTN network). All FidoNet nodes in North America have a zone 1 address. When the zone is specified in an address, it is the first component and must be followed by a colon. If the zone is not present in an address, the local system's zone is assumed.
The net represents the network number of the FTN node. Duplicate net numbers may exist between zones. If the net number is not present, the local system's net is assumed.
The node number specifies an exact FTN node within a network. The node number is the only required element of an FTN node address. The point is an optional component which specifies a sub-node that does not directly receive mail and is also not listed in the main FTN node list, but instead gets all its mail from its boss-node (zone:net/node.0). When the point is not specified, 0 (zero) is assumed (i.e. 1:2/3 and 1:2/3.0 are identical) which indicates the system is not a point node address.
A 2D (2 dimensional) address refers to an FTN address containing just the net and node numbers (i.e. 103/705).
A 3D (3 dimensional) address refers to an FTN address containing the zone, net, and node numbers (i.e. 1:103/705), specifically excluding the point number if it exists.
A 4D (4 dimensional) address refers to an FTN address containing the zone, net, node, and optional point numbers (i.e. 1:103/705.1).
A 5D (5 dimensional) address refers to an FTN address consisting of a standard 3D or 4D address with an appended “@domain” (i.e. 1:103/705@fidonet).
Attach or FLO Mailer?
If you are using FrontDoor, InterMail, D'bridge, SEAdog, Dutchie, or any other ArcMail *.MSG attach-style mailer, you are using what we will refer to as an “Attach Mailer”.
If you are using BinkD (Binkley daemon), Argus/Radius/Taurus, BinkleyTerm, Portal of Power, or any other FLO/CLO/HLO/DLO style mailer, you are using what we will refer to as a “FLO Mailer”.
Both types of mailers are supported equally by SBBSecho but it is important that you select the property “Mailer Type” in the
echocfg utility (or
sbbsecho.cfg file) and if you're using a FLO-style mailer, that you include the
-f SBBSecho command-line option when exporting mail.
Point-to-point (usually person-to-person) directly-delivered or routed messages.
Group or conference messages of a particular subject matter. Usually distributed on a regional or continental (e.g. FidoNet Zone 1 backbone) scale. FTN style echomail areas have a unique area tag (name) associated with them to distinguish each area from the others.
An FTN packet is a group of one or more messages contained in a single
uncompressed file. Packets may contain echomail and/or netmail messages.
Packets files usually have a
.pkt extension, although outbound NetMail packets for
FLO Mailers will have
.?ut extensions (where ? is either
first eight characters of the filename may be anything, but are usually decimal
digits representing the date and time the packet was created. SBBSecho creates
temporary outbound packet files with a .PK_ extension and then renames them to
.pkt when they're completed. If you find any
.pk_ files in your outbound
directory, don't worry. SBBSecho will find them the next time it is run and
continue packing them and sending them on their way.
An FTN bundle is a single file archive of one or more (usually compressed)
packets. Bundles will have file extensions where the first two characters
represent the day of the week the bundle was created (MO, TU, WE, TH, FR, SA,
and SU) and the third character of the extension is a number or letter. The
first eight characters of the filename may be anything, but are usually
hexadecimal digits representing the FTN node address (or relative address) of
the system that created the bundle. SBBSecho changes the file extension of bad
inbound bundles to
Areafix is a synonym for area manager (the very first FTN area manager program was called AreaFix). Area manager capabilities (remote adding/removing of areas, changing compression type, etc) are built into SBBSecho, so therefore no external area manager program is required. If you are not an FTN hub, then the area manager portion of SBBSecho will probably not get any use on your system.
SBBSecho expects to find the file
areas.bbs in your Synchronet
/sbbs/data) unless you have overridden the default name
and/or location using the ECHOCFG program. The format of this file is very
similar to the standard AREAS.BBS (which many echomail programs use, or can
at least export their native area file to this format - i.e. GEcho's GSETUP).
SCFG can also export your sub-boards to
areas.bbs, but you're probably better
off modifying the areas.bbs file you're already using (if you are) or
converting your current echomail program's area file to AREAS.BBS. This is
because SCFG assumes the sub-board short name will be the same as the area's
tag (as shown in your echo list), but this may not always be the case - unless
you imported an AREAS.BBS or FIDONET.NA file into SCFG to begin with).
Each line represents an EchoMail area in the following format:
CODE TAG LINK [LINK] [...]
Where each field is separated by white-space (space or tab characters) and the fields are:
CODEis the internal code of the sub-board. Any unrecognized internal codes are considered pass-through (not imported into your BBS's message areas). Using “
P” for the internal code of pass-through areas will prevent warnings from being logged about the internal code not being found in your BBS's message base configuration (e.g. in
TAGis the FidoNet tag as shown in your echo list (e.g.
FIDONET.NAfile). If the
TAGfield value is
*(asterisk), then this area will be considered a “bad echo” area and will receive all messages for areas not otherwise specified in this file (sort of a 'catch-all' bin). You can only have one “bad echo” area configured in your
areas.bbsfile and there are currently no provisions for re-scanning this area to move messages into subsequently configured sub-boards.
LINKfield is a FidoNet address which you wish to import mail from export mail to. At the very least, your hub's address should be listed here. Your address should NOT be listed here. If multiple link fields are specified, you should specify the full 3D or 4D address for each.
Lines beginning with a semicolon (;) are considered comments, and are ignored.
SBBS SYNCHRONET 1:3615/50 SYNCDATA SYNCDATA 1:3615/50 SYNC_SYS SYNC_SYSOPS 1:3615/50
The amount of spacing between each element in the line is not important. Each line can be up to 1000 characters in length.
Multiple configuration files can be used (but isn't usually required) for
multi-mailer systems. The default configuration filename is
and located in your Synchronet
ctrl directory. You can override this by specifying
the name and location of the configuration file on the
# echocfg /path/to/echo1.cfg # sbbsecho /path/to/echo1.cfg
If you do not specify a configuration file,
sbbsecho will use
echocfg you will be brought to the main menu of the configuration
program. The path and filename of the configuration file being modified will
appear at the top of the menu. Following are screen captures of available menus
within the configuration program and an explanation of the options contained on
each of them.
╔══════════════════════════════════════════════════╗ ║ /sbbs/ctrl/sbbsecho.cfg ║ ╠══════════════════════════════════════════════════╣ ║ │Mailer Type Binkley/FLO ║ ║ │Maximum Packet Size 250K ║ ║ │Maximum Bundle Size 250K ║ ║ │Areafix Failure Notification Disabled ║ ║ │Nodes... ║ ║ │Paths... ║ ║ │Log Level Informational ║ ║ │Log Options... ║ ║ │Toggle Options... ║ ║ │Archive Programs... ║ ║ │Additional Echo Lists... ║ ╚══════════════════════════════════════════════════╝
Selecting this menu item will toggle between the mailer types supported by SBBSecho, either FrontDoor (message attach) type mailers or Binkley (FLO file) type mailers. Choose the one that matches your front-end mailer type.
Maximum Packet Size
This menu item allows you to set the maximum size of each outgoing echomail packet.
Maximum Bundle Size
Mail packets are normally packed into what are called “bundles” (unless a node is set up to receive uncompressed mail packets). This menu item allows you to specify the maximum size of each outgoing mail bundle.
Areafix Failure Notification
This is the user number of the person where notification of Areafix
failures should be sent. Such failures include nodes which are not
configured for areafix, nodes using incorrect areafix passwords, and
the like. Setting this to
0 will disable the notification feature.
This menu item allows you to add, remove, and configure nodes that you will be sending mail to and accepting mail from. Selecting this option will bring you to a sub-menu which will look similar to the following:
╔═══════╗ ║ Nodes ║ ╠═══════╣ ║ │ ║ ╚═══════╝
Nodes… sub-menu, pressing the INSert key will allow you to
add a new node, pressing the DELete key will remove the currently
highlighted node. A Node here does not necessarily identify a single FidoNet node, but can also be used to identify a group of nodes by using the
ALL wildcard (indicating that a node configuration will be used for *all* nodes with a specific zone or zone:net).
╔════════════╗ ║ Nodes ║ ╠════════════╣ ║ │1:103/ALL ║ ║ │2:ALL ║ ║ │1:10/1 ║ ║ │ALL ║ ║ │ ║ ╚════════════╝
Pressing ENTER on the currently highlighted node will allow you to edit the settings for that particular node from a menu like the following (note that the node number you are editing appears at the top of the window):
╔══════════════════════════════════════╗ ║ 1:10/1 ║ ╠══════════════════════════════════════╣ ║ │Address 1:10/1 ║ ║ │Archive Type ZIP ║ ║ │Packet Type 2+ ║ ║ │Packet Password ║ ║ │Areafix Password ║ ║ │Areafix Flags ║ ║ │Status None ║ ║ │Direct No ║ ║ │Passive No ║ ║ │Send Notify List No ║ ║ │Route To Disabled ║ ╚══════════════════════════════════════╝
This is the address of the node you are editing, selecting it will allow you to change this to a different address. Using the “ALL” wildcard in place of one of the address components will allow you to configure settings for all nodes that meet that specification (e.g. all nodes in zone 1 can be specified as 1:ALL or all nodes in zone 1, net 103 can be specified as 1:103/ALL).
This is the compression type to be used when packing mail bundles for this node. Selecting this option will allow you to choose from a menu of currently configured archive types, like the following:
╔══════════════╗ ║ Archive Type ║ ╠══════════════╣ ║ │ZIP ║ ║ │ARC ║ ║ │LZH ║ ║ │ARJ ║ ║ │PAK ║ ║ │SQZ ║ ║ │ZOO ║ ║ │None ║ ╚══════════════╝
Selecting “None” will specify that this node is to receive uncompressed packets (no bundles).
Commandline versions of common archive programs can be found at Digital Distortions along with setup instructions here. One thing to note is that the latest release of ARJ is v3.20 and it complains about being outdated. An open source version is available here. It's been tested at Split Infinity and appears to be a seamless fit.
This is the packet type that will be used when creating mail packets for this node. The default packet type used by SBBSecho is 2+. If you are a “point” address (e.g. 1:100/100.1) you should use either a type 2+ or 2.2 packet since type 2 packets do not support point numbers. Selecting this option will allow you to choose from a menu of currently supported packet types:
╔═════════════╗ ║ Packet Type ║ ╠═════════════╣ ║ │2+ ║ ║ │2.2 ║ ║ │2 ║ ╚═════════════╝
This is a password that will be placed into each outgoing mail packet for this node. Passwords are normally used for extra security when sending and receiving mail packets. This node must also have the same packet password defined for your address and SBBSecho must be set up for secure operation (set in the 'Toggle Options' sub-menu) in order for this feature to function properly.
This is the password that will be required by this node (in the subject field) when it sends messages to the area manager (AreaFix).
When additional echo lists have been defined (from the 'Additional Echo Lists…' sub-menu) these flags determine which echo lists can be used by this node when processing area manager add requests.
This option determines the netmail status that will be set when SBBSecho sends out an areafix message or a file attach. Selecting this option toggles between None, Crash, and Hold status.
When set to
Yes this option will add a Direct kludge line
to messages that SBBSecho sends out (or create DLO/DUT files
for FLO mailers).
Setting this option to 'Yes' will prevent messages from being sent to this node without the need for altering the AREAS.BBS file. This is useful for temporarily shutting off the messages to this node. This option can be toggled on and off remotely via an area manager request.
Send Notify List
This determines whether or not this node is sent a Notify List when using that command line option in SBBSecho. A Notify List is a netmail sent to the system operator of the node showing options set for the node as well as connected areas.
When configured for Binkley/FLO-style mailers, this option allows any mail sent to nodes matching this node entry's address (including the
ALL wildcard matches), to be routed to a different address (e.g. your uplink/hub's address). This option is particularly useful for routed NetMail.
Attach-style mailers have their own routing configuration and that is why this option is not available in
echocfg when configured for FrontDoor/Attach-style mailers.
This menu item allows you to configure the paths and filenames which are used by SBBSecho. Selecting this option will bring you to the following sub-menu:
╔══════════════════════════════════════════════════════════╗ ║ Paths and Filenames ║ ╠══════════════════════════════════════════════════════════╣ ║ │Inbound Directory <Specified in SCFG> ║ ║ │Secure Inbound (optional) None Specified ║ ║ │Outbound Directory /binkd/outbound/ ║ ║ │Area File SCFG->data/areas.bbs ║ ║ │Log File SCFG->data/sbbsecho.log ║ ╚══════════════════════════════════════════════════════════╝
This is the directory where SBBSecho should look for inbound mail packets. This is normally taken from whatever has been set in the SCFG program.
Secure Inbound (optional)
This is an optional directory where SBBSecho should look for secure inbound mail packets.
This is the directory where SBBSecho will place outgoing mail packets and bundles.
This is the path and filename of the file that SBBSecho will use as it's AREAS.BBS file. By default SBBSecho looks for the file AREAS.BBS in the data directory defined in SCFG.
This is the path and filename of the file that SBBSecho will use when logging events. By default SBBSecho uses the file SBBSECHO.LOG in the data directory defined in SCFG.
╔════════════════╗ ║ Log Level ║ ╠════════════════╣ ║ │Emergency ║ ║ │Alert ║ ║ │Critical ║ ║ │Error ║ ║ │Warning ║ ║ │Notice ║ ║ │Informational ║ ║ │Debugging ║ ╚════════════════╝
This list allows you to toggle what events SBBSecho should place into the logfile. Selecting this option will bring you to the following sub-menu:
╔═════════════════════════════════════════╗ ║ Log Options ║ ╠═════════════════════════════════════════╣ ║ │ALL ║ ║ │NONE ║ ║ │DEFAULT ║ ║ │Ignored NetMail Messages No ║ ║ │NetMail for Unknown Users No ║ ║ │Areafix NetMail Messages Yes ║ ║ │Imported NetMail Messages Yes ║ ║ │Packing Out-bound NetMail Yes ║ ║ │Routing Out-bound NetMail Yes ║ ║ │In-bound Packet Information Yes ║ ║ │In-bound Security Violations Yes ║ ║ │In-bound Grunged Messages Yes ║ ║ │Disallowed Private EchoMail Yes ║ ║ │Circular EchoMail Messages No ║ ║ │Duplicate EchoMail Messages No ║ ║ │Area Totals Yes ║ ║ │Over-All Totals Yes ║ ╚═════════════════════════════════════════╝
Selecting ALL, NONE, or DEFAULT will toggle all of the options to 'Yes', 'No', or to their default states, respectively.
These options allow you to toggle various features in SBBSecho. Selecting this option will bring you to the following sub-menu:
╔═══════════════════════════════════════════════════════════════╗ ║ Toggle Options ║ ╠═══════════════════════════════════════════════════════════════╣ ║ │Secure Operation No ║ ║ │Convert Existing Tear Lines Yes ║ ║ │Fuzzy Zone Operation No ║ ║ │Store PATH Lines in Message Base No ║ ║ │Store SEEN-BY Lines in Message Base No ║ ║ │Store Unknown Kludge Lines in Message Base No ║ ║ │Allow Nodes to Add Areas in the AREAS.BBS List Yes ║ ║ │Strip Line Feeds From Outgoing Messages No ║ ║ │Kill/Ignore Empty NetMail Messages No ║ ║ │Circular Path Detection Enabled ║ ║ │Bundle Attachments Kill ║ ╚═══════════════════════════════════════════════════════════════╝
When set to 'Yes', SBBSecho will compare the origin of any incoming mail packets to the nodes in the AREAS.BBS file as messages are imported. If a packet password has been defined for that node, it will also be compared to the password contained in the mail packet. Packets and messages failing this security will not be imported.
Fuzzy Zone Operation
Some mail programs do not create netmail messages with zone information (INTL kludge line) or may only do so when sending between zones. This is a problem for systems that receive netmail for multiple addresses with different zones (AKAs with different zone numbers). Setting this option to “Yes” allows SBBSecho to guess what the correct originating and destination zone is based on the net and node portions of the destination address in netmail message.
Store PATH Lines in Message Base
When set to 'Yes', SBBSecho will store the PATH lines from incoming echomail in the Synchronet message base headers (not the body text). This option is useful for troubleshooting routing/duplicate message problems.
Store SEEN-BY Lines in Message Base
When set to 'Yes', SBBSecho will store the SEEN-BY lines from incoming echomail in the Synchronet message base headers (not the body text). This option is useful for troubleshooting routing/duplicate message problems.
Store Unknown Kludge Lines in Message Base
When set to 'Yes', SBBSecho will store any unknown kludge lines from incoming echomail in the Synchronet message base headers. This option is useful for troubleshooting problems.
Allow Nodes to Add Areas in the AREAS.BBS List
When set to 'Yes', SBBSecho will allow nodes to add areas (via area manager) which are listed in the AREAS.BBS list. When set to 'No', SBBSecho will only allow nodes to add areas from any additionally configured echo lists which they have access to.
This option allows you to add or remove archive programs from SBBSecho. Selecting this option will bring you to the following menu:
╔══════════════════╗ ║ Archive Programs ║ ╠══════════════════╣ ║ │ZIP ║ ║ │ARC ║ ║ │LZH ║ ║ │ARJ ║ ║ │PAK ║ ║ │SQZ ║ ║ │ZOO ║ ║ │ ║ ╚══════════════════╝
At the Archive Programs… sub-menu, pressing the INSert key will allow you to add a new archive program. Pressing the DELete key will remove the currently highlighted archive program. And pressing ENTER on the currently highlighted archive program will allow you to edit the options for that particular program from a menu like the following (note that the name of the archive program you are editing appears at the top of the window):
╔══════════════════════════════════════════════════════════╗ ║ ZIP ║ ╠══════════════════════════════════════════════════════════╣ ║ │Packer Name ZIP ║ ║ │Hexadecimal ID 504B ║ ║ │Offset to Hex ID 0 ║ ║ │Pack Command Line %@zip -jD %f %s ║ ║ │Unpack Command Line %@unzip -ojC %f -d %s ║ ╚══════════════════════════════════════════════════════════╝
This is the name that will be used to reference this particular archiving program. This is also the name that should be used by nodes using areamanger to change their compression type remotely.
This is a hexadecimal identifier that SBBSecho should look for when determining the compression type used on incoming bundles. In this example we are looking for the ID 'PK', '50' is the hexadecimal value for the letter 'P' and '4B' is the hexadecimal value for the letter 'K'.
Offset to Hex ID
This is the byte offset (from the beginning of the file) where the hexadecimal ID for this archive program can be located. In this example we are looking at an offset of 0 bytes from the beginning of the file.
Pack Command Line
This is the command line used by this archiving program for
compressing files. The
%f command line specifier will expand
to the name of the compressed file, the '%s' command line
specifier will expand to the name of the file being compressed.
Unpack Command Line
This is the command line used by the archiving program for
Uncompressing files. The
%f command line specifier will
expand to the name of the compressed file, the '%s' command
line specifier will expand to the path where the file is
being extracted to.
Additional Echo Lists...
This menu item allows you to add and remove additional echo lists which can be used by SBBSecho for area manager add requests. Normally these will be used in addition to your AREAS.BBS file. If you have the toggle option 'Allow Nodes to Add Areas in the AREAS.BBS List' set to 'No', you MUST create at least one additional echo list if you wish to allow other nodes to add areas via area manager requests.
Selecting this item will bring you to a sub-menu listing any additional echo lists you currently have defined:
╔═══════════════════════╗ ║ Additional Echo Lists ║ ╠═══════════════════════╣ ║ │/fidonet.na ║ ║ │ ║ ╚═══════════════════════╝
Pressing the INSert key will allow you to add a new echo list, pressing the DELete key will remove the currently highlighted echo list, and pressing ENTER on the currently highlighted echo list will allow you to edit information about that list:
╔══════════════════════════════════════════════════════════╗ ║ Echo List ║ ╠══════════════════════════════════════════════════════════╣ ║ │Echo List Path/Name /fidonet.na ║ ║ │Hub Address None ║ ║ │Forward Password None ║ ║ │Forward Requests Yes ║ ║ │Echo List Flags ║ ╚══════════════════════════════════════════════════════════╝
Echo List Path/Name
This is the full path and filename of the echo list you are defining. This list should contain the areatag names of areas, one per line, with any comments separated from the areatag by at least one space.
This is the address of the hub of the conferences contained in this list. If an area is remotely added from this list (using Areafix) this address is automatically added to the AREAS.BBS file.
This is the area manager password to use when forwarding requests.
Setting this option to 'Yes' will cause SBBSecho to send a request to the Hub Address specified to turn on an area from this list. This happens when users remotely add areas using Areafix and is not necessary if you are already receiving the conferences in this list (i.e.: from Planet Connect).
Echo List Flags
These are the flags required for a node to be able to gain access to this particular echo list. These flags are defined for each node from the 'Nodes…' sub-menu. Selecting this option will bring you to a sub-menu where you may add and remove flags for this echo list.
We suggest you use the following command lines: For importing:
For exporting (Attach Mailer):
For exporting (FLO Mailer):
usage: sbbsecho [cfg_file] [/switches] [sub_code] where: cfg_file is the filename of config file (default is ctrl\sbbsecho.cfg) sub_code is the internal code for a sub-board (default is ALL subs) SBBSecho will execute normally (for Attach Mailer operation) with NO command line switches required. Command lines switches are used to cause SBBSecho to _do_ or _not_ do specific operations. When used, command line switches are prepended by a slash (/) character. Multiple switches can be specified in one grouping (multiple /switch sets are supported, but not required). Switch letters are not case sensitive. The available switch letters and their descriptions are: P: Do not import inbound packets or extract inbound bundles X: Do not delete inbound packets (*.PKT) after they're imported N: Do not import inbound netmail (packetized netmail and *.MSG) D: Do not delete inbound netmail (*.MSG) after they're imported I: Do not import inbound echomail E: Do not export outbound echomail M: Ignore echomail pointers (export all locally created echomail messages) U: Update echomail pointers only (export no echomail messages) T: Do not update echomail pointers (test export) H: Export all echomail messages (including messages imported from FidoNet) J: Ignore received bit on netmail (import even though flagged as received) L: Create log file (data\sbbsecho.log) R: Create report of import totals (text\sbbsecho.msg) B: Import locally created netmail too (ignore the local flag) A: Export ASCII characters only (override individual sub-board ex-ASCII strip) F: Create packets for outbound netmail (necessary for FLO Mailer operation) G: Generate notify lists Y: Import netmail for unknown users to sysop (user #1) O: Import all netmail regardless of destination address (unless flagged local) S: Import private echomail override (strip private flag) =: Change existing tear lines to === when exporting !: Notify users via telegram of received echomail messages
Remote area manager, or areafix, commands are used by uplinks to be able to turn echo areas off and on, list currently connected areas, and more. The following text is from the file AREAMGR.HLP which, after installation of SBBSecho, should be located in your Synchronet EXEC directory. It lists the area manager commands available to the nodes which have been configured using the ECHOCFG program:
Address all requests to 'SBBSecho' or 'AreaFix' (without quotes). Your Area Manager password goes on the subject line. In the body of the message to Area Manager: [+]<areaname> Connect an area -<areaname> Disconnect an area %HELP Request this message %LIST Request a list of areas available to you %QUERY Request a list of areas to which you are connected %UNLINKED Request a list of areas to which you are not connected %COMPRESSION <type> Change the compression type (ARC/ARJ/LZH/PAK/SQZ/ZIP/ZOO) %PASSWORD <password> Change your AreaMgr password %RESCAN Request a rescan of newly added areas %ACTIVE Reconnect all temporarily disconnected areas %PASSIVE Temporarily disconnect all connected areas %FROM <address> Remote maintenance, must be the first command %+ALL Connect all available areas %-ALL Disconnect all areas [---] Everything below the tear line is ignored NOTE: A compression type of NONE is also supported for uncompressed packets.