Asterisk – Text to Speech

Configuração de URA integrado com TTS e MYSQL
Esta demonstração foi criada em ambiente virtual, utilizando a versão 4 do Issabel (CentOS 7 64bits).
Apresenta como integrar em uma URA simples, a utilização do Google TTS juntamente com uma consulta a uma base de dados MYSQL (MariaDB) através de AGI escrito em PHP.
TTS (Text to Speech) é a tecnologia que permite sintetizar a fala humana, convertendo texto em linguagem normal.
Instalando pacotes necessários
Instalação dos pacotes necessários e dependências da API “googletts”.
# yum install perl-libwww-perl perl-IO-Socket-SSL perl-LWP-Protocol-https mpg123 git -y
Baixando a API “googletts”
Pagina da Api: http://zaf.github.io/asterisk-googletts/
cd /root
git clone git://github.com/zaf/asterisk-googletts
cp asterisk-googletts/googletts.agi /var/lib/asterisk/agi-bin/
cd /var/lib/asterisk/agi-bin/
chmod 700 googletts.agi
chown asterisk:asterisk googletts.agi
Criando a Base de Teste no MYSQL
mysql -u root -pSENHADOMYSQL
mysql>CREATE DATABASE tts;
mysql>CREATE TABLE cliente( id INT(11) UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, cpf VARCHAR(11) NOT NULL, nome VARCHAR(100) NOT NULL);
mysql>CREATE INDEX idx_cpf ON cliente(cpf);
mysql>INSERT INTO cliente (cpf,nome) VALUES (‘11111111111′,’João Roberto da Silva’),(‘22222222222′,’Paulo Ricardo dos Santos’),(‘33333333333′,’Maria Luiza Fernandes’);
Criando AGI para consulta ao MYSQL
Criar arquivo “/var/lib/asterisk/agi-bin/checkcpf.agi” com o seguinte conteúdo:
#!/usr/bin/php -q
<?php
include('phpagi.php');
$cpf = $argv[1];
$agi = new AGI();
$db = mysqli_connect("127.0.0.1","root","102030405060","tts");
if( ! $db ){
$agi->verbose("Erro ao tentar conectar no MYSQL " . mysqli_connect_error());
exit(0);
}
$res = $db->query("SELECT * FROM cliente WHERE cpf = '$cpf';");
if( $res->num_rows == 0 ){
$agi->set_variable("CPFSTATUS",0);
$agi->set_variable("CPFMESSAGE","CPF NAO ENCONTRADO. DIGITE NOVAMENTE");
}else{
$row = $res->fetch_object();
$agi->set_variable("CPFSTATUS",1);
$agi->set_variable("CPFMESSAGE",$row->nome);
}
$res->close();
$db->close();
exit(0);
?>
Alterar permissões do arquivo
chmod 700 /var/lib/asterisk/agi-bin/checkcpf.agi
chown asterisk:asterisk /var/lib/asterisk/agi-bin/checkcpf.agi
Exten para testar incluída no from-internal
(em extensions_custom.conf )
exten => 5000,1,Verbose(Testando Google TTS);
same => n,Answer();
same => n,Agi(googletts.agi,”Seja bem vindo à empresa XYZ”,pt-BR);
same => n(ini),Agi(googletts.agi,”Por favor, digite o seu CPF”,pt-BR);
same => n,Read(CPF,”silence/1″,11,,,5);
same => n,Agi(checkcpf.agi,${CPF});
same => n,GotoIf($[ “${CPFSTATUS}” = “1” ]?ok:err);
same => n,Hangup();
same => n(ok),Agi(googletts.agi,”Olá, ${CPFMESSAGE}, escolha uma das opções a seguir.”,pt-BR);
same => n,MusicOnHold();
same => n,Hangup();
same => n(err),Agi(googletts.agi,”${CPFMESSAGE}”,pt-BR);
same => n,Goto(ini);