Vous êtes sur la page 1sur 12

ETUDE DU PROTOCOLE SMPP ET IMPLEMENTATION DE LA SOLUTION OPEN SMPP

Intoduction : Protocole SMPP


SMPP est un protocole ouvert dfini par le SMS Forum (www.smsforum.net). La version la plus rcente est la 5.0, mais la plupart des SMS-C implmentent la version 3.4, voire la 3.3. Les spcifications pour les versions 3.4 et 5.0 sont disponibles sur le site du SMS Forum. Dun point de vue technique, SMPP est un protocole binaire de niveau 7 (couche application) et sappuie sur un transport bas sur X25 ou TCP/IP. Cest un protocole o linitiative dun change peut tre prise soit au niveau du SMS-C (envoi dun SMS vers le service qui se traduit par lenvoi dune requte SMPP depuis le SMS-C vers ce service) ou au niveau du service (le service envoie une requte SMPP vers le SMS-C). SMPP est galement asynchrone : le service peut envoyer (ou recevoir) plusieurs SMS avant de recevoir (envoyer) les acquittements. Les deux entits, SMS-C et service, doivent donc agir comme des serveurs. Limplmentation directe par une application dune couche SMPP peut par consquent savrer assez complexe. Le schma de fonctionnement typique dune application est le suivant : lapplication se connecte sur le SMS-C et les changes de paquets (dans le langage rseau, on parle de Packet Data Unit, PDU) SMPP peuvent commencer dans un sens comme dans lautre. En ralit il y a trois types de connection possibles : -transmiter: qui ne permet que l'envoie de requetes au smsc -receiver : qui permet de recevoir des messages en provenance du smsc -transceiver : envoie et rception de messages. Les oprations implmentes par les PDU sont de type connexion, dconnexion, envoi de SMS, rception de SMS, envoi en masse, acquittements, etc. A chaque requte doit correspondre un acquittement.

PRSENTATION DE LA PASSERELLE/SERVEUR KANNEL Introduction : Les passerelles :


Pris au sens large, une passerelle est un outil permettant de passer d'un systme un autre ;Au sens strict du terme, une passerelle est un dispositif destin connecter des systmes de tlinformatiques ayant des architectures diffrentes ou des protocoles diffrents, ou offrant des services diffrents.La passerelle doit alors dpouiller la trame des informations spcifiques au protocole metteur et les remplacer par leurs quivalentes dans le protocole rcepteur. L'une des difficults de la messagerie SMS est que les SMSCs sont grs par des protocoles de communication propritaires. En d'autres termes, il n'a pas exist de normalisation proprement parl, par exemple, un SMSC de type NOKIA offrant un interface gr par le protocole CIMD ne saurait changer directement avec un SMSC d'un autre vendeur dont l'interface est gr par le protocole EMI. Pour juguler ce problme, une passerelle SMS est place entre ces deux SMSCs. 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. En ce sens, elle peut donc permettre d'envoyer/recevoir des SMS depuis ces dispositifs du protocole TCP/IP (les sites Internet, navigateurs, etc.). Il en existe une multitude dont certaines sont propritaires(Ozeki sms) tandis que

ETUDE DU PROTOCOLE SMPP ET IMPLEMENTATION DE LA SOLUTION OPEN SMPP


d'autre sont libres mais pas en produits finis: c'est le cas de kannel.

Kannel :
Kannel est un projet Open Source, mis sous licence FreeBSD lanc par la compagnie finlandaise Wapit Ltd en juin 1999. Elle est crite en langage C, et fourni une passerelle mixte SMS et WAP.La licence FreeBSD est une licence libre utilise pour la distribution de logiciels. Il s'agit d'une passerelle serveur de sms qui peut etre configurer suivant les besoins. Kannel offre une multitude de protocoles de communication avec les SMSC.Elle peut galement servir de serveur sms.Pour notre prsentation nous allons mettre en exergue ces deux fonctions(passerelle,serveur).

Architecture et fonctionnement de kannel :


Kannel est constitu de trois principaux blocs appels encore box ; c'est leur intercommunication correcte qui confre Kannel, sa stabilit et son utilit. En effet, il s'agit du :

a- Bearerbox
Le bearerbox est l'interface entre l'extrieur et les autres compartiments du serveur. Pour les autres blocs, Il joue le rle de routeur. En effet, c'est lui qui reoit les SMS provenant d'un rseau externe et se charge de les transmettre au bloc appropri. Au fur et mesure que les autres blocs se connectent et se dconnectent au bearerbox, ce dernier met jour dynamiquement la liste des blocs en ligne. Mis part la rception de messages entrants, le bearerbox reoit aussi tous les messages sortants et les adapte au format du rseau auquel il s'interconnecte.

b- SMS box
La conception d'un SMS box est simple. Un SMS box reoit un SMS partir du bearerbox, l'analyse afin d'en extraire les mots-cls et les paramtres s'il y'a lieu. En fonction du mot cl, le serveur renvoie la rponse au client ; rponse qui peut tre un texte statique, le rsultat de l'excution d'une action associe. Dans le cas o le service SMS configur dans le fichier renvoie un URL, le smsbox peut rcuprer les donnes contenues et les envoyer au bearerbox qui son tour les renvoie au client via un SMSC . Le smsbox peut galement rceptionner les SMS, provenant d`ordinateurs d'un rseau informatique tel que l'intranet ou l'Internet. En effet, les messages reus au format HTTP sont convertis en messages de type SMS pour tre accessibles aux terminaux GSM.

c- WAP box
Nous ne dvelopperons pas assez cette partie .Nous retiendrons de ce bloc, qu'il met en place le protocole WAP (Wireless Application Protocol) ; Protocole qui rcupre les requtes issues des mobiles supportant le WAP, puis les traduit en requtes comprhensibles par les serveurs HTTP et vice versa.

Mode de communication entre les box :

ETUDE DU PROTOCOLE SMPP ET IMPLEMENTATION DE LA SOLUTION OPEN SMPP


Les donnes sont changes entre le bearerbox et les wapbox, smsbox travers le protocole TCP /IP.Ces diffrents blocs, changent intervalles rguliers des messages de signalisations de faon permanente. TCP /IP est un protocole adapt trs souvent pour une utilisation en rseaux tendus (comme Internet), et son incorporation dans la procdure de communication des diffrents blocs de Kannel, signifie que ces blocs peuvent tre dploys sur des ordinateurs aussi distants que possible, si ncessaire. Les performances en termes de risque de crash sont plus optimises lorsque ces blocs sont dploys sur des machines diffrentes.

Installation de kannel :
Matriel : Un ordinateur sur lequel est install une distridution Linux Les pr-requis pour l'installation : installer les paquets : - libxml2 #apt-get install libxml2 - libxml2-dev #apt-get install libxml2-dev -libmysqlclient-dev #apt-get innstall libmysqlclient-dev si besoin de stoker les informations dans une base pour une rcupration ultrieur.

installation :
Nous avons : -tlcharg la version 1.4.3 de kannel disponible sur http://www.kannel.org/download/1.4.3/gateway-1.4.3.tar.gz. Le fichier gateway-1.4.3.tar.gz a t recupr dans le rpertoire /home/usr. -Dcompress le fichier en tapant la commande : #sudo tar xzf gateway-1.4.3.tar.gz on se place ensuite dans le repertoire gateway-1.4.3 #cd /home/user/gateway-1.4.3 et fait ce qui suit :

ETUDE DU PROTOCOLE SMPP ET IMPLEMENTATION DE LA SOLUTION OPEN SMPP


#./configure (-with-mysql -with-mysql-dir si besoin d'une base pour le stockage.) #make #make bindir=/usr/local/kannel install .kannel sera install dans le repertoire /usr/local/kannel Configuration de kannel : Crer le repertoire /etc/kannel : mkdir /etc/kannel faire une copie du fichier /home/ucao/gateway-1.4.3/doc/examples/kannel.conf dans le repertoire nouvellement cr.Ce repertoire va donc contenir le fichier de configuration de kannel(kannel.conf).Le fichier kannel.conf copier est un example de configuration de kannel.on le radapte nos besoins comme suit : #------------------goupe core d'administraion de kannel-- il est unique----------#debut configuration #CORE group = core admin-port = 13000 admin-password = bar #admin-deny-ip = "*.*.*.*" admin-allow-ip = "127.0.0.1" #wapbox-port = 13002 smsbox-port = 13001 dlr-storage = internal #dlr-storage = mysql wdp-interface-name = "*" log-file = "/etc/logkannel/bearerbox.log" #log-level=1 access-log = "access.log" #box-deny-ip = "*.*.*.*" box-allow-ip = "127.0.0.1" #log-level=1 unified-prefix = "00228,+237,00" #group = wapbox #bearerbox-host = localhost #log-file = "/etc/logkannel/wapbox.log" #--------------------interface dcoute de clients ----------------------# SMSBOX SETUP group = smsbox bearerbox-host = localhost sendsms-port = 6013 global-sender = 6013 sendsms-url = "/cgi-bin/sendsms" global-sender = 13013 sendsms-chars = "0123456789 +-"

ETUDE DU PROTOCOLE SMPP ET IMPLEMENTATION DE LA SOLUTION OPEN SMPP


log-file = "/etc/logkannel/smsbox.log" log-level = 1 access-log = "access.log" #-------------------------Configure ton smpp ici --------------------group=smsc smsc=fake port=10000 connect-allow-ip=127.0.0.1 #-----------------User ---------------------------# SEND-SMS USERS group = sendsms-user username = gege password = gege max-messages = 1000 concatenation = true #user-deny-ip = "*.*.*.*" user-allow-ip = "127.0.0.1,10.42.0.97" #--------------paramtre de connextion la BD------------------------------#--- mysql connection #group = mysql-connection #id = mydlr #host = localhost #username = root #password = nexxys2011 #database = managesms #max-connections = 1 #---- DLR table structure pour le gestion de accuss de recption #group = dlr-db #id = mydlr #table = dlr #field-smsc = smsc #field-timestamp = timestamp #field-destination = destination #field-source = source #field-service = service #field-url = url #field-mask = mask #field-status = status #field-boxc-id = boxc_id

ETUDE DU PROTOCOLE SMPP ET IMPLEMENTATION DE LA SOLUTION OPEN SMPP


group = sms-service keyword = heure header = gege telecom footer = merci text = date accepted-smsc = SMPPSim Le repertoire /etc/logkannel ainsi que les fichiers bearerbox.log et smsbox.log doivent etre crs au pralable. Dans ce fichier de configuration les lignes prcds de # ne seront pas pris en compte. Les groupes core et smsc paramtrent le bearerbox tandis que les groupes smsbox et sendsms-user paramtrent le smsbox. Le groupe core prcise Kannel de ne fonctionner seulement que comme un serveur /passerelle SMS . Le groupe sendsms-user permet de dfinir les utilisateurs accrdits pour l'envoi de SMS.Le groupe sms-service permet de dfinir les services SMS tester. Chaque service est identifi par un mot cl dont l'application se chargera de renvoyer de faon automatique la rponse lui correspondant. Ce sont les groupes sms-service et sendsms-user qui confrent a kannel sa fonction de serveur sms. Le goupre smsc L'tape suivante consistait configurer le groupe smsc . En effet, c'est cette configuration qui prcise le SMSC de l'oprateur avec lequel peut dialoguer l'application. Le plus important des paramtres est le protocole de communication avec le SMSC(ici smpp) ; une fois le protocole dfini, il ne restera qu` effectuer une configuration adquate des paramtres restants, pour relier le serveur ce dernier. En pratique, il n'en est pas ainsi puisque les oprateurs prfrent offrir trs souvent des connexions relais (passerelle), utilisant plutt le protocole HTTP (trs rpandu). Kannel en a aussi tenu compte et a propos un type de groupe smsc spcial appel http . En effet, Ce SMSC de type HTTP permet un accs tout SMSC d'oprateur dont trs souvent la passerelle offre une interface HTTP; Pour tester noter configuration de kannel afin de voir si les box communiquent entre eux, nous avons utiliser Fake smsc.En effet, le Fake SMSC joue le rle d'un SMSC distant et permet de tester la fonctionnalit de l'application ; ajoutons qu'il est purement logiciel et est implant dans le serveur Kannel.

ETUDE DU PROTOCOLE SMPP ET IMPLEMENTATION DE LA SOLUTION OPEN SMPP

Pour effectuer le test,il faut : -se placer dans le repertoire /home/user/gateway-1.4.3:cd /home/usr/gateway-1.4.3 -lancer le test avec : test/fakesmsc -i 0.01 -m 5 "100 200 text heure".le rsultat est le suivant :

NB:Notez qu'il faut , avant de lancer le test dmarrer kannel : -le bearerbox :/usr/local/sbin/bearerbox /etc/kannel/kannel.conf -le smsbox :/usr/local/sbin/smsbox /etc/kannel/kannel.conf

Dploiement de kannel avec un smsc de type smpp :


le but du projet est l'implmentation du protocole smpp avec kannel.Le smsc utiliser devra donc etre de type smpp.Pour ce faire nous avons opter pour un simulateur:SMPPSim de Selenium

ETUDE DU PROTOCOLE SMPP ET IMPLEMENTATION DE LA SOLUTION OPEN SMPP


Software.

PRESENTATION DE SMPPSim :
Il s'agit d'un simulateur de smsc de type smpp conu par Selenium Software. NB: SPPSim tourne sous java-1.6.x .Il est donc necessaire de procder a l'installation de java avant l'installation et la configuration de SMPPSim.

Installation et configuration :
D'abord tlcharger SMPPSim(fichier compress) depuis http://www.seleniumsoftware.com/downloads/SMPPSim.tar.gz. Toujours dans le repertoire /home/user . Ensuite on procde comme suit : #gunzip smppsim.tar.gz #tar xvf smpp.tar #cd /usr/local/smppsim #./startsmppsim.sh pour lancer SMPPSim Ou aprs dcompression ,ouvrir le dossier /home/user/SMPPSim en tant qu'utilisateur pour accder au fichier shell startsmppsim.sh et le lancer manuellement. Configuration Accder au fichier /home/user/SMPPSim/conf/smppsim.props.Plusieur variables sont configurer.Les plus important sont :

L'interface d'administration de SMPPSim est accessible par l'url http://localhost:88.

ETUDE DU PROTOCOLE SMPP ET IMPLEMENTATION DE LA SOLUTION OPEN SMPP

Configuration de kannel avec smsc de type SMPP(SMPPSim) :


On reconduit le fichier de configuration prcdent l'exception du groupe relatif au Fakesmsc qui sera remplac par : group = smsc smsc = smpp smsc-id = SMPPSim host = localhost port = 2775 receive-port = 2775 smsc-username = smppclient1 smsc-password = password system-type = 'VMA' #service-type = 'test' interface-version = 34 address-range = '' msg-id-type = 0 preferred-smsc-id = SMPPSim

Administration de Kannel :
NB : Le simulateur de smsc SMPPSim sert ici de serveur smpp.En effet nous avons put constater dans nos recherches que les serveurs SMPP sont des smsc vers lesquels sont formuls les requetes

ETUDE DU PROTOCOLE SMPP ET IMPLEMENTATION DE LA SOLUTION OPEN SMPP


provenant de clients smpp ou d'un ESME(External Short Message Entity) L'administration peut se faire travers la ligne de commande ou la requte HTTP. La syntaxe en mode HTTP est la suivante : http ://localhost: 13000/command?password=votre mot de passe administrateur. Les commandes sont multiples, et peuvent tre par exemple du type resume pour redmarrer le serveur s'il tait isol auparavant, status pour prendre connaissance du statut du serveur, ou shutdown pour arrter le traitement des SMS ceux qui se trouve dj dans la file d'attente. Somme toute, la matrise de la notion de passerelle en gnral, puis celle de passerelle ddie SMS en particulier, n'a pas t sans intrt. Elle nous a permis d'apprhender de faon globale le niveau de fonctionnement des diffrents outils d'interconnexion et pour cause la passerelle inclut les fonctionnalits des outils de niveau qui lui est infrieur tels les routeurs, ponts, rpteurs. Le status de la passerelle serveur kannel est accessible l'url : http://localhost:13000/status?password=votre_mot_de_passe

Effectuer ensuite les Tests :


Pour envoyer un message depuis kannel vers le smsc SMPPSim : http://localhost:6013/cgi-bin/sendsms? username=user&password=mot_de_pass&to=adresse_destination&text=tex te a envoyer

Envoie des messages ver kannel :

ETUDE DU PROTOCOLE SMPP ET IMPLEMENTATION DE LA SOLUTION OPEN SMPP


SMPPSim permet d'envoyer des messages vers kannel. Pour ce faire,on utilise un formulaire MO injection.

On remplie les champs suivant les besoins et on clic sur submit message .

Conclusion :
SMPP (Short Message Peer to Peer) est un protocole de niveau 7(couche application).Il ne permet donc pas d'acheminer des information sur un canal.Les PDU de type SMPP sont donc achemins entre les ESME et les SMSC par le biais d'autre protocoles tels que TCP/IP ou X25. Pour atteindre les objectifs du projet, nous devions utiliser comme serveur SMPP un simulateur de smsc de type SMPP.Deux choix s'offraient nous OpenSmpp de Logica et SMPPSim de Selenium software.Nous avons donc opter pour SMPPSim sur lequel nous avons configur des comptes clients.Comme application cliente nous nous sommes servis de la passerelle/serveur Kannel que nous avons configurer en crant un smsc de type smsc aprs avoir configur le bearerbox.Les comptes clients crs sur SMPPSim nous ont permis ensuite d'interconnecter Kannel et le serveur SMPPSim.Le smsc de type Fakesmsc nous a permis en fait de tester la configuration des diffrents boxe de kannel. Les membres du goupe :

ETUDE DU PROTOCOLE SMPP ET IMPLEMENTATION DE LA SOLUTION OPEN SMPP


Palanga kokou dadja G-A Kolani massienka Fankeng freddy