Changes: - Add SCRIPT_DIR variable for locating companion scripts - Update addon_talkkonnect_intercom() to launch setup_intercom.sh - Replace 134 lines of duplicate code with 30-line integration - Update INTERCOM_README.md with clear usage instructions Benefits: - Single source of truth for intercom functionality - Easier maintenance (update only setup_intercom.sh) - Cleaner separation: install_kiosk handles UBK, setup_intercom handles intercom - Both scripts work standalone or together automatically Usage: - Option 1: Run install_kiosk_0.9.6.sh → Addons → Intercom (option 4) - Option 2: Run setup_intercom.sh directly - Both scripts must be in same directory (automatic when cloning repo)
7.4 KiB
UBK Intercom Setup - Mumble/Talkkonnect
This is a standalone script for setting up push-to-talk (PTT) intercom functionality for the Ubuntu Based Kiosk using Mumble/Talkkonnect.
How to Use
Option 1: Via Main Install Script (Recommended)
If you've cloned or downloaded the UBK repository, the intercom setup is automatically available:
# Run the main UBK installer
./install_kiosk_0.9.6.sh
# Navigate to: Main Menu → Addons Management (option 2)
# Then select: talkkonnect/Murmur Intercom (native audio) (option 4)
The main installer will automatically launch setup_intercom.sh when you select the intercom option.
Option 2: Standalone Usage
You can also run the intercom setup script directly:
# Make sure both scripts are in the same directory
cd /path/to/ubk
./setup_intercom.sh
Important: Both install_kiosk_0.9.6.sh and setup_intercom.sh must be in the same directory for the integration to work.
What's Included When You Download the Repository
When you clone or download the UBK repository, you get:
ubk/
├── install_kiosk_0.9.6.sh # Main UBK installer (has intercom integration)
├── setup_intercom.sh # Standalone intercom setup & management
├── INTERCOM_README.md # This file
└── integrate_intercom.sh # (Optional) Integration helper/documentation
Both scripts work together:
- install_kiosk_0.9.6.sh: Full UBK installation with integrated intercom support
- setup_intercom.sh: Dedicated intercom setup with its own menu system
You don't need to modify anything - just run either script and they'll find each other automatically.
Overview
The intercom system uses:
- Murmur: The Mumble server software (can run on one kiosk)
- talkkonnect: A headless Mumble client optimized for push-to-talk
Use Cases
1. All-in-One (Server + Client)
One kiosk acts as both the server and a client. Other devices can connect to it.
./setup_intercom.sh
# Select option 1: Install All-in-One (Server + Client)
2. Client Only
Connect to an existing Mumble server (could be another kiosk or external server).
./setup_intercom.sh
# Select option 3: Install talkkonnect Client Only
# Enter the server IP, port, and credentials
3. Server Only
Turn a kiosk into a dedicated Mumble server.
./setup_intercom.sh
# Select option 2: Install Murmur Server Only
Quick Start
Single Kiosk Setup (Server + Client)
cd /path/to/ubk
./setup_intercom.sh
- Select Option 1: Install All-in-One (Server + Client)
- Set a SuperUser password (for server administration)
- Set a server password (clients need this to connect)
- Set a welcome message
- Set a username for the talkkonnect client
- The client will auto-connect to the local server
Multi-Kiosk Setup
On the server kiosk:
./setup_intercom.sh
# Select option 2: Install Murmur Server Only
# Note the server IP address shown after installation
On each client kiosk:
./setup_intercom.sh
# Select option 3: Install talkkonnect Client Only
# Enter the server IP from above
# Port: 64738 (default)
# Enter username and password
Features
Push-to-Talk
- Default PTT key: Spacebar
- Press and hold to transmit audio
- Release to stop transmitting
Management
The script provides a full-featured menu for:
- Starting/stopping services
- Reconfiguring settings
- Viewing logs
- Uninstalling components
Connecting from Other Devices
Other devices can connect to your Mumble server using:
Desktop (Windows/Mac/Linux):
- Download Mumble client: https://www.mumble.info/downloads/
- Connect to:
<kiosk-ip>:64738
Mobile (iOS/Android):
- Install Mumble app from app store
- Add server:
<kiosk-ip>:64738
Configuration
Server Configuration
Location: /etc/mumble-server.ini
Key settings:
- Port: 64738 (default)
- Max users: 10
- Bandwidth: 72000
Client Configuration
Location: /home/kiosk/talkkonnect.xml
Key settings:
- Server address and port
- Username and password
- PTT button (default: spacebar)
- Audio settings
Troubleshooting
Check Service Status
# Check Murmur server
sudo systemctl status mumble-server
# Check talkkonnect client
sudo systemctl status talkkonnect
View Logs
Use the built-in menu options, or:
# Murmur logs
sudo journalctl -u mumble-server -n 50
# talkkonnect logs
sudo journalctl -u talkkonnect -n 50
Audio Issues
- Check audio devices:
arecord -l # List recording devices
aplay -l # List playback devices
- Test audio:
# Test microphone
arecord -d 5 test.wav && aplay test.wav
- Edit talkkonnect configuration:
nano /home/kiosk/talkkonnect.xml
# Adjust <audio> section device names
sudo systemctl restart talkkonnect
Firewall
If clients can't connect, ensure port 64738 is open:
sudo ufw allow 64738/tcp
sudo ufw allow 64738/udp
Integration with Main Install Script
To integrate this into the main UBK install script:
Option 1: Direct Integration
Add to the addon menu in install_kiosk_*.sh:
# In the addon menu section
echo " X. Intercom (Mumble/Talkkonnect)"
# In the case statement
X)
# Source and run the intercom script
bash setup_intercom.sh
;;
Option 2: Call as External Script
# From anywhere in the install script
if [[ -f "$SCRIPT_DIR/setup_intercom.sh" ]]; then
bash "$SCRIPT_DIR/setup_intercom.sh"
else
echo "Intercom setup script not found"
fi
Option 3: Function Import
Source the functions for use in the main script:
# Source the intercom functions (requires extracting functions to separate file)
source "$SCRIPT_DIR/intercom_functions.sh"
# Then call functions directly
install_murmur_and_talkkonnect
Technical Details
Murmur Server
- Package:
mumble-server - Service:
mumble-server.service - Port: 64738 (TCP/UDP)
- Config:
/etc/mumble-server.ini - Database:
/var/lib/mumble-server/mumble-server.sqlite
talkkonnect Client
- Written in: Go
- Built from: https://github.com/talkkonnect/talkkonnect
- Binary:
/home/kiosk/go/bin/talkkonnect - Service:
talkkonnect.service - Config:
/home/kiosk/talkkonnect.xml
Dependencies
- Go 1.23.4+
- libopenal-dev
- libopus-dev
- alsa-utils
- portaudio19-dev
- git
Network Requirements
- Server: Port 64738 (TCP/UDP) must be accessible
- Clients: Outbound access to server on port 64738
- Local Network: For LAN-only intercom, no internet required
- Remote Access: If connecting over internet, configure port forwarding
Security Considerations
- Server Password: Set a strong server password to prevent unauthorized access
- SuperUser Password: Keep this secure - it has admin privileges on the server
- Network: Consider using a VPN for remote access instead of exposing port 64738 to the internet
- Certificates: For production, consider setting up SSL/TLS certificates (currently using
insecure: true)
Version History
- v1.0.0 - Initial standalone release
- Full Murmur server installation
- talkkonnect client installation
- All-in-one option
- Service management
- Configuration tools
Support
For issues or questions:
- Check logs using the built-in menu options
- Review the Troubleshooting section
- Check talkkonnect documentation: https://github.com/talkkonnect/talkkonnect
- Check Mumble documentation: https://wiki.mumble.info/