***************************************************************** * * * LASTON V 1.30 * * * * Written in PPL for PCBoard * * * * Designed By: Gary Meeker * * * * Began development: 04-01-93 * * * ***************************************************************** 1.00 (05-01-93) - Initial Release. 1.10 (05-27-93) - 2nd Release, added Log PCBTEXT switch to .CFG file. 1.20 (01-10-94) - 3rd Release, added AutoJoin feature. 1.30 (02-03-94) - 4th Release, added lower case switch to disable Modem/CID The purpose of LASTON.PPE is to write the line: Last on: MM-DD-YY (HH:MM) for n Minute(s) - #nnnn This replaces the need for running CL-PRINT in $$LOGON.BAT like: CL-Print MAIN\CALLER%PCBNODE% /Q,/Z,/S,"Last on: @D (@T) for @M Minute(s) - #@#" This writes the following to the CALLER file: Last on: MM-DD-YY (HH:MM) for nn Minute(s) - #nnnn That has worked quite nicely for sometime except in the case of a 'closed' board call on a private node or a PASSWORD FAILURE call as in both cases $$LOGON.BAT never gets run. Now with PPL and this PPE entry you can let PCBoard write the line. Install as follows: Name/Loc of Logon Script Quest. : C:\PCB\PPE\LASTON.PPE If you have a script for this already then add this line to the script itself instead. If you already have a .PPE script then create a text script file listing LASTON.PPE then the origional. That takes care of most callers but just like the above cases, LASTON.PPE won't get run. To fix that place a call to LASTON.PPE in your 'closed' file: Name/Loc of CLOSED File : C:\PCB\GEN\CLOSED and in a text file that replaces prompt 595 such as follows: ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸ ³ Record No.: 595 Record Length: 40 Justification: Left ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³Did you forget your password? ³ ³%C:\PCB\PR\FORGOTPW ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ; The first line in my FORGOTPW file reads: !C:\PCB\PPE\LASTON.PPE F the 'F' is used to cause LASTON.PPE to print the line 'Did you forget your password?' to the User (provided an entry in the LASTON.CFG file exists with that text). If you don't want it to print anything, just make the character anything you want and don't place a line in the LASTON.CFG file starting with that character. The first line in my CLOSED file reads: !C:\PCB\PPE\LASTON.PPE - Note: I have no line starting with '-' in my LASTON.CFG so LASTON.PPE does not print anything to the User for this. Unfortunately at this time LASTON.PPE does not quite write the same line that CL-PRINT used to due to not having access to a variable containing the minutes spent on the last call, so it instead creates the line: Last on: MM-DD-YY (HH:MM) for 0 Minute(s) - #nnnn or Last on (l): MM-DD-YY (HH:MM) for 0 Minute(s) - #nnnn which is close enough for me (for now anyways 8-). The 0 above will actually be a value if the User has called the same day and will represent the amount of accumulated time he has used for the day. For the Sysop it will always show 0 on all calls. To get it to print the Language number the user chose at logon, as in the second format shown, create a configuration file named LASTON.CFG in the same directory as LASTON.PPE containing a line with the extensions of all your language choices seperated by ";" characters. ie. .CUS;.STD;.NOV;.SOU;.MOE;.WHO; This contains my 7 language choices. Note the "." must be included in each extension (except the blank one) and my 7th choice is blank. If your 1st choice is PCBTEXT with no extension your list may look like this (assuming 5 languages as follows): ;.FRE;.GER;.SPA;.DUT If the first line in LASTON.CFG is blank the the language number will not be included in the Log entry and will take the first syntax shown above. The second line of LASTON.CFG contains three flags to control the printing of lines in the log (seperated by ";") where a 1 means print the line and a 0 means don't print the line. The flags are as follows: Log Last On; Log Modem/CID info; Log Caller Security; Log PCBTEXT Line; AutoJoin Example: 1;1;1;1;27 Log Last On controls whether the 'Last On:' information gets written to the log when called with any command line parameter. Log Modem/CID info controls whether 'Modem:' and 'CID:' lines get written to the log. Log Caller Security controls whether a 'Caller Security:' line gets written to the log. Log PCBTEXT Line controls whether the Line replaced in a PCBTEXT file and now contained in the .CFG file should also be written to the log. PCBoard will be writing the line in the PCBTEXT. (system) file out to the log also, but it will be the name of the .PPE file if you also replace the PCBTEXT. file entry. If you wish to allow your User to choose the language that corresponds to your 'System' PCBTEXT file then you have to put up with it, but setting this flag to on will at least let you now what line was meant to be logged. In my case, I didn't change the PCBTEXT. (system) file but only the PCBTEXT.XXX files. I added an addtional language with no descriptive text in the 'LANGUAGE' column to be the system file and as a result the Users sees an extra line feed but unless they guess at it, they don't realize there is an 'un-numbered' language choice they could make. It would be nice if PCBoard didn't have to have the system file listed in the PCBML.DAT file but I understand that it is needed, and this works for me. AutoJoin is the position of the confernece number in the User Comment field that contains the conference the User wishes to join on each log on. Valid numbers are 1 to 27 and the field is 4 characters long. If left blank or set to zero then the feature will not be used. If used the the User will be placed in the conference unless he is not registered. Caller Number: is not needed since if a user does not get logged on for any of the reasons that we want to write the lines to the log, the Caller Number would be Zero anyways (a 'feature' we can use to our advantage). I have run into a couple of situations where I still fail to get the entry in the caller log, like when a caller drops carrier after entering their name and before entering their password (correctly). And the use of LASTON.PPE can NOT correct all those situations. All lines in LASTON.CFG starting with line 3 are PCBTEXT replacements preceeded by a control character. The control character will be compared with the command line used to execute LASTON.PPE and when a match is found the Text on the line (starting with the character after the control character) will be displayed to the User. IF the control character is lower case then the MODEM/CID lines will not be written to the log. Example Config File: ------------------------------------------------------------------------------- .CUS;.STD;.NOV;.SOU;.MOE;.WHO; 1;1;1;1;27 fDid you forget your password? TTime Limit Exceeded. EAccess Denied - Upcoming Event Pending ... UAccess Denied - Unauthorized name match on @USER@! LAccess Denied - You are Locked Out of this System! RAccess Denied - Refused to Complete Registration! AAccess Denied - @USER@ is in use on another Node! ------------------------------------------------------------------------------- You would then replace the PCBTEXT entries (3,4,5,6,8 & 10) with !C:\PCB\PPE\LASTON.PPE E !C:\PCB\PPE\LASTON.PPE T !C:\PCB\PPE\LASTON.PPE U !C:\PCB\PPE\LASTON.PPE L !C:\PCB\PPE\LASTON.PPE R !C:\PCB\PPE\LASTON.PPE A This takes care of many of the cases that occur where information does not get logged by PCBoard normally. Since 'Time Limit Exceeded.' can get displayed to a User who is currently logged on (and PCBoard has already written all the entries to the log) and we don't want to print the lines again, The caller number is checked and if it's zero we log the lines, and if it's not zero we assume the lines should not be logged. If LASTON.PPE is executed with no command line parameter then the Last On line is logged regardless of the control flag in the Config file. ------------------------------------------------------------------------------- As mentioned,the only problem I could not fix was when a 'Carrier Lost ...' occurs. I tried installing the PPE in prompt #215, but since the caller is now gone, PCBoard only sends that to the local screen and .PPE's don't run (you actually see the name of the PPE on the screen). I don't see anyway around this so unless something changes in the future in PCBoard itself, I won't be able to get my lines to print in this case. The two occurances of this that I would like to be able to address would be: 1) A CONNECT is established but is lost before the User is able to enter their name. All that shows up is 'Carrier lost ...' (unless like me you've added (@SYSTIME@) to the end of the prompt in which case you also get (hh:mm) added to the line. I'd like to see the Modem: and CID: lines printed, as in the case of NO CONNECT / CAUSE messages which do include the CID: info) 2) A User does log on, but looses carrier before the logon script runs (or $$LOGON.BAT gets run). I would like to see the Modem:, CID:, Caller Security: (and my Last On:) lines printed. If I can think of way to accomplish this, a new version will be released. ------------------------------------------------------------------------------- Gary Meeker SHARP Technical Support Line BBS (404) 962-1788