

                                   
                                             
                                       
                                       
                                   
                                           
                              


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" <other switches and parameters>

                  If you have enabled AutoPwd, then it will add a 
                  ";Y;<password>".
                  example:
                  Maxp "-jJoe Sysop;Y;SysopPass" <other switches/parameters>
 
         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.
   
                                
 
