Академический Документы
Профессиональный Документы
Культура Документы
A ma famille
REMERCIEMENTS
- M. GOUHO BI pour les précieux conseils qu’il nous a prodigués durant toute la
période de stage et pour la documentation qu’il a bien voulu mettre à notre disposition.
- Messieurs ADOU Olivier et DJOUEKAN Joël pour leur précieuse aide lors de la
réalisation pratique du projet ainsi qu’à tout le personnel de NTIX Corporation.
AVANT-PROPOS
2G : 2ème Génération
API : Application Programing Interface
ARTCI : Autorité de Régulation des Télécommunications/TIC de Côte d’Ivoire
AuC : Authentication Center
BSC : Base Station Controller
BSS: Base Station Subsystem
BTS : Base Transceiver Station
CIMD: Computer Interface Message Distribution
CMG: Computer Management Group
CP: Content Provider
CSS: Cascading Style Sheet
EIR: Equipment Identity Register
EMI: External Machine Interface
ESME: External Short Message Entity
FIFO: First In First Out
GMSC: Gateway MSC
GSM: Global System for Mobile communications
HLR: Home Location Register
HTML: HyperText Markup Language
HTTP: HyperText Transfer Protocol
HTTPS: HyperText Transfer Protocol Secured
IMEI: International Mobile Equipment Identity
IWS : Internet World Stats
MAP: Mobile Application Part
MSC: Mobile services Switching Center
MSISDN: Mobile Station ISDN Number
NSS: Network and Switching Subsystem
NTIC : Nouvelles Technologies de l’Information et de la Communication
OMC: Operation and Maintenance Center
OSS: Operating SubSystem
PAP: Password Authentication Protocol
PHP: Hypertext Preprocessor
29 Architecture de Kannel……………………………..……………………… 66
30 Architecture du bearerbox……………………………..…………………… 68
31 Mode de communication entre les Boxes de Kannel………..……………... 70
32 Interfaces externes de Kannel……………………………..…………….….. 71
33 Test de l'état du modem……………………………………..………….…... 75
34 Test du code PIN, de l’enregistrement sur le réseau et de l'opérateur….…... 76
35 Résultat de la commande lsusb……………………………..….…………… 78
36 Résultat de la commande wvdialconf……………………...……………….. 79
37 Bon démarrage du bearerbox………………..……………………………... 80
38 Bon démarrage du smsbox……………………..…………………………... 81
39 Architecture globale du système………………..………………………….. 91
40 Envoi de SMS à travers le système……………..………………………….. 91
41 Procédure de traitement des SMS-Requête………..……………………….. 92
42 Page de connexion à MangoSMS…………………..………………….…… 93
43 Page d'accueil MangoSMS…………………………..………………….….. 94
44 Page Messages envoyés……………………………..…………………….... 94
45 Page de saisie des infos Etudiant…………………..…………………….…. 95
46 Carnet d’adresses…………………………………...………………………. 96
SOMMAIRE
DEDICACE ................................................................................................................................ 1
REMERCIEMENTS .................................................................................................................. 2
AVANT-PROPOS ..................................................................................................................... 3
LISTE DES ABREVIATIONS .................................................................................................. 4
LISTE DES FIGURES ............................................................................................................... 6
LISTE DES TABLEAUX .......................................................................................................... 8
INTRODUCTION .................................................................................................................... 10
PREMIERE PARTIE: ETUDE THEORIQUE ET METHODOLOGIE ......................... 12
Chapitre 1 : SPECIFICATION DE LA PROBLEMATIQUE ................................................. 13
Chapitre 2 : REVUE DE LA LITTERATURE ........................................................................ 16
Chapitre 3 : METHODOLOGIE .............................................................................................. 45
DEUXIEME PARTIE: ANALYSE, CONCEPTION ET IMPLEMENTATION DE LA
SOLUTION ............................................................................................................................. 48
Chapitre 4 : ANALYSE ET CONCEPTION DE LA SOLUTION ......................................... 49
Chapitre 5 : MISE EN ŒUVRE ............................................................................................... 73
Chapitre 6 : PRESENTATION DE L’APPLICATION ........................................................... 91
CONCLUSION ........................................................................................................................ 97
BIBLIOGRAPHIE ................................................................................................................... 99
WEBOGRAPHIE ................................................................................................................... 100
ANNEXES ............................................................................................................................. 101
TABLE DES MATIERES ....................................................................................................... IX
INTRODUCTION
1
http://www.planetoscope.com/electronique/718-nombre-de-sms-envoyes-dans-le-monde.html, consulté le
27/06/2016
mais également un serveur de contenu comportant des informations sur les étudiants et aussi
sur l’école, que l’on pourra consulter par SMS.
Ce document rédigé à cet effet est structuré en deux parties. La première partie du projet
porte sur l’étude théorique et méthodologique approprié pour aborder la mise en place d’un
serveur SMS. Elle présente la spécification de la problématique, la revue de la littérature où
l’on présente l’état de l’art sur les réseaux mobiles notamment le GSM, le service SMS au sein
du réseau GSM et les passerelles SMS. La deuxième partie a consisté, quant à elle, en l’analyse
des besoins, la conception des différents modules, l’implémentation et la présentation des
résultats des tests.
PREMIERE PARTIE:
ETUDE THEORIQUE ET
METHODOLOGIE
NTIX Corporation2 est une entreprise spécialisée dans le domaine des réseaux
informatiques filaires et sans fil, de la téléphonie d’entreprise, de l’installation d’équipements
de sécurité électronique et de la conception d’applications web et mobiles. Ses prestations
s’adressent aux entreprises de toutes tailles, PME, PMI, Hôtels, Commerces, Organisations,
Collectivités, Particuliers ...
La parfaite connaissance des besoins des clients a permis à NTIX d’étendre ses activités
sur tout le territoire national. Sa grande expérience dans le domaine des réseaux informatiques
et télécoms garantit une qualité des installations et une assistance technique professionnelle.
NTIX collabore avec des opérateurs et fournisseurs leaders du secteur des technologies de
l’information et de la communication. Ce qui est une occasion pour lui faire confiance.
Pour être plus compétitif sur le marché, la plupart des entreprises intègrent de plus en
plus les TIC dans leur système d’information. Mais les établissements scolaires, surtout en Côte
d’Ivoire, semblent être en marge de cette évolution. Il est vrai qu’avec l’avènement du web,
certains établissements se sont dotés de site Internet vitrine, mais cela ne constitue pas une
solution de communication efficace à l’heure actuelle vu le faible taux de pénétration d’Internet
en Afrique qui est de 28.7 % (statistiques de Juin 2016) en général et de 22% (statistiques de
2016) en Côte d’Ivoire en particulier selon IWS3.
Ce triste constat a amené à concevoir une solution efficace et moins onéreuse pour les
établissements scolaires et universitaires.
Le choix s’est donc porté sur une solution Open source et gratuite pour l’avantage qu’elle a de
réduire les coûts de réalisation, ce qui rend le produit accessible au plus grand nombre.
2. Problématique
Les moyens de communication employés par les établissements scolaires pour informer
les élèves et parents d’élèves sont généralement les brochures, les pancartes, les banderoles, les
bandes annonces et les spots radio et télé. Ces moyens ne s’avèrent pas toujours efficaces car
2
http://www.ntixci.com
3
IWS : Internet World Stats (http://www.internetworldstats.com)
nombreux sont les parents et les élèves qui préfèrent se rendre dans ces établissements ou
téléphoner pour plus d’informations. De plus, les parents d’élèves voulant avoir des
informations sur le travail ou la scolarité des enfants doivent nécessairement se rendre dans
l’établissement ou téléphoner. Toutes ces actions ne sont possibles que pendant certains
moments de la journée. Cela rend difficile l’accès aux informations.
Fort de ce constat une question s’impose. Comment faciliter l’accès aux informations
dans un établissement scolaire et le suivi des élèves en utilisant des moyens modernes et
accessibles à tous ?
Pour résoudre ce problème il faut prendre en compte les contraintes qui sont le coût, la
sécurité, la flexibilité et l’accessibilité. Dans ces conditions, des questions de recherche
s’imposent.
3. Questions de recherche
Cette étude vise à mettre en place une solution de communication par SMS avec des
outils Open source permettant non seulement aux établissements scolaires d’envoyer des
messages en masse mais également aux étudiants, parents d’élèves ou tout autre personne
d’avoir des informations sans se déplacer. Pour ce faire, les objectifs spécifiques suivants se
dégagent:
Il s’agit de :
- Déployer une passerelle SMS basé sur un logiciel open source
- Réaliser une application web permettant aux utilisateurs répertoriés dans une base de
données d’envoyer des SMS à partir d’un navigateur web.
- Mettre en place un serveur de contenu doté d’une base de données qui contiendra un
certain nombre d’informations sur l’école et les élèves/étudiants, qui pourront être consultées
par SMS.
- Créer des services SMS : elle consiste à coupler la passerelle SMS au serveur de
contenu et créer les services SMS.
En somme il s’agit de mettre en place un serveur SMS avec des solutions Open Source en vue
de minimiser les coûts de réalisation.
La réalisation de ce mémoire suppose qu’il faut vérifier une hypothèse générale et des
hypothèses spécifiques.
5.1Hypothèse générale
La mise en place d’un serveur SMS avec des outils Open Source facilite la
communication au sein des établissements et optimise aussi bien la sécurité que le coût.
5.2Hypothèses spécifiques
✓ La mise en place d’un serveur SMS permet aux établissements de palier les problèmes
de coûts des communications avec le corps professoral, les étudiants et les parents d’élèves.
✓ La mise en place d’un serveur SMS permet également aux étudiants et parents d’élèves
d’accéder à tout instant à des informations sur la scolarité de leurs enfants sans se déplacer de
manière confidentielle et sécurisée.
La littérature informatique consacrée à l'évolution des TIC aborde la mise en place d'un
serveur SMS comme moyen technique le plus garanti au sein d'une organisation permettant
l'acheminement fidèle et fiable d'informations entre deux ou plusieurs points quelconques pour
un coût raisonnable.
Dans ce chapitre, sont présentés, les généralités sur les services à valeur ajoutée, le
service SMS au sein du réseau GSM et quelques notions sur les passerelles SMS. Cette partie
de la revue de la littérature est indispensable dans la mesure où le projet consiste à concevoir
une solution basée sur la technologie SMS. Il est donc important de définir au préalable
certaines notions.
1. Le réseau GSM
Le GSM, pour Global System for Mobile communications, est une norme cellulaire de
deuxième génération (2G) développée pour répondre à des services vocaux et de transfert de
données en utilisant la modulation numérique.
Même si, pour développer des applications SMS, il n'est pas nécessaire de connaître
l'architecture détaillée de l'infrastructure technique d'un opérateur mobile, il peut néanmoins
être intéressant d'en avoir une idée générale.
Elle permet le dialogue avec le mobile sur l'interface Air (aussi appelée interface Radio ou
interface Um).
✓ Le BSC, Base Station Controller : il assure le contrôle d’une ou plusieurs BTS. C’est
l’organe intelligent du BSS. La plupart des fonctions intelligentes de BSS sont implantées à son
niveau, notamment les fonctions de gestion des ressources radioélectriques : l’allocation des
canaux, la gestion de la configuration des canaux, le traitement des mesures et la décision de
handover intra BSC. Le sous-système radio constitue le réseau d’accès de l’opérateur GSM.
Il assure principalement les fonctions de commutation et de routage. C'est donc lui qui
permet l'accès au réseau public RTCP ou RNIS. En plus des fonctions indispensables de
commutation, on y retrouve les fonctions de gestion de la mobilité, de la sécurité et de la
confidentialité qui sont implantées dans la norme GSM. Il comprend :
✓ Le MSC (Mobile services Switching Center) : C'est la partie centrale du NSS. Il prend
en charge l'établissement des communications entre les abonnés GSM. Du fait de la mobilité,
l'implantation de la seule fonction de commutation n'est pas suffisante. Le MSC gère la mobilité
et les fréquences et enregistre la localisation des abonnés visiteurs (base de données VLR). Il
gère l’établissement des communications entre un mobile et un autre situé dans le même MSC
ou un autre MSC, voire un commutateur d’un autre réseau, la transmission des messages courts
et l’exécution des handovers lorsqu’il est impliqué. Il peut posséder une fonction passerelle,
GMSC (Gateway MSC), qui est activée au début de chaque appel d’un fixe vers un mobile.
✓ Le HLR (Home Location Register) est une base de données contenant les informations
relatives aux abonnés (données statiques : numéro d’appel, type abonnement, données
dynamiques : état du terminal, localisation, …). Il contient toutes les informations relatives à
l'abonnement et aux droits d'accès. D'autre part, le HLR est une base de données de localisation.
Il mémorise pour chaque abonné le VLR où il est enregistré.
✓ Le VLR (Visitor Location Register) est une base de données locale. En général il y a un
VLR par commutateur mobile MSC. Il Contient les informations relatives aux abonnés présents
dans la zone associée. Il est mis à jour à chaque changement de cellule d’un abonné. C'est la
base de données qui gère les abonnés présents dans une certaine zone géographique.
✓ L'AuC (Authentication Center) : Il mémorise pour chaque abonné une clé secrète
utilisée pour authentifier les demandes de services et pour le chiffrement des communications.
Un AuC est en général associé à chaque HLR.
✓ L’EIR (Equipment Identity Register) : C’est une base de données annexe contenant les
identités des terminaux. Un terminal est identifié par un numéro de série dénommé IMEI
(numéro d’identifiant). La base EIR est consultée lors des demandes de services d’un abonné
pour vérifier si le terminal utilisé est autorisé à fonctionner sur le réseau.
Le NSS constitue le réseau cœur du GSM.
Une interface est le lien entre 2 entités du réseau sur lequel transitent des informations
particulières.
Les interfaces au sein du réseau GSM sont désignées par des lettres de A à H. Ils sont utilisés
pour la transmission du trafic (parole ou données) et pour les informations de signalisation.
Dans le réseau GSM, les données de signalisation sont séparées des données de trafic. Toutes
les liaisons entre les équipements sont des liaisons numériques sauf la liaison entre BTS et MS
qui est une liaison audionumérique.
Les entités du réseau GSM sont reliées entre elles par des interfaces définies par la norme GSM.
La définition porte sur la nature des informations et leur mode de transport. Ce tableau est le
résumé de la localisation de chaque interface, des différents protocoles utilisés sur chacune
d’elles et l’usage que l’on en fait au sein du réseau.
4
Source : https://reseauxtelecom.wordpress.com/2011/11/24/comprendre-le-reseau-gsmpartie-2/
La structuration en couche suit le modèle OSI pour les trois premières couches :
✓ La couche physique : comprend toutes les procédures nécessaires pour le transport des
informations sur le support physique (codage, modulation…)
✓ La couche liaison de données : fiabilise la transmission entre deux entités du réseau
directement connectés entre elles (trame…)
✓ La couche réseau : assure le dialogue entre toutes les entités du réseau via les messages de
signalisation
Les services offerts par le réseau GSM sont classés de la façon suivante dans les réseaux
modernes comme le RNIS :
2. Le service SMS
Le service de messagerie SMS, plus connu sous le sigle de SMS (pour « Short Message
Service ») permet de transmettre des messages courts textuels7. C'est l'un des services de la
téléphonie mobile. Il a été introduit par la norme GSM. Les messages courts sont des messages
textuels d'au plus 160 caractères (codés à l'aide d'ASCII 7 bits sur 140 octets) mais peut être
quadruplée par concaténation et sont délivrés en quelques secondes lorsque le destinataire est
rattaché au réseau même lorsque ce destinataire est en communication.
Prise au sens large, une passerelle est un outil permettant de passer d’un système à un
autre. Au sens strict du terme, une passerelle est un dispositif destiné à connecter des systèmes
de téléinformatiques ayant des architectures différentes, des protocoles différents, ou offrant
des services différents. La passerelle doit alors dépouiller la trame des informations spécifiques
aux protocoles émetteurs et les remplacer par leurs équivalents dans les protocoles récepteurs.
5
Portail dédié aux jeux de la LONACI à partir du téléphone mobile sur les réseaux Moov et MTN.
6
Pour recevoir des informations sur votre compte bancaire partout (Produit de la BHCI)
7
https://fr.wikipedia.org/wiki/Short_Message_Service
3.1 Présentation
Le SMS pour Short Message Service est le service de message court offert par le réseau
GSM permettant d’envoyer et de recevoir un message textuel d’au plus de 160 caractères à
partir d’un téléphone mobile. 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é), soient stockés dans le serveur de messages courts SMSC,
(pour 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ément8.
8
www.efort.com/map_efort
Un SMS reçu sur le mobile est traité de manière différente suivant sa classe. La classe
est définie dans le SMS Data Coding Scheme (DCS - Voir norme 3GPP 23.038) :
✓ Classe 0 (flash SMS) : le message est directement affiché à l’utilisateur sur l’écran du
mobile à la réception. Un rapport est envoyé ensuite au centre de service. Le message n’est
enregistré ni dans la mémoire du téléphone ni dans la carte SIM. Il est effacé dès que l’utilisateur
a validé la visualisation.
✓ Classe 1 : le message est enregistré dans la mémoire du téléphone et si cette mémoire
est pleine, dans la carte SIM par défaut. Ainsi un message reçu de type WAP Push pour
configurer un mobile par exemple est de classe 1.
✓ Classe 2 : le message est enregistré sur la carte USIM. Un accusé de réception est
envoyé au centre de service une fois que le message a bien été transféré sur l’USIM.
✓ Classe 3 : le message est transféré sur un équipement externe connecté au mobile (PDA,
PC portable…). Dans notre cas les messages sont de classe 3.
Le protocole MAP (Mobile Application Part) régit l’ensemble des échanges entre
équipements du réseau mobile (NSS, Network and Switching Subsystem). Il offre les fonctions
de signalisation nécessaires à un service de communication voix ou données dans un réseau
mobile. Il s’appuie sur la pile de protocole SS7 qui garantit un transport fiable. Le protocole
MAP concerne les dialogues entre différentes entités du réseau mobile notamment, MSC/VLR,
MSC Server, SGSN, HLR, EIR, SMSC, etc. Le service SMS s'appuie sur le protocole MAP.
MAP permet le transport du SMS du MSC de l'émetteur au SMSC, l'interrogation du SMSC au
HLR pour identifier le MSC du destinataire, puis le transport du SMS du SMSC au MSC du
destinataire.
Les messages MAP relatifs au service SMS sont :
9
www.efort.com/map_efort
ESMEs SMPP
SMPP
SMSC
Le protocole SMPP est basé sur l'échange de requêtes et réponses PDU (Protocol Data Unit)
entre l’ESME et le SMSC sur un réseau TCP/IP sous-jacent ou une connexion réseau X.25. Les
messages échangés entre un ESME et un SMSC via SMPP sont de 3 types :
SMSC
ESME
Transmitter
ESME
Receiver
ESME
Une session SMPP entre un SMSC et un ESME est initiée par l'ESME qui établit en
premier une connexion réseau avec le SMSC et ensuite édite une requête de connexion SMPP
pour ouvrir une session SMPP. La session SMPP peut être définie par ces différents états :
✓ OPEN : un ESME a établi une connexion avec le SMSC mais n'a pas encore publié sa
requête.
✓ BOUND_TX : un ESME connecté a fait une demande de connexion (ESME
Transmitter) en publiant un bind_transmitter et reçoit une réponse de la part du SMSC qui
autorise sa requête de connexion. Un ESME relié comme un Transmitter peut envoyer des SM
à un SMSC qui ensuite vont être envoyés à un portable ou un autre ESME.
✓ BOUND_RX : un ESME connecté fait une demande de connexion (ESME Receiver)
en publiant un bind_receiver et reçoit une réponse de la part du SMSC qui autorise sa requête
de connexion. Un ESME relié comme un Receiver peut recevoir des SMS d'un SMSC (l'origine
d'envoi de message peut être un portable, un autre ESME ou SMSC).
✓ BOUND_TRX : un ESME connecté fait une demande de connexion comme un ESME
Transceiver en publiant un bind_transceiver et reçoit une réponse de la part du SMSC qui
autorise sa requête de connexion. Un ESME relié comme un Transceiver supporte toutes les
opérations supportées par un ESME Transmitter et un ESME Receiver. Un ESME connecté
comme transceiver peut envoyer des SMS vers un SMSC. Les SMS sont ensuite envoyés vers
un portable ou vers un autre ESME. Également, dans ce cas, l'ESME peut recevoir un SMS
provenant d'un portable, d'un autre ESME ou du SMSC lui-même.
✓ CLOSED : L'ESME est déconnecté du SMSC et la connexion réseau est fermée. Le
SMSC est alors déconnecté de l'ESME.
Un exemple de session SMPP de type transceiver est présenté sur la figure ci-dessous.
ESME SMSC
bind_transceiver (1)
bind_transceiver_resp (1)
data_sm (1)
data_sm_resp (1)
data_sm (2)
data_sm_resp (2)
data_sm (3)
data_sm (2)
data_sm_resp (3)
data_sm_resp (2)
unbind (4)
unbind_resp (4)
✓ Gateway MSC For Short Message Service (SMS-GMSC) : Il s’agit d’une fonction
capable d’une part de recevoir un message court d’une entité SMSC et d’interroger le HLR afin
de déterminer la localisation de la station mobile destinataire et d’autre part de délivrer le message
court au MSC auquel est rattachée cette station mobile destinataire. Ce MSC de rattachement est
aussi appelé VMSC (Visited MSC).
✓ Interworking MSC For Short Message Service (SMS-IWMSC) : Il s’agit d’une fonction
capable de recevoir un message court d’un MSC et de le soumettre à un autre SMSC.
✓ Short Message Service Centre (SMSC) : Cette fonction est responsable du stockage et
relayage d’un message court.
✓ Short Message Entity (SME ou encore ESME) est une entité extérieure au réseau GSM
pouvant émettre et recevoir des messages courts. Il s‘agit d’un serveur spécialisé ou d’un micro-
ordinateur. Le SMSC comporte une interface coté réseau GSM reposant sur le protocole de
signalisation MAP et une interface coté ESME utilisant le protocole SMPP. Les messages MAP
sont transportés par le réseau SS7.
Le service SMS nécessite la mise en place d'un ou plusieurs serveurs spécifiques dans
le réseau : le SMSC ou SC.
3.7.2.1 Le logiciel
Le logiciel du SMSC est constitué :
- D’un Système d’exploitation. Il peut être Solaris ou Linux.
- D’une base de données spécifique avec son serveur. Elle peut être de type Informix ou
MySQL.
- De l’application SMSC.
Il est formé d’un certain nombre d’interfaces qui fonctionnent avec le système
d'opération, d'administration, et de maintenance (OAM). Elles permettent à un opérateur de
lancer, configurer, et surveiller le SMSC en service dans un réseau réel.
Le SMSC fournit une interface de facturation qui aide l'opérateur à charger ses abonnés
pour l'utilisation du service de message court.
Les interfaces ESME permettent à des applications externes non mobiles de se connecter
au SMSC. Les opérateurs et les fournisseurs de services utilisent les connections de l’entité
externe des messages courts pour fournir aux abonnés mobiles une variété de services, tels
qu'envoyer des mises à jour de nouvelles, des e-mails de notification, des logos, des sonneries,
etc. Chaque interface utilise un émetteur pour transmettre des messages et un récepteur pour
recevoir des messages du SMSC. Tous les deux peuvent être sur la même connexion
(transceiver) ou chacun utilise une connexion différente (émetteur et/ou récepteur).
✓ Le récepteur
Le récepteur manipule tout le trafic des messages venant du SMSC vers l’ESME.
✓ L’émetteur
Le serveur émetteur ESME reçoit tous les messages à diffuser du client ESME et les envoie au
SMSC.
Selon une étude faite par Atique Ahmed Khan10, il y a 3 manières de développer une application
SMS (ESME) en général. (Voir Annexe 1)
10
Initiateur du projet SCADA : Supervisory Control And Data Acquisition. SCADA désigne une catégorie de
logiciels destinés au contrôle de processus et à la collecte de données en temps réel auprès de sites distants, en
vue de contrôler des équipements et des conditions d'exploitation.
Le mobile d’origine écrit le SMS et l’envoie vers le mobile destinataire. Le GMSC reçoit
le message envoyé et le transmet au SMSC. Celui-ci enregistre le SMS dans sa base de données
pour l’envoyer après au mobile destinataire. Un acquittement sera créé pour informer le mobile
d’origine que le message est reçu par le SMSC. Si le MO ne reçoit l’acquittement avant six
secondes, le mobile affiche une erreur de transmission par défaut.
Les détails des transactions sont présentés en annexe (Voir annexe 5 section A).
Le SMSC, ayant stocké le message reçu dans sa base de données, commence l’opération
de transmission vers le destinataire. Ici 3 cas de figure peuvent se présenter.
Le SMSC contient plusieurs processus et des dizaines de files d’attente qui entrent en
jeu lors de la transmission de chaque message au destinataire. Lorsqu’on envoie un message
vers le mobile destinataire, le message subit l’une des transactions suivantes : MO-MT, MO-
MO_ack, MT– MT_ack
✓ MO-MT : Le message envoyé du MO vers MT subit consécutivement les actions
suivantes :
1. Le mobile envoie le message court vers le GMSC.
2. Le GMSC capte le message et l’envoie vers le SMSC.
3. Le « SMSC RX Process » reçoit le SMS et le stocke dans la première file d’attente « RX
MO Queue ».
4. Le message attend son tour dans la queue des messages reçus. La discipline de service de
cette file d’attente est FIFO, c'est-à-dire les messages accèdent au service dans l’ordre de leurs
arrivées.
5. Le « SMSC RX MO Process » lit le SM de sa queue, l’analyse et le remet dans une deuxième
file d’attente « Messages Queue »
6. Il attend son tour de nouveau dans cette dernière file où la discipline est toujours FIFO.
7. Le processus principal « SMSC Main Process » lit le SM, le décompose de nouveau pour
le mettre après dans une dernière file d’attente « TX Queue ».
8. Stocké dans la dernière file d’attente, le message subit une attente finale dans la queue
d’émetteur.
9. L’émetteur prend le message de sa queue et l’envoie vers le GMSC. L’émetteur est muni
d’un régulateur configurable de trafic qui peut régler le nombre des messages envoyés vers le
GMSC.
10. Ce dernier utilise les canaux de signalisation de nouveau pour délivrer le message au
destinataire. Durant tout son trajet, le SMS subit 3 attentes consécutives dans 3 types de files
d’attente dans le SMSC : RX MO Queue, Messages Queue et TX Queue.
Figure 19: Processus d'envoi d'un message court d'un MO vers un MT (envoi réussi)
✓ MO – MO_ack
Comme déjà expliqué, le mobile d’origine doit obligatoirement recevoir un acquittement de son
message durant un temps bien déterminé pour ne pas afficher une erreur de transmission. Les
actions suivantes seront concernées par ce type de transaction.
1. Le mobile envoie le message court vers le GMSC.
2. Le GMSC capte le message et l’envoie vers le SMSC.
3. Le « SMSC RX Process » reçoit le SM et le stocke dans la première file d’attente
« RX MO Queue ».
4. Le message attend son tour dans la file d’attente des messages reçus. La discipline de
service de cette file d’attente est FIFO, c'est-à-dire les messages accèdent au service dans l’ordre
de leurs arrivées.
5. Le « SMSC RX MO Process » lit le SMS de sa file d’attente, l’analyse et le remet
dans une deuxième file d’attente spécifique pour les acquittements « MO Ack Queue »
6. L’acquittement attend son tour dans cette dernière file où la discipline est toujours
FIFO.
7. L’émetteur prend le message de sa file d’attente et l’envoie vers le GMSC.
✓ MT – MT_ack
Le SMSC doit recevoir un acquittement de la part du mobile destinataire (MT) pour pouvoir
effacer le message de sa base de données et laisser par la suite de la place pour d’autres
messages. Les actions suivantes seront le sujet de ce type de messages.
1. Ayant reçu le message, le destinataire crée l’acquittement MT-ack et l’envoie vers le
GMSC.
2. Le GMSC capte le message et l’envoie vers le SMSC.
3. Le « SMSC RX Process » reçoit le SM et le stocke dans la seule file d’attente pour
ce type de message « RX MT Queue ».
4. L’acquittement attend son tour dans cette file où la discipline de service est FIFO.
5. Et Finalement, le « SMSC RX MT Process » le prend, le vérifie et efface le SMS
correspondant de sa base de données.
L’acquittement MT_ack passe par une seule file d’attente qui est la « RX MT Queue ».
L’analyse de ce type de message est très importante afin d’améliorer la performance du SMSC,
car le SMS ne sera jamais effacé de la base de données avant la réception du MT-ack. Par suite
le système ne peut pas le remplacer par un nouveau message.
Pris au sens large, une passerelle est un outil permettant de passer d'un système à un
autre. Au sein d'un réseau TCP/IP, un réseau local peut accéder à Internet par l'intermédiaire
d'une passerelle.
Au sens strict du terme, une passerelle est un dispositif destiné à connecter des systèmes
téléinformatiques ayant des architectures différentes ou des protocoles différents, ou offrant des
services différents. Elle peut interconnecter des réseaux à partir du niveau physique ; toutefois,
elle ne doit donc pas être confondue à un répéteur (couche 1 du modèle OSI), un pont (couche
2 du modèle OSI) ou un routeur (couche 3 du modèle OSI), bien qu'elle puisse jouer leur rôle.
Nous avons choisi de représenter à travers la figure 20, le niveau en terme du modèle OSI,
auquel peut fonctionner une passerelle SMS.
L’une des difficultés majeures de la messagerie SMS réside dans le fait que les SMSC
développés par des sociétés différentes utilisent leur propre protocole de communication, qui
est pour la plupart, propriétaire. Par exemple, un SMSC de type NOKIA offrant une interface
gérée par le protocole CIMD ne saurait échanger directement avec un SMSC d'un autre vendeur
dont l'interface est gérée par le protocole EMI.
Pour résoudre ce problème, une passerelle SMS est placée entre deux SMSCs comme
l'illustre la figure 21. En effet, la passerelle SMS agit comme un convertisseur de protocoles
entre non seulement des SMSCs, mais aussi avec des dispositifs du protocole TCP/IP. Cette
voie peut être utilisée par deux opérateurs de téléphonie mobile différents pour connecter leurs
SMSC afin de permettre l'échange inter-opérateur du service de messagerie SMS.
Protocole 1 Protocole 2
Une passerelle SMS est donc indispensable dans un système de messagerie SMS. Ainsi,
le logiciel de passerelle SMS est un logiciel complexe et bien évidemment cher.
Il existe une multitude de passerelles SMS dont certaines sont propriétaires (Alligata, Ozeki
SMS, Wapme, Jataayu SMS gateway.), tandis que d'autres sont Open Source et gratuits
(Kannel, Gammu, JasminSMS, SMS server Tools ...).
Kannel11 est une passerelle SMS et WAP Open Source. Elle supporte les protocoles des
SMSC standard : UCP/EMI, SMPP, HTTP, CIMD. Kannel fournit un ensemble d'API lui
permettant d'être utilisé comme front end à des middlewares ou applications Web nécessitant
des sorties WAP ou SMS. Intégré comme brique d'infrastructure, il sécurise l'accès aux
ressources des opérateurs tout en fournissant un support SMS et WAP fiable et robuste et
permet également de manipuler une centaine de message par seconde.
Jasmin SMS Gateway12 est une passerelle SMS Open Source qui possède de
nombreuses fonctionnalités de classe entreprise. Jasmin est conçu pour être facilement
personnalisé pour répondre aux besoins spécifiques de l'échange de messagerie entreprise en
pleine croissance.
La livraison de message SMS peut être faite par les protocoles HTTP et SMPP.
Jasmin est conçu pour des performances, des charges de trafic élevé et la pleine exécution en
mémoire.
11
www.kannel.org
12
www.jasminsms.com
13
https://fr.wammu.eu/gammu
spécialisé pour les téléphones Nokia. Il permet notamment d'envoyer des SMS et d'en recevoir
grâce à un téléphone ou un modem GSM connecté à un ordinateur avec le logiciel.
SMS Server Tools14 est une passerelle SMS logicielle qui peut envoyer et recevoir des
messages courts à travers un modem GSM ou un téléphone mobile. Il permet de déployer des
serveurs SMS à haute disponibilité avec l’utilisation de plusieurs modems ou téléphones
(Jusqu’à 64 actuellement). Les messages sont stockés sous forme de fichiers texte dans les
répertoires de spool. Les programmes externes ou les scripts de n'importe quel langage peuvent
être utilisés pour filtrer, inspecter et répondre aux messages automatiquement. Les événements
et les alarmes peuvent être transmis aux scripts pour intégration dans les outils de surveillance.
Elle peut gérer jusqu'à 20 000 messages par mois.
Les particularités des 4 passerelles citées ci-dessus sont résumées dans le tableau suivant.
14
http://smstools3.kekekasvi.com/
Parmi les passerelles SMS citées plus haut, la plus professionnelle et qui répond le plus
à nos besoins est Kannel car elle possède nativement la fonctionnalité pull-push que nous
recherchons. Nous avons donc opté pour Kannel qui est une passerelle SMS libre de haute
qualité.
Certaines solutions dites « propriétaires », seraient des dérivées de Kannel, puisque cette
dernière n'est pas une solution toute faite. En effet, la solution Kannel pourrait être reprise et
adaptée aux besoins qui s’imposent ; la solution dérivée obtenue étant personnalisée, peut elle-
même être commercialisée ou mise à la portée des utilisateurs. La multitude de protocoles de
communication avec les SMSC, que la solution Kannel prend en compte, en même temps que
sa fonction de serveur SMS, sans oublier la qualité et la stabilité des solutions libres en général,
pour ne citer que ceux-là, sont quelques-unes des raisons qui nous ont conduites à porter notre
choix sur elle. Il existe large documentation sur internet, une multitude de site proposant des
forums, des exemples de projets réalisés avec Kannel et même des applications téléchargeables
gratuitement.
Chapitre 3 : METHODOLOGIE
Ce chapitre présente les méthodes utilisées pour aborder notre thème. Deux méthodes y
sont abordées. La recherche documentaire et la détermination des différentes phases pour la
mise en place du système.
1. La recherche documentaire
La recherche documentaire a couvert toutes les étapes de notre travail. Elle a pris en compte les
études préalables réalisées et ayant trait à notre thème. Au nombre de ces études, nous pouvons
citer les mémoires de :
✓ Youssef Haddad, « Qualité de service d'un centre de service de messagerie GSM
(SMSC) » [B2]
✓ Mame Meissa BEYE et Habsatou NIANG, « Mise en œuvre d’une plateforme web
d’envoi de SMS » [B5]
✓ Frédéric GOMES (2010-2011), « Mise en place d’un système d’alerte précoce par SMS
via kannel» [B4]
✓ Sami MOUFATIH, « Envoi de SMS / EMAIL via Internet et/ou Modem GSM [W3] ;
✓ Tchapo TANTE-GNANDI, « Implémentation d'un portail SMS à base du logiciel
KANNEL » [W5].
✓ Bocar Moussa SOW (2010), « Mise en place d'une passerelle SMS avec Kannel » [W4].
✓ La documentation technique sur la passerelle kannel à savoir le « userguide » et
« Kannel architecture and Design » [W2] nous ont été très utiles pour comprendre le
fonctionnement, l’installation et la configuration de la passerelle kannel.
Dans son projet, Youssef Haddad a étudié l’architecture et le fonctionnement d’un
SMSC et a utilisé le logiciel QNAP (Queueing Network Analysis Package) pour faire des
simulations en vue d’évaluer les performances d’un SMSC.
Frédéric GOMES a également utilisé Kannel et un modem GSM de marque
MULTITECH pour la mise en place de son système ainsi les langages de programmation
comme PHP et HTML.
Dans son travail, Sami MOUFATIH a conçu et réalisé un logiciel d'envoi de SMS/E-
mail, qui informe les clients des sociétés de vente, des promotions en cours. Elle a en outre
utilisé un modem GSM comme terminal de réception des SMS.
Tchapo TANTE-GNANDI a quant à lui déployé la passerelle SMS Kannel pour la mise
en place d'un noyau de traitement des SMS, noyau qui lui aura servi au traitement des SMS par
sa structure d'accueil et à fournir aux utilisateurs intéressés, un accès aux SMS surévalués.
Bocar Moussa SOW a dans son étude, utilisé le logiciel Kannel et un téléphone de marque
Nokia comme modem GSM pour l’envoi et la réception de SMS afin de mettre en place une
passerelle SMS pour son établissement d’accueil.
Il s’agit ici de déterminer les moyens matériels et logiciels ainsi que les outils
nécessaires à la mise en place du serveur SMS.
C’est le couplage entre le serveur de contenu et la passerelle SMS qui permet de créer
le serveur SMS. Ce couplage se fait dans le fichier de configuration de Kannel à travers les
services SMS qui seront créés à ce niveau.
La création des services SMS est très importante car ce sont ces services qui permettront
aux utilisateurs d’accéder aux informations stockées sur le serveur SMS.
Ces tests permettent de savoir si les deux modules du système arrivent à communiquer
et que les services SMS qui ont été créés fonctionnent correctement. Ces tests se font
notamment à travers l’envoi de SMS depuis la plateforme web et l’envoi de SMS contenant un
mot clé depuis un mobile vers le serveur SMS.
DEUXIEME PARTIE:
ANALYSE, CONCEPTION
ET IMPLEMENTATION
DE LA SOLUTION
Le système doit être déployé sous Linux (Distribution Ubuntu 14.04 LTS). Nous
utiliserons comme passerelle SMS le logiciel Kannel dans sa version 1.4.3 ainsi que la suite
LAMP. Les langages de programmation utilisés sont le HTML, PHP, JS/AJAX, CSS.
La conception d’un système passe par une phase d’analyse qui nécessite de mettre en
place un modèle du système à développer. Parmi les méthodes d’analyse, Merise, qui date des
années soixante-dix, reste très fortement implanté en France. La méthode Merise est fondée sur
la séparation des données et des traitements à effectuer en plusieurs modèles conceptuels,
logiques et physiques. La séparation des données et des traitements a pour but de donner une
certaine longévité au modèle. En effet la structure des données n’a pas à être modifiée dans le
temps, tandis que les traitements le sont plus fréquemment.
L’analyse du projet s’est faite avec la méthode MERISE puisqu’il s’agit de la seule
méthode d’analyse étudiée pendant notre parcours scolaire et est également la méthode la plus
utilisée et la plus répandue dans les pays francophones.
Merise est particulièrement adaptée pour les outils informatiques tels que les systèmes de
gestion de fichiers et les bases de données relationnelles.
Le choix des langages et des outils est une activité très importante avant la mise en
œuvre du projet. Cette partie présente en premier lieu les langages de programmation utilisés et
en second lieu les outils qui ont permis de réaliser le projet.
3.1.1 Le HTML
3.1.2 Le CSS
Le langage CSS (Cascading Style Sheets) est utilisé pour définir l’aspect futur de notre
site, comme par exemple la couleur du fond de la page ou la police. Plus concrètement, le CSS
(ou feuille de style), c’est un petit fichier (exemple « style.css ») dans lequel nous allons définir
l’aspect futur de votre site.
3.1.3 Le JavaScript
Le code JavaScript est inséré directement dans les pages web ou dans un fichier séparé
(exemple : script.js) mais contrairement à PHP il est exécuté par le navigateur sur le poste client.
Le temps de latence est donc presque nul puisqu’il n’y a pas d’échange de données avec le
serveur. Toutefois ce langage présente des problèmes de portabilité entre les différents
navigateurs d’où la nécessité de restreindre son utilisation au contrôle des données saisies par
l’utilisateur.
3.1.4 PHP
Le langage PHP est utilisé principalement en tant que langage de script côté serveur, ce
qui veut dire que c'est le serveur (la machine qui héberge la page Web en question) qui va
interpréter le code PHP et générer du code (constitué généralement de XHTML ou de HTML,
de CSS, et parfois de JavaScript) qui pourra être interprété par un navigateur. PHP peut
également générer d'autres formats en rapport avec le Web, comme le WML, le SVG, le format
PDF, ou encore des images telles que JPEG, BMP, GIF ou PNG.
Il a été conçu pour permettre la création d'applications dynamiques, le plus souvent dédiées au
Web. PHP est très majoritairement installé sur un serveur Apache, mais peut être installé sur
les autres principaux serveurs HTTP du marché, par exemple IIS.
3.1.5 SQL
SQL est un langage d'interrogation structuré. En fait SQL est un langage complet de
gestion de bases de données relationnelles. Il a été conçu par IBM dans les années 70. Il est
devenu le langage standard des systèmes de gestion de bases de données. C'est à la fois :
✓ un langage d'interrogation de la base
✓ un langage de manipulation des données,
✓ un langage de définition des données,
✓ un langage de contrôle de l'accès aux données,
Le langage SQL est utilisé par les principaux SGBDR : DB2, Oracle, Informix, MySQL, RDB,
... Chacun de ces SGBDR a cependant sa propre variante du langage.
Parmi les SGBDR existant, le choix s’est porté MySQL essentiellement pour les raisons
suivantes :
✓ MySQL est une solution courante en ce qui concerne l’hébergement public de site
Internet.
✓ MySQL offre une très bonne intégration dans l’environnement PHP/Apache et une
bonne performance.
✓ MySQL est le SGBDR qui nous est le plus accessible
Notepad++ est un éditeur de code source qui prend en charge plusieurs langages. Ce
programme, codé en C++, a pour vocation de fournir un éditeur de code source de taille réduite
mais très performant. Il utilise Scintilla comme une de ses composantes. Pour éviter les erreurs
ou juste pour mettre en évidence certaines lignes de code, il est possible de faire des colorations
syntaxiques et des reliefs syntaxiques. Chaque utilisateur peut du reste définir le langage qu'il
veut utiliser.
Un acteur est une entité externe ou interne qui interagit avec le système. Le terme acteur
ne désigne pas seulement les utilisateurs humains mais également les autres systèmes.
15
Une licence qui fixe les conditions légales de distribution des logiciels libres du projet GNU. Le projet GNU
(GNU is Not Unix - acronyme récursif) a démarré en 1984, sous l'impulsion de Richard Stallman, avec la
mission de développer un système Unix complètement libre.
- Utilisateur des services SMS : Personne qui sollicite le système (Peut être un étudiant,
un parent d’élèves ou tout autre personne ou encore un mobile GSM)
Ce tableau liste l’ensemble des flux d’informations échangées entre le serveur SMS et les
utilisateurs des services SMS.
4.1.2.2 Graphe des flux ou MCC
3 SERVEUR 2 UTILISATEUR
4
Ce tableau a été réalisé suite à l’analyse du système (recensement des données du domaine
étudié) et regroupe l’ensemble des informations relatives au système d’information, leurs
codifications et leurs significations. Il constitue la base de connaissance des informations
contenues dans la base de données.
mt_ins
(1,n)
(1,n)
APPARTENIR (1,n) AVOIR
(1,1)
(1,n)
CONCERNER
CUMULER
(0,n)
Messages
(1,1) Etudiant
(1,1) nbre_h
id_msg
Scolarite mat_etu
date_env
(1,n) PAYER (1,1) nom_etu (1,n) DESTINER (1,1)
Id_sco dest_msg
cont_etu
mt_sco type_msg
cont_par
cod_sec txt_msg
stat_msg
cout_form (1,1)
EFFECTUER (1,n) (1,n)
APPARAITRE (1,n)
(1,n) OBTENIR
Versement (1,n)
Repertoire
Le MCD ne peut pas être implanté dans une base de données sans modification. Il est
obligatoire de transformer ce modèle. On parle alors de passage du MCD vers le MLD.
Le modèle logique correspond à l’organisation des données dans une base de données
relationnelle et représente un choix logiciel pour le système d'information. C’est le MLD qui
pourra être implanté dans une base de données relationnelle.
Le passage du MCD vers le MLD donne le résultat suivant :
Table : classe
Clé primaire : id_class
Support : disque dur
Organisation : directe indexée
Table : filiere
Clé primaire : code_fil
Support : disque dur
Organisation : directe indexée
Table : scolarite
Clé primaire : id_sco
Support : disque dur
Organisation : directe indexée
Codification Signification Type Longueur Nature Observation
id_sco Identifiant scolarité AN 6 E identifiant
mt_sco montant scolarité N 10 E
Table : etudiant
Clé primaire : matricule
Support : disque dur
Organisation : directe indexée
Codification Signification Type Longueur Nature Observation
mat_etu matricule étudiant AN 10 E identifiant
nom_etu nom complet étudiant AN 15 E
cont_etu contact étudiant N 12 E
cont_parent contact parent N 12 E
code_sec code secret AN 05 C
cout_form coût formation N 7 E
Table : emploi_du_temps
Clé primaire : id_emp
Support : disque dur
Organisation : directe indexée
Table : Heures_Absence
Clé primaire : id_h_abs
Support : disque dur
Organisation : directe indexée
Table : moyenne
Clé primaire : id_moy
Support : disque dur
Organisation : directe indexée
Codification Signification Type Longueur Nature Observation
id_moy Identifiant moyenne AN 05 E Identifiant
moy moyenne N 07 E
index_moy
index moyenne AN 15 E
Table : repertoire
Clé primaire : id_rep
Support : disque dur
Organisation : directe indexée
Codification Signification Type Longueur Nature Observation
id_rep Identifiant répertoire AN 07 E Identifiant
nom_cont nom contact AN 25 E
num_cont
numéro contact N 25 E
grp_cont
groupe contact AN 25 E
Table : versement
Clé primaire : id_vers
Support : disque dur
Organisation : directe indexée
Codification Signification Type Longueur Nature Observation
id_vers Identifiant versement AN 12 E Identifiant
mt_vers Montant du versement N 10 E
vers_total Versement total N 10 C
solde Solde N 10 C
date_vers Date versement AN E JJ/MM/AAAA
08
Les tableaux 5 à 14 constituent le modèle physique de données. Chaque tableau représente une
table de la base de données et liste également les attributs de cette table. Chaque table contient
des informations spécifiques.
Par exemple, la table etudiant est la table qui contient toutes les informations (matricule,
nom et prénom, contact étudiant, contact parent, code secret, coût formation) sur les étudiants.
Pour mettre en place des services basés sur le SMS il est nécessaire d’avoir une
passerelle SMS capable de relayer les messages du réseau GSM vers le réseau IP. Ceci fera
l’objet de notre étude sur la passerelle SMS Kannel dans cette section.
5.1 Présentation
Kannel est un projet Open Source et gratuit mis sous licence FreeBSD16 lancé en mars
1999, par la compagnie Finlandaise WAPIT. Kannel est actuellement disponible pour les
systèmes Linux (Redhat et Debian) et a été reconnue en mars 2001 lorsqu’il a été certifié par
WAP Forum en tant que première passerelle WAP 1.1 dans le monde. Elle est écrite en langage
C et fournit une passerelle mixte, SMS et WAP. En outre, elle permet également de gérer le
push, le pull ou pull-push SMS c'est-à-dire respectivement, l'envoi des messages aux entités
extérieures, la réception d'un SMS ou la réception de requête, puis l'envoi de la réponse après
traitement à partir de la plateforme. Au niveau de l'application se fait le traitement de la requête,
puis l'envoi de la réponse via le SMSC de rattachement à l'abonné demandeur. C'est un outil
très intéressant pour développer des applications en collaboration avec le serveur Apache.
Le SMS (Short Messaging Service) est un moyen d’envoi de messages courts (160
caractères) à partir d’un mobile GSM vers un autre. Kannel fonctionne comme une passerelle
SMS, communiquant avec plusieurs types différents de SMSC, et relayant les messages vers
les fournisseurs de contenus, comme des requêtes HTTP. Les fournisseurs de contenus
répondent alors à cette requête HTTP et une réponse est renvoyée au terminal mobile avec la
connexion au SMSC approprié utilisant un protocole spécifique de SMSC.
Comme pratiquement chaque différent type de SMSC utilise un protocole différent, une
passerelle SMS est utilisée pour maintenir la connexion avec les SMSC et les relayer dans une
forme unifiée. La plus grande particularité de Kannel est de réduire chaque protocole de SMSC
à un protocole bien connu de HTTP, simplifiant ainsi le déploiement de services.
Une passerelle SMS peut également être utilisée pour relayer des messages SMS d’un réseau
GSM à un autre si les réseaux ne routent pas correctement les messages.
16
La licence FreeBSD est une licence libre utilisée pour la distribution de logiciels. Elle permet de réutiliser une
partie ou tout le logiciel sans restriction, qu'il soit intégré dans un logiciel libre ou propriétaire.
En plus de servir de messages SM-MO, Kannel fonctionne aussi comme une passerelle
SMS Push. Les fournisseurs de contenus peuvent demander à Kannel d’envoyer des messages
aux terminaux mobiles. Kannel détermine alors le bon SMSC pour relayer le message SMS et
envoie le SMS à ce SMSC, en utilisant encore un protocole spécifique à ce SMSC. De ce fait
le fournisseur de contenus n’aura pas à connaître un protocole SMSC mais juste l’interface de
Kannel vers lequel il enverra le message.
SMSC
Protocol HTTP
Kannel
Figure 25 : Position logique d'une passerelle SMS entre un mobile et un serveur de contenus
Une passerelle WAP agit comme un intermédiaire entre le réseau WAP et le web. Une
passerelle convertit une requête WAP en une requête web, puis la réponse web en une réponse
WAP. Une passerelle WAP peut être vue comme un convertisseur de « piles de protocole ».
HTTP
WAP Stack
Kannel
Figure 26 : Position logique d'une passerelle WAP entre un mobile et un fournisseur de contenus
La passerelle WAP communique avec le téléphone en utilisant une pile de protocole WAP, et
traduit les demandes qu'il reçoit en HTTP normal. Ainsi les fournisseurs de contenu peuvent
utiliser tous les serveurs HTTP et utiliser le savoir-faire existant au sujet de l'implémentation et
de l'administration de service HTTP.
Kannel fonctionne simultanément comme passerelle WAP et SMS.
Le principal but de Kannel est d'installer et mettre en place le protocole WAP. L'envoi
de données à partir de Kannel vers un client s'appelle le push (WAP ou SMS). Pour fonctionner
correctement, il est nécessaire d'acheter un compte SMSC chez un opérateur de téléphonie
mobile. En somme Kannel utilise plusieurs types de liaisons à savoir :
✓ Une liaison spécialisée
✓ Une liaison avec un modem GSM
Mais celle qui nous intéresse pour notre projet est celui de la passerelle Kannel connecté à un
Modem GSM.
Le SMS est acheminé par le réseau de téléphonie mobile vers le serveur. Le serveur
autorise, à part la liaison au SMSC via une liaison spécialisée, une liaison à travers un simple
modem GSM. L'acheminement des SMS requête-réponse diffère selon les deux modes de
liaison. En effet, selon le mode de liaison du serveur au SMSC de l'opérateur, par le truchement
d'un modem GSM (SMSC virtuel), le SMS traverse quatre fois l'interface Air comme l'indique
la figure ci-dessous.
RESEAU GSM
IR
eA
ac
erf
Int
Application de
MS
traitement des
SMS
Elle est indiquée lorsqu'il s'agit d'un trafic pas assez grand. Il est prouvé empiriquement que le
serveur connecté selon ce mode, ne peut traiter qu'au plus 6 à 10 SMS à la minute.
RESEAU GSM
IR
eA
ac
erf
Int
Liaison spécialisée
SMSC
Application de
MS BTS
traitement des
SMS
La liaison via un modem est celle qui a été retenue pour la mise en place du système, surtout
du fait de sa mise en œuvre facile, techniquement et financièrement. Les résultats obtenus sont
valables pour une liaison spécialisée.
Le traitement du SMS se faisant au sein du serveur Kannel, il convient de procéder à une étude
de sa structure interne.
L'architecture de Kannel révèle qu'il est composé de trois principaux blocs appelés
encore « box » ; leur intercommunication correcte confère à Kannel, sa stabilité et son utilité.
En effet, il s'agit de :
✓ Le bearerbox implémentant le niveau porteur du WAP (couche WDP). Il permet entre autre
la connexion aux différents SMSC.
✓ Le smsbox implémentant l’essentiel des fonctionnalités de la passerelle SMS. Il reçoit les
messages texte depuis le bearerbox et les interprètes comme des requêtes vers des services
et y répond en utilisant le chemin approprié.
✓ Le wapbox qui implémente la pile de protocole WAP et pour le push, le WAP Push client
(protocole de niveau applicatif). Quand le wapbox est utilisé pour le « pushing », il est appelé
PPG (Push Proxy Gateway). L’autre moyen d’envoi de donnée étant le « pulling ».
Mis à part la réception de messages entrants, le bearerbox reçoit aussi tous les messages
sortants et les adapte au format du réseau auquel il s'interconnecte.
Le bearerbox est l'interface entre le réseau de téléphonie mobile et les autres
compartiments du serveur.
Le bearerbox fait appel à plusieurs threads17 et files d’attente au niveau de la passerelle, son
fonctionnement interne est décrit par la figure suivante.
17
Un thread est une unité d’exécution ou de traitement (tâche ou un fil d’exécution).
UDP Socket
Read UDP Write UDP
packet packet
UDP_receiver UDP_sender
enqueue dequeue
Socket specific
Incoming_wdp
list
dequeue enqueue
Wdp_to_wapboxes Wdp_router
enqueue dequeue
Box specific
Outgoing_wdp
list
dequeue enqueue
Boxc_sender Boxc_reader
Data
thread
structure
Jusqu’à présent, le bearerbox implémente seulement UDP comme support pour la pile
de protocole WAP.
Le bearerbox utilise plusieurs threads et files d’attente. Le bearerbox a un thread de type
udp_receiver séparé pour chaque socket UDP. Ce thread lit les paquets UDP, les convertit en
un message-objet interne à kannel et les met dans la file d’attente incoming_wdp. Tous les
threads udp_receiver utilisent la même file d’attente.
5.6.2 Le smsbox
18
Un socket est un point d’entrée entre deux applications du réseau. Il permet l’échange de données entre elles à
l’aide de mécanismes d’entrée et sortie.
La conception d'un smsbox est simple. Un smsbox reçoit un SMS à partir du bearerbox,
l'analyse afin d'en extraire les mots-clés et les paramètres s'il y'a lieu. En fonction du mot clé,
le serveur renvoie la réponse au client ; réponse qui peut être un texte statique, le résultat de
l'exécution d'une action associée. Dans le cas où le service SMS configuré dans le fichier
renvoie à une URL, le smsbox peut récupérer les données contenues et les envoyer au bearerbox
qui, à son tour, les renvoie au client via le SMSC de l'opérateur de téléphonie mobile. Le smsbox
peut également réceptionner les SMS, provenant d’ordinateurs d'un réseau informatique tel que
l'intranet ou l'Internet. En effet, les messages reçus au format HTTP sont convertis en messages
de type SMS pour être accessibles aux terminaux GSM.
5.6.3 Le wapbox
Cette partie n’est pas développée dans ce projet. Il faut retenir de ce bloc qu'il met en
place le protocole WAP (Wireless Applicaton Protocol) ; protocole qui récupère les requêtes
qui débouchent des mobiles supportant le protocole WAP, puis les traduit en requêtes
compréhensibles par les serveurs HTTP et vice versa.
Le Wapbox envoie les contenus push via SMS, mais la requête résultante utilise un support IP.
Les données sont échangées entre le bearerbox et les wapbox et smsbox à travers le
protocole TCP/IP. TCP/IP est un protocole adapté très souvent pour une utilisation en réseaux
étendus (comme Internet), et son incorporation dans la procédure de communication des
différents blocs de Kannel, signifie que ces blocs peuvent être déployés sur des ordinateurs
aussi distants que possible, si nécessaire. Les performances en termes de risque de crash sont
plus optimisées lorsque ces blocs sont déployés sur des machines différentes. Rappelons aussi,
que de façon permanente, les différents blocs, échangent à intervalles réguliers des messages
de signalisation. La figure suivante représente l'architecture physique du serveur /passerelle
Kannel :
SMSBOX TCP
BEARERBOX
WAPBOX
TCP
de fonctionnement des différents outils d’interconnexion et pour cause la passerelle inclut les
fonctionnalités des outils de niveau qui lui est inférieur tels les routeurs, ponts, répéteurs.
Une fois l’installation terminée, il faut vérifier que le serveur Apache est en cours d’exécution.
Pour cela il suffit d’ouvrir un navigateur et taper le lien http://localhost. La page ‘It Works ’
s’affiche. Ce qui signifie que serveur web est bien installé et est en cours d’exécution.
Cette étape consiste essentiellement à la création des pages de notre application web.
Cela implique l’édition de code PHP. Rappelons que l’éditeur de code source retenu est
notepad++.
Le second test à effectuer permet de savoir si le code PIN a été accepté, si le modem est connecté
au réseau GSM et afficher le nom de l’opérateur. Pour cela il faut taper successivement les
commandes AT+CPIN?, AT+CREG? et AT+COPS?. Les résultats de ces commandes sont
présentés sur la figure 34.
Cette carte SIM doit être insérée dans le modem pour que le SMSC virtuel puisse
communiquer avec les autres SMSC et pouvoir transmettre des SMS.
Ce téléphone est utilisé pour tester les différents services. Des SMS seront envoyés au
numéro de la carte SIM préalablement insérée dans le modem. De même lorsque le service
sollicité devra renvoyer une réponse, ce portable servira à vérifier le bon fonctionnement du
système. Il est possible de recevoir des messages d’erreur venant de la part de Kannel, vérifier
les syntaxes des SMS reçus ou vérifier les opérations ; en d'autres termes la validité des
configurations.
qui caractérise la configuration du modem. Pour l’avoir il faut exécuter la commande lsusb.
Changer la valeur de ATTR{idProduct} par votre idProduct.
19
Userguide : http://www.kannel.org/download/1.4.3/userguide-1.4.3/userguide.html
✓ Full : La passerelle n’accepte pas les messages venant des SMSC, car la longueur
maximale de la file d'attente est atteinte.
✓ Shutdown : Lorsque la passerelle est dans cet état, elle n'accepte pas de nouveaux
messages venant des SMSC et des ports UDP, mais traite tous les processus déjà dans le
système. Dès que les files d'attente sont vidés, le système se ferme (exit).
L'état de Kannel peut être modifié via l'interface d'administration HTTP (voir ci-
dessous), et l'arrêt peut également être initié via TERM ou un signal INT à partir d’un terminal
(invite de commande). En outre, le bearerbox peut déjà être démarré à l’état « suspended » ou
à l'état « Isolated » avec les options -S ou -I en ligne de commande.
Les commandes nécessaires à l’administration de kannel en mode HTTP sont listées dans le
tableau ci-dessus. Il s’agit entre autres des commandes permettant de voir l’état du serveur
kannel, de redémarrer ou d’arrêter le serveur, etc…
sont obligatoires. En effet, les groupes « core » et « smsc » administrent le bearerbox tandis
que les groupes « smsbox », « sms-service » s’occupent du smsbox. Les différents groupes
sont définis par une succession de variables. La syntaxe impose que ces groupes soient séparés
les uns des autres par au moins une ligne vierge. D’une façon générale, il existe trois types de
variables à savoir :
• Groupe SMSC : Il permet de définir les SMSC que Kannel pourra utiliser
#Configuration du SMSC
group = smsc
smsc = at
smsc-id = Huawei-E1552
modemtype = huawei_e1552
device = /dev/ttyUSB0 (donné par la commande wvdialconf)
host = localhost
sms-center = +22507070002
my-number = +22587047813
keepalive = 10
speed = 9600
sim-buffering = true
#allowed-prefix = "+225;225;0"
unified-prefix = "+225,225;+,00"
pin = 0000
log-file = /var/log/kannel/smsc-.log
log-level = 1
#Modems
group = modems
id = huawei_e1552
name = "huawei E1552"
detect-string = "Huawei"
init-string ="ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
message-storage = "SM"
speed = 9600
• Groupe sms-service : Il permet de définir les services SMS à utiliser. Chaque service
est identifié par un mot clé et l’application qui se chargera de traiter les requêtes.
L’envoi de SMS avec kannel peut se faire à partir d’un terminal ou par un navigateur
web en tapant l’url suivante :
http://localhost:13013/cgi-bin/sendsms?username=kannel&password=kannel&from=
0022587047813&to=0022557433225&text=Bonjour
Nous recevons le message 0: Accepted for delivery qui signifie que le message a été accepté
et est livré vers un SMSC. Notons que ce statut ne garantit pas que le destinataire reçoive le
message.
Pour plus d’informations sur les codes de réponse des envois de SMS voir le tableau de
l’annexe 3.
Pour tester le bon fonctionnement du service SMS « test », il faut envoyer le mot clé
« test » par SMS au numéro de la carte SIM du modem GSM. Le téléphone portable reçoit en
retour le message "Configuration de kannel réussie. Bravo !!! ". Ce qui signifie que Kannel
a été configuré correctement. La passerelle SMS est donc prête à être associée à l’application
web pour former le serveur SMS.
Pour la suite, cinq différents services SMS (Moyenne, Information, Scolarité, heures d’absences
et Emploi du temps) ont été créés ayant respectivement pour mot clé MOY, INFO, SCO, HABS
et ETH.
Le service MOYENNE a pour but de permettre aux étudiants et aux parents d’élèves de
consulter les moyennes en fin de Trimestre ou semestre.
Le service INFORMATION permet à toute personne d’avoir des informations générales sur
l’école (Filières, montant inscription et scolarité, cycles, etc.)
Le service SCOLARITE quant à lui, permet aux étudiants d’avoir leur situation vis-à-vis de la
scolarité (Coût de la formation, total versé, solde).
Le service HEURE ABSENCE permet de consulter les heures d’absences cumulées par
l’étudiant à un moment donné.
Enfin le service EMPLOI DU TEMPS permet aux étudiants de consulter leur emploi du temps
en début de semaine (le dimanche par exemple) sans se déplacer.
Passerelle Kannel
TCP/IP
Bearerbox SMSC Opérateur Mobile
SMPP
TCP/IP
TCP/IP
Smsbox APPLICATION
HTTP
Kannel
bearerbox
Légende:
SMS requête
SMS réponse
Dans le cas d’un envoi de SMS, l’administrateur compose le message à partir de l’application
web et l’envoie. Le SMS arrive au niveau du smsbox qui l’achemine vers le bearerbox. Le SMS
est ensuite transmis au modem GSM qui se charge de le transmettre au destinataire à travers le
réseau GSM.
Dans le cas de la réception d’un SMS-requête, une série d’actions est exécutée par le système
à la suite de laquelle une réponse est renvoyée au demandeur. Le traitement des SMS-requête
est détaillé dans la section ci-dessous.
1
SERVEUR
2 MANGOSMS
3
Utilisateur des
services SMS
1- Lorsqu’un étudiant ou un parent d’élèves désire avoir une information, il envoie un SMS
contenant un mot clé qui caractérise la nature de l’information demandée. Le SMS arrive au
niveau du bearerbox qui le transmet par la suite au smsbox.
2- Le smsbox analyse le contenu du SMS en vue de trouver un éventuel mot clé. Une fois
le mot clé identifié, le smsbox exécute l’action qui lui est associée. Dans notre cas les actions à
exécuter sont des scripts PHP qui vont à chaque fois ramener des informations stockées dans
une base de données.
Le traitement des requêtes SMS est structuré comme suit :
Cette page permet d’accéder à la plateforme MangoSMS. Un login et un mot de passe sont
requis.
La page d’accueil contient le formulaire d’envoi de SMS. Les destinataires peuvent être
renseignés directement ou en les ajoutant à partir du carnet d’adresses. Il est également possible
d’ajouter un groupe de contacts comme destinataire dans le cas où l’on souhaite envoyer un
même message à un groupe de personnes par exemple à tous les élèves d’une même classe.
Cette page permet la saisie des données relatives aux étudiants à savoir ajouter des
étudiants, saisir les versements, les moyennes, les heures d’absences…
Il s’agit du répertoire des contacts des étudiants et leurs parents. Il est possible
d’afficher tout le répertoire ou afficher les contacts par groupe.
CONCLUSION
Ce projet, a permis tout d'abord l’étude d’un secteur d'activité issu des TIC, celui des
nouveaux services à valeur ajoutée sur les réseaux radio-mobiles GSM. Pour offrir ce type de
services, une solution reposant sur la technologie du service de messages courts (SMS) du GSM
a été décrite.
Ce stage a été une expérience enrichissante. Il a permis d’une part de mettre en pratique
les connaissances théoriques acquises tout au long de la formation et d’autre part de réaliser un
outil tant désiré en milieu professionnel.
L'infrastructure SMS mise en place a exigé à la fois un minimum de connaissance du réseau
GSM, particulièrement le monde du SMS et des outils de développement informatique,
puisqu'il est désormais impensable de dissocier les télécommunications de l'informatique. Cette
infrastructure SMS joue un double rôle.
Le serveur SMS et la plateforme web facilitent les communications et l’accès aux
informations pour les différents acteurs de l’école.
L'expérience acquise suite à ce travail, montre que l'avenir de la téléphonie mobile passe par de
telles applications ; car le plus important est de permettre une pleine utilisation des SMS, vu
que presque tout le monde y est attiré.
L'un des problèmes rencontrés, était la documentation en français sur la passerelle
Kannel. Cela nous a pris beaucoup de temps pour comprendre comment installer et configurer
notre passerelle, mais tout s'est bien déroulé dans l'ensemble. L'autre problème était lié à la
maitrise du langage PHP, ce qui avait un peu ralentit l'élaboration de ce projet.
La réalisation de ce projet ne s'est pas faite d'un point de vue technique de façon aisée,
car il n'a pas suffi de disposer simplement de certaines documentations sur le site officiel de
Kannel pour la mise en place de cette infrastructure SMS. D'ailleurs, les foires aux questions
sur Internet appelées forum en témoignent.
Au final, ce projet a permis la compréhension de la technologie TCP/IP, des commandes
Linux et de la programmation en PHP. Aussi, l’on a beaucoup appris sur les solutions « Open
Source » et leur place dans l'implémentation de produits téléinformatiques.
Aussi avec humilité nous ne perdons pas de vue que ce document est loin d'avoir tout
dit puisque le fossé entre la mobilité des personnes et leur besoin d’être constamment informé
reste encore à être réduit.
Le système mis en place ne permet pas de traiter un grand nombre de SMS à la fois (capacité
de traitement estimée à 10 SMS par minute). Pour atteindre des performances plus élevées, il
faudrait acheter un compte SMSC chez un opérateur mobile et relier le serveur MangoSMS
directement au SMSC de l’opérateur via une liaison spécialisée.
Cependant, les nouvelles générations de réseau permettent d'envoyer en plus des
messages textes, des contenus images, audio et vidéo. Il est donc possible d’envisager de
réaliser un autre type de service à valeur ajoutée basé sur le MMS (Multimedia Messaging
Service), qui est une version améliorée du SMS permettant l’envoi et la réception de contenu
multimédia. Mbuni est une passerelle MMS Open Source qui permet de mettre en place ce type
de service. Les établissements pourraient ultérieurement juger utile la nécessité d'avoir cette
solution pour leurs besoins de communication avec tous leurs partenaires.
BIBLIOGRAPHIE
Mémoires
[5] Abdoulaye Ly et Baba Ngom, Mise en place de services à valeur ajoutée et d’un serveur
de streaming, 100p.
[6] GOMES Frédéric, 2011, Mise en place d’un système d’alerte précoce par sms via Kannel,
mémoire de fin de cycle, 68p.
[7] HADDAD Youssef, 2004, Qualité de service d’un SMSC, mémoire de fin de cycle, 73p.
[8] Mame Meissa BEYE & Habsatou Niang, 2010, Mise en œuvre d’une plateforme web
d’envoi de sms, mémoire de fin de cycle, 68p.
[9] Nana Tchoutang Anicet, 2009, Etude d'une passerelle/serveur sms : Kannel, mémoire de
fin de cycle, 17p.
WEBOGRAPHIE
ANNEXES
Selon une étude faite par Atique Ahmed Khan, l’initiateur du projet SCADA, il y a 3 manières
de développer une application SMS (ESME) en général :
Avec le service SM-MO, la station mobile envoie un message court au SMSC. Dans ce cas, le
cheminement logique des messages courts est le suivant : MS MSC IWMSC SMSC
(FigureA5 1).
Lorsque l'utilisateur mobile souhaite envoyer un message court, il doit indiquer l’adresse du
destinataire et l’adresse du SMSC.
1. L’émetteur remet le message court à son MSC/VLR de rattachement (VMSC/VLR, Visited
MSC/VLR) à travers la demande SMS-SUBMIT.
2. Le MSC émet un message MAP-SEND-INFO-FOR-MO-SMS à son VLR pour lui
demander le numéro de téléphone (MSISDN, Mobile Station ISDN Number) de l’émetteur et
pour vérifier qu’aucune restriction n’est imposée à cet émetteur.
3. Le VLR retourne alors une réponse MAP-SEND-INFO-FOR-SMS-ack.
4. Si la réponse est positive, le MSC émet le message MAP-MO-FORWARD-SHORT-
MESSAGE à la fonction SMS-IWMSC à travers le réseau SS7. Ce message contient l’adresse
du SMSC, les numéros MSISDN de l’émetteur et du destinataire, et le message court. Le
message court est donc véhiculé dans une transaction MAP.
5. La fonction SMS-IWMSC le retransmet à son tour au SMSC. Le SMSC stocke le message
et les adresses dans sa mémoire.
6. Le SMSC retourne une réponse (rapport de livraison) au SMS-IWMSC.
7. Ce rapport est inclus dans le message MAP-MO-FORWARD-SHORT-MESSAGE-ack
retourné par le SMS-IWMSC au MSC.
8. Le MSC retourne à l’émetteur un message SMS-STATUS-REPORT.
Avec le service SM MT, une station mobile reçoit un message court du SMSC. L’émetteur du
message peut être une autre station mobile ou toute entité externe au réseau (ex. un PC). Le
cheminement logique des messages courts dans le cas du service de base SM MT est le suivant
: SMSC SMS-GMSC MSC MS (FigureA5 2). Décrivons-le plus précisément :
1. La fonction SMS-GMSC reçoit un message court du SMSC.
2. Cette fonction demande des informations de routage du message au HLR à travers la requête
MAP-SEND-ROUTING-INFO-FOR-SM, informations qui lui permettent de relayer le
message au MSC approprié (MSC auquel est rattachée la station mobile destinataire). Cette
requête contient notamment le numéro MSISDN du destinataire.
3. Le HLR utilise ce numéro pour rechercher les informations de routage qu’il retourne au
SMS-GMSC à travers la réponse MAP-SEND-ROUTING-INFO-FOR-SM-ack. Cette
réponse contient l’IMSI du destinataire et l’adresse du MSC de rattachement.
4. Le SMS-GMSC délivre le message court au MSC à travers une requête MAP-MT-
FORWARD-SHORT-MESSAGE.
6. A partir de l’IMSI fourni par le MSC, le VLR identifie la zone de localisation (LA, Location
Area) du mobile destinataire. Le VLR lance alors une procédure de paging (MAP_PAGE),
technique consistant à effectuer une recherche sur l’ensemble de la zone où est susceptible de
se trouver le mobile demandé. Si le VLR ne connaît pas l’identité du destinataire, un message
MAP-SEARCH-FOR-SUBSCRIBER est alors émis afin de lancer la procédure de paging sur
toutes les LAs dépendant du MSC. Dans l’exemple montré à la figureA5 2, l’identification du
mobile destinataire est supposée connue. La procédure de paging est initiée par le VLR mais
effectuée par le MSC.
7. Le MSC effectue la procédure de paging sur la zone de localisation du destinataire.
8. La station mobile destinataire répond positivement.
9. Le VLR retourne une réponse MAP-SEND-INFO-FOR-MT-SMS-ack au MSC, autorisant
ce dernier à relayer le message court à la station mobile destinataire.
10. Le MSC achemine le message court au destinataire via le message SMS-DELIVER et
reçoit un acquittement SMS-STATUS-REPORT.
11. Le MSC inclut ce rapport dans la réponse MAP-MT-FORWARD-SHORT-MESSAGE-
ack retourné au SMS-GMSC.
12. Le SMS-GMSC passe le rapport au SMSC.
Si la station mobile destinataire est hors tension, la réponse retournée par le HLR (3)
indique cette cause. Par ailleurs le HLR introduit le numéro MSISDN du destinataire dans un
fichier de données des messages en attente (MWD File, Message Waiting Data File). MWD
consiste en une liste d’adresses de SMSC ayant des messages en attente de livraison à la station
mobile destinataire.
Lorsque la station mobile destinataire est mise sous tension, elle se rattache (IMSI Attach)
auprès d'un MSC/VLR visité. Ce dernier en informe à son tour le HLR correspondant. Si le
numéro MSISDN de la station mobile qui s’est rattaché est présent dans le fichier de données
des messages en attente, le HLR envoie une notification MAP-ALERT-SERVICE-CENTER
au SMS-GMSC pour lui demander d’informer le SMSC de la présence du destinataire ; le
SMSC relance alors complètement la procédure SM-MT (FigureA5 2).
RAM: 2 Go
HDD: 500 Go
Serveur 01 250 000 250 000
Processeur: Dual
Core 2.0 GHz
Configuration
- - 200 000 200 000
et mise service