home *** CD-ROM | disk | FTP | other *** search
/ The Arcade BBS / arcadebbs.zip / arcadebbs / bbstools / WWIV Mods / WWCPBETA.ZIP / WWCP.DOC < prev    next >
Encoding:
Text File  |  1994-03-20  |  40.5 KB  |  908 lines

  1.                  Documentation for Waffle to WWIV Copy (WWCP)
  2.                       Copyright 1993 by Gridpoint++
  3.  
  4.  
  5.                               LIMITED WARRANTY
  6.  
  7.  
  8.         THIS SOFTWARE IS PROVIDED "AS-IS", WITHOUT WARRANTY OF ANY KIND.
  9. THERE ARE NO EXPRESS OR IMPLIED WARRANTIES. THERE ARE NO WARRANTIES OF
  10. OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  11.  
  12.  
  13.         THE COPYRIGHT HOLDER SHALL NOT IN ANY CASE BE LIABLE FOR SPECIAL,
  14. INCIDENTAL, CONSEQUENTIAL, INDIRECT OR OTHER SIMILAR DAMAGES ARISING FROM
  15. THE USE OF, OR THE INABILITY TO USE, THE SOFTWARE, EVEN IF THE COPYRIGHT
  16. HOLDER OR HIS AGENT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  17.  
  18.  
  19.                           OBLIGATORY BEGGING MESSAGE
  20.  
  21.  
  22.         WWCP is a shareware program. If you wish to continue using it
  23. after a trial period of two weeks (beginning from the time you make your
  24. first connect to the WWIVnet), you are required to register your copy.
  25.  
  26.  
  27.         Consider this: WWCP took many hours to write and debug. I could've
  28. spent less time writing a kludge, but I don't work that way. I feel the
  29. extra time spent on making WWCP transparent to the users and easy for the
  30. system operator to install and maintain was well worth it. I've made an
  31. investment of around $1800 worth of my time. If I don't get my investment
  32. back (or at least a significant portion of it), I cannot continue to support
  33. the software, but must instead devote my time to more financially rewarding
  34. (and boring) projects (save me from writing COBOL! Please, please,
  35. pleeeeeeeeeeease! :-) To get full value for my time I need at least 72
  36. registered sites. Registration also gives you many other important benefits.
  37. See WWREG.DOC for information. Also see PRODUCTS.DOC for information on
  38. my other shareware programs.
  39.  
  40.  
  41.  
  42.                                WHAT IS WWCP?
  43.  
  44.  
  45.         The WWCP package allows you to exchange email between the
  46. WWIVnet and your Waffle BBS. WWIV netsubs can also be carrried as
  47. newsgroups on your Waffle system and vice-versa. The interface is totally
  48. invisible to the user. No kludges (such as manually adding special address
  49. lines to email or posts) are necessary. All routing is fully automatic.
  50.  
  51.  
  52.                                 WHY WWCP?
  53.  
  54.  
  55.         There are many interesting netsubs (newsgroups, in Usenetspeak) on
  56. WWIVnet, and WWIV is a very popular system. There are more than a thousand
  57. sites on WWIVnet, and hundreds of thousands of users. Clearly, there is a
  58. niche for gateway software.
  59.  
  60.  
  61.                         WHAT YOU NEED TO RUN WWCP
  62.  
  63.  
  64.         There are a few extras you need to set up WWCP that aren't
  65. included in the distribution package. You need:
  66.  
  67.         1. An external file transfer protocol program. This
  68.            program should handle Xmodem, Ymodem, or Zmodem, with
  69.            Zmodem much preferred. The only real requirement is that
  70.            the program exit with status zero for a successful transfer
  71.            and non-zero for an unsuccessful one. Just about every
  72.            protocol program in common use fits this description.
  73.            If yours doesn't you can probably kludge it up with a
  74.            batch file and judicious use of the IF ERRORLEVEL
  75.            construct.
  76.  
  77.            You can also use the new HS/LINK bidirectional transfer
  78.            protocol. If your modem runs at the same speed in both
  79.            directions (full duplex), HS/LINK is a win. If you have
  80.            a modem that transfers more slowly in one direction than
  81.            the other (e.g., USR modems using USR's proprietary HST
  82.            protocol), HS/LINK won't gain you much. Most commonn
  83.            modems (other than the USR) will benefit from HS/LINK
  84.            and the USR Dual Standard modems will benefit as well,
  85.            if they're run in V.32 mode.
  86.  
  87.         2. A FOSSIL driver (OPUS!COMM and X00 were used for testing.
  88.            and Waffle comes with BNU.)
  89.  
  90.         3. The Waffle BBS software (obviously).
  91.  
  92.  
  93.         You also need the following hardware:
  94.  
  95.         1. An IBM compatible PC capable of running Waffle (again,
  96.            obviously).
  97.  
  98.         2. A reasonable modem. "Reasonable" means that the modem
  99.            understands Hayes commands, such as ATZ to reinitialize,
  100.            ATD to dial, <pause>+++<pause>ATH to hang up, etc.
  101.            The modem should also hang up when DTR is dropped.
  102.            If your modem doesn't fit these criteria, see the Waffle
  103.            documentation for suggestions (throwing it off a tall
  104.            building and buying another one is the preferred technique).
  105.  
  106.  
  107.                                   CREDITS
  108.  
  109.         Many thanks to my fearless team of beta testers:
  110.  
  111. Fred Polsky (WWIVnet: 1@502, Internet: system@freds.cojones.com)
  112. Roy M. Silvernail (WWIVnet: 1@503, Internet: roy@cybrspc.mn.org)
  113. Bryan Lockwood (WWIVnet: 1@501, Internet: system@coldbox.cojones.com)
  114.  
  115. All three made many valuable suggestions and uncovered many potential
  116. problems. This madness would never have happened without them.
  117.  
  118.  
  119. Thanks are also due to:
  120.  
  121. Dan LeVaugh (WWIVnet: 1@9702, Internet: 1-9702@wwiv.cojones.com)
  122.  
  123. for helping me through the process of getting WWCP recognized by WWIVnet
  124. and for volunteering to be the WWCP nodes coordinator.
  125.  
  126. Wayne Bell (WWIVnet: 1@1, Internet: 1-1@wwiv.cojones.com)
  127.  
  128. for writing WWIV and allowing WWCP sites to connect to the net.
  129.  
  130. Thomas E. Dell (WWIVnet: dell#vox.darkside.com@501, Internet:
  131. dell@vox.darkside.com)
  132.  
  133. for writing Waffle in such a fashion that gateway software could
  134. easily be integrated. Well done, Mr. Dell.
  135.  
  136.  
  137.  
  138.  
  139.                          SETTING UP A WWIVNET CONNECT
  140.  
  141.  
  142. 1. First of all, you *need* a WWIVnet connect. Find a WWIV sysop in your
  143.    area who's willing to let you have a feed. If you can't find one
  144.    locally, check the net listings (available by typing //NET on any
  145.    WWIVnet board) for someone fairly close. Contact that person and ask
  146.    for a feed. If he's unwilling/unable to do it, try someone else.
  147.    WWCP also works fine with other WWIV-style networks, such as
  148.    WWIVlink, ICEnet, or any of the other dozens (or is it hundreds?)
  149.    of WWIV networks that have sprung up since Wayne Bell added
  150.    multi-net capability to WWIV. You can even belong to more than
  151.    one net at the same time. See MULTINET.DOC for more information.
  152.    In the following document, WWIVnet is assumed, but the procedure
  153.    is exactly the same for any other WWIV-style network you may
  154.    wish to join. If you want to join more than one net, the procedure
  155.    is somewhat different. Again, see MULTINET.DOC.
  156.  
  157. 2. Now you need a node number on the WWIVnet. Call any WWIVnet board
  158.    and send email to 1@9702. He is the WWCP coordinator, and will assign
  159.    you a node number. Be patient. Never forget that WWIVnet is largely
  160.    run by volunteers (just like Usenet). Common courtesy is *always*
  161.    in order. Tell 1@9702 the node number of the WWIVnet board you will
  162.    be connecting to. You should read the accompanying file RULES.DOC for an
  163.    overview of WWIVnet policies and regulations.
  164.  
  165. 3. Tell your connect to set up his networking files to *not* use WWIVnet
  166.    compression when connecting with you (WWIVnet uses a proprietary
  167.    compression library licensed from PKware, unfortunately), unless
  168.    you have another program that can decompress WWIV packets. This
  169.    version of WWCP has hooks to allow use of Gregg Beasey's DECOMP
  170.    program.  If you choose to use compression, you'll have to add
  171.    the proper line to decompress the packets to the WWSHELL.BAT and
  172.    WWPOLL.BAT files. Unfortunately, Gregg's program doesn't allow
  173.    compression, only decompression.
  174.  
  175.    Also, specify a password that your system will use when calling the
  176.    connect. This can be 1-15 characters. WWCP does not support the
  177.    automated password exchange feature of WWIV at the present time, hence
  178.    you must arrange your password in advance.
  179.  
  180.  
  181.                               INSTALLING WWCP
  182.  
  183. Fear not. If you've managed to survive installing Waffle, installing
  184. WWCP will be a snap. :-) If you have problems, refer to the TROUBLE.DOC
  185. included in the WWCP distribution package.
  186.  
  187. 1. Install the FOSSIL driver. Read the documentation for your particular
  188.    driver to see how to set it up.
  189.  
  190. 2. Put all the .EXE and .BAT files (wwcico.exe, wwrmail.exe, wwsmail.exe,
  191.    wwshell.bat and wwpoll.bat) in your waffle/bin directory.
  192.  
  193. 3. Put the WWSTAT and WWSEQ files in your waffle/system directory. These are
  194.    analogous to the Waffle STATIC and SEQF files, respectively.
  195.  
  196. 4. Edit the WWSTAT file to conform to your system. The lines must be in
  197.    the following order:
  198.  
  199. <name of your system>
  200.         The same as the "node" line in your system/static file.
  201.  
  202. <uucp name of WWIV system>
  203.         New in 1.3. This allows you to specify a uucp name for the
  204. WWIV system. It was necessary to make the multinet capability work
  205. properly.
  206.  
  207. <used for From: line on news. %s is replaced with WWIVnet address.>
  208. <used for From: line on mail. %s is replaced with WWIVnet address>
  209. <origin, used in Message-ID: header>
  210.  
  211.         These lines let you specify the From: line format for gated messages,
  212.         in a fashion analogous to the netnews and netmail parameters in the
  213.         Waffle static file. You can set a separate From: line for news and
  214.         mail, if you wish, or use the same for both. By default, both lines
  215.         are set to %s@wwiv in WWSTAT. This can be changed to anything you
  216.         want...... the person's WWIVnet address is substituted for the %s.
  217.         If you need an actual % in the address, use %%. Thus, the default
  218.         settings produce From: lines similar to:
  219.  
  220.         From: 23-9702@wwiv
  221.  
  222.         If you want to generate From: lines of the form:
  223.  
  224.         From: foobox!wwiv!23-9702@moskvax.cis.gov
  225.  
  226.         You'd use:
  227.  
  228.         foobox!wwiv!%s@moskvax.cis.gov
  229.  
  230.         in the WWSTAT file.
  231.  
  232.         If you have an actual domain site set up for wwiv, and want all
  233.         WWIVnet posts to appear to come from wwiv.yoyodyne.com, you'd use:
  234.  
  235.         %s@wwiv.yoyodyne.com
  236.  
  237.         in the WWSTAT file. If you're doing it this way, you'll also have to
  238.         add the line:
  239.  
  240.         wwiv.yoyodyne.com * /spool/wwiv/mail
  241.  
  242.         to your waffle/system/paths file (waffle/uucp/paths for Waffle
  243.         1.65).
  244.  
  245.         There's also an origin line in the WWSTAT file. This is used to
  246.         generate the Message-ID: header. These headers are in the form
  247.         (number)wwcp(node)@(origin), where (number) is an unsigned long,
  248.         (node) is your WWIVnet node number and origin is as set in your
  249.         WWSTAT file. This should be the domain name for your site
  250.         (foobox.hardknox.edu, bittybox.yoyodyne.com, etc.). If you don't
  251.         have one, use the domain .UUCP (foobox.UUCP, bittybox.UUCP, etc.).
  252.  
  253.         If you're going to be sending WWIVnet posts and email to the Usenet
  254.         directly from your system, you need to set all of these. If your
  255.         system doesn't get a Usenet newsfeed *through Usenet*, leave them
  256.         alone.
  257.  
  258. <your WWIVnet node number>
  259.  
  260. <your connect's WWIVnet node number>
  261.  
  262. <initialize FOSSIL>
  263.         Use 1 if you want the FOSSIL initialized before calling. Normally
  264.         this will be 1, but may need to be set to 0 for certain setups.
  265.  
  266. <port number>
  267.         This is the *FOSSIL* port number, which is normally 0 for COM1:, 1
  268.         for COM2:, etc.
  269.  
  270. <phone number>
  271.         This is the phone number for your connect. This should be the
  272.         *complete* dialing sequence for your modem, including any AT
  273.         commands. You can also put other commands in this line,
  274.         such as ATM0 to turn the speaker off, etc.
  275.  
  276. <password>
  277.         This is the password you've arranged with your connect.
  278.  
  279. <speed>
  280.         This is the speed to set the serial port to. If you use 0, the
  281.         port speed will be left as is. Supported speeds are 300, 600,
  282.         1200, 2400, 4800, 9600, 19200, and 38400 bps.
  283.  
  284. <use HS/LINK>
  285.         If you're using the HS/LINK protocol, set this to 1. Otherwise,
  286.         leave it alone. HSLINK.EXE must be in your PATH, and you must
  287.         set your DSZLOG environment variable if you're going to use
  288.         HS/LINK. See the HS/LINK documentation for more information.
  289.  
  290. <send protocol>
  291.         This is the command line to send data *to* your connect. The
  292.         file you need to send has a name of S<theirnumber>.NET. For
  293.         example, if you're connecting with 9702, you need to send the
  294.         file S9702.net.
  295.  
  296. <receive protocol>
  297.         The command line to receive data *from* your connect. The file
  298.         to receive has the name S<yournumber>.NET. If you are node 599,
  299.         you need to receive S599.NET. If you're using HS/LINK, anything
  300.         you put in this line is ignored, but make sure there *is*
  301.         a line.
  302.  
  303. <use compression>
  304.         Set this line to 1 to use WWIVnet compression, when that feature
  305.         becomes available (soon!). Until then, leave it 0.
  306.  
  307. <spool dir>
  308.         Your spool\wwiv\ directory (see below). The drive letter *must*
  309. be included, and the directory name should end with a \ character.
  310.  
  311. <credit>
  312.         This line is used to specify the default credit amount in
  313. kilobytes. Users can be restricted from sending/receiving excessive
  314. amounts of mail by this means. If you wish to give every user
  315. unlimited credit, you can use -1 as the credit amount. Otherwise,
  316. put a reasonable number here (where "reasonable" is at your
  317. sole discretion). This is also new for 1.3. See CREDIT.DOC
  318. for more details.
  319.  
  320.  
  321.         Any line beginning with a # character is treated as a comment,
  322. and processing resumes with the next line.
  323.  
  324. 5. Make a subdirectory called wwiv in your spool directory. This is used to
  325.    handle outgoing news for WWIVnet.
  326.  
  327. 6. Make a subdirectory called mail in the wwiv spool directory. This is used
  328.    to store outgoing mail for WWIVnet.
  329.  
  330. 7. Make a subdirectory called packets, also in the wwiv spool directory. This
  331.    is used to create and process net packets (analogous to batched news)
  332.    for WWIVnet.
  333.  
  334. 8. Add the line
  335.  
  336. wwiv /batch=wwiv wwiv.*
  337.  
  338. to your waffle/system/feeds file.
  339.  
  340. 9. Add the line:
  341.  
  342. wwiv * /spool/wwiv/mail
  343.  
  344. to your waffle/system/paths file (waffle/uucp/paths for 1.65). If you've
  345. set up a domain address for wwiv in your WWSTAT file, use that here too.
  346. For instance, if you've set up wwiv as wwiv.yoyodyne.com, put in:
  347.  
  348. wwiv.yoyodyne.com * /spool/wwiv/mail
  349.  
  350. If you haven't configured the From: lines in your WWSTAT file, or if
  351. you've used a bang path address there (foobox!wwiv!%s@some.site.com)
  352. then just use the:
  353.  
  354. wwiv * /spool/wwiv/mail
  355.  
  356. line.
  357.  
  358. 10. If you're going to be carrying WWIVnet netsubs (newsgroups) then load up
  359.    your system/static file. Add wwiv to the forums line. For instance,
  360.    if your forums line now reads:
  361.  
  362. forums       : local usenet
  363.  
  364. Then you'd change it to:
  365.  
  366. forums       : local usenet wwiv
  367.  
  368. See "Subscribing to WWIV Netsubs", below, for more information.
  369.  
  370.  
  371. 11. Set up your waffle/system/schedule file to run wwpoll periodically.
  372.     How often you want to do this is entirely up to you, and will depend
  373.     on the traffic volume, hours to get cheap phone rates, etc. You
  374.     can also run wwpoll manually if you wish. If you're using DOS 3.2
  375.     or below, you'll need to add the line:
  376.  
  377.     RUN
  378.  
  379.     to the end of wwpoll.bat.
  380.  
  381. 12. (optional) If your WWIVnet connect is going to be calling you, you need
  382.     to arrange an account for that system. Add the line:
  383.  
  384. IF ERRORLEVEL == 70 GOTO WW
  385.  
  386.     to your waffle/bin/run.bat file (in the section with the other similar
  387.     statements. Remember to keep the IF ERROLEVEL statements in reverse
  388.     numeric order), and at the bottom of run.bat (right before :END) add
  389.     the lines:
  390.  
  391. :WW
  392. CALL WWSHELL
  393. GOTO TOP
  394.  
  395.    If you're running DOS 3.2 or earlier, you'll have to use:
  396. :WW
  397. WWSHELL
  398.  
  399.    and put the line:
  400.  
  401. RUN
  402.  
  403.    at the end of the WWSHELL.BAT file. Now, go into admin and add a new
  404.    account for the WWIV board. Set it up just like a uucp connect
  405.    (access -2, etc.) but on the admin x screen set the shell to #exit 70
  406.    instead of the normal #exit 40 that you'd use for uucp. You can use other
  407.    numbers besides 70 for the IF ERRORLEVEL and #exit, of course. 70 is just
  408.    an example. Any number will work as long as it is the same in both places,
  409.    and as long as it isn't already used for something else. Your WWIVnet
  410.    connect will need to use a macro to dial in to your Waffle board and log
  411.    on. The details of this macro will vary, depending on how you have your
  412.    Waffle opening screens set up. If your Waffle login prompts are stock,
  413.    the following macro should work:
  414.  
  415. DEBUG ""
  416. TIMEOUT "30"
  417. BAUD "<baud rate to call at>"
  418. DIAL "<phone number of waffle board>"
  419. FAILURE "BUSY"
  420. WAITFOR "EW:"
  421. SEND "<wwiv board's login name>{"
  422. WAITFOR "word:"
  423. SEND "<wwiv board's password>{"
  424.  
  425.  
  426.    Just replace the information in angle brackets with the appropriate
  427.    information for your setup. The quote characters are required, as are
  428.    the { characters after the login name and password. (The { causes
  429.    the WWIV system to send a carriage return). If the WWIV sysop is
  430.    running a high-speed modem and you are not, the following macro
  431.    may work better:
  432.  
  433. DEBUG ""
  434. TIMEOUT "30"
  435. BAUD "<baud rate to call at>"
  436. DIAL "<phone number of Waffle board>"
  437. FAILURE "BUSY"
  438. SEND "<wwiv board's login name>{"
  439. WAITFOR "word:"
  440. SEND "<wwiv board's password>{"
  441.  
  442.  
  443.    Thanks to Delerium Tremens 1@9704 for this tip. Apparently certain
  444.    protocol negotiations can cause the modem to lose the first few
  445.    characters. If you have trouble, ask the WWIV sysop to check
  446.    WWIVNET.DOC for more information on macros. If you still can't
  447.    figure it out, email me at 1@502 or system@freds.cojones.com
  448.    from Internet and I will help. I will need the phone number of your
  449.    Waffle BBS and the baud rate the WWIV board will use to call. I will
  450.    also an exact representation of your login: and Password: prompts. If
  451.    you are having the WWIV board dial in, you must run wwsmail to batch up
  452.    the messages before sending them. Running it at the start of wwshell
  453.    works, but wastes precious telephone time, and can cause the WWIV system
  454.    to time out if there is a lot of data to batch. I suggest putting wwsmail
  455.    at the top of your run.bat file so it runs before every call. wwsmail is
  456.    fairly speedy when there isn't a whole lot of data to process and
  457.    shouldn't slow down the board reset to any noticeable degree.
  458.  
  459.  
  460. You're set! Your first order of business should be to log in as root or
  461. system and send email to the sysop of your WWIV connect. That will get you
  462. registered in the WWCP nameserver database as account #1 on your node. This
  463. is VERY IMPORTANT, because some WWIVnet informational messages get sent to
  464. the #1 account rather than to individual names. Also, subscribing to netsubs
  465. generally requires sending mail from the #1 account.
  466.  
  467.  
  468.  
  469.        SENDING MAIL TO THE WWIVNET FROM A DIRECTLY CONNECTED WAFFLE
  470.  
  471.  
  472.         WWIVnet addresses are of the form <usernumber>@<nodenumber>. To
  473. send mail to someone on WWIVnet, simply send it to
  474. <usernumber>-<nodenumber>@wwiv. For instance, to send mail to my WWIVnet
  475. account on Someplace Else BBS, 49@9702, you'd send mail to 49-9702@wwiv.
  476. That's all there is to it. All sysops on WWIVnet have an account number of
  477. 1. To send email to the sysop of node 9704, you'd send to 1-9704@wwiv. Of
  478. course, your site must have a direct connection to WWIVnet for this to work,
  479. or know the path to one which does (see below).
  480.  
  481.         You can also send mail to people on WWIVnet by name. However, since
  482. WWIVnet usernames can be several words you must replace any spaces in the
  483. user name with an underscore character (Waffle won't allow sending mail
  484. to multiword usernames). Thus, to send mail to Dark Mistress of Pain on
  485. node 9999, you'd send to:
  486.  
  487. dark_mistress_of_pain-9999@wwiv
  488.  
  489. Case is not important, as WWIVnet mashes everything to upper case anyway.
  490.  
  491.  
  492.  
  493.           SENDING MAIL TO THE WWIVNET FROM NEIGHBORING WAFFLE SITES
  494.  
  495.  
  496.         To support automated routing of mail to the WWIVnet, your
  497. downstream neighbors must have an entry in their system/paths file
  498. (uucp/paths for Waffle 1.65). For instance, if your machine is called
  499. foobox, your immediate neighbor (kremvax, say) should put the line:
  500.  
  501. wwiv    foobox!wwiv!%s
  502.  
  503. in his paths file. If kremvax feeds another site, moskvax, then
  504. moskvax would use the line:
  505.  
  506. wwiv    kremvax!foobox!%s
  507.  
  508. in his paths file, and so on. The neighbor does *not* need a copy
  509. of WWCP for this to work. If your neighbor *is* running WWCP, though,
  510. he won't need to do this, since his system will already know a path to
  511. wwiv.
  512.  
  513.         If you've configured your From: lines to generate a valid
  514. address in WWSTAT, any site on the Internet should be able to send mail to
  515. WWIVnet, without any special path entries. However, your near neighbors
  516. may still wish to use an entry in paths to expedite mail.
  517.  
  518.  
  519.                  SENDING MAIL TO WAFFLE/USENET FROM WWIV
  520.  
  521.         There are two ways to do this.
  522.  
  523. 1. If the Waffle address is user@site, a WWIV user can send email to
  524. <user>#<site>@<nodenum> where nodenum is the node number of your Waffle
  525. system. Just substitute a # for the @ in the Internet address. If your
  526. Waffle system has been assigned node number 19762, and your Waffle system
  527. was named foobar, a WWIV person could contact root on your system by sending
  528. mail to root#foobar@19762 from the main prompt on the WWIV board. This
  529. technique will work whether or not someone on the Waffle side has ever
  530. sent anything to the WWIVnet. WWIV users are not limited to sending
  531. mail to the directly connected Waffle site. They can send mail to any
  532. site that your Waffle knows how to reach. If your Waffle is connected to
  533. the real Internet, a WWIV user could send mail to joeblow@gnu.ai.mit.edu
  534. by sending to joeblow#gnu.ai.mit.edu@19762. Sending mail to
  535. boris%foobox@kremvax.cis.gov would be done by sending to
  536. boris%foobox#kremvax.cis.gov@19762.
  537.  
  538. Special note for sending to Internet addresses beginning with a number:
  539.  
  540. Sending to an Internet address beginning with a number (in particular,
  541. Compuserve addresses such as 72633.551@compuserve.com) from WWIVnet will
  542. not work properly, because WWIV assumes the first part of the address is
  543. a usernumber. Thus, to send to an Internet address beginning with a number
  544. from WWIVnet, you must enclose the address in quotation marks (e.g.,
  545. "72633.551@compuserve.com"). WWRMAIL version 1.3 supports this.
  546.  
  547. 2. WWIVnet also uses an alternate address form. The one specified above
  548. is <username>@<node number>. The alternate form is
  549. <user number>@<node number>. This presents problems, since people on the
  550. Waffle side don't *have* WWIV user numbers. The problem can't be ignored
  551. because WWIV automatically uses the <number>@<node> form for all
  552. replies (whether replying to a post or to email). For this reason, every
  553. time someone on the Waffle side posts a message or sends email to the
  554. WWIV side, a database is scanned for his or her name. If it isn't found,
  555. the Waffle address is added to the database and a unique WWIV user number
  556. is assigned for that person. Humans don't need to know what this is because
  557. it's only used by the WWCP routing software. This database may prove useful
  558. for other purposes. See the technical information section at the end of this
  559. document.
  560.  
  561.  
  562.  
  563.                        SUBSCRIBING TO WWIVNET NETSUBS
  564.  
  565.  
  566.         WWIV netsubs are very much like Usenet newsgroups. However, to
  567. receive a netsub you must be added to the subscriber list by the host of
  568. the netsub. In that respect, it's more like a Usenet mailing list. WWIV
  569. netsubs can be hosted by any system on the WWIVnet, including WWCP
  570. sites. The whole system is rather anarchic (somewhat reminiscent of
  571. the Usenet alt.* hierarchy) as far as the creation of new netsubs goes.
  572. There's nothing to prevent a WWIV system from starting a netsub on a
  573. particular topic, even if one (or even several) already exists.
  574. However, posting rules for a netsub are controlled by the sub host.
  575. That means that the rules range from absolute anarchy (no rules) to
  576. complete totalitarianism. The rationale behind this is that if you're
  577. not satisfied with the way the host runs the sub, you're free to start
  578. your own on the same topic. If enough other people feel the way you
  579. do, your sub will succeed and the original one will die.
  580.  
  581.  
  582.         To subscribe, you need to find out who hosts the sub. If there's a
  583. sub carried by your connect (or some other WWIV BBS you call) that you'd
  584. like to subscribe to, ask who the sub host is, send that person
  585. email and ask him to put you on the list. He will need to know your
  586. WWIVnet node number. If you are feeding netsubs to other Waffle/Usenet
  587. sites, you should tell the sub host that (some hosts don't want their
  588. subs gatewayed to other networks). There is also a listing of all available
  589. netsubs sent out periodically. This list should appear in the mailbox for
  590. your postmaster account from time to time. It's sent in several parts.
  591. You can also download a copy from most WWIVnet boards, to use until your
  592. own copy starts coming in.
  593.  
  594.  
  595.         Bear in mind that unless the netsub is being hosted by a local BBS,
  596. *someone* is going to have to pay for a long distance call. If your WWIV
  597. feed is doing it, you should offer to help with the phone bill. If it's
  598. someone else, you should find out who's doing the LD calling and offer
  599. to help that person.
  600.  
  601.  
  602.         Now, you need to set up a couple of things on your system to
  603. receive the sub. In your waffle/system directory, create a file called WWIV.
  604. This works just like the LOCAL and USENET files (remember, you have to add
  605. wwiv to the forums line in your waffle/system/static file for this to work).
  606. Most WWIV netsubs are identified by numbers. This number is called the subtype.
  607. The newsgroup name for your waffle system should be wwiv.<subtype>. It
  608. can be anything you want, actually, but wwiv.<subtype> is suggested, so
  609. as to eliminate loops and other Ugliness if you're sending the netsubs
  610. to other Usenet sites. Use the following waffle/system/wwiv file as a
  611. template for making your own. You may want to alias the wwiv.<subtype>
  612. name to something more indicative of the sub, as shown here. For instance,
  613. History and Moral Philosophy, subtype 19702, newsgroup wwiv.19702, is
  614. dedicated to discussion of the works of Robert A. Heinlein and the ideas
  615. presented therein. To keep people from having to remember the newsgroup name,
  616. it's been aliased to "heinlein". Typing "heinlein" at the main Waffle prompt
  617. will take you to the newsgroup.
  618.  
  619. Newer releases of WWIV software also support named subtypes. WWCP 1.3
  620. *should* work with named subtypes as well. For a WWIV netsub named
  621. foobar, I suggest a newsgroup name of wwiv.foobar, but (as with the
  622. numbered subtypes) you're free to call it anything you want.
  623.  
  624. # sample WWIV definition file
  625.  
  626. # You need to change the below line to match your system.
  627.  
  628. DEFAULT /dir="C:\WWIVGATE"
  629.  
  630. DEFAULT /type=USENET /keep=100 /post=6
  631.  
  632. wwiv.9702  /name="[Ye Olde Alaska Tavern %N]" /alias=alaska /sig=sig
  633. wwiv.19702  /name="[History and Moral Philosophy %N]" /alias=heinlein /sig=sig
  634. wwiv.29702  /name="[Memos from Purgatory %N]" /alias=memos /sig=sig
  635. wwiv.39702  /name="[907 Sysop's Sub %N]" /alias=sysop /sig=sig /post=9 /read=9
  636. wwiv.49702  /name="[Pagan Community %N]" /alias=bdinfo /sig=sig
  637. wwiv.59702  /name="[TDM's Corner Abortion Clinic %N]" /alias=abortion /sig=sig
  638. wwiv.19712  /name="[WWCP Support %N]" /alias=wwcp /sig
  639. # end of sample
  640.  
  641.  
  642.         Some WWIV netsubs don't like signatures (which they call "taglines").
  643. If you're subscribing to one of these, don't use the /sig parameter.
  644.  
  645.         Now, make a file called NETSUBS in your system directory. This
  646. keeps track of the host system for each netsub. The format of the
  647. system/netsubs file is the netsub name, followed by a space, followed by
  648. the subtype, followed by a space, followed by the sub host's node number.
  649. For instance, Memos from Purgatory (a forum for demented writings) is hosted
  650. by Someplace Else, node number 9702. Memos has a subtype of 29702, so the
  651. line in your system/netsubs file would be:
  652.  
  653. wwiv.29702 29702 9702
  654.  
  655.  
  656. A named subtype of FOOBAR, hosted by node 9653, might have a line in
  657. NETSUBS something like this:
  658.  
  659. wwiv.foobar FOOBAR 9653
  660.  
  661.  
  662. A complete system/netsubs file corresponding to the above
  663. system/wwiv file might look like:
  664.  
  665. wwiv.9702 9702 9702
  666. wwiv.19702 19702 9702
  667. wwiv.29702 29702 9702
  668. wwiv.39702 39702 9702
  669. wwiv.49702 49702 9702
  670. wwiv.59702 59702 9702
  671. wwiv.19712 19712 502
  672.  
  673. Note that all the subs in this example are hosted by Someplace Else, node
  674. 9702, except for subtype 19712 which is hosted by 502.
  675.  
  676. It is suggested that you do subscribe to subtype 19712, WWCP Support. Updates
  677. and other administrative bulldada will be announced there from time to time.
  678.  
  679. Also existing is a mailing list for WWCP. Send mail to
  680. wwcp-request@fred.com for more information.
  681.  
  682.  
  683.  
  684.               FEEDING WWIV NETSUBS TO NEIGHBORING WAFFLE SITES
  685.  
  686.         This is easy. As far as Waffle knows, the WWIV netsubs are just
  687. ordinary newsgroups. Set up your system/feeds file to feed wwiv newsgroups
  688. just like any other newsgroup. wwiv.* will feed every wwiv group, wwiv.9702
  689. will only feed one, etc. Your neighbor should also set up his system/feeds
  690. file to feed the same groups back to you. Your neighbor will probably want
  691. to put wwiv in the forums line of his static file, and make a system/wwiv
  692. file like the one above. If he's carrying all of the same ones you do
  693. you can just send him a copy of your system/wwiv file (of course, he'll
  694. need to stick in the proper directory name for his system setup). The
  695. neighbor will *not* need a system/netsubs file, just the system/wwiv
  696. file. The neighbor will *not* need to subscribe to the netsub. To the
  697. WWIVnet, his site looks like part of your node. If you carry it, he
  698. can carry it without subscribing. Conversely, if he wants something you
  699. don't carry he'll either have to convince you to start carrying it or
  700. arrange his own WWIVnet connect. Don't forget to have the neighbor set up
  701. his paths file to route email correctly (see "Sending Mail to the
  702. WWIVnet from Neighboring Waffle Sites", above). Your neighbor doesn't
  703. need a copy of WWCP for this to work.
  704.  
  705.  
  706.                        HOSTING YOUR OWN WWIV NETSUBS
  707.  
  708.         Again, the process is fairly straightforward. First, pick a subtype
  709. that hasn't already been used. Traditionally, sub types are numbered
  710. starting with your node number, and going up by 10000 for each additional
  711. sub you host. If your node number is 549, the first sub you host gets
  712. subtype 549, the second 10549, the third 20549, and so on. Again,
  713. named subtypes should also work fine. Check the most recent subs.lst file
  714. to make sure that your subtype name or number hasn't already been used.
  715. Now, you need to make a *.sub file in your system/ directory, where * is
  716. the subtype of the sub you wish to host (subtype 10549 would use a
  717. 10549.sub file, subtype foobar would use a foobar.sub file, and so on).
  718. This file should contain a list, one per line, of all the subscribing node
  719. numbers. Do not include your own node number. Now, add a line to your
  720. system/netsubs file. The format is the same as shown in  "Subscribing to
  721. WWIVnet Netsubs", above. The sub name, the subtype, and the host's node
  722. number (yours, in this case), all separated by one space. Suppose you want
  723. to start a netsub devoted to Hostess snack cakes. You find that subtype
  724. 10549 is available, and decide to use it. If your node number is 549, the
  725. line in your system/netsubs file would look like:
  726.  
  727. wwiv.10549 10549 549
  728.  
  729. You can also give the sub a different name if you wish. You could call
  730. it alt.religion.twinkies, say, and use the line:
  731.  
  732. alt.religion.twinkies 10549 549
  733.  
  734. in the netsubs file. This technique will also work for feeding normal
  735. Usenet newsgroups into the WWIVnet. If you wanted to feed in comp.lang.c
  736. with a subtype of C549, you'd use the line:
  737.  
  738. comp.lang.c C549 549
  739.  
  740. in the system/netsubs file, again assuming that your node number is 549.
  741. Remember to alter your system/feeds file to feed the new newsgroup to
  742. wwiv. You could feed all wwiv.* groups, alt.religion.twinkies, and
  743. comp.lang.c by using something like:
  744.  
  745. wwiv /batch=wwiv wwiv.* alt.religion.twinkies comp.lang.c
  746.  
  747. in the system/feeds file. You'll also need to add the group to your
  748. system/wwiv if it's a new group for you (you won't need to do this
  749. if it's a Usenet group you're already carrying, because it's already
  750. in the system/usenet file). That's it! Everything else is fully automatic.
  751.  
  752. Special note for moderated newsgroups:
  753.  
  754.         A good smarthost will automatically mail posts to a moderated group
  755. to the moderator instead of posting them to the net. However, some
  756. smarthosts are smarter than others. If you are going to be gating a
  757. moderated newsgroup, you need to use a /mod= flag in the system/netsubs
  758. entry for that group. This should be the last thing on the line, after
  759. the group name, the subtype, and the host (which will be you, if you're
  760. doing the gating). Example: you're gating comp.lang.obscene, a moderated
  761. group. The moderator is wirth@pascal.com. Your node number is 599. You decide
  762. to use a subtype of 10599. The system/netsubs entry would look like:
  763.  
  764. comp.lang.obscene 10599 599 /mod=wirth@pascal.com
  765.  
  766. This is a NEW FEATURE and has not been extensively tested. You are STRONGLY
  767. encouraged to test this out on a small scale before relying on it to work
  768. in all cases (that is, if you start gating a moderated newsgroup to 500
  769. WWIV nodes and it screws up, don't forward the flames to me. :-). I'd
  770. suggest gating it to, at most, one WWIV node to start with and observe the
  771. result. If you experience problems, please contact the author.
  772.  
  773.  
  774.                                MAINTENANCE
  775.  
  776.  
  777. Since every message passed to WWIVnet from Usenet/Internet results in
  778. the author of the message being assigned a WWIV user number, the
  779. user database can grow very large after a while. This version of
  780. WWCP includes a program called WWPURGE. WWPURGE allows you to
  781. delete any records that have 1) never been used for mail and
  782. 2) haven't been used at all for a specified period of time.
  783. For safety's sake, accounts that *have* been used for mail
  784. are not deleted. The only ones that are marked deleted are
  785. the ones that have only been used for public messages. WWPURGE
  786. allows you to specify the number of days of inactivity before
  787. records are purged. It's recommended that you run WWPURGE
  788. periodically to clean out any stale records that might be
  789. hanging around.
  790.  
  791.  
  792.  
  793.                            TECHNOGEEKOID ZONE
  794.  
  795.  
  796.         This section of the documentation is aimed at the technically
  797. inclined Waffle sysop (is there any other kind?). There are three
  798. major executables in the WWCP program suite, wwsmail, wwcico, and
  799. wwrmail. wwsmail batches up the messages in WWIV format and creates the
  800. outgoing packet. If a packet already exists, the new messages are
  801. appended to it. Thus, there's no problem with running wwsmail multiple
  802. times before making a connection. This packet is placed in the wwiv/packets
  803. subdirectory of your spool directory, and is named SXXXX.NET, where
  804. XXXX is the node number of your WWIV connect. wwsmail exits with a
  805. status of zero if there is a data packet ready to send, non-zero
  806. otherwise. A zero-length packet is counted as no packet. The program
  807. also exits with status zero if there is a packet from previous invocations,
  808. even if no new data has been added. You can use the exit status in a
  809. batch file to carry out an operation based on whether or not a packet
  810. is ready to send (for instance, make wwpoll not bother to call out if
  811. there's no packet. The supplied wwpoll.bat works this way).
  812.  
  813. WWSMAIL also exits with status zero if there is a file named MAKECALL.DAT
  814. in the spool/wwiv/packets directory, even if there is no packet to send.
  815. This allows you to force a callout by setting up cron to create a
  816. MAKECALL.DAT file periodically (the contents of this file are not
  817. relevant.... only its existence or lack of same is important) or even
  818. creating one manually. WWCICO deletes any MAKECALL.DAT when it makes a
  819. successful connect.
  820.  
  821. For instance, you could use a batch file similar to
  822.  
  823. echo foo >\spool\wwiv\packets\makecall.dat
  824.  
  825. and have cron run it at the time you want to force the call out (say,
  826. after 9:00 PM for low phone rates). Then you could have cron run
  827. wwpoll every half hour. wwpoll will keep trying regardless of whether
  828. there is data to send, until at least one connect has been made. At that
  829. point, the MAKECALL.DAT file will be deleted and wwpoll will resume the
  830. default behavior of not calling unless there is actually data to send.
  831.  
  832.  
  833.         wwcico is the uucico analogue. It handles the modem i/o and
  834. calls the external file transfer protocol as needed. wwcico has two
  835. command line switches. The -d switch puts wwcico in dialout mode and
  836. calls the WWIV board. The -r switch puts wwcico in dialin mode, and is
  837. used when the WWIV board is calling you. These options are similar
  838. to the ones for uucico. wwcico exits with status zero if a packet
  839. has been received from the WWIV board, 1 if there is no connect,
  840. an error occurs, or the operator aborts, and 2 if a connect has been
  841. made but there was no packet to send on the remote node. The incoming
  842. packet is stored with a file name of SXXXX.NET, where XXXX is your WWIV
  843. node number. Incoming packets *must* be processed before the next
  844. invocation of wwcico, because the next incoming packet will have the
  845. same name. The external protocol will either refuse to overwrite
  846. the old packet, or will overwrite it, depending. Either situation
  847. is bad. If the protocol refuses to overwrite, message traffic will be
  848. delayed until the next call (or even later, if the old packet still
  849. hasn't been processed). If the protocol overwrites, messages will be lost.
  850. You should always call wwrmail whenever wwcico exits with a status of zero
  851. (i.e., when an incoming packet has been received). If data has been
  852. transferred successfully, information will be written to a log file called
  853. WWCP in your /admin directory. This file can be viewed with SHOW WWCP in the
  854. usual way. If you have trouble, wwcico can be made to produce debugging
  855. information by using -dx or -rx instead of the normal -d and -r.
  856. This information is also written to admin/wwcp.
  857.  
  858.  
  859.         wwrmail is the program that reads the incoming WWIV packet and
  860. processes the messages into RFC822/1036 compliant form. After processing
  861. each, wwrmail calls rmail for mail messages, and adds news messages to
  862. a batch. If any news was received, wwrmail calls rnews before exiting.
  863. WWIVnet produces special control messages from time to time. In particular,
  864. net updates are sent out twice a week. These updates (analogous to uucp
  865. maps) aren't needed by WWCP and are thrown away. If you see a message being
  866. dumped as "WWIVnet control message or other unknown type" or
  867. "Compressed/encrypted message" it's most likely a net update. Don't worry
  868. about it.
  869.  
  870.  
  871.         WWCP uses a special database to handle replies to user numbers.
  872. This database is created and updated automatically, and is found in the
  873. system/wwalpha, system/wwnum, and system/wwdel files. The wwnum file
  874. contains records in usernumber order, while the wwalpha file contains
  875. pointers to user records stored in alphabetical order. The wwdel file
  876. contains pointers to user records that have been marked deleted, so
  877. they can be reused. You should back up these files periodically, because
  878. strange behavior can result if they get corrupted. For those interested,
  879. the wwnum file is a binary file, and the the record structure is:
  880.  
  881. struct user {
  882.                     char address[120];
  883.                     int usernumber;
  884.                     char used_for_mail; /*
  885.                                          * 1 if account used for email, 0
  886.                                          *  if not.
  887.                                          */
  888.                     char deleted; /* Used to mark deleted accounts */
  889.                     time_t last_used;  /* last time account was used */
  890.                     long credit; /* For payment, etc. */
  891.                     char reserved[20]; /* reserved for future expansion */
  892.                     char userdef[20]; /* For user-defined info */
  893.  
  894.                 };
  895.  
  896. The wwalpha files and wwdel files contain records consisting of 16 bit
  897. integers. To get the actual offset in the wwnum file, multiply
  898. the number from wwalpha or wwdel by sizeof(struct user).
  899.  
  900. Possibly the database files could be used for other purposes, with
  901. sufficient ingenuity on your part. The 1.3 record structure has
  902. 20 bytes reserved for user defined information. Feel free to use
  903. it as you will. All WWCP utilities preserve the contents of the
  904. userdef array, and userdef is guaranteed to be set to all
  905. zeros ('\0' characters) when a new record is created.
  906.  
  907.  
  908.