Une passerelle SMS sert à envoyer les mails qu’elle reçoit par SMS. Pour cela elle doit pouvoir recevoir des mails, les convertir en un format texte ultra simplifié et envoyer ce texte par SMS.
De plus en plus d’opérateurs de téléphonie mobile proposent des forfaits SMS illimités. On peut donc se créer une passerelle SMS à moindre coût. Personnellement c’est la solution que j’ai choisi pour faire une station de surveillance basée sur Cacti et Nagios. Un bon système monitoring doit utiliser un réseau indépendant pour remonter les alertes (GSM dans notre cas). Si la connexion internet est hors service et que les alertes sont envoyés par mail, impossible d’être informé, logique…
Tous les outils libres existent pour créer une telle plateforme SMS, il suffit des les imbriquer les uns aux autres.
Gnokii est l’outil indispensable pour piloter les téléphones Nokia sous Linux. Il supporte les modèles les plus anciens aux plus récents, qu’ils soient connectés par port infra-rouge, cable série, cable USB ou bluetooth. Il permet d’utiliser de nombreuses fonctions du téléphone directement depuis l’ordinateur qui le pilote : carnet d’adresses, todo, état du réseau, numéroter un appel, etc… Et bien sûr d’envoyer des SMS (et d’en recevoir).
Récupérer le dernier package pour votre architecture : gnokii (DAG wieers)
# installation du logiciel Gnokii rpm -Uvh gnokii-0.6.19-1.el5.rf.x86_64.rpm
Configurer le fichier /etc/gnokiirc pour que votre puisse fonctionner. Si la commande "gnokii –identify" répond alors vous avez réussi. A titre d’exemple, mon fichier de configuration pour un Nokia N70 connecté par cable USB : gnokiirc
# detection du telephone gnokii --identify # envoi d'un SMS gnokii --sendsms votre_numero_de_tel # tapper le message # ctrl+d
Nous voulons recevoir des mails à destination de sms+num_de_tel@votre_nom_de_machine. Par exemple pour sms+0612345678@localhost Postfix va identifier l’utilisateur local "sms" et l’extension "0612345678".
# modifier/ajouter les clefs/valeurs suivantes # dans votre fichier <em>main.cf</em> recipient_delimiter = + local_destination_concurrency_limit = 1
# ajout de l'utilisateur 'sms' adduser -m -g gnokii sms
Fichier /home/sms/.forward : forward
Fichier /home/sms/.procmailrc : procmailrc
J’utilise l’excellent outils mail2sms pour analyser les mails et en ressortir un texte réduit au minimum. Installation classique à partir des sources :
wget http://daniel.haxx.se/projects/mail2sms/mail2sms-1.3.5.tar.gz tar xzvf mail2sms-1.3.5.tar.gz cd mail2sms-1.3.5 ./configure make cp mail2sms /usr/local/bin/mail2sms
Au besoin le binaire i386 : mail2sms (à placer dans /usr/local/bin)
Fichier /home/sms/mail2sms.conf : mail2sms.conf
Pour éviter tout problème d’accès au périphérique, nous donner les droits root à l’utilisateur sms quand il utilise la commande gnokii.
visudo # ajouter la ligne suivante, sauver et quitter %gnokii ALL=(ALL) NOPASSWD: /usr/bin/gnokii
Et voilà ! Cela devrait fonctionner. Vous pouvez envoyer un mail à sms+votre_tel@serveur et vous devriez le recevoir par SMS d’ici peu.
En cas de problèmes un "tail -f /var/log/maillog" devrait vous éclairer. Procmail a aussi la possiblité de logger, pour cela décommenter le paramètre LOGFILE du fichier .procmailrc.
Sur ce blog j'expose mes expériences des tous les jours. Principalement axées autour du monde du logiciel libre, il peut aussi m'arriver de parler de faits d'actualités qui m'intéresse. Bonne lecture et n'hésitez pas à commenter ou à m'écrire
Troopy
avril 29th, 2008 at 15:57
Et ou est-ce qu’on peut aller pour avoir un service SMS illimité ?
Pierre-Yves
avril 29th, 2008 at 16:05
Pour mon téléphone pro l’option valait 10€ auprès de l’opérateur LUXGSM. En France, les opérateurs qui utilisent le réseau des “gros” proposent aussi cela - par exemple Virgin Mobile et Universal Mobile. Il doit y avoir d’autres.
damien
mai 15th, 2009 at 20:52
bonjour
j’ai testé le tuto, et ca marche bien
par contre j’ai une question, est-il possible de validé l’envoi par le biai d’une base de donnée. Pour par ex autorisé seulement l’envoi de texto à un n° précis.
Merci
Pierre-Yves
mai 25th, 2009 at 20:23
Pour cela, tu peux modifier le fichier .forward, au lieu de :
“| exec /usr/bin/procmail -t -a ${EXTENSION}”
mets par exemple :
“| mon_script | exec /usr/bin/procmail -t -a ${EXTENSION}”
Reste à écrire le script “mon script” pour faire le filtrage dont tu as besoin.
abbe
novembre 19th, 2009 at 14:14
je cherche une doc sur la mise en place d’une passerelle de sms avec logiciel libre kannel