Initial commit: FreePBX 17 VoIP setup for horux360, consultoria-as, nexus
This commit is contained in:
239
docs/DOCUMENTACION_VOIP.md
Normal file
239
docs/DOCUMENTACION_VOIP.md
Normal file
@@ -0,0 +1,239 @@
|
||||
# Documentación del Sistema VoIP - FreePBX 17
|
||||
|
||||
## Información General
|
||||
- **Servidor:** Ubuntu 24.04 LTS
|
||||
- **IP del Servidor:** `192.168.10.114`
|
||||
- **PBX:** FreePBX 17.0.28
|
||||
- **Asterisk:** 21.12.2
|
||||
- **Empresas:** Horux360, Consultoria-AS, Nexus
|
||||
|
||||
---
|
||||
|
||||
## Accesos Principales
|
||||
|
||||
### Panel Web FreePBX (Administración)
|
||||
- **URL:** http://192.168.10.114/admin
|
||||
- **Usuario:** `admin`
|
||||
- **Contraseña:** `FreePBX2026!`
|
||||
|
||||
### Panel de Usuario (UCP - User Control Panel)
|
||||
- **URL:** http://192.168.10.114/ucp
|
||||
- Las extensiones pueden acceder aquí para ver sus grabaciones, voicemail y llamadas.
|
||||
|
||||
---
|
||||
|
||||
## Extensiones Configuradas
|
||||
|
||||
| Extensión | Empresa | Nombre | Contraseña SIP | Grabación |
|
||||
|-----------|---------|--------|----------------|-----------|
|
||||
| 100 | Horux360 | Horux360 - Admin | `Horux100!` | Siempre |
|
||||
| 200 | Consultoria AS | Consultoria AS - Admin | `Consult200!` | Siempre |
|
||||
| 300 | Nexus | Nexus - Admin | `Nexus300!` | Siempre |
|
||||
|
||||
### Softphones Recomendados
|
||||
- **Windows:** MicroSIP (https://www.microsip.org)
|
||||
- **Mac:** Telephone (App Store)
|
||||
- **Móvil:** Zoiper (iOS/Android)
|
||||
- **WebRTC:** UCP incluye teléfono web
|
||||
|
||||
### Configuración de Softphone
|
||||
- **Servidor/SIP Domain:** `192.168.10.114`
|
||||
- **Puerto:** `5060` (UDP)
|
||||
- **Transporte:** UDP
|
||||
- **Usuario:** Número de extensión (ej. `100`)
|
||||
- **Contraseña:** Según tabla arriba
|
||||
|
||||
---
|
||||
|
||||
## IVR (Menú Principal)
|
||||
- **Nombre:** MenuPrincipal
|
||||
- **Contexto Asterisk:** `ivr-1`
|
||||
- **Opciones:**
|
||||
- `1` → Horux360 (Extensión 100)
|
||||
- `2` → Consultoria AS (Extensión 200)
|
||||
- `3` → Nexus (Extensión 300)
|
||||
|
||||
Para asignar una llamada entrante al IVR, configura la ruta entrante (Inbound Route) con destino `IVR → MenuPrincipal`.
|
||||
|
||||
---
|
||||
|
||||
## Grabación de Llamadas
|
||||
- **Estado:** Activada para todas las extensiones
|
||||
- **Almacenamiento:** `/var/spool/asterisk/monitor/`
|
||||
- **Formato:** WAV (por defecto)
|
||||
- **Acceso:** Panel web FreePBX → Reports → CDR Reports (incluye link a grabaciones)
|
||||
- **Retención:** Configurable en FreePBX. Actualmente sin límite de rotación.
|
||||
|
||||
---
|
||||
|
||||
## Dashboard de Métricas (CDR)
|
||||
- **URL:** http://192.168.10.114/admin → Reports → CDR Reports
|
||||
- **Datos disponibles:**
|
||||
- Historial de llamadas (entrantes/salientes)
|
||||
- Duración
|
||||
- Estado (contestada, perdida, ocupada)
|
||||
- Grabaciones asociadas
|
||||
- Filtrado por fecha, extensión, número, etc.
|
||||
|
||||
---
|
||||
|
||||
## Base de Datos
|
||||
|
||||
### MariaDB
|
||||
- **Root Password:** `FreePBXRoot2026!`
|
||||
- **FreePBX User:** `asteriskuser`
|
||||
- **FreePBX Password:** `AsteriskDB2026!`
|
||||
- **Bases de datos:** `asterisk` (configuración), `asteriskcdrdb` (registro de llamadas)
|
||||
|
||||
---
|
||||
|
||||
## Firewall (UFW)
|
||||
Puertos abiertos:
|
||||
- `22/tcp` - SSH
|
||||
- `80/tcp` - HTTP (FreePBX)
|
||||
- `443/tcp` - HTTPS
|
||||
- `5060/tcp+udp` - SIP
|
||||
- `5061/tcp+udp` - SIPS
|
||||
- `10000-20000/udp` - RTP (audio de llamadas)
|
||||
- `8088/tcp` - Asterisk HTTP
|
||||
- `8089/tcp` - Asterisk HTTPS
|
||||
- `5038/tcp` - AMI (Asterisk Manager Interface)
|
||||
|
||||
---
|
||||
|
||||
## Seguridad
|
||||
|
||||
### Fail2Ban
|
||||
- **Estado:** Activo
|
||||
- **Jails:** sshd, asterisk, apache-auth, apache-badbots
|
||||
- **Bantime:** 3600 segundos (1 hora)
|
||||
- **Max retry:** 5 intentos
|
||||
|
||||
### AMI (Integración Odoo)
|
||||
- **Usuario AMI:** `odoo`
|
||||
- **Contraseña AMI:** `OdooAMI2026!`
|
||||
- **Permisos:** Lectura/Escritura completa
|
||||
- **Acceso permitido:** Red local `192.168.10.0/24`
|
||||
- **Puerto:** `5038`
|
||||
|
||||
---
|
||||
|
||||
## Integración con Odoo
|
||||
|
||||
### Módulos Requeridos (Odoo Community)
|
||||
1. Instalar desde https://github.com/OCA/connector-telephony:
|
||||
- `base_phone`
|
||||
- `asterisk_click2dial`
|
||||
- `crm_phone` (opcional, para pop-up en CRM)
|
||||
|
||||
### Configuración en Odoo
|
||||
1. Ir a **Settings → Asterisk Server**
|
||||
2. Agregar servidor:
|
||||
- **Name:** FreePBX VoIP
|
||||
- **IP:** `192.168.10.114`
|
||||
- **Port:** `5038`
|
||||
- **Login:** `odoo`
|
||||
- **Password:** `OdooAMI2026!`
|
||||
3. Configurar prefijo de marcado si es necesario
|
||||
|
||||
### Funcionalidades
|
||||
- **Click-to-Call:** Click en cualquier número de teléfono en Odoo para llamar
|
||||
- **Pop-up de Cliente:** Al recibir llamada, Odoo busca el número y abre la ficha
|
||||
- **Historial:** Registro de llamadas en la ficha del cliente
|
||||
|
||||
---
|
||||
|
||||
## Troncal SIP (PSTN)
|
||||
- **Estado actual:** No configurado
|
||||
- **Próximo paso:** Contratar troncal SIP con proveedor recomendado
|
||||
|
||||
### Proveedores Recomendados
|
||||
| Proveedor | Ventaja |
|
||||
|-----------|---------|
|
||||
| **Twilio** | Confiable, fácil API, soporte global |
|
||||
| **Telnyx** | Precios bajos, buena calidad |
|
||||
| **VozTelecom** | Si operan en España |
|
||||
| **OVH** | Buena cobertura Europa/Latam |
|
||||
|
||||
### Configuración General
|
||||
1. FreePBX → Connectivity → Trunks → Add Trunk → Add SIP (chan_pjsip) Trunk
|
||||
2. Ingresar datos del proveedor (host, usuario, contraseña)
|
||||
3. Configurar Outbound Routes (rutas salientes)
|
||||
4. Configurar Inbound Routes (rutas entrantes) → apuntar a IVR
|
||||
|
||||
---
|
||||
|
||||
## Comandos Útiles
|
||||
|
||||
```bash
|
||||
# Estado de Asterisk
|
||||
asterisk -rvx "core show uptime"
|
||||
|
||||
# Estado de extensiones PJSIP
|
||||
asterisk -rvx "pjsip show endpoints"
|
||||
|
||||
# Recargar configuración FreePBX
|
||||
fwconsole reload
|
||||
|
||||
# Reiniciar todo el servicio
|
||||
fwconsole restart
|
||||
|
||||
# Estado de Fail2Ban
|
||||
fail2ban-client status
|
||||
|
||||
# Ver logs de Asterisk
|
||||
tail -f /var/log/asterisk/messages.log
|
||||
|
||||
# Ver logs de FreePBX/web
|
||||
tail -f /var/log/apache2/freepbx-error.log
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Multi-Tenant (3 Empresas)
|
||||
- **Enfoque:** Un solo FreePBX con prefijos de extensión por empresa
|
||||
- `100-199` → Horux360
|
||||
- `200-299` → Consultoria AS
|
||||
- `300-399` → Nexus
|
||||
- **IVR:** Un menú principal con opciones por empresa
|
||||
- **CID Saliente:** Configurable por ruta/trunk cuando se contrate troncal
|
||||
|
||||
---
|
||||
|
||||
## Respaldo y Mantenimiento
|
||||
|
||||
### Backup Automático
|
||||
- Instalar módulo `backup` en FreePBX (ya instalado)
|
||||
- Configurar en Admin → Backup & Restore
|
||||
- Recomendado: Backup diario de configuración + grabaciones
|
||||
|
||||
### Actualizaciones
|
||||
```bash
|
||||
# Actualizar módulos FreePBX
|
||||
fwconsole ma updateall
|
||||
fwconsole reload
|
||||
|
||||
# Actualizar sistema operativo
|
||||
apt update && apt upgrade
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Notas Importantes
|
||||
1. **Cambiar contraseñas por defecto** antes de poner en producción pública
|
||||
2. **Configurar HTTPS** (Let's Encrypt) para acceso seguro al panel
|
||||
3. **NAT:** Si el servidor está detrás de router/firewall, configurar "NAT = Yes" en Settings → Asterisk SIP Settings
|
||||
4. **RTP:** Asegurar que el rango UDP 10000-20000 esté abierto en el router/firewall externo
|
||||
5. **Sonidos:** Los sonidos en inglés están instalados. Para español, instalar `sounds-es` desde FreePBX → Admin → Sound Languages
|
||||
|
||||
---
|
||||
|
||||
## Soporte
|
||||
- **FreePBX Wiki:** https://sangomakb.atlassian.net/wiki/spaces/FP/overview
|
||||
- **Asterisk Docs:** https://docs.asterisk.org/
|
||||
- **Comunidad:** https://community.freepbx.org/
|
||||
|
||||
---
|
||||
|
||||
*Documento generado el 2026-04-29*
|
||||
*Implementación realizada por Kimi Code CLI*
|
||||
Reference in New Issue
Block a user