CLI avanzada: recuperación y catálogo de herramientas
Elige la herramienta según el fallo identificado. Empieza con diagnóstico o vista previa, entiende su alcance y sigue la recuperación documentada. La existencia de un PHP no lo convierte en mantenimiento rutinario.
Empezar por el diagnóstico adecuado
Los ejemplos parten de /var/www/html/obelisk y el PHP CLI instalado. Adapta rutas. Una comprobación de archivos correcta no certifica SQL, AMI, HTTPS, audio ni correo. Lee avisos y contrasta con Diagnóstico en Administración.
Revisar archivos y PHP CLI
Lecturas estáticas: no ejecuta configuración, conecta servicios ni abre SQL. Código 0 significa sin errores, posiblemente con avisos; 1 problemas; 2 argumentos inválidos. Comprueba este PHP CLI, no Apache/FPM.
Comandosudo -u asterisk /usr/bin/php utility/check_installation.php --jsonVerificar el database de la aplicación
Usa la conexión guardada y verifica tablas/esquema de cuentas sin cambiar datos o esquema. No confirma que las importaciones telefónicas estén al día; compruébalas aparte en Administración.
Comandosudo -u asterisk /usr/bin/php utility/check_database.phpVerificar el perfil de actualización
Ante un problema del perfil, este control root diagnostica el perfil SQL administrativo existente. No migra, cambia eventos ni crea respaldo. Credenciales ausentes requieren el flujo de actualización o soporte, no editar el perfil a mano.
Comandosudo /usr/bin/php utility/schema_profile.php --check
Recuperar contraseña o vinculación 2FA administrativa
Utiliza la herramienta interactiva oficial en Linux mediante un terminal SSH root autorizado. Requiere database existente y utilizable, cuenta asterisk, soporte POSIX y terminal que oculte la contraseña. Reduce privilegios antes de abrir configuración. No admite tubería, petición web ni tarea no interactiva.
Abrir recuperación
Elige en, es o it. Para recuperar una cuenta muestra administradores; también puede crear otro con usuario único. No es la utilidad ordinaria de cambio de contraseña de supervisores.
Comandosudo /usr/bin/php utility/admin_recovery.php --lang=itElegir qué recuperar
Selecciona la cuenta, confirma reactivarla si está inactiva y decide si restablecer su vinculación 2FA. Introduce y confirma una contraseña válida o deja el campo vacío para generar una. Revisa el resumen antes de confirmar. No borres la clave 2FA compartida ni modifiques otros usuarios.
Acceder y completar la protección
Guarda privadamente la contraseña generada. Accede con la cuenta; el cambio invalida la generación de sus sesiones anteriores. Se mantiene su política 2FA: si era obligatoria y se restableció la vinculación, vuelve a vincular antes del acceso normal. Un administrador nuevo tiene 2FA opcional; configura la política deseada. Verifica el evento de recuperación en el registro de acceso.
Recuperar un bloqueo por política IP
Úsalo solo si la causa es la política de acceso de red, por ejemplo tras cambiar la IP pública del administrador. No restablece contraseña ni 2FA. Devuelve la política a valores predeterminados y limpia su estado; no es una solución genérica de acceso.
Leer la ayuda
Sin --apply muestra instrucciones y no restablece la política.
Comandosudo -u asterisk /usr/bin/php utility/security_reset.php --helpAplicar el restablecimiento necesario
Tras confirmar la causa ejecútalo una vez. Accede, vuelve a configurar las restricciones en Seguridad de acceso y verifica security_policy_reset en el registro.
Comandosudo -u asterisk /usr/bin/php utility/security_reset.php --apply
Recuperar una restauración de configuración interrumpida
configuration_backup.php recupera una restauración; no crea respaldos CLI ni importa archivos arbitrarios. Usa el diario local autenticado de una restauración interrumpida. Conserva marcador y diario. Ejecútalo como asterisk, nunca root. Conserva archivo y contraseña mediante el procedimiento normal.
Reanudar la recuperación autenticada
Lee si se completó o se canceló antes del commit, conservando la configuración anterior. Si termina, sigue la indicación de acceso con un administrador restaurado. Si falla conserva el marcador y consulta al soporte; no lo borres para forzar acceso.
Comandosudo -u asterisk /usr/bin/php utility/configuration_backup.php --recover
Revisar una reparación histórica delimitada
Úsala con soporte ante inconsistencias diagnosticadas en datos derivados. Repara número/tiempo de timbrado del episodio e IDs ausentes de transferencias atendidas compatibles o salientes. No recrea fuentes ausentes, migra E.164 ni restaura procedimientos. Las fechas corresponden al cierre del episodio o al CDR en salientes.
Revisar el periodo acordado
Sustituye las fechas de ejemplo. Revisa cantidades afectadas y fuentes ausentes. La vista previa es predeterminada; --preview lo indica explícitamente.
Comandosudo -u asterisk /usr/bin/php utility/repair_report_data.php --from 2026-09-01 --to 2026-09-30 --previewAplicar durante mantenimiento planificado
Tras el respaldo utiliza la pausa oficial, verifica eventos y cron detenidos y espera a los workers activos. Después ejecuta la reparación acordada. --maintenance-confirmed declara que lo has hecho; no detiene tareas. Verifica el informe y periodo y reanuda oficialmente. No amplíes el rango por suposición.
Comandosudo -u asterisk /usr/bin/php utility/repair_report_data.php --from 2026-09-01 --to 2026-09-30 --apply --maintenance-confirmed
Catálogo: diagnóstico, mantenimiento y recuperación
Utiliza solo la operación correspondiente al diagnóstico. La sintaxis procede de las herramientas instaladas; una opción apply no implica ejecutarla rutinariamente. Las vistas previas describen cambios concretos. Tras aplicarlos repite la comprobación pertinente y verifica la función.
| Herramienta / operación | Finalidad, efectos y límites |
|---|---|
| check_installation.php / check_database.php / schema_profile.php | Diagnósticos de lectura descritos arriba: instalación estática, SQL de aplicación y perfil privilegiado existente. Comprueban niveles distintos y no los reparan. |
| admin_recovery.php / security_reset.php / configuration_backup.php | Recuperaciones distintas de credenciales/2FA, política de acceso y restauración interrumpida. Sigue sus procedimientos; no son intercambiables. |
| repair_permissions.php --dry-run | Propone correcciones de propietarios/permisos conocidos y almacenamiento configurado en Linux. Revisa el plan. Aplicar exige root y --apply --maintenance-confirmed en mantenimiento; no es chmod -R ni corrige privilegios SQL. |
| web_protection.php --dry-run | Revisa reglas Apache gestionadas. --apply como root las combina, conserva personalizaciones y guarda .htaccess.obelisk-*.bak idéntico antes de cambios. Verifica HTTPS y recursos protegidos; no configura IIS. |
| geoip_update.php --status / --update | Comprueba o descarga el database local de geografía de IP públicas. --update requiere red y escritura; no es automático. Ejecuta como asterisk y repite --status. No actualiza geografía de prefijos telefónicos. |
| sync_trunks.php --sync | Importa líneas de FreePBX local al catálogo de informes. Escribe el catálogo, no la telefonía del PBX. Ejecuta como asterisk y comprueba Líneas en Database. Si falla descubrimiento local usa el flujo indicado o soporte. |
| clean.php --dry-run / recording_retention.php --dry-run | Vista previa del borrado por categoría o antigüedad. Para borrar requiere --apply e interruptor administrativo correspondiente. Revisa rutas, criterios y respaldo. Pueden usar almacenamiento/registros de aplicación; no son el diagnóstico estático. |
| repair_report_data.php | Mantenimiento histórico delimitado, con vista previa y confirmación explícita descritas arriba. No detiene tareas ni recupera fuentes telefónicas ausentes. |
| update.php --status | Consulta el estado de actualización. Apply/check/rollback/prune deben usar orden, ID y hash exactos generados para el paquete en Administración. --check registra una observación fechada. Prune elimina recuperación y desactiva rollback; rollback SQL restaura datos previos. |
| retired_files.php --dry-run | Revisa solo código retirado reconocido y sin cambios. --apply root exige --plan-hash exacto. Conserva archivos modificados/en uso, ajustes, datos y respaldos. Tras interrupción genera otra vista previa; no uses borrado recursivo. |
Herramientas del instalador y de soporte
Estos archivos explican el inventario; no son una lista para ejecutar. Usa instalador, actualización coordinada o reparación con soporte. No ejecutes clases internas, fixtures de pruebas ni constructores de paquetes como mantenimiento de cliente.
| Herramienta / operación | Finalidad, efectos y límites |
|---|---|
| provision_database.php --connection-stdin | Creación de esquema reservada al instalador con credenciales SQL administrativas por stdin. Crea objetos. No es diagnóstico ni debe reinicializar una instalación activa. |
| initialize_installation.php [--admin-stdin] | Valores iniciales/primer administrador, coordinados normalmente por el instalador. Conserva cuentas y ajustes existentes, pero puede inicializar datos ausentes. No recupera contraseñas. |
| provision_routine_guard.php --interactive | Creación/recuperación del guard de privilegios MySQL con administrador SQL, según guía. Pide servidor, esquema y cuenta runtime por separado; sin contraseña en argumentos. MariaDB no lo necesita. Úsalo para la condición diagnosticada, no para restaurar procedimientos. |
| queue_number_settings.php | Actualización E.164 puntual para instalaciones antiguas, con vista previa y socket SQL-root local. Ya incluida en instalaciones nuevas. Configura la política en Administración; no la repitas para cambiar normalización. |
| upgrade_phone_geography.php | Migración/importación de prefijos. Vista previa por defecto; --apply requiere privilegios y respaldo del catálogo. Puede cambiar filas estándar/esquema; conserva personalizadas. Pueden variar clasificaciones. Es distinto de GeoIP y debe seguir el plan de soporte. |
| upgrade_report_indexes.php | Actualización aditiva de índices con vista previa por defecto; exige ALTER cuando faltan. Conserva registros e índices útiles, pero DDL puede esperar o tardar. Usa el procedimiento aprobado, no optimización especulativa. |
| upgrade_import_sql.php | Referencia histórica de pruebas excluida del runtime distribuido actual. No es herramienta administrativa compatible. No la copies de fuentes antiguas ni sustituyas con ella el esquema/actualización versionados. |
Comprender la integración en archivos custom de FreePBX
Obelisk utiliza la instalación FreePBX existente y su directorio real /etc/asterisk. El instalador revisa la configuración custom antes de aplicar cambios. Conserva el contenido ajeno y se detiene ante una definición Obelisk desconocida o conflictiva, sin borrar el archivo.
Conserva una copia de los archivos custom antes de instalar o mantener el PBX. Si una comprobación se detiene, revisa el archivo indicado y resuelve el duplicado, bloque modificado o directiva include con el administrador del PBX. No borres todo el archivo ni añadas otro contexto de escucha. Una directiva include puede requerir revisión manual aunque sea legítima.
| Archivo en /etc/asterisk | Acción del instalador |
|---|---|
| queues_custom_general.conf | Asegura log_membername_as_agent = yes para las identidades de eventos de cola y conserva las demás opciones y comentarios. |
| extensions_custom.conf | Añade o reutiliza el contexto verificado custom-obelisk-spy para supervisión por AMI. Los bloques nuevos se delimitan con BEGIN/END OBELISK MANAGED SPY CONTEXT. No incluyas este contexto en from-internal. |
| manager_custom.conf | Añade una cuenta AMI local dedicada y delimitada solo si seleccionas Create. Las opciones de cuenta existente o configuración manual no crean esa cuenta. Una cuenta conflictiva o un bloque modificado se conserva y se señala. |