QRX is a passive safety net under APRS messaging. It monitors the APRS-IS stream for messages addressed to registered stations. When a message goes unacknowledged — the recipient's radio is off, out of range, or on another band — QRX stores it. When the recipient next beacons, QRX notifies them and delivers the held traffic on request. Voicemail, for packet radio.
QRX requires no hardware, software, or configuration at the user's station. Any APRS-capable radio or client that can send a message can use every feature. QRX never acknowledges on a station's behalf and never retransmits a message except by the operator's explicit command.
QRX.REG.Catch. QRX observes the message and watches for the recipient's ACK. If none arrives within the wait window (default 300 s, per-user settable), the message is stored and the sender is told: QRX: msg to N0JLF stored. Will deliver on beacon.
Notify. The recipient's next position beacon — from any SSID that isn't a digi, igate, or weather station — triggers a notification with the count of waiting messages.
Deliver. Messages replay newest-first under the operator's control: read with R, or RLY re-injects them to the radio as if the sender had just transmitted.
A complete exchange as displayed on the radio (protocol framing removed by the transceiver):
RLY re-transmits a held message to your radio as if the original sender had just sent it. The message does not arrive as text from QRX — it arrives as ordinary APRS traffic from the sender's own callsign, so it lands in your radio's message store with the correct sender, and you can reply to it directly from the rig like any other message.
RLY ALL replays the entire inbox this way, oldest first, paced so the channel is not flooded — one command empties the mailbox into your rig, each message deleted as the radio acknowledges it. Relayed packets carry QRX's audit trail on APRS-IS (the same qAO mechanism used by SMSGTE and EMAIL-2), and two layers of loop prevention keep re-injected traffic from being re-stored.
| Command | Function |
|---|---|
| REG / UNREG | Register central inbox for your base callsign / unregister and delete all data |
| I | Inbox summary; resets to newest message |
| R / N | Read message at cursor / force-advance to next |
| D / CLR | Delete last-read message / clear entire inbox |
| RLY [ALL] | Replay last-read (or all) messages to your radio as the original sender — see §3.2 |
| W | Waiting messages grouped by sender |
| A | Send read receipt to sender of last-read message |
| S / STATS | Your registration status / system-wide statistics |
| NOTIFY ON|OFF, QUIET n | Beacon alerts on/off; suppress for n minutes |
| IGNORE call | Refuse storage of messages from a callsign (UNIGNORE to reverse) |
| SET IDENT ssid type | Label an SSID: HT MOBILE BASE DIGI IGATE WX UNMANNED … (unmanned types skip notifications) |
| WHICH call | Best SSID to reach a station, scored from QRX + aprs.fi activity |
| SPLIT n / UNSPLIT n | Give SSID -n its own inbox / merge it back |
| HELP [cmd] | Command list, or help for one command |
For APRS client software (introduced in v1.4.0). Pipe-delimited responses, one packet each, no prose to parse. Full specification: machine-sync-protocol.
| Command | Response | Function |
|---|---|---|
| QS | QS|3|2 | Poll: message count, sender count |
| QF | QF|1/3|KE0SMR-5|0428T1307|… | Fetch message at cursor (idempotent) |
| QD | QD|OK|2 | Confirm + delete fetched message |
| QW | QW|2|W4XYZ:2|KE0SMR-5:1 | Per-sender counts |
| Rev. | Date | Changes |
|---|---|---|
| 1.4.0 | 2026-07-13 | Machine sync protocol (QS/QF/QD/QW); bare R reads new messages without I; inbox capacity 20 → 100; per-user ACK-wait timeout |
| 1.3.x | 2026-04/05 | IDENT station types; WHICH routing advisor; unmanned-station detection; automatic bot protection |
| 1.2.x | 2026-04 | R/N cursor split; mangled-packet repair; Kenwood auto-ack; relay (RLY); IGNORE; packet sanitization |
| 1.1.x | 2026-03 | Central inbox; WHO; read receipts; reliable delivery with retransmit |
| 1.0.0 | 2026-03-29 | First packet caught |
Bug reports: send BUG <details> to QRX (attaches a one-hour packet trace), or write qrx@forkum.net.