/usr/ports/comms/scmxx

Обсуждаем сайт и форум.

Модератор: f0s

kmb
лейтенант
Сообщения: 680
Зарегистрирован: 2007-02-20 8:30:03
Контактная информация:

/usr/ports/comms/scmxx

Непрочитанное сообщение kmb » 2009-01-15 16:53:28

Задача с помощью 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.
(c) Observer.
Последний раз редактировалось kmb 2009-01-16 18:17:08, всего редактировалось 5 раз.
truth is out there...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

kmb
лейтенант
Сообщения: 680
Зарегистрирован: 2007-02-20 8:30:03
Контактная информация:

Re: /usr/ports/comms/scmxx

Непрочитанное сообщение kmb » 2009-01-15 17:04:07

да фиг его знает, уже в принципе есть smstools, может вообще бесполезной посчитают %)
truth is out there...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35465
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: /usr/ports/comms/scmxx

Непрочитанное сообщение Alex Keda » 2009-01-15 17:42:10

давай
юникс-вей - всегда должна быть альтернатива =)))
Убей их всех! Бог потом рассортирует...

kmb
лейтенант
Сообщения: 680
Зарегистрирован: 2007-02-20 8:30:03
Контактная информация:

Re: /usr/ports/comms/scmxx

Непрочитанное сообщение kmb » 2009-01-15 18:36:34

На сайт точно в таком же варианте отправлять? И в таких же тегах?
truth is out there...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35465
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: /usr/ports/comms/scmxx

Непрочитанное сообщение Alex Keda » 2009-01-15 18:42:19

да.
тока скрипт переделай smssend.sh - пеерносы руками добавь чтоб вписалось в 610 пикселов
Убей их всех! Бог потом рассортирует...

kmb
лейтенант
Сообщения: 680
Зарегистрирован: 2007-02-20 8:30:03
Контактная информация:

Re: /usr/ports/comms/scmxx

Непрочитанное сообщение kmb » 2009-01-15 19:00:52

(Если не знаете номера раздела, свяжитесь с администратором)
Какой номер у "программы"?
truth is out there...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35465
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: /usr/ports/comms/scmxx

Непрочитанное сообщение Alex Keda » 2009-01-15 19:07:38

kmb писал(а):(Если не знаете номера раздела, свяжитесь с администратором)
Какой номер у "программы"?
справку посмотри.
там все описаны
========
пока не долелаешь - видимой не делай
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35465
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: /usr/ports/comms/scmxx

Непрочитанное сообщение Alex Keda » 2009-01-15 19:11:26

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 --text "Срочное событие. Подробности на электронной почте."
(Всё в одну строчку без переносов)!
это чего такое?
В шелл скриптах можно пеерносы делать строк.

Код: Выделить всё

#!/bin/sh
# Name
/usr/local/bin/scmxx --device /dev/cuad0 --baud 9600 \
--reset --system-charset koi8-r --unicode --send --sms --direct
--number=+7xxxxxxxxx --text "Срочное событие. \
Подробности на электронной почте."
Убей их всех! Бог потом рассортирует...

kmb
лейтенант
Сообщения: 680
Зарегистрирован: 2007-02-20 8:30:03
Контактная информация:

Re: /usr/ports/comms/scmxx

Непрочитанное сообщение kmb » 2009-01-15 19:26:20

http://www.lissyara.su/?id=1839
Я не любитель таких переносов)) Исправил) Еще будут дополнения/исправления?)
Ссылку на эту тему дал, просьба тогда перенести её куда следует...
truth is out there...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35465
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: /usr/ports/comms/scmxx

Непрочитанное сообщение Alex Keda » 2009-01-15 19:38:07

Код: Выделить всё

/usr/local/bin/scmxx --device /dev/cuad0 --baud 9600 --reset --system-charset koi8-r --unicode --send \
 --sms --direct --number=+7xxxxxxxxx --text "Срочное событие. Подробности на электронной почте."
это не 610 пикселов...
сделай на мониторе 1024x768 - страница должна влазить по ширине, горизонтальной прокрутки быть не должно
Убей их всех! Бог потом рассортирует...

kmb
лейтенант
Сообщения: 680
Зарегистрирован: 2007-02-20 8:30:03
Контактная информация:

Re: /usr/ports/comms/scmxx

Непрочитанное сообщение kmb » 2009-01-16 8:29:26

Немного изменил текст :)
truth is out there...

kmb
лейтенант
Сообщения: 680
Зарегистрирован: 2007-02-20 8:30:03
Контактная информация:

Re: /usr/ports/comms/scmxx

Непрочитанное сообщение kmb » 2009-01-16 18:18:15

Добавил:
Русский ман по scmxx, можно найти тут.
-
Если у вас будут различные приписки в конце sms, то можно видоизменить последнюю часть:
--send /usr/local/sms/sms.txt
на
--text "`cat /usr/local/sms/sms.txt`"
-
p.s. В отправляемых письмах лучше отключать Content-Transfer-Encoding: quoted-printable в The Bat по дефолту стоит, переключить на "Без кодирования". Текст отправляемого сообщения должен быть в KOI8-R.
-
truth is out there...