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)
311 lines
7.4 KiB
Markdown
311 lines
7.4 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.
|
|
|
|
## 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:
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# 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.
|
|
|
|
```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/
|