Fixes:
- Add -e flag to echo statements so BOLD and CYAN colors render properly
- Previously showed raw escape codes like \033[1m instead of formatted text
Clarifications:
- Changed "Full Setup" description from "With FQDN, TLS certs, COTURN, internet calling"
to "Optionally add FQDN, TLS certs, COTURN for internet calling"
- COTURN is NOT mandatory in Full Setup
- It's only configured if user runs Internet/Certificate Setup wizard afterward
User can now see properly formatted menu:
1) Quick Local Setup (Recommended) [in bold]
└─ Local LAN only - PTT, auto-answer, no internet/FQDN
Advanced Options: [in cyan]
2) Full Setup (Server + Client + Internet)
└─ Optionally add FQDN, TLS certs, COTURN for internet calling
Menu Improvements:
- Clarified "Quick Local Setup" as "Local LAN only - no internet/FQDN"
- Renamed "Full" to "Full Setup (Server + Client + Internet)"
- Added detailed descriptions for all install options
- "Server Only" now explains it can optionally include FQDN/internet
- "Client Only" clarifies it connects to existing server
User Experience:
- Added progress message during device addition: "Reloading Asterisk configuration (this may take a moment)..."
- Prevents confusion when dialplan rebuild causes brief delay
- Users now see the script is working, not hanging
This addresses user feedback about menu clarity and apparent hangs during device addition.
Implements a complete update system similar to the kiosk project:
- Check GitHub for latest releases via API
- Display current vs latest version comparison
- Show breaking changes warning with changelog link
- Create automatic timestamped backups of script and configs
- Display clear rollback instructions before updating
- Download and install new version safely
- Offer to restart Asterisk, Baresip, and COTURN services
- New "Check for Updates" option in Tools menu
Features:
- Version constants and GitHub repo info
- check_for_updates() - fetches and compares versions
- perform_update() - handles backup, download, and installation
- restart_all_services() - safely restarts all services
- Fallback to git clone if direct download unavailable
- Rate limit detection and error handling
Enhancements based on user feedback:
1. **NETBIRD VPN SUPPORT**
- Added NetBird to VPN detection (interface: wt0)
- Now detects: Tailscale, NetBird, WireGuard, OpenVPN
- Shows VPN type in detection message
- Stores VPN_TYPE in config for reference
2. **VPN SETUP REQUIREMENTS EXPLAINED**
- Added clear "IMPORTANT: VPN Setup Requirements" section
- Explains VPN must be installed on:
* Asterisk server ✓ (shows detection)
* ALL kiosk/client devices (user must do)
- Shows warning: "Remember: Install {VPN_TYPE} on all kiosk devices!"
- Explains how VPN + internet calling works together:
* Kiosks register via VPN IP
* Asterisk acts as bridge
* External callers use FQDN + port forwarding
3. **PTT CONFIGURATION FIXES**
- PTT now only prompted when client is being installed
- Added to install_full() - installs client
- Added to install_client_only() - installs client
- Quick setup already had it (kept)
- install_server_only() correctly does NOT ask (no client)
- Ensures PTT hardware is only configured where it makes sense
4. **NEW: INTERNET CALLING GUIDE**
- Comprehensive new function: show_internet_calling_guide()
- Added to Server Settings menu (#4)
**Scenario 1: Simple Internet Calling**
- FQDN + port forwarding (5060/5061 + 10000-20000)
- Works for simple NAT
- Explains limitations (symmetric NAT, corporate firewalls)
**Scenario 2: VPN + Internet Calling (RECOMMENDED)**
- Answers the key question: "Can internet users call VPN kiosks?"
- Answer: YES! Here's how:
* Kiosks register to Asterisk via VPN IP
* Internet calls use FQDN → port forward → Asterisk
* Asterisk routes to kiosk via VPN network
* Works even if kiosk is on VLAN 20!
- Explains benefits: No COTURN, works across VLANs, more secure
**Scenario 3: COTURN + VLAN Isolation**
- Explains when you actually need COTURN
- Shows it's only needed if you can't use VPN
- Recommends VPN as simpler and more reliable
5. **PORT REQUIREMENTS UPDATES**
- Updated to mention NetBird alongside Tailscale/WireGuard
- Added reference to new Internet Calling Guide
KEY QUESTIONS ANSWERED:
✓ "Add NetBird to VPN list?" → Done!
✓ "PTT only when client installed?" → Fixed!
✓ "Explain VPN needs to be on all devices?" → Explained clearly!
✓ "Is FQDN + port forward all you need?" → Yes, guide added!
✓ "Can internet call VPN kiosk on VLAN?" → Yes! Explained in detail!
All scenarios now documented with clear examples and flow diagrams.
Major user-focused improvements addressing the 90% use case:
1. **QUICK LOCAL SETUP (New #1 Installation Option)**
- One-click installation for local networks
- Automatically configures:
* PTT with mute-by-default
* Auto-answer for kiosks
* Audio ducking
* No COTURN/certificates needed
- Perfect for intercoms, warehouses, offices, security stations
- Detects VPN and offers to use it
- Prompts for PTT button configuration
- Shows server IP and credentials at end
- This is now the RECOMMENDED path for most users
2. **VPN INTERFACE DETECTION**
- New detect_vpn_interface() function
- Auto-detects: Tailscale, WireGuard, OpenVPN (tun/tap)
- Shows detected interfaces with IPs
- Explains VPN benefits vs COTURN
- Offers to bind Asterisk to VPN IP
- Stores config: USE_VPN, VPN_INTERFACE, VPN_IP
- Called in both Quick Setup and Full Install
- Makes VPN the easy choice instead of complex COTURN
3. **SIMPLIFIED COTURN GUIDANCE**
- New "Do you ACTUALLY need COTURN?" screen
- Clear examples of when you DON'T need it:
* Local network only
* Using VPN
* Server with public IP + simple port forwarding
- Clear examples of when you DO need it:
* Symmetric NAT / strict firewall
* VLAN isolation
* Corporate network with limited ports
- Lists COTURN requirements (FQDN, static/DDNS, port forwarding)
- Changed prompt from [Y/n] to [y/N] (opt-in not opt-out)
4. **TURN DOMAIN IMPROVEMENTS**
- TURN_DOMAIN now defaults to DOMAIN_NAME (same domain is fine!)
- Improved prompt explains single vs separate domain options
- Shows info message when using same domain
- Warns about cert coverage when using separate domains
- Makes setup simpler for most users
5. **INSTALLATION MENU UPDATES**
- Quick Local Setup is now option #1 (BOLD, Recommended)
- Full/Server/Client moved to "Advanced Options"
- Clear description: "Local network, PTT, auto-answer - No internet needed"
- Guides users to the right choice
ANSWERS USER'S KEY QUESTIONS:
✓ "Can Asterisk be set up on local network?" → YES, Quick Setup!
✓ "Does it have PTT/auto-answer/mute/ducking?" → YES, all automatic!
✓ "Should I just VPN everything?" → YES, script detects and suggests it!
✓ "Do I need separate FQDN for COTURN?" → NO, same domain works fine!
✓ "Do I really need COTURN?" → Clear guidance shows when you do/don't!
All features maintain full automation - zero manual editing required.