Antes de comenzar…
Debes tener por lo menos 2 centrales IP (con las mismas herramientas instaladas en la parte 1) para el correcto desarrollo. Sin olvidar que ambos deben tener diferente extensión.
Para fines prácticos de la guía se utilizará una maquina virtual junto a la Raspberry.
Conectando centrales IP a través de Dundi.
A la maquina virtual la llamaremos «VM» y a la Raspberry «RPI». Ademas, se recomienda asignar IP estática a ambos equipos.
Paso 1: Obtener los datos de ambos equipos.
Necesitamos la dirección ip estática así como la dirección MAC de la conexión de cada equipo hacia el router y sus correspondientes extensiones.
Sin importar el tipo de conexión hacia el router, la dirección MAC se obtiene de la siguiente manera.
Ejecutar en la terminal:
ifconfig
# En caso de no funcionar, se puede utilizar
ip addr
Aparecerá la siguiente información (similar):

Tomar nota de la dirección correspondiente (En nuestro caso para la conexion «enp0s3»).
Resumen de los equipos utilizados:
Maquina virtual
Nombre: VM
IP: 192.168.10.20
Extension: 7XXX
MAC: XX:XX:XX:XX
Raspberry
Nombre: RPI
IP: 192.168.10.3
Extension: 8XXX
MAC: XX:XX:XX:XX
Paso 2: Generación de llaves publicas y privadas.
Para utilizar el protocolo Dundi se necesitan llaves de encriptación en cada servidor tanto publicas como privadas.
En ambos servidores:
Cambiamos el directorio:
cd /var/lib/asterisk/keys
Generamos las llaves:
#Para VM
astgenkey -n VM
#Para RPI
astgenkey -n RPI
Al presionar Enter. El resultado sera:
Para VM:
VM.key
VM.pub

Para RPI:
RPI.key
RPI.pub

Paso 3: Intercambiar las llaves publicas.
Se recomienda utilizar uno de los siguientes metodos:
- Usando el comando SCP: https://linuxize.com/post/how-to-use-scp-command-to-securely-transfer-files/
- Usando FTP desde uno de los equipos: https://www.howtoforge.com/tutorial/how-to-use-ftp-on-the-linux-shell/
- Usando un cliente FTP como Filezilla desde windows via SSH.
Necesitamos copiar la llave «.pub» de ambos servidores e intercambiarlas. Colocandolas en el directorio /var/lib/asterisk/keys.
De tal manera que el resultado sea el siguiente:
Para VM:
VM.key
VM.pub
RPI.pub

Para pbx 2:
RPI.key
RPI.pub
VM.pub

Antes del siguiente paso necesitamos otorgar permisos de las llaves al usuario Asterisk. Ejecutamos:
chown asterisk:asterisk *


Paso 4: Configurar los enlaces IAX.
[Si tienes dudas sobre lo que es un enlace IAX, puedes consultarlo ACÁ.]
Paso esencial para la comunicación de ambos servidores, ya que de esta forma le indicaremos a los servidores hacia adonde redirigir el trafico (Las llamadas).
En VM:
Modificar el archivo.
nano /etc/asterisk/iax_custom.conf
Colocando en el, lo siguiente:
[dundi-usuario]
type=user
trunk=yes
username=dundi-usuario
dbsecret=dundi/secret
qualify=yes
host=192.168.10.3
allow=all
context=dundi-digium-local

Hacemos lo mismo en RPI:
nano /etc/asterisk/iax_custom.conf
Y colocamos:
[dundi-usuario]
type=user
trunk=yes
username=dundi-usuario
dbsecret=dundi/secret
qualify=yes
host=192.168.10.20
allow=all
context=dundi-digium-local

Guardamos los cambios.
Paso 5: Crear las extensiones y contextos para Dundi.
Hacemos esto para que Asterisk sepa que hacer cuando se digite un numero que corresponde a las extensiones del otro servidor.
En VM:
Modificamos el archivo:
nano /etc/asterisk/extensions_custom.conf
Con lo siguiente:
[dundi-digium-local]
include => dundi-conexion
[dundi-conexion]
exten => _4XXX,1,Goto(from-internal,${EXTEN},1)

Lo mismo en RPI:
nano /etc/asterisk/extensions_custom.conf
Pero con la diferencia que agregaremos una linea extra para permitirle la salida PSTN al servidor en la VM
[dundi-digium-local]
include => dundi-conexion
include => dundi-pstn
[dundi-conexion]
exten => _5XXX,1,Goto(from-internal,${EXTEN},1)
[dundi-pstn]
exten => _7XXXXXXX,1,Goto(outbound-allroutes,${EXTEN},1)

Paso 6: Configurar dundi.conf
En ambos servidores:
Abrir el archivo dundi.conf, ejecutando:
nano /etc/asterisk/dundi.conf
Ya en el archivo, nos dirigimos a la sección que se muestra en la imagen y quitamos el punto y coma (;) de la lineas.

En el dado caso que se requieran otros valores, los modificamos ( Para el desarrollo de la guía no será necesario):
Ejemplo:
department=Informatica
organization=Comunicaciones, Inc.
locality=San Salvador
stateprov=SS
country=SV
email=cos115@ues.edu.sv
phone=+12565551212
Luego, buscamos la sección [mappings] y debajo de esta colocamos:
Para VM:
digium => dundi-conexion,0,IAX2,dundi-usuario:${SECRET}@192.168.10.20/${NUMBER},nopartial

Para RPI:
digium => dundi-conexion,0,IAX2,dundi-usuario:${SECRET}@192.168.10.3/${NUMBER},nopartial
digium => dundi-pstn,100,IAX2,dundi-usuario:${SECRET}@192.168.10.3/${NUMBER},nopartial

Por ultimo necesitamos agregar la información (IP, llaves y dirección MAC) de VM en RPI y viceversa.
OJO: La dirección MAC debe ser la que se obtuvo en el paso 1.
Siempre en el mismo archivo, dirigirse al final y agregar lo siguiente:
Para VM:
[XX:XX:XX:XX:XX:XX] ;DIRECCION MAC DEL RPI
model=symmetric
host=192.168.10.3
auth=rsa
inkey=RPI
outkey=VM
include=all
permit=all
qualify=yes
order=primary

Para RPI:
[b8:27:eb:12:91:77] ;DIRECCION MAC DE LA VM
model=symmetric
host=192.168.10.20
auth=rsa
inkey=VM
outkey=RPI
include=all
permit=all
qualify=yes
order=primary

Guardamos los cambios y reiniciamos los servidores.
Extra: Comprobar la comunicación de las centrales.
Iniciamos Asterisk en la terminal:
asterisk -rvvvvv
Y dentro de la consola de Asterisk escribimos:
dundi show peers
Deberá aparecer la información del servidor conectado via Dundi:
VM:

RPI:

Configurando trunk y rutas para Dundi en FreePBX.
Paso 1: Agregar un trunk DUNDi.
Para ambos servidores:
En el menú «Connectivity» seleccionar «Trunks»:

Luego en el menú desplegable «Add Trunk» elegimos «Add DUNDi Trunk»:

Llenamos los campos «Trunk name» y «Outbound CallerID» de la siguiente manera:

Cambiamos a la pestaña «dundi Settings» y colocamos «digium» en el campo correspondiente:

Guardamos y aplicamos los cambios.

Paso 2: Crear la ruta de salida.
Seleccionamos «Outbound Routers» en el menu «Connectivity»:

En MV:
Introducimos la información como aparece en la imagen:

En la sección «Trunk Sequence for Matched Routes» seleccionamos «digium»:

Cambiamos a la pestaña «Dial patterns».
Y agregamos el patrón 7XXXXXXX correspondiente al formato PSTN local y la extensión de RPI 8XXX.

En RPI:
Mismo procedimiento:


En «Dial patterns» agregamos el patrón 7XXX que corresponde a las extensiones de MV:

Finalmente, guardamos y aplicamos los cambios.
¡Listo. Ya tienes tu red de centralitas IP!
Lo que marca el fin de la tercera parte y de la guía «Como montar una centralita IP paso a paso».
¡Gracias por leerla!
Grupo: Central IP #4
Integrantes:
| Barahona Ramos, Adonay Absalón | BR15007 |
| Calzadilla Ramos, Andrea María | CR15089 |