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:
consultoria-as
2026-02-15 03:30:27 -06:00
commit 8f51fcfa05
5 changed files with 1443 additions and 0 deletions

View 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

File diff suppressed because it is too large Load Diff