Claude Code Plugins

Community-maintained marketplace

Feedback

asterisk-validator

@mikopbx/Core
487
0

Валидация конфигурационных файлов Asterisk и анализ логов на корректность и best practices. Использовать при отладке проблем запуска Asterisk, проверке изменений конфигурации или проверке ошибок после регенерации воркерами.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

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:

  1. Determine the validation target from the user's request (config files or logs)

  2. 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/full
    
  3. 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
  4. 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
    
  5. 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"
    
  6. 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>
    
  7. 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

  1. Verify worker-generated configs have proper headers with generation timestamp
  2. Check database consistency with configuration files
  3. Verify custom files in /storage/usbdisk1/mikopbx/custom_modules/
  4. 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.