Qos GPRS
Qos GPRS
Qos GPRS
En vue de l’obtention du
Diplôme d’Ingénieur de Conception de Génie des Télécommunications
Sous la Direction de :
Pr. Emmanuel TONYE
DEDICACES
REMERCIEMENTS
GLOSSAIRE
TERMES SIGNIFICATIONS
APN Access Point Name
AUC Authentication Center, Centre d'authentification
BG Border Gateway
BSC Base Station Controller
BSS Base Station Sub-system (Sous-système Radio)
BTS Base Transceiver Station
CDR Charging Data Record
CGF Charging Gateway Function
CGSN Combined GPRS Support Node
DTS Data Transformation Services
GGSN Gateway GPRS Support Node
GPRS General Packet Radio Service
GSM Global System for Mobile communication
GSN GPRS Support Node
GTP GPRS Tunneling Protocol.
IMSI International Mobile Subscriber Identity
KPI Key Performance Indicator
MMS Multimedia Message Service
MSISDN Mobile Station Integrated Service Data Network
PCU Packet Control Unit
PDN Packet Date Network
PDP Packet Data Protocol
PLMN Public Land Mobile Network
PXM Packet Exchange Manager
QoS Quality of Service
RA Routing Area
RLC Radio Link Control
SGSN Serving GPRS Support Node
SM Session Management
SMS Short Message Service
SVG Scalable Vector Graphic
XML Extensible Markup Language
3GPP Third Geneartion Partnership Project
RESUME-ABSTRACT
SOMMAIRE
1 Introduction générale ...................................................................................................... 10
1.1 Introduction générale ............................................................................................................... 10
2 Contexte : Présentation générale du GPRS ............................................................... 13
2.1 Définition de la norme GPRS [1] ............................................................................................ 13
2.2 Architecture générale du GPRS [2] ......................................................................................... 14
2.2.1 Architecture Canonique ...................................................................................................................... 14
2.2.3 Impact de GPRS sur GSM [4] ............................................................................................................ 16
2.3 Les Interfaces du réseau GPRS ............................................................................................... 17
2.4 Nouveaux Entités GPRS [1] ..................................................................................................... 18
2.5 Mécanismes de transfert de paquets en GPRS. [4] ................................................................ 20
2.5.1 Gestion de la mobilité. ........................................................................................................................ 20
2.5.2 Emission de données ......................................................................................................................... 23
2.5.3 Réception de données ......................................................................................................................... 24
2.5.4 Localisation ........................................................................................................................................ 25
2.6 SERVICES ET APPLICATIONS GPRS ............................................................................... 26
2.7 FACTURATION DES SERVICES GPRS............................................................................. 27
2.8 QUALITE DE SERVICE [5] ................................................................................................... 28
1.9 Performance d’un réseau GPRS ............................................................................................. 30
1.10 GPRS à ORANGE [1] ........................................................................................................... 31
1.10.1 BSS (côté GPRS) à ORANGE ......................................................................................................... 31
1.10.2 GSS (GPRS SubSystem) à ORANGE .............................................................................................. 33
3 Problématique.................................................................................................................. 35
3.1 ETAT des lieux .......................................................................................................................... 35
3.1.1 Procédures de suivi de la QoS GPRS existantes .................................................................. 35
3.1.2 OUTILS DE SUIVI DE LA QOS GPRS .............................................................................. 36
3.2 Enoncé du problème et cahier de charge ................................................................................ 37
4 Analyse ............................................................................................................................. 40
4.1 Structure des fichiers CDRs ..................................................................................................... 41
4.2 Structures des fichiers KPIs ..................................................................................................... 43
5 Conception ....................................................................................................................... 45
5.1 Conception ................................................................................................................................. 45
5.1.1 CDR .................................................................................................................................................... 46
5.1.2 KPI...................................................................................................................................................... 48
5.2 Environnements Informatiques ............................................................................................... 51
5.3 Architecture .......................................................................................................................................... 57
6 Résultats ........................................................................................................................... 59
6.1 Résultats obtenus ...................................................................................................................... 59
6.2 Commentaires ........................................................................................................................... 74
7 Conclusion ....................................................................................................................... 76
Introduction générale
________________________________________________
Chapitre
1
1 Introductiongénérale
Description :
Aperçu :
diminue ainsi le temps de téléchargement des pages WEB. En effet, GPRS est le
premier protocole à commutation par paquets dans le monde de l’Internet mobile,
et constitue une couche supplémentaire à un réseau GSM existant. Et grâce à ce
dernier, les applications de l’Internet mobile vont pouvoir se développer. C’est
ainsi que dès Septembre 2006 la société ORANGE CAMEROUN s’est dotée des
équipements (ALCATEL et ERICSSON) pour l’installation du GPRS, et par la suite
des outils relatifs (PXM, CIGALEVIEW, CIGALEAnalyser…) au suivi de la QoS
GPRS. Mais il se pose continuellement le problème de suivi de la qualité de
service, le besoin perpétuel de satisfaire le client. C’est dans ce cadre et contexte
que se situe notre mémoire dont le thème s’intitule « Conception d’un outil
d’aide au suivi de la QOS GPRS».
Contexte
________________________________________________
Chapitre
2
2 Contexte : PrésentationgénéraleduGPRS
Description :
Aperçu :
SGSN (Serving GPRS Support Node) qui est le serveur d’accès au service
GPRS (équivalent au MSC pour le GSM), et qui gère les MS présentes
dans une zone donnée. Son rôle est de délivrer des paquets aux MS.
Contexte MM
Contexte PDP
Pour tous les paquets qui seront ensuite envoyés pendant une période de
temps donnée, le terminal mobile restera dans un mode ACTIF et indiquera
au réseau lorsqu’il change de cellule. Le chemin vers le terminal mobile est
connu, donc tous les paquets seront acheminés vers ce terminal comme via
un tunnel.
2.5.4 Localisation
• Les services Point à Point (PTP) : ils fournissent une transmission d’un
ou plusieurs paquets entre deux utilisateurs (l’expéditeur et le
destinataire).
WAP.
MMS
• Texte.
• Image.
• Vidéo
Ces applications n’étant pas exhaustives, de nombreuses nouvelles
applications vont apparaître sur le marché au fur est à mesure que le taux
de transfert augmentera.
C’est le protocole GTP (Gprs Tunelling Protocol) qui est utilisé pour récupérer
les CDRs du SGSN et GGSN pour les transférer vers le CG(Charging
Gateway).
Classes de délai
Les classes de délai sont liées aux délais dus aux limites techniques de la
transmission à travers le système.
Sont pris en compte dans le calcul du délai: le temps d’accès radio, le temps
de transit radio et le temps de transit au niveau du réseau GPRS. Quatre
classes sont spécifiées par la norme. Un réseau doit supporter au minimum
la classe 4 «best effort».
Classes de débit
Ces classes sont définies pas les différents standards existants notamment
3GPP. En utilisant ces différentes classes de QOS, des profils QoS peuvent
être négociés entre le mobile et le réseau pour chaque session en fonction de
la QoS demandée et des ressources disponibles. La facturation peut alors se
faire en fonction du volume de données, du type de service et du profil QoS.
1 .1 0 G P R S à O R A N G E [1 ]
Le GPRS à ORANGE CAMEROUN se fait à travers 2 constructeurs
différents, l’un agissant sur le BSS (Base Sub System) et l’autre sur le GSS
(GPRS Sub System).Il s’agit de :
ALCATEL
ERICSSON
De plus seules les interfaces Gb, Gr et Gn sont actifs à ORANGE
CAMEROUN offrant ainsi un inter fonctionnement limite entre le GSM
existant et le GPRS puisque ces interfaces sont des interfaces dites
obligatoires (non optionnelles) par la norme.
Le MFS
L'introduction du GPRS dans le BSS nécessite les changements
suivants :
L’introduction d'un Packet Control Unit (PCU) qui contrôle les
activités du GPRS dans le BSS ;
L'upgrade des logiciels pour le codage du canal situé sur les
BSC afin de pouvoir supporter les nouveaux plans de codage
GPRS ;
l'introduction de l'interface Gb.
L’approche d’Alcatel pour implémenter le GPRS est de grouper les PCU et les
fonctions de terminaisons GB de plusieurs BSS dans une nouvelle entité
appelée MFS « Multi BSS Fast packet Server »
La figure ci-dessous ressort la position du MFS dans le BSC
Problématique
_____________________________________________
Chapitre 3 : Problématique
Chapitre
3
3 Problématique
Description :
a résolution d’un problème passe sans doute par sa compréhension. Nous nous
Aperçu :
PXM
PXM pour Packet Exchange Manager est un logiciel fourni par le
constructeur ERICSSON. Il permet de réaliser les opérations de
maintenance, de supervision et de gestion sur le GSN (GPRS Support
Node).Cette maintenance passe par la supervision des alarmes, événements,
et des compteurs.
CIGALEVIEW
CECOXANE
Cecoxane est un logiciel offert à ORANGE CAMEROUN par le Groupe
FRANCE TELECOM qui donne les informations sur le réseau GPRS à
travers divers compteurs qui peuvent être filtrés. Les informations peuvent
être collectées pour une période bien précise.
Notons que ce logiciel est très instable et ne permet pas d’effectuer des
tâches de supervision programmées, ce qui justifie le fait qu’il ne soit pas
assez utilisé à ORANGE CAMEROUN.
De nombreux travaux ont déjà été effectués dans le cadre de l’amélioration
de la QOS GPRS, notamment le travail de l’ingénieur NDOUM Yannick, qui
portait sur : « Optimisation du suivi de la QoS GPRS : Cas d’ORANGE
CAMEROUN». Son travail a permis d’optimiser le suivi de la QoS GPRS à
travers dans un premier temps la résolution des différents besoins qui nous
a été confiés grâce aux outils de suivi de la QoS présents et dans un second
temps à travers la mise sur pied du dispositif d’alerte permettant d’informer
les différents techniciens par Mails et par SMS sur l’état des imperfections
du réseau GPRS et les causes associées.
Une fois le problème posé, il sera question pour nous d’en trouver des
solutions aux différentes préoccupations.
Méthodologie
_____________________________________________
Chapitre 4 : Analyse
Chapitre 5 : Conception
Chapitre
4 Analyse
Description :
C Aperçu :
Figure 5 ALEX
Grâce à cet outil, nous avons été à mesure de comprendre la structure des
fichiers à traiter et l’utilité des informations qui y sont présentes.
Les fichiers CDRs sur lesquels nous allons travailler sont de type
S-CDRs, c'est-à-dire générés pas le SGSN. Ces fichiers fournissent un
ensemble d’informations qui nous sont définies dans la Library ALEX. Dans
la structure de ces fichiers telle que ALEX, nous pouvons le remarquer la
plupart de ces champs sont optionnels et dépendent de la configuration
effectuée sur l’équipement. La figure 6 nous présente un exemple de fichier
CDR:
Nom du fichier. Ce
nom referme la date
de création
Ce sont des fichiers csv, dans lesquels on retrouve des informations sur les
différentes sessions qui ont été gérées par le SGSN. On y retrouve des champs
tels que « Servedmsisdn » donnant des informations sur l’utilisateur,
« pdptype » donnant le type de réseau externe utilisé ( ipv4 , x25 ,ipv6) ,
« Datavoldownlink » donnant le trafic en lien descendant lors de la session,
« Datavoluplink » donnant le trafic en lien montant lors de la session, et bien
d’autre. Les champs « QoSrequested » et « QoSnegotiated » donnant
respectivement des informations sur la QoS désirée par l’utilisateur et la QoS
qui lui est fournie par le réseau, ont la décomposition suivante :
On peut y tirer les classes de délai, de fiabilité, de trafic, les débits maximum et
moyen désirés par l’utilisateur et fournis par le réseau ; tels que définis par les
différents standards.
Ces fichiers sont générés par le CGSN (SGSN+GGSN, solution Ericsson), ceci
toutes les heures. Ce sont des fichiers XML donnant les valeurs des
compteurs et les gauges pour l’heure de mesure. Les mesures sont issues
des différentes procédures existantes dans l’établissement d’une session
GPRS. C’est ainsi qu’on y retrouvera le compteur
« SM.UnsuccActpdpcontextCC26.G » qui donne le nombre d’activations de
PDP contexte non réussie due aux ressources insuffisantes, les compteurs
tels « SYS.gsnCpuUsageGPB » donnent des informations sur le taux de
charge du CPU. Ces derniers sont indexés. Un index permet d’identifier de
manière unique et à un instant (donc modifiable) un ensemble de BSCs. Les
compteurs « SYS.gsnCpuUsageGPB » sont de type gauges. On y retrouve bien
d’autres compteurs très utiles pour la visibilité sur le réseau GPRS. A partir
de ces compteurs, nous serons à mesure de calculer un ensemble
d’indicateurs de performance du réseau. La figure 7 nous montre un
exemple de fichier KPI :
Chapitre
5
5 Conception
Description :
e chapitre présente les différentes tâches effectuées, les outils utilisés pour les
Aperçu :
5.1 Conception
5.1.1 CDR
5.1.2 KPI
5.2 Outils informatiques
5.3 Architecture
5.1 Conception
Dans cette partie, nous mettrons en évidence les différents procédés utilisés
pour répondre aux besoins énumérés dans le Chapitre 2.
La solution que nous proposons à Orange Cameroun se repartie en 04 modules :
o Calcul et stockage
o Affichage
5.1.1 CDR
Début
oui
non
Extraction de l’archive à l’aide de
Winrar
Mise à jour Mise à Mise à Mise à Mise à jour de Mise à jour Mise à jour Génération
de la table jour de la jour de la jour de la la table des tables des tables du SVG
‘traficbsc’ table table table ‘traficmsisdn’ ‘qosn’ et ‘cellvillezone’
‘traficapn’ ‘traficra’ ‘traficcell’ ‘qosr’ et ‘cellsanstx’
Affichage Fin
Le SVG servira à suivre le trafic en groupant les cellules par site. Il est la
représentation des sites en fonction de leurs coordonnées GPS sur la carte
du Cameroun. Nous y ajouterons un ensemble d’événements. Lorsqu’un
utilisateur se positionnera sur un site, il aura les informations sur ce site
(les coordonnées GPS, ses cellules et le trafic du site pour la dernière date
dans la base de donnée). De plus les sites seront représentés par des cercles
dont la couleur dépendra de la valeur de son trafic et une légende
correspondante sera également affichée. Nous donnerons également la
possibilité à l’utilisateur d’effectuer un Zoom sur une zone particulière du
SVG et même de se déplacer sur le SVG afin d’avoir une meilleure visibilité.
Les sites seront étiquettes par leur nom afin d’être accessible. L’affichage de
toutes les étiquettes rendrait le SVG illisible. Nous allons écrire un script qui
affichera les étiquettes afin qu’il n’y ait pas chevauchement. Il permettra
d’afficher de plus en plus d’étiquettes au fur et à mesure que l’on effectuera
un zoom.
La génération du SVG se fait par :
1. récupération du fichier Excel contenant les coordonnées GPS des sites
2. ouverture de ce fichier sous Mapinfo et création de points
correspondant aux sites à l’aide de leurs coordonnées.
3. ouverture d’autres tables qui correspondront aux autres couches
(notamment la couche délimitant le Cameroun et la couche
représentant les routes principales du Cameroun)
4. Génération du SVG à l’aide de map2svg
Une fois ce code généré, nous nous passerons de mapinfo et map2svg par la
suite. Nous modifierons le code obtenu selon l’usage désiré.
5.1.2 KPI
Les fichiers KPI se trouvent sur le CGSN qui est visible par le serveur de
supervision. Ainsi pour les récupérer, nous effectuons une connexion Telnet sur
le serveur de supervision, puis une connexion ftp vers le CGSN ; les fichiers sont
d’abord transférés vers le serveur de supervision ; après clôture des connexions
A
GPRSAttach = (1 )
A + B -C -D -E
où
A
PDPCTX = (2)
A + B -C -D -E
où
Début
non
Affichage
Fin
Figure 9 Algorithme d’exploitation des fichiers KPIs
PERL
Mapinfo et map2svg
FusionCharts
EASYPHP (APACHE+PHP)
1-PHP :
Chaîne de
traitement des
CDRs
Chaîne de
traitement des
KPIs
La table ‘cells‘ contient les informations sur les cellules du réseau et leur
BSC d’attache.
La table de localisation ‘cellvillezone’ contient les informations sur la
localisation des cellules (ville et zone).
Les tables ‘qosr’ et ‘qosn’ contiennent respectivement les informations
sur les profils Qos demandés par l’utilisateur et les profils Qos fournis
par le réseau en fonction des ressources disponibles lors de la
demande.
La table ‘cellsanstx’ récence les cellules sans trafic et le nombre de
jours consécutifs mis sans trafic en fonction de la date la plus récente
dans la table ‘cdr’.
Les tables ‘traficbsc’,’traficapn’ ,’traficra’ ,’traficmsisdn’ et ‘traficcell’
fournissent respectivement les trafics (uplink, downlink) par BSC, APN,
Routing Area, MSISDN et cellule.
La table ‘kpi’ contient les informations sur les différents KPIs recensés
et la table ‘kpiseuil’ les seuils respectifs qui seront utilisés pour l’alerte.
La table ‘site’ contient les informations sur les sites (cellules, longitude,
latitude) qui sont utilisées lors de la génération du SVG.
3- Dreamweaver 8:
Récupération
des CDRS
5.3 Architecture
ftp
ftp ftp S e v e u r O M C -R
S e v e u r O M C -R S e v e u r O M C -R Serveur BSS
CGSN Serveur GIS
telnet
Récupération Récupération des
des KPIs SUR fichiers sur le réseau
(BSC, cellules , ci,
LE CGSN lac)
Figure 12 Architecture
Résultats
_____________________________________________
Chapitre 6 : Résultats
Chapitre
6 Résultats
Description :
Aperçu :
6.2 Commentaires
Acceuil Dasboard Etat Suivi Suivi Suivi Suivi Suivi Suivi Administration
Formulaire
d’authentification
Enregistrement
menu utilisateur
déconnexion
Informations
sur le réseau
Utilisateurs GPRS
Trafic par apn
La page ‘Etat cells’ permet la visualisation pour la journée la plus récente dans la
base de données :
1. Du tableau des cellules à trafic nul.
2. Du tableau des BSCs sans trafic ou à trafic nul.
3. Du tableau des cellules sans trafic et le nombre de jours consécutifs sans
trafic.
4. Du tableau des cellules avec trafic et leur trafic.
5. De la répartition des cellules sans trafic par BSC.
Cellules avec
trafic
Cellules sans
trafic
La page ‘suivi APN’ permet le suivi des trafics en lien montant, en lien
descendant et total par APN sur une journée ou une période qui est
fournie en entrée.
La figure 19 illustre le trafic total par APN pour la période du 12 mai au 8
juin 2009. Nous pouvons y observer 2 APNs dont le plus utilisé est l’APN
« orangecmgprs ».
Figure 19 Trafic par APN pour la période du 12 mai 2009 au 08 juin 2009
La page ‘suivi BSC’ permet le suivi des trafics en lien montant, en lien
descendant et total des BSCs sur une journée ou une période qui est
fournie en entrée.
La figure 20 illustre des résultats obtenus pour différentes périodes.
La page ‘suivi RA’ permet le suivi des trafics en lien montant, en lien
descendant et total des RAs sur une journée ou une période qui est fournie
en entrée. L’ utilité de ce suivi réside dans le fait que le GPRS utilise soit la
cellule soit le RA pour la localisation du mobile d’une part ; de plus un RA
est un groupement de cellules et le changement de RA est fait par la
procédure de « Routing Area Update ». Les figures suivantes présentent le
suivi du trafic par RA sur une journée et une période. On peut y déterminer
le RA avec le maximum de trafic et le RA avec le minimum de trafic afin
d’apprécier le dimensionnement effectué.
La page ‘suivi cells’ permet le suivi du trafic des cellules sur une journée ou
une période qui est fournie en entrée. Nous avons la possibilité de visualiser
toutes les cellules directement ou alors de les visualiser par site GSM à
partir d’un SVG créé à cet effet.
Informations de la cellule
‘mendong_3’
L’approche SVG consiste à représenter les sites GSM porteurs des différentes
cellules, en fonction, de leur longitude et latitude sur la carte du Cameroun.
En outre sur le SVG, l’utilisateur aura la possibilité de contrôler les couches
à afficher ; d’avoir les informations sur les différents sites (trafic, cellules,
coordonnées GPS) ; de faire un zoom d’une zone afin d’obtenir une meilleure
visualisation. En se positionnant sur un site, ses informations apparaissent
dans la zone ‘informations générales‘ du SVG.
Date
Informations sur le
site sur lequel le
curseur est
positionné
Légende
Contrôle de
couche
Module de Zoom et
déplacement sur le
SVG
Figure 28 Trafic par site pour la journée du 08 juin 2009, approche SVG
En cliquant sur un site, nous avons accès à une nouvelle page donnant les
différentes cellules du site et permettant comme pour l’approche classique
de suivre l’évolution du trafic des cellules. La figure ci-dessous, illustre ces
résultats :
Cellules du site
‘Ndoussan’
La page ‘suivi msisdn’ permet le suivi des trafics en lien montant, en lien
descendant et total par MSISDN sur une journée ou une période qui est
fournie en entrée. Nous sommes donc à mesure de suivre le trafic pour un
utilisateur donné, d’avoir le profil QOS qu’il a négocié ; de savoir la classe de
trafic utilisée, les classes de débit, la cellule qui l’a couvert. La figure ci-
dessous, illustre le suivi du trafic pour utilisateur donné :
Formulaire
La page ‘Suivi par kpi’ permet le suivi des compteurs et des KPIs du réseau.
Le suivi peut se faire par jour, par période et même par heure. La figure ci-
dessus illustre les résultats obtenus :
Formulaire
Validation de
nouvelles inscriptions Configuration des utilisateurs
devant recevoir les alertes ou non
6.2 Commentaires
Conclusion
_____________________________________________
Chapitre
7
7 Conclusion
Description :
I adoptée pour résoudre notre problématique, mais aussi au vu des résultats obtenus
d’en dégager des perspectives.
Arrivés au terme de notre mémoire de fin d’études dont le thème est intitulé
: «Conception d’un outil d’aide au suivi de la Qos GPRS », nous pouvons
dire sans pour autant prétendre à l’exhaustivité que nos objectifs ont été
atteints. Nous avons mis en œuvre un outil informatique permettant le suivi
de différentes entités dans le réseau GPRS en évaluant non seulement les
différents trafics mais aussi les indicateurs clés de performance. Ce travail
n’est pas exhaustif et pourra être amélioré en fonction des informations
spécifiques qu’on désire faire ressortir sur le réseau GPRS. Le travail
effectué permettra d’optimiser le suivi de la QoS GPRS, de faire sa
planification, d’avoir une visibilité complète sur le réseau GPRS de façon
générale. On pourrait étendre ce travail à la gestion des alarmes, à la
gestion des CDRs générés par le GGSN et le MMC afin d’avoir un outil plus
complet.
ANNEXES
QUELQUES CODES SOURCES
Rapatriement des fichiers KPIs
#!/usr/bin/perl -w
##############################################################################################
#####
# CONNECTION TELNET TO GIS AND AFTER FTP TO CGSN
##############################################################################################
#####
$address ="******";
$username="*****";
$passwd="*****";
$pass="****";
$iplocal="*******";
$prompt ='/.*[\$#:>\]\%] *$/';
# we create a new telnet object
$t->cmd("cd ../../alain/Logs");
@lines =$t->cmd("chdir kpi");
$t->waitfor("#");
if ($lines[0]=~/not exist/){$t->cmd("mkdir kpi");$t->cmd("chdir kpi"); }
@lines = $t->cmd("ls"); #
open(fi4,"daterapacgsn.txt");
$ligne=<fi4>;
$ligne =~ s/\n//;
$date=$ligne;
close (fi4);
my @Contenu = grep { !/^\.\.?$/ } $t->cmd("ls");
print fi2 @Contenu;
##############################################################################################
#####
# FTP TO GIS
##############################################################################################
#####
$ftp = Net::FTP->new("*******", Debug => 0) or die "Cannot connect to serveur: $@";
$ftp->login("****",'****') or die "Cannot login ", $ftp->message;
$ftp->cdup();
$ftp->cdup();
$ftp->cwd("alain/Logs/kpi") or die "Cannot change working directory ", $ftp->message;
open(fi1,"daterapagis.txt");
$ligne=<fi1>;
$ligne =~ s/\n//;
$date=$ligne;
close (fi1);
$rep="D:/mefenza/CDR ANALYSER/rapatrie/kpi";
chdir($rep);
open(fi1,">D:/mefenza/CDR ANALYSER/scripts/daterapagis.txt");
print fi1 $date;
close (fi1);
open(fi1,">D:/mefenza/CDR ANALYSER/scripts/dateracgsn.txt");
print fi1 $date;
close (fi1);
Script de MAIL
use dbd::odbc; # Charger le module DBI
use warnings;
use DBI;
use MIME::Lite;
$envoi="false";
$myliste="";
$chaine="";
my $data_source = q/dbi:ODBC:cdranalyser/;
my $user = q/sa/;
my $password = q//;
# Connect to the data source and get a handle for that connection.
my $dbh = DBI->connect($data_source, $user, $password) or die "Can't connect to $data_source: $DBI::errstr";
sub selecte {
$sql1 = "select top 1 date7 from (select distinct top 2 date7 from kpi order by date7 desc)as tbl order by
date7 asc";
# Prepare the statement.
my $sth = $dbh->prepare($sql1) or die "Can't prepare statement: $DBI::errstr";
# Execute the statement.
$sth->execute();
$u=0;
while (@row = $sth->fetchrow_array)
{
$row[0]=substr($row[0],0,10);
@m=split(/-/, $row[0]);$row[0]=$m[0].$m[1].$m[2];
$date=$row[0];
}
$sql = "select seuil from kpiseuil order by kpi";
# Prepare the statement.
my $sth2 = $dbh->prepare($sql) or die "Can't prepare statement: $DBI::errstr";
# Execute the statement.
$sth2->execute();
$i=0;
while (@row = $sth2->fetchrow_array)
{
$seuil[$i]=$row[0];
$i=$i+1;
}
$sql = "select * from kpi where kpi in (select kpi from kpiseuil) and date7='$date' order by kpi";
# Prepare the statement.
my $sth1 = $dbh->prepare($sql) or die "Can't prepare statement: $DBI::errstr";
# Execute the statement.
$sth1->execute();
$i=0;
while (@row = $sth1->fetchrow_array)
{
$kpi=$row[1];
$index=$row[2];
$max=int($row[3]);
$heure=1;
for($u=3;$u<26;$u++)
{
if (int($row[$u])>$max){$max=int($row[$u]);$heure=$u-2;}
}
if($heure<10){$heure="0".$heure."H";}
else{$heure=$heure."H";}
$etat=$max;
if($etat >= int($seuil[$i]))
{
$myliste =$myliste."<tr>
<td height=\"25\"> $kpi</td>
<td> $index</td>
<td> $etat %</td>
<td> $heure</td>
</tr>\n";
$u=1;
}
}
if($u>0){
$envoi="true";
}
}
sub entete {
open (FIC,'>ex.html');
$chaine="<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />
<title>Document sans nom</title>
<style type=\"text/css\">
<!--
.Style1 {color: #FF8040}
.Style2 {color: #FF8242}
.Style3 {font-size: 24px}
#Layer1 {
position:absolute;
left:440px;
top:572px;
width:279px;
height:18px;
z-index:1;
}
.Style7 {color: #FF8242; font-size: 14px; }
.Style8 {
font-size: 18px;
font-weight: bold;
}
.Style9 {font-size: 18px; }
-->
</style>
</head>
<body>
<div align=\"center\">
<table width=\"942\" height=\"152\" border=\"2\" align=\"center\" bordercolor=\"#FFFFFF\">
<tr>
<td height=\"49\" colspan=\"8\" bordercolor=\"#FFFFFF\"><div align=\"center\">
<h1><span class=\"Style3\">Alertes: <span class=\"Style1\">Voici la liste des
kpi du $date ayant depassé les seuils</span></span></h1>
</div></td>
</tr>
<tr>
<td width=\"544\" height=\"21\" bordercolor=\"#FFFFFF\"> </td>
<td width=\"542\" bordercolor=\"#FFFFFF\"> </td>
<td width=\"542\" bordercolor=\"#FFFFFF\"> </td>
</tr>
<tr>
<td height=\"21\" bordercolor=\"#FFFFFF\"> </td>
<td bordercolor=\"#FFFFFF\"> </td>
<td bordercolor=\"#FFFFFF\"> </td>
</tr>
<tr bgcolor=\"#A6A6A6\">
<td height=\"24\"><h3 class=\"Style9\">kpi</h3></td>
<td><span class=\"Style8\">index</span></td>
<td><span class=\"Style9\">etat (%)</strong></span></td>
<td><span class=\"Style9\">heure</strong></span></td>
</tr>
$myliste
</table>
<p class=\"Style2\"> </p>
</div>
</body>
</html>";
if($envoi eq "true"){
my $msg = MIME::Lite->build(
From =>'alerte@orange.cm',
To =>$dest,
#To =>'mefenza2002@yahoo.fr',
# Cc =>'alain.ndongo@orange.fr,some@other.com, some@more.com',
Subject =>'kpi gprs',
Type =>'TEXT/HTML',
Data =>$chaine
);
# Configure the mail server IP/name here
$mail_host = '*******';
$msg->send('smtp', $mail_host);
}
BIBLIOGRAPHIE
O
Ouuvvrraaggeess eett M
Méém
mooiirreess
D
Dooccu
ummeen
nttss éélleeccttrroon
niiqqu
ueess