²²²²²²²² ²²²²²²² ²² ²² ²² ²² ²² ²²²²²² ²² ²² ²² ²² ²²² ²² ²²²²²² ² ² ²² ²² ²² ²² ²² ²² ² ²² ²² ²²²²²² ²²²²²² ²²²² ²² ²² ²² ² ²² ²² ²² ²² ²² ²² ²² ²² ²² ² ²² ²²²²²²²² ²² ²² ²²²²²² ²² ²²²²²²² ²² ²²² Version 1.01 copyright 1993 by Mark Bernard Maximus copyright by Scott Dudley. BinkleyTerm copyright by Bit Bucket Software. OS/2 by IBM Use at your own risk an all that usual stuff.... no guarantees whatsoever. I can be reached at Fido: 1:153/868 -Features: Each of these can be Sysop-selectable -Log file entry of call number (this can be the only thing done, if desired). -Automatic Username entry if a matching phone number is found in your user.bbs. -if you desire, the script will find the last user (from a given number) that logged on, otherwise it will default to the first found. -Automatic Password entry. The user also has to select this (by changing his/her password). -Ability to not allow "blocked" calls. -Ability to not allow calls from a "bad list". (New in 1.1) Compatability: Tested on: 486-33, 8MB RAM. Running OS/2 2.0 (GA + kernal fix + SOM fix + REXXUtil update) and 2.1 GA. Using Binkley 2.56, Binkley 2.58 and Maximus 2.01wb. Supra 14.4 Faxmodem with 1.2J, and 1.70B-04 ROMs. (That DO NOT SUPPORT caller-id in my telephone exchange... so I made it work anyway!) Installation: 1) Copy files. a) Copy EasyOn.cmd into your maximus directory b) Copy the *.mec files to your usual mec/bbs directory ([path]\max\misc), and compile them with meccap.exe. 2) Edit Files. a) Edit your EasyOn.cmd configuration (first lines of file). i) Paths and Filenames. (include full paths! and BE ACCURATE!!!) UserFile: This should be your Maximus user.bbs file. LogFile: This should be your binkley.log file. OutputFile: This is a small file containing the calling number. It can be used in MECCA files utilizing the [link] token. example:(where OutputFile = "[path]\misc\phone.bbs") [yellow]Your number in our records is:[white][phone] [yellow]You are calling from:[white][link]misc\phone CmdFile: This is the file created by the script that actually loads maximus. It includes the command line switches specified in "MaxString" (with the proper parameters from binkley). If AutoName is enabled, and this "program" finds a user that matches the number received from the modem, it will insert them into the command line before any other switches using the "-j" switch. example: Maxp "-jJoe Sysop" If you have enabled AutoPwd, then it will add a ";Y;". example: Maxp "-jJoe Sysop;Y;SysopPass" EasyOnLog: Log of calls & Numbers. BadList: A flat ascii file listing phone numbers that the BBS will not allow calls from. On each line, anything after a ";" is ignored, and may be used as a comment. DO NOT put a "1" in front of long distance numbers. (see sample) ii) MaxString This should be your "usual" command line for loading Maximus, including all switches. (same as in your SpawnBBS.cmd) iii) Options MoreThanOne: If enabled, will look through the entire user.bbs and use the caller from that number with the latest last logged-on time. If disabled, will use the first match (lowest user-number). AutoName: If enabled, will log on the user's name and stop at the prompt "Joe Sysop [Y,n]?" AutoPwd: If enabled, will allow users to log-on entirely (provided they change their password, and make the first letter a "!". TurfBlock: Allows you to not allow access to users blocking the caller-id information. TurfBad: Allows you to refuse BBS access to callers from specified numbers. To utilize "TurfBlock/TurfBad", You must have a caller in your user.bbs with the name as specified in the "BlockName" variable, and a password as specified in the BlockPwd variable. (or BadName / BadPwd). Method 1 ~~~~~~~~ Make these users have a Priv Level of Twit. In the first line of your Welcome.bbs/mec, make the first line: [EQTWIT Show][ckoff][display]misc\blocker Your "blocker.mec/bbs" can give the caller a message as to why he is being turfed, then the token [hangup] (see blocker.mec for example). Method 2 ~~~~~~~~ Give these callers a "custom welcome screen" as described in the Maximus Operations Manual (page 14). This BBS file is displayed BEFORE the Welcome.bbs. Just make sure these MEC's have [ckoff][hangup] in them (and mecca(P) them, of course). They must be named #.bbs, where "#" is the user number to show the file to. (ie. Create a "user" with the name "Badlist Name", and a password of "!InBadList". If this is user number 124, then name the file 124.bbs. Note: these custom BBS's MUST be in your Maximus directory (not ..\misc). With this method, you don't waste a priv. level. MAKE SURE YOU MAKE THIS USER PERMANENT. CallidLog: If enabled, Logs numbers/messages into file specified in EasyOnLog. LogOnly: If enabled, will Log callers number, then exit. It will still provide a CmdFile, but no "-j" switch and keystuffing. iv) Other ConnectString: A string that is ALWAYS in your LogFile (Binkley.Log), and located, AFTER the caller-id info. This is used as an error checking tool to ensure that if caller-id is disabled for some reason, then the previous user won't get logged on. Note: I made mine "Connect " (note the space to differentiate from "Connection"). Could probably be "Spawn". Anything that ALWAYS occurs AFTER the call-id info (within 2 lines), and BEFORE the BBS is spawned. MdmString: The string receieved from your modem (and in LogFile) that has the phone-number after it. This should be the most frequent one. (usually "Nmbr =") Some modems (mine included) don't recognize caller-id information from the newer (Multi-message data format) exchanges, and don't return the proper return code (usually Nmbr =), and instead returns a "Mesg =" followed by the "raw" number. In my case, I made MdmString = "Mesg =", since I get this more often than the strings the modem recognizes (Out of area, and Private). Until the fixes come in from the modem manufacturers,I have written a routine to clean up the numbers so they are useable, (but still be able to work for modems that are returning "normal" information. MdmString2: This is an alternate for MdmString. If your modem DOES support the new exchanges, then make it whatever MdmString is NOT. (ie. If MdmString = "Nmbr =", then make MdmString2 = "Mesg ="... or visa versa -- your strings may differ). BlockIdString: the string received by your modem from callers blocking caller-id. BlockName: The Name in your user.bbs you want to log blocking callers on with, if using the TurfBlock option. BlockPwd: The password you want to use with BlockName, remember to make the first character of BlockPwd a "!", and it must match the "(ab)user's" password in the user.bbs as well. BadName: The Name in your user.bbs you want to log bad-list callers on with, if using the TurfBad option. BadPwd: The password you want to use with BadName, remember to make the first character of BadPwd a "!", and it must match the "(ab)user's" password in the user.bbs as well. AreaCode: This should be your local area-code, and will it will be stripped from incoming numbers, if present, and the user's phone numbers (for comparison purposes). Out of exchange calls will still work fine. b) Edit your SpawnBBS.cmd example (where CmdFile = "[path]\maxp\EasyBBS.cmd") cd\maxp call EasyOn.cmd %1 %2 %3 %4 %5 %6 %7 %8 %9 call EasyBBS.CMD rem Max loading without EasyOn rem maxp -b%2 -p%3 -t%4 -s%1 -n2 -lLine2.log -z\pipe\snoop2 [rest deleted] The "%" parameters in the EasyOn.cmd must be exact and in that order, as this script will take the parameters from binkley, and place them into your max string accordingly. e) Edit your binkley.cfg Edit the Answer line (if necessary) so that your modem answers incoming calls AFTER the second ring. The caller-id information is received between the first and second rings. You can play with this string, but after fiddling a bit, I found putting "~~~" before the "ATA worked. Two ~'s only worked some of the time, three ~'s worked everytime. I also played with the "S0" register, but didn't have much success. d) Edit your Menus.ctl (and Re-SiltP) To use the EasyOn informational mecca file, to one of your menus, add the line.... display_file misc\EasyOn Disgrace "EasyOn Info" If "E" is already the first letter of a menu-choice on that menu, then put another character in front. (ie. "!EasyOn Info" ) That's about it. Notes: I've tried to make this as error-proof as possible, it will default to the basic maximus command line (as specified in MaxString) if it detects anything strange. I HAVE NOT put in checking for valid path/file names. This is up to you (it'll crap out if you specify a wrong LogFile for sure.) If MoreThanOne = 1, and a second user with the same number is found, it will log on the latest one who was on but will also turn off AutoPwd for that user. (This makes sense, I think.) Don't be scared to enable the AutoPwd. Let it be up to the user (just make them aware of the what could happen if someone else from their number calls.) If you wish to test this program, copy your binkley.log file to another directory, and point to it with the LogFile in th configuration. The script will choke if it tries to access a binkley.log file in use. It's works in normal operation. It will probably be faster if the binkley.log is not too huge. This should not normally be a problem, as most sysops have some sort of maintenance routine that starts a new binkley.log either daily or weekly. This will not work if Binkley does not get the caller id information. This will happen when a caller calls while Bink is recycling. (The first ring occurs while bink is loading, and the caller-id info is lost into the ether, as the information is only sent between the first and second rings.) I also have not tested this with a large user.bbs. If it's too slow, try setting MoreThanOne = 0, then it'll stop at the first hit.