<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Matthias Lohr&#039;s technical stuff &#187; SMS</title>
	<atom:link href="http://www.matthias-lohr.net/tag/sms/feed" rel="self" type="application/rss+xml" />
	<link>http://www.matthias-lohr.net</link>
	<description>&#34;do nothing, successfully&#34; -- man true</description>
	<lastBuildDate>Tue, 22 Jun 2010 21:01:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>SMS-Gateway die zweite</title>
		<link>http://www.matthias-lohr.net/38/sms-gateway-die-zweite</link>
		<comments>http://www.matthias-lohr.net/38/sms-gateway-die-zweite#comments</comments>
		<pubDate>Sat, 14 Feb 2009 12:14:48 +0000</pubDate>
		<dc:creator>Matthias Lohr</dc:creator>
				<category><![CDATA[Just4Fun]]></category>
		<category><![CDATA[Gateway]]></category>
		<category><![CDATA[Nokia 5210]]></category>
		<category><![CDATA[SMS]]></category>

		<guid isPermaLink="false">http://blog.ml.vg/?p=38</guid>
		<description><![CDATA[Nach ein wenig Arbeit und Testerei hab ich mit meinem alten Nokia 5210 ebenfalls ein SMS-Gateway zusammenbauen können. Dafür braucht man lediglich ein Nokia 5210 Datenkabel,welches es günstig bei Amazon o. ä. gibt. Außerdem muss man die Config von gnokii ein wenig anpassen: [global] port = /dev/ttyUSB0 model = 6110 connection = serial Welchen Wert [...]]]></description>
			<content:encoded><![CDATA[<p>Nach ein wenig Arbeit und Testerei hab ich mit meinem alten Nokia 5210 ebenfalls ein SMS-Gateway zusammenbauen können. Dafür braucht man lediglich ein <a href="http://www.amazon.de/gp/offer-listing/B0007VLJRA?ie=UTF8&amp;tag=mlohr-21&amp;linkCode=am2&amp;camp=1638&amp;creative=6742&amp;creativeASIN=B0007VLJRA">Nokia 5210 Datenkabel</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.de/e/ir?t=mlohr-21&amp;l=as2&amp;o=3&amp;a=B0007VLJRA" border="0" alt="" width="1" height="1" />,welches es günstig bei Amazon o. ä. gibt. Außerdem muss man die Config von gnokii ein wenig anpassen:</p>
<blockquote><p>[global]<br />
port = /dev/ttyUSB0<br />
model = 6110<br />
connection = serial</p></blockquote>
<p>Welchen Wert man bei &#8216;model&#8217; angeben muss, kann man auf <a href="http://wiki.gnokii.org/index.php/Config">dieser</a> Seite nachsehen. Viel Erfolg bei eigenen Konstruktionen!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthias-lohr.net/38/sms-gateway-die-zweite/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SMS-Gateway mit Siemens TC35i</title>
		<link>http://www.matthias-lohr.net/10/sms-gateway-mit-siemens-tc35i</link>
		<comments>http://www.matthias-lohr.net/10/sms-gateway-mit-siemens-tc35i#comments</comments>
		<pubDate>Mon, 26 Jan 2009 11:32:28 +0000</pubDate>
		<dc:creator>Matthias Lohr</dc:creator>
				<category><![CDATA[URT]]></category>
		<category><![CDATA[Gateway]]></category>
		<category><![CDATA[SMS]]></category>

		<guid isPermaLink="false">http://blog.ml.vg/?p=10</guid>
		<description><![CDATA[Informationen über die Einrichtung eines SMS-Gateways an einem Rechner.]]></description>
			<content:encoded><![CDATA[<p>Zur Unterstützung der Rechnerüberwachung an der Universität Trier wurde ein Nagios-System eingerichtet, welches in regelmäßigen Abständen die Funktion wichtiger Systeme testet und ggf. die Administratoren über Probleme benachrichtigt. Allerdings gab es zuerst nur die Benachrichtung per E-Mail, sodass der Problembericht unter Umständen erst sehr spät zugestellt wurde, was in Ausnahmefällen weitere Probleme verursacht. Deswegen gab es den Wunsch, eine schnellere Benachrichtigung einzubauen, in diesem Fall per SMS.</p>
<p>Als Hardware verwenden wir ein Siemens <a href="http://www.amazon.de/gp/product/B0009V968C?ie=UTF8&amp;tag=mlohr-21&amp;linkCode=as2&amp;camp=1638&amp;creative=6742&amp;creativeASIN=B0009V968C">TC35i</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.de/e/ir?t=mlohr-21&amp;l=as2&amp;o=3&amp;a=B0009V968C" border="0" alt="" width="1" height="1" /> auf einem Ubuntu 8.04 Serversystem. Da das Modem per Serielle Schnittstelle angesprochen wird, sollte eine solche am Rechner vorhanden sein (oder per USB-Adapter nachgerüstet werden).</p>
<p>Linux bietet ein Programm namens <em>smstools</em>, welches eigentlich genau die Funktion eines SMS-Gateways übernehmen können soll. Nach vielen Versuchen und gleichbleibend niedrigem Erfolg (null ist einfach null) wurden die <em>smstools</em> in den Mond geschossen, mehr oder weniger per Zufall bin ich über das Programm <em>gnokii</em> gestolpert, welches ich noch von Synchronisations-Versuchen mit meinem Handy kannte. Diese Tool hat aber noch weitere nette Funktionen, die wir hier gut gebrauchen konnten.</p>
<p>Als Vorbereitung sollte man sich eine SIM-Karte besorgen, die in der Lage ist, SMS zu versenden (ausreichend Guthaben, PIN bekannt, &#8230;). Man sollte die PIN-Eingabe deaktivieren, um weiteren Problemen in dieser Richtung aus dem Weg zu gehen.</p>
<p>Auf dem Zielsystem sollte man als nächstes einen neuen Benutzer und eine neue Gruppe einrichten, um die Rechte der später verwendeten Scripts einzuschränken. Wahnsinnige oder lebensmüde Administratoren dürfen aber auch gerne den root-Benutzer verwenden. Außerdem installieren wir direkt gnokii zur Kommunikation mit dem Modem und xinetd als Empfänger der zu versendenden SMS. (Bei den folgenden Befehlen gehe ich davon aus, dass man als root auf dem System unterwegs ist.)</p>
<blockquote><p>useradd -d /home/smsd -m smsd<br />
apt-get install gnokii gnokii-cli gnokii-common xinetd</p></blockquote>
<p>Als weiteren Schritt fügt man den neu erstellten Benutzer <em>smsd</em> in die Gruppe <em>dialout</em> ein, damit dieser Benutzer auf die seriellen Schnittstellen zugreifen kann.</p>
<p>Dann wechselt man zum Benutzer smsd und geht legt in dessen Homeverzeichnis die Datei .gnokiirc mit folgendem Inhalt an (unter der Vorraussetzung, dass das Modem an /dev/ttyS0 angeschlossen ist, bitte nicht den Punkt im Dateinamen vergessen):</p>
<blockquote><p>[global]<br />
port = /dev/ttyS0<br />
model = AT<br />
initlength = default<br />
connection = serial</p></blockquote>
<p>Nun sollte man auf das Modem zugreifen können. Testen kann man dies mit folgendem Befehl:</p>
<blockquote><p>gnokii &#8211;identify</p></blockquote>
<p>Wenn man nicht zum Benutzer smsd gewechselt hat, bekommt man nun einen schicken Fehler, einfach wechseln, dann findet er auch die Datei mit den Einstellungen zum Modem und spuckt irgendetwas Nettes aus. Nun basteln wir ein Shellscript, welches von xinetd aufgerufen wird und die SMS an gnokii übergibt. Diese Datei nennen wir sendsms.sh (ebenfalls im Home von smsd):</p>
<blockquote><p>#!/bin/bash<br />
LOGFILE=/home/smsd/sendsms.log<br />
CONFFILE=/home/smsd/.gnokiirc</p>
<p>read telnr<br />
read text<br />
while read line<br />
do<br />
text=&#8221;$text\n$line&#8221;<br />
done<br />
echo ========= `date +&#8217;%d.%m.%Y %H:%M&#8217;` =========== &gt;&gt; $LOGFILE<br />
echo -e &#8220;SMS TO $telnr FROM $REMOTE_HOST&#8221; &gt;&gt; $LOGFILE<br />
echo &#8220;== BEGIN ==&#8221; &gt;&gt; $LOGFILE<br />
echo -e &#8220;$text&#8221; | sed -e &#8220;s/ *$//&#8221; &gt;&gt; $LOGFILE<br />
echo &#8220;==  END  ==&#8221; &gt;&gt; $LOGFILE<br />
echo -e &#8220;$text&#8221; | sed -e &#8220;s/ *$//&#8221; | gnokii &#8211;config $CONFFILE &#8211;sendsms &#8220;$telnr&#8221; &gt;&gt; $LOGFILE<br />
echo &#8220;gnookii return code was: $?&#8221; &gt;&gt; $LOGFILE</p></blockquote>
<p>Dieses Script liest aus der ersten Zeile der ankommenden Daten die Handynummer aus, an welche die SMS übertragen werden soll. Der restliche Text (bis zum EOF) wird als Inhalt der SMS verschickt. Damit man das Programm auch ausführen kann, ändern wir die Rechte ein wenig:</p>
<blockquote><p>chmod u+x /home/smsd/sendsms.sh</p></blockquote>
<p>Als nächstes überzeugen wir xinetd davon, an einem Port zu lauschen und bei Dateneingang unser kleines Sendescript aufzurufen. Dies tun wird durch Erstellen der Datei (wieder als root) /etc/xinetd.d/smsd:</p>
<blockquote><p>service smsd<br />
{<br />
id = smsd<br />
type = UNLISTED<br />
socket_type = stream<br />
protocol = tcp<br />
port = 1254<br />
wait = no<br />
user = smsd<br />
group = smsd<br />
groups = yes<br />
server = /home/smsd/sendsms.sh<br />
}</p></blockquote>
<p>Jetzt schnell noch xinetd neustarten:</p>
<blockquote><p>/etc/init.d/xinetd restart</p></blockquote>
<p>Nun sollte der Versand funktionieren. Eine kleine Testsequenz mit dem Programm netcat:</p>
<blockquote><p>echo -e &#8220;+49123456789\nHello world!&#8221; | netcat -q 0 12.34.56.78 1254</p></blockquote>
<p>Diese Zeile sendet an die Handynummer +49123456789 eine SMS mit dem Text &#8220;Hello world!&#8221;. In diesem Fall wird davon ausgegangen, dass die IP des Gateways 12.34.56.78 ist. Den Port kann man übrigens in der xinetd-Konfiguration erstellen.</p>
<p>Es macht übrigens Sinn, per iptables eine kleine Firewall einzurichten, wer verschicken darf und wer nicht, ansonsten kann nämlich jeder darauf zugreifen, der irgendwie an den Rechner kommt. Ganz Fleißige können natürlich auch eine Authentifikation einbauen.</p>
<p>Wer möchte, kann natürlich auch andere Benutzernamen, Pfade usw. verwenden, ein gewisses Grundverständis von Linux-System wird dabei jedoch vorausgesetzt.</p>
<p>Erweiterungen (TODOs):</p>
<ul>
<li>Abfragen eingehender SMS, um Blockadesituationen bei vollem SMS-Speicher zu vermeiden</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.matthias-lohr.net/10/sms-gateway-mit-siemens-tc35i/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
