Commit Graph
169 Commits
Author SHA1 Message Date
outis1one d49bebe1f7 Delete install_kiosk_0.9.6-3.sh 2025-11-23 17:35:22 -05:00
outis1one b56e6ab0c5 Delete install_kiosk_0.9.2-6.sh 2025-11-23 17:34:40 -05:00
outis1one 4a960b2a3c Delete fix_talkkonnect_terminal.sh 2025-11-23 17:33:45 -05:00
outis1one dfd7dc47a5 Delete fix_talkkonnect_permissions.sh 2025-11-23 17:33:28 -05:00
outis1one a62306ed46 Update Readme.md 2025-11-23 16:57:39 -05:00
outis1one 66bcf9dc66 Update Readme.md 2025-11-23 16:57:01 -05:00
outis1one ca4a6d355a Update Readme.md 2025-11-23 16:47:34 -05:00
outis1one 3322b281ce Create Readme.md 2025-11-23 16:43:33 -05:00
outis1one 515af15c03 Merge pull request #47 from outis1one/claude/fix-kiosk-rotation-error-01MmDWDSA2E1FUBJoXFRx8tg
Fix jq command error in save_config and bump to v0.9.6-3
2025-11-23 14:33:40 -05:00
outis1one 4ef877435f Delete fix_talkkonnect_now.sh 2025-11-23 14:32:42 -05:00
outis1one d4b470fa11 Delete fix_talkkonnect_audio.sh 2025-11-23 14:32:02 -05:00
outis1one 7c82c0925c Delete diagnose_talkkonnect.sh 2025-11-23 14:31:49 -05:00
outis1one d02e0ad581 Delete check_talkkonnect_fix.sh 2025-11-23 14:31:35 -05:00
outis1one 5c6b46a494 Delete TALKKONNECT_SETUP.md 2025-11-23 14:31:22 -05:00
outis1one 11f0231c33 Delete INTERCOM_README.md 2025-11-23 14:31:06 -05:00
Claude bac48cd183 Fix jq command error in save_config and bump to v0.9.6-3
Fixed critical bug where jq command was incomplete in save_config function,
causing configuration save to fail with jq usage error when configuring
rotation sites.

Issue: The jq -n command on lines 3476-3493 had all arguments but was
missing the JSON template/filter, causing jq to output its help text
instead of creating the config file.

Fix: Added complete JSON object template to jq command with all required
fields (unit, autoswitch, enableTouch, etc.) and empty tabs array.

Version bumped from 0.9.6-2 to 0.9.6-3.
2025-11-23 19:30:59 +00:00
outis1one 01ce9af821 Delete INTERCOM_COMPARISON.md 2025-11-23 14:30:52 -05:00
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