Está en la página 1de 11

GUA DE INSTALACIN FESTIVAL, INTEGRACIN CON ASTERISK, CONFIGURACIN DE COLAS Y AGENTES DE LLAMADAS.

14/05/2010

Laboratorio 3 de Sistemas de Telecomunicaciones


Astrid Cristina Ortega Luis Fernando Solano Vctor Garzn Marn Andrs Felipe Dorado. Universidad del Cauca Facultad de Ingeniera Electrnica y Telecomunicaciones Popayn Cauca

Gua de Instalacin Festival, integracin con Asterisk, configuracin de colas y agentes de llamadas.

Gua de Instalacin Festival, integracin con Asterisk, configuracin de colas y agentes de llamadas.
1. INTRODUCCIN:
IMPORTANTE: antes de iniciar con cualquier proceso de instalacin, recomendamos leer la seccin 3.PROBLEMAS PRESENTADOS. Podra ser necesario realizar de nuevo la instalacin de asterisk para evitar los problemas que all se plantean. Festival es un sistema de sntesis de voz de propsito general para mltiples lenguajes desarrollado originalmente por el Centro de Investigacin de Tecnologas del Lenguaje de la Universidad de Edinburgo, la Universidad Carnegie Mellon as como otros centros de enseanza han realizado contribuciones substanciales al proyecto. Con la configuracin de colas, se le permite al operador contestar mltiples llamadas o poner en espera las llamadas entrantes cuando todas las extensiones estn ocupadas, es importante en entornos como los de los CallCenters donde hay un gran flujo de llamadas entrantes. En sta prctica veremos cmo instalar Festival e integrarlo con Asterisk, para utilizar el servicio de text to speech en ciertas extensiones, adems configuraremos algunas colas y agentes para simular un CallCenter.

2. PUNTOS A DESARROLLAR:
2.1. Festival
a. Definicin. Festival en un TTS (text-to-speech, TTS), es decir un sistema de sntesis de voz de propsito general para mltiples lenguajes, basado en concatenacin de difonos y seleccin de unidades. Desarrollado originalmente por el Centro de Investigacin de Tecnologas del Lenguaje de la Universidad de Edinburgo, la Universidad Carnegie Mellon as como otros centros de enseanza han realizado contribuciones substanciales al proyecto. Se distribuye como software libre con licencia similar a la licencia BSD. Festival y las herramientas de

Pgina 1

Gua de Instalacin Festival, integracin con Asterisk, configuracin de colas y agentes de llamadas.

sntesis de voz se distribuyen bajo licencia tipo MIT-X11 permitiendo uso comercial y no comercial sin restriccin. El proyecto incluye la documentacin completa para desarrollar sistemas de sntesis de voz con varios APIs, siendo un entorno ideal para el desarrollo e investigacin de las tcnicas de sntesis de voz. El proyecto est escrito en lenguaje C++ y est implementado como un intrprete de comandos el cual puede conectarse con diversos mdulos y aplicaciones. Adems existen libreras para el desarrollo de aplicaciones en los lenguajes Java y C++, as como un interfaz para el editor de textos Emacs. El proyecto festival es multilinge (actualmente soporta ingls (britnico y americano), castellano) aunque el ingls es el ms avanzado. Adems algunos grupos han desarrollado herramientas que permiten utilizar otros idiomas con el proyecto. Las herramientas y la documentacin completas para la utilizacin de nuevas voces en el sistema estn disponibles en el proyecto FestVox del Carnegie Mellon University (http://festvox.org). Cabe resaltar, entre otras cosas que es open-source, y est disponible para sistemas Unix, Linux y MacOSX, aunque existen versiones no oficiales para windows. Oficialmente soporta ingls en dos variantes (Britnico y Americano), Espaol y Gals, aunque el soporte del ingls est ms avanzado. El objetivo de los sintetizadores de habla es la lectura automtica de textos, de forma que puedan automatizar esta tarea y hacerla lo ms fiable y precisa posible, por ello las posibilidades de este tipo de aplicaciones son muy variadas, desde la creacin de software para gente con dificultades de lectura hasta el soporte de nuevos sistemas de interaccin humano-computadora (por ejemplo, un auto que informa a su usuario si realiza cierta accin). Los sintetizadores de habla son una pieza fundamental en el objetivo de obtener un sistema capaz de entablar una conversacin. Festival est programado ntegramente en C++ y tiene un API accesible para otros lenguajes como Java y es totalmente modular, por lo que puede trabajarse con cada mdulo concreto, lo que permite una gran flexibilidad al adaptarlo a cualquier entorno. Festival, es una herramienta muy potente, pero desafortunadamente su desempeo no iguala a la de otros programas comerciales. Actualmente algunos de los TTS comerciales ms populares son Loquendo y Natural Voices de IBM. b. Instalacin y Configuracin. Abrimos el terminal y entramos como root (sudo su y escribimos la contrasea). Una vez tenemos permisos de superusuario empezamos la instalacin de los paquetes necesarios para festival, estos son: speech-tools Conjunto de herramientas para text to speech. festvox-kallpc16k Es la voz por defecto que utilizar festival. Festival festival-dev estos dos son los paquetes que instalan finalmente festival. Para instalar estos paquetes lanzamos el comando apt-get install speech-tools
festvox-kallpc16k festival festival-dev

Pgina 2

Gua de Instalacin Festival, integracin con Asterisk, configuracin de colas y agentes de llamadas.

Como mencionamos, el festvox-kallpc16k es el paquete de voz que utiliza festival por defecto, pero este paquete hace el proceso de TextToSpeech en ingls, para utilizar una conversin de texto a voz en espaol, es necesario entonces instalar un paquete aparte y luego configurar festival para decirle que tome ese paquete. Descargamos entonces el paquete de la junta de Andalucia en espaol, desde la siguiente pgina: http://forja.guadalinex.org/repositorio/frs/?group_id=21&release_id=123 y en nuestro caso descargamos la ltima voz femenina festvox-sflpc16k_1.0-1_all.deb , para instalar esta voz nos ubicamos en el sitio donde fue descargada la voz, por defecto Ubuntu descarga en el ruta /home/usuario/Descargas, as que, tenemos dos opciones: La primera es utilizando nuestra interfaz grfica, vamos hasta /home/usuario/Descargas ubicamos el archivo que descargamos, le damos doble click e instalar y tenemos nuestra voz instalada. La segunda, es desde el terminal lanzamos el comando cd /home/usuario/Descargas para ir hasta la ruta donde est el archivo que queremos instalar y para instalar el paquete utilizamos el comando dpkg i festvox-sflpc16k_1.0-1_all.deb. Nota: la ruta /home/usuario/Descargas, hace referencia a una ruta generalizada que utilizamos para describir el proceso, la carpeta usuario en realidad debe tener el nombre de nuestro usuario Ubuntu, por ejemplo: astrid, en ese caso la ruta pasara a ser: /home/astrid/Descargas Despus de instalado el paquete de voz, debemos configurar a festival para que tome este paquete, para ello, debemos modificar el archivo init.scm que se encuentra en /local/share/festival, dndole el nombre exacto del archivo, as que debemos averiguar cul es el nombre que tiene nuestro archivo, para ello vamos hasta la ruta /local/share/festival/voices/ (cd /local//voices) y lanzamos el comando ls para listar todos los archivos dentro de esta carpeta, en ella deben encontrarse dos carpetas mas English y Spanish, ingresamos a la carpeta Spanish (cd Spanish) y de nuevo listamos (ls) y veremos que se encuentra una carpeta con nombre voice_juntaDeAndaLucia copiamos ese nombre en algn lugar (en un editor de texto o simplemente lo dejamos en el clipBoard) y ahora si modificamos el archivo init.scm (gedit /local/share/festival/init.scm) y cambiamos las siguientes lneas.
;;; Default voice (have to do something cute so autoloads still work) (eval (list voice)) (provide 'init)

Por
;;; Default voice (have to do something cute so autoloads still work) (eval (list voice_juntaDeAndaLucia)) (provide 'init)

Con lo hecho hasta ahora festival ya debera funcionar, para verificar si el servidor realmente arranca en el equipo desde consola introducimos el siguiente comando y obteniendo como resultado lo mostrado en la siguiente figura.
Festival --server

Pgina 3

Gua de Instalacin Festival, integracin con Asterisk, configuracin de colas y agentes de llamadas.

Una vez comprobado que el servidor esta funcionando procedemos a modificar el archivo extensions.conf ubicado en /etc/asterisk/ al cual adicionamos una nueva extensin con la cual se hara una pequea prueba que demuestre la correcta integracin de asterisk y festival.
exten exten tres) exten exten => 564,1,Answer() => 564,2,festival(laboratorio de sistemas de telecomunicaciones => 564,3, wait(2) => 564,4,Hangup

Para realizar la prueba es necesario que el servidor festival este iniciado, luego se inicia asterisk (desde consola escribimos sudo asterisk -vvvvc), usando un softphone nos registramos y procedemos a llamar a la extensin 564 la cual deber contestarnos y decirnos el mensaje que le escribimos en el archivo extensions.conf

Verificamos que realmente se integro Asterisk con Festival

Pgina 4

Gua de Instalacin Festival, integracin con Asterisk, configuracin de colas y agentes de llamadas.

Funcionamiento de festival y asterisk. Como se puede ver funciona correctamente.

2.2. Configuracion de Colas y Agentes de LLamadas


a. Definicin. La utilizacin de colas, agentes y grupos de agentes refleja su importancia en entornos donde se tiene un gran nmero de llamadas entrantes, como por ejemplo un CallCenter, en este caso las colas nos permiten dar orden a las llamadas para poderlas atender una a una, por parte del agente inscrito a dicha cola. Un agente es un usuario comn de Asterisk que ha sido logeado como agente y que est inscrito a una cola de llamadas, permitindole tener una conexin total con el servidor y recibir llamadas que vayan entrando a la cola a la cual se encuentre inscrito. Los agentes pueden configurarse en grupos y de esta manera adjuntar no solo un agente a una cola sino un grupo de agentes. b. Configuracin. Configuramos primero los agentes haciendo uso del archivo agents.conf ubicado en /etc/asterisk (gedit /etc/asterisk/agents.conf), y quitamos los comentarios a las siguientes lneas:
[general] persistentagents=yes

multiplelogin=yes

; empieza la parte general ; define si el callbacklogin tiene que ser almacenado en la base de datos interna de Asterisk. De esta forma cuando volvemos a arrancar asterisk estos datos ern recargados ; define si es permitido a una misma extensin conectarse como agente mltiple ; desde aqu comienza la configuracin de los agentes

[agents]

Pgina 5

Gua de Instalacin Festival, integracin con Asterisk, configuracin de colas y agentes de llamadas.

; nmero mximo de intentos que tiene un agente para conectarse autologoff=20 ; si un agente no contesta una llamada dentro de 20 segundos ser automticamente desconectado autologoffunavail=yes ;si la extensin desde la cual el agente se conecta se vuelve no disponible, automticamente el agente ser desconectado endcall=yes ;un agente puede terminar una llamada presionando la tecla * musiconhold => default ;la clase de msica en espera que escuchar el agente cuando est conectado.
maxlogintries=5

Para finalizar con este archivo definimos un grupo para los agentes que vamos a configurar:
group=1

Para la configuracin de los agentes seguimos la sintaxis


;agent => IDagente,contraseaagente,nombre agent => 1010,1010,Garzon agent => 1020,1020,Ortega group=2 agent => 2010,2010,Dorado agent => 2020,2020,Marin

Pgina 6

Gua de Instalacin Festival, integracin con Asterisk, configuracin de colas y agentes de llamadas.

c. Colas Como mencionamos podemos configurar Asterisk de forma tal que si varios usuarios llaman a una misma extensin no les aparezca que la lnea est ocupada, sino que queden en espera para luego ser atendidos, para lograr esto debemos configurar colas en asterisk.
Esta configuracin se realiza en la carpeta /etc/asterisk en el archivo llamado queues.conf, dentro del cual hay que definir unos parmetros de las colas como por ejemplo cuales agentes y/o grupos son miembros de una determinada cola y que tipo de estrategia se utiliza para enrutar las llamadas a los distintos agentes.

d. Configuracin de Colas. Tenemos que editar el archivo mencionado: gedit /etc/asterisk/queues.conf y modificamos sus lneas de la siguiente manera:
[general] include => sos include => votos

sos nos simula una lnea de atencin de emergencias, mientras que votos nos simula una linea para votacin como las utilizadas en algunos programas de televisin.
persistentmembers = yes

si usamos agentes dinmicos su configuracin se guardar en la base de datos de Asterisk. De esta forma si Asterisk se vuelve a arrancar, cada agente ser enrutado a su correspondiente cola.
keepstats = no

mantiene las estadsticas de la cola durante un reload de Asterisk


autofill = yes

Con este parmetro (autofill) permitimos que los usuarios sean atendidos de forma paralela mientras existan agentes disponibles inscritos a la cola a la cual est llamando el usuario.
monitor-type = MixMonitor

Permite mezclar los archivos de sonidos de conversaciones que se hayan grabado en un solo archivo.
shared_lastcall=yes

en el caso de agentes que pertenecen a ms de una cola poniendo a yes este parmetro se respetarn los tiempos de espera entre las distintas colas Hasta aqu hemos configurado el contexto general del archivo queues.conf, ahora vamos a configurar los contextos para cada una de las colas nombradas al comienzo de este archivo, (sos y votos).
[sos]

Es el nombre de la cola que vamos a configurar


context = ejemplo

Al igual que en el archivo sip.conf establecamos a que contexto pertenece determinada extensin, en este archivo debemos establecer a que contexto pertenece determinada cola.
musicclass = default strategy = leastrecent

Con strategy definimos que tipo de estrategia hay que utilizar para atender las colas. Las posibles opciones son:

Pgina 7

Gua de Instalacin Festival, integracin con Asterisk, configuracin de colas y agentes de llamadas. Leastrecent: Asigna la siguiente llamada al agente que ms tiempo lleve sin atender

una llamada.
Fewestcalls: Asigna la siguiente llamada al agente que menos llamadas haya

atendido.
Random: Asigna la siguiente llamada aleatoriamente a cualquier agente disponible. Ringall: Llama a todos los agentes a la vez y el primero que descuelgue ser quien

atienda la llamada. RRMemory: Distribuye las llamadas por turnos entre los agentes disponibles y recuerda el ltimo agente al que intent llamar.
Linear: contacto los agentes siguiendo el orden definido en este archivo de configuracin. Wrandom: asigna la llamada aleatoriamente usando una mtrica basada en penalidades. timeout = 20

Tiempo, en segundos, pasado el cual la llamada se considerar no contestada por el agente.


retry = 5

Tiempo, en segundos, antes de volver a llamar todos los agentes


weight=0

Cada cola puede tener un peso. Las colas con un valor alto tendrn prioridad respecto a aquellas con un valor ms bajo.
autopause=no

si un agente no contesta una llamada ser puesto en pausa


maxlen = 0

Parmetro para nmero mximo de usuarios que pueden entrar en la cola de espera (0 =
ningn lmite) announce-frequency = 90

Frecuencia en segundos con la cual se anunciar al usuario en la cola su posicin y/o tiempo estimado de espera.
min-announce-frequency = 15 Para evitar que cada vez que la posicin y/o el tiempo estimado de un usuario cambie, se le

presente un anuncio, este parmetro define un tiempo (en segundos) que se esperar antes de comunicarle su nueva posicin/tiempo estimado.
periodic-announce-frequency=60

Este parmetro representa cada cuantos segundos a un usuario en la cola se le presentar un anuncio (por ejemplo relacionado con algn producto de la empresa).
announce-holdtime = no

anunciar junto a la posicin en la cola el tiempo estimado de espera. Puede ser yes, no, u once (una sola vez)
announce-position = yes

Peridicamente se le anunciar al usuario en la cola, su posicin en la misma.


announce-round-seconds = 10

El tiempo de espera estimado ser redondeado a las decenas A continuacin inscribimos los agentes que harn parte de esta cola:
member => Agent/1010 member => Agent/1020

Pgina 8

Gua de Instalacin Festival, integracin con Asterisk, configuracin de colas y agentes de llamadas. [votos] context=ejemplo musicclass = default strategy = leastrecent timeout = 15 retry = 5 weight=0 autopause=no maxlen = 0 announce-frequency = 90 min-announce-frequency = 15 ;periodic-announce-frequency=60 announce-holdtime = once announce-position = yes announce-round-seconds = 10 member => Agent/2010 member => Agent/2020

Despues de configurado este archivo, debemos configurar una extension para las colas que hemos configurado, para ell vamos a modificar el archivo extensions.conf ubicado en /etc/asterisk (gedit /etc/asterisk/extensions.conf). Y agregamos extensiones para nuestras colas, ellas son:
exten => *123,1,Queue(sos) exten => *123,n,Hangup exten => 019011,1,Queue(votos) exten => 019011,n,Hangup

e. Prueba de agente.

Pgina 9

Gua de Instalacin Festival, integracin con Asterisk, configuracin de colas y agentes de llamadas.

Para probar el funcionamiento de los agentes, vamos a necesitar tres equipos todos conectados al servidor. Corremos asterisk asterisk vvvc En los tres equipos conectados al servidor, debemos tener x-lite o cualquier otro softphone, en todos nos registramos como un usario cualquiera de los que estn en el archivo sip.conf. Para registrarnos como agente no debemos registrar con el nombre y la extensin del agente, sino como usuario normal, luego desde este llamar a la extensin del agente (ej: 1010), recibiremos un mensaje que dice que ingresemos nuestra contrasea seguida de la tecla numeral, lo hacemos y si la contrasea es correcta, recibiremos un mensaje de registro satisfactorio. Haremos esto con uno solo de los usuarios que tenemos disponibles. Una vez registrado un agente, este queda conectado, y se activar el servicio de musicOnHold, mientras no hayan llamadas entrantes. Desde cualquiera de los otros usuarios que no son agentes marcamos a la lnea de la cola en la cual est registrado el agente (ej: *123), dado que el agente est disponible su llamada ser automticamente contestada por el agente, mientras esta llamada est establecida utilizamos el usuario que tenemos libre para llamar de nuevo a la extensin de la cola (*123). Como el nico agente est ocupado el usuario se pondr en espera mientras se libera el agente. El agente puede colgar la llamada actual presionando * o el usuario que est llamando a la cola puede colgar, cuando esto pasa, la llamada del usuario que est en la lnea de espera ser automticamente contestada por el agente. Si todo nos funciona de esta manera, tenemos correctamente configurada nuestra cola.

3. PROBLEMAS PRESENTADOS
La instalacin de festival no presenta ningn problema, pero si su integracin con asterisk, al parecer la ltima versin de asterisk no tiene un buen desempeo con festival y su integracin fue imposible, para solucionar este problema fue necesario reinstalar de nuevo asterisk a una versin mas baja, (asterisk 1.4.31). Tambin es importante comentar que en la gran mayora del material utilizado para esta instalacin recomendaban instalar primero festival y luego asterisk.

4. BIBLIOGRAFA
http://www.asterisk.org/ http://es.wikipedia.org/wiki/Asterisk Manual de Asterisk y otras hierbas. Sells Rosa, Fabian. Universidad de Cdiz.

Pgina 10

También podría gustarte