Configuracion de un IVR en Asterisk - Segunda parte

En un precedente articulo, hemos visto como grabar archivos para usarlos en un IVR (Respuesta de Voz Interactiva). Para el ejemplo que les voy a presentar hoy, he registrado tres archivos que contienen las siguientes frases:

espeng.wav  - "for english press one, para español marque dos"

espmenu.wav - "para efectuar un test de echo marque 1, para escuchar la música en espera marque 2, para la oficina de ventas marque 3)

engmenu.wav - "for echo test press 1, for music on hold press 2, for sales office, press 3)

He copiado los archivos en la carpeta /var/lib/asterisk/sounds/custom y he empezado a construir mi IVR

nano /etc/asterisk/IVR

[IVR]
exten => s,1,Wait(1)
;espera un segunfo
exten => s,2,Set(CHANNEL(language)=es) ; pone como predefinidas las voces en espanol
exten => s,3,Set(TIMEOUT(digit)=7) ; 7 segundos es el tiempo que espera entre el primer digito y los sucesivos
exten => s,4,Set(TIMEOUT(response)=10) ; 10 segundos es el tiempo que espera para que el llamante presione una tecla
exten => s,5,BackGround(custom/espeng) ; presenta el menu vocal y al mismo tiempo escucha si el llamante presiona alguna tecla
exten => s,6,WaitExten() ; espera que el llamante presione alguna tecla
exten => 1,1,goto(IVR1,s,1) ; si presiona 1 va al contexto IVR1, extension s, prioridad 1
exten => 2,1,goto(IVR2,s,1) ; si presiona 2 va al contexto IVR2, extension s, prioridad 1
exten => i,1,Playback(invalid) ; si el numero digitado no es valido (ni 1 ni 2) comunica el error
exten => i,2,Playback(goodbye) ; se despide
exten => i,3,Hangup ; cuelga la llamada
exten => t,1,goto(IVR,s,2) ; si dentro de 10 segundo el llamante no presiona ninguna tecla vuelve a presentar el menu vocal
exten => h,1,Hangup ; si el llamante cuelga ejecuta la extension h

 

[IVR1]
exten => s,1,Set(TIMEOUT(digit)=7)
;
exten => s,2,Set(TIMEOUT(response)=10)
exten => s,3,Set(CHANNEL(language)=en) ;
define como idioma predefinido el ingles y usas las voces en este idioma
exten => s,4,BackGround(custom/engmenu) ; presenta en menu en ingles
exten => s,5,WaitExten() ; Espera que el llamante presione una tecla
exten => 1,1,Playback(demo-echotest) ; Si presiona 1 efectua el test de echo
exten => 1,2,Echo()
exten => 2,1,MusicOnHold ;
Si presiona 2 escucharà la musica en espera predefinida
exten => 3,1,Playback(pls-wait-connect-call) ; Si presiona 3 lo pone en comunicacion con la oficina de ventas (extension 2000)
exten => 3,2,Dial(SIP/2000,45,r)
exten => i,1,Playback(invalid)
exten => i,2,Playback(goodbye)
exten => i,3,hangup
exten => t,1,goto(IVR1,s,1)
exten => h,1,Hangup

 

[IVR2]
exten => s,1,Set(TIMEOUT(digit)=7)
exten => s,2,Set(TIMEOUT(response)=10)
exten => s,3,Set(CHANNEL(language)=es)
exten => s,4,BackGround(custom/espmenu)
exten => s,5,WaitExten()
exten => 1,1,Playback(demo-echotest)
exten => 1,2,Echo()
exten => 2,1,MusicOnHold
exten => 3,1,Playback(pls-wait-connect-call)
exten => 3,2,Dial(SIP/2000,45,r)
exten => i,1,Playback(invalid)
exten => i,2,Playback(goodbye)
exten => i,3,hangup
exten => t,1,goto(IVR1,s,1)
exten => h,1,Hangup

El menú IVR2 es totalmente igual al IVR1 solamente que es en español.

Para incluir este archivo en el diaplan (plan de llamadas):

nano /etc/asterisk/extensions.conf

Si queremos que todas las llamadas externas sean atendidas por el IVR, en el contexto especifico ponemos:

[from-PSTN]

exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Goto(IVR,s,1)

y al final del archivo añadimos

#include "IVR"

Guardamos los cambios y desde la consola de asterisk:

CLI> dialplan reload

Este es solo un pequeño ejemplo de lo que se puede hacer con un IVR. Las posibilidades son prácticamente infinitas.

Algunos ejemplos:

  • un IVR que gestione colas de espera diferenciadas por departamento (ventas, compras, asistencia técnica, etc.)
  • un IVR que permita digitar directamente la extensión o en caso contrario envíe la llamada a una operadora.

 

Cualquier inquietud, ya saben.

Chao

 

Technorati Tag: ,,

Vota el Articulo: 

Promedio: 5 (1 voto)
Evalúa la calidad del articulo

28 comentarios

asterisk home

Algun manual...pagina...que muestren informacion de asterisk home...o trixbox...

por que tengo un problema al crear el ivr en estos sistemas...ya que tienen para hacerlo de inmediato...agregandole una extencion y too...

pruebo realizando una llamada entrante (7777) y me sale el ivr y hace todo lo que tenia que hacer...pero al llamar al numero que esta configurado el ivr...no pasa na'...

si pudieras ayudarme con esto te lo agradeceria...

ante todo, perdón por mi

ante todo, perdón por mi ignorancia, pero estoy empezando en el universo Asterisk y ando algo perdida.

Quería saber si para configurar el IVR hay que hacerlo desde extensions.conf

 

Gracias por adelantado

Demora en entrar IVR

Buen dia,

quisiera saber como hago para eliminar cualquier demora en la entrada del IVR ya que cuando marca una persona externamente suenan dos tonos de espera y luego entra al IVR la idea es que una vez marcada la linea ingrese el IVR

gracias poe su colaboracion

Marcacion directa via sip con IVR

Hola buenas,

entento realizar el siguiente experimento,llamar a mi servidor trixbox desde un softphone o cualquier terminal, que salte un mensaje de (marque un numero) y que la llamada se desvia hacia el troco sip que tengo configurado, llamando al numero que he marcado despues de oir el mensaje.

hasta ahora lo  he logrado con un extencion , pero no logro que la llamada sale hacia fuera (solo me deja marcar numeros de extensiones despues de oir el mensaje del IVR).

si me puedes aydar en algo con esto te lo agradeseria muchisimo.

                                       Un saludo y gracias .

Muchas gracias

Muchas gracias por estos artículos tan bien explicados y útiles.

Se echan de menos publicaciones tan claras en el universo Asterisk.

Hola! En mi IVR necesito

Hola!

En mi IVR necesito añadir la opción de "Si conoce la extensión márquela directamente". ¿Qué hay que cambiar del menú para integrar dicha opción?.

Un saludo, y muchas gracias desde España!!!!

Javi

IVR remoto

Buenas tardes!

Me estoy encontrando con un problema a la hora de trabajar con asterisk en diferentes ubicaciones. El caso es que, de forma temporal, necesitamos que las llamadas entrantes a una de nuestras delegaciones se redirijan al IVR que tenemos en la sede central, pero no encuentro la manera. ¿Existe añguna solución al problema que planteo?

Un saludo

Javier

Re: IVR remoto

Hola,

se puede hacer sin problemas. Para que funcione tienes que crear troncales entre el servidor central y las delegaciones; luego en el dialplan crea la regla para enviar determinadas llamadas al IVR del servidor principal.

Saludos

error

hola una consulta, tengo un anexo numero 2005 pero cuando llamo y pasa por el IVR y digito el numero de anexo solo captura los dos primeros digitos adjunto lo que me sale en mi CLI:

Invalid extension '20' in context

PROBLEMAS CON EL IVR DE PRUEBA

tengo n problema con el ivr cuando esccho el mensaje de bienvenida se me hace imposible marcar el nmero para qe me enrte hacia la extensión con que quiero comunicarme, sera que me puedes ayudar?.

AYUDA URGENTE IVR + TRONCALES

Hola amigo necesito de tu ayuda, la cual consiste en establecer la comunicacion entre asterisk y una central NGN ya en la central configurar la troncal con SIP-T y me dieron 4 ip que se van a conectar con asterisk
del lado de asterisk como deberia ser la configuracion.. ya lo del ivr lo tengo configurado solo me falta el como establecer esa configuracion

IVR ASTERISK

Ya logre resolver hermano,mi servidor asterisk tienen conexion directa a un Softx3000 (Softswitch- capa de control) no necesito registrarme para recibir ni hacer llamadas.

el Softx3000 sale por la tdm y de alli a la pstn.

Ahora me esta pasando lo siguiente,resulta que una de las opciones del ivr pio que el usuario ingrese el Nro de "cedula" y en ocasiones la cedula llega con el ultimo digito cortado si la cedula es de 8 digitos me llegan 7 digitos.. como podria solucionar.

Utilizo dtmf=inband . ya que el softx3000 estrictamente lo tiene asi como estandar

Tener dos IVR

Hola, soy bastante nuevo en el tema de asterisk y quería preguntarte si puedo tener dos IVR, uno para el día y otro para noche, de forma que pueda escoger que IVR tiene que sonar en función de las horas.

Muchas gracias.

Tener dos IVR

Hola,

claro que si se puede. Mira la aplicación GotoIfTime. En la consola de Asterisk:

CLI> core show application GotoIfTime

Saludos

Suscribirse a Comentarios de "Configuracion de un IVR en Asterisk - Segunda parte" Suscribirse a VozToVoice - Todos los comentarios