Created modular, standalone intercom system to avoid bloating the 10,000+ line main install script. New Files: - setup_intercom.sh: Complete standalone installation and management * Install Murmur server (one kiosk becomes the server) * Install talkkonnect client (connect to existing server) * Install both (all-in-one setup) * Full service management (start/stop/restart) * Configuration tools * Log viewing * Uninstall options - INTERCOM_README.md: Comprehensive documentation * Quick start guide * Use cases and scenarios * Multi-kiosk setup instructions * Troubleshooting guide * Integration instructions * Technical details - integrate_intercom.sh: Integration helper * Shows how to wire into main install script * Example menu integration code * Alternative sourcing method Features: ✓ Menu-driven interface with dynamic options ✓ Status display (installed/running state) ✓ Server configuration (password, port, welcome text) ✓ Client configuration (server, credentials, channel) ✓ Service management (enable/disable/start/stop) ✓ Log viewing for diagnostics ✓ Clean uninstallation Use Cases: 1. Single kiosk (server + client) 2. Multi-kiosk (one server, multiple clients) 3. Connect to external Mumble server 4. Other devices can connect (desktop/mobile Mumble apps) Technical: - Murmur server on port 64738 - talkkonnect built from source with Go - Systemd service management - Audio through ALSA/PipeWire - PTT via keyboard (default: spacebar) Next Steps: - Test installation on clean system - Wire into main install script addon menu - Consider auto-discovery for multi-kiosk setups
5.9 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.
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/