Aller au contenu

Notification Sms Via Android


Messages recommandés

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 80, 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

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="80" 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 80, 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. ?!

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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é par gits68
Lien vers le commentaire
Partager sur d’autres sites

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:

xy6u9.png

Lien vers le commentaire
Partager sur d’autres sites

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.