DCTUserChat v0.01 Public Gamma Release A multinode user-user chat door. -=-=- For RemoteAccess 2.0x and 2.5x, RBBS-PC, & Generic DOOR.SYS systems -=-=- Copyright (C) 1996 Dan Traczynski. All Rights Reserved. -=-=- The latest version of this and other DCT Productions may be downloaded from the Internet at: http://www.worldnet.net/island/dct.htm °±±²ÝTable of ContentsÞ²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±° Introduction ................................... 1 À> Preamble and stuff Installation ................................... 2 À> RemoteAccess À> RBBS-PC Parameters ..................................... 3 À> UserChat's command-line parameters GENUTIL.EXE .................................... 4 À> Configuration À> Language Editor À> Limits Editor À> User Editor À> Local Test Mode À> Exit to DOS À> GenUtil's Command-Line Parameters The Program .................................... 5 À> A general description of UChat's interface À> Chat Menu À> Menu Bar À> SysOp Menu Credits ........................................ 6 À> Thanks for your help! Disclaimer ..................................... 7 À> It has to go somewhere Author's Notes ................................. 8 À> Blah blah blah yak yak yak Enhancement List ............................... 9 À> Upcoming features Release History ............................... 10 À> Notes from the past °±±²Ý(1) IntroductionÞ²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±° DCTUserChat (hereby referred to simply as UserChat) is a multinode chatting door which offers users a friendly and easy-to-use interface. The current version supports up to 20 nodes, but realistically, this limit will probably never be reached. Users are given a choice of what chat mode they would like to use; either conference or 2-way. Conference mode is semi-split screen, allowing users to chat simultaneously and be able to see the conversation at a glance. 2-Way chat is a real-time split-screen chat between two nodes. UserChat also allows users to transfer time across nodes, but keeps track of upcoming events and will deny transfers that would violate these events. °±±²Ý(2) InstallationÞ²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±° To install UserChat, you must first create a directory for it to reside in. I would also recommend setting some RAMDrive space aside for the nodes to communicate with each other, however a hard drive with disk caching might suffice for two node systems. The amount of RAMDrive space required is determined based on how many nodes your system has. The general formula is: (# Nodes + 2) * 1024 bytes Once completed, run GENUTIL.EXE and it will guide you through the installation process. REMOTEACCESS INSTALLATION: """""""""""""""""""""""""" To run UserChat, you must execute it with a command-line similar to: C:\RA\DOORS\UC\UCHAT.EXE /PC:\RA\NODE*N /N*N *M *UUser_Chat Of course, the directories may vary. If any errors are encountered while UserChat is executed, they will be logged in the file UCHAT.LOG, which is stored in the UserChat system directory. UserChat looks for EXITINFO.BBS and DORINFO1.DEF upon startup, which are specified with the "/P" parameter. RBBS INSTALLATION: """""""""""""""""" UserChat will automatically install itself into your copy of RBBS upon the execution of GenUtil, so simply run GenUtil.Exe and select your BBS type as RBBS-PC. GenUtil will create a batch file to run UserChat as well as add an entry to your DOORS.DEF file. °±±²Ý(3) ParametersÞ²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±° The following command-line parameters may be used when executing UserChat. /Bxxx úùú Specify locked baud rate (i.e. /B38400). /FORCEx úùú Forces the user into chat room x. /L úùú Local mode (logs in with the SysOp's name). /Nx úùú Specify node number (if this is not specified, UserChat will always try to load up as node 1). /NOMAIN úùú Using this option will have UserChat return to the BBS after the user finishes chatting rather than return to the chat room selection menu. /Pxxx úùú Specify path to drop file(s) (i.e. /PC:\BBS). /Sxxx úùú Specify user's security level. This parameter is only valid if used in conjunction with the /L parm. If this parameter is not specified and /L is, you will be given the access defined in GenUtil as SysOp security. /W úùú A DOS only network is present. °±±²Ý(4) GENUTIL.EXEÞ²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±° GENUTIL.EXE contains all of the utilities you will require to operate the chat door. It offers a menu-driven interface for easy configuration, as well as command-line parameters for use in nightly maintenance batch files. If GenUtil detects that a mouse is present, it will allow the mouse to be used for data entry in addition to the keyboard. Simply position the mouse cursor on the item you wish to edit and click on the left button. If you wish to exit the current menu of options, pressing the right mouse button will achieve the same result as pressing [ESC]. The following is a summary of GenUtil's menued interface. The Configuration Menu ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The configuration menu allows you to set UserChat up to your system. It will most likely only need to be used once during the installation. BBS Type ÄÄÄÄÄÄÄÄ UserChat has been written to operate on as many BBS platforms as possible. Extra support exists for RemoteAccess and RBBS, but UserChat will also function under boards that are capable of writing a DORINFOx.DEF or DOOR.SYS drop file. This option will allow you to select your BBS type. SysOp Name ÄÄÄÄÄÄÄÄÄÄ The SysOp name will be displayed to users within the door. If GenUtil detects a RemoteAccess BBS during the installation, this field will be automatically configured for you. BBS Name ÄÄÄÄÄÄÄÄ BBS name used by UserChat. If GenUtil detects a RemoteAccess BBS during the installation, this field will be automatically configured for you. System Operator Security ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ There are a few SysOp-only features within the door which are best left restricted to only the SysOp's use. This field will allow you to configure the SysOp security. No Chat ÄÄÄÄÄÄÄ If you operate a particularily busy BBS and would like to restrict users from chatting during its peak hours, you can configure the no-chat start and end times here. Chat Buffer ÄÄÄÄÄÄÄÄÄÄÄ The chat buffer applies only in the split-screen chat mode. To reduce disk access, UserChat buffers the keystrokes into "packets" and sends them in these packets. You can configure the size of the buffer through this option. If you use a RAMDrive, I would suggest setting the buffer low (ie. 2), but if you do not use a RAMDrive, try setting it higher or your disk will be continuously accessed during the chat sessions. Note that a large buffer will cause the type to seem choppy. Time Out ÄÄÄÄÄÄÄÄ Consider the following: A user enters UserChat with 2 hours of time left and then shells to DOS, forgetting he is online (it happens!). Without a time out, UserChat would just sit there for 2 hours until the user's time runs out or he suddenly remembers and exits the program in some way. The time out will automatically cause UserChat to terminate after the number of seconds defined in this field. Semaphore Directory ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This field pertains only to RemoteAccess systems. On multinode RA systems, RA creates and uses shared files in a semaphore directory. By setting this field correctly, UserChat will be able to take advantage of this and send/receive messages across nodes as well as force users into chat, providing that the Text Shells option is enabled in RAConfig. Temporary Directory ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This is UserChat's semaphore drive/directory, and need not be the same as RA's Semaphore Directory. I highly recommend setting this to a RAMDrive as RAMDrives are are a great deal faster than hard drives. Locked Baud ÄÄÄÄÄÄÄÄÄÄÄ This will tell UserChat what to lock the baud rate at when running remotely, thus eliminating the need to specify it on the command-line. The locked baud may still be overridden by the /Bxxx parameter. Language ÄÄÄÄÄÄÄÄ One of UserChat's features is language support. UserChat will allow each user to select his or her own language, but the language specified here will be the one used in the log file and will also be the default language for users new to the door. Chat Rooms ÄÄÄÄÄÄÄÄÄÄ By default, UserChat will start in the main menu and ask the user which chat room he would like to enter. You can specify a few default rooms to be presented in the main menu through this option. Users can still create their own chat rooms if they wish, but most people would prefer not to go through the process of creating a new chat room. Chat rooms created here are permanent and will not be removed when there are no users in the room, as opposed to rooms created by users in the door which will be deleted once the last user exits the room. Do not edit the chat rooms when UserChat is in use by a user. Language Editor ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The language editor will allow you to customise almost all of the strings displayed by UserChat. Colour codes may be used in most of the strings, as well as imbedded codes. The following imbedded codes may be used in the language prompts. %U User's name. %S Board name. %1 A temporary string that varies with each language prompt. %2 A temporary string that varies with each language prompt. %3 A temporary string that varies with each language prompt. The following colour codes may be used: `1 Blue `5 Violet `9 Light Blue `D Pink `2 Green `6 Brown `A Light Green `E Yellow `3 Cyan `7 White `B Light Cyan `F Bright White `4 Red `8 Grey `C Light Red In addition, you may use @-codes to change the colour to one that has been chosen by the user: @1 Uppercase letters @2 Lowercase letters @3 Numbers @4 Punctuation @5 High-ASCII @6 Border Lines One thing to note is that the sum of the lengths of language prompts 47-52 cannot exceed 47 characters. If they do, GenUtil will trim off the excess characters. Limits Editor ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The limits editor allows you to define restrictions on users. Simply create an entry for the access level you would like to control, and define a maximum time limit and maximum time transfer allowed per day. If a user enters the door and a security level has not been defined for him, the next lowest level will be used (ie. if levels 10, 20, and 30 have been defined, and the user has 25, he will be given the limits for security level 20). If the user's security is lower than the lowest level defined, he will be given the restrictions defined in the default field (ie. if the user had a security of 5 in the previous example). The maximum time transfer field only applies if UserChat is running on a RemoteAccess 2.xx board. User Editor ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The user editor allows you to maintain UserChat's userbase. A list of users in UserChat's userbase will be displayed to you, and you will have the option of editing/deleting these user accounts. To locate a user when in the selection menu, simply press [Alt-F] and then enter a partial or full name of the user you wish to locate. If a match is found, the lightbar will be moved to that record. To edit a user's account, simply press [Enter] on the entry you wish to edit, and a new window will appear with the user's stats. The following attributes of each user account may be changed. User's Name ÄÄÄÄÄÄÄÄÄÄÄ This is one of the most important fields in the user's record, and is the username that UserChat reads from the drop file. User's Alias ÄÄÄÄÄÄÄÄÄÄÄÄ If the user wishes to, he may specify an alias to use while in the door. This way, people will not see his real name during conference chat. Although the field allows a maximum of 30 characters, the name itself must be no more than 10 characters in length. The rest of the alotted space is reserved for optional colour codes. (If the name is too long, UserChat will just truncate it the next time the user enters the door.) Time Transferred ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ This field specifies how many minutes the user transferred across nodes the last day he entered the door. Time In Chat ÄÄÄÄÄÄÄÄÄÄÄÄ This field specifies how many minutes the user was online the last day he entered the door. Selected Language ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ When the user selects a language, the file name of his selected language is saved in this field. If the language file specified here does not exist, UserChat will simply load up the default language file defined in the configuration menu. Last On ÄÄÄÄÄÄÄ The last on field is a record of the last day the user entered the door. Next On ÄÄÄÄÄÄÄ This field is not yet supported by UserChat. User's Macros ÄÄÄÄÄÄÄÄÄÄÄÄÄ In UserChat, the user may define up to five personal macros for himself. They can be viewed and changed from this sub-menu. User's Colour Configuration ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Allows you to view and/or modify the user's currently selected colour scheme. Local Test Mode ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Once you have configured UserChat, you may use this option to see what the door looks like without having to log onto the BBS. Exit to DOS ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Ends GenUtil's execution and returns to DOS. Pressing [ESC] will achieve the same result from the main menu, as well as pressing the right mouse button if a mouse has been detected. GenUtil's Command-Line Parameters ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ GENUTIL [?] [PURGE ] [RESET] [LIST] [REMOVE ] ? Display help screen. PURGE Purge users who have not entered in days. RESET Clean up the data files in the unlikely event that UserChat crashes. Do not use when users are in the door. LIST List users currently in UserChat. REMOVE Remove user on node from UserChat. Commands may be stacked, ie. running GENUTIL RESET PURGE 40 would restore the data files in the event of a crash and then remove all users from the userbase who have not entered within 40 days. °±±²Ý(5) The ProgramÞ²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±° The Chat Window ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ The main chat window is where the user types in his text to be sent across nodes to the other users in chat. The following commands may be typed from this window to activate certain options when in conference mode. CLS - Typing this will clear the chat window. CLR - Clears both the miscellaneous and chat windows. - Clears the current line. - Pressing or Ctrl-K will bring up the menu bar. \ - If the backslash is pressed at the beginning of a line and the user has SysOp access, he will enter the SysOp menu. The Menu Bar ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Who's Online - This will allow the user to view a list of all the users currently online. UserChat honours the hidden attribute and will not list hidden users. [RA Only] Page User - This option allows the user to send an online message to another user on another line. [RA Only] Transfer Time - While in chat, one user may run out of time. Using this feature, another user could transfer some of his own time across the nodes. Transfers that would violate an upcoming event on the receiver's node are denied. [RA Only] Setup - Allows the user to configure his preferences, such as his alias, colours, and macros. Help - Displays a short help screen which lists the available commands. Quit - Quits the current chat room. The SysOp Menu ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Kick User Out - Should you wish to force a user on another node to exit UserChat, you can select this option to do so. Edit User in Chat - This feature will allow you to edit the stats of another user online. To protect the security of the system, you may not edit users who have a security level higher than your own, you may not set a user's security level higher than your own, and you may not edit yourself. Also, please note that this editor does not allow all of the user's stats to be edited. Only the more important fields may be modified and others would need to be changed by a different method (RAMGR). Forced Chat - This will force a user on another node into chat mode with you. RACONFIG.Options.System.Text Shells must be enabled for this function to work. [RA Only] °±±²Ý(6) CreditsÞ²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±° ®ì¯ John Kuhns for inspiring me to write this program in the first place. =) ®ì¯ Francois Massonneau for the RBBS support and maintaining the DCT web page. ®ì¯ My gratitude goes out to Terry Mah for spending countless hours with me testing this on his BBS. I couldn't have completed many of the features without his assistance. °±±²Ý(7) DisclaimerÞ²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±° DCTUserChat is copyright (C) 1996 by Dan Traczynski. All Rights Reserved. I encourage you to distribute it, but DO NOT by any means alter any of the files within the original archive. The archive should be named DCTUC001.ZIP, preferably kept in its ZIP format. No guarantee is offered that future versions of UserChat will be freeware. The author, Daniel Traczynski, will take no responsibility to anything that this program may or may not do to your system. Although the program has been tested thoroughly by the support team, no guarantee can be given that it will do what it was made to do. Nevertheless, if anything should happen, the user is totally responsible and the author will be under no obligations what- soever. By using this program you agree to this disclaimer. °±±²Ý(8) Author's NotesÞ²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±° This version of UserChat is a public gamma release, so there is a good chance that a bug or two will be encountered. If you come across such a glitch, please send me e-mail at dan.traczynski@als.dudd.uniserve.com or netmail at 1:153/757. I will fix this as soon as possible. The latest version of UserChat can be found on the Internet at: http://www.worldnet.net/island/dct.htm Many thanks go to Francois Massonneau for putting this on his web page. °±±²Ý(9) Enhancement ListÞ²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±° The following is a list of enhancements planned for future versions. - Bad user lock-out. - User censor. - Optional chat logging. - New user help tutorial (kind of like a CBV tutorial where it would demonstrate all of the features to the user). - Actions. - More configuration. °±±²Ý(10) Release HistoryÞ²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±° + Added a new feature/Something was improved. - Removed something. * General comment. > Bug fix. Version 0.01â -=- December 1, 1996. * First public release. °±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±°