Documentation pour l'ancienne version de SMS-U |
L'application de Back office packagée se trouve dans le dossier /dist du projet.
Dézippez le contenue de la distribution la plus récente de esup-smsuapi dans un répertoire de travail.
Le paramétrage suivant est à effectuer dans le dossier ainsi créé.
Le back office se déploie en mode servlet.
Vérifier la configuration des fichiers :
Voici la liste des paramètres disponibles :
Url d'accès à la base de donnée :
hibernate.connection.jdbc.url=jdbc:mysql://<host>:3306/smsuapi |
Ce paramètre défini l'url de la base de donnée du back office.
Login d'accès à la base de donnée :
hibernate.connection.jdbc.username=root |
Ce paramètre défini le login pour l'accès à la base de donnée du back office.
Mot de passe d'accès à la base de donnée :
hibernate.connection.jdbc.password=xxx |
Ce paramètre défini le mot de passe pour l'accès à la base de donnée du back office.
Mode d'accès à la base de donnée :
hibernate.useJndi=false |
Défini le mode d'accès à la base de donnée du back office.
Nom du connecteur OLM utilisé :
sms.connector.name=olm |
Ce paramètre défini le nom du broker utilisé. Les brokers disponibles sont "olm", "smsenvoi" et "proxy".
Active / désactive l'envoi effectif des SMS :
sms.connector.simulateSending=false |
Ce paramètre sert à désactiver l'envoi effectif des messages au broker. Si à « true » alors aucun message ne sera envoyé au broker.
Nombre maximum de jour de conservation des SMS :
purge.sms.seniorityDay=180 |
Ce paramètre sert à définir la durée maximum (en jours) de conservation des SMS en base avant que ceux ci ne soient purgés.
Nombre maximum de jour de conservation des statistiques :
purge.statistic.seniorityDay=730 |
Ce paramètre sert à définir la durée maximum (en jours) de conservation des statistiques en base avant que ceux ci ne soient purgés. Ces statistiques sont utilisés pour la création des rapports consolidés.
La cron expression utilisée par la tache de génération des statistiques :
quartz.buildStatisticsTrigger.cronExpression=0 0 0 1 * ? |
Ce paramètre défini l'expression cron qui est utilisée pour planifier la tache qui génère les statistiques nécessaires aux relevés consolidés.
La cron expression utilisée par la tache de purge des sms :
quartz.purgeSmsTrigger.cronExpression=0 0 3 1 * ? |
Ce paramètre défini l'expression cron qui est utilisée pour planifier la tache qui purge les SMS.
La cron expression utilisée par la tache de purge des statistiques :
quartz.purgeStatisticTrigger.cronExpression=0 0 5 1 * ? |
Ce paramètre défini l'expression cron qui est utilisée pour planifier la tache qui purge les statistiques.
Les brokers disponibles sont "olm", "smsenvoi" et "proxy".
Voici la liste des paramètres disponibles dans le fichier properties/broker/olm/libmgs.properties :
Identifiant de l'application (fourni par OLM) :
libmgs.smsuapi.sid=1234 |
Chemin d'accès du certificat utilisé pour communiquer avec OLM (fourni par OLM) :
libmgs.smsuapi.https.keystore=/an/example/certificat.ks |
Mot de passe du certificat (fourni par OLM) :
libmgs.smsuapi.https.passwd=xxxxxxx |
Type de logger :
libmgs.smsuapi.log.type=file |
Défini le type de logger utilisé par la librairie.
Fichier de log :
libmgs.smsuapi.log.file.path=/an/example/pushLibMGS.log |
Défini le chemin d'accès du fichier de log utilisé par la librarie libMGS.
Timeout de notification :
libmgs.smsuapi.advanced.notifTimeout=1 |
Défini la durée (en minute) avant que la connexion vers l'url de notification soit automatiquement fermée et ré-ouverte.
Voici la liste des paramètres disponibles dans le fichier properties/broker/smsenvoi/smsenvoi.properties :
Utilisateur et mot de passe de connexion à smsenvoi.com (fourni par smsenvoi.com) :
sms.connector.smsenvoi.account.email = smsu@univ-paris1.fr sms.connector.smsenvoi.account.apikey = xxx |
Pour configurer le champ expéditeur d'un SMS. Attention, ce champ est limité : 10 caractères max et caractères alphanumériques+espace
sms.connector.smsenvoi.from.mapJSON = { "": "Univ Xxxxxx", "compte1": "Foo" } |
Intervalle en secondes de connection à smsenvoi.com pour obtenir les statuts
sms.connector.smsenvoi.acknoledgeStatus.repeatInterval=20 |
Pour obtenir le statut d'un SMS (En cours, Délivré, Numéro invalide...), le back office doit se connecter à smsenvoi.com à intervalle régulier.
URL de back office SMS-U proxy
sms.connector.proxy.ws.address=https://sms.univ-xxx.fr/xfire |
Intervalle en secondes de connection au proxy pour obtenir les statuts
sms.connector.proxy.acknoledgeStatus.repeatInterval=20 |
Pour obtenir le statut d'un SMS (En cours, Délivré, Numéro invalide...), le back office doit se connecter au back office "proxy" à intervalle régulier.
Le back office nécessite un serveur de base de données MySQL en version 5.
Pour créer le schéma de base de donnée : se connecter au serveur mysql en tant qu'administrateur et saisir le mot de passe
mysql -u root -p -e "create database smsuapi" |
Un schéma nommé « smsuapi » est maintenant créé
(nb : il faut configurer properties/config.properties avant d'effectuer cette étape)
Il faut premièrement configurer le premier super utilisateur de l'application.
Pour ce faire, éditer le fichier «utils/database/populate_tables_esup-smsu-api.sql », puis modifier la ligne suivante
-- Ajout du premier super administrateur INSERT INTO user_bo_smsu VALUES (1, 3, "admin"); |
Il faut remplacer admin par le login de l'utilisateur qui sera le super administrateur.
A l'aide des scripts ant fournis avec le back office, créer les tables par la tache init-data
ant init-data |
Nb : Aucune table ne doit être présente dans le schéma smsuapi au moment de l'exécution de cette commande sous peine d'échec.
Pour vérifier que les étapes précédentes se sont correctement déroulées : se connecter à la base de données et saisir le mot de passe :
mysql -u root -p -e "show tables" smsuapi |
La liste des tables doit apparaître de la manière suivante :
+--------------------------+ | Tables_in_smsuapi | +--------------------------+ | QRTZ_BLOB_TRIGGERS | | QRTZ_CALENDARS | | QRTZ_CRON_TRIGGERS | | QRTZ_FIRED_TRIGGERS | | QRTZ_JOB_DETAILS | | QRTZ_JOB_LISTENERS | | QRTZ_LOCKS | | QRTZ_PAUSED_TRIGGER_GRPS | | QRTZ_SCHEDULER_STATE | | QRTZ_SIMPLE_TRIGGERS | | QRTZ_TRIGGERS | | QRTZ_TRIGGER_LISTENERS | | account | | application | | b_user | | b_user_admin | | b_vers_mana | | b_vers_mana_admin | | blacklist | | fonction | | institution | | role | | role_composition | | sms | | statistic | | user_bo_smsu | +--------------------------+ |
L'application se déploie par la tache ant deploy :
ant deploy |
Ajouter l'application dans le contexte du serveur du portail, par exemple par le biais du fichier conf/Catalina/localhost/esup-smsuapi.xml
<Context docBase="/usr/local/esup-smsuapi/tomcat/webapps/esup-smsuapi" > <Resource name="jdbc/esup-smsuapi" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/smsuapi" username="xxx" password="xxx" maxActive="100" maxWait="10000" validationQuery="select 1" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true" /> </Context> |
Remarque : <Resource> n'est pas nécessaire si on utilise hibernate.useJndi=false
(le contexte peut aussi être configuré dans le fichier tomcat conf/server.xml)
L'application peut être déployée dans un serveur d'applications existant, voir la documentation du framework esup-commons
L'application se lance par la tache
ant start |
L'application se lance quand on lance le serveur tomcat.
Si vous rencontrez le warning suivant dans smsuapi.log :
Warning sent by lib SGS : - arg0 : Problem while sending data.(javax.net.ssl.SSLHandshakeException : Received fatal alert: handshake_failure) |
ajoutez
-Dsun.security.ssl.allowUnsafeRenegotiation=true |
au lancement de tomcat.
NB : problème rencontré sur java 1.6.12