www.lissyara.su
—> статьи
—> FreeBSD
—> программы
—> comms/scmxx
smsgate с помощью scmxx
Автор: kmb.
Задача с помощью GSM-модема Siemens MC35i настроить sms-шлюз.
В случае чего человек отправляет письмо на определенный почтовый ящик например sms@host.org,
после чего определенным людям приходит sms.
Подключаем модем, через COM-порт. FreeBSD остальное сделает за нас :)
#uname -a
FreeBSD 7.0-RELEASE
| Смотрим:
Видим:
cuad0
cuad0.init
cuad0.lock
| Радуемся. :)
Находим нужный софт:
# cd /usr/ports
/usr/ports# make search name=scmxx
Port: gscmxx-0.4.1_4
Path: /usr/ports/comms/gscmxx
Info: A graphical frontend for scmxx
Maint: svmohr@rm6.net
B-deps: [CUT]
WWW: http://gscmxx.sourceforge.net/
Port: scmxx-0.9.0_1
Path: /usr/ports/comms/scmxx
Info: Data exchange utility for Siemens mobile phones
Maint: janos.mohacsi@bsd.hu
B-deps: gettext-0.17_1 gmake-3.81_3 libiconv-1.11_1
R-deps: gettext-0.17_1 libiconv-1.11_1
WWW: http://www.hendrik-sattler.de/scmxx/
| Графиков на сервере нету, выбираем scmxx-0.9.0_1. %)
/usr/ports# cd /usr/ports/comms/scmxx
| Без каких либо настроек:
/usr/ports/comms/scmxx# make install clean
/usr/ports/comms/scmxx# cd /usr/local
/usr/local# mkdir sms
/usr/local# cd sms
/usr/local/sms# touch sms.sh
/usr/local/sms# touch smsget.sh
/usr/local/sms# touch smssend.sh
/usr/local/sms# touch sms.txt
| Русский ман по scmxx, можно найти тут.
Содержимое самих скриптов.
sms.sh:
#!/bin/sh
# Запуск скрипта получения только сообщения
# из файла почты и сохранения его в отдельный файл
/usr/local/sms/smsget.sh /var/mail/sms > /usr/local/sms/sms.txt
# Если файл не имеет нулевого размера, запускаем скрипт отправки SMS
if [ -s /usr/local/sms/sms.txt ]; then
/usr/local/sms/smssend.sh
# Обнуляем и почту и текст, который уже был отправлен
/dev/null/> /usr/local/sms/sms.txt
/dev/null/> /var/mail/sms
fi
# Нужно реализовать коды обработки,
# на тот случай если модем "откажется" отправлять сообщение
| smsget.sh:
#!/bin/sh
# Удаление заголовков из электронных писем и новостей,
# т.е. до первой пустой строки
if [ $# -eq 0 ]; then
# ==> Если входной аргумент не задан (файл), то выводить результат на stdin.
sed -e '1,/^$/d' -e '/^[ ]*$/d'
# --> Удалить пустые строки и все строки предшествующие им
else
# ==> Если аргумент командной строки задан,
# то использовать его как имя файла.
for i do
sed -e '1,/^$/d' -e '/^[ ]*$/d' $i
done
fi
| smssend.sh:
#!/bin/sh
# Name
/usr/local/bin/scmxx --device /dev/cuad0 --baud 9600 \
--reset --system-charset koi8-r --unicode --send --sms --direct \
--number=+7xxxxxxxxx --send /usr/local/sms/sms.txt
| Если у вас будут различные приписки в конце sms, то можно видоизменить последнюю часть:
--send /usr/local/sms/sms.txt
| на
--text "`cat /usr/local/sms/sms.txt`"
| Возможно у вас будет /dev/cuadN, тогда исправляем на то что нужно.
Добавляем или исправляем /etc/rc.conf:
           
Смотрим имя машины:
Прописываем на почтовом сервере, что используется у сотрудников, в файле hosts, либо добавляем запись в ДНС:
Закидываем в /etc/crontab(выполняется каждые 5 минут)
*/5 * * * * root /usr/local/sms/sms.sh
| Не забываем, рестартовать cron.
Впринципе всё. :)
Да, пользователя добавляем.
# adduser
Username: sms
Full name: sms
Uid (Leave empty for default):
Login group [sms]:
Login group is sms. Invite sms into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]:
Home directory [/home/sms]: /dev/null
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : sms
Password : *****
Full Name : sms
Uid : 1002
Class :
Groups : sms
Home : /dev/null
Shell : /bin/sh
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (sms) to the user database.
Add another user? (yes/no): no
Goodbye!
| p.s. В отправляемых письмах лучше отключать Content-Transfer-Encoding: quoted-printable в The Bat по дефолту стоит, переключить на "Без кодирования". Текст отправляемого сообщения должен быть в KOI8-R.
(c) Observer.
размещено: 2009-01-15,
последнее обновление: 2009-01-20,
автор: kmb
|
Комментарии пользователей [3 шт.]