Inicio / Español / Cómo Instalar Asterisk en Debian 13 (Trixie)

Cómo Instalar Asterisk en Debian 13 (Trixie)

Regístrate ahora o Ver precios

1. Prerequisitos

Antes de instalar Asterisk en Debian 13 (Trixie), asegúrate de que tu sistema cumple con los siguientes requisitos. Esta guía asume que tienes acceso root o privilegios sudo.

Requisitos del Sistema

Mínimo

  • 1 núcleo de CPU
  • 1 GB de RAM
  • 10 GB de disco
  • Debian 13 (Trixie) x64

Recomendado

  • 2+ núcleos de CPU
  • 2+ GB de RAM
  • 20+ GB SSD
  • IP pública estática

Información Necesaria

Recopila esta información antes de comenzar:

  • ● La dirección IP pública de tu servidor
  • ● Credenciales de troncal SIP de IPComms (usuario, contraseña, servidor)
  • ● Números DID para enrutamiento de llamadas entrantes

2. Instalar Dependencias

Asterisk requiere varias bibliotecas de desarrollo y herramientas para compilar desde código fuente. Primero, actualiza tu sistema e instala las herramientas esenciales de compilación.

Actualizar Paquetes del Sistema

# Actualizar listas de paquetes y actualizar paquetes existentes
sudo apt update && sudo apt upgrade -y

Instalar Dependencias de Compilación

# Instalar herramientas esenciales de compilación
sudo apt install -y build-essential git wget curl
# Instalar dependencias de Asterisk
sudo apt install -y libncurses5-dev libssl-dev libxml2-dev \
    libsqlite3-dev uuid-dev libjansson-dev libspeex-dev \
    libspeexdsp-dev libogg-dev libvorbis-dev libasound2-dev \
    libcurl4-openssl-dev libical-dev libneon27-dev libsrtp2-dev \
    unixodbc-dev libmyodbc odbc-mariadb libiksemel-dev \
    libnewt-dev libpopt-dev libedit-dev libradcli-dev

Instalar Dependencias de PJSIP

PJSIP es el driver de canal SIP recomendado para Asterisk. Estas bibliotecas son necesarias para el soporte PJSIP:

# Dependencias de PJSIP y códecs
sudo apt install -y libpjproject-dev libopus-dev

3. Descargar Código Fuente de Asterisk

Descarga la última versión LTS de Asterisk desde la página oficial de descargas. A partir de 2026, Asterisk 22 LTS es la versión recomendada para sistemas en producción.

Descargar y Extraer

# Crear un directorio para el código fuente
cd /usr/src
# Descargar Asterisk 22 LTS (última versión)
sudo wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22-current.tar.gz
# Extraer el archivo
sudo tar -xvzf asterisk-22-current.tar.gz
# Entrar al directorio de Asterisk
cd asterisk-22*/

Instalar Soporte MP3 (Opcional)

Si deseas soporte de reproducción MP3 para música en espera o mensajes:

# Descargar módulo fuente de MP3
sudo contrib/scripts/get_mp3_source.sh

Ejecutar Script de Prerequisitos

Asterisk incluye un script que instala cualquier dependencia faltante:

# Instalar prerequisitos faltantes
sudo contrib/scripts/install_prereq install

4. Compilar e Instalar Asterisk

Ahora configuraremos, compilaremos e instalaremos Asterisk. Este proceso toma de 10 a 30 minutos dependiendo del CPU de tu servidor.

Configurar la Compilación

# Ejecutar el script de configuración
sudo ./configure --with-pjproject-bundled=no

Seleccionar Módulos (menuselect)

Usa menuselect para elegir qué módulos compilar. Para una configuración de troncal SIP, asegúrate de que PJSIP y los códecs comunes estén seleccionados:

# Abrir el menú de selección de módulos
sudo make menuselect

En la interfaz de menuselect, verifica que estos estén habilitados:

  • chan_pjsip - Driver de canal PJSIP
  • res_pjsip - Módulo core de PJSIP
  • codec_opus - Códec Opus (si está disponible)
  • format_mp3 - Soporte de formato MP3

Compilar Asterisk

# Compilar Asterisk (usa -j para compilación paralela)
sudo make -j$(nproc)

Instalar Asterisk

# Instalar binarios de Asterisk
sudo make install
# Instalar archivos de configuración de ejemplo
sudo make samples
# Instalar scripts de inicio para systemd
sudo make config
# Instalar configuración de logrotate
sudo make install-logrotate

Crear Usuario Asterisk

# Crear usuario y grupo asterisk
sudo groupadd asterisk
sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk
# Establecer propietario de los directorios de Asterisk
sudo chown -R asterisk:asterisk /etc/asterisk
sudo chown -R asterisk:asterisk /var/lib/asterisk
sudo chown -R asterisk:asterisk /var/log/asterisk
sudo chown -R asterisk:asterisk /var/spool/asterisk
sudo chown -R asterisk:asterisk /var/run/asterisk

5. Configuración Básica

Configura los archivos esenciales de Asterisk para un sistema funcional básico. Prepararemos el sistema para troncal SIP con PJSIP.

Configurar asterisk.conf

# Editar la configuración principal de Asterisk
sudo nano /etc/asterisk/asterisk.conf

Asegúrate de que estas opciones estén configuradas:

[options]
runuser = asterisk
rungroup = asterisk
documentation_language = en_US
[files]
astctlpermissions = 0660
astctlowner = asterisk
astctlgroup = asterisk

Configurar modules.conf

Habilita PJSIP y deshabilita el módulo legacy chan_sip:

# Editar configuración de módulos
sudo nano /etc/asterisk/modules.conf
[modules]
autoload = yes
; Deshabilitar módulo SIP legacy
noload => chan_sip.so
; Asegurar que PJSIP esté cargado
load => res_pjsip.so
load => chan_pjsip.so

Configurar Puertos RTP

# Editar configuración RTP
sudo nano /etc/asterisk/rtp.conf
[general]
rtpstart = 10000
rtpend = 20000
rtpchecksums = no
strictrtp = yes
icesupport = no

Iniciar Asterisk

# Habilitar Asterisk para iniciar con el sistema
sudo systemctl enable asterisk
# Iniciar el servicio de Asterisk
sudo systemctl start asterisk
# Verificar estado
sudo systemctl status asterisk

6. Configurar Troncal SIP de IPComms

Conecta tu sistema Asterisk a la troncal SIP de IPComms para llamadas entrantes y salientes. Reemplaza los valores de ejemplo con tus credenciales reales de IPComms.

Crear pjsip.conf para IPComms

# Editar configuración PJSIP
sudo nano /etc/asterisk/pjsip.conf
; ===================================
; Configuración de Troncal SIP IPComms
; ===================================
[global]
type = global
user_agent = Asterisk PBX
[transport-udp]
type = transport
protocol = udp
bind = 0.0.0.0:5060
external_media_address = TU_IP_PUBLICA
external_signaling_address = TU_IP_PUBLICA
local_net = 10.0.0.0/8
local_net = 172.16.0.0/12
local_net = 192.168.0.0/16
; Registro de Troncal IPComms
[ipcomms]
type = registration
transport = transport-udp
outbound_auth = ipcomms-auth
server_uri = sip:sip.ipcomms.net
client_uri = sip:TU_USUARIO@sip.ipcomms.net
retry_interval = 60
expiration = 3600
[ipcomms-auth]
type = auth
auth_type = userpass
username = TU_USUARIO
password = TU_CONTRASEÑA
[ipcomms-aor]
type = aor
contact = sip:sip.ipcomms.net
[ipcomms-identify]
type = identify
endpoint = ipcomms-endpoint
match = sip.ipcomms.net
[ipcomms-endpoint]
type = endpoint
transport = transport-udp
context = from-ipcomms
disallow = all
allow = ulaw
allow = alaw
allow = g722
outbound_auth = ipcomms-auth
aors = ipcomms-aor
from_user = TU_USUARIO
from_domain = sip.ipcomms.net
direct_media = no
ice_support = no
force_rport = yes
rewrite_contact = yes
rtp_symmetric = yes

Configurar Dialplan (extensions.conf)

# Editar configuración de extensiones
sudo nano /etc/asterisk/extensions.conf
[general]
static = yes
writeprotect = no
; Contexto para llamadas entrantes desde IPComms
[from-ipcomms]
exten => _X.,1,NoOp(Llamada entrante de IPComms: ${CALLERID(all)})
 same => n,Answer()
 same => n,Playback(hello-world)
 same => n,Hangup()
; Contexto para llamadas salientes via IPComms
[outbound-ipcomms]
exten => _1NXXNXXXXXX,1,NoOp(Llamada saliente a ${EXTEN})
 same => n,Set(CALLERID(num)=TU_NUMERO_DID)
 same => n,Dial(PJSIP/${EXTEN}@ipcomms-endpoint,60)
 same => n,Hangup()
; Llamadas internacionales (formato E.164)
exten => _011.,1,NoOp(Llamada internacional a ${EXTEN})
 same => n,Set(CALLERID(num)=TU_NUMERO_DID)
 same => n,Dial(PJSIP/${EXTEN}@ipcomms-endpoint,120)
 same => n,Hangup()

Obtén Tus Credenciales IPComms

Regístrate en IPComms para obtener tus credenciales de troncal, números DID y acceso al portal de cliente con analíticas de llamadas en tiempo real. $0 por canal — solo paga por uso y números.

Registrarse en IPComms

7. Probar la Instalación

Verifica que tu instalación de Asterisk y el registro de la troncal IPComms funcionen correctamente.

Recargar Configuración

# Recargar Asterisk para aplicar cambios
sudo asterisk -rx "core reload"

Verificar Registro PJSIP

# Conectarse al CLI de Asterisk
sudo asterisk -rvvv
# Verificar estado de registro
pjsip show registrations

Deberías ver una salida indicando que tu registro IPComms está "Registered":

Registration:  ipcomms/sip:TU_USUARIO@sip.ipcomms.net
   Status:  Registered

Verificar Configuración del Endpoint

# Mostrar endpoints PJSIP
pjsip show endpoints
# Mostrar información detallada del endpoint
pjsip show endpoint ipcomms-endpoint

Realizar una Llamada de Prueba

# Originar una llamada de prueba desde el CLI
channel originate PJSIP/12025551234@ipcomms-endpoint application Playback hello-world

8. Solución de Problemas Comunes

Si encuentras problemas con tu instalación de Asterisk o la troncal de IPComms, usa estos pasos para diagnosticar y resolver los problemas.

Fallas de Registro

SíntomaCausaSolución
401 UnauthorizedCredenciales incorrectasVerifica usuario/contraseña en pjsip.conf
408 Request TimeoutFirewall bloqueandoAbre UDP 5060 y 10000-20000
503 Service UnavailableProblema del servidorVerifica la página de estado de IPComms

Sin Audio (Audio Unidireccional o Sin Audio)

# Verificar configuración RTP y NAT
sudo asterisk -rx "rtp show settings"
# Verificar que la IP externa esté configurada correctamente
sudo asterisk -rx "pjsip show transport transport-udp"

Problemas comunes de audio y soluciones:

  • ● Firewall: Asegúrate de que los puertos RTP (10000-20000) estén abiertos para tráfico UDP
  • ● NAT: Verifica que external_media_address esté configurado con tu IP pública
  • ● direct_media: Debe estar en "no" para entornos con NAT

Habilitar Logs de Depuración

# Habilitar logs de depuración PJSIP en el CLI de Asterisk
pjsip set logger on
# Ver mensajes SIP en tiempo real
core set verbose 5
core set debug 5

Verificar Logs del Sistema

# Ver logs de Asterisk
sudo tail -f /var/log/asterisk/messages
# Ver archivo de log completo
sudo tail -f /var/log/asterisk/full

Artículos Relacionados

Siguiente paso

$0.010/min salientes a EE.UU. y Canadá, $0.009/min entrantes, $0 por canal, sin contratos.

Regístrate ahora o Ver precios

Más países