dundi

Integrando IVRs en una red DUNDi con Elastix (usando FreePBX)

Cuando tenemos varios equipos y lineas de la PSTN que ingresan a uno de ellos, es muy posible que queramos que el IVR que recibe esas lineas pueda llamar directamente a las extensiones de la red DUNDi; aqui describo como lo he logrado:
Lo primero que hay que hacer es localizar el contexto de IVR que hemos creado desde freePBX, este ultimo siempre los crea asi:
[ivr-N]
donde N es un numero incremental que asigna automaticamente.
Tenemos que revisar en el archivo /etc/asterisk/extensions_additional.conf y buscar el contexto adecuado.
Suponiendo que el contexto del IVR es [ivr-2] tendriamos que definir la siguiente configuracion en el archivo /etc/asterisk/extensions_additional.conf:
[dundi-priv-lookup-ivr]
exten => _XXXX,1,Macro(dundi-priv,${EXTEN})
exten => _XXXX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?100)
exten => _XXXX,n,Goto(ivr-2,i,1)
exten => _XXXX,n,Hangup()
exten => _XXXX,100,Playtones(congestion)
exten => _XXXX,101,Congestion(10)
exten => _XXXX,102,Hangup()
[ivr-2-custom]
include => ext-local

DUNDi: Plan de marcado

iax_custom.conf
Aquí debemos definir la configuración de la troncal; como dundi va a hacer todo el trabajo de enviar la cadena exacta de como contactarlos solo creamos un usuario que recibe las llamadas autenticadas de la nube DUNDi:
En SRV01 y en SRV02
[dundi]
type=user
dbsecret=dundi/secret
context=ext-local
; Podemos restringir ciertos codecs para mejorar la calidad de voz, o dar prioridad al ancho de banda (con gsm o g729)
; disallow=all
; allow=ulaw

Archivo dundi.conf (peers)

Adicionalmente debemos definir los PEERS que consultaran y serán consultados (con la opción symmetric), esto lo hacemos asi:
Para SRV01:
; Identificamos al servidor 2 (SRV02) por su entityid
[00:21:5A:49:7E:9E]
;permitir y realizar conexiones
model=symmetric
; IP ser servidor SRV02
host=192.168.255.202
inkey=SERVERS-DUNDI
outkey=SERVERS-DUNDI
; Incluimos el contexto antes definido en la sección mappings
include=priv
permit=priv
qualify=yes
order=primary

; Identificamos al servidor 3 (SRV03) por su entityid
[00:22:64:08:F4:FE]
;permitir y realizar conexiones
model=symmetric
; IP ser servidor SRV03
host=192.168.255.203
inkey=SERVERS-DUNDI
outkey=SERVERS-DUNDI
; Incluimos el contexto antes definido en la sección mappings
include=priv
permit=priv
qualify=yes
order=primary

Archivo dundi.conf (mappings)

Sección [mappings]:
Básicamente aquí definimos nuestra respuesta a una consulta hacia determinado numero que tengamos localmente.
Para SRV01:
[mappings]
priv => dundi-priv-canonical,0,IAX2,dundi:${SECRET}@192.168.251.251/${NUMBER},nopartial
priv => dundi-priv-customers,100,IAX2,dundi:${SECRET}@192.168.251.251/${NUMBER},nopartial
priv => dundi-priv-via-pstn,400,IAX2,dundi:${SECRET}@192.168.251.251/${NUMBER},nopartial

Para SRV02:
[mappings]
priv => dundi-priv-canonical,0,IAX2,dundi:${SECRET}@192.168.251.252/${NUMBER},nopartial
priv => dundi-priv-customers,100,IAX2,dundi:${SECRET}@192.168.251.252/${NUMBER},nopartial
priv => dundi-priv-via-pstn,400,IAX2,dundi:${SECRET}@192.168.251.252/${NUMBER},nopartial

Para SRV03:
[mappings]
priv => dundi-priv-canonical,0,IAX2,dundi:${SECRET}@192.168.251.253/${NUMBER},nopartial
priv => dundi-priv-customers,100,IAX2,dundi:${SECRET}@192.168.251.253/${NUMBER},nopartial

Certificados de encriptación para DUNDi

DUNDi usa certificados de encriptación RSA para compartir sus planes de marcado, además por que las respuestas a una consulta incluye el passwd de la troncal (que es dinámico). }
Usaremos la misma clave para la comunicacion entre todos los servidores.
Así que el primer paso es generar los certificados de encriptación uno de los equipos (en este ejemplo en SRV01):
SRV01:
cd /var/lib/asterisk/keys
astgenkey -n SERVERS-DUNDI

Ahora necesitamos compartir los certificados entre los dos servidores; esto es para que cada uno pueda desencriptar al otro.
Copiar hacia SRV02:
scp /var/lib/asterisk/keys/SERVERS-DUNDI.* 192.168.255.202:/var/lib/asterisk/keys

Copiar hacia SRV03:
scp /var/lib/asterisk/keys/SERVERS-DUNDI.* 192.168.255.203:/var/lib/asterisk/keys

Páginas

Suscribirse a RSS - dundi