...
Url d'accès à la base de donnée :
Bloc de code hibernate.connection.jdbc.url=jdbc:mysql://<host>/smsuapi
Ce paramètre défini définit l'url de la base de donnée du back office.
Login d'accès à la base de donnée :
Bloc de code hibernate.connection.jdbc.username=root
Ce paramètre défini définit 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 :
Bloc de code hibernate.connection.jdbc.password=xxx
Ce paramètre défini définit 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 :
Bloc de code hibernate.useJndi=false
Défini le mode d'accès à la base de donnée du back office.
Nom du connecteur OLM utilisé :
Bloc de code sms.connector.name=olmallmysms
Ce paramètre défini définit le nom du broker utilisé. Les brokers disponibles sont "olm", "smsenvoi", "proxy" et "proxyallmysms".
Active / désactive l'envoi effectif des SMS :
Bloc de code 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 :
Bloc de code 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 :
Bloc de code 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 :
Bloc de code quartz.buildStatisticsTrigger.cronExpression=0 0 0 1 * ?
Ce paramètre défini définit 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 :
Bloc de code quartz.purgeSmsTrigger.cronExpression=0 0 3 1 * ?
Ce paramètre défini définit l'expression cron qui est utilisée pour planifier la tache qui purge les SMS.
...
Les brokers disponibles sont "olm", "smsenvoi", "proxy" et "allmysms".
Broker allmysms
Voici la liste des paramètres disponibles dans le fichier src/main/resources/properties/config.properties :
Utilisateur et mot de passe de connexion à allmysms.com (fourni par allmysms.com) :
Bloc de code sms.connector.allmysms.account.login=xxx sms.connector.allmysms.account.apikey=xxx
Pour configurer le champ expéditeur d'un SMS. Attention, ce champ est limité : 11 caractères max et
...
caractères alphanumériques+espace
Bloc de code sms.connector.allmysms.from.mapJSON = { "": "Univ Xxxxxx", "compte1": "Foo" }
- NB : pour avoir les accusés de réception, il faut configurer https://sms.univ.fr/esup-smsuapi/backChannelAck dans le WebHook accusé de allmysms à l'url https://manager.allmysms.com/api
Broker OLM
Voici la liste des paramètres disponibles dans le fichier src/main/resources/properties/broker/olm/libmgs.properties :
...
Utilisateur et mot de passe de connexion à smsenvoi.com (fourni par smsenvoi.com) :
Bloc de code 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
Bloc de code sms.connector.smsenvoi.from.mapJSON = { "": "Univ Xxxxxx", "compte1": "Foo" }
Intervalle en secondes de connection connexion à smsenvoi.com pour obtenir les statuts
Bloc de code 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.
...
Bloc de code |
---|
mvn package |
puis copiez le war dans le répertoire webapps de tomcat.
ou si vous préférez vous pouvez utiliser ant en configurant préalablement le chemin de déploiement dans build.properties
Bloc de code |
---|
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
Bloc de code |
---|
<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
Bloc de code |
---|
ant jetty.startrun # or mvn jetty:run |
en production
L'application se lance quand on lance le serveur tomcat.
Problèmes
Erreur de connexion au broker OLM
Si vous rencontrez le warning suivant dans smsuapi.log :
Bloc de code |
---|
Warning sent by lib SGS : - arg0 : Problem while sending data.(javax.net.ssl.SSLHandshakeException : Received fatal alert: handshake_failure)
|
ajoutez
Bloc de code |
---|
-Dsun.security.ssl.allowUnsafeRenegotiation=true
|
au lancement de tomcat.
...
Pour envoyer plus de 10000 SMS, il faut configurer le paramètre tomcat "maxParameterCount".
Les services REST d'esup-smsu-api sont synchrones : esup-smu-api ne répond que lorsque l'opération demandée est effectivement traitée. Aussi si une requête sur smsu-api correspond à demander à envoyer un sms à plusieurs milliers de numéros de téléphones, le temps de réponse peut être long. Il faut donc s'assurer qu'aucun timeout au niveau d'un éventuel reverse-proxy ne vienne perturber le bon renvoi de la réponse par esup-smus-api.
→ Sous apache, on positionnera un timeout sur le proxypass suffisamment conséquent : par exemple 1 heure et non 1 minute comme positionné par défaut.
Bloc de code |
---|
ProxyPass / ajp://localhost:8009/ retry=1 timeout=3600 |
Configuration sans esup-smsu-api-admin
La façon recommandée d'administrer esup-smsu-api est d'utiliser esup-smsu-api-admin.
Il est néanmoins possible de s'en passer, en modifiant directement la base de données smsu-api. Pour faire la configuration initiale à la main, vous pouvez faire :
Bloc de code |
---|
insert into institution (INS_LABEL) values ("monUniv");
insert into account (ACC_LABEL, ACC_QUOTA) values ("test", 100);
insert into application (INS_ID, ACC_ID, APP_NAME, APP_CERTIFCATE, APP_QUOTA) values (1, 1, "test", "leMotDePassePourAllerAvecLeUserTest", 20); |