SMS Tools 3

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

SMS Tools 3

Непрочитанное сообщение lexy » 2008-11-06 16:53:23

NB!1) Проба пера, так что не ругайте сильно :roll:
NB!2) Не нашел, как вставить таблицы, поэтому полная версия статьи во вложениях

Статья про SMSTools3

xxx: мой телефон крякнул :-(
xxx: все. я теперь не мобильная. сссукаааааааа . ну не прет так сразу во всем ]:->
yyy: че с ним? ))
xxx: он уже не жилец((((. у него белый свет ....в конце тунеля
xxx: экран белым светиться ..ни че не вижу...
yyy: знач будешь ходить со старым сименсом :-P
xxx: откуда у меня появится старый сименс?
yyy: у всех есть старые сименсы :-D
Цитата #400329 bash.org.ru


Нет, мы, как раз, немобильными не останемся, именно потому, что у нас есть «старый сименс»!
Постановка задачи: есть база партнеров по бизнесу, которых нужно уведомлять о состоянии их счета независимо от менеджеров, которые с ними работают. Переговоры с сотовыми операторами по поводу SMS-гейтов зашли в тупик в виду неадекватного ценника, неповоротливости (срок исполнения ведь обычно - «уже вчера должно работать») или сложности реализации, поэтому
имеем:
  • старый Siemens M75;
  • родной (семёновский) дата-кабель DCA-510 к нему;
  • машинку с правильной осью (FreeBSD 7.0)
надо: создать автоматизированную систему рассылки SMS

Детали полной реализации я выкладывать не буду, т.к. задача весьма специфическая, но рассмотрю все основные моменты отправки SMS.

В портах нашел вот что:

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

Port:   smstools-3.1.3
Path:   /usr/ports/comms/smstools3
Info:   SMS Gateway software for GSM modems and mobile phones
Maint:  mm@FreeBSD.org
WWW:    http://smstools3.kekekasvi.com

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

sudo make -C /usr/ports/comms/smstools3 install clean
Теперь цепляем телефон. Как я понял, проблем при подключении датакабеля через обычный comm-port не возникает, но в данной ситуации кабель USB. Чип используется PL2303, в FreeBSD поддерживается. Проверяем:

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

 ~> kldstat -v | grep 'u[pl]*com'
если не видим чего-то подобного:

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

                212 ucom
                223 uhub/uplcom
берем бубен и собираем ядро, добавив в конфигурацию следующиме опции:

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

device          ucom
device          uplcom
как это сделать очень хорошо расписано здесь: http://www.lissyara.su/?id=1072, поэтому, повторятся не буду (а можно и отдельно модули собрать, но это тема другой статьи).
ВНИМАНИЕ! Без установленных модулей кабель тоже будет определятся как /dev/ugenX, но работать не будет.
Если все модули на месте — подключаем кабель и смотрим:

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

 ~> ls -lah /dev/cuaU*
crw-rw----  1 uucp  dialer    0,  69 28 окт 15:01 /dev/cuaU0
crw-rw----  1 uucp  dialer    0,  70 24 окт 10:27 /dev/cuaU0.init
crw-rw----  1 uucp  dialer    0,  71 24 окт 10:27 /dev/cuaU0.lock
Кабель увидели, можно подключать телефон и приступать к настройке SMS-шлюза.
Так как по умолчанию smsd стартует от рута, а это не тру, создаем пользователя:

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

~# pw groupadd smsd -g 151
~# pw  useradd -n smsd -u 151 -c 'SMS Gate worker' -g smsd -G uucp,dialer -w no -s /sbin/nologin -d /nonexistent
теперь настраиваем SMS Tools, файл /usr/local/etc/smsd.conf

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

# структура файла такая:
# глобальные настройки
# ...
# ...
# [ модем 1 ]
# ...
# [ модем 2 ]
# ...
# [ модем 3 ]
# ...

# используемые устройства, если несколько — пишем через запятую
devices = GSM0
# лог, если не указан — пишется в syslog, если = 1, пишет в stdout
logfile = /var/log/smsd.log
# писать фсё
loglevel = 7

# No comments, я надеюсь ;-)
USER = smsd
GROUP = dialer

# No comments too , главное — не забыть создать /var/run/smsd/ и дать все права юзеру smsd
PIDFILE= /var/run/smsd/smsd.pid
INFOFILE= /var/run/smsd/smsd.working

# Теперь настраиваем все телефоны, ГСМ-момеды и пр. шелезяки
# Siemens M75
[GSM0]
# порт
device = /dev/cuaU0
# скорость в нем
baudrate = 115200
# аппаратное управление потоком
rtscts = no
# строка инициализации (взял с сайта программы), 
# подробная справка по командам в приложениях
init = AT+CPMS="ME","ME","ME"
init2 = AT+CNMI=1,1,0,2
# приоритет входящих сообщений
incoming = high
# хотим отчет о доставке
report = yes
# задержка перед отправкой
send_delay = 20
По минимуму достаточно, уже будет работать.
Еще пару движений:
в /usr/local/etc/rc.d/smsd

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

pidfile=/var/run/smsd.pid
меняем на

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

pidfile=/var/run/smsd/smsd.pid

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

~# echo smsd_enable=»YES» >> /etc/rc.conf
~# /usr/local/etc/rc.d/smsd start
смотрим

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

~> ps ax | grep smsd
16711  ??  Ss     0:00,00 /usr/local/bin/smsd
16712  ??  S      0:00,01 /usr/local/bin/smsd

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

 ~> tail -f /var/log/smsd.log
Oct 28 16:39:40 smsgate smsd: Smsd v3.1.3 started.
Oct 28 16:39:40 smsgate smsd: Running as smsd:dialer.
Oct 28 16:39:40 smsgate smsd: File mode creation mask: 022 (0644, rw-r--r--).
Oct 28 16:39:40 smsgate smsd: Outgoing file checker has started. PID: 16711.
Oct 28 16:39:40 smsgate GSM0: GSM0: Modem handler 0 has started. PID: 16712.
Oct 28 16:39:40 smsgate GSM0: GSM0: Checking device for incoming SMS
Oct 28 16:39:40 smsgate GSM0: GSM0: Checking if modem is ready
Oct 28 16:39:40 smsgate GSM0: GSM0: -> AT^M
Oct 28 16:39:40 smsgate GSM0: GSM0: Command is sent, waiting for the answer
Oct 28 16:39:40 smsgate GSM0: GSM0: <- OK
Oct 28 16:39:40 smsgate GSM0: GSM0: Pre-initializing modem
Все завелось, комментируем в конфиге 'logfile', ставим loglevel = 5, в /etc/syslog.conf добавляем:

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

!+smsd,GSM0
*.*                                             /var/log/smsd.log
(если надо, после GSM0 через запятую перечисляем все названия модемов из smsd.conf)
в /etc/newsyslog.conf добавляем:

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

/var/log/smsd.log       smsd:dialer     644  7     100  *     JC
Теперь самое вкусное — отправлять эсэмэски.
Ничего сложного, процесс отправки похож на процесс печати, в /var/spool/sms/ есть три каталога:
checked, incoming, outgoing. В каталог outgoing кидаются файлы для отправки, по формату очень похожие на MIME: сначала заголовки, потом, через пустую строку, тело сообщения. Подробнее формат опишу ниже. В пакет входит утилита sendsms, надо добавить пользователя, от которого будут отправлятся sms в группу smsd. Затем пробуем:

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

sendsms 79xxxxxxxxx 'Hello! How are You?'
(обратите внимание, номера вводятся в международном формате но без знака «+»)
И, о Чудо!, через несколько секунд придет желанная SMS. Но мы рано радуемся. Вавилон нас ждет! А точнее — отправка SMS кириллицей, а значит, берем бубен, напильник, и дорисовываем все как надо. SMSTools умеет обрабатывать события при помощи внешних программ, значит рисуем скрипт проверки сообщения перед отправкой (за прототип был взят unicode2sms, все скрипты пакета можно найти в /usr/local/share/smstools):

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

#!/bin/sh

# checkhandler for SMS Tools 3
# autoconverts cyrillic messages to UCS-2BE
# add checkhandler=/path/to/ucsautoconvert into global part of smsd.conf
# written by lexy (lexy@mrlexy.ru), 2008 

FILE=`mktemp /tmp/smsd_XXXXXX`

if [ ! `grep '[А-Яа-я]' $1` -or `grep 'Alphabet:\s*U' $1`]
    then exit 0 
fi

cat $1 | awk '{if(NF==0) {s=1} if(s==0 && NF>0 && $0!~/Alphabet:[ \t]*U/){print}}' > $FILE
echo Alphabet: Unicode >> $FILE
cat $1 | awk '{if(NF==0) {s=1} if(s==1){print}}' | iconv -t UCS-2BE >> $FILE

mv $FILE $1
chmod 644 $1
добавляем в smsd.conf, в основную часть (до описания модемов):

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

checkhandler=/path/to/ucsautoconvert
перезапускаем smsd:

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

#~ /usr/local/etc/rc.d/smsd restart
пробуем: sendsms 79xxxxxxxxx 'Привет! Мы победили Вавилон ?'
ждем...ждем... телефончик — Плюмммм!!! Смотрим... Аллилуя!
DSCN0638.jpg
Кроме того можно добавить поддержку обработки и других событий (SENT, RECEIVED, FAILED, REPORT, CALL), белый и черный список.
За это отвечают параметры конфигурации:

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

eventhandler = /path/to handler
whitelist = /path/to/list
blacklist = /path/to/list
Т.к. гейт не публичный, то чернобелые списки я использовать не стал, а вот обработчик событий написал. Вы можете его найти в приложениях. Это perl-скрипт, в принципе неплохо откоменнтированный, чтоб допилить его под свои нужды.

Теперь про формат файла сообщений, вольный сокращенный перевод документации
Текстовые сообщения
Файл SMS-сообщения похож на файл электронной почты: текстовый файл состоящий из заголовков и содержимого сообщения после пустой строки.
Простой пример:

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

To: 491721234567

Hello, this is the sms.


Номер указывается в международном формате но без знака «+». Если необходимо отправить сообщение на короткий номер, то перед номером нужно указать "s".
Расширеный пример:

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

To: 491721234567
Flash: yes
Alphabet: ISO

Hello Stefan, how are you?


ВАЖНО: Заголовки регистрозависимые.
Можно добавлять свои собственные заголовки. Они игнорируются программой, но не удаляются. Можно, к примеру, привязать к сообщению ключ базы данных добавив заголовок

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

X-Db-Id: 777888
После отправки файл сообщения сохранится в папке отправленных с этим заголовком.
Заголовки
Приводится с сокращениями
Булевы значения могут быть для значения «истина» true, yes, on или 1. Все остальные значения трактуются ка «ложь»

======================================================
далее пошли таблицы, поэтому текст обрывается....
в приложениях пока только полный текст статьи в pdf и скрипты,
справочники по AT командам для GSM залью в доки
Вложения
smstools-events.zip
Скрипты обработки событий
(2.06 КБ) 394 скачивания
SMSTools3.pdf
(185.48 КБ) 384 скачивания

Хостинговая компания 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/

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

Re: SMS Tools 3

Непрочитанное сообщение Alex Keda » 2008-11-06 17:04:28

маладца.
=======
вопрос - пермишены на девайс выставить не надо - если юзера меняешь?
И зачем менять юзера? Каким-то мегасообщением мона выполнить переполенние буфера и отправку SMS на произвольный номер с произвольным текстом? =))))
Убей их всех! Бог потом рассортирует...

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: SMS Tools 3

Непрочитанное сообщение lexy » 2008-11-06 17:08:50

да я ж пояснил, просто не тру ))))))))
как в том анекдоте про ОБХСника и бармена:
- мне дешевле тебе штраф заплатить, чем руку сбить
а пермишены - вот они: pw useradd -n smsd -u 151 -c 'SMS Gate worker' -g smsd -G uucp,dialer -w no -s /sbin/nologin -d /nonexistent

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: SMS Tools 3

Непрочитанное сообщение lexy » 2008-11-06 17:10:38

кста, на ftp в Upload
AT_Command_pdf_ru.zip и NokiaAtCmd.zip

это тоже к статье, как справочные материалы.
переместить бы надо в правильную категорию

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

Re: SMS Tools 3

Непрочитанное сообщение Alex Keda » 2008-11-06 17:51:06

ОК.
Ну а на сайт?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: SMS Tools 3

Непрочитанное сообщение manefesto » 2008-11-06 19:47:50

тема интересная конечно, но вот бы научиться пользоваться sms шлюзами это было бы гуд.
/me ушел читать как сделать это
я такой яростный шо аж пиздеЦ
Изображение

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

Re: SMS Tools 3

Непрочитанное сообщение kmb » 2008-11-06 20:13:02

мне понравилось %)
truth is out there...

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: SMS Tools 3

Непрочитанное сообщение lexy » 2008-11-07 1:04:20

manefesto писал(а):тема интересная конечно, но вот бы научиться пользоваться sms шлюзами это было бы гуд.
/me ушел читать как сделать это
дык судя по описанию на сайте программы - это и есть шлюз )))))))
а шлюзы провов - дело геморное и неблагодарное, смотри начало статьи.

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: SMS Tools 3

Непрочитанное сообщение lexy » 2008-11-07 1:05:13

lissyara писал(а):ОК.
Ну а на сайт?
а доступ? не было до сих пор, жду подробностей ))))

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: SMS Tools 3

Непрочитанное сообщение manefesto » 2008-11-07 9:03:18

lexy писал(а):
manefesto писал(а):тема интересная конечно, но вот бы научиться пользоваться sms шлюзами это было бы гуд.
/me ушел читать как сделать это
дык судя по описанию на сайте программы - это и есть шлюз )))))))
а шлюзы провов - дело геморное и неблагодарное, смотри начало статьи.
нене...ты не понял...есть ведь бесплатные шлюзы....
я такой яростный шо аж пиздеЦ
Изображение

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

Re: SMS Tools 3

Непрочитанное сообщение Alex Keda » 2008-11-07 9:06:39

lexy писал(а):
lissyara писал(а):ОК.
Ну а на сайт?
а доступ? не было до сих пор, жду подробностей ))))
http://www.lissyara.su/?id=1025
тут всё написано. ПОловину ты уже сделал =)))
==========
2 манефесто
в москве и питере нет гейтов у большей части операторов.
Причина проста - лягут =)))
Убей их всех! Бог потом рассортирует...

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: SMS Tools 3

Непрочитанное сообщение lexy » 2008-11-07 9:06:39

manifesto писал(а): нене...ты не понял...есть ведь бесплатные шлюзы....
покажи мне хоть один рабочий и реально бесплатный, мэйлруагент и рамблёрссикю не в счет.
при условии необходимости отправки 1-2К сообщений в течении дня-двух - любой гейт тебя забанит

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: SMS Tools 3

Непрочитанное сообщение princeps » 2008-11-07 14:34:28

Как раз думал, как мне получать смски с сервера в случае сбоев каких-нибудь. Шлюзы операторов действительно левая вещь -работают через раз.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: SMS Tools 3

Непрочитанное сообщение lexy » 2008-11-07 16:56:47

princeps писал(а):Как раз думал, как мне получать смски с сервера в случае сбоев каких-нибудь. Шлюзы операторов действительно левая вещь -работают через раз.
Во-во.... особенно если слетела внешняя сеть - гейты уже не помогут.
Об этом следующим этапом уже думаю: внутренний мониторинг и удаленное управление через мобилу :cf:

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

Re: SMS Tools 3

Непрочитанное сообщение Alex Keda » 2008-11-08 16:44:11

на сайте-то дописал или ент?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: SMS Tools 3

Непрочитанное сообщение lexy » 2008-11-09 19:39:01

lissyara писал(а):на сайте-то дописал или ент?
я ж тебе в личку вопрос кидал...... по таблицам
все кроме них я сделал

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

Re: SMS Tools 3

Непрочитанное сообщение Alex Keda » 2008-11-09 22:58:31

lexy писал(а):
lissyara писал(а):на сайте-то дописал или ент?
я ж тебе в личку вопрос кидал...... по таблицам
все кроме них я сделал
я ж ответил =)
нет, нету возможности. тока запятые чем-то заменять...
Они правда нужны?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
InventoR
ст. лейтенант
Сообщения: 1344
Зарегистрирован: 2006-12-10 19:43:25
Контактная информация:

Re: SMS Tools 3

Непрочитанное сообщение InventoR » 2008-11-09 23:55:35

Один вопрос: а за чей счет этот банкет?
ну вот и сказочке конец, кто слушал, тот молодец.

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

Re: SMS Tools 3

Непрочитанное сообщение Alex Keda » 2008-11-09 23:56:20

InventoR писал(а):Один вопрос: а за чей счет этот банкет?
владельца симки, разуметтся =)))
Не за счёт же телефонной компании =)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: SMS Tools 3

Непрочитанное сообщение lexy » 2008-11-10 8:41:51

lissyara писал(а):нет, нету возможности. тока запятые чем-то заменять...
Они правда нужны?
в личке пусто, ну да хрен с ним.... тем более, вложенные таблицы тоже не поддерживаются.
Табличную часть в приложениях кину.

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

Re: SMS Tools 3

Непрочитанное сообщение Alex Keda » 2008-11-10 9:13:57

зачем тебе вложенные? =)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: SMS Tools 3

Непрочитанное сообщение lexy » 2008-11-10 9:41:00

смотри приложение )))))))))
выложил статью.

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

Re: SMS Tools 3

Непрочитанное сообщение Alex Keda » 2008-11-10 9:55:13

коё-чё поправил чтоб по ширине влезло.
Иконку к pdf заодно прикрутил =)))
публику.
Убей их всех! Бог потом рассортирует...

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

Re: SMS Tools 3

Непрочитанное сообщение Alex Keda » 2008-11-10 9:56:22

блин...
ну спасиба...
ты её тоже правил в этот момент. мои изменения похерились =(
Убей их всех! Бог потом рассортирует...

Аватара пользователя
lexy
сержант
Сообщения: 288
Зарегистрирован: 2006-07-21 9:54:44
Откуда: Волхов, ЛО
Контактная информация:

Re: SMS Tools 3

Непрочитанное сообщение lexy » 2008-11-10 10:23:28

ггг! ;-)
а где это видно было?