This commit adds export and import functionality for client configurations
to the Client Settings menu, allowing users to save and restore provisioned
clients during Asterisk reinstallations.
Features:
- Export clients: Creates a tar.gz archive containing all provisioned devices,
categories, and rooms with metadata (saved to /root/asterisk-clients-*.tar.gz)
- Import clients: Restores client configurations from export archives with
two modes:
* Merge mode: Imports only non-conflicting devices (default)
* Replace mode: Removes all existing devices and replaces with imported ones
- Conflict detection: Automatically detects extension conflicts and offers to
skip conflicting devices
- Backup protection: Creates timestamped backups before import operations
- Validation: Verifies export file format and device count before import
Technical details:
- Extracts device configurations from /etc/asterisk/pjsip.conf
- Preserves categories from /etc/easy-asterisk/categories.conf
- Preserves rooms/ring groups from /etc/easy-asterisk/rooms.conf
- Automatically reloads PJSIP and rebuilds dialplan after import
- Handles category and room deduplication during merge imports
Menu additions:
- Client Settings -> Export Clients (option 4)
- Client Settings -> Import Clients (option 5)