docs: initial project setup - Asterisk 20 + FreePBX 17 PBX
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>
This commit is contained in:
145
docs/plans/2026-02-15-voip-asterisk-freepbx-design.md
Normal file
145
docs/plans/2026-02-15-voip-asterisk-freepbx-design.md
Normal file
@@ -0,0 +1,145 @@
|
||||
# VoIP PBX Empresarial — Asterisk + FreePBX
|
||||
|
||||
**Fecha**: 2026-02-15
|
||||
**Estado**: Aprobado
|
||||
|
||||
## Objetivo
|
||||
|
||||
Implementar un PBX empresarial con Asterisk + FreePBX en servidor fisico propio, escalable, con presencia en Mexico y Estados Unidos. Comunicacion interna primero, conectividad PSTN despues.
|
||||
|
||||
## Requisitos
|
||||
|
||||
- Uso: PBX empresarial
|
||||
- Escala: Indefinida, debe ser escalable
|
||||
- Hospedaje: Servidor fisico propio
|
||||
- PSTN: Si, en fase posterior
|
||||
- Regiones: Mexico + Estados Unidos
|
||||
|
||||
## Arquitectura
|
||||
|
||||
### Fase 1 — PBX Interno (sin PSTN)
|
||||
|
||||
```
|
||||
[Telefonos IP / Softphones]
|
||||
| SIP/RTP (LAN)
|
||||
v
|
||||
+-------------------------+
|
||||
| Servidor Fisico |
|
||||
| Debian 12 / Rocky 9 |
|
||||
| +-- Asterisk 20 LTS |
|
||||
| +-- FreePBX 17 |
|
||||
| +-- MariaDB |
|
||||
| +-- Apache/Nginx |
|
||||
| +-- Fail2ban + FW |
|
||||
+-------------------------+
|
||||
```
|
||||
|
||||
- Extensiones SIP internas
|
||||
- IVR, buzon de voz, colas de llamadas, conferencias
|
||||
- Sin conexion a PSTN
|
||||
|
||||
### Fase 2 — Conexion PSTN (trunk SIP)
|
||||
|
||||
```
|
||||
[Telefonos IP / Softphones]
|
||||
| SIP/RTP (LAN)
|
||||
v
|
||||
+-------------------------+ +------------------+
|
||||
| Servidor Asterisk |<--SIP-->| Trunk SIP (US) |
|
||||
| FreePBX | | (Telnyx/VoIP.ms)|
|
||||
| | +------------------+
|
||||
| | +------------------+
|
||||
| |<--SIP-->| Trunk SIP (MX) |
|
||||
| | | (Telnyx/Telmex) |
|
||||
+-------------------------+ +------------------+
|
||||
| |
|
||||
v v
|
||||
Llamadas internas Llamadas a PSTN (MX+US)
|
||||
```
|
||||
|
||||
## Hardware Recomendado
|
||||
|
||||
| Componente | Minimo | Recomendado |
|
||||
|---|---|---|
|
||||
| CPU | 2 cores / 2 GHz | 4+ cores / 3+ GHz |
|
||||
| RAM | 4 GB | 8-16 GB |
|
||||
| Disco | 50 GB SSD | 120+ GB SSD (grabaciones) |
|
||||
| Red | 1 Gbps Ethernet | 1 Gbps + IP estatica |
|
||||
| UPS | Recomendado | Obligatorio |
|
||||
|
||||
## Stack de Software
|
||||
|
||||
| Componente | Version | Proposito |
|
||||
|---|---|---|
|
||||
| OS | Debian 12 (Bookworm) | Estabilidad, soporte largo |
|
||||
| Asterisk | 20 LTS | Motor PBX |
|
||||
| FreePBX | 17 | Interfaz web de administracion |
|
||||
| MariaDB | 10.11+ | Base de datos |
|
||||
| PHP | 8.2 | Requerido por FreePBX |
|
||||
| Apache | 2.4 | Servidor web para GUI |
|
||||
| Fail2ban | 1.0+ | Proteccion contra ataques SIP |
|
||||
| iptables/nftables | Sistema | Firewall |
|
||||
|
||||
## Proveedores de Trunk SIP (Fase 2)
|
||||
|
||||
### Opcion A — Un solo proveedor (Recomendada): Telnyx
|
||||
|
||||
| Concepto | Costo |
|
||||
|---|---|
|
||||
| DID US | ~$1.00/mes |
|
||||
| DID Mexico | ~$1.00/mes |
|
||||
| Entrante US | $0.0075/min |
|
||||
| Saliente US | $0.009/min |
|
||||
| Saliente MX (fijo) | ~$0.01-0.02/min |
|
||||
| Saliente MX (celular) | ~$0.02-0.05/min |
|
||||
| Canales simultaneos | Ilimitados (plan por minuto) |
|
||||
| Contratos | Sin contrato |
|
||||
|
||||
### Opcion B — Economico (prepago): VoIP.ms
|
||||
|
||||
| Concepto | Costo |
|
||||
|---|---|
|
||||
| DID US | $0.85/mes |
|
||||
| DID Mexico | ~$3-10/mes |
|
||||
| Entrante US | $0.009/min |
|
||||
| Saliente US | $0.01/min |
|
||||
| Canales simultaneos | Ilimitados |
|
||||
| Contratos | Prepago, sin contrato |
|
||||
|
||||
### Opcion C — Redundancia dual: Telnyx + BulkVS
|
||||
|
||||
Telnyx como primario para ambos paises. BulkVS como respaldo US ultra-barato ($0.06/mes DID, $0.0003/min entrante).
|
||||
|
||||
### Opcion D — Mexico con telco local: Telmex + Telnyx
|
||||
|
||||
Telmex Troncal IP para Mexico (~$224 MXN/mes + IVA, minimo 10 troncales, contrato 12-36 meses, codec G.729). Telnyx para US.
|
||||
|
||||
## Seguridad
|
||||
|
||||
- Firewall: Solo puertos SIP (5060/5061) y RTP (10000-20000) hacia IPs conocidas
|
||||
- Fail2ban: Reglas especificas para Asterisk
|
||||
- TLS/SRTP: Cifrado de senalizacion y audio
|
||||
- Contrasenas fuertes: Minimo 16 caracteres aleatorios para extensiones SIP
|
||||
- VLAN separada para trafico VoIP
|
||||
- Actualizaciones regulares del OS y Asterisk
|
||||
|
||||
## Fases de Implementacion
|
||||
|
||||
### Fase 1: PBX Interno
|
||||
1. Preparar servidor fisico (OS, red, seguridad base)
|
||||
2. Instalar dependencias (PHP, MariaDB, Apache)
|
||||
3. Instalar Asterisk 20 LTS desde fuente
|
||||
4. Instalar FreePBX 17
|
||||
5. Configurar firewall y Fail2ban
|
||||
6. Crear extensiones SIP de prueba
|
||||
7. Configurar IVR, buzones de voz, colas
|
||||
8. Conectar telefonos IP / softphones
|
||||
9. Pruebas de llamadas internas
|
||||
|
||||
### Fase 2: Conexion PSTN
|
||||
1. Contratar proveedor de trunk SIP
|
||||
2. Configurar trunk en FreePBX
|
||||
3. Configurar rutas entrantes/salientes
|
||||
4. Adquirir DIDs (MX + US)
|
||||
5. Pruebas de llamadas externas
|
||||
6. Configurar failover si aplica
|
||||
Reference in New Issue
Block a user