Modifié par Kachelhoffer, le 13 Jun 2006

CC: envoie d'alerte par SMS au Centre de Calcul


 1   Introduction
 2   Présentation du service
    2.1   Généralités
    2.2   Principe de fonctionnement
 3   Limitations et contrôle de l'utilisation
    3.1   Limitations sur le corps des sms
    3.2   Quota d'envoi de sms
    3.3   Contrôle d'accès
 4   Protocole de communication avec le serveur smsd
    4.1   Généralités
    4.2   Commandes pour un client non enregistré
         4.2.1   Commande du client: ENRegistre toto
         4.2.2   Commande du client: DECconnection
         4.2.3   Commande du client: xxx
    4.3   Commandes pour un client enregistré
         4.3.1   Commande du client: SMS 06xxxxxxxx corps du sms
         4.3.2   Commande du client: DEConnexion
         4.3.3   Commande du client: xxx
    4.4   Exemple

1. Introduction

Cette article décrit comment utiliser le service d'envoi de sms du Centre de Calcul: ce service permet aux expériences qui le souhaitent d'envoyer des sms d'alerte à partir de leurs propres applications de surveillance.

2. Présentation du service

2.1. Généralités

Un service d'envoi de sms a été mis en place au centre de calcul. Ce service permet aux expériences qui le souhaitent d'envoyer des sms d'alarme à partir de leurs propres applications de surveillance. Envoyer un sms permet notamment d'avertir rapidement une personne, en dehors des heures de travail, afin que celle-ci puissent tenter d'intervenir à distance. Les sms sont envoyés via un modem gsm branché sur une machine présente au centre de calcul. Le bon acheminement d'un sms dépend donc avant tout du bon fonctionnement:

2.2. Principe de fonctionnement

Pour envoyer un sms, une application cliente doit envoyer une demande au serveur d'envoi de sms. Pour cela il suffit d'ouvrir une douille (en anglais socket) avec le port dédié du serveur, et d'envoyer la demande sur cette douille, en respectant le protocole détaillé plus loin. Un petit module écrit C, disponible sur demande et pouvant bien entendu servir d'exemple, fournit des fonctions permettant de faire les étapes suivantes:

3. Limitations et contrôle de l'utilisation

3.1. Limitations sur le corps des sms

Du fait de la norme du protocole sms et de la réalisation technique retenue, les corps des sms à envoyer doivent respecter les limitations suivantes:

3.2. Quota d'envoi de sms

Afin d'une part de se préménir d'une application cliente qui deviendrait "folle", et d'autre part d'éviter les utilisations abusives (les sms envoyés sont facturés à l'unité au centre de calcul), des quotas ont été mis en place. Il s'agit de quotas d'envoi par expérience, et également de quotas d'envoi totaux pour le serveur. Ces quotas sont de trois types: horaire, quotidien et mensuel. Par exemple, on pourra avoir les quotas suivants:Lorsqu'un de ces quotas est dépassé, les sms sont rejetés (tant que le quota n'a pas été remis à zéro lors du passage à l'heure, le jour ou le mois suivant). Afin de pouvoir être utilisées si nécessaires, certaines informations sont enregistrées par le serveur: l'ensemble des sms envoyés (expérience émettrice, numéro du destinataire, corps du sms, heure d'envoi), et le total mensuel du nombre de sms envoyés pour chaque expérience. Note: aucune information d'ordre privée ne doit être envoyée dans les sms.

3.3. Contrôle d'accès

Afin de sécuriser et d'affiner le contrôle de l'utilisation du serveur d'envoi de sms, chaque expérience doit être préalablement déclarée au niveau du serveur. Une expérience sera caractérisée par son nom. Ensuite, on autorise l'expérience à faire des demandes d'envoi de sms depuis un nombre limité d'adresses IP. Il faut donc également déclarer celles-ci. Il peut s'agir d'adresses IP individuelles, ou bien de sous-réseaux entiers. Il faut également demander d'ouvrir les filtres correspondants au niveau du réseau du centre de calcul. Enfin, le nombre de clients connectés simultanément au serveur est limité: notamment, pour une même expérience, seule un petit nombre d'applications clientes peuvent être connectées simultanément (par exemple 5).

4. Protocole de communication avec le serveur smsd

4.1. Généralités

Voici deux tableaux récapitulant le protocole de dialogue entre smsd et un client. Les commandes et les messages de retour suivent les règles suivantes:Le dialogue avec le serveur smsd s'effectue en trois temps:

4.2. Commandes pour un client non enregistré

4.2.1. Commande du client: ENRegistre toto

réponse de smsdcommentaire
EOK: enregistrement correcttoto: nom de l'expérience
EPB: INC: commande incompletesi aucun nom d'expérience n'est donné
EPB: SIM: trop de connections simultaneessi pour ce client le nombre maximum de connection simultanées est déjà atteint
EPB: AUT: client non autorisesi le nom du client ne fait pas partie de ceux autorisés
EPB: AIP: adresse IP non autoriseesi l'adresse IP n'est pas dans la liste de celles autorisées pour ce client

4.2.2. Commande du client: DECconnection

Cette commande déconnecte proprement le client

4.2.3. Commande du client: xxx

réponse de smsdcommentaire
INV : commande invalide (client non enregistre)toute autre commande que "enregistre" est refusée

4.3. Commandes pour un client enregistré

4.3.1. Commande du client: SMS 06xxxxxxxx corps du sms

réponse de smsdcommentaire
SOK: sms a envoyer bien recu06xxxxxxxx: numéro du portable gsm destinataire. Le corps du sms ne doit pas comporter de retour à la ligne.
SPB: INC: commande incompletes'il n'y a pas suffisamment d'arguments
SPB: NUM: numero non validepour être valide le numéro doit comporter 10 chiffres et commencer par "06"
SPB: COR: corps du sms non validesi le corps du sms est trop long ou comporte des caractères non autorisés
SRE: DJA: sms deja envoyesi le même sms à déjà été envoyé au même destinataire il y a moins d'une heure
SRE: QTA: quota depassesi le quota (horaire, quotidien ou mensuel) pour l'expérience a été dépassé
SRE: SAT: serveur saturesi le quota total (horaire, quotidien ou mensuel) pour le serveur a été dépassé
SRE: MOD: modem indisponibles'il n'y a pas de modem gsm connecté au serveur

4.3.2. Commande du client: DEConnexion

Cette commande déconnecte proprement le client.

4.3.3. Commande du client: xxx

réponse de smsdcommentaire
INC: commande inconnuepour tout autre commande
Note 1: Il est possible de spécifier le numéro du destinataire sous la forme +336xxxxxxxx.

Note 2: Le client est automatiquement déconnecté par le serveur dans les cas suivants:

4.4. Exemple

Par exemple, le processus normal complet d'envoi d'un sms est donc:
commande du clientréponse de smsd
ENRegistre totoEOK: enregistrement correct
SMS 0601020304 alarme truc muche biduleSOK: sms à envoyer bien recu
DECconnexion