Skip to content

Problemas en dialplan y consola Asterisk (warnings, contextos duplicados, includes inválidos) – Issabel 5 PBX #52

@StorageCloud

Description

@StorageCloud

📌 Resumen

Durante pruebas en entorno productivo de Issabel PBX se identificaron múltiples problemas en el dialplan de Asterisk, incluyendo:

warnings por contextos duplicados
includes a contextos inexistentes
uso de patrones no recomendados
errores en scripts AGI

Estos problemas afectan la limpieza del sistema, generan ruido en logs y pueden causar comportamientos inesperados.

🧪 Entorno
Issabel PBX: (indicar versión)
Asterisk: 18.x
Sistema operativo: (ej. Rocky Linux)
Tipo de instalación: estándar
🐛 1. Contextos duplicados en dialplan
🔍 Problema

Se presentan warnings como:

context already included
already in use

Ejemplos:

app-cf-off
app-cf-on
app-cf-toggle
macro-hangupcall
macro-outisbusy
💥 Causa

Los mismos contextos están definidos en múltiples archivos:

/etc/asterisk/extensions_additional.conf (autogenerado)
/etc/asterisk/extensions_override_*.conf (manual)
✅ Solución aplicada

Se eliminaron definiciones duplicadas en archivos override:

/etc/asterisk/extensions_override_fop2.conf
/etc/asterisk/extensions_override_issabel.conf
🎯 Resultado
eliminación de conflictos en dialplan
carga limpia de contextos
mejora en estabilidad
🐛 2. Includes a contextos inexistentes
🔍 Problema
tries to include nonexistent context

Ejemplos detectados:

ext-injections
grps
ext-did-post-custom
ext-bosssecretary
ext-did-0001
💥 Causa

Issabel incluye contextos opcionales que no existen por defecto.

✅ Solución aplicada

Se crearon contextos vacíos en:

/etc/asterisk/extensions_custom.conf

Ejemplo:

[ext-injections]
[grps]
[ext-did-post-custom]
[ext-bosssecretary]
[ext-did-0001]
🎯 Resultado
eliminación de warnings
dialplan limpio
mayor estabilidad al recargar
🐛 3. Uso del patrón _ . en extensiones
🔍 Problema
The use of '_.' is strongly discouraged
💥 Causa

Uso del patrón:

exten => _.
✅ Solución aplicada

Se modificó en:

/etc/asterisk/extensions.conf

Cambio:

  • exten => _.
  • exten => _X.
    🎯 Resultado
    eliminación de warnings
    mejores prácticas en dialplan
    mayor control de patrones
    🐛 4. Error en script AGI (trunkbalance.php)
    🔍 Problema
    Unknown database type: mysqli
    Unable to connect to database
    💥 Causa

Script AGI no soporta mysqli.

📍 Archivos afectados
/var/lib/asterisk/agi-bin/sqltrunkbal.php
/var/lib/asterisk/agi-bin/sql.php
✅ Solución aplicada
if ($db_type == 'mysql' || $db_type == 'mysqli')
🎯 Resultado
ejecución correcta del AGI
eliminación de errores de conexión
funcionamiento normal de lógica de trunk
🐛 5. Validación del flujo de llamadas
🔍 Verificación

Se confirmó correcto funcionamiento del flujo:

macro-dialout-trunk
ejecución de AGI
salida por trunk
🎯 Resultado
llamadas salientes funcionando correctamente
sin errores en ejecución de macros
🐛 6. Limpieza general del dialplan
🔍 Estado inicial
múltiples warnings
conflictos de contextos
includes inválidos
✅ Estado final
pbx_config successfully loaded XXX contexts
🎯 Resultado
sin errores críticos
warnings reducidos al mínimo
dialplan estable

💡 Recomendación
evitar mostrar credenciales en logs
mejorar sanitización de salida
🚀 Recomendaciones generales
validar duplicados automáticamente en overrides
evitar includes a contextos inexistentes
actualizar scripts AGI a estándares actuales (mysqli / PDO)
eliminar uso de funciones obsoletas
mejorar validación del dialplan antes de cargar
🏁 Conclusión

Las correcciones aplicadas permiten:

✔ eliminación de errores en consola Asterisk
✔ reducción significativa de warnings
✔ mayor estabilidad del dialplan
✔ compatibilidad con entornos modernos

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions