Each BBS in the FORWARD.BBS file has certain attributes associated with it. Almost ALL of them have defaults which as assigned to a BBS as the parsing of its entry begins. Any defined attributes will override the default attributes for that BBS.
All BBS Attributes are of the format 'KEYWORD = parameters'. There can be any amount of whitespace before the KEYWORD, and surrounding the '='. The parameters do not start till the first non-whitespace character after the '='. If more than one of an certain Attribute is processed, then only the last is used.
Most of the available attributes are simple attributes. Simple attributes are attributes which either set a boolean value (yes or no), a numeric value, or a string. Only one value is set for each simple attribute.
Currently supported simple attributes include:
sets the default delay time (in minutes) to be used for any Alternate BBS routings that do not specify a time. The default for this attribute is '720' minutes (12 hours).
determines whether or not
the 'laston' time will always be updated on connection.
If this is set to 'NO' then the 'laston' value is only
updated when a value SID has been exchanged between the
two PBBSs (or TNCs). This should normally be set
to 'NO', and should only be needed if you are communicating
with an extremely dumb TNC's messaging system, which does
NOT use SID's on startup. The default for this attribute
is 'NO'.
sets whether or not
bulletin messages are
are to be forwarded. This can be used to
restrict bulletins being forwarded only
during certain hours or only by certain
connect methods, or only in certain
forwarding modes, etc. Bulletins are
messages in areas defined in the 'etc/areas'
file. The default for this attribute is 'YES'.
determines how to adjust your local time before sending it, when setting a remote TNC's clock. This is only used in connection with the CLOCKSET Attribute. If the remote station does NOT have a 'C' in their SID, then this attribute is ignored. Use a '1' to add one hour to localtime, a '-1' to subtract one hour, etc. The default for this attribute is '0'.
determines whether or not you will send a command to the remote TNC to set their clock, if they request it. Many TNC's (like PacComm's) Mailboxes send out a 'C' in their SID, which says, 'set my clock'. TNOS will do this on forwarding sessions, if this Attribute is 'YES'. If the remote station does NOT have a 'C' in their SID, then this attribute is ignored. The default for this attribute is 'YES'.
sets the connection string 'constr' to be used in setting up the connection for forwarding. This can be one of the follow:
indicates that this 'PBBS'
is actually a TNC with a dumb PMS (dumb meaning that it
does NOT send a 'SID' upon connection). This should
ONLY be used if (indeed) this is a dumb PMS, since it
disables some code which prevents the possibility of
duplicate messages entering your TNOS. Before using
this attribute, use the 'forward trace' command, to
ensure that the SID is not being sent by the TNC. If
it IS being sent, but TNOS is not seeing it, then
you have a flawed SCRIPT section, which is eating the
needed SID. This should normally be set
to 'NO', and should only be needed if you are communicating
with an extremely dumb TNC's messaging system, which does
NOT use SID's on startup. The default for this attribute
is 'NO'.
sets the maximum size for the FBB data proposal to queue for sending. Normally, with the default for this attribute being '0', there will be up to 5 messages sent during the negotiation (assuming you have at least 5 to send). If this attribute is non-zero, then after added a message to the negotiation, a check is made to see if the total size of the negotiation is now larger than the 'FBBSIZE', and if so, no more messages will be added to the negotiation block. This means that the 'actual maximum' size of your block *could* be:
('FBBSIZE' - 1) + ('SIZE' - 1)This is *IF* the negotiation packet was at least one byte less than the 'FBBSIZE' attribute, and the next message was one byte less than the 'SIZE' attribute.
sets the maximum forwarding session time
(in minutes) to be used on forwarding sessions.
The default for this attribute is the value set by
the 'forward limittime' command.
This allows you to limit the forwarding protocol type used with this BBS. Values for 'type' are:
sets the minimum idle time (in seconds) to
be used between outbound forwarding sessions.
The default for this attribute is the value set by
the 'forward minidle' command.
sets whether or not
personal messages are
are to be forwarded. This can be used to
restrict personal messages being forwarded to
only during certain hours or only by certain
connect methods, or only in certain
forwarding modes, etc. Personal messages are
messages in areas NOT defined in the 'etc/areas'
file. The default for this attribute is 'YES'.
determines whether to poll the BBS, even if no outbound data is waiting. The default for this attribute is 'NO'.
determines whether or not reverse forwarding will be asked for to the remote BBS, after sending any outbound data. This MUST be set to 'YES' if POLL is 'YES'. Also, this Attribute has NO EFFECT, if you are using FBB-style forwarding with this BBS. The default for this attribute is 'YES'.
sets the maximum message size allowed, in bytes. The default for this attribute is '0', which means any size message will be allowed.
sets the BBS to use subchannel number 'xx'. The default for this attribute is no subchannel (-1). Valid subchannel numbers start with 0.
sets the maximum number of different connection methods defined for this BBS, with conditional processing. This is read and used to re-process the BBS for as many times as needed. The default for this attribute is '1'.
There are two attributes that do not define simple variables, but instead define attribute lists. There are currently only two compound attributes.
The SCRIPT attribute has several script commands available to help make a successful forwarding connection. A SCRIPT attribute is optional. There is NO default for this attribute. This is not needed for most people, but can be quite useful for traversing NODES, logging into telnets, etc. The SCRIPT attribute CANNOT have conditional processing WITHIN the attribute, but it is acceptable to have several SCRIPT attributes that are totally contained WITHIN conditional processing. Multiple SCRIPT attributes (if defined) are appended in the order found.
The format of the SCRIPT Attribute is:
SCRIPT = { command command }
Each SCRIPT atribute can have many commands in its definition, enabling you to set up as detailed of a connection script as you require.
Current available commands that can be used within a SCRIPT attribute are:
sends the specified 'string' to the BBS
waits up to 'nnn' seconds for the remote BBS to send the string 'string'.
this 'fools' TNOS into believing it just received the SID 'sidstr', and gets it to process that SID. TNOS will reply with IT'S SID, *to* the remote BBS. This is not needed, usually.
The AREAS attribute is used to define which areas are to be sent to the BBS being defined. Only messages within these areas will be sent. While this is an OPTIONAL attribute, a BBS defined without an AREAS attribute does not serve much of a purpose.
The AREAS attribute has several options available for each area defined. The AREAS Attribute CANNOT have conditional processing WITHIN the Attribute, it is acceptable to have several AREAS attributes that are totally contained WITHIN conditional processing. Multiple AREAS attributes (if defined) are appended in the order found.
The format of the AREAS Attribute is:
AREAS = { areaname [rewrite] [ALT[=bbsname[,time]]] areaname [rewrite] [ALT[=bbsname[,time]]] }
The areaname is required on each line. There can be any amount of whitespace preceeding the areaname, and surrounding the optional rewrite address. The 'rewrite' address is an address that all mail send from this area can have 'forced' upon it, changing the original 'To:' address to this rewrite address.
The ALT parameter of an AREAS line can have one of three forms:
marks this BBS to be an Alternate BBS for this area. New mail does not automatically get added to this BBSs forwarding queue until it has reached it's alternate time from the original BBS. At that time, it is removed from the original BBS, and placed into the Alternate BBSs queue.
marks this area to have 'bbsname' as an Alternate BBS, and have it's alternate time be this BBSs 'ALTTIME' Attribute's value. When the alternate time has passed and a message still remains on the BBS, it will be added to 'bbsname's forwarding queue.
same as above, except the alternate time is overridden with 'time'
There can be any number of 'ALT=' parameters on an area line, but the 'ALT' and 'ALT=' parameters are mutually exclusive.