Other Stuff

I have a few other technical areas that I play around in. Here is where I will post some information and downloads to others things I have done as well as downloads. 

VoIP Telephone Systems
I have played around with VoIP based telephone PBX systems as an interesting hobby and professionally. The earliest VoIP PBX I played with happened to be a very early version of Asterisk. Unfortunately, in my opinion, Asterisk as a production PBX has issues that I don't like and I have found it to be a little unstable. My favorite choice for a VoIP PBX is one based off of Freeswitch which is open source as well. 
When Freeswitch first came out, I was impressed with it but it didn't have any front end to it. At the time it was configured with XML files and supported the use of various scripts to create custom applications. Not long after its release, Mark Crane created a front end called FusionPBX which even in its earliest form was very useful and flexible. 
Now, FusionPBX and Freeswitch are essentially one, and instructions to download and install can be found on the FusionPBX website. Just like Asterisk, FusionPBX and Freeswitch run on Linux, the most common version of Linux is Debian or a version of it such as Armbian or Raspbian for ARM based processors. FusionPBX runs very well on minimalist hardware such as a Raspberry Pi 2,3 or 4. I have used systems on x86 single board computers, Raspberry Pi's and Orange Pi's, and all worked well. 
The latest device I have a FusionPBX system running at the moment is the Zima Board. This is a nice Intel based single board computer that has a very nice metal heat sink case. If you do decide to get a Zima Board, do yourself a favor and get a Mini Display Port adapter cable. You will need it to install another operating system onto the board other than the one that it comes pre-installed with. 
I am providing a ready made, Debian 11 image that has FusionPBX installed and working, this way you can get a VoIP PBX up and running quickly. There is also a README file I have written to aid in getting it running and permanently installed onto the built in eMMC memory of the Zima Board.  

Download for Zima Board Fusion PBX Image
Download for Zima Board Install README document

FusionPBX Backup Scripts
These are modified scripts I made that are based off of scripts on the FusionPBX website. 
I have found these scripts to be not only very handy for backing up a FusionPBX system but also migrating a system to a new machine. In order for these scripts to work, you need to have the correct Postgresql database password in these scripts. If you have a standard install of FusionPBX, your database password will be in /etc/fusionpbx/config.conf file. 
If you are migrating a system to a new machine with a fresh install, you will need to use the database password from the NEW machines database to restore the backup from the old machine to the new one. 
The backup scripts can be called with a cron job and run at an interval you deem appropriate or you can put it in the /etc/cron.daily folder and run it every day. For some reason, in order for it to work in the cron.daily folder you need to remove any file extension from it which means dropping the .sh from the end. 
Backup files are saved in the /var/backups/fusionpbx directory. 
The restore script can be placed and run from anywhere. This script will ask you for a specific date to restore the backup from in a YYYY-MM-DD format. You will see backups that are made using the backup script have the date they were made in their filename. Running the restore script will ask you for this date in order to choose which backup you want to restore from. Currently, this backup script is setup to delete backup files older than 2 days old. You can adjust this time in the backup script by changing this:

#delete the main backup
find /var/backups/fusionpbx/*.tgz -mtime +2 -exec rm {} \;

The "-mtime +2" means 2 days. So you can adjust this number to any number of days you wish. 

Download the FusionPBX Backup Script

Download the FusionPBX Restore Script 

You can modify these scripts as you need to, but these work best for what I am currently doing. 
GPS Disciplined NTP Time Server
This is something I deal with at work very often in Ethernet networks and radio networks. Most people get their accurate NTP time from the internet from the NTP Pool when it comes to our personal machines. When it comes to networks that need low latency, high accuracy time and/or they don't have access to the internet. A GPS disciplined NTP time source can be expensive to purchase but the two most reasonable ones I have found happen to be the Leo Bodnar NTP Server and the Time Machines TM1000A NTP Server. Since I am cheap and like making things myself I elected to created my own GPS NTP time server using a Raspberry Pi 3B. The website I used that has excellent instructions on making one is HERE. What I am providing is my image from my Raspberry Pi 3B so all you have to do is wire up a GPS module like this one, and burning the image you can download to an SD card and it should be up and running. 

Download for the Raspberry Pi 2 and 3 GPS NTP Time Server
AURSINC UHF USB Radio, Alternate to the SHARI
This little unit that is available from Amazon here:
AURSINC Allstar RF Node UHF SR-FRS Radio
Is a handy, reasonably priced USB radio that works with Allstar. The unit contains a USB audio device that comes up as the Cmedia 108 chip. This little UHF radio can be used as a simplex node, but the information to make it work is rather vague. I have written two bash scripts to install and program the unit. One thing that is not made clear with this unit is the explanation of the direction the USB-C connector is inserted into the unit and what it does. One way, will give you access to the USB to Serial port of the unit to program it, if you flip the USB-C connector around, it will now show up as a USB audio device. 
This script will install Python, Python serial communication packages and the SRFRS software to talk to the AURSINC radio. 

Download AURSINC SRFRS Radio install script

This next script allows you to program the radio with your frequency, offset, CTCSS tone and RX squelch setting. 

Download AURSINC SRFRS Radio Programming Script

Both these scripts have a .txt file extension that should be changed to .sh when you put them on your Linux device. Once that's done, you will need to make these scripts executable by performed a permissions change. you can do a chmod +x "your_script_name.sh" to make it executable.