Configuración avanzada y completa de Asterisk: Guía definitiva

  • Asterisk es una PBX open source extremadamente flexible y personalizable
  • La clave está en dominar la estructura de sus archivos de configuración principales
  • Permite desde centralitas simples hasta call centers complejos, con integración de bases de datos, seguridad, colas e IVR

Configuración avanzada de asterisk

Configurar Asterisk de la manera más completa y profesional puede parecer una tarea abrumadora al principio, sobre todo por la inmensa cantidad de posibilidades que ofrece este potente sistema PBX de código abierto. Sin embargo, con una explicación clara, estructurada y con ejemplos prácticos, cualquier persona, desde principiantes hasta administradores experimentados, puede conseguir que su instalación de Asterisk aproveche todo su potencial. Vamos a recorrer juntos un camino desde los conceptos básicos hasta las implementaciones avanzadas, incluyendo seguridad, integración con bases de datos y mucho más. Prepárate para tener bajo control tu centralita VoIP y personalizarla a tu medida.

Lo que encontrarás aquí es más que una guía paso a paso: te daré tanto el contexto imprescindible como los entresijos de cada fichero clave, consejos reales de uso y, por supuesto, enlazaré siempre que corresponda hacia recursos oficiales o a proyectos relevantes, porque la comunidad Asterisk es enorme y activa. Si estás pensando en montar tu PBX doméstica, empresarial, experimentar con VoIP o llevar tu configuración al siguiente nivel, es el momento de ponerse manos a la obra.

¿Qué es y para qué sirve Asterisk?

Asterisk es, en esencia, una auténtica navaja suiza para las comunicaciones. Se trata de un sistema PBX (Private Branch Exchange) de código abierto que permite gestionar llamadas de teléfono, videoconferencias, buzones de voz, IVR (sistemas de respuesta de voz interactiva), colas de llamadas y mucho más. Su mayor virtud está en su flexibilidad: puede comportarse desde como un simple gateway hasta reemplazar centralitas de grandes empresas con múltiples funcionalidades avanzadas. Está disponible para descarga gratuita y cuenta con una comunidad y documentación realmente completa.

La arquitectura de Asterisk se basa en ficheros de configuración de texto plano ubicados, generalmente, en /etc/asterisk/. Personalizar estos archivos es el verdadero arte de sacar partido al sistema, y aunque pueda intimidar de primeras, con práctica y buena documentación, su lógica se vuelve muy poderosa.

Ficheros esenciales para configurar Asterisk

En el corazón de cualquier instalación se encuentran algunos archivos básicos que conviene conocer:

  • asterisk.conf: Establece los directorios, rutas y opciones de arranque básicas.
  • sip.conf o pjsip.conf: Donde se define el funcionamiento del protocolo SIP, tanto para usuarios como para otros servidores, y los parámetros generales del sistema, como codecs, puertos, transporte y demás.
  • extensions.conf: El motor de la centralita. Aquí se detalla el plan de marcado (dialplan) que determina cómo responde Asterisk a cada llamada, extensión, menús interactivos, IVR, etc.
  • voicemail.conf: Configuración de buzones de voz para usuarios.
  • queues.conf: Control de colas y agentes para call centers o grupos de atención.
  • logger.conf: Para configurar los registros y logs de llamadas y eventos.

Cada uno de estos archivos juega un papel fundamental y, aunque existen muchos otros para casos concretos, estos son los imprescindibles para la mayoría de despliegues.

Instalación y entorno base

Antes de empezar a trastear con ficheros, necesitas un entorno estable. Es habitual instalar Asterisk sobre distribuciones Linux como Debian o Ubuntu Server, preferiblemente sin entorno gráfico para aprovechar recursos. Se recomienda tener la versión más reciente de Asterisk soportada por tu sistema operativo.

Requisitos previos a la instalación:

  • El sistema actualizado y los paquetes esenciales instalados: sudo, OpenSSH para administración remota, compiladores y dependencias necesarias.
  • Configurar una IP estática para evitar problemas de red y facilitar las conexiones SIP entrantes y salientes.
  • Acceder por SSH desde un cliente como MobaXterm o terminal nativo.

Tras preparar el entorno, se procede a descargar la versión deseada de Asterisk, normalmente del repositorio oficial, y se compila e instala siguiendo los pasos recomendados. Es clave leer los prompts del instalador, ya que te permitirán activar o desactivar módulos según lo que vayas a necesitar (soporte ODBC, colas, codecs, integración con bases de datos, etc).

Como buena práctica de seguridad, es importante que el servicio de Asterisk se ejecute bajo un usuario dedicado (por ejemplo, asterisk) con los permisos mínimos requeridos.

Primeros pasos tras la instalación

Una vez finalizada la instalación y creado el usuario y grupos adecuados, es el momento de:

  • Asignar la propiedad de ficheros y directorios de configuración al usuario asterisk.
  • Habilitar el arranque automático del servicio con el sistema operativo.
  • Comprueba la versión y que el servicio está en marcha con asterisk -rvvvvv para acceder a la CLI (Consola de Comandos).
  • Haz una copia de los archivos de configuración antes de editarlos, y elimina los comentarios y líneas en blanco para apreciar mejor la lógica de cada archivo.

Un truco útil: si usas VIM, puedes limpiar los comentarios del fichero con comandos de búsqueda y reemplazo usando expresiones regulares.

Configuración de la red y parámetros fundamentales

El primer fichero a revisar tras la instalación es sip.conf (o bien pjsip.conf en instalaciones modernas). En el contexto , defines aspectos clave como los puertos, protocolos, codecs, NAT, idioma por defecto, y muchas otras opciones.

Un ejemplo básico podría ser:

port=5060
bindaddr=0.0.0.0
directmedia=no
language=es
context=public
srvlookup=yes

Ten en cuenta que la configuración de red (NAT, canreinvite, host=dynamic, etc.) debe ajustarse a tu infraestructura (red LAN, tras routers, etc) y a tus clientes SIP (softphones, teléfonos IP, gateways, etc). Para facilitar este proceso, puede ser útil consultar recursos que expliquen «cómo configurar Asterisk».

Para conexiones externas, asegúrate de tener reglas de firewall adecuadas que permitan el tráfico SIP (UDP 5060 por defecto) y los rangos de RTP usados para el audio.

Usuarios SIP y pruebas básicas

Para registrar dispositivos o clientes SIP, crea entradas bajo sip.conf. Por ejemplo:

type=friend
secret=12345678
context=empleado
host=dynamic
canreinvite=no
nat=force_rport,comedia

Después, se deben mapear estas extensiones en extensions.conf para asignarles un destino o funcionalidad. Un ejemplo sencillo para dos usuarios realizando llamadas entre sí:

exten => 4000,1,Dial(SIP/javier)
exten => 4001,1,Dial(SIP/belen)

El terminal SIP se configura con las credenciales definidas, y si todo está correctamente configurado y registrado, ¡ya puedes hacer tus primeras llamadas VoIP internas!

Personalización del idioma y sonidos

Por defecto, Asterisk viene con locuciones en inglés. Para que la experiencia sea más profesional, descárgate y habilita los sonidos en español. Estos se alojan en /var/lib/asterisk/sounds/es/, y puedes personalizarlos, añadir otras locuciones o convertirlos a los formatos necesarios con herramientas como sox.

Modifica el parámetro language=es en tanto en como en los usuarios de sip.conf para forzar el uso del castellano.

Implementar funcionalidades paso a paso

Buzón de voz

Utiliza voicemail.conf para crear uno o varios buzones y asignar pins de acceso. Por ejemplo:

4000 => 1234,Javier,[email protected]
4001 => 1234,Belen,[email protected]

De este modo, cualquier llamada no atendida podrá ser desviada automáticamente a la casilla de voz, y cada usuario podrá consultarla con la extensión configurada (marcando *). Puedes parametrizar la duración máxima, formato de los ficheros de audio y destino de los avisos (correo electrónico, por ejemplo).

Colas de llamadas y música en espera

Para entornos de atención telefónica, Asterisk permite crear colas de espera, donde las llamadas entrantes quedan en espera hasta que algún agente está disponible.

Define las colas en queues.conf:

strategy = leastrecent
timeout = 30
member => SIP/javier
member => SIP/belen

Configura en extensions.conf las extensiones que redirigen a la cola con música en espera personalizada o por defecto. Puedes asociar una carpeta de música específica para cada contexto usando musiconhold.conf.

[relacionado url=»https://www.polimetro.com/las-mejores-aplicaciones-de-odoo/»]

Transferencia y grupos

En el dialplan puedes habilitar transferencias y llamar a un grupo completo para que la llamada salte al primer usuario disponible. Los conceptos callgroup y pickupgroup permiten incluso decidir quién puede capturar llamadas dirigidas a otros compañeros.

Mensajería via SIP

Asterisk puede enviar mensajes de texto entre dispositivos SIP, aunque no es una mensajería instantánea como WhatsApp, sino mensajes breves entre extensiones. Configuras el suporte a través de sip.conf y gestionas la lógica de envío y errores en extensions.conf, usando el comando MessageSend.

Planes de numeración personalizados

Uno de los grandes poderes de Asterisk es poder desarrollar planes de numeración flexibles. Puedes asignar rangos de extensiones a departamentos, equipos, crear reglas para llamadas externas, redirecciones automáticas, condiciones por horario y mucho más utilizando GotoIf, Set, y macros personalizadas.

Por ejemplo, para controlar el horario de apertura de una empresa y gestionar qué ocurre si se llama fuera de horario:

exten => _995554XXX,1,Set(extension=${EXTEN:5})
same => n,GotoIfTime(8:00-20:00,mon-fri,*,*?empleado,${extension},1)
same => n,Festival(En estos momentos no hay nadie que te pueda atender)
same => n,Festival(Nuestro horario es de 8 a 20 horas de lunes a viernes)

Implementación de seguridad: cifrado con TLS

La seguridad es clave en cualquier centralita moderna. Para evitar escuchas o suplantaciones, configura transporte seguro TLS mediante certificados. Utiliza el script ast_tls_cert para generar certificados de servidor y clientes, e identifica usuarios con transport=tls en sus definiciones.

En la sección general de sip.conf, añade:

tlsenable=yes
tlsbindaddr=0.0.0.0
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlscafile=/etc/asterisk/keys/ca.crt
tlscipher=ALL
tlsclientmethod=tlsv1

Recuerda que tanto en el servidor como en el cliente SIP debe estar todo configurado para aceptar mutua autenticación y utilizar canales cifrados.

Conectando el mundo exterior y enroutamiento

Una PBX no sirve de mucho si no es capaz de cruzar el umbral de la red interna. Para permitir llamadas entrantes (por ejemplo, a través de operadoras VoIP como Localphone o GoTrunk), en sip.conf se añaden los parámetros de registro y la lógica correspondiente en extensions.conf.

Ejemplo para registrar con un proveedor externo:

register => USUARIO:CONTRASEÑ[email protected]/USUARIO

type=friend
authuser=USUARIO
username=USUARIO
secret=CONTRASEÑA
host=operador.com
context=inbound
canreinvite=no
dtmfmode=rfc2833
disallow=all
allow=alaw
allow=ulaw

Las llamadas entrantes pueden dirigirse al contexto adecuado del plan de marcado para ser gestionadas como mejor convenga: directamente a un usuario, a una cola, a un buzón de voz, a un IVR…

Monitoreo y logs

En producción, es esencial tener capacidad de auditoría. Los registros de eventos se configuran en logger.conf. Los ficheros messages y cdr-csv/Master.csv almacenan eventos y detalles CDR respectivamente.

Puedes afinar qué nivel de detalle grabar en cada fichero, por ejemplo, agregando verbose() al contexto deseado. Recuerda que si activas el log a nivel muy detallado, el tamaño de los archivos puede crecer rápidamente, así que actívalo solo para depuración puntual.

Avanzando: Integración con bases de datos y ODBC

El siguiente nivel en cualquier centralita profesional es la integración con bases de datos, en especial para grandes despliegues o para permitir cambios dinámicos sin reiniciar servicios ni editar ficheros manualmente. Asterisk ofrece soporte ODBC para conectarse a sistemas tipo MySQL o MariaDB, y permite tanto consultas como actualizaciones en tiempo real.

Pasos básicos para habilitarlo:

  1. Instala y configura los drivers ODBC necesarios (unixODBC, conectores MySQL/MariaDB)
  2. Define los handles en los ficheros odbc.ini y odbcinst.ini
  3. Activa los módulos ODBC al compilar Asterisk y carga los recursos en res_odbc.conf
  4. Configura las queries reutilizables en func_odbc.conf, por ejemplo:
dsn=asterisk
readsql=SELECT nombre from usuarios WHERE id='${SQL_ESC(${ARG1})}'

Integra estos datos dinámicamente en tus contextos del dialplan, para que las llamadas, mensajes o buzones puedan adaptarse al contenido de una base de datos y ofrecer configuraciones ricas sin modificar el archivo cada vez.

Lógica de IVR, call centers y macros complejas

Gracias a la flexibilidad de extensions.conf y la posibilidad de construir macros, nidos de condiciones y variables, puedes programar desde IVR que guían a los clientes por menús (algo similar a «pulse 1 para ventas, 2 para soporte…»), hasta complejos sistemas de call center con discriminación por horario, idioma, permisos, prioridad…

Cualquier menú puede interactuar con el usuario (dígitos, identificación, validación en base de datos) y dirigirle exactamente donde quieras. Las posibilidades, de verdad, solo las limita tu imaginación y la integración con bases de datos u otros sistemas externos.

Conexión entre diferentes PBX: DUNDi

Si necesitas que varias centralitas independientes se comuniquen, por ejemplo, entre distintas sedes de una empresa, puedes utilizar DUNDi (Distributed Universal Number Discovery), que comparte el dialplan y permite buscar extensiones o rutas entre diferentes instancias de Asterisk de forma distribuida. La configuración requiere coordinación de claves públicas/privadas, acuerdos sobre rangos de extensiones, permisos de llamadas y definición de peers en el dialplan.

A través de DUNDi, tres cifras pueden identificar una extensión en cualquier PBX conectada, y enrutar la llamada correspondiente mediante SIP o cualquier otro protocolo soportado.

Centralitas especializadas: Ejemplo de Call Center avanzado

Uno de los ejemplos reales de cómo llevar la configuración de Asterisk a otro nivel es su uso para configurar un Call Center multidepartamental con IVR, colas, diferentes grupos de agentes, horarios de atención, buzones de voz personalizados, y conexiones con bases de datos.

En este tipo de despliegue, el dialplan puede llegar a varios cientos de líneas y las bases de datos contienen los perfiles de los agentes, sus extensiones, permisos de captura de llamadas, habilitación de grupos de pickup, integración de mensajes, buzón de voz, e incluso recibir o transferir llamadas de forma dinámica según el estado de los agentes.

Todo el control de acceso a los buzones se puede gestionar validando el PIN desde la base de datos, asociando distintos contextos a cada equipo (recepción, dirección, doctores, enfermería, etc.) y asignando música de espera distintiva para cada cola.

El despliegue puede incluir:

  • Delegar la autenticación y permisos de llamada empleados exclusivamente a tablas personal y usuarios en la base de datos.
  • Habilitar reglas de captura de llamadas con reglas condicionadas bajo los contextos correspondientes, callgroup y pickupgroup.
  • Habilitar IVR de bienvenida e identificación mediante Festival (motor TTS de texto a voz) o locuciones personalizadas.
  • Distribuir llamadas por leastrecent al miembro menos ocupado del equipo.
  • Integrar softphones (Zoiper, Blink, Pangolin…) para uso de agentes y teletrabajadores.

Este modelo convierte a Asterisk en una plataforma de comunicaciones robusta y flexible, capaz de cubrir las necesidades tanto de pequeñas empresas como de grandes organizaciones.

Consejos y buenas prácticas para la administración

  • Lee siempre la documentación oficial y los comentarios de los ficheros, ya que explican las opciones en detalle y muchas sorpresas pueden evitarse sabiendo qué hace cada parámetro.
  • Haz copias de seguridad antes de cualquier cambio significativo. Un pequeño error de sintaxis puede dejar inoperativa la PBX o inutilizar un contexto importante.
  • Desarrolla y prueba en entornos de pruebas antes de pasar a producción, especialmente las integraciones ODBC, reglas avanzadas del dialplan y seguridad TLS.
  • Utiliza ficheros de logs y la consola de Asterisk para depuración activa: desde errores de autenticación hasta ver dónde fluye la llamada en el dialplan.
  • Mantén Asterisk y el sistema operativo actualizados para beneficiarte de correcciones de bugs y seguridad.
  • Recurre a la comunidad: foros, listas de distribución, y portales como Sinologic o el propio repositorio de Asterisk en GitHub.

Dominar la configuración de Asterisk pone en tus manos la posibilidad de crear desde sistemas sencillos (soporte a oficinas de dos puestos) hasta centralitas corporativas de alto nivel de personalización, con integración VoIP global, varios lenguajes, seguridad robusta y rutinas a medida. Con práctica y constancia, verás cómo tus ideas cobran forma y tu centralita te responde a la perfección.

Deja un comentario