
Las cuotas mensuales por usuario de las plataformas UCaaS se acumulan rápidamente. Una empresa con 50 empleados que paga entre 30 y 50 dólares por usuario por el servicio de telefonía empresarial gasta entre 18 000 y 30 000 dólares al año en infraestructura de comunicaciones, algo que una implementación autohospedada de Asterisk/FreePBX en un servidor dedicado puede sustituir por una fracción del coste. La contrapartida es la complejidad de la configuración y la responsabilidad de mantener el sistema en funcionamiento. Para…
¿Por qué optar por hardware dedicado en lugar de la nube para el VOIP?
La calidad del VOIP es mucho más sensible a las fluctuaciones y la latencia de la red que las aplicaciones web. Un pico de 50 ms en una solicitud web añade 50 ms al tiempo de carga de la página: algo que se nota, pero que no es catastrófico. Un pico de 50 ms en una llamada telefónica activa se percibe como un clic o una interrupción. Un pico de 200 ms hace que las palabras se corten por completo.
Las instancias en la nube traen consigo dos fuentes de fluctuación que los servidores dedicados eliminan: la variabilidad en la programación del hipervisor (la máquina virtual tiene que esperar a que le toque el turno de CPU cuando el host físico está saturado) y la congestión de red por «vecinos ruidosos». La propia documentación de Asterisk recomienda usar hardware dedicado para las implementaciones en producción precisamente por estos factores.
Un servidor dedicado con conectividad ampliable de 10 Gbps, como los que ofrece la gama de servidores dedicadosInMotion Hosting, proporciona el entorno de red de baja fluctuación y baja latencia que requiere la calidad de las llamadas. El plan Essential (64 GB de RAM, procesador Intel) gestiona sin problemas más de 500 llamadas SIP simultáneas; el plan Extreme, con AMD EPYC, gestiona varios miles.
Asterisk y FreePBX: cómo funciona el sistema
Asterisk es un motor de telefonía de código abierto. Se encarga del enrutamiento de llamadas, la señalización SIP, el procesamiento de medios y la integración con proveedores externos. Se configura mediante archivos de texto y requiere conocimientos técnicos avanzados para configurarlo desde cero.
FreePBX es una interfaz de administración basada en web que se ejecuta sobre Asterisk. Ofrece una interfaz gráfica de usuario (GUI) para configurar extensiones, menús IVR, colas de llamadas, buzón de voz y conexiones de troncales SIP sin tener que editar directamente los archivos de configuración de Asterisk. La mayoría de las implementaciones de VoIP autohospedadas utilizan FreePBX como capa de gestión sobre Asterisk.
Distribuciones que incluyen ambas cosas:
- Distribución FreePBX (basada en CentOS, mantenida por Sangoma)
- PBX en un santiamén
- La pila recomendada por VoIP.ms
Para una nueva instalación en los servidores dedicados de InMotion, la imagen ISO de FreePBX Distro es la forma más rápida de conseguir un sistema operativo: instala Asterisk, FreePBX y todas las dependencias en un solo paso.
Requisitos de hardware del servidor
Los requisitos de hardware de FreePBX varían en función del volumen de llamadas simultáneas y de los códecs elegidos:
| Hasta 50 | 4 GB | 2 o más núcleos | G.711 (sin transcodificación) |
| 50-200 | 8GB | 4 o más núcleos | G.711 o G.729 |
| 200-500 | 16 GB | 8 o más núcleos | Cualquier códec |
| 500-1000 | 32 GB | Más de 12 núcleos | Cualquier códec |
| 1,000+ | 64 GB o más | Más de 16 núcleos | Cualquier códec con transcodificación |
La elección del códec influye mucho en la carga de la CPU. El G.711 (ulaw/alaw) transmite el audio sin transcodificar: es audio PCM sin procesar a 64 Kbps por canal. El G.729 es la alternativa comprimida a 8 Kbps, que requiere transcodificación por parte de la CPU en cada llamada. Con 100 llamadas simultáneas en G.729, solo la transcodificación consume entre 2 y 4 núcleos de CPU en un procesador moderno.
Para la mayoría de las implementaciones en pymes (menos de 200 llamadas simultáneas), el servidor Essential de InMotion (99,99 $ al mes) ofrece un margen considerable. Los 64 GB de RAM superan con creces los requisitos del VoIP; el procesador Intel gestiona la carga de transcodificación sin problemas y le sobran núcleos para otros servicios.
Instalación de FreePBX en AlmaLinux
A partir de 2025, AlmaLinux 8 será el sistema operativo recomendado para las implementaciones de FreePBX en entornos de producción, tras el fin del ciclo de vida de CentOS 8.
# Update base system
dnf update -y
# Install dependencies
dnf install -y wget git
# Download and run FreePBX install script
wget https://github.com/FreePBX/sng_freepbx_debian_install/releases/download/latest/sangoma_freepbx_install.sh
# Review the script before executing
bash sangoma_freepbx_install.sh
# The script installs Asterisk, FreePBX, and web UI
# Access FreePBX admin at http://your-server-ip/adminUna vez instalado, la interfaz de usuario de administración de FreePBX se encarga del resto de la configuración: establecer la contraseña de administrador, configurar los enlaces SIP, crear extensiones y configurar el IVR.
Configuración del enlace SIP
Un enlace SIP conecta tu servidor Asterisk a la PSTN (red telefónica pública conmutada), es decir, la red telefónica convencional. Los proveedores comerciales de enlaces SIP cobran por minutos u ofrecen planes de canales con tarifa plana.
Proveedores de troncales SIP recomendados para implementaciones de servidores dedicados:
- Twilio Elastic SIP Trunking: tarifa por minuto, sin mínimos mensuales, documentación excelente
- VoIP.ms: proveedor canadiense con terminación en EE. UU., con opciones de tarifa plana y por minuto
- Telnyx: precios competitivos y buena documentación para desarrolladores
En FreePBX, los enlaces se configuran en «Conectividad > Enlaces». Una configuración típica de un enlace SIP:
Trunk Name: Primary_SIP_Trunk
Outbound CallerID: Your DID number
PEER Details:
host=sip.provider.com
type=peer
qualify=yes
nat=force_rport,comedia
dtmfmode=rfc2833
context=from-trunkConfiguración de red y cortafuegos para VoIP
El VOIP requiere una configuración específica del cortafuegos. La señalización SIP utiliza el puerto UDP/TCP 5060; los medios (audio RTP) utilizan un rango de puertos UDP:
# SIP signaling
nft add rule inet filter input udp dport 5060 accept
nft add rule inet filter input tcp dport 5060 accept
# RTP media ports (FreePBX default range)
nft add rule inet filter input udp dport 10000-20000 accept
# FreePBX web interface (restrict to admin IPs)
nft add rule inet filter input ip saddr 203.0.113.0/32 tcp dport 80 accept
nft add rule inet filter input ip saddr 203.0.113.0/32 tcp dport 443 acceptFail2Ban es imprescindible para los servidores VOIP. El puerto SIP 5060 es escaneado constantemente por herramientas automatizadas que intentan registrar extensiones y realizar llamadas a tu costa. Fail2Ban, junto con la «jail» de Asterisk, bloquea las direcciones IP tras los intentos fallidos de registro:
# /etc/fail2ban/jail.local
[asterisk]
enabled = true
port = 5060
filter = asterisk
logpath = /var/log/asterisk/security
maxretry = 3
bantime = 3600Sin Fail2Ban, el robo de las credenciales de una extensión puede provocar pérdidas de miles de dólares en llamadas internacionales fraudulentas en cuestión de horas. No es una hipótesis: el fraude de tarifas SIP es uno de los incidentes más comunes y costosos en implementaciones de VoIP que no cuentan con la seguridad adecuada.
Optimización de la calidad de las llamadas
Marcado de QoS (calidad de servicio): Marca los paquetes de VOIP con DSCP EF (Expedited Forwarding) para que los equipos de red les den prioridad frente al tráfico de datos general:
# Mark outbound RTP packets with DSCP EF (46)
nft add rule inet mangle output ip protocol udp udp dport 10000-20000 ip dscp set ef
nft add rule inet mangle output ip protocol udp udp dport 5060 ip dscp set efResolución del temporizador del kernel: la sincronización de VOIP es sensible a los retrasos en la programación del kernel. En servidores con mucha carga, configura CONFIG_HZ=1000 en la configuración del kernel para reducir la latencia de programación. Para la mayoría de las configuraciones de servidores dedicados, el valor predeterminado ya es el adecuado; compruébalo con grep CONFIG_HZ /boot/config-$(uname -r).
Desactiva el intercambio de memoria para los búferes RTP. La paginación de memoria durante el procesamiento de llamadas activas provoca picos de latencia. Con el servidor Essential de InMotion, que cuenta con 64 GB de RAM y ejecuta una implementación VOIP modesta, el intercambio de memoria no debería utilizarse nunca. Compruébalo con el comando «free -m» y configura «vm.swappiness=1» en /etc/sysctl.conf como medida preventiva.
Supervisión de la calidad de las llamadas
Asterisk registra los registros de datos de llamadas (CDR), que proporcionan métricas de calidad tras la llamada. La variable RTPAUDIOQOS del CDR recoge la fluctuación, la pérdida de paquetes y el tiempo de ida y vuelta por llamada. Vigila lo siguiente:
- Fluctuación superior a 30 ms: se nota una pérdida de calidad en el audio
- Pérdida de paquetes superior al 1 %: palabras que se pierden, audio entrecortado
- Tiempo de ida y vuelta superior a 150 ms: retraso perceptible en la conversación
La documentación sobre CDR en tiempo real de Asterisk explica cómo almacenar datos de CDR en MySQL para su análisis. En las implementaciones de producción, el almacenamiento de datos de CDR permite realizar análisis de tendencias que ayudan a determinar si los problemas de calidad de las llamadas están relacionados con la hora del día (carga del servidor), con troncales SIP concretas o con rutas geográficas específicas.
El plan Premier Care de InMotion incluye asistencia las 24 horas del día, los 7 días de la semana. En el caso de las implementaciones de VOIP, en las que los problemas de calidad de las llamadas podrían afectar al funcionamiento de la empresa, merece la pena pagar el coste adicional para tener acceso a asistencia especializada en cuestiones relacionadas con el servidor, como problemas de red, conflictos de recursos o anomalías de hardware.
Lecturas relacionadas: Mejores prácticas para el refuerzo de servidores | Optimización de la latencia de red para servidores dedicados