Hola,
Vamos a repasar cómo podemos interconectar dos servidores Asterisk usando el protocolo IAX2. Para este laboratorio hemos usado dos servidores con las siguientes características.
Server A.
Asterisk versión 1.6.2
IP: 192.168.1.210
Host: pbx.fware.pro
Server B.
Asterisk version 1.4.27
IP: 192.168.1.220
Host: go.fware.pro
La configuración para Server A en /etc/asterisk/iax.conf debe ser la siguiente:
[sourcecode language=»text»]
register => go:123456@192.168.1.220
[pbx]
type=friend
host=dynamic
secret=123456
trunk=yes
context=to-external
deny=0.0.0.0/0.0.0.0
permit=192.168.1.0/255.255.255.0
disallow=all
allow=alaw
allow=ulaw
[/sourcecode]
La configuración para el Server B en /etc/asterisk/iax.conf debe ser la siguiente:
[sourcecode language=»text»]
register => pbx:123456@192.168.1.210
[go]
type=friend
host=dynamic
secret=123456
trunk=yes
context=default
deny=0.0.0.0/0.0.0.0
permit=192.168.1.0/255.255.255.0
disallow=all
allow=ulaw
allow=alaw
[/sourcecode]
Después de grabar las configuraciones debemos recargar el entorno de iax2 en cada uno de los Server.
Server A.
[sourcecode language=»text»]
[root@pbx ~]# asterisk –rvvv
pbx*CLI> iax2 reload
[/sourcecode]
Server B.
[sourcecode language=»text»]
[root@go ~]# asterisk –rvvv
go*CLI> iax2 reload
[/sourcecode]
Luego hay que revisar en las dos consolas de asterisk si los equipos se han registrado exitosamente.
Server A.
[sourcecode language=»text»]
pbx*CLI> iax2 show registry
Host dnsmgr Username Perceived Refresh State
192.168.1.220:4569 N go 192.168.1.210:4569 60 Registered
1 IAX2 registrations.
pbx*CLI>
[/sourcecode]
Server B.
[sourcecode language=»text»]
go*CLI> iax2 show registry
Host dnsmgr Username Perceived Refresh State
192.168.1.210:4569 N pbx 192.168.1.220:4569 60 Registered
go*CLI>
[/sourcecode]
Luego que los dos servidores estén interconectados, hay que configurar el archivo /etc/asterisk/extensions.conf dependiendo del flujo que se le desee dar a las llamadas. Teniendo en cuenta esto el contexto que le demos a la extensión es muy importante ya que el servidor asterisk recibirá las llamadas del trunk y las va tramitar con las reglas del contexto mencionado. Para entender mejor el tema vamos a exponer nuestro caso.
Queremos que el Server B tenga al Server A como Carrier hacia la PSTN, y que todas las llamadas salientes estén precedidas por el número 9, es decir que para poder llamar a la PSTN los usuarios del Server B deben marcar 9XXXXXXX donde las XXXXXXX indican el número a marcar en la PSTN. El contexto en Server A para las llamadas externas se llama to-external esto debe quedar registrado en la extensión que creamos en el /etc/asterisk/iax.conf de Server A.
Con lo cual debemos incluir en el /etc/asterisk/extensions.conf de Server B la siguiente sentencia.
[sourcecode language=»text»]
exten => _9.,1,Dial(IAX2/go/${EXTEN:1},90,tr)
exten => _9.,n,Hangup()
[/sourcecode]
_9. Indica que va levantar el trunk para todos los números que precedan el número 9.
IAX2/go lo envía a nuestro trunk en Server A.
/${EXTEN:1} es una variable que lee lo que marcas en el teléfono que será lo que envías por el trunk, el :1 quiere decir que le quitara el 9 que precede el número para que al momento de llegar al contexto de Server A lo puedo transferir hacia la PSTN sin problema.
no me registra nada, ni con protocolo iax2 ni con sip, puedes ayudarme?
gracias
Hola Isa,
Bueno es importante saber si tienes conectividad entre los dos servidores, verifica si logras alcanzar el equipo y los puertos, recuerda que iax usa el puerto 4569.
Por favor déjanos saber el resultado de tus pruebas.
Slds.
MUchas gracias, por fin despues de 20 dias pude conectarme por IAX2.
un saludo desde cartagena colombia muchas gracias por sus aportes y en especial la parte de asterisk.
me gustaría contar con asesoría para la puesta en marcha de un proyecto de voip utilizando asterisk.
la idea es interconectar 3 sedes y relizar llamadas entre ellas a traves de extensiones y hacia la pstn
Muchas gracias, con este tutorial pude hacer que se registraran entre dos PBX Asterisk, ya me estaba moliendo la cabeza tratando de resolverlo.
Lo que me di cuenta es me rechazaba el registro al colocar la IP remota en el campo «host=» en lugar de usar «permit» y «deny» con «host=dynamic» por qué será esto?
Que seguridad hay con el protocolo IAX2 , que tan seguro es conectar 2 servidores o extensiones a través de este protocolo ??