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
267 lines
5.9 KiB
Markdown
267 lines
5.9 KiB
Markdown
# 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.
|
|
|
|
```bash
|
|
./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).
|
|
|
|
```bash
|
|
./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.
|
|
|
|
```bash
|
|
./setup_intercom.sh
|
|
# Select option 2: Install Murmur Server Only
|
|
```
|
|
|
|
## Quick Start
|
|
|
|
### Single Kiosk Setup (Server + Client)
|
|
|
|
```bash
|
|
cd /path/to/ubk
|
|
./setup_intercom.sh
|
|
```
|
|
|
|
1. Select **Option 1: Install All-in-One (Server + Client)**
|
|
2. Set a SuperUser password (for server administration)
|
|
3. Set a server password (clients need this to connect)
|
|
4. Set a welcome message
|
|
5. Set a username for the talkkonnect client
|
|
6. The client will auto-connect to the local server
|
|
|
|
### Multi-Kiosk Setup
|
|
|
|
**On the server kiosk:**
|
|
```bash
|
|
./setup_intercom.sh
|
|
# Select option 2: Install Murmur Server Only
|
|
# Note the server IP address shown after installation
|
|
```
|
|
|
|
**On each client kiosk:**
|
|
```bash
|
|
./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
|
|
|
|
```bash
|
|
# Check Murmur server
|
|
sudo systemctl status mumble-server
|
|
|
|
# Check talkkonnect client
|
|
sudo systemctl status talkkonnect
|
|
```
|
|
|
|
### View Logs
|
|
|
|
Use the built-in menu options, or:
|
|
|
|
```bash
|
|
# Murmur logs
|
|
sudo journalctl -u mumble-server -n 50
|
|
|
|
# talkkonnect logs
|
|
sudo journalctl -u talkkonnect -n 50
|
|
```
|
|
|
|
### Audio Issues
|
|
|
|
1. Check audio devices:
|
|
```bash
|
|
arecord -l # List recording devices
|
|
aplay -l # List playback devices
|
|
```
|
|
|
|
2. Test audio:
|
|
```bash
|
|
# Test microphone
|
|
arecord -d 5 test.wav && aplay test.wav
|
|
```
|
|
|
|
3. Edit talkkonnect configuration:
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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`:
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# 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
|
|
|
|
1. **Server Password**: Set a strong server password to prevent unauthorized access
|
|
2. **SuperUser Password**: Keep this secure - it has admin privileges on the server
|
|
3. **Network**: Consider using a VPN for remote access instead of exposing port 64738 to the internet
|
|
4. **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/
|