fixed confusion over DXCluster->get_exact and DXUser->get
[spider.git] / cmd / Commands_en.hlp
index 61734e449470224b6986bf0a280f51073e069003..ce9d426f52feed582d390074ccdeace445dbbc23 100644 (file)
 # Comment lines are indented before printing
 #
 === 0^ANNOUNCE <text>^Send an announcement to LOCAL users only
+<text> is the text of the announcement you wish to broadcast 
 
 === 0^ANNOUNCE FULL <text>^Send an announcement cluster wide
 This will send your announcement cluster wide
 
 === 5^ANNOUNCE SYSOP <text>^Send an announcement to Sysops only
 
-=== 0^ANNOUNCE-
-<text> is the text of the announcement you wish to broadcast 
-
 === 0^APROPOS <string>^Search help database for <string>
 Search the help database for <string> (it isn't case sensitive), and print
 the names of all the commands that may be relevant.
@@ -34,6 +32,128 @@ DX cluster <callsign>. This process creates a new 'client' process which will
 use the script in /spider/connect/<callsign> to effect the 'chat' exchange
 necessary to traverse the network(s) to logon to the cluster <callsign>.
 
+=== 9^CATCH <node call> All|[<msgno> ...]^Mark a message as sent
+=== 9^UNCATCH <node call> All|[msgno> ...]^Unmark a message as sent
+When you send messages the fact that you have forwarded it to another node 
+is remembered so that it isn't sent again. When you have a new partner
+node and you add their callsign to your /spider/msg/forward.pl file, all
+outstanding non-private messages will be forwarded to them. This may well
+be ALL the non-private messages. You can prevent this by using these 
+commmands:-
+
+  catch GB7DJK all
+  catch GB7DJK 300 301 302 303
+       
+and to undo what you have just done:-
+  
+  uncatch GB7DJK all
+  uncatch GB7DJK 300 301 302 303
+
+which will arrange for them to be forward candidates again.
+
+=== 0^DBAVAIL^Show a list of all the Databases in the system
+Title says it all really, this command lists all the databases defined
+in the system. It is also aliased to SHOW/COMMAND.
+
+=== 9^DBCREATE <name>^Create a database entry
+=== 9^DBCREATE <name> chain <name> [<name>..]^Create a chained database entry
+=== 9^DBCREATE <name> remote <node>^Create a remote database entry
+DBCREATE allows you to define a database in the system. It doesn't actually
+create anything, just defines it.
+
+The databases that are created are simple DB_File hash databases, they are 
+therefore already 'indexed'.
+
+You can define a local database with the first form of the command eg:
+
+  DBCREATE oblast
+
+You can also chain databases with the addition of the 'chain' keyword. 
+This will search each database one after the other. A typical example 
+is:
+
+  DBCREATE sdx_qsl chain sql_ad
+
+No checking is done to see if the any of the chained databases exist, in
+fact it is usually better to do the above staement first then do each of
+the chained databases.
+
+Databases can exist offsite. To define a database that lives on another 
+node do:
+
+  DBCREATE buckmaster remote gb7dxc
+
+Remote databases cannot be chained; however, the last database in a 
+a chain can be a remote database eg:
+
+  DBCREATE qsl chain gb7dxc
+
+To see what databases have been defined do:
+
+  DBAVAIL (or it will have been aliased to SHOW/COMMAND)
+
+It would be normal for you to add an entry into your local Aliases file
+to allow people to use the 'SHOW/<dbname>' style syntax. So you would
+need to add a line like:-
+
+  's' => [
+    ..
+    ..
+    '^sh\w*/buc', 'dbshow buckmaster', 'dbshow',
+    ..
+    ..
+   ],
+
+to allow 
+  SH/BUCK g1tlh
+
+to work as they may be used to.
+
+See DBIMPORT for the importing of existing AK1A format data to databases.
+See DBSHOW for generic database enquiry
+=== 9^DBIMPORT <dbname> <filename>^Import AK1A data into a database
+If you want to import or update data in bulk to a database you can use
+this command. It will either create or update entries into an existing
+database. For example:-
+
+  DBIMPORT oblast /tmp/OBLAST.FUL
+
+will import the standard OBLAST database that comes with AK1A into the
+oblast database held locally.
+
+=== 9^DBREMOVE <dbname>^Delete a database
+DBREMOVE will completely remove a database entry and also delete any data
+file that is associated with it. 
+
+There is no warning, no comeback, no safety net. 
+
+For example:
+
+  DBREMOVE oblast 
+
+will remove the oblast database from the system and it will also remove
+the associated datafile.
+
+I repeat:
+
+There is no warning, no comeback, no safety net.
+You have been warned.
+
+=== 0^DBSHOW <dbname> <key>^Display an entry, if it exists, in a database
+This is the generic user interface to the database to the database system.
+It is expected that the sysop will add an entry to the local Aliases file
+so that users can use the more familiar AK1A style of enquiry such as:
+
+  SH/BUCK G1TLH
+
+but if he hasn't and the database really does exist (use DBAVAIL or
+SHOW/COMMAND to find out) you can do the same thing with:
+
+  DBSHOW buck G1TLH
+
 === 9^DEBUG^Set the cluster program into debug mode
 Executing this command will only have an effect if you are running the cluster
 in debug mode i.e.
@@ -44,14 +164,31 @@ It will interrupt the cluster just after the debug command has finished.
 === 0^DIRECTORY^List messages 
 === 0^DIRECTORY ALL^List all messages
 === 0^DIRECTORY OWN^List your own messages
-=== 0^DIRECTORY NEW^List your own new messages
-List the messages in the messages directory. 
+=== 0^DIRECTORY NEW^List all new messages
+=== 0^DIRECTORY TO <call>^List all messages to <call>
+=== 0^DIRECTORY FROM <call>^List all messages from <call>
+=== 0^DIRECTORY SUBJECT <string>^List all messages with <string> in subject
+=== 0^DIRECTORY <nn>^List last <nn> messages
+=== 0^DIRECTORY <from>-<to>^List messages <from> message <to> message 
+List the messages in the messages directory.
 
 If there is a 'p' one space after the message number then it is a 
-personal message.
+personal message. If there is a '-' between the message number and the
+'p' then this indicates that the message has been read.
+
+You can use shell escape characters such as '*' and '?' in the <call>
+fields.
+
+You can combine some of the various directory commands together eg:-
 
-If there is a - after the message number then this indicates that the
-message has been read.
+   DIR TO G1TLH 5
+or 
+   DIR SUBJECT IOTA 200-250
+
+You can abbreviate all the commands to one letter and use ak1a syntax:-
+
+   DIR/T G1* 10
+   DIR/S QSL 10-100 5
 
 === 5^DIRECTORY-^
 Sysops can see all users' messages.
@@ -59,9 +196,25 @@ Sysops can see all users' messages.
 === 8^DISCONNECT <call> [<call> ...]^Disconnect a user or cluster
 Disconnect any <call> connected locally
 
-=== 0^DX <freq> <callsign> <remarks>^Send a DX spot throughout the cluster
-<freq> is compared against the available bands set up in the cluster.
-see show/bands for more information.
+=== 0^DX [BY <call>] <freq> <call> <remarks>^Send a DX spot
+This is how you send a DX Spot to other users. You can, in fact, now
+enter the <freq> and the <call> either way round. 
+
+   DX FR0G 144.600
+   DX 144.600 FR0G
+   DX 144600 FR0G 
+
+will all give the same result. You can add some remarks to the end
+of the command and they will be added to the spot.
+
+   DX FR0G 144600 this is a test
+
+You can credit someone else by saying:-
+
+   DX by G1TLH FR0G 144.600 he isn't on the cluster
+
+The <freq> is compared against the available bands set up in the 
+cluster.  See SHOW/BANDS for more information.
 
 === 1^FORWARD/OPERNAME <call>^Send out information on this <call> to all clusters
 This command sends out any information held in the user file which can 
@@ -119,6 +272,39 @@ unknown message 'xxxx' in lang 'en'
 Reload the /spider/data/prefix_data.pl file if you have changed it manually whilst
 the cluster is running. 
 
+=== 5^MERGE <node> [<no spots>/<no wwv>]^Ask for the latest spots and WWV 
+MERGE allows you to bring your spot and wwv database up to date. By default
+it will request the last 10 spots and 5 WWVs from the node you select. The 
+node must be connected locally.
+
+You can request any number of spots or wwv and although they will be appended
+to your databases they will not duplicate any that have recently been added 
+(the last 2 days for spots and last month for WWV data).
+
+=== 9^MSG <cmd> <msgno> [data ... ]^Alter various message parameters
+Alter message parameters like To, From, Subject, whether private or bulletin
+or return receipt (RR) is required or whether to keep this message from timing
+out.
+
+  MSG TO <msgno> <call>     - change TO callsign to <call>
+  MSG FRom <msgno> <call>   - change FROM callsign to <call>
+  MSG PRrivate <msgno>      - set private flag
+  MSG NOPRrivate <msgno>    - unset private flag
+  MSG RR <msgno>            - set RR flag
+  MSG NORR <msgno>          - unset RR flag
+  MSG KEep <msgno>          - set the keep flag (message won't be deleted ever)
+  MSG NOKEep <msgno>        - unset the keep flag
+  MSG SUbject <msgno> <new> - change the subject to <new>
+  MSG WAittime <msgno>      - remove any waitting time for this message
+  MSG QUeue                 - queue any outstanding bulletins
+  MSG QUeue 1               - queue any outstanding private messages
+
+You can look at the status of a message by using:-
+
+  STAT/MSG <msgno>      
+
+This will display more information on the message than DIR does.
+   
 === 8^PC <call> <text>^Send text (eg PC Protocol) to <call>
 Send some arbitrary text to a locally connected callsign. No processing is done on
 the text. This command allows you to send PC Protocol to unstick things if problems
@@ -136,17 +322,14 @@ cluster and be returned.
 You can get rid of any message to or originating from your callsign using 
 this command. You can remove more than one message at a time.
 
-=== 5^KILL-^
-As a sysop you can kill any message on the system.
-
-=== 5^MERGE <node> [<no spots>/<no wwv>]^Ask for the latest spots and WWV 
-MERGE allows you to bring your spot and wwv database up to date. By default
-it will request the last 10 spots and 5 WWVs from the node you select. The 
-node must be connected locally.
+=== 5^KILL <from>-<to>^Remove a range of messages from the system
+=== 5^KILL FROM <call>^Remove all messages from a callsign
+=== 5^KILL TO <call>^Remove all messages to a callsign
+=== 5^KILL FULL <msgno> [<msgno]^Remove a message from the entire cluster
+Remove this message from the entire cluster system as well as your node.
 
-You can request any number of spots or wwv and although they will be appended
-to your databases they will not duplicate any that have recently been added 
-(the last 2 days for spots and last month for WWV data).
+=== 5^KILL^
+As a sysop you can kill any message on the system.
 
 === 8^PC <call> <text>^Send arbitrary text to a connected callsign
 Send any text you like to the callsign requested. This is used mainly to send
@@ -178,15 +361,16 @@ message either sent by or sent to your callsign.
 === 5^READ-^
 As a sysop you may read any message on the system
 
-=== 0^REPLY^Reply to the last message that you have read
-=== 0^REPLY <msgno>^Reply to the specified message
-=== 0^REPLY PRIVATE <msgno>^Reply privately to the specified message
+=== 0^REPLY^Reply (privately) to the last message that you have read
+=== 0^REPLY <msgno>^Reply (privately) to the specified message
+=== 0^REPLY B <msgno>^Reply as a Bulletin to the specified message
+=== 0^REPLY NOPrivate <msgno>^Reply as a Bulletin to the specified message
 === 0^REPLY RR <msgno>^Reply to the specified message with read receipt
 You can reply to a message and the subject will automatically have
 "Re:" inserted in front of it, if it isn't already present.
 
 You can also use all the extra qualifiers such as RR, PRIVATE, 
-NOPRIVATE that you can use with the SEND command (see SEND
+NOPRIVATE, B that you can use with the SEND command (see SEND
 for further details)
 
 === 0^SEND <call> [<call> ...]^Send a message to one or more callsigns
@@ -257,6 +441,9 @@ what your latitude and longitude is. If you have not yet done a SET/QRA
 then this command will set your QRA locator for you. For example:-
   SET/LOCATION 52 22 N 0 57 E
 
+=== 0^SET/LOGININFO^Inform when a station logs in locally
+=== 0^UNSET/LOGININFO^Inform when a station logs out locally
+
 === 9^SET/LOCKOUT <call>^Stop a callsign connecting to the cluster
 === 9^UNSET/LOCKOUT <call>^Allow a callsign to connect to the cluster
 
@@ -268,13 +455,42 @@ Tell the system what your name is eg:-
 Tell the system that the call(s) are to be treated as AK1A cluster and
 fed PC Protocol rather normal user commands.
 
+=== 9^SET/OBSCOUNT <count> <nodecall>^Set the 'pump-up' obscelence counter 
+From 1.35 onwards neighbouring nodes are pinged at regular intervals (see
+SET/PINGINTERVAL), usually 300 seconds or 5 minutes. There is a 'pump-up'
+counter which is decremented on every outgoing ping and then reset to
+the 'obscount' value on every incoming ping. The default value of this
+parameter is 2. 
+
+What this means is that a neighbouring node will be pinged twice at 
+(default) 300 second intervals and if no reply has been heard just before
+what would be the third attempt, that node is disconnected.
+
+If a ping is heard then the obscount is reset to the full value. Using
+default values, if a node has not responded to a ping within 15 minutes,
+it is disconnected.
+
 === 0^SET/PAGE <lines per page>^Set the lines per page
 Tell the system how many lines you wish on a page when the number of line
 of output from a command is more than this. The default is 20. Setting it
 explicitly to 0 will disable paging. 
   SET/PAGE 30
   SET/PAGE 0
+
+=== 9^SET/PINGINTERVAL <time> <nodecall>^Set ping time to neighbouring nodes 
+As from release 1.35 all neighbouring nodes are pinged at regular intervals
+in order to determine the rolling quality of the link and, in future, to
+affect routing decisions. The default interval is 300 secs or 5 minutes.
+
+You can use this command to set a different interval. Please don't. 
+
+But if you do the value you enter is treated as minutes up 60 and seconds
+for numbers greater than that.
+
+This is used also to help determine when a link is down at the far end
+(as certain cluster software doesn't always notice), see SET/OBSCOUNT
+for more information.
+
 === 9^SET/PRIVILEGE <n> <call> [<call..]^Set privilege level on a call
 Set the privilege level on a callsign. The privilege levels that pertain
 to commands are as default:-
@@ -293,9 +509,13 @@ The password for a user can only be set by a full sysop. The string
 can contain any characters but any spaces are removed (you can type in
 spaces - but they won't appear in the password). You can see the
 result with STAT/USER.
-=== 0^SET/QRA <locator>^Set your QRA locator
+
+=== 9^SET/SPIDER <call> [<call>..]^Make the callsign an DXSpider node
+Tell the system that the call(s) are to be treated as DXSpider node and
+fed new style DX Protocol rather normal user commands.
+
 === 9^SET/SYS_QRA <locator>^Set your cluster QRA locator
+=== 0^SET/QRA <locator>^Set your QRA locator
 Tell the system what your QRA (or Maidenhead) locator is. If you have not
 done a SET/LOCATION then your latitude and longitude will be set roughly
 correctly (assuming your locator is correct ;-). For example:-
@@ -336,13 +556,29 @@ day <from>-<to> - <from> days <to> days ago
    
 info <text>     - any spots containing <text> in the info or remarks
    
-spotter <call>  - any spots spotted by <call>
+by <call>       - any spots spotted by <call> (spotter <call> is the 
+                  same).
+
+qsl             - this automatically looks for any qsl info on the call
+                  held in the spot database.
+
+iota [<iota>]   - If the iota island number is missing it will look for
+                  the string iota and anything which looks like an iota
+                  island number. If you specify then it will look for  
+                  that island.
+
+qra [<locator>] - this will look for the specific locator if you specify
+                  one or else anything that looks like a locator.
    
 e.g. 
    
    SH/DX 9m0
    SH/DX on 20m info iota
    SH/DX 9a on vhf day 30
+   SH/DX rf1p qsl
+   SH/DX iota 
+   SH/DX iota eu-064
+   SH/DX qra jn86
   
 === 0^SHOW/DXCC <prefix>^Interrogate the spot database by country
 This command takes the <prefix> (which can be a full or partial 
@@ -355,7 +591,7 @@ e.g.
    SH/DXCC G
    SH/DXCC W on 20m info iota
 
-=== 0^SHOW/FILES [<filearea>]^List the contents of a filearea
+=== 0^SHOW/FILES [<filearea> [<string>]]^List the contents of a filearea
 SHOW/FILES on its own will show you a list of the various fileareas
 available on the system. To see the contents of a particular file
 area type:-
@@ -363,8 +599,98 @@ area type:-
 where <filearea> is the name of the filearea you want to see the 
 contents of.
 
+You can also use shell globbing characters like '*' and '?' in a
+string to see a selection of files in a filearea eg:-
+   SH/FILES bulletins arld*
+
 See also TYPE - to see the contents of a file.
 
+=== 0^SHOW/MOON [<prefix>|<callsign>]^Show Moon rise and set times
+Show the Moon rise and set times for a (list of) prefixes or callsigns, 
+together with the azimuth and elevation of the sun currently at those
+locations.
+
+If you don't specify any prefixes or callsigns, it will show the times for
+your QTH (assuming you have set it with either SET/LOCATION or SET/QRA),
+together with the current azimuth and elevation.
+
+In addition, it will show the gain or loss dB relative to the nominal 
+distance of 385,000Km due to the ellipsoidal nature of the orbit.
+
+If all else fails it will show the Moonrise and set times for the node
+that you are connected to. 
+
+For example:-
+
+  SH/MOON
+  SH/MOON G1TLH W5UN
+
+=== 0^SHOW/MUF <prefix> [<hours>][long]^Show the likely propagation to a prefix
+This command allow you to estimate the likelihood of you contacting
+a station with the prefix you have specified. The output assumes a modest
+power of 20dBW and receiver sensitivity of -123dBm (about 0.15muV/10dB SINAD)
+
+The result predicts the most likely operating frequencies and signal
+levels for high frequency (shortwave) radio propagation paths on
+specified days of the year and hours of the day. It is most useful for
+paths between 250 km and 6000 km, but can be used with reduced accuracy
+for paths shorter or longer than this.
+
+The command uses a routine MINIMUF 3.5 developed by the U.S. Navy and
+used to predict the MUF given the predicted flux, day of the year,
+hour of the day and geographic coordinates of the transmitter and
+receiver. This routine is reasonably accurate for the purposes here,
+with a claimed RMS error of 3.8 MHz, but much smaller and less complex
+than the programs used by major shortwave broadcasting organizations,
+such as the Voice of America.
+
+The command will display some header information detailing its
+assumptions, together with the locations, latitude and longitudes and
+bearings. It will then show UTC (UT), local time at the other end
+(LT), calculate the MUFs, Sun zenith angle at the midpoint of the path
+(Zen) and the likely signal strengths. Then for each frequency for which
+the system thinks there is a likelihood of a circuit it prints a value.
+
+The value is currently a likely S meter reading based on the conventional
+6dB / S point scale. If the value has a '+' appended it means that it is
+1/2 an S point stronger. If the value is preceeded by an 'm' it means that
+there is likely to be much fading and by an 's' that the signal is likely
+to be noisy.  
+
+By default SHOW/MUF will show the next two hours worth of data. You
+can specify anything up to 24 hours worth of data by appending the no of
+hours required after the prefix. For example:-
+
+  SH/MUF W
+
+produces:
+
+  RxSens: -123 dBM SFI: 159   R: 193   Month: 10   Day: 21
+  Power :   20 dBW    Distance:  6283 km    Delay: 22.4 ms
+  Location                       Lat / Long           Azim
+  East Dereham, Norfolk          52 41 N 0 57 E         47
+  United-States-W                43 0 N 87 54 W        299
+  UT LT  MUF Zen  1.8  3.5  7.0 10.1 14.0 18.1 21.0 24.9 28.0 50.0
+  18 23 11.5 -35  mS0+ mS2   S3
+  19  0 11.2 -41  mS0+ mS2   S3
+
+indicating that you will have weak, fading circuits on top band and 
+80m but usable signals on 40m (about S3).
+
+inputing:-
+
+  SH/MUF W 24
+
+will get you the above display, but with the next 24 hours worth of
+propagation data.
+
+  SH/MUF W L 24
+  SH/MUF W 24 Long
+
+Gives you an estimate of the long path propagation characterics. It
+should be noted that the figures will probably not be very useful, nor
+terrible accurate, but it is included for completeness.
+
 === 0^SHOW/PREFIX <callsign>^Interrogate the prefix database 
 This command takes the <callsign> (which can be a full or partial 
 callsign or a prefix), looks up which internal country number 
@@ -373,10 +699,33 @@ together with the internal country no, the CQ and ITU regions.
 
 See also SHOW/DXCC
 
-=== 0^SHOW/PROGRAM^Show the locations of all the included program modules
+=== 5^SHOW/PROGRAM^Show the locations of all the included program modules
 Show the name and location where every program module was load from. This
 is useful for checking where you think you have loaded a .pm file from. 
 
+=== 0^SHOW/SUN [<prefix>|<callsign>]^Show sun rise and set times
+Show the sun rise and set times for a (list of) prefixes or callsigns, 
+together with the azimuth and elevation of the sun currently at those
+locations.
+
+If you don't specify any prefixes or callsigns, it will show the times for
+your QTH (assuming you have set it with either SET/LOCATION or SET/QRA),
+together with the current azimuth and elevation.
+
+If all else fails it will show the sunrise and set times for the node
+that you are connected to. 
+
+For example:-
+
+  SH/SUN
+  SH/SUN G1TLH K9CW ZS
+
+=== 0^SHOW/TIME [<prefix>|<callsign>]^Show the local time 
+If no prefixes or callsigns are given then this command returns the local
+time and UTC as the computer has it right now. If you give some prefixes
+then it will show UTC and UTC + the local offset (not including DST) at
+the prefixes or callsigns that you specify.
+
 === 0^SHOW/WWV^Show last 10 WWV broadcasts
 === 0^SHOW/WWV <n>^Show last <n> WWV broadcasts
 Display the most recent WWV information that has been received by the system
@@ -384,12 +733,22 @@ Display the most recent WWV information that has been received by the system
 === 5^SHUTDOWN^Shutdown the cluster
 Shutdown the cluster and disconnect all the users 
 
+=== 5^STAT/DB <dbname>^Show the status of a database
+Show the internal status of a database descriptor.
+
+Depending on your privilege level you will see more or less information. 
+This command is unlikely to be of much use to anyone other than a sysop.
+
 === 5^STAT/CHANNEL [<callsign>]^Show the status of a channel on the cluster
 Show the internal status of the channel object either for the channel that 
 you are on or else for the callsign that you asked for.
 
 Only the fields that are defined (in perl term) will be displayed.
 
+=== 5^STAT/MSG <msgno>^Show the status of a message
+This command shows the internal status of a message and includes information
+such as to whom it has been forwarded, its size, origin etc etc.
+
 === 5^STAT/USER [<callsign>]^Show the full status of a user
 Shows the full contents of a user record including all the secret flags
 and stuff.
@@ -409,13 +768,13 @@ required in the correct order. You may intersperse those characters
 with others to obscure your reply for any watchers. For example (and
 these values are for explanation :-):
 
-password = 012345678901234567890123456789
- > sysop
-22 10 15 17 3
+  password = 012345678901234567890123456789
 > sysop
+  22 10 15 17 3
 you type:-
-aa2bbbb0ccc5ddd7xxx3n
-or 2 0 5 7 3
-or 20573
+ aa2bbbb0ccc5ddd7xxx3n
+ or 2 0 5 7 3
+ or 20573
 
 They will all match. If there is no password you will still be offered
 numbers but nothing will happen when you input a string. Any match is
@@ -441,10 +800,16 @@ filearea 'bulletins' you want to look at file 'arld051' you would
 enter:-
    TYPE bulletins/arld051
 
-See also SHOW/FILES to see what fileareas are available and a list of content
+See also SHOW/FILES to see what fileareas are available and a 
+list of content.
+
+=== 0^WHO^Show who is physically connected
+This is a quick listing that shows which callsigns are connected and
+what sort of connection they have
 
 === 0^WX <text>^Send a weather message to local users
 === 0^WX FULL <text>^Send a weather message to all cluster users
 === 5^WX SYSOP <text>^Send a weather message to other clusters only
 Weather messages can sometimes be useful if you are experiencing an extreme
 that may indicate enhanced conditions
+