Table of Contents
Explorations
Digging Deeper into Allstar
I've seen a few examples of small networks and am interested in building up a mixed protocol system too.
Some examples that interested me:
- Milnet http://milnet.io/ with Allstar connected nodes and a DMR bridge
- Allstar node status http://stats.allstarlink.org/nodeinfo.cgi?node=424611
- W2YMM https://w2ymm.home.blog/allstar-howto/ with a group of connected gateways, repeaters and a bridge to DMR etc.
- This one was discovered by accident on Allstar's Portal I mistyped my own original base node ID (pre-NNX) 48148 as 48418 and found his system with lots of information on his blog
Adding more nodes
It's possible to have up to 10 individual Node IDs with a single Allstar node number, by using NNX to add a 6th digit to the base node number…
My Base Number is 48148
and I activated the NNX
feature and created 3 nodes
481480
481481
481482
Since they are all behind a NAT firewall, sharing one public IP address the nodes must use different UDP ports. To make this possible I created 2 new Server
instances on the Allstar Portal, one per node, and chose the UDP ports :
https://www.allstarlink.org/portal/servers.php
node481480
⇒UDP 4569
node481481
⇒UDP 4570
node481482
⇒UDP 4571
The choice of which server is used per node is chosen on the Node configuration page for each node, on the Allstar Portal
https://www.allstarlink.org/portal/nodes.php
Then I flashed new SD cards for the new nodes using the ASL 2.0.0 Beta 6 image I've used for the initial VHF Gateway node.
The config. for the original node had to be changed, to reflect the new node number 481480
versus 48148
which means editing (at least)
/etc/asterisk/rpt.conf
/etc/asterisk/iax.conf
/etc/asterisk.extensions.conf
To ensure each internal LAN node can find each other (can't rely on Allstar's DNS) it's necessary to add each one to the [nodes]
stanza in each node's config file /etc/asterisk/rpt.conf
using the appropriate IP and UDP port depending on which node is being configured.
; from the VHF Gateway node 481480 [nodes] 481480 = radio@127.0.0.1:4569/481480,NONE 481481 = radio@192.168.21.241:4570/481481,NONE 481482 = radio@192.168.21.242:4571/481482,NONE
I added the DVSwitch bridging to the hub node 481481
which is configured as radioless, I made a local/private node on that machine 1399
for this purpose.
All 3 nodes have supermon
and this needed some configuration to make sure the Asterisk Manager ports were available on their external interfaces bindaddr = 0.0.0.0
and not just on the loopback bindaddr = 127.0.0.1
/etc/asterisk/manager.conf
⇒
; ; Asterisk Call Management support ; ; By default asterisk will listen on localhost only. [general] enabled = yes port = 5038 bindaddr = 0.0.0.0 [admin] secret = YOUR_MANAGER_PASSWORD read = all,system,call,log,verbose,command,agent,user,config write = all,system,call,log,verbose,command,agent,user,config
Port Forwarding
My ADSL router has the following port forwards to allow external incoming connections to be set up
UDP 4569
⇒192.168.21.240
for the VHF Gateway / Echolink nodeUDP 4570
⇒192.168.21.241
for the DMR Bridge nodeUDP 4571
⇒192.168.21.242
for the Test NodeUDP 5198-5199
⇒192.168.21.240
for Echolink client connectionsTCP 42110
⇒192.168.21.240
for the VHF Gateway/Echolink node's DashboardTCP 42111
⇒192.168.21.241
for the DMR Bridge node's DashboardTCP 42112
⇒192.168.21.242
for the Test node's Dashboard
To allow the node numbers to be resolved to useful names tp display on the dashboards the script astdb.php
should run nightly to maintain a lookup table.
The image came with several copies of astdb.php
in different places, all updating a central data file /var/log/asterisk/astdb.txt
. Which was confusing, as they all looked in different places for the file detailing private nodes.
Private Node Names
To allow private node numbers to appear as useful information, rather than not in database
you first put the information in a file privatenodes.txt
1399|GM4SLV|Bridge to DMR|TGIF TG2354429 1398|GM4SLV|Bridge to DMR|TGIF TG2354435
and then the astdb.php
script pulls it in, with all the other nodes downloaded from the web, but astdb.php
must know where to find the privatenodes.txt
file.
The easiest way is to run the astdb.php
from the directory containing privatenodes.txt
and therefore it's the copy in /var/www/html/supermon/
that is used, since privatenodes.txt
resides here too.
To automate the process the update is done nightly via /etc/cron.daily/allstar_helpers
which was modified to point to the correct version of astdb.php
#!/bin/bash # Get new allmon data daily /var/www/html/supermon/astdb.php
Semi-automated Private Node descriptions
- I've written a small bash script on the gateway node481480.local to make it easier to re-name the internal “private nodes” as they appear listed in Supermon
- for this to work it's necessary to arrange public-key authentication on the nodes, with passwordless logins. But that's normal, anyway, no?
#!/bin/bash NODE1=node481480.local NODE2=node481481.local NODE3=node481482.local WEB=/var/www/html/supermon/ PRIVATE_NODES=/home/gm4slv/privatenodes.txt sudo cp $PRIVATE_NODES $WEB sudo $WEB/astdb.php scp $PRIVATE_NODES gm4slv@$NODE2: ssh $NODE2 'sudo cp /home/gm4slv/privatenodes.txt /var/www/html/supermon/ && /var/www/html/supermon/astdb.php' scp $PRIVATE_NODES gm4slv@$NODE3: ssh $NODE3 'sudo cp /home/gm4slv/privatenodes.txt /var/www/html/supermon/ && /var/www/html/supermon/astdb.php'
- Just make changes to the
privatenodes.txt
file in my local directory on the gatewaynode481480
and then run
gm4slv@node481480:~$ ./update_private.sh Success: astdb.txt 1422647 bytes privatenodes.txt 100% 79 39.0KB/s 00:00 Success: astdb.txt 1422647 bytes privatenodes.txt 100% 79 24.9KB/s 00:00 Success: astdb.txt 1422647 bytes
Favourites
- to keep the
favorites.ini
file consistent on all nodes I've written a script that distributes a copy to all nodes - I edit the copy in my home directory on
node481480
and run
./update_favorites.sh
#!/bin/bash # update_favorites.sh # a script to keep the supermon favorites.ini file synchronized on all nodes NODE1=node481480.local NODE2=node481481.local NODE3=node481482.local WEB=/var/www/html/supermon/ FAVORITES=/home/gm4slv/favorites.ini sudo cp $FAVORITES $WEB scp $FAVORITES gm4slv@$NODE2: ssh $NODE2 'sudo cp /home/gm4slv/favorites.ini /var/www/html/supermon/' scp $FAVORITES gm4slv@$NODE3: ssh $NODE3 'sudo cp /home/gm4slv/favorites.ini /var/www/html/supermon/'
Supermon : allmon.ini
The nodes monitored, and the menu to select them, and external websites, on each node's Supermon Dashboard is configured by allmon.ini
Here's the current version:
Generic /var/www/html/supermon/allmon.ini
- I've also made it easy to distribute the same
allmon.ini
file to all nodes
#!/bin/bash # update_allmon.sh # a script to distribute a common supermon config to all nodes NODE1=node481480.local NODE2=node481481.local NODE3=node481482.local WEB=/var/www/html/supermon/ ALLMON=/home/gm4slv/allmon.ini sudo cp $ALLMON $WEB scp $ALLMON gm4slv@$NODE2: ssh $NODE2 'sudo cp /home/gm4slv/allmon.ini /var/www/html/supermon/' scp $ALLMON gm4slv@$NODE3: ssh $NODE3 'sudo cp /home/gm4slv/allmon.ini /var/www/html/supermon/'
Node Callsigns instead of Numbers
To have the telemetry say the callsign of a connected node, instead of its node number, install the script write_node_callsigns_ulaw.sh
I put it in /usr/local/bin/
and run it via root's crontab each day - but via a wrapper script /usr/local/bin/update_names.sh
that then deletes the ulaw sound file for my own nodes, as I don't want all of them to be announced as GM4SLV
- I'd rather hear the actual node numbers:
#!/bin/bash /usr/local/bin/write_node_callsigns_ulaw.sh rm /var/lib/asterisk/sounds/rpt/nodenames/481480.ulaw rm /var/lib/asterisk/sounds/rpt/nodenames/481481.ulaw rm /var/lib/asterisk/sounds/rpt/nodenames/1399.ulaw rm /var/lib/asterisk/sounds/rpt/nodenames/1398.ulaw rm /var/lib/asterisk/sounds/rpt/nodenames/48148.ulaw rm /var/lib/asterisk/sounds/rpt/nodenames/481482.ulaw
I forget where I found it, so here's the write_node
script itself
There's a version that uses GSM coded files which didn't work on my system, as all the numbers and letters are in ulaw
format, but for completeness here's the gsm
version
I only have this on the node that's my VHF Gateway 481480
Nodes Created
See : The Nodes
Accessing remotely via IAX
Morse / Speech IDs
See Over the air ID
Bridges
- DMR : DMR Bridging
- NXDN : NXDN Bridging
Configs
— John Pumford-Green 05/06/25 22:30 BST