Addendum to BinkleyTerm Documentation Changes and Additions for BinkleyTerm Version 2.60 Copyright (C) 1996 Bit Bucket Software, Co. INTRODUCTION Once again, the documentation for this latest release of BinkleyTerm is being issued as an addendum to the previous docs. Information contained herein should be considered as superseding any previous documentation. The comprehensive update we have promised is really almost done. Vince had some last minute fits with the word processor or it would be out. The new documentation should be out in April 1996. Thanks to Barrie Smith and Bob Davis for all the work they have done. Exit/Spawn ---------- External mail exits can now be shelled/spawed, by putting "EXTern spawn" in your config file. Note: if you enable this option, all external mail is spawned. The arguments to EXTMAIL are exactly the same as the exit case, so you can find the "errorlevel" from the command line if you need it. An external process can now force BinkleyTerm to exit. This is enabled by putting "ForcExit n" in the config file, where (n) is the errorlevel you wish to use on exit. Bink will periodically check the flag directory for a file called FORCEXIT (or FORCEXIT.xxx if task number is set). When it sees the file, it will delete it and exit with the user specified errorlevel. BinkleyTerm will also look in the flags directory for files of the form BTEXIT??.??. If a file matching the task number in the extension is found, BinkleyTerm will exit using the hex errorlevel specified in the filename. (e.g. BTEXIT10.B0 makes BinkleyTerm task 176 exit with errorlevel 16) Any specific "Exit" can be replaced with a spawn as follows: ErrLevelShell is an error level for a user exit. is the command to be executed. For example, if the event file had the following: Event ALL 08:00 12:00 E4=91,TIC A=60 T=3,10 and the configuration file had the following: ErrLevelShell 91 DOTICK.CMD Instead of exiting with an errorlevel of 91 when a TIC file is received, DOTICK.CMD will be executed. If you are using the OS/2 or Win32 (NT/Win95) version of Binkley and specify: ErrLevelShell 91 Start /I /C "Tick Procssing" DOTICK.CMD DOTICK.CMD will be started as a seperate session. Protocols --------- BinkleyTerm now supports EMSI. This requires some more config changes: NoEMSI disables EMSI MyLocation defines nodelist location \ MyPhone phone number \ In nodelist MyListFlags nodelist flags / format MyMaxBaud max baud rate / PickUpAll enables all pick ups in EMSI There also is a script command "NoEMSI" to disable EMSI for one session. Arjen Lentz' and Joaquim Homrighausen's Hydra protocol is now supported in the DOS and OS/2 versions. Config lines "NoJanus" and "NoHydra" have been added. The old "JanusOK" and "JanusBaud" now also control Hydra. Because of this we added "BiDiOK" and "BiDiBaud" which do the same. Language file ------------- BTLNG now supports '\s' for embedded spaces. File requests ------------- You can now use your MAXFILES.IDX for file requests. This is accomplished by putting "MaxAreas ", "FileSec n", and optionally "KnownSec n" and "ProtSec n" in BINKLEY.CFG, and "*" in your OKFILE. The 'n' referred to above is Max-defined, it should be: 0=Disgrace, 1=Limited, 2=Normal, 3=Worthy, 4=Privil, 5=Favored, 6=Extra, 7=Clerk, 8=Asstsysop, 10=Sysop, 11=Hidden, -2=Twit The file names should be full paths (e.g. d:\max\area.dat) BinkleyTerm can send file request responses back in packets, if you set "pktrsp". This feature requires a flags directory. Addressing ---------- BinkleyTerm now supports domain kludging to zone numbers. Lines of the form "DomainKludge ZoneNumber DomainName" (e.g. "DomainKludge 7 alternet.ftn") will fill in a domain if addresses are without domain specification, either from local entry or in FidoNet handshaking. These lines must follow the "Domain" lines, and if you set a domainkludge without having previously defined a domain, it will not be processed. Here is an example: Domain fidonet.org fidonet nodex Domain alternet.ftn alternet nodex Domain eggnet eggnet nodex DomainKludge 7 alternet.ftn DomainKludge 99 eggnet REMEMBER, THE DOMAINKLUDGE LINES *MUST* FOLLOW THE DOMAIN LINES! Communications -------------- BinkleyTerm now supports communications rates up to 115200 baud on DOS, OS/2 and Win32 platforms. For DOS, this requires a FOSSIL that can handle these rates (such as X00 1.53A or above), and "extbaudrates" in BINKLEY.CFG. For OS/2 you need MAXCOMM 2.5 or above. These rates are native in Win32. You can use BinkleyTerm/32 to frontend a DOS-based bulletin board on Windows 95 using WinFOSSIL 1.10 and the "WinFOSSIL" command. Contact Bryan Woodruff at 1:343/294 for details. Unattended mode changes ----------------------- Alt-P in unattended mode creates a .CLO file for polling. Alt-Z in unattended mode will give you a zoomed view of the outbound window, with some facilities for changing flavors, deleting, et cetera. If BTRESCAN.?? appears in the flags directory BinkleyTerm will rescan the outbound (e.g. BTRESCAN.40 make BinkleyTerm task 64 rescan) BinkleyTerm can scan a Squish style netmail message base for unread messages. To specify a Squish style netmail area, you must prefix the path with a '$' and add the name of the message base (e.g. "Netmail $C:\Max\Netmail") The "Recent Activity" window is scrollable now. Set the total scrolling area using the "RecentActivityLines " verb. Use the CTRL+(down/up arrow, pg dn/up, home, end) keys to scroll the area. DOS users should use this with care since it will cost you memory. NOTE: for some reason, under DOS the CTRL/UPAR and CTRL/DNAR don't seem to work. You can redefine the keys for these commands in your language file. External mailers/FAX -------------------- Bink can receive Group 2 FAX. Add "FaxInDir " to enable the option. There is also an associated per-event errorlevel for fax reception, specified as "EF=errorlevel" in the event file. Fax reception will be considered like received mail if there is not an explicit errorlevel for FAX. You can define a FAX using the external mail support in BinkleyTerm and a "ModemFax" line in BINKLEY.CFG. This allows two modes of operation: 1) Bink receives the fax into a raw file. ModemFax FaxInDir This tells Bink that when it sees this result code, it should receive the fax into the specified directory. 2) Bink shells out to external program for fax ModemFax ExtrnMail (optional) Extern Spawn When Bink gets the fax connection result and FaxInDir is not set, it will try to find an external mail string and if it finds one it will dispatch as specified by the user. BinkleyTerm will set the baudrate to 19200 on a FAX connection unless you set "FaxBaud x", in which event your specified rate will be used. BinkleyTerm uses the entire "Connect" line to match for external mailers. Using "ExtSession " BinkleyTerm can run a program to do mail for a particular modem type. In this case, BinkleyTerm will turn off everything and, for every file to send to this system, it will call "programname full-address tasknumber filename". When BinkleyTerm regains control it looks for a file in the current directory named "programname.tasknumber". If it exists the session continues; if not, it's considered a failure. When the session ends, one way or the other, BinkleyTerm will restart itself and proceed. By way of example: using my nodelist compiler, let's say I define my point 2 as having modem flag 64 (0x40). With a private list, I could do this by putting a "UGATE" flag on the node, then with XLAXNODE, "MODEMTRANS 7 UGATE". I then put extsession 40 points in BINKLEY.CFG and create points.bat as follows: echo %0 %1 %2 %3 >> points.log if "%1%" == "1:343/491.2@fidonet" copy %3 m:\point2 if errorlevel 1 goto end touch points.%2% :end The result: all sessions with my .2 put the mail into m:\point2. Note that this mechanism is designed mostly for callout. However, you can poll for mail by creating a dummy packet and "sending" it, and your batch file can copy files into your inbound. Sounds ------ Bink can associate sounds with particular events on OS/2 and Win32. 6 new BINKLEY.CFG parameters have been added: "MailSound" is the sound that BinkleyTerm will play on a E2 mail exit, "FileSound" will be played on a E3 or user-specified mail exit, "BBSSound" will be played when BinkleyTerm exits to a BBS, "EXTSound" will be played on exit to an external (UUCP) mailer, "StartSound" will be played at the start of unattended mode. "FAXSound" will be played on a FAX exit. The parameter looks like this: StartSound happy.wav On Vince's machine, this plays the "Happy Happy Joy Joy" song when BinkleyTerm starts unattended mode. This is techie: The ZModem receiver now will send ZFERR for disk-full situations. The transmitter will treat this as an error. The result should be that files will no longer be lost in transit due to disk-full. A new event flag, '$', causes BinkleyTerm to delete all bad-call entries. The outbound window now contains file counts, if "NoSize" was not enabled. For lack of real estate, we'll not show domains if this option is on. Modem handling -------------- BinkleyTerm now matches modem types exactly rather than using a bitwise AND. This allows lots more modem types, but requires that you change your nodelist generation and config stuff (if you're using ModemTrans). Callout to nodes with a particular modem type can be disabled using "ModemTrans xxx" (where xxx is the modem type) with no prefix or suffix. This allows sharing BinkleyTerm between lines with particular modem types. You can now tell Binkley how to handle various result codes from the modem: "ModemFailure" for failures; "ModemIgnore" for ignorable codes; "ModemConnect" for connect string prefixes (the rest is parsed for connect rate, etc); "ModemRinging" for an INCOMING ring; "ModemIncoming" for incoming call collision; "ModemFax" for incoming FAX; "ModemRetry" for a failure that should signal alternate number retry. The first prefix match will be taken, so ordering the config lines so that the correct match is taken is important! Bink will default these to the old hardcoded settings if there is no user input. The values in BINKLEY.CFG which would produce the defaults are: ModemIgnore RINGING ModemIgnore RING RESPONSE ModemRinging RING ModemConnect CONNECT ModemIgnore RRING ModemRetry BUSY ModemFailure VOICE ModemFailure ERROR ModemFailure OK ModemFailure NO CARRIER ModemIncoming NO DIAL ModemIgnore DIALING ModemFailure NO ANSWER ModemIgnore DIAL TONE ModemFax +FCO BinkleyTerm can send a special string to the modem after a connection and log the response. Specify this using "Aftercall ". BinkleyTerm will send to the modem and log up to response lines. For a USR Courier "aftercall 16 ATI6|" works well; for a PPI, "aftercall 15 ATI6|". ARQ string filtering can be disabled by adding "NoFilter ". BinkleyTerm will compare the string after the connect rate with the prefix specified and disable the filtering on a prefix match. BinkleyTerm now supports retry dialing to another number. You would use this if a node you call has 2 or more lines that share the same node number. Specify them as follows: AltNumber Specifies alternate number to try if the primary number could not be reached. The alternate number should be running the same node as the primary number. For "AltNumber 555-1111 555-2222", if 555-1111 was busy, BinkleyTerm would automatically call 555-2222. Multiple alternates to a single number may be specified with multiple lines. Delayed answer (past the first ring) is available using the "RingWait n" command. This can be used to get Caller-ID info into the log; most Caller-ID systems will work just fine with a value of 2. Cost Logging ------------ BinkleyTerm can do cost logging. Enable this by setting the "EuroCost" command, and making "CostLog " and "CostUnit" settings. US CostUnit seems to be about 2 and Europeam seems to be 23. Adjust as you need. We figured it adds value to put this into the history record, so we did. New structure is: typedef struct _history { short which_day; /* Day number for this record */ short bbs_calls; /* Number of BBS callers */ short mail_calls; /* Number of mail calls */ short calls_made; /* Number of outgoing calls made */ short connects; /* Number of outbound call successes */ short files_in; /* Number of files received */ short files_out; /* Number of files sent */ short last_caller; /* Type of last call */ ADDR last_addr; /* Address of last, excl. Domain */ char last_Domain[32]; /* Domain of last */ long last_Elapsed; /* Time of last outbound session */ ADDR next_addr; /* Address of next, excl. Domain */ char next_Domain[32]; /* Domain of next */ long callcost; /* Cumulative of call costs */ long size_in; /* Size of files received */ long time_in; /* Time of files received */ long err_in; /* Errors while receiving files */ long size_out; /* Size of files sent */ long time_out; /* Time of files sent */ long err_out; /* Errors while sending files */ } HISTORY, *HISTORYP; BinkleyTerm now logs this information at the end of every session.