home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / citadel / ctdl338b.zip / NETWORK3.MAN < prev    next >
Text File  |  1990-07-01  |  98KB  |  2,247 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                             NETWORK MANUAL
  16.                             
  17.                           CITADEL-86: V3.32
  18.  
  19.                          Copyright 1989, 1990
  20.  
  21.                              by Hue, Jr.
  22.  
  23.                         C-86 Test System Sysop
  24.  
  25.                                90Jul01
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.                              TABLE OF CONTENTS
  72.  
  73.      I. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 2
  74.      II. Compatibility Ishes . . . . . . . . . . . . . . . . . . . . . . 2
  75.      III. Functionality  . . . . . . . . . . . . . . . . . . . . . . . . 3
  76.           III.1 Normal User Capabilities . . . . . . . . . . . . . . . . 3
  77.           III.2 Aides and Citadel-86's net . . . . . . . . . . . . . . . 4
  78.           III.3 Sysop Capabilities . . . . . . . . . . . . . . . . . . . 5
  79.                 III.3.a Node Creation  . . . . . . . . . . . . . . . . . 5
  80.                 III.3.b Node Administration & Member Nets  . . . . . . . 6
  81.                   III.3.b.i Special Access Strings . . . . . . . . . . . 6
  82.                   III.3.b.ii Baud setting  . . . . . . . . . . . . . . . 6
  83.                   III.3.b.iii Condensed Names  . . . . . . . . . . . . . 7
  84.                   III.3.b.iv External Dialers  . . . . . . . . . . . . . 7
  85.                   III.3.b.v New Node ID  . . . . . . . . . . . . . . . . 7
  86.                   III.3.b.vi Kill System . . . . . . . . . . . . . . . . 7
  87.                   III.3.b.vii Change Local/LD setting  . . . . . . . . . 7
  88.                   III.3.b.viii Change Name . . . . . . . . . . . . . . . 7
  89.                   III.3.b.ix Network Passwords . . . . . . . . . . . . . 8
  90.                   III.3.b.x Room List  . . . . . . . . . . . . . . . . . 8
  91.                   III.3.b.xi Member Nets . . . . . . . . . . . . . . . . 8
  92.                   III.3.b.xii Spine Settings . . . . . . . . . . . . . . 8
  93.                 III.3.c User Administration  . . . . . . . . . . . . . . 9
  94.                 III.3.d Normal Shared rooms  . . . . . . . . . . . . . . 9
  95.                 III.3.e File Requests  . . . . . . . . . . . . . . . . .10
  96.                 III.3.f Sending Files  . . . . . . . . . . . . . . . . .10
  97.                 III.3.g Miscellaneous Net Menu Options . . . . . . . . .10
  98.                 III.3.h Advanced Room Sharing Options: Routing . . . . .11
  99.                 III.3.i Advanced Room Sharing Options: Virtual Rooms . .15
  100.                 III.3.j Advanced Room Sharing Options: Vortices  . . . .16
  101.                 III.3.k Normal Network Sessions  . . . . . . . . . . . .18
  102.                 III.3.l Anytime Network Sessions . . . . . . . . . . . .18
  103.      IV. Domains in Citadel-86 . . . . . . . . . . . . . . . . . . . . .20
  104.         IV.1 What are Domains? . . . . . . . . . . . . . . . . . . . . .20
  105.         IV.2 So how does Citadel-86 utilize Domains? . . . . . . . . . .20
  106.         IV.3 Practical Notes and Procedures for all systems  . . . . . .21
  107.         IV.4 Practical Notes and Procedures for Domain Servers . . . . .23
  108.         IV.5 RoutMail  . . . . . . . . . . . . . . . . . . . . . . . . .25
  109.         IV.6 Costing . . . . . . . . . . . . . . . . . . . . . . . . . .26
  110.         IV.7 NodesX.*  . . . . . . . . . . . . . . . . . . . . . . . . .26
  111.         IV.8 Technical Notes . . . . . . . . . . . . . . . . . . . . . .27
  112.      V. STadel mail routing  . . . . . . . . . . . . . . . . . . . . . .27
  113.           V.1 Outgoing mail routing  . . . . . . . . . . . . . . . . . .28
  114.           V.2 Incoming route mail  . . . . . . . . . . . . . . . . . . .29
  115.           V.3 STadel considerations  . . . . . . . . . . . . . . . . . .30
  116.           V.4 Notes  . . . . . . . . . . . . . . . . . . . . . . . . . .30
  117.      VI. CTDLCNFG.SYS Parameters . . . . . . . . . . . . . . . . . . . .31
  118.      Appendix A: Other room-based Networks . . . . . . . . . . . . . . .32
  119.      Appendix B: Temporary Files . . . . . . . . . . . . . . . . . . . .32
  120.      Appendix C: Main C86Net . . . . . . . . . . . . . . . . . . . . . .32
  121.      Appendix D: RoutMail.Exe  . . . . . . . . . . . . . . . . . . . . .33
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.                                     -1-
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.      I. Introduction
  138.         This manual talks about the functionality and usage of the Citadel-86
  139.      Network.  This is not a technical discussion of the transmission protocols
  140.      used in the Citadel-86; for such a discussion, please consult NETHACK3.MAN.
  141.  
  142.         We want to discuss what the Citadel-86 Network is capable of, and what
  143.      you, the sysop, must do to use these capabilities.  As a relevant part of
  144.      this discussion, we'll also tell you what it can't do.
  145.  
  146.         As a useful acronym/identifier, we are going to refer to the Citadel-86
  147.      Network as C86Net throughout this documentation.
  148.  
  149.      II. Compatibility Ishes
  150.         So, let's start with the vague topic of what we're compatible with.
  151.      First the bad news: No, we do not talk directly to FidoNet.  Nor do we
  152.      talk to a number of other networks, such as USENET, BITNET, etc.  C86net
  153.      was designed, first, as a learning experience (so beware!), and, second,
  154.      with room-based systems in mind.  Rather than attempting to use something
  155.      designed with other purposes in mind, we decided to have fun.
  156.  
  157.         It is not impossible to talk to those networks in the future through
  158.      the judicious use of the #event parameter and the labors of a captive
  159.      programmer, and, in fact, the ability to talk to USENET is available.  
  160.      Since Paul Gauthier @Cerebral Cortex has disappeared, we're not sure
  161.      who you should contact.  If you're interested in trying to connect to
  162.      another net, investigate the MSGADD and MSGOUT utilities (see UTIL3.MAN).
  163.  
  164.         Now move to the good news.  Since STadel, as originally maintained by
  165.      David Parsons of Pell, and now maintained by a cast of thousands, was
  166.      originally derived from Citadel-86, it has maintained compatibility with
  167.      C86Net, so you should be able to network with STadels in your area.
  168.  
  169.         Amiga Citadel-68K, as maintained by Stallion (aka Jay Johnson) of The
  170.      Phoenix, since it was also derived from Citadel-86, is compatible with
  171.      C86Net.
  172.  
  173.         NeoCitadel, as maintained by Hue, Sr. of SuperComp III, is compatible
  174.      with C86Net.
  175.  
  176.         There are also various offspring from the above mentioned software
  177.      which retains some C86Net compatability, such as AmiDel, Fortress,
  178.      <fnord>adel, etc.
  179.  
  180.         We should mention that when we say that software is compatible with
  181.      C86Net, this means that a minimal network session can take place between
  182.      the two pieces of BBS software.  Not all of the software mentioned here
  183.      supports all of the functionality of C86Net.  Consult the documentation
  184.      of the respective software for details.
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.                                     -2-
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.      III. Functionality
  204.         So let's talk about what C86Net is capable of (this is the same as
  205.      discussing what Citadel-86 is capable of).  First, to simplify this
  206.      discussion, let's set up an "inheritance hierarchy" of users.  The
  207.      bottom-most level will have certain capabilities on the network, the next
  208.      level will have those capabilities plus several of their own, etc.
  209.      Here's what we'll use:
  210.  
  211.               Sysops
  212.                 |
  213.               Aides
  214.                 |
  215.            Normal Users
  216.  
  217.         Each level, starting with the Normal Users, adds more capabilities.
  218.      So we'll start with the lowest level, describing these capabilities.
  219.  
  220.      III.1 Normal User Capabilities
  221.         Normal users have three capabilities on the network.
  222.  
  223.         First, they may send Mail> to users on other nodes of the network.
  224.      C86Net Mail> can be sent by any user with network privileges to any local
  225.      node, or if the user has Long Distance (LD) credits, to any LD node.
  226.  
  227.         The Mail> is entered by going to the Mail> room and typing .Enter
  228.      Net-Message at the room prompt.  The user is then asked for the name of
  229.      the system.  A '?' will elicit a list of systems that Mail may be sent to;
  230.      an empty line will abort the .EN command.  If the user enters a legal node
  231.      name, then the user is asked for the name of a user on the target system.
  232.      An empty line will again abort the .EN command; any other input will be
  233.      assumed to be the name of a user on the target system.  The user may then
  234.      enter their message.
  235.  
  236.         In Section IV we banter about the Sysop and Domains in C86Net.  However,
  237.      we need to mention this here: the user can explicitly route mail to a
  238.      domain.  The mechanism is to use .EN and when prompted for a system name,
  239.      type
  240.  
  241.         <system name> _ <domain name>
  242.  
  243.         Your system will then attempt no verification of system existence at
  244.      all; it will merely follow procedures mentioned below in Section IV in the
  245.      attempt to get the Mail to the specified domain.
  246.  
  247.         Due to both the volatility of the user bases of room-based systems and
  248.      space considerations, user names cannot be validated during message entry.
  249.      Therefore, Citadel-86 will try to validate the user name during the
  250.      network session.  If the user has entered an invalid name for the target
  251.      system, he will be notified via Mail> from Citadel of his/her mistake.
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.                                     -3-
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.         A normal user's second ability is to enter messages in shared rooms.
  270.      Shared rooms will be discussed in full in Section III.3; to summarize,
  271.      they are rooms in which messages from your system can be sent to other
  272.      systems, and messages from those system can be received. Normally, a user
  273.      uses the command .Enter Net-Message to enter a message that should be sent
  274.      to rooms on other systems; a normal Enter message will cause the message
  275.      not to be networked to other systems (however, a shared room can be set
  276.      up so that all messages are networked -- see Section III.3).
  277.  
  278.         A shared room can be recognized by the blood-shot eyes of the sysop,
  279.      and also by the fact that rather than having a '>' at the room prompt, it
  280.      has a ')'.  A room that has a ':' for a room prompt is also shared, and
  281.      also has a directory attached to it (which has nothing to do with the
  282.      network).
  283.  
  284.         In both of the above cases, a normal message may be converted into a
  285.      net message (when in an appropriate room) when saving the message by
  286.      typing 'N' rather than 'S'.  A non-net message can not be directly
  287.      changed into a net-message.
  288.  
  289.          The third normal user ability is Local Mail> Forwarding.  This
  290.      feature is useful in densely networked areas where users tend to have
  291.      accounts on several systems, but do not have time to call all the systems
  292.      daily.
  293.  
  294.          Local Mail> Forwarding allows the user to specify that Mail> sent
  295.      to the user locally should be forwarded to another system.  Mail> sent
  296.      to the user will then be converted to C86Net Mail>, with one copy being
  297.      sent to the user's account on the system specified, and one copy being
  298.      left in the Mail> on the local system, in case the user should login at
  299.      a propitious moment.  The user may optionally specify the Mail to be 
  300.      forwarded to a different alias on another system.
  301.  
  302.          In order for a user to have access to this feature, the user must
  303.      must have net privileges.  If the user specifies forwarding to a LD
  304.      system, the user must have LD credits, or the Mail> will not be forwarded
  305.      (thus making forwarded Mail> their financial responsibility, rather than
  306.      the sender's).
  307.  
  308.          Mail> Forwarding is accessed via the .Enter Configuration
  309.      Address command.  The user will be asked for a system to forward his/her
  310.      Mail> to.  If they wish, they may use a domain-specified system.  A
  311.      blank line will cancel Mail> Forwarding.  Then the user will be prompted
  312.      for an alias to deliver the Mail> to.
  313.  
  314.          Mail from the Sysop to Citadel will never be Forwarded.  However,
  315.      unlike earlier versions of Citadel-86, incoming Network Mail will be
  316.      forwarded.
  317.  
  318.  
  319.      III.2 Aides and Citadel-86's net
  320.         The Aides of a Citadel-86 system gain only one extra capability that a
  321.      Normal User doesn't have, and this is called the Local Systems
  322.      Announcement. This is the ability to send a Mail> item via the network to
  323.      a user on all systems which are local to your system.  This is useful for
  324.      informing all local sysops of an important development.
  325.  
  326.  
  327.  
  328.                                     -4-
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.         An Aide does this by going to the Mail> room and using the .Enter
  336.      Net-Message command.  When the system asks for a node name to send the
  337.      Mail> to, the Aide should then answer with '&L'.  The Mail> that the Aide
  338.      subsequently enters will then be sent to the user that they indicated on
  339.      all local systems.
  340.  
  341.      III.3 Sysop Capabilities
  342.         Sysop capabilities in Citadel-86 regarding the network are numerous,
  343.      and we will organize them into sections.  Note that Domain Management
  344.      is in Section IV, not in this Section (III).
  345.  
  346.      III.3.a Node Creation
  347.         Before anything useful can take place on the network, you must have
  348.      other systems (also known as nodes) to call. Therefore, we'll begin with
  349.      adding systems to your netlist.  This netlist is called the "primary"
  350.      nodelist (see Section IV for information on what a "secondary" node list
  351.      is.)  We add systems to a primary nodelist via the Network Menu, which is
  352.      available to sysops from the Sysop menu as the 'N' option.  Once you have
  353.      entered the Network Menu, type 'A' to add systems.  Your system should
  354.      begin by asking for the name of the system to add, which you should type
  355.      in.  Next it will ask for its Node Id.  It is important that you get this
  356.      right.  The format of the node Id is
  357.  
  358.       <Country Code> <Area code> <Phone #>
  359.  
  360.         Country Code is the country code of your system's location, which
  361.      should be listed in COUNTRY.MAN; US is the United States and CA is Canada.
  362.      Area code is the area code of the system, and Phone # is the number used
  363.      to call that system under normal circumstances.  Citadel-86 will usually
  364.      use the node Id for calling other systems, which is why it's important to
  365.      get this right. However, if you are in a special circumstance where using
  366.      the node Id to call a system will simply not work (such as an intra-campus
  367.      phone system), there are ways around the problem.  See Section III.3.c.
  368.  
  369.         An example of a valid node Id would be
  370.  
  371.      US (612) 470-9635
  372.  
  373.         Notice the use of punctuation.  Punctuation is stripped out of node
  374.      Ids when dialing other systems, but punctuation should still be used
  375.      conservatively.
  376.  
  377.         You will then be asked the baud rate of the new system.  Usually, you
  378.      should answer with the highest baud rate that the new system supports; if
  379.      your system doesn't support their highest speed, then your system will
  380.      dial that system at the highest speed that your own system supports.
  381.      Sometimes, though, you will have to answer this question with a lower baud
  382.      rate, due to the fact that on some lines the network won't work at high
  383.      speeds.  We are not entirely sure why, although we suspect that it's simply
  384.      the phone system's fault.
  385.  
  386.         Finally, you'll be asked if the system is local or not.  This question
  387.      also affects how your modem will dial this system during networking, and
  388.      here's how:
  389.  
  390.  
  391.  
  392.  
  393.  
  394.                                     -5-
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.         If you answer that this is a local node, then the modem will be dialed
  402.      using
  403.  
  404.         <#callOutPrefix><phone#><#callOutSuffix>
  405.  
  406.         (If you don't know what #callOutPrefix and #callOutSuffix are, please 
  407.      review the Citadel-86 Installation Manual, or see Section V of this
  408.      manual.) Essentially, we just dial the system as a local call.  But if
  409.      you answer that the system is not local, then the modem dials with
  410.  
  411.         <#callOutPrefix>1<area code><phone#><#callOutSuffix>
  412.  
  413.         This is just a normal LD call in the States.  All of this can be
  414.      overridden, as stated above: see Section III.3.b.i.
  415.  
  416.      III.3.b Node Administration & Member Nets
  417.         Nothing stays the same, including nodes on your netlist.  Therefore,
  418.      there is an editing ability for nodes.  You may access this via the
  419.      Network Menu. Once at the Network Menu prompt, type 'E' for Edit Node.
  420.      The system will ask for the name of the node to edit, so type the name of
  421.      the node that you need.  Once you type a valid name, you will be given a
  422.      short summary of that node's condition, and then a Node Edit prompt will
  423.      show up.  From this prompt you may do the following:
  424.  
  425.       A - Override the dialing format described in III.3.b
  426.       B - Change this system's baud rate
  427.       C - Change the condensed name of the system
  428.       E - External Dialer access for this node
  429.       I - Change this system's Id
  430.       K - Kill this system from the net list
  431.       L - Change the Local setting
  432.       M - Change which nets that this system is a member of
  433.       N - Change this system's name
  434.       P - Activate security measures for this node
  435.       R - View which rooms you are sharing with this node
  436.       S - Spine settings
  437.  
  438.         Let's take these one at a time.
  439.  
  440.      III.3.b.i Special Access Strings
  441.         'A' from the Node Editing prompt lets you change the Access string for
  442.      calling this node.  If you give this string any value, the procedure for
  443.      calling this node will change to the following:
  444.  
  445.         <#callOutPrefix><access string><#callOutSuffix>
  446.  
  447.      which makes it very easy to construct special dialing sequences for nodes
  448.      in special situations.  Use this with some caution.  If you want to
  449.      use an external dialing program (for instance, to use PC Pursuit to
  450.      call another node), see later in this section.
  451.  
  452.      III.3.b.ii Baud setting
  453.         'B' allows you to reset the baud rate for this system.
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.                                     -6-
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.      III.3.b.iii Condensed Names
  468.         'C' allows you to change the "condensed" name of the system.  A 
  469.      'condensed' name is a name of your choosing of no more than 2 letters, 
  470.      which is nothing more than a useful shorthand for you.  You may use this 
  471.      shorthand in almost any situation in which you'd type the name of the 
  472.      system, such net mail, Dial out, etc.
  473.  
  474.      III.3.b.iv External Dialers
  475.          Citadel-86 supports (V3.32), in a rudimentary way, external dialers.
  476.      An external dialer is a program capable of using some method other than
  477.      normal dialing to call another system.  A well known example is PC Pursuit.
  478.  
  479.          To tell your installation that in order to reach some system on its
  480.      primary nodelist it must use an external dialer, use the 'E' option while
  481.      editing that node.  The system should then ask if you want to set up this
  482.      node to be dialed via an external program.  If you answer Yes, the system
  483.      will then prompt you for information on dialout.
  484.  
  485.          This "information" is system dependent.  For Citadel-86, the informa-
  486.      tion should be the command line which will cause the external dialer to
  487.      try to make connections with this node.  I'm sorry, but at this point
  488.      you're on your own as to what goes in this string -- it'll depend on how
  489.      the external dialer you have works, etc.  And, no, I'm not writing any
  490.      external dialers for PC Pursuit, Starlink, etc., either, and I don't have
  491.      any to distribute. Citadel-86 will simply send your command line to DOS
  492.      for execution.
  493.  
  494.         The external dialer you use should leave the system with carrier high
  495.      and ready to network (i.e., connection has been made with the system
  496.      you want to talk to) if it succeeds, otherwise not have carrier.
  497.  
  498.         If anyone develops or otherwise finds an external dialer for Citadel-86
  499.      or Citadel-68k which works well, a few sysops might be really really happy
  500.      if you mention it in Sysop Stuff.
  501.  
  502.      III.3.b.v New Node ID
  503.         'I' allows you to change the Node Id of this system.  When you use this
  504.      option, you will be asked if you are changing the meaning of this node
  505.      entirely, that is, you are making this record refer to another system
  506.      entirely. This is for the purpose of Mail forwarding and room sharing,
  507.      so answer this correctly.
  508.  
  509.      III.3.b.vi Kill System
  510.         'K' causes this system to be deleted from your node list.
  511.  
  512.      III.3.b.vii Change Local/LD setting
  513.         'L' lets you change the Local/LD setting for this node.
  514.  
  515.      III.3.b.viii Change Name
  516.         'N' allows you to change the name of this node.
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.                                     -7-
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.      III.3.b.ix Network Passwords
  534.         'P' allows you to setup security arrangements between this node and
  535.      yourself.  Security arrangements consist of two passwords, one of which
  536.      applies to your system, while the other applies to the node that you are
  537.      editing.  If neither your system nor the node that you are editing are
  538.      using passwords, then security is not active.  If either system is using
  539.      them, then security is active, and passwords must match during networking
  540.      in order for room sharing to be successful.
  541.  
  542.      III.3.b.x Room List
  543.         'R' allows you to see a list of the rooms that you are currently
  544.      sharing with this node.
  545.  
  546.      III.3.b.xi Member Nets
  547.         'M' allows you to change the nets that this system is associated with.
  548.      Citadel-86 allows you to associate any node on your node list with 0 or
  549.      more nets, up to 31.  When a node is created, it is automatically
  550.      associates with net 1 as a matter of convenience.
  551.  
  552.         The utility to assign a node to different nets is that, in conjunction
  553.      with the #event parameter (covered in Section III.3.k), you may then
  554.      network with different nodes at different times and/or days. This gives
  555.      you a lot of flexibility to participate in different nets at different
  556.      times. If necessary, you can assign a node to more than 1 network.
  557.  
  558.         If you take a node off of all the nets, then the node is disabled,
  559.      which means that Mail> cannot be sent to that node.
  560.  
  561.      III.3.b.xii Spine Settings
  562.         'S' lets you set the Spine settings.  The meaning of Spine in C86Net
  563.      depends on whether the system is LD or not.
  564.  
  565.         First, LD systems.  Normally, a C86Net node, when calling a local
  566.      system, will after transferring data to the receiving node, will perform
  567.      a 'role reversal' with the other system, which allows the receiver to
  568.      transfer messages to the caller, thus saving time during networking.
  569.      However, due to the existence of Long Distance charges, role reversal is
  570.      not performed on Long Distance calls.  The Spine settings lets you
  571.      override this behavior.  When you elect to use the 'S' command while
  572.      editing a node, the system will first ask if you wish to be a Spine for
  573.      the system you are editing.  If you answer Yes, Citadel-86 will perform
  574.      role reversal with this system during calls.  If you answer No, then the
  575.      Citadel-86 will ask if that system will be a Spine for you, and if you
  576.      answer Yes, then your system will never call that LD system again,
  577.      instead relying on it to role reversal during calls.
  578.  
  579.         If the system you will be dealing with is local to you, and you set it
  580.      as a spine (or yourself), then the system designated as a spine is
  581.      guaranteed to try for one successful network call during each network
  582.      session, even if the caller has no valid reason for calling.  This allows
  583.      the existence of systems with bad modems in the network.
  584.  
  585.         There is an alternative, perhaps better, method for editing nodes.
  586.      See Appendix D for details.  This is important, since the above does
  587.      NOT cover all flags associated with nodes, but the option covered in
  588.      Appendix D does.
  589.  
  590.  
  591.  
  592.                                     -8-
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.      III.3.c User Administration
  600.         For any user to use the room sharing or net Mail> abilities, they must
  601.      have "Network privileges".  There are two ways that Network privileges are
  602.      assigned. The first is via the CTDLCNFG.SYS parameter #NewNetPrivs, which
  603.      allows you to decide whether or not new users automatically have net
  604.      privileges (see Section V).  The second method is via the Network menu.
  605.      The Network Menu is available to sysops from the Sysop menu as the 'N'
  606.      option.  Once you have entered the Network Menu, type 'N' to set Network
  607.      privileges and follow the prompts.  (A similar capability also exists in 
  608.      the User Admin sysop menu.)
  609.  
  610.         If you (or other users) wish to send Mail> via the net to LD systems,
  611.      then you must assign one or more LD credits to the appropriate accounts.
  612.      You do this from the Network Menu as well.  Type 'C' at the Network Menu
  613.      prompt and follow the prompts.  Each Mail> message to a LD system costs
  614.      exactly one credit; there is no accounting on a byte count basis.
  615.  
  616.      III.3.d Normal Shared rooms
  617.         Sysops have the ability and responsibility of administering shared
  618.      rooms; this section covers normal shared rooms.
  619.  
  620.         A shared room, as noted above, is a room which will send to and receive
  621.      from other systems certain messages which were entered in the room.
  622.      Normal shared rooms transmit their messages using the point-to-point model
  623.      of networking.  For each system that you are sharing this room with, your
  624.      system will call that system and send only the net-messages that were
  625.      originally entered on this system.  There is no routing for normal shared
  626.      rooms.  If you have a pressing need for routed rooms, see Section III.3.i.
  627.  
  628.         To make a shared room, go to (or create) the room that you wish to make
  629.      a shared room, and edit the room.  At the room editing prompt you should
  630.      type 'S', which is the command for Shared rooms.  The system should now
  631.      ask if you want to make the room a shared room, so answer 'Y'.  Now you
  632.      will be asked to enter the systems that you wish to share this room with.
  633.      If the room was already a shared room, then you do NOT have to re-enter
  634.      any systems that you are already sharing this room with, but only the
  635.      systems which were not sharing the room before.
  636.  
  637.         Once you have finished entering the systems to share this room with
  638.      you will be asked to enter the names of the systems to remove from room
  639.      sharing.  Answer appropriately.
  640.  
  641.         Finally, you will be asked if you want this room to be an autonet room.
  642.      If you answer 'Y', then the system will ask if only people with net
  643.      privileges will have their messages automatically made into net messages,
  644.      or if everyone will have this privilege.  If you answer that only
  645.      people with net privileges will have the ability, then only they can
  646.      enter net messages in the room, and all other messages will be normal.
  647.      If you answer that everyone's messages should be converted, then that's
  648.      what will happen, regardless of their privilege setting.
  649.  
  650.         In order to have a successful shared room, all systems with which you
  651.      wish to share this room with must have a room with an identical name, and
  652.      must know that you want to share this room.  There is no such thing as
  653.      involuntary sharing of rooms.
  654.  
  655.  
  656.  
  657.  
  658.                                     -9-
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.      III.3.e File Requests
  666.         Sysops have the ability to request file(s) from other systems.  In
  667.      order to do this, you must know the name of the room and the name of the
  668.      file(s) that you wish from the other system.
  669.  
  670.         You may access this facility from the Net Menu by pressing 'R'.  You
  671.      are then asked for the system's name, the name of the room on the system
  672.      that has the file(s) that you want, and the name of the file(s).  You may
  673.      specify an ambiguous name for files, but your specification must be one
  674.      that the target system understands, rather than what your system
  675.      understands, so this may vary.
  676.  
  677.         You will then be asked for a location to place the files when your
  678.      system receives them.  You may specify anywhere on your disk system, but
  679.      you should try to ensure that you have enough room for the files.
  680.  
  681.         As a Citadel-86, your own directory rooms can be accessed via the
  682.      network for file transfer unless you otherwise designate.   To do so, go
  683.      to the room that you wish to be impervious to the net, edit the room, and
  684.      type Z, which will give the option of disabling this room for net
  685.      downloading.
  686.  
  687.      III.3.f Sending Files
  688.         Sysops have the ability to send file(s) to other systems.  There are
  689.      two aspects to this ability.
  690.  
  691.         First, sending a file.  This facility is accessed via the Net Menu by
  692.      pressing 'S'.  You will be asked for the name of the system to send the
  693.      files to, and the name of the files to send.  You may specify any location
  694.      on your system for the files, and your specification may be ambiguous, so
  695.      that you send multiple files to the target system.
  696.  
  697.         Second, receiving files.  You can control how much space you wish to
  698.      devote to files that are sent to you via the net and the maximum size of
  699.      any file you receive, as well as the location for the files to end up at,
  700.      through parameters in CTDLCNFG.SYS.  Please review The Citadel-86
  701.      Installation Manual or read Section V for more details on this.
  702.  
  703.      III.3.g Miscellaneous Net Menu Options
  704.         There are a couple of Net Menu options that haven't been covered yet.
  705.      They are:
  706.  
  707.         'V'iew the net list.  This option lets you view all the systems on your
  708.      netlist.  The format is
  709.  
  710.      <name>  <nodeId>   <need to call>  <baud> <disabled flag>
  711.  
  712.         "need to call" and "disabled flag" only appear if they are true.
  713.  
  714.         'D'ial out allows you to dial other systems manually for BBSing
  715.      purposes. After causing your modem to dial that number, the system will
  716.      drop you into chat mode.  You can dial systems that are disabled, thus
  717.      allowing you to list systems which are not C86Net compatible.
  718.  
  719.         'L'ocal list lets you list all systems on your primary node list
  720.      which are marked as "local".
  721.  
  722.  
  723.  
  724.                                     -10-
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.         'I'nitiate Net session lets you schedule an anytime net session to
  732.      begin as soon as you log off.  While this is not as convenient as just
  733.      typing "^A" while the system is in MODEM mode, it's useful when you
  734.      are calling in from remote and want to trigger a net session as soon
  735.      as you logoff.  This is a toggle switch; hit it again to turn off the
  736.      net session you just scheduled.
  737.  
  738.      III.3.h Advanced Room Sharing Options: Routing
  739.         C86Net (and thus Citadel-86) has support for Room Sharing routing.
  740.      This is an advanced option, and should be approached with caution.
  741.  
  742.         Routing in C86Net is used to transfer messages from one group of one
  743.      or more systems to another group of one or more systems.  Commonly, this
  744.      is between two different toll areas in order to reduce costs while
  745.      maintaining communications; however, there is no reason that with careful
  746.      planning routing cannot be used within a toll area.
  747.  
  748.         Normal room sharing and room sharing routing can be, and usually are,
  749.      used together.  Graphically:
  750.  
  751.       R1         |  R2
  752.          p1
  753.          | \     |
  754.          |  p3- - - -p4
  755.          | /     |     \
  756.          p2             p5
  757.  
  758.                  |
  759.  
  760.         In this diagrom, p1, p2, and p3 communicate with each other using the
  761.      Normal room sharing facility, as does p4 with p5.  However, p3 and p4
  762.      communicate using the routing facility; p5 then communicates with p1, p2,
  763.      and p3 indirectly via p4 (and vice versa, of course).  This is a simple
  764.      situation; complex situations can also be handled:
  765.  
  766.       R1         |  R2       | R3   |  R5
  767.          p1                                    p11
  768.          | \     |           |      |         /
  769.          |  p3- - - -p4- - - - -p6- - - - -p10
  770.          | /     |     \     |  |   |         \
  771.          p2             p5      |              p12
  772.                  |           |--|---|
  773.                         /----   |   ----\
  774.                        /    R4  |        \
  775.                       /         p7        \
  776.                      /         /  \        \
  777.                     /        p8    p9       \
  778.  
  779.         p6, for instance, only performs routing, while p3, p4, p7, and p10 will
  780.      perform both normal and routing.
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.                                     -11-
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.         So how do we explain this in a coherent manner?  First, let's remember
  798.      that all of this applies on a room by room basis; a system that is
  799.      performing routing for one room may be performing normal room sharing for
  800.      another room.  Now let's define some classes of nodes.  The first class,
  801.      PEONs, encompass the majority of nodes sharing any room, since most nodes
  802.      do not need to route messages.  The second class of nodes, BACKBONES, are
  803.      capable of routing.
  804.  
  805.         PEON: This is a node that thinks it is participating in a normal
  806.      shared room.  A PEON node never "knows" that the room is being routed by
  807.      another node, and so the administration of this room is very easy for PEON
  808.      nodes.  This is because the node(s) that may be performing the routing
  809.      role for this room always talks to PEON nodes using the normal room
  810.      sharing schemes.
  811.  
  812.         Let's formalize the rules of PEON room sharing (this is just a review
  813.      of Section III.3.f).  A PEON node regards the room being shared as part of
  814.      a point-to-point network, and therefore always calls all systems that it
  815.      is directly sharing the room with whenever it has new net-messages that
  816.      were entered on this PEON node to send.  Incoming net-messages are never
  817.      passed on to anyone else.  Systems that are compatible with C86Net but
  818.      don't support the advance room sharing routing schemes should be easily
  819.      able to participate as a PEON node in a room that is being routed by
  820.      someone else.
  821.  
  822.         BACKBONES: A BACKBONE for a room is a node which is capable of routing
  823.      messages from one node to one or more other nodes.  Let's set down the
  824.      rules of routing as precisely as possible for BACKBONEs.
  825.  
  826.      a) Each node a system is directly sharing a given room with will be either
  827.         a PEON (explained above) or another BACKBONE, and the system will know
  828.         (be told by the sysop) which each node is.  The type of node (PEON or
  829.         BACKBONE) determines which messages will be routed to that node during
  830.         a network session, and will be detailed in b) and c), below.
  831.  
  832.      b) When the system shares a room with a PEON node, a BACKBONE assumes that
  833.         the given system directly shares this room with all other PEONs which
  834.         are sharing this room with this BACKBONE.  Therefore, the BACKBONE will
  835.         not pass any messages from any PEON to any other PEON node.  From the
  836.         narrow perspective of a collection of PEON nodes, a BACKBONE behaves
  837.         exactly the same way, and in fact those PEON nodes do not need to "know"
  838.         about the BACKBONE status of the routing system, since it is not routing
  839.         messages from any of the PEON nodes to any of the other PEON nodes.
  840.  
  841.         When sharing a room with a PEON, a BACKBONE also assumes that the PEON
  842.         has neither direct or indirect contact with any other BACKBONE systems
  843.         besides itself except through* itself.  Therefore, a BACKBONE will pass
  844.         on all messages received from any and all BACKBONE systems to all PEON
  845.         systems connected with this room.
  846.  
  847.      c) When a BACKBONE system shares a room with another BACKBONE system, it
  848.         assumes that, first, it does not have any communication with the PEON
  849.         systems sharing this room directly with you (do not confuse this with
  850.         any and all PEON nodes in its area, though), and secondly it does not
  851.         communicate with any of the other BACKBONES which you communicate with.
  852.  
  853.  
  854.  
  855.  
  856.  
  857.                                     -12-
  858.  
  859.  
  860.  
  861.  
  862.  
  863.         Therefore, when a BACKBONE is sharing a room with another BACKBONE, it
  864.         routes all messages from all PEONs and all BACKBONEs to the BACKBONE
  865.         it is sharing with.  This routes messages from local PEONs as well as
  866.         allowing a series of BACKBONES to route messages to far-flung areas.
  867.  
  868.         A diagram is undoubtedly in order at this point.  This portrays the
  869.      the sharing of a single room.
  870.  
  871.  
  872.         P1-----                                          P10
  873.        /|      \                                        /       Px= PEON x
  874.       | P2------B1-------B2-------B4---------B5-------B6        Bx= BACKBONE x
  875.        \|       /\               /  \         \         \
  876.         P3-----/  \             P6---P7        \    P8   P11
  877.                    B3                           \  / |
  878.                   /  \                           B7  |
  879.                  P4---P5                           \ |
  880.                                                     P9
  881.  
  882.         In the above diagram, any message left on any system in the given room
  883.      will be seen on all systems in the diagram (eventually).  Let's follow
  884.      the progress of a message from P1, Peon 1.  The message will reach P2 and
  885.      P3 via direct room sharing (Section III.3.f), as well as B1 [see b) above].
  886.      Since the message comes from a PEON, by the rules set forth in c) above
  887.      the message from P1 will be passed on to both B2 and B3 when we come into
  888.      contact with them.
  889.  
  890.         P4 and P5 will receive the message of P1 from B3 due to b) above, to
  891.      wit: "... a BACKBONE will pass on all messages received from any and all
  892.      BACKBONE systems to all PEON[s] ..."
  893.  
  894.         B4 will receive the message originating on P1 from B2, as noted in c)
  895.      above, and in like manner will pass it on to B5, and also to P6 and P7
  896.      as B3 did for P4 and P5.  B5 will pass on P1's message to B6 and B7, and
  897.      they in turn will pass them on to P10 and P11, P9 and P10, respectively.
  898.  
  899.         There are two types of BACKBONEs, differentiated by their calling
  900.      characteristics.  This is a bit of sticky point: a system may be both
  901.      types of BACKBONE for any room as required (and in practice many are
  902.      both).  Essentially, the type of BACKBONE a system is for a room defines
  903.      the system's relationship with another node.
  904.  
  905.         When a system, for some room, is defined as a PASSIVE BACKBONE for some
  906.      node, this means that this system will not call the other system during
  907.      net sessions when the only reason to call would be to share this room.
  908.      PASSIVE means "do nothing", and that's what a PASSIVE BACKBONE does: it
  909.      waits for the other node to call.
  910.  
  911.         And, conversely, when for some room a system defines itself as an
  912.      ACTIVE BACKBONE for some other node, it is guaranteeing that it will call
  913.      (or poll) that node for messages once during a net session, no matter if
  914.      it has new messages to share or not.
  915.  
  916.         Why would a system want to be both ACTIVE and PASSIVE for a single room?
  917.      Suppose we had this:
  918.  
  919.        B1------B2-------B3------B4
  920.  
  921.  
  922.                                     -13-
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.         By allowing a system to assume either PASSIVE or ACTIVE roles, depending
  930.      on the system in question, we can for instance allow B2 to be ACTIVE in
  931.      relation to B1, while PASSIVE in relation to B3.  This allows the costs of
  932.      netting to be more evenly spread.  Then B3, itself ACTIVE in relation to
  933.      B2, can be PASSIVE in relation to B4.  In this way, no one carries the
  934.      costs of calling two backbones (and B1 gets off scot-free!).
  935.  
  936.         The type of BACKBONE a system is does not affect what messages will be
  937.      routed.  For instance, messages from B1 will reach B4, and those of B4
  938.      will reach B1.
  939.  
  940.         So, now you're wondering how to actually get these setup, right?  This
  941.      is accomplished by editing the room.  First, use 'S' to enter all systems
  942.      sharing this room DIRECTLY with, including all of your local PEON nodes,
  943.      and all the BACKBONES that you will be talking to, but NOT any non-local
  944.      PEON nodes (i.e., PEONS that will receive your region's messages via
  945.      routing). After finishing that, hit 'B' at the Room Edit prompt.
  946.  
  947.         You will then be asked three questions: which nodes do you want to be
  948.      PASSIVE BACKBONES for, which nodes you wish to be ACTIVE BACKBONES for,
  949.      and which nodes you wish to return to PEON status.
  950.  
  951.         Here are three last thoughts on routing.  First, you may wish to
  952.      consider using the Member nets to separate nodes into two different
  953.      classes, and then network at different times for the different classes.
  954.      For instance, in the Twin Cities we network from 3 to 3:45 in the morning
  955.      for local room sharing.  At 3:45 all but one of the systems returns to
  956.      normal operating mode.  That remaining system drops from the first 
  957.      networking session, which was for net 1, and then goes right into another
  958.      network session again, but this time for net 2, which keeps it from 
  959.      trying to talk to anyone else but for a system in New York, which
  960.      functions as an ACTIVE BACKBONE for several rooms (the lone system in the
  961.      Twin Cities functions as a PASSIVE BACKBONE). This networking session 
  962.      lasts for 15 minutes, which is normally more than enough time to complete
  963.      this single call. Therefore, we usually have a successful nightly
  964.      connection with New York.
  965.  
  966.          Our second thought relates to network configurations and routing.  So
  967.      far, all of our diagrams have had two BACKBONES (or at least a HOST and a
  968.      BACKBONE) communicating.  While this is normal, it is also possible to
  969.      have a configuration like this when all nodes are local to each other:
  970.  
  971.                p1
  972.                | \                   p1 = p3 = p4 = PEON
  973.                |  B2 - - - - p4      B2 = ACTIVE BACKBONE for p4
  974.                | /
  975.                p3
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.                                     -14-
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.         When all the nodes are local, B2 will communicate with p4 using the
  996.      normal room sharing protocol rather than using the routing protocol.
  997.      This is useful when p4 has C86Net compatible software that does not
  998.      support routing, along with a modem that will not dial out.  If p4 were
  999.      to have software that supported room sharing routing, but still had the
  1000.      bad modem, then p4 could of course be classified (classify itself) as a
  1001.      HOST or PASSIVE BACKBONE for B2. Since an ACTIVE BACKBONE always calls
  1002.      other BACKBONES, in either case then B2 should make at least one call to
  1003.      p4 for pickup and delivery.  If p1 and p3 simply had p4 classified as a
  1004.      PEON node, then there is no guarantee that p4 would receive nightly calls
  1005.      from all systems.
  1006.  
  1007.         Third and finally, it is not always necessary that one BACKBONE know
  1008.      that another system is a BACKBONE.  For instance,
  1009.  
  1010.  
  1011.                   /----P1-----\
  1012.      . . . -----B1------|------B2----- . . .
  1013.                   \____P2_____/
  1014.  
  1015.  
  1016.      is thoroughly valid if both B1 and B2 think of each other as PEONs, even
  1017.      if they act as BACKBONEs.  The PEONs would, of course, treat B1 and B2
  1018.      as fellow PEONs, not knowing any better.  Since B1 thinks of B2 as a PEON,
  1019.      it would not route any of the messages from P1 and P2 to it (and B2 would
  1020.      get those messages directly), but it would route messages from other
  1021.      BACKBONEs to B2 as well as P1 and P2.  B2 would accept all messages from
  1022.      B1 as PEON messages and thus not route them to P1 and P2, but it would
  1023.      route them to BACKBONEs connected to B2.  This might prove useful in some
  1024.      situations.
  1025.  
  1026.         Confusing?  For us, too.
  1027.  
  1028.      III.3.i Advanced Room Sharing Options: Virtual Rooms
  1029.         Let's begin with motivation: A certain PASSIVE BACKBONE discovered
  1030.      that while a certain room that he was backboning certainly belonged on
  1031.      the network, he didn't want that particular room on his system, because
  1032.      it didn't fit the atmosphere of the system.  Furthermore, the traffic
  1033.      in that room was so heavy that it was scrolling his message base faster
  1034.      than he liked (due to the fact that the messages in shared rooms are
  1035.      stored in the message base, just like any other message).
  1036.  
  1037.         Thus, the need for 'Virtual rooms' was discovered.  A Virtual room,
  1038.      much like Virtual memory, is a room that isn't really there, even though
  1039.      you route messages.  Messages, rather than being stored in your message
  1040.      base, are stored as files on your disk system, not taking up room
  1041.      in your message base, although they do consume room on your disk system.
  1042.      So, you have the ability to perform routing services for other systems,
  1043.      while not cluttering your message base with them.
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.                                     -15-
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.         Virtual Rooms administration is completely contained in the
  1062.      utility VIRTADMN.EXE, which cannot be run through Citadel-86's
  1063.      <O>utside Commands menu; you must take Citadel-86 down in order to
  1064.      run VIRTADMN.  VIRTADMN should be fairly self-explanatory for the
  1065.      experienced sysop when used in interactive mode.  The following
  1066.      structure is created and maintained by VIRTADMN:
  1067.  
  1068.                         <C-86's home level>
  1069.                                 |
  1070.                              VIRTUAL    <ctdlvrm.sys, ctdlvnet.sys>
  1071.                                 |
  1072.                         ------------------
  1073.                         |   |   |   |   |
  1074.                         0   1  .......  N
  1075.                                         |
  1076.                                        --------
  1077.                                        |      |
  1078.                                      PEON  BACKBONE
  1079.  
  1080.         The numbered directories within the VIRTUAL directory correspond
  1081.      to the virtual room slot numbers; since Virtual Rooms can be deleted,
  1082.      this sequence can be broken.  Each of these directories contain the
  1083.      pair of directories PEON and BACKBONE.  The PEON directory contains
  1084.      the messages from PEON nodes, which should be routed to Backbone
  1085.      systems, while the BACKBONE directory contains messages from Backbone
  1086.      systems that need to be routed to other Backbones and Peons.  Like
  1087.      normal backboning (III.3.i), your system may serve as a Passive Backbone
  1088.      for some systems and Active Backbone for other systems for any given
  1089.      room.
  1090.  
  1091.         Naturally, as the network sessions pass, you will find that the
  1092.      files containing the messages will accumulate, cluttering up your disk
  1093.      drive.  The solution is to run VIRTADMN using the +batch command line
  1094.      argument.
  1095.  
  1096.         See UTIL3.MAN for full details on VIRTADMN.
  1097.  
  1098.      III.3.j Advanced Room Sharing Options: Vortex Detection and Correction
  1099.  
  1100.         "Vortex" is a piece of jargon someone on C86Net came up with to 
  1101.      describe the phenomenon of messages 'repeating' themselves in shared
  1102.      rooms.  For instance, a message from Thom Brown might reappear three times
  1103.      in a shared room on Test System.  The redundancy is both tedious and room
  1104.      consuming, and so is a negative influence on the network.
  1105.  
  1106.         A vortex is usually a result of poor topology management of a C86Net.
  1107.      If you are not familiar with C86Net backbones and other such things,
  1108.      please read III.3.i Advanced Room Sharing Options: Routing.  The problem
  1109.      lies in having a "loop" of systems, usually BACKBONE systems.  For
  1110.      instance, this configuration would cause a vortex:
  1111.  
  1112.                      Node A
  1113.                     /   |         Where all nodes are backbones
  1114.                  Node--Node
  1115.                    B    C
  1116.  
  1117.  
  1118.  
  1119.  
  1120.                                     -16-
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.      Messages generated on Node A would be sent to Node B.  Node B would then
  1128.      pass them on to Node C, which in turn would pass them right on back to
  1129.      Node A.  If those backbones had other backbones hanging off of them,
  1130.      messages coming in from those would effectively "bounce back" to them.
  1131.      There are obviously a number of variants on this mistake that can cause a
  1132.      vortex.
  1133.  
  1134.         Another cause of vortexing is system crashes during networking, such as
  1135.      power outages, in which messages will be sent by one system to another,
  1136.      but that fact is never recorded, thus causing them to be resent during the
  1137.      next network session.
  1138.  
  1139.         So how does Citadel-86 handle vortices?  Any message on the network can
  1140.      be uniquely identified by its point of origin (node ID) and the message
  1141.      number it was assigned on the point of origin.  Both data are carried by
  1142.      the message wherever it goes.  We also assume that message numbers are
  1143.      assigned in strictly ascending order.
  1144.  
  1145.         Therefore, the way to handle vortices is not very complex.  For each
  1146.      system which we share rooms with, either directly or indirectly (that is,
  1147.      via routing), we keep a file of room indicators and associated message
  1148.      numbers and dates.  For each room in this file, the associated message
  1149.      number is the number of the highest message received from this node for
  1150.      this room, and the date is the date of the last message received.  Once
  1151.      an entry is established for a room in the node's file, it's a simple
  1152.      matter to detect vortexing messages: if the current message comes from a
  1153.      node which we recognize, we simply compare the current message's number to
  1154.      the highest we have received for this room, and the date similarly.  If 
  1155.      both tests are failed, we discard it.
  1156.  
  1157.         Messages which are discarded will also cause an error message to pop up
  1158.      in the Aide> room, telling you what system was involved in the net session
  1159.      when the vortex occurred, and what systems' messages were involved in the
  1160.      vortexing.  The message(s) discarded may possibly also show up in a file 
  1161.      named DISCARD.
  1162.  
  1163.         The files we just mentioned which will contain the highest received
  1164.      message numbers will appear in your #NETAREA directory as "#.vtx" files,
  1165.      where # is the position in the nodelist that node occupies.
  1166.  
  1167.         In order for vortexing to work for any given node, it must be present
  1168.      in your node list and include a correct node ID.  It does not matter if
  1169.      you receive the messages directly via normal room sharing or indirectly
  1170.      via routing BACKBONEs.
  1171.  
  1172.         By default, vortex management is off.  If you wish to have vortex
  1173.      detection and correction active, place "+vortex" on your command line.
  1174.      There are several reasons why you might not wish to have it active, such
  1175.      as not enough disk space (a large node list will result in a large number
  1176.      of .vtx files, although the files themselves are usually very small), not
  1177.      worth the time, etc.
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.                                     -17-
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.         Citadel-86 Vortex handling does not cover Virtual Rooms, or nodes not
  1194.      on your nodelist.  All such messages are regarded as non-vortexed.
  1195.      However, non-Virtual Room messages from unknown nodes will cause the names
  1196.      and IDs of unknown nodes to be written to the screen during netting and,
  1197.      if you have +netlog on your command line, to your NETLOG.SYS.
  1198.  
  1199.         Finally, we should note that vortex handling differs from how we used 
  1200.      to handle it.  The prior version utilized only message #s, not message 
  1201.      dates, so when a system's message base was regenerated, it was necessary 
  1202.      that all systems on the net delete the .VTX entry for that node.  This 
  1203.      should no longer be necessary.
  1204.  
  1205.      III.3.k Normal Network Sessions
  1206.         Network sessions are set up using the #event parameter of CTDLCNFG.SYS;
  1207.      please review The Citadel-86 Installation Manual if you are not familiar
  1208.      with this parameter.  Using #event for networking is straightforward and
  1209.      easy to do.  Here are some rules to follow
  1210.  
  1211.         a) Classify nodes that you want to network with into groups that
  1212.            share characteristics that will reflect on what time of the day
  1213.            (or day of the week) you may want to network with them, and assign
  1214.            them to the same net.
  1215.         b) Coordinate with them suitable times for network activity.
  1216.         c) Write appropriate #event parameters for your system that will
  1217.            allow netting with the systems.
  1218.  
  1219.         The generic format for a normal network event is
  1220.  
  1221.      #event <days> <start time> network preempt <duration> <message> <networks>
  1222.  
  1223.         Days, start time, and message are explained in the Installation Manual.
  1224.      While the network field is required, preempt is only a suggested field
  1225.      for this #event, on the assumption that you do not wish users to interfere
  1226.      with your netting.  Duration defines how long the network session is
  1227.      to last (specify in minutes).  Finally, "networks" is a list of nets who's
  1228.      members are eligible to be called during this network session.  If you
  1229.      specify more than one, you must separate them by commas, with no spaces.
  1230.  
  1231.         Here is an example for networking every night at 3AM for 45 minutes for
  1232.      systems on net 1.
  1233.  
  1234.      #event All 3:00 network preempt 45 "Networking" 1
  1235.  
  1236.         This is an example for netting from 4:45 to 4:55 on Tuesdays and
  1237.      Saturdays for nets 3, 9, and 10.
  1238.  
  1239.      #event Tue,Sat 4:45 network preempt 10 "Networking" 3,9,10
  1240.  
  1241.      III.3.l Anytime Network Sessions
  1242.         Citadel-86 also allows "anytime netting."  Anytime netting is the
  1243.      ability to receive and complete network calls from other systems at any
  1244.      time of the day or night, and to call, initiate, and complete network 
  1245.      sessions with other systems after a given amount of "dead time" has
  1246.      occured on a system.
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.                                     -18-
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.         In the area of reception, an installation using the network will
  1260.      (or should) always recognize a network call from another C86Net system,
  1261.      regardless of whether the other system is calling out in Normal Network
  1262.      Session mode or in Anytime Netting mode.  There is currently no way to
  1263.      deactivate (i.e., force Citadel-86 not to recognize a network call) for
  1264.      specified parts of the day.
  1265.  
  1266.         In the area of calling out, Citadel-86 Sysops control this ability
  1267.      via the use of #events.  A Citadel-86 will not call out during the day for
  1268.      anytime netting unless they are specifically told to do so via the #event.
  1269.      The generic format of a #event that controls anytime netting is:
  1270.  
  1271.      #event <days> <start time> anytime-net quiet <duration> <message> 
  1272.                                 <dead time> <net length> <nets>
  1273.  
  1274.         (all on one line)
  1275.  
  1276.         This format is similar to that used for Normal Network Sessions.
  1277.  
  1278.      There are five changes. 
  1279.      
  1280.         First, "anytime-net" specifies that for the #event starting at
  1281.      "start time" and ending at "start time + duration", the system is
  1282.      allowed to call those systems specified by the "nets" field.
  1283.      
  1284.         Second, "quiet" is the only valid type specification for events
  1285.      of the "anytime-net" classification. 
  1286.      
  1287.         Third, "duration" does not specify how long the net session will
  1288.      last, but instead specifies how long the system is eligible to make
  1289.      calls to other systems.
  1290.  
  1291.         Fourth, a field named "dead time" has been included right after the 
  1292.      "message" string.  You use this field to specify (in minutes) how long 
  1293.      your system should experience inactivity before attempting to call other 
  1294.      systems (specified in the "nets" field).  You might want to set this 
  1295.      fairly high during daytime hours, if they are busy, so that your users 
  1296.      have a better chance of getting on during the day, but set it lower 
  1297.      during the night time hours, which might be less busy.
  1298.  
  1299.         Fifth, a field named "net length" has been added right after the "dead 
  1300.      time" field.  This field specifies (in minutes) the maximum amount of 
  1301.      time your system should spend trying to call other systems during an 
  1302.      anytime net session.  This is much like the "duration" field in a normal 
  1303.      network event, because a net session might last much longer for such 
  1304.      things as large file transfers, etc.
  1305.  
  1306.         Anytime netting is, of course, compatible between Citadel-86 systems.
  1307.      C-68k has yet to implement it.  It may be compatible with STadel.
  1308.  
  1309.         Due to the above, you should group all of the systems that can accept
  1310.      anytime net calls into one net (and that you are willing to call at any
  1311.      time of the day), and then specify only that net for the #event parameter.
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.                                     -19-
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.         Odd thoughts:
  1326.  
  1327.         o If there is no need to call anyone, the system will not enter into
  1328.           net sessions after dead time limits are reached.
  1329.         o If you are a spine for another system, you will not call that system
  1330.           during anytime netting unless you have a "real" reason to call that
  1331.           system.  If you absolutely must* poll another system on a daily (or
  1332.           weekly, or whatever) basis, you must use a Normal Network Session to
  1333.           do so.
  1334.         o During Normal Network Sessions, you may have noticed, there may
  1335.           be delays between calls of up to 5 minutes.  This has been disabled
  1336.           for anytime netting, resulting in only 2 second delays between calls.
  1337.  
  1338.         Finally, ^A while the system is in MODEM mode will tell the system to
  1339.      attempt to execute an Anytime Net session at the next opportunity (i.e.,
  1340.      when the current user, if any, logs off).
  1341.  
  1342.      IV. Domains in Citadel-86
  1343.  
  1344.      IV.1 What are domains?
  1345.         Domains are a way to partition a collection of BBS nodes into discrete
  1346.      sets for purposes of both easing user addressing and internal delivery
  1347.      details.  A solid real world example of domains is the US Postal Service.
  1348.      The primary domain is hierarchical.  The top of the hierarchy is encoded
  1349.      in their "zip codes".  The zip codes are used to quickly discover which
  1350.      geographical area of the country a given piece of Mail is meant for and
  1351.      the mail is then physically delivered to that area, or more accurately to
  1352.      a "server", or large Post Office, for that area.
  1353.  
  1354.         Once in the appropriate area of the United States, the next level of
  1355.      hierarchy is the street address (which is being replaced by the 9-digit
  1356.      zip codes).  There is redundancy at this level when the envelope bears the
  1357.      name of the city of the recipient.
  1358.  
  1359.         Another example is the phone system, where area codes are the domains.
  1360.      Everybody's phone is the member of one and only one domain.
  1361.  
  1362.         In a BBS network there is not a necessarily readily apparent method for
  1363.      dividing the nodes into domains; it is up to the nodes on the network to
  1364.      agree to an acceptable network division, based on whatever criteria seems
  1365.      best fitted to the situation.  (If you are on main C86Net, you'll notice
  1366.      some pressure being exerted for systems to be parts of domains based on
  1367.      their physical location.  For instance, systems in Minnesota will, for
  1368.      the most part, belong to domain "MN".)
  1369.  
  1370.         Each domain on the network will then have at least one "server" system
  1371.      associated with it.  Most Mail meant for a system in that domain
  1372.      originating in another domain will go through the server for that domain.
  1373.      Some Mail won't due to special arrangements between systems.  For the
  1374.      purposes of this document we can ignore those special cases.
  1375.  
  1376.      IV.2 So how does Citadel-86 utilize Domains?
  1377.  
  1378.         Citadel-86 utilizes domains in three important ways.
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.                                     -20-
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.         First, it uses them to facilitate Mail routing between different
  1392.      locations.  Most mail traveling outside of its own area will bear an
  1393.      address consisting of a name and domain.  The main backbones of the C86Net
  1394.      carrying the mail will know how to get to the domains registered with the
  1395.      network, and thus the Mail will get delivered.
  1396.  
  1397.         Second, it uses them to make maintenance of large nodes of lists on
  1398.      installations far easier and convenient.  A large node list makes it
  1399.      easier for users to send mail without having to necessarily worry about
  1400.      knowing what domain a system resides in, but can slow down systems.
  1401.      Therefore, Citadel-86 supports both "primary" and "secondary" lists of
  1402.      nodes.
  1403.  
  1404.         The primary node list is the list you construct using either the
  1405.      RoutMail utility or Citadel-86's Network Menu 'A' option (see Section
  1406.      III.3.a).  Nodes you list on your primary nodelist are valid targets for
  1407.      direct Mail delivery, route mail handling, direct room sharing, file
  1408.      requests, and file sends.
  1409.  
  1410.         A secondary node list consists of one or more files containing system
  1411.      names and their associated domains.  These files, located in #NETAREA,
  1412.      are named NODES0.FST, NODES1.FST, etc.  Secondary lists are in a special
  1413.      format (see UTIL3.MAN on 2ndFmt.Exe) which lets Citadel-86 quickly look
  1414.      up names.  On the main C86Net, acquisition of one of these lists can be
  1415.      automated in cooperation with your local domain server.  Secondary lists
  1416.      let users send mail without undue inconvenience, while not burdening
  1417.      installations with large primary node lists, by looking up a system
  1418.      name in the secondary list and automatically assigning the proper domain
  1419.      name to it, rather than forcing the user to explicitly state what it
  1420.      is.
  1421.  
  1422.         Third, Citadel-86 allows users to send mail explicitly to systems
  1423.      which the current installation knows nothing about.  Users may specify
  1424.      a system and domain address which the current system knows nothing
  1425.      about, yet C86Net will still try to deliver the Mail on the assumption
  1426.      other systems on the net may have a better idea how to get to the
  1427.      given system.  Users use this explicit method by typing .EN at the
  1428.      Mail> prompt and entering the address as "system _ domain" or
  1429.      "system.domain".
  1430.  
  1431.      IV.3 Practical Notes and Procedures for all systems
  1432.  
  1433.         This section describes what every Citadel-86 must do to effectively
  1434.      participate in domains.  First we'll discuss some CtdlCnfg.Sys
  1435.      parameters and then some suggested procedures.  Notes on being a
  1436.      domain server reside in the section following.
  1437.  
  1438.         #nodeDomain is a string parameter which identifies which domain you
  1439.      are a part of.  You can only belong to one domain at a time.  Before
  1440.      setting this parameter you should check with your local backbone
  1441.      (which is presumably who you originally made contact with C86Net) so
  1442.      you can be part of the domain s/he is serving and get service in that
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.                                     -21-
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.      way.  If there is no backbone local to you, you may want to become the
  1458.      local server (if you can afford making calls or can con some other
  1459.      backbone into making calls to you).  The #nodeDomain is transmitted
  1460.      with each message originating from your system so other systems on
  1461.      the net will know how to send Mail to you (using your system and
  1462.      domain to do the addressing).
  1463.   
  1464.         #MailHub provides a facility for forwarding domain mail to systems
  1465.      which know who serves what domains, so that most of the systems on the
  1466.      network need not know who is serving what domain.  Most of the time this
  1467.      parameter should be defined to be your local backbone.  Backbones can use
  1468.      this, too, to forward to other backbones which may be more knowledgeable
  1469.      about the state of the network.
  1470.  
  1471.         #DOMAINAREA identifies where the temporary files associated with
  1472.      domain mail are stored.  We strongly suggest you not make this the
  1473.      same as #NETAREA!
  1474.  
  1475.         #DomainDisplay is strictly an optional parameter which you can skip 
  1476.      over and/or do nothing about if you don't feel like it.  It is provided
  1477.      so you can customize what the display of domains will look like on your
  1478.      system when your system is displaying foreign messages to users.
  1479.  
  1480.         There is a trick to this parameter (and you C programmers will, of
  1481.      course, instantly recognize it): This string parameter must have included
  1482.      in it somewhere the character sequence "%s".  When this parameter is used
  1483.      to display a domain, the "%s" is replaced by the domain name.
  1484.  
  1485.         If you don't use this parameter, then the default behavior is to 
  1486.      display the nodeName/nodeDomain sequence like this:
  1487.      ... @nodeName _ nodeDomain. In other words, the default value of
  1488.      #DomainDisplay is
  1489.  
  1490.          #DomainDisplay " _ %s"
  1491.  
  1492.      (Note the leading space.)  This presents an aesthetically pleasing
  1493.      appearance and is also compatible with the user interface for specifying
  1494.      how to send net mail to an unknown system in another domain.  But, of
  1495.      course, some people like to have a different appearance to the domains of
  1496.      other messages.  For instance, enclosing the domain name in brackets is
  1497.      popular:
  1498.  
  1499.          #DomainDisplay " [%s]"
  1500.  
  1501.      The maximum length of this parameter is 10 characters.
  1502.  
  1503.         The suggested procedure for non-domain servers is to inform your
  1504.      local domain server of your existence and ask them to pass on that
  1505.      info to the current domain coordinator (currently Kip @Arcadia).
  1506.      Alternatively, if this is impractical, inform Kip directly.
  1507.  
  1508.         Sections IV.4 and IV.5 concern Domain Servers.  IV.6 will be of
  1509.      interest to everyone, though.
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.                                     -22-
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.      IV.4 Practical Notes and Procedures for Domain Servers
  1524.  
  1525.         First we'll discuss CtdlCnfg.Sys parameters of concern to domain
  1526.      servers, then special files needed by domain servers, followed by a note
  1527.      on utilities of use to domain servers, and finally some thoughts on
  1528.      procedures.
  1529.  
  1530.         If you are going to be a domain server (i.e., a system which will accept
  1531.      Mail meant for some domain and is responsible for knowing how to get to all
  1532.      systems in that domain), you must tell your installation about this.  You
  1533.      do this by putting a line like this in your CtdlCnfg.Sys:
  1534.  
  1535.         #ServeDomain "<domainname>"
  1536.  
  1537.      For instance, Test System has
  1538.  
  1539.         #ServeDomain "MN"
  1540.  
  1541.         Every piece of Mail addressed to MN will be processed by Test System,
  1542.      based on the target name ("Backfence", "Nowhere Land", "DogLink", for
  1543.      example), for delivery to their target systems.
  1544.  
  1545.         You can serve more than one domain by placing additional #ServeDomain
  1546.      parameters in your CtdlCnfg.Sys.
  1547.  
  1548.         "Name Resolution", or the identification of which system the mail should
  1549.      be delivered to by its name (rather than the far more reliable node ID) is
  1550.      a necessity if the Mail is to go through.  Therefore, you should make sure
  1551.      the names on your primary node list, which is used to reroute the incoming
  1552.      domain mail to your local systems, are simple -- i.e., they are the likely
  1553.      form in which incoming Mail will be addressed to.  For instance, "Troy
  1554.      City" is a lot easier to deal with than "Troy City NY", and the mail will
  1555.      be far more likely to be delivered.
  1556.  
  1557.         This is equally applicable to your own #nodeName.
  1558.  
  1559.         If you're in one of those rare situations where two names seem equally
  1560.      applicable for some system (such as "C-86 Test System" and "Test System"),
  1561.      you can use ALIASES.SYS to make an alias.  The format of this file is
  1562.      simply
  1563.  
  1564.      <alias> <realname>
  1565.  
  1566.      where realname is the name in your primary node list, or your own
  1567.      #nodeName if you need an alias for yourself (like Test System does).
  1568.  
  1569.         Domain Handlers need one special file which local systems don't need.
  1570.      CtdlDmhd.Sys, located in your #NETAREA directory, is basically a directory
  1571.      of domain servers.  This file is used by Domain Handers to decide how to
  1572.      get domain mail to the server for each domain.  For those domain servers
  1573.      a system connects directly with, this is very easy.  For such a domain
  1574.      for which mail meant for that domain has come into existence (either via
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.                                     -23-
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.      netmail from some other system or created on this system), the system
  1590.      checks CtdlDmhd.Sys to find the domain server.  It then looks in its
  1591.      primary node list to see if it knows more about the domain server in
  1592.      question.  When it finds it, it also finds the direct connection, and
  1593.      the next time you connect with that system, the mail is delivered.
  1594.  
  1595.         The problem is a bit more tricky for domains that are farther away.
  1596.      In this case, the system operator needs to tell his/her system about
  1597.      these other systems and how to get to them.  For full detail, see below
  1598.      the section on the RoutMail utility (IV.5).  Please note you do NOT need
  1599.      every node listed in CtdlDmhd.Sys also present in your primary node list
  1600.      unless you are one of the major backbones on the net.  The major
  1601.      backbones are responsible for knowing about most or all the domain
  1602.      servers (which is why we ask domain servers to try to keep Kip up to
  1603.      date), but outlying domain servers and other systems which serve as
  1604.      conduits to other domains needn't worry too much about far-away domains
  1605.      so long as they have their #MailHub setup correctly.
  1606.  
  1607.         Each line of CtdlDmhd.Sys contains information about one of the domains
  1608.      and its server.  The structure of each line is
  1609.  
  1610.         <domain name><space><system name>:<system ID>
  1611.  
  1612.         For instance, the line describing C-86 Test System as the MN domain
  1613.      server would look like
  1614.  
  1615.         MN C-86 Test System : US 612 470 9635
  1616.  
  1617.         Please note, however, that this is equally valid:
  1618.  
  1619.         MN Test System : US 612 470 9635
  1620.  
  1621.         The name field is only used for human reference; the node ID field is
  1622.      critical to Citadel-86 for management, so make sure you get it right.
  1623.  
  1624.         A '#' will act as a comment in this file, if you like to comment a
  1625.      file like this.
  1626.  
  1627.         If you are connecting to the main C86Net network, then in all
  1628.      probability you can arrange to have this file updated automatically
  1629.      via the backbone you connect with.  See documentation on the 'redirect'
  1630.      #event and the Aff.Exe utility.
  1631.  
  1632.         However, since CtdlDmhd.Sys distribution can be automated, it may be
  1633.      useful to have a second file like CtdlDmhd.Sys.  Therefore, you can set
  1634.      up a file named CtdlDmhd.Lcl in your #NETAREA.  Same format as above.
  1635.      The purpose for this support is to allow installations to have a local,
  1636.      hand-tailored version of CtdlDmhd.Sys that won't be overwritten by the
  1637.      automated distribution system.  Most systems will have no use for this
  1638.      capability, but maybe a few will.  Don't sweat it.
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.                                     -24-
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.         The Aff utility, now that we've mentioned it, is a utility which will
  1656.      let you automatically set up file sends depending on whether a given
  1657.      file's time stamp indicates it should be sent to a system or not.  See
  1658.      UTIL3.MAN for more details.  You should strongly consider using this
  1659.      utility to update other domain servers you connect to with new
  1660.      CtdlDmhd.Sys files, and your local systems with new NodesX.* files
  1661.      (both Nodes0.fst and Nodes0.raw).
  1662.  
  1663.         A log file is occasionally generated, called DOMAIN.LOG.  This
  1664.      file will usually only contain messages concerning undeliverable
  1665.      Mail>.  "Undeliverable mail" is mail addressed to a domain served
  1666.      by this system, but the name of the system was unrecognizable.  In
  1667.      this case, DOMAIN.LOG will have an entry with the name of the system
  1668.      the name is meant for.  If the name appears to be misspelled, or is
  1669.      a valid alternative to some system, bringing the system down and
  1670.      placing an appropriate entry in ALIASES.SYS.  When the system comes
  1671.      back up, it'll rescan the outstanding mail, find the Mail in question,
  1672.      find the alternate name and map it to the real name, and set up the
  1673.      mail for delivery.
  1674.  
  1675.         Those systems which do not have #MailHub settings (very rare)
  1676.      will see a second type of message in DOMAIN.LOG.  This message is
  1677.      generated when incoming domain mail is addressed to a domain the
  1678.      system does not know how to reach.  This can be fixed by adding
  1679.      appropriate entries to CtdlDmhd.Sys (or just deleting the mail, if
  1680.      you're in a bad mood).  Such undeliverable mail, however, will
  1681.      usually accumulate at one system on the network.
  1682.  
  1683.         Finally, concerning procedures, Kip @Arcadia _ MI will be acting as
  1684.      the central domain registration and management point for domain
  1685.      information, so you should contact him if you either want to act as
  1686.      a domain server or if you happen to connect to some different domain
  1687.      servers and think you may be the only connection to them.  Through
  1688.      fortuitous use of the 'redirect' #event on your part and the Aff
  1689.      utility on the part of whoever your local domain server is (or major
  1690.      backbone or however you get to Arcadia), you can have each new version
  1691.      of Ctdldmhd.sys forwarded to you.
  1692.  
  1693.      IV.5 RoutMail
  1694.  
  1695.         The ROUTMAIL utility is fully described in UTIL3.MAN.  The domain
  1696.      server, however, really only needs this to know this: you can use
  1697.      ROUTMAIL to automatically update your primary nodelist with all the
  1698.      domain servers on the net (using CtdlDmhd.Sys), and any links you need
  1699.      in order to get to them (which will typically already be in place
  1700.      anyways).  In order to perform this operation, you need CtdlDmhd.Sys
  1701.      and the latest RoutMail map (obtainable from the backbone which leads
  1702.      to Arcadia from where you live).  Once you have them, you need only
  1703.      type "ROUTMAIL +domains <map file name>", and the system should
  1704.  
  1705.        a) Add all the domain servers to the list
  1706.        b) Add whatever other systems are needed to get to the domain servers
  1707.        c) Set the routing pointers so your system knows how to get to
  1708.            other domain servers without calling them directly.
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.                                     -25-
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.         Please note only major backbones or domain servers which directly
  1722.      connect to several domain servers will need to use this domain.
  1723.      Those servers which are on the more outlying parts of the net can
  1724.      probably let #MailHub serve their needs quite well for those domains
  1725.      they don't connect with directly.
  1726.  
  1727.         If you do look at ROUTMAIL more closely, you'll notice you can define
  1728.      routes to other systems (by pointing at the next system on the path to
  1729.      them).  You can use this ability in conjunction with domain mail to deliver
  1730.      Mail to a local system, if, for instance, the system is on limited hours
  1731.      and someone else is better able to get to that system.  It won't interfere
  1732.      with domain mail.
  1733.  
  1734.      IV.6 Costing
  1735.  
  1736.         Specific "costs", measured in LD credits, can be set on a domain by
  1737.      domain basis.  This is done via the file CtdlCost.Sys, which is a text
  1738.      file located in your #NETAREA directory.  The file is a collection of
  1739.      entries, each one setting the "cost" to be inflicted on users wishing to
  1740.      reach systems in those domains.  The format is simple:
  1741.  
  1742.         <domain name><space><cost>
  1743.  
  1744.         For example, to set a cost of 2 credits to send mail to domain IL, you'd
  1745.      have
  1746.  
  1747.         IL 2
  1748.  
  1749.         There is also a "special" domain name, "Unknown".  This one lets you
  1750.      set a domain cost for those domains which users can specify but are not
  1751.      listed in this file.  If you want to set this at 1, you'd have
  1752.  
  1753.         Unknown 1
  1754.  
  1755.         Citadel-86 sysops can use Ease to manage this, rather than directly
  1756.      edit the file.
  1757.  
  1758.         Users are assigned LD credits via the Sysop's Network menu (^L-N),
  1759.      using the <C>redit option.
  1760.  
  1761.         It's feasible to set costs at 0 for domains (and in fact is recommended
  1762.      for your own domain [#nodeDomain]), but for those outside of your
  1763.      immediate area you should check with your backbone(s) to make sure they
  1764.      don't mind.
  1765.  
  1766.         This stuff only applies to mail generated on your own system, not on
  1767.      incoming network mail.
  1768.  
  1769.      IV.7 NodesX.*
  1770.  
  1771.         This section more fully describes the NodesX.* files.  The "X" is
  1772.      really a digit.  All files described herein should reside in your
  1773.      #NETAREA directory.
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.                                     -26-
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.         The NodesX.FST files are the files Citadel-86 considers as the
  1788.      secondary node lists which should be searched if a user specifies a
  1789.      system not in the primary node lists.  These are specially formatted
  1790.      files (generated using 2ndfmt.exe) which lets Citadel-86 quickly
  1791.      search for a given file name.
  1792.  
  1793.         The reason they are numbered (Files0.fst, Files1.fst, etc.) is to
  1794.      give sysops more flexibility.  Main C86Net will be trying to supply
  1795.      a Nodes0.Fst on an automatic basis to all interested systems.
  1796.      However, some systems may find they want to connect some systems
  1797.      not generally available.  Or not.  There is not necessarily any real
  1798.      use for this additional flexibility.
  1799.  
  1800.         The NodesX.RAW files are the files from which the NodesX.FST files
  1801.      were generated.  While the FST files are good for searching for names,
  1802.      they are horrid for display purposes, and displaying lists of system
  1803.      names is important to users, sometimes.  Therefore, those system
  1804.      which want to provide the service of responding in a full manner to
  1805.      .EN? and the like should arrange to have the NodesX.RAW files
  1806.      delivered along with the NodesX.FST files, on the same automated basis.
  1807.  
  1808.      IV.8 Technical Notes
  1809.  
  1810.         This section describes domain mail storage.  Domain mail is stored
  1811.      in the #DOMAINAREA directory.  Within this directory will exist a
  1812.      file named MAP.SYS and zero or more directories.  Each directory
  1813.      will contain the domain mail which still needs to be delivered
  1814.      to the domain server for that domain (whether through direct delivery
  1815.      or indirect delivery).  Domain mail is encrypted.
  1816.  
  1817.         MAP.SYS is simply a mapping from the names of the directorys to
  1818.      the name of the domains they serve.  The third field of each line
  1819.      is simply the next file name to use in that directory for incoming
  1820.      mail.
  1821.  
  1822.      V. STadel mail routing
  1823.         Citadel-86's RouteMail is not directly compatible with STadel's
  1824.      mail routing.  However, Citadel-86 is capable, with proper
  1825.      coaxing, of generating and accepting STadel-compatible (more or
  1826.      less) route mail and delivering the mail to the intended system
  1827.      and recipient.
  1828.  
  1829.         The procedure is not completely trivial and, due to the nature
  1830.      of STadel route mail, it is time consuming.  Areas in which there
  1831.      are several Citadel-86 installations may benefit from designating
  1832.      a single system as the 'gateway' into the STadel mail routing and
  1833.      forcing all the other systems which need to route into the STadel
  1834.      network to go through the gateway system.  This is not to imply
  1835.      all mail traffic between STadels and Citadel-86s should be
  1836.      restricted to a single bottleneck; systems local to each other should
  1837.      certainly retain their current direct links.  However, when a
  1838.      non-local STadel is the target of some mail, directing the mail to go
  1839.      through the 'gateway' system may minimalize the work of all the
  1840.      sysops except the gateway sysop.  But this is only a speculative
  1841.      suggestion.
  1842.  
  1843.  
  1844.  
  1845.  
  1846.                                     -27-
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.         As a general note, there is no theoretical reason STadels cannot
  1854.      be listed in the net maps devoured by RoutMail, thus allowing
  1855.      automated updating of the node lists of the network as necessary,
  1856.      including the correct routing information.  However, as a practical
  1857.      matter this will be delayed due to the unsettled nature of the STadel
  1858.      configuration.  This has been brought on by the change in PC Pursuit
  1859.      rate structures, and the result may not become apparent anytime soon.
  1860.      STadel links not dependent on PC Pursuit, such as the Twin Cities -
  1861.      Edmonton link via secret, are not affected (except as of this
  1862.      writing secret seems to have disappeared into the void).
  1863.  
  1864.         There are some limitations to the gateway.  The most important one
  1865.      which leaps to mind is that since STadel does not support the 'W'ho
  1866.      else feature of Citadel-86, any use of mail routing involving 'W'ho
  1867.      else (both explicit routing and Mail Forwarding) will result in
  1868.      delivery of the mail only to the primary recipient of the mail on
  1869.      the target system, and no one else.
  1870.      
  1871.         The following subsections detail what actions are necessary
  1872.      for supporting a gateway between C86Net RouteMail and STadel mail
  1873.      routing.
  1874.      
  1875.      V.1 Outgoing mail routing
  1876.         In order to understand what we need to do in order to have an
  1877.      effective gateway, a rudimentary explanation of STadel mail routing
  1878.      is in order.  In brief, a mail message which is to be routed has a
  1879.      modified recipient field.  Rather than just being "Joe Blow", such
  1880.      a message is of the form "<system>![<system>!...]<username>".  In
  1881.      English, an STadel mail message is routed using the recipient field,
  1882.      which will consist of one or more system names separated by
  1883.      exclamation points.  The last name will be the recipient's name.
  1884.      An example might be "Msg Port!The_Land!sysop".  This also applies to
  1885.      domains.  For instance, "undermind.ga!cmc" is a valid address.
  1886.  
  1887.         The important point is STadel is dependent on the exact node
  1888.      Names* to be specified.  To use one infamous example, "Backfence" is not
  1889.      the same as "Backfence [MN]"; nor is it likely STadel sysops
  1890.      will be willing to use some of the more convoluted names in
  1891.      use on some Citadel-86 installations.  So, in order to use STadel
  1892.      mail routing, the exact names must be available in some form or
  1893.      another.  This is where things become laborious.  The sysop who
  1894.      wishes to have a gateway available into the the STadel net must do
  1895.      one of two things: either change all nodes in his nodelist so 
  1896.      the Name field matches whatever the STadels are using to designate
  1897.      your system, or create a file in your #ROOMAREA directory named
  1898.      ALIASES.SYS.  Each line in the file is in the form of
  1899.  
  1900.         <STadel name> <node name from your node list>
  1901.  
  1902.         Citadel-86 will use this list to translate as necessary from your
  1903.      own nodelist to the STadel list (and vice versa, in the next section).
  1904.      For instance, if you have the Minnesota system Class of 68s in your
  1905.      nodelist, and must route to it via STadels (rather
  1906.      than via C86Net RouteMail), you would have to have the line
  1907.      
  1908.         Class68 Class of 68s
  1909.  
  1910.  
  1911.  
  1912.                                     -28-
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.         The first word in the line is the name of the STadel node in STadel
  1920.      lingo, and can ONLY consist of one word.  If the STadels are using
  1921.      spaces (very rare) in the some system name, then replace the spaces with
  1922.      underscores ('_').  The balance of the line contains your name for the
  1923.      node -- that is, the name assigned in your nodelist.
  1924.  
  1925.         Note that if you really don't want to maintain an ST-ALIAS.SYS file,
  1926.      all you need to do is modify your nodelist to use the same names
  1927.      as STadel sysops are using.  In this instance, you'd change 'Class
  1928.      of 68s' to 'Class68'.  This is highly recommended.
  1929.  
  1930.         These notes are also valid in the situation in which
  1931.      a Citadel-86 is routing to another Citadel-86, but must use one or
  1932.      more STadels in the route to it.  For instance, Test System in the
  1933.      Twin Cities and Circus in Edmonton are both Citadel-86 systems, but
  1934.      the link between the two systems is Secret Service ('secret'), an
  1935.      STadel.  In order for Test System to route to Circus (either for itself
  1936.      or for other systems), it must either have Secret Service listed as
  1937.      'secret' in its node list, or it must have an entry in ST-ALIAS.SYS
  1938.      which would look like
  1939.  
  1940.         secret Secret Service
  1941.  
  1942.      (assuming secret's name in Test System's node list is 'Secret Service'),
  1943.      and it must have Circus listed as 'Circus' in its nodelist (not
  1944.      'Circus_Edm') or an entry in ST-ALIAS.SYS:
  1945.  
  1946.         circus Circus_Edm
  1947.  
  1948.         Also, in order for a system to be a gateway into STadel mail routing,
  1949.      the nodes(s) which will be used to gain access to the STadel mail routing
  1950.      must be marked as STadels (note this does not at all imply ALL STadels
  1951.      must be marked, however -- only those which the gateway system will be
  1952.      using to route into the STadel mail network).  This new field defaults
  1953.      to OFF when an entry is added to the nodelist, so if you need to use a
  1954.      system as the STadel gateway, you'll have to change that field.  Use
  1955.      RoutMail +manual to do so (make sure you have v1.7) -- the field should
  1956.      show up in the lower right hand column of values.
  1957.  
  1958.         Finally, domain mail can be routed in STadel land.  It'll simply
  1959.      be sent as "<system>.<domain>!<user>".
  1960.  
  1961.      V.2 Incoming route mail
  1962.         There are similar problems in handling incoming mail, to wit, name
  1963.      mismatches.  Once again, ST-ALIAS.SYS is used to help resolve these
  1964.      problems.  It cannot be guaranteed that STadels will use the same
  1965.      spellings as Citadel-86 systems will for nodenames, so entries in
  1966.      ST-ALIAS.SYS will be scanned when necessary in order to find the
  1967.      'real' names (that is, the name the C86 is using) of systems
  1968.      when trying to decode incoming mail for delivery to those systems.
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.                                     -29-
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.         This problem may include your OWN system.  Mail delivered to your
  1986.      own system directly by an STadel will almost certainly be of the form
  1987.      <system name>!<recipient>.  The problem is your system won't
  1988.      realize the mail is meant for your system unless it recognizes
  1989.      "system name" as being the same as your #nodeName parameter.  However,
  1990.      once again, STadels may not spell your #nodeName as you have yourself,
  1991.      or you may change yours' at some point.  Therefore, it is perfectly
  1992.      valid to have an entry in your ST-ALIAS.SYS specifying how the STadels
  1993.      are spelling your #nodeName.  Simply make sure you spell your entry
  1994.      exactly how you spelled your #nodeName.  For instance, Test System's
  1995.      "formal" #nodeName is " C-86 Test System".  But STadels may choose to
  1996.      simply have "Test System".  The entry in ALIASES.SYS would then
  1997.      be
  1998.  
  1999.         Test_System C-86 Test System
  2000.  
  2001.      (Note the lack of leading space.  Don't sweat it.)
  2002.  
  2003.      V.3 STadel considerations
  2004.         There are some other problems to be considered, and we're not
  2005.      sure we're aware of all of them.  The main problem is how to ensure
  2006.      mail being routed into the STadel mail system will make it to the
  2007.      target system.  STadel is apparently capable of some simple
  2008.      rerouting when necessary, but it is not automatic.  When attempting
  2009.      to set up a gateway in your area, you will probably have to work
  2010.      closely with the STadel sysop.  The reason for this is Citadel-86
  2011.      will only generate target paths that look like this:
  2012.      
  2013.         <gateway system name>!<target system name>!<username>
  2014.  
  2015.         This could prove a problem when the target system is actually
  2016.      several 'hops' away on the network, and in fact would result in
  2017.      the loss of the mail.  However, as I understand it, STadel sysops
  2018.      have some ability to cause such mail to be rerouted, in other words,
  2019.      replace the given path with a path more likely to succeed.  When
  2020.      working to set up a gateway which will be used for extensive mail,
  2021.      make sure to mention this concern to the other sysop.  This problem
  2022.      is not of as great a magnitude, however, when dealing with isolated
  2023.      STadels which simply wish to piggy-back onto C86Net RouteMail.
  2024.  
  2025.          Note that domain mail probably doesn't suffer from this problem.
  2026.  
  2027.      V.4 Notes
  2028.  
  2029.         o Remember to set the STadel node in your list you'll be using to
  2030.      gate the STadel system as an STadel, using RoutMail +manual.  Not all
  2031.      STadels you net with, directly or indirectly, need this setting
  2032.      (although it doesn't hurt), only those which you'll be using to route
  2033.      mail to other systems.
  2034.  
  2035.         o Remember, each system in your nodelist has two flags associated
  2036.      with it, indicating whether you're willing to route mail to it.  They
  2037.      apply to STadel routing as well as C86Net RouteMail.   Make sure they
  2038.      are turned on for those nodes you're willing to route to/from.
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.                                     -30-
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.         o Make sure the STadel sysop knows about your concerns regarding
  2052.      rerouting on his side.
  2053.  
  2054.         o There may be limited error detection available in Citadel-86 vis
  2055.      a' vis undeliverable mail.
  2056.  
  2057.      VI. Other CTDLCNFG.SYS Parameters
  2058.         There are several parameters in CTDLCNFG.SYS that help you control what
  2059.      Citadel-86 will do with the network.  All of these parameters were covered
  2060.      in the Citadel-86 Installation Manual, but we shall cover them again here.
  2061.  
  2062.         The #NETWORK parameter is the basic parameter that decides if you are a
  2063.      networking system or not.  A numeric value of 1 indicates that you are;
  2064.      0 indicates no.
  2065.  
  2066.         The #RouteMail parameter allows you to select or deselect mail 
  2067.      routing.  If you set this parameter to 0, then you categorically refuse 
  2068.      to route any mail anywhere.  The default of this parameter is 1, however.
  2069.  
  2070.         The #NewNetPrivs lets you decide whether or not new users automatically
  2071.      gain net privileges on login.  1 indicates yes, 0 indicates no (a good
  2072.      paranoid value).
  2073.  
  2074.         The #NETAREA parameter indicates where CTDLNET.SYS and nearly all
  2075.      temporary (the only exception being domain files) network files should
  2076.      reside on your system.  It is just like #MSGAREA, etc., specifying a
  2077.      directory for the location.  CTDLNET.SYS may be large, depending on how
  2078.      many nodes you have and the values of two parameters that follow this
  2079.      one, but the temporary files very rarely exceed 1K, and usually are
  2080.      short-lived (except for the *.VTX files, which are always there, if they
  2081.      are there at all).
  2082.  
  2083.         #SHARED-ROOMS indicates the maximum number of rooms that you think
  2084.      you'll ever share with another system simultaneously.
  2085.  
  2086.         #NET_RECEPT_AREA designates the area on your system that files that
  2087.      were sent to you with the Send File facility (Section III.3.h) should be
  2088.      placed. This may be anywhere on your system.
  2089.  
  2090.         #NET_AREA_SIZE specifies the maximum number of bytes that may occupy
  2091.      the #NET_RECEPT_AREA directory at any one time, which provides you with
  2092.      a way of keeping your system from being flooded.
  2093.  
  2094.         #MAX_NET_FILE specifies the maximum size of any single file to be
  2095.      received from the network via the Send File option (see Section III.3.h).
  2096.      If you don't want monster files sent to you, here is your solution.
  2097.  
  2098.         #callOutPrefix is a string value that tells the modem to prepare to
  2099.      dial out.  For Hayes/compatibles, this is usually "ATDT".
  2100.  
  2101.         #callOutSuffix is a string value that tells the modem that all the
  2102.      information that it needs to dial has been sent to it.  For
  2103.      Hayes/compatibles, this is usually "\r".
  2104.  
  2105.          #DialOut300, #DialOut1200, #DialOut2400, #DialOut4800, #DialOut9600,
  2106.      #DialOut14400, and #DialOut19200 can each be used to override the value
  2107.      of #callOutPrefix.  This is useful with USR HST modems and their ilk.
  2108.  
  2109.  
  2110.                                     -31-
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.      Appendix A: Other room-based Networks
  2118.  
  2119.      HengeNet: This network is for the StoneHenges.  The last news I heard
  2120.      was that the homebase of the Stonehenges, CKMCMS, was down.
  2121.  
  2122.      CitaNet: The exact nature of this network is not clear, but seems to be
  2123.      semi-manual and is used by the K2NE (Commodore 128) systems, along with
  2124.      one or two Citadel-86 systems and possibly others.  Homebase for this net
  2125.      is Vince Quaresima of The Jersey Devil ((609) 893-2152).
  2126.  
  2127.      Citadel-286: These systems have some sort of network.  Homebase is
  2128.      probably Farokh Irani of Electronic New York ((914) 735-9362).
  2129.  
  2130.      MacCitadel: These systems have a network of some sort.  MacCitadel's
  2131.      home base is ??????????????
  2132.  
  2133.      Appendix B: Temporary Files
  2134.  
  2135.         Citadel-86 generates and destroys temporary files in order to service
  2136.      C86Net.  All of these files are placed in the directory specified by the
  2137.      CTDLCNFG.SYS parameter #NETAREA, and most should not last past the next
  2138.      networking session once generated.
  2139.  
  2140.         Most are of the form <numeric>.<ext>.  The numeric value is the
  2141.      position that the relevant node occupies in CTDLNET.SYS; ext indicates the
  2142.      purpose of the temporary file.  The current ext values currently used are:
  2143.  
  2144.       ML  = Mail file
  2145.       RFL = Request Files
  2146.       SFL = Send Files
  2147.       VTX = Vortex Detection Files
  2148.  
  2149.         Thus, the file 12.ML contains the data necessary to send net Mail> to
  2150.      the twelfth system on your netlist.
  2151.  
  2152.         Additionally, from time to time files of the form "R<num>.<num>" will
  2153.      appear and disappear from the directory.  The R means they are Route Mail 
  2154.      temporary files; the first 'num' refers to the node the mail is being 
  2155.      sent to on its way to its destination (the routing node), while the 
  2156.      second num is just a sequence (housekeeping) number for internal use.  
  2157.      Please avoid deleting these files, and don't try to read them - they are 
  2158.      private mail and should be treated as such.
  2159.  
  2160.         Domain Mail also requires temporary files, but they are confined to
  2161.      #DOMAINAREA, so don't worry about them too much unless some persist.
  2162.  
  2163.      Appendix C: Main C86Net
  2164.         The main C86Net is an international net with nodes scattered 
  2165.      throughout the United States and Canada.  Homebase for the main C86Net is 
  2166.      Test System @ (612) 470-9635, but there may be a system near you on the 
  2167.      net, particularly in the northern half of the United States.
  2168.  
  2169.         If you are looking to get the latest map of the network for mail 
  2170.      routing purposes, query Kip DeGraaf @ Arcadia (Kalamazoo, Michigan).
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.                                     -32-
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.      Appendix D: RoutMail.Exe
  2184.         The RoutMail utility, as noted in UTIL3.MAN, can be used to edit the
  2185.      node list as well as ingest mail routing maps.  Simply type
  2186.  
  2187.         ROUTMAIL +manual
  2188.  
  2189.      and you will be presented (sooner or later) with a list of nodes which you
  2190.      may select using cursor keys.  Selecting one allows you to edit all (?)
  2191.      parameters associated with a node, except for the rooms shared.  Note
  2192.      that the node editing capabilities in Ctdl.Exe are NOT complete any longer,
  2193.      and some thought is being given to placing all responsibility for node
  2194.      editing in RoutMail.  In particular, the routing and STadel flags are
  2195.      only accessible via RoutMail as of this writing (this may change in the
  2196.      future, however).
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.                                     -33-
  2243.  
  2244.  
  2245.  
  2246.  
  2247.