| name | asterisk-validator |
| description | Валидация конфигурационных файлов Asterisk и анализ логов на корректность и best practices. Использовать при отладке проблем запуска Asterisk, проверке изменений конфигурации или проверке ошибок после регенерации воркерами. |
| allowed-tools | Bash, Read, Grep, Glob |
asterisk-config-validating
Validates Asterisk configuration files and analyzes logs to ensure they are correctly generated by MikoPBX workers and system methods.
What this skill does
- Validates syntax of Asterisk configuration files (sip.conf, pjsip.conf, extensions.conf, etc.)
- Checks for common configuration errors and warnings
- Analyzes Asterisk logs for errors, warnings, and potential issues
- Verifies that configurations follow MikoPBX generation patterns
- Reports configuration inconsistencies and security issues
When to use this skill
Use this skill when:
- After generating new Asterisk configurations via workers
- Debugging Asterisk startup or runtime issues
- Verifying configuration changes made by system methods
- Analyzing Asterisk logs for errors or warnings
- Checking if configurations follow best practices
How to use this skill
Simply invoke the skill and specify what you want to validate:
- "Validate the current Asterisk configuration"
- "Check pjsip.conf for errors"
- "Analyze Asterisk logs for the last hour"
- "Verify extensions.conf syntax"
Instructions
You are an expert Asterisk configuration validator. When invoked:
-
Determine the validation target from the user's request (config files or logs)
-
Access the Docker container to examine Asterisk files:
docker ps | grep mikopbx
docker exec <container_id> cat /etc/asterisk/<config_file>
docker exec <container_id> tail -n 500 /storage/usbdisk1/mikopbx/log/asterisk/messages
docker exec <container_id> tail -n 500 /var/log/asterisk/full
-
For configuration validation, check:
- Syntax errors: Use
asterisk -rx "core reload" or check for parse errors
- Common mistakes: Missing semicolons, incorrect contexts, invalid options
- Security issues: Weak passwords, open access, missing encryption
- MikoPBX patterns: Check if configs follow MikoPBX generation style
- Cross-references: Verify that referenced contexts/extensions exist
Key config locations:
- Main configs:
/etc/asterisk/
- Generated configs:
/etc/asterisk/ (check timestamps)
- Backup configs: Check if backups exist
-
For log analysis, examine:
- Error messages: Search for
ERROR, CRITICAL, FATAL
- Warnings: Search for
WARNING, WARN
- Common issues:
- Registration failures
- Codec negotiation problems
- NAT/network issues
- Authentication failures
- Dial failures
- Memory leaks or performance issues
Useful log commands:
docker exec <id> grep -i error /storage/usbdisk1/mikopbx/log/asterisk/messages | tail -50
docker exec <id> grep -i "registration" /var/log/asterisk/full | tail -50
docker exec <id> grep -i "dial\|call" /var/log/asterisk/full | tail -100
-
Test configuration loading:
docker exec <id> asterisk -rx "dialplan reload"
docker exec <id> asterisk -rx "pjsip reload"
docker exec <id> asterisk -rx "core show config mappings"
-
Report findings in a structured format:
## Validation Results
### Configuration: <file_name>
- Status: ✅ Valid / ⚠️ Warnings / ❌ Errors
- Issues found: <count>
### Critical Issues
- [Error/Warning]: <description>
- Location: <file>:<line>
- Recommendation: <fix>
### Warnings
- <list of warnings>
### Log Analysis
- Errors in last hour: <count>
- Recent critical issues: <list>
### Recommendations
- <actionable fixes>
-
Provide actionable fixes:
- Show the exact line/section with the issue
- Suggest the correct configuration
- Reference MikoPBX worker classes if relevant
- Link to relevant Asterisk documentation
Important Docker paths
- Asterisk configs:
/etc/asterisk/
- System logs:
/storage/usbdisk1/mikopbx/log/system/messages
- Asterisk logs:
/storage/usbdisk1/mikopbx/log/asterisk/messages
- Full log:
/var/log/asterisk/full
- Database:
/cf/conf/mikopbx.db
Common validation commands
docker exec <id> asterisk -rx "core show version"
docker exec <id> asterisk -rx "core show uptime"
docker exec <id> ls -lah /etc/asterisk/
docker exec <id> asterisk -rx "dialplan show"
docker exec <id> asterisk -rx "pjsip show endpoints"
docker exec <id> asterisk -rx "module show like"
MikoPBX-specific checks
- Verify worker-generated configs have proper headers with generation timestamp
- Check database consistency with configuration files
- Verify custom files in
/storage/usbdisk1/mikopbx/custom_modules/
- Check fail2ban integration for security rules
Output format
Always provide:
- Clear status (✅/⚠️/❌)
- Issue count and severity
- Specific locations (file:line)
- Recommended fixes
- Links to documentation when helpful
Be thorough but concise. Focus on actionable information.