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>
126 lines
4.0 KiB
Markdown
126 lines
4.0 KiB
Markdown
# 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
|
|
```
|