FORWARD.SYS (\FBB\SYSTEM). First, be aware of this useful feature: If FORWARD.SYS does not exist, FBB looks for FORW_D.SYS (for DosFBB) FORW_W.SYS (for WinFBB) FORW_L.SYS (For LinFBB) So it is possible to have for example DosFBB and WinFBB files in the PC at the same time, even if they need different FORWARD-files. This is useful at sites where you want to change from WinFBB to DosFBB from time to time.. I have divided this section in two parts: 1 : Simple instruction (for first-time setup). 2 : Advanced setup, with more details. 2.1 : Line types. 2.2 : Definition of a forward-file. 2.3 : Include-files. 2.4 : Automatic forward to a file. 2.5 : End-of-file DOS-command specific to a port. Simple instruction (for first-time setup). This file is in SYSTEM directory. In this file all necessary data for forwarding of messages are held. First I will give an example of a file that contains the minimum of data that MUST be in FORWARD.SYS if you have forward to only 1 other BBS, called LA2D in this example. The file is organised in blocks, one block for each BBS we forward directly to. A block starts with A (callsign) and ends with -------- We can have as many blocks as we want in FORWARD.SYS. A LA2D # P C # C C LA2D # B LA2D F LA2D # --------- All lines starting with a '#' are comments-lines, and are ignored by the BBS. The first line must always start with the letter A, and next the callsign of the BBS we want to forward to. Here: A LA2D Then there must be a line telling on which port to start the forward. This line must be there even if we only have 1 port. In this example I use port C, which is the same as TNC 3 in my PORT.SYS. Command: P C So I will send the connect-command to the TNC. That line must start with a C before the actual connect-command. So if I call LA2D directly, I need to write C C LA2D. (Only one C will not work). And lastly I must write which messages I shall forward to that BBS. In this case I type only B LA2D, which means all messages with @ LA2D, and F LA2D, which means all messages TO LA2D. The forward-file must end with a string of -------. If you have more than one BBS to forward to, you write all data for that BBS in a similar block in this same FORWARD-SYS-file (starting with A, and ending with ----) right after this block for LA2D. You can also use one include-file for every BBS, but we will look at that later in this sysop-documentation. Well. I expect you do not want to forward only those messages that are TO LA2D or @ LA2D (in this example), I expect you want to forward bulletins also. Just include some lines starting with G, like G EU, G ALL, G WW etc in the file. G EU means all bulletins addressed to @ EU. So may want to add this in each file, like this: A LA2D # P C # C C LA2D # B LA2D F LA2D # G EU G ALL G WW --------- OK. Next you may want to forward messages through LA2D, that is not really for LA2D, but that LA2D can forward on to this other BBS. These other BBSs can be included in lines starting with a B, like B LA1G, B LA4O, B LA5G etc. like this: A LA2D # P C # C C LA2D # B LA2D F LA2D # B LA1G B LA4O B LA5G # G EU G ALL G WW --------- Also, if you want to forward ALL messages for other SM-BBSs this way, you can use wildcards (as in DOS) like B SM*, B SK*, B OH* etc. like this: A LA2D # P C # C C LA2D # B LA2D F LA2D # B LA1G B LA4O B LA5G # B SM* B SK* B OH* # G EU G ALL G WW --------- Well. Now the file is almost complete for most needs. We may want to add the possibility to forward (on VHF or UHF) via several nodes. This is very easy, as we just add another C C (callsign) line for each node we have to call. If I must call first my local node LA7QR, next the local node of LA2D (LA1EAX- 7), and lastly LA2D, the complete file for LA2D will now look like this: A LA2D # P C # C C LA7QR C C LA1EAX-7 C C LA2D # B LA2D F LA2D # B LA1G B LA4O B LA5G # B SM* B SK* B OH* # G EU G ALL G WW # R # --------- I put in an R at the end. This forces my BBS to call LA2D BBS and ask him for forward from him to me (reverse forward), even if I have nothing to forward to him. Well, this was a simple forward-file. There is a lot more we can do with this file, so you should read Advanced setup very carefully, I think you will find all you need there. But you now have learnt the basics.. Advanced setup (with more details). The FORWARD.SYS file defines the setup of the various adjacent BBS's to which we will route the mail. The file is organized in blocks, each block being specific to a BBS. Only the adjacent BBS's should be defined. This file and its includes are compiled at the BBS start-up and after editing with the built-in editor, or return from the DOS Shell (AltF9 in DosFBB) if one of the files has been modified. If the FORWARD.SYS file or one of its includes has been modified all the active messages are scanned, and new routings will be set according to the updated file(s). The scanning can be stopped with AltF3. (Can be convenient if the modification does not impact the routing.) Every line of the file begins with a letter which defines the function of the line. Any line beginning with a # is regarded as a comment and is ignored. Line types : A (callsign) All blocks must start with a line like this. The callsign is the callsign of the BBS we will forward to. B (callsign) All blocks must include at least one line like this. Personal messages addressed to somebody with address '@ (callsign)' will be forwarded. C C (callsign1) [V DIGI1 DIGI2 ETC...] The complete line of connection (C callsign 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 (callsign). When connected to a node, all command after the first C is actually sent to that node. Like here, the X is sent too. Only for LinFBB and WinFBB: To forward with Telnet the syntax is: C C <callsign> <IP address> [port] IP-address is required, port is optional (default 23). D (command) Command to be performed by the DOS (transceiver frequency set, for example). For WinFBB: A separate DOS-window is opened, and the command performed there. The window is closed when the command has been executed. In WinFBB the D (command) and X (command) is identical. For DosFBB and LinFBB: The screen is saved before the command, and restored when done, thus enabling screen access for this command. When running BAT files, a COMMAND.COM is automatically first sent. That needs some more memory. 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 (callsign) Callsign 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 line 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 G xx Same as IF H, but using UTC-time. 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] Parametres programming for the TNC. The parameters will be assigned to the related channel. The syntax is the one of the TNC hostmode. 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 test 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. Ex.: S Conne Echec Occup. The software will interpret "Conne" like Connect, "Echec" like Failure, and "Occup" like Busy. This allows to comply with nodes messages which are not those commonly used by TheNet. Up 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 callsign 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 callsign 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 (Selection of a frequency, as for an example). For WinFBB: A separate DOS-window is opened, and the command performed there. The window is closed when the command has been executed. In WinFBB the D (command) and X (command) is identical. For DosFBB and LinFBB: The screen is not saved before the command, thus, the latter should not access the screen. This command is identical to the D command, but it is transparent and faster. When running BAT files, a COMMAND.COM is automatically first sent. That needs some more memory. 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 SID 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. Will 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). Ex: ! 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. Definition of the forward file : A forward file is made of a main file including a set of blocks, each block corresponds to an adjacent BBS, that is to say that can be connected. Definition of the minimum block : A block will be an included file in the FORWARD.SYS file. It is always made with a first line beginning with an A, defining the name of the adjacent BBS, and of a last line made of a string of dashes. Inside this block, there will be at least one P line (port used) a C line (connection request), and a B line (destination BBS). An F line with the SYSOP callsign may follow the B, enabling the automatic routing for his mail. A FC1CDC P A Port A C C FC1CDC-1 F6FBB-5 connection line B FC1CDC BBS desserved by FC1CDC F FC1CDC callsign automatically forwarded to FC1CDC -------- This type of block is well suited for PMS of BBS which do not support automatic mail forwarding. 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 # callsigns 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. In this way we can have a very small FORWARD.SYS, with only the callsign of the BBSs to forward to, and then we have another directory with all the forward-blocks. One file for each BBS, for example. Just transfer one whole block (starting with A (callsign) and ending with ------) to file, and put the filename in FORWARD.SYS with a '<' in front of it, like this: 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 # # VHF # < FWD\F6CDD # # FILES # < FWD\AMSAT < FWD\MAIL # # Back to the park frequency. # P B IF 0-3,21-23 X ICOM A2E8 M14 ELSE X ICOM A2E8 M4 ENDIF 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 interesting to allow automatic routing of messages or bulletins to a file, for further processing, archive, or communication between BBSs which co-exist in the same computer. The communication can be made through files. The incoming mail file (see INIT.SRV) is tested once every minute; in case of existence, the mail it contains is imported into the BBS. On the other hand, a file can be defined in a forward block and updated once every 15 minutes. This file is defined in a block of forward identical to the forward between BBSs, the port being @ and the connection line given the name of the file created or updated. The name of the BBS (possibly dummy) used will be declared in BBS.SYS, of course. Example of a forward to a file (forward to the file B:MAIL.FBB of my own private mail) : A MAIL P @ C B:\MAIL.FBB B F6FBB F F6FBB ------ End-of-file DOS command specific to a port. Each DOS command (D or X line) defined out of a forward block will be run only if the forwarding port matches with the last port selection. Example : You use the autoqsy capabilities of your HF transceiver with a special program named "ICOM". To be sure to return to your standby frequency, you must set your frequency at the end of the forward file, only if the forward applies to the HF port. You only have to select the port before running the DOS command. B xxxxxx # ------- End of last forward block # P D Select HF port (port D) X ICOM A3E8 M12 Send the DOS command ICOM with its # arguments if the file is scanned for # D port. IF and ENDIF are allowed.