Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
howto:ax25 [2013/03/26 10:44] – The packet-BBS service has been replaced by ax25shell.js. echickenhowto:ax25 [2015/08/20 10:04] (current) – I'll add a new article when/if AX25.Session is fixed. ecbbs
Line 1: Line 1:
-====== Set up Synchronet as an AX.25 Packet Radio BBS ====== 
  
-Sysops who are also amateur radio operators may wish to offer access to their Synchronet BBS via AX.25 packet radio.  This article explains how to configure Synchronet to handle such connections. 
- 
-=====Overview===== 
- 
-AX.25 packet radio is a digital mode of communication often used by amateur radio operators.  By connecting a device called a Terminal Node Controller (TNC) between a computer and a radio transceiver, one can transmit and receive digital data over the air.  While faster and more efficient modes of digital communication do exist, AX.25 persists due to being robust, reliable, usable over great distances, and due to the proliferation of software and hardware that supports this standard. 
- 
-The traffic of other protocols, including TCP/IP, can be encapsulated in AX.25 frames, however what this page will focus on is so-called "unproto" usage of AX.25, namely using the protocol as a means of passing arbitrary data between systems.  A typical unproto session would involve a user accessing their TNC using a terminal emulator (SyncTERM, Minicom, Hyperterminal, etc.), issuing commands to have it connect to another station, then sending and receiving strings of ASCII text.  The answering station may be attended by another operator at a keyboard, or by software monitoring the TNC for activity.  For the caller, the experience is similar to (but slower than) calling a dial-up or Telnet BBS. 
- 
-Many packet radio-based bulletin board systems already exist, and in fact most TNCs include a basic BBS in their firmware.  Synchronet's many capabilities make it an ideal back-end for a packet radio BBS.  Using the information on this page, you should be able to get your Synchronet BBS on the air. 
- 
-===== Requirements ===== 
- 
-Obviously you'll need a radio transceiver connected to an antenna system of some kind.  You'll also need a TNC supporting the KISS protocol (more on that in a moment) and an up-to-date installation of Synchronet. 
- 
-Before proceeding, consult your TNC's documentation and familiarize yourself with the procedures for placing it into (and getting it out of) KISS mode.  Make note of the speed of communication between the TNC and the host computer, and understand the difference between this and the rate of over-the-air communications. 
- 
-Confirm that the following files are present relative to the root directory of your Synchronet BBS installation: 
- 
-  * [[dir:ctrl]]/kiss.ini 
-  * [[dir:exec]]/ax25tunnel.js 
-  * [[dir:exec]]/ax25shell.js 
-  * [[dir:exec]]/load/ax25defs.js 
-  * [[dir:exec]]/load/kissAX25lib.js 
- 
-If any of the above files are missing, grab the latest copies from the [[http://cvs.synchro.net|Synchronet CVS]]. 
- 
-=====KISS Mode, AX.25 and Synchronet===== 
- 
-AX.25 is the protocol spoken between packet radio stations.  KISS (Keep It Simple, Stupid) is the protocol that your computer will use to talk to your TNC. 
- 
-Most TNCs offer a terminal mode of operation, meaning that you the operator can access your TNC via a serial port, issue textual commands to it and view human-readable menus and responses.  When calling packet radio bulletin board systems, this is the mode that you'll typically use.  While most TNCs support the same commands and present information to the user in similar ways, no piece of software can reliably control every given model of TNC using these commands, or reliably parse the TNC's output. 
- 
-KISS is a protocol that defines a standard for communication between software running on a host computer and a connected TNC.  When software control and monitoring of a TNC is required, KISS is the most reliable and universal option.  In KISS mode, the TNC is responsible for very few things.  It listens for data inbound from your transceiver, demodulates it, verifies the checksums of inbound packets and discards them if necessary.  When transmitting, the TNC watches for KISS frames from your computer, appends checksums to the AX.25 packets encapsulated therein, and then modulates the data onto an audio signal to be sent out over the air. 
- 
-While a TNC in Host or BBS mode will often only support one connection at a time, KISS-mode TNCs operate on a connectionless basis, passing all AX.25 frames that they receive from the channel along to the host computer.  This means that the host software can support concurrent AX.25 connections via a single TNC.  Unnecessary?  Sure, but it's still "better." 
- 
-KISS mode offers a lot of flexibility, and makes it very easy for software running on your computer to communicate with many different models of TNC.  Unfortunately, it also places the burden of supporting the AX.25 protocol mostly on the host software.  This means that support for the AX.25 protocol has to be provided by Synchronet itself.  By way of a Javascript library and some supporting files, Synchronet now has full support for the KISS protocol and partial (let's say 90%) support for the AX.25 protocol.  There are several things left to do before the protocol is fully implemented, so in the meantime such communication may be unreliable, especially when operating under less than ideal conditions.  Your mileage may vary. 
- 
-=====Configuring and Enabling Packet Radio Support for Synchronet===== 
- 
-====Edit ctrl/kiss.ini==== 
- 
-This is where you configure your TNC(s).  You can define as many TNCs as you like by adding in a section for each of them as follows: 
- 
-  [TNC-Name] 
-  callsign = <Callsign> 
-  ssid = <Numeric SSID from 0 to 15> 
-  serialPort = <Device name (Windows) or path (*nix)> 
-  baudRate = <Numeric baud rate, eg. 9600> 
- 
-The TNC name isn't terribly important, but you'll need to remember which names you chose for your TNCs once we get a bit farther along. 
- 
-In most cases, the SSID can be set to 0 unless you intend to operate multiple TNCs on the same frequency using the same callsign. 
- 
-Example 1: 
- 
-  [KPC3] 
-  callsign = WD1CKS 
-  ssid = 0 
-  serialPort = COM4 
-  baudRate = 9600 
- 
-Example 2: 
- 
-  [AEA-PK232] 
-  callsign = VE3XEC 
-  ssid = 2 
-  serialPort = /dev/ttyUSB0 
-  baudRate = 9600 
- 
-====Edit ctrl/services.ini==== 
- 
-When AX.25 clients connect to your system, traffic will be tunnelled between them and a custom service running on your BBS.  One piece of this puzzle is packet-bbs.js; to run it as a service, add the following section to the bottom of your services.ini file: 
- 
-  [Packet-BBS] 
-  Port=2000 
-  Options=NO_HOST_LOOKUP 
-  Command=packet-bbs.js 
- 
-Note that if port 2000 is being used by some other service on your system, you can pick any other port number that you like. 
- 
-Once you've added this section to services.ini, recycle your services or restart your BBS to activate it. 
- 
-====Edit text/packet/menu.asc (Optional)==== 
- 
-This is the menu that's presented to the user when they connect.  Go ahead and edit it to your liking, but you're advised to keep the command sequences intact and ensure that the last line of the file contains the command prompt. 
- 
-====Edit text/packet/censorship.txt (Optional)==== 
- 
-Since we're not allowed to use offensive language over the air, everything sent out to AX.25 clients by packet-bbs.js passes through a censorship filter.  This file contains a line-by-line listing of all the fuck, shit, piss and so forth that you don't want your station to transmit. 
- 
-====Launch the AX.25 Tunnel==== 
- 
-Okay, you're finally ready to go.  Open a command prompt and navigate to your [[dir:exec]] directory.  Once there, type: 
- 
-  jsexec -l ax25tunnel.js <tnc1> <tnc2> <tnc3> etc. 
- 
-Where <tnc1> etc. are the names of TNCs as defined in [[dir:ctrl]]/kiss.ini.  Example: 
- 
-  jsexec -l ax25tunnel.js KPC3 AEA-PK232 
- 
-The AX.25 tunnel script ([[dir:exec]]/ax25tunnel.js) should now be running.  This script is responsible for monitoring your TNCs, handling connections from AX.25 clients and tunnelling traffic between them and the Packet-BBS service running on your BBS. 
- 
-Hopefully in the near future this will be replaced by a similar script that will gate between AX.25 clients and the terminal server via Rlogin or, less preferably, Telnet.  The Packet-BBS Service is intended only as a temporary solution. 
- 
- 
-====Libraries==== 
- 
-Most of the support for the KISS and AX.25 protocols in Synchronet are provided by the following two files: 
- 
-  * [[dir:exec]]/load/ax25defs.js 
- 
-  * [[dir:exec]]/load/kissAX25lib.js 
- 
-The latter is heavily commented, so if you wish to develop your own scripts to make use of Synchronet's packet radio support, start by reading that file.  You may also wish to consult [[dir:exec]]/ax25tunnel.js, [[dir:exec]]/ax25call.js, and [[dir:exec]]/examples/ax25monitor.js for some examples of how to use the objects and functions provided by kissAX25lib.js. 
- 
-=====Compatibility===== 
- 
-KISS-mode being what it is, most any KISS TNC should at the very least work on the server-side.  kissAX25lib.js has been tested with the following TNCs: 
- 
-  * Kantronics KPC3+ Firmware rev. 9.1 (Client & Server) 
-  * Kenwood TH-D7A / TASCO Radio Modem 09/15/99 2Chip version 2.00 (Client only - this KISS implementation is broken) 
-  * AEA PK-232 (Client & Server) 
-  * AEA PK-12 (Client & Server) 
-  * MFJ-1278 (Client & Server) 
-  * TAPR TNC 2 (Client & Server) 
-It, uh, works with most of them, but the library is not without its problems, especially when dealing with certain clients. 
- 
-=====Support===== 
- 
-This is a real work in progress, so the answer to a lot of your questions might be "Yeah, I know - I'm working on it."  However, information about your experiences in using this software are welcome and will help to improve it.  If you have any questions or anything to report, try the following: 
- 
-  * DOVE-Net: Send a message to echicken in the Synchronet Discussion or Ham Radio sub-boards 
-  * IRC: Look for echicken in #synchronet or #hamradio on irc.synchro.net 
-  * BBS: Contact echicken on bbs.electronicchicken.com 
- 
-===== See Also ===== 
-  * [[:howto:|howto index]] 
- 
-{{tag>}}