css body, p, .post-body { font-family: 'Google Sans Text', sans-serif !important; } /* Apply Google Sans to Post Titles and Headings */ h1, h2, h3, h4, h5, h6, .post-title, .post h2 { font-family: 'Google Sans', sans-serif; font-weight: 500; }
Showing posts with label VOIP Networks. Show all posts
Showing posts with label VOIP Networks. Show all posts

Wednesday, July 15, 2026

How to automatically Connect and Disconnect an AllStar3 Node to another AllStar Node


Here is a short and easy method on how to connect and disconnect an AllstarLink 3 (ASL 3) node on a schedule.  You need to leverage the ASL3 asterisk CLI tool (asterisk -rx) inside two basic bash scripts. Then, you map those scripts to system execution times using Linux's built-in crontab utility.  

Note:  I know there are more than one way to effect these connections but here I concentrate on the newcomer to Linux and ASL3.

You will create two lightweight bash scripts that sends a command to your local Asterisk instance telling it to connect or disconnect to your target node at specific times.  To instruct  Linux to run the scripts automatically at specific times we will be using the cron tasks scheduler utility.

Let's get started.

Prerequisites: Finding Your Node Numbers

Before starting, write down your two node numbers. You will need them in the steps below:

  1. Your Local Node Number: The number assigned to your physical AllStarLink 3 hotspot or server.

  2. The Target Node Number: The number of the remote node, reflector, or hub you want to connect to.


Step 1: Open Your Node Terminal

  1. Open your terminal program (like PuTTY on Windows, or Terminal on a Mac).

  2. Log into your AllStarLink 3 node using your username and password.

  3. You should see a command prompt waiting for your input (usually ending with a $ sign).


Step 2: Create the Morning Connection Script

We will use a basic text editor inside Linux called nano to create the morning connection command.

  1. Type the following command to create a new file named connect.sh and press Enter:

    bash

    sudo nano connect.sh

  2. A blank screen will open. Copy the text below, but replace <YOUR_NODE> and <TARGET_NODE> with your actual node numbers. Do not include the < > brackets.

    bash

    #!/bin/bash
    /usr/sbin/asterisk -rx "rpt fun <YOUR_NODE> *3<TARGET_NODE>"

    Example of what it should look like if your node is 1234 and the target is 5678: /usr/sbin/asterisk -rx "rpt fun 1234 *35678"

  3. Save and Close the file:

    • Press Ctrl + O on your keyboard (this means "Write Out" / Save).

    • Press Enter to confirm the file name.

    • Press Ctrl + X to exit the text editor and return to the main screen.

  4. Give Permission to Run: Linux blocks files from running automatically until you give them permission. Type this command and press Enter:

    bash

    sudo chmod +x connect.sh


Step 3: Create the Evening Disconnection Script

Now, we will do the exact same thing to create the command that disconnects your node.

  1. Type the following command to create a new file named disconnect.sh and press Enter:

    bash

    sudo nano disconnect.sh

  2. Copy and paste the text below, making the exact same node number replacements as before:

    bash

    #!/bin/bash
    /usr/sbin/asterisk -rx "rpt fun <YOUR_NODE> *1<TARGET_NODE>"

    (Note: The *3 changed to *1, which tells AllStarLink to disconnect instead of connect).

  3. Save and Close the file:

    • Press Ctrl + O

    • Press Enter

    • Press Ctrl + X

  4. Give Permission to Run: Type this command and press Enter:

    bash

    chmod +x disconnect.sh


Step 4: Find Your Secret "Home Path"

Linux needs to know the exact folder path where your scripts live so it can find them later.

  1. Type this command and press Enter:

    bash

    pwd

  2. It will print out a path on your screen. It will look something like /home/admin or /root.

  3. Write this down exactly as it appears. We will use this in the final step.


Step 5: Schedule the Automation (04:00 to 20:00)

We will now use the Linux calendar tool called crontab to schedule your scripts at 04h00 and 20h00.

  1. Type this command to open the scheduler and press Enter:

    bash

    crontab -e

    (If Linux asks you to choose an editor, press 1 and hit Enter to choose nano).

  2. Use the arrow keys on your keyboard to scroll all the way down to the very bottom of the file.

  3. Paste the following two lines at the bottom. Replace /home/yourusername with the exact path you wrote down in Step 4:

    text

    0 4 * * * /home/yourusername/connect.sh >/dev/null 2>&1
    0 20 * * * /home/yourusername/disconnect.sh >/dev/null 2>&1

    • How it works: The 0 4 means Minute 0 of Hour 4 (04h00). The 0 20 means Minute 0 of Hour 20 (20h00 in 24-hour military time).

  4. Save and Close the file:

    • Press Ctrl + O

    • Press Enter

    • Press Ctrl + X

The terminal will say  crontab: installing new crontab

Your node will now automatically connect every morning at 04h00 and cleanly disconnect every evening at 20h00! 

Inside crontab -e , you can also use three-letter text abbreviations instead of numbers for the days of the week if it is easier to remember (e.g., SUN, MON, TUE, WED, THU, FRI, SAT).

For example, a weekend-only entry can look like this:  0 4 * * SAT,SUN

Lets add a bit of "meat" to the above method of connecting and disconnecting an ASL3 Node to another AllStar Node.

An automated system to connect and disconnect specific nodes at different times and days

This step-by-step guide will walk you through setting up an automated system to connect and disconnect specific nodes at different times and days using cron and Bash scripts.

Overview of How It Works

Instead of creating separate files for every single node, we use one connection script and one disconnection script.

We pass the specific node ID (like 49355 or 647030) as an "argument" from the scheduler (cron). The script reads that number, plugs it into your connection command, and executes it.

[cron scheduler] ──(sends node ID)──> [connect.sh] ──> Executed for that node only

Step 1: Create the Automation Scripts

We will place these scripts in a folder called scripts inside your user's home directory.

1. Create the Directory

Open your terminal and run:

Bash

mkdir -p ~/scripts

2. Create the Connection Script

Create and open a new file called connect.sh:

Bash

nano ~/scripts/connect.sh

Paste the following code inside it:

Bash

#!/bin/bash

# 1. Check if the user (or cron) forgot to provide a node number
if [ -z "$1" ]; then
    echo "ERROR: No node specified. Usage: $0 <node_id>"
    exit 1
fi

# 2. Assign the argument to a readable variable
NODE_ID=$1

echo "=========================================="
echo "STARTING CONNECTION: Node $NODE_ID"
echo "Timestamp: $(date)"
echo "=========================================="

# 3. YOUR CONNECTION COMMAND GOES HERE
# Replace the line below with your actual command. 
# Use $NODE_ID wherever the node number needs to go.
echo "Connecting to node $NODE_ID now..."

# Example placeholder (Uncomment and modify if using something like OpenVPN):
# openvpn --config "/home/$USER/vpn/${NODE_ID}.ovpn"

3. Create the Disconnection Script

Create and open a new file called disconnect.sh:

Bash

nano ~/scripts/disconnect.sh

Paste the following code inside it:

Bash

#!/bin/bash

# 1. Check if the user (or cron) forgot to provide a node number
if [ -z "$1" ]; then
    echo "ERROR: No node specified. Usage: $0 <node_id>"
    exit 1
fi

# 2. Assign the argument to a readable variable
NODE_ID=$1

echo "=========================================="
echo "STOPPING CONNECTION: Node $NODE_ID"
echo "Timestamp: $(date)"
echo "=========================================="

# 3. YOUR DISCONNECT COMMAND GOES HERE
# Replace the line below with your actual command.
echo "Disconnecting node $NODE_ID now..."

# Example placeholder:
# killall openvpn

4. Make the Scripts Executable

Linux security requires you to explicitly grant permission for scripts to run. Execute this command in your terminal:

Bash

chmod +x ~/scripts/connect.sh ~/scripts/disconnect.sh

Step 2: Test Your Scripts Manually

Before letting the automation take over, test that the scripts successfully receive your node variables. Run these commands in your terminal:

Bash

~/scripts/connect.sh 49355
~/scripts/disconnect.sh 49355

You should see an output in your terminal confirming it attempted to connect to node 49355.

Step 3: Configure the cron Schedule

cron is the built-in Linux background service that runs tasks at specified times.

1. Open the Cron Editor

Run the following command to edit your personal schedule:

Bash

crontab -e

If it asks you to choose an editor, press 1 for nano (the easiest one).

2. Add Your Node Schedules

Scroll to the very bottom of the file and paste the following lines exactly as shown.

Important: We use ~/scripts/... to point to your home directory, and save logs to your home folder (~/cron_node_...log) to prevent any permission issues.

Code snippet

# ===================================================================
# NODE 49355 SCHEDULE (Fridays)
# ===================================================================
# Connect at 5:00 AM on Friday (Day 5)
0 5 * * 5 /bin/bash /home/USER/scripts/connect.sh 49355 >> /home/USER/cron_49355.log 2>&1

# Disconnect at 8:00 PM (20:00) on Friday (Day 5)
0 20 * * 5 /bin/bash /home/USER/scripts/disconnect.sh 49355 >> /home/USER/cron_49355.log 2>&1


# ===================================================================
# NODE 647030 SCHEDULE (Saturdays)
# ===================================================================
# Connect at 6:00 AM on Saturday (Day 6)
0 6 * * 6 /bin/bash /home/USER/scripts/connect.sh 647030 >> /home/USER/cron_647030.log 2>&1

# Disconnect at 7:00 PM (19:00) on Saturday (Day 6)
0 19 * * 6 /bin/bash /home/USER/scripts/disconnect.sh 647030 >> /home/USER/cron_647030.log 2>&1

3. Critical Adjustment: Fix the Username Path

cron requires absolute system paths to be completely reliable.

  1. In the text you just pasted, look for /home/USER/.

  2. Replace USER with your actual Linux account username. (If your username is johndoe, the path becomes /home/johndoe/scripts/...).

4. Save and Exit

  • If using Nano: Press Ctrl + O then Enter to save.

  • Press Ctrl + X to exit back to the normal terminal.

You should see a message saying: crontab: installing new crontab.

Step 4: Troubleshooting & Monitoring Logs

Because cron tasks run invisibly in the background, the entries above are designed to output everything they do into dedicated text files so you can check on them.

To see if your scripts are running smoothly or to view errors, read your log files using the cat command:

Bash

cat ~/cron_49355.log
cat ~/cron_647030.log

If you ever want to add a third or fourth node in the future, you do not need to modify your scripts at all. Simply open crontab -e again and add two new lines with the new node number and your preferred times.

Comment:  Zayn ZR3VO from Orania is currently using this automated connect and disconnect method and he indicated that it is working well.

Images:  (Click on images for larger view.) 

 

Tuesday, July 7, 2026

Important change to the ZS1I AllStar HUB in the Mossel Bay Area


In a previous post available HERE I outlay certain changes that were made to the ZS1I HUB Network. 

Once again the need arise to make further changes to the network for the effective working of not only the Mossel Bay Network but also all the other networks that are connected to the ZS1I HUB Network.  Unfortunately this will effect some of our regular users of the  ZS1I HUB Network.  I apologize for any inconvenience but circumstances sometimes force one to make changes in order to better the network or to prevent forthcoming issues and current bad - undesirable practices that will cause unhappiness and worst of all transgressing regulatory statutes and the Amateur Radio Code of Conduct.

Let's get straight to the change:

The Administrator of the ZS1I HUB Network will in future only connect to nodes, repeaters, reflectors etc. if there is no operational or technical issues relating to the connected systems and if there is an interest to do so.  No connections will be made to nodes that demonstrate bad practices and operating procedures by radio amateurs and will those systems be disconnected without any warning or notification.  Once again I do not play policeman or guardian as I explained the reason on many occasions in the past on the old and new Blog.  Now the not connecting will have an effect on all the stations/nodes that regularly connect to the ZS1I HUB Network.  Unfortunately I have to draw the line somewhere as I cannot continue with the issues experienced in the last few weeks / months.

I am not going to mention which nodes/repeaters will be connected and those not connected as your VOIP application dashboard will provide you with that information.  Does this mean that when my favorite node / network is not connected that they transgressed in some way or the other.  NO not at all.  There might be many reasons and I will not speculate on this.  Furthermore the administrator of the ZS1I HUB Network can only monitor so many nodes / repeaters and networks.

Does this now mean that I will be left in the cold?  Not at all.  I am currently busy with many new features for the ZS1I HUB Network as already mentioned briefly in previous articles but there are many more in the pipeline.  One new and popular feature is the cross linking of the weekly DMR-ZA Net to various modes, nodes and repeaters.  More information on this available HERE.

"I cannot access my favorite Net / Bulletin anymore after you stopped connecting to certain nodes / stations!  What now?"   Do not despair.  Your Net Controller is welcome to connect to the ZS1I HUB Network if he so wish permitting there is no other traffic on the network at the time.  Alternatively you can connect directly to the club's / group's node of the Net you want to listen or talk to.  You connect to the specific node of the club / group via AllStar / Echolink / DMR etc., bypassing the ZS1I HUB Network Node.  That way you will not be left in the cold.  

All radio amateur are welcome to use the ZS1I HUB Network as long as they adhere to a few general "rules".  This is the standard practice in all large networks as to ensure orderly operations.   For those not familiar with the "rules - guidelines" a copy is available HERE.  I am sure you will agree that these few lines are really not there to "play policeman" but rather a guideline to good practical operating procedures when using any amateur radio network.

The above change will be implemented with immediate effect.

If you have any questions or suggestions you can contact me HERE


Sunday, July 5, 2026

Change: Broadcast of Bulletins, Nets, Live Link Connections on the ZS1I AllStar HUB Network which will include National and International Broadcasts


Important:  HERE is the current schedule for Bulletins, Nets and Link Connections.  This schedule will soon change as described below.

Many might not know but I am not a monotonous type of person.  I hate when certain repetitive or stale amateur radio activities, nets, chats etc. takes place year in and year out on the same old trend.  To put it plainly - It is mind-numbing !!  Therefor I enjoy making changes on a regular interval to not lose interest or have to listen to useless information over and over.

I had been thinking and that can be rather dangerous.  Well I came up with a new method of broadcasting amateur radio news content.  I am busy setting up a new server that will be used for broadcasting amateur radio news on demand or at a certain time.  I am still working on some detail to achieve a great outcome using AllStarLink, Echolink and DMR.  This setup will run parallel to the current ZS1I Hub Network which will only be used for Nets and QSO's.   Listeners will be able to connect to the News Server and listen to a wide variety of content which will also include podcasts.  Once I have the server operational a final implementation date will be set.

The change will result in the fact that the Sunday morning bulletin schedule will change dramatically.  I envisage that only the two SARL Bulletins will be transmitted at 08h15 and 08h30 SAST on the ZS1I Hub Network.  NO other bulletin or news broadcasts will be transmitted on the ZS1I Hub Network unless prior approval is granted for such broadcasts.

The idea I have is for operators to connect to the dedicated news server either with AllStar, Echolink or DMR to listen to the provided content.  I will provide and list (index) of content that you can listen to and on what day and time.  A nice feature would be a on demand automated digital stream that will stream content on request, maybe something for the future but for the time being, I will use the scheduled method. 

Why not broadcast Amateur Radio News Bulletins on the ZS1I Hub Network anymore?  It is quite easy to explain.

1.   The rapid system expansion of the ZS1I Hub Network resulted in a heavy workload on the equipment of the ZS1I Hub Network  and the administrators of other networks in South Africa.  The SC Network is currently one of the largest networks in South Africa and carries heavy traffic at times.  Control, supervision and maintenance of the network repeaters, nodes, bridges etc. at all times is of the utmost importance to ensure the smooth functioning of the network.  The network consists of many other local and worldwide stations which is linked to the ZS1I Hub Network.  Administrators have to take the rapid expansion, size and workload on all the system into consideration.

2.  The ZS1I Hub Network is a private operated network and is not affiliated to any club, group or organization. The ZS1I Hub Network owner maintain good relations with all clubs, organizations and fellow radio amateurs,  world wide.   The ZS1I Hub owner therefor has no obligation to any club, group or organization when it comes to the broadcast of local amateur radio news bulletins.  

3.  Many national and international amateur radio news bulletins are nowadays automated.  This means that the ZS1I Hub Network System (computer) automatically downloads the audio file from a web-site, cut it up into time slots and then automatically plays it on the network at given time. This is surely the way to go and does the ZS1I Hub Network make use of this helpful AllStar function.  No compiling, editing and live reading of a bulletin on the air.  The  automation of national and international is the preferred method to transmit amateur radio news bulletins as it works great and does not result in a heavy workload on especially RF systems, equipment on the network and administrators.

4.  Many large VOIP and RF Radio Networks has taken the decision not to broadcast any amateur radio news bulletins on their networks.  There are many reasons for this decision.  Some of these networks literally have 100's of systems including RF Repeaters connected together and it makes sense to not broadcast any club bulletins on such networks as a local club bulletin is meant for that specific club members and not for world wide broadcasting.  The ZS1I Hub  Network has therefor also taken the decision not to broadcast local club bulletins over the large network.

5.  Restructuring of the network.  Yes the dreaded word called restructuring, many hate to hear.  Unfortunately we do not live in the stone age and we as radio amateurs need to stay informed of the latest technology and experimenting.  Future changes to the ZS1I Hub Network will be made and some will love it others will hate it.  Amateur Radio means to regularly engage in the activity, developing skills, experiment, learning new things, and finding enjoyment in the process.  Sometimes we need to restructure the network, if not we will stagnate and not move forward with the times.  

The above surely explain the reasons why I will discontinue the broadcasting of local amateur radio news bulletins on the ZS1I Hub Network and create a free standing Amateur Radio News Server as explained above.

Finally:  As indicated the implementation date and how to use the server will be announced in a future posting when the all New  ZS1I Amateur Radio News Server will be operational.  Until then the current method will be still available. Test transmissions might be heard from time to time on the ZS1I Hub Network.

Friday, June 26, 2026

TYT MD-380 (UHF) DMR Tranceiver - Yes I have one and I do use it!!


I have been asked on several occasions whether I ever use a radio on DMR as it would appear that all the articles I post has to do with DMR applications that runs on a cellphone or PC.  In a past article I explained that with all do respect amateur radio is not only about real radios.  I use what I have available and that will serve the purpose that I have intended for it.  In other words I use the communications medium for a specific reason and purpose.  It is definitely not a hard and fast rule.  I use old valve tech to the newest surface technology, VoIP, Digital Voice modes etc. whenever I feel like using at the time. 

I do have several radios and use them as and when the need arise.   In this article I am going to look at the TYT MD380 DMR Handheld radio which I acquired several years ago when DMR was still in its infancy in South Africa.  Now why would I write and article about this specific radio.  It is really quite simple.  The TYT MD-380 is a popular, budget-friendly DMR (Digital Mobile Radio) handheld transceiver widely used by amateur radio operators and professionals. It offers a great entry point into digital communications, providing both analog FM and digital DMR Tier II capabilities.

Key Specifications & Features
  • Frequencies: Available in distinct single-band models: TYT MD-390 VHF (136 - 174 MHz) or TYT MD-380 UHF (400 - 480 MHz). (Dual-band models like the MD-UV380 are also available).
  • Power Output: Selectable high (5 W) and low (1 W) power settings.
  • Channels & Zones: 1,000 channels, organized into user-defined zones (16 channels per zone accessible via the rotary knob).
  • Display: Full-color LCD display showing channel, zone, battery life, and signal strength.
  • Battery: Typically comes with a 2000 mAh Li-ion battery, providing roughly 9 to 12 hours of active use.
  • Audio: Equipped with an AMBE+2 digital vocoder for clear digital audio. 
Programming
While the MD-380 allows basic front-panel configuration for frequencies and tones, advanced digital features (like assigning DMR talkgroups and contact lists) require PC programming. 
  • Software: Requires the free TYT CPS (Customer Programming Software) for Windows.
  • Cable: Requires a specific TYT USB programming cable (often uses a standard Kenwood 2-pin connector on the radio end). Note that this software is not natively supported on Mac computers. 
For a complete breakdown of the radio's features, menu options, and everyday functionality:
 
1.  TYT MD-380 - Miklor   Click HERE
2.  TYT MD-380 - Miklor Review   Click HERE
3.  TYT MD-380 - Radiosification Video   Click HERE
 
So far you wrote nothing about the out of ordinary about this radio!   That how it is.  I have never seen the need to purchase a radio with all the bells and whistles that never gets used and I do not buy a radio with the intend that I might use the bells and whistles some day.  O! and I do not have anything against bells and whistles.  My motto is to purchase a practical KISS  radio that is upgrade-able if it ever becomes necessary.  Enough of this.  Let's get to the upgrading of the TYT MD-380 radio.  
 
Thanks to the ingenuity of a few fellow radio amateurs for coming up with firmware that will "revolutionize" the MD-380. There are several different firmware upgrades available.
 
WARNING:  Please use the correct firmware for your specific radio.  I used the following tutorial to upgrade my MD-380,  available HERE.  I would suggest further reading for complete documentation with graphics of the added features available HERE. [PDF]  
I installed the following firmware for my TYT MD-380:   MD-380Toolz Ver  1 April 2018 CP Ver - V 01.37. 
The software builds upon the original custom open-source firmware project for the Tytera MD-380, which was reverse-engineered and developed by Travis Goodspeed (KK4VCZ) and his counterparts in the amateur radio community. 
MD380Tools is  custom, open-source firmware and a software toolkit designed for the TYT MD-380 (and similar DMR radios). It bypasses the limitations of the factory firmware, providing you with highly requested features like Promiscuous Mode (listening to all talk groups on a timeslot), full digital contact list storage, a microphone volume meter, and customized background images. 
Key Features
  • Full Database Support: Allows you to load the complete global DMR user database so the radio displays the caller's name, callsign, and location. 
  • Promiscuous Mode: Bypasses Talk Group restrictions so you can monitor all traffic on your current frequency, color code, and timeslot without needing to program specific groups. 
  • Custom Tweaks: Adds features like a visual microphone volume meter, screen customization, custom boot screens, and backlight timeouts. 
Requirements & Preparation
Before flashing your radio, you will need:
  1. Programming Cable: The standard USB programming cable that comes with the MD-380.
  2. Firmware File: The open-source patching tools, which are officially maintained via the Travis Goodspeed MD380Tools GitHub Repository.
  3. Backup: Use your standard MD-380 CPS (Customer Programming Software) to read your radio and save your current codeplug (radio settings and channels) to your computer before attempting any updates.
Installation & Flashing
Note: Installing custom firmware carries a small risk. Always ensure your radio is fully charged and the USB cable is not disturbed during the flash.
Further information on upgrading the TYT MD-380 is available HERE and HERE. 
Having paid less that 1K for this radio and upgrading it with the firmware MD-380Tools resulted in a very useful DMR Radio that I use daily to excess / monitor the ZS1I DMR Repeater in Mossel Bay.  I love this radio and I am sure that many others feel the same.
 
There you have it changing a budget and fairly aged DMR into a very useful DMR Radio.  Finally I do have amateur radio radios and I use them more frequent than some might think.  No pun intended!  As said before I like to use what I have available at the time for a specific purpose.
 
Images:  Click on images for larger view.
 
 




Is Social Media killing amateur radio on-the-air activity?

  In a recent discussion with a fellow radio amateur we discussed the use of WhatsApp, Telegram and even Facebook as a means of forwarding ...