Petit retour d'experience de la LD avec Asterisk.
j'ai créer un scenario sous la LD permettant de diffuser un message téléphoné lors d'un evenement. Ce scenario utilise un equipement universel qui,lance un script PHP sous un serveur synology qui heberge ASTERISK et un web serveur avec PHP
le script:
Citation :<?php
$tts = $_GET['tts'];
$soun = "";
$soun = exec('echo -n '.$tts.' | /opt/bin/md5deep');
$sound = $soun.".mp3";
$sound2 = $soun.".wav";
$tts = '"http://translate.google.com/translate_tts?ie=UTF-8&q='.urlencode($tts).'&tl=fr&client=t"';
$cmd= ' curl -H "Referer: http://translate.google.com/" -H "User-Agent:stagefright/1.2 (Linux;Android 5.0)" '.$tts.' > /volume1/scripts/wav/'.$sound;
exec ($cmd);
$cmd2= '/opt/bin/mpg123 -r 8000 -w /volume1/scripts/wav/'.$sound2.' /volume1/scripts/wav/'.$sound;
exec ($cmd2);
unlink('/volume1/scripts/wav/'.$sound);
//unlink('/volume1/scripts/Asterisk/appel.txt');
$file = fopen("/volume1/scripts/Asterisk/appel.call", "w+");
fputs($file, 'Channel: SIP/500/06xxxxxxxxx
CallerID: "Message" <80>
MaxRetries: 10
RetryTime: 5
WaitTime: 20
Context: diff-mess
Extension: 10
Set: Mavariable='.$soun);
fclose($file);
rename ("/volume1/scripts/Asterisk/appel.call", "/volume1/@appstore/Asterisk/var/spool/asterisk/outgoing/appel1.call");
?>
Ce script récupére dans la variable tts le message a diffuser
il créer un fichier codé en MD5 avec l'utilitaire md5deep
il utilise l'API de google pour faire un fichier en MP3 du message
il est transformé de MP3 en Wav avec l'utilitaire MPG123
il créer un fichier lisible par asterisk et le dépose dans le répertoire d'asterisk adapté
Dans asterisk il faut faire un dialplan permettant de diffuser le message
extrait dialplan asterisk
Citation :[diff-mess]
exten = 10,1,Answer()
exten = 10,n,Wait(4)
exten = 10,n,set(path=/volume1/scripts/wav)
exten = 10,n,Playback(${path}/${Mavariable})
exten = 10,n,Wait(1)
exten = 10,n,Hangup()
Lors du déclenchement su scenario Asterisk appelle un téléphone et lui lit le message
JE me suis fortement inspiré du tuto suivant (
http://www.nas-forum.com/forum/topic/466...de-google/)
De la même manière on peut récupérer des variable de la LD (température, consommation ,....) et les diffuser par téléphone.
Prochaine étape, standard automatique permettant de commander les différentes fonction de la maison.
Message pour l'équipe de LD, pourquoi ne pas integrer en natif ce genre d'interaction avec un serveur de téléphonie car dans toutes installation domotique, il y a la gestion "électrique", la vidéo et la téléphonie