3. Gua Inst.Festival+Asterisk, colas y agentes (1)

Share Embed Donate


Short Description

Download 3. Gua Inst.Festival+Asterisk, colas y agentes (1)...

Description

GUÍA DE INSTALACIÓN FESTIVAL, INTEGRACIÓN CON ASTERISK, CONFIGURACIÓN DE COLAS Y AGENTES DE LLAMADAS.

14/05/2010

Laboratorio 3 de Sistemas de Telecomunicaciones Astrid Cristina Ortega Luis Fernando Solano Víctor Garzón Marín Andrés Felipe Dorado. Universidad del Cauca Facultad de Ingeniería Electrónica y Telecomunicaciones Popayán Cauca

Guía de Instalación Festival, integración con Asterisk, configuración de colas y agentes de llamadas.

Guía de Instalación Festival, integración con Asterisk, configuración de colas y agentes de llamadas. 1. INTRODUCCIÓN: antes de iniciar con cualquier proceso de instalación, recomendamos leer la sección 3.PROBLEMAS PRESENTADOS. Podría ser necesario realizar de nuevo la instalación de asterisk para evitar los problemas que allí se plantean. IMPORTANTE:

Festival es un sistema de síntesis de voz de propósito general para múltiples lenguajes desarrollado originalmente por el Centro de Investigación de Tecnologías del Lenguaje de la Universidad de Edinburgo, la Universidad Carnegie Mellon así como otros centros de enseñanza han realizado contribuciones substanciales al proyecto. Con la configuración de colas, se le permite al operador contestar múltiples llamadas o poner en espera las llamadas entrantes cuando todas las extensiones estén ocupadas, es importante en entornos como los de los CallCenters donde hay un gran flujo de llamadas entrantes. En ésta práctica veremos cómo instalar Festival e integrarlo con Asterisk, para utilizar el servicio de text to speech en ciertas extensiones, además configuraremos algunas colas y agentes para simular un CallCenter.

2. PUNTOS A DESARROLLAR: 2.1. Festival a. Definición.

Festival en un TTS (text-to-speech, TTS), es decir un sistema de síntesis de voz de propósito general para múltiples lenguajes, basado en concatenación de difonos y selección de unidades. Desarrollado originalmente por el Centro de Investigación de Tecnologías del Lenguaje de la Universidad de Edinburgo, la Universidad Carnegie Mellon así como otros centros de enseñanza han realizado contribuciones substanciales al proyecto. Se distribuye como software libre con licencia similar a la licencia BSD. Festival y las herramientas de

Página 1

Guía de Instalación Festival, integración con Asterisk, configuración de colas y agentes de llamadas.

síntesis de voz se distribuyen bajo licencia tipo MIT-X11 permitiendo uso comercial y no comercial sin restricción. El proyecto incluye la documentación completa para desarrollar sistemas de síntesis de voz con varios APIs, siendo un entorno ideal para el desarrollo e investigación de las técnicas de síntesis de voz. El proyecto está escrito en lenguaje C++ y está implementado como un intérprete de comandos el cual puede conectarse con diversos módulos y aplicaciones. Además existen librerías 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 multilingüe (actualmente soporta inglés (británico y americano), castellano) aunque el inglés es el más avanzado. Además algunos grupos han desarrollado herramientas que permiten utilizar otros idiomas con el proyecto. Las herramientas y la documentación completas para la utilización de nuevas voces en el sistema están 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 inglés en dos variantes (Británico y Americano), Español y Galés, aunque el soporte del inglés está más avanzado. El objetivo de los sintetizadores de habla es la lectura automática de textos, de forma que puedan automatizar esta tarea y hacerla lo más fiable y precisa posible, por ello las posibilidades de este tipo de aplicaciones son muy variadas, desde la creación de software para gente con dificultades de lectura hasta el soporte de nuevos sistemas de interacción humano-computadora (por ejemplo, un auto que informa a su usuario si realiza cierta acción). Los sintetizadores de habla son una pieza fundamental en el objetivo de obtener un sistema capaz de entablar una conversación. 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 módulo concreto, lo que permite una gran flexibilidad al adaptarlo a cualquier entorno. Festival, es una herramienta muy potente, pero desafortunadamente su desempeño no iguala a la de otros programas comerciales. Actualmente algunos de los TTS comerciales más populares son Loquendo y Natural Voices de IBM. b. Instalación y Configuración.

Abrimos el terminal y entramos como root ( “sudo

su”

y escribimos la contraseña).

Una vez tenemos permisos de superusuario empezamos la instalación de los paquetes necesarios para festival, estos son: speech-tools festvox-kallpc16k Festival festival-dev



Conjunto de herramientas para text to speech. Es la voz por defecto que utilizará festival.



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

Página 2

Guía de Instalación Festival, integración con Asterisk, configuración 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 inglés, para utilizar una conversión de texto a voz en español, 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 español, desde la siguiente página: 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 gráfica, 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 pasaría a ser: /home/astrid/Descargas Después 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 , dándole el nombre exacto del archivo, así que debemos averiguar cuál 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 algún 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 líneas. ;;; 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 debería 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

Página 3

Guía de Instalación Festival, integración con Asterisk, configuración 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 extensión con la cual se hara una pequeña prueba que demuestre la correcta integración 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 extensión 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

Página 4

Guía de Instalación Festival, integración con Asterisk, configuración 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. Definición.

La utilización de colas, agentes y grupos de agentes refleja su importancia en entornos donde se tiene un gran número 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 común de Asterisk que ha sido logeado como agente y que está inscrito a una cola de llamadas, permitiéndole tener una conexión 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. Configuración.

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 líneas: [general] persistentagents=yes

multiplelogin=yes

[agents]

; 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 erán recargados ; define si es permitido a una misma extensión conectarse como agente múltiple ; desde aquí comienza la configuración de los agentes

Página 5

Guía de Instalación Festival, integración con Asterisk, configuración de colas y agentes de llamadas.

maxlogintries=5 autologoff=20 autologoffunavail=yes endcall=yes musiconhold => default

; número máximo de intentos que tiene un agente para conectarse ; si un agente no contesta una llamada dentro de 20 segundos será automáticamente desconectado ;si la extensión desde la cual el agente se conecta se vuelve no disponible, automáticamente el agente será desconectado ;un agente puede terminar una llamada presionando la tecla * ;la clase de música en espera que escuchará el agente cuando esté conectado.

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

Para la configuración de los agentes seguimos la sintaxis ;agent => IDagente,contraseñaagente,nombre agent => 1010,1010,Garzon agent => 1020,1020,Ortega group=2 agent => 2010,2010,Dorado agent => 2020,2020,Marin

Página 6

Guía de Instalación Festival, integración con Asterisk, configuración de colas y agentes de llamadas.

c. Colas

Como mencionamos podemos configurar Asterisk de forma tal que si varios usuarios llaman a una misma extensión no les aparezca que la línea está ocupada, sino que queden en espera para luego ser atendidos, para lograr esto debemos configurar colas en asterisk. Esta configuración se realiza en la carpeta /etc/asterisk en el archivo llamado queues.conf, dentro del cual hay que definir unos parámetros 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. Configuración de Colas.

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

sos nos simula una línea de atención de emergencias, mientras que votos nos simula una linea para votación como las utilizadas en algunos programas de televisión. persistentmembers = yes

si usamos agentes dinámicos su configuración 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 estadísticas de la cola durante un “reload” de Asterisk autofill = yes

Con este parámetro (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 más de una cola poniendo a yes este parámetro se respetarán 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 establecíamos a que contexto pertenece determinada extensión, 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:

Página 7

Guía de Instalación Festival, integración con Asterisk, configuración de colas y agentes de llamadas.

Leastrecent:

Asigna la siguiente llamada al agente que más 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 configuración. Wrandom: asigna la llamada aleatoriamente usando una métrica 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 tendrán prioridad respecto a aquellas con un valor más bajo. autopause=no

si un agente no contesta una llamada será puesto en pausa maxlen = 0

Parámetro para número máximo de usuarios que pueden entrar en la cola de espera (0 = ningún límite) announce-frequency = 90

Frecuencia en segundos con la cual se anunciará al usuario en la cola su posición y/o tiempo estimado de espera. min-announce-frequency = 15 Para evitar que cada vez que la posición

y/o el tiempo estimado de un usuario cambie, se le presente un anuncio, este parámetro define un tiempo (en segundos) que se esperará antes de comunicarle su nueva posición/tiempo estimado. periodic-announce-frequency=60

Este parámetro representa cada cuantos segundos a un usuario en la cola se le presentará un anuncio (por ejemplo relacionado con algún producto de la empresa). announce-holdtime = no

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

Periódicamente se le anunciará al usuario en la cola, su posición en la misma. announce-round-seconds = 10

El tiempo de espera estimado será redondeado a las decenas A continuación inscribimos los agentes que harán parte de esta cola: member => Agent/1010 member => Agent/1020

Página 8

Guía de Instalación Festival, integración con Asterisk, configuración 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.

Página 9

Guía de Instalación Festival, integración con Asterisk, configuración 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 están en el archivo sip.conf. Para registrarnos como agente no debemos registrar con el nombre y la extensión del agente, sino como usuario normal, luego desde este llamar a la extensión del agente (ej: 1010), recibiremos un mensaje que dice que ingresemos nuestra contraseña seguida de la tecla numeral, lo hacemos y si la contraseña 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 línea de la cola en la cual está registrado el agente (ej: *123), dado que el agente está disponible su llamada será automáticamente contestada por el agente, mientras esta llamada está establecida utilizamos el usuario que tenemos libre para llamar de nuevo a la extensión 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 línea de espera será automáticamente contestada por el agente. 

Si todo nos funciona de esta manera, tenemos correctamente configurada nuestra cola.

3. PROBLEMAS PRESENTADOS La instalación de festival no presenta ningún problema, pero si su integración con asterisk, al parecer la última versión de asterisk no tiene un buen desempeño con festival y su integración fue imposible, para solucionar este problema fue necesario reinstalar de nuevo asterisk a una versión mas baja, (asterisk 1.4.31). También es importante comentar que en la gran mayoría del material utilizado para esta instalación recomendaban instalar primero festival y luego asterisk.

4. BIBLIOGRAFÍA http://www.asterisk.org/ http://es.wikipedia.org/wiki/Asterisk Manual de Asterisk y otras hierbas. Sellés Rosa, Fabian. Universidad de Cádiz.

Página 10

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF