Документация по ОС FreeBSD Суббота, 08.02.2025, 12:06
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Net

smsgate с помощью scmxx [2009]
Задача с помощью GSM-модема Siemens MC35i настроить sms-шлюз.
В случае чего человек отправляет письмо на определенный почтовый ящик например sms@host.org, после чего определенным людям приходит sms.

Подключаем модем, через COM-порт. FreeBSD остальное сделает за нас :)
#uname -a
FreeBSD 7.0-RELEASE

Смотрим:
# ls /dev/

Видим:
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:
sendmail_enable="YES"

Смотрим имя машины:
# hostname
ns2.host.org

Прописываем на почтовом сервере, что используется у сотрудников, в файле hosts, либо добавляем запись в ДНС:
ns2.host.org IP_smsgate

Закидываем в /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.



Источник: http://www.lissyara.su/?id=1839
Категория: Net | Добавил: oleg (19.01.2009) | Автор: kmb
Просмотров: 902 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2025