FORWARD.SYS

(..etc/ax25/fbb/forward.sys
Line Types.
Examples of a forward-file.
Include-files.
Automatic forward to a file.

This file is located in the ..etc/ax25/fbb directory.
The FORWARD.SYS file is the forwarding script hat defines the message routing to
adjacent BBSs to which you will forward traffic. The file is organized in blocks.
Each block being specific to a BBS. Only the adjacent BBS's should be defined.

A block starts with -
A (call)
and ends with  --------

The FORWARD.SYS file may contain multiple blocks.

This file and its includes are parsed at the BBS start-up. Active messages are scanned, and routings set.
If the FORWARD.SYS file or one of its includes is modified the file must be rescanned to update the routing.

Formating
Each line begins with a letter which defines the function of the line and is followed by a value.
Any line beginning with a # is regarded as a comment and is ignored.

Line types :


A (call)
All blocks must start with an A line. Call is the call sign of
the BBS we will forward to.

B (call)
All blocks should include at least one B line.
This instructs Personal messages addressed to somebody with address '@ (call)' to be forwarded.

C C (call1) [V DIGI1 DIGI2 ETC...]
The complete line of connection (C call V digi1 digi2) must follow the letter C.
In most cases, there will be two letters C successively, with a space between them. The letter V,
specifying a string of repeaters is optional if PROMs TF4 (or equivalent) are used - see WA8DED.DOC.
There may be several lines C, in the case of cascaded connections (use of THENET, as per
an example). A line of conditional connection (enclosed between an IF and an
ENDIF) allows calls on preset times. Up to 8 lines are allowed, each line can
hold up to 80 characters.

In case of KA-node and X-connect, we can send C X (call). When connected
to a node, all command after the first C is actually sent to that node.
Like here, the X is sent too.

Telnet port syntax is:  C C <call> <IP address> [port]
IP-address is required, port is optional (default 23).

ROSE port syntax is :   C C <call> <ROSE address>

D (command)
Same as the X command.
The screen is saved before the command, and restored when done,
thus enabling screen access for this command.

DC (command)
Same as D-command above, but executed when the connection is done.
This allows to change parameters or program a function when
the other BBS is connected. When the connection is made from another
BBS, the LC, DC and XC are executed if the BBS exists in forward file.

ELSE
Complementary conditional lines to the previous IF.

ENDIF
End of conditional lines defined by an IF.

F (call)
Call which will be automatically routed (except if a routing has been
specified) to the BBS which has been previously stated by a B line (must
follow a B line). There may be several F lines following a B line. If this
line is not preceded with a B line, then the bulletins will be routed
on their destination.

 G (route)
Group routing  indicator  for  bulletins  (EU  for  example).  This 
indicator  applies  only  to  bulletins.  The  private  messages  are sent
according to the BBS indicator (see line B). There may be several routing
indication lines per adjacent BBS.

H (route)
Route definition using the hierarchical addressing mode. The wildcards (* or
?) must be used to replace the missing part of the address as a function of
the destination.  H-routing should be used as much as possible.

IF C1 ... IF C9
Conditional test of the route selection. The value for "n" is a figure, from
1 to 9, depending upon the selection. The first selection is 1, and the
maximum is 9. The lines located between the IF Cn and the ENDIF will be taken
into account only if the current selection is n. If the connection has not
been successful (remote BBS prompt not received), the selection number will
be incremented, and the block will be tested again if the port is still the
same. If the port is different, the block will be tested during the tests
related to the new port. If the connection is successful, the selection
number is reset at 1 for the next call, otherwise the selection number
is incremented. If all the selections failed, the selection number is reset
at 1, the call is given up, and the system manages the next block.

IF D xx
Conditional test of the days of the week. This line defines a set of lines
which will be taken into account if the expression which defines the day(s)
following the IF is true. 0 corresponds to Sunday and six to Saturday.
The expression 'IF D 0,2,4-6' is true for Sunday, Tuesday, and Thursday to
Saturday. There can be several embedded IF's (indentation recommended),
they shall never expand outside a block. The ENDIF defines the end of the
conditional block.

IF H xx
Conditional test of the hour (IF). This defines a set of lines which
will be taken into account only if the hour period following the IF is TRUE.
The hour period written in the format 0,4,12-23 is true at 0h, 4h, and for
the hours from 12h to 23h. There may be several IF conditions embedded
(indentation should be used), but never outside of the blocks.

IF FREE
Conditional test for the availability of a port. The test will be true if
none of the channels for the port is in use. This test can be a necessity
before the autoqsy of a transceiver as for an example. There can be several
embedded IF's (indentation is recommended), they shall never expand outside
a block. The ENDIF, defines the end of the conditional block.

IF MAN
Conditional test only true if forward has been asked manually by F4, FR or
FW commands.

IF N (number)
Tests on number-of-day in the month (1-31)

J        (data means 7+ here)
  J 0 : no data sent
  J 1 : data is sent (default)
  J 2 : personal data is sent
  J 3 : only data is sent (exclusive)

K Channel
Forces forwarding to start on the specified channel. If the channel is busy,
forwarding will not start.

L (command) [value]
Parameters programming for the TNC. The parameters will be assigned to the
related channel. The syntax is the one of the TNC host mode. Only the command
B (Paclen = packet size) has been supplied in all cases. B parameter must be
used with all TNCs (including KAM) to specify a paclen. The paclen is always
managed by the BBS software, as the different host modes are transparent to
the paclen. The PACLEN of the KAM should be 0/0 (256) to make the BBS paclen
work in all circumstances.

LC (command) [value]
Same as L-command above, but are executed when the connection is done.
This allows to change parameters or program a function when
the other BBS is connected. When the connection is made from another
BBS, the LC, DC and XC are executed if the BBS exists in forward file.

N (number)
Assigns the standard forward protocol (MBL/RLI) for the specified BBS.

  1 = FBB forwarding allowed
  2 = FBB+BIN forwarding
  4 = FBB+BIN+Resume
  8 = XFWD
  Ex: N 15 = Sum of all protocols (default)

O (minutes)
Defines a timeout for the specified BBS. Timeout is expressed in minutes.

P (port)
Selects the port on which the connection is to take place. The port is
defined by a letter from A to H for the ports 1 to 8.

Q
Prevents the reverse forwarding from my BBS to take place.

R
Specifies that a call should be made to the adjacent BBS even if there is no
mail in queue, so as to trigger the reverse forwarding.

S Connect Failure Busy
It is a set of supplementary tests in the case of sequential connections
(TheNet network for example). The 3 tests should be defined. The tests
"Connect" "Failure" and "Busy" are already defined in the software.

Example :
S Conne Fail Busy 

The software will interpret "Conne" like Connect,"Echec" as Failure, and "Occup" as Busy.
This allows the BBS to handle status messages from nodes which do not follow messages
which are commonly used by TheNet. p to 4 S lines (set of tests) can be defined in a forwarding block.
S line (choices of forward) now checks default as a last choice. Up to four previous choices
are checked as declared before. Warning, these tests are case dependent.

T options
Definition of the maximum size for a file authorized to be forwarded, type
of messages and strategy. This line can be made conditional (between an IF
and an ENDIF).

 T P : Send only personal messages
 T S : Send smaller first (instead of older first)
 T 2 : Send only messages less than, or equal to, 2 KB.
 T D : Disable the feature of sending only 1 message from each 
       call in each forward-block

 It is possible to combine one or more of these option like :

 T P S 2 : means only private less or equal to 2 KB, smallest first.

 In all cases, personal messages are forwarded first, bulletins next.

U ROUTE1 ROUTE2 ... (up to eight routes)
Give the priority when forwarding bulletins. Bulletins @ROUTE1 will be
forwarded first, then bulletins @ROUTE2, then other bulletins. It may be up
to eight specified routings. Private mail (including P, T and A messages) are
always forwarded first.

V (text)
Text sent on connection of the called BBS. (Mandatory on some TCPIP BBS
to declare the protocol in use). Allows sending call and password when
connecting to a phone BBS.

W
Command W allows to skip one or more prompts (default one) before starting
a forward session (mainly used when "Linked to ..." gives more than 
one prompt)

X (command)
Command to be executed by DOS (See cmd D for Linux )


XC (command)
Same as X-command above, but executed when the connection is done.
This allows to change parameters or program a function when
the other BBS is connected. When the connection is made from another
BBS, the LC, DC and XC are executed if the BBS exists in forward file.

Y
Automatic time update of PMS having the clock ability. (if Station ID looks like
[PMS-3.0-C$]). PMS is set with the local time.

Z route
NTS routing indicator for NTS messages. This routing indicator applies only
to messages of "T" type. Wildcards can be used to define masks. There may be
several routing indication lines per adjacent BBS.

------ (string of dashes)
Defines the end of the block for the adjacent BBS. The block begins with
an A line.

! Line
Defines an exception (NOT) when be used with lines of types B, F, G, H. The
exception should always be set before the true condition statement.
An exception is always from the same type statement (you cannot have a !F
exception to a B line).

Example:
 ! B F6FBB Except for F6FBB BBS
 B F* Forward to all the BBS which begin with an F
 The number of the exceptions is not limited.

< File
Include the file specified. The name of the file should be in the directory
SYSTEM or in one of its subdirectories.

#
Comment line. Text following the # character on a line is ignored.

Example of the forward file


The ../fbb/forward.sys file must contain at least one minimum clock or an include file with a minimum block.

 Example of the minimum block :

The first line begins with an A, defining the name of the adjacent BBS and ending
with string of dashes (-).
Inside this block, there must be :
  1. a P line (port used),
  2. a C line (connection request),
  3. a B line (@ BBS).
  4. a F line (TO ) with the SYSOP call may follow the B.
This type of block is well suited for PMS of BBS which do not support
automatic mail forwarding.

 A FC1CDC
   P A                          			Port A
   C C FC1CDC-1 v F6FBB-5       		connection line
   B FC1CDC                  			traffic addressed @ FC1CDC
   F FC1CDC                  			messages TO FC1CDC 


Example of a more complex block :

 A FC1HAQ
   #
   G EU                     FC1HAQ will receive
   G FRA                    the bulletins for those
   G WW                     various routings.
   G AMSAT
   F AMSAT                  bulletins to AMSAT are also marked.
   #
   H *.NA                   All the H. routes which end
   H *.SA                   with .NA, .SA
   H *.EU                   and .EU
   #
   O 5                      5 minutes timeout.
   #
   IF C1                    1st choice parameters
     P C
     L B 250                Paclen is 250 bytes
     L N 4                  Retry 4
     C C FC1HAQ-1 F6FBB-7 019301
   ENDIF
   IF C2                    2nd choice parameters
     P C
     IF 8-17                from 8h to 17h
       T 5                  files of 5 kb Max.
     ENDIF
     L B 250                Paclen is 250 bytes
     L N 4                  Maxframe is 4
     C C FC1HAQ-1 F6FBB-7 019002
   ENDIF
   IF C3                    3rd choice parameters
     P A                    port A is used
     T P                    private mail only
     C C F6FBB-2            Connection of the 1st Thenet.
     C C FF6KUB-2           Connection of the 2nd Thenet.
     C C FC1HAQ-1           Final connection.
   ENDIF
   #
   B FC1HAQ                 Definition of the various
   F FC1HAQ                 BBS routed by FC1HAQ and
   F F6CQU                  of its SYSOPs and /or direct
   #                        specified users.
   B F6ABJ
   F F6ABJ                  Other BBS and miscellaneous
   #                        calls forwarded by FC1HAQ.
   B F5LO
   F F5LO
   #
   B G*                     other BBSs.
   B ON*
   B D*
   B HB*
   #
 ------                     End of the FC1HAQ block

Include-files.

It is possible to use include files with FBB. This allows a small forward.sys, with only BBS calls.
 The include file is usually located in the .../fbb/fwd/ directory
and contains the BBS forward block. One file for each BBS.

		To set up include files.
  1. Move the BBS block,
    starting with A (call) and ending with ------, to a file in .../fbb/fwd/.
    The file is usually given the named of the BBS-call.
  2. Add a line to .../fbb/forward.sys with the BBS name and add '<' in front of it.
Example of FORWARD.SYS file with include-files.
 #
 # FORWARD FILE F6FBB
 # ------------------------
 #
 # UHF
 #
 < fwd\FE6BIG
 < fwd\FC1GJC
 < fwd\FF6KNI
 < fwd\FC1HAQ
 < fwd\F1EBV
 < fwd\FD1JGK
 < fwd\EA3BKZ
 #
 # PMS
 #
 < fwd\FD1CDC
 < fwd\FD1MEU
 < fwd\FD1OAC
 < fwd\F8PD
 < fwd\F6HED
 < fwd\FE1JYH
 < fwd\F1LMI
 #
 # HF
 #
 < fwd\LA1B
 < fwd\LA6CU
 < fwd\SV1IW
 < fwd\4X1RU
 < fwd\RS3A
 < fwd\I7XGL
 < fwd\EA8AML
 < fwd\EA8RT
 #



Example of an include file fwd/EA8RT.

 A EA8RT
   #
   G EU
   G ALL
   G AMSAT
   G WW
   G EA
   G EANET
   G LATNET
   #
   P B
   #
   O 2
   #
   L T 20
   L B 80
   L O 2
   L P 100
   L F 2
   L @T2 20
   #
   #
   IF 7-22
     X ICOM A2E8 M6
     C C EA8RT-2
   ENDIF
   #
   B EA8RT
   F EA8RT
   F E?1*
   F E?4*
   F E?7*
   F E?8*
   #
   B E?1*
   #
   B E?4*
   #
   B E?7*
   #
   B E?8*
   #
 ----

Automatic forward to a file.

It is possible to automatically route messages or bulletins via a mail file.
The messages may need further processing, archival, or forwarding to a BBSs which co-exist in the same computer. The mail file is usually updated every 15 minutes. The file is defined in a forwarding block identical to the file for a BBS.
  1. The A line will be MAIL.
  2. Use @ for the port.
  3. The Connection line points to the file being created or updated. Use the file name declared in BBS.SYS.
The mail file (defined in FBB.CONF ) is tested every minute; if it exists, the contents are imported into the BBS.
		Example of a forward to a file
(forward to the file ...other/mail.fbb for F6FBB mail):

 A MAIL
   P @
   C ..other/mail.fbb
   B F6FBB
   F F6FBB
 ------
This example will forward mail TO and @ F6FBB by placing the messages in the ..other/mail.fbb file.
The "Other" BBS will import the messages into the BBS on the following minute.

Back to Contents