gits68 Posté(e) le 3 décembre 2012 Partager Posté(e) le 3 décembre 2012 Bonjour à toutes et à tous, Vu que le service proposé par défaut (click*tel) est payant et que je n'ai pas trouvé de solution gratuite d'envoi de SMS via une URL, voici une solution relativement simple et gratuite à mettre en oeuvre pour ceux qui ont un téléphone sous Android. Pour faire simple, on utilise son propre téléphone pour s'envoyer un SMS ! Le point de départ se trouve ici : http://blog.idleman.fr/?p=671 ou google : pws sms idleman Configuration actuelle sous réserve de changement : web par défaut sur port , interne uniquement, pas de redirection depuis le monde mauvais :-) web externe sur ports 88/443 avec redirection depuis les ports +50000 3 arborescences, donc, /volume1/web uniquement accessible en interne, /volume1/web/http et https respectivement accessible depuis les ports 88 et 443. Ceci afin que /volume1/web ne soit pas accessible depuis l'extérieur pour des raisons de sécurité, sinon, accès possible à /volume1/web/http et /volume1/web/https directement et je suis pas fan. Installation de PWS Extraction de l'archive pws.zip dans /volume1/web, créé le sous-répertoire pws dont le contenu est : .htaccess pour les redirections index.php pour l'interprétation des requêtes GET ou POST pws.sql pour la création de la table de la bdd PWS1.0.apk à télécharger et à installer sur votre téléphone préféré Création d'un lien symbolique dans /volume1/web/http/pws pointant sur ../pws DiskStation> ln -s ../pws /volume1/web/http/ Inutile de le faire dans https car PWS ne semble pas fonctionner en HTTPS. Installation de phpMyAdmin via le centre de paquets Configuration de MySQL Modification du mot de passe root car il n'y en a pas par défaut ! DiskStation> /usr/syno/mysql/bin/mysqladmin -u root -h localhost password [b]PASSWORD[/b] Modification des autres mots de passe root, eh oui ! DiskStation> /usr/syno/mysql/bin/mysql -uroot -p[b]PASSWORD[/b] mysql mysql> update user set password = password('[b]PASSWORD[/b]') where user='root' and host='127.0.01'; mysql> update user set password = password('[b]PASSWORD[/b]') where user='root' and host='[b]HOSTNAME[/b]'; mysql> flush privileges; mysql> \q où HOSTNAME correspond à votre uname -n et PASSWORD au mot de passe root de la bdd. Petit contrôle en passant : DiskStation> /usr/syno/mysql/bin/mysql -uroot -p[b]PASSWORD[/b] mysql mysql> select user, host, password from user; +------+-----------+-------------------------------------------+ | user | host | password | +------+-----------+-------------------------------------------+ | root | localhost | *A75495759F7680DB7376290870B3574E6501F60A | | root | HOSTNAME | *A75495759F7680DB7376290870B3574E6501F60A | | root | 127.0.0.1 | *A75495759F7680DB7376290870B3574E6501F60A | | | localhost | | | | HOSTNAME | | | pws | localhost | *74F80E46FDE71D87A63B8B46F832ED2047540B0C | +------+-----------+-------------------------------------------+ mysql> \q Les 3 mots de passe root sont logiquement identique. PS : Ne cherchez pas à casser ceux là, ils ne sont pas valides :-P Tout ceci peut également être effectué via phpMyAdmin, mais c'est moins simple, enfin, tout est relatif ;-) http://HOSTNAME/phpMyAdmin login : root mot de passe : aucun Cliquer sur Paramètres généraux->Modifier le mot de passe, saisir le mot de passe 2 fois dans les cases qui vont biens et cliquer sur Exécuter en bas à droite, cliquer sur la base mysql à gauche, puis sur la table user à gauche, puis sur SQL en haut, saisir ce qui suit puis cliquer sur Exécuter en bas à droite update user set password = password('[b]PASSWORD[/b]') where user='root' and host='127.0.01'; update user set password = password('[b]PASSWORD[/b]') where user='root' and host='[b]HOSTNAME[/b]'; flush privileges; Cliquer sur Afficher en haut pour contrôle, les 3 mots de passe root sont logiquement les mêmes. Création du compte et de la base PWS Pour le coup, je reste sous phpMyAdmin :-P Cliquer sur la petit maison dans la prairie en haut à gauche, puis sur Utilisateurs en haut tout court, cliquer sur Ajouter un utilisateur, saisir ce qui suit, cliquer sur Créer une base... puis sur Ajouter un utilisateur Nom d'utilisateur : pws Client : localhost Mot de passe : MDP4PWS 2 fois Création de la table pws_sms Allez, on repasse en ligne de commande : DiskStation> /usr/syno/mysql/bin/mysql -upws -p[b]PASS4PWS[/b] mysql < /volume1/web/pws/pws.sql Alternative sous phpMyAdmin : Cliquer sur la base pws à gauche, puis sur SQL en haut, insérer le contenu du fichier pws.sql et cliquer sur Exécuter en bas à droite Configuration de PWS Modification du fichier index.php logiquement dans /volume1/web/pws DiskStation> vi /volume1/web/pws/index.php Renseigner les lignes suivantes : define('DB_HOST','localhost'); //nom du host define('DB_LOGIN','[b]pws[/b]');//Login d'acces au mysql define('DB_MDP','[b]PASS4PWS[/b]');//mdp d'acces au mysql define('DB_BDD','[b]pws[/b]');//nom de la base de donnée define('USER_UID','[b]PASS4SMS[/b]');//Mot de passe du web service Pour ma part, j'ai remplacé ces lignes : $_ = array(); foreach($_POST as $key=>$val){ $_[$key]=htmlentities($val); } foreach($_GET as $key=>$val){ $_[$key]=htmlentities($val); } par celle-ci : //version compacté $_ = array_map('mysql_real_escape_string', array_map('htmlentities', array_merge($_GET, $_POST))); et remplacé les case 'getMessage' et case 'addMessage' par case 'get' et case 'add' respectivement, ce qui nécessite, dans ce cas, le remplacement de getMessage et addMessage par get et add respectivement dans le fichier .htaccess logiquement dans /volume1/web/pws, au passage, je vire l'option +FollowSymlinks car je n'en voit pas l'utilité ? DiskStation> vi /volume1/web/pws/.htaccess :%s/Message//g :%s/^Options/# Options/ :wq Vous aurez sûrement remarqué au passe que le fichier .htaccess est au format ms-dos, exécuter la commande suivante pour corriger le problème : DiskStation> perl -pi -e 's/\r//' /volume1/web/pws/.htaccess Configuration de la notification Panneau de configuration->Notification->SMS cocher la case Activer les notifications pas SMS cliquer sur le bouton Ajouter puis saisir les informations suivantes : Nom du fournisseur : pws URL : http://localhost/pws?action=add&uid=pass&phone=phone&message=Hello+World Cliquer sur suivant, renseigner les champs tel que, puis cliquer sur Appliquer action=add : Nom d'utilisateur uid=pass : Mot de passe phone=phone : Numéro de téléphone message=Hello+World : contenu du message Alternative en ligne de commande : DiskStation> cat << EOF >> /usr/syno/etc/synosms.conf [pws] port="" needssl="no" sepchar="+" url="http://localhost/pws...ge=Hello World" template="http://localhost/pws...ssage=@@TEXT@@" EOF Sélectionner pws dans le champ Fournisseur de service SMS, renseigner les champs suivants puis cliquer sur Appliquer Nom d'utilisateur : add Mot de passe : PASS4SMS 2 fois Numéro de téléphone principale : + 33 0123456789 PS : Nom d'utilisateur : addMessage au lieu de add si vous n'avez pas effectuer les modifications ci-dessus. Tester via le bouton Envoyer un message SMS de test Contrôler le remplissage de la bdd DiskStation> /usr/syno/mysql/bin/mysql -uroot -padm4mysql pws mysql> select * from pws_sms; +----+--------------+----------------------------+------------+-------+ | id | phone | message | date | state | +----+--------------+----------------------------+------------+-------+ | 17 | +3360123456789 | Test Message from synology | 1354546246 | 0 | +----+--------------+----------------------------+------------+-------+ mysql> \q Sous phpMyAdmin, cliquer sur la bdd pws à gauche, cliquer sur la table pws_sms à gauche, puis cliquer sur Affichage en haut pour rafraichir au besoin. Installation et configuration sur le téléphone Android Cocher la case Paramètres->Sécurité->Sources Inconnues sous Android Télécharger et installer l'application qui va bien : http://DiskStation/pws/PWS1.0.apk Lancer l'application PWS1.0, cliquer sur Configuration, renseigner les champs suivants, puis cliquer sur Sauver Hôte : http://DiskStation.dydns.org:port/pws Mote de passe : PASS4SMS Temps de rafraichissement (secondes) : 10 PS : Remplacer DiskStation.dydns.org par votre IP ou alias externe, supprimer :port si vous êtes sur le port , sinon, spécifier le port de votre serveur web d'un point de vu externe, surtout ne pas mettre de / après pws. 10 secondes pour la phase de test, ensuite, c'est à vous de voir, 300 par défaut (5 minutes). Dans le doute, redémarrer le téléphone s'il ne se passe rien. voilà, a priori, j'ai pas dû oublier grand chose, mais on ne sait jamais... PS : Un grand merci à idleman pour son travail, reste plus qu'à rendre dispo le code source qqp et à diffuser l'appli via GoogleMachin pour que qq1 puisse ajouter le HTTPS par ex. ?! 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 3 décembre 2012 Partager Posté(e) le 3 décembre 2012 "relativement simple"? :- Et comme le t 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gits68 Posté(e) le 3 décembre 2012 Auteur Partager Posté(e) le 3 décembre 2012 la dernière phrase est la bonne :-/ le php enregistre les infos dans la bdd le php peut être attaqué en local ou a distant si tu as une redirection l'appli android contrôle toutes les 5 minutes s'il y a qqc dans la bdd si c'est le cas, elle lit les nos de tel/messages à envoyer au moyen du tel l'appli android est configuré pour travaille via l'ip externe c'est mieux comme ça ? bonjour chez vous 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 3 décembre 2012 Partager Posté(e) le 3 décembre 2012 (modifié) Comprend mieux mais pas convaincu. Bien trop compliqu Modifié le 3 décembre 2012 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gits68 Posté(e) le 4 décembre 2012 Auteur Partager Posté(e) le 4 décembre 2012 (modifié) cela permet, entre autres, d'envoyer des SMS via le web (avec un vrai clavier :-), reste à faire une interface sommaire, même si l'on a pas son tel avec soit, de pouvoir éventuellement être utilisé par d'autres équipements ne sachant pas envoyer d'email, etc. pour l'interface sommaire, c'est fait, cf pj Modifié le 4 décembre 2012 par gits68 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 4 décembre 2012 Partager Posté(e) le 4 décembre 2012 Il y a quand même une méthode beaucoup plus simple pour recevoir sur smartphone des alertes en push des qu'il se passe quelque chose sur son (ou ses) Nas Synology: DS Finder (dispo sur IOS, Android et Windows Phone) La liaison entre le smartphone et le NAS se fait via via le panneau de configuration: 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.