smstools3 : ADD smstools3 package
Add smstools3 package from http://smstools3.kekekasvi.com/ Tested successfull as an email/sms gateway with : - Device: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem - Trunk: OpenWrt Chaos Calmer r43753 - Kirkwood : Globalscale Technologies Guruplug Server Plus Send and receive SMS with modem : OK Forward received SMS to mailhub : OK Signed-off-by: Gerald Kerma <dreagle@doukki.net>
This commit is contained in:
parent
c79483ef5b
commit
e8c7a93415
5 changed files with 271 additions and 0 deletions
74
utils/smstools3/Makefile
Normal file
74
utils/smstools3/Makefile
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2014 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=smstools3
|
||||||
|
PKG_VERSION:=3.1.15
|
||||||
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
|
PKG_MAINTAINER:=Gérald Kerma <dreagle@doukki.net>
|
||||||
|
PKG_LICENSE:=GPL-2.0
|
||||||
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
|
PKG_BUILD_PARALLEL:=0
|
||||||
|
|
||||||
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
|
PKG_SOURCE_URL:=http://smstools3.kekekasvi.com/packages/
|
||||||
|
PKG_MD5SUM:=0241ef60e646fac1a06254a848e61ed7
|
||||||
|
|
||||||
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
|
||||||
|
PKG_BUILD_DEPENDS:=libiconv-full iconv socket nsl
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
define Package/smstools3
|
||||||
|
SECTION:=utils
|
||||||
|
CATEGORY:=Utilities
|
||||||
|
TITLE:=SMS Server Tools 3
|
||||||
|
DEPENDS:=+libiconv-full +iconv
|
||||||
|
URL:=http://smstools3.kekekasvi.com/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/smstools3/description
|
||||||
|
The SMS Server Tools 3 is a SMS Gateway software which can send and receive
|
||||||
|
short messages through GSM modems and mobile phones.
|
||||||
|
endef
|
||||||
|
|
||||||
|
TARGET_CFLAGS = -D NUMBER_OF_MODEMS=1
|
||||||
|
TARGET_CFLAGS += -D USE_ICONV
|
||||||
|
TARGET_CFLAGS += -D DISABLE_INET_SOCKET
|
||||||
|
TARGET_CFLAGS += -W -Wall
|
||||||
|
TARGET_CFLAGS += -D_FILE_OFFSET_BITS=64
|
||||||
|
|
||||||
|
TARGET_LDFLAGS += -liconv
|
||||||
|
|
||||||
|
BINDIR=/usr/local/bin
|
||||||
|
|
||||||
|
define Build/Compile
|
||||||
|
$(MAKE) -C "$(PKG_BUILD_DIR)"/src \
|
||||||
|
CC="$(TARGET_CC)" \
|
||||||
|
USER_CFLAGS='$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS) \
|
||||||
|
-I"$(STAGING_DIR)/usr/lib/libiconv-full/include"' \
|
||||||
|
USER_LDFLAGS='$(TARGET_LFLAGS) $(EXTRA_LDFLAGS) -L"$(STAGING_DIR)/usr/lib/libiconv-full/lib"' \
|
||||||
|
all
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/smstools3/install
|
||||||
|
$(INSTALL_DIR) $(1)/$(BINDIR)
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/smsd $(1)/$(BINDIR)/smsd
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/sendsms $(1)/$(BINDIR)/sendsms
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/sms2html $(1)/$(BINDIR)/sms2html
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/sms2unicode $(1)/$(BINDIR)/sms2unicode
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/unicode2sms $(1)/$(BINDIR)/unicode2sms
|
||||||
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
|
$(INSTALL_DATA) -m 0755 ./files/smstools3.init $(1)/etc/init.d/smstools3
|
||||||
|
$(INSTALL_DIR) $(1)/etc
|
||||||
|
$(INSTALL_DATA) -m 0755 ./files/smstools3.conf $(1)/etc/smsd.conf
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,smstools3))
|
20
utils/smstools3/files/smstools3.conf
Normal file
20
utils/smstools3/files/smstools3.conf
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#
|
||||||
|
# Description: Main configuration file for the smsd
|
||||||
|
#
|
||||||
|
|
||||||
|
devices = GSM1
|
||||||
|
incoming = /var/spool/sms/incoming
|
||||||
|
outgoing = /var/spool/sms/outgoing
|
||||||
|
checked = /var/spool/sms/checked
|
||||||
|
failed = /var/spool/sms/failed
|
||||||
|
sent = /var/spool/sms/sent
|
||||||
|
receive_before_send = no
|
||||||
|
autosplit = 3
|
||||||
|
|
||||||
|
[GSM1]
|
||||||
|
init = AT+CPMS="ME","ME","ME"
|
||||||
|
device = /dev/ttyUSB0
|
||||||
|
incoming = yes
|
||||||
|
pin = 0000
|
||||||
|
baudrate = 9600
|
||||||
|
|
152
utils/smstools3/files/smstools3.init
Normal file
152
utils/smstools3/files/smstools3.init
Normal file
|
@ -0,0 +1,152 @@
|
||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
# Copyright (C) 2014 OpenWrt.org
|
||||||
|
# smsd initscript openwrt mod
|
||||||
|
|
||||||
|
START=99
|
||||||
|
STOP=99
|
||||||
|
|
||||||
|
EXTRA_COMMANDS="status"
|
||||||
|
EXTRA_HELP=" status View pid and service status "
|
||||||
|
|
||||||
|
# Set USER and GROUP, if necessary:
|
||||||
|
USER=""
|
||||||
|
GROUP=""
|
||||||
|
|
||||||
|
# If an unpriviledged user is selected, make sure that next two
|
||||||
|
# files are writable by that user:
|
||||||
|
PIDFILE="/var/run/smsd.pid"
|
||||||
|
INFOFILE="/var/run/smsd.working"
|
||||||
|
# Logfile can also be defined in here:
|
||||||
|
LOGFILE="/var/log/smsd.log"
|
||||||
|
|
||||||
|
DAEMON=/usr/local/bin/smsd
|
||||||
|
# A program which turns power off for couple of seconds:
|
||||||
|
RESETMODEMS=/usr/local/bin/smsd_resetmodems
|
||||||
|
NAME=smsd
|
||||||
|
PSOPT=""
|
||||||
|
|
||||||
|
# Set/edit this before starting service !!!!!
|
||||||
|
WRT_SPOOL=/var/spool
|
||||||
|
|
||||||
|
# Maximum time to stop smsd, after that it gets killed hardly:
|
||||||
|
MAXWAIT=45
|
||||||
|
|
||||||
|
boot() {
|
||||||
|
start
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
test -x $DAEMON || exit 0
|
||||||
|
|
||||||
|
echo "Creating minimum spool directories"
|
||||||
|
mkdir -p $WRT_SPOOL
|
||||||
|
mkdir -p $WRT_SPOOL/sms
|
||||||
|
mkdir -p $WRT_SPOOL/sms/incoming
|
||||||
|
mkdir -p $WRT_SPOOL/sms/outgoing
|
||||||
|
mkdir -p $WRT_SPOOL/sms/checked
|
||||||
|
mkdir -p $WRT_SPOOL/sms/failed
|
||||||
|
mkdir -p $WRT_SPOOL/sms/sent
|
||||||
|
|
||||||
|
echo -n "Starting SMS Daemon: "
|
||||||
|
MSG="."
|
||||||
|
ARGS="-n MAINPROCESS -p$PIDFILE -i$INFOFILE"
|
||||||
|
[ "x$USER" != x ] && ARGS="$ARGS -u$USER"
|
||||||
|
[ "x$GROUP" != x ] && ARGS="$ARGS -g$GROUP"
|
||||||
|
[ "x$LOGFILE" != x ] && ARGS="$ARGS -l$LOGFILE"
|
||||||
|
PID=`cat $PIDFILE 2>/dev/null`
|
||||||
|
if [ "x$PID" != x ]; then
|
||||||
|
if kill -0 $PID 2>/dev/null; then
|
||||||
|
MSG=" already running ($PID)."
|
||||||
|
else
|
||||||
|
PID=""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "x$PID" = x ]; then
|
||||||
|
if ps $PSOPT | grep $NAME | grep -v grep >/dev/null; then
|
||||||
|
MSG=" already running."
|
||||||
|
else
|
||||||
|
$DAEMON $ARGS
|
||||||
|
sleep 1
|
||||||
|
PIDS=`ps $PSOPT | grep $NAME | grep -v grep`
|
||||||
|
[ "x$PIDS" = x ] && MSG=" failed."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo "$NAME$MSG"
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
if ps $PSOPT | grep $NAME | grep -v grep >/dev/null; then
|
||||||
|
PID=`cat $PIDFILE 2>/dev/null`
|
||||||
|
if [ "x$PID" != x ]; then
|
||||||
|
P=`kill -0 $PID 2>/dev/null`
|
||||||
|
[ "x$P" != x ] && PID=""
|
||||||
|
fi
|
||||||
|
if [ "x$PID" != x ]; then
|
||||||
|
kill $PID
|
||||||
|
else
|
||||||
|
kill `ps $PSOPT | grep $NAME | grep -v grep | awk '{print $1}'` >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
if ps $PSOPT | grep $NAME | grep -v grep >/dev/null; then
|
||||||
|
echo "Allowing $NAME to terminate gracefully within $MAXWAIT seconds"
|
||||||
|
infofound=0
|
||||||
|
dots=0
|
||||||
|
seconds=0
|
||||||
|
while ps $PSOPT | grep $NAME | grep -v grep >/dev/null; do
|
||||||
|
if [ $infofound -lt 1 ]; then
|
||||||
|
if [ -f $INFOFILE ]; then
|
||||||
|
infofound=1
|
||||||
|
if [ $dots -gt 0 ]; then
|
||||||
|
echo ""
|
||||||
|
dots=0
|
||||||
|
fi
|
||||||
|
$ECHO -n "$NAME is currently "
|
||||||
|
cat $INFOFILE
|
||||||
|
echo "Time counting is now disabled and we will wait until this job is complete."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
[ $infofound -lt 1 ] && seconds=`expr $seconds + 1`
|
||||||
|
echo -n "."
|
||||||
|
dots=`expr $dots + 1`
|
||||||
|
if [ "$seconds" -ge $MAXWAIT ]; then
|
||||||
|
if [ $dots -gt 0 ]; then
|
||||||
|
echo ""
|
||||||
|
dots=0
|
||||||
|
fi
|
||||||
|
echo "Timeout occured, killing $NAME hardly."
|
||||||
|
kill -9 `ps $PSOPT | grep $NAME | grep -v grep | awk '{print $1}'` >/dev/null 2>&1
|
||||||
|
[ -f $PIDFILE ] && rm $PIDFILE
|
||||||
|
seconds=0
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
[ $dots -gt 0 ] && echo ""
|
||||||
|
#echo "$NAME is stopped."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
status() {
|
||||||
|
PID=$(cat $PIDFILE)
|
||||||
|
|
||||||
|
test -e $PIDFILE
|
||||||
|
if [ $? == 0 ]; then
|
||||||
|
echo $NAME " running! pid $PID"
|
||||||
|
else
|
||||||
|
echo $NAME " not running !!!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
reset() {
|
||||||
|
$0 stop
|
||||||
|
[ -f "$RESETMODEMS" ] && "$RESETMODEMS"
|
||||||
|
sleep 30
|
||||||
|
$0 start
|
||||||
|
}
|
||||||
|
|
13
utils/smstools3/patches/001-smsd.patch
Normal file
13
utils/smstools3/patches/001-smsd.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
--- a/src/smsd.c 2010-09-21 13:47:48.000000000 +0300
|
||||||
|
+++ b/src/smsd.c 2013-03-05 05:26:26.000000000 +0300
|
||||||
|
@@ -5200,8 +5200,8 @@
|
||||||
|
int result = 1;
|
||||||
|
char *cmd;
|
||||||
|
char *p;
|
||||||
|
- char answer[500];
|
||||||
|
- char buffer[600];
|
||||||
|
+ char answer[1024];
|
||||||
|
+ char buffer[1024];
|
||||||
|
int fd;
|
||||||
|
int log_retry = 3;
|
||||||
|
int i;
|
12
utils/smstools3/patches/002-Makefile.patch
Normal file
12
utils/smstools3/patches/002-Makefile.patch
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
--- a/src/Makefile 2014-12-20 18:33:55.654252867 +0100
|
||||||
|
+++ b/src/Makefile 2014-12-20 18:31:10.241359741 +0100
|
||||||
|
@@ -43,7 +43,7 @@
|
||||||
|
|
||||||
|
ifneq (,$(findstring SOLARIS,$(CFLAGS)))
|
||||||
|
ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
|
||||||
|
-override LFLAGS += -lsocket -lnsl
|
||||||
|
+ override LFLAGS += -lsocket -lnsl
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue