Saltar a contenido

Configuración PBX IP - Asterisk

Asterisk es un software de telefonía muy popular y versátil que puede ser utilizado para desplegar PBX con funcionalidades avanzadas. Las instrucciones para la configuración del troncal SIP (Trunk SIP) con GoTrunk aplican a las siguientes versiones de Asterisk:

  • Asterisk 11
  • Asterisk 13

El primer escenario de la documentación corresponde aun escenario donde el servidor Asterisk dispone de una dirección IP estática en su acceso a Internet. En el segundo escenario el servidor Asterisk está detrás de una dirección IP pública dinámica.

Las configuraciones descritas a continuación se pueden encontrar en: https://github.com/GoTrunk/asterisk-config/

Dirección IP pública estática

asterisk-sip-trunking-diagram-static-ip.png

Figura 8.1 Asterisk SIP Trunk - dirección IP estática.


  1. La dirección IP estática (en nuestro ejemplo a.b.c.d) de su servidor Asterisk debe ser añadida GoTrunk en la (Lista de control de Acceso) de tal manera que las llamadas salientes de su Asterisk serán aceptadas por GoTrunk sin necesidad de mayor autenticación (no hará falta configurar un nombre de usuario y contraseña SIP). Esta es la manera más eficiente de autentificar las llamadas SIP.

  2. Las llamadas entrantes a través de sus DDIs de GoTrunk se mandarán directamente a la IP pública de la PBX Asterisk. Puesto que las llamadas provienen de un origen conocido, (La dirección IP del servicio de Trunk SIP, en nuestro ejemplo q.x.y.z) La PBX Asterisk aceptará las llamadas sin necesidad de solicitar mayor autenticación.


Para integrar el servidor Asterisk con el servicio GoTrunk utilizando la autenticación por IP estática se requiere la siguiente configuración:


1. Añadir la definición del peer [trunk] en el archivo sip.conf:

[trunk]
type=peer
host=eu.st.ssl7.net    ; Europe POP
; host=amn.st.ssl7.net ; North America POP
context=from-trunk


2. Para encaminar las llamadas salientes a través GoTrunk actualice el fichero extensions.conf:

[from-internal]
; internal calls between extensions
exten => 201,1,Dial(SIP/201)
exten => 201,n,Hangup()
exten => 202,1,Dial(SIP/202)
exten => 202,n,Hangup()
; send all other numbers to outbound trunk
exten => _[0-9].,1,NoOp(#### [from-internal] ####)
exten => _[0-9].,n,Set(CALLERID(num)=442036427900) ; set Caller ID
exten => _[0-9].,n,Dial(SIP/+${EXTEN}@trunk)       ; send call to trunk peer defined in sip.conf
exten => _[0-9].,n,Hangup()


2. Para aceptar llamadas entrantes desde sus DDIs de GoTrunk actualice el fichero extensions.conf:

[from-trunk] ; <- 'from-trunk' context defined in sip.conf
exten => _[0-9].,1,NoOp(#### [from-trunk] ####)
exten => _[0-9].,n,Dial(SIP/201) ; send all incoming calls from trunk to extension 201
exten => _[0-9].,n,Hangup()

Nota: el siguiente ejemplo tiene fines ilustrativos. Su plan de numeración puede variar en función de la configuración de su PBX.

Dirección publica con IP dinámica

asterisk-sip-trunking-diagram-dynamic-ip.png

Figura 8.2 Asterisk SIP Trunk - dirección IP pública dinámica.


  1. Para las llamadas salientes de su PBX Asterisk al servicio GoTrunk se necesitarán credenciales SIP para la autenticación (nombre de usuario y contraseña SIP).

  2. Para que las llamadas entrantes de sus DDIs de GoTrunk sean conectadas con su PBX Asterisk es necesario que esta este registrada en el servicio GoTrunk (será necesario que el registro SIP se refresque cuando cambie la dirección IP pública de la PBX). Las llamadas se mandarán al registro SIP más reciente. Puesto que las llamadas vienen de origen conocido (La dirección IP del servicio de trunk SIP, en el ejemplo q.x.y.z). Asterisk las aceptará sin requerir mayor autenticación.

Para integrar el servidor Asterisk con el servicio GoTrunk mediante nombre de usuario y contraseña. Se requiere la siguiente configuración:


1. Añada las definiciones de register y [trunk] en el archivo de configuración sip.conf:

[general]
; ...
; ...
; reemplace INBOUND_SIP_USERNAME y INBOUND_SIP_PASSWORD
; con sus credenciales de registro SIP
register => INBOUND_SIP_USERNAME:INBOUND_SIP_PASSWORD@trunk
[trunk]
type=peer
host=eu.st.ssl7.net  ; Europe POP
;host=amn.st.ssl7.net ; North America POP
context=from-trunk
qualify=yes
defaultuser=OUTBOUND_SIP_USERNAME   ; <- reemplace con su nombre de usuario SIP
remotesecret=OUTBOUND_SIP_PASSWORD  ; <- reemplace con su contraseña SIP


Para encaminar las llamadas saliente por el Trunk SIP de GoTrunk actualice el fichero extensions.conf:

[from-internal]
; internal calls between extensions
exten => 201,1,Dial(SIP/201)
exten => 201,n,Hangup()
exten => 202,1,Dial(SIP/202)
exten => 202,n,Hangup()
; send all other numbers to outbound trunk
exten => _[0-9].,1,NoOp(#### [from-internal] ####)
exten => _[0-9].,n,Set(CALLERID(num)=442036427900) ; set Caller ID
exten => _[0-9].,n,Dial(SIP/+${EXTEN}@trunk)       ; send call to trunk peer defined in sip.conf
exten => _[0-9].,n,Hangup()


2. Para aceptar las llamadas entrantes desde los DDIs de GoTrunk actualice el fichero de configuración extensions.conf:

[from-trunk] ; <- 'from-trunk' context defined in sip.conf
exten => _[0-9].,1,NoOp(#### [from-trunk] ####)
exten => _[0-9].,n,Dial(SIP/201) ; send all incoming calls from trunk to extension 201
exten => _[0-9].,n,Hangup()

Note: el ejemplo proporcionado es solo ilustrativo. Puede variar en función del plan de numeración de su PBX.