With the release of the package asl3-3.13, a new tool is available for testing configurations of ASL3 nodes. That tool is asl-node-auth-check. Once upgrading to the latest ASL3 code, this tool is available. I need to still add it to the manual.
The script does the following:
Overall Configuration
Checks the holistic configuration of Asterisk for what nodes are configure
Detects conflicts and mis-match between those configurations
Performs IP identity tests using both HTTP and IAX against three geographically and network-diverse locations to determine if there is a network issue involved such as CGNAT.
For each individual node
Checks that the registration configuration is well-formed and syntactically valid
Checks that a register.allstarlink.org host is reachable
Checks the registration status of the node
Validates that the IAX port defined in the configuration matches the database configuration
Checks that registration is current (i.e. one registration in the last 10 minutes)
Provides information on the last time the perceived IP changed
Uses the new Parrot/Reachability system to perform an inbound IAX reachabilty test
Provide a round-trip latency check
We hope this new tool will go a long way to debug configuration, registration, and network issues. Here is an example output of the tool:
# asl-node-auth-check
-----===== AllStarLink Node Authentication Check =====-----
Checking configuration:
Info: rpt.conf has configuration for: 2001, 2000
Info: /etc/asterisk/iax.conf contains no registration lines.
Info: /etc/asterisk/rpt_http_registrations.conf contains 2 registration line(s)
Info: Registrations present for configured node(s): 2000, 2001
Info: IP from https://conntest-east1.allstarlink.org/ip reports: 18.224.69.177
Info: IP from https://conntest-west1.allstarlink.org/ip reports: 18.224.69.177
Info: IP from https://conntest-west2.allstarlink.org/ip reports: 18.224.69.177
Info: IP from udp://conntest-east1.allstarlink.org:4570 reports: 18.224.69.177
Info: IP from udp://conntest-west1.allstarlink.org:4569 reports: 18.224.69.177
Info: IP from udp://conntest-west2.allstarlink.org:4569 reports: 18.224.69.177
OK: HTTP IP probes have consensus on the same perceived IP
OK: IAX IP probes have consensus on the same perceived IP
Testing node 2000:
OK: Node registration config is well-formed
OK: Node registration type is HTTP
OK: register.allstarlink.org is reachable (via HTTP)
OK: HTTP registration state is Registered
OK: Perceived IAX IP:PORT for this node is: 18.224.69.177:4569
OK: Registered to aws-east1a-register2.allstarlink.org - 52.44.147.201
OK: Server-set UDP port matches bindport in iax.conf
OK: Node registration within 10 minutes: 2026-02-14 20:53:50 UTC
Info: Last time IP changed was 2025-11-24 02:43:17 UTC
OK: Incoming connections to IAX from other nodes is successful
Info: IAX ping test has a roundtrip time of 11ms
OK: No problems detected with node 2000
Testing node 2001:
OK: Node registration config is well-formed
OK: Node registration type is HTTP
OK: register.allstarlink.org is reachable (via HTTP)
OK: HTTP registration state is Registered
OK: Perceived IAX IP:PORT for this node is: 18.224.69.177:4569
OK: Registered to aws-east1a-register1.allstarlink.org - 52.21.169.197
OK: Server-set UDP port matches bindport in iax.conf
OK: Node registration within 10 minutes: 2026-02-14 20:53:53 UTC
Info: Last time IP changed was 2025-11-24 02:53:07 UTC
OK: Incoming connections to IAX from other nodes is successful
Info: IAX ping test has a roundtrip time of 12ms
OK: No problems detected with node 2001
Checking configuration:
Info: rpt.conf has configuration for: 592140, 592141, 1976
Info: /etc/asterisk/iax.conf contains no registration lines.
Traceback (most recent call last):
File "/usr/bin/asl-node-auth-check", line 679, in
main()
File "/usr/bin/asl-node-auth-check", line 588, in main
registrations = (get_registrations())
^^^^^^^^^^^^^^^^^^^
File "/usr/bin/asl-node-auth-check", line 126, in get_registrations
r = extract_registration_values(filename, regtype)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/bin/asl-node-auth-check", line 107, in extract_registration_values
regtuple = regtuple + (regtype,)
~^~~~
TypeError: unsupported operand type(s) for +: 'NoneType' and 'tuple'
********** AllStarLink [ASL] Version Info **********
OS : Debian GNU/Linux 12 (bookworm)
OS Kernel : 6.1.0-43-amd64
Asterisk : 22.7.0+asl3-3.7.1-1.deb12
ASL [app_rpt] : 3.7.1
Did your other systems have a private sub-2000 node configured? I think that's what it's choking on. I should probably ignore private nodes with the tool.
Oh, one other thing it could be, do you have your register stanzas using = or =>. The tool currently only supports the latter but probably I need to fix that too.
I just tried running asl-node-auth-check on a system behind CG-NAT, which I normally run behind a Tailscale exit node. For this test, I ran asl-node-auth-check first straight, then behind the VPN.
Without, It bombed out on the ping test. Worked fine on the VPN. Also, the last date of IP change is definitely wrong. Not sure how often it updates.
Checking configuration:
Info: rpt.conf has configuration for: 508422
Info: /etc/asterisk/iax.conf contains no registration lines.
Info: /etc/asterisk/rpt_http_registrations.conf contains 1 registration line(s)
Info: Registrations present for configured node(s): 508422
Info: IP from https://conntest-east1.allstarlink.org/ip reports: 74.124.178.153
Info: IP from https://conntest-west1.allstarlink.org/ip reports: 74.124.178.153
Info: IP from https://conntest-west2.allstarlink.org/ip reports: 74.124.178.153
Info: IP from udp://conntest-east1.allstarlink.org:4570 reports: 74.124.178.153
Info: IP from udp://conntest-west1.allstarlink.org:4569 reports: 74.124.178.153
Info: IP from udp://conntest-west2.allstarlink.org:4569 reports: 74.124.178.153
OK: HTTP IP probes have consensus on the same perceived IP
OK: IAX IP probes have consensus on the same perceived IP
Testing node 508422:
OK: Node registration config is well-formed
OK: Node registration type is HTTP
OK: register.allstarlink.org is reachable (via HTTP)
OK: HTTP registration state is Registered
OK: Perceived IAX IP:PORT for this node is: 74.124.178.153:4568
OK: Registered to aws-east1a-register0.allstarlink.org - 52.20.63.146
OK: Server-set UDP port matches bindport in iax.conf
OK: Node registration within 10 minutes: 2026-02-17 03:54:17 UTC
Info: Last time IP changed was 2026-02-07 04:44:35 UTC
Traceback (most recent call last):
File "/usr/bin/asl-node-auth-check", line 679, in
main()
File "/usr/bin/asl-node-auth-check", line 658, in main
e, r = check_node_reachability(node)
~~~~~~~~~~~~~~~~~~~~~~~
File "/usr/bin/asl-node-auth-check", line 429, in check_node_reachability
pingms = node_check['ipv4']['pingms']
KeyError: 'pingms'
root@pt-shari:/home/asl# tailscale up
Checking configuration:
Info: rpt.conf has configuration for: 508422
Info: /etc/asterisk/iax.conf contains no registration lines.
Info: /etc/asterisk/rpt_http_registrations.conf contains 1 registration line(s)
Info: Registrations present for configured node(s): 508422
Info: IP from https://conntest-east1.allstarlink.org/ip reports: 45.56.100.84
Info: IP from https://conntest-west1.allstarlink.org/ip reports: 45.56.100.84
Info: IP from https://conntest-west2.allstarlink.org/ip reports: 45.56.100.84
Info: IP from udp://conntest-east1.allstarlink.org:4570 reports: 45.56.100.84
Info: IP from udp://conntest-west1.allstarlink.org:4569 reports: 45.56.100.84
Info: IP from udp://conntest-west2.allstarlink.org:4569 reports: 45.56.100.84
OK: HTTP IP probes have consensus on the same perceived IP
OK: IAX IP probes have consensus on the same perceived IP
Testing node 508422:
OK: Node registration config is well-formed
OK: Node registration type is HTTP
OK: register.allstarlink.org is reachable (via HTTP)
OK: HTTP registration state is Registered
OK: Perceived IAX IP:PORT for this node is: 45.56.100.84:4568
OK: Registered to aws-east1a-register0.allstarlink.org - 52.20.63.146
OK: Server-set UDP port matches bindport in iax.conf
OK: Node registration within 10 minutes: 2026-02-17 03:57:28 UTC
Info: Last time IP changed was 2026-02-07 04:44:35 UTC
OK: Incoming connections to IAX from other nodes is successful
Info: IAX ping test has a roundtrip time of 37ms
OK: No problems detected with node 508422
Not sure if this helps as this thread is 4wks old but I had occasion to use this cool new script today on a working Bookworm ASL3 node with the following result. Note that this node uses IAX2 vs HTTP registration as it was originally working through a T-mobile CGNAT connection but is now running over a 44 Connect wireguard VPN through a travel router. I also tried the version from the hotfix link in this thread with the same result except the traceback line numbers changed (ie 681→682 & 654→655). Hope it helps.
Checking configuration:
Info: Skipping evaluation of private node 1999
Info: rpt.conf has configuration for: 65418
Info: /etc/asterisk/iax.conf contains 1 registration line(s)
Info: /etc/asterisk/rpt_http_registrations.conf contains no registration lines.
Info: Registrations present for configured node(s): 65418
Warning: IP test to https://conntest-east1.allstarlink.org/ip failed
Info: IP from https://conntest-west1.allstarlink.org/ip reports: 44.27.135.61
Info: IP from https://conntest-west2.allstarlink.org/ip reports: 44.27.135.61
Warning: IP test to udp://conntest-east1.allstarlink.org:4570 failed
Info: IP from udp://conntest-west1.allstarlink.org:4569 reports: 44.27.135.61
Info: IP from udp://conntest-west2.allstarlink.org:4569 reports: 44.27.135.61
OK: HTTP IP probes have consensus on the same perceived IP
OK: IAX IP probes have consensus on the same perceived IP
Testing node 65418:
OK: Node registration config is well-formed
OK: Node registration type is IAX
OK: register.allstarlink.org is reachable (via HTTP)
OK: IAX registration state is Registered
OK: Perceived IAX IP:PORT for this node is: 172.56.36.200:1120
OK: Registered to aws-east1a-register1.allstarlink.org - 52.21.169.197
Traceback (most recent call last):
File "/usr/bin/asl-node-auth-check", line 681, in
main()
File "/usr/bin/asl-node-auth-check", line 654, in main
e, r = check_node_status(node)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/bin/asl-node-auth-check", line 383, in check_node_status
stats_udpport = stats['stats']['user_node']['server']['udpport']
~~~~~~~~~~~~~~^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable