Callsign routing in D-Star

The following post summarizes the adventures of Matt (M0KJI) and Pablo (me, M0PQA): two middle aged men, less than 2 miles away from each other, trying to talk on their 7100s. 

One of the features of D-Star that I enjoy the most is callsign routing. I enjoy what it does as much as how it does it. Using the IRC protocol for implementing call routing in the core of D-Star is an exercise of pure ingenuity that I truly appreciate.

The ircDBB network. Diagram from here

Callsign routing has been around in D-Star since forever. Even the now yellowish user manual of my 7100 shows how to do it. However, with the proliferation of hotpots, the backbone of callsign routing for D-Star decided to service only proper repeaters, and leave hotspots without access to their network.

This decision triggered rapid changes in the default configuration of Pi-Star, the software that you are running in your hotspot, to make use of a different network, named Quadnet - is now listed as the routing server in Pi-Star

On paper, no changes are required. Experimentation, however, proved paper wrong again. Quadnet apparently requires a few extra steps for callsign routing to work properly, mostly opening ports in your router, and forwarding traffic to your hotspot.

Check with your ISP
The average internet speed in the UK is a joke, so when I moved into this apartment, I went with Hyperoptic (fiber) as my ISP. Little I knew that Hyperoptic does only have a tiny number of IP v4 addresses, and that they use Carrier Grade NAT to work this around. In short: none of this will work unless you pay them £5/month extra for them to assign you a static IP. Tough life.

Check with your ISP if port forwarding will work for you before you go nuts and end up texting your friend the world-class sysadmin to launch an nmap port scan against you.

Opening your ports
Note that most modern routers implement a feature called uPnP that can potentially make this step unnecessary. However, our tests didn't work without explicitly opening the ports as described below.

Now that you know that you can open your ports and that port forwarding will work for you, you can proceed. These are the ports that need to be open for all D-Star features to work, based purely on experimentation. Protocol is UDP, and traffic must be forwarded to the same port of the IP address of your Raspberry Pi:
  • 14580
  • 20001-20009
  • 30001
  • 30050-30065
  • 40000
  • 42000-42001
  • 42010
Example of a router showing port 40000 forwarding

Routing is painful
Look, I have a Master's in Computer Science, but networking is not my jam. Probably because our visionary full professor thought that TCP/IP was just a cute transient trend, and that X.25 was the future. Bless you, mate.

Anyway, after opening and forwarding the ports, make sure that there's no any other piece of networking hardware that will block this traffic inside your own home network. If your network installation has a modem and a router plugged to it, you need to verify that ports are open in both systems. 

Reboot everything
Networking devices for home use are well known for requiring rebooting them for the new configuration to be applied. Unplug everything from the mains and plug them again. Verify that the configuration is correct after the reboot.

Try a Reflector
Once all this is done, try a reflector. If you can work your buddy in a reflector, continue. If not, check your hotspot configuration. This should work regardless of any changes introduced, and it's a sanity check step.

Try a Smart Group
This is a concept that I wasn't familiar with. For the user, it's kind of a reflector, despite their technical implementation differs. Try subscribing (= linking) to TORC1 by typing "TORC1" in the UR field of your D-Star radio and keying up. If you can hear traffic, you are nearly done. Unsubscribe (= unlink) yourself from the group by setting the UR field to "TORC1  T" (note the 2 spaces) and keying up again.

Finally, type your buddy's callsign in the UR field. All in all, your Callsign screen should read something like this:

UR: Your buddy's callsign
R1: M0PQA B Hotspot
R2: M0PQA G Hotspot
MY: M0PQA /7100

Key up your radio, and it should work. If it doesn't, check the setup of your router again, and verify that all ports are forwarded correctly.

If you made it work, please let me know! Use this feature to route your call directly to me. If I'm around, I'll reply to you.



Popular posts from this blog

Making APRS work on the AnyTone AT-D878UV

Setting up APRS on the Raspberri Pi

Packet Radio on a Raspberry Pi the cheap way!