Sie sind auf Seite 1von 18

Document libre Blog sonzahi.blogspot.

com

Mise en place d'une plate-forme SMS avec


exemple de traitement automatique de contenu

Sommaire

Introduction
1- Installation
** Nos besoins matriels
** Amnageons notre environnement de travail
** Configurons notre modem
2- Mise en place de notre serveur sms
** La configuration du Daemon de gammu
** Envoi de sms
** Rception et stockage des messages
3- Traitement automatique des sms
** Modification de la base de donnes
** Cration des fichiers ncessaires l'excution automatique
** Modification du daemon de gammu
** Modification du fichier ''connexion.php''
** Modification du fichier ''bonheur.php''
4- Tirage au sort automatique des gagnants
** Cration du fichier ''gagnant.php''
** Excution automatique: tous les jours 18h 00mn 00s
5- Conclusion

Erreur courantes
- RunOnReceive ne fonctionne pas
- Messages en ligne de commande ne passe pas

Introduction

Depuis l'envoi du premier sms, le 03 Dcembre 1992, par Neil Papworth, la technologie des
messages 160 caractres a connue un fulgurant essor.
L'envoi d'un sms est devenu un fait ordinaire et courant tous les niveaux de l'chelle social.
Simple d'utilisation et pratique, il se revt tre un outil efficient pour une campagne grande
chelle.
Document libre Blog sonzahi.blogspot.com

Le tutoriel ci-dessous vise permettre toute personne l'appliquant de possder une base solide
dans la conception de serveur sms avec traitement du contenu des messages, ce avec la conception
d'une plate-forme sms simulant un jeux simple par sms.

Notre jeux durera juste une semaine et consistera envoyer par sms jeu*bonheur afin de
participer un jeu qui donne des millions.
Et disons que quotidiennement on tirera au sort un participant qui on enverra via notre plate-forme
un message pour qu'il rcupre son lot.
Et le vendredi, on tire au sort un participant qui remportera la grande cagnotte de 5.000.000 FCFA,
(faisons lui une fleur pour son week-end, dans tous les cas on y perd rien en fait!!!).

1- Installation

Afin de raliser notre application, des pr-requis s'imposent.


Tout d'abord prcisons que nous travaillerons sur des logiciels libres.
Donc vous n'aurez rien dbourser.
Voil qui nous rjouit, maintenant !

Ces derniers sont les suivants :

- Gammu : Pour grer le modem (l'envoi


de SMS, la gestion du rpertoire , la gestion des appels, la cration de sauvegardes des messages, et
rpertoire)
- Wammu : Interface graphique pour Gammu
- Apache : Notre serveur web
- PHP 5 : Notre langage de programmation
- MySQL : Notre systme de gestion de bases de donnes
- PhpMyAdmin : l'interface web pour la gestion graphique de notre base de donnes
- Gammu-smsd : Le Daemon de Gammu, il permet le stockage, la rception et l'envoi des SMS.

** Nos besoins matriels

Bref ! De quoi t-on besoin pour commencer ?


Ok ! Au niveau du matriel, pas grand-chose juste :
- un ordinateur avec une distribution GNU/Linux
(ici, afin que nous ayons le mme rendu, je prconise Ubuntu 14.04 LTS, sur lequel se fera ledit
tutoriel.
Bon ! Chacun est libre de choisir sa distribution ses risques et prils ! Beuf!)
- Un tlphone portable pouvant servir de modem ou une cl internet avec une carte SIM.
(Juste un coucou nos friands des tlphones Chine-toc , veuillez vous abstenir SVP! Sinon
essayez pour voir, c'est peut-tre votre jour de chance !)
- Un cble USB pour relier le modem ou tlphone l'ordinateur.
- Crditer votre carte SIM d'au moins 5 sms pour les testes.
Voil juste a pour le matriel.

** Amnageons notre environnement de travail

Ensuite nous dployons notre environnement de travail avec les instructions suivantes :
Document libre Blog sonzahi.blogspot.com

- On met jour nos paquets

serenite@Serenity:~$ sudo apt-get update

- On met jour notre distribution

serenite@Serenity:~$ sudo apt-get upgrade

- On dploie notre environnement web (apache, serveur mysql, php5 et phpmyadmin)

serenite@Serenity:~$ sudo apt-get install apache2 libapache2 mod-php5 php5 mysql-server


php5-mysql phpmyadmin

- On installe Gammu, Wammu, Wvdial, Gammu-smsd

serenite@Serenity:~$ sudo apt-get install gammu

serenite@Serenity:~$ sudo apt-get install wammu

serenite@Serenity:~$ sudo apt-get install wvdial

serenite@Serenity:~$ sudo apt-get install gammu-smsd

Ouf ! Enfin, fini les longues attentes, on peut commencer travailler !!!

Configurons notre modem

NB : j'utiliserais le terme modem pour dsigner votre tlphone portable ou votre cl.

Connectez votre modem votre ordinateur.

1- On lance l'assistant de configuration de wammu

serenite@Serenity:~$ sudo wammu-configure

- Alors, on obtient cette fentre

- cliquer sur Next >


Document libre Blog sonzahi.blogspot.com

- choisissez l'option "recherche automatique de tlphones" et cliquez sur "Next".

- choisissez l'option recherche de connexion et patientez pendant 10 15 minutes.

- Cette fentre s'ouvre avec la dernire ligne indiquant le nombre de tlphones dtects. Si au
moins un modem est dtect, cliquer sur Next sinon reprenez le processus de recherche (fentre
recherche automatique de tlphones) en choisissant d'autre option.

- Ici on choisi un modem, tout en mentionnant au brouillon les parties /dev/tty utilisant at... ,
puis on valide.
Document libre Blog sonzahi.blogspot.com

- Vrifions que notre modem a bien t dtect par gammu

Deux possibilits s'offrent nous :

* serenite@Serenity:~$ sudo gammu --identify


Priphrique : /dev/ttyUSB0
Fabricant : Huawei
Modle : unknown (EG162G)
Firmware : 11.001.10.00.000
IMEI : 353474023727472
SIM IMSI : 612030207358750

* serenite@Serenity:~$ sudo wvdialconf


Editing `/etc/wvdial.conf'.

Scanning your serial ports for a modem.

ttyS0<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyS0<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyS0<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
Modem Port Scan<*1>: S1 S2 S3 S4 S5 S6 S7 S8
Modem Port Scan<*1>: S9 S10 S11 S12 S13 S14 S15 S16
Modem Port Scan<*1>: S17 S18 S19 S20 S21 S22 S23 S24
Modem Port Scan<*1>: S25 S26 S27 S28 S29 S30 S31
ttyUSB0<*1>: ATQ0 V1 E1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB0<*1>: Modem Identifier: ATI -- Manufacturer: huawei
ttyUSB0<*1>: Speed 9600: AT -- OK
ttyUSB0<*1>: Max speed is 9600; that should be safe.
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyUSB1<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 9600 baud
ttyUSB1<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
ttyUSB2<*1>: ATQ0 V1 E1 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB2<*1>: Modem Identifier: ATI -- Manufacturer: huawei
ttyUSB2<*1>: Speed 9600: AT -- OK
ttyUSB2<*1>: Max speed is 9600; that should be safe.
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK

Found a modem on /dev/ttyUSB0.


Modem configuration written to /etc/wvdial.conf.
ttyUSB0<Info>: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
ttyUSB2<Info>: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
Document libre Blog sonzahi.blogspot.com

Nous constatons que notre modem est bien dtect.

2- Mise en place de notre serveur sms

La configuration du Daemon de gammu


Nous allons, maintenant configurer le Daemon de gammu (gammu-smsd)

serenite@Serenity:~$ sudo gedit /etc/gammu-smsdrc

Voici la configuration de notre fichier


il est compos de deux grandes parties
1- [gammu] : pour la configuration de la librairie de gammu (le modem)
2- [smsd] : partie des instructions raliser par le daemon

*********** debut du fichier gammu-smsdrc **********

# Configuration file for Gammu SMS Daemon

# Gammu library configuration, see gammurc(5)


[gammu]

# Please configure this!


//modifier en fonction des donnes renvoyes par gammu - identify ou wvdialconf
port = /dev/ttyUSB0
connection = at19200
# Debugging
#logformat = textall

# SMSD configuration, see gammu-smsdrc(5)


[smsd]

Service = SQL
Driver = native_mysql // Driver de la base de donnes MySql
logfile = /var/log/gammu.log // fichier journal
#pin = 0000 // code pin de la SIM

#Accs la base de donnes Mysql


User = root // identifiant administrateur pour phpmyadmin
Password = JdEElaor14789 // mot de passe pour phpmyadmin
PC = localhost // indique la station ou est install notre serveur
Database = jeu // la base de donnes

#Gestion des temps de connexion


MaxRetries = 3 // nombre d'essai
checksecurity = 0
PhoneID = Huawei // nom du modem
transmitformat = auto

# Increase for debugging information


debuglevel = 1
Document libre Blog sonzahi.blogspot.com

# Paths where messages are stored


inboxpath = /var/spool/gammu/inbox/
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/

************ fin gammu-smsdrc **********************

Pour plus d'info sur les possibilits pour la configuration de ce fichier, visitez la page dtaillant la
configuration du daemon de gammu cette adresse (c'est en anglais, mais assez comprhensible.):
SMSD Configuration File

Pour approfondir vos connaissances sur gammu, visitez le manuel de gammu, ici.

A ce niveau gammu plein accs notre modem.


On peut dj

- Lister les messages stocks, dans la bote de reception avec :


gammu --getallsms

- Lister les numros de notre rpertoire tlphonique avec :


gammu --getallmemory SM

Et bien d'autres encore Si vous en voulez plus, n'hsitezz pas de vous refrer au manuel de
gammu. Ou dans votre terminal, entrez '' man gammu ''.

** Envoi de sms

Notre systme est maintenant prt envoyer des sms. En ce qui concerne la rception de sms, on
n'est pas tout fait prt, car il nous faudra crer une base de donnes avec les schemas de gammu,
ce qu'on fera dans peu de temps.

Pour l'instant testons l'envoie de sms partir de notre terminal,


avec la commande suivante :

serenite@Serenity:~$ echo "bonsoir test d'envoi par cmd" | gammu --sendsms TEXT
+22507xxxxxx If you want break, press Ctrl+C...
Sending SMS 1/1....waiting for network answer..OK, message reference=66
Formidable !!! Message bien envoy.
Cette ligne Sending SMS 1/1....waiting for network answer..OK, message reference=66
Nous donne le nombre de message transmis et nous indique la rponse du rseaux notre requte,
qui est ici, OK .

** Rception et stockage des messages

Maintenant, que notre systme peut envoyer des sms, nous allons crer notre base de donnes afin
de stocker les messages que nous recevrons.
Pour cela, allons un peu en mode graphique. Cela ne veut en aucun cas dire que ce n'est pas possible
de le faire en ligne de commande. A bon entendeur salut !
Document libre Blog sonzahi.blogspot.com

Bien, ouvrons Firefox, et dans la barre d'adresse, entrons : localhost/phpmyadmin , ce qui nous
ouvre cette page.

Ensuite entrons notre mot de passe et validons, pour accder cette page.

Entrons le nom de notre base de donnes crer. Dans notre cas, entrons jeux , et cliquons sur
crer.
Document libre Blog sonzahi.blogspot.com

Cool ! Notre base de donnes est cre.


Maintenant importons les schemas de gammu pour la base de donnes.

Cliquez sur l'onglet importer , ensuite sur le boutons parcourir et importons le fichier
''mysql.sql.gz'' dans /usr/share/doc/gammu/examples/sql/, puis cliquez sur excuter.

Notre base de donnes jeux est enfin prte. Testons, maintenant la sauvegarde de nos
messages reus dans cette dernire.
C'est simple, envoyez juste un message au numro de la puce se trouvant dans votre modem.
Ensuite actualiser la page de PhpMyAdmin (si vous ne l'aviez pas ferme), sinon ouvrez la
nouveau. Et vrifier que votre message se trouve bien dans la table ''inbox'' de votre base de
donnes ''jeux''.
Si votre message ne s'y trouve pas, prire de vrifier nouveau la configuration de votre fichier ''
gammu-smsdrc '', principalement dans la partie '' Accs la base de donnes MySql ''.

Ok ! Ici, tous marche bien.

En somme notre systme est capable d'envoyer, de recevoir et de stocker dans une base de
donnes nos sms.
Notre serveur sms est fin prt et oprationnel.

Dans la partie suivante nous verrons comment automatiser un traitement du contenu des messages
reus, afin de gnrer des messages prdfinis.

3- Traitement automatique des sms

C'est ce niveau que comment les choses amusantes et srieuses aussi. C'est l que
notre jeux ou notre systme prend toute son importance.

Dans cette partie nous automatiserons l'excution d'un script, nous crerons la ou les
tables adquates dans notre base de donnes et configurerons notre script selon notre
convenance, afin de raliser notre objectif.
Document libre Blog sonzahi.blogspot.com

** Modification de la base de donnes

Pour notre jeu, on aura juste besoin d'une seule table qu'on nommera '' bonheur '' avec
les champ suivants :
id : identifiant du sms
numero : Numro du participant
jour : la date de rception du sms

Ouvrez votre table dans PhpMyAdmin et cliquez sur l'onglet ''SQL'', puis collez-y le
code sql suivant et excutez.

Code sql :

CREATE TABLE bonheur


(
id bigint(20) NOT NULL AUTO_INCREMENT,
numero varchar(15) NOT NULL,
jour varchar(10) NOT NULL,
PRIMARY KEY (id)
)

** Cration des fichiers ncessaires l'excution automatique

- rendez vous dans votre localhost

serenite@Serenity:~$ cd /var/www/html

Dans votre localhost (/var/www/html/) crer les lments suivants :

- le dossier jeu

$ mkdir jeu
Document libre Blog sonzahi.blogspot.com

- rendez vous dans ce dossier

$ cd jeu

- crez

$ nano connexion.php

entrez les 2 lignes suivantes


1- <?php
2- ?>
Enregistrez (ctrl+x)

$ nano bonheur.php
entrez les 3 lignes suivantes
1- # !/usr/bin/php
2- <?php
3- ?>
Enregistrez (ctrl+x)

$ nano daemon.sh
Entrez les 06 lignes suivantes
1- #!/bin/sh
2- # Configure this (use absolute path)
3- PHP=/usr/bin/php
4- DAEMON=/var/www/html/jeu/daemon.php
5- # Execute
6- $PHP $DAEMON
Enregistrez (ctrl+x)

Exemple:
Document libre Blog sonzahi.blogspot.com

** Modification du daemon de gammu

- ouvrez le fichier gammu-smsdrc

serenite@Serenity:~$ sudo /etc/gammu-smsdrc


- Ajoutez-y les lignes suivantes dans la partie [smsd]
1- # Action excuter ds rception d'un sms
2- RunOnReceive=/var/www/html/jeu/daemon.sh

** Modification du fichier ''connexion.php''

Ouvrez le fichier ''connexion.php'' et collez-y les lignes suivantes :


N'oubliez pas de modifier ''root'' par votre identifiant et '' JdEElaor14789'' par votre mot
de passe d'accs phpmyadmin.

***** dbut connexion.php *******


/*
* Connexion la Base de donnes
*/
global $db;
$db = null;
try {
$db = new PDO('mysql:host=localhost;dbname=jeu;charset=utf8', 'root',
'JdEElaor14789');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (Exception $e) {
error_log($e->getMessage());
}
********** fin fichier ***********

** Modification du fichier ''bonheur.php''

Ce fichier est extrmement important, dans la russite de votre projet.


Je vous demanderais donc de lui accorder une attention toute particulire.
On l'expliquera, ne vous en faite pas !
Mais je vous demanderez de ne pas faire de copier-coller ce niveau, il est possible
que vous ayez des bugs.
Ainsi je vous conseille de le construire mticuleusement, tape par tape.

********** dbut bonheur.php ***********

#!/usr/bin/php
<?php
/*
|---------------------------------------------------------------
| Sms Application (SA) --- Serenite 489
Document libre Blog sonzahi.blogspot.com

|---------------------------------------------------------------
*/
/* ------- partie 1 ------- */
require('db_connect.php');
$nb=null;
$requete="SELECT ID, TextDecoded, SenderNumber from inbox where readed='false';";
$donne=$db->prepare($requete);
$donne->execute();
$nb=$donne->rowCount();
/*---------fin partie 1 --------- */

/* -------- partie 2 ------------ */


if ($nb!=0) /* marqueur 1 */
{
/* marqueur 2 */
while ($value=$donne->fetch(PDO::FETCH_OBJ))
{
/* ------- marqueur 3 ------ */
$SenderNumber=$value->SenderNumber;
$TextDecoded_1=trim($value->TextDecoded);
$ID=$value->ID;
list($TextDecoded, $Var_1)=explode("*",$TextDecoded_1);
$keyword=strtolower($Var_1);
$TextDecoded=strtolower($TextDecoded);
/* ------- fin marqueur 3 ------ */

/* ------- marqueur 4 ------ */


if ($TextDecoded=="jeu"){ //Verification de syntaxe "jeu"
if ($keyword=="bonheur"){ //Verification de syntaxe "bonheur"
$date = gmdate("Y-m-d ) ;
$text = utf8_decode("LSA | Jeu Bonheur : Votre inscription a bien t prise en compte.
Augmentez vos chances en jouant encore plus.");
$sql="INSERT INTO bonheur (numero, jour) values('$SenderNumber', $date)";
$inserer=$db->prepare($sql);
$inserer->execute();
shell_exec ('echo "'.$text.'" | gammu --sendsms TEXT '.$SenderNumber);
} else{ // si different de bonheur
$text = utf8_decode("Votre message ne peut pas tre trait par la plateforme Jeu du
bonheur, car il ne respecte pas la syntaxe prdfinie. Envoyez plutt jeu*bonheur ");
shell_exec ('echo "'.$text.'" | gammu --sendsms TEXT '.$SenderNumber);
}
} else{ // si different de jeu
$text = utf8_decode("Votre message ne peut pas tre trait par la plateforme Jeu du bonheur,
car il ne respecte pas la syntaxe prdfinie. Envoyez plutt jeu*bonheur ");
shell_exec ('echo "'.$text.'" | gammu --sendsms TEXT '.$SenderNumber);
}
/* ------- fin marqueur 4 ------ */

/* ------- marqueur 5 ------ */


Document libre Blog sonzahi.blogspot.com

$maj="UPDATE inbox SET (readed=:read) where ID=:id ";


$result=$db->prepare($maj);
$result->execute(":id"=>$ID, ":read"=>"true");
/* ------- fin marqueur 5 ------ */

} /* fin marqueur 2 */

} /* ------- fin marqueur 1 ------ */

/* ------- fin partie 2 ------ */


?>

*************** fin fichier ***********

Partie 1 : Dans cette partie, on va rechercher dans chaque ligne de la table ''inbox'' de notre base
de donnes les lignes o readed='false'. C'est dire on rcupre l'ensemble des messages n'ayant pas
encore t lus. Et la variable $nb, pour en dterminer le nombre.

Partie 2: Ici, nous allons traiter les donnes rus de la base de donnes.

Marqueur 1 : On vrifie si la requte envoye a base de donnes nous ramne bien des lignes
d'informations avant de penser les traiter.
Logique non ?

Marqueur 2: Convaincu, d'avoir reu au moins une ligne d'informations de la base de


donnes. On peut maintenant les traiter. Alors on fait une boucle avec ''while'' pour
traiter chacune des lignes reues.

Marqueur 3: Dans les lignes 1 3, on range dans des variables les donnes d'une ligne
donnes. Dans la 4me ligne on dcompose le message envoy et qu'on a stocker dans la
variable ''$TextDecoded'', en fonction du dlimiteur que nous avons choisi. Dans notre
cas le dlimiteur est ''*''. Ensuite, on stocke dans des variables diffrentes les lments de
part et d'autre du dlimiteur.
Dans notre cas, nous devons avoir 2 variables. '$TextDecoded' qui devra contenir 'jeu', et
'Var_1' contiendra 'bonheur'.

Marqueur 4 : Ici, commence le vritable traitement des messages. Tout d'abord, on


vrifie que $TextDecoded contient bien le mot 'jeu', sinon on ramne un message
d'erreur au numero ayant envoy le message.
Si $TextDecoded contient bien le mot 'jeu', alors continu le traitement.
Ensuite, on vrifie que la deuxime variable '$Var_1' contient le mot 'bonheur', sinon on
ramne un message d'erreur au numero ayant envoy le message.
Si $Var_1 contient bien le mot 'bonheur', alors on commence le traitement.
On enregistre d'abord le numro de l'envoyeur dans la table 'bonheur', puis on lui envoie
un message de confirmation de de rception de son inscription.
Document libre Blog sonzahi.blogspot.com

Marqueur 5 : Dans cette partie, nous allons modifier le champs 'readed' de la ligne que
nous venons de traiter en lui affectant la valeur 'true'. De sorte viter qu'elle soit prise
en compte nouveau lors du prochain scanne de la base de donnes.

Maintenant notre systme est prt 90 %. Il peut recevoir des sms, les traiter et
rpondre l'envoyeur en fonction du contenu de son message.

Pour cela il suffit juste pour nous de connecter notre modem et de lancer le daemon de
gammu
($ sudo /etc/init.d/gammu-smsd start).
Et nous sommes oprationnel.

4- Tirage au sort automatique des gagnants

Dans cette partie, nous allons crer un script qui se lancera tous les jours 18h 00mn
00s pour le tirage au sort du gagnant du jour.

** Cration du fichier ''gagnant.php''

Toujours dans notre dossier 'jeu', on cre le fichier 'gagnant.php'

$ nano gagnant.php

-------- contenu du fichier ------------

#!/usr/bin/php
<?php
require('db_connect.php');
$date = gmdate("Y-m-d'') ;
$donne=null;
$sql="SELECT numero from bonheur where jour=".$date.";";
$donne=$db->prepare($sql);
$donne->execute();
$nb=$donne->rowCount();

$i=0;
while ($value=$donne->fetch(PDO::FETCH_OBJ))
{
$result[$i]=$value->numero;
$i++;
}

$winner=rand(0, $nb); // on gnre un numero au hasard, qui sera celui du gagnant


$num_winner=$result[$winner];

$jr=date('l') ;
Document libre Blog sonzahi.blogspot.com

if ($jr=='friday'){
$text = utf8_decode("SA | Jeu Bonheur : FELICITATION!!! Vous venez de
remportez 5.000.000 FCFA. Passez Bonheur-du-code rcuprer votre Lot.");
} else {
$text = utf8_decode("SA | Jeu Bonheur : FELICITATION!!! Vous venez de
remportez 50.000 FCFA. Passez Bonheur-du-code rcuprer votre Lot.");
}
shell_exec ('echo "'.$text.'" | gammu --sendsms TEXT
'.$num_winner);
?>
Enregistrez (ctrl+x)
-------------------------- fin fichier ---------------------------------

** Programmation de l'excution automatique tous les jours 18h 00mn 00s

Tout d'abord, on rend notre script excutable :


$ chmod +x /var/www/html/jeu/gagnant.php

Ensuite, on entre la commande suivante :


$ crontab -e

Ce qui nous donne ceci :


no crontab for alex - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/ed
2. /bin/nano <---- easiest
3. /usr/bin/vim.tiny
Choose 1-3 [2]:
A ce niveau on choisi le numero, correspondant notre diteur prfer. Pour ma part,
je vous conseil, 'nano', donc le numro 2.
Puis utilisez la flche de direction vers le bas pour vous rendre la fin du fichier. Au
niveau de cette ligne :
# m h dom mon dow command

En dessous entrez la ligne suivante :


0 18 * * * /var/www/html/jeu/gagnant.php

Conclusion

Et voil ! On est prt 100 %.


Notre systme, reoit, stocke, traite, sauvegarde, repond tous les sms qui lui sont
transmis. Et la crise sur le gateau, tous les jours 18h 00mn 00s il tire au sort un
gagnant et lui envoi un message. Tout a sans l'intervention de quiconque.
Vous savez dj comment lancer votre systme.
Alors Bonne pratique.
Document libre Blog sonzahi.blogspot.com

------------------------------------------------------------------------

Erreurs courantes

** RunOnReceive ne fonctionne pas alors :


1- Dans le daemon de gammu (/etc/gammu-smsdrc), supprimer la ligne du
RunOnReceive
2- Dans votre script ''daemon.sh'' (/var/www/html/jeu/daemon.sh), ajoutez ne boucle
infinie qui encadrera la partie #Execute.

Le code :
while :
do
# Execute
$PHP $DAEMON
sleep 5
done
3- Maintenant pour lancer votre systme, aprs avoir connect votre modem, il vous
faudra : lancer le daemon de gammu et votre script daemon.sh.
- $ sudo /etc/init.d/gammu-smd start

- $ cd /var/www/html/jeu
- /var/www/html/jeu/ $ sudo bash daemon.sh

Et voil, C'est pas trop jolie joie, mais a fait l'affaire !!!

** Messages en ligne de commande ne passe pas

si vous n'arrivez pas envoyer des messages en ligne de commande, alors excutez les
commandes suivantes.

Si le message d'erreur est :


Erreur l'ouverture du priphrique: il n'existe pas.

Essayez de repositionner votre carte SIM et reconnectez votre modem.


Si cela ne marche toujours pas alors excutez les commandes suivantes :

1- $ sudo groups | grep -q dialout || sudo adduser $USER dialout

2- $ sudo apt-get autoclean

3- $ sudo apt-get clean


4- $ sudo reeboot
5- et relancer les services
Document libre Blog sonzahi.blogspot.com

Voil, nous sommes la fin de notre tutoriel. Et j'espre sincrement vous avoir apport
ne serait-ce qu'un petit plus!
Ce document peut contenir des bugs ou imperfections, alors je me tiens votre
disposition pour tout apport, afin de l'amliorer.

Das könnte Ihnen auch gefallen