Setting Up a Converse Server
"Your party is on the line... "
hat exactly is a converse server and why might
you want to set one up on your machine? Convers, as it is often abbreviated,
gathers numerous chatters together in one "place" and facilitates a
packet, "party-line," teletype exchange. In the "old days" of landline
telephony, if you were on a party line, anyone could pick up the phone and
listen or chat to anyone else on the line, all at the same time. There was
no privacy, and a sense of community was quicky established. The convers
server does exactly the same thing today, except you type instead
of talk.
Aside from promoting this sense of "chatty"
comraderie, what other uses might this protocol provide for the packet
radio community? A more narrow "definition" of converse might be conference.
Today, we all know about "conference calls" and why they are used. A
conference gets various experts or "agents" together to discuss issues in
a "round table format," and eventually decisions are reached and actions
taken.
Sometimes, especially in emergency situations,
radio conferences can play a very crucial role in efficiently marshalling
and distributing information resources among the many participating groups.
Outlying stations can continuously "feed" into a central coordinating node
and do not have to wait to set up a point-to-point connection, since in
mosts cases, that persistent link will have been established early on.
Additionally, by using special "feed" software similar to RSS,
sub-channels can be allocated for specific information flows either by
function or by radio frequency. For example, a mail channel, set to a low
number, 25, might alert recipients to the arrival of pertinent bulletins, or
higher numbers, such as 14507, might monitor the traffic on a particular,
and corresponding, radio frequency. (Convers can be subdivided into
many "threads" or communication channels. Please see the TraceBot
Monitoring system, found under "Related Topics" in the sidebar, for
more detail on how to setup emergency, multi-frequency monitoring.)
|
Obtaining, Configuring and Using A Convers Server
The topics discussed here pertain to a Linux OS.
However, even if you are not running Linux, you may still find some of this
to be useful background information. And, special links to JNOS, a radio
BBS, will also be presented, since the JNOS convers can be re-directed to
the convers residing on the OS; that is, any call from the JNOS convers will
be automatically forwarded and linked into the Linux Ping-Pong Convers
server, by-passing the JNOS client altogether.
Recall too, that any converse system is client/server. This means you must
start up the server as a daemon in the background. It then waits for
connections on its well-known port number, 3600. A client may "enter" from
nearly anywhere via telnet over the network, including the internet if
the host IP is known. You don't have to be running radio systems to use
convers. You don't even have to be on a network; but it's more fun if you
are :)
- Getting the Code on your System...
-
Sometimes, if you are lucky and have set up your
Linux system from a CD-ROM, the convers programs will be all zipped up
and ready for you to unzip and install. If you don't have this package,
you can explore from Google using the keys "fred baumgarten ping-pong."
(Do not use the quotes or period in the Google search window.) This
will return with a listing of potential FTP sites from which you may
download the convers package. Look for a version of at least 3.05, which
may be among the last releases for Ping-Pong.
If you prefer something newer, or something different, there are many
"renditions" of convers-like servers available. Choose your favorite and
locate it in the directory /usr/src. Then unzip the compressed file using
a command similiar to this:
- unzip -aL <your_source_code>.zip
If you have a tar.gz file for your source, then use this command to expand the
files into the convers directory:
- /bin/gzip -dc <package_file_name> | tar -xvf -
A directory named convers should be created and populated with all the
required files. At this point, you should read the README documents,
make any edits to noted files if needed, and then run the "Configure"
script. It will "look around" your system and possibly modify the effected
Make files. Then run "make" and then "make install." If all has gone well,
you now have the binaries in place to start up the convers server...
In some instances, you may be able to obtain a binary distribution, and
you can skip the above compile process. However, you may still need to
run an install program to complete the final locating of files in the
appropriate system sub-directories. At this point, you are ready to
configure convers which you must do before activating the server.
- Setting up the Config Server Files
-
There are several config files that must be
attended to before you can fire up the server, one is mandatory and
the others are optional "nice" touches. These are: the convers.conf,
the convers.issue, the convers.motd, and the convers.log files. The mandatory
config file is the convers.conf. On my system, all these files "live" in
directory /usr/local/etc except the log file. (Check your
documentation to be sure where these files are to be located. It might
differ from mine...)
Let's take a close look at the contents of these critical
files, the convers.conf first:
|
The convers.conf File
|
# Converse config
# 05-09-00
ka1fsb-10 54321
ka1fsb-10 1 1 ka1fsb-10:3600
|
The highlights for this file are the port number 3600 and the host ID which
is ka1fsb-10. I chose that because my host machine is 44.56.26.10 and the
AX25 ID is also ka1fsb-10. You can chose whatever suits your system set up.
Generally, you should use a callsign with an SSID, but if you are not a
ham, you may be able to just use your hostname here instead. (I might add too
that my hostname is ka1fsb, but I chose ka1fsb-10 for the convers ID, so
it can be different but related.)
The format for this file seems to be that each row begins with a callsign
identifier and is followed by "flags" or data fields. The two 1's are place
holders according to the man page for conversd, and the rest of the line
sets up the port number on the host ID. There are other links that can be set
up as well which could potentially link multiple or remote convers servers.
If you installed the man pages for convers, there is extensive information
under "man conversd" which details several example convers.conf files.
This rather sparse config file is all you really need to start up the
server! It contains all the required parameters. However, the other configs
add "interesting" information for the users as they log on. For example,
the convers.issue file may greet or advise the users about the login
procedure:
|
The convers.issue File
|
Welcome to KA1FSB-10... Please login with /n <ur_call_sign>...
|
You won't see this message when you start up your local viewing client, only
"external" users will see it.
Another file that may inform the user is the convers.motd file. I chose
to tell the user that this is a local convers server and not an
internet level server, not tied into another remote internet site. So,
you only can talk to the "check-ins" who can reach my system by radio
links or by "private," dial-up IP, internet links. (This is a very
local LAN by most standards... )
|
The convers.motd File
|
( Currently local to 44.56.26.10 machine only... )
|
NOTE: If you wish, you could start up more than one server!
Often, you will see port 3610 taken for a "secondary" local convers system.
If your "next" binary server begins with a "w" or a "ka," then precede
each config file with those letters, such as if using wconversd, then
use wconvers.conf, etc. Be sure to set the port to 3610 in that file as
well. I have not run another convers server on my machine here.
So, you may have to experiment with the host ID for your second
convers port... (And these two convers systems can be tied together, please
see the man page "conversd," pertaining to the convers.conf file.)
- Starting up the Server
-
Once the config files are set up, the command to
activate the server is very straightfoward:
- /usr/local/sbin/conversd &
or optionally, and in addition, as noted above:
- /usr/local/sbin/wconversd &
is all you need. (Be sure that you have logged on as root.) And, if you are
using a log file, you will see evidence of the server's presence as
recorded in that file; otherwise, there is no indication that the server
is running other than to do a "ps ax" to list out the background
processes. The server is now up and "listening" for incoming
connections...
- Starting up the Client
-
Now you need to open a session or "window" on your
machine to view or participate in the "discussions." I have found that you
should not do this from a root login. On my system, I have a ka1fsb
user, so I login on that account, /home/ka1fsb. It is from this point
that I launch a script named do_convers. It is a very simple script:
|
The do_convers Shell Script
|
#! /bin/sh
# do_convers
# 09-22-04
# KA1FSB/kbn
# ---------------------------------------------------------------
# Start up a client for the convers...
# Located: /home/ka1fsb account
# Using: /home/ka1fsb/.conversrc
# Log in here as usual and quit with /q
# ---------------------------------------------------------------
/usr/local/bin/convers
#----- End of do_convers
|
You could skip this script and just type in the start up line, but I often
create scripts to document the locations or options for a process as well
as actually begin that process...
You may also set up a .conversrc run-time config file when running your
convers client. It should be located in the same directory as do_convers,
/home/ka1fsb, (substitute with your user account). Here is a very simple
example of what I use:
|
The .conversrc File
|
/n ka1fsb
/p Karl <sysop>
/topic 0 Anything and Everything
/b
/v
/w l
|
These lines simulate what an actual user would type in. It just saves you a
few keystrokes... You could also add more topics per channel if
you like. Here is what my login screen looks like:
|
The Login Session Screen Start Up...
|
ka1fsb:~$ do_convers
conversd @ ka1fsb-10 PingPong-Release 3.05 - Type /HELP for help.
* ( Currently local to 44.56.26.10 machine only... )
*** You created a new channel 0.
*** (10:01) conversd made you a channel operator for channel 0
*** (10:01) Personal text set.
*** (10:01) Channel topic set on channel 0.
*** Beep mode enabled
*** Verbose mode enabled
User Host Via Channel Login Queue RX TX
ka1fsb @ ka1fsb-10 0 10:01 184 86 286
Personal: Karl <sysop>
Last Activity: 10:01
***
|
So, now you have a convers server up and running on your machine and you
have a client session screen going from which to respond to users. All
you need now is to have a few users stop by for a chat :)
- Linking in the JNOS Convers Server
-
If you are running a radio BBS, particularly
JNOS,
you can re-direct all convers traffic from the JNOS server to your Linux
OS convers server! All the personal login information on the JNOS side will
be sent to the Linux convers as well! There will no longer be any convers
client sessions on JNOS, but instead they will take place on the Linux OS
convers client. If you have an internet hook up, you may then have links via
the internet and links via the radio. (In some countries, this is not
permitted. But it is OK here.)
NOTE: Make sure that your JNOS executable code has been configured to
permit a LINK to other convers servers. Here is an excerpt from
the file
config.h
which shows how the JNOS server needs to be built to
link up with these "external" servers. If you haven't defined the LINK
option, then you will need to
re-compile
JNOS with it marked as
#defined. (And, as you can see, almost every function has been defined
except the very last one. Check your /jnos111f/config.h file to see what
the compile "status" of your convers is... )
...
/* Software options */
#define CONVERS 1 /* Conference bridge (babble-box :-) */
/* Now some converse options ... see convers.c for more comments */
#define LINK 1 /* permit this convers node to be linked with
others*/
#define XCONVERS 1 /* LZW Compressed convers server and links */
#define CNV_VERBOSE 1 /* Verbose msgs */
#define CNV_CHAN_NAMES 1 /* Convers named channels */
#define CNV_TOPICS 1 /* Convers channel topics are gathered */
#define CNV_CALLCHECK 1 /* Convers only allows callsigns */
#define CNV_LOCAL_CHANS 1 /* Convers local channels and msg-only channels */
#define CNV_ENHANCED_VIA 1 /* If convers user is local, "via" gives more
info */
#define CNV_CHG_PERSONAL 1 /* Allow users to change personal data
permanently */
#define CNV_LINKCHG_MSG 1 /* Send link-change messages in convers */
#define CNV_VERBOSE_CHGS 1 /* Default to /VERBOSE yes. Use this judiciously! */
#undef CNV_TIMESTAMP_MSG 1 /* Add hh:mm prefix to msgs sent to local users */
...
And a technical word of caution: If you have links of various speeds,
the slowest link will determine the speed of all the other users. So if
you have just one slow radio link, that will hold up even the fastest cable
or landline link! Just take note... sometimes it is better to have either
one or the other, but not both. (It can be frustrating and, at first,
unexpected.)
To re-direct the JNOS convers to the Linux-resident convers, I have
modified a
script
from the JNOS package. Here are my edits to that script:
|
A JNOS Script named: do_convers
|
# ******************* CONVERS SETUP **************************
# convers host WELLS
convers umaxq 0
convers hmaxq 0
convers maxwait 600
convers channel 0
# convers mycall ka1fsb-7
# convers interface lan on
convers interface ax0 on
convers interface hf on
# convers interface ax2 on
# convers interface ax3 on
# 10 is down for now... ok back up! 09-22-04
convers link 44.56.26.10
# convers link hydra
|
It is that next to last line that does all the "magic!" From this point on,
any convers entrant will show up on the .10, ka1fsb-10, host. Be sure to
include all the interfaces that you want to link to the convers with the
line "convers interface <ur_interface> on." This script is located,
or should be located, in the directory /jnos/scripts. Then, be sure to
place this script reference, /jnos/scripts/do_convers, near the end in
your autoexec.nos file, or start it up manually from the admin console if
you only want intermittant operation.
Another interesting feature of JNOS in regard to convers is the dbase.dat
file which can hold the names of users and their locations. This file is
read when a match to the key, the user callsign, is found and will show up
in the personal column on login to the Linux Ping-Pong convers.
|
The /jnos/finger/dbase.dat File
|
ka1fsb Karl, in Wellesley, MA
ka1tuk Larry, in Derry, NH
kr4ms Nick, in Athens, GA
wa8rsa Dave, in Zeeland, MI
ka1eui Jim, in Holbrook, MA
|
The format is callsign, a space, and then pretty much anything you want to
include about this user. I followed the suggested data field format and
used first name, city location, and state location, but you can set it
up almost any way you wish as long as it is not too long.
NOTE: There is an analagous file for the Ping-Pong server as well.
It is called /var/local/spool/convers/personals. It contains exactly the
same information as the dbase.dat file for JNOS. You may keep the same
format or change it as long as you locate the callsign "keys" in the first
column.
- Calling from the AX25 Utilities
-
If you run the
AX25 Utilities
, you may set the call up as an Alias:
Alias CONVers "telnet ka1fsb 3600 \"/n %s\""
Place this statement in the file
/etc/ax25/node.conf
near the other Alias
statements or examples. The login sequence of "/n %s" will be done
automatically for you since the %s becomes resolved to your user login
callsign. Be sure to replace my host name with your host name or
IP number, and if you are using a different port, such as 3610, edit that
accordingly.
- Telnetting into Convers
-
Probably the most common way to access the convers
server for users is via a
telnet
session. Whether you are on the same
machine, a LAN, coming over the radio, or arriving via the internet, telnet
always works! If users start from a browser, here is their entry:
- telnet://<ur_ip_or_hostname>:3600
(No spaces anywhere in this line...) Provided their browser supports
telnet, they will be arriving at your host machine shortly
thereafter...
If they are coming via a LAN or a radio link which supports TCP/IP, they
can use:
- telnet <ur_ip_or_hostname> 3600
(At least a single space surrounding the hostname...) And, they will be
reaching your machine for a chat. If you have dial-up, that IP will
also work! So, you could email all your conferencees your dialed-up IP
and invite them in for a "round table" and a big rag chew session.
- A Few Commands to Get Started...
-
Usually the very first "item of business" is to
identify yourself with the "/n" switch. As noted above, sometimes this is
done for you, if you are a "known" listed user, and sometimes not:
- /n <your_user_name_or_callsign>
From this point on, you will be seen as "<your_userid>:" followed by
your typed-in message lines. On some systems, there may be a time date stamp
as well...
Next, you can publish more information about who you are and your
location if you wish, using the "/p" switch:
- /p <your_name_and_anything_further...>
You can find out who is on the current channel with "/w" or the longer
form "/w l"...
To see a quick listing summary of the available commands, use
the "/?" switch:
You can also use a longer form for a more detailed explanation:
- /help <any_cmd_initial_or_word>
... A short paragraph will be dispayed ... For example:
- /help c
Join another channel. Unlike other conversd implementations Ping-Pong
conversd supports multiple channel joins at the same time. Thus the old
channel is not left. You may do this by invoking "/leave."
The "/c" switch will tell you what channel you are on, or change to another
channel if a valid channel number follows. It will also list the topic(s)
for that channel:
And finally, to log off, use the "/q" switch:
That's it! There are other commands but these are the basics which will get
you started on any convers client. If you are the "channel operator," which
you will be on your own machine, you may have other privileges too, such as
changing the topic on any given channel, or sending messages across
channels.
Convers can be both fun and instrumental in sharing messages and data in
a most efficient and timely format! There have been "volumes" written about
this facility, so the more you know, the more useful it can become! Be sure
to read all the documentation that came with the package, and all the man
pages too. Have fun with it; and as Fred has said, enjoy the "playground!" :)
(Courtesy KBNorton Computer Services)
|