Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

cc_envoie_d_alerte_par_sms_au_centre_de_calcul [2016/12/16 10:15] (Version actuelle)
Ligne 1: Ligne 1:
 +Modifié par Kachelhoffer,​ le 13 Jun 2006\\
 +\\
 +
 +====== CC: envoie d'​alerte par SMS au Centre de Calcul ======
 +
 +\\
 +\\
 +
 +=====  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.
 +=====  Présentation du service ​ =====
 +
 +
 +====  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:​
 +  * Du réseau informatique entre l'​application de surveillance désirant envoyer un sms et le serveur d'​envoi de sms.
 +  * Du réseau gsm de l'​opérateur utilisé par le serveur d'​envoi de sms.
 +  * Du réseau gsm de l'​opérateur du destinataire.
 +
 +
 +====  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:
 +  * Connection au serveur et enregistrement de l'​expérience auprès du serveur.
 +  * Envoi d'une demande d'​envoi de sms.
 +  * Deconnection.
 +
 +=====  Limitations et contrôle de l'​utilisation ​ =====
 +
 +
 +====  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:
 +  * Le corps d'un sms ne peut faire que 160 caractères au maximum.
 +  * Le corps d'un sms ne doit contenir aucune lettre accentuée, ni aucun caractère spécial. Plus précisément,​ sont autorisés les 26 lettres de l'​alphabet (minuscules et majuscules),​ les chiffres, et les caractères suivants: espace ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ _
 +
 +
 +====  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:
 +par expérience,​ un maximum de:
 +  * 20 sms par heure.
 +  * 50 sms par jour.
 +  * 300 sms par mois.
 +
 +pour l'​ensemble des expériences,​ un maximum de:
 +  * 100 sms par heure.
 +  * 200 sms par jour.
 +  * 1000 sms par mois.
 +
 +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. 
 +====  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).
 +=====  Protocole de communication avec le serveur smsd  =====
 +
 +
 +====  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:
 +  * Il faut mettre une commande par ligne (et donc séparer les commandes par des '​n'​).
 +  * Les commandes sont indentifiées par leur trois premières lettres. La casse n'​importe pas et il est possible d'​ecrire la commande en entier, seules les trois premières lettres étant prises en compte. Pour plus de clarté, les commandes sont donc écrites ci-dessous en entier, avec les trois premières lettres en majuscules.
 +  * De même les messages de retour sont indentifiés par des codes de trois lettres. Ces codes sont suivis d'un espace, du signe de ponctuation "​deux-points",​ d'un autre espace et d'un message explicatif.
 +  * En cas de message de retour d'​erreur,​ le message explicatif est lui-même constitué d'un code d'​erreur de trois lettres puis d'un message explicatif.
 +
 +Le dialogue avec le serveur smsd s'​effectue en trois temps:
 +  * Tout d'​abord le client doit s'​enregistrer
 +  * Puis il envoie une ou plusieurs demandes d'​envoi de sms.
 +  * Enfin il se déconnecte.
 +
 +
 +====  Commandes pour un client non enregistré ​ ====
 +
 +
 +===  Commande du client: ENRegistre toto  ===
 +
 +^réponse de smsd                          ^commentaire ​                                                                  ^
 +|EOK: enregistrement correct ​             |toto: nom de l'​expérience ​                                                    |
 +|EPB: INC: commande incomplete ​           |si aucun nom d'​expérience n'est donné ​                                        |
 +|EPB: SIM: trop de connections simultanees|si pour ce client le nombre maximum de connection simultanées est déjà atteint|
 +|EPB: AUT: client non autorise ​           |si le nom du client ne fait pas partie de ceux autorisés ​                     |
 +|EPB: AIP: adresse IP non autorisee ​      |si l'​adresse IP n'est pas dans la liste de celles autorisées pour ce client ​  |
 +
 +
 +===  Commande du client: DECconnection ​ ===
 +
 +Cette commande déconnecte proprement le client ​
 +===  Commande du client: xxx  ===
 +
 +^réponse de smsd                                ^commentaire ​                                     ^
 +|INV : commande invalide (client non enregistre)|toute autre commande que "​enregistre"​ est refusée|
 +
 +
 +====  Commandes pour un client enregistré ​ ====
 +
 +
 +===  Commande du client: SMS 06xxxxxxxx corps du sms  ===
 +
 +^réponse de smsd                  ^commentaire ​                                                                                                ^
 +|SOK: sms a envoyer bien recu     ​|06xxxxxxxx:​ numéro du portable gsm destinataire. Le corps du sms ne doit pas comporter de retour à la ligne.|
 +|SPB: INC: commande incomplete ​   |s'il n'y a pas suffisamment d'​arguments ​                                                                    |
 +|SPB: NUM: numero non valide ​     |pour être valide le numéro doit comporter 10 chiffres et commencer par "​06" ​                                |
 +|SPB: COR: corps du sms non valide|si le corps du sms est trop long ou comporte des caractères non autorisés ​                                  |
 +|SRE: DJA: sms deja envoye ​       |si le même sms à déjà été envoyé au même destinataire il y a moins d'une heure                              |
 +|SRE: QTA: quota depasse ​         |si le quota (horaire, quotidien ou mensuel) pour l'​expérience a été dépassé ​                                |
 +|SRE: SAT: serveur sature ​        |si le quota total (horaire, quotidien ou mensuel) pour le serveur a été dépassé ​                            |
 +|SRE: MOD: modem indisponible ​    ​|s'​il n'y a pas de modem gsm connecté au serveur ​                                                            |
 +
 +
 +===  Commande du client: DEConnexion ​ ===
 +
 +Cette commande déconnecte proprement le client. ​
 +===  Commande du client: xxx  ===
 +
 +^réponse de smsd       ​^commentaire ​            ^
 +|INC: commande inconnue|pour 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:
 +  * A la suite d'un message "EPB : SIM", "EPB : AUT" ou "EPB : AIP".
 +  * A la suite d'un message de type "​SRE"​.
 +  * Si le serveur est reconfiguré et que le client n'est plus autorisé.
 +
 +
 +====  Exemple ​ ====
 +
 +Par exemple, le processus normal complet d'​envoi d'un sms est donc:
 +^commande du client ​                    ​^réponse de smsd             ^
 +|ENRegistre toto                        |EOK: enregistrement correct |
 +|SMS 0601020304 alarme truc muche bidule|SOK: sms à envoyer bien recu|
 +|DECconnexion ​                          ​| ​                           |
 +
 +
  
  • cc_envoie_d_alerte_par_sms_au_centre_de_calcul.txt
  • Dernière modification: 2016/12/16 10:15
  • (modification externe)