=============================================================== Multi-Talk V0.920 - Multi-user Teleconference for the Amiga(tm) Documentation - August 4, 1992 - =============================================================== Copyright (c) 1992 by Sam Yee. All rights reserved. ====================================================================== COPYRIGHT ========= The program, Multi-Talk and its documentation are written and copyrighted by Sam Yee. The UNREGISTERED version of Multi-Talk may be distributed freely providing the following restrictions are satisfied: o Distributors may not charge more than the cost of a diskette used in the distribution of this program. o Distributors may only distribute the unmodified copy of the original program, along with its documentation, and copyright notices intact. o Commercial distribution is only possible with written permission from the author. The REGISTERED versions of Multi-Talk may not be redistributed. Redistribution is illegal, immoral, and strictly prohibited. ====================================================================== DISCLAIMER ========== This program and its documentation are provided "as is". No warranties are made with respect to the accuracy, reliability, performance or operation of this software and information. You are using this program at your own risk. The author is not liable for any damages that may have been caused by using this software. ====================================================================== INTRODUCTION ============ MTalk (short for Multi-Talk) is a multi-user teleconference system for the Amiga(tm) series of computers. It can run on any bulletin board system (BBS) that supports standard input and output. It can also run without a BBS. The reason why MTalk was created was because there was, until now, no decent conferencing software for the Amiga(tm) which provides the features and flexibilities of MTalk. All documentation in this file is directed to the system operator, not other users of MTalk. Users of MTalk should read the on-line help on how to operate it when it's running. Note, since MTalk is so complex, it's likely I will miss documenting certain things. If you feel I have not covered certain aspects enough, please send me mail, so I can revise this file. ====================================================================== LIMITS ====== 1. Unlimited users. 2. Unlimited channels. 3. Unlimited independent conferences. 4. 512 characters, including the null character, per command line. This will be configurable on later versions. 5. 10 history lines. Also this will be configurable at a later date. Note that the limits 1, 2, and 3 are only applicable to the unlimited users version of MTalk. ====================================================================== REQUIREMENTS ============ This program runs on any Amiga(tm) with version 2.04 of the OS. A system with 512K would suffice. The minimum memory requirements for the first user is the size of the executables (MTalk and MTalkServer), size of any data files, plus ~15K. Each additional user requires ~15K, plus an additional serial port. Note that memory usage increases when the data files' size increases, or the size and number of history lines increase, etc. ====================================================================== INSTALLATION ============ You must put MTalk and it's accompanying files into the assigned directory called DOOR:ASI. DOOR: is the proposed directory for doors (or BBS utilities) used by many system operators and door programmers. ASI is a directory where you should put the BBS utilities written by me. You must also create several directories within DOOR:ASI. The directories are: DOOR:ASI/bin/ -- Where all executable files go. DOOR:ASI/config/ -- Where all configuration files go. DOOR:ASI/data/ -- Where all the data files go. DOOR:ASI/doc/ -- Where all the documents go. DOOR:ASI/help/ -- Where all the help files go. DOOR:ASI/key/ -- Where all the key files go. DOOR:ASI/script/ -- Where all the scripts go. DOOR:ASI/text/ -- Where all other text files go. DOOR:ASI/user/ -- Where all the data on each user go. The files pertaining to MTalk are as follows: DOOR:ASI/bin/MTalk -- This is the client program each user calls. DOOR:ASI/bin/MTalkServer -- This is the server program for each conference. DOOR:ASI/bin/MTalkKillServer -- This is the program to abort any server. DOOR:ASI/config/MTalk.DOORTAB -- All the doors configuration data will be stored here. DOOR:ASI/config/MTalk.LVLTAB -- All the access levels for the built-in commands are stored here. DOOR:ASI/config/MTalk.default.prefs -- Default preferences for new users. To create this file, simply enter MTalk, use "/pref" to edit the options and "/pref save" to save. Now type "copy DOOR:ASI/user//MTalk.prefs TO DOOR:ASI/config/MTalk.default.prefs". DOOR:ASI/data/MTalk.ACTIONS -- All the action data is stored here. DOOR:ASI/data/MTalk.FILTER -- All the filter data is stored here. DOOR:ASI/help/MTalk/ -- Help files for all the built-in commands, plus door commands. DOOR:ASI/key/MTalk.key -- The key for a registered version of MTalk. DOOR:ASI/script/MTalk.startup -- The startup script. When a user enters the conference, this is executed. DOOR:ASI/user//MTalk.prefs -- Preferences file for the user. DOOR:ASI/user//MTalk.startup -- User's custom script file. Not yet editable through MTalk directly. ====================================================================== RUNNING MULTI-TALK WITHOUT A BBS ================================ A way to run MTalk without a BBS is to use an auxiliary device handler. This type of handler allows a program to send and receive data to and from the serial port. The AUX: device by Steve Drew, from Fish Disk #79 does a nice job. Note that AmigaDOS' AUX: does not work properly. Type the following commands in Shell: ------------------ mount AUX: MTalk >AUX: ------------------ Execute the last command only when the dial-in user has connected. When MTalk is running, all of its inputs and outputs will be going through the serial port. ====================================================================== USAGE ===== MTalk ----- Usage: MTalk ... important keys: NAME User's real name. The name can be "First Last", or First_Last. The name must be 35 characters in length or less, or else truncation takes effect. If the alias of the user is not supplied, the NAME is used as the alias as well. ALIAS User's alias/handle/nickname/etc. The name format is same as that of the real name (above). If the real name is not given the alias is used as the real name as well. LEVEL User's access level. This should be passed from the host BBS software. Access to conference commands is strictly based on access levels. Default is 0. The minimum and maximum user levels are 0 and 32767. SERVER Server number, only applicable to the unlimited users version. Default is 0. This is used for separate, independent conferences. For example, you might have SERVER 0 handle a conference for teenagers and SERVER 1 handle a conference for older people. This is particular useful when these two groups of people don't mix. You know, older people are generally more mature and will possibly not mix well with younger immature teenagers. When a user in the teenagers conference checks out who is on-line in the conference, he or she will not see who is on-line in the older people's conference. Whispering across conferences is not possible. Think of channels as rooms, conferences as houses, and servers as house keepers. The more servers, the more houses! Note that "MTalk" without any arguments will have a random name given to the user, in the form of "User_x", where x is from 0 to 99. Other keys and values are used to pass to doors you have have set up. Keywords are not case sensitive. Note that the name and alias will be copied from the arguments and changed, from the form "user_name" or "USER_NAME" to "User Name". That is, the first letter of each word is capitalized and the rest of the word will be in lower case. Also, any "_" characters will be replaced with spaces. Example: MTalk NAME "Joe Sixpack" ALIAS "Drunken Sailor" LEVEL 1 PORT TR0 MTalkServer ----------- Usage: MTalkServer [] is used for multiple, separate, and independent conferences. MTalkServer without an argument starts a server with an identification number of 0. Note that you don't have to "run" the server, it starts and detaches from the shell. The argument is only effective with the unlimited users version. Once a server is started, you may type "break ... Stop any of the servers that had been started. Example: MTalkKillServer 0 1 2 3 4 ====================================================================== DOORS ===== MTalk was developed with configurability in mind. With the door feature, you can set up a multitude of external CLI commands or information files that the user can access. Access to these commands will be based on user levels. They are executed the same way built-in commands are. Read the file "DOOR:ASI/doc/MTalkEditor.doc" to learn how the doors are configured. ====================================================================== SCRIPTS ======= Like a Shell, MTalk supports command scripts. There are two types of scripts. The first one is global, which every user executes when they enter the conference. Sysop commands can be executed in this script. The script is stored in DOOR:ASI/script/MTalk.startup. The default command aliases are defined here. Change them as you wish. The other script is the one that can be customized by each user. Note that at the present, there is no way for the user to edit this file from the conference. You may want to provide an editor door to accomplish this task. The user script is stored as DOOR:ASI/user//MTalk.startup. The global script is similiar to "s:startup-sequence", while the local script is similiar to "s:shell-startup". ====================================================================== ACTIONS ======= Actions are special "commands" that each user can perform on himself or herself, or other users. The actions file is in ASCII, and is called DOOR:ASI/data/MTalk.ACTIONS. Each action entry has the form: [],,,<1stperson_text>, <2ndperson_text>,<3rdperson_text> Note that each action must be on one line. Line feeds separate actions. The fields are defined as: is the name of the action, eg. "kick" is the minimum user level required to do this action. is "y" or "n" indicating whether this action requires it to be done to someone. <1stperson_text> is the text the action performer will see. <2ndperson_text> is the text the person you are doing the action to will see. <3rdperson_text> is what the rest of the users will see when you perform the action to. <1stperson_text>,<2ndperson_text>,<3rdperson_text> can have the following tokens: %r - Will replace the token with the name of receiver of the action. %s - Will replace the token with the name of the action performer. %t - Will replace with "his" or "her", according to the sex of the receiver. %u - Will replace with "his" or "her", according to the sex of the performer. %v - Will replace with "him" or "her", according to the sex of the receiver. %w - Will replace with "him" or "her", according to the sex of the performer. %x - Will replace with "he" or "she", according to the sex of the receiver. %y - Will replace with "he" or "she", according to the sex of the performer. Construction Example: --------------------- [ask],0,y,What's your sign?,%s is asking you for your sign!, %s is asking %r for %t sign! Application Example: -------------------- Three users are on-line, namely "John", "Mary", and "Peter". Situation #1: John asks Mary for her sign. John> .ask Mary -+- What's your sign? -+- Mary> -+- John is asking you for your sign! -+- Peter> -+- John is asking Mary for her sign! -+- Situation #2: Mary asks John for his sign. Mary> .ask John -+- What's your sign? -+- John> -+- Mary is asking you for your sign! -+- Peter> -+- Mary is asking John for his sign! -+- ====================================================================== PROFANITY FILTER ================ A lot of people like swearing, but most of them don't think before they do it. As a result, their listeners may get insulted. This is where the profanity filter comes in. The way the filter works is this: A swear message gets through only if both the sender and the receiver has their filter turned off. If either one has it turned on it won't get through. Think of it as a pipe, where water cannot flow through if either end of the pipe is blocked. The filter file is DOOR:ASI/data/MTalk.filter. The file is in ASCII containing words (with or without wildcards) that are to be matched with each of the words the user typed. An example of a filter file is: -------- bitch ass ass#(!|.|,|'?) ass#(-)hole#(!|.|,|?) -------- Let's suppose that a user called "Badmouth" types: Badmouth> you bitch Swear word(s) detected! Badmouth> ass Swear word(s) detected! Badmouth> associate --sent--- Badmouth> compass --sent--- Badmouth> asshole Swear word(s) detected! Badmouth> ass-hole Swear word(s) detected! In order to create an effective filtering system you must know about AmigaDOS pattern matching. If you are unfamiliar with them, either leave the default filter file alone, or get a friend, who is familiar with them, to edit the filter file. If you feel that there are other very offensive words that I have missed, please let me know. ====================================================================== COMMANDS ======== All the command are documented as on-line help. They are stored in DOOR:ASI/help/MTalk/ ====================================================================== UPDATES ======= Registered users are privileged to free updates (excluding magnetic media cost and postal charges), when they are ready, for ONE year, from the day of purchase. Bugs will be fixed, but I make no promise that new features will be added. After a year, updates will require a minimal fee. Note that since I'm still a student, I don't always have free time (especially during semesters) to update the software. ====================================================================== FUTURE MTALK RELATED PRODUCTS ============================= Link -- Allow systems supporting MTalk to link with each other. Dial-in -- Allow MTalk to be a host (without a BBS) so that users can call in without a local user there to do the connection. The host would include full credit/time accounting. ====================================================================== ACKNOWLEDGMENT ============== Patrick Young -- For giving me the incentive to develop Multi-Talk. R.I.P Resonance BBS. David Riley -- For inspiration, and both destructive and constructive criticism. Also for testing Multi-Talk and for editing much of my documentation. Greg Bastow -- For providing an excellent BBS for the Amiga Community. Tunnel Vision BBS (4 lines 604-535-9784/9785/9826/9846, 1.2Gigs, Fish!). Dana Huggard -- For letting me beta-test my software on his BBS. and for helping me distribute my utilities. Terra Firma BBS (604-434-3665 1:153/765) Steve Cole -- For being the first user of Multi-Talk and bug reports. Also for offering to help me distribute my utilities. The Forge BBS (11 Lines, 1.9Gigs, 2xHST) Mike Oliphant; Tom Conroy -- For technical help on programming, and for the DLG(tm) BBS software. Good job, guys! ====================================================================== PRODUCTS RELEASED AND UNDER DEVELOPMENT ======================================= Released: - ECopy V1.00 (Hard/floppy drive utility) - TeleWho V1.00 (DLG(tm) BBS utility) - TelePage V1.00 (DLG(tm) BBS utility) - RawIN.lib V1.00 (Input handling library for BBS door programmers) - Multi-Talk V0.920 (Multi-user teleconference system) - TeleReg V1.00 (User registry database allowing concurrent users) Under Development: - TeleBank (DLG(tm) BBS utility, a time/credit accounting system) - an outdialer (BBS utility for dialing out from a multi-line system) - GooeyTerm (Graphics terminal program) - .snd/8SVX-IFF sound player (joint effort with Jeremy McDonald) - numerous other minor utilities Most of these programs are public domain, while the rest are shareware. ====================================================================== TRADEMARKS ========== Amiga, and AmigaDOS are trademarks of Commodore-Amiga. DLG is a trademark of TelePro Technologies. ====================================================================== LAST WORDS ========== Questions, ideas, comments, bug reports, etc. should go to: Home Address: Sam Yee 4595 Nanaimo St. Vancouver, B.C. Canada V5N-5J5 Internet: samy@sfu.ca (starting September '92) flui@sfu.ca (before September '92) FidoNet: 1:153/765 (Terra Firma BBS 604-434-3665)