[D66] GeoTalk ๐ก : Pseudo-HAM Radio & Text Messaging โ Geo-grouped by Postal Code
Renรฉ Oudeweg
roudeweg at gmail.com
Sat Mar 7 22:44:10 CET 2026
reinold at NUC1:~/Projects/geotalk$ ./charlie.sh
โโโโโโโ โโโโโโโโ โโโโโโโ โโโโโโโโโ โโโโโโ โโโ โโโ โโโ
โโโโโโโโ โโโโโโโโ โโโโโโโโโ โโโโโโโโโ โโโโโโโโ โโโ โโโ โโโโ
โโโ โโโโ โโโโโโ โโโ โโโ โโโ โโโโโโโโ โโโ โโโโโโโ
โโโ โโโ โโโโโโ โโโ โโโ โโโ โโโโโโโโ โโโ โโโโโโโ
โโโโโโโโโ โโโโโโโโ โโโโโโโโโ โโโ โโโ โโโ โโโโโโโโ โโโ โโโ
โโโโโโโ โโโโโโโโ โโโโโโโ โโโ โโโ โโโ โโโโโโโโ โโโ โโโ
๐ก Geo-grouped pseudo-HAM radio & text โข v1.3.1
Type /help for commands โข #59** Venlo โข #1***?? Amsterdam
Relay connected โ 127.0.0.1:5073
Mode: relay unicast UDP (multicast disabled)
Joined #5944 โ relay=127.0.0.1:5073
Region: NL ยท Venlo regio
22:41 โ BOB online (NL ยท Venlo regio) #5944
22:41 โ ALICE online (NL ยท Venlo regio) #5944
22:42 โ BOB online (NL ยท Venlo regio) #5944
22:42 โ ALICE online (NL ยท Venlo regio) #5944
CHARLIE@#5944>
On 3/7/26 20:54, Renรฉ Oudeweg wrote:
> [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