中兴官网тсм

<link title="Хабрахабр / Комментарии к публикации <>" type="application/rss+xml" rel="alternate" href="http://habrahabr.ru/rss/post/155321/"/>
Спецпроекты
Привет, Хабрапользователь. Кажется, ты используешь AdBlock. Хабрахабр
развивается и существует за счет доходов от рекламы. Добавь нас в исключения.
6 голосов
рейтинг
29 октября 2012 в 18:12
Настройка SMS уведомлений в zabbix
Вопрос SMS уведомлений в zabbix уже
на Хабре и проблема решалась с использованием СМС-шлюзов. Также упоминали про. Я же хочу рассказать, как настроить SMS уведомления используя USB модем.
Итак, что имеем:
1) довольно обширная ИТ-инфраструктура
2) система мониторинга Zabbix 2.0.3 (актуальная версия на момент написания статьи) функционирующая под Fedora 14 x64
3) 3G USB модем ZTE MF100 от национального украинского оператора Киевстар.
4) Prepaid симка, которая шла в комплекте с модемом.
Также для модема была куплена корпоративная 3G симка, но её использовать не получится, так как с 3G-карточек невозможно позвонить и отправлять смс, а это нам не подходит.Итак, положил на карточку небольшую сумму <>, втыкнул модем в USB и .
Установка необходимого
Первым делом я зарегистрировал карточку в системе . Через неё удобно смотреть остаток денег на счёте модема и заказывать доп. услуги.Напомню, что я все действия провожу в Fedora. Для других линуксов комманды могут отличаться, но думаю выяснить, чем из заменить для вас не составит труда. Также не буду рассматривать вариант установки необходимого из исходников, хотя так тоже можно поступить. Ограничусь установкой существующих стандартных пакетов:sudo yum install usb_modeswitch # для поддержки USB-модемов Huawei, T-Mobile, Vodafone, Option, ZTE, Novatel
sudo yum install minicom
# для терминального подключения к модему по /dev/ttyUSB*
sudo yum install smstools
# собстветвенно пакет для работы с смс.
Теперь проверим, появился ли модемls -l /dev/ttyUSB*
Результат должен выглядеть примерно так crw-rw----. 1 root dialout 188, 0 Oct 22 12:05 /dev/ttyUSB0
crw-rw----. 1 root dialout 188, 1 Oct 22 15:56 /dev/ttyUSB1
crw-rw----. 1 root dialout 188, 2 Oct 22 12:05 /dev/ttyUSB2
Модем создал 3 виртуальных USB порта. В моем случае для AT команд доступны ttyUSB1 и ttyUSB2. Если модем создал 5 и более виртуальных портов, то их количество можно уменьшить до 3х. Для этого нужно отключить в нём режимы cdrom и flash-drive. Выключение делается коммандой AT+ZCDRUN=E, включение AT+ZCDRUN=F. Если хотим отключить только cd-rom, то AT+ZCDRUN=8. Если хотим включить обратно — AT+ZCDRUN=9.Запускаю терминал minicom -D /dev/ttyUSB1
вижу приветствие
Welcome to minicom 2.5
OPTIONS: I18n
Compiled on Feb 24 :55.
Port /dev/ttyUSB1
Press CTRL-A Z for help on special keys
AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0
выключаю CD-ROM&AT+ZCDRUN=8
Close autorun state result(0:FAIL 1:SUCCESS):1
Вообще AT команд довольно много и раньше, во времена телефонных модемов, из знание было обязательным для уважающего себя админа. Сейчас всё измениилось и вспомнить подзабытые комманды можно с помощью гугла. Например
хорошая статья справочного характера.Попробуем пообщаться с модемом.Посмотрим режим работы модема&AT+ZSNT?
+ZSNT: 1,0,0
в моем случае — =1,0,0 — Автоматический выбор только GSM сети. Поскольку я использую обычную, а не 3G симку, этот режим меня полностью устраивает. Также существуют следующие варианты режима работы:AT+ZSNT=0,0,0 (Авто) - по умолчанию
AT+ZSNT=0,0,1 Автоматический выбор сети: GSM+WCDMA, предпочтение GSM
AT+ZSNT=0,0,2 Автоматический выбор сети: GSM+WCDMA, предпочтение WCDMA
AT+ZSNT=1,0,0 Автоматический выбор сети: только GSM
AT+ZSNT=2,0,0 Автоматический выбор сети: только WCDMA
AT+ZSNT=0,1,0 Ручной выбор сети: GSM+WCDMA
AT+ZSNT=1,1,0 Ручной выбор сети: только GSM
AT+ZSNT=2,1,0 Ручной выбор сети: только WCDMA
Проверим, установлена ли защита пин-кодом &AT+CPIN?
+CPIN: SIM PIN
отключаем PIN&AT+CLCK=&SC&,0,&1111&
включаем PIN&AT+CLCK=&SC&,1,&1111&
Если она включена, то для продолжения работы нам необходимо его ввести&AT+CPIN=”1234″
проверим ещё раз&AT+CPIN?
+CPIN: READY
Теперь пин-код принят. Посмотрим уровень сигнала&AT+CSQ
+CSQ: 21,99
получим версию IMEI модуля&AT+GSN
Посмотрим тип регистрации в сети&AT+CREG?
+CREG: 0,1
0 означает, что нет сообщения о сменен регистрации в сети1 — успешно зарегистрирован в сетиПосмотрим информацию об операторе&AT+COPS?
+COPS: 0,0,&Kyivstar&,0
Первый 0 означает автоматический выбор сети, длинный тестовый формат имени (второй 0), и само названия оператора — Киевстар.проверим, установлен ли у нас и какой именно центр отправки смс (Service Center Address)AT+CSCA?
+CSCA: &+&,145
Для Киевстара это правильный номер.Теперь попробуем отправить сообщение. Перед отправкой сообщения нужно установить формат сообщения. Делается это коммандой AT+CMGF=x. где x — формат сообщений, 0-1.0, — режим PDU, управление кодом команды. Вывод сообщения в HEX коде. Режим по умолчанию1, — текстовый режим. Команды текстовые. Вывод сообщения в текстовом виде.В первый режиме сообщения будут выдаваться в виде шестнадцатеричных кодов ascii или unicode.Это очень неудобный режим.Отправка смс делается командой AT+CMGS=<>, где ХХХХХХХХХХХ — номер абонента. Отправка смс зависит от формата сообщения. После ввода команды выдает приглашение &&& после чего можно вводить текст сообщений. Завершается символом ESC или Ctrl-Z. Отправим сообщение используя текстовый режим и предварительно насильно установив SCA:AT+CMGF=1
AT+CSCA= &+&
AT+CMGS=&+38067xxxxxxx&
& test message
+CMGS: 110
Смс успешно пришла.Можно отправлять смс предварительно записав в память:AT+CMGW=&&&CR&Sending text messages is easy.&Ctrl+z&
При работе с AT командами не всегда всё проходит гладко. Иногда комманды выполняются с ошибками, возвращая трехзначный код ошибки. Вот список основных кодов ошибок:Error code
GSM 04.11 Annex E-2 values
GSM 03.40 section 9.2.3.22 values
Phone failure
SMS service of phone reserved
Operation not allowed
Operation not supported
Invalid PDU mode parameter
Invalid text mode parameter
SIM not inserted
SIM PIN necessary
PH-SIM PIN necessary
SIM failure
Memory failure
Invalid memory index
Memory full
SMSC (message service center) address unknown
No network service
Network timeout
Unknown error
Manufacturer specific
Настройка smstools
Теперь настраиваем SMS Tools. Правим конфиг /f. Привожу готовый конфиг с комментариями:#используемые устройства, если несколько — пишем через запятую
devices = GSM1
#папки для сохранения смс
incoming=/var/spool/sms/incoming
outgoing=/var/spool/sms/outgoing
checked=/var/spool/sms/checked
sent=/var/spool/sms/sent
# лог, если не указан — пишется в syslog, если = 1, пишет в stdout
logfile = /var/log/smsd/smsd.log
#уровень логирования
loglevel = 5 #debug = 7
user = sms
#включаем &умный& лог
smart_logging = yes
#скрипт, выполяющийся перед отправкой смс для автоматической конвертации кириллических сообщений в &правильную& кодировку. о нём подробнее ниже
checkhandler = /etc/smsd/check.sh
#скрипт, выполняющийся после отправки смс и создающий лог отправленного. о нём подробнее ниже
eventhandler = /etc/smsd/trsms.sh
#используемое устройство
device = /dev/ttyUSB1
#пин-код
pin = 1111
Подробнее обо всех параметрах конфига можно прочитать на
сайте smstool.
Скрипт trsms.sh
Теперь создаем скрипт /etc/smsd/trsms.sh, который будет писать лог отправленных смс. Причём все кириллические сообщения будут попадать в него в читаемой кодировке. Не забываем дать права на выполнение скрипта пользователю smstool и на запись в лог /var/log/smsd/sms.logchown
smstools:smstools /etc/smsd/trsms.sh
chmod gu+x /etc/smsd/trsms.sh
chmod gu+w /var/log/smsd/sms.log
Сам скрипт:#!/bin/bash
status=&$1&
touch /etc/smsd/ok
case &$1& in
FILE=`mktemp /tmp/smsd_XXXXXX`
head -5 $file | grep -e &^To: & -e &Alphabet: & -e &^Sent: & && /var/log/smsd/sms.log
if grep &Alphabet: Unicode& $file &/dev/ then
tail -n +6
$file | iconv -f UCS-2BE -t UTF-8
&& /var/log/smsd/sms.log
tail -n +5 $file && /var/log/smsd/sms.log
echo && /var/log/smsd/sms.log
echo &========================================& && /var/log/smsd/sms.log
echo && /var/log/smsd/sms.log
Пример части лога:========================================
To: 38067XXXXXXX
Alphabet: Unicode
Sent: 12-10-23 21:07:29
test message
========================================
To: 38093XXXXXXX
Alphabet: Unicode
Sent: 12-10-19 12:16:28
лог пишет теперь и на русском
========================================
Скрипт check.sh
SMSTools умеет обрабатывать события при помощи внешних программ, Наш скрипт поможет отправлять русские смс в правильной кодировке проверяя сообщения перед отправкой (за прототип был взят unicode2sms из стандартного пакета скриптов, который можно найти в /usr/bin. Аналогично, не забываем дать права на выполнение скрипта пользователю smstoolchown
smstools:smstools /etc/smsd/check.sh
chmod gu+x /etc/smsd/check.sh
Сам скрипт:#!/bin/bash
# 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 & /dev/null` -o `grep 'Alphabet:\s*U' $1 & /dev/null` ]
then exit 0
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 664 $1
теперь всё готово к запуску.&service smsd start
Starting smsd:
проверяем, запустился ли& ps ax | grep smsd
0:00 /usr/sbin/smsd
0:00 /usr/sbin/smsd
2322 pts/2
0:00 grep --color=auto smsd
пробуем отправить сообщение. номер абонента указываем в международном формате, но без знака <>smssend &38067XXXXXXX& &test message&
Text: test message
To: 38067XXXXXXX
смотрим лог. & tail
/var/log/smsd/smsd.log
добавились строки 21:07:08,5, GSM1: SMS sent, Message_id: 112, To: 38067XXXXXXX, sending time 7 sec.
21:07:21,5, smsd: Moved file /var/spool/sms/outgoing/send_NpoTqX to /var/spool/sms/checked
проверяем отправленную смс:&cat /var/spool/sms/sent/send_NpoTqX
To: 38067XXXXXXX
Alphabet: Unicode
Modem: GSM1
Sent: 12-10-23 21:07:29
test message
Настройка Zabbix
Напишем скрипт, который будет выполнять Zabbixдля отправи смски. В Zabbixтакие скрипты лежат в директории, определенной в переменной AlertScriptsPath.cat /usr/local/etc/zabbix_server.conf | grep AlertScriptsPath
### Option: AlertScriptsPath
AlertScriptsPath=/home/zabbix/bin/
Сам скрипт называю sms_send.sh и состоит он практически из одной строки:#!/bin/bash
subject=&$2&
smssend $to
&$subject&
Дальнейшая настройка осуществляется через веб-интерфейс. Сначала идем в Администрирование -& Способы оповещений (Administration Media types-& ) и создаем новый способ оповещений ( Media types). Название скрипта должно быть таким же, как и имя файла скрипта в директории AlertScriptsPath
Дальше в настройках пользователя (Администрирование -& Пользователи или Administration -& Users) добавляем Способ оповещений (Media):
После этого в настройках Действий (Actions) появится возможность использовать этот Media:
Тарифы
Стандартная цена одного СМС = 0,5 грн. Что при большом количестве смс может вылится в крупную копеечку. Что же предлагает оператор для уменьшения расходов?
вариант первый — Prepaid
Здесь варианта два:
<> с абон.платой в 4 грн в неделю. Получается, что цена 1 смс =13,33 коп.
<> с абон.платой в 6 грн в неделю. Получается, что цена 1 смс =10 коп.
Цена хорошая. Но есть и минусы:
В обоих случаях неиспользованные в конце недели смс <>.
Нужно регулярно заходить в профиль на <> и дозаказывать услугу, а то можно в самый важный момент остаться без уведомления.
вариант второй — контракт
Здесь варианта три:
<> с абон.платой в 3 грн в месяц. В пакет входит 500 смс со скидкой. Получается, что цена 1 смс =25 коп.
<> с абон.платой в 7 грн в месяц. В пакет входит 500 смс со скидкой. Получается, что цена 1 смс =15 коп.
<> с абон.платой в 120 грн в месяц. В пакет входит 1000 бесплатных смс. Получается, что цена 1 смс =12 коп.
Получается дороже, чем в препейд-пакетах, но зато не нужно еженедельно активировать. Один раз сделал — и забыл.
К слову, цены получается конкурентоспособными. Например, интернет-сервис
для нашей организации предложил цену в 15 коп. за одно смс при количестве смс в месяц 1-25000 без абон. платы и с бесплатной активацией пакета.Но при использовании модема мы получаем одно неоспоримое преимущество — независимость от интернета. Ведь интересуют не массовые смс-рассылки, а уведомления от Zabbix. И при использовании интернет-сервисов рассылки смс я рискую НЕ получить важную смс в случае, например, продолжительного выключения света в офисе или аварии у провайдера. Какой из пакетов выбирать — решать вам.
Подробнее о смс-пакетах можно узнать на:
Настройка PlaySMS
Установка этого приложения не обязательна. Приложение необходимо для массовой рассылки смс, которые складывает в mysql базу.Для работы необходимы пакеты httpd, mysql, php, php-pear, php-mysql, php-cli, phpmyadmin. Но эти все пакеты я и так установил для работы Zabbix. Создаём нового пользователя и дериктории для PlaySMS. Скачиваем последнюю версию PlaySMS и создаём базу в mysql:adduser playsms
mkdir -p /var/www/playsms
mkdir -p /var/spool/playsms
mkdir -p /var/log/playsms
chown -R apache /var/www/playsms
chown -R apache /var/spool/playsms
chown -R apache /var/log/playsms
chmod -a -G smstools playsms
wget http://downloads.sourceforge.net/project/playsms/playsms/Version%200.9.7.1/playsms-0.9.7.1.tar.gz
tar -zxvf playsms-0.9.7.1.tar.gz -C /usr/local/src
cd /usr/local/src/playsms-0.9.7.1/web/
cp -rR * /var/www/playsms
cp playsmsd* sendsmsd* /usr/local/bin/
chown -R apache /var/www/playsms
mysqladmin -u root -p create playsms
Импортируем в созданную базу:mysql -u root -p playsms & /usr/local/src/playsms-0.9.7.1/db/playsms.sql
Копируем конфиг, предварительно отредактировав в нем пароль пароль для подключения к базе (и логин, если у вас не root)cp /var/www/playsms/config-dist.php /var/www/playsms/config.php
vi /var/www/playsms/config.php
$core_config['db']['pass'] = 'ваш пароль';
// database password
Настраиваем автоматический запуск программы:cd /usr/local/src/playsms-0.9.7.1/bin
cp playsmsd playsmsd.php playsmsd_start /usr/local/bin/
cp playsms /etc/default/
В /etc/rc.d/rc.local добавлеям строчку — /usr/local/bin/playsmsd_start. Панель управления PlaySMS доступна по htpp://ip.адресс.вашего.сервера/playsms. Вход admin \ admin.
Проверяем, что в /etc/default/playsms указан правильный путьPLAYSMS_PATH=/var/www/html/playsms
Полезные ссылки
Ссылки, которые натолкнут вас на мысли по дальнейшему совершенствованию идеи отправки СМС:
UPD: для просмотра остатка средств на счету и количества акционных смс необходимо установить пакет gsm-ussd. ФОрмат команды и результат следующий:&gsm-ussd -m /dev/ttyUSB2 '*115#'
Bonusy 55.0 SMS na nomery po Ukraini (dijsni do
23:59:59). Zamovlennia Paketu SMS za tel. 477*030*
&gsm-ussd -m /dev/ttyUSB2 '*111#'
Na rahunku: 17.14 grn. Nomer die do 24-10-2013. Bonusy: 0 grn (dijsni do 14-10-2022);
рейтинг
Похожие публикации
29 октября 2012 в 18:31
Для отправки смс еще могу порекомендовать сервис sms.ru. Не спешите минусовать, я никак с ними не связан. У них есть подарочек для программистов — до 60 сообщений в день, со <> (то в поле отправитель будет привязанный к сервису телефон), очень удобно для всяческих уведомлений. А самое главное удобно (API) и бесплатно
29 октября 2012 в 18:37
Два вопроса. Чем не угодил встроенный функционал Zabbix для отправки SMS? Как вы дошли до Федоры на сервере?
29 октября 2012 в 18:57
1) встроенный функционал на этом модеме не работал.
2) сервером эту машину сложно назвать. А выбор обусловлен корпоративными интересами фирмы. RHEL — для заказчиков и RHEL + Fedora для внутреннего использования.
30 октября 2012 в 15:59
email2sms у вас не работает?
30 октября 2012 в 20:17
1) повторюсь, хотелось получить не зависимое от интернета решение.
2) посмотрел цены email2sms. Опять же, smscenter предложил мне более выгодные условия.
31 октября 2012 в 13:05
2. Странно, в России и МТС, и Мегафон, и Билайн дают эту услугу бесплатно. У нас поток сообщений через это дело довольно обильный и пока что все нормально работает.
Плюс вашей системы в том, что, если захотеть, то можно начать звонить в случае полного краха. От смсок я, например, не просыпаюсь
30 октября 2012 в 20:38
Спасибо за статью, сам буквально два дня назад настроил zabbix на centos 5.8 для рассылки через хуайвей e173. Однако, у меня возникла проблема — сообщения приходят по три раза. Вы с таким столкнулись?
31 октября 2012 в 14:48
у меня такой проблемы не было, но в процессе разведывания темы неоднократно встречал такие проблемы на форумах. решение предлагают например
7 августа 2013 в 21:07
Впринципе то же самое
Только зарегистрированные пользователи могут оставлять комментарии. , пожалуйста.
Популярное за сутки
Компания дня <img src="/images/bg_cicle_help.png" title="
Компания, чья публикация набрала максимальное количество баллов
среди всех опубликованных в корпоративных блогах публикаций за
прошедшие сутки. Учитываются публикации, для которых истек срок голосования (3 дня с момента публикации)." class="help-tip">
Последняя публикация:
29 подписчиков
Что обсуждают
Самое читаемое

我要回帖

更多关于 中兴手机 的文章

 

随机推荐