Al tener varias sucursales u oficinas podemos ahorrar mucho dinero interconectando nuestros servidores de VoIP y realizando las llamadas entre sucursales a través de VoIP y no con llamadas tradicionales.
¡Comencemos!
Escenario
- Servidor A con dirección IP 192.168.10.9
- Servidor B con dirección IP 192.168.15.99
Ambos servidores deben estar configurados para recibir conexiones SIP externas a la red.
Configuración del servidor A
Vamos a editar nuestro archivo sip.conf y pegaremos las siguientes líneas (cambiando la dirección IP, el usuario y el secret):
register => servidorb:secret@192.168.15.99/servidora
[servidora]
type=friend
secret=xxxxxxxxx
context=from-internal
qualify=yes
host=dynamic
language=es
disallow=all
allow=gsm
allow=ulaw
allow=alaw
Configuración del servidor B
Igualmente vamos a editar nuestro archivo sip.conf y pegaremos las siguientes líneas (cambiando la dirección IP, el usuario y el secret):
register => servidora:secret@192.168.10.9/servidorb
[servidorb]
type=friend
secret=xxxxxxxxx
context=from-internal
qualify=yes
host=dynamic
language=es
disallow=all
allow=gsm
allow=ulaw
allow=alaw
Como siempre, después de cualquier modificación de los archivos de configuración debemos reiniciar nuestro servicio Asterisk:
service asterisk restart
Ya podemos verificar si nuestras troncales se registraron correctamente:
root*CLI> sip show peers
servidora/servidorb 192.168.15.99 D 5060 OK (34 ms)
Dialplan
Si todo salió bien, ahora vamos a configurar nuestro dialplan para hacer llamadas entre extensiones y llamadas troncalizadas por uno u otro servidor.
Vamos a editar nuestro archivo extensions.conf y agregaremos nuestro contexto.
Servidor A
exten => _9XXX,1,NoOp()
exten => _9XXX,n,Dial(SIP/servidorb/${EXTEN})
exten => _9XXX,n,Hangup()
En este contexto le indicamos a nuestro servidor que las llamadas de 4 dígitos que comiencen por 9 se troncalizarán al servidor B.
Servidor B
exten => _8XXX,1,NoOp()
exten => _8XXX,n,Dial(SIP/servidora/${EXTEN})
exten => _8XXX,n,Hangup()
En este contexto le indicamos a nuestro servidor que las llamadas de 4 dígitos que comiencen por 8 se troncalizarán al servidor A.
Llamadas salientes a través del otro servidor
Si queremos realizar llamadas desde el servidor A a través del servidor B, debemos agregar esta línea en nuestro contexto de salida. Esto es útil si los servidores están en países distintos y queremos aprovechar las líneas PSTN locales:
exten => _00507.,1,Dial(SIP/servidorb/${EXTEN})
Asumiendo que nuestro servidor B se encuentra en Panamá, podremos realizar llamadas desde el servidor A, ubicado en México, por medio de las troncales disponibles en el servidor B.