Related Topics:
 • TraceBot-
     Monitor
 


 Setting Up a Converse Server


"Your party is on the line... "

W

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"...

  • /w l
    User      Host      Via        Channel   Login Queue RX        TX
    ka1fsb  @ ka1fsb-10                  0    7:22    62        94       714
              Personal: Karl <sysop>
              Last Activity:   7:22
    

To see a quick listing summary of the available commands, use the "/?" switch:

  • /?
     ... A long list will be displayed ...
    

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:

  • /c
    *** ( 9:38) You are talking to channel 0. There are 1 users.
    *** current Topic is: 0 Anything and Everything
    

And finally, to log off, use the "/q" switch:

  • /q

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)