Lenny Robert sous Asterisk/Freepbx

 Si vous ne connaissez pas Lenny je vous invite a faire un tour sur google et Youtube :
https://www.google.com/search?q=lenny+asterisk&oq=lenny+asterisk
https://www.youtube.com/results?search_query=Lenny+asterisk

A ma connaissance, il n'y avait pas de version Française de Lenny d'où mon idée de créer Robert Lenny en Français.

L'article est une simple reprise de plusieurs sites au sujet de Lenny et les fichiers audios en version FR sont 100% maison.

La voix de Robert est une récupération de la voix du père Noel sur Whatsapp lors d'une opération pour noël.
Pour Celine c'est une voix du services d'Amazon Polly . 

Articles de références :
https://shaun.net/notes/introducing-lenny/
https://crosstalksolutions.com/howto-pwn-telemarketers-with-lenny/

Etape 1 — Installer les fichiers audio.

Lenny utilise des fichiers audio et un fichier de bruit de fond.
Utiliser Filezilla par exemple pour envoyer les fichiers audio dans le répertoire de votre asterisk:
/var/lib/asterisk/sounds/Robert
Ou
/var/lib/asterisk/sounds/Celine

Vous devez vous assurer d'attribuer les permissions sur les fichiers.

Etape 2 — Configurer l'extension sous freepbx :
Ici sous incredible PBX 2020 j'édite le fichier : /etc/asterisk/extensions_custom.conf:

[Lenny]
exten => talk,1,Set(i=${IF($["0${i}"="017"]?7:$[0${i}+1])})
same => n,Playback(Lenny/Lenny${i})
same => n,BackgroundDetect(Lenny/backgroundnoise,1500)

Ce code va jouer les fichiers à partir de "Lenny1" puis le N+1 lorsque il y a une détection d'un silence pendant 1500ms .
Après chaque diffusion d'un fichier LennyX+1 le fichier  "backgroundnoise" est joué.

Maintenant voici les versions en FR : 

[Robert]
exten => talk,1,Set(i=${IF($["0${i}"="017"]?7:$[0${i}+1])})
same => n,Playback(Robert/Robert${i})
same => n,BackgroundDetect(Robert/backgroundnoise,1500)

[Celine]
exten => talk,1,Set(i=${IF($["0${i}"="017"]?7:$[0${i}+1])})
same => n,Playback(Celine/Celine${i})
same => n,BackgroundDetect(Celine/backgroundnoise,1500)


Etape 3 — Configuration du Custom Destination sous FreePBX.
Dans Admin > Custom Destinations 



Clicker sur Add Destination


Remplir les cases :

Idem pour Celine

Etape 4— Configuration d'une Extension
Dans Applications > Extensions



Cette étape permet de créer une extension interne qu'il est possible d'appeler directement en interne ou transférer un appel.

Sélectionner Add Extension > Add New Virtual Extension 


Onglet General:



Bien préciser le Language Code en French
Onglet Voicemail 
Dans l'onglet Find Me/Follow Me

- Remplir Ring Time avec une valeur (cela permet de faire sonner la ligne avant le décrochage)
- Dans FollowMe list j'ajoute une extension qui me fait sonner un poste et me permet d'avoir un historique d'appel.

Dans l'onglet Advanced 
Remplir No Answer, Busy, Not Reachable

Maintenant nous allons configurer la SDA qui sera routée vers l'extension avec Inbound route

Etape 5 — Configuration d'une inbound Route


Lors d'un appel entrant sur le 0950170090 l'appel est envoyé sur l'extension de Robert ou Celine


Etape 6 — Enregistrement des appels

Cela sera possible selon deux solutions : 

1) Vous aviez ceci  :
[Robert]
exten => talk,1,Set(i=${IF($["0${i}"="017"]?7:$[0${i}+1])})
same => n,Playback(Robert/Robert${i})
same => n,BackgroundDetect(Robert/backgroundnoise,1500)

Pour enregistrer insérer la ligne en gras: 
[Robert]
exten => talk,1,Set(i=${IF($["0${i}"="017"]?7:$[0${i}+1])})
same => n,ExecIf($[${i}=1]?MixMonitor(${UNIQUEID}.wav))
same => n,Playback(Robert/Robert${i})
same => n,BackgroundDetect(Robert/backgroundnoise,1500)

2) Ou dans Inbound Routes onglet Other > Call Recording sur Yes


Attention à la législation sur les enregistrements dans votre pays.

Vos enregistrements seront dans : /var/spool/asterisk/monitor


Etape 7 — Et voilà vous pouvez jouer avec votre Lenny Robert ou Lenny Celine

Pour télécharger les fichiers, c'est ici : LennyRobert
Dans ce répertoire vous trouverez aussi une compilation d'enregistrements .

Vous pouvez aussi écouter le Best off de Lenny Robert 

Etape 8 — Le futur ...

Ajout de la reconnaissance vocale.
Continuer à créer des voix sympa avec des scenarios dynamiques.
Création d'un serveur pour concevoir des voix à partir de ce projet : 
    https://korben.info/comment-numeriser-voix-lire-texte.html


Commentaires