WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

M-banking: Analyse, conception et implémentation d'une solution de SMS-Banking

( Télécharger le fichier original )
par Firmin Evrard DOUANLA TOUOPI
Institut d'ingénierie informatique de Limoges - Master 2009
  

précédent sommaire

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Implémentation d'un portail SMS à base du logiciel KANNEL www.memoireonline.com/.../m_Implementation-dun-portail-SMS--base-du-logiciel-KANNEL3.htm


par Tchapo TANTE-GNANDI

§ Didier DONSEZ, rangiroa.essi.fr/cours/internet/04-01-slides-wap-wml.pdf ,WAP Wireless Application Protocol WML Wireless Markup Language.

§ Andreas Fink -Bruno Rodrigues, Kannel 1.3.2 User's Guide Open Source WAP and SMS gateway

§ Tarun Dua, Kannel as an SMS Gateway

§ Dr. Nizar Zarka CONTROL & DATA TRANSFER VIA SMS. medforist.ensias.ma/Contenus/.../papers/June25/20.pdf

§ http://www.math.sunysb.edu/~comech/tools/PCImodems.html

§ User Manual Falcom SWING GSM-Modem www.topitech.com/file/Swing/Falcom_SWING_eng.pdf

http://www.mtn.cm/LoadedPortal

[Pascal roques1] Pascal Roques, UML 2 par la pratique, ISBN :978-2-212-12322-7, 6ème édition, Eyrolles, Paris, 2002.

[Pascal roques2] Pascal Roques, Les Cahiers du Programmeur UML, Eyrolles, Paris, 2002.

[Banque], <Banque>,http://fr.wikipedia.org/wiki/Banque, 11 mai 2009

SMS gateway http://en.wikipedia.org/wiki/SMS_gateway

SIM Application Toolkithttp://en.wikipedia.org/wiki/SIM_Application_Toolkit

What is SIM Toolkit? http://www.cellular.co.za/sim_toolkit.htmWAP - Le protocole http://www.commentcamarche.net/contents/wap/wapintro.php3

September 2005

sachin-shetty

SMS Banking

by Sachin Shetty,http://palisade.plynt.com/issues/2005Sep/sms-banking/

Walter Carels

ICT Manager Electronic Banking Mobile banking (SMS and WAP)

via My KBC

Le réseau GSM a fêté ses 20 ans !

Posté le 10 septembre 2007 à 17:48:56 CEST par Pascal Thevenier

http://www.tt-hardware.com/modules.php?name=News&file=article&sid=10807

About Mobile Banking via WAP http://kannel.org/download/1.3.2/userguide-1.3.2/userguide.html

Un marché en pleine expansion...

Marketing Direct N°69 - 01/11/2002 - Peggy Cardin

Description du WAP http://www.lirmm.fr/~ajm/Cours/01-02/DESS_TNI/TER9/WAP/description/description.htm

http://info.bpiexpressonline.com/bpiprod/prodserv.nsf/Mobile+Banking/MobileBankingWAP?OpenDocument

Cédrick Fairon, Jean René Klein et Sébastien Paumier, Le langage SMS. Étude d'un corpus informatisé à partir de l'enquête 'Faites don de vos SMS à la science' , Presses universitaires de Louvain, Louvain-la-Neuve. Cahiers du Cental, 3.1, 2006.

Le standard GSM http://www.commentcamarche.net/contents/telephonie-mobile/gsm.php3

Short message service http://fr.wikipedia.org/wiki/Short_message_service

SIM Toolkit http://bladox.com/devel-docs/gen_stk.html

http://jaaayyy.chez.com/html/Radiomobiles/stage/Carte SIM et SIM Application Toolkit (SAT).htm

ANNEXES

Annexe 1 : Modèle conceptuel de données de SMS-BANKING

Annexe 2 : Modèle logique de données de SMS-BANKING

group = core

admin-port = 13000

admin-password = root

status-password = kokodi

#admin-deny-ip = "*.*.*.*"

admin-allow-ip = "127.0.0.1;192.168.100.*"

smsbox-port = 13003

box-allow-ip = "127.0.0.1;192.168.1.*"

log-file = "/tmp/kannel.log"

log-level = 1

access-log = "/tmp/access.log"

store-file = "/tmp/kannel1.log"

sms-incoming-queue-limit=-1

access-log-format="%t [from=%p] [to=%P] [msg=%b]"

unified-prefix = "+237,00237,0;+,00"

include = "/etc/kannel/modems.conf"

group = smsc

smsc-id = modem

smsc = at

modemtype = auto

device = /dev/modem

log-file = "/tmp/smsc.log"

speed = 9600

validityperiod = 167

group = smsbox

bearerbox-host = 192.168.100.116

sendsms-port = 10000

sendsms-chars = "0123456789"

global-sender = 75296068

log-file = "/tmp/smsbox.log"

access-log = "/tmp/access1.log"

log-level = 0

group = sendsms-user

username = root

password = kokodi

user-allow-ip = "192.168.100.*"

concatenation = true

group = sms-service

keyword = TRF

omit-empty=true

max-messages=0

catch-all = true

get-url = "http://192.168.100.114:8080/InterSms/index.jsp?sender=%p&text=%a"

accept-x-kannel-headers=true

group = sms-service

keyword = default

omit-empty=true

max-messages=0

catch-all = true

get-url = "http://192.168.100.114:8080/IncomingSms/index.jsp?sender=%p&text=%a"

accept-x-kannel-headers=true

group = sms-service

keyword = TIB

omit-empty=true

max-messages=0

catch-all = true

get-url = "http://192.168.100.114:8080/InterBrIncSms/index.jsp?sender=%p&text=%a"

accept-x-kannel-headers=true

Annexe 3 : fichier de configuration de kannel

Annexe 4 : Modem falcom swing

public int sendsms(String receip, String text, String username, String passwd) throws Exception

{

Passerelle=getPasserelle();

text = text.replaceAll(" ", "+");

url = new URL("http://"+Passerelle+":10000/cgi-bin/sendsms?username="+username+"&password="+passwd+"&to="+receip+"&text="+text);

Cnx = this.connect("GET");

if (Cnx==1){

Rsp=this.displayResponse();

this.disconnect();

} System.out.println(Rsp);

return Rsp;

}

public void run () {

try {

int contrainte = 1;

String Phone;

String MsgSend;

String Login = "root";

String Password = "kokodi";

double ID;

while (contrainte == 1) {

try {

IpServer = getIpServer();

LoginServer = getLoginServer();

MdpServer = getMdpServer();

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

Connection conn = DriverManager.getConnection ("jdbc:sqlserver://"+IpServer+";User="+LoginServer+";Password="+MdpServer+";

DatabaseName=smsbanking" );

state1 = conn.createStatement();

String SQL = "select CustPhone, SMSTransText, outgoingsmsid from outgoingsms where flag = 0 or flag = -1";

ResultSet rs = state1.executeQuery(SQL);

while (rs.next()) {

Phone = rs.getString("CustPhone ");

MsgSend = rs.getString(" SMSTransText ");

ID = rs.getDouble("outgoingsmsid");

Statement state2 = conn1.createStatement();

if (Phone == null || Phone.isEmpty()) {

state2.executeUpdate("update outgoingsms set flag=5 where outgoingsmsid='" + ID + "'");

state2.close();

OutgoingSms.sleep(10000);

break;

}

if (Phone != null && MsgSend != null) {

Phone = Phone.replaceAll("-", " ");

Phone = Phone.replaceAll("/.", " ");

Phone = Phone.replaceAll("/", " ");

Phone = Phone.trim();

Phone = Phone.replaceAll(" ", "");

if (Phone.length()==7){

if (Phone.substring(0, 1).compareTo("7")==0){

Phone="7".concat(Phone);

}

if (Phone.substring(0, 1).compareTo("9")==0){

Phone="9".concat(Phone);

}

}

if (Phone.length()>=8){

RspExact = this.sendsms(Phone, MsgSend, Login, Password);

int Rep = RspExact;

if (RspExact == 0) {

state2.executeUpdate("update outgoingsms set flag=1, phonenumber='"+Phone+"' where outgoingsmsid='" + ID + "'");

} else {

state2.executeUpdate("update outgoingsms set flag=" + Rep + ", phonenumber='"+Phone+"' where outgoingsmsid='" + ID + "'");

}

state2.close();

OutgoingSms.sleep(10000);

}else{

state2.executeUpdate("update outgoingsms set flag=4 where outgoingsmsid='" + ID + "'");

state2.close();

OutgoingSms.sleep(10000);

}

} else {

state2.executeUpdate("update outgoingsms set flag=5 where outgoingsmsid='" + ID + "'");

state2.close();

OutgoingSms.sleep(10000);

}

}

rs.close();

state1.close();

conn1.close();

OutgoingSms.sleep(20000);

} catch (Exception e) {

System.err.println(e);

}

}

} catch (FileNotFoundException ex) {

Logger.getLogger(OutgoingSms.class.getName()).log(Level.SEVERE, null, ex);

}

}

public int connect(String method) throws Exception

{

try

{

server = (HttpURLConnection)url.openConnection();

server.setDoInput(true);

server.setDoOutput(true);

server.setRequestMethod(method);

server.setRequestProperty("Content-type","application/x-www-form-urlencoded");

server.connect();

return 1;

}

catch (Exception e)

{

System.err.println(e.toString());

System.err.println ("erreur de connection à la passerelle");

return -1;

}

}

Annexe 5 : Trois classes principales de l'application HTTP/SQL

La classe connect formate la requête http avec une méthode

La classe sendsms contient la requête http avec toutes les informations nécessaire afin d'être exécuté au niveau de la passerelle

La classe run est la classe principale

Annexe 6 : Utilisation de Javaservice pour la création du service CORESMSBANK

Annexe 7 : Diagramme de séquence des services de notification évènementielle

Annexe 8 : Architecture simplifiée de la passerelle kannel

Sommaire d'identification

Titre : Consultation d'historique

Résumé : ce cas d'utilisation permet au client de consulter les 4 derniers historiques de son compte à partir de son téléphone portable.

Acteurs : Client mobile

Date de création

13/03/2009

Date de mise à jour

10/04/2009

Version

1.0

Responsable

DOUANLA TOUOPI F.E

Pré conditions : Disposer d'un crédit de communication permettant l'envoi de SMS, Disposer d'un téléphone

Post conditions : Un SM avec les 4 derniers historiques est renvoyé au client

Description des scénarios

- Scénario nominal

 

1. Le client formate un SM et l'envoi au numéro de la carte SIM présente dans le modem connecté à la passerelle GSM/IP de la banque ou coopérative bancaire

 

2. Réception, vérification du format du SM et stockage du SM dans la base de données de SMS-BANKING

 

3. Vérification du code PIN du client

 

4. Vérification du numéro de téléphone du client

 

5. Vérification effective de l'inscription du client au service de consultation d'historique

 

6. La vérification si le nombre maximal de SM a envoyé au client pour le mois en cours et pour le service de consultation d'historique de est atteint.

 

7. Récupération des 4 derniers historiques

 

8. Formatage du message à retourner au client

 

9. Insertion dans la table d'historique des SM

 

10. Insertion du SMS à envoyer au client dans la table des SM sortants

 

11. Mis à jour du statut du SM entrée: SM traité

 

12. Incrémentation du compteur de SM (ce compteur permet de compter le nombre de SM déjà envoyé au client durant ce mois. Il est nécessaire pour la vérification du seuil maximal) pour le service de consultation d'historique. Le système extrait le numéro de téléphone du récepteur

 

13. Envoi du SM avec 4 derniers historiques au client.

 

14. Mis à jour du statut du SM sortant: SM envoyé

- Scénario alternatif

E1

Le système détecte des erreurs sur le formatage du SM. Le scénario E1 démarre au point 2. du scénario nominal.

 

Le système enregistre le SM avec une remarque : « Mauvais SM ». Dans ce cas, le scénario nominal s arrête au point 2.

E2

Le système détecte que le code PIN du client est incorrect. Le scénario E2 démarre au point 3. du scénario nominal.

Le système met à jour la table des SM entrant avec pour remarque : « client inexistant »

Dans ce cas, le scénario nominal s arrête au point 3

E3 Le système détecte que le numéro de téléphone du client est incorrect. Le scénario E3 démarre au point 4. du scénario nominal.

Le système met à jour la table des SM entrant avec pour remarque : « client inexistant »

Dans ce cas, le scénario nominal s arrête au point 4

E4

Le système détecte que le client n'est pas inscrit à ce service. Le scénario E4 démarre au point 5 du scénario nominal.

Le système met à jour la table des SM entrant avec pour remarque : « Client non inscrit au service spécifié »

Dans ce cas, le scénario nominal s arrête au point 5

E5

Le système détecte que le nombre maximal de SM du mois courant pour le service de consultation d'historique est atteint. Le scénario E5 démarre au point 6 du scénario nominal.

Le système met à jour la table des SM entrant avec pour remarque : « Nombre maximal de SM atteint »

Dans ce cas, le scénario nominal s'arrête au point 6

E6

Le système n'arrive pas à envoyer le SM. Le scénario E6 démarre au point 13 du scénario nominal.

Le système met à jour la table des SM sortant avec un statut permettant d'identifier la source d'erreur. Le SM sera renvoyé plus tard.

Dans ce cas, le scénario nominal reprendra au point 13.

Annexe 9 : Scenarii du cas d'utilisation consultation d'historique

Annexe 10 : Diagramme de séquence du cas d'utilisation consultation d'historique

Annexe 11 : Diagramme d'activité du cas d'utilisation consultation d'historique

Annexe 12 : Lancement du SMSBOX de kannel

Sommaire d'identification

Titre : Alerte débit compte

Résumé : Ce cas d'utilisation permet d'envoyer un SM à un client lorsque son compte est débité.

Acteurs : Client mobile, BANK SI

Date de création

13/03/2009

Date de mise à jour

10/04/2009

Version

1.0

Responsable

DOUANLA TOUOPI F.E

Pré conditions : Disposer d'un crédit de communication dans le modem de la banque permettant l'envoi du SM, le réseau de l'opérateur de téléphonie doit être opérationnel.

Post conditions : Un SM avec le montant débité est envoyé au client

Description des scénarios

- Scénario nominal

 

1. BANK SI met à jour ou effectue un nouvel enregistrement dans la BD SMS-BANKING avec statut non traité

 

2. Le système récupération du nouvel enregistrement

 

3. Le système vérifie si il s'agit d'un débit sur un compte

 

4. Le système vérifie si le client inscrit au service « d'alerte en cas de débit » sur le compte

 

5. Le système vérifie si le nombre maximal de SM a envoyé au client pour le mois en cours et pour le service d'alerte en cas de débit du compte est atteint

 

6. Le système formate le message à envoyer au client avec montant debité

 

7. Le système recherche le numéro de téléphone du client

 

8. Le système insertion SM dans la table d'historique des SM

 

9. Le système insert le SM à envoyer au client dans la table des SM sortants avec statut (non envoyé)

 

10. Mis à jour du Statut de l'enregistrement (traité)

 

11. Le système incrémente le compteur de SM (ce compteur permet de compter le nombre de SM déjà envoyé au client durant ce mois. Il est nécessaire pour la vérification du seuil maximal) pour le service alerte en cas de débit.

 

12. Le système envoie le SM « d'alerte de débit du compte » au client

 

13. Le système met à jour du statut du SM sortant:SM envoyé

- Scénario alternatif

E1

Le système détecte que le client n'est pas inscrit à ce service. Le scénario E1 démarre au point 4 du scénario nominal.

Le système met à jour cet enregistrement : « Client non inscrit au service spécifié »

Dans ce cas, le scénario nominal s arrête au point 4

E2

Le système détecte que le nombre maximal de SM du mois courant pour le service d'alerte en cas de crédit est atteint. Le scénario E2 démarre au point 5 du scénario nominal.

Le système met à jour cet enregistrement : « Nombre maximal de SM atteint »

Dans ce cas, le scénario nominal s'arrête au point 5

E3

Le système n'arrive pas à envoyer le SM. Le scénario E3 démarre au point 12 du scénario nominal.

Le système met à jour la table des SM sortant avec un statut permettant d'identifier la source d'erreur. Le SM sera renvoyé plus tard.

Dans ce cas, le scénario nominal reprendra au point 12

Annexe 13 : Scenarii du cas d'utilisation alerte débit compte

Annexe 14 : Diagramme de séquence du cas d'utilisation Alerte débit compte

précédent sommaire






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Enrichissons-nous de nos différences mutuelles "   Paul Valery