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