Pages enfant
  • Manual d'installation du Back Office (esup-smsu-api)

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

  • 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 utilisé :

    Bloc de code
    sms.connector.name=allmysms
    

    Ce paramètre défini définit le nom du broker utilisé. Les brokers disponibles sont "olm", "smsenvoi", "proxy" et "allmysms".

  • 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" et "proxy"., "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 quand on lance le serveur 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

...

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", "xxxleMotDePassePourAllerAvecLeUserTest", 20);

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.

...