slight alterations
[spider.git] / html / adminmanual-5.html
index 0eeb7b592cd3c6a8b648dc5a1a423a7599cd72be..5fa2d87a4983a536b29a51ac4b59c5dadf03a159 100644 (file)
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
- <TITLE>The DXSpider Installation and Administration Manual : Filtering (Old Style upto v1.44)</TITLE>
+ <TITLE>The DXSpider Administration Manual v1.47: Mail</TITLE>
  <LINK HREF="adminmanual-6.html" REL=next>
  <LINK HREF="adminmanual-4.html" REL=previous>
  <LINK HREF="adminmanual.html#toc5" REL=contents>
+<link rel=stylesheet href="style.css" type="text/css" title="default stylesheet">
 </HEAD>
 <BODY>
 <A HREF="adminmanual-6.html">Next</A>
 <A HREF="adminmanual-4.html">Previous</A>
 <A HREF="adminmanual.html#toc5">Contents</A>
 <HR>
-<H2><A NAME="s5">5. Filtering (Old Style upto v1.44)</A></H2>
+<H2><A NAME="s5">5. Mail</A></H2>
 
-<P>Filters can be set for spots, announcements and WWV.  You will find the 
-directories for these under /spider/filter.  You will find some examples in 
-the directories with the suffix <EM>.issue</EM>.  There are two types of 
-filter, one for incoming information and one for outgoing information. 
-Outgoing filters are in the form <EM>CALLSIGN.pl</EM> and incoming filters 
-are in the form <EM>in_CALLSIGN.pl</EM>.  Filters can be set for both nodes 
-and users.
-<P>
-<P>All filters work in basically the same way.  There are several elements 
-delimited by commas.  There can be many lines in the filter and they are 
-read from the top by the program.  When writing a filter you need to think 
-carefully about just what you want to achieve.  You are either going to write 
-a filter to <EM>accept</EM> or to <EM>reject</EM>.  Think of a filter as 
-having 2 main elements.  For a reject filter, you would have a line or multiple 
-lines rejecting the things you do not wish to receive and then a default line
-accepting everything else that is not included in the filter.  Likewise, for an
-accept filter, you would have a line or multiple lines accepting the things you 
-wish to receive and a default line rejecting everthing else.
-<P>
-<P>In the example below, a user requires a filter that would only return SSB spots
-posted in Europe on the HF bands.  This is achieved by first rejecting the CW 
-section of each HF band and rejecting all of VHF, UHF etc based on frequency.
-Secondly, a filter rule is set based on CQ zones to only accept spots posted in
-Europe.  Lastly, a default filter rule is set to reject anything outside the filter.
-<P>
-<BLOCKQUOTE><CODE>
-<PRE>
-$in = [
-        [ 0, 0, 'r', # reject all CW spots
-                [
-                1800.0, 1850.0,
-                3500.0, 3600.0,
-                7000.0, 7040.0,
-                14000.0, 14100.0,
-                18068.0, 18110.0,
-                21000.0, 21150.0,
-                24890.0, 24930.0,
-                28000.0, 28180.0,
-                30000.0, 49000000000.0,
-                ] ,1 ],
-        [ 1, 11, 'n', [ 14, 15, 16, 20, 33, ], 15 ], #accept EU
-        [ 0, 0, 'd', 0, 1 ], # 1 = want, 'd' = everything else
-];
-</PRE>
-</CODE></BLOCKQUOTE>
-<P>
-<P>The actual elements of each filter are described more fully in the following
-sections.
-<P>
-<H2><A NAME="ss5.1">5.1 Spots</A>
+<P>DXSpider deals seamlessly with standard AK1A type mail.  It supports both
+personal and bulletin mail and the sysop has additional commands to ensure
+that mail gets to where it is meant.  DXSpider will send mail almost
+immediately, assuming that the target is on line.  However, only one
+mail message is dealt with at any one time.  If a mail message is already
+being sent or recieved, then the new message will be queued until it has
+finished.
+<P>The cluster mail is automatically deleted after 30 days unless the sysop
+sets the "keep" flag using the <EM>msg</EM> command.
+<P>
+<H2><A NAME="ss5.1">5.1 Personal mail</A>
 </H2>
 
-<P>The elements of the Spot filter are ....
-<P>
-<BLOCKQUOTE><CODE>
-<PRE>
-[action, field_no, sort, possible_values, hops]
-</PRE>
-</CODE></BLOCKQUOTE>
-<P>
-<P>There are 3 elements here to look at.  Firstly, the action element.  This is 
-very simple and only 2 possible states exist, accept (1) or drop (0).
+<P>Personal mail is sent using the <EM>sp</EM> command.  This is actually the
+default method of sending mail and so a simple <EM>s</EM> for send will do.
+A full list of the send commands and options is in the <EM>command set</EM>
+section, so I will not duplicate them here.
 <P>
-<P>The second element is the field_no.  There are 13 possiblities to choose from 
-here ....
-<P>
-<BLOCKQUOTE><CODE>
-<PRE>
-      0 = frequency
-      1 = call
-      2 = date in unix format
-      3 = comment
-      4 = spotter
-      5 = spotted dxcc country
-      6 = spotter's dxcc country
-      7 = origin
-      8 = spotted itu
-      9 = spotted cq
-      10 = spotter's itu
-      11 = spotter's cq
-      12 = callsign of the channel on which the spot has appeared
-</PRE>
-</CODE></BLOCKQUOTE>
-<P>
-<P>The third element tells us what to expect in the fourth element.  There are 
-4 possibilities ....
-<P>
-<BLOCKQUOTE><CODE>
-<PRE>
-     n - numeric list of numbers e.g. [ 1,2,3 ]
-     r - ranges of pairs of numbers e.g. between 2 and 4 or 10 to 17 - [ 2,4, 10,17 ]
-     a - an alphanumeric regex
-     d - the default rule
-</PRE>
-</CODE></BLOCKQUOTE>
+<H2><A NAME="ss5.2">5.2 Bulletin mail</A>
+</H2>
+
+<P>Bulletin mail is sent by using the <EM>sb</EM> command.  This is one of the
+most common mistakes users make when sending mail.  They send a bulletin
+mail with <EM>s</EM> or <EM>sp</EM> instead of <EM>sb</EM> and of course
+the message never leaves the cluster.  This can be rectified by the sysop
+by using the <EM>msg</EM> command.
 <P>
-<P>The fifth element is simply the hops to set in this filter.  This would only 
-be used if the filter was for a node of course and overrides the hop count in
-hop_table.pl.
+<P>Bulletin addresses can be set using the Forward.pl file.
 <P>
-<P>So, let's look at an example spot filter.  It does not matter in the example 
-who the filter is to be used for.  So, what do we need in the filter?  We need 
-to filter the spots the user/node requires and also set a default rule for 
-anything else outside the filter.  Below is a simple filter that stops spots 
-arriving from outside Europe.
+<H2><A NAME="ss5.3">5.3 Forward.pl</A>
+</H2>
+
+<P>DXSpider receives all and any mail sent to it without any alterations needed
+in files.  Because personal and bulletin mail are treated differently, there
+is no need for a list of accepted bulletin addresses.  It is necessary, however,
+to tell the program which links accept which bulletins.  For example, it is
+pointless sending bulletins addresses to "UK" to any links other than UK
+ones.  The file that does this is called forward.pl and lives in /spider/msg.
+At default, like other spider files it is named forward.pl.issue.  Rename it
+to forward.pl and edit the file to match your requirements.
+The format is below ...
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
-$in = [
-  [ 0, 4, 'a', '^(K|N|A|W|VE|VA|J)'],  # 0 = drop, 'a' = alphanumeric
-  [ 1, 0, 'd', 0, 1 ],                 # 1 = want, 'd' = everything else
-                     ];
+#
+# this is an example message forwarding file for the system
+#
+# The format of each line is as follows
+#
+#     type    to/from/at pattern action  destinations
+#     P/B/F     T/F/A     regex   I/F    [ call [, call ...] ]
+#
+# type: P - private, B - bulletin (msg), F - file (ak1a bull)
+# to/from/at: T - to field, F - from field, A - home bbs, O - origin 
+# pattern: a perl regex on the field requested
+# action: I - ignore, F - forward
+# destinations: a reference to an array containing node callsigns
+#
+# if it is non-private and isn't in here then it won't get forwarded 
+#
+# Currently only type B msgs are affected by this code.
+# 
+# The list is read from the top down, the first pattern that matches
+# causes the action to be taken.
+#
+# The pattern can be undef or 0 in which case it will always be selected
+# for the action specified
+#
+# If the BBS list is undef or 0 and the action is 'F' (and it matches the
+# pattern) then it will always be forwarded to every node that doesn't have 
+# it (I strongly recommend you don't use this unless you REALLY mean it, if
+# you allow a new link with this on EVERY bull will be forwarded immediately
+# on first connection)
+#
+
+package DXMsg;
+
+@forward = (
+'B',    'T',    'LOCAL',        'F',    [ qw(GB7MBC) ],
+'B',    'T',    'ALL',          'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
+'B',    'T',    'UK',           'F',    [ qw(GB7BAA GB7ADX) ],
+'B',    'T',    'QSL',          'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
+'B',    'T',    'QSLINF',       'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
+'B',    'T',    'DX',           'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
+'B',    'T',    'DXINFO',       'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
+'B',    'T',    'DXNEWS',       'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
+'B',    'T',    'DXQSL',        'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
+'B',    'T',    'SYSOP',        'F',    [ qw(GB7BAA GB7ADX) ],
+'B',    'T',    '50MHZ',        'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
+);
 </PRE>
 </CODE></BLOCKQUOTE>
+<P>Simply insert a bulletin address and state in the brackets where you wish
+that mail to go.  For example, you can see here that mail sent to "UK" will
+only be sent to the UK links and not to PA4AB-14.
 <P>
-<P>So the filter is wrapped in between a pair of square brackets.  This tells 
-Spider to look in between these limits.  Then each line is contained within 
-its own square brackets and ends with a comma. Lets look carefully at the first 
-line.  The first element is 0 (drop).  Therefore anything we put on this line 
-will not be accepted.  The next element is 4.  This means we are filtering by 
-the spotter.  The third element is the letter "a" which tells the program to 
-expect an alphanumeric expression in the fourth element.  The fourth element 
-is a list of letters separated by the pipe symbol.
-<P>
-<P>What this line does is tell the program to drop any spots posted by anyone in 
-the USA, Canada or Japan.
+<P>To force the cluster to reread the file use load/forward
 <P>
-<P>The second line is the default rule for anything else.  The "d" tells us this 
-and the line simply reads... accept anything else.
 <P>
-<P>You can add as many lines as you need to complete the filter but if there are 
-several lines of the same type it is neater to enclose them all as one line.  
-An example of this is where specific bands are set.  We could write this like 
-this ....
+<H2><A NAME="ss5.4">5.4 The msg command</A>
+</H2>
+
+<P>The <EM>msg</EM> command is a very powerful and flexible tool for the
+sysop.  It allows the sysop to alter to and from fields and make other
+changes to manage the cluster mail.
+<P>Here is a full list of the various options ...
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
-[ 0,0,'r',[1800.0, 2000.0], 1],
-[ 0,0,'r',[10100.0, 10150.0], 1],
-[ 0,0,'r',[14000.0, 14350.0], 1],
-[ 0,0,'r',[18000.0, 18200.0], 1],
+  MSG TO &lt;msgno> &lt;call>     - change TO callsign to &lt;call>
+  MSG FRom &lt;msgno> &lt;call>   - change FROM callsign to &lt;call>
+  MSG PRrivate &lt;msgno>      - set private flag
+  MSG NOPRrivate &lt;msgno>    - unset private flag
+  MSG RR &lt;msgno>            - set RR flag
+  MSG NORR &lt;msgno>          - unset RR flag
+  MSG KEep &lt;msgno>          - set the keep flag (message won't be deleted ever)
+  MSG NOKEep &lt;msgno>        - unset the keep flag
+  MSG SUbject &lt;msgno> &lt;new> - change the subject to &lt;new>
+  MSG WAittime &lt;msgno>      - remove any waiting time for this message
+  MSG NOREad &lt;msgno>        - mark message as unread
+  MSG REad &lt;msgno>          - mark message as read
+  MSG QUeue                 - queue any outstanding bulletins
+  MSG QUeue 1               - queue any outstanding private messages
 </PRE>
 </CODE></BLOCKQUOTE>
+<P>These commands are simply typed from within the cluster as the sysop user.
 <P>
-<P>But the line below achieves the same thing and is more efficient ....
+<H2><A NAME="ss5.5">5.5 Message status</A>
+</H2>
+
+<P>You can check on a message from within the cluster by using the command
+<EM>stat/msg</EM>.  This will give you additional information on the
+message number including which nodes have received it, which node it
+was received from and when etc.  Here is an example of the output of
+the command ...
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
-  [ 0, 0, 'r',
-    [  
-      1800.0, 2000.0,         # top band 
-      10100.0, 10150.0,       # WARC  
-      14000.0, 14350.0,       # 20m
-      18000.0, 18200.0,       # WARC
-    [ ,1 ],
+G0VGS de GB7MBC 28-Jan-2001 1308Z >
+stat/msg 6869
+        From: GB7DJK
+    Msg Time: 26-Jan-2001 1302Z
+       Msgno: 6869
+      Origin: GB7DJK
+        Size: 8012
+     Subject: AMSAT 2line KEPS 01025.AMSAT
+          To: UK
+Got it Nodes: GB7BAA, GB7ADX
+     Private: 0
+Read Confirm: 0
+  Times read: 0
+G0VGS de GB7MBC 28-Jan-2001 1308Z >
 </PRE>
 </CODE></BLOCKQUOTE>
 <P>
-<P>
-<H2><A NAME="ss5.2">5.2 Announcements</A>
+<H2><A NAME="ss5.6">5.6 Filtering mail</A>
 </H2>
 
+<P>This is described in the section on <EM>Other filters</EM> so I will not
+duplicate it here.
 <P>
-<BLOCKQUOTE><CODE>
-<PRE>
-
-# This is an example announce or filter allowing only West EU announces
-# 
-# The element list is:-
-# 0 - callsign of announcer
-# 1 - destination * = all, &lt;callsign> = routed to the node
-# 2 - text
-# 3 - * - sysop, &lt;some text> - special list eg 6MUK, ' ', normal announce
-# 4 - origin
-# 5 - 0 - announce, 1 - wx
-# 6 - channel callsign (the interface from which this spot came)
-
-$in = [
-        [ 1, 0, 'a', '^(P[ABCDE]|DK0WCY|G|M|2|EI|F|ON)' ],
-        [ 0, 0, 'd', 0 ]
-];
-</PRE>
-</CODE></BLOCKQUOTE>
-<P>In this example, only the prefixes listed will be allowed.  It is possible to 
-be quite specific.  The Dutch prefix "P" is followed by several secondary 
-identifiers which are allowed.  So, in the example, "PA" or "PE" would be ok 
-but not "PG".  It is even possible to allow information from a single callsign.  
-In the example this is DK0WCY, to allow the posting of his Aurora Beacon.
-<P>
-<H2><A NAME="ss5.3">5.3 WWV</A>
+<H2><A NAME="ss5.7">5.7 Distribution lists</A>
 </H2>
 
+<P>Distribution lists are simply a list of users to send certain types of
+mail to.  An example of this is mail you only wish to send to other
+sysops.  In /spider/msg there is a directory called <EM>distro</EM>.  You
+put any distibution lists in here.  For example, here is a file called
+SYSOP.pl that caters for the UK sysops.
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
-
-# This is an example WWV filter
-# 
-# The element list is:-
-# 0 - nominal unix date of spot (ie the day + hour:13)
-# 1 - the hour
-# 2 - SFI
-# 3 - K
-# 4 - I
-# 5 - text
-# 6 - spotter
-# 7 - origin
-# 8 - incoming interface callsign
-
-# this one doesn't filter, it just sets the hop count to 6 and is
-# used mainly just to override any isolation from WWV coming from
-# the internet.
-
-$in = [
-        [ 1, 0, 'd', 0, 6 ]
-];
+qw(GB7TLH GB7DJK GB7DXM GB7CDX GB7BPQ GB7DXN GB7MBC GB7MBC-6 GB7MDX
+   GB7NDX GB7SDX GB7TDX GB7UDX GB7YDX GB7ADX GB7BAA GB7DXA GB7DXH 
+   GB7DXK GB7DXI GB7DXS)
 </PRE>
 </CODE></BLOCKQUOTE>
+<P>Any mail sent to "sysop" would only be sent to the callsigns in this list.
 <P>
-<P>It should be noted that the filter will start to be used only once a user/node 
-has logged out and back in again.
-<P>I am not going to spend any more time on these filters now as they will become 
-more "comprehensive" in the near future.
+<H2><A NAME="ss5.8">5.8 BBS interface</A>
+</H2>
+
+<P>Spider provides a simple BBS interface.  No input is required from the sysop
+of the cluster at all.  The BBS simply sets the cluster as a BBS and pushes
+any required mail to the cluster.  No mail can flow from Spider to the BBS,
+the interface is one-way.
+<P>
+<P>Please be careful not to flood the cluster network with unnecessary mail.
+Make sure you only send mail to the clusters that want it by using the
+Forward.pl file very carefully.
 <P>
 <HR>
 <A HREF="adminmanual-6.html">Next</A>