Alojamiento de VoIP y comunicaciones unificadas en servidores dedicados

Información sobre el alojamiento de VOIP y comunicaciones unificadas en servidores dedicados

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 504 GB2 o más núcleosG.711 (sin transcodificación)
50-2008GB4 o más núcleosG.711 o G.729
200-50016 GB8 o más núcleosCualquier códec
500-100032 GBMás de 12 núcleosCualquier códec
1,000+64 GB o másMás de 16 núcleosCualquier 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/admin

Una 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-trunk

Configuració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 accept

Fail2Ban 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 = 3600

Sin 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 ef

Resolució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

Comparte este artículo

Deja una respuesta

Tu dirección de correo electrónico no se publicará. Los campos obligatorios están marcados con *.