forum.bitel.ru http://forum.bitel.ru/ |
|
Подскажите как лучше сделать http://forum.bitel.ru/viewtopic.php?f=44&t=11024 |
Страница 1 из 1 |
Автор: | cigan43 [ 23 окт 2015, 19:12 ] |
Заголовок сообщения: | Подскажите как лучше сделать |
Добрый день! Подскажите, пожалуйста, какой тип устройства лучше завести и привязать к стороннему скрипту? Нам нужно привязать IP к договору . По этому IP не происходит сбор трафика, по договору нет авторизации. Эта формальная привязка названия договора и IP адреса. IP Нужен только при блокировке договора, чтобы скрипт передал атрибуты: IP, состояние договора (выключен, либо включен) внешнему скрипту. Внешний скрипт на python. С его помощью мы блокируем и разблокируем абонентов. P.S Версия биллинга 6.2 |
Автор: | zavndw [ 24 окт 2015, 04:22 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
Так зачем тогда тип устройств, ip вносите в параметр договора и скриптом его передавайте. Блокировка происходит при не уплате абонентской платы? |
Автор: | vkulakov [ 24 окт 2015, 16:33 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
Для блокировки/разблокировки абонентов в какой-то внешней системе удобно использовать активаторы модуля Inet: пишите скрипт для активатора на дин. коде и он сам будет делать нужные действия. Здесь много плюсов: не нужен внешний скрипт; если деньги неожиданно кончатся, то сервис сразу заблокируется (не нужно по крону проверку делать); ну и всё в одном месте. Если Inet используется только для хранения IP-адресов, то смысла в нём нет - зачем платить лишние деньги? Вообще, задача очень абстрактно написана, тут бы побольше деталей. |
Автор: | cigan43 [ 26 окт 2015, 16:29 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
Вообщем заводим договор, на договоре есть IP, также на договоре будет тариф с помесячным снятием абон. платы, и опции скорости, думаю как описал "vkulakov" будет правильно.Какие еще детали нужны? |
Автор: | vkulakov [ 26 окт 2015, 18:52 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
Так тогда создавайте произвольный тип устройства. В качестве сервиса активатора пишите свой скрипт, который будет пинать внешнюю систему. В качестве обработчика протокола дефолтный выбирайте - он всё-равно делать ничего не будет. Пока не понятно в чём сложность и деталей тогда, вроде, достаточно. |
Автор: | cigan43 [ 28 окт 2015, 21:47 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
Вот пишите свой скрипт это пока проблема, мне пока не понятно с чего начать, в яве не силен(это поправимо), с биллингом только разбираюсь |
Автор: | Amir [ 28 окт 2015, 22:19 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
http://wiki.bitel.ru/index.php/%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B0%D1%86%D0%B8%D0%B8_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2_%D0%BF%D0%BE_telnet viewtopic.php?f=42&t=9154&p=80828#p80903 viewtopic.php?f=44&t=8528&p=69690 Тоже самое есть для SSH, также есть ExecServiceActivator. |
Автор: | ikoctya [ 31 мар 2017, 13:39 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
Сегодня пробовал протестировать работу ExecServiceActivator, чтобы перейти с SSHServiceActivator на него. Если пишу простую команду типа touch или ls с параметрами, они отрабатывают. Если же пробую curl или wget для запроса url по http - ничего не происходит и в логах акксеса ошибок тоже нет. В чем проблема - непонятно. Может быть ExecServiceActivator не может работать с утилитами, которые используют интернет/сетью. |
Автор: | Amir [ 31 мар 2017, 15:58 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
Может SELinux не даёт? |
Автор: | ikoctya [ 31 мар 2017, 16:16 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
отключил давно Код: [root@billing BGInetAccess]# sestatus
SELinux status: disabled |
Автор: | Amir [ 03 апр 2017, 15:54 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
может кавычек для URL не хватает? |
Автор: | ikoctya [ 03 апр 2017, 18:29 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
Вот как-то так командую: sa.command.onAccountingStart=wget "http://xxx.xxx.xxx.xxx/?w=add&i=$ip&r=$option" Для проверки делал так sa.command.onAccountingStart=touch $ip Все работало - появлялись файлы с именем ip-адреса в каталоге акксесс сервера |
Автор: | snark [ 05 апр 2017, 17:01 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
ikoctya писал(а): Вот как-то так командую: sa.command.onAccountingStart=wget "http://xxx.xxx.xxx.xxx/?w=add&i=$ip&r=$option" Такое Код: sa.command.onAccountingStart=echo $PATH ну илиКод: sa.command.onAccountingStart=printenv что говорит?wget есть в путях, а то может он попросту не видится? Если указать полный путь к wget работает? Код: sa.command.onAccountingStart=/usr/bin/wget "http://xxx.xxx.xxx.xxx/?w=add&i=$ip&r=$option"
|
Автор: | ikoctya [ 06 апр 2017, 00:58 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
$PATH туда не передается printenv - Тот же результат. с полным путем ничего не меняется та же утилита ping из папки /bin срабатывает нормально, а вот curl или wget не работают, причем просто от любого пользователя работают нормально |
Автор: | ikoctya [ 06 апр 2017, 12:51 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
Вот что выковырять получилось: Код: connection 04-06/10:21:30 INFO [sa-p-11-t-58] ExecServiceActivator - [AAA: [10.0.0.3]] execute: env
connection 04-06/10:21:30 INFO [sa-p-11-t-58] ExecServiceActivator - HOSTNAME=billing SHELL=/bin/bash TERM=xterm HISTSIZE=1000 SSH_CLIENT=xx.xx.xx.xx 9106 22 QTDIR=/usr/lib64/qt-3.3 OLDPWD=/opt/BGInetAccess QTINC=/usr/lib64/qt-3.3/include SSH_TTY=/dev/pts/7 USER=root LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37; MC_TMPDIR=/tmp/mc-root PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin MAIL=/var/spool/mail/root PWD=/opt/BGInetAccess LANG=ru_RU.UTF-8 HISTCONTROL=ignorespace SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass HOME=/root SHLVL=4 MC_SID=6909 LOGNAME=root CVS_RSH=ssh QTLIB=/usr/lib64/qt-3.3/lib SSH_CONNECTION=xx.xx.xx.xx 9106 yy.yy.yy.3 22 LESSOPEN=||/usr/bin/lesspipe.sh %s G_BROKEN_FILENAMES=1 _=/usr/bin/nohup NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt |
Автор: | snark [ 06 апр 2017, 13:21 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
В логе сервера команда как выглядит? Там видно что передается или нет? |
Автор: | ikoctya [ 06 апр 2017, 13:59 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
snark писал(а): В логе сервера команда как выглядит? Там видно что передается или нет? видно, но ничего дальше не следует... Код: connection 04-06/09:52:58 INFO [sa-p-11-t-85] ExecServiceActivator - [AAA: [10.0.0.3]] execute: curl "http://my_http_server_ip/?w=add&i=xxx.xxx.xxx.xxx&r=3" connection 04-06/09:52:58 INFO [sa-p-11-t-85] ExecServiceActivator -. на сервере, на который осуществляется запрос, в логах апача тоже пусто! |
Автор: | Phricker [ 06 апр 2017, 14:04 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
А если просто из командной строки (не из дин.кода) выполнить эту же команду - что будет? |
Автор: | ikoctya [ 06 апр 2017, 14:11 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
Phricker писал(а): А если просто из командной строки (не из дин.кода) выполнить эту же команду - что будет? Все норм отрабатывает! И на том сервере в логах сразу видно обращение/запрос. Я вот думаю, может активатору сервиса не хватает каких то прав... !? |
Автор: | snark [ 06 апр 2017, 14:17 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
ikoctya писал(а): может активатору сервиса не хватает каких то прав Так вроде ж от рута работает, нет? ikoctya писал(а): Код: USER=root Или это твое окружение, а не окружение сервера? |
Автор: | Amir [ 06 апр 2017, 14:51 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
После 94 строки Код: IOUtils.transfer( process.getInputStream(), baos, 256 ); добавьте Код: IOUtils.transfer( process.getErrorStream(), baos, 256 ); Нажмите Сохранить и скомпилировать и Перечитать конфигурацию.
|
Автор: | ikoctya [ 06 апр 2017, 15:31 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
Amir писал(а): После 94 строки Код: IOUtils.transfer( process.getInputStream(), baos, 256 ); добавьте Код: IOUtils.transfer( process.getErrorStream(), baos, 256 ); Нажмите Сохранить и скомпилировать и Перечитать конфигурацию.А вот и причина: Код: curl: (1) Protocol "http not supported or disabled in libcurl Как исправить только не знаю. А пока прикрутил "костыль". Сделал bash скриптик с вызовом этой же команды - все сработало. curl тот же. Странно как-то))) А ещё у меня к разработчикам пожелание! Может быть есть смысл реализовать что-то вроде "HTTPServiceActivator", который бы осуществлял запросы к нужному веб-серверу прямо из биллинга!? |
Автор: | Amir [ 06 апр 2017, 15:48 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
Цитата: "http - попробуйте убрать кавычки.
|
Автор: | snark [ 06 апр 2017, 15:50 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
ikoctya писал(а): Может быть есть смысл реализовать что-то вроде "HTTPServiceActivator", который бы осуществлял запросы к нужному веб-серверу прямо из биллинга!? Я не разработчик, но думаю, что в этом нет смыла, т.к. скрипт - этакая "обертка" для качалки, на любом удобном/известном языке (sh/bash/perl/php/etc.), которому будут тупо передаваться параметры, сделает абсолютно все что нужно и даже больше. |
Автор: | ikoctya [ 06 апр 2017, 17:27 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
Amir писал(а): Цитата: "http - попробуйте убрать кавычки.Спасибо! Работает! Цитата: snark писал(а): ikoctya писал(а): Может быть есть смысл реализовать что-то вроде "HTTPServiceActivator", который бы осуществлял запросы к нужному веб-серверу прямо из биллинга!? Я не разработчик, но думаю, что в этом нет смыла, т.к. скрипт - этакая "обертка" для качалки, на любом удобном/известном языке (sh/bash/perl/php/etc.), которому будут тупо передаваться параметры, сделает абсолютно все что нужно и даже больше. Не соглашусь! Задачи у всех разные, кому-то может будет удобней делать так, к тому же многое оборудование сейчас поддерживает http запросы или в случае, когда используется какой-то сторонний сервис. Тем более реализовать наверняка просто будет, а доп. функционал увеличивает привлекательность биллинга для новых клиентов. |
Автор: | snark [ 06 апр 2017, 21:36 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
ikoctya писал(а): Не соглашусь! Задачи у всех разные, кому-то может будет удобней делать так Со мной можно не соглашаться, но сложно отрицать тот факт, что мое предложение со скриптом вписывается в текущее положение дел с активаторами, т.е. его можно реализовать сразу, что называется из коробки, а вот если вам из коробки нужен какой-то особенный активатор с блекджеком и шлюхами, реализующий одному вам (пока?) нужный функционал и вы не хотите его реализовать самостоятельно, то на этом форуме есть известный большинству способ получить желаемое: dimOn писал(а): хелпдеск => доработка => профит Работоспособность данного метода создания доработок неоднократно проверена и признана неувядающей классической. ikoctya писал(а): многое оборудование сейчас поддерживает http запросы Пожалуйста, примеры в студию! |
Автор: | ikoctya [ 07 апр 2017, 11:00 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
Хотя бы gsm-шлюзы различные |
Автор: | snark [ 07 апр 2017, 13:25 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
GSM шлюз - очень специфичная штука, гораздо менее распространенная чем какой-нибудь свич. Не советую через GSM шлюз сливать трафик, иначе к вам рано или поздно придут. Инфа 100% |
Автор: | ikoctya [ 07 апр 2017, 14:22 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
У них другое предназначение! СМС-информирование в данном случае |
Автор: | snark [ 07 апр 2017, 15:00 ] |
Заголовок сообщения: | Re: Подскажите как лучше сделать |
ikoctya писал(а): СМС-информирование Многие для этого GSM шлюз напрямую в СОМ порт втыкают и общаются с ним, так сказать, напрямую. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |