$VER: GENMAILER DOC Shelter Mailer Configuration Documentation Williamson 1.70 GenMailer reads an number of config files and generates a number of site specific wpl programs for one of the Shelter Mailers: The Roof, Porticus, Gazebo and Umbrella Mailers. Certain rexx ClipVars, as well as ENVARC: and ENV: variables are set for use by the particular Shelter Mailer's Manager program and by other external rexx scripts. Thanks to Yanik Grignon, Matthew Mondor, Kenneth Bartlett, Mike Manning and others for their invaluable Beta testing help. Thanks to Russell McOrmond for wpl.library and xprfts.library, James McOrmond for wplemsi.library, David Jones for xferq.library and Yves Konigshofer for xprzedzap.library. Usage: GenMailer Mailer/A,Mode/K, NoEmsi/S,NoResume/S,Debug/S,WPLdebug/S, CfgPath/K Mailer: ROOF | PORTICUS | GAZEBO | UMBRELLA Mode: ALL All output modules are generated (default) KERNAL Cache, Clock, [Notify] are not regenerated CONFIG Regenerate and Reloaded Config CACHE Regenerate and Reload Site Cache Switches: NOEMSI Disable EMSI NORESUME Disable Resume DEBUG Verbose GenMailer output WPLDEBUG Verbose WPL output CfgPath: path to *Gen.cfg, Cache.cfg and subdirs modems/ and src/ defaults to CFG:wpl/gen/MailerName EG: GENMAILER PORTICUS -generates PORTICUS Mailer with EMSI Internal options: Within the first few lines of GenMailer.rexx you will find a number of switches. Some of these are NOT documented. DO not change them unless you know why you are doing it. CKDOMAIN=1 If 1, will fix the domain of the primary address presented, If that domain is FIDONET and Zone is NOT 1-6. If we find a match for the zone the remote site presented in our AKA list, we will use the related domain. FIXDOMAIN=0 If 1, will fix domain using Acvt.WPLRX. This is a more comprehesive and complicated method and should only be used on accelerated systems. KILLBAD=0 If 1, we will hang up if remote presents a bad password for primary address If 0, we will send only files that have been queued for a site named BADPASSWORD. (See EMSI_LINKS.DOC) KNOWNAKAONLY=1 If 1, we will onlt send file for those AKAs we have listed in the SiteCache. If 0, we will only send file for the PRIMARY address presented. SHOWXPRASC=0 If 1, Xprascii transfer window will be displayed if showxpr is TRUE. If 0, XPRascii transfer window will not be displayed. LOOSESPEC=0 Not presently used 1=BOTH pickup and hold link flags presented STRICTZMH=1 If 1, EMSI HXT and HRQ are presented during UMH. GPFAX=0 If 1, enable GPfax arexx spawning. ENVIRONMENT: All Shelter Mailers expect certain devices and libraries: - NULL: device mounted. - rexxsupport.library addlib'ed - ENVARC: copied to ENV: in startup-sequence Required Assigns: CFG: - all configuration information is here LOG: - logs and accounts Mail: - executables Info: - banner, bulletin, help and text files XFERQ: - outbound queues (created from mailerGEN.cfg) this must be a unused directory Required Libraries: rexxsupport.library rexxdossupport.library hgrexxsupport.library wpl.library wplemsi.library xferq.library xprzedzap.library xprfts.library xprascii.library OwnDevUnit.library msgbase.library (if using TLlookup) Required Devices: null.device Required Directories: GenMailer and Shelter will create most of the directories required by each Shelter Mailer. For Porticus and Roof, when using RFS and WPLRX utilities, the following additional directories must be created. INFO: contains text and help files, banner and bulletin I use CFG:INFO LOG:rfsacct/ contains mailer accounts. LOG:rfsacct/h/ contains Grab user accounts as well as sysop messages to users. LOG:freqit/ Wfreqit accounts CFG:freqit/ Wfreqit configuration, help and text files See Shelter.doc for additional requirements. Input Files: CFG:screen.cfg and one of: CFG:wpl/gen/roof/RoofGen.cfg CFG:wpl/gen/porticus/PorticusGen.cfg CFG:wpl/gen/gazebo/GazeboGen.cfg CFG:wpl/gen/umbella/UmbrellaGen.cfg These contain config information related to the site: aka's, sysopname, sitename; directories used ; program specific values ; and user related menus and prompts. Generated OutPut files: roofCFG.wpl and roofMENUS.wpl porticusCFG.wpl and porticusMENUS.wpl gazeboCFG.wpl umbrellaCFG.wpl MAILER CONFIGURATION -------------------- Screen.CFG: If the SCREEN name is not 'WORKBENCH SCREEN', and the configured SCREEN is not already opened, a public screen will be opened using ScreenManager (1.13c) and the information in Screen.cfg. PLEASE SEE ScreenManger 1.13c docs (FREQ: ScreenMgr1_13c.LZH) for more information on the options. Keywords descriptions extracted from ScreenManager.DOC. TEXTOVERSCAN_WIDTH=652 TEXTOVERSCAN_HEIGHT=230 These are the TEXT OVERSCAN VALUES as defined in the Prefs program OVERSCAN. SCREENMODES="H" Determines the graphics mode (and thus the resolution). You just provide a letter representing the ScreenMode name, like those found in the ScreenMode preferences tool. It depends on your graphics hardware (ECS,AGA,AAA) and monitor (Multiscan,...) which modes are available and how you may combine these. If a certain mode is not available, you will be told so in an error message. These are the letters you can use: H: HiRes (Default value: LoRes) L: Lace (Default value: no interlace) S: SuperHiRes E: ExtraHalfBright V: VGA P: Productivity A: A2024 at 10 Hz F: A2024 at 15 Hz X: HAM The desired mode is simply selected by concatenating the letters defining it - like in MODE=SL for SuperHiRes-Lace. SCREENGLOBALS A comment separated string. SHANGHAI turns on Shanghai mode NOSHANGHAI turns off Shanghai mode POPPUB turns on Poppub mode NOPOPPUB turns off Poppub mode TOFRONT open screen in front TOBACK open screen in back CLOSEGAD provides a screen with a CLOSE gadget AUTOCLOSE closes a screen when its last window is closed DEFAULT makes a screen the system's default screen eg: "TOFRONT,AUTOCLOSE" SCREENCX="CX_TOFRONT='Lshift F1',CX_DEFAULT='F2',CX_PRIORITY='5'" CX_TOFRONT sets the HotKey to brings screen to front CX_DEFAULT sets the HotKey to make screen default CX_PRIORITY sets the HotKeys priority SCREENPREFS="640,235,3" screenprefs - width,height,bitplanes planes: With this value you set the maximum number of colors that can be simultaneously displayed, in this way: # of colors = 2^# of planes. For different graphic modes, there are different limitations on the value of PLANES. If these limits are exceeded, you will get a corresponding error message. SCREENFONT="IBM,8" Sets the font and size that will become the screen's default font. This may be a non-proportional font as well as a proportional font. If the font cannot be found, the screen is still opened with the system's default font (this is set with the 'Font' preferences tool). Almost any value for size is possible here, since the new diskfont.library will automatically scale the font if the desired size could not be found. RGB Palette Setting: This sets the color palette as RGB values. They are entered as 3-digit values, separated by spaces. RGB.0=" 8 4 4" RGB.1=" 0 0 4" For 2 or more bitplanes RGB.2="11 12 9" RGB.3=" 7 7 6" For 3 or more bitplanes RGB.4=" 9 0 2" RGB.5="12 7 1" RGB.6="12 9 3" RGB.7=" 7 6 7" ADD MORE IF 4 or more BITPLANES RGB.8=" 6 2 0" RGB.9="12 12 12" RGB.10=" 9 15 1" RGB.11="14 10 0" RGB.12=" 5 5 15" RGB.13="12 14 12" RGB.14="13 10 7" RGB.15="14 5 1" SCREENPENS="712341206" Every character is interpreted as a hexadecimal index into the color table that was set with the COLORS command. From this results that only the first 16 color registers are usable. Pen Name is used for... 1 DETAILPEN ordinary text (compatible with 1.3) 2 BLOCKPEN ordinary fill operations (compatible with 1.3) 3 TEXTPEN ordinary labels/ 4 SHINEPEN shiny edges on 3D objects 5 SHADOWPEN dark edges on 3D objects 6 FILLPEN background of highlighted elements \ e.g. active 7 FILLTEXTPEN text in highlighted elements / window border 8 BACKGROUNDPEN background - must be set to 0 9 HIGHLIGHTTEXTPEN emphasized text Make SURE you do not reference color registers that are not available for the number of Planes selected. *Gen.CFG format: ROOFLOG FALSE If TRUE, gives mailer access to the ROOFLOG function host NOANSWER FALSE - his keyword is only applicable to UMBRELLA. However, an ENV: variable of the same name provides this control for the other mailers (See Shelter.DOC, External Control) SYSOP $«SYSOP» - your name goes here or SYSOP ROBERT WILLIAMSON SYSOPPW TESTPW - this is the name of the environmental variable which contains the password you must enter to access the remote cli. If commented, remote cli code will not be generated. CITY "Pierrefonds, Quebec, Canada" City, province/state/etc, country. Only required if using EMSI. PHONE "1-514-696-4768" Full phone number or "-unlisted-". Only required if using EMSI. FLAGS "V32b,V42b,MNP,FAX,CM,XX" Your flags as listed in nodelist for primary address. In you are not listed, check EMSI_FLAGS.doc in order to determine which flags you should include. Only required if using EMSI. BOSS 5daddress phonenumber The Shelter Manager has an AUTO option which will start the mailer, convert .FLO files, call the BOSS address and then exit. The BOSS address should be your Boss if your are a point, or your primary mail HUB if you are a node. The BOSS phone number MUST be entered. Use of this feature is not recommended for sites other than points and private nodes. address "site name" wazooext zones AKA fidonet#1:167/104.0 "Amiga ECS" org 1 2 3 4 5 6 The first AKA will be used to set your default address and DOMAIN. address: The first address is the default address which will be used when calling or being called by a site which is not in any of your domains. sitename: This is the name of your system as listed in the nodelist or your origin line for that domain. Keep it short as It will be used in the wazoo header. wazooext: NOTE: only FIDONET and MTLNET are authorized to use the 'org' all others must use 'ftn'. The criteria is that the FTN's InterNet GateWay is KNOWN to the InterNet. zones: the ZONE numbers used by this domain. Directories: DO NOT USE A TRAILING SLASH ! DIR indir Mail:inbound Where files from secure ftn sites are received. If DOMAINAWARE is false, this will contain the subdirectories for each domain and for packet sorting. DIR nonsecure Mail:inbound/NONSECURE Where files from ftn sites which not passworded or not in your Site Cache are placed. You should NEVER automatically import or tick these. DIR resumedir Mail:inbound/RESUME used internally for secure resume handling. DIR outdir Mail:outbound Where outbound archived mail and .?UT file are placed. DIR flodir Mail:outbound/f Where your obsolete tosser/ticker places obsolete .?LO files. It should NEVER be the same as outdir. If your obsolete tosser/ticker does not allow you to configure this, for security you should use a script to VIEW each flo file and copy ONLY the ones that YOU created to flodir. DIR rexxdir Mail:rexx Path where Shelter Mailer rexx programs may be found. DIR userdir MAIL:users (ROOF & Porticus only) Upload path for humans. DIR freqdir MAIL:inbound/freqs (ROOF & Porticus only) Directory where received freqs are moved by WfreqIt. DIR faxindir Mail:inbound/fax (ROOF & Porticus only) Directory where we receive faxes DIR faxoutdir Mail:outbound/fax (ROOF & Porticus only) Directory where faxes to send are placed XFERQ Mail:queue Where Xferq.library stores the queue files, XFREQ: will be assigned to this directory. This should be an directory that YOU will NEVER use. NODELIST Mail:nodelist Where TrapList or Igen stores the nodelists, config files and index files. NODELIST: will be assigned to this directory. PSCREEN "WORKBENCH SCREEN" This is the screen upon which the Mailers windows will be opened. Shelter will open this screen (if NOT "WORKBENCH SCREEN") with ScreenMgr 1.3c using the values in CFG:SCREEN.CFG. This program is the ONLY one of the many that I've tested that provides all the options I wanted in ROOF and does not give me any wierd problems. Note that the Mailer windows expect the screen width to be at least MAXIMUM OVERSCAN. WSPEC NOSIZE/NODEPTH/INACTIVE Console Specification keywords for Mailer Display THESE MUST BE SLASH SEPARATED, one or more of these WB3.1 keywords: AUTO CLOSE BACKDROP NOBORDER NODRAG NOSIZE NODEPTH NOCLOSE NOZOOM INACTIVE SIMPLE SMART WAIT SCREEN You should ALWAYS include NOSIZE, as resizing will destroy display. WARNING: At this time it is not recommended to use NODRAG or BACKDROP, as the code to position multiple linewindows is broken and windows are placed one on top of another. :( WPOS 0/80/600/40 Shelter Mailer Status Display position and size, SLASH SEPARATED SPOS 0/80/600/100 Shelter Manager Progress Display position and size, SLASH SEPARATED SSPEC INACTIVE/AUTO/WAIT Shelter Progress Display Console Specification keywords, SLASH SEPARATED LOGFILE "LOG:Mymailer.log" Full path name for the mailer log file. LOGWINDOW "RAW:0/148/650/87/Mailer Log/AUTO/INACTIVE/CLOSE" If this is defined, the logfile will also be displayed in the window. DO NOT add SCREEN, this is done automatically. XPRWIN TRUE|FALSE If true the XPR file transfer window will be displayed. If FALSE, you can reenabled it manually via the command: RX "ADDRESS 'Set showxpr TRUE'" eg: Rx "Address GAZEBO1 'Set showxpr TRUE'" DIALWIN TRUE|FALSE If true poll progress windows will be displayed. This should be set FALSE if you have a LOGWINDOW defined. SCROLL Select the amonut of information presented in the additional scroll window (SPOS, SSPEC). 5 - launch,preinit,reinit,dial,answer,connect,user 4 - launch,preinit,dial,answer,connect,user 3 - dial,answer,connect,user 2 - connect,user 1 - user 0 - scroll window never opens WARNING: As you should know, the more windows you have opened, the slower the response of AmigaDOS. It is recommmended that you use all windows when initially setting up your mailer. Once you are satisfied that it is operating correctly, I would recommend: SCROLL 2 (If Porticus, 0 otherwise) XPRWIN FALSE DIALWIN FALSE LOGWINDOW as you prefer DOMAINAWARE "TRUE" Your importer is domain aware and does not require separate inbound directories for each domain. If FALSE, directories will be created for each domain and files will be received there. If this is FALSE, CMD SORTSESS and CMD SORTRECD will be run for EMSI sessions unless PRIMARYONLY is TRUE PRIMARYONLY TRUE Present only our primary (default) address when calling EMSI. UMH "04:00 06:00" This is start and end times of your Universal Mail Hour. This is also known as ZMH, but is not necessary limited to one hour. In fact, to avoid problems when switching from Standard to DayLight Savings time, many systems set UMH to 2 hours. YOU are expected to use a CRON event to set ACCESS FALSE at the beginning and TRUE at the end of this period. This keyword is simply used to inform a caller how long to wait before calling back. WAKEUP 180 Number of seconds between modem wakeup calls. The ATTEN string is sent to the modem, if it fails to respond, the INIT string is sent. It is not recommended to set this any lower than 45 seconds. LOGINWAIT 60 Number of seconds to wait for input after a connection. This applies to mailers, uucp, user command and menus. 60 seconds is the recommended minimum. CALLWINDOWMIN 60 The duration of a call window in minutes. Poll will be cancel if this period is exceeded without a connection. REDIALDELAY 180 The delay in seconds to wait between dials on BUSY response. BUSYDELAY 60 The delay in seconds to wait between dials when line is already dialing another number. IGNORENOANSWER TRUE Treat a no answer same as busy. Useful, since most msdos sites do not answer when they are tossing mail. CLOCK TRUE Install Atomic CLOCK dialing and connect code if true ONLINE TRUE Install bbs and online service dialing/term launching code if true. SPEECH TRUE Address (or username) called or calling will be spoken if true WFHOST TRUE (ROOF and PORTICUS only) Install WPL FunctionHost as Line 1 UUCP TRUE Install UUCP code if true, this also sets the mailer to to accept UUCP calls. The ENV variable may be set FALSE via a cron event in order to disable accepting uucp sessions. ACCESS TRUE Enable user access, BBS spawning, WPL Utilities. The ENV variable MUST be set FALSE via a CRON EVENT in order to disable executing these features. ALLOWFREQS TRUE Process inbound file requests. The ENV variable may be set FALSE via a cron event in order to disable processing file requests. FTSFREQS FALSE Process file requests in FTS1 sessions. The ENV variable may be set FALSE via a cron event in order to disable processing file requests during an FTS session. BANNER If this keyword is used, the file specifed will be sent instead of the 'BAN welcome'. GenMailer will check if it exists and exit of not. The Mailer will check if it exists before trying to send it. Protocol Preferences (not used yet) ZAP - ZedZap, batch, max 8k block, based on baudrate ZIP - ZedZip, batch, 1k block DZA - DirectZap, escaped control chars ZMO - w/1,024 byte data packets SEA - SeaLink, xmodem varient TLK - Telink, xmodem variant DFA - DietIFNA, xmodem/telink/sealink with mailer flags LTK - Lotek, xmodem KER - Kermit EMSI_PROTOCOLS "ZAP,DZA,ZMO,SLK,TLK" (not yet implemented) List of file transfer protocols, in EMSI format, the first one is the only one presented when answering. Only those listed will be installed. WAZOO_PROTOCOLS "ZAP,ZIP,DZA,DFA,LTK" (not yet implemented) List of file transfer protocols, in EMSI format. Only those listed will be installed. These take numeric values to be applied to a wplvariable STACK 50000 PRIORITY 2 Stack size and priority for external programs LAUNCHPRI 2 priority at which a slave is launched NEGOPRI 3 priority to use during WaZoo/EMSI negotiation XFERPRI 5 xferpri is priority of file transfers AUX device support for remote cli and doors AUXDEV NEWAUX: AUXMOUNT "Mount NEWAUX: from DEVS:mountlist.newaux" AUXDIRECT "<>NEWAUX:" These take a "string value" to be applied to a wpl variable LOOKUP "ram:tllookup >NIL:" (NOT APPLICABLE to UMBRELLA) The program used to Lookup Nodelist Info is defined here. Console Output is discarded. UUCICO "UUCP:c/uucico -o -pri" uucico command line. site address, device and unit are added automatically. Site specific options are added from the uuopts entry in the SITE CACHE for each site address LOGIN "Mail:login NULL:" Login command line, user name, device and unit are added FAXSEND "Mail:faxsend -f $(unit)/$(device) -l 17 -v" Command to send a fax (ROOF & Porticus only) FAXRECV "Mail:faxrecv -d $(faxindir) -f $(unit)/$(device) -l 17 -v -ii" Command to receive a fax (ROOF & Porticus only) User Utilities apply to ROOF & Porticus only, with the noted exceptions. BULL This file will be sent using XPRascii when a user logs in. The mailer will check if it exists before trying to send it. ESC-ESC (ROOF and PORTICUS ONLY) Determines what will happen when the user hit ESC twice ESC-ESC BBS directly launch BBS # 1 without user name prompting or ESC-ESC SELECT prompt for user name and show BBS MENU or ESC-ESC MENU prompt for user name and show MAIN MENU MENU GEN|MAKE [RAM] Controls how menus are generated and displayed to the caller MENU GEN Menus will be generated as *MENUS.wpl modules. Menu entries are limited to 256 characters. MENU MAKE Menus will be generated as text files and be displayed using xprascii protocol. OutPut files will be placed in CFG: If your Startup-Sequence includes a command to copy *.menu to RAM:, use the RAM option to cause these to be sent instead. Generates: MAIN.MENU, MAGIC.MENU, INFO.MENU, BOARD.MENU WARNING: Using xprascii to display the menus is much slower. However,te advantage is that one can use much LARGER and prettier menus. One can EDIT these *.menu files to add ANSI and text graphics. Be sure to back these up, otherwise they will be overwritten the next time GenMailer is executed. The main menu will be created with the following entries in addition to the ones you specify. MainMenu Default entries: MAGIC - the user will be presented with the MAGIC submenu. INFO - the user will be presented with the TEXT submenu. BOARD - the user will be presented with the BBS submenu. WRM indicates item is an internal command, while WRX indicates item is an external WPLRX script. In both cases the command and description will be added to the MAIN menu displayed to the user. For more info in the WPLRX commands, see Shelter.DOC. command command description WRM HELP "OnLine help, just enter HELP " The HELP command will search for a file named: INFO:.HLP and display it, if found, using xprascii.library WRM UL "Zmodem Upload to sysop (with resume enabled)" The user wil be prompted for descriptions after the upload. WRX GRAB "Free Zmodem DownLoads" WRX NOTE "Leave a message to Sysop" WRX WFREQIT "File Request Forwarded" WRX EMP "Amiga Empire Game" WRX QWK "Falcon QWK Handler" WRX SHOWAC "View your File Account" WRX CHAT "Page the sysop" WRM BYE "Hangup" TEXT These entries will appear on the INFO submenu. Files will be sent via XPRascii. If description is "na", it will NOT be added to menu. magicname fullpath desc TEXT new Mail:filelists/newfiles.lst "View NewFiles This Week" MAGIC These entries will appear on the MAGIC submenu. Files will be sent via XPRzedzap using Zmodem. If description is "na", it will NOT be added to menu. magicname fullpathname description MAGIC files MAIL:FILELISTS/01670104.LHA "Zmodem Send Archived list of Files Available" BBS List of BBSes for BBS Selection menu (ROOF and Porticus only), Gazebo permits only ONE BBS entry. BBS is not applicable to umbrellaGEN.cfg. Take Note the relationship of the ESC-ESC option to this menu and the first BBS listed. The bbs name field must be in quotes, the launch command does not require enclosing quotes. All imbedded quotes MUST be escaped with a backslash. A CLI command line must be used. If the bbs command detaches from the CLI, you must run it from a rexx script so that the command does not return until the bbs exits. A simple example for Falcon CBCS, LAUNCH.rexx is provided. You may modify this for your own bbs. More complicated examples, such as Launch_FALCON.rexx and Launch_CONTACT.rexx and LAUNCH_BBS.rexx may be file requested under those names. If the bbs is launched via a REXX message then you should do this: BBS "My BBS" rx \"Address \"MYBBSPORT\" \"mybbscommand $(line) $$(baud)\"\" If passing the modem<->modem rate, the baud variable MUST be deferred: $$(BAUD) bbs name command to launch it BBS "Amiga ECS" RPDIR:Launch_BBS $$(baud) $(line) or BBS "Amiga ECS" RX RAM:rexx/Launch_BBS $$(baud) $(line) DOOR Any CLI door or program which can be exited with a BREAK command may be used. The i/o will be redirected to the modem using the CTDL-AUX: device. DOOR.wplrx start Carrier.rexx asyncrounously to monitor the CARRIER of the line and then starts the door. If carrier drops while a door is active, a BREAK command will be sent to the door. The description field must be in quotes. The door launch command does not require enclosing quotes, but any embedded quotes that the door may require, must be escaped with a backslash. "description" launch command DOOR "Adventure in The Collossal Cave" DOORS:adv/adventure DOOR "StarTrek" RexxC:rx DOORS:StarTrek \"$$(username)\" DOOR "Grin of the Day" RexxC:rx Rexx:rexxdoors/Grin_du_Jour DOOR "Fortune" RexxC:rx Rexx:rexxdoors/Your_Fortune CMD These are the commands to execute on file notification for both AFTERSESSION and WHENRECD. Unlike ANY other mailer, multiple commands can be executed based upon filetype, either when a file is received or after the session. In some cases it may be desireable to have BOTH the WHENRECD and AFTERSESSION commands executed. Note that the CACHE also permits site-specific PREDIAL, PRESESSION and AFTERSESSION commands. Deferred wpl variables are NOT required for these commands. You can specify these commands in three ways, in all cases, any WPL variables must be specified undeferred (ie: "$(name)"). - as ENV variables so that they are expanded from the the mailer's ENV: directory when executed. - as expandable ENV vars "$«...»" so they are expanded from the ROOT of ENV: during compile. - as a command string, The command will be set as an environmental variable in the mailer's ENV: subdirectory. This allows you to change it on the fly at any time. See impsess for example of three methods: CMD entries should NOT be in quotes. WHENRECD: CMD sortrecd Run >NIL: Rx ram:rexx/ftnsort $(indir) $(remfile) - sort an archive of packet by ftn domain This command overrides arcrecd and pktrecd If aftersession processing preferred then set: Echo >>T:sortlist $(indir)$(remfile) CMD arcrecd Run >NIL: Execute S:TOSSARCS $(host.domain) - import a mail archive CMD pktrecd Run >NIL: Execute S:TOSSPKT $(host.domain) $(remfile) - import a mail packet CMD tickrecd Run >NIL: Ftick CFG:Ftick.cfg.$(host.domain) - process a tic CMD uucprecd - included for completeness, but there is no obvious use for it at this time since uucico calls uuxqt CMD faxsent "" (N/A) - command to run after sending a fax CMD faxrecd "" (N/A) - command to run after receiving a fax AFTERSESSION: CMD sortsess Run >NIL: Rx ram:rexx/ftnsort LIST t:sort$list Only set If whenrecd processing not desired. This command overides impsess CMD impsess Run >NIL: Execute S:TOSSARCS $(host.domain) - start an import for the domain (as a command string) impsess ${IMPSESS} - as an ENV variable, the variable would contain: Run >NIL: Execute S:TOSSARCS $(host.domain) impsess $«IMPSESS» - as a expandable ENV variable, the variable would contain: Run >NIL: Execute S:TOSSARCS $(host.domain) CMD ticksess Run >NIL: RPDIR:TICKMGR FILE $(host.domain) - process ticks CMD freqsess Run >NIL: Mail:rexx/FreqNote.rexx - process files received for sent requests NOTE: If using WFREQIT, you must use: Run >NIL: Mail:rexx/WFREQit-Check $(inbound) CMD termsess Run nil: rx mail:rexx/ftpnote.rexx - command to run after a term program session The included example script sets the filenote of files in DL:ftp to the SHORT description in the ftp .readme file. Mail SORTING and PROCESSING commands are mutually exclusive. If a SORTRECD command is set, the ARCRECD and PKTRECD commands will not be executed. If a SORTSESS command is set, IMPSESS command will not be execute. Keep in mind the fact that Site-specific AFTERSESSION commands OVERRIDE the global ones. In my own setup, I use both types of command for SORT and TIC handling. For example, the TICKRECD command calls FTICK, which I have setup to make a list of files received. The TICKSESS command runs my TickMGR, which uses this list to post a files received message, redirect certain fileechos to a different area, check for and start nodediff processing and update my BBS's fileareas lists for each area affected. I also do not run any AFTERSESSION command for ARCmail or Packets, I only use WHENRECD. This means I import while still online. It is amusing when sometimes I can actually reply to a message and send the reply in the same session as it was received. This completely blows away ibm sysops :) and it is only possible with WPL mailers. Mail sorting is only enabled in the following situations: MULTI is set true for a site in the Cache DOMAINAWARE and PRIMARYONLY are FALSE In my own setup my SORTRECD command simply creates a list of files received. The SORTSESS command processes this list, extracting and moving packets to the appropriate inbound area and calling the import script. WPL Variables for WHENRECD, AFTERSESSION and FREQ commands: The Host and Remote addresses are set as stem variables, where may be either "host" (us) or "remote" (them). The stem variable includes: .address , .network, .text .domain, .zone, .net, .node, .point .network currently one of 'FIDO', 'UUCP', 'FQDA', 'TEXT'. .address a full nDimensional address list for the .network as specified by Xferq. For FTN, this would be: domain#zone:net/node.point listed - remote site is listed in the Site Cache or a Nodelist. inbound - current inbound directory (includes trailing slash) remfile - received filename infile - fullpathname of received file There are many other variables available but normally they not required. FREQ FREQ* keywords apply to Gazebo ONLY. ROOF and PORTICUS use RFS and expect RFS.CFG and FREQ.LST to be in RAM:. XfreqSH is an xferq command which allows one to use any .FLO style freq handler with xferq.library and wpl mailers. Certain Freq Handlers are Xferq compatible, such as FreqMate. Example FREQCFG entries ; Internal XfreqSH Freq Handler #?.req #RAM:freqlist.lst INFO:BadFreQ.Txt ; SkyFreq Freq server 2.90 #?.req run RAM:skyfreq %R %o %z %N %n %p Sysop %s ; Freq Handler included with DLG #?.req dlg:tptfreq t:filenotfound %R %O ; FFRS v1.24 #?.req RAM:FFRS RAM:FFRS.cfg %R %o %b %z:%N/%n.%p Sysop If using RAM: for fast loading, startup will need to copy them there FREQCMD RAM:Xfreqsh FREQCFG RAM:Xfreqsh.cfg FREQLOG LOG:FREQ.LOG BAN These are prompts and banners which are displayed to the user. These are the ROOF ones. BAN timeout "\n\rYou have exceeded the $(loginwait) sec. input timeout, Bye...\r\n" Message sent to caller when he has exceeded logindelay. System then hangs up. BAN sysver " Roof Mailer v$«SMVER» Roof System v$«RVER».$«RTAB» ${WPLname}" System version banner BAN welcome " /// Welcome To The\r\n /// ____ ___ ___ ___\r\n /// / _ // // // __/\r\n /// / __ // / // / // _/\r\n \\\\\\ /// /_/ \\ /___//___//_/\r\n \\\\\\ ///\r\n \\\\\\ /// ? for ROOF menu.\r\n" System Welcome Banner The above to are presented to callers on connect. NOTE: that all '\' backslashes must be escaped. If you wish to display a banner larger than 256 bytes, use the BANNER keyword. BAN sysprompt "\r\nThe ROOF [Line:$(line)] ? for menu or login: " System Command Prompt BAN notumh "Sysop has disabled $(namebuf) access during software upgrade." This is the message to present to human callers when ACCESS is set FALSE outside of UMH. NOTE: the user will be given the number of minutes to wait before calling back if he calls DURING UMH. Here's Umbrella: BAN timeout "\n\rYou have exceeded the $(loginwait) sec. input timeout, Bye...\r\n" BAN welcome " Come under my Umbrella, you must be wet.\r\n" BAN sysprompt "\r\nMailers Only:\r\n" BAN sysver " Umbrella Point Mailer v${WPLVER} ${WPLname}" /* TAGNAME of area where user messages will be posted */ SYSOPBASE ECS_SYSOP SYSOPBASE This is a TAGNAME as appearing in your tossers config file. NOTE, GRAB and UserUL will call Smsg to write an inbound packet with this TAGNAME. It is your resposibility to import this packet. If the domain is other tha your primary or default domain, you may specify the correct domain by using tagname@domainname SITE CACHE CONFIGURATION ------------------------ CFG:wpl/gen/mailername/Cache.cfg This contains information related to sites with which one has regular sessions. Generated: roofCACHE.wpl, gazeboCACHE or umbrellaCACHE.wpl is generated. GenMailer will create a cache of ftn (nodelist), uucp, internet, bbs, fax and atomic clock site information for those systems one calls often. The removal of the overhead of a Nodelist/L.sys/Passwd Lookup for sites such as your net, echomail and usenet feeds, greatly speeds up dialing and wazoo/emsi/uucico response times. mailernameCACHE.wpl is called during a slave startup to set the values node, number, password, sitename, sysop for EACH slave. These five MUST be defined, in order for the cache to be useful. Obviously, one must have a password set with each system one caches. Clock sites do not require a password. node aliases: bbs------ mixed case a BBS or Online service the 'term' command will be executed on connect fax------ mixed case a fax modem or machine either the faxsend or faxrecv command will be executed on connect. ---.-.-- last two characters must be mixed case an internet site uucico command will be executed on connect ------- mixed case a uucp site uucico command will be executed on connect The following is a list of keywords and types of sites with which they may be used: "BBS" number altnum line dial sitename sysop term predial presess termsess "FAX" number altnum line dial sysop xprsetup predial presess "CLOCK" number altnum line dial sitename baud xprsetup predial presess "UUCP" number altnum line dial sitename sysop password uuoptions predial presess impsess "FTN" number altnum line dial sitename sysop password multi useakasin useakasout handshake present predial presess impsess freqsess ticsess sortsess Required Keywords: node ftn address (or addresses), bbs alias, uucp alias or clock alias. A combination of types is permitted, but uucp may not be in combination with other types. number phone number of site password session or login password (if none, set to "") sitename name of system (in case of uucp/internet, full address) sysop system operator's name Optional Keywords: altnum alternate number to dial if first one busy line line to use regardless of line requesed by calling script dial alternate dial string to use predial command to run before dialing a site presess presession command to run after connect and before handshaking. This is intended to be used with call forwarding and packet switching services. Additional FTN Site Keywords: These need not be entered if FALSE or empty multi if TRUE, indicates that site bundles multiple domain packets in a single archive. Requires FTNsort.rexx. useakasin if TRUE, we will send all files destined for any of the site's KNOWN FTN AKAs during an INBOUND WAZOO session keyword is not required if FALSE useakasout if TRUE, we will send all files destined for any of the site's KNOWN FTN AKAs during an OUTBOUND WAZOO session keyword is not required if FALSE handshake a comma separated list of handshakes to try with this site supported: FAST,EMSI,WAZOO,FTS1. All Handshakes defined for LINE (except FAST) will be used if keyword not used. FTS1 the required handshake for FidoNet WAZOO the fastest handshake that provides domain information when properly implemented. TrapDoor DOES NOT provide domain information under WAZOO. EMSI As per spec. The second fastest handshake that provides domain information when properly implemented. Neither TrapDoor nor XenoLink provide domain information under EMSI. FAST is required when calling mailers which do not properly support the EMSI negotiation specification. This group includes TRAPDOOR and some versions of XenoLink. If you only get a WAZOO session when you call a site expecting EMSI, try FAST also. present list of addresses, space separated, to present during EMSI handshake. This first in the list be be considered the PRIMARY address by the remote site. All AKAs will be presented if this keyword not used. sortsess aftersession command to execute for this site instead of the global CMD SORTSESS. This command overides impsess freqsess aftersession command to execute for this site instead of the global CMD FREQSESS, after sending a REQ. ticsess aftersession command to execute for this site instead of the global CMD TICSESS, after receiving TICs. impsess aftersession command to execute for this site instead of the global CMD IMPSESS, after receiving mail. Additional BBS Site Keywords: term terminal program launch command termsess aftersession command to use for this site instead of the global CMD TERMSESS Additional Clock Site keywords: baud baudrate of this clock site xprsetup xpr setup string Additional UUCP Site Keywords: uuoptions xx -pri -7 -P9 These are ADDITIONAL UUCICO command paramters to use for this site FTN sites: If you have the same password for more than one FTN or address a site carries, all these addresses may be placed in the node entry. node fidonet#1:167/151.0 amiganet#40:600/1.0 amiganet#40:600/151.0 number 6847500 altnum 4210285 line 2 sitename Contact Plus sysop Denis Turcotte password xxxxxx useakasin TRUE handshake WAZOO,EMSI UUCP/InterNet Sites: (Not applicable to UMBRELLA) For UUCP/Internet sites, the node entry is the alias for the site. altnum, line and dial keywords are accepted for uucp/internet sites. The sitename keyword is the full address of the site. node phoenix number 3383798 line 3 dial ~AT&K0&M0DT sitename phoenix.UUCP sysop Yanik Grignon password xxxxxx node odn number xxxxx dial ~AT&K1&M4DT line 2 sitename odn.mtlnet.org sysop Mark Kraml password xxxxxxx Atomic Clock sites: (ROOF/PORTICUS Mailers only) Clock sites do not require a password. Clock sites use two new keywords, baud and xprsetup. node clock number 16139527729 baud 300 sitename National Research Council xprsetup Y1993,O-4 xprsetup is the string to use with XprClock.library. "Y" being the current year, "O" your offset from UTC (GMT). Note that most Atomic Clock Sites will always give you Standard Time. If you wish to have you system set to DayLight Savings Time, subtract 1 from the offset. OnLine Services and BBS sites: (Not applicable to UMBRELLA) Shelter Mailers can be used as an auto-dialer frontend for your term program. The advantage is that while dialing the bbs or online service, your system is still able to perform its ftn/uucp/clock polls as well as answer and service incoming calls. BBS sites (which can include online services such as Compuserve and Genie) are entered in the SiteCache as follows: node bbs_image number 9372137 sitename Electronic Image sysop Sean Mollitt term Terminus:TSL IGNOREODU DEFAULTS Terminus$(line).DEF SCRIPT bbs_image.scp As with UUCP dialing, the 'node' entry is the alias used in the dial command. (eg: DIAL bbs_image) The 'sitename' and 'sysop' fields are displayed in the mailer's GUI, in the same manner as other site types. As with all Cache dialing, the 'dial', 'line', 'altnum' and other applicable Cache options are supported for BBS dialing. If the BBS is also an FTN node which is already in the cache, simply add the term command to the entry and the bbs alias to his AKA list. node fidonet#1:167/165.0 AMIGANET#40:600/165.0 bbs_image The 'term' command MUST NOT DETACH from the cli. The configuration should be line specific, otherwise you will have to add the $(device) $(unit) and possible other variables to the command. The term program must be told to ignore owndevunit.library since it is being spawned in shared mode. It should also be told that there is a carrier already present, so that it does not try to initialize the modem or change the baud rate. (Terminus will ASSUME this, if there is either a default STARTUP script or a LOGIN script specified on the command line). If the term program supports a 'login' script, it should be included in the command line in order to automate login. It is advisable that the login script include a timeout routine to EXIT the term program if you are not around when connection is made. If necessary, one can use the variables $(line), $(device), $(unit), $$(baud), $(baudlocked), $(lockedrate), $(linkrate), $(maxrate) in the 'term' command line. Remember that the modem<->modem rate must be specified as $$(baud). Fax sites: (ROOF & PORTICUS ONLY) Sorry.... FEATURE is under development. Site-Specific AFTERSESSION commands: These use the same keywords as the global env CMD type. If one is site for a site, it will executed instead of the global CMD set in *GEN.cfg. freqsess aftersession command to execute for this site instead of the global CMD FREQSESS, after sending a REQ. ticsess aftersession command to execute for this site instead of the global CMD TICSESS, after receiving TICs. impsess aftersession command to execute for this site instead of the global CMD IMPSESS, after receiving mail. termsess aftersession command to use for this site instead of the global CMD TERMSESS If wpl vriables are used they MUST be deferred. MODEM CONFIGURATION ------------------- Both the modem itself AND the line are configured here. Each line can be tailored to enable certian operations. CFG:wpl/gen/mailername/modems/MODEMn.CFG Each modem config contains information related to the particular port, device, modem and display. Generated: roof.wpl and roofMODEM.wpl or gazebo.wpl and gazeboMODEM.wpl or Porticus.wpl and porticusMODEM.wpl CFG:wpl/gen/umbrella/modems/MODEM.CFG Umbrella modem config contains information related to the particular port, device, modem and display. umbrella.wpl and umbrellaMODEM.wpl are generated. NOTE: Both Roof and Porticus mailers require that modem config file names start at 2, regardless of wether WPL Function Host is installed or not. Modem?.cfg keywords: modem USR Courier 2400e 7Wire The name of the modem to use in window titles. device artser.device 0 Serial device and unit number rtscts TRUE enable/disable 7wire hardware handshaking required if LOCKED is TRUE dtrctl 1 0 No support for DTR 1 Internal port 'twiddling the bits' *USE THIS ON INTERNAL PORT ONLY* 2 SET_CTRL_LINES method (ASDG DSB, PDIO, CMI Multiport, CSA Magnum, etc.) Buffers 8 8 Receive and Write Serial Buffers in KBs. Serial Receive buffer: This is a value given to the particular serial driver, and the driver itself allocates this buffer. Serial Write buffer: This is the switch to turn on the double buffered writes to the serial port. The value has to be greater than the size of the largest single write that would be made. For example, a 9600bps+ modem uses an 8K block to write, so some value LARGER than this (Say 10) should be used. Two buffers of this size are allocated. *NOTE* : This feature separates the good serial drivers from the bad. If your system does not work with this turned on, a value of 0 can be used to turn this feature off. SlowModem FALSE If TRUE, a 60ms delay will be placed between each character in modem command strings. Locked TRUE Port is locked at higher rate than modem. lockedbps 19200 the port<->modem rate linkbps 2400 the modem<->modem rate initwait 3 number of seconds to wait for an OK response after sending Init command. The following control operations on a per line basis. offset 159 This is the pixel line for the top of both the XPR and Scrolling mailer displays. lo FALSE If TRUE, this line will not accept inbound calls from site not in the site cache or a nodelist. tryfts1 TRUE If TRUE, will enable FTS-0001 (Lotek) sessions on this line. This may be overridden by site-specific HANDSHAKE setting in Cache.CFG. trywazoo TRUE If TRUE, will enable FTS-0006 (WaZoo) sessions on this line. This may be overridden by site-specific HANDSHAKE setting in Cache.CFG. tryemsi FALSE If TRUE, will enable FSC-0056 (EMSI) sessions on this line. This may be overridden by site-specific HANDSHAKE setting in Cache.CFG. FIDONET sites MUST set BOTH tryfts1 and trywazoo TRUE. MODEM RESPONSE STRINGS We define what EVENT will be set by a string or pattern returned by the modem. This requires a pair of parameters: the 'event' name, and the second parameter is a pattern. Three types of EVENTS are used: FIND event: The event is the word 'find'. In this case the second parameter is not a 'pattern', but is a string that will be case insensitive compared to the response string. If the string matches, it will then look at the next character looking for a baud rate number. An example would be: FIND CONNECT The event type will be reported as 'CONNECT', and the baudrate is changed to the number grabbed after the string, unless the modem is LOCKED. BAUD event: The event is a number. In this case the second parameter is a case insensitive AmigaDos wildcard. If it matches the incoming string, the event is set to 'CONNECT', and the baudrate is changed to the given number. TEXT event: The event is text, in which case the second parameter is a case insensitive AmigaDos wildcard. If the wildcard matches, the event is set to the value given by the first parameter. The REQUIRED events are: OK, busy, connect If not a wildcard, thepattern to Match should exactly match YOUR modem's response strings :) examples: event pattern ----- ------- OK OK - command ok BUSY BUSY - response that will set the busy event BUSY NO CARRIER BUSY NO ANSWER BUSY RING - this would disable answer BUSY NO DIALTONE CONNECT CONNECT - responses that would set the connect event LINE VOICE - repsonses that would indicate a line error LINE CONNECT 0 LINE CONNECT| LINE ERROR MAID VOICE - response that would indicate a human error 300 CONNECT - responses that return CONNECT and the baud rate FIND CONNECT - connect baud rate will be returned RING RING - response that would set the ring event RING NO DIALTONE - this would force answer during dialing RING NODIALTONE - this would force answer during dialing FAX +FCON - indicates fax connection VOICE +VCON - indicates a voice call MODEM COMMAND STRINGS Commands sent to the modem are interpreted using the following special characters: SPECIAL CHARACTERS ~ add a delay 240ms ` add a delay 60ms | carriage return ^ raise DTR Use ONLY if DTRCTL set to 1 v drop dtr Use ONLY if DTRCTL set to 1 \ escape special character (in case you USE some of the above as text :) NOTE: one would precede these characters with the '\' escape character if the special character needed to be sent out the modem). In order to be able to send an "AT\" type command to the modem, you must use 4 '\' in the string. eg: AT\\\\X3 AT\v ;drop dtr Atten |~AT| Hangup v~~^~~ATH0|~AT| Init ATE1Q0V1X4 &H1&K1&R2&M4&B7 S0=0| to enable fax connection add appropriate command Dial ~ATDT Answer ATA| TECHNICAL INFO: Escape Chars: \ - the following character will be used uninterpreted, this is required for embedded quotes. \n - Newline (Same as Linefeed) \r - Return character \### - send the Octal (base 8) character given by the three digits following the slash. eg: \014=clear screen Types of Variables: Variable types are signified by the $ character, and the variable name is bracketed by a special set of characters, one to begin the bracket, and one to end. The bracketing character itself determines what TYPE of variable is used. To add a '$' character itself to the string, or to defer the expansion of a wpl variable until execution, use two $ characters one after the other. $«..» - SHELTER *GEN.cfg environmental variable During generation, the variable will be expanded to it's value $(..) - WPL variable set with the 'Set' WPL command ${..} - WPL AmigaDOS ENV: global variable, set with the 'SetEnv' WPL command or externally. $[..] - WPL AmigaDOS SHELL local variable, set with the 'SetVar' WPL command or externally. $<..> - WPL read-only calculated variables. These variables are calculated at the time that their value is requested. The following calculated variables are available: $ - substitutes an unlocalized date in dd-mm-yy format. $ - substitutes the unique REXX compatible message port name that identifies the current slave. $