Translate

Posts mit dem Label smstools3 werden angezeigt. Alle Posts anzeigen
Posts mit dem Label smstools3 werden angezeigt. Alle Posts anzeigen

Sonntag, 12. Januar 2014

Eventhandler erleichtert die Gesamtfunktion ungemein

Ab sofort nutze ich den in smstools3 bereits vollständig integrierten eventhandler, welcher ein php script auslöst. Herauslösung der SMS Parameter, Abspeicherung der SMS Informationen in einer mysql Datenbank, e-mail SMTP Weiterleitung, sowie die nachfolgende Löschung der angelegten SMS-Datei erfolgt dabei in nur einem Arbeitsschritt. Nach einigem tüfteln funktioniert das nun alles.

Das php-script sollte man ja eigentlich nicht in www lagern, schon aus Sicherheitsgründen grundsätzlich. Es funktioniert dort ja auch nur, wenn dem smsd-user für das www entsprechende Rechte eingeräumt werden.

Auf zusätzliche cronjobs kann man jedoch völlig verzichten. Denn smstools3 läuft ja als quasi-cron (siehe : loglevel 7) und muss eher noch entschleunigt werden, sonst wird der SMS stick viel zu oft abgefragt. Und warm.

Vorsicht! Unter loglevel 7 schnell wachsende logdatei auf der sd card. Am Besten nur loglevel 1 im Produktivbetrieb einstellen und im Auge behalten....

Samstag, 11. Januar 2014

Eingegangene SMS nach Auswertung sofort mit php Befehl löschen

Und so funktioniert das unter php:


// datei mit eingegangener SMS wieder löschen
unlink("$sms_file");


Damit sammelt sich dann absolut kein Datenmüll auf der Karte an.

Der User "smsd" muss für /var/www/...... Zugriff beechtigt werden

und das geht so:

Rechte für smsd für das www Vereichnis erteilen

sudo adduser smsd www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rw /var/www
Es ist natuerlich sicherer, wenn die php scripte NICHT im www liegen!


Getting ALL! SMS parameters from smstools - by eventhandler activated script

#!/usr/bin/php
<?php

error_reporting(E_ALL);
ini_set("display_errors", 1);

//übergabeparameter aus smstools3

$sms_type = $argv[1];
$sms_file   = $argv[2];



$sms_file_content = file_get_contents($sms_file);
$i = strpos($sms_file_content, "\n\n");
$sms_headers_part = substr($sms_file_content, 0, $i);
$sms_message_body = substr($sms_file_content, $i + 2);
$sms_header_lines = split("\n", $sms_headers_part);
$sms_headers = array();

foreach ($sms_header_lines as $header)
{
  $i = strpos($header, ":");
  if ($i !== false)
    $sms_headers[substr($header, 0, $i)] = substr($header, $i + 2);
}

// select and get all header informations
$h_vonhandy    = $sms_headers["From"];
$h_toa              = $sms_headers["From_TOA"];
$h_smsc           = $sms_headers["From_SMSC"];
$h_sent             = $sms_headers["Sent"];
$h_received      = $sms_headers["Received"];
$h_subject        = $sms_headers["Subject"];
$h_modem       = $sms_headers["Modem"];
$h_imsi            = $sms_headers["IMSI"];
$h_report         = $sms_headers["Report"];
$h_alfabet         = $sms_headers["Alphabet"];
$h_length          = $sms_headers["Length"];


// your code 2 follow


?>

Sonntag, 5. Januar 2014

original /etc/smsd.conf

nano /etc/smsd.conf

change

devices = GSM1

to
devices = E169

delete 2nd incoming, its redundant

delete              [GSM1] and [GSM2] definitions



change last lines

[E169]
#init =
device = /dev/ttyUSB0
incoming = yes
#pin =
baudrate = 19200


then

/etc/init.d/smstools restart


logfile 4 debugging:

nano /var/log/smstools/smsd.log
 

loading

apt-get update
apt-get upgrade
aptitude install smstools
nano /etc/smsd.conf