Installer les sons d’Asterisk

Pour installer les sons, il faut se connecter au serveur Asterisk à travers un client SSH et l’utilisateur root.

Une fois dans le serveur, il faut créer le répertoire de destination pour les fichiers audio.

mkdir /var/lib/asterisk/sounds/fr

Télécharger le paquet core et extra

cd /var/lib/asterisk/sounds/fr
wget -O core.zip https://www.asterisksounds.org/fr-fr/download/asterisk-sounds-core-fr-FR-sln16.zip
wget -O extra.zip https://www.asterisksounds.org/fr-fr/download/asterisk-sounds-extra-fr-FR-sln16.zip
unzip core.zip
unzip extra.zip
chown -R asterisk.asterisk /var/lib/asterisk/sounds/fr
find /var/lib/asterisk/sounds/fr -type d -exec chmod 0775 {} \;

Maintenant il faut configurer la nouvelle langue sur l’extension souhaitée ou dans le contexte général du protocole (SIP, IAX2, etc.) dans lequel l’on veut utiliser les nouveaux sons.

Convertir des fichiers sonores à d'autres formats

Créer le script suivant

cd /var/lib/asterisk/sounds/es
vi convert

Contenu du fichier convert

#!/bin/bash
for a in $(find . -name '*.sln16'); do
  sox -t raw -e signed-integer -b 16 -c 1 -r 16k $a -t gsm -r 8k `echo $a|sed "s/.sln16/.gsm/"`;\
  sox -t raw -e signed-integer -b 16 -c 1 -r 16k $a -t raw -r 8k -e a-law `echo $a|sed "s/.sln16/.alaw/"`;\
  sox -t raw -e signed-integer -b 16 -c 1 -r 16k $a -t raw -r 8k -e mu-law `echo $a|sed "s/.sln16/.ulaw/"`;\
done

Modifier les autorisations

chmod +x convert
./convert

Configuration dans FreePBX

Pour activer le son en utilisant FreePBX, il suffit de modifier le paramètre de la variable language dans Asterisk SIP Settings. Dans ce cas, il faut sélectionner fr. S’il y a des extensions ou des lignes IAX2, il faudra configurer le même paramètre language dans le menu Asterisk IAX Settings.

Comment cherche Asterisk les sons sur la base de la configuration du canal

Chaque canal d’Asterisk a sa configuration de langue. La valeur saisie dans la configuration est divisée par chaque tiret bas pour construire la route où Asterisk cherchera les sons. Ainsi, Asterisk utilisera le premier fichier qu’il trouvera.

Cela veut dire que si la valeur du paramètre language était fr_FR_Marie, Asterisk cherchera les fichiers dans:

.../sounds/fr_FR_Marie
.../sounds/fr_FR
.../sounds/fr
.../sounds

Cela permet d’ajouter de nouvelles variables d’une langue sur la base d’un schéma général.