CB.PPE by Dan Shore - Sysop The Shoreline BBS February 12, 1996 1. WHAT IS CB.PPE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ CB.PPE is a Callback Verifier written in Clark Development's PPL Language. Full source is being released with this program. With the source code available, you can make any changes you wish, from changing a prompt, or adding a feature you must have. 2. INSTALLATION ÄÄÄÄÄÄÄÄÄÄÄÄ Make a directory and put all the files from the archive into this directory. A. Edit your CMD.LST file(s) to add this: Charges Per PPE/MNU File Specification -or- Command Sec Minute Use Keystroke Substitution ĶĶĶĶĶĶĶĶĶĶĶĶĶĶ ĶĶĶ ĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶ ĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶ 1) CALLBACK 3 0 0 C:\PCB\PPE\CALLBACK\CB.PPE Note: You may have to change the pathname to the PPE. Note: You may have to change the security level for the PPE. Note: Another way to have the callback be invoked is to have the PPE run via an entry in the security specific display files. In this display file all you will need is to have an line that looks like the following: !C:\PCB\PPE\CALLBACK\CB.PPE When the security specific file is displayed the callback program will be invoked. With this method the user is FORCED to use the Callback program. Where when it is in the CMD.LST file, the user can execute the callback after looking around your BBS first. B. Edit the CBCFG.SAM file to match your BBS requirements and save your changes to the filename CB.CFG or to a node specific configuration file - CBx.CFG. C. Edit the LC-SL.CFG file (Local Call Security File). ** One entry for every security level that will use CB.PPE ** NOTE: If a user is attempting a Callback and their CURRENT security level DOES NOT match the "matching level" in this file (the first parameter), the program will exit with the error: "*** Cannot find matching security level in ??-SL.CFG" D. Edit the LD-SL.CFG file (Long Distance Security File). ** One entry for every security level that will use CB.PPE ** NOTE: If a user is attempting a Callback and their CURRENT security level DOES NOT match the "matching level" in this file (the first parameter), the program will exit with the error: *** Cannot find matching security level in ??-SL.CFG" E. Edit the BAD-NAM.LST file to include any username(s) you wish to be banned from using the callback program. F. Edit the BAD-NUM.LST file to include any phone numbers you wish to be banned from using the callback program. G. Edit the TRASHCAN.DAT file for blocking areacodes, exhanges or the last four numbers from being used in a callback. H. OPTIONAL: If you have configuration line #13 set for TRUE, then you MUST use the AREACODE.DAT file to check for valid areacodes for callback. I. OPTIONAL: If you have configuation line #14 set for TRUE, then you must use the xxxXCHNG.DAT files for EVERY areacode that can be a local call to you. (xxx = areacode) If this option is set to false, the user will be prompted if their callback is local or long distance. The format of the file is one EXCHANGE per line. J. OPTIONAL: You can edit the following DISPLAY files to your liking. BADNAM - Shown to user when a Bad Username is detected. BADNUM - Shown to user when a Bad Phone Number is detected. CALLB - Local display for SysOp. BE CAREFUL EDITING THIS FILE. ** DO NOT MOVE THE FIELD POSITIONS ** GETPW - Shown to user when the Password is used for Verification. GETUN - Shown to user when the Username is used for Verification. GETPWUN - Shown to user when the Password & Username is used for verification. INST - Shown to user right before Callback disconnects them. Instructs the user how to answer the phone with their modem. LCNO - Shown to user when a Local Callback is outside of the allowed hours. LDNO - Shown to user when a Long Distance Callback is outside of the allowed hours. WELCOME - Shown to user when they first enter the Callback program. 2A. LOCAL vs. LONG DISTANCE Callbacks ***** READ THIS-IMPORTANT ***** ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ CB.PPE is capable of determining whether a callback is local or long distance through use of the ???XCHNG.DAT files (the ??? is the area code for which the exchange file is for). It has only be implemented for US Dialing plan at this time. The US dialing plan has the format of xxx-xxx-xxxx. The exchange file will "NOT" be used when: 1. Configuration Parameter #7 (Area Code always a local call) - When this area code is matched, the call is ALWAYS a local call, so the exchange file is never checked. 2. Configuration Parameter #25 (Callback format) - When this is set to INTL or BOTH, and it is not an international callback the ???XCHNG.DAT files are not used. The user is then prompted if the callback is local or long distance. 3. Configuration Parameter #14 (Use ???XCHNG.DAT files if found) - If the entry for this parameter is FALSE, then the ???XCHNG.DAT file will not be used. The user is then prompted if the callback is local or long distance. How does the exchange file determine if it is a local call? When the exchange files are used, the program will use the area code entered by the user and look for the associated exchange file. area code entered: 301 Exchnage file : 301XCHNG.DAT Once the file is found, the exchange the user entered is searched inside the exchange file. If a match is found, the call is then considered to be a LOCAL CALL. If a match is NOT FOUND, the call is then considered to be LONG DISTANCE. In order to build your ???XCHNG.DAT files, refer to your local phone book and the exchanges local to your exchange should be listed at the beginning of the book. The format of the file is one EXCHANGE per line. The exchange files are a better way, instead of asking the user if they are calling local or LD. In my calling area the exchanges are a real pain to type in year after year when I get my new phone books (I have to type around 400 exchanges) - but the exchange files are all worth it, in my opinion. 3. FEATURES OF CB.PPE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ž All files created or used by CB.PPE are plain ASCII files and do not need any special editor or program to review/edit them. We recommend QEdit for editing any of the files required by CB.PPE You are not REQUIRED to use QEdit, it is just a recommendation ž Checks user's security to make sure it is not TOO HIGH. ž Checks BAD-NAMES.LST to see if current user matches an entry. ž Option to check phone exchange via the xxxXCHNG.DAT files to automatically determine if it is long distance or local. If the xxxXCHNG.DAT file is not used, the user is asked if the call is local or long distance. ž Option to check the entered areacode against the file AREACODE.DAT to see if it is a valid areacode. ž Checks callback number against Bad Phone Number list (BAD-NUM.LST). ž Checks phone number and username against VERIFIED.LOG entries. ž Option to automatically upgrade old verified users or make them perform a callback again. ž Configurable number of times to attempt a callback. ž Configurable values during callback for RING, BUSY, NO DIAL. These values are deducted from the total callback attempts until zero callback attempts are reached and the program terminates. ž Phone number check against TRASHCAN.DAT entries. ž Read phone numbers from user record and display to user as choices for callback phone numbers. ž Configuration option to allow "O"ther phone number to be used and not just Home and Data phone number from the user record. ž User can exit program at three different stages of the callback process. ž Verification check can be the user's: Username, Password or Both. ž Configurable verification check attempts allowed by user. ž Display screens can be edited by SysOp. ž Security File - User's security level if callback is successful. ž Security File - User's security level if callback is unsuccessful. ž Security File - Adjust (add or subtract) to user's remaining time. ž Security File - What expiration date is to be set to if callback is successful. ž Security File - User's expired security level if callback is successful. ž Configurable to disconnect or stay online after Long Distance callback verification. ž Start time and end times for Local and Long Distance callbacks. ž Optional importing of a message to SysOp when callback is successful. ž Configurable local callback call timeout. ž Configurable long distance callback call timeout. ž Informative local display during callback. ž EXTENSIVE logging so SysOp knows EXACTLY what has occured during callback. ž Node specific log files. ž Node specific -OR- generic callback configuration file (CBx.CFG or CB.CFG). ž Local callback can be performed for program testing and evaluation. ž Detects incoming calls during callback and terminates them. ž Detects BUSY and NO DIAL during callback. ž SysOp can recycle callback by hitting the space bar. ž SysOp can abort callback by hitting the enter key. ž Logging of both user and data phone number from user record into VERIFIED.LOG file. "O"ther phone number is also logged if the option is turned on. ž Comment lines can be imbedded within most configuration files. ž Configurable string for detecting CID phone number ž Detects CALLER ID and compares the number against the user record phone numbers. If the CID number matches the phone number in the user record and the SysOp has activated the automatic upgrade option, the user will automatically be upgraded without a callback being done. ž Configurable support for ASCII or HEX Caller ID phone number format ž Configurable Long Distance prefix number. ž Supports International Callbacks. ž Configurable for US dialing plan or INTL dialing plan. ž Configurable International dialing prefix number. ž Configurable Modem initialization and dialing string. ž Option to add date, time and phone number used for callback to User Record Comment or Notes fields. ž Configurable pre-dial number (ex. "9,"). ž Configurable minimum phone number length. 4. FILES THAT MAKE UP CALLBACK ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ CB.PPE = The PPE Program. CB.PPS = The source code. CB.DOC = What you are reading. BAD-NAME.LST = File containing usernames who are disallowed from using CB irregardless of their security level. The format of this file is one username per line. BADNAM = File displayed to user who's name matches a name in BAD-NAME.LST. BAD-NUM.LST = File containing phone numbers that are not to be used by the Callback program. The format of this file is one phone number per line. Any text from the 11th character to the end of the line is ignored and can be a comment. This way you can comment each phone number as to why it is in this file. Any text located from column 26 to the end of a line is a comment. This way you can comment each phone number as to why it is in this file. WILDCARD use in BAD-NUM.LST ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ You are ALLOWED to use WILDCARDS for: areacode, exchange, OR last 4 nums, country code, city code or last nums Format of entries: US calling plan format : xxx-xxx-xxxx INTL calling plan format: xxx-xxxx-xxxxxxxx YOU MUST KEEP THE FORMAT THE SAME. If you have a number that is SHORTER than the field format, you should left-justify the entries (see valid entry example below). YOU CANNOT USE PARTIAL WILDCARDS!!! Ex) 301?46???? <-- Invalid YOU CANNOT USE WILDCARDS IN MORE THAN ONE SECTION. YOU CAN ONLY USE WILDCARDS IN "EITHER" Areacode, Exhange, OR, Last 4 numbers Ex) ???555???? <-- Invalid - Put this exchange into your TRASHCAN.DAT ??????1111 <-- Invalid - Put last 4 nums into your TRASHCAN.DAT 301??????? <-- Invalid - Put areacode into your TRASHCAN.DAT Valid entry examples: ???5551212 301???1111 301999???? *041-????-???????? *???-221 -???????? BADNUM = File displayed to user when the callback phone number matches an entry in BAD-NUM.LST. CALLB = Local screen shown to sysop during callback. GETPW = Displayed when Password is required for verification. GETPWUN = Displayed when Username and Password are required for verification. GETUN = Displayed when Username is required for verification. INST = Displayed to INSTRUCT user how to answer phone. AL-VER = Displayed when a user has been verified before. DUPNUM = Displayed when a duplicate number has been found in VERIFIED.LOG (username does not match) CID-USR = Displayed when the CID number matches the phone number in the user record and the configuration file is set to automatically upgrade a user when the numbers match. (Entry #19 = TRUE;TRUE) PAS-SEC = Passed Callback Security Level display file This file is displayed right after the prompt: "Your Security Level Has Been Raised To Level: " NOTE: This file will only display when a user's security level is increased (successfully completes Callback program) FAL-SEC = Failed Callback Security Level display file This file is displayed when a user does not answer the verification strings correctly in the configured number of tries. LC-SL.CFG = Local Call security file (see file for format). LD-SL.CFG = Long Distance Call security file (see file for format). CB.CFG = CB.PPE configuration file. CBx.CFG (x is node #) can be used. If a node specific configuration file is not found then the generic CB.CFG will be used. LCNO = Displayed if Local Callback request is outside of hours defined in configuration file (CB.CFG). LDNO = Displayed if Local Callback is outside of hours defined in configuration file (CB.CFG). TRASHCAN.DAT = Contains area codes, exhanges and last 4 numbers that cannot be used for a callback. The format of the file is one entry per line. Here is an example: 800-###-#### 900-###-#### 911-###-#### ###-911-#### ###-555-#### *###-2222-######## -> International Entry The (#) and (-) are place holders and are ignored by the program when searching that particular field. For instance, in the 800 example, only the areacode will be checked, as the exchange and last four numbers are #'s. With the two 911 examples above, one blocks the areacode and the other blocks the exchange from using 911 as a number. NOTE: This file is used to check EACH portion of the phone number and not the ENTIRE NUMBER. The file BAD-NUM.LST is used for that purpose. For instance, if you had an entry in TRASHCAN.DAT like 301-###-####, ANY callback that uses the 301 areacode will be BLOCKED. Any line that starts with an "*" denotes an International number entry. Comments for each line can start at column 26 and extend to the end of the line. WELCOME = Displayed to user when they first enter CB. NODE1.SAM = Sample log file. VERIFIED.SAM = Sample VERIFIED.LOG file. CBCFG.SAM = Sample CB.CFG file. xxxXCHNG.DAT = OPTIONAL - Exchange files. (xxx) is the areacode that these exchanges are associated with. The format of the file is one EXCHANGE per line. Example: 234 343 546 789 If entry #14 in the configuration file (CB.CFG) is set to TRUE, then the exchange files will be used to determine if the callback is a local or long distance call. If the exchange the user entered is found in this file, the call is LOCAL, otherwise the call is long distance. To not use the exchange files, have entry #14 in the configuration file (CB.CFG) set to FALSE, and the Callback program will prompt the user if the call is local or long distance. NOTE: Use your local phone book to list the local exchanges for your calling area. 301XCHNG.SAM = Sample xxxXCHNG.DAT file. AREACODE.DAT = OPTIONAL - Areacode file. This file contains valid areacodes to be used by Callback. If entry #13 in the configuration file (CB.CFG) is set to TRUE, then the AREACODE.DAT file will be checked for valid areacodes. The format of this file is ONE areacode per line. VERIFIED.LOG = This file is NOT INCLUDED IN THE ARCHIVE as the program will create it when the first user is verified. This file will contain the phone number, username, date, time, if the callback was local or long distance, and if a CID number was used. The entry will also show if the phone number was from the data or voice entry in the user record. 5. CONFIGURATION FILE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ CBx.CFG (x = node #) can be used. If a node specific configuration file is not found, then CB.CFG will be used. The configuration file can contain comments on ANY LINE. Comments are lines that START with a (#) or a (') omitting the parenthesis. NOTE: The configuration file MUST CONTAIN 26 configuration parameters or the program will not run. Here is a listing of the parameters, line by line. Entry 1 = HIGHEST security level allowed to use the PPE Entry 2 = USER/PASS/BOTH;Verification entry tries USER = Verify by asking for the Username PASS = Verify by asking for the Password BOTH = Verify by asking for the Username and Password Verification entry tries - Number of tries users get to successfully enter verification information. Entry 3 = Number of tries to perform a successful callback Entry 4 = INIT string for modem Entry 5 = Timeout for Local callback (seconds) Entry 6 = Timeout for Long Distance callback (seconds) Entry 7 = Area Code which is ALWAYS a local call. If an area code is entered here then a "xxxXCHNG.DAT" file is not required for this area code. If "202" was entered on this line, the file 202XCHNG.DAT would not be required. Blank line = disable feature Entry 8 = When this area code is entered by the user and it is a local call, Callback will NOT use the area code as part of the number dialed. For instance: If 301 was entered here, then any LOCAL CALL to 301 would be dialed as XXX-XXXX and not 301-XXX-XXXX. If you have a blank line here, then all local calls will use the area code as part of the number to dial. NOTE: To use this feature, you MUST be using the xxxXCHNG.DAT file Entry 9 = Start time and end time to allow a local callback. The format for this entry is: starttime;endtime. Example: 7:00:00;23:00:00 If the current system time is not within the starting and ending time, the file NOCALL will be displayed to the user explaining that we do not do callbacks during this time, and show them the times that we allow callbacks. NOTE: If this line is BLANK, then callbacks will be allowed 24hrs/day to all local callbacks Entry 10= Start time and end time to allow a long distance callback. The format for this entry is: starttime;endtime. Example: 17:00:00;07:00:00 If the current system time is not within the starting and ending time, the file NOCALL will be displayed to the user explaining that you do not do callbacks during this time, and show them the times that you allow callbacks. NOTE: If this line is BLANK, then callbacks will be allowed 24hrs/day to all long distance callbacks Entry 11= Conference number and path/filename of message to be imported when a successful callback is completed. A blank line DISABLES this function. Entry #11 consists of TWO parameter. Param A is the conference number where you want a message posted when a callback is successful (this message is only sent to the SysOp). Param B is the full path and filename of the message you wish to IMPORT into the message base for the conference number listed as Parm A. Here are a couple of examples: EX) 0;C:\PCB\CBSUCCES.DOC EX) 6;C:\PCB\TEXT\CBMSG.DOC In the first example, we will be using CONFERENCE 0 (Main) and will post the message C:\PCB\CBSUCCES.DOC. The message will be to : SYSOP The message will be from: CALLBACK PPE The message subject : Username Completed Callback The message text : (imported from your file CBSUCCES.DOC) The message will be PRIVATE Entry 12= Set TRUE or FALSE. TRUE will display the prompt "Use Other Phone Number" when the user is displayed their Data Phone Number and their voice phone numbers from their user record to use as a callback number. NOTE: The user can still choose "O" for other number even if the prompt is not displayed, but since it can be suppressed, the user will never know the option is available to them. Entry 13= TRUE means check area code entered by user against area codes in AREACODE.DAT file. If area code is not found in AREACODE.DAT, then the user is informed and exited from the callback process. FALSE means DO NOT check for the file AREACODE.DAT Entry 14= TRUE means check exchange entered by user and see if the file "xxxXCHNG.DAT" exists (xxx is the area code entered by the user). IF xxxXCHNG.DAT exists, check the exchange entered by the user to see if it exists in the "xxxXCHNG.DAT" file. If the exchange does exist, then the phone call is LOCAL. FALSE means do not check for the existance of the "xxxXCHNG.DAT" file and then the user will be prompted for the call being LOCAL or LONG DISTANCE. Entry 15= TRUE means to upgrade user to successful security level if their name and phone number is already in VERIFIED.LOG (user has been verified before). FALSE means do not upgrade user. Make them go through the callback process again Entry 16= Value to deduct from configuration option line #3 (times to try callback) when a BUSY is encountered Entry 17= Value to deduct from configuration option line #3 (times to try callback) when a NO DIAL (no dialtone) is encountered Entry 18= Value to deduct from configuration option line #3 (times to try callback) when a RING (incoming call) is encountered Entry 19= Caller ID Processing. 1st parameter = TRUE means to use the CALLER ID information as the user's callback number. The 2nd parameter if TRUE means to automatically upgrade the user if the caller ID information matches one of the entries in the user record. Otherwise a callback will be performed using the using the Caller ID phone number. The 3rd parameter is the string that starts the phone number in the CID info. Usually this is NMBR = , but with some modems it is NUMBER: The 4th parameter is when CID only returns a 7 digits phone number (exchange and last 4). When this occurs, this areacode is added to the beginning of the CID information. Usually this would be your areacode, as the CID would be for a local call. The 5th parameter is either an "A" or an "H". This tell the PPE if the phone number is in "A" = ASCII or "H" = HEX format in the CID. If HEX, the PPE will convert it to an ASCII number. NOTES: ÄÄÄÄÄÄ a. The LOG file will show if the CALLER ID information matches an entry in the User Record along with an entry in the PCB Caller log. b. If the 1st parmameter is FALSE, the 2nd thru 5th paramters need not be entered. c. If the 1st parameter is TRUE, you MUST USE parameters 2, 3, 4, and 5 !!! Entry 20= Modem Dial string (set to ATDT for touch tone or ATDP for dial pulse) Entry 21= Dialing prefix to add to phone number. Some places require a number in order to get an "outside" line. If a number is entered here, it will be added to the BEGINNING of the phone number. For instance if the number to call was 1-333-444-5555 and you had "9," as the prefix string, the modem would be sent: 9,13334445555. A Blank line means do not add a special dialing prefix string Entry 22= This is the Long Distance prefix. This number will be used when making a LD phone call. Normally in the U.S. you would use "1" as the prefix, but in some cases you will want to change this to another number. If you had "1" for this parameter and you were calling 333-444-5555, the phone number dialed would be 13334445555, as the LD prefix would be added to the number. The second parameter is REQUIRED when you are using BOTH as an option for Parameter #25 (Calling Allowed: US, INTL, BOTH). The option will be the long distance prefix for INTERNATIONAL callbacks. A;B A = Long distance prefix for Non-International callbacks B = Long distance prefix for International callbacks Entry 23= Option to add: Date, Time, and Phone Number to the user record COMMENT field or NOTES field. To use the NOTES field, you MUST HAVE the PSA installed!!! OPTIONS: COMMENT, COMMENT1, COMMENT2, NOTES, BLANK LINE COMMENT ÄÄÄÄÄÄÄ The program will FIRST check to see if COMMENT Field #1 is used. If #1 is used, the program will check to see if COMMENT Field #2 is used. If #2 is used, NO POSTING WILL BE DONE! COMMENT1 -or- COMMENT2 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ If either of these options is chosen, the callback information will be written to the selected COMMENT# field no matter if information was already there or not. (OVERWRITES PREVIOUS INFORMATION) NOTES ÄÄÄÄÄ If this option is chosen, the program will first check to see if the PSA is installed. If installed, the callback information will be written to the notes field. NOTE: The information will only be written to the NOTES fields IF THERE IS ROOM for the callback information (30 characters). If there is not enough room to write the information (due to other information already there), NO CALLBACK information will be written to the NOTES fields. BLANK LINE ÄÄÄÄÄÄÄÄÄÄ Disable this feature. Entry 24= Minimum length of phone number to be valid. A value of 10 is used when the callback is for the U.S. or areas that use the three part phone number (ac+ex+4) An entry of 10 would be used for US dialing: areacode + exchange + last 4 (3+3+4 = 10) The program will check for this length, and abort if the length is not equal to this value. One place the program checks this value is when processing phone numbers from the user record. If the phone number from the user record is used and the length is not equal to this value the user will be PROMPTED for areacode, exchange, & the last 4 numbers when using U.S. dialing (parameter #25 - see next). The SysOp will be alerted in the log if the phone number does not match this length. The second parameter is REQUIRED when you are using INTL or BOTH as an option for parameter #25. Example: A;B 10;9 A = Minimum phone length for US Calling plan Callbacks B = Minimum phone length for INTL Calling plan Callbacks Entry 25= Callbacks allowed. Accepted values: US, INTL, BOTH US - Use area code, exchange, last 4 for all callbacks. International calls are not supported. US dialing plan requires a value of 10 in the first configuration option for entry number 24. INTL - Use Country Code, City Code, and Last Numbers for all callbacks. International calls are not supported BOTH - Perform callback to BOTH area code/exchange/last4 and country code/city code/last numbers formats. When the user first enters callback, they will be asked what format their phone number is (PFORM1). They will then be asked if the callback will be an International callback. If the callback is INTERNATIONAL, the second long distance prefix parameter (CFG Param #22) will be used. Also, the second minimum phone number length parameter (CFG parm #24) will be used. IMPORTANT NOTE!!!! If you are using INTL or BOTH as the value for this parameter, you can use a SECOND option on the configuration line which enables the program to ask the user if the callback to them requires a leading ZERO to the phone number. For instance in the U.K. a call to an exchange code of 181 is dialed 0181 then the remaining part of the phone number. To enable this option, enter TRUE after the INTL or BOTH value. Ex) INTL;TRUE Ex) BOTH;TRUE With it set to TRUE a "0" will be added to the beginning of the phone number. If there is a better way of dealing with the leading zero instead of asking the user, please let me know. Entry 26= Hangup after a Long Distance Callback verification? TRUE = hangup on the user after callback FALSE = let user stay on line (you pay for the rest of the call) Anything but the word FALSE for this configuration option will cause the program to disconnect after a successful long distance callback. WARNING - SETTING THIS OPTON TO FALSE MEANS YOU WILL BE PAYING THE PHONE BILL FOR THE ENTIRE TIME THE USER IS ON YOUR BBS AFTER THE CALLBACK IS COMPLETED!!!! YOU HAVE TO PAY!!!!! USE THIS FEATURE WITH EXTREME CAUTION!!!!! Information will be posted in the LOG file and the CALLERS log IF THE USER IS ALLOWED TO STAY ONLINE AFTER LD CALLBACK. 6. SPECIAL THANKS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ A special thanks to the Beta Testers: John Palazzolo of JP's Place 703-237-5786 Bob Lotspeich of The Circle Circus BBS 703-730-3115 Rick Graham of Peyote Bud's 918-534-2124 Alfred Morin of The Baldeagle BBS 941-749-5565 Pete Bingert of Eastern Nightlight 609-597-4290 Marcel Cote of The Frog Pond BBS 905-788-2193 Thanks for your testing, suggestions, and assistance. 7. REGISTRATION ÄÄÄÄÄÄÄÄÄÄÄÄ This PPE is FREE and is being released with FULL SOURCE CODE. This means there is no cost for using this PPE on your BBS. If you really like this PPE and the ability to modify the source code and all the features we packed into it, please consider sending a donation to the author in appreciation of his hard work. Many hours were spent on writing this PPE and many $$$ spent on Long Distance calls to beta testers to help the product be as bug free (is there such a thing?) as possible. Something as small as $5.00 can be sent to show your appreciation. I really like writing PPE's, especially ones SysOp's can use on their systems to make it better for them or their users. To send a donation, see the address at the end of this document. We do accept Credit Cards for subscriptions on our system if you want to stop by and see what we have to offer. 8. WARRANTY AND DISCLAIMER ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ THIS PRODUCT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF THE PROGRAM IS ASSUMED BY YOU. FURTHERMORE, I THE AUTHOR DO NOT WARRANT, GUARANTEE, OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF OR THE RESULTS OF THE USE OF THE PROGRAM, OR THAT THE PROGRAM WILL RUN WITHOUT ERROR, AND YOU RELY ON THE PROGRAM AND RESULTS SOLELY AT YOUR OWN RISK. I THE AUTHOR CANNOT ACCEPT RESPONSIBILITY FOR SYSTEM DAMAGE, LOSS OF PROFIT, OR ANY OTHER SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES RESULTING FROM THE USE OR INABILITY TO USE THIS PRODUCT. YOU ARE ALLOWED TO MODIFY THE SOURCE CODE AND REDISTRIBUTE. YOU ARE NOT ALLOWED TO CHARGE REGISTRATION FEES, OR ANY OTHER TYPE OF FEES, OR COSTS FOR THE PROGRAM ITSELF OR FOR THE WORK YOU OR OTHERS PEFORMED ON THE PROGRAM. THIS PROGRAM IS TO REMAIN *FREE* WITH FULL SOURCE CODE AVAILABLE. CB.PPE is copyrighted (c)1996 by Daniel A. Shore. ALL RIGHTS RESERVED. 9. CONCLUSION ÄÄÄÄÄÄÄÄÄÄ This archive has been zipped with an authenticity verification stamp. When you unzip this archive you should see at the end: Authentic files Verified! # MMJ131 THE SHORELINE BBS If you do not see this, then the file has either been tampered with or has been rezipped by an upload processor. If you have any questions, comments, suggestions, etc., please feel free to contact me via NetMail, the PCBoard or the PCBNet conferece in FIDO, or the PPL conference on RIME. Dan Shore (301) 946-2771 - Node 1 (public access) The Shoreline BBS (301) 946-4202 - Node 2 (subscribers) 4312 Ferrara Court (301) 946-8153 - Node 3 (public access) Silver Spring, MD 20906 (301) 946-5733 - Node 4 (public access) Fido Address - 1:109/458 1:109/457 RIME Address - #1205 or SHORELINE E-Mail Address - dan.shore%sline@ghawk.com