Esta web utiliza cookies, puedes ver nuestra la política de cookies, aquí Si continuas navegando estás aceptándola
Política de cookies +

Cómo crear una extensión PJSIP y la importancia de los contextos en Asterisk

PJSIP es el stack de comunicaciones SIP moderno en Asterisk, reemplazando al antiguo chan_sip. Permite una gestión más flexible y segura de las extensiones y troncales, además de soportar múltiples dispositivos por extensión y nuevas funcionalidades. A continuación se explica en detalle cómo crear una extensión PJSIP y por qué es fundamental configurar correctamente los contextos para limitar el uso y asegurar la centralita.

1. Estructura de la configuración PJSIP

A diferencia de chan_sip, PJSIP utiliza un enfoque modular en su archivo de configuración, pjsip.conf. Cada extensión requiere varias secciones:

Ejemplo básico de configuración en pjsip.conf

; Definición de la autenticación
[101-auth] 
type=auth
auth_type=userpass
username=101
password=clave_segura

; Definición del AOR (Address of Record)
[101-aor]
type=aor
max_contacts=2

; Definición del endpoint
[101-endpoint]
type=endpoint
aor=101-aor
auth=101-auth
context=interno
disallow=all
allow=ulaw,alaw

En este ejemplo, la extensión 101 permite hasta dos dispositivos registrados simultáneamente gracias a max_contacts=2.

2. Configuración del plan de marcado (extensions.conf) y los contextos

El archivo extensions.conf define cómo se enrutan las llamadas dentro de la centralita. Aquí es donde los contextos juegan un papel esencial. Un contexto es un bloque lógico que agrupa extensiones y reglas de marcado, permitiendo separar y limitar el acceso a funcionalidades sensibles (como llamadas externas).

Ejemplo de contexto para llamadas internas

[interno]
exten => 101,1,Dial(PJSIP/101)
exten => 102,1,Dial(PJSIP/102)
exten => 103,1,Dial(PJSIP/103)

Solo las extensiones incluidas en el contexto interno podrán llamarse entre sí. Si una extensión necesita hacer llamadas externas, se debe crear un contexto aparte y controlar el acceso mediante la configuración de context en la sección endpoint de pjsip.conf.

3. Importancia de los contextos para la seguridad y el control

Configurar correctamente los contextos es crítico para:

Ejemplo de segmentación de contextos

; Contexto para llamadas internas
[interno]
exten => _1XX,1,Dial(PJSIP/${EXTEN})

; Contexto para llamadas externas (solo accesible para extensiones autorizadas)
[externo]
exten => _0.,1,Dial(PJSIP/${EXTEN}@trunk_sip)

En este ejemplo, solo las extensiones cuyo context esté configurado como externo podrán realizar llamadas fuera de la centralita. El resto de usuarios, en el contexto interno, estarán limitados a llamadas entre extensiones.

4. Recarga de la configuración y pruebas

Una vez configurados los archivos, es necesario recargar los módulos de Asterisk para aplicar los cambios:

asterisk -rx "core reload"
asterisk -rx "dialplan reload"

Posteriormente, puede verificarse el registro de las extensiones y realizar pruebas de llamada para asegurarse de que los contextos funcionan como se espera.

Conclusión

Crear una extensión PJSIP en Asterisk implica definir correctamente las secciones endpoint, aor y auth en pjsip.conf, y asociar cada extensión a un contexto adecuado en extensions.conf. El uso correcto de los contextos es esencial para limitar el uso de la centralita, protegerla contra accesos no autorizados y organizar el flujo de llamadas de manera eficiente.

Capa Tres Soluciones Tecnológicas es una empresa registrada en la CNMC como operador de telecomunicaciones.

Capa Tres Soluciones Tecnológicas S.L. CIF B63846984. Networkia Bussiness Center. Avda Portal de l'Angel, 36. 08002 Barcelona. Teléfono 935605424. Email comercial@capatres.com. Colloquor es una marca comercial registrada.