TABLE OF CONTENTS
The programs contained in this package are provided "AS IS" without warranty of any kind, either express or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk related to the quality and performance of the programs is on you. In the event there is any defect, you assume the entire cost of all necessary servicing, repair, or correction. Some states do not allow the exclusion of implied warranties, so the above exclusions may not apply to you. This warranty gives you specific legal rights and you may also have other rights which vary from state to state. The author does not warrant that the functions contained within the programs will meet your requirements or that the operation of the programs will be uninterrupted or error-free.
IN NO EVENT WILL THE AUTHOR BE LIABLE TO YOU FOR ANY DAMAGES (INCLUDING ANY LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES EVEN IF HE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES) OR FOR ANY CLAIM BY ANY OTHER PARTY. SOME STATES DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO THE ABOVE LIMITATIONS OR EXCLUSION MAY NOT APPLY TO YOU.
This agreement constitutes the complete and exclusive statement of the terms of the agreement between you and the owners of Falken. It supersedes and replaces any previous written or oral agreement and communications relating to this software. No oral or written information of advice given by the owners of Falken, its dealers, distributors, agents or employees will create any warranty or in any way increase the scope of the warranty provided in this agreement, you may not rely on any such information or advice.
1.1 U.S. GOVERNMENT RESTRICTED RIGHTS
The software and documentation is provided with restricted rights. The use, duplication, or disclosure by the Government is subject to restrictions as set forth in subdivision(b)(3)(ii) of The Rights in Technical Data and Computer Software clause at 252.227-7013. Contractor/manufacturer is Chris Whitacre, P.O. Box 1703, Hanford Ca, 93232-1703
1.3 Pricing
| Lines | Price |
|---|---|
| 4 | $25.00 |
| 8 | $50.00 |
| 32 | $99.00 |
| 64 | $125.00 |
NOTE: Custom Line versions available upon request for a small fee. Upgrading Lines is only the difference in price of the lines. A Upgrade fee may be deemed necessary on future versions. No maintenance agreements necessary anymore. Prices subject to change without notice.
Send check or money order payable to:
Chris Whitacre PO Box 1703 Hanford, Ca. 93232-1703
2 Preface
2.1 Hardware Requirements
2.2 Software Requirements
2.3 Recommended System Requirements
2.4 Update Information
2.5 Source Code
2.6 Acknowledgments
And all the other Falken Sysops out there for their input on bugs, enhancements, and complaints.
Thanks Everyone.
2.7 Beta Site Information
3 Installation
3.1 Creating a BBS user account
If you have already made a 'bbs' user for Falken, you should remove the account. The installation script will do this for you.
Your users must have a way to get on to the bbs, this is done by a single account, preferably named 'bbs'. The first question the installation script will ask is for the name of this user. The default is 'bbs'.
The next question asked will be the name of the group for the bbs user. Preferably, this should be 'sysop', but can be just about anything you want. The installation script will automatically add this group for you.
3.3 The BBS home directory
The BBS home directory is where the installation of Falken will reside. This defaults to /falken, but it can be put anywhere on your system or even on it's own partition. You will need at least 50 megabytes of free space on the partition you choose to install Falken.
If you choose a directory OTHER than /falken, a symbolic link will be made from /falken to the directory you specified. Falken comes setup by default with /falken but it does not REQUIRE that directory. If you wish, you can modify all the paths in the configuration file to reflect the path of your choosing.
3.4 The /etc/profile
It is necessary to trap the CTRL-C character in the /etc/profile. This will not affect NORMAL users on the system, but this will keep BBS users from being able to CTRL-C out of the profile before the bbslogin program runs thereby giving that user access to the BBS from a bash shell. DO NOT REMOVE THESE LINES from the /etc/profile unless you REALLY know what you're doing!
The installation script will automatically do this for you. Also, a few lines will be added which will set some important environment variables for the root user. You may move these lines, but you should NOT remove them completely.
The TRAP statement should be the _FIRST_ line in your /etc/profile. A backup of the /etc/profile will be made as /etc/profile.bak
3.5 Setting ownership
For falken to run properly, ownership of all files under the Falken directory should be
The script will execute the command: chown -R bbs:sysop /falken
Next, the script will attempt to start the BBS. If there are any problems, read the /falken/mainbbs.err for information on what went wrong. After the problem is fixed you may start the bbs by typing ./startbbs from the falken directory. If you still cant get it up and running feel free to contact the Official Falken Support BBS at telnet://falkenbbs.com or send an email to the Falken Sysop mailing list. Information about the mailing list can be found at http://www.falkenbbs.com/support-info
You may want to look over the entry created in the /etc/passwd file to make sure everything looks ok. By default, the bbs user is created with NO PASSWORD. If you wish to add a password, or disable logins you should run the passwd program.
The line for the bbs user will look something like this:
bbs::502:101:Falken BBS:/home/falkenbbs:/bin/bash
What this is (in order of appearance), is the bbs account with no password, user id number 502, group id 101, name of Falken BBS (which is not important), home directory of /home/falkenbbs/ and uses the script /falken/bbslogin for its shell.
Also, if you have the shadow passwd suite, make sure the password field of the bbs shadow entry is completely blank.
4 Configuring Falken
4.1 The /etc/falken.conf file.
4.1.1 General Setup
General setup is where you enter information about your system, here's an overview of the general section of the configuration.
SysopName - Is the name of the Main Sysop, this is used for several things throughout the bbs such as newuser notifications.
SystemPassword - Is the password required at any point that security is needed.
OpenSystem - Is where you open or close your bbs to the newusers, if this is set to TRUE new users will be accepted, if it is set to FALSE then new users will be denied access.
MaxVisitorsOnline - This is the number of visitors allowed online at any one time, if you do not want visitors online set this to 0. (NOTE: Visitors have the same access as new users.)
MinimumAge - This is the minimum age limit for the user to gain access to the system.
ChatCallActive - If set to TRUE then the console bell will ring if the bbsmonitor is active.
LogFileActive - If set to TRUE all the text that is sent to the bbsmonitor's log screen will also goto the bbslog.txt file located in the directory specified for logs in the paths section. This can be TOGGLE overridden by the bbsmonitor.
FileRatio - This is the amount of FILES you're allowed to download for every one upload. Setting to a 0 disables this feature of the bbs.
MainMenuCost - Most users have figured out that you can sit at the main menu and just send to other users, this number is the amount of credits deducted from them for every minute they sit at the main menu. (NOTE: this is only beneficial to credit systems)
Last20Length - This is amount of people to show in the last callers command, this value can be from 0 to 20. Default is 20.
BBSGroup - This is the name of the group that you installed the bbs under, normally 'sysop'. If this is set to some other group than a group on the system, the mainbbs will not run. If you set this value to someone elses group on the system other than the group you have defined for the bbs, things will not work properly.
BBSOwner - This is the name of the user that you installed the bbs under, normally 'bbs'. If this is set to some other user than a user on the system, the mainbbs will not run. If you set this value to someone elses user on the system other than the user you have defined for the bbs, things will not work properly.
GlobalCommandChar - This is the char that will precede all global commands. Default is a '.' (period).
DomainName - This is the domain name of your system, this is used for sending email out of the bbs to the internet, it will be used for the reply to lines in sendmail.
TimePercall - This is where you can setup the time per call
limits. By default, a timer is set to unlimited time per
call. You have 6 levels of timers, 1 through 6, to define a
timer level you add the entry in the conf file like this.
TimePerCall
FalkenHome - This is the location of the bbs main directory.
ProgramPath - This is used for the PATH statement, it will be appended to the environment if it does not already know it.
DataPath - This is where all the databases are stored for falken.
RecordingPath - This is where all the recordings will go for the lines that have the recording option turned on, this is also where most log files will end up at.
AttachmentPath - This is where email file attachments go.
TmpFilePath - This is where Falken will create all its temp files at, usually in a sub-directory under this directory called nodeX where X is the line that the user is on.
Credits - This is the amount of credits given to a new user at login time mostly used on credit systems.
UploadCredit - This is the credit provided at login time for downloads.
TimerLevel - This is the timer level for the new users at login time, this is set from 1 to 6.
AccountType - This can be used to figure out your users by account type, it is a flag that can be used by door programs to pull users by account types.
AccountGroup - You can specify up to 4 account groups, 1-4, this is handy if you want to give all new users their own group, no one can see someone in the other groups unless they have access to that group.
StartMenu - When the user logs on you can send them to a special menu, this flag determines that menu.
ExpireDays - This is the amount of days to add to a new user after they logon.
PostingLevel - This is the level of security assigned for posting in the message bases, if a user has a posting level higher than that of a message base then they will be able to post in there.
ReadingLevel - This is the security level for the message base read mode, this value determines what bases the user can and cannot read.
DownloadingLevel - This is the download access level assigned to new users, this value determines what areas the user can and cannot download from.
UploadingLevel - This is the upload access level assigned to new users, this value determines what areas the user can and cannot upload to.
AskForHandle - On most systems you will want to allow the use of online names other than real names, setting this flag to TRUE enables it. Default is FALSE.
AskForRealName - This label if set to TRUE will ask for the users REAL name. Default is FALSE.
AskForAddress - This label if set to TRUE will ask for the users street address. Default is FALSE
AskForCity - This label if set to TRUE will ask for the users city. Default is FALSE.
AskForState - This label if set to TRUE will ask for the users state. Default is FALSE.
AskForZipCode - This label if set to TRUE will ask for the users zip code. Default is FALSE.
AskForHomePhone - This label if set to TRUE will ask for the users home phone number. Default is FALSE.
AskForWorkPhone - This label if set to TRUE will ask for the users work phone number. Default is FALSE.
AskForBirthdate - This label if set to TRUE will ask for the users date of birth. Default is FALSE.
AskForSex - This label if set to TRUE will ask for the users gender. Default is FALSE.
Biographies - This label if set to TRUE will allow new users to enter thier biographies. Default is FALSE.
Teleconference - This label if set to TRUE will allow new users to enter into the teleconference module. Default is FALSE.
SendEmail - This label if set to TRUE will allow new users to send email, a user can READ email, but cant send it if this flag is not set. Default is FALSE.
Stealth - This flag if set to TRUE will set the new users stealth flag for future logins, logging in by stealth allows a user anonymous logins from non sysop users. Default is FALSE.
SubOp - This flag if set to TRUE will grant the new user subop access to the bbs, this is not a good idea as they will be able to raise havoc on your system in certain areas. Default is FALSE.
Sysop - This flag if set to TRUE will grant the new user sysop access to the bbs, this is not a good idea as they will have complete control of your bbs. Default is FALSE.
Downloads - This flag if set to TRUE will allow new users into the download module. They still have to follow the up/download security issues though. Default is FALSE.
FidoNetMail - This flag if set to TRUE will allow new users to send FidoNet mail (if your system is on that kind of network). Default is FALSE.
FidoEchoMail - This flag if set to TRUE will allow new users to post in message base areas defined as Fidonet areas. They will still have to follow the security issues though. Default is FALSE.
CanTalkToGroup - This label is usually followed by a number from 1 through 4, this will allow .sends to the group specified. You must define each label on a different line. Default is 1.
CanSeeGroup - This label is usually followed by a number from 1 through 4, this will allow users to see other users on the system of that group. Keep in mind that one group needs to be defined or your .who will be blank for that user. Default is 1.
CanAccessMenu - This label is usually followed by a number from 1 to 32. This number works in conjunction with the MenuEntry label defined later in this document. You must define only one access per line. Default is 1.
MustReadBulletin - This label is usually followed by a number from 1 through 32. You may only define one bulletin per line.
4.1.5 Logon Doors.
LogonDoorEntry - This label is usually followed by some text, there are 2 parts of this, the command, and the pause seperated by a comma. You may specify parameters to the command. The second part of this line should read paused or nopause, this will tell falken what to do after the door is ran. Look at the supplied falken.conf file for examples of this entry.
You can specify up to 8 modules to be ran at login time, 2 that come with the bbs is bulletin and email, when the word login is passed to these doors as a parameter the will do a new scan for either bulletins or email and act accordingly from there.
4.1.6 Menu Setup
There are menu sets with 30 available slots, you define the keys needed to access the menu, what action to take when that key has been entered, whether its an internal '@' or external command (module) and what it costs, if anything, per minute, and a door identification label. You can really customize your bbs here by providing several menus with different things on them, move to other menus.
4.1.7 Automatic Door Execution
AutoDoorDef - This entry is made up of three parts, the first is the day in which to run it on with 0 being sunday, 1 being monday and so on. You can enter the word ALL to make that door run everyday. The second part is the time, the time entry is done in the HH:MM format, setting this to 00:00 will make the door run at boot time. The last entry is the actuall command to run with any parameters. ALL entries must be comma seperated.
4.1.8 Protocol Entries
ProtocolEntry - This label is made up of five parts. The first being the type of protocol it is, valid entries are UL and DL for upload and download. The second entry is the key choice provided to the user. The third entry is the actual command issued by the bbs. The fourth entry is the batch indicator, valid entries are 0 for no batch and 1 for batch tranfers. Last entry is the name of the protocol. ALL entries must be comma seperated.
4.1.9 User Definables.
CanChangeRealName - This label if set to TRUE will allow the user to change its real name at anytime they want via the useredit program. Default is FALSE.
CanChangeAddress - This label if set to TRUE will allow the user to change its address at anytime they want via the useredit program. Default is FALSE.
CanChangeCity - This label if set to TRUE will allow the user to change its city at anytime they want via the useredit program. Default is FALSE.
CanChangeState - This label if set to TRUE will allow the user to change its state at anytime they want via the useredit program. Default is FALSE.
CanChangeZipCode - This label if set to TRUE will allow the user to change its state at anytime they want via the useredit program. Default is FALSE.
CanChangeHomePhone - This label if set to TRUE will allow the user to change its home phone number. Default is FALSE.
CanChangeWorkPhone - This label if set to TRUE will allow the user to change its work phone number. Default is FALSE.
CanChangeSex - This label if set to TRUE will allow the user to change its gender on the bbs. Default is FALSE.
CanChangeComment - This label if set to TRUE will allow the user to change its comment anytime they want via the useredit program. Default is TRUE.
Just a note about menus, Falken handles Menus a little different than most bbs's. There are 4 steps to change menus. First, you must edit the configuration file to reflect the changes you wish to make to the bbs. Second you must modify the menus or .msg files to reflect the changes you made to the user. Third you must re-index the index database with idxmaker. Fourth, as of this time you must restart the bbs to read in all the new files. (We are working on automatic updates.)
MenuName - Here you define your menu names this is a two part entry, menu number followed by menu name seperated by a comma. This will set the menu name of menu X to the supplied menu name.
MenuEntry - This label has five entries, the first entry is the menu number to place this entry into, this number should be between 1 and 32. The second entry is they key to assign to this menu entry. The third entry is the actual command, this command can be one of the internal door names, or a actual external program to be ran. To run this door in binary mode you must place an '*' as the first charactor of the command line, this will detach falken from this door and allow it to do its own thing. You do not want to use the '*' for Falken specific doors as you will just hang in limbo waiting for input. The fourth is the cost per minute in credits to use for this door. The fifth is the DOORID string, this is what a user see's when they type .who, to ignore the DOORID string, simply put a '!' as the entry, not placing anything there will cause the parser to fail. ALL entries must be seperated by a comma.
4.1.11 Message Base Entries.
MsgBaseEntry - This label is made up of 15 entries defined as follows. The first entry is the message base name. The second entry is the anonymous flag, valid entries are 0 for OFF and 1 for ON. The third entry is the fidonet flag, valid entries is 1 for FIDOnet base, or 0 for regular base. The fourth entry is the real names flag, enter a 1 for use real names when posting or a 0 for use handle when posting. the fifth entry is to append the origin to the letter when saving, valid entries are 1 for append, or 0 for do not append. The sixth entry is to export ASCII only, this flag is not really used any longer, valid entries are 1 for on and 0 for off. The seventh entry is the security level to post in this area. The eight entry is the security level to read messages in this area. The nineth entry is the base filename to use for this area, do not append a extension to this as several different extensions will be used in conjunction with this name. The tenth entry is the FIDOnet node address used for this base. The entry must be made even if you dont have a FIDO Address, default is 0:0/0. The eleventh entry is the moderator of this area, default is sysop, the moderator has special powers in his base and can delete messages. The 12'th entry is the Echo Tag used by fbbsecho, default is None. The thirteenth entry is the FIDOnet origin for this area, this is the origin line that would be appended to the message if you have that flag set. The fourteenth flag is amount of days to keep messages in that area. The 15'th flag is the maximum messages in that base.
4.1.10 Filebase Entries
FileBaseEntry: This label is made up of 12 parts defined as follows. The first entry is the name of the area. The second entry is the validation entry, setting this to a 1 will mark files available for download imediatly after uploading, setting this to a 0 requires you to validate the file. The third entry is the age entry, this is the age requirement of the current area. The fourth entry is maximum amount of files allowed in this area. The fifth entry is the compensation entry, this is the amount of payback given to the user which uploads the file. The sixth entry is the cost to download files out of this area, this is deducted from the users credits. The seventh entry is download security level for this area. The eigth entry is the upload security level for this area. The ninth entry is the group designation for this area. Filebase areas can be designated into groups such as hard-disks, cd-roms, offline, ect. Then third party utilities can be used to manipulate the databases in according to these groups. The tenth entry is is the moderator of this area. The eleventh entry is the directory in which the files are actually found. The 12'th entry is the filename used for the index of this area.
Falken now uses a database to utilize the different language
files, different graphical files. These entries are defined
in the falken.conf file now under the label of
IndexEntry: This label is made up of 4 entries, the first
being the text that is displayed to the user, the second
being the database name (do not append a extension to this),
the third being graphic type, 0=Text, 1=ANSI, and 2=RIP. The
fourth entry determines if the language is available,
setting this to a 0 will disable it for you to work on,
setting this to a 1 will allow users to useit.
4.2 Messages File
There are message files that allow you to customize your Falken bbs system to better suit your needs, you should have one for each language specified in the falken.conf file. On these files there are several hundred labels, each label is for a different section of the bbs. Each label is started with an opening bracket { and ends with a closing bracket }, everything inside these brackets is the text that the user will see, you may also embed special characters in this text such as a carriage return or a system label. All system labels start a with @, e.g. @handle will substitute the users handle in place of @handle. You may also specify the use of an external file such as a main menu screen by providing the filename of the file, e.g. @mainmenu.ans, this will print the external file called mainmenu.ans instead of the text for the main menu. You may also use the system labels in external files. You may also space pad a system label bye attaching a set of brackets with the number of spaces to pad the label with, e.g. @handle[30] will substitute the label with the users handle and pad it 30 spaces, it will also cut of any characters after the 30th space, you can use this to cut a long label such as the users comment down to 30 characters to line up a menu better.
The idxmaker program is the main program that takes the information out of the specified messagefile and converts it into the necessary index files needed by Falken to run, each time you modify a message file you must run the idxmaker program to make the changes in your index files for Falken. You should _NOT_ under any circumstances run idxmaker while the BBS is running. The idxmaker program takes two parameters to run, these are the name of the file you wish to convert and an output name. e.g. idxmaker msgfiles/msgansi data/englansi will convert the msgansi.msg file over to the needed index file for all the ANSI users.
5.1 The /etc/rc.d/rc.local file
The /etc/rc.d/rc.local file is where you may have Falken load and run at boot time. An example that will load the mainbbs module would be /falken/bin/mainbbs. This will load and run the mainbbs module at boot time. Be aware that you'll need to set the environment variables before Falken will run. Here is a sample rc.local entry
echo "Starting the BBS" FALKENDIR=/falken export FALKENDIR /falken/bin/mainbbs > /tmp/mainbbs.start
5.2 Manually starting Falken
To manually start Falken up login to the system change to the /falken directory and type ./startbbs, the system will come online just as like normal. If all of your permissions are set correctly, you do can run the mainbbs daemon as the BBS user. You can issue the following command to set proper ownership of all files under the /falken directory:
chown -R bbs:sysop /falken
5.3 The bbslog.txt file
The bbslog.txt file is where all the text goes to if you have the log file activated in the configuration file, this file is now stored in your recordings directory.
To install a module (door) for Falken, all you have to do is put the command line parameter on the menu line in the function section. This should include any command line parameters that the door requires. Remember, a internal function starts with a @ and a module does not. To run a module in RAW mode you must add a * in front of the program name e.g. *telnet, a little information on RAW mode, when a user logs in, the bbslogin program takes the line out of RAW mode and puts it in the required mode needed for Falken, when a run module command is received it checks to see if it should be ran in RAW mode by checking if the first character is a *, if it is, it will reset the line back to its original state that Linux setup and not touch the port, it is then up to the door to manipulate the port for incoming characters. When the door exits Falken will reset the line back to the way Falken needs it when its done.
The broadcast module included with Falken will broadcast a message to all users online while the bbs is running, this can be handy for announcing that your going to reboot the system, or whatever you need it for, you must provide text for the program to broadcast.
Falken can have up to 32 bulletins, the bulletin module is the program that will read the bulletins, it will look for bulletins in the mainbbs/bulletins directory numbered from 1 to 32, e.g. bulletin.1 the bulletin will check the timestamp of the file against the timestamp of the last time you read bulletins and decide whether or not they are new, if they are new and the must read flag is set in the configuration then the user cannot do anything until that bulletin is read. If it is not marked as must read then the bulletin is marked as updated, you may provide a parameter of LOGON and place it in the login doors section of the configuration file and all bulletins are checked at login time, if there is a new bulletin the user will not be allowed to leave the bulletin program until they have all been read.
The download module is where your users will be able to get and send files, There are several commands available in the download database which we will discuss one at a time.
6.4.1 Area Change (A)
The command for changing areas in Falken is A, you will be able to change to an area that you have access to, in order to have access to an area you must have access to either the download flag, or the upload flag, you will be denied access to the area even if you have access to it if the age limits are not met.
The batch maintenance is where you maintain your batch queued at, The commands for this area are D for download queue, K for kill all files in queue, R for remove files in queue, and Q for Quit maintenance.
If you clear all your counters, your new files time stamp will be set to 0, this will make all files NEW to your scan.
The command for listing all available areas you have access to is *, this will give the user a 2 column listing of areas they have access to.
To get a listing of all files sent to your bbs after the last time of the newscan for that area was performed, you will be prompted for a yes or no answer to scan all available file bases.
To get a listing of all files within the current area that you are in, this listing will show up to 15 files depending on how many are in the database, you will be given a second prompt of commands for the listing function. The A command will show you extended information about the file you select. The C and ENTER key are the same, they will continue on with the listing. The T command will add a file to your batch queue if there is enough room for it, you are allowed up to 10 files in the batch queue. The Q command will quit the listing and return to the main menu. The S command only works in Newscan mode, while scanning the user may select S to skip that area and move on to the next.
This will exit the download module and return you to the menu that started the download program.
You may search for keywords with the download database, you can specify a filename search, a description search or search both filename and description. You will also be asked to search all databases. When files are found you are placed back into the list file mode until all searches are done.
Here you can upload files to the bbs, Falken cannot determine that the connection provided is on a keyboard or an actual connection, so, to do a local upload of files you must do a .local command before you try to upload, if the upload is a local upload it will ask for a path and a filename, if it is not a local upload it will ask for a filename only, a local upload can upload one file at a time, a regular upload can upload 10 at a time as long as the protocol supports batch. Once files are received, Falken will determine whether or not they are to be validated or not, if the validation flag is set they are available on the first listing, if the validation flag is not set they are not available until validated through the sysop commands. The .local command is sysop access protected.
The Sysop menu is a completely different menu in itself. From the sysop menu you may work on the download database, save files, edit files, delete files, validate files, move files, etc. Certain commands are available from the main download menu as dot commands.
You can edit who sent the file, the file's group, and the description of the file from the E command.
This will print the help menu defined in the .msg files.
This will validate all files that are not validated in the download database, you will be asked to validate all areas or current. You can also access this function from the main download menu by typing .validate or .validate all at the main menu prompt.
This is not the conventional uploading of files, what this function does is checks the directory of the are for files, then it will check the database against the files that it finds in the directory, if it finds a file that is not in the database it will ask you for the proper information and upload the file to the database. You will also be prompted on whether or not to upload all areas. You can also access this function from the main download menu by typing .upload or .upload all.
You can remove a file from the database by selecting R, this will search the database for the file specified and remove it, then ask if you want to delete the actual file or not. You can also access this command from the main download menu by typing .remove.
6.4.16 Move File (M) (SYSOP MENU)
You can move a file from one download database to another by selecting M, you may also do this by typing .move
This command will give you a raw listing of the directory that your currently in. You may also access this function by typing .rawdir from the main download menu.
To return to the main download menu.
6.5.1 Delivery Status (D) You may check the status of a letter that you sent to another user with this command, the letter must pass 3 tests before it is returned, 1, the letter must be marked as new, 2, the letter must belong to you, and 3, the letter must not be marked as Validation Feedback, if all three tests pass then it will be returned un-delivered. If a letter is returned UN delivered the user can do one of 3 things, they can copy it to another user with the C command, they can delete it with the D command, or they can ignore it and continue with the N command or the ENTER key. 6.5.2 List Email (L) This will give you a listing of all the email available to the user in the format specified in the .msg files.
6.5.2 Multi-Mail (M) You can have mailing lists in your email databases, each mailing list requires a name, owner and up to 25 users in the list.
6.5.3 Create List (C) Multi-Mail Create a mailing list, the mailing list will be assigned an owner, the person that creates the mailing list, this is the only person that can modify, delete, or write to the list.
6.5.4 Delete List (D) Multi-Mail Delete a mailing list by name, only the owner may delete the list, once a list is deleted, there's no getting it back.
6.5.5 Modify List (M) Multi-Mail The owner of the list can modify the mailing list with this command. 6.5.5.1 Add User (A) Multi-Mail Modify List You may add up to 25 users to the opened mailing list, if the username is a valid user then they are added to your list. 6.5.5.2 Delete User (D) Multi-Mail Modify List You may delete users off this list one name at a time. 6.5.5.3 List Users (L) Multi-Mail Modify List This will give you a listing of all the users in the mail list. 6.5.5.4 Save List (S) Multi-Mail Modify List You must save the list for the changes to take effect, if you do not save the list then all changes you made to it are lost.
This will leave the modify list function, if you didn't save the list, it will ask you to save it. 6.5.6 List Lists (L) Multi-Mail The list lists function will show you all available mailing lists available for you to write to, they are listed by names and the amount of users in the list.
6.5.7 Write List (W) Multi-Mail When you write to a list, you write a letter just as you would normally, you use the same editor, the same commands, everything, the only difference is, that when you save the letter it will send to everyone in the mailing list. If you have sent a file to the list it will be distributed to all users in the list.
6.5.8 Quit Multi-Mail (Q) Multi-Mail Returns you to the main email menu.
6.5.9 New Email Scan (N) This function will scan the email database for new email for the user, if there is new email waiting then you will be placed in (R)ead mode. 6.5.10 Purge Email (P) Purges Email either by (O) Old email or (A) all email. 6.5.11 Quit Email (Q,X) Returns you to the menu that you loaded the email module from.
6.5.12 Read Email (R) Reads all email starting with the first letter in the mailbox. 6.5.12.1 Again (A) READ MODE Read the current letter again. 6.5.12.2 Delete (D) READ MODE Delete the current letter. 6.5.12.3 Forward (F) READ MODE Forward the letter to another user. A 3 line comment is allowed for the receiver of the letter. 6.5.12.4 Read Next (N) READ MODE Read the next letter available in the database. 6.5.12.5 Reply (R) READ MODE Reply to the user that sent the letter. 6.5.12.6 Quit (Q,X) READ MODE Exits read mode and returns you to the main email menu. 6.5.13 Write Letter (W) Writes a letter to another user, once all the proper information has been entered the editor is invoked.
6.6 The Feedback module
The Feedback module will send a letter to the username provided as a command line parameter, The syntax is /U:USER if none is provided the name for the sysop provided in the configuration is used. You may have more than one feedback available as an option by supplying different names to the module. This is great for having a feedback module for your download moderators, message base moderators, main sysop, whatever you need one for.
6.7 The Message base module The message base module is made up of up of unlimited areas, each area can have its own moderator as well as be set to anonymous postings. If the base has anonymous posting, it will ask the poster if they want it anonymous. 6.7.1 Area Change (A) You can change into another area if they have access to that area, they must have read access to be able to access the message base area. 6.7.2 Clear Counters (C) This clears all last read counters in the users account, all messages will become new to them if they clear counters.
6.7.3 Delete Message (D) A message can be deleted from the main menu if the message and response number is known, the entire message is deleted if response 0 is the response being deleted. Only a sysop, moderator, or owner of the message may delete it. 6.7.4 List Areas (L) Gives a listing of available areas and a count of messages in that area. 6.7.5 Newscan Areas (N) Selecting N will scan the message base areas that the user has set as scanned, and have access to. 6.7.6 Post Message (P) Post a message in the current area, the editor supplied is the standard Falken editor. 6.7.7 Read Messages (R) This will read ALL the messages in the current area starting with the first available message in that area.
6.7.7.1 Again (A) READ MODE Read the current message again. 6.7.7.2 Backup (B) READ MODE Backup to the previous message. 6.7.7.3 Delete (D) READ MODE Delete the current message. Only the sysop, moderator, or owner of the message may delete the message. 6.7.7.4 Jump (J) READ MODE Jump to the next scanned base, this is a newscan only command if not in new scan this is not used. 6.7.7.5 Next (N) READ MODE Read the next available message. 6.7.7.6 Reply (R) READ MODE Reply to the current letter, this will tack the message that is entered to the end of the current message as a response. When a message is replied to, the original message's time stamp gets updated as well, this will cause the original message to be displayed again when a new response has been posted.
6.7.7.7 Quit (Q) READ MODE Returns from the reading mode, if in new scan it will abort the newscan of areas. 6.7.8 Titles (T) Lists the titles of the messages in the database. 6.7.9 Quit (Q,X) Quits the message base and returns to the menu that loaded the message base module. 6.7.10 Advance (>) Advance to the next available message base area that you have access to. 6.7.11 Backup (<) Backup to the previous available message base area that you have access to.
6.8 The new user module This module is ran whenever someone logs in and types the word new for an account name, it will check the allow new callers flag in the configuration file and exit if it is set.
6.9 The Teleconference modules The teleconference system for Falken is made up of 2 separate modules, the first one being the actual teleconf module, and the runtlcf module, the startlcf module is not used any longer because of problems on certain systems. Setup: Setting up the teleconference module is easier than ever before, all you need to do is add it to the menu, all files that are needed by the teleconference module are stored in the data directory now. Simply copy your tlcfname.bad and tlcfname.act files to the data dir, and add the runtlcf to your menu in the bbs.
e.g. TLCF TLCF/runtlcf /N:TLCF /P:password /A:18
(NOTE: You can have a cost for credit users, but the doors id field will be over written by the teleconference module.)
The /P: (for password) and the /A: (for age) are not
required, and the /N: (for name) defaults to TLCF. The
file
(NOTE: All filenames are converted to lowercase before
accessed)
6.10 The sysop module
The sysop module is a systems operator's module, this is
password protected by the password defined in the configuration
file. You may edit the users account here whether they
are online or not. The menus in this file are not
configurable so all the commands will be in the menus.
6.11 The userbios module
The userbios module allows your users to put some tad bit of
information in for others to view via the .user command.
6.11.1 Add BIO (A)
Add user biography to the database, it starts off by asking
the questions defined as bio_question_one on up, then it
puts them in the editor and lets them type up to 15 lines of
text about themselves.
6.11.2 Delete BIO (D)
Allows the user to delete their user bio.
6.11.3 Edit BIO (E)
Allows the user to edit their user bio.
6.11.4 View BIO (V)
Views a certain user's biography.
6.11.5 Quit (Q)
Quit and return back to the menu that loaded the module.
6.12 The user editor
This is the online user editor, its a small editor that will
allow users to change certain things in their account record.
As of version 11 you can specify which things that are
changeable in the user editor.
6.12.1 New Comment (A)
Allows the user to change their comment to better suit their
needs.
6.12.2 Screen Settings (B)
Allows the user to change their screen settings in rows and
columns.
6.12.3 Short Menus (C)
If the short menus are set then all they will get is the
_short menu from the msg files.
6.12.4 Graphics (D)
Allows users to set the graphics.
6.12.5 Line Feeds (E)
Changes the user's line feed settings.
6.12.6 Password (F)
Allows the user to change their password.
6.12.7 Hot Keys (G)
Allows users to turn on their hot keys system, this will work
with most of the bbs, certain areas are disabled for
operational purposes, hot keys are disabled when entering
doors, and reset to their value when they come out of it.
6.12.8 Handle (H)
Allows the user to change their handle, this is not a good
idea to allow, but it is allowable now.
6.12.9 Real Name (I)
Allows the user to change their real name, again, this is
not a good idea, but it is allowable now.
6.12.10 Address (J)
Allows the user to change their street address by themselves.
6.12.11 City (K)
Allows the user to change their home city.
6.12.12 State (L)
Allows for a user to change their home state.
6.12.13 Zip code (M)
Allows for a user to change their Zip code.
6.12.14 Home Phone (N)
Allows for a user to change their home phone number.
6.12.15 Work Phone (O)
Allows for a user to change their work phone number.
6.12.13 Sex (P)
Allows for a user to change their sexual status.
6.12.14 Toggle FSE Flag (R)
Will toggle the status of the FSE flag, if this flag is
set the jeditor (Full Screen Editor) will be used instead
of the line editor.
6.12.15 Inet Email Name (S)
This feature is not available at this time.
6.12.15 Forward Address (T)
This feature is not available at this time.
6.12.16 Quit (Q)
Quits the editor door and returns to the menu that loaded
the door. If the information has been modified the user
will be asked to save it first.
6.13 The XYZ protocol Module
The 2 provided XYZ modules are called directly from email,
they take only one parameter and thats the full filename to
be sent.
6.14 The bbslogin module
The bbslogin module is the main login program for Falken, it
will handle all the requests from the user and pass them to
Falken, and pass all Falken's requests back to the user.
Once this module exits the login session is completed and
the process is killed. NOTE: The system environment
FALKENDIR must be set before this program is ran, if it is
not then it will exit.
6.15 The killbbs module
This program will halt all bbs logins and shut down all
Falken's programs and modules, doors, whatever Falken has
executed will be halted.
6.16 The Acctedit module
This is the account editor for Falken's user account, this
can be ran from a shell but the bbs must be up, this cannot
be used as an online door. One of the most confusing things
about the acctedit module is the fact that there are 2 sets
of screens per user, to see the second screen press the 'F'
key to Flip screens, this is where all the security settings
are stored.
6.17 The bbsmonitor module
The bbsmonitor module monitors all Falken's progress, it can
talk to the users, lock on to their lines, monitor their
lines, kill lines, record lines, monitors all door activity,
all line activity, and it can halt the bbs completely. This
program must be started from a shell, and not from a bbs
login.
6.18 Writing Modules
Writing modules for Falken is a easy task, you only have to
follow certain rules. There is a seperate file available to
describe how to use the falken API. There is a more exclusive
documentation in this file for writing Falken specific
modules in C.
6.19 The Falken Editor
Falken utilizes the same editor for E-Mail, Downloads, Bio-
graphys, Messages. Its a straight forward line editor. While
in command mode you can manipulate the current letter to
some extent. You are allowed 100 lines of text per letter.
6.19.1 Abort Message (A)
Aborts the current message being sent.
6.19.2 List Message (L)
Lists the text that has been entered so far.
6.19.3 Replace Text (R)
Will replace a line of text with the line provided.
6.19.4 Save (S)
Saves and sends the letter to the user specified.
6.19.5 Quote (Q)
Quotes the current letter text to your letter, this is
only available on replies.
7.1 Introduction to Global Commands Global commands are commands that can be used just about anywhere on the system. EVERY global command is preceded by a '.' There are certain global commands which are only available to sysops. You may wish to make a help file with these commands.
7.2 User Global Commands
7.2.1 .who
This command displays the "Who is On" listing.
7.2.2 .status
Shows the user's status screen.
7.2.3 .last20
Lists the last20 callers to the bbs.
7.2.4 .ignore
This command takes one parameter of the user to ignore. For example: .ignore john would ignore the person with the username 'john'. To turn this off, use the .noignore command. 7.2.5 .busy
This command will turn off the user's ability to receive global messages. Use the .nobusy command to turn the busy flag off. 7.2.6 .send
This command is used to send private messages from one user to another. The format is as follows: .send john this is a private message You can substitute the username by the line number as well. .send 0 this is a private message will send a message to the user on line 0. You can also abbreviate this command with .s
.s 0 this is a private message
will send a private message to line 0 as well.
7.2.7 .logoff This command will log the user off the system immediately.
7.2.8 .relogon
This command will log the user off and bring them back to the login screen where they can log back in.
7.2.9 .user
This command will display a user's biography. If you have sysop access, it will display the full information about a user.
7.2.10 .lastlogon
This command takes one parameter; a username. This displays the last login time of the named account. 7.2.11 .userlist
This command displays the userlist.
7.2.12 .time
Displays the current date and time on the BBS
7.2.13 .ansi/.rip
These commands turn on ANSI or RIP graphics. They can be turned off with .noansi or .norip
7.2.14 .noansi/.norip
These commands turn off ANSI or RIP graphics and place you in text mode.
7.3 Sysop Global Commands
These are commands that only users with sysop level access can run. The only exception is .subop which can of course be run by SubOps. 7.3.1 .lines
This display the lines in use, their corresponding tty, and the PID of ./bbslogin
7.3.2 .run
This command will run a specified command. Remember, to run BINARY (RAW) programs, you must prefix the command with a *. For example, you can use: .run *bash
7.3.3 .stealth
This will make you invisible from normal users. Other sysops will be able to see you. You can cancel this with the .nostealth command. 7.3.4 .menu
This will display the menu configuration for the menu you are on.
7.3.5 .note
This will put a note in the sysnotes.txt file in the main bbs directory.
7.3.6 .sysop
This will broadcast a message to other sysops on the system.
7.3.7 .notimer
This will turn off the idle timer. If you enter or exit a door, this flag will be reset and you will need to turn the timer off again.
7.3.8 .kill
This command can take a username or line number as a parameter and logs that line/user off of the system immediately.
7.3.9 .gag
This command will 'gag' a user. They will not be able to talk in the teleconference. Use .nogag to unflag the user. When the user disconnects and reconnects, he/she will no longer be gagged.
7.3.10 .broadcast
This command takes a parameter of a message to send to all users currently logged on. Usage is in the form: .broadcast message to broadcast 7.3.11 .subop This command will broadcast a message to all subops (and sysops?) on the system.
7.3.12 .extend
This will extend a users time allowed on the system. Usage should be: .extend john
for a 30 minute extension.
7.3.13 .yank
This command takes a parameter of a username. This will bring a person into sysop chat. The user will not be able to leave the chat until you type .unfix username 7.4.14 .serialnum Will display the systems current serial number status.
8 System Labels Reference 8.1 Labels available in the mainbbs module.
@handle User's Handle @realname User's Real Name @address User's Street Address @city User's City @state User's State @zip User's Zipcode @logontime User's Logon Time @timeonline User's Time Online @timeleft User's Time Left Online @line User's Line Number @area User's Location on the bbs @timerlevel User's Timer Level @flags User's General Access Flags @comment3 not used any longer @acctdate User's Account Creation Date @ansi User's Graphical Setting @baud User's Baud Rate @sysop Sysop Indicator @birthday User's Birth date @homephone User's Home Phone number @workphone User's Work Phone number @expiredate User's Expiration Date @logons User's Logons this billing @totlogons User's Total Logons @connecttime User's Connect time this billing @totconnecttime User's Total Connect time @tlcftime User's Teleconference time @credits User's Credits @logondate User's Logon Date @acctnum User's Account number @sex User's Sexual status @age User's Age @setup1 User's Setup Question number 1 through 6 @setup2 @setup3 @setup4 @setup5 @setup6 @new User's New Account flag @time_left_today User's time left today @date Current System Date @downloads User's total downloads @uploads User's Total uploads @downloadk User's Download in K @uploadk User's Uploads in K @accttype User's Account type @use_credits User's uses credits flag @comment2 not used any longer @comment User's comment line @menuflags User's Menu Access Flags @last_num Last20 caller number @last_date Last20 Caller date @last_name Last20 Caller Name @message Message Text for .sends etc.. @counter Generic Counter @time Current System Time @lfeeds User's Line feed status @acctstatus User's account status, Validated, New, etc. @screensize User's screen size 80 X 24 format @callernum Current Caller number @last_from Filled with last20 City/State @last20count Last 20 counter 1 - 20 @question_one User Biography answers 1 through 5 @question_two @question_three @question_four @question_five @biography Actual biography text @string1 Generic use string @string2 Generic use string @string3 Generic use string @string4 Generic use string @string5 Generic use string @string6 Generic use string @string7 Generic use string @string8 Generic use string @string9 Generic use string
8.2 Labels available to the bulletin module.
@handle User's Handle @realname User's Realname @timeleft User's time left online @credits User's Credits left @time Current system time @date Current system date @counter Generic Counter @status Bulletin Status MUST READ/READ @bulldate Bulletin Date @bullsubject Bulletin Subject
8.3 Labels available to the download module.
@handle User's Handle @realname User's Realname @timeleft User's time left online @credits User's Credits left @time Current system time @date Current System Date @counter Generic Counter @area Current Area @filesize Size of file @filename Filename of file @filedesc Description of file @fileowner Who uploaded the file @filedate When the file was uploaded @filegroup Group of the file @filesent Amount of times file was sent @filesendtime How long it will take to send file @protokey Protocol key @protoname Protocol Name @protobatch Batch support flag @status Status Flag indicator @shortdesc Short description of file, 80 chars @moderator User that is moderating this area @totalfiles Total Files in a area @group Group of current area @text Temporary Text buffer.
8.4 Labels available to the editor module.
@handle User's Handle @from Who the letter is from @subject Subject of the letter @listtext Text from the list text @memory Amount of memory needed for the text. @input_filename Filename of the input from Email @maxlines Maximum lines of the letter @to Who the letter is to @alltext Listing of all text entered so far @listcounter List counter of the lines
8.5 Labels available to the email module.
@handle User's Handle @realname User's Real Name @timeleft Time Left for this call @credits Credits left @time System Time @date System Date @addressee Who the letter is to @counter Generic Counter @subject Subject of the letter @from Who the letter is from @letterdate When it was wrote @lettertime What time it was wrote @totalemail Total email in your box @new Amount of new email in your box @listname Multi Mail List name @listuser Multi Mail User Name @listentries Multi Mail total users @lettertext Text of the actual letter @text Temporary text buffer @filename Filename of attached file @filesize Filesize of attached file @old_search_text Not used any longer @cur_search_text Not used any longer @node Fidonet node listing
8.6 Labels available to the feedback module.
@handle User's Handle @realname User's Realname @timeleft User's Time Left @credits User's Credits left @time Current Time @date Current Date @addressee Who's the letter to @counter Generic Counter @subject Letters subject @from Who's the letter from @text Generic text buffer
8.7 Labels available to the msgbase module.
@handle User's handle @realname User's Realname @timeleft User's time left online @credits User's credits left @time Current system time @date Current system date @from Who the message is from @counter Generic Counter @msgtime When the message was wrote @subject The subject of the message @msgnum The Message's stored msg number @totalmsgs Total messages in that area @basename Subject name of the current area @moderator Moderators name of the current area @newmsgs New messages in this area @msgdate Date message was wrote @scanned Area scan indicator @totalareas Total areas available @text Temporary text buffer @msgtext Actual text of the message @touser Who the message is to @node Node which the message came from
8.8 Labels available for the newuser module.
@handle User's Handle @realname User's Realname @street User's Street @city User's City @state User's State @zip User's Zipcode @line User's Current Line number @ansi User's graphical settings @baud User's baud rate @birthday User's Birthdate @homephone User's home phone @workphone User's work phone @acctnum User's Account number @sex User's Sexual status @age User's Age @setup1 User's setup questions 1 through 6 @setup2 @setup3 @setup4 @setup5 @setup6 @lfeeds User's Line feed setting @screensize User's Screen size
8.9 Labels available for the xyz modules.
@handle User's Handle @realname User's Real Name @timeleft User's Time left @credits User's Credits @time System Time @date System Date @protokey Protocol Key @protoname Protocol Name @protobatch Batch Availability
8.10 Labels available for the teleconf module.
@handle User's Handle @realname User's Realname @tlcftime User's time in teleconf @credits User's Credits left @message Teleconf message @conftype Teleconference room type @confname Teleconference room name @confsubj Teleconference room subject @channel User's channel number @cbtotalmsgs Total Chalk board messages
8.11 Labels available for the userbios module.
@handle User's handle @realname User's real name @address User's street address @city User's City @state User's State @zip User's Zipcode @logontime Time user logged on @timeonline Time user has been online @timeleft Time left for this call @line User Line number @area User's Location on the bbs @timerlevel User's Timer Level @flags User's general access level flags @acctdate Date account was created @ansi User's Graphical settings @baud User's baud rate @sysop Sysop Marker @birthday User's Birthdate @homephone User's home phone number @workphone User's work phone number @expiredate Date the account expires @logons Logons this billing @totlogons Total logons @connecttime Connect time this billing @totconnecttime Total connect time @tlcftime Time spent in teleconference @credits Credits left @logondate Date of last Logon @acctnum User's account number @sex Male or female @age User's age @setup1 Account setup question 1 @setup2 Account setup question 2 @setup3 Account setup question 3 @setup4 Account setup question 4 @setup5 Account setup question 5 @setup6 Account setup question 6 @new The new_flag @time_left_today Timeleft today @date Current date @downloads # files downloaded @uploads # files uploaded @downloadk Size of total downloads @uploadk Size of total uploads @accttype Account type @use_credits Does this guy use credits @comment User's comment @menuflags Which menu flags are set @time Filled with the time. @lfeeds Filled with line feeds setting @acctstatus Account Status @screensize Screen settings @hisher Filled with sex @question_one Bio question one @question_two Bio question two @question_three Bio question three @question_four Bio question four @question_five Bio question five @biography Bio Text @counter Generic Counter @text Letter Text.
8.12 Labels available to the useredit module.
@handle User's Handle @realname User's Realname @timeleft User's time left online @credits User's credits left @time Current system time @date Current system date @comment User's Comment @screenchars User's screen char setting @screenlines User's screen length setting @verbose Verbose menu setting @graphics User's Graphical setting @linefeeds User's Linefeeds setting @password User's password @hotkeys User's hot key setting @address User's address @city User's city @state User's state @zipcode User's zipcode @homephone User's Homephone @workphone User's workphone @sex User's sexual status @fse_flag Use FSE or line editor
8.13 Color Codes available to all modules. The following color codes are self explanatory, the codes that are preceded with a b are bold codes. @off turns off all colors, and @clear sends a home cursor and clear screen code to the user.
@black @blue @green @cyan @red @magenta @yellow @white @bblack @bblue @bgreen @bcyan @bred @bmegenta @byellow @bwhite @off @clear