Smstools
De OpenWikiBSD.
Objectif : Envoyer (ou recevoir) des SMS depuis une machine, et ce de manière automatique, ou lorsqu'un évènement survient (Souci Nagios, réception mail, crontab,....)
Sommaire |
Installation
Debian Lenny
apt-get install smstools
- Un tail -f /var/log/daemon.log donne le nom du device , chez moi :/dev/ttyACM0
- Une boulette dans les droits :
chown -R smsd.smsd /var/log/sms*
- On relance
/etc/init.d/smstools restart
OpenBSD
pkg_add smstools3 usbutil
echo "if [ -x /usr/local/bin/smsd ]; then
install -d -o _smsd /var/run/smsd
echo -n ' smsd'; /usr/local/bin/smsd
fi
" >> /etc/rc.local
Ajouter _smsd au groupe dialer
dialer:*:119:_smsd
Trouver le modem
C'est le plus compliqué... Quel device dans /dev/ correspond au modem ??
Sous OpenBSD, le cordon USB vers un Sony K610i me disait :
umodem0 at uhub1 port 1 configuration 3 interface 1 "Sony Ericsson Sony Ericsson K610" rev 2.00/0.00 addr 2 umodem0: data interface 2, has CM over data, has break umodem0: status change notification available ucom0 at umodem0 umodem1 at uhub1 port 1 configuration 3 interface 3 "Sony Ericsson Sony Ericsson K610" rev 2.00/0.00 addr 2 umodem1: data interface 4, has CM over data, has break umodem1: status change notification available ucom1 at umodem1 cdce0 at uhub1 port 1 configuration 3 interface 8 "Sony Ericsson Sony Ericsson K610" rev 2.00/0.00 addr 2 cdce0: address @MAC ugen0 at uhub1 port 1 configuration 3 "Sony Ericsson Sony Ericsson K610" rev 2.00/0.00 addr
Et pourtant c'est : /dev/cuaU0
Utilisation
- vi /etc/smsd.conf (On modifie la ligne device = ///// dans la partie GSM1 )
- Un script piqué d'ici
#!/usr/local/bin/bash # This script send a text sms at the command line by creating # a sms file in the outgoing queue. # I use it for testing. # $1 is the destination phone number # $2 is the message text # if you leave $2 or both empty, the script will ask you #DEST=33N°Tel au format international : Le 336XXXXX au lieu du 06XXXXX DEST=$1 if [ -z "$DEST" ]; then printf "Destination: " read DEST fi TEXT=$2 if [ -z "$TEXT" ]; then printf "Text: " read TEXT fi == Debug == Attention, les smstools refuseront de fonctionner si vous utilisez les numéros en 06XX; seuls les formats 336XXx sont acceptés. De plus l'erreur est peu parlante : The modem answer was not OK: +CMS ERROR: 38 (Network out of order) FILE=`mktemp /var/spool/sms/outgoing/send_$DEST` chown _smsd $FILE echo "To: $DEST" >> $FILE echo "" >> $FILE echo "$TEXT" >> $FILE
- Puis un simple echo "Systèmes opérationnels Captain Kirk" | sendsms.sh, et c'est parti pour du monitoring temps-réel.
- Tout se passe dans /var/spool/sms, avec des outgoing, des incoming, des sent...

