44 lines
802 B
Bash
44 lines
802 B
Bash
#!/bin/sh
|
|
|
|
ROOTER=/usr/lib/rooter
|
|
|
|
log() {
|
|
modlog "Delete SMS" "$@"
|
|
}
|
|
|
|
CURRMODEM=$1
|
|
shift 1
|
|
SLOTS="$@"
|
|
log "$SLOTS"
|
|
|
|
COMMPORT="/dev/ttyUSB"$(uci get modem.modem$CURRMODEM.commport)
|
|
|
|
SMSLOC=$(uci -q get modem.modem$CURRMODEM.smsloc)
|
|
|
|
LOCKDIR="/tmp/smslock$CURRMODEM"
|
|
PIDFILE="${LOCKDIR}/PID"
|
|
|
|
while [ true ]; do
|
|
if mkdir "${LOCKDIR}" &>/dev/null; then
|
|
echo "$$" > "${PIDFILE}"
|
|
for SLOT in $SLOTS
|
|
do
|
|
ATCMDD="AT+CPMS=\"$SMSLOC\";+CMGD=$SLOT"
|
|
OX=$($ROOTER/gcom/gcom-locked "$COMMPORT" "run-at.gcom" "$CURRMODEM" "$ATCMDD")
|
|
log "$OX"
|
|
done
|
|
uci set modem.modem$CURRMODEM.smsnum=999
|
|
uci commit modem
|
|
break
|
|
else
|
|
OTHERPID="$(cat "${PIDFILE}")"
|
|
if [ $? = 0 ]; then
|
|
if ! kill -0 $OTHERPID &>/dev/null; then
|
|
rm -rf "${LOCKDIR}"
|
|
fi
|
|
fi
|
|
sleep 1
|
|
fi
|
|
done
|
|
rm -rf "${LOCKDIR}"
|