add new protocol document
[spider.git] / html / adminmanual-5.html
index 53b4e66bca8e2af88bff2389b62dbbba3c0621f1..f047ba6762dfa8a2d48120a6b30fdc1ec0e0296c 100644 (file)
 <HTML>
 <HEAD>
  <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
- <TITLE>The DXSpider Installation and Administration Manual : Filtering</TITLE>
+ <TITLE>The DXSpider Administration Manual v1.48: Information, files and useful programs</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</A></H2>
+<H2><A NAME="s5">5. Information, files and useful programs</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 example 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>
-<H2><A NAME="ss5.1">5.1 Spots</A>
+<H2><A NAME="ss5.1">5.1 MOTD</A>
 </H2>
 
-<P>All filters work in basically the same way.  There are several elements delimited by commas.  I will use the spot filter as an example ....
-<P>
-<P>The elements of the Spot filter are ....
+<P>One of the more important things a cluster sysop needs to do is to get 
+information to his users.  The simplest way to do this is to have a banner 
+that is sent to the user on login.  This is know as a "message of the day" 
+or "motd".  To set this up, simply create a file in /spider/data called motd 
+and edit it to say whatever you want.  It is purely a text file and will be 
+sent automatically to anyone logging in to the cluster.
+<P>
+<H2><A NAME="ss5.2">5.2 Downtime message</A>
+</H2>
+
+<P>If for any reason the cluster is down, maybe for upgrade or maintenance but 
+the machine is still running, a message can be sent to the user advising them 
+of the fact.  This message lives in the /spider/data directory and is called
+"offline".  Simply create the file and edit it to say whatever you wish.  
+This file will be sent to a user attempting to log into the cluster when
+DXSpider is not actually running.
+<P>
+<H2><A NAME="ss5.3">5.3 Other text messages</A>
+</H2>
+
+<P>You can set other text messages to be read by the user if they input the file 
+name.  This could be for news items or maybe information for new users.  
+To set this up, make a directory under /spider called <EM>packclus</EM>.  
+Under this directory you can create files called <EM>news</EM> or <EM>newuser</EM>
+for example.  In fact you can create files with any names you like.  These can 
+be listed by the user with the command ....
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
-[action, field_no, sort, possible_values, hops]
+show/files
 </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>
-<P>The second element is the field_no.  There are 13 possiblities to choose from here ....
+<P>They can be read by the user by typing the command ....
 <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
+type news
 </PRE>
 </CODE></BLOCKQUOTE>
-<P>
-<P>The third element tells us what to expect in the fourth element.  There are 4 possibilities ....
+<P>If the file they want to read is called <EM>news</EM>.  You could also set 
+an alias for this in the Alias file to allow them just to type <EM>news</EM>
+<P>
+<P>You can also store other information in this directory, either directly or 
+nested under directories.  One use for this would be to store DX bulletins 
+such as the OPDX bulletins.  These can be listed and read by the user.  
+To keep things tidy, make a directory under /spider/packclus called
+<EM>bulletin</EM>.  Now copy any OPDX or similar bulletins into it.  These 
+can be listed by the user in the same way as above using the <EM>show/files</EM>
+command with an extension for the bulletin directory you have just created, 
+like this ....
 <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
+show/files bulletin
 </PRE>
 </CODE></BLOCKQUOTE>
 <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>
-<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.
+<P>An example would look like this ....
 <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
-                     ];
+sh/files
+bulletin      DIR 20-Dec-1999 1715Z news          1602 14-Dec-1999 1330Z
 </PRE>
 </CODE></BLOCKQUOTE>
-<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>
-<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 ....
-<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],
-</PRE>
-</CODE></BLOCKQUOTE>
-<P>
-<P>But the line below achieves the same thing and is more efficient ....
+<P>You can see that in the files area (basically the packclus directory) there is a 
+file called <EM>news</EM> and a directory called <EM>bulletin</EM>.  You can 
+also see that dates they were created.  In the case of the file <EM>news</EM>, 
+you can also see the time it was last modified, a good clue as to whether the 
+file has been updated since you last read it.  To read the file called 
+<EM>news</EM> you would simply issue the command ....
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
-    [  
-      1800.0, 2000.0,         # top band 
-      10100.0, 10150.0,       # WARC  
-      14000.0, 14350.0,       # 20m
-      18000.0, 18200.0,       # WARC
-    [ ,1 ],
+type news
 </PRE>
 </CODE></BLOCKQUOTE>
-<P>
-<P>
-<H2><A NAME="ss5.2">5.2 Announcements</A>
-</H2>
-
+<P>To look what is in the bulletin directory you issue the command ....
 <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 ]
-];
+show/files bulletin
+opdx390      21381 29-Nov-1999 1621Z opdx390.1     1670 29-Nov-1999 1621Z
+opdx390.2     2193 29-Nov-1999 1621Z opdx391      25045 29-Nov-1999 1621Z  
+opdx392      35969 29-Nov-1999 1621Z opdx393      15023 29-Nov-1999 1621Z  
+opdx394      33429 29-Nov-1999 1621Z opdx394.1     3116 29-Nov-1999 1621Z  
+opdx395      24319 29-Nov-1999 1621Z opdx396      32647 29-Nov-1999 1621Z
+opdx396.1     5537 29-Nov-1999 1621Z opdx396.2     6242 29-Nov-1999 1621Z
+opdx397      18433 29-Nov-1999 1621Z opdx398      19961 29-Nov-1999 1621Z  
+opdx399      17719 29-Nov-1999 1621Z opdx400      19600 29-Nov-1999 1621Z
+opdx401      27738 29-Nov-1999 1621Z opdx402      18698 29-Nov-1999 1621Z
+opdx403      24994 29-Nov-1999 1621Z opdx404      15685 29-Nov-1999 1621Z
+opdx405      13984 29-Nov-1999 1621Z opdx405.1     4166 29-Nov-1999 1621Z
+opdx406      28934 29-Nov-1999 1621Z opdx407      24153 29-Nov-1999 1621Z
+opdx408      15081 29-Nov-1999 1621Z opdx409      23234 29-Nov-1999 1621Z
+Press Enter to continue, A to abort (16 lines) >
 </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>
-
+<P>You can now read any file in this directory using the type command, like this ....
 <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 ]
-];
+type bulletin/opdx391
+Ohio/Penn DX Bulletin No. 391
+The Ohio/Penn Dx PacketCluster
+DX Bulletin No. 391
+BID: $OPDX.391
+January 11, 1999
+Editor Tedd Mirgliotta, KB8NW
+Provided by BARF-80 BBS Cleveland, Ohio
+Online at 440-237-8208 28.8k-1200 Baud 8/N/1 (New Area Code!)
+Thanks to the Northern Ohio Amateur Radio Society, Northern Ohio DX
+Association, Ohio/Penn PacketCluster Network, K1XN &amp; Golist, WB2RAJ/WB2YQH
+&amp; The 59(9) DXReport, W3UR &amp; The Daily DX, K3TEJ, KN4UG, W4DC, NC6J, N6HR,
+Press Enter to continue, A to abort (508 lines) >
 </PRE>
 </CODE></BLOCKQUOTE>
+<P>The page length will of course depend on what you have it set to!
 <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.
-<P>
-<H2><A NAME="ss5.4">5.4 Filtering Mail</A>
+<H2><A NAME="ss5.4">5.4 The Aliases file</A>
 </H2>
 
-<P>In the /spider/msg directory you will find a file called badmsg.pl.issue.  Rename this to badmsg.pl and edit the file.  The original looks something like this ....
+<P>You will find a file in /spider/cmd/ called Aliases.  First, copy this file to
+/spider/local_cmd/Aliases and edit this file.  You will see something like this ...
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
 
-# the list of regexes for messages that we won't store having
-# received them (bear in mind that we must receive them fully before
-# we can bin them)
-
+#!/usr/bin/perl
 
-# The format of each line is as follows
+# provide some standard aliases for commands for terminally
+# helpless ak1a user (helpless in the sense that they never
+# read nor understand help files)
 
-#     type      source             pattern 
-#     P/B/F     T/F/O/S            regex  
+# This file is automagically reloaded if its modification time is 
+# later than the one stored in CmdAlias.pm
 
-# type: P - private, B - bulletin (msg), F - file (ak1a bull)
-# source: T - to field, F - from field,  O - origin, S - subject 
-# pattern: a perl regex on the field requested
+# PLEASE make this file consistant with reality! (the patterns MUST
+# match the filenames!)
 
-# Currently only type B and P 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.
+# Don't alter this file, copy it into the local_cmd tree and modify it.
+# This file will be replaced everytime I issue a new release.
 
-# The pattern can be undef or 0 in which case it will always be selected
-# for the action specified
+# You only need to put aliases in here for commands that don't work as
+# you desire naturally, e.g sh/dx on its own just works as you expect
+# so you need not add it as an alias.
 
 
 
-package DXMsg;
+package CmdAlias;
 
-@badmsg = (
-'B',    'T',    'SALE', 
-'B',    'T',    'WANTED',
-'B',    'S',    'WANTED',
-'B',    'S',    'SALE', 
-'B',    'S',    'WTB',
-'B',    'S',    'WTS',
-'B',    'T',    'FS',
-);
+%alias = (
+    '?' => [
+          '^\?', 'apropos', 'apropos',
+        ],
+    'a' => [
+          '^ann.*/full', 'announce full', 'announce', 
+          '^ann.*/sysop', 'announce sysop', 'announce',
+          '^ann.*/(.*)$', 'announce $1', 'announce',
+        ],
+        'b' => [
+        ],
+        'c' => [
+        ],
+        'd' => [
+          '^del', 'kill', 'kill',
+          '^del\w*/fu', 'kill full', 'kill',
+          '^di\w*/a\w*', 'directory all', 'directory',
+          '^di\w*/b\w*', 'directory bulletins', 'directory',
+          '^di\w*/n\w*', 'directory new', 'directory',
+          '^di\w*/o\w*', 'directory own', 'directory',
+          '^di\w*/s\w*', 'directory subject', 'directory',
+          '^di\w*/t\w*', 'directory to', 'directory',
+          '^di\w*/f\w*', 'directory from', 'directory',
+          '^di\w*/(\d+)', 'directory $1', 'directory',
+        ],
+        'e' => [
+        ],
+        'f' => [
+        ],
+        'g' => [
+        ],
+        'h' => [
+        ],
+        'i' => [
+        ],
+        'j' => [
+        ],
+        'k' => [
+        ],
+        'l' => [
+          '^l$', 'directory', 'directory',
+          '^ll$', 'directory', 'directory',
+          '^ll/(\d+)', 'directory $1', 'directory',
+        ],
+        'm' => [
+        ],
+        'n' => [
+          '^news', 'type news', 'type',
+        ],
+        'o' => [
+        ],
+        'p' => [
+        ],
+        'q' => [
+          '^q', 'bye', 'bye',
+        ],
+        'r' => [        
+          '^r$', 'read', 'read',
+          '^rcmd/(\S+)', 'rcmd $1', 'rcmd',
+        ],
+        's' => [
+          '^s/p$', 'send', 'send',
+          '^sb$', 'send noprivate', 'send',
+          '^set/home$', 'set/homenode', 'set/homenode',
+          '^set/nobe', 'unset/beep', 'unset/beep',
+          '^set/nohe', 'unset/here', 'unset/here',
+          '^set/noan', 'unset/announce', 'unset/announce',
+          '^set/nodx', 'unset/dx', 'unset/dx',
+          '^set/nota', 'unset/talk', 'unset/talk',
+          '^set/noww', 'unset/wwv', 'unset/wwv',
+          '^set/nowx', 'unset/wx', 'unset/wx',
+          '^sh$', 'show', 'show',
+          '^sh\w*/buck', 'dbshow buck', 'dbshow',
+          '^sh\w*/bu', 'show/files bulletins', 'show/files',
+          '^sh\w*/c/n', 'show/configuration nodes', 'show/configuration',
+          '^sh\w*/c$', 'show/configuration', 'show/configuration',
+          '^sh\w*/com', 'dbavail', 'dbavail',
+          '^sh\w*/dx/(\d+)-(\d+)', 'show/dx $1-$2', 'show/dx',
+          '^sh\w*/dx/(\d+)', 'show/dx $1', 'show/dx',
+          '^sh\w*/dx/d(\d+)', 'show/dx from $1', 'show/dx',
+          '^sh\w*/email', 'dbshow email', 'dbshow',
+          '^sh\w*/hftest', 'dbshow hftest', 'dbshow',
+          '^sh\w*/vhftest', 'dbshow vhftest', 'dbshow',
+          '^sh\w*/qsl', 'dbshow qsl', 'dbshow',
+          '^sh\w*/tnc', 'who', 'who',
+          '^sh\w*/up', 'show/cluster', 'show/cluster',
+          '^sh\w*/w\w*/(\d+)-(\d+)', 'show/wwv $1-$2', 'show/wwv',
+          '^sh\w*/w\w*/(\d+)', 'show/wwv $1', 'show/wwv',
+          '^sp$', 'send', 'send',
+        
+    ],
+        't' => [
+          '^ta$', 'talk', 'talk',
+          '^t$', 'talk', 'talk',
+        ],
+        'u' => [
+        ],
+        'v' => [
+        ],
+        'w' => [
+          '^wx/full', 'wx full', 'wx',
+          '^wx/sysop', 'wx sysop', 'wx',
+        ],
+        'x' => [
+        ],
+        'y' => [
+        ],
+        'z' => [
+        ],
+)
 </PRE>
 </CODE></BLOCKQUOTE>
+<P>You can create aliases for commands at will.  Beware though, these may not 
+always turn out as you think.  Care is needed and you need to test the 
+results once you have set an alias.
 <P>
-<P>I think this is fairly self explanatory.  It is simply a list of subject headers that we do not want to pass on to either the users of the cluster or the other cluster nodes that we are linked to.  This is usually because of rules and regulations pertaining to items for sale etc in a particular country.
+<H2><A NAME="ss5.5">5.5 Console.pl</A>
+</H2>
+
+<P>In later versions of Spider a simple console program is provided for the sysop.  
+This has a type ahead buffer with line editing facilities and colour for spots,
+announces etc.  To use this program, simply use console.pl instead of client.
+<P>
+<P>To edit the colours, copy /spider/perl/Console.pl to /spider/local and edit the 
+file with your favourite editor.
 <P>
-<H2><A NAME="ss5.5">5.5 Filtering DX callouts</A>
+<H2><A NAME="ss5.6">5.6 Updating kepler data</A>
 </H2>
 
-<P>In the same way as mail, there are some types of spot we do not wish to pass on to users or linked cluster nodes.  In the /spider/data directory you will find a file called baddx.pl.issue.  Rename this to baddx.pl and edit the file.  The original looks like this ....
+<P>Spider has a powerful and flexible show/satellite command.  In order for
+this to be accurate, the kepler data has to be updated regularly.  In
+general, this data is available as an email or via cluster mail.
+Updating it is simple.  First you need to export the mail message as a
+file.  You do this with the <EM>export</EM> command from the cluster prompt
+as the sysop.  For example ...
 <P>
 <BLOCKQUOTE><CODE>
 <PRE>
-
-# the list of dx spot addresses that we don't store and don't pass on
-
-
-package DXProt;
-
-@baddx = qw 
-
- FROG 
- SALE
- FORSALE
- WANTED
- P1RATE
- PIRATE
- TEST
- DXTEST
- NIL
- NOCALL 
-);
+export 5467 /spider/perl/keps.in
+</PRE>
+</CODE></BLOCKQUOTE>
+<P>would export message number 5467 as a file called keps.in in the
+/spider/perl directory.
+<P>Now login to a VT as sysop and cd /spider/perl.  There is a command in
+the perl directory called <EM>convkeps.pl</EM>.  All we need to do now is
+convert the file like so ...
+<P>
+<BLOCKQUOTE><CODE>
+<PRE>
+./convkeps.pl keps.in
 </PRE>
 </CODE></BLOCKQUOTE>
+<P>Now go back to the cluster and issue the command ...
 <P>
-<P>Again, this is simply a list of names we do not want to see in the spotted field of a DX callout.
+<BLOCKQUOTE><CODE>
+<PRE>
+load/keps
+</PRE>
+</CODE></BLOCKQUOTE>
+<P>That is it!  the kepler data has been updated.
 <P>
+<H2><A NAME="ss5.7">5.7 The QRZ callbook</A>
+</H2>
+
+<P>The command <EM>sh/qrz</EM> will only work once you have followed a few
+simple steps.  First you need to get a user ID and password from qrz.com.
+Simply go to the site and create one.  Secondly you need to copy the file
+/spider/perl/Internet.pm to /spider/local and alter it to match your user
+ID and password.  You also at this point need to set $allow=1 to complete
+the setup.  Many thanks to Fred Lloyd, the proprieter of
+<A HREF="http://www.qrz.com">qrz.com</A> for allowing this access.
 <P>
 <HR>
 <A HREF="adminmanual-6.html">Next</A>