Salut à tous !! Je bricole en ce moment !! Et hier aprem j’étais sur un petit programme PHP/JAVA permettant de transformer son téléphone portable en webservice pour envoyer des SMS.
En effet il peux être pratique de pouvoir envoyer des sms depuis un script ou un programme, les applications sont multiples :
- Pour avertir du down d’un serveur
- Pour envoyer un code de confirmation a un internaute
- Pour envoyer automatiquement un sms de joyeux anniversaire à un amis…
- etc…etc…
Voila voila, avec mon petit programme vous pouvez donc envoyer des sms en tapant une url de ce type :
http://sms.idleman.fr/add/motDePasse/0687531254/Joyeuse fêtes mon poto !!
Explication de l’url :
sms.idleman.fr : Adresse vers votre script d’envois de sms
add: On indique qu’on souhaite ajouter un sms a la liste d’attente
motDePasse: On envois un mot de passe précédemment définis dans le script pour éviter que n’importe qui envois des sms avec votre portable 🙂
0687531254: On précise le numéro de portable du destinataire
Joyeuse fêtes mon poto !! : On précise le message à envoyer.
Bon à ce stade je pense que vous avez compris le principe, passons a la pratique !!
Avant tous les prérequis :
Prérequis :
- Avoir un téléphone Android avec un forfait sms/internet illimité
- Avoir un hébergement/serveur avec du PHP et une base Mysql et l’url rewriting activé.
- Avoir deux sous de jugeote et savoir lire.
INSTALLATION
- 1) Dans votre base de donnée mysql, créez la base a partir du fichier pws.sql disponible
- 2) Configurez les accès a la base de données de la page index.php
- 3) Envoyez le répertoire pws contenant au moins index.php et .htaccess (assurez vous que votre serveur a l’url
rewriting activé). - 4) Le service partie serveur est installé !! Passons à la partie téléphone !
- 5) Installez le fichiez PWS1.0.apk sur votre téléphone androïde
- 6) Lancez l’application PWS sur votre téléphone et configurez les paramètres suivants:
- ** hôte : Adresse url vers votre script php psw (ex: http://www.idleman.fr/pws)
/!\ IMPORTANT : ne mettez pas de “/” à la fin de l’url ! - ** Mot de passe : Il s’agit du mot de passe du webservice, il dois impérativement correspondre au mot
de passe ‘USER_UID’ de la page index.php. - ** Rafraîchissement : Fréquence de la synchronisation entre votre téléphone et votre serveur, plus le
temps sera court, plus vos sms seront envoyés vite, mais cela consommera plus de batterie sur votre téléphone.
- ** hôte : Adresse url vers votre script php psw (ex: http://www.idleman.fr/pws)
- 7) Redémarrez votre téléphone, le script est installé !
UTILISATION
Pour envoyer un sms, ouvrez un navigateur et tapez l’adresse :
http://votre.serveur.fr/pws/add/votre.mot.de.passe.webservice/numero.destinataire/votre.message
exemple : http://www.idleman.fr/pws/add/UV$–z56e/0687865123/Halu mec !
Votre message sera envoyé dans un certain laps de temps en fonction de votre fréquence de rafraîchissement définis.
Vous pouvez donc appeler ce web-service en PHP (via curl) en JavaScript (via Ajax) en JAVA (via les httprequest) etc… et envoyer gratuitement et en illimité des sms depuis n’importe quel script ou langage (oai le principe du webservice quoi 🙂 )
TÉLÉCHARGEMENT
Application androïde et script php ici : pws.zip
CRÉDITS
Script PHP, Application Androïde et concept par votre serviteur Idleman : http://blog.idleman.fr
Superbe idée, moi je dis bravo
Moyen le mot de passe dans l url mais l idée est géniale. Je vais garder ça dans le coin de ma tête. ( vu que j ai de la place ça devrait pas poser de problème)
Haa ben ça fait plaisir de te revoir parmi nous mon ptit clem !!
Oui effectivement le mot de passe c’est gênant, surtout dans le cas d’une attaque type man in the middle, a la base j’avais mis un htacess (facilement utilisable avec php curl par exemple) mais ce système bloquais les appels via javascript/html/direct url etc… or j’aimerais conserver cet accessibilité, donc si tu a une suggestion pour régler le problème, je sous tout ouïe 🙂
Pourquoi ne pas envoyer un paramètre de vérification qui serait un hash salé du numéro de téléphone (ou déjà du mot de passe), ça limiterait déjà les possibilités d’interception de l’url…
Coté téléphone, il faudrait vérifier que le hash alors stocké dans la base de données corresponde au hash du numéro de tel… un truc comme ça quoi 😉
Pour le numéro de téléphone, ça serait craignos… ça voudrait dire que la personne qui connais ton numéro et le hash du script (qui est en téléchargement libre) pourrais générer le mot de passe en 5 sec.
Après il est clair qu’on pourrais crypter le mot de passe actuel dans l’url 🙂
Bonjour à tous,
Merci pour cet article très interessant…
Cher idleman, te serait-il possible de faire de faire une version 1.1 de ton appli Android PWS afin de pouvoir acheminer des SMS faisant plus de 140 octets ?
Ou sinon, peux-tu nous mettre à disposition le code source de ton appli ?
En effet, j’ai constaté qu’un message dépassant la limite de 160 caractères encodés en 7bits n’est pas envoyé.
Sinon, pour les autres, je vous conseille d’utiliser l’encodage utf-8 plutôt que le latin.
Merci,
F.
Salut !! 🙂 Je n’ai plus le temps de faire évoluer ce genre d’appli, en revanche je dois pouvoir te retrouver les sources :), je les publies sur mon gestionnaire de projet DiZplay dès que c’est le cas 🙂
slt idleman. jaime bcp ton invention. laisse moi ton num sur mon email.stp. merci
Super Idleman, tu me dis quand le projet sera sur le repo DiZplay ?
Merci beaucoup.
F.
Si je le retrouve, promis 🙂
Super! mais y a un hic je pense non ?
Ma page web me met :
Fatal error: Call to undefined function: json_encode() in /mnt/105/sda/2/5/jacquesyildiz/pws/index.php on line 97
Or on ne touche pas a l’index.php (le body) pourtant j’ai configurer le DDB, PASS, HOTE, …
Merci pour ce super script
C’et que ta version de PHP doit être trop vielle, la fonction json_encode est disponible en natif sur PHP depuis la version 5.2.0, essaye de mettre a jour ta version de PHP ça devrais mieux aller. 🙂
okey merci vais voir dans la console de free.fr
Tu peux verifier la version du php utilisée sur ton site en executant un fichier php qui contient :
Pour que php5 soit utilisé par défaut sur les pages perso de free.fr, il faut placer à la racine du site un fichier “.htaccess” qui contienne :
php 5
En revanche j’ignore si c’est la 5.2 et supérieure…
Un grand bravo pour cette application. Je dois dire que pour c’est c’est un peu magique d’envoyer un SMS par PHP et qui soient traité par mon smarphone puis distribué!
Pour ajouter un couche de sécurité, j’encode mon mot de passe en base64.
Voici la ligne que j’ai ajouter à la ligne 54:
Encore une autre modification
J’ai changé le champs date de la BD pour employer les perfs du server SQL:
Et la requête INSERT:
Merci pour ces petites modifs :), j’essaierais de les intégrer dans la prochaine version ^^
merci man.
il serait possible d’avoir le source de l’apk ? merci d’avance.
Non, désolé j’ai déjà cherché et suis arrivé a la conclusion que je les avait perdues (shame on me) cela dis les apk sont décompilables a l’aide de quelques programmes il y a des tutos sur le net pour ça, normalement c’est pas très “légale” mais j’autorise officiellement la décompilation de mon apk étant donné que je ne parviens plus a mettre la main sur ces fichues sources.
merci .. continue sur la section raspberry et domotique … je suis tres interressé par le sujet.
Salut,
J’ai testé ta solution sur un server nginx.
très bien tout ça.
a++
Ping Nono’s Vrac 24 « m0le'o'blog
bonjour,
j’ai essayé, de mon coté ca fonctionne bien mais pas plus de 10-12 heures, après les sms ne sont plus envoyés, si j’arrete et redemarre le service coté android ca re fonctionne …
testé avec un galaxy note2
j’aime bien le coté envoi a la base mysql puis recuperation sur le mobile… comme j’ai besoin d’envoyer des messages d’alerte sms , y a t il quelqu’un qui a une idée ? qq un a t il déjà rencontré le meme souci ??
merci,
jl
Slt en premier lieu merci pour ce travail :C’est un truc que je veux faire depuis plusieurs mois …
Il doit me manquer quelques connaissances :
Je suis en local , j’utilise xampp-control
dans htdocs j’ai mis :
-Fichier .htaccess
-Index.php
——————————————————————
Le fichier index.php a été modifié :
define(‘DB_HOST’,’localhost’); //nom du host
define(‘DB_LOGIN’,’root’); //Login d’acces au mysql
define(‘DB_MDP’,”); //mdp d’acces au mysql
define(‘DB_BDD’,’pws’); //nom de la base de donnée
define(‘USER_UID’,’1234′); //Mot de passe du web service
———————————————————————————–
Dans la base de donnée :
Import du fichier,pws.sql dans mysql
-nom de la base de donnée : pws
-Pas de mot de passe
-identifiant :Root
//————————————————–
serveur téléphone
-identifiant :www.idleman.fr/pws
-mdp :1234
-1(rafraîchissement …)
—–
//Après execution
‘
Not Found
The requested URL /pws/add/4516/0641687087/Hello mec, bon anniv!! was not found on this server.’
Pourrai je avoir une aide ?
Tout m’a l’air bon sauf ça
//————————————————–
serveur téléphone
-identifiant :www.idleman.fr/pws
pourquoi met tu l’adresse de mon site web comme identifiant ? oO
Bonjour je trouve ça top!
Cependant j’ai une question, j’ai un site internet marchand, je souhaite informer mes clients de l’expedition de leur commande par sms, et j’ai acheté un modeme GSM wavecom (avec 16 cartes Sim).
L’appareil est relié via USB et je me demande comment interfacer cette box en utilisant le script PHP…
Je sais que la question n’a rien à voir avec le sujet… mais je tente ma chance 😉
Bonne soirée!
Guillaume
Bonjour à tous,
Je trouve cette application super !! Cependant, est-il possible de modifier l’expediteur du SMS afin de ne pas divulguer le numéro de téléphone ??
Non, le sms est envoyé depuis le téléphone, pas moyen de spoofer et c’est pas plus mal 🙂
Bonjour,
Je ne sais pas si cette application marche toujours ou pas. Je viens d’en tester, et ça n’a pas l’air de marcher. Je suis connecté dans un réseau local, et j’ai fais en sorte que l’application se connecte à mon serveur à mon serveur appache (sur lequel le rewriting est activé).
Merci de me tenir au courant.
Normalement oui ça fonctionne toujours, le problème viens peut être de ton réseau…as tu regardé les logs d’apache quand tu tente de te connecter via le téléphone?
Je confirme, l’application fonctionne correctement chez moi, une pure merveille !! 😉 <3
Bonjour à tous,
A tout hasard, je recherche comment envoyer des MMS mais aussi j’aimerai que lorsque je reçois un SMS sur ce portable, celui-ci soit transférer soit par mail soit par sur un autre numéro de téléphone, est ce que l’un d’entre vous aurez cette connaissance ?
En vous remerciant par avance !
Il te faut une application adaptées, as tu essayé aairdroid ? Ou, si tu souhaite ne pas intervenir, il y a une application qui est spécialisées dans les actions réactions sur android qui pourrais te convenir mais je ne me rappelle plus du nom dsl.
Salut Idleman,
Comment vas tu ? Je te suis beaucoup et je tenez à te féliciter pour toutes tes interventions !
Entre nous, j’ai utilisé MAILSMS pour récuperer les sms par mail.
Je cherche toujours le moyen de modifier le destinataire à l’envoi du SMS si quelqu’un passe par ici ..
Merci à tous & bon week-end ! 😀
Bonjour,
Bravo pour votre site, très instructif. Juste une petite question: j’avais un petit projet de SMS : ayant trouvé votre application, j’ai essayé de l’implémenter en SQLAnywhere-webServer (SAP-Sybase) et de le re-écrire en SQL, mais ne connaissant pas PHP, je voulais savoir s’il était possible de connaitre le format d’entrée de votre module “PWS1.0.apk” par un exemple, comme :
{“succes”:”true”, “count”:”1″, “messages”:{“id”:”1″, “phone”:”0678912345″, “message”:”mon Message”, “date”:”2014-10-01 08:30:00″, “state”:”0″}}
(ceci est un exemple conforme à la requête que je renvoie à la demande de PWS1.0.apk, mais qui n’exécute rien.)
Si quelqu’un peut m’aider, un grand merci
moi sa marche pas :
——————————————PHP——————————————
define(‘DB_HOST’,’localhost/phpmyadmin/’); //nom du host
define(‘DB_LOGIN’,’root’);//Login d’acces au mysql
define(‘DB_MDP’,”);//mdp d’acces au mysql
define(‘DB_BDD’,’pws’);//nom de la base de donnée
define(‘USER_UID’,’123abc’);//Mot de passe du web service
—————————————ANDROID————————————–
Hôte: http://192.168.1.13/pws/
Mot de passe 123abc
tdr(secondes)
1
sauver: votre fichier est crrectement configuré
————————————–AU PC——————————-
http://192.168.1.13/pws/add/123abs/monnumer/test
————————————SMS———————————–
Rien
sa fonctionne aussi en wifi ??? Xo
Bonjour,
J’ai tenté de transcrire votre module serveur sur un serveur Sybase (SQLAnywhere) en SQL mode webserver. Je reçois correctement les demandes GET, et aussitôt que j’envoie la réponse dans le format :
{“succes”:true,”count”:”1″,”messages”:[{“id”:”2″,”phone”:”0612345678″,”message”:”Envoi de SMS”,”date”:”2014-11-25T09:38:01.296Z”,”state”:”0″}]}
mon téléphone indique que
– L’application “PWS1.0” s’est arrêtée
(Sans avoir émit le SMS), et plus rien ne se passe.
Y aurait-il une erreur dans le format que j’envoie, sachant que j’indique bien en header ‘content-type=application/json’ ?
avec un grand merci pour toute aide !
On écrit “Android” et non “Androïde”.
Merci pour votre application, mais il ne marche pas chez moi, mon telephone android et mon site en hebergement local sont tous connecte a un reseau wifi, j’ai integre le script a mon site tout en changeant les parametres, mais nada: aidez moi svp. MERCI
ingénieux
Merci bien pour l’appli ! j’aimerai savoir si c’est possible de faire l’inverse avec cette application, c’est à dire traiter les SMS entrant sur le téléphone et les renvoyer par la suite sur le serveur.. ça sera très utile en cas de réaction d’un système suite à une demande client. merci d’avance.
Salut,
y aurait-il un moyen d’envoyer un message à plusieurs destinataires avec ce script?
Bonjour
super projet
mais après avoir fais le tour de la question il me renvoi une page d’erreur
les paramètres sont bons mais il ne retrouve pas la page
si vous avez un peu de temps pour de l’aide ce serait bien volontier !!
cordialement
Merci pour ce tuto au top !!
Je viens d’essayer cela sur mon Rasperry Pi configuré en Home Serveur, et tout marche nickel avec mon téléphone Androïd, c’est de la bombe 😉
Encore un grand merci à toi Idleman
Bonjour,
L’application fonctionne trés bien, sauf que le destinataire reçoit le même sms plusieurs fois, au fait non stop
Avez vous rencontrez ce genre de problème et y’a t’il un moyen d’y remédier ?
Bonjour et merci pour cette application forte utile.
Le souci que j’ai c’est que cette application .apk ne fonctionne pas sur tous les terminaux et je me pose la question de savoir pourquoi.
Ex sur les galaxie samsung, je n’ai aucun PB notamment le S3 mais sur le RISE 30 de chez orange, l’application ne semble pas vouloir se lancer toutes les xxxx secondes pour lire la BDD et envoyer les sms ayant un etat 0.
Je sais que c’est un peu hors sujet, mais qu’est ce qui pourrait y a avoir d’incompatible entre certaines terminaux comme le RISE 30 et cette application, sachant qu’ils tournent tous les deux sous KITKAT de chez Android ? Cette Application fait elle appelle avec une class ou un protocole qui nécessiterait une manip selon les terminaux ?
Merci pour votre retour.
Excellente journée a tous.
Bonne question, cette application date un peu je n’ai plus le code en tête mais de souvenir elle n’utilise pas grand chose a part un timer, le système de sms de l’os et une classe de gestion du server http, c’est peut être elle qui pose problème, à part ça je ne vois pas désolé.
bonjour,
j’ai le meme probleme et dans le coup je cherche une appli permettant de redemarrer regulierement ce service ou processus pws
une idée?
merci
Salut, désolé de déterrer ce sujet mais je comptais toujours utiliser ce bijoux.
Malheureusement, sous la dernière version d’Android (Samsung Galaxy S6), je ne peux pas envoyer de message depuis ton application.
Du coup, ça fonctionne, le “state” se change bien de 0 à 1, cependant aucun message ne s’envoie, malheureusement.
Si tu aurais une solution ! Ça serais niquel 🙂
Merci à toi 😀
Salut,
Génial ton programme, juste une petit question.
Comment fait-on pour les accents ? A chaque message j’ai é à la place de mon “é” par exemple.
Avec un logiciel j’ai bien réussi à décompiler ton programme mais je ne sais pas du tout quoi modifier et encore moins comment recompiler pour que ça fonctionne, peux-tu me filer un petit coup de main rapide ?
Merci encore
Bonsoir, j’ai le même problème que RAMOS, le state change bien mais l’application n’envoie pas le message.
Dans un autre exemple j’ai rajouté des champs dans la table (idA et idB), modifié le fichier .htaccess et le fichier index.php pour que le message s’enregistre bien en appelant l’url suivante :
http://www.nomdedeomaine.fr/sms/add/motdepasse/numerodetel/idA/idB/textetextextext
La table enregistre bien le message ajouté, par contre je n’arrive pas a renseigner l’application : http://www.nomdedeomaine.fr/sms/ pour qu’elle interroge la table et envoie les sms dont le state est 0?
Merci pour toute votre aide.
Bonne soirée
Re, je vous ai fais un DON pour un PACK DE BIÈRES, via paypal ..lol,
J’ai vraiment besoin s’il vous plait d’aide sur pourquoi l’apply n’envoi plus de sms mais change bien le state de ‘0’ a ‘1’ ..
mon email de Paypal :k….O……@H…….com
Très bonne soirée.
Olivier
Salut olivier,
Merci pour la bière.
Je n’ai rien changé sur cette application depuis que je l’ai développée il y a 6 ans, le problème semble venir de la partie androïde et plus précisément de ton téléphone qui refuse d’envoyer les SMS bien qu’il atteigne le webservice PHP (d’ou le changement d’état). Vérifie que ton téléphone autorise toujours l’application a envoyer des sms et que tu n’a pas fait récemment une mise à jour du téléphone qui aurait rendu l’application incompatible.
Je ne peux pas faire grand chose de plus étant donné l’ancienneté de cette application, j’ai perdu la source il y a quelques années déja.
De rien pour la bière c est la moindre des choses. Par contre je n ai pas eu de mise a jour de mon Android, je suis toujours sur kitkat et l application indique bien qu elle peut envoyer des SMS dans sa configuration des applications installees. Donc je suis au point mort. Je vais tenter de decompiler le fichier apk, et demander de l aide sur la class sms, mais je n aime pas ca, j ai le sentiment de hacker ton programme en faisant ca.
En tout cas, tout mon projet depuis 2ans tournait autour de ton apply d envoi sms, donc je suis dans la m……
Merci pour ta reponse, et merci pour ces années d utilisation.
Bonne soiree
Olivier
Salut Idleman !
Désolé de déterrer cette vieille histoire, mais apparemment PWS ne fonctionne pas avec les nouvelles versions d’Android… Le state passe bien de 0 à à 1 mais pas d’envoi… Alors ok, tu l’as mérité ton pseudo Idleman, mais quand même, vu que :
1 – je n’ai rien trouvé d’équivalent sur le net
2 – c’est quand même génial comme idée et qu’on est très nombreux à vouloir l’utiliser
3 – tu n’avais qu’à bien ranger tes affaires,
la Cour condamne le sieur Idleman à réécrire vite fait bien fait son APK
Lorsque le dit sieur aura purgé sa peine, la purge continuera avec une caisse de chouchen (tu as déjà la bière si j’en crois un post précédent)
et bonne saint Valentin,
Kristen