31
1 CAPÍTULO 3. DISEÑO Y CONFIGURACIÓN DEL IVR 3.1 GENERACIÓN DE LA BASE DE DATOS El IVR es una poderosa plataforma para el desarrollo de aplicaciones telefónicas que permite integrar, diseñar, implementar y administrar sistemas de respuesta interactiva de voz. Una plataforma IVR viene preparada para el manejo de voz, fax, acceso y escritura a base de datos vía ODBC o sockets, reconocimiento de voz, texto a voz, entre otros. El proceso para establecer la comunicación por medio de la red es el siguiente: 1. Se debe configurar en el servidor Asterisk, los números de acceso al IVR. 2. Se configuran las extensiones de los usuarios. 3. El usuario a través de un dispositivo IP softphone hace una llamada a los números configurados en el servidor para comunicarse con el IVR. 4. La llamada pasa por el concentrador y éste la envía al servidor Asterisk donde se encuentra la aplicación IVR. 5. El IVR da como respuesta una serie de opciones para el usuario. 6. La respuesta pasa nuevamente por el concentrador para de esta manera llegar al destino.

CAPÍTULO 1 - Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

Embed Size (px)

Citation preview

Page 1: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

1

CAPÍTULO 3.

DISEÑO Y CONFIGURACIÓN DEL IVR

3.1 GENERACIÓN DE LA BASE DE DATOS

El IVR es una poderosa plataforma para el desarrollo de aplicaciones telefónicas que

permite integrar, diseñar, implementar y administrar sistemas de respuesta interactiva de

voz. Una plataforma IVR viene preparada para el manejo de voz, fax, acceso y escritura a

base de datos vía ODBC o sockets, reconocimiento de voz, texto a voz, entre otros.

El proceso para establecer la comunicación por medio de la red es el siguiente:

1. Se debe configurar en el servidor Asterisk, los números de acceso al IVR.

2. Se configuran las extensiones de los usuarios.

3. El usuario a través de un dispositivo IP softphone hace una llamada a los números

configurados en el servidor para comunicarse con el IVR.

4. La llamada pasa por el concentrador y éste la envía al servidor Asterisk donde se

encuentra la aplicación IVR.

5. El IVR da como respuesta una serie de opciones para el usuario.

6. La respuesta pasa nuevamente por el concentrador para de esta manera llegar al

destino.

Este proceso vuelve a repetirse al momento que el usuario escoge una opción para obtener

la información requerida; y termina la fase al momento de colgar la llamada. (Fig. 3.1)

Page 2: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

2

Fig. 3.1 PROCESO DE COMUNICACIÓN CON LA RED

El funcionamiento de un IVR, parte de la creación de una Base de Datos a la que debe

accederse para consultas. Para el desarrollo del presente proyecto se ha creado una base de

datos que contenga los registros básicos de un estudiante de la Universidad Politécnica

Salesiana Campus Sur; dichos datos son: datos personales del alumno, facultades o

facultad en la que está inscrito, materias que coge según la facultad con sus respectivas

notas y si tiene en trámite una solicitud el IVR dará información sobre la misma.

La base se llama proyecto y contiene las siguientes tablas.

Fig. 3.2 tablas que conforman la base de datos proyecto

Page 3: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

3

Esta base de datos esta diseñada para la puesta en producción del proyecto propuesto; es

decir está hecha para consultas básicas que el alumno requiere, como por ejemplo consulta

de notas semestrales de cada materia en la que se inscribió, la facultad a la que pertenece

cada materia y si aprobó o no la misma y podrá consultar el estado de solicitudes en caso

de haber procesado una en el campus, el estado de solicitudes tendrá tres casos: aprobada,

negada, pendiente.

3.1.1 CONSIDERACIONES DE LA BASE DE DATOS

Fig. 3.3 Flujo de información del IVR

Page 4: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

4

En la figura 3.3 se observa como se da el flujo de información cuando el usuario entra al

sistema de consulta de IVR. De esta manera son gestionados los datos por el IVR y éstos

son todos los posibles casos que se podrían presentar para el usuario.

3.1.1.1 Consulta de notas

Para poder obtener la información debe ingresar el número de cédula de identidad

perteneciente a cada estudiante.

Si éste es correcto debe ingresar un código secreto asignado al momento de

matricularse.

Si ingresa correctamente estos dos números el IVR le dará como información el

nombre de las materias asignadas al estudiante, las notas correspondientes a la

misma, el nivel y la facultad a la que pertenece la materia que está tomando.

El IVR no tiene asociado un número fijo de registros, devolverá como respuesta

tantos registros según el número de materias que haya cogido el estudiante en el

período.

En el caso que el estudiante ingrese menos de diez dígitos para realizar la consulta

obtendrá un mensaje de que los datos no existen y será redirigido al menú principal

para que vuelva a ingresar el número.

Si el estudiante ingresa mal el número de cédula o el código secreto el IVR le

informará que los datos no se registran en la base de datos y le mandará al menú

principal de opciones.

3.1.1.2 Consulta de solicitudes

Para poder obtener información sobre el estado de su solicitud el estudiante obtiene

un número único (número impreso en la parte superior derecha de la solicitud) y en

base a dicho número podrá informarse sobre el estado de la misma. Se tomaron las

mismas consideraciones de la consulta anterior para poder obtener la respuesta

requerida sobre el estado de la solicitud.

Al momento de ingresar el número el IVR dará como respuesta negada, aprobada o

pendiente.

Page 5: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

5

Si el número ingresado es incorrecto o no existe el IVR le enviará un mensaje

diciendo que los datos son incorrectos y será dirigido al menú principal de opciones

para que vuelva a ingresar el número de la solicitud.

3.2 ESTRUCTURA DE MÓDULOS

Hasta ahora se ha estudiado cada uno de los componentes del IVR para consulta de notas y

servicios adicionales de una manera aislada sin tomar en cuenta los módulos que requiere

el ASTERISK.

En esta sección se explicará a breves rasgos qué componentes se necesitan y como estará

estructurado el sistema.

3.2.1 MÓDULOS ASTERISK

Se ha puesto como punto de partida para la aplicación de este proyecto una PBX como

ASTERISK que recepte las llamadas entrantes de los estudiantes y que pase el control al

IVR para que ejecute las respectivas consultas y devuelva la información solicitada.

Por tal motivo se pone a continuación la estructura de Asterisk.

1. Archivos para el buen desempeño del software:

a. Librerías: archivo libpri.

b. Compiladores: archivo make.

c. Conector para la base de datos: Asterisk adonns.

2. Otro componente es la base de datos que guarda la información, la misma que ya

está creada y que es el motor para las consultas que se van a realizar, se encuentra

en el mismo servidor que la PBX, aquí juega un papel importante la flexibilidad de

la PBX que se utilice y para este caso ASTERIK ofrece una puerta de

comunicación con cualquier tipo de aplicación informática en un lenguaje de

programación determinado como es MySQL.

Page 6: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

6

3.2.2 MÓDULOS IVR

Hay que recordar que un IVR es una prestación de atención por contestadora automática

que suele incorporarse en los sistemas de telefonía, por eso es muy común que exista

manera de crear uno en las PBX que se venden hoy en día, las que generalmente son cajas

cerradas con hardware especializado para manejar telefonía tradicional y actualmente

telefonía IP.

Con esto no se descarta que para un IVR como el de éste proyecto pueda existir hardware o

software que esté especializado solamente en la creación de IVRs y que no maneje toda la

funcionalidad de una PBX, de todos modos como se mencionó anteriormente el punto

inicial de este proyecto es la PBX ASTERISK por tal razón los módulos del IVR se

encuentran dentro de los archivos de configuración de ASTERISK.

Desarrollo de los módulos del IVR:

a. Sip.conf: archivo en el cual se define las extensiones. Los sub-módulos que usa

sip.conf son:

1. General.- sub-módulo donde se define los puertos, contextos y direcciones

ip.

2. 11000- 11xyz.- sub-módulo para la creación de extensiones de usuarios con

sus respectivas propiedades. (xyz son los identificativos del usuario)

b. Extensions.conf: donde se genera el IVR con todos sus contextos para su óptimo

funcionamiento; a continuación se enumeran los sub-módulos que usa

extensions.conf

1. General.- sub-módulo donde están definidas las propiedades del script.

2. Globals.- sub-módulo donde están definidas las variables que se usarán para

capturar los valores que vendrán de la consulta.

Page 7: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

7

3. interno_tesis.- sub-módulo para procesar los requerimientos de las

extensiones de usuario definidas.

4. ivr_tesis.- sub-módulo donde se procesa el árbol de rutas del IVR.

5. consulta_notas.- sub-módulo donde se hace la conexión a la base de datos y

las respectivas sentencias SQL para consultar las notas.

6. consulta_estado_solicitud.- sub-módulo donde se hace la conexión a la base

de datos y las respectivas sentencias SQL para consultar el estado de la

solicitud.

c. Use proyecto: módulo dónde se hace uso de la base de datos para gestionar la

información del alumnado.

3.3 DISEÑO PREVIO DEL SOFTWARE

3.3.1 CASOS DE USO

El diagrama de casos de uso representa la forma en como un Cliente (Actor) opera con el

sistema en desarrollo, además de la forma, tipo y orden en como los elementos interactúan.

A continuación en la figura 3.4 se observa como el Actor interactuar con el sistema de

consulta y todos los elementos que éste contiene.

Page 8: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

8

Fig. 3.4 Diagrama de casos de uso

Page 9: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

9

3.3.2 DIAGRAMA DE INTERACCIÓN

El diagrama de interacción, representa la forma en como un Actor u Objetos (Clases) se

comunican entre si en petición a un evento. Dicho diagrama puede ser obtenido de dos

partes, el Diagrama Estático de Clases o el de Casos de Uso.

De igual manera en la figura 3.5 vemos más específicamente como el sistema interactúa

con el usuario ante una petición del mismo.

Fig. 3.5 Diagrama de Interacción

Page 10: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

10

3.4 GENERACIÓN DE CÓDIGO SCRIPTS

En esta sección se pondrá la estructura de cómo están desarrollados los scripts.

3.4.1 GENERACIÓN DE SIP.CONF

Este script se lo configuró para la definición de las extensiones que van a ser usadas por la

PBX de Asterisk, las extensiones pertenecerán a un mismo contexto (grupo) en este caso

interno_tesis, de esta forma podrán interactuar entre sí, cada una de ellas tiene propiedades

que permite que la PBX las identifique, las propiedades mínimas con las que debe constar

cada extensión son:

Tipo de extensión.- puede tener como valores lo siguiente friend, family, etc; para

este proyecto se ha definido como tipo friend que es el más usado.

Contexto a la que pertenece la extensión (esta característica es necesaria para la

PBX y se usa también en caso de haber sucursales).

Username.- es el nombre de la extensión.

Mailbox .- buzón de mensajes viene por defecto en Asterisk.

Dtmfmode.- valor del modo en el que va a funcionar el teléfono, esta definido por

el protocolo SIP.

Host.- dirección IP que tiene la extensión, en este caso es dinámico.

[general]port = 5060 ; Puerto que usa ASTERISKbindaddr = 0.0.0.context = interno_tesislanguage = es

[11000]type=friendcontext = interno_tesisusername=11000mailbox=11000dtmfmode=rfc2833host=dynamic

[11001]type=friend

Page 11: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

11

context = interno_tesisusername=11001mailbox=11001dtmfmode=rfc2833host=dynamic

[11002]type=friendcontext = interno_tesisusername=11002mailbox=11002dtmfmode=rfc2833host=dynamic

[11003]type=friendcontext = interno_tesisusername=11003mailbox=11003dtmfmode=rfc2833host=dynamic

[11004]type=friendcontext = interno_tesisusername=11004mailbox=11004dtmfmode=rfc2833host=dynamic

3.4.2 GENERACIÓN DE VOICEMAIL.CONF

En este script se configura el buzón de voz de las extensiones creadas.

[default]; Define el número máximo de mensajes que va a guardar la carpeta de un

contexto en particular.

; maxmsg=50

1234 => 4242,Example Mailbox,root@localhost11001 => 1111,Universidad,[email protected] => 1111,Universidad,[email protected] => 1111,Universidad,[email protected]

Donde: 11001 es la extensión

Page 12: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

12

1111 es la clave para escuchar las grabaciones Universidad es el nombre [email protected] es el mail al que le va a llegar el buzón de mensajes

3.4.3 GENERACIÓN DE EXTENSIONS.CONF

En éste script se definen todas las variables, las secuencias de las extensiones, sus

funciones, la interacción entre los sub-módulos (interno_tesis, ivr_tesis, consulta_notas,

consuta_solucitud) y la conexión a la base de datos con las respectivas sentencias SQL.

En éste módulo nos encontraremos con sentencias SQL y comandos de asterisk como los

siguientes:

MYSQL(Connect conn localhost root asterisk proyecto)

Aquí, realizamos la conexión con nuestra base de datos donde:

connid es el nombre de la conexión.loscalhost es la dirección que apunta al servidorroot es el usuario con el que se conecta al servidorasterisk es el password para hacer uso del usuarioproyecto es el nombre de la base de datos

MYSQL(Query result ${conn} SELECT\ id_materia\ from\ alumno_materia\ where cedula=${cedula}\)

En esta sentencia lo que realizamos es la consulta a la base de datos para que nos devuelva el id de la materia según la cédula que almacenamos en una variable, la misma que ingresamos al momento de ingresar a la opción1 del IVR.

MYSQL(Fetch foundRow ${result} fla)

Aquí, busca en la tabla registro por registro si existe o no información.

Set(flaq=${fla})

En esta línea se captura en una nueva variable llamada flaq la información encontrada en la variable fla.

MYSQL(Query resultid ${connid} SELECT\ nombre_materia\ from\ materia\ where id_materia=${flaq}\)

Page 13: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

13

Esta sentencia SQL hace una consulta a la tabla materia para obtener el nombre de materia y el condicionante es que el id de la materia sea igual al valor obtenido en nuestra variable flaq.

MYSQL(Fetch fetchid ${resultid} nombr)

De igual manera que dos líneas anteriores esta sentencia lo que hace es buscar fila por fila los registros en la tabla y el resultado la almacena en una nueva variable llamada nombr.

Set(nombre=${nombr})Aquí captura el resultado encontrado y lo va almacenando en una nueva variable llamada nombre.

BackGround(tesis/${nombre})

Finalmente este comando realiza la búsqueda en nuestro sistema de la grabación con el nombre de la materia.

Lo que realiza (quien) ace es lo siguiente: una vez capturado el nombre de la materia en la variable nombre este comando la mantiene de manera temporal mientras va a la carpeta donde se encuentran las grabaciones, en este caso la carpeta donde almacenamos es tesis. Hay que tener en cuenta que para que el sistema encuentre fácilmente las grabaciones deben primero llamarse de la misma manera que los registros almacenados en la base de datos, por ejemplo si una materia se llama Comunicación de plc pues el nombre de la grabación deberá ser exactamente el mismo incluyendo espacios en blanco, letras mayúsculas y minúsculas así como también tildes o símbolos especiales. Como segundo punto importante es que para toda grabación Asterisk tiene un URL determinado para que funcione sin ningún problema y esté es var/lib/asterisk/sounds/y la carpeta donde estarán las grabaciones del proyecto, en este caso es tesis por lo tanto el URL correcto será var/lib/asterisk/sounds/tesis

Una vez explicado las sentencias SQL y comandos Asterisk, podremos entender de mejor manera el script que a continuación mencionamos y que fue desarrollado para que funcione correctamente el IVR y poder obtener la información requerida.

[general]static=yeswriteprotect=no

[globals];-------- VARIABLES TESISalumno=materia=nombre=nota=numero=flaq=solicitud=estado=

, 01/06/09,
NO ENTIENDO NADA DE ESTO, NI SIQUIERA HAY LA PUNTUACIÓN ADECUADA, NO HAY COMAS, NO HAY PUNTO A PARTE… FAVOR MODIFICAR Y EXPLICAR BIEN
Page 14: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

14

nivel=obs=

[interno_tesis]exten => 11000,1,Goto(ivr_tesis,s,1)exten => 11001,1,Dial(SIP/11001,10)exten => 11001,2,Voicemail(u11001)exten => 11002,1,Dial(SIP/11002,10)exten => 11002,2,Voicemail(u11002)exten => 11003,1,Dial(SIP/11003,10)exten => 11003,2,Voicemail(u11003)exten => 11004,1,Dial(SIP/11004,10)exten => 11004,2,Voicemail(u11004)exten => 11999,1,Dial(SIP/11999,10)exten => 11999,2,Voicemail(u11999)exten => 8500,1,Wait,1exten => 8500,2,VoicemailMain(${ARG1},u)exten => 8500,3,Goto(#,1)

[ivr_tesis]exten => s,1,Answerexten => s,2,Ringingexten => s,3,Wait,2exten => s,4,SetMusicOnHold,randomexten => s,5,SIPDtmfMode(rfc2833)exten => s,6,BackGround(tesis/bienvenida)exten => s,7,WaitExten(3)exten => 1,1,Goto(consulta_notas,s,1)exten => 2,1,Goto(consulta_estado_solicitud,s,1)exten => 9,1,Dial(SIP/11001)exten => 9,2,Voicemail(u11001)exten => 0,1,Hungupexten => t,1,Goto(#,1)exten => i,1,BackGround(tesis/opinvalida)exten => i,2,Goto(s,1)

[consulta_notas]exten => s,1,Answerexten => s,2,BackGround(tesis/cedula)exten => s,3,Read(cedula,,10)exten => s,4,MYSQL(Connect connid localhost root asterisk proyecto)exten => s,5,MYSQL(Query resultid ${connid} SELECT\ cedula\ from\ alumno\ where cedula=${cedula}\)exten => s,6,MYSQL(Fetch fetchid ${resultid} alumn)exten => s,7,Set(alumno=${alumn})exten => s,8,MYSQL(Clear ${resultid})exten => s,9,MYSQL(Disconnect ${connid})exten => s,10,GotoIf($[${LEN(${alumno})} = 0]?11:20)exten => s,11,BackGround(tesis/novalida)

Page 15: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

15

exten => s,12,Goto(ivr_tesis,s,1)exten => s,20,BackGround(tesis/encabezado)exten => s,21,MYSQL(Connect conn localhost root asterisk proyecto)exten => s,22,MYSQL(Query result ${conn} SELECT\ id_materia\ from\ alumno_materia\ where cedula=${cedula}\)exten => s,23,MYSQL(Fetch foundRow ${result} fla)exten => s,24,GotoIf($["${foundRow}" = "1"]?25:50)exten => s,25,Set(flaq=${fla})exten => s,26,MYSQL(Connect connid localhost root asterisk proyecto)exten => s,27,MYSQL(Query resultid ${connid} SELECT\ nombre_materia\ from\ materia\ where id_materia=${flaq}\)exten => s,28,MYSQL(Fetch fetchid ${resultid} nombr)exten => s,29,Set(nombre=${nombr})exten => s,30,BackGround(tesis/${nombre})exten => s,31,MYSQL(Connect connid localhost root asterisk proyecto)exten => s,32,MYSQL(Query resultid ${connid} SELECT\ nivel\ from\ materia\ where id_materia=${flaq}\)exten => s,33,MYSQL(Fetch fetchid ${resultid} nive)exten => s,34,Set(nivel=${nive})exten => s,35,BackGround(tesis/${nivel})exten => s,36,MYSQL(Connect connid localhost root asterisk proyecto)exten => s,37,MYSQL(Query resultid ${connid} SELECT\ nota\ from\ alumno_materia\ where id_materia=${flaq}\ and cedula=${cedula}\)exten => s,38,MYSQL(Fetch fetchid ${resultid} not)exten => s,39,Set(nota=${not})exten => s,40,BackGround(tesis/${nota})exten => s,41,MYSQL(Connect connid localhost root asterisk proyecto)exten => s,42,MYSQL(Query resultid ${connid} SELECT\ observacion\ from\ alumno_materia\ where id_materia=${flaq}\ and cedula=${cedula}\)exten => s,43,MYSQL(Fetch fetchid ${resultid} ob)exten => s,44,Set(obs=${ob})exten => s,45,BackGround(tesis/${obs})exten => s,46,Goto(23)exten => s,47,MYSQL(Clear ${conn})exten => s,50,MYSQL(Disconnect ${conn})exten => s,51,BackGround(tesis/retorno)exten => s,52,WaitExten(3)exten => 1,1,Goto(consulta_notas,s,20)exten => 2,1,Goto(ivr_tesis,s,1)exten => 3,1,Hangup

[consulta_estado_solicitud]exten => s,1,Answerexten => s,2,BackGround(tesis/solicitud)exten => s,3,Read(solici,,3)exten => s,4,MYSQL(Connect connid localhost root asterisk proyecto)exten => s,5,MYSQL(Query resultid ${connid} SELECT\ num_solicitud\ from\ alumno_solicitud\ where num_solicitud=${solici}\)exten => s,6,MYSQL(Fetch fetchid ${resultid} solicitu)

Page 16: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

16

exten => s,7,Set(solicitud=${solicitu})exten => s,8,MYSQL(Clear ${resultid})exten => s,9,MYSQL(Disconnect ${connid})exten => s,10,GotoIf($[${LEN(${solicitud})} = 0]?11:20)exten => s,11,BackGround(tesis/novalida1)exten => s,12,Goto(1)exten => s,20,MYSQL(Connect connid localhost root asterisk proyecto)exten => s,21,MYSQL(Query resultid ${connid} SELECT\ estado\ from\ alumno_solicitud\ where num_solicitud=${solicitud}\)exten => s,22,MYSQL(Fetch fetchid ${resultid} estad)exten => s,23,Set(estado=${estad})exten => s,24,BackGround(tesis/${estado})exten => s,25,MYSQL(Clear${connid})exten => s,26,MYSQL(Disconnect ${connid})exten => s,27,BackGround(tesis/retorno)exten => s,28,WaitExten(3)exten => 1,1,Goto(consulta_estado_solicitud,s,20)exten => 2,1,Goto(ivr_tesis,s,1)exten => 3,1,Hangup

3.5 MONITOREO Y PUESTA EN PRODUCCIÓN DEL SISTEMA

En las pantallas que se presentan a continuación se puede observar desde el momento en

que usuario entra al sistema, y todos los procesos que hace son monitoreados por el IVR.

Fig. 3.6 Llamada entre extensiones

En la figura 3.6 podemos observar la comunicación entre dos extensiones que pertenecen

al mismo contexto o grupo (interno_tesis), la llamada la esta haciendo la extensión 11001

(transmisor) hacia la extensión 11003 (receptor), como primer acto que realiza el receptor

es timbrar (ringing), y luego contesta la llamada proveniente del transmisor; luego de una

corta conversación el receptor cuelga la llamada y se produce un evento de salida (exited).

Page 17: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

17

Fig. 3.7 Transferencia de llamada

En la figura 3.7 la extensión 11003 (transmisor) llama a la extensión 11001 (receptor) para

que a su vez le transfiera hacia la extensión 11000 y poder acceder al sistema de consulta

de la Universidad Politécnica Salesiana.

Page 18: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

18

Fig. 3.8 Llamada al IVR

La figura 3.8 muestra la conexión de una extensión con el IVR, y como respuesta obtiene

la bienvenida al menú de opciones.

Fig. 3.9 Ingreso a la opción 1 del menú

En la figura 3.9 el usuario ingresa al IVR y escoge la opción número 1 (consulta de notas),

en ésta le pide que ingrese el número de cédula y el sistema ejecuta la sentencia para que se

ingrese máximo 10 dígitos.

Fig. 3.10 Ingreso de Cédula para consulta

En la figura 3.10 el usuario ingresa el número de cédula y el sistema se conecta a la base de

datos para hacer la verificación correspondiente y ver si existe en el sistema.

Page 19: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

19

Fig. 3.11 Consulta con cédula registrada

La figura 3.11 el sistema después de haber verificado si existe en la base de datos la

información ingresada da como resultados el nombre de la materia, el nivel al que

pertenece esa materia, la nota que tiene y si aprobó o no la materia.

Fig. 3.12 Consulta con cédula no registrada

Page 20: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

20

En la figura 3.12 el usuario ingresó una cédula que no esta registrada en la base de datos y

el sistema envió la información que la cédula no se encuentra en el sistema y le retornó al

usuario al menú principal de opciones para que lo vuelva a intentar.

Fig. 3.13 Ingreso a la opción 2 del menú

La figura 3.13 el usuario ingresa a la opción dos de menú del IVR consulta de estado de

solicitud. El sistema como primer evento da la bienvenida al sistema de consulta y le pide

al usuario que escoja una opción, luego de escogida el sistema solicita que ingrese el

número de solicitud y antes de que ingrese el dicho número el sistema restringe para que

solo se ingrese como máximo 3 dígitos.

Page 21: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

21

Fig. 3.14 Consulta con número de solicitud registrada

La figura 3.14 el usuario realiza la petición del IVR e ingresa el número de solicitud (en

este caso se ingresó un número registrado en la base de datos), el sistema hace la respectiva

consulta a la base de datos y envía como resultado el estado de la solicitud. En éste caso el

estado de la solicitud es “Pendiente”, luego se desconecta de la base de datos y limpia

todas las variables que se utilizaron para realizar la conexión.

Fig. 3.15 Consulta con número de solicitud no registrada

Page 22: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

22

En este caso la figura 3.15 muestra el resultado que da cuando el usuario ingresa un

número de solicitud no registrada, primero el usuario ingresa el número de solicitud, luego

el IVR hace la conexión con la base de datos para hacer la correspondiente consulta y

como resultado nos envía que el número de solicitud no es correcto y luego le manda al

menú principal para que lo vuelva a intentar.

Fig. 3.16 Ingreso a la opción 9 del menú del IVR

La figura 3.16 muestra el ingreso del usuario para conectarse con la operadora desde una

de las opciones del IVR, como primero paso se realiza la conexión con el IVR, luego el

IVR responde con el saludo inicial y le da como alternativa la comunicación con la

operadora si escoge la opción 9 del menú.

Fig. 3.17 Ingreso a la opción 0 del menú del IVR

En la figura 3.17 el usuario ingresa al IVR y decide salir del sistema pulsando la opción 0

del menú.

Page 23: CAPÍTULO 1 -    Web viewLa llamada pasa por el ... una base de datos que contenga los registros básicos de un estudiante de la Universidad Politécnica Salesiana Campus Sur;

23

Fig. 3.18 Ingreso de opción errada

La figura 3.18 el usuario ingresa al IVR e ingresa una opción que no consta en el menú de

bienvenida, a lo cual el IVR envía como resultado un mensaje de que la opción no es

válida y le retorna al menú principal para que lo vuelva a intentar.