Software
Shell Script Zendt SMS Berichten
De eerste 2 opties hebben extra hardware nodig, een extra voeding en een actieve SIM card. Speciaal dat laatste kan een probleem zijn. Je kunt kiezen voor een volledig SMS abonnement, maar dan betaal je elke maand een vast bedrag, ook al verzend je geen enkele SMS. Of je betaalt de hoofdprijs als je SMSjes buiten je bundel gaat sturen. Een pre-paid SIM is ook een optie, maar die dingen hebben de vervelde eigenschappen om te verlopen na een half jaar. Dus je moet constant in de gaten houden of je kaart niet verlopen is en of er nog genoeg geld op je kaart staat. Voor beide acties moet dan de SIM kaart uit het modem genomen worden en in een echte telefoon gestoken worden. Ook voor het opwaarderen van het beltegoetd zal de SIM kaart in een echte telefoon gestoken moeten worden.
Email naar SMS diensten komen en gaan op het internet.
Met name de gratis diensten die een aantal jaren geleden nog bestonden zijn allemaal verdwenen.
En als ze nog mochten bestaan dan is het aantal SMSjes wat je per dag/week/maand mag versturen drastisch gereduceerd.
Verder ondersteunen ze zelden of nooit de volle capaciteit van 160 karakters per bericht.
Het ziet er dus naar uit dat we voor de laatste optie moeten gaan. Alles wat je nodig hebt is een klein shell scriptje en een abonnement bij Voipbuster. Dit is ook een pre-paid systeem, maar je tegoed verloopt nooit. En je kunt je tegoed simpel raadplegen en opwaarderen via internet, waar ook ter wereld. P.S. Als je geen shell toegang hebt op je web server, dan kun je ook bebruik maken van een PHP script. Aanmelden Bij Voipbuster
Je kunt je aanmelden door de Voipbuster soft phone te installeren (zie download link op www.voipbuster.com), waarin je je aan kunt melden als nieuw of bestaand lid.
Met die soft phone kun je overigens ook nog eens 4 maanden na elke opwaardering van €10 gratis bellen naar vaste nummers in zowat half Europa.
Het Shell Script
Shell scripting is behoorlijk nieuw voor mij, daarom zou het kunnen zijn dat ik soms een erg grote omweg neem om mijn doel te bereiken.
Maar het werkt, en dat is toch wat telt, niet waar?
Je kunt het script hieronder gewoon met copy/paste overnemen, of je kunt deze tgz file downloaden en uitpakken op jouw systeem.
#!/bin/sh
# sendsms
#
# Author: San Bergmans
# www.sbprojects.com / www.oeioei.nl
#
# Sends an SMS to a phone number through Voipbuster.
# Obviously you'll need a Voipbuster account for this to wrok.
# use: sendsms +31612345678 Message to be sent
# Messages longer than 160 are refused by the service. The return message
# will be failure. Therefore the script will truncate your message to 160
# characters for you.
#
# Sending to more than one phone number is not reliable, you'll get a
# success response, you pay for the sent SMSes, but nothing is sent.
# Therefore stick to one phone number at a time.
#
# If you want a Fonera to send an SMS add the option --no-check-certificate
# to the wget command. The fonera doesn't kill the leading tab in the
# result string.
# Change these settings to match your account with www.voipbuster.com
USER="username"
PASS="password"
FROM="from"
guide ()
{
echo "Usage: $0 phone_number sms text"
echo "Example: $0 +31612345678 This text is sent\n"
}
# Parameter $1 is the destination number in international notation
if [ $# -eq 0 ]; then
echo "No parameters given"
guide
exit 1
else
TO=$1
fi
# The rest of the parameter string is used as SMS text
shift
SMS_TEXT="$*"
SMS_TEXT=`echo $SMS_TEXT|cut -b -160`
if [ "$SMS_TEXT" = "" ]; then
echo "No text message given"
guide
exit 1
fi
# Form the URL, including constants and parameters
URL="https://www.voipbuster.com/myaccount/sendsms.php?username=$USER&password=$PASS&from=$FROM&to=\"$TO\"&text=$SMS_TEXT"
# Send SMS and print the result string from the XML file returned by voipbuster
wget -q "$URL" -O - | grep resultstring | sed -e 's,<resultstring>,,' -e 's,</resultstring>,,' -e 's," ",a,' -e 's,\t,,'
# Example result file from voipbuster
# Indented lines are preseded by a tab
# <?phpxml version "1.0" encoding="utf-8"?>>
# <SmsResponse>
# <version>1</version>
# <result>1</result>
# <resultstring>success</resultstring>
# <description></description>
# <endcause></endcause>
# </SmsResponse>
Nu kun je SMS berichten gaan versturen door het volgende commando in te typen: ./sendsms +31612345678 Hier komt jouw bericht.
Het kan nodig zijn om ./ te vervangen door het pad naar jouw sendsms script.
Het telefoonnummer moet in het internationaal formaat gegeven worden, per slot van rekening kun je berichtjes naar de hele wereld sturen.
Na het telefoonnummer volgt nog het tekst bericht.
Voor zover ik heb kunnen zien zijn er twee antwoorden van het programma mogelijk, "success" en "failure". Tot nu toe heb ik nog geen andere resultaten gezien. Embedded LinuxJe kunt het sendsms script zelfs in sommige embedded Linux versies gebruiken, zoals bijvoorbeeld in de Fonera 2.0N of in de Nokia internet tablets N810 en soortgenoten. Maar hiervoor moet je wel een kleinigheidje aanpassen in het programma. Dat is nodig omdat die embedded Linuxen een aantal beperkingen hebben. Alles wat je moet doen is de optie --no-check-certificate achter het wget commando in het script toe te voegen. Hierdoor negeert het script het beveiligings certificaat. Iets minder veilig, maar het werkt in ieder geval wel.
© 2010, San Bergmans, Oisterwijk, The Netherlands http://www.oeioei.nl |
|