[D66] GeoTalk ๐ก : Pseudo-HAM Radio & Text Messaging โ Geo-grouped by Postal Code
Renรฉ Oudeweg
roudeweg at gmail.com
Sat Mar 7 20:54:43 CET 2026
[Voila: een kersverse pseudo-HAM CLI tool dat elke postcode of postcode
regio in een tekst- en audiokanaal tovert. Heeft Henk van Lingen
interesse om een de relay server op tuxtown.net te installeren? Dan
kunnen we texten en broadcasten over het internet zonder dure HAM
radio's en de nodige licenties voor zendamateurs. :-) Dat is weer eens
wat anders dan knipselkrantjes maken...
PS: Enige Linux hack ervaring is een must.
Nog geen GUI. Niet getest met Windows of MacOS. Dus ik neem aan dat
weinigen op deze lijst hiermee overweg kunnen. Maar goed, probeer het
eens zou ik zeggen.
retour,
Renรฉ Oudeweg
]
--
https://github.com/juggao/geotalk
GeoTalk ๐ก
Pseudo-HAM Radio & Text Messaging โ Geo-grouped by Postal Code
GeoTalk is a Linux CLI tool that turns any postal code into a radio
channel. Users in the same postal zone share a UDP group; voice (PTT)
and text messages are broadcast to everyone on that channel โ like a
local walkie-talkie net. Works on a LAN via IP multicast, or across the
internet via a relay server.
Version 1.3.1
## Features
| | Feature | Details |
|---|---|---|
| ๐ฎ | Exact postal channels | Any EU/UK postal code is a channel โ
`#59601`, `#
1234AB`, `#SW1A` |
| ๐ | Wildcard channels | `#59**` = Venlo region ยท `#750**` = Paris ยท
`#1***??`
= Amsterdam |
| ๐งฉ | Regex channels | `/^[0-9]{4}[A-Z]{2}$/` โ full Python regex
between `//`
|
| ๐บ๏ธ | Region database | 120+ EU postal prefixes resolved to
human-readable regio
n names |
| ๐ฌ | Text messaging | Instant broadcast to all channel members |
| ๐๏ธ | Push-to-Talk (PTT) | Real mic audio over UDP (16 kHz PCM) |
| ๐ป | Multi-channel RX | Subscribe to many channels at once; all arrive
in one
terminal |
| ๐ | Channel scan | `/scan 59**` โ probe a region for live users,
results stre
am in real time |
| ๐ | Relay mode | `--relay HOST` for internet use โ no multicast
routing neede
d |
| ๐ | Auto-reconnect | Client reconnects to relay with exponential
back-off |
| ๐ | LAN mode | Pure peer-to-peer UDP multicast, zero infrastructure
required
|
--
JOINING A CHANNEL
You join a channel by typing its postal code prefixed with #:
#5912 join the exact channel for postcode 5912
#5944AV join the exact channel for postcode 5944AV
Anyone else on the same LAN (or connected to the same relay) who has
joined #5912 will see your messages and hear your voice.
WILDCARD CHANNELS
You can also join a region rather than a single postcode:
#591* joins the Venlo Centrum region (5910โ5919, 591Aโ591Z)
#59** joins the entire Venlo regio (5900โ5999 and more)
#750** joins all Paris postcodes
The * matches exactly one character. The ** matches one or more. So
#591* covers 5910, 5911, 5912 ... 591Z as a single subscription.
A CONCRETE EXAMPLE
Suppose three people are running GeoTalk:
BOB joined #5912
ALICE joined #5913
CHARLIE joined #591*
BOB and ALICE are on different exact channels โ they cannot hear each
other directly. But CHARLIE, on the wildcard #591*, is subscribed to a
channel whose pattern covers both 5912 and 5913. BOB sends a message on
#5912 โ CHARLIE receives it. ALICE sends a message on #5913 โ CHARLIE
receives it too.
SCANNING FOR ACTIVE USERS
If CHARLIE wants to discover who is active in the Venlo area before
joining, he can run a scan:
/scan 591*
GeoTalk expands 591* into all 36 concrete codes (5910โ5919, 591Aโ591Z)
and sends a probe to each multicast group. BOB's client receives the
probe on #5912 and replies automatically. ALICE's client receives it on
#5913 and replies. Within a few seconds CHARLIE sees:
โบ #5912 BOB NL ยท Venlo Centrum
โบ #5913 ALICE NL ยท Venlo Centrum
He can then join either channel directly, or join #591* to receive from
both simultaneously.
A broader scan works the same way:
/scan 59** โ probes all 5900โ5999 (100 channels) plus
alphanumeric variants
/scan 750** โ probes all Paris postal codes
PUSH-TO-TALK
Voice works like a walkie-talkie. Press Ctrl+T to toggle the mic on,
speak, press Ctrl+T again to release. Everyone on the channel hears you
in real time. Press Ctrl+Y to mute incoming audio if you only want to type.
RELAY MODE (internet use)
For use across the internet, one person runs the relay server:
python3 geotalk-relay.py --port 5073
Everyone else connects to it:
python3 geotalk.py --nick PA3XYZ --relay relay.example.com
The relay routes all traffic โ text, voice, and scans โ between
connected clients. It requires only a single UDP port (5073) open on the
server.
Let me know if you have any questions.
Best regards,
Renรฉ Oudeweg
More information about the D66
mailing list