martes, 26 de julio de 2011

Asterisk 10: Text to Speech

Text to Speech - Cepstral



Es un programa TTS(Text to Speech), en otras palabras conversión de Texto a Voz
Cepstral es un sistema TTS que se puede integrar a Asterisk (1.2, 1.4, 1.6, 1.8, 10)
gracias a un módulo dedicado.

Cepstral es un módulo comercial, con un pago de US$30 dolares por canal, podemos tener un motor de texto a voz.

Cabe mencionar que el módulo para la integración de Cepstral con Asterisk lo escribió y lo actualiza Darren Sessions.

A continuación se describe como implementar Cepstral en Asterisk.

Descargamos la voz de prueba en el sitio de Cepstral
ingresamos a la pagina: http://cepstral.com/downloads/



Seleccionamos la Voz de Miguel



Descargamos el paquete:
# wget http://downloads.cepstral.com/cepstral/x86-64-linux/Cepstral_Miguel-8kHz_x86-64-linux_5.1.0.tar.gz

Procedemos a desmpaquetar:
#tar -xf Cepstral_Miguel-8kHz_x86-64-linux_5.1.0.tar.gz

Procedemos a instalar:
#cd Cepstral_Miguel-8kHz_x86-64-linux_5.1.0
#./install.sh

aceptamos la licencia, escogemos la carpeta /opt/swift para la instalación y configuración de datos

Para que linux sepa donde ir a buscar la librerias de Cepstral hay que indicarselo modificando el archivo ld.so.conf
#vim /etc/ld.so.conf

agregamos una linea:
/opt/switf/lib

procedemos a guardar los cambios y actualizar las librerias:
#ldconfig -v

Hasta este punto tenemos instalado la Voz de Cepstral, ahora se tiene que instalar el módulo para asterisk.

SWIFT:
Es un módulo de aplicación de Asterisk que utiliza la biblioteca de Cepstral para la conversión de texto a Voz de manera nativa.

Instalando el módulo para Asterisk



Ingresamos a la siguiente página:
http://forge.asterisk.org/gf/project/app_swift/frs/



Procedemos a descargar el modulo para asterisk 10:

#cd /usr/src/
#wget http://forge.asterisk.org/gf/download/frsrelease/112/167/app_swift-2.1-b1-ast10.tar

Se descomprime:
#tar -xf app_swift-2.1-b1-ast10.tar

Compilamos e instalamos:
#cd app_swift-2.1-b1-ast10
#make
#make install

Reiniciamos Asterisk:
#/etc/init.d/asterisk restart

Procedemos a validar que el modulo este implementado:
#asterisk -rvvvvvvvvvvv
*CLI> module show like app_swift
Module Description Use Count
app_swift.so Cepstral Swift TTS Application 0
1 module loaded

Salimos de la consola
CLI> quit

En la carpeta donde están los archivos de configuración de asterisk encontraremos un
nuevo archivo: swift.conf. Tenemos que modificarlo para terminar la integración de
Cepstral en Asterisk

#vim /etc/asterisk/swift.conf

[general]
buffer_size=65535
goto_exten=yes
voice=Miguel-8kHz

Guardamos y cargamos los cambios en asterisk:

#asterisk -rvv
*CLI>reload

Finalmente realizamos la prueba de fuego:

Un dialplan básico:
#vim /etc/asterisk/extensions.conf
[funciones]
exten=> 666,1,Answer()
same=>n,Playback(welcome)
same=>n,Swift(Espere en línea en unos momentos lo atenderemos)
same=>n,Wait(1)
same=>n,Hangup()


Guardamos y cargamos los cambios:
#asterisk -rvvv
*CLI>dialplan reload

Referencias:
http://voip-info.org
http://voztovoice.org
http://cepstral.com/cgi-bin/downloads
http://downloads.digium.com/pub/telephony/res_cepstral/README

lunes, 25 de julio de 2011

Asterisk 10 - Primeros Pasos

Asterisk 10 : Configuración



Vamos a realizar algunas configuraciones básicas:

empezaremos creando 3 cuentas SIP:

#cd /etc/asterisk/
#touch sip.anexos.conf


#vim sip.conf

[general]
bindport=5060
udpbindaddr=0.0.0.0
allowguest=no
disallow=all
allow=ulaw
allow=alaw

;Creamos una plantilla que usaremos para todas la cuentas SIP
[user-phone](!)
type=friend
qualify=yes
host=dynamic
context=internal
nat=yes
dtmfmode=rfc2833
canreinvite=no
disallow=all
allow=ulaw
allow=alaw

#include sip.anexos.conf

Luego procedmos a crear las 03 cuentas SIP en el fichero sip.anexos.conf


#vim sip.anexos.conf

[atoledo](user-phone)
secret=clavedificil-usar$%:etc
callerid=Alejandro Toledo<1001>

[agarcia](user-phone)
secret=clavedificil-usar$%:etc
callerid=Alan Garcia<1002>

[ohumala](user-phone)
secret=clavedificil-usar$%:etc
callerid=Ollanta Humala<1003>


Cargamos los cambios realizados en el fichero sip.conf

#asterisk -rvvv
*CLI>sip reload


Ingresamos al CLI de asterisk y ver las cuentas SIP creadas:


Ahora procedemos a crear un plan de marcación básico para que las 3 cuentas SIP puedan comunicarse entre ellos.


#vim extensions.conf

[general]

[internal]
exten=>_1XXX,1,Set(Buzon=${EXTEN})
same=>n,Set(Anexo=${DB(usuarios/${EXTEN})})
same=>n,Dial(SIP/${Anexo},10,Tt)
same=>n,Goto(s-${DIALSTATUS},1)
same=>n,Hangup()

exten=>s-BUSY,1,Voicemail(${Buzon},b)
same=>n,Hangup()

exten=>s-NOANSWER,1,Voicemail(${Buzon},u)
same=>n,Hangup()

exten=>_s-.,1,Goto(s-NOANSWER,1)


Usando AstDB
Creamos desde el *CLI> la familia (usuarios) con un key (igual al número de extensión) y asignar un valor( igual al nombre de las cuentas SIP creadas)


*CLI> database put usuarios 1001 atoledo
*CLI> database put usuarios 1002 agarcia
*CLI> database put usuarios 1003 ohumala

;validamos la creación de la familia usuarios

*CLI> database show usuarios
/usuarios/1001 : atoledo
/usuarios/1002 : agarcia
/usuarios/1003 : ohumala

3 results found.


Cargamos los cambios realizados en el fichero extensions.conf


#asterisk -rvvv
*CLI>dialplan reload


Finalmente hacemos las pruebas de llamadas hacia las extensiones 1001,1002 y 1003.

En el próximo post vamos a proceder a probar los nuevos añadidos y ventajas que tendrá esta nueva versión de asterisk.

Instalación de Asterisk 10

Asterisk 10 Beta 1


En el Blog de Digium podemos ver el anuncio formal de que Asterisk 10, Beta 1 ya está disponible para las pruebas de la comunidad.



La instalación es igual que cualquier otra version de Asterisk:

Instalación de Asterisk 10 Beta 1


#cd /usr/src/
#wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-10.0.0-beta1.tar.gz
#cd asterisk-10.0.0-beta1
#./configure



;Esta opcion es opcional, si se quiere habilitar algun modulo en particular.
#make menuselect


#make


#make install

#make samples
#make config
#asterisk -vvvc


Listo ya tenemos instalado asterisk 10 beta1, ahora procedemos a probar las nuevas bondades que nos trae.