Rapport Projet Service Push Sms [PDF]

  • Author / Uploaded
  • DSTEL
  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Projet de services réseaux Mise en place de services de bus et de notification des heures de prière basés sur les SMS.

Réalisé par : - Aminata WILLANE - Salomon DAHOUN - Régis Donald DAMOUÉ

- Wilfried OUÉDRAOGO Enseignant : Dr. James T. KOUAWA

Mise en place de services de bus et de notification des heures de prière basés sur les SMS Table des matières

Liste des abréviations ............................................................................................................... 4 Liste des figures ........................................................................................................................ 5 Liste des tableaux ..................................................................................................................... 6 Introduction .............................................................................................................................. 7 1.

2.

Généralités ........................................................................................................................ 8 1.1.

Modèle client/serveur ................................................................................................ 8

1.2.

Système Linux (Philosophie de l’open source) ........................................................ 9

1.3.

Réseau GSM (Fonctionnement global du sms) ..................................................... 10

1.4.

Service PUSH et service PULL ............................................................................... 10

Analyse des besoins du projet ....................................................................................... 12 2.1.

2.1.1.

Langage de programmation ............................................................................ 12

2.1.2.

Modem GSM ..................................................................................................... 13

2.1.3.

Carte SIM .......................................................................................................... 13

2.1.4.

Passerelle SMS .................................................................................................. 13

2.1.5.

Base de données ................................................................................................ 14

2.1.6.

Serveur Web ..................................................................................................... 18

2.2. 3.

Identification des entités ......................................................................................... 12

Proposition d’une architecture physique .............................................................. 18

Implémentation ............................................................................................................... 21 3.1.

Installation de LAMP .............................................................................................. 21

3.2.

Création d’un utilisateur MySQL .......................................................................... 22

3.3.

Installation de phpMyAdmin ................................................................................. 23

3.4.

Création de la base de données nécessaire au service de bus .............................. 24

3.5.

Création de la base de données nécessaire au service de prière .......................... 25

3.6.

Installation de Gammu ............................................................................................ 26

2

Mise en place de services de bus et de notification des heures de prière basés sur les SMS 3.7.

Configuration de Gammu ....................................................................................... 26

3.8.

Installation de Gammu-smsd .................................................................................. 29

3.9.

Configuration de Gammu-smsd ............................................................................. 29

3.10.

Mise en place du script d’envoi des SMS ........................................................... 32

3.11.

Mise en place du script de souscription aux services ........................................ 33

3.12.

Automatisation des envois de SMS ..................................................................... 35

Conclusion ............................................................................................................................... 36 Webographie ........................................................................................................................... 37 Annexes ................................................................................................................................... 39 Fichier de configuration gammurc ................................................................................... 39 Fichier de configuration gammu-smsdrc ......................................................................... 39 Script d’envoi de SMS pour le service de bus .................................................................. 39 Script d’envoi de SMS pour le service de prière ............................................................. 41 Script Shell de réception de SMS ...................................................................................... 43 Script de réception de SMS ............................................................................................... 43

3

Mise en place de services de bus et de notification des heures de prière basés sur les SMS Liste des abréviations

AT&T

American Telephone & Telegraph

CGI

Common Gateway Interface

GNU

GNU is Not UNIX

HTTP

HyperText Transfer Protocol

HTTP

HyperText Transfer Protocol

LAMP

Linux Apache MySQL PHP

MCC

Mobile Country Code

MCD

Modèle Conceptuel des Données

MMS

Multimedia Message Service

MNC

Mobile Network Code

MSIN

Mobile Subscriber Identification Number

PHP

Hypertext Preprocessor

SAPI

Server Application Programming Interface

SIM

Subscriber Identity Module

SMS

Short Message Service

SMSC

SMS Center

SQL

Structured Query Language

UML

Unified Modeling Language

URL

Uniform Resource Locator

4

Mise en place de services de bus et de notification des heures de prière basés sur les SMS Liste des figures Figure 1. Exemple d’architecture client/serveur. ....................................................................... 8 Figure 2. Logo de GNU/Linux. .................................................................................................. 9 Figure 3. Fonctionnement PHP. ............................................................................................... 13 Figure 4. Modèle Conceptuel des Données de la base de données utilisateurs-service-sms. .. 15 Figure 5. Modèle Conceptuel des Données de la base de données bus-service-sms. .............. 16 Figure 6. Modèle Conceptuel des Données de la base de données heures-de-prieres-servicesms. ........................................................................................................................................... 18 Figure 7. Diagramme de cas d’utilisation (UML) du système. ................................................ 19 Figure 8. Architecture physique des services déployés. ........................................................... 20 Figure 9. Connexion en tant que root. ...................................................................................... 21 Figure 10. Installation de LAMP .............................................................................................. 22 Figure 11. Connexion à MySQL en tant que root. ................................................................... 23 Figure 12. Création d’un utilisateur sous MySQL. .................................................................. 23 Figure 13. Installation de phpMyAdmin : saisie du mot de passe. .......................................... 24 Figure 14. Page de connexion de phpMyAdmin. ..................................................................... 24 Figure 15. Création de la base de données bus-service-sms. ................................................... 25 Figure 16. Aperçu des tables de bus-service-sms. ................................................................... 25 Figure 17. Création de la base de données heures-de-priere-service-sms. ............................... 25 Figure 18. Aperçu des tables de heures-de-priere-service-sms. ............................................... 25 Figure 19. Installation de Gammu. ........................................................................................... 26 Figure 20. Génération automatique de la configuration. .......................................................... 27 Figure 21. Contenu du fichier /etc/gammurc. .......................................................................... 27 Figure 22. Informations du modem GSM. ............................................................................... 28 Figure 23. Envoi d’un SMS...................................................................................................... 28 Figure 24. Réception sur téléphone portable du SMS envoyé via Gammu. ............................ 28 Figure 25. Installation de Gammu-smsd. ................................................................................. 29 Figure 26. Configuration de Gammu-smsd. ............................................................................. 30 Figure 27. Importation du script mysql.sql.gz. ........................................................................ 31 Figure 28. Tables générées par le script mysql.sql.gz. ............................................................. 31 Figure 29. Redémarrage de gammu-smsd. ............................................................................... 31 Figure 30. Envoi d’un SMS à Gammu. .................................................................................... 32 Figure 31. Réception du SMS envoyé depuis le téléphone portable. ....................................... 32

5

Mise en place de services de bus et de notification des heures de prière basés sur les SMS Figure 32. Extrait du script d’envoi des SMS pour le service de bus. ..................................... 33 Figure 33. Extrait du script de réception des SMS de souscription. ........................................ 33 Figure 34. Ligne à rajouter au fichier gammu-smsdrc. ............................................................ 34 Figure 35. Contenu du script Shell reception.sh. ..................................................................... 34 Figure 36. Aperçu du fichier de configuration de Cron. .......................................................... 35 Liste des tableaux Tableau 1. Présentation des entités........................................................................................... 12 Tableau 2. Dictionnaire des données de la base de données utilisateurs-service-sms. ............ 14 Tableau 3. Dictionnaire des données de la base de données bus-service-sms. ........................ 15 Tableau 4. Dictionnaire des données de la base de données heures-de-prieres-service-sms. .. 16

6

Mise en place de services de bus et de notification des heures de prière basés sur les SMS Introduction

Créativité, rigueur, communication dans le travail d’équipe, curiosité, prise de risques, telles sont les qualités qui définissent les futurs ingénieurs télécoms que nous sommes. Notre vocation première est d’analyser les besoins des utilisateurs afin de déployer des services innovants. Dans le cadre de notre projet de déploiement de services PUSH, nous avons choisi de développer un service de notification d’heure de passage de bus et un service de notification sur les heures de prière. Le service de bus, grâce à Gammu permet à ses utilisateurs de recevoir des messages PUSH périodiques leur indiquant : -

Le numéro du bus à proximité à partir de leur arrêt de bus habituel

-

Le temps avant son arrivé ;

-

Le nombre de personnes dans le bus ;

-

Les éventuelles pannes du bus.

Quant au service de prière, ses utilisateurs seront périodiquement notifiés des heures de prière de la religion islamique durant toute la journée. Les aspects techniques seront traités dans la suite du présent document.

7

Mise en place de services de bus et de notification des heures de prière basés sur les SMS 1. Généralités

1.1. Modèle client/serveur

L'environnement client/serveur désigne un mode de communication à travers un réseau entre plusieurs programmes, dans lequel l’un qui est qualifié de client envoi des requêtes ce qui correspond à une demande de service et l’autre ou les autres qui sont qualifiés de serveurs attendent les requêtes des clients et répondent à la demande. Le client désigne un ordinateur ou une machine virtuelle sur lequel est exécuté un logiciel client, et le serveur, un ordinateur ou une machine virtuelle sur lequel est exécuté le logiciel serveur. Les serveurs sont des ordinateurs généralement dotés de capacités supérieures à celles des ordinateurs personnels en ce qui concerne la puissance de calcul, les entrées-sorties et les connexions réseaux. Les clients sont souvent des ordinateurs personnels ou des appareils individuels (téléphone, tablette). Un serveur peut répondre aux requêtes d'un grand nombre de clients. Il existe une grande variété de logiciels serveurs et de logiciels clients en fonction des besoins à servir : un serveur Web publie des pages Web demandées par des navigateurs Web ; un serveur de messagerie électronique envoie du courriel à des clients de messagerie ; un serveur de fichiers permet de partager des fichiers sur un réseau ; un serveur de base de données permet de récupérer des données stockées dans une base de données, etc.

Figure 1. Exemple d’architecture client/serveur.

8

Mise en place de services de bus et de notification des heures de prière basés sur les SMS 1.2. Système Linux (Philosophie de l’open source)

Linux est un système d'exploitation qui est comme Windows ou MacOs X. Il permet de travailler comme on le ferait sous Windows. Mais il fonctionne différemment. Certains voient toujours Linux comme un système plein de commandes qui sont compliquées. Cela n'est plus vrai. Linux possède désormais un système graphique agréable, confortable et simple à utiliser. Nous avons l'habitude de dire que Linux est un système d'exploitation, en réalité, Linux, c'est uniquement le noyau (cœur) du système d'exploitation GNU/Linux. GNU est un projet qui a apporté des tas d'utilitaires au noyau Linux, tel que le fameux compilateur gcc, et des milliers d'utilitaires comme tar, tail, man, bash, etc. Ces utilitaires GNU, associés au noyau Linux, constituent le système d'exploitation GNU/Linux. Linux est donc un noyau, GNU est un ensemble de programmes utilitaires et GNU/Linux est le système d'exploitation. Le succès de Linux s’explique par ses qualités techniques et l’essor d’un courant de pensée issu des mouvements qui revendiquent la liberté individuelle en réaction aux contraintes dictées par les logiciels propriétaires. Le concept de l’open source a vu le jour comme bien d’autres concepts avec l’avènement de Linux. Il tire son existence dans le besoin de préserver la liberté des utilisateurs sur le net. Un logiciel Open Source est un programme informatique dont le code source est distribué sous une licence permettant à quiconque de lire, modifier ou redistribuer ce logiciel. Presque tout le monde se tourne vers les programmes open source du fait qu’ils répondent d’une meilleure sécurité, d’une meilleure qualité, de l'accès au support et la possibilité de personnaliser les logiciels.

Figure 2. Logo de GNU/Linux.

9

Mise en place de services de bus et de notification des heures de prière basés sur les SMS 1.3. Réseau GSM (Fonctionnement global du sms)

Global System for Mobile Communications est une norme numérique de seconde génération pour la téléphonie mobile. La norme GSM autorise un débit maximal de 9,6 kbps, ce qui permet de transmettre la voix ainsi que des données numériques de faible volume, par exemple des messages textes SMS (Short Message Service) ou des messages multimédias MMS (Multimedia Message Service). Le service de messages courts offert par le réseau GSM permet à un utilisateur de composer un message textuel d'au plus 160 caractères (codés à l'aide d'ASCII 7 bits sur 140 octets) à partir de son terminal mobile et de l'envoyer à un destinataire possédant également un téléphone radio-mobile GSM. Les messages courts sont plus couramment désignés par textos ou SMS (par abus de langage). Ces messages émis et reçus sont véhiculés par le réseau de signalisation sémaphore n°7 (SS7). Ils sont soit transmis directement au terminal destinataire du message si celui-ci est allumé ou soit stockés dans le serveur de message courts SMSC (SMS Center) par lequel ils transitent. Les messages courts ne circulent pas dans les mêmes canaux logiques que la voix ou les données si bien qu'il est possible pour un utilisateur en communication téléphonique (avec un autre correspondant) de recevoir des messages courts simultanément. Le service SMS nécessite la mise en place d'un ou plusieurs serveurs spécifiques dans le réseau. Le serveur de messages courts (SMSC) assure le stockage des SMS (dans des bases de données), la distribution des SMS aux terminaux mobiles destinataires (quand ceux-ci se sont manifestés dans le réseau GSM auquel ils appartiennent) et le traitement des dates de validité des SMS.

1.4. Service PUSH et service PULL

PUSH et PULL sont des termes de stratégie de marketing pour attirer des consommateurs ou clients. Leur objectif commun est d’attirer de la clientèle mais la technique utilisée est différente. 

PUSH consiste à pousser un produit vers un consommateur sans que le consommateur n’en ait exprimé un besoin quelconque. Un message publicitaire est envoyé de façon proactive au consommateur par des méthodes qui sont souvent directes et concrètes. Par exemple nous pouvons avoir comme exemple un service PUSH ciblé qui enverra

10

Mise en place de services de bus et de notification des heures de prière basés sur les SMS automatiquement des messages à des consommateurs pour leur donner la météo, ou pour ceux désirant connaitre l’actualité sur le coronavirus dans leur pays.



PULL consiste à tirer le client vers le produit. Cette stratégie repose sur la communication publicitaire via les médias de masse (Radio, Télévision, site internet) et sur les campagnes de promotions. Sur ces actions publicitaires, cette stratégie ravive un besoin chez le consommateur qui viendra de son plein gré acheter le produit. Comme exemple nous pouvons prendre le cas de L’ESMT, pour faire la promotion de la rentrée prochaine de son cycle ingénieur de conception décide de mettre des panneaux publicitaires dans la ville de Dakar et aussi d’en faire la publicité à la radio ainsi espérant attirer des personnes désireuses de s’inscrire.

11

Mise en place de services de bus et de notification des heures de prière basés sur les SMS 2. Analyse des besoins du projet

2.1. Identification des entités

Tableau 1. Présentation des entités Pour programmer un code qui, pour tout PHP ou C ou Python

utilisateur abonné à un service va permettre d’envoyer régulièrement périodiquement des SMS via Gammu/Kannel/Gnokii Passerelle SMS pour récupérer le texte

Gammu/Kannel/Gnokii/SMStools/Gsm-utils envoyé par le code et envoyer au numéro de téléphone du destinataire Modem GSM

MySQL/Prostgresql/MongoDB

Clé USB avec carte SIM de connexion internet SGBD pour gérer la base de données des services à implémenter

2.1.1. Langage de programmation

Pour la mise en œuvre du projet nous avons opté pour le langage PHP. PHP est un langage de script généralement utilisé pour le développement Web pour créer du contenu de pages web dynamiques. Le code PHP est traité sur un serveur web par un interpréteur PHP mis en œuvre sous la forme d'un module, d'un démon ou d'un exécutable CGI (Common Gateway Interface). Le résultat du code PHP interprété et exécuté, peut être de n'importe quel type de données. PHP a été largement porté et peut être déployé gratuitement sur la plupart des serveurs web sur presque tous les systèmes d'exploitation et plates-formes. PHP dispose d'une interface de module directe appelée SAPI (Server Application Programming Interface), qui est prise en charge par de nombreux serveurs web, dont Apache HTTP.

12

Mise en place de services de bus et de notification des heures de prière basés sur les SMS

Figure 3. Fonctionnement PHP.

2.1.2. Modem GSM

Un modem GSM est un périphérique matériel qui utilise la technologie de téléphonie mobile GSM pour fournir une liaison de données à un réseau GSM. Certaine clé de connexion internet en vente sur le marché par les équipementiers ou operateurs téléphonique ont la fonction du modem GSM. C’est le cas du modem GSM utilisé dans ce projet qui est fabriqué par l’équipementier Huawei et vendu par Orange Sénégal (Modèle : Huawei E3531s-2). 2.1.3. Carte SIM

Une carte SIM (Subscriber Identity Module) est une puce contenant un microcontrôleur et de la mémoire, utilisée en téléphonie mobile pour stocker les informations spécifiques de l'abonné d'un réseau mobile tel que le réseaux GSM. Elle permet d’identifier de manière unique sur le réseau l’abonné grâce à un numéro IMSI, constitué du code pays (MCC), de l'identifiant de l'opérateur (MNC), et de l'identifiant de l'abonné (MSIN).

2.1.4. Passerelle SMS

13

Mise en place de services de bus et de notification des heures de prière basés sur les SMS La passerelle SMS est un transmetteur d’information entre un ordinateur et la fonctionnalité SMS du modem GSM. Les informations passent par la passerelle SMS qui communique avec le modem GSM pour livrer les SMS aux différents destinataires via l’opérateur. Dans ce projet nous utiliserons Gammu : Gammu est le nom de l'utilitaire en ligne de commande mais aussi le nom du projet bifurqué de Gnokii, qu’on utilisera pour avoir accès aux fonctions GSM de notre modem (Huawei E3531s2). Il est écrit en C et construit sur libGammu. Son utilitaire de ligne de commande donne accès à de nombreuses fonctionnalités téléphoniques. Parmi toutes ses fonctionnalités nous nous focaliserons sur la récupération, la sauvegarde et l’envoi de SMS 2.1.5. Base de données

Une base de données est une entité dans laquelle on stocke des données de façon structurée et avec le moins de redondance possible. Nous utiliserons dans ce projet une base de données de relationnel réalisé avec le modèle MERISE. Elle sera utilisée pour stocker les informations des utilisateurs de nos services, ainsi que d’autres paramètres importants pour Gammu. Le Système de Gestion de Base de Données Relationnel pour lequel nous avons opté est MySQL. 2.1.5.1. Modélisation de la base de données du site Web de souscription aux services Cette base de données se nomme utilisateurs-service-sms. 

Dictionnaire de données

Tableau 2. Dictionnaire des données de la base de données utilisateurs-service-sms. Nom

Signification

Types

Longueur Règles

idClient

Identifiant du client

INT

5

nomCli

Nom du client

TEXT

45

prenomCli

Prénom du client

TEXT

45

numeroTel

Numéro de téléphone TEXT

45

99999

78888888

du client password

Mot de passe du client

TEXT

255

14

Mise en place de services de bus et de notification des heures de prière basés sur les SMS idService

Identifiant du services

INT

5

nomService

Nom du services

TEXT

45

dateAbon

Date d’abonnement du DATE

99999

AAAA-MM-JJ

client 

Modèle Conceptuel des Données (MCD)

Figure 4. Modèle Conceptuel des Données de la base de données utilisateurs-service-sms. 2.1.5.2. Modélisation de la base de données du service de bus Cette base de données se nomme bus-service-sms. 

Dictionnaire de données Tableau 3. Dictionnaire des données de la base de données bus-service-sms.

Nom

Signification

id

Identifiant

Types de

la INT

Longueur Règles 11

personne nom

Nom de la personne

VARCHAR

50

prenom

Prénom de la personne VARCHAR

100

numeroTel

Numéro de le personne VARCHAR

16

numeroBus

Numéro de bus de la VARCHAR

11

788584545

personne pointsEmprunt

Le point de prise du VARCHAR

50

bus heuresEmprunt

Heure de prise du bus

VARCHAR

points

Les points de passage VARCHAR

50

6:20

120

d’un trajet de bus numero

Numéro de bus

INT

11

15

Mise en place de services de bus et de notification des heures de prière basés sur les SMS nombrePlacesTotal

Nombre

de

places INT

11

totales dans le bus nombrePlacesOccupees Nombre

de

places INT

11

occupées dans le bus heureDepart

Heure de départ du bus VARCHAR

5

dureeActivite

Durée activité du bus

VARCHAR

5

idTrajet

Identifiant du trajet

INT

11

pointActuel

Point actuel du bus

VARCHAR

50



Modèle Conceptuel des Données (MCD)

Figure 5. Modèle Conceptuel des Données de la base de données bus-service-sms.

2.1.5.3. Modélisation de la base de données du service de prière 

Dictionnaire de données

Tableau 4. Dictionnaire des données de la base de données heures-de-prieres-service-sms. Nom

Signification

Types

Longueur

Règles

16

Mise en place de services de bus et de notification des heures de prière basés sur les SMS Identification du int

id

11

trajet Sobh

Heure de prière

varchar

5

Duhr

Heure de prière varchar

5

Duhr Heure de prière varchar

Asr

5

Asr Maghrib

Heure de prière varchar

5

Maghrib Heure de prière varchar

Isha

5

Isha Identification de Varchar

id

11

la personne Nom

nom

de

la varchar

50

personne prenom

Prénom de la varchar

100

personne numeroTel

Numéro

de varchar

16

788584545

téléphone de la personne localisation

Localisation de varchar

50

la personne fuseauHoraire

Fuseau horaire varchar

2

de la personne



Modèle Conceptuel des Données (MCD)

17

Mise en place de services de bus et de notification des heures de prière basés sur les SMS

Figure 6. Modèle Conceptuel des Données de la base de données heures-de-prieres-servicesms.

2.1.6. Serveur Web

Dans le cadre de ce projet, nous utiliserons le serveur Web Apache, afin de gérer notre interface Web de souscription aux services. Le serveur HTTP Apache ou Apache, est un logiciel de serveur web multiplateforme libre et gratuit, qui est développé et maintenu par une communauté ouverte de développeurs sous la supervision de Apache Software Foundation. Il fonctionne aussi bien sur les distributions Linux que sur Windows, OpenVMS, NetWare, OS/2 et une grande variété de systèmes de type Unix.

2.2. Proposition d’une architecture physique

Un utilisateur voulant s’abonner à travers le Web, utilise son appareil, et se connecte à un point d’accès internet. Il entre l’URL de la page dans son navigateur. Le serveur Apache reçoit la requête puis retransmet la page interprétée par PHP. Lors de la soumission des données de l’inscription, Apache les reçoit et les transmet au script PHP qui les traite et insère les informations dans la base de données correspondante. À travers la page Web, le client pourra effectuer les actions telles que s’abonner ou se désabonner à un service particulier. Après s’être abonné ou désabonné le client reçoit une notification de son action par SMS.

18

Mise en place de services de bus et de notification des heures de prière basés sur les SMS L’envoi du message se fait par un script PHP qui récupère les informations nécessaires dans la base de données et les envoie à la passerelle Gammu qui se charge de communiquer avec le modem GSM. Le modem GSM, à travers la carte SIM à l’intérieur envoi un SMS dans le réseau en destination du client. Le client a la possibilité de s’abonner avec son mobile en envoyant un SMS au numéro de téléphone de la carte SIM dans le modem qui sera interprété par un script PHP pour la réception et son insertion dans la base de données. À l’instar de l’inscription par le Web, le client recevra une notification si son inscription est acceptée ou pas. Le diagramme de cas d’utilisation du langage UML, permet de clarifier les interactions entre les utilisateurs et le système.

Figure 7. Diagramme de cas d’utilisation (UML) du système. La gestion des bases de données pour les actions nécessaires de création, de suppression et de parcours se fera avec phpMyAdmin.

19

Mise en place de services de bus et de notification des heures de prière basés sur les SMS Voici ci-dessous, une proposition d’architecture physique :

Figure 8. Architecture physique des services déployés.

20

Mise en place de services de bus et de notification des heures de prière basés sur les SMS 3. Implémentation

Dans ce chapitre, il sera question de l’installation et de la configuration des différentes entités matérielles et logicielles, nécessaires au projet. Nous travaillerons avec le système d’exploitation Ubuntu Desktop 18.04 LTS. Pour des raisons de droit d’accès, nous utiliserons dans la majorité des cas, le compte utilisateur root.

Figure 9. Connexion en tant que root.

3.1. Installation de LAMP

LAMP est un acronyme désignant Linux Apache MySQL PHP. C’est une suite de logiciels importants dans la mise en œuvre d’un service basé sur le Web. Cette suite contient le système d’exploitation Linux (que nous avons déjà à travers Ubuntu Desktop 18.04 LTS), le serveur Web Apache, le système de gestion de base de données MySQL ainsi que le langage de programmation PHP. Le serveur Apache permet la communication client-serveur à travers le protocole HTTP(S). Le système de gestion de base de données MySQL est un serveur de base de données. Il nous servira à stocker et manipuler les données relatives à notre service. La logique de programmation de notre service, sera écrite en langage PHP. C’est un langage interprété très utilisé dans le monde du Web.

21

Mise en place de services de bus et de notification des heures de prière basés sur les SMS L’installation se fait avec la commande sudo apt install apache2 php libapache2-mod-php mysql-server php-mysql -y. Les réglages par défauts conviendront parfaitement à nos besoins, c’est pour cela que nous ajouterons l’option –y à la fin de la commande afin de répondre par l’affirmative à toutes les questions éventuellement posées lors de l’installation des différents paquets.

Figure 10. Installation de LAMP

3.2. Création d’un utilisateur MySQL

Un utilisateur est nécessaire afin de pouvoir administrer les bases de données sous MySQL. Dans notre cas nous créerons l’utilisateur admin avec comme mot de passe azerty. Nous utilisons un mot de passe aussi faible pour des raisons de simplicité et de démonstration. Dans un environnement de production, il est impensable d’utiliser de tels mots de passe : la sécurité est primordiale. Connectons-nous d’abord à MySQL en tant que root. Depuis la vingtième version du système d’exploitation Ubuntu, la connexion à MySQL en tant que root se fait grâce à la commande sudo mysql.

22

Mise en place de services de bus et de notification des heures de prière basés sur les SMS

Figure 11. Connexion à MySQL en tant que root. À l’aide des commandes SQL visibles dans la figure ci-dessous, nous créons notre utilisateur.

Figure 12. Création d’un utilisateur sous MySQL.

3.3. Installation de phpMyAdmin

Le logiciel phpMyAdmin est une interface Web d’administration de systèmes de bases de données. Du fait de son utilisation en mode graphique, il facilite grandement l’administration des bases de données. La commande sudo apt install phpmyadmin permet de l’installer. Au cours de l’installation il faudra répondre Oui pour la création de la base de données phpmyadmin et définir un mot de passe de connexion MySQL. Nous utiliserons le mot de passe azerty. 23

Mise en place de services de bus et de notification des heures de prière basés sur les SMS

Figure 13. Installation de phpMyAdmin : saisie du mot de passe.

Par la suite il faudra choisir apache2 à l’aide de la touche espace, comme serveur Web à configurer automatiquement. En saisant localhost/phpmyadmin dans la barre d’adresse d’un navigateur, la page de connexion de phpMyAdmin devrait apparaître, attestant ainsi sa bonne installation.

Figure 14. Page de connexion de phpMyAdmin.

3.4. Création de la base de données nécessaire au service de bus

Pour la mise en œuvre du service de notification par SMS de la position de bus, nous créerons la base de données bus-service-sms. Elle contiendra trois (3) tables : bus, personne et trajet.

24

Mise en place de services de bus et de notification des heures de prière basés sur les SMS

Figure 15. Création de la base de données bus-service-sms.

Figure 16. Aperçu des tables de bus-service-sms.

3.5. Création de la base de données nécessaire au service de prière

La base de données du service de prière se nomme heures-de-priere-service-sms et contient deux (2) tables : personne et heures-de-priere-utc.

Figure 17. Création de la base de données heures-de-priere-service-sms.

Figure 18. Aperçu des tables de heures-de-priere-service-sms.

25

Mise en place de services de bus et de notification des heures de prière basés sur les SMS 3.6. Installation de Gammu

Gammu est une passerelle GSM permettant entre autres, d’envoyer et recevoir des SMS à l’aide d’un téléphone portable ou d’un modem GSM. Il est écrit en langage C, et est disponible sur Windows ainsi que sur Linux. Son interface graphique du nom de Wammu, facilite grandement son utilisation ; nous ne l’utiliserons pas dans notre cas. La commande apt install gammu -y permet de l’installer. Comme auparavant, les paramètres par défauts nous conviennent.

Figure 19. Installation de Gammu.

3.7. Configuration de Gammu

La configuration de Gammu s’effectue dans un fichier dédié nommé gammurc situé à dans le répertoire etc (/etc/gammurc). En s’assurant d’avoir correctement connecté le modem GSM, la commande gammu-detect détecte le modem et génère automatiquement le contenu du fichier de configuration.

26

Mise en place de services de bus et de notification des heures de prière basés sur les SMS

Figure 20. Génération automatique de la configuration.

Il ne reste plus qu’à rediriger le flux généré par gammu-detect vers le fichier /etc/gamurc afin de pérenniser la configuration. Cette opération est réalisée grâce à la commande gammu-detect > /etc/gammurc.

Figure 21. Contenu du fichier /etc/gammurc. Il est également possible d’identifier le modem GSM connecté et obtenir davantage d’informations à son sujet. Nous utiliserons la commande gammu identify.

27

Mise en place de services de bus et de notification des heures de prière basés sur les SMS

Figure 22. Informations du modem GSM.

L’envoi des SMS se fait à travers la commande echo "corps du message" | gammu --sendsms TEXT numero_de_telephone.

Figure 23. Envoi d’un SMS. Sur la figure ci-dessus, on remarque que le réseau de l’opérateur dont on utilise la carte SIM a répondu « OK ». Cela signifie que le SMS a bien été envoyé.

Figure 24. Réception sur téléphone portable du SMS envoyé via Gammu.

28

Mise en place de services de bus et de notification des heures de prière basés sur les SMS 3.8. Installation de Gammu-smsd

Gammu-smsd est un daemon de gammu permettant aussi bien l’envoi que la réception de SMS via Gammu. Il scanne périodiquement le modem GSM à la recherche d’éventuels SMS reçus. En cas de réception, il stocke les SMS dans un espace de stockage défini qui peut être un répertoire quelconque, ou une base de données. La commande apt install gammu-smsd -y permet de l’installer. Dans notre contexte, Gammu-smsd sera utilisé pour réceptionner les SMS de souscription au service. Ces SMS proviendront de tout personne désireuse d’avoir le service.

Figure 25. Installation de Gammu-smsd.

3.9. Configuration de Gammu-smsd

La configuration de Gammu-smsd s’effectue dans le fichier gammu-smsdrc situé dans le répertoire /etc. Le fichier de configuration gammu-smsdrc est composé essentiellement de deux (2) sections : [gammu] et [smsd]. La section [gammu] contient la même configuration que le fichier gammurc vu précédemment. La section [smsd] contient la véritable configuration du daemon Gammu-smsd. On peut y définir entre autres, l’espace de stockage des SMS ainsi que ses paramètres d’accès, le chemin du fichier d’historique (log file) et le niveau de débogage du daemon. Dans le cadre de notre projet, nous utiliserons la base de données MySQL comme espace de stockage des SMS. L’accès à la base de donnée se fera par l’utilisateur admin précédemment créé. La base de données qui sera utilisée par Gammu-smsd se nomme gammu-smsd-settings.

29

Mise en place de services de bus et de notification des heures de prière basés sur les SMS

Figure 26. Configuration de Gammu-smsd.

Gammu-smsd stocke les SMS et d’autres informations selon un modèle de données prédéfini. Ce modèle de données n’est rien d’autre qu’une définition de tables SQL. Parmi ces tables on retrouve la table inbox qui sert à stocker les SMS entrants et la table outbox qui sert à stocker les SMS sortants. La définition de ce modèle se trouve dans un script SQL fourni avec Gammusmsd. Ce script se situe à /usr/share/doc/gammu-smsd/examples sous le nom de mysql.sql.gz. Sur phpMyAdmin il faut créer une base de données du même nom que celle définie dans le fichier de configuration gammu-smsdrc, soit gammu-smsd-settings. Par la suite, il faudra importer dans cette base de données, le script mysql.sql.gz.

30

Mise en place de services de bus et de notification des heures de prière basés sur les SMS

Figure 27. Importation du script mysql.sql.gz.

Figure 28. Tables générées par le script mysql.sql.gz.

Testons à présent la réception d’un SMS. Pour ce faire, il faut d’abord redémarrer le daemon Gammu-smsdrc pour qu’il prenne en compte son fichier de configuration. La commande /etc/init.d/gammu-smsd restart permet de le faire.

Figure 29. Redémarrage de gammu-smsd.

31

Mise en place de services de bus et de notification des heures de prière basés sur les SMS Depuis un téléphone portable, envoyons un SMS au numéro de la carte SIM qui se trouve dans le modem GSM.

Figure 30. Envoi d’un SMS à Gammu. En actualisant la page de phpMyAdmin, on retrouve le SMS dans la table inbox. Cela atteste le bon fonctionnement du daemon Gammu-smsd.

Figure 31. Réception du SMS envoyé depuis le téléphone portable.

3.10.

Mise en place du script d’envoi des SMS

Le script responsable de l’envoi des SMS est écrit en langage PHP. Il récupère dans la base de données, les informations des personnes ayant souscrit au service et effectue certains traitements. Il est défini de telle sorte à n’envoyer des SMS qu’une trentaine de minutes avant l’heure d’arrivée du bus concerné. Un dernier SMS est également envoyé une dizaine de minutes avant. Il en est de même pour le service des heures de prière.

32

Mise en place de services de bus et de notification des heures de prière basés sur les SMS

Figure 32. Extrait du script d’envoi des SMS pour le service de bus.

3.11.

Mise en place du script de souscription aux services

Le script de souscription au service de bus sera responsable de l’analyse et de l’insertion dans la base de données, des informations envoyées par les personnes désireuses de souscrire au service de bus. Il s’assure du respect du format du SMS reçu et de la pertinence des informations reçues. Pour le service des heures de prière, une grande attention sera portée sur la pertinence du fuseau horaire envoyé reçu.

Figure 33. Extrait du script de réception des SMS de souscription.

33

Mise en place de services de bus et de notification des heures de prière basés sur les SMS Toute personne désirant souscrire au service de Bus devra envoyer un SMS au format suivant : “Bus Nom Prenom N°Bus PointEmprunt HeureEmprunt”. Par exemple, le SMS “Bus DIOP Amadou 22 Medina 12:00” respecte ce format. Quant au service de prière, le format suivant devra être respecté : “Priere Nom Prenom Ville FuseauHoraire”. “Priere FALL Mohamed -5” est un exemple de SMS valide. Pour que le script assurant le traitement des SMS reçus s’exécute, il faut modifier le fichier de configuration /etc/gammu-smsdrc en y ajoutant une ligne spécifiant le chemin d’un script Shell à exécuter. Ce script Shell doit nécessairement avoir les droits d’exécution.

Figure 34. Ligne à rajouter au fichier gammu-smsdrc. Étant dans notre cas, en présence d’un script PHP, nous utiliserons un script Shell chargé de faire appel au script PHP.

Figure 35. Contenu du script Shell reception.sh.

34

Mise en place de services de bus et de notification des heures de prière basés sur les SMS 3.12.

Automatisation des envois de SMS

Pour le bon fonctionnement de nos services, il est indispensable d’automatiser l’envoi des SMS. Pour réaliser cette automatisation, nous utiliserons l’utilitaire Cron, bien connu sur les distributions Linux. Cron est un logiciel permettant d’automatiser l’exécution de commandes, scripts selon un timing défini à l’avance. Il a été développé par les laboratoires Bell d’AT&T, en langage C. La programmation des tâches sous Cron se fait selon le format suivant : Minute heure jours_dans_le_mois mois _jour_de_la_semaine commande Dans le cadre de notre projet, nous souhaitons exécuter deux tâches toutes les minutes. Ces tâches ne sont rien d’autres que les appels à exécution des scripts responsables des services de bus et de prière. Les inscriptions devant figurer dans le fichier de configuration de Cron seront donc : ‘‘* * * * * /var/www/html/bus.php’’ ; ‘‘* * * * * /var/www/html/priere.php’’. La configuration de Cron se fait avec la commande crontab -e.

Figure 36. Aperçu du fichier de configuration de Cron.

35

Mise en place de services de bus et de notification des heures de prière basés sur les SMS Conclusion

La conception de ce projet a nécessité des connaissances en programmation PHP, en systèmes de bases de données, en HTML mais aussi et surtout sur la configuration de la passerelle Gammu afin d’accéder au modem GSM. Cette première phase conceptuelle a été primordiale pour réaliser l’implémentation (les scripts, les tests et l’intégration), la démonstration ainsi que la proposition d’une architecture physique adéquate à nos services.

36

Mise en place de services de bus et de notification des heures de prière basés sur les SMS Webographie 

« C’est quoi Linux ? », http://www.sebsauvage.net/comprendre/linux/#:~:text=Linux%20est%20un%20syst% C3%A8me%20d,syst%C3%A8me%20plein%20de%20commandes%20compliqu%C3 %A9es..



« Philosophie d’Unix », https://fr.wikipedia.org/wiki/Philosophie_d%27Unix.



« Client-serveur - Définition et Explications », https://www.technoscience.net/definition/3743.html.



« Introduction à Linux et la philosophie du logiciel libre », http://blog-des-auteurslibres.over-blog.com/2014/08/introduction-a-linux-et-la-philosophie-du-logiciellibre.html.



« Conception et philosophie de Linux », http://lexo.free.fr/docs/bien_debuter/html/node23.html.



« L’Open Source a 20 ans : comment cette philosophie a-t-elle révolutionné la programmation ? », https://www.zdnet.fr/actualites/l-open-source-a-20-ans-commentcette-philosophie-a-t-elle-revolutionne-la-programmation-39863738.htm.



« Global System for Mobile Communications », https://fr.wikipedia.org/wiki/Global_System_for_Mobile_Communications.



« Le service de messages courts de GSM (SMS) », http://jaaayyy.chez.com/html/Radiomobiles/stage/SMS.html.



« Push and Pull marketing : ou l’art d’attirer le consommateur ? », https://www.emarketing.fr/Thematique/data-1091/Tribune/Push-and-Pull-marketing-art-attirerconsommateur-231920.htm.



« PHP », https://en.wikipedia.org/wiki/PHP.



« Carte SIM », https://fr.wikipedia.org/wiki/Carte_SIM.



« Gammu », https://wammu.eu/gammu/.



« Apache HTTP Server », https://en.wikipedia.org/wiki/Apache_HTTP_Server.



« Serveur web – LAMP », https://doc.ubuntu-fr.org/lamp#serveur_web_-_lamp.



« MySQL », https://doc.ubuntu-fr.org/mysql.



« phpMyAdmin », https://doc.ubuntu-fr.org/phpmyadmin.



« Gammu Configuration File », https://fr.wammu.eu/docs/manual/config/index.html.



« SMSD Configuration File », https://fr.wammu.eu/docs/manual/smsd/config.html.

37

Mise en place de services de bus et de notification des heures de prière basés sur les SMS 

« MySQL Backend », https://fr.wammu.eu/docs/manual/smsd/mysql.html#gammusmsd-mysql.



« Installer Gammu et Gammu-smsd pour envoyer des SMS depuis un Raspberry », https://tutoandco.colas-delmas.fr/software/envoyer-sms-gammu-deamon/.



« Serveur sms avec traitement de contenu, avec Gammu », https://fr.slideshare.net/laSerenite489/serveur-sms.

38

Mise en place de services de bus et de notification des heures de prière basés sur les SMS Annexes

Fichier de configuration gammurc ; Fichier de configuration généré par gammu-detect. ; Merci de consulter le manuel de Gammu pour plus d'informations. [gammu] device = /dev/ttyUSB0 name = Téléphone sur le port USB série HUAWEI_TechnologyHUAWEI_Mobile connection = at

Fichier de configuration gammu-smsdrc # Configuration file for Gammu SMS Daemon # Gammu library configuration, see gammurc(5) [gammu] port = /dev/ttyUSB0 connection = at # SMSD configuration, see gammu-smsdrc(5) [smsd] service = SQL logfile = /var/log/gammu.log debuglevel = 1 #Database connection driver = native_mysql user = admin password = azerty host = localhost database = gammu-smsd-settings sql = mysql #Script à exécuter à la réception d'un SMS RunOnReceive = /var/www/html/reception.sh

Script d’envoi de SMS pour le service de bus