app_rpt__ultra was designed to be the ultimate controller experience for Asterisk and AllStarLink! Built on the history and capabilities of standalone repeater controllers from the 1980s-2000s, this platform combines the art and technology of today with yesteryear. Some of the features included were takeaways and inspirations from controllers similar to Advanced Computer Controls, Link Communications, Computer Automation Technology and FF Systems.
All of the frameworks were written in Bash (Bourne again shell) using scripts that are called by app_rpt. The intent was to modify as little as possible so frameworks were relatively immutable and could survive any code updates to Asterisk and app_rpt. Most scripts are called either from within Asterisk (through invocation in rpt.conf) or from local cron jobs.
- Management of repeater states or personalities;
- Rotating identifier and tail messages;
- An advanced message editor with the ability to program messages, courtesy tones and telemetry via DTMF;
- A vocabulary of 877 high-fidelity TMS5220 words and sound effects with dozens of pre-defined phrases;
- Weather alerting system, powered by NOAA NWS alerts;
- Reporting weather conditions, powered by Weather Underground;
- Space weather monitoring with NOAA SWPC integration (geomagnetic storms, radio blackouts, solar radiation);
- Intelligent kerchunk detection with passive monitoring (statistics) and active deterrence (polite reminders);
- Comprehensive statistics logging for transmission pattern analysis;
- Full integration with Asterisk and AllStarLink
app_rptwithout any code modification!
Warning
Only AllStarLink 3 is supported; functionality for previous versions of app_rpt and interoperability with HamVoIP have been removed.
Note
Debian 12 (bookworm) and Debian 13 (trixie) have been tested, along with Asterisk 20 and 22.
The installer script handles all setup automatically, including:
- Installing dependencies (
jq) - Creating directories and copying files
- Configuring the
asteriskuser account - Setting up sound file symlinks
- Generating a temporary voice ID from your callsign
- Installing the crontab for automated operations
- Configuring your node number, callsign, and optional weather services
mkdir -p /usr/src
cd /usr/src
git clone https://github.com/AI3I/app_rpt__ultra.git
cd app_rpt__ultra
sudo ./install.shThe installer will prompt you for:
- Node Number (required) - Your AllStarLink node number
- Callsign (required) - Your amateur radio callsign
- NWS Zone (optional) - For weather alerting via NOAA NWS
- Weather Underground API Key (optional) - For weather condition reporting
- Weather Underground Station ID (optional) - Local weather station
Note
Weather condition reporting requires a free account and API key from Weather Underground. The system will work without it, but weather telemetry features will be unavailable.
For automated deployments, use the -y flag with environment variables:
export NODE_NUMBER=1999
export CALLSIGN=MYC4LL
export NWS_ZONE=PAC001
export WU_API_KEY=your_api_key
export WU_STATION=KPAPITTS123
sudo -E ./install.sh -yAfter installation completes:
- Review
/etc/asterisk/rpt.confand verify duplex and rxchannel settings match your configuration (usbradio.conforsimpleusb.conf) - The idrecording=voice_id parameter should remain unchanged; it is managed by
idkeeper.sh - Restart Asterisk:
sudo systemctl restart asterisk
This project includes comprehensive documentation organized by topic. Choose the guide that matches your needs:
Technical deep-dive into how app_rpt__ultra works under the hood
Learn about:
- Directory structure and why it's organized this way
- User account configuration (
asteriskuser,dialoutgroup, SSH) - Cron job integration with complete listing
- Systemd services (
kerchunkddaemon) - Asterisk integration (CLI commands, message slots, audio flow)
- Sound file management (symlinks, TMS5220 concatenation)
- Configuration management (
config.inicascade) - Upgrade process internals (technical breakdown)
- Distributed architecture (hub/child, rsync, auto-upgrade)
Best for: Understanding what install.sh does, troubleshooting issues, customizing the installation, deploying multi-site architectures
Upgrading, repairing, and uninstalling your installation
Learn about:
- Upgrading your installation with
upgrade.sh - Hub-spoke upgrade workflows (automatic child node updates)
- System health checks and repair with
repair.sh - Uninstalling cleanly with
uninstall.sh - Backup management and version control
Best for: Keeping your system up-to-date, fixing configuration drift, managing distributed deployments
Daily usage, real-world scenarios, and customization recipes
Learn about:
- Common DTMF commands quick reference
- Daily operation scenarios (morning routine, net prep, weather alerts, tactical ops)
- Utility scripts (
sayip.sh,speaktext.sh,gpio.sh,wireless.sh) - Integration scenarios with code examples
- Customization recipes (custom tones, messages, GPIO buttons)
- Quick troubleshooting guide
Best for: Day-to-day operation, learning DTMF commands, implementing custom features, solving common problems
Complete technical reference for all 24 scripts
Learn about:
- Operation scripts:
statekeeper.sh,idkeeper.sh,tailkeeper.sh,weatheralert.sh,weatherkeeper.sh,configkeeper.sh,kerchunkd.sh - Maintenance scripts:
datadumper.sh,datekeeper.sh,timekeeper.sh - Message management:
msgreader.sh,msgwriter.sh - Courtesy tone management:
ctwriter.sh,ctkeeper.sh - Invocation methods (cron vs systemd vs manual)
- Configuration parameters for each script
- Examples and use cases
Best for: Understanding what each script does, configuring advanced features, debugging script behavior
Complete reference for vocabulary, message slots, and CW characters
Includes:
- CW Characters table: DTMF keypad mapping for Morse code
- Word Vocabulary: All 877 TMS5220 words with phonetic spelling
- Message Banks: Complete slot-to-file mapping (slots 00-99)
Best for: Programming custom messages, understanding available vocabulary, planning message slot assignments
-
Release history & changes? See Changelog
-
First time user? Start with Installation above, then read Practical Operations
-
Setting up multiple sites? Read System Architecture → Distributed Architecture section
-
Need to program a message? Check Message Tables for vocabulary, then Script Reference for
msgwriter.sh -
Troubleshooting? See Practical Operations → Quick Troubleshooting
-
Upgrading? See System Maintenance