# Registro de Instalacion — VoIP PBX ## Servidor | Aspecto | Valor | |---|---| | OS | Ubuntu 24.04.3 LTS | | Hostname | VOIP | | IP | 192.168.10.228 (DHCP - pendiente configurar estatica) | | CPU | 4 cores | | RAM | 7.6 GB | | Disco | 29 GB SSD | | Timezone | America/Mexico_City (CST) | ## Software Instalado | Componente | Version | Estado | |---|---|---| | Asterisk | 20.18.2 (compilado desde fuente) | Corriendo | | FreePBX | 17.0.25 | Corriendo | | MariaDB | 10.11.14 | Corriendo | | Apache | 2.4.58 | Corriendo (como usuario asterisk) | | PHP | 8.3.6 | Configurado | | Node.js | 18.19.1 | Instalado | | Fail2ban | Activo | 2 jails: asterisk, sshd | | nftables | Activo | Firewall configurado | ## Tareas Completadas (Fase 1) - [x] Task 1: Preparar OS base (timezone, dependencias de compilacion) - [x] Task 2: Instalar MariaDB (asegurado, DBs asterisk y asteriskcdrdb creadas) - [x] Task 3: Instalar Apache + PHP 8.3 (configurado para FreePBX) - [x] Task 4: Compilar Asterisk 20 LTS (con sonidos en espanol, MP3, app_macro) - [x] Task 5: Instalar FreePBX 17 (GUI accesible en http://192.168.10.228/admin/) - [x] Task 6: Configurar firewall nftables (SIP/RTP/SSH/HTTP permitidos) - [x] Task 7: Configurar Fail2ban (jail asterisk: 3 intentos = ban 1 hora) - [x] Task 8: Crear extensiones SIP (1001 y 1002 via PJSIP) ## Tareas Pendientes (Fase 1) - [ ] Task 9: Conectar softphones y probar llamadas internas - [ ] Task 10: Configurar IVR, Ring Groups y Colas - [ ] Configurar IP estatica ## Tareas Pendientes (Fase 2 — PSTN) - [ ] Task 11: Contratar proveedor de trunk SIP (Telnyx recomendado) - [ ] Task 12: Configurar trunk SIP en FreePBX - [ ] Task 13: Configurar rutas salientes (US + MX) - [ ] Task 14: Configurar rutas entrantes (DIDs) - [ ] Task 15: Actualizar firewall para IPs del proveedor trunk - [ ] Task 16: Pruebas end-to-end ## Extensiones Creadas | Extension | Nombre | Voicemail | Estado | |---|---|---|---| | 1001 | Usuario Prueba 1 | Habilitado | Pendiente registro | | 1002 | Usuario Prueba 2 | Habilitado | Pendiente registro | ## Configuracion de Softphones Servidor: `192.168.10.228` Puerto: `5060` Transporte: `UDP` Protocolo: PJSIP Las contrasenas de las extensiones se consultan con: ```bash asterisk -rx "pjsip show auth 1001-auth" | grep password asterisk -rx "pjsip show auth 1002-auth" | grep password ``` ## Archivos de Configuracion Clave | Archivo | Proposito | |---|---| | `/etc/asterisk/` | Configuracion de Asterisk (gestionado por FreePBX) | | `/etc/freepbx.conf` | Configuracion de conexion FreePBX a DB | | `/etc/nftables.conf` | Reglas de firewall | | `/etc/fail2ban/jail.d/asterisk.conf` | Jail de Fail2ban para Asterisk | | `/etc/asterisk/logger_logfiles_custom.conf` | Security log para Fail2ban | | `/etc/apache2/envvars` | Apache corriendo como usuario asterisk | | `/etc/apache2/sites-available/freepbx.conf` | VirtualHost de FreePBX | | `/etc/default/asterisk` | Usuario de ejecucion de Asterisk | | `/etc/ld.so.conf.d/asterisk.conf` | Path de librerias /usr/lib64 | ## Notas Importantes 1. **Apache corre como usuario `asterisk`** (no www-data) — requerido por FreePBX 2. **Se agrego `/usr/lib64` al linker** via `/etc/ld.so.conf.d/asterisk.conf` para que Asterisk encuentre sus librerias 3. **Asterisk fue compilado desde fuente** en `/usr/src/asterisk-20.18.2/` 4. **La contrasena de MariaDB** para el usuario asterisk esta en `/root/VOIP/.db_password` 5. **No cambiar archivos en `/etc/asterisk/` directamente** — FreePBX los sobreescribe. Usar archivos `*_custom.conf` para cambios manuales. ## Comandos Utiles ```bash # Estado de servicios systemctl status asterisk systemctl status apache2 systemctl status mariadb systemctl status fail2ban # Consola de Asterisk asterisk -rvvv # Ver extensiones registradas asterisk -rx "pjsip show endpoints" # Ver registros de trunks asterisk -rx "pjsip show registrations" # Recargar FreePBX fwconsole reload # Reparar permisos fwconsole chown # Ver IPs baneadas por Fail2ban fail2ban-client status asterisk # Ver reglas de firewall nft list ruleset ```