viernes, 17 de febrero de 2012

Cambiar voces de festival en Elastix

Aqui les dejo un pequeño tutorial escrito por edgar landivar de como poner las voces en español para festival en elastix espero les sea de utilidad.

Lo primero que debemos hacer es instalar los archivos que conforman las voces. Para facilitar este paso, existen unos instaladores RPMs que nos facilitan enormemente el trabajo. Estos instaladores pueden ser descargados de aquí:

http://www.neomano.com/downloads/voces/

El archivo festvox-palpc16k-1.0-2.noarch.rpm instala la voz masculina, llamada Pedro, y el archivo festvox-sflpc16k-1.0-2.noarch.rpm instala la voz femenina, llamada Silvia.

La instalación de estos archivos en nuestro servidor Elastix la podemos realizar con el siguiente comando.

rpm -ivh festvox-palpc16k-1.0-2.noarch.rpm festvox-sflpc16k-1.0-2.noarch.rpm

Luego de esto editamos el archivo /usr/share/festival/languages.scm y modificamos las líneas 93 y 94 de la siguiente forma

ANTES:

(voice_el_diphone)
(set! male1 voice_el_diphone)

DESPUES:

(voice_JuntaDeAndalucia_es_pa_diphone)
(set! male1 voice_JuntaDeAndalucia_es_pa_diphone)

TEXT2WAVE

Si adicionalmente queremos que el comando text2wave por omisión utilice nuestras voces, tendremos que también modificar el archivo /usr/bin/text2wave y en la línea 46 añadir una que diga:

(voice_JuntaDeAndalucia_es_pa_diphone)

Esto es útil debido a que algunos scripts AGI utilizan el comando text2wave para sintetizar voz.

Creamos o editamos si ya existe el archivo phpagi.conf en el directorio de archivos de configuración de Asterisk.

vim /etc/asterisk/phpagi.conf

Y en ese archivo introducimos lo siguiente

[festival]
text2wave=/usr/bin/text2wave
tempdir=/var/lib/asterisk/sounds/tmp/

Ojo solo verificar la ruta de instalacion de text2wave, con whereis text2wave sabremos su directorio

Si no se encuentra el directorio /var/lib/asterisk/sounds/tmp/, creamos el directorio, y le asignamos el usuario de ejecución del pbx de asterisk

Pasos para la instalación de Skype for Asterisk (SFA) en Elastix

NOTA: esta guía se la escribió utilizando un servidor Elastix 2.0.3 (Asterisk 1.6.2) de 32-bits
1. Descargar:
a. http://downloads.digium.com/pub/telephony/skypeforasterisk/
(escoger el SFA correspondiente a la versión de Asterisk del servidor Elastix)
b. http://downloads.digium.com/pub/register/linux/register
2. Copiar ambos archivos (el tar.gz y el “register”) en el servidor Elastix. Ejemplo:
scp skypeforasterisk-1.6.2.0_1.1.2-x86_32.tar.gz register root@192.168.1.2:/opt
3. En el servidor Elastix ubicarse en el directorio donde se copió los archivos en el paso
anterior (/opt/ en nuestro caso). Como usuario root:
a. # tar xzvf skypeforasterisk-1.6.2.0_1.1.2-x86_32.tar.gz
b. # cd skypeforasterisk-1.6.2.0_1.1.2-x86_32
c. # make
d. # make install
e. # make samples
f. # cd ..
g. # chmod +x ./register
h. # ./register
4. Seguir los pasos para registrar la licencia que aparecerán en pantalla
Para el “register” que se utilizó al momento de escribir este documento, las respuestas
que hubo que ingresar son:
a. 1 (Digium Products)
b. 7 (Skype For Asterisk)
c. Ingresar la licencia
d. y (Do you want to register this key now(y/n))
e. y (Do you accept this licensing agreement (y/n)?)
f. Llenar la información correspondiente a: First Name, Last Name, Company,
Address 1, Address 2, City, State, Postal Code, Country, Phone y E-Mail
Notas adicionales:
El archivo de la licencia quedará grabado en: /var/lib/asterisk/licenses/
La pequeña base de datos utilizada por SFA quedará creada en /var/spool/asterisk/skype/
Si por algún motivo dentro del archivo /etc/asterisk/modules.conf no existe la línea
autoload=yes, para que el SFA arranque automáticamente luego de reiniciar el servidor
habrá que añadir las líneas load=>res_skypeforasterisk.so y load=>chan_skype.so
SFA necesita ejecutar procesos dentro del directorio /tmp , si por algún motivo este
directorio tiene el flag “noexec”, se puede seleccionar (o crear) cualquier otro directorio en
el servidor donde sí puedan ser ejecutados procesos, para esto hay que indicarle a SFA la
ruta de este directorio a través del parámetro “engine_directory” dentro del archivo
/etc/asterisk/chan_skype.conf

Ejemplo de uso
Al momento de escribir este documento, no cualquier cuenta Skype puede ser utilizada para
originar llamadas con el SFA, únicamente las cuentas creadas dentro del Skype Manager
pueden ser utilizadas. Este tipo de cuentas se las conoce como “Skype business account”
(cuenta empresarial)
1. Crear una cuenta administrador del Skype Manager en:
https://login.skype.com/bcp/login-form?application=bcp
2. Una vez dentro del Skype Manager como administrador, crear las cuentas para usar con el
SFA:
Members->Create accounts
Ejemplo, se creó cuenta con: Skype Name: juan_SFA y Password: uno2tres4
3. En el archivo /etc/asterisk/chan_skype.conf ; añadir las siguientes líneas:
[juan_SFA]
secret=uno2tres4
context=from-pstn
exten=205
disallow=all
allow=ulaw
4. En el archivo /etc/asterisk/extensions_custom.conf ; luego de la última línea en el contexto
[from-internal-custom], añadir las siguientes líneas:
include => testSkype
[testSkype]
exten => 2323,1,Dial(Skype/juan_SFA@maria_CuentaPersonal)
Notas:
El paso 3, además de registrar una cuenta (“juan_SFA”) con el servidor Elastix, sirve para
dejar configurado que las llamadas hechas a dicha cuenta “juan_SFA” sean transferidas
directamente a la extensión 205
Con el paso 4 se define que cualquier persona que marque 2323 originará una llamada
Skype con la cuenta empresarial “juan_SFA” hacia la cuenta personal
“maria_CuentaPersonal”