Sprint 4: APRS-Native Discovery
The registry's unique differentiator is here: **radio-only users can now query the service registry by messaging RGSTRY directly over APRS** — no internet connection required on the querying station.
How It Works
Any ham can send a message to RGSTRY (the registry's callsign) over APRS-IS
or RF, and receive responses back as standard APRS messages. All replies fit
within the 67-character APRS message limit.
Supported Commands
| You Send | RGSTRY Replies |
|----------|----------------|
| ? or help | Service count + available commands + web URL |
| list | Paginated comma-separated callsigns (up to 5 pages) |
| list 2 | Just page 2 |
| list weather | Only services in the "weather" category |
| find <keyword> | Matching callsigns (searches callsign, description, software) |
| info REPEAT | Description, owner, and status for a service |
| cmds REPEAT | Command catalog registered by that service |
Design Constraints
- 67-char limit: Every response fits in a single APRS message frame
- Rate limiting: 1 query per 60 seconds per calling station (prevents flooding)
- Pagination:
listauto-splits across multiple messages, capped at 5 pages — beyond that, usefind <keyword> - Only responds when addressed: No auto-blast; only replies to messages directed at the registry callsign
- SSID-agnostic: Addressing
RGSTRYorRGSTRY-10both work
Example Exchange
WB4BOR > RGSTRY: help
RGSTRY > WB4BOR: RGSTRY:29 svcs.Cmds:list,find,info,cmds.Web:services.aprslive.com
WB4BOR > RGSTRY: find weather
RGSTRY > WB4BOR: Found:WXBOT,WXNOW,WXYO
WB4BOR > RGSTRY: info WXBOT
RGSTRY > WB4BOR: WXBOT: Weather bot Owner:WB4BOR Status:activeTechnical Details
The implementation hooks into the existing _global_rx_callback in the
persistent APRS-IS consumer thread. When a message addressed to the registry
callsign arrives, it's dispatched to the new command_responder module which
parses the command, queries the database, and sends paginated MessagePacket
replies back through the existing APRSD send infrastructure.
No new dependencies — Sprint 4 builds entirely on the existing APRSD client and database layer from Sprints 1–3.