Asterisk : comment lire un numéro de téléphone à l'appelant
Nous allons voir comment asterisk peut annoncer un numéro de téléphone à l'appelant. En France, on ne lit un numéro de téléphone en annonçant chaque nombre le composant, mais par groupe de 2 ( 014012... est lu zero un, quarante, douze ... et non zero, un, quatre, zero, un , deux ...). Pour cela nous allons utiliser l'application app_playpack.so.
Fonctionnement
L'application app_playback.so se paramètre dans le fichier de configuration say.conf. L'application utilisée afin de lire le numéro est Playback().
Pré requis
Il faut s'assurer que dans sip.conf, dans la section [general] que vous ayez la définition suivante :
language=fr
Ensuite, éditez asterisk.conf et ajoutez dans le context [options] et ajouter :
languageprefix = yes
Les fichiers de voix française sont bien entendu installés. Ensuite, vous devez avoir le fichier say.conf dans /etc/asterisk et ce fichier doit contenir les patterns pour le français.
Configuration
Modifiez say.conf afin d'avoir les lignes suivantes :
[fr](date-base,digit-base)
_[n]um:0X => num:${SAY:0:1}, num:${SAY:1:1}
...
;numeros 0800 : 0800, 0811... 0899
_pho[n]e:08XXXXXXXX => num:${SAY:0:1}, num:${SAY:1:3},num:${SAY:4:2}, num:${SAY:6:2},num:${SAY:8:2}
;numeros de telephones fixes et mobiles
_pho[n]e:0[1-79]XXXXXXXX => num:${SAY:0:1}, num:${SAY:1:1}, num:${SAY:2:2}, num:${SAY:4:2}, num:${SAY:6:2}, num:${SAY:8:2}
Ensuite, faites un reload ( ou juste "module reload app_playback.so") afin de prendre en compte les changements.
Un exemple d'utilisation
Voici un exemple de code à ajouter dans un contexte du fichier extensions.conf :
[pres-num-tel-fr]
exten => 0011,1,Playback(phone:0140456789,say)
exten => 0011,n,Hangup
ou si vous souhaitez utiliser votre AGI en utilisant le PERL :
$AGI->exec("PLAYBACK num:0140456789,say ""n");
Voilà votre asterisk programmé afin d'énoncer à la manière française les numéros de téléphone.