PDA

Voir la version complète : [AUDIO] comment forcer le saynumber à la place de saydigits ?



UncleBuzz
28/09/2010, 10h13
Bonjour

reprise d'une ancienne question :


Comment fait on pour bien décomposer un numéro de téléphone ?
c'est à dire qu'on nous donne notre numéro par groupe de 2 chiffres.

"06 01 23 43 12" et non "0 6 0 1 2 3 4 3 1 2" et les faire jouer par les fichiers sonores déjà enregistré avec asterisk

en gros que l'on me dise votre numéro est le: zéro six, zéro un, vingt trois ....

Merci


Ca sera beaucoup plus simple avec say.conf :

[general]
mode=new

Ensuite lire le sample, c'est assez clair ::)

Avec freepbx, comment le forcer à utiliser say.conf et non la configuration habituelle ?

freepbx 2.7.8 + asterisk 1.6.2.6 installé depuis les sources

j'ai copier say.conf depuis say.conf.sample dans /etc/asterisk et il est bien parsé au reload, mais le numéro d'extension d'un parking par exemple est toujours prononcé 7 puis 1 malgré ma configuration [fr]


...
[Jul 28 14:39:12] VERBOSE[30291] loader.c: -- Reloading module 'codec_alaw.so' (A-law Coder/Decoder)
[Jul 28 14:39:12] VERBOSE[30291] loader.c: -- Reloading module 'cdr_addon_mysql.so' (MySQL CDR Backend)
[Jul 28 14:39:12] VERBOSE[30291] loader.c: -- Reloading module 'app_playback.so' (Sound File Playback Application)
[Jul 28 14:39:12] VERBOSE[30291] config.c: == Parsing '/etc/asterisk/say.conf': [Jul 28 14:39:12] VERBOSE[30291] config.c: == Found
[Jul 28 14:39:12] VERBOSE[30291] loader.c: -- Reloading module 'res_crypto.so' (Cryptographic Digital Signatures)
...



[Jul 28 14:39:21] VERBOSE[30297] features.c: == Parked SIP/2299-00000035 on 71 (lot default). Will timeout back to extension [from-internal] s, 1 in 45 seconds
[Jul 28 14:39:21] VERBOSE[30297] pbx.c: -- Added extension '71' priority 1 to parkedcalls (0x638e7f0)
[Jul 28 14:39:21] VERBOSE[30297] file.c: -- <SIP/2299-00000035> Playing 'digits/7.alaw' (language 'fr')
[Jul 28 14:39:22] VERBOSE[30297] file.c: -- <SIP/2299-00000035> Playing 'digits/1.alaw' (language 'fr')
[Jul 28 14:39:23] VERBOSE[30297] res_musiconhold.c: -- Started music on hold, class 'default', on SIP/2299-00000035




;
; language configuration
;

[general]
mode=new ; method for playing numbers and dates
; old - using asterisk core function
; new - using this configuration file

(...)

[fr](date-base)
_digit:[0-9] => digits/${SAY}
_digit:[-] => letters/dash
_digit: => letters/star
_digit:[@] => letters/at
_digit:[0-9]. => num:${SAY}

_[n]um:0. => digits/0, num:${SAY:1}
_[n]um:X => digits/${SAY}
_[n]um:1[1-9] => digits/${SAY}
_[n]um:[2-6]1 => num:${SAY:0:1}0, digits/et, digits/${SAY:1}
_[n]um:71 => num:60, digits/et, digits/11
_[n]um:81 => num:80, digits/1
_[n]um:[2-68][2-9] => num:${SAY:0:1}0, digits/${SAY:1}
_[n]um:7[2-9] => num:60, num:1${SAY:1}
_[n]um:9[1-9] => num:80, num:1${SAY:1}
_[n]um:[1-9]0 => digits/${SAY}

_[n]um:1XX => digits/hundred, num:${SAY:1}
_[n]um:[2-9]XX => num:${SAY:0:1}, digits/hundred, num:${SAY:1}

_[n]um:1XXX => digits/thousand, num:${SAY:1}
_[n]um:[2-9]XXX => num:${SAY:0:1}, digits/thousand, num:${SAY:1}
_[n]um:XXXXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2}
_[n]um:XXXXXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3}

_[n]um:XXXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1}
_[n]um:XXXXXXXX => num:${SAY:0:2}, digits/million, num:${SAY:2}
_[n]um:XXXXXXXXX => num:${SAY:0:3}, digits/million, num:${SAY:3}

_[n]um:XXXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1}
_[n]um:XXXXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2}
_[n]um:XXXXXXXXXXXX => num:${SAY:0:3}, digits/billion, num:${SAY:3}


en fait asterisk appelle


[Jul 28 16:08:19] VERBOSE[4063] pbx.c: -- Executing [*65@from-internal:8] SayDigits("SIP/2299-00000003", "2299") in new stack

comment lui faire utiliser SayNumbers au lieu de SayDigits par la configuration ?

fastm3
28/09/2010, 11h05
Pas possible, tu dois modifier le dialplan. Ca veut dire patcher freepbx ( le code php ), ou reecrire cette partie dans extensions_custom.conf par exemple.
Fastm3.

UncleBuzz
29/09/2010, 09h28
dommage, il manque des options d'internationalisation comme la façon d'énoncer un numéro de téléphone par exemple...

Je regarderai le dialplan, mais avec toutes les macros ça risque d'être compliqué à modifier sans ajouter de bug...

fastm3
29/09/2010, 10h01
J'ai dit une betise pour le cas que tu cites, je n'avais pas fait attention.
Mais la reponse est la meme, pas possible.
L'annonce du numero de parking , n'est pas dependante du dialplan mais de res_features.
Donc pour ce cas, tu dois patché asterisk. C'est pas compliqué si tu sais le compiler.
En fait, c'est un bon exercice, la modif etant mineure dans le code je pense.
Pour plein d'autres cas ou les numeros ou extensions sont annoncés, c'est bien le dialplan et donc freepbx pour toit qu'il faut patcher.
A+
Fastm3.