| 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:
# Get container ID docker ps | grep mikopbx # Access config files in container docker exec <container_id> cat /etc/asterisk/<config_file> # Access logs docker exec <container_id> tail -n 500 /storage/usbdisk1/mikopbx/log/asterisk/messages docker exec <container_id> tail -n 500 /var/log/asterisk/fullFor 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
- Syntax errors: Use
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:
# Recent errors docker exec <id> grep -i error /storage/usbdisk1/mikopbx/log/asterisk/messages | tail -50 # Registration issues docker exec <id> grep -i "registration" /var/log/asterisk/full | tail -50 # Dial failures docker exec <id> grep -i "dial\|call" /var/log/asterisk/full | tail -100- Error messages: Search for
Test configuration loading:
# Check if Asterisk can parse config 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
# Check Asterisk CLI status
docker exec <id> asterisk -rx "core show version"
docker exec <id> asterisk -rx "core show uptime"
# Verify config files exist
docker exec <id> ls -lah /etc/asterisk/
# Check for syntax errors in dialplan
docker exec <id> asterisk -rx "dialplan show"
# List SIP/PJSIP peers
docker exec <id> asterisk -rx "pjsip show endpoints"
# Check for module load errors
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.