RasLink: A Distribution For The PTTLink Network

Updated on August 31, 2021 01:33 U.S Mountain Time

If you’re an amateur radio operator, and want to use the Raspberry Pi (models 2B, 3B, and 3B+) to power your PTTLink node, RasLink will let you do just that.

1. Notes For Node Owners

To use RasLink, you need to have a server configured at PTTLink.
If you are an existing RasLink user, your AllStarLink node numbers will work. You can request that your AllStarLink node numbers be made active on the PTTLink network by following the instructions on the PTTLink Wiki.
For the moment, there is no interconnectivity to the AllStarLink network. It’s being worked on.
RasLink will self-expand to fit your micro SD card on the first boot.
New node owners may need to run system-update before bringing their node online. Please read the information displayed when you log in. Information about how this works is found in the “Updating RasLink” section.

2. Overview

Here’s a video made by Skyler [W0SKY] showing how RasLink works.

Note: A lot of the commands shown in this video have changed. See /etc/asterisk/rpt.conf for more information.

3. Enhancements

RasLink is a moving target. For the latest enhancements, please see The RasLink ChangeLog.

4. What’s Included In RasLink?

RasLink includes:

  • Dahdi
  • Libpri
  • Asterisk (with notch filter and mdc1200 support)
  • System-update
  • Wifi-setup
  • Raspi-config
  • Uricheck
  • End
  • Nodenames
  • Fail2Ban

5. Requirements

To use RasLink, you will need a Raspberry Pi 2B, 3B, or 3B+, 8GB or larger class 6, 8, or 10 micro SD card, and a USB interface.
A really nice starter kit for the Rpi3B+ can be found on Amazon. The URI (USB Radio Interface) can be found at DMK Engineering. If you cannot, or do not want to build your own cables, they can be purchased from uricables.com.

6. Downloading RasLink

You can download RasLink as either a Compressed Disk Image

1842 Downloads

or a Torrent. (Usually faster than a web browser)

267 Downloads

7. Extracting RasLink

You cannot flash RasLink in its compressed form.
You must extract it.

Windows users should use 7-Zip.

Linux users should use Xz or Archive Manager.

Mac users should use The Unarchiver.

After extracting the .xz file, you will have a file ending in .img. The .img file is the one you want to flash to your SD card.

8. Flashing RasLink

To flash RasLink to your SD card, you can either use WinFlashTool for Windows, or Dd for Linux and macOS.

Note: Dd will not ask if it is ok to write to the device, so make sure that the device you choose is the one you want to write to.

9. Booting RasLink

After inserting your SD card into the pi, plug in the power. In thirty seconds or so, your pi will be booted. Ssh into the pi. The user name is root, and the password is raspberry. The ssh port is 22.
After logging into the pi, CHANGE YOUR PASSWORD!
To change your password, type:
passwd
You will be asked for your new password twice.
Next, run raspi-config.
In the raspi-config menu, choose item 2→1 to set your Pi’s hostname.
Next, choose item 4 to set your locale and region settings.
After that, choose “Finish”.
You will be asked if you want to reboot. Choose “Yes”.
If you want to change the ssh port on your pi for better security, edit /etc/ssh/sshd_config.
You can do this by typing:
nano /etc/ssh/sshd_config
The file is very well commented, so you shouldn’t have any trouble.
To save the changes, type:
CTRL+x, y, enter key
To make the new port active, type:
service ssh restart
You will need to log out then back in to make further changes.

10. Port Forwarding

You need to forward the following ports to your RasLink server, if not using it mobile.

  • PTTLink: 4569 UDP
  • EchoLink (if you use it): 5198-5199 UDP
    5200 TCP
  • Your TCP ssh port (if you want to control your server from outside your network)

11. Connecting To PTTLink

To connect to the PTTLink network, edit the following files:

  • /etc/asterisk/rpt.conf
  • /etc/asterisk/iax.conf
  • /etc/asterisk/usbradio.conf
  • /etc/asterisk/extensions.conf

If you want to use EchoLink, edit /etc/asterisk/echolink.conf. If you don’t want to use EchoLink, you don’t need to do anything. EchoLink is disabled by default.
The files are very well commented, so you shouldn’t have any trouble.
Note: In iax.conf, 1999 is your PTTLink node number, and 123456 is your node password. Do not forget to remove the ; (semicolon) from the front of the registration line.
You can find your node password under your profile in the
PTTLink portal.
After setting up the files, reboot to activate the changes:
reboot

12. Updating RasLink

To update RasLink, type:
system-update
System-update will update RasLink to the latest software.
If a new release is found (e.g. from Jessie to stretch), you will be asked if you wish to upgrade to the new release.
For both a normal system update, as well as a release upgrade, all the nodes on your RasLink server will be disabled until the update completes.
System-update will reboot your server a few times. Twice for a normal update, and three times for a release upgrade.
After your server reboots, you need to log in to finish the update.
After you log in, the update will automatically complete.
You will not lose any of your configuration files.
You can check the version of the software you are running, as well as get notified about available updates at anytime by typing:
version
Version will be run once automatically after each log in.

13. Using Fail2Ban

Fail2Ban is used to block brute force attackers from gaining access to RasLink.
You have 6 (six) attempts to send the correct login information to RasLink over ssh.
If you don’t send the correct login information within 6 (six) attempts, you will be banned for 2 (two) hours.
After 2 (two) hours, if repeated failed login attempts continue from the same IP address, the IP address will be banned for up to 1 (one) week.
To regain access to RasLink if you get banned, you should Fill In The Contact Us form.
When filling in the form, you should request to have your IP address unbanned.
The default RasLink rules for Fail2Ban are loaded from /etc/fail2ban/jail.d/00raslink.local. Do Not Edit This File.
If you would like to create custom jails (for example: apache2 for allmon), you should edit /etc/fail2ban/jail.local.
To find out what jails are loaded, run:
fail2ban-client status
You can learn more about Fail2Ban at The Fail2Ban Wiki.

14. Using uricheck

Uricheck is used to insure that your USB Radio Interface (URI) is working properly
Uricheck can be run by typing:
uricheck
You need to build a loop back circuit to use Uricheck.
You cannot have your radio connected while running the tests.
the pin out can be found at the DMK Engineering Website.

15. Setting Up Wi-Fi

If you want to use wifi with your pi, do the following.

15.1. Raspberry Pi 2B

Plug in your USB wifi module.
Then, log in using ssh.
Next, type:
wifi-setup

15.2. Raspberry Pi 3B and 3B+

Log in using ssh.
Next, type:
wifi-setup

Wifi-setup will ask which Wi-Fi card you want to use. If you do not enter a card name such as wlan1, wlan0 will be assumed.
After choosing your Wi-Fi card, Wifi-setup will scan for networks.
When the first scan finishes, you will be asked if you want to scan again.
This is useful if the name of the network that you want to connect to isn’t listed in the results of the first scan.
After scanning completes, you will be asked to type the name of the network you want to connect to, as well as the password for that network.
Wifi-setup will setup the connection, and connect you to the network.
After a connection is established, your IP address information will be displayed.
Note: You cannot remove a network with Wifi-setup.
To remove a network, edit /etc/wpa_supplicant/ wpa_supplicant.conf.
The block of code for each network starts with:
network=
and ends with:
} (right brace).

16. Using End

End can be used in two ways.
If you type only the node to control,
End assumes that you want to drop all connected nodes from that node.
The node to control must be on your RasLink server.
example:
end 12345
If you type the node to control plus another node number,
End will drop that node.
example:
end 12345 67890

17. Using Nodenames

Nodenames are short messages that play whenever a node connects or disconnects. Instead of hearing “Node XXXX”, you will hear a custom message if one is available.

Nodenames accepts the following options:

  • [on] enable nodenames
  • [off] disable nodenames
  • [status] show status of nodenames
  • [help] show this help message

Example usage:
nodenames status

Nodenames are synced once an hour from the
Nodenames Repository.

If you would like your Nodename added to the repository, please fill in the Contact Form.
In the subject field, please include your node number.
Example:
Node 12345
Your Nodename should be in the following format:

  • Length: 15 seconds or less
  • Number of channels: 1
  • Sample rate: 8000
  • Bit rate: 16
  • Header: RAW (header-less)
  • Encoding: U-law
  • Name: Your AllStar Node Number
  • Extension: .ulaw

A good audio editor to create Nodenames with is Audacity. If you have trouble getting your Nodename in the correct format, please upload a high quality mp3 or wav file, and it will be converted for you. All Nodenames will be reviewed before being added to the repository. Once your Nodename has been added, you will receive an email from JL Applied Technologies.

18. Documentation

For more documentation on PTTLink and all the many things you can do with it, go to The PTTLink Wiki.
If you have any questions, ask in the RasLink group.
Enjoy RasLink on your Raspberry Pi!

RasLink: A Distribution For The PTTLink Network by JL Applied Technologies is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.