Page 2 sur 2 PremièrePremière 12
Affichage des résultats 11 à 15 sur 15

Discussion: [SOLVED] [1.4] Lecture d'un numéro à la française?

  1. #11
    Membre
    Date d'inscription
    novembre 2010
    Messages
    32
    Downloads
    0
    Uploads
    0
    Trouvé : il faut modifier say.conf comme suit:

    Code:
    [fr](date-base,digit-base)                                                                                                          
        ;BAD _[n]um:0. => num:${SAY:1}                                                                                                 
        _[n]um:0X => num:${SAY:0:1}, num:${SAY:1:1}
    Si j'ai bien compris, le principe de say.conf est :

    1. Playback(phone:0123456,say) cherche un préfixe qui s'appelle "phone" et dont le numéro correspond à un pattern:

    Code:
    _pho[n]e:0[1-9]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}
    2. Ensuite, l'appli app_playback.so analyse la partie droite (ce qui suit =>) et vérifie s'il existe d'autres patterns dans say.conf qui pourraient encore modifier la lecture.

    En l'occurence, la modification du pattern "_[n]um:0X" permet de lui faire lire un couple de chiffres commençant par un zéro en prononçant le zéro.

    J'ai rajouté le support pour les numéros 800:
    Code:
    _pho[n]e:08XXXXXXXX => num:${SAY:0:1}, num:${SAY:1:3},num:${SAY:4:2}, num:${SAY:6:2},num:${SAY:8:2}
    Pour ceux que ça intéresse, plus de détails sur le plan de numérotation français.

    Si quelqu'un sait comment ajouter ces modifications afin qu'elles soient incluses dans les futures versions d'Asterisk afin d'éviter à d'autres de perdre leur temps...

    Merci.

  2. #12
    Membre
    Date d'inscription
    novembre 2010
    Messages
    32
    Downloads
    0
    Uploads
    0
    Bizarre : un numéro en 0800123456 est bien prononcé "zéro huit cent douze trente-quatre cinquante-six) alors que pour 0892123456, les chiffres sont prononcés indivuellement :-/

    ;say.conf
    Code:
    ;unité
    _[n]um:X => digits/${SAY}
    
    ;dizaine
    _[n]um:1X => digits/${SAY}
    _[n]um:[2-9]0 =>  digits/${SAY}
    _[n]um:[2-6]1 => digits/${SAY:0:1}0, vm-and, digits/${SAY:1}
    _[n]um:71 => digits/60, vm-and, num:1${SAY:1}
    _[n]um:7X => digits/60, num:1${SAY:1}
    _[n]um:9X => digits/80, num:1${SAY:1}
    _[n]um:[2-9][1-9] =>  digits/${SAY:0:1}0, num:${SAY:1}
    
    ;centaine
    _[n]um:100 => digits/hundred
    _[n]um:1XX => digits/hundred, num:${SAY:1}
    _[n]um:[2-9]00 => num:${SAY:0:1}, digits/hundred
    _[n]um:[2-9]XX => num:${SAY:0:1}, digits/hundred, num:${SAY:1}
    
    ;0800XXXXXX -> 0899XXXXXX
    ;_pho[n]e:08XXXXXXXX => num:${SAY:0:1}, num:${SAY:1:3}, num:${SAY:4:2}, num:${SAY:6:2}, num:${SAY:8:2}
    ;CLI
    Code:
    -- Executing [2222@internal:4] Playback("SIP/xlite-02a56004", "phone:0810009032|say") in new stack
    -- <SIP/xlite-02a56004> Playing 'digits/0' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/8' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/hundred' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/10' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/0' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/0' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/90' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/30' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/2' (language 'fr')
    
    -- Executing [2222@internal:6] Playback("SIP/xlite-02a56004", "phone:0892123456}|say") in new stack
    -- <SIP/xlite-02a56004> Playing 'digits/0' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/8' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/9' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/2' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/1' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/2' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/3' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/4' (language 'fr')
    -- <SIP/xlite-02a56004> Playing 'digits/5' (language 'fr')
    -- Executing [2222@internal:7] Hangup("SIP/xlite-02a56004", "") in new stack
    Je ne comprends pourquoi le pattern fonctionne pour un 0800 et pas pour un 092. Quelqu'un a une idée?

    Merci.

  3. #13
    Membre
    Date d'inscription
    novembre 2010
    Messages
    32
    Downloads
    0
    Uploads
    0
    Il y avait un } en trop dans le numéro:

    Code:
    -- Executing [2222@internal:6] Playback("SIP/xlite-02a56004", "phone:0892123456}|say") in new stack

  4. #14
    Membre Association
    Date d'inscription
    août 2010
    Messages
    856
    Downloads
    0
    Uploads
    0
    J'allais le dire ...

  5. #15
    Membre
    Date d'inscription
    novembre 2010
    Messages
    32
    Downloads
    0
    Uploads
    0
    A force de faire des copier/coller et de chercher des pistes compliquées, on finit par se laisser piéger par ce genre de truc :-/

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •