| 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: ```bash # Get container ID docker ps | grep mikopbx
# Access config files in container docker exec cat /etc/asterisk/
# Access logs docker exec tail -n 500 /storage/usbdisk1/mikopbx/log/asterisk/messages docker exec 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 forWARNING,WARN- Common issues:- Registration failures
- Codec negotiation problems
- NAT/network issues
- Authentication failures
- Dial failures
- Memory leaks or performance issues
Useful log commands: ```bash # Recent errors docker exec grep -i error /storage/usbdisk1/mikopbx/log/asterisk/messages | tail -50
# Registration issues docker exec grep -i "registration" /var/log/asterisk/full | tail -50
# Dial failures docker exec grep -i "dial|call" /var/log/asterisk/full | tail -100 ```
-
Test configuration loading:
bash # 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: - Status: ✅ Valid / ⚠️ Warnings / ❌ Errors - Issues found:
### Critical Issues - [Error/Warning]: - Location: : - Recommendation:
### Warnings -
### Log Analysis - Errors in last hour: - Recent critical issues:
### Recommendations - ```
- 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: 1. Clear status (✅/⚠️/❌) 2. Issue count and severity 3. Specific locations (file:line) 4. Recommended fixes 5. Links to documentation when helpful
Be thorough but concise. Focus on actionable information.