Use kannel SMS-Gateway with wget
You can wget commandline program to send sms messages via Kannel SMS-gateway. Here is a quite simple bash-program that I'm using to check if one of my VPN-connections is still alive.
Here is the check_vpn script:
#!/bin/bash
#################################################################################
# #
# Check if selected network interface is present. If not #
# then send text-message to selected gsm-numbers. #
# #
# Author: Janne Mikkonen #
# Copyright: 2007 - Janne Mikkonen #
# 2007 - Mediamaisteri Group #
# License: http://www.opensource.org/licenses/mit-license.php MIT License #
# #
# Copyright (c) 2007 Janne Mikkonen http://julmajanne.com #
# 2007 Mediamaisteri Group http://www.mediamaisteri.com #
# #
# Permission is hereby granted, free of charge, to any person obtaining a copy #
# of this software and associated documentation files (the "Software"), to deal #
# in the Software without restriction, including without limitation the rights #
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell #
# copies of the Software, and to permit persons to whom the Software is #
# furnished to do so, subject to the following conditions: #
# #
# The above copyright notice and this permission notice shall be included in #
# all copies or substantial portions of the Software. #
# #
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE #
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, #
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN #
# THE SOFTWARE. #
#################################################################################
#
# Define variables
#
PATH=/bin:/sbin:/usr/bin:/usr/sbin
export $PATH
NUMBERS="+35850125784" #Recipients separated with spaces
GWHOST="http://123.123.123.123" #SMS-gw address
GWPORT=14000 #SMS-gw port
GWPATH="/cgi-bin/sendsms" #SMS-gw command path
GWUSER="youruser" #SMS-gw username
GWPASS="yourpass" #SMS-gw password
# Check if user gave an interface to search for?
if [ $# -lt 1 ]; then
FIND='ppp'
else
FIND=$1
fi
#
# Messages to send
#
MESSAGE="Could not find given interface! Connection lost!"
ERRMSG="Could not create new connection!"
#
# Check if needed interface is present
#
CONN=$(/sbin/ifconfig | grep -E $FIND | cut -d' ' -f1)
if [ -z $CONN ]; then
wget --spider -q -O /dev/null \
"${GWHOST}:${GWPORT}${GWPATH}?username=${GWUSER}&password=${GWPASS}&text=$MESSAGE&to=${NUMBERS}&charset=UTF-8"
/path/to/start_vpn # Path to start_vpn script.
RETVAL=$?
if [ $RETVAL -eq 1 ]; then
wget --spider -q -O /dev/null \
"${GWHOST}:${GWPORT}${GWPATH}?username=${GWUSER}&password=${GWPASS}&text=${ERRMSG}&to=${NUMBERS}"
fi
fi
start_vpn -script:
#!/bin/bash
PATH=/bin:/sbin:/usr/sbin:/usr/bin
export PATH
TOUT=10
COUNT=0
pppd pty 'pptp 231.231.231.231 --nolaunchpppd' call xxx
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
while [ $COUNT -lt $TOUT ]; do
COUNT=$(($COUNT+1))
TEST=$(ifconfig | grep -E ppp | cut -d' ' -f1)
if [ -z $TEST ]; then
sleep 1
else
route add -host 111.111.111.111 dev $TEST
exit 0
fi
done
exit 1
fi
The firs IP-address is the address that should accept VPN-connections and the second one
is the IP-address which is reponsible for the service that we want to use.