Setup Private Registration Server

I would like to create a 100% private network of linked repeaters. We are in 2 different states and do not want them connected full time.They are NOT ham repeaters so they can not register with Allstar. They also will not have static IP. So I would like to setup my own registration server on my server to keep track of my nodes and there IP addresses. We are setting up Allstar on our ham repeaters here, but my private system for security reasons and to prevent them for accidentally transmitting on frequencies they are not allowed on will never be able to connect to the Allstar system.

1 Like

I think it would be possible to configure an Asterisk server to be your private registration server. For just a few nodes it would only be configuration, no source code involved. Sounds like a fun project. I’m sure you’d learn a lot about Asterisk and app_rpt in the attempt. Give it a try.

I talked to some of my knowledge buddies about this and they are willing to help you set this up. However, we as AllStarLink can not host this for you. Do you have some place where, preferably a VM hosting service to put your registration server?

Yes I have a NAS drive with VM capabilities along with Linux support. It also has a static IP with a domain name. Pretty much need the software that apt-rpt checks into to create the node list and send the node list out. I don’t write code and am told old to start now. I appreciate the help…

Not sure that’s the best place long term for your host. But you can try it and later move if it doesn’t work out.

Here’s a place for you to start. Install Debian on the box and then try installing AllStar with these instructions.

https://wiki.allstarlink.org/wiki/ASL_FAQ#Can_ASL_be_installed_on_an_existing_Linux_install.2C_for_example_on_a_VM_running_Debian.3F

1 Like

My NAS has been running none stop for 5 years and it host a Plex Server, web server, ftp, backups with security cameras on it along with many other things. Currently there is 24TB of drive space on it. It is very stable. I’m also going to make a backup on a cloud server so if mine goes down. That said… The question is, is a Allstar installation required to have a registration server? I try not to install anything on the NAS that I won’t use. My Allstar’s are on Raspberry Pi’s. It appears the registration server (even though it connects to) is not part of Asterisk or apt-rpt. Could you please tell me the complete setup. Hope this doesn’t sound rude. I like to read through everything to complete a task before I start so I get a general idea of what is going on then I go through step by step so there is no surprises.

Stability is not the issue. You need a safe place where we can help you get this running. Another Pi running ASL, or even a small dedicated Intel box might be a better option. That way you don’t have to loose your NAS services while we develop the registration server.

Yes, registration happens on an AllStar server. I’ve heard that HamVoIP is working on or has some other (non AllStar, non open-source) method of registration.

Installing Allstar on your NAS will be pretty much the same as what you did on your Pi. The instructions I gave you are all I have. We don’t know how to build a registration server yet. We just thought we take your project on as an opportunity to learn.

This is going to be a learning effort for us as well as you. It’s going to take some time complete this project and there will be surprises along the way.

I will have to take some time and set one up. I will do it on a small pc.
Thanks

1 Like

I know this topic is over a year old now, but I myself am wanting to do the same thing, @wd6awp is it possible if you can tell me how I can setup a private registration server? What I am trying to do is I have a few people in my neighborhood wanting to connect “privately” instead of through a central hub where everybody hears everybody. I think I am headed in the right direction, I have a web server with a php script that whenever someone submits they’re callsign, they’re location, name, all that, through an html form, it will take that info and put it in the correct order in iax.conf to make peering info for people to be able to connect to my proxy server hosted on a pi at my house but the problem is, is on both ends you have to connect manually, so for example, I want to connect to my friends node 101, my node is 102, he has to do *3102 and I have to do *3101 in order to have audio. I basically want to make a local neighborhood allstar system over the internet, I know I could use microwave links or something but I don’t have the money at the moment for those. Thank you!

It is easy:

Note: You will need a firm understanding of how to setup and configure Asterisk as a basic phone system to do this. The information for doing this is widely available and outside the scope of this post.

-Configure Asterisk to accept registrations in the iax.conf file. (or look up using realtime asterisk that stores this in a database. not worth it for just a handful of users that are pretty static. https://wiki.asterisk.org/wiki/display/AST/Realtime+Database+Configuration)

-Put the accounts for your friends and associates in the iax.conf file to register (or database if using realtime asterisk). Alternatively, you could forego the password based auth and use the public key (RSA) auth (astkeygen). Then distribute each user their own private key and keep the public portion on your reg server.

Distribute your own private nodelist as either an addendum to rpt.conf or put it into a file called rpt_extnodes in /var/lib/asterisk. Doesn’t matter how old or you update this file, just don’t let ASL’sreg system overwrite it.

Remember, you are essentially setting up an Asterisk PBX that has only IAX clients. . but uses an add-on program instead of just pure IAX for management.

For ASL, the reg server setup is a bit more complex due to the back end and the large number of nodes that it supports. The basics of it are this though.

Or just forego this and setup your own phone network with app_rpt services using DUNDI and some dialplan magic.

Good luck!

If you just have a handful of nodes and you don’t mind non-automated (read manual and possibly painful) way to create you own private network, you can add the ip address (or hostnames) of all the nodes in the [host] stanza of rpt.conf on each of the nodes. You will still be able to connect to public nodes if you want to enable ASL registration.

If you have more than a few nodes the @kg7qin method is a more secure option and less painful to manage once it’s set up.

Interesting project, let us know how it goes.

Thank you guys for the wonderful input! I should’ve also mentioned that another problem i’m having is dynamic ip’s. I want my users to be able to connect to a mobile network (using a hotspot or whatever) and be able to go mobile. So does the iax.conf register string fix that? Like when someone uses the register statement to register to my server, then will them having a dynamic ip not matter? If you haven’t already figured out, I want an automated way to create a private network. Sorry if i’m not making sense, and again thanks for all of the input @wd6awp and @kg7qin

Given your requirements I suggest another approach. Have all you nodes register to Allstar and whitelist your nodes.

You can read about whitelist at https://wiki.allstarlink.org/wiki/Blacklist_or_whitelist

Always plenty of ways to achieve your objective in asterisk

A simple iax register, as peers is all that is needed. To stay away from dynamic ip’s use simple log-in method and allow any host. host = dynamic
Yes, less secure but how much do you need. Use long passwords and usernames.

Don’t forget to create routing in your extensions for everyone.

You can do that from one vps website. Something has to be static ip or name served Then everyone can register iax as a peer. Each a different peer. The magic happens in your extensions routing.

Just thinking, …but you have to do the work.

Hi Tim,
I know this is crazy being so long ago. A family emergency took me away from this and many other things. After which I couldn’t get back to this project. I have recently revived it and have come a long way. I have a server up and running with the database active. Users are connecting and reporting via IAX (‘iax show peers’ - reports the nodes, ip and ports). I am stumped on creating the nodes list from the data base. Any help on the script to read the database to create the list would be great. It is the last piece of the ‘pi’ so to speak.
Thanks
Tony
WRAW556

Here are some approaches you can take:

  1. Make a script that parses the output of this (look at how to use awk, cut, and sed):
    asterisk -rx ‘iax2 show peers’
  2. Use Allmon2’s server.php output to show the connected peers. Parse this however you please. This is probably my preferred approach because the data is easily parseable.

Cheers,
Rob

1 Like

Would anyone have the current location of this file for one to look over?

William