Commit Graph
152 Commits
Author SHA1 Message Date
outis1one f78f4fce91 Merge pull request #46 from outis1one/claude/murmur-barnard-install-script-01TXWGugYCM3saUyo6NYhW7Z
Add talkiepi-based intercom setup as simpler alternative to talkkonnect
2025-11-23 14:06:56 -05:00
Claude b1a007778a Add talkiepi-based intercom setup as simpler alternative to talkkonnect
Created setup_intercom_simple.sh using talkiepi (barnard fork) instead of
talkkonnect for a more stable and lightweight intercom solution.

Advantages over talkkonnect:
- Simpler build process (no Opus patching required)
- Fewer dependencies (just Go, libopenal, libopus)
- Full CLI support for server, username, password, and channel
- More stable and less fragile
- Better suited for headless/kiosk automation

Also added INTERCOM_COMPARISON.md documenting all evaluated options
(talkkonnect, talkiepi, barnard, mumbler) with recommendations.
2025-11-23 19:05:30 +00:00
outis1one 28dddc2117 Merge pull request #45 from outis1one/claude/mumble-kiosk-setup-01RUgNotdEkjq4KfNRBeqDyK
Fix talkkonnect uninstall in setup_intercom.sh
2025-11-23 13:31:52 -05:00
Claude 5efc4a6e91 Fix talkkonnect uninstall in setup_intercom.sh
The uninstall function was only removing old installation paths, causing
talkkonnect to appear as "still installed" after uninstalling.

Fixed both check_talkkonnect_status() and uninstall_talkkonnect():

check_talkkonnect_status():
- Now checks for both old and new installation locations
- Old: ~/go/bin/talkkonnect and ~/talkkonnect.xml
- New: /usr/local/bin/talkkonnect and ~/.config/talkkonnect/
- Checks all locations to accurately determine if installed

uninstall_talkkonnect():
- Removes binaries from BOTH /usr/local/bin and ~/go/bin
- Removes config from BOTH ~/.config/talkkonnect and ~/talkkonnect.xml
- Properly stops and disables service before removing
- Shows progress with descriptive messages
- Optionally removes source directory ~/talkkonnect
- Only performs actions if files/directories actually exist

Now uninstall properly removes everything and status correctly shows
"Not installed" after uninstalling.
2025-11-23 18:28:56 +00:00
outis1one bcc538a0be Merge pull request #44 from outis1one/claude/mumble-kiosk-setup-01RUgNotdEkjq4KfNRBeqDyK
Claude/mumble kiosk setup 01 r ug notd ekjq4 kf nr beq dy k
2025-11-23 12:10:00 -05:00
Claude c07ec69eaf Integrate proven talkkonnect installation into setup_intercom
Completely replaced the install_talkkonnect_with_config() function in
setup_intercom.sh with the proven method from talkkonnect_complete_install.sh.

Key improvements:
- Uses working Opus patch for x86_64 architecture
- Installs to /usr/local/bin/talkkonnect (not ~/go/bin)
- Config in ~/.config/talkkonnect/ (proper XDG location)
- Sets <insecure>true</insecure> by default (handles self-signed certs)
- Proper XDG_RUNTIME_DIR in systemd service for PipeWire/audio
- Automatically enables service (starts on boot)
- Better progress feedback and error handling
- Uses Go 1.24.1 (latest stable)

The function now:
1. Installs all dependencies correctly
2. Builds with proper Opus library integration
3. Creates config with user's server/credentials from prompts
4. Sets up systemd service properly
5. Enables and starts service automatically

This makes setup_intercom.sh a complete, reliable one-stop solution
that uses the same proven method as talkkonnect_complete_install.sh
while maintaining the interactive prompt workflow.

Included files:
- setup_intercom.sh - Updated with new function
- setup_intercom.sh.backup - Backup of original
- setup_intercom_talkkonnect_function.txt - Reference for the new function
- update_setup_intercom.sh - Script used to perform the replacement
2025-11-23 16:50:04 +00:00
Claude be26312ca9 Add quick fix script for talkkonnect issues
Created fix_talkkonnect_now.sh to resolve immediate issues:
- Sets <insecure>true</insecure> for self-signed certificates
- Warns about SuperUser account (admin-only, not for clients)
- Fixes file ownership and permissions
- Creates/updates systemd service
- Enables and starts talkkonnect service automatically

This fixes:
- Certificate errors ("wrong certificate")
- SuperUser connection issues (can't connect as SuperUser)
- Service not starting automatically

The script detects existing installations and fixes them in-place.

Minor update to setup_intercom.sh to indicate improved method.
2025-11-23 13:01:19 +00:00
Claude 10a73fc6d4 Add audio troubleshooting tools and documentation
Added fix_talkkonnect_audio.sh diagnostic script:
- Checks PipeWire/PulseAudio session availability
- Lists all audio devices (ALSA, PulseAudio/PipeWire)
- Shows current talkkonnect audio configuration
- Provides specific recommendations for audio issues
- Includes test commands for verifying audio

Updated TALKKONNECT_SETUP.md:
- Added "Common Warnings (Usually Non-Fatal)" section
- Explains "Unable to Unmute" error (cosmetic, audio usually works)
- Explains "Unable to Find Channel Name" warning
- Explains "Failed to connect PipeWire event context" error
- Added reference to audio diagnostic script
- Included quick audio test commands

These help users understand that common errors like "Unable to Unmute"
are non-fatal and audio typically works despite the warnings.
2025-11-23 12:45:17 +00:00
outis1one 33f7cf8136 Merge pull request #43 from outis1one/claude/mumble-kiosk-setup-01RUgNotdEkjq4KfNRBeqDyK
Claude/mumble kiosk setup 01 r ug notd ekjq4 kf nr beq dy k
2025-11-23 07:38:31 -05:00
Claude f56f0be57a Fix permission issues when creating config in different user's home
The installation script was failing with "Permission denied" when trying
to create the config directory in another user's home directory.

Fixes:
1. Added home directory existence check before creating config
2. Use sudo -u to create directory as target user when needed
3. Use sudo tee to write config file (handles all permission scenarios)
4. Use sudo for sed command to modify the created config file
5. Always set proper ownership and permissions after creation

This fixes the "mkdir: cannot create directory '/home/kiosk': Permission denied" error.

Now the script will:
- Verify target user's home directory exists (fail gracefully if not)
- Create config directory as the target user
- Write config file with sudo to avoid permission issues
- Set proper ownership (user:user) and permissions (755 dir, 644 file)
2025-11-23 12:36:09 +00:00
Claude e47251991e Add diagnostic script and improve permission fix for talkkonnect
Added diagnose_talkkonnect.sh to help troubleshoot installation issues:
- Checks binary installation
- Finds all config files and shows ownership
- Analyzes systemd service configuration
- Detects audio/PipeWire sessions for each user
- Identifies permission mismatches
- Provides specific recommendations

Improved fix_talkkonnect_permissions.sh:
- Now automatically updates systemd service file if needed
- Changes service user to match target user
- Updates config path in service file
- Reloads systemd after changes
- Stops service before making changes

These tools help resolve the "permission denied" error when talkkonnect
is configured to run as one user but config is owned by another.
2025-11-23 04:43:18 +00:00
outis1one bce7c540e5 Merge pull request #42 from outis1one/claude/mumble-kiosk-setup-01RUgNotdEkjq4KfNRBeqDyK
Fix talkkonnect permission issues and add setup documentation
2025-11-22 23:27:55 -05:00
Claude 28a3e394d8 Fix talkkonnect permission issues and add setup documentation
The installation script had a critical bug where it created the config
directory in the script runner's home directory instead of the target
user's home directory. This caused "permission denied" errors when the
systemd service tried to run as the target user.

Changes:
- Fixed CONFIG_DIR to use $TARGET_HOME instead of $HOME
- Updated config path replacements to use $TARGET_HOME
- Added ownership change after config creation when running as different user
- Created fix_talkkonnect_permissions.sh script to repair existing installations
- Added comprehensive TALKKONNECT_SETUP.md with troubleshooting guide

This fixes the "open /home/user/.config/talkkonnect/talkkonnect.xml: permission denied" error.
2025-11-23 04:25:56 +00:00
outis1one cd5a52de63 Merge pull request #41 from outis1one/claude/integrate-talkkonnect-install-016rfpEaspgs7mfn2XHEVj7W
Claude/integrate talkkonnect install 016rfp easpgs7mfn2 xhe vj7 w
2025-11-22 23:13:11 -05:00
Claude a2136226b4 Fix Bluetooth scanning bailing after device discovery
The script was exiting immediately after showing "Devices found: 14" because
the timeout command returns exit code 124, which caused the script to bail
due to 'set -euo pipefail'. Added '|| true' to wait and bluetoothctl scan off
commands to allow the script to continue executing and display the device list.

install_kiosk_0.9.6-2.sh:7185-7186
2025-11-23 04:11:56 +00:00
Claude 035950df48 Fix addons menu numbering and improve bluetooth device scanning
Fixes:
1. Addons menu: Remove duplicate menu items (1,2 appeared twice)
   - Fixed numbering: Remote Access is now option 5 instead of 6

2. Bluetooth scanning improvements:
   - Make controller pairable/discoverable before scanning
   - Capture scan output to show DISCOVERED devices (not just paired)
   - Real-time progress indicator during 30-second scan
   - Separate display of discovered vs already-paired devices
   - Better error handling for pairing failures
   - Proper cleanup of scan process with 'scan off'
   - Helpful hints when pairing fails (e.g., AuthenticationFailed)

The bluetooth scan previously only showed paired devices after scanning,
which made it appear that no devices were found even when they were
broadcasting. Now it properly captures and displays discovered devices.
2025-11-23 03:53:51 +00:00
Claude 0722e8786c Add diagnostic script to check talkkonnect terminal fix status
Created check_talkkonnect_fix.sh to verify if the terminal initialization
fix has been applied to the talkkonnect systemd service. This script checks
for the presence of:
- Environment="TERM=dumb"
- StandardInput=null

These settings are required to prevent the "Cannot Initialize Terminal" error
when talkkonnect runs as a systemd service without a TTY.
2025-11-23 03:42:05 +00:00
Claude 80fd5d5d10 Fix talkkonnect terminal initialization error in systemd service
PROBLEM:
- talkkonnect fails with "Cannot Initialize Terminal" error
- Service shows "Talkkonnect Terminated Abnormally" in logs
- Root cause: talkkonnect uses termbox-go which requires a TTY
- Systemd services don't provide TTY by default

SOLUTION:
- Added Environment="TERM=dumb" to systemd service
- Added StandardInput=null to prevent terminal initialization
- Both changes allow talkkonnect to run headless as a service

CHANGES:
- Updated install_kiosk_0.9.6-1.sh with the fix
- Created install_kiosk_0.9.6-2.sh (new version with fix)
- Added fix_talkkonnect_terminal.sh for quick patching of existing installations
2025-11-23 03:16:54 +00:00
outis1one 369fd71ece Merge pull request #40 from outis1one/claude/integrate-talkkonnect-install-016rfpEaspgs7mfn2XHEVj7W
Add version 0.9.6-1: Bluetooth edition with WebRTC/Jitsi removed
2025-11-22 22:08:09 -05:00
Claude e6eafc10b1 Add version 0.9.6-1: Bluetooth edition with WebRTC/Jitsi removed
Created new version 0.9.6-1 that removes all WebRTC and Jitsi intercom
functionality and adds comprehensive Bluetooth support instead.

Changes:
- REMOVED: WebRTC intercom system (all auto-discovery, mesh networking, PWA client)
- REMOVED: Jitsi web intercom (all configuration, PTT service, PIN dialog)
- ADDED: Bluetooth addon with device management
  * Scan and pair bluetooth devices
  * Connect/disconnect bluetooth audio devices
  * Auto-reconnect to trusted devices
  * Battery status display for supported devices
- UPDATED: Addon menu now shows "Bluetooth Audio & Devices" instead of Jitsi
- UPDATED: Logs menu now includes Bluetooth logs
- UPDATED: Installation overview lists bluetooth instead of Jitsi
- UPDATED: Version header documents this as "Bluetooth Edition"

Recommended: Users should use talkkonnect addon for native PTT intercom
instead of web-based solutions for better audio quality and lower latency.

File size reduced from 338KB to 322KB (removed ~400 lines of code)
All bash syntax validated successfully
2025-11-23 02:40:16 +00:00
outis1one 71d7d29c54 Merge pull request #38 from outis1one/claude/integrate-talkkonnect-install-016rfpEaspgs7mfn2XHEVj7W
Claude/integrate talkkonnect install 016rfp easpgs7mfn2 xhe vj7 w
2025-11-22 20:55:39 -05:00
Claude 9a1425b137 Fix talkkonnect status detection using systemd service file
The status check was showing "Not installed" even after successful
installation because it relied on PATH and file checks that weren't
working reliably.

Changes:
- Check for /etc/systemd/system/talkkonnect.service first
- This is the most reliable indicator of installation
- Systemd service file is created during install and requires root
- Falls back to command/file checks if service file doesn't exist

This ensures status shows correctly immediately after installation.
2025-11-23 01:03:04 +00:00
Claude f6f2202e32 Stop running talkkonnect before binary replacement
Fixes "Text file busy" error and "Not installed" status:

1. **Stop service before install** (lines 535-547)
   - Check if talkkonnect service is running
   - Stop systemd service if active
   - Kill any stray processes
   - Sleep 1 second to ensure file is released
   - Then copy the new binary

2. **Fix status check** (line 72)
   - Changed from $HOME/go/bin/talkkonnect
   - To /home/$KIOSK_USER/go/bin/talkkonnect
   - Now correctly detects installed binary

3. **Separate build and install steps**
   - Build completes inside first sudo block
   - Installation happens in second sudo block after stopping service
   - Clean error handling for each step

This matches the working talkkonnect_complete_install.sh approach.
2025-11-23 00:56:03 +00:00
Claude 387cbec099 Move binary installation inside sudo block to fix permission check
The build was succeeding but the post-build verification was failing
because it tried to check /home/kiosk/talkkonnect-binary from outside
the sudo -u kiosk block.

Changes:
- Move binary verification and installation inside the sudo -u block
- Use ~ instead of /home/$KIOSK_USER (more reliable inside sudo)
- Remove redundant chmod/chown after sudo block
- Binary now installed while running as kiosk user

This matches the approach from talkkonnect_complete_install.sh where
all file operations happen inside the user context.
2025-11-23 00:50:52 +00:00
outis1one 90e71e2186 Update install_kiosk_0.9.6-1.sh 2025-11-22 19:40:16 -05:00
outis1one d2764414f5 Merge pull request #37 from outis1one/claude/add-bluetooth-support-01VdjKaW8z5R1ptyHpA9HHHc
Add Bluetooth audio addon to install_kiosk v0.9.6
2025-11-22 19:27:17 -05:00
outis1one d42f1f17ae Merge pull request #36 from outis1one/claude/integrate-talkkonnect-install-016rfpEaspgs7mfn2XHEVj7W
Fix talkkonnect x86_64 build failure with Opus patch
2025-11-22 19:26:11 -05:00
Claude 21bbd1389b Add Bluetooth audio addon to install_kiosk v0.9.6
Implements comprehensive Bluetooth speaker/headphone support:
- Interactive pairing wizard using expect/bluetoothctl
- Device management (add, remove, disconnect, reconnect)
- Auto-reconnect on boot via systemd service
- Audio routing with PipeWire/PulseAudio integration
- Built-in diagnostics for troubleshooting
- Status display in addons menu
- Avoids CLI complexity with automated pairing workflow

Features:
- Section 14.5: Complete Bluetooth addon module
- Menu integration: New option 7 in Addons menu
- Status tracking: Shows paired/connected device counts
- Compatible with existing Squeezelite/Jitsi audio stack
2025-11-22 23:56:14 +00:00
Claude e6d0374538 Use kiosk home directory for talkkonnect build (fixes permission errors)
Changed from /tmp to ~/talkkonnect to match working script approach:
- Clone to /home/$KIOSK_USER/talkkonnect instead of /tmp/talkkonnect-src
- Build to ~/talkkonnect-binary then copy to ~/go/bin/talkkonnect
- Run all operations as kiosk user from the start
- No chown needed - user owns their own home directory

This eliminates all "Permission denied" errors when:
- Creating vendor directory
- Removing old source files
- Building the binary

Matches the proven approach from talkkonnect_complete_install.sh
2025-11-22 23:50:15 +00:00
Claude d16ca7a408 Fix vendor directory permission denied error
Added chown after git clone to give kiosk user ownership of the
/tmp/talkkonnect-src directory. This allows 'go mod vendor' to
successfully create the vendor directory when running as kiosk user.

Without this fix, the build would fail with:
  "go: mkdir /tmp/talkkonnect-src/vendor: permission denied"
  "Warning: gopus not found in vendor directory"
  "[ERROR] Binary not executable after build"
2025-11-22 23:39:37 +00:00
Claude d544c5a702 Fix talkkonnect x86_64 build failure with Opus patch
Critical fixes to resolve "[ERROR] Binary not executable after build":

1. **Opus x86_64 Compatibility Patch**
   - Added gopus library patch to use system libopus for x86_64
   - The embedded Opus source in gopus is ARM-optimized and incomplete for x86_64
   - Now uses pkg-config to link against system libopus library

2. **Vendored Dependencies**
   - Added `go mod vendor` to create vendored dependencies
   - Build now uses `-mod=vendor` flag to ensure patched gopus is used

3. **Enhanced Build Process**
   - Set CGO_CFLAGS and CGO_LDFLAGS for proper Opus compilation
   - Build in cmd/talkkonnect directory (correct location)
   - Added build-essential and pkg-config to dependencies

4. **Improved XML Configuration**
   - Updated to modern talkkonnect/xml document type
   - Added critical voicetargets section to prevent crashes
   - Added proper global settings structure
   - Created .config/talkkonnect directory for logs

5. **Additional Dependencies**
   - Added libopus0, libopusfile-dev for complete Opus support
   - Added build-essential and pkg-config for compilation

This integrates the working approach from talkkonnect_complete_install.sh
into the setup_intercom.sh script.
2025-11-22 23:24:03 +00:00
outis1one 79b59e6df8 Add files via upload 2025-11-22 18:17:29 -05:00
outis1one ee7a7c1bc4 Merge pull request #35 from outis1one/claude/add-intercom-ptt-015jdwyCAZbQmbow1Jcbnxc4
Claude/add intercom ptt 015jdwy ca zb qmbow1 jcbnxc4
2025-11-22 18:02:58 -05:00
Claude e4154d2ed8 Integrate standalone intercom setup with install_kiosk_0.9.6
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)
2025-11-22 22:15:42 +00:00
Claude 8df3695f28 Add standalone intercom setup system (Mumble/Talkkonnect)
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
2025-11-22 22:06:04 +00:00
Claude 40029c6978 WIP: Add intercom configuration framework for v0.9.6
Added comprehensive configuration system for WebRTC intercom feature:

Configuration:
- New configure_intercom() function with 4-question setup
- Friendly name, PTT key, lock mode, response mode
- Auto-discovery messaging and phone access URL display

Data Model:
- Added intercom globals to main.js (enableIntercom, intercomName, etc.)
- Added intercom state variables (peers, lastCaller, selectors)
- Config loading/saving with full intercom settings persistence

Installation Flow:
- configure_intercom() called during [7-11/27] setup phase
- Integrates with existing configuration workflow

Release Notes:
- Updated to v0.9.6 with detailed feature documentation
- Documents PWA approach, auto-discovery, conversation logic

Still TODO for full implementation:
- WebSocket signaling server (~200 lines)
- mDNS auto-discovery with bonjour (~100 lines)
- WebRTC peer connection handling (~300 lines)
- PTT media key handler (~100 lines)
- Target selector UI (~150 lines)
- PWA HTML client (~400 lines)
- npm package installation (ws, bonjour)

This commit provides the configuration framework. Core intercom
functionality to be added in subsequent commits.
2025-11-22 20:32:20 +00:00
outis1one 2908ec5cf1 Delete update_electron.sh 2025-11-22 13:20:35 -05:00
outis1one d33381a479 Delete update_0.9.2_fixes.sh 2025-11-22 13:20:14 -05:00
outis1one e1db1be069 Delete install_kiosk_0.9.5-9.sh 2025-11-22 13:19:58 -05:00
outis1one 9fbd9981a9 Delete install_kiosk_0.9.5-8.sh 2025-11-22 13:19:46 -05:00
outis1one 432937388c Delete install_kiosk_0.9.5-7.sh 2025-11-22 13:19:30 -05:00
outis1one 737ca83be9 Delete install_kiosk_0.9.5-6.sh 2025-11-22 13:18:32 -05:00
outis1one b9296f7d11 Delete install_kiosk_0.9.5-5.sh 2025-11-22 13:17:49 -05:00
outis1one 8e9da0f6ce Delete install_kiosk_0.9.5-4.sh 2025-11-22 13:17:36 -05:00
outis1one 32a4b1014e Delete install_kiosk_0.9.5-3.sh 2025-11-22 13:17:21 -05:00
outis1one 8e0ccb08d2 Delete install_kiosk_0.9.5-2.sh 2025-11-22 13:16:39 -05:00
outis1one 3c6d11f0c5 Delete install_kiosk_0.9.5-10.sh 2025-11-22 13:16:24 -05:00
outis1one aa8b466d77 Delete install_kiosk_0.9.4.sh 2025-11-22 13:16:06 -05:00
outis1one d35794ce71 Delete install_kiosk_0.9.2.sh 2025-11-22 13:15:50 -05:00
outis1one 4e508a1f98 Delete install_kiosk_0.9.1.sh 2025-11-22 13:15:34 -05:00