Ceci est une ancienne révision du document !
Passerelle SMS
Nous utiliserons pour cela :
- Une clé USB 3G (type Huawei K4511)
- Gnokii, le logiciel permettant entre autre l'envoi de SMS via la clé USB 3G
- Un script utilisé en tant que transport Postfix faisant la liaison entre la réception d'un mail et l'envoi d'un SMS avec Gnokii.
Installation de la clé USB 3G
Nous utiliserons une clé USB 3G Huawei K4511 dans ce test. Ce type de clé ont deux mode d'utilisation :
- un mode proposant à l'ordinateur sur lequel il est connecté, un lecteur CD virtuel contenant le logiciel d'installation Windows de la clé - un second mode proposant un modem GSM que nous voulons utiliser
Par défaut, lorsque l'on connecte la clé USB à la machine, celle-ci est en mode “CD virtuel”. Pour basculer dans le mode modem GSM, nous allons utiliser l'outil usb-modeswitch qui s'en occupera.
Installation et configuration d'usb-modeswitch
- Installer tout d'abord le paquet Debian usb-modeswitch :
apt-get install usb-modeswitch
- Connecter votre clé USB et regarder les identifiants vendeurs et produits de votre clé. Dans mon cas il s'agit de 12d1:14b7 :
Bus 001 Device 006: ID 12d1:14b7 Huawei Technologies Co., Ltd.
- Vérifier si votre clé est connue et supportée directement par le paquet Debian ou bien qu'il vous faut comme moi configurer le switching de mode :
- crée le fichier /etc/usb_modswitch.d/[ID vendeur]:[ID produit], dans mon cas /etc/usb_modeswitch.d/12d1:14b7. Ce fichier contiendra notamment les ID vendeur et produit avant et après switching. Dans mon cas :
DefaultVendor= 0x12d1 DefaultProduct=0x14b7 TargetVendor= 0x12d1 TargetProduct= 0x14cc CheckSuccess=20 MessageContent="55534243123456780000000000000011062000000100000000000000000000"
- Le paquet Debian installe automatiquement des règles UDEV lançant le switching à la connexion des clés reconnues. Pour vérifier que le lancement automatique pour votre clé est bien présent, chercher la (avec ses identifiants) dans le fichier /lib/udev/rules.d/40-usb_modeswitch.rules
Pour vérifier que le switching fonctionne, il sera nécessaire de redémarrer la machine (ou recharger les règles UDEV manuellement) et retenter l'insertion de la clé. Le switching avec usb_modeswitch devrai être lancer automatiquement un nouveau périphérique du type GSM modem (ttyUSB0 et ttyUSB1). Surveiller les logs kernel pour vous en assurer.
usb_modeswitch -c /etc/usb_modeswitch.d/12d1\:14b7
echo 12d1 14cc > /sys/bus/usb-serial/drivers/option1/new_id
Observer ensuite le résultat dans les logs du kernel et si cela fonctionne vous pouvez automatiser cela via une règle UDEV de cette manière :
echo 'SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="14cc", RUN="/usr/local/bin/detect_usb_key"' > /etc/udev/rules.d/99-usbkey.rules echo -e '#!/bin/bash\nmodprobe option\necho "12d1 14cc" > /sys/bus/usb-serial/drivers/option1/new_id' > /usr/local/bin/detect_usb_key chmod 755 /usr/local/bin/detect_usb_key
Installer et configurer Gnokii
- Installer le paquet Debian gnokii-cli :
apt-get install gnokii-cli
- Editer le fichier de configuration et modifier la variable de configuration principale comme suit :
[global] port = /dev/ttyUSB0 model = AT connection = serial
- Faire un lien entre la configuration globale du système et celle utilisée par l'utilisateur root :
mkdir -p /root/.config/gnokii ln -s /etc/gnokiirc /root/.config/gnokii/config
- Vérifier que la clé est bien reconnu avec la commande :
:~# gnokii --identify
- Si la clé est bien reconnu, vous devriez avoir quelques choses comme ça :
gnokii --identify GNOKII Version 0.6.29 IMEI : XXXXXXXXXXXXXXXXXXX Manufacturer : Vodafone (Huawei) Model : K4511 Product name : K4511 Revision : 11.810.09.19.287
Mettre en place la passerelle mail -> SMS
- Installer le paquet Debian libemail-simple-perl
- Ajouter l'utilisateur gnokii et l'ajouter dans le group dialout :
adduser --system gnokii adduser gnokii dialout
- Installer le script mail2gnokii dans le dossier /usr/local/sbin
- Adapter les variables de configurations du script :
- smsc : le numéro de centre de messagerie de votre opérateur mobile (Liste ici)
- authorized_number : liste de numéro de téléphone destinataire autorisé
- gnokii_config : le fichier de configuration pour gnokii à utiliser
- Ajouter le transport suivant dans votre fichier master.cf :
sms unix - n n - 1 pipe flags=Rq user=gnokii:dialout argv=/usr/local/sbin/mail2gnokii.pl ${user}
- L'utiliser pour le domaine de votre choix, exemple sms.example.tld. Pour cela, ajouter dans votre fichier transport :
sms.example.tld sms
- Regénérer le fichier transport.db et recharger la configuration de Postfix :
postmap /etc/postfix/transport /etc/init.d/postfix reload