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
Last revisionBoth sides next revision
howto:ax25 [2013/03/26 11:03] – Changed stuff per lib rewrite. echickenhowto:ax25 [2014/01/07 12:06] – [Requirements] deuce
Line 7: Line 7:
 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. 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.+The traffic of other protocols, including TCP/IP, can be encapsulated in AX.25 frames, however what this page will focus on the more basic usage of AX.25, namely using the protocol as a means of passing arbitrary data between systems.  A typical 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.+Several 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 ===== ===== Requirements =====
Line 24: Line 24:
   * [[dir:exec]]/load/ax25defs.js   * [[dir:exec]]/load/ax25defs.js
   * [[dir:exec]]/load/kissAX25lib.js   * [[dir:exec]]/load/kissAX25lib.js
 +  * [[dir:exec]]/load/callsign.js
  
 If any of the above files are missing, grab the latest copies from the [[http://cvs.synchro.net|Synchronet CVS]]. If any of the above files are missing, grab the latest copies from the [[http://cvs.synchro.net|Synchronet CVS]].
Line 79: Line 80:
   serialPort = /dev/ttyUSB0   serialPort = /dev/ttyUSB0
   baudRate = 9600   baudRate = 9600
- 
  
  
Line 87: Line 87:
  
 If your [[dir:text]] directory does not already contain a file called badwords.can, you should create it and populate it with a line-by-line list of all of the fuck, shit, piss, etc. that you do not want your station to transmit over the air.  Hell damn fart. If your [[dir:text]] directory does not already contain a file called badwords.can, you should create it and populate it with a line-by-line list of all of the fuck, shit, piss, etc. that you do not want your station to transmit over the air.  Hell damn fart.
 +
 +====Prepare the AX.25 Command Shell====
 +
 +The AX.25 command shell ([[dir:exec]]/ax25shell.js) is a custom user interface geared toward packet radio users.  It is not recommended for use by clients connecting by other means.
 +
 +To have your BBS launch this command shell when an AX.25 client connects, make a copy of [[dir:exec]]/logon.js and place it in your [[dir:mods]] directory.  Edit [[dir:mods]]/logon.js, and add the following code to the top of the file:
 +
 +  if(console.terminal == "AX25") {
 +  bbs.exec("?ax25shell.js");
 +  bbs.hangup();
 +  exit();
 +  }
 +
 +By launching the shell in this manner, you can bypass any modules in your login sequence that are not appropriate for AX.25 clients (lightbar menus, etc.), and also avoid setting an alternate command shell for those users who also connect over the internet via telnet, SSH or rlogin.
  
 ====Launch the AX.25 Tunnel==== ====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:+Now that you're ready to go, open a command prompt and navigate to your [[dir:exec]] directory.  Once there, type:
  
   jsexec -l ax25tunnel.js   jsexec -l ax25tunnel.js
  
 The AX.25 tunnel script ([[dir:exec]]/ax25tunnel.js) should now be running.  This script is responsible for monitoring your TNCs (as defined in [[dir:ctrl]]/kiss.ini,) handling connections from AX.25 clients and tunnelling traffic between them and the terminal server of your BBS (via RLOGIN.) The AX.25 tunnel script ([[dir:exec]]/ax25tunnel.js) should now be running.  This script is responsible for monitoring your TNCs (as defined in [[dir:ctrl]]/kiss.ini,) handling connections from AX.25 clients and tunnelling traffic between them and the terminal server of your BBS (via RLOGIN.)
 +
 +====Mapping User Accounts to Callsigns====
 +
 +[[dir:exec]]/ax25tunnel.js matches the callsign and SSID of an inbound AX.25 link to a user account on the BBS whenever possible.  It does this by comparing the combined callsign and SSID (eg. "VE3XEC0", or "VA7RRX2") against the Chat Handle fields of all users on the BBS until a match is found.  If an existing user of your BBS wishes to link their callsign to their account, all you'll need to do is add the callsign+SSID pair that they'll be connecting from to the Chat Handle field of their account.
 +
 +If no match for the callsign and SSID can be found in the system when a client connects, an account will be created for them (populated with data from various online callsign databases if possible) and they will be logged in automatically.
  
 ====Libraries==== ====Libraries====