docs › How it works › Cross-frequency chat
weechat-radio:$ Cross-frequency chat
A station talks on one dial at a time. Same-frequency chat is radio. Different-frequency chat uses a gateway and the hub. The program never changes your radio frequency by itself.
Same dial or different dials
A radio hears only the dial it is set to. Pick a case to watch where your message can go.
Same frequency
Both stations set the same calling spot (for example UK 2m 144.950). No internet is required. Nearby stations hear you on the air. Others on that frequency can store-and-forward the message (TTL / hops left, default 3).
Direct radio. Tell the app your dial with /radio freq 144.950 if you have no CAT.
Different frequencies
2m cannot hear 40m. There is no radio path between two different dials, however strong the signals are.
Changing band is your decision, not the program’s. If you both want RF only, agree on one dial.
Through two gateways and the hub
A station in internet-radio mode is a gateway: it has a radio on one dial and a hub link. The hub copies the message from the gateway that heard it to the gateway that has recently heard the destination — or that is the destination.
The map ticker shows this as 2m → 40m. Both gateways keep their own dial: nobody QSYs for you.
- radio (RF only)
- internet-radio (gateway)
- hub / internet
- radio-plus
- on the air
- over the internet (TLS)
- no path
Radio-plus (you stay offline)
radio and radio-plus both post map telemetry when [telemetry] url is set, and that post never contains message text. Neither mode sends chat to the hub or the LAN from this computer. The only difference is whether an internet-radio gateway that hears you may forward your messages (and email) to the internet.
radio-plus never uploads chat from this computer. A nearby gateway that hears you on RF forwards that frame to the hub for any destination, including a direct message, a closed group, and #bulletin. radio mode says do not forward, so the same gateway keeps those frames on the radio. Your line shows [gw] when the gateway has accepted the frame onto the hub. [rl] only means you heard your own frame on RF again. The hub holds an offline station's direct messages for 10 minutes (32 per callsign) and delivers them on the next hello. It does not hold groups or #bulletin.
What a gateway will and will not put on the air
Traffic arriving from the internet has to pass both gates before this node transmits. If either gate fails, the frame is delivered on the internet side only and nothing is keyed up.
Heard means on RF on this frequency, not a map pin or a LAN/hub sighting. A group flag alone does not key the radio; at least one listed member must have been heard here in the last ten minutes. #bulletin keys only if someone was heard on this dial over RF.
~ need third_party = "allow" as well.- RF → internet: the frame has to say it may go to the internet.
radiosays do not forward, so a gateway leaves it on the radio.radio-plusmay be forwarded. This computer does not upload chat in either mode. - Internet → RF:
[gateway] rf_egress = trueinwcr.toml. Guest names starting with~stay off RF unlessthird_party = "allow". - Same LAN: nodes on your local network can pass frames without the public hub. The same gateway rules still apply.
[gateway] rf_egress = true # put internet traffic on the air third_party = "deny" # guest (~nick) traffic on RF
Public bulletin and private groups
Cross-frequency chat works on the public #bulletin channel and on private groups. Both use an internet-radio gateway on each dial and the hub between them.
In internet-radio, a #bulletin line always goes to the hub and the LAN. The audience is everyone, so the program offers that path without waiting to see who is on this dial.
- A private group goes on the air when a listed member was heard on that dial over RF in the last 10 minutes.
#bulletingoes on the air when anyone was heard on that dial over RF in the last 10 minutes. A gateway that has heard nobody stays quiet.
Same-frequency hops still need no hub. A station in radio mode keeps its #bulletin on the radio. The frame says do not forward, so a gateway that hears it leaves it there. A radio-plus #bulletin may be forwarded. That is the only chat difference between the two modes.
Hub routing today: the hub keeps a serves set per connected station. Your own callsign is always included. RF stations heard on your dial are added from the periodic {"heard":[...],"freq_khz":…} JSON your node sends after hub_ok (the WebSocket hello starts with an empty heard list). Private 1:1 and closed-group frames are delivered only to sessions whose serves contains the destination callsign. Internet-only stations with nobody heard on RF therefore rely on the public #bulletin path until a member appears in heard or you are the destination.
You set the dial
FREQ in the GUI and /radio qsy are operator actions. The hub never retunes a radio. Pick spots from calling frequencies and check your band plan before you transmit.
How stations learn the band
Beacons are B|<mode>|<khz>, for example B|internet-radio|144950. A frame heard on RF is tagged with the receiving station’s own dial. Hub sessions carry freq_khz. The live map has a BANDS panel; nicklists show [2m], [40m], [inet].
| Path | Same frequency? | Who bridges |
|---|---|---|
| Two radios, same calling spot | yes | nobody (RF hops if needed) |
| 2m station ↔ 40m station | no | two internet-radio gateways + hub |
| RF station ↔ internet-only | — | one gateway on the RF station’s band |
radio | RF chat from this computer | nobody. A gateway must leave it on the radio. Map data can still post. |
radio-plus | RF chat from this computer | an internet-radio gateway that hears you. This computer still does not open the hub. |
Mixed PMR, CB, 2m, and internet
Worked example for a closed group with licence-free handhelds, 2m, and an internet-only member: One group across PMR, CB, 2m, and internet — settings per station, topology, and a replayable thread demo.
How you know it worked
Nicklist tags match the bands: [2m] G4ABC, [40m] M7TJF, [inet] ~ALICE. The map ticker reads like G4ABC 2m TX -> #net -> 40m, inet. Your status bar shows your own frequency and band.
Modes: modes. Suggested dials: calling frequencies. A same-dial relay when the group is spread out: hops. Same text offline: wcr help bridging.