...der Treffpunkt für Linuxbegeisterte im Landkreis Trauntein....

SMS-Gateway

SMS-Gateway

Smsgw Kannel V2.3 Img
Smsgw Kannel V2.3 Img
smsgw_kannel_v2.3.img_.bz2
Version: 2.3.0
464.4 MiB
34 Downloads
Details

 

Um die arlamierungspfade bei Monitoringprojekten sicherzustellen, könne wir uns nicht auf die alleinige Zustellung von Mails verlassen, sondern benötigen vielmehr einen sicheren Arlamierungspfad. Was könnte sich besser anbeiten als der eigene SMS-Gateway.

Was wir dazu benötigen ist denkbar preiswert.

Get it @ ModMyPi
RaspberryPI 3 Kit
SIM800 Breakoutboard
SIM800 Case

Als Betriebssystem kommt Rasperian ohne “Schnickschnack” zu Einsatz. Das KnowHow zum Aufspielen des Images setze ich hier vorraus.

Erste Schritte:

/boot/config.txt

###################################
## ENABLE UART [ MSH ]
###################################
enable_uart=1
dtoverlay=pi3-miniuart-bt

Automatches Aktivieren des SIM800 BreakoutBoards

/etc/rc.local

###################################
## POWERON GSM MODULE [ MSH ]
###################################
echo 17 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio17/direction
echo 1 > /sys/class/gpio/gpio17/value

Erstellen eines Scripts zur Erzeugung von Directories in der Ramdisk. Dies benötigen wir für eine lange Lebenserwartung der SD-Card. Es soll so wenig als möglich auf die Disk geschrieben werden. Zuvor sollte ein User names playsms mit dem Homedir /home/mail/playsms angelegt werden und sich in der Gruppe mail befinden. Diesen benötigen wir später für das Webinterface. Auch hier setze ich die Fähigkeit des anlgens von Usern voraus.

/etc/init.d/create_logdirs.sh

#! /bin/bash
### BEGIN INIT INFO
# Provides:             create-logdirs
# Required-Start:       $remote_fs
# Required-Stop:        $remote_fs
# Should-Start:         $local_fs
# Should-Stop:          $local_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    create-logdirs - Persistent key-value db
# Description:          create-logdirs - Persistent key-value db
### END INIT INFO


PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
set -e
USERNAME="playsms"
DIRS='
        /var/log/kannel
        /var/log/apache2
        /var/log/mysql
        /var/run/kannel
        /var/spool/postfix
        /var/spool/playsms/maildir/cur
        /var/spool/kannel/store
        /var/www/playsms'



case "$1" in
  start)
        for DIR in ${DIRS}
        do
                mkdir -p ${DIR}
                chmod 777 ${DIR}
        done

        ## CREATE MAILDIR WITHIN RAMDISK
        rsync -av /home/mail/mail_template/.maildir /home/mail/${USERNAME}
        chown playsms:mail /home/mail/${USERNAME} -R
        chmod 755 /home/mail/${USERNAME} -R

        ;;
  stop)
        true
        ;;

esac

exit 0

Nun das Script im System registrieren

udapte-rc.d -f create-logdirs defaults 99

 Mountpoints für Ramdisk anpassen/anlegen

/etc/fstab

proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime,nodiratime,commit=60  0       1

## MSH
log /var/log tmpfs nodev,nosuid,size=20% 0 0
lock /var/lock tmpfs nodev,nosuid,size=1% 0 0
spool /var/spool tmpfs nodev,nosuid,size=1% 0 0
playsms /home/mail/playsms/ tmpfs nodev,nosuid,size=5% 0 0
ibdata /var/lib/mysql/ibdata tmpfs nodev,nosuid,size=8% 0 0

Serielle Console freigeben:

/boot/cmdline.txt

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

 

/etc/modules-load.d/modules.conf

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

## GSM-BOARD [ MSH ]
i2c-bcm2708
i2c-dev

Pakete installieren:

apt install kannel
apt install kannel-sqlbox
apt install libxml2
apt install postfix courier-authdaemon courier-authlib courier-authlib-userdb courier-base courier-imap apache2 apache2-utils libapache2-mod-php5
apt install apache2 libapache2-mod-php5 mysql-server php5 php5-cli php5-mysql php5-mcrypt php5-gd php5-imap php5-curl

Download playsms from https://playsms.org/download/ to /usr/src
Follow Installation Instructions on https://github.com/antonraharja/playSMS/blob/master/INSTALL.md

 

Install Playsms

cd /usr/src/
wget https://sourceforge.net/projects/playsms/files/latest/download?source=files -O playsms.tar.gz
tar xvfz playsms.tar.gz
cd playsms-1.4
cp install.conf.dist install.conf
mkdir -p /var/www/playsms
vi install.conf
./install-playsms.sh
cp /usr/src/playsms-apache/* /etc/apache2/sites-available/
a2ensite playsms
apache2ctl configtest
apachectl gracefull
playsmsd restart
playsmsd check

Configuration IMAPD

/etc/courier/imapd

...
## MAILDIRPATH - directory name of the maildir directory.
## e.g /home/mail/playsms/.maildir
MAILDIRPATH=.maildir

.maildir erzeugen ( Siehe postfix )

mkdir -p /home/mail/usename/.maildir/{cur,new,tmp}

Kannel configurieren:

/etc/kannel/kannel.conf

################################################
## CORE
################################################
group = core
admin-port = 13003
smsbox-port = 13004
admin-password = ADMIN_PASSWORD
status-password = ADMIN_PASSWORD
admin-deny-ip = "*.*.*.*"
admin-allow-ip = "127.0.0.1"
dlr-storage = mysql
log-file = "/var/log/kannel/kannel.log"
log-level = 4
################################################
##  Modem Group
################################################
group = modems
id = SIM800
name = "SIM800"
detect-string = "SIM800"
detect-string2 = "R13.08"
init-string = "AT+CNMI=1,2,0,0,0"
enable-hwhs = "AT+IFC=1,1"
keepalive-cmd = "AT+CBC;+CSQ"
#reset-string = "ATZ"
speed = 115200
need-sleep = true
keepalive-cmd = "AT+CBC;+CSQ"
#enable-mms = true
message-storage="SM"
################################################
## SMSC CONNECTIONS
################################################
group = smsc
smsc = at
smsc-id = SIM800
modemtype = auto
device=/dev/ttyAMA0
my-number = 0049 1234567890
sms-center= 0049 98765
#connect-allow-ip = 127.0.0.1
log-file = "/var/log/kannel/sim800.log"
log-level = 4
################################################
## SMSBOX SETUP
################################################
group = smsbox
bearerbox-host = 127.0.0.1
sendsms-port = 13013
global-sender = 13013
#sendsms-chars = "0123456789 +-"
log-file = "/var/log/kannel/smsbox.log"
log-level = 4
################################################
## SEND-SMS USERS
################################################
#
# These users are used when Kannel smsbox sendsms interface is used to
# send PUSH sms messages, i.e. calling URL like
# http://kannel.machine:13013/cgi-bin/sendsms?username=tester&password=foobar…
group = sendsms-user
username = playsms
password = PLAYSMS_PASSWORD
max-messages=3
#user-deny-ip = ""
#user-allow-ip = ""
################################################
## SERVICES
################################################
# There should be always a ‘default’ service. This service is used when no
# other ‘sms-service’ is applied.
group = sms-service
keyword = default
accept-x-kannel-headers = true
catch-all = yes
max-messages=0
get-url = "http://127.0.0.1/index.php?app=call&cat=gateway&plugin=kannel&access=geturl&t=%t&q=%q&a=%a&Q=%Q&smsc=%i"
################################################
## MYSQL CONNECT
################################################
#
# DLR with MySQL support configuration
#
# Example defining a MySQL database connection resource and
# the required table and field values.
#
group = mysql-connection
id = mydlr
host = localhost
username = dlruser
password = dlrpass
database = dlr
# max count of connections that will be opened for dbpool
# default is 1
max-connections = 1
#
# Create the required table for the DLR support in the database
# with something similar like this:
#
#   CREATE TABLE dlr (
#     smsc varchar(40),
#     ts varchar(40),
#     destination varchar(40),
#     source varchar(40),
#     service varchar(40),
#     url varchar(255),
#     mask int(10),
#     status int(10),
#     boxc varchar(40)
#   )
#
group = dlr-db
id = mydlr
table = dlr
field-smsc = smsc
field-timestamp = ts
field-destination = destination
field-source = source
field-service = service
field-url = url
field-mask = mask
field-status = status
field-boxc-id = boxc
################################################
## SMPP SETUP
################################################
## NOT USED HERE

Diese beiden Nummern entsprechend der Simkarte anpassen

my-number = 0049 1234567890
sms-center= 0049 98765

https://www.mobilcom-debitel.de/service/handynutzung/nachrichtenversand/sms/

MySQL Datenbank Schema für die DLRs ( delivery Reports ) erzeugen und Userrechte für dlruser,dlrpass auf dieses Schema vergeben.

CREATE TABLE dlr (
     smsc varchar(40),
     ts varchar(40),
     destination varchar(40),
     source varchar(40),
     service varchar(40),
     url varchar(255),
     mask int(10),
     status int(10),
     boxc varchar(40)
);
GRANT ALL PRIVILEGES ON dlr.* to 'dlruser'@'127.0.0.1'  IDENTIFIED BY 'dlrpass' WITH GRANT OPTION;

Versenden von sms via http

SMS_SERVER="http://sms-gw:13013"
SMS_SERVER_USR="playsms"
SMS_SERVER_PWD="PLAYSMS_PASSWORD"
TARGET_TEL="0049......"
 
${SMS_SERVER}/cgi-bin/sendsms?username=${SMS_SERVER_USR}&password=${SMS_SERVER_PWD}&to=${TARGET_TEL}&text=${MESSAGE}"

 

Versenden von sms via smtp

FROM
TO playsms
SUBJECT playsms PALYSMS_PASSWORD Meinen Text hier forlaufend schreiben
BODY +$mobile   ( Tel: 0049  +49… )

Weiterführende Links:

https://aacable.wordpress.com/2012/11/26/howto-configure-your-local-http-gateway-using-kannel-on-ubuntu/https://aacable.wordpress.com/2012/11/26/howto-configure-your-local-http-gateway-using-kannel-on-ubuntu/

http://kannel.org/download/1.5.0/userguide-1.5.0/userguide.html#AEN429http://kannel.org/download/1.5.0/userguide–1.5.0/userguide.html#AEN429https://github.com/playsms/book-playsms/blob/master/book-contents/en/Installation/Gateway-Installation/Kannel/Example-Kannelconfiguration-with-SMPP.md

https://github.com/playsms/book-playsms/blob/master/book-contents/en/Installation/Gateway-Installation/Kannel/Example-Kannel-configuration-with-SMPP.md

https://github.com/playsms/book-playsms/blob/master/book-contents/en/Configuration/Gateway-Configuration/Kannel-for-playSMS.md

https://github.com/playsms/book-playsms/blob/master/book-contents/en/Configuration/Gateway-Configuration/Kannel-for-playSMS.md

http://www.developershome.com/sms/operatingMode.asp

 

Author: Matthias Schweizer

Der Autor übernimmt keinerlei Gewähr für die Aktualität, Richtigkeit und Vollständigkeit der bereitgestellten Informationen auf unserer Website. Haftungsansprüche gegen den Autor, welche sich auf Schäden materieller oder ideeller Art beziehen, die durch die Nutzung oder Nichtnutzung der dargebotenen Informationen bzw. durch die Nutzung fehlerhafter und unvollständiger Informationen verursacht wurden, sind grundsätzlich ausgeschlossen, sofern seitens des Autors kein nachweislich vorsätzliches oder grob fahrlässiges Verschulden vorliegt. Alle Angebote sind freibleibend und unverbindlich. Der Autor behält es sich ausdrücklich vor, Teile der Seiten oder das gesamte Angebot ohne gesonderte Ankündigung zu verändern, zu ergänzen, zu löschen oder die Veröffentlichung zeitweise oder endgültig einzustellen.

Categories:

Linux