76ec9df48552aad974da50227104d91536ac13d2
[spider.git] / html / connect.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <html>
3   <head>
4     <title>Connecting to other Clusters</title>
5         <meta name="Keywords" content="DX Cluster, DXSpider, Spider, Packet Cluster, DXCluster, Pavillion Software, AK1A, AX25, AX.25, WWV, Packet Radio, Amateur Radio, Propagation, DX, DXing, G1TLH, GB7TLH, Dirk Koopman, Mailing list, Linux, RedHat, PERL">
6         <meta name="Description" content="Software and systems for realtime digital communications between amateur radio stations for the provision of information on propagation conditions and stations operating">
7         <meta name="Author" content="Dirk Koopman G1TLH">
8     <link rel=stylesheet href="style.css" type="text/css" title="default stylesheet">
9   </head>
10
11   <body TEXT="#000000" LINK="#0000ff" VLINK="#800080" BGCOLOR="#FFFFFF">
12         <FONT COLOR="#606060"> 
13           <hr>
14           <h2>Connecting to other Clusters</h2>
15           <hr>
16         </font>
17         
18         
19         <address><a href="mailto:djk@tobit.co.uk">Dirk Koopman G1TLH</a></address>
20         <p>
21           <!-- Created: Sun Dec 13 20:25:14 GMT 1998 -->
22           <!-- hhmts start -->
23 Last modified: Tue Apr 10 00:21:34 BST 2001
24 <!-- hhmts end -->
25         <p>At the moment, anybody can connect inwards at any time from outside, either by ax25 or by
26           telnet (assuming you have followed the instructions in <a href="install.html">installation</a>
27           instructions. However, in order to connect outwards, you will need to create <em>connect</em> scripts.
28           
29         <p><em>Connect</em> scripts live in the <tt>/spider/connect</tt> directory and are simple ascii scripts
30           that are written using a normal editor. There are a couple of examples in the issue directory.
31           
32         <p>Here are a few of basic types, first a telnet connection where the 
33            client is set up in the passwd file thus:-
34         <pre>
35     gb7djk:x:1372:1291::/home/gb7djk:/usr/bin/perl /spider/perl/client.pl gb7djk telnet
36         </pre>
37         and the connect script would be:-
38         <pre>
39     timeout 15
40     # this is a comment
41     connect telnet dirkl.tobit.co.uk
42     'login' 'gb7djk'
43     'word' 'gb7djk'
44     client gb7djk telnet
45         </pre>
46         <p>For a connect that requires a login and execution of the programs
47           from a normal shell, do:-
48
49         <pre>
50     timeout 15
51     connect telnet dirkl.tobit.co.uk
52     'login' 'gb7djk'
53     'word' 'gb7djk'
54     '\$' 'cd /spider/perl'
55     # set the line to prevent echoing, leaving this out will
56     # confuse whole networks for hours!
57     '\$' 'stty -echo raw'
58     # tell GB7DJK that you are GB7DJK-1
59     '\$' '/spider/src/client gb7djk-1 telnet'
60     # tell GB7DJK-1 that it is connected to GB7DJK
61     # you can leave this out if you call this script 'gb7djk'
62     client gb7djk telnet
63         </pre>
64
65         <p>a ax25 example:-
66         <pre>
67     timeout 60
68     abort (Busy|Sorry|Fail)
69     # don't forget to chmod 4775 netrom_call!
70     connect ax25 /usr/sbin/netrom_call bbs gb7djk-0 g1tlh-0
71     'Connect' ''
72     'Connect' 'c np7'
73     'Connect' 'c gb7dxm'
74     'Connect' ''
75         </pre>
76
77     The <tt>-0</tt> ssid is important if you want it to work reliably. Obviously if you are
78     using a different ssid then you would use that.
79
80     <p>A AGW Engine example would be very similar and look like this:-
81         <pre>
82     timeout 60
83     abort (Busy|Sorry|Fail)
84     connect agw 2 g1tlh
85     'Connect' ''
86     'Connect' 'c np7'
87     'Connect' 'c gb7dxm'
88     'Connect' ''
89         </pre>
90         
91         <p>A connection is started manually by typing in <tt>connect &lt;scriptname&gt;</tt> on a sysop enabled
92           <tt>client.pl</tt> session. For example:-
93         <pre>
94     G1TLH de GB7DJK 13-Dec-1998 2041Z > connect gb7djk-1
95     connection to GB7DJK-1 started
96     G1TLH de GB7DJK 13-Dec-1998 2043Z > 
97         </pre>
98         
99     <p>You can watch the progress of the connection (if you have <tt>connect</tt> 
100      debugging enabled [<tt>set/debug connect</tt>]) on the
101           <tt>cluster.pl</tt> screen and you should see something like this:-
102         <pre>
103     &lt;- D G1TLH connect gb7djk-1
104     -> D G1TLH connection to GB7DJK-1 started
105     -> D G1TLH G1TLH de GB7DJK 13-Dec-1998 2046Z >
106     timeout set to 15
107     CONNECT sort: telnet command: dirkl.tobit.co.uk
108     CHAT "login" -> "gb7djk"
109     received "
110     Red Hat Linux release 5.1 (Manhattan)
111     Kernel 2.0.35 on an i586
112     "
113     received "login: "
114     sent "gb7djk"
115     CHAT "word" -> "gb7djk"
116     received "gb7djk
117  
118     "
119     received "Password: "
120     sent "gb7djk"
121     Connected to GB7DJK-1, starting normal protocol
122     &lt;- O GB7DJK-1 telnet
123     -> B GB7DJK-1 0
124     GB7DJK-1 channel func  state 0 -> init
125     &lt;- D GB7DJK-1 
126     &lt;- D GB7DJK-1 Last login: Sun Dec 13 17:59:56 from dirk1
127     &lt;- D GB7DJK-1 PC38^GB7DJK-1^~
128     &lt;- D GB7DJK-1 PC18^ 1 nodes, 0 local / 1 total users  Max users 0  Uptime 0 00:00^5447^~
129     etc
130         </pre>
131         
132         <p>The connect scripts consist of lines which start with the
133         following keywords or symbols:-
134
135         <ul>
136
137                 <li><b>#</b> All lines starting with a <b>#</b> are
138                 ignored, as are wholly blank lines.
139         <br><br>
140
141                 <li><b>timeout</b> followed by a number is the number of
142                 seconds to wait for a command to complete. If there is no
143                 <b>timeout</b> specified in the script then the default is 60
144                 seconds.
145         <br><br>
146
147                 <li><b>abort</b> is a regular expression containing one or
148                 more strings to look for to abort a connection. This is a perl
149                 regular expression and is executed ignoring case.
150         <br><br>
151
152                 <li><b>connect</b> followed by <b>ax25</b>, <b>telnet</b> or <b>agw</b>
153                 and some type dependent information. 
154
155         <p>In the case of a
156                 <b>telnet</b> connection, there can be up to two parameters,
157                 the first is the ip address or hostname of the computer you
158                 wish to connect to and the second is the port number you want
159                 to use (this can be left out if it is a normal telnet
160                 session).
161
162                 <p>In the case of an <b>ax25</b> session then this would
163                 normally be a call to <tt>/usr/sbin/ax25_call</tt> or
164                 <tt>/usr/sbin/netrom_call</tt> as in the example above. It is your
165                 responsibility to get your node and other ax25 parameters to
166                 work before going down this route!
167
168         <p>For <b>agw</b> connections you will need a port number (starting
169         from 1) and the callsign of the first &quot;hop&quot; along the way.
170         <br><br>
171
172                 <li><b>'</b> is the delimiting character for a word or
173                 phrase of an expect/send line in a <tt>chat</tt> type
174                 script. The words/phrases normally come in pairs, either can
175                 be empty. Each line reads input from the connection until it
176                 sees the string (or perl regular expression) contained in the
177                 left hand string. If the left hand string is empty then it
178                 doesn't read or wait for anything. The comparison is done
179                 ignoring case.
180
181                 <p>When the left hand string has found what it is looking (if
182                 it is) then the right hand string is sent to the connection.
183
184                 <p>This process is repeated for every line of <tt>chat</tt> script. 
185         <br><br>
186
187                 <li><b>client</b> starts the connection, put the arguments
188                 you would want here if you were starting the client program
189                 manually. You only need this if the script has a different
190                 name to the callsign you are trying to connect to (i.e. you
191                 have a script called <tt>other</tt> which actually connects to
192                 <tt>GB7DJK-1</tt> [instead of a script called
193                 <tt>gb7djk-1</tt>]).
194
195         </ul>
196
197 <!-- Standard Footer!! -->
198         <p>&nbsp;</p>
199         <p>
200           <FONT COLOR="#606060"><hr></font>
201         <font color="#FF0000" size=-2>
202           Copyright &copy; 1998 by Dirk Koopman G1TLH. All Rights Reserved<br>
203         </font>
204         <font color="#000000" size=-2>$Id$</font>
205   </body>
206 </html>