Phase 1 installation completed (8/10 tasks): - Ubuntu 24.04, Asterisk 20.18.2 compiled from source - FreePBX 17.0.25 with PJSIP extensions (1001, 1002) - MariaDB 10.11.14, Apache 2.4, PHP 8.3 - nftables firewall and Fail2ban security configured Pending: softphone testing, IVR/queues config, Phase 2 (PSTN trunks) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4.0 KiB
4.0 KiB
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)
- Task 1: Preparar OS base (timezone, dependencias de compilacion)
- Task 2: Instalar MariaDB (asegurado, DBs asterisk y asteriskcdrdb creadas)
- Task 3: Instalar Apache + PHP 8.3 (configurado para FreePBX)
- Task 4: Compilar Asterisk 20 LTS (con sonidos en espanol, MP3, app_macro)
- Task 5: Instalar FreePBX 17 (GUI accesible en http://192.168.10.228/admin/)
- Task 6: Configurar firewall nftables (SIP/RTP/SSH/HTTP permitidos)
- Task 7: Configurar Fail2ban (jail asterisk: 3 intentos = ban 1 hora)
- 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:
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
- Apache corre como usuario
asterisk(no www-data) — requerido por FreePBX - Se agrego
/usr/lib64al linker via/etc/ld.so.conf.d/asterisk.confpara que Asterisk encuentre sus librerias - Asterisk fue compilado desde fuente en
/usr/src/asterisk-20.18.2/ - La contrasena de MariaDB para el usuario asterisk esta en
/root/VOIP/.db_password - No cambiar archivos en
/etc/asterisk/directamente — FreePBX los sobreescribe. Usar archivos*_custom.confpara cambios manuales.
Comandos Utiles
# 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