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; }

Sunday, June 21, 2026

New AllStarLink3 - Mumble Bridge (Additions / Extensions) to the ZS1I HUB Network in Mossel Bay (Part 3)


(Click on image for larger view.)

Time to get to the "real juicy bit" on how to install all the "ingredients" to setup the Mumble Bridge / Server / Client.  

Now how do you install and setup an ASL3 / Mumble Bridge / Server / Client?  Million dollar question?   Now there are very few tutorials out there on the Internet that will assist you in installing a ASL3 / Mumble Bridge.  I will however explain in this article how I went about installing and setting up the ZS1I Mumble Bridge on a Raspberry Pi 3 b with the assistance of AI.

For the purpose of this tutorial I am not going to explain how to install AllStarLink Ver 3 on an SD Card for use on a Raspberry Pi. The  ASL3 Landing Page includes the ASL Manual.  Click on the above link and you will be redirected to a comprehensive online manual for AllStarLink Ver 3.  Here you will find all the necessary information to install AllStarLink Ver 3 successfully.

With regards to installing and setting up the Bridge we need to install and setup a public and private node, edit files, test connections to nodes, install and setup Mumble Server, open ports on you Internet Router and a few "odds and ends".  More information on the sequence list available HERE.  Do not run away!  It is fairly simple to get the ASL3 Mumble Bridge up and running.  Having knowledge of Linux and the Raspberry Pi will make it easier to navigate through all the installations and setups. Even if you do not have experience in this regard you will be able to install ASL3 and the Mumble Bridge if you follow all the instructions carefully.

Let's get going!!

Image 1 (Click on image for larger view.) 

I assume you already booted the PI and that you are on the Landing Page as displayed above.  (Image 1) To get to the landing page just enter the Raspberry Pi's IP address in you Internet Browser.  I use Firefox.   Click on Web Admin Portal window.  The AllStarLink System Manager page will open.  Login with your username and password.  (Image 2) 

Image 2 (Click on image for larger view.) 


Image 3  (Click on image for larger view.)

A new window will open , called the cockpit,  displaying many options. (Image 3)  At the top a banner will be displayed  - Web console is running in limited access mode.
Click on "Turn on Administrative Access".   You will now have Administrative Access.  On the left side of the page go to Terminal and click on it.  Terminal will open.  After the $ sign type:

sudo asl-menu [enter]

The asl-menu will open and here we are going to setup a New Private Node.

The AllStarLink Main Menu will open.  Select 1 Node Settings  [enter to select]

In the Node Setup Main Menu select 1 - Allstar Node Setup Menu [enter to select]

A new menu Allstar Node Select Menu will open .  Select A - Add Node  [enter to select]

Enter new node number:  I used 1977 ( Anything between 1800 - 2000.  Do not use private node number already used in other AllStarLink Nodes)

Question will appear asking:  What configuration settings should we use for Node 1977?

Select 0  None of the above (show all settings) [enter to select]

Node 1977 info will appear:

1  Node Number:  1977

2  Node Password:                (Leave blank.)

3  Node Call sign:  ZS1I   (Enter you call sign here)

4  Radio Interface:  Select No Radio interface or Hub Node

5  Duplex Type:  Select 0  Half / Full duplex with no telemetry link -  Use  space bar to select.  Select half duplex.  Next select Back and Back again.  Select 2  Restart Asterisk  <- Needed   [enter to select]

Asterisk will restart

Node Setup Main Menu will appear again.  Select 3  Update Asterisk AMI Password

Enter to select.  If you have not changed it do in now.  I already changed mine earlier.

Select 4 Update Asterisk IAX Port.  Enter Change Port.  I used 4566 -  Ensure that this port forwarding is also opened in you Internet Router.

Exit Main Menu

Select <Back>

The AllStarLink Main Menu will open.

Asterisk must be restarted to make your changes alive.  Are you sure you want to exit now.  (Note:  Asterisk restart can be done selecting 7 Logout/Reboot/Shutdown.  Select 3)

Select Yes and [enter]

Type the following at the prompt in the Terminal

sudo systemctl restart asterisk.service  [enter]

After  restart type the following at the prompt in the Terminal   

cd /etc/allmon3  [enter]

then sudo nano allmon3.ini [enter]

Go to the bottom of the page and enter the  following:

[1977]
host=127.0.0.1
user=admin
pass= xxxxxx  ;your asterisk AMI password we created earlier
 
Let's save the info
Hit Ctrl + X
Yes
[enter]
 
Reboot the node.  At the prompt type:

sudo reboot now [enter]

Go to Web Admin Portal (Click on Window)

Log in again 

AllStarLink System Manager will show up (Cockpit)

Turn on Administrative Access

Let's go to the Allmon3 page

Open and Internet Browser Tab  and type

https://IP Address /allmon3/  [enter]

Browser Page will Refresh.  If not just click refresh button (reload current page)

Node 1977 has been added once the page has reloaded. We now have two nodes displayed.  AllStarLink3 Node (467650) and 1977.  


Image:  Allmon3 Monitoring Dashboard (Click on image for larger view.) 

Login to Allmon3  (left side of page under nodes)

Username:  ZS1I

Password:  XXXXXX

We now need to check if node 1977 can connect to the AllStarLink3 Node you choose.

Choose the block with the two links on the right side of the Allmon3 Monitoring  Dashboard page

Select  command and select connect
Node # = 1977
Permanent = No
Click  Execute
 
The two nodes will be connected.  See Connect State.  It says  ESTABLISHED at both the nodes.

Now Disconnect by clicking on  X left to Node 1977 - Hover over it. The X will turn to a maroon colour.  Screen will come up to disconnect node.  Just click Execute.
The two nodes will now be disconnected.
 
But hey we do not want to connect the two nodes plus the main 49355 node manually.  We want it done automatically.
 
For this to happen we will be using the script provided by KF5FMU on his GitHub page available HERE.  I am not going to go into detail on how to install the script as this has been nicely set out by Freddie KF5FMU on his GitHub pages.  I will however provide an example of my check-connection.conf script file below.
 

check-connection.conf (Script File)

$cd /etc/asterisk/local/ [enter]

sudo nano check-connection.conf [enter]

# AllStarLink 3 Check Connection Configuration

# Created by install-asl3-check-connection.sh

# Your local AllStarLink node number

LOCAL_NODE="467650"

# Space-separated list of target nodes that should stay connected.

TARGET_NODES="1977 49355"

# Connection prefix:

# *3 = transceive connect

# *2 = monitor connect

CONNECT_PREFIX="*3"

# Wait this many seconds after issuing each reconnect command.

RECONNECT_DELAY_SECONDS="2"

# Set to "yes" for extra terminal output when run manually.

# Set to "no" if you want quieter cron logs.

VERBOSE="yes"

# Full path to the Asterisk binary.

ASTERISK_BIN="/usr/sbin/asterisk"

 

If you setup everything correctly and rebooted your Raspberry Pi your selected nodes should now automatically connect to each other. (See image below)
 

(Click on image for larger view.) 
 
Onto the installation of DVSwitch on the Raspberry PI.
 
Go to the Cockpit
Select Terminal (Click on it)
At the prompt enter:
sudo su -  [Enter]
root@asl3:~#
You now have root access. 
 
Let's install DVSwitch:
 
At the prompt type:
wget dvswitch.org/bookworm [enter]
chmod +x bookworm [enter]
. /bookworm [enter]
apt update [enter]
apt install dvswitch-server [enter]

When DVSwitch server is finished installed reboot the Pi
sudo reboot now [enter]
 
We are going to leave DVSwitch as is - no setup - as we will only use the Analog_Bridge folder where we will install a few other firmware files.  Amongst the files will be the mumble_bridge.py (Python) script file.
 
Time now to install Pymumble  
 
To install pymumble on a Raspberry Pi, you need to install its system dependencies first, followed by the Python package itself.

1. Update Your System

Ensure your Raspberry Pi packages are up to date. 

    • Open your terminal.
    • Run: sudo apt update
    • Run: sudo apt upgrade -y

2. Install System Dependencies

pymumble relies on Opus audio codecs and specialized development libraries.

    • Run: sudo apt install python3-dev libopus-dev gcc -y

3. Install pymumble
 
Use pip to install the package. Depending on your OS version, you may need to use a virtual environment.

Option A: Using a Virtual Environment (Recommended for Raspberry Pi OS Bookworm and newer) 

    • Create a environment: python3 -m venv myenv
    • Activate it: source myenv/bin/activate
    • Install the library: pip install pymumble

Option B: System-wide Installation 
 
    • Run: pip3 install pymumble 

4. Verify the Installation

Check that the library imports correctly.

    • Run: python3 -c "import pymumble; print(pymumble.__version__)"
    • If no error appears, the installation was successful. 

Time now to install Pymumble 


Image:  See the ZS1I_467650_Bot  (Click on image for larger view.)

Pymumble is an open-source library that allows you to build custom clients and automated bots for Mumble, a popular privacy-focused, self-hosted voice chat server. Written in Python, it acts as a programmatic interface to connect, speak, listen, and manage server channels.   You will notice on the image above that I opted to use an automated bot for Mumble.  I called it the ZS1I_467650_Bot.  The ZS1I_467650_Bot will automatically connect to the Mumble Server.

Key Features of Pymumble

  • Audio Streaming: It allows developers to stream audio directly into Mumble channels (e.g., custom music or soundboard bots) and record incoming audio streams. 

  • Event Callbacks: The library triggers events based on server activity, such as when a user connects, disconnects, speaks, or creates a channel. 

  • Server Management: It functions as an automated administrative tool to move users, mute/deafen, or send text messages programmatically. 

Common Use Cases

  •  Music Bots: Frequently used to create dedicated audio bots (often playing stereo or high-fidelity streams) that provide music in Mumble voice channels. 

  • Recording Bots: Used for writing custom scripts to record conversations and save speech data. 

  • Amateur Radio Bots: In amateur radio, Pymumble is primarily used to bridge the gap between traditional radio frequencies (RF) and internet-based Voice over IP (VoIP) networks. Radio Amateurs leverage Mumble because its open-source, ultra-low latency Opus audio codec preserves signal clarity—making it a popular tool for building custom gateways, internet links, and remote station controllers.

Getting Started

The library is available and actively maintained across multiple active forks, such as the Azlux Pymumble GitHub Repository and the reworked Sourcehut Pymumble Library.

Note:  I used Option B to install pymumble and it worked first time around.

 


Image:  Mumble_Bridge.py in Thonny Python IDE

Installation of the Mumble_Bridge.py script file 

It is now time to install the Mumble_Bridge.py script file that was created in collaboration with AI.  The script file will be installed in the Analog_Bridge directory located at $ /opt/Analog_Bridge.  Name of the file = mumble_bridge.py (6.6kb Python file dated 8 June 2026 18:38:09) Copy this script file to the Analog Bridge folder using FileZilla or the Terminal. ( $ /opt/Analog_Bridge/Mumble_Bridge.py)

Please take note of the following relating to the Mumble_Bridge.py script:

Open Source Sharing (License File)

 
Copyright (c) 2026 Johan ZS1I and Artificial Intelligence (AI)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including the rights to use, copy, 
modify, merge, and publish copies of the Software, subject to the following 
conditions:

1. The Software is NOT to be sub-licensed or sold in copies for commercial 
   purposes under any circumstances.
2. Any distributed or modified versions of this Software must retain the 
   above copyright notice, this list of conditions, and this disclaimer.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Mumble_Bridge.py script file can be downloaded by clicking HERE.

Time to install the tcpdump network packet analysis utility program

 
You might not need this firmware but if you run into audio packet issues then this software will assist you in solving the issues.  This firmware  needs to be installed on the Raspberry Pi 4.
 
Always a good thing to reboot your Raspberry Pi after the installation of firmware.  Reboot now.
 
 
Image: Mumble Client

Install the following firmware on the PC that will host your Mumble Client and Server.  
 
I use a Dell Optiplex PC running Linux Mint 22.3 for this purpose. 
 
1.  Install the Mumble Client (PC) version.  This is your main control program where you will see all the clients, channels, servers and bots.  Mumble uses a client-server architecture which allows users to talk to each other via the same server.
 
In the Terminal window run the following commands:
 
sudo apt update && sudo apt install mumble -y 
 

Image:  Mumble Server 
 
2.  Install the Mumble Server.  Also called Murmur.  Murmur is the VoIP server component for Mumble.  Murmur is installed in a system-wide fashion, but can also be run by individual users.  Each Murmur process supports multiple virtual servers, each with their own user base and channel list. 
 
In the Terminal window run the following commands:
 
sudo apt update && sudo apt install mumble-server -y 
 
After installation reboot the PC:  sudo reboot now 

We are nearly finish installing all the firmware needed.  The final firmware installation will be done on your mobile phone.  I use an Oppo phone which runs Android.  Here is how I installed the Mumble Client.


Image:  Plumble Phone Client 

Plumble Free Ver 3.2.0 nowadays called Mumla - Mumble VoIP can be downloaded from the Google PlayStore

Note:  I would advise that the Mumble PC Client and the Murmur (Mumble) Server be installed completely separate from ASL3 / DVSwitch/Mumble_Bridge on the Raspberry Pi 4.  I found that the performance is just better and faster and there is no clashing/fighting between the firmware.

Enough for now.  In Part 4 we will be looking at the setup and configuration of all the firmware to ensure clean, crisp, good audio between all the network connections.  

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 ...