In post precedenti abbiamo visto insieme come fare una installazione di base della piattaforma Asterisk, e abbiamo anche configurato un IVR.
Chi ha seguito i post sicuramente si sarà accorto che Asterisk, di default, ha i messaggi predefiniti in inglese. Come fare per far “parlare” Asterisk in italiano?
Per capire questo, vediamo come vengono gestiti i file sonori in asterisk.
I file sonori originali della nostra installazione Asterisk sono collocati in
/var/lib/asterisk/sounds
mentre per distribuzioni debian e derivate:
/usr/share/asterisk/sounds
Se osserviamo dentro “sounds” noteremo una serie di sottodirectory:
- /var/lib/asterisk/sounds/dictate;
- /var/lib/asterisk/sounds/digits;
- /var/lib/asterisk/sounds/letters;
- /var/lib/asterisk/sounds/phonetic.
Nelle quali sono suddivisi i file sonori, i file sono presenti nel formato GSM. Il formato GSM è ottenibile in vari modi, uno l’abbiamo visto in un post precedente.
A questo punto bisogna avere a disposizione i file in italiano, in rete è possibile reperirli, ma potete anche registrarli da soli o farli realizzare da aziende che lo fanno di mestiere.
I file in italiano occorre spostarli nelle cartelle su dette, creando però una sottocartella /it, in pratica dobbiamo avere i file in italiano in:
- /var/lib/asterisk/sounds/it;
- /var/lib/asterisk/sounds/dictate/it;
- /var/lib/asterisk/sounds/digits/it;
- /var/lib/asterisk/sounds/letters/it;
- /var/lib/asterisk/sounds/phonetic/it.
Ad esempio, supponiamo di avere la traduzione in italiano del file in inglese /var/lib/asterisk/sounds/digits/13.gsm che pronuncia il numero 13 (thirteen). Chiamiamo 13.gsm anche la traduzione e lo copiamo nella directory:
/var/lib/asterisk/sounds/digits/it/13.gsm.
In questo modo Asterisk cercherà per primo il file in italiano, se non lo trova, salirà nell’albero delle directory e prenderà quello in inglese.
Per far funzionare il tutto dobbiamo specificare ad Asterisk che vogliamo usare i file in italiano, aggiungiamo in sip.conf:
language=it
E poi nelle estensioni che vogliamo si “parli” italiano:
exten => XXX,1,Set(LANGUAGE()=it)