Sintetizzatore di voce in multilingua per Asterisk (motore Google

Transcript

Sintetizzatore di voce in multilingua per Asterisk (motore Google
Sintetizzatore di voce in multilingua per Asterisk (motore Google)
Creato da P.M. Lovisolo - www.commercialista-online.net - email: [email protected]
Dopo le mie precedenti guide su come installare Asterisk e FreePBX:
http://www.lovisolo.com/asterisk.pdf,
http://www.lovisolo.com/chan_mobile.asterisk.pdf
http://www.lovisolo.com/configurazione.freepbx.pdf
http://www.lovisolo.com/asterisk.google.pdf
http://www.lovisolo.com/asterisk.skype.pdf
ecco una breve guida su come installare il sintetizzatore gratuito di voce in Italiano e molte altre
lingue per Asterisk, con utili esempi e soprattutto, in fondo all'articolo, un'applicazione per filtrare
le telefonate indesiderate dei call centers.
>> Prerequisiti
aver gia' installato e configurato Asterisk 1.6.24 e FreePBX 2.8.1.5 sulla stessa macchina.
> > Installazione sisntetizzatore di voce multilingue (base motore google)
su - root
wget https://github.com/downloads/zaf/asterisk-googletts/asterisk-googletts-0.6.tar.gz
tar- zxvf asterisk-googletts-0.6.tar.gz
cd asterisk-googletts-0.6
cp googletts.agi /var/lib/asterisk/agi-bin/
chmod 755 /var/lib/asterisk/agi-bin/googletts.agi
Ecco fatto, il sintetizzatore e' pronto!
Esempi:
ora creiamo l'estensione 995 che ci leggera' il testo che andremo ad inserire:
sudo nano /etc/asterisk/extensions_custom.conf
all'interno inseriamo:
exten => 995,1,Answer
exten => 995,2,agi(googletts.agi,"Il motore di sintetizzazione della voce",it)
exten => 995,3,agi(googletts.agi,"è stato installato",it)
exten => 995,4,agi(googletts.agi,"Arrivederci e grazie.",it)
exten => 995,5,HangUp
salviamo con ctrl+x
riavviamo FreePBX e Asterisk:
sudo amportal restart
ora possiamo chiamare l'interno 955 e ascoltare la sintetizzazione vocale sopra descritta.
Altro esempio pratico per un semplice messaggio vocale di benvenuto e poi la chamata viene
inoltrata all'interno 500:
exten => 996,1,Answer
exten => 996,2,agi(googletts.agi,"benvenuti nella mia ditta",it)
exten => 996,3,agi(googletts.agi,"la chiamata sta per essere trasferita",it)
exten => 996,4,agi(googletts.agi,"all'interno desiderato",it)
exten => 996,5,agi(googletts.agi,"attendere,",it)
exten => 996,6,Dial(local/500/n)
exten => 996,7,Hangup
Annuncio professionale in tre lingue per Asterisk
Utilizzando la semplice procedura sopra descritta per il sintetizzatore vocale su Asterisk, ecco un
annuncio assolutamente professionale in tre lingue (Italiano-donna, Inglese-uomo e Francesedonna).
In questo specifico esempio, per semplicita' ho settato un interno (997), inoltrando una linea di
ingresso del centralino verso questo interno, partono prima gli annunci vocali e poi la chiamata
viene inoltrata al gruppo di squillo 600.
Nota: sostituire i puntini ............... con il nome della vostra ditta.
exten => 997,1,Answer
exten => 997,2,Wait(1)
exten => 997,3,agi(googletts.agi,"Benvenuti in .........",it)
exten => 997,4,agi(googletts.agi,"La chiamata sta per essere trasferita",it)
exten => 997,5,agi(googletts.agi,"Attendere prego",it)
exten => 997,6,agi(googletts.agi,"Welcome to ........",en)
exten => 997,7,agi(googletts.agi,"This call is being diverted",en)
exten => 997,8,agi(googletts.agi,"Please old the line",en)
exten => 997,9,agi(googletts.agi,"Bienvenue à la .....................",fr)
exten => 997,10,agi(googletts.agi,"Nous recherchons votre corrispondant et vous assuron de tout
nos effort pour reduir votre attent",fr)
exten => 997,11,agi(googletts.agi,"Rester en ligne s'il vou plait ",fr)
exten => 997,12,Goto(ext-group,600,1)
>> Filtro antiscocciatori telefonici (call centers e indagini di mercato)
Nota: con questo esempio, deviando la chiamata al numero 985, si attiva il filtro anticallcenters
scocciatori.
sudo nano /etc/asterisk/extensions_custom.conf
all'interno inseriamo:
[ivr-6]
include => ivr-6-custom
exten => h,1,Hangup
exten => s,1,Set(MSG=)
exten => s,n,Set(LOOPCOUNT=0)
exten => s,n,Set(__DIR-CONTEXT=)
exten => s,n,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT})
exten => s,n,Set(_IVR_CONTEXT=${CONTEXT})
exten => s,n,GotoIf($["${CDR(disposition)}" = "ANSWERED"]?begin)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n(begin),Set(TIMEOUT(digit)=3)
exten => s,n,Set(TIMEOUT(response)=10)
exten => s,n,Set(__IVR_RETVM=)
exten => s,n,ExecIf($["${MSG}" != ""]?Background(${MSG}))
exten => s,n,WaitExten(,)
exten => hang,1,Playback(vm-goodbye)
exten => hang,n,Hangup
exten => 0,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => 0,n,Set(__NODEST=)
exten => 0,n,Goto(500,1)
exten => 1,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => 1,n,Set(__NODEST=)
exten => 1,n,Goto(600,1)
exten => 2,1,Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => 2,n,Set(__NODEST=)
exten => 2,n,Goto(986,1)
exten => i,1,Set(MSG=custom/tasto-errato)
exten => i,n,Goto(loop,1)
exten => t,1,Goto(loop,1)
exten => loop,1,Set(LOOPCOUNT=$[${LOOPCOUNT} + 1])
exten => loop,n,GotoIf($[${LOOPCOUNT} > 3]?hang,1)
exten => loop,n,Goto(ivr-6,s,begin)
exten => return,1,Set(MSG=)
exten => return,n,Set(_IVR_CONTEXT=${CONTEXT})
exten => return,n,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT_${CONTEXT}})
exten => return,n,Goto(ivr-6,s,begin)
;
; end of [ivr-6]
; 985 filtro call centers – SPAM telefonico
;
exten => 985,1,Answer
exten => 985,2,agi(googletts.agi,"Benvenuti in .........",,it)
exten => 985,3,Wait(1)
exten => 985,4,agi(googletts.agi,"Per richieste di assistenza tecnica premere uno",it)
exten => 985,5,agi(googletts.agi,"per proposte commerciali premere due",it)
exten => 985,6,agi(googletts.agi,"per tutte le altre richieste premere zero",it)
exten => 985,7,Goto(ivr-6,s,1)
; 986 messaggio per lo SPAM telefonico (quando selezionano il tasto 2)
;
exten => 986,1,Answer
exten => 986,2,agi(googletts.agi,"Non desideriamo ricevere proposte commerciali o partecipare
ad indagini di mercato",it)
exten => 986,3,agi(googletts.agi,"Vi chiediamo quindi di cancellare il nostro numero telefonico dai
vostri archivi",it)
exten => 986,4,agi(googletts.agi,"Grazie",it)
exten => 986,5,Hangup
salviamo con ctrl+x
riavviamo FreePBX e Asterisk:
sudo amportal restart
Nota: premendo 1 la telefonata viene inoltrata all'interno 600, premendo 2 viene inoltrata al
messaggio antispam telefonico e premendo = la telefonata viene inoltrata all'interno 500, in caso di
mancata pressine di un tasto il messaggio viene ripetuto tre volte, poi la telefonata viene interrotta.
Ricordarsi di abilitare anche il filtro per i numeri anonimi dal menu di FreePBX.
Se nonostante il nostro filtro, gli operatori dei call centers fanno i furbi e premono il tasto 1 o lo O
per bypassare il filtro fingendosi nostri clienti, allora il nostro “Vaffanculo” non glielo toglie
nessuno!