Feature Codes Manager - Admin Guide
Created: October 14, 2025 02:15 AM
Interface: Web-based admin panel
🎯 Overview
The Feature Codes Manager is a web-based admin interface that allows you to:
- ✅ Enable/Disable feature codes with a single click
- 🔄 Reload Asterisk dialplan without SSH access
- 💾 Backup configurations before making changes
- 📊 View all feature codes in one place
- ⚡ Apply changes instantly
- Go to Admin Dashboard
- Look for "📞 Feature Codes Manager" card
- Click "Manage Feature Codes"
- Status Toggle - Enable/disable switch
- Code - The dial code (43, 45, etc.)
- Name - Feature name (Echo Test, Queue Login, etc.)
- Description - What the feature does
- Category - Type of feature (Diagnostic, Queue, etc.)
- Current Status - Enabled or Disabled
- *43 - Echo Test
- *44 - Time/Clock
- *45 - Queue Login
- *46 - Queue Logout
- *48 - Queue Status
- *77 - MOH + Queue Stats
- *78 - Music on Hold Preview
- *97 - Voicemail Access
- Applies all changes to Asterisk
- Must click after making changes
- Shows success/error message
- Takes 1-2 seconds
- Creates timestamped backup of extensions.conf
- Stored as:
/etc/asterisk/extensions.conf.backup.YYYY-MM-DD_HH-mm-ss - Always backup before major changes
- Find the feature code in the table
- Click the toggle switch to ON position (green)
- You'll see: "Feature code *XX enabled successfully"
- Click "Reload Dialplan" button at top
- Wait for success message: "Dialplan reloaded successfully!"
- Feature code is now active
- Find the feature code in the table
- Click the toggle switch to OFF position (gray)
- You'll see: "Feature code *XX disabled successfully"
- Click "Reload Dialplan" button at top
- Wait for success message
- Feature code is now inactive (users can't dial it)
- Click "💾 Backup" button at top right
- Confirm the backup
- You'll see: "Configuration backed up to: /etc/asterisk/extensions.conf.backup.2025-10-14_02-15-30"
- Backup file is stored on server
- Enable/Disable:
- PHP reads
/etc/asterisk/extensions.conf - Finds the feature code section
- Comments out (
; exten =>) or uncomments the lines - Saves changes back to file
- Reload:
- Executes:
asterisk -rx "dialplan reload" - Asterisk re-reads extensions.conf
- Changes take effect immediately
- Backup:
- Copies current extensions.conf
- Adds timestamp to filename
- Stores in same directory
/etc/asterisk/extensions.conf- Main dialplan/home/flexpbxuser/public_html/admin/feature-codes-manager.html- Frontend UI/home/flexpbxuser/public_html/admin/feature-codes-manager.php- Backend API- Read
/etc/asterisk/extensions.conf - Write to
/etc/asterisk/extensions.conf - Execute
asterisk -rxcommands - Create backup files
- Always backup first - Click the Backup button
- Test in non-peak hours - Don't disable codes during busy times
- Communicate with users - Let them know if you're disabling features
- Document changes - Keep notes on why you disabled something
- Always reload - Click "Reload Dialplan" button
- Test immediately - Dial the feature code from a phone
- Check logs - If issues, check
/var/log/asterisk/messages - Verify status - Make sure toggle reflects actual state
- Automatic backups available before changes
- Changes don't apply until you click Reload
- Config validation before saving
- Error messages if something fails
- Original file preserved in backups
- Reload the page
- Check server logs
- Verify file permissions on extensions.conf
- Try backing up first
- Asterisk not running
- Check:
asterisk -rx "core show version" - Restart:
systemctl restart asterisk - Permission denied
- Check web server can run asterisk commands
- May need to add to sudoers
- Syntax error in extensions.conf
- Check Asterisk logs
- Restore from backup
- Verify toggle is green (enabled)
- Click "Reload Dialplan" again
- Test from phone
- Check Asterisk CLI:
asterisk -rx "dialplan show flexpbx-internal" - Look for your feature code in output
- URL is correct
- Web server is running
- File permissions:
ls -l /home/flexpbxuser/public_html/admin/feature-codes-manager.* - PHP is installed and working
- 🟢 Green - Feature enabled
- ⚪ Gray - Feature disabled
- ✓ Enabled - Feature is active
- ✗ Disabled - Feature is inactive
- 🟢 Green box - Success
- 🔴 Red box - Error
- 🔵 Blue box - Information
🌐 Access the Interface
URL: https://flexpbx.devinecreations.net/admin/feature-codes-manager.html
Or from Admin Dashboard:
📋 Features
1. Feature Code Table
Shows all available feature codes with:
2. Categories
Feature codes are organized by category:
🔍 Diagnostic
📞 Queue
🎵 Music on Hold
📬 Voicemail
3. Action Buttons
🔄 Reload Dialplan
💾 Backup
🎮 How to Use
Enable a Feature Code
Disable a Feature Code
Backup Configuration
🔧 Technical Details
How It Works
Behind the scenes:
Files Modified
Configuration:
Application:
Permissions Required
The system must have permission to:
⚠️ Important Notes
Before Making Changes
After Making Changes
Safety Features
🐛 Troubleshooting
Issue: Toggle doesn't stay in position
Solution:
Issue: Reload button shows error
Possible causes:
Issue: Feature code not working after enable
Steps:
Issue: Can't access the interface
Check:
📊 Status Indicators
Toggle Colors
Status Text
Alert Messages
🔄 Workflow Examples
Example 1: Disable Echo Test During Maintenance
1. Open Feature Codes Manager
Click "💾 Backup" button
Find "*43 - Echo Test" in table
Click toggle to OFF (gray)
Click "🔄 Reload Dialplan"
Wait for success message
Test: Dial *43 → Should hear "invalid extension"
When done, toggle back ON and reload Example 2: Enable New Feature Code
1. Open Feature Codes Manager
Click "💾 Backup" button
Find new feature code in table
Click toggle to ON (green)
Click "🔄 Reload Dialplan"
Wait for success message
Test: Dial the code → Should work Example 3: Disable All Queue Features
1. Backup configuration
Disable *45 (Queue Login)
Disable *46 (Queue Logout)
Disable *48 (Queue Status)
Click "Reload Dialplan" once
All queue features now disabled
Users can't access queue functions 🎓 Best Practices
Daily Operations
Security
Maintenance
📞 Support
Need Help?
Check logs:
tail -f /var/log/asterisk/messagesView current dialplan:
asterisk -rx "dialplan show flexpbx-internal"Restore from backup:
cp /etc/asterisk/extensions.conf.backup.YYYY-MM-DD_HH-mm-ss /etc/asterisk/extensions.conf
asterisk -rx "dialplan reload"📝 Quick Reference
| Action | Steps | Time |
| -------- | ------- | ------ |
| Enable code | Toggle ON → Reload | 5 sec |
| Disable code | Toggle OFF → Reload | 5 sec |
| Backup config | Click Backup button | 2 sec |
| Reload dialplan | Click Reload button | 2 sec |
| Test feature | Dial from phone | 10 sec |
🚀 Advanced Usage
Bulk Operations
To enable/disable multiple codes:
Scheduling Changes
For scheduled enable/disable:
Monitoring
Check if feature is actually disabled:
asterisk -rx "dialplan show flexpbx-internal" | grep -A 2 "*43"If commented, you'll see lines starting with ;
✅ Checklist
Before Using:
When Making Changes:
After Changes:
Interface Version: 1.0
Last Updated: October 14, 2025
Location: /home/flexpbxuser/public_html/admin/feature-codes-manager.html
Documentation: /home/flexpbxuser/publichtml/FEATURECODES.md