Você está na página 1de 6

0.

IVR es una plataforma de desarrollo de aplicaciones telefnicas, que permite


disear, integrar, implementar y administrar sistemas de respuesta interactiva
de voz
Es implementado en empresas que reciben grandes cantidades de llamadas, a
fin de reducir la necesidad de personal y los costos que el servicio ofrecido
representa para la empresa
IVR tiene capacidad para atender miles de llamadas al da, permitiendo a sus
clientes recibir informacin, consultar y modificar bases de datos, va telefnica
y transferirse con una persona, cuando as lo requieran por medio de varios
mens con mltiples opciones de marcado para satisfacer las necesidades del
cliente
AGI (Asterisk Gateway Interface) es una manera de interactuar con Asterisk
desde un script. Este programa puede ser escrito en PHP y es llamado por
Asterisk desde el dial plan. El ejemplo ser el desarrollo de aplicaciones de
consulta telefnica a bases de datos que se explicara a continuacin

Instalacin de PHPAGI
Instalacin de las voces en espaol para Asterisk
Implementacin del IVR utilizando MySQL y PHPAGI

1.
El Asterisk Gateway Interface (AGI) permite desarrollar aplicaciones externas
que pueden interactuar con Asterisk. Estas aplicaciones pueden estar escritas
en distintos lenguajes de programacin como por ejemplo libreras en PHP que
simplifican su escritura, haciendo modificaciones a bases de datos, consultas a
estados de variables, controlar el dIalplan, etc, todo esto haciendo la llamada
desde el archivo extensions.conf
Cmo Funciona?
La comunicacin entre Asterisk y el AGI se apoya a los files descriptors del
sistema operativo Linux que permiten una comunicacin entre el Kernel y la
aplicacin que quiere acceder a un determinado archivo/programa. En Linux.
Los tres estndares que se utilizan son:
STDIN
STDOUT

STDERR
Esto permite escribir el AGI utilizando prcticamente cualquier lenguaje de
programacin. Para el IVR que se implementara en el call center, se utilizarn
la librera PHPAGI y PHP.
Ya se tiene la librera php.agi, a continuacin se descomprime:
tar -xf phpagi-2.20.tgz
se entra en la carpeta creada:
cd phpagi-2.20
y se copian las dos libreras AGI en la carpeta agi-bin de Asterisk:
cp phpagi.php /var/lib/asterisk/agi-bin
cp phpagi-asmanager.php /var/lib/asterisk/agi-bin
se vuelven los archivos ejecutables:
chmod 755 /var/lib/asterisk/agi-bin/phpagi.php
chmod 755 /var/lib/asterisk/agi-bin

/var/lib/asterisk/agi-bin

nano ejemplo.php
#!/usr/bin/php q
Esta lnea le dice al Sistema que va a utilizar un intrprete para ejecutar un
script en lenguaje PHP, la opcin q desactiva los mensajes de error que puede
enviar HTML, es muy Importante que despus del "?" y el ">" del 'fin del PHP'
no debe haber ni siquiera un [ENTER]
<?php
require('phpagi.php');
Llamamos a las libreras de phpagi
error_reporting(E_ALL);
Activamos la bandera de enviar todo lo que se realice a consola como modo
depuracin

$agi = new AGI();


Creamos una instancia de la clase AGI
$agi-> answer();
Generamos el comando Answer de Asterisk, este comando siempre lo
ejecutamos al inicio de un AGI
$callerid = $agi->request['agi_callerid'];
Obtenemos el caller id de quin realiza la llamada
$agi->text2wav("Hola extension $callerid");
Enviamos un mensaje de voz por medio de festival, en este caso en ingles
$agi-> hangup();
al finalizar el script del AGI siempre es recomendable ejecutar esta funcin
para no dejar el canal abierto
?>
Se vuelve ejecutable el archivo:
chmod +x /var/lib/asterisk/agi-bin/ejemplo.php
Se modifica el dialplan para aadir el AGI:
exten => 250,1,Agi(ejemplo.php)

2.
Como se vio en el ejemplo anterior, Festival en Elastix viene instalado pero sin
ninguna voz en espaol, adems, la calidad no es muy buena, es por esto que
es necesario instalar las especificaciones de las voces. Existe un proyecto de la
Junta de Andaluca, el cual consiste de dos paquetes (para Debian) que
contienen una voz masculina y otra femenina para Festival.
Se ver como convertir los paquetes debian (.deb) a CentOS (.rpm) utilizando
el programa Alien y tambin como cambiar la configuracin de Festival para
que se puedan utilizar en Asterisk.
cd /usr/src
tar xf alien_8.78.tar.gz
cd alien
perl Makefile.PL
make
make install

Ahora con los dos paquetes Debian con las voces en espaol para festival,
estos se trasformaran a paquetes en .rpm asi:
alien rv festvox-palpc16k_1.0-1_all.deb
alien rv festvox-sflpc16k_1.0-1_all.deb

Llegados a este punto podemos instalar los dos paquetes para CentOS:
rpm ivh festvox-palpc16k-1.0-2.noarch.rpm
rpm ivh festvox-sflpc16k-1.0-2.noarch.rpm

En la carpeta /usr/share/festival/voices/spanish encontraremos estas dos


carpetas:
JuntaDeAndalucia_es_pa_diphone
JuntaDeAndalucia_es_sf_diphone
Luego es necesario hacer que "Festival" use la nueva voz de forma
predeterminada, se edita el archivo /usr/share/festival/siteinit.scm y al final se
ponen las siguiente lnea, recordar que en el paquete de voces se incluyen 2
voces, una voz masculina y otra femenina, esta ser la voz masculina

(set! voice_default 'voice_JuntaDeAndalucia_es_pa_diphone)


Por ltimo se editara en las libreras phpagi, el archivo de configuracin de
phpagi que trae Elastix (/etc/asterisk/phpagi.conf) en el cual hay que
configurarle el path hacia la aplicacin "text2wave" que es la que se utilizara
como se vio en el ejemplo.
[festival]
text2wave= /usr/bin/text2wave

3.
Inicialmente el usuario llama al IVR principal, el cual da la bienvenida a la
empresa y muestra cinco opciones. El usuario escoge la opcin requerida
presionando la tecla del nmero correspondiente. Si en 10 segundos despus
de dicho el mensaje el usuario no ha presionado ninguna tecla la llamada es
colgada (opcin t) y en el caso en que el usuario presione una tecla
equivocada, el IVR se repite (opcin i). Esta configuracin ser utilizada para
todos los IVRs que se utilicen en la solucin.

La opcin uno del IVR principal permite ir a la extensin 4001 la cual es un


agente que por ejemplo, se asign al departamento de ventas, la opcin dos
permite ir a la extensin 4002 que se asign al departamento de
administracin, la opcin tres permite ir a la extensin 4003 que se asign al
departamento legal, la opcin cuatro permite ir a la extensin 4004 que se
asign a servicio al cliente y la opcin cinco que se asign al IVR secundario 1
para que el usuario pueda registrarse.
4.
El usuario al escoger la opcin cinco entra a un nuevo IVR el cual da dos
opciones. En estas opciones se distingue a los usuarios que tienen una cuenta
y los que desean crear una nueva cuenta. La opcin uno es para los usuarios
que ya tienen una cuenta y desean registrarse, para ello se verifica la cdula y
clave en la base de datos usuario. Despus de registrase es enviado al IVR
secundario2. La opcin dos es para los usuarios que quieren crear una nueva
cuenta, los valores insertados se colocan en la misma base de datos; el usuario
ingresa su cdula y clave de tres dgitos, despus de esto el usuario es enviado
a la extensin 204 donde una operadora tomar otros datos. Si el usuario
presiona una tecla equivocada el IVR se vuelve a repetir y n el caso de que no
presione una tecla por 10 segundos la llamada es colgada.
5.
En este IVR se dan tres opciones. La primera le permite al usuario cambiar su
clave, estos cambios se guardaran en la base de datos usuario, la segunda le
permite al usuario consultar su cuenta a pagar, la cual consulta en la misma
base de datos pero en el campo saldo, la tercera opcin le permite al usuario
ver las promociones que la empresa dispone, estas promociones estn
guardadas en la base de datos promo, si existen promociones se le dicen al
usuario todas las disponibles, caso contrario se informa al usuario que
actualmente no hay promociones.
Al finalizar cada opcin se enva nuevamente al IVR secundario 2.
Por ltimo si el usuario espera en la lnea es enviado a la extensin 205 que
est asignado a una operadora de asesoramiento. Con esta opcin se busca
que el usuario indique cualquier inquietud que no est en el IVR, inquietud de
las promociones o una ayuda de la operacin del IVR total. Adems por medio
de esta operadora se puede acceder a cualquier extensin si el usuario
deseara contactarse con una persona en especial. Si el usuario presiona una
tecla equivocada el IVR se vuelve a repetir.

En este video se implementara un IVR (INTERACTIVE VOICE RESPONSE) el cual


tendr acceso al motor de base de datos MySQL utilizando PHPAGI el cual es un
API que permite programar el IVR para este fin. El AGI (Asterisk Gateway
Interface) es una forma con que interacta Asterisk desde un script escrito en
PHP y llamado por Asterisk desde el dial plan. Se muestra la Instalacin de

PHPAGI y de las voces en espaol para Asterisk mejorando la calidad de las


voces que trae festival por defecto, el IVR busca simular los usuarios de una
empresa la cual necesita que estos por medio del telfono puedan conocer las
promociones que la empresa brinda, la cuenta a pagar que tiene cada cliente y
que nuevos usuarios puedan crear una cuenta con la empresa. Adems de
administrar y redireccionar las llamadas entrantes a los respectivos
departamentos. El requerimiento se da ya que no quieren tener una persona
dedicada que realice este trabajo.

Você também pode gostar