Vici Server Manager - VoIP Automation Platform
Centralized automation platform for managing multiple VoIP servers. One-click deployment, configuration generation, live terminal streaming. Reduced deployment time by 95% while eliminating configuration errors.
π― Project Overview
Built a centralized automation platform to manage multiple VoIP servers from a single web interface. The system eliminates manual SSH commands and error-prone text file editing by providing one-click deployment, configuration generation from templates, and live terminal output streaming.
πΌ Business Impact
- 95% time savings: Deployment time reduced from 30 minutes to under 2 minutes per server
- Error reduction: Configuration mistakes dropped from ~15% to <1%
- Audit compliance: Complete change history with who/what/when for every deployment
- Team scalability: Non-technical staff can now deploy configurations safely
- Disaster recovery: One-click rollback to previous configurations
π οΈ Technical Architecture
Core Technologies
- Laravel 11 - Backend API and admin interface
- PHP 8.2 - Core application logic
- phpseclib3 - Secure SSH2 connections
- MySQL 8 - Server inventory and configuration storage
- Redis - Queue management for background jobs
- Server-Sent Events (SSE) - Real-time terminal output streaming
- Vue.js 3 - Reactive frontend components
- Tailwind CSS - Modern UI design
System Capabilities
β Multi-Server Management
- Add/edit/delete VoIP servers from web interface
- Group servers by region, function, or client
- Batch operations across server groups
- Real-time status monitoring (online/offline)
β Configuration Generation
- Import SIP trunk details from Excel/CSV templates
- Template-based config generation (PJSIP, SIP, IAX2)
- Automatic validation before deployment
- Preview changes before applying
β One-Click Deployment
- Deploy configs to /etc/asterisk/ via SSH
- Update MySQL Realtime database entries
- Atomic operations with automatic rollback on error
- Asterisk reload commands executed remotely
β Live Monitoring
- Stream SSH terminal output in real-time (SSE)
- Deployment status dashboard
- Error tracking with automatic notifications
- Complete audit logs with search and filtering
π§ Technical Challenges Solved
SSH Connection Pooling
Challenge: Opening/closing SSH connections for every command was slow (3-5 seconds per operation).
Solution: Implemented connection pooling with Laravel cache. Connections stay alive for 5 minutes, reducing overhead from seconds to milliseconds.
Concurrent Deployment Race Conditions
Challenge: Multiple users deploying to same server simultaneously caused conflicts and file corruption.
Solution: Added mutex locks per server using Redis. Deployments queue automatically when server is busy.
Configuration Validation
Challenge: Invalid configs would break Asterisk after deployment, causing downtime.
Solution: Pre-deployment validation using asterisk -rx "pjsip show endpoint test", automatic backups before every change, and rollback on error detection.
Real-Time Output Streaming
Challenge: Users couldn't see what was happening during deploymentsβfelt like a black box.
Solution: Implemented Server-Sent Events (SSE) to stream command output line-by-line. Users see exactly what's executing in real-time.
π‘ Key Features
Carrier Management
- Import from Excel: Upload carrier details spreadsheet, auto-generate configs
- Template Library: Pre-built templates for major carriers (Bandwidth, Twilio, Telnyx)
- Codec Optimization: Automatic codec selection based on carrier requirements
- Authentication Presets: Support for IP auth, username/password, certificate-based
DID Management
- Bulk Import: Import thousands of DIDs from CSV
- Auto-Routing: Automatically create inbound routes based on patterns
- E911 Integration: Associate emergency addresses with DID ranges
- Usage Analytics: Track which DIDs are active/inactive
Deployment Pipeline
- Staging Environment: Test configs on staging server before production
- Approval Workflow: Optional approval requirement for production deployments
- Scheduled Deployments: Deploy during maintenance windows automatically
- Health Checks: Post-deployment verification tests
π Performance Metrics
π Security Features
- Encrypted Credentials: SSH passwords stored using Laravel encryption
- Role-Based Access: Different permission levels (viewer, deployer, admin)
- Two-Factor Auth: Optional 2FA for sensitive operations
- IP Whitelist: Restrict access to known office/VPN IPs
- Audit Logging: Every action logged with timestamp and user identity
π Results
- β Reduced deployment time by 95% (30 min β 2 min)
- β Eliminated 99% of configuration errors
- β Enabled non-technical staff to deploy safely
- β Complete audit trail for compliance
- β Deployed to production managing 50+ servers
- β Saved 20+ hours/week of manual SSH work
π Related Content
Read the full story: Automating VoIP Server Management with Laravel & SSH