Installer Gammu et Gammu-smsd pour envoyer des SMS depuis un Raspberry

Logo Gammu smsdrc

Dans cet article, je vais vous expliquer comment installer Gammu sur un Rasperry Pi par exemple. Gammu permet d’envoyer des SMS depuis un Raspberry, un PC sur lequel est tourne une plateforme Linux ou même Windows. Il faut bien entendu acheter une clé 3G compatible. J’ai acheté la clé suivante :  Huawei E169 disponible sur Amazon ou sur Aliexpress

Il est possible aussi d’installer le deamon de gammu, afin de recevoir des SMS, et de lancer un script à chaque reception d’un message.
Le tuto qui suit permet donc de déployer l’outil sur une distribution Raspbian

Installer Gammu

Vérifier si la clé est bien détectée par le système et compatible

Mettre à jour le système

Installer gammu

Détecter la configuration de gammu

Récupérer la configuration affichée à l’écran pour la mettre dans le fichier /etc/gammurc

Voici le contenu final de mon fichier :

Vous pouvez vérifier les caractéristiques de la clé 3g avec la commande suivante:

Si un code PIN est activé

L’envoi de SMS se fait via l’une des deux commandes suivantes :

En réponse voici ce que la console affiche

Envoyer un message depuis un script PHP

J’utilise un script PHP pour envoyer des SMS depuis le web. Il se peut que vous rencontrez des soucis de droit lors de l’appel via un exec. Il faut que l’utilisateur apache puisse avoir accès à  /dev/ttyUSB0 Il faut rajouter l’utilisateur www-data au groupe dialout

Il faut ensuite autoriser www-data à executer gammu :

J’ai du ensuite modifier le fichier /etc/apache2/conf-enabled/charset.conf d’Apache pour résoudre mes problème d’encodage afin de décommenter la ligne suivante  AddDefaultCharset UTF-8

Voici mon script php, j’ai fait un truc très simple, il suffira de l’appeler de cette façon :
http://monsite/script.php?message=mon%20message%20de%20test&number=0000000000&token=azerty

J’ai rajouté un token de sécurité pour ne pas recevoir des messages indésirables.

Si malgré tout, vous avez encore des soucis d’encodage de vos SMS, il faut alors changer le “Locale” du Raspberry, tout est expliqué ici

Installer le daemon gammu

Suite à une investigation et aux commentaires, je me suis aperçu que la mise en place du daemon permettait de résoudre deux problème :

  • Il n’est plus nécessaire de renseigner le code PIN à chaque reboot du serveur
  • Il est possible d’envoyer des SMS à la chaîne sans perte.

Il est également intéressant à installer si vous souhaiter par exemple  jouer un script à la réception de nouveaux messages.

Il faut ensuite compléter le fichier /etc/gammu-smsd avec la conf du fichier /etc/gammurc puis relancer le service

 

Options du daemon Gammu

Quelques spécificités concernant ce fichier. Il y a un nouveau “bloc” [smsd], qui contient la configuration du daemon de Gammu. Vous avez la possibilité de renseigner votre code PIN

Vous pouvez aussi choisir la manière dont sont stockés les messages. Par défaut ils sont sauvegardés dans des fichiers dans le dossier /var/spool/gammu
Le dossier /var/spool/gammu appartient à root, tandis que l’ensemble des sous dossiers a pour propriétaire gammu, pour envoyer vos messages via votre site web il faut changer les droits du dossier.

J’ai également ajouter cette variable. C’est le temps à attendre avant de nouveau vérifier s’il y a des nouveaux messages à envoyer. par défaut cette variable vaut 30.

Vous trouverez l’ensemble des variables configurables sur cette page SMSD configuration File

Envoi de SMS

Il se fait via l’une des deux commandes suivantes :

Vous trouverez l’ensemble des options pour envoyer des messages sur le site de Gammu

 


10 commentaires
Commenter

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *