dereiff Опубликовано 19 ноября, 2019 · Жалоба @Andrei Ну я вам про них и говорил, собственно. php там не место, нужен xml с шаблоном + sql с запросами, concat и post по желанию. А подключаемых отчетов уже много лет как нет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 19 ноября, 2019 · Жалоба 26 минут назад, dereiff сказал: нужен xml с шаблоном + sql с запросами, concat и post по желанию. Есть какое-то описание процесса? Дали ссылку вот на такое описание - https://www.lanbilling.ru/neworders.html Много непонятного, часть ссылок битые, проще наверное взять что-то из комплекта поставки и пытаться его править. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dereiff Опубликовано 20 ноября, 2019 · Жалоба 14 часов назад, Andrei сказал: Есть какое-то описание процесса? Дали ссылку вот на такое описание - https://www.lanbilling.ru/neworders.html Много непонятного, часть ссылок битые, проще наверное взять что-то из комплекта поставки и пытаться его править. Это описание того, как редактировать xml. Попробуйте для начала почитать раздел "Шаблоны отчетных документов" из документации. Возможно тогда станет понятнее Если кратко, то отчет в биллинге это XML, который в конечном итоге станет документов MS Word или MS Excel, в редком случае некоторые отчеты из поставки это html. Внутри себя XML содержит как минимум пару указателей (как вариант <!-- begin_services --> и <!-- end_services -->) между которыми описывается структура которая должна повторяться в итоговом документе, например - строка в таблице. Аналогичные указатели есть в sql файле - он описывает как из БД выбирать данные и заполнять ими ту самую строку в таблице. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 20 ноября, 2019 · Жалоба В прошлых версиях биллинга рекомендовали все делать через API, теперь опять вернулись к тому, от чего ушли - к прямым sql-запросам. :) Простейший отчет сделал sql: <!-- begin_services ---:begin_cursor:%amount%,%prom_date%,%number%,%FIO%,@dtfrom:select p.amount, p.prom_date, agr.number, concat(a.abonent_surname,' ',a.abonent_name,' ',a.abonent_patronymic) as FIO from promise_payments as p, agreements as agr, accounts as a where agr.agrm_id=p.agrm_id and agr.uid=a.uid and date(p.prom_date)>=@dtfrom and date(p.prom_date)<=@dtto; <!-- end_services -->:end_cursor Но в браузере результат красиво не отображается. Попробовал сделать шаблон xsl и поставил ссылку на него из xml, но красивой таблицы так и не получилось xml: <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <?xml-stylesheet type='text/xsl' href='promise_payments.xsl'?> <payments> <!-- begin_services --> <payment> <amount>%amount%</amount> <prom_date>%prom_date%</prom_date> <number>%number%</number> <FIO>%FIO%</FIO> </payment> <!-- end_services --> </payments> xsl: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <table border="1"> <tr bgcolor="#CCCCCC"> <td align="center"><strong>Сумма</strong></td> <td align="center"><strong>Дата</strong></td> <td align="center"><strong>Договор</strong></td> <td align="center"><strong>ФИО</strong></td> </tr> <xsl:for-each select="payments/payment"> <tr bgcolor="#F5F5F5"> <td><xsl:value-of select="amount"/></td> <td><xsl:value-of select="prom_date"/></td> <td><xsl:value-of select="number"/></td> <td><xsl:value-of select="FIO"/></td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet> Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dereiff Опубликовано 21 ноября, 2019 · Жалоба 18 часов назад, Andrei сказал: В прошлых версиях биллинга рекомендовали все делать через API, теперь опять вернулись к тому, от чего ушли - к прямым sql-запросам. :) Ничего не поменялось, хотите изменять данные или сопрягать информационные системы - используйте API. Шаблонные отчеты изначально делались через sql. Если хотите отображение в браузере - рисуйте сразу html структуру, зачем xml? xml нужен если на выходе хотите получить MS Word или MS Excel документ Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 21 ноября, 2019 · Жалоба 11 часов назад, dereiff сказал: Шаблонные отчеты изначально делались через sql. У меня в прошлых версиях ЛБ пользовательские отчеты были на php через API. 11 часов назад, dereiff сказал: Если хотите отображение в браузере - рисуйте сразу html структуру, зачем xml? xml - типовая штука, на сколько я понял доку и примеры из комплекта поставки. html тоже есть, видел, переделал, простейший рабочий вариант: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8"> <TITLE></TITLE> </HEAD> <BODY TEXT="#000000"> <table border="1"> <tr><td>Сумма</td><td>Дата</td><td>Договор</td><td>ФИО</td></tr> <!-- begin_services --><tr><td>%amount%</td><td>%prom_date%</td><td>%number%</td><td align=left>%FIO%</td></tr> <!-- end_services --> </table> </BODY> </HTML> Заголовок таблицы с переменными @dtto и @dtfrom, которые передаются в скрипт, можно сделать добавив перед началом курсора в sql-файл псевдо-sql-запросы вида: %datefrom%:select @dtfrom %dateto%:select @dtto Ну и xml я так и не победил. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Urs_ak Опубликовано 2 декабря, 2019 · Жалоба Подскажите, а вот в ЛанБиллинге обычные тарифы с месячной арендой - для них списание 1-ого числа в 0:00 Неужели реально нельзя это поменять, чтобы списание было не ночью а днём ? Или ещё лучше например 3-его числа каждого месяца, напр в 10 утра ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 2 декабря, 2019 · Жалоба 5 часов назад, Urs_ak сказал: Неужели реально нельзя это поменять, чтобы списание было не ночью а днём ? Или ещё лучше например 3-его числа каждого месяца, напр в 10 утра ? ИМХО, это логика зашита в биллинг жестко и не меняется через настройки. Вопрос про личный кабинет. В /etc/lanbilling/phpclient/client/connection.ini есть настройки указателей на страницы, на которые абонент из личного кабинета будет перенаправляться при выборе определенного действия. Например, если абонент хочет подключить себе телефон, то вот тут надо поправить url на свой: [connection/telephony] url = 'http://sencha.com' description = 'Описание страницы подключения к телефонии' text = 'Подключение к телефонии' Вопрос - каким образом на эту стороннюю страницу передается текущий контекст из личного кабинета, например логин абонента, или его id в биллинге, или номер его договора? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Urs_ak Опубликовано 2 декабря, 2019 · Жалоба 21 минуту назад, Andrei сказал: ИМХО, это логика зашита в биллинг жестко и не меняется через настройки. Жалко. Мой домашний провайдер списывает 7-ого числа, правда тоже ночью. 21 минуту назад, Andrei сказал: Вопрос - каким образом на эту стороннюю страницу передается текущий контекст из личного кабинета, например логин абонента, или его id в биллинге, или номер его договора? Я не знаю :) А на самой странице через php $_SERVER['REMOTE_ADDR'] и далее запрос к mysql не катит ? Мы вот начинающие пользователи LanBilling'а, уже хотим сделать чтобы абоненты сами себе тыкали "Обещанный платёж" на странице блокировки, без захода в ЛК Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 2 декабря, 2019 · Жалоба 4 часа назад, Urs_ak сказал: А на самой странице через php $_SERVER['REMOTE_ADDR'] и далее запрос к mysql не катит ? Это как? 4 часа назад, Urs_ak сказал: уже хотим сделать чтобы абоненты сами себе тыкали "Обещанный платёж" на странице блокировки, без захода в ЛК Определять абонента будете только по логину? Как будете потом подтверждать, что именно этот абонент сам себе назначил "Обещанный платеж", а не кто-то другой, узнавший логин абонента, загнал его баланс в минус? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Urs_ak Опубликовано 2 декабря, 2019 · Жалоба 2 часа назад, Andrei сказал: Это как? Определять абонента будете только по логину? Как будете потом подтверждать, что именно этот абонент сам себе назначил "Обещанный платеж", а не кто-то другой, узнавший логин абонента, загнал его баланс в минус? По IP абонента. У меня есть уже наброски. Абонент заходит на веб-страничку в сети провайдера, соотв. мы узнаём в php из переменной $_SERVER['REMOTE_ADDR'] его адрес. Далее мы коннектимся на php к базе и по ip получаем что хотим, например agrm_id (пример sql-запросау меня есть). Далее мы вызываем из php, API ланбиллинга и кладём пользователю с agrp_id нужную сумму, сумму тоже берём по API. Как работать с API через php я недавно разобрался. Ну вот - пользователь видит на странице "дай денег" кнопку "Отложенный платёж (3 суток)", нажимает его и ему врубается интернет. P.S. У нас мы сделали что у абонента ip не меняется, т.е. при блокировке тот же ip Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 2 декабря, 2019 · Жалоба 27 минут назад, Urs_ak сказал: Абонент заходит на веб-страничку в сети провайдера, соотв. мы узнаём в php из переменной $_SERVER['REMOTE_ADDR'] его адрес. Не наш случай, у нас есть НАТ. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 3 декабря, 2019 · Жалоба Зачем клиента гнать на внутренний сервис через НАТ? НАТ'у больше заняться нечем? :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 4 декабря, 2019 · Жалоба 14 часов назад, vop сказал: Зачем клиента гнать на внутренний сервис через НАТ? Потому что pppoe, и пока клиент не авторизуется у него вообще адресов нет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 4 декабря, 2019 · Жалоба 9 hours ago, Andrei said: Потому что pppoe, и пока клиент не авторизуется у него вообще адресов нет. Как бы уже вопрос не о том, но у вас клиенты с отрицательным балансом не могут авторизоваться? За что их так жестоко? :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 4 декабря, 2019 · Жалоба 4 часа назад, vop сказал: у вас клиенты с отрицательным балансом не могут авторизоваться? За что их так жестоко? :) Конечно могут, им выдаются адреса из гостевой сети, из которой им показывают страницу "дай денег". Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 5 декабря, 2019 · Жалоба 19 hours ago, Andrei said: Конечно могут, им выдаются адреса из гостевой сети, из которой им показывают страницу "дай денег". Ясненько. Хотя, как по мне, игры с гостевыми сетями нужны исключительно в случае неизвестных клиентов. А если клиент у вас известен, и может быть идентифицирован, то не совсем понятно, зачем гостевые сети использовать. Например, возможность беспарольной кнопки "заплачу завтра" уже теряются (ведь пароль уже предъявлен при подключении). Ну то уже каждый выбирает так, как ему лучше. :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 5 декабря, 2019 · Жалоба 2 часа назад, vop сказал: А если клиент у вас известен, и может быть идентифицирован, то не совсем понятно, зачем гостевые сети использовать. Например, возможность беспарольной кнопки "заплачу завтра" уже теряются (ведь пароль уже предъявлен при подключении) Возможность не теряется. В остальном - не понял логики. Собственно хочется вернуться к заданному вопросу - добавлению в личный кабинет доп.интеграций. Не изучать же ради это Yii Framework. Я посмотрел бегло доки на него - вещь интересная, но на изучение уйдет куча времени и результат будет "из пушки по воробьям". Неужели никто ничего не допиливает в функционале личного кабинета? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
hsvt Опубликовано 20 января, 2020 (изменено) · Жалоба 20.01.2020 17:14:28.632695 WARNING LWP9006 [src/radius.cpp:2230] IP 10.10.15.39 is already used for vg_id = 0 Кто нибудь сталкивался с чем то подобным? Выдача адресов статическая, PPPoE. Пока что наблюдается только на одной подсети. Гостевых сетей нет. LANBilling 2.0 RADIUS DialUP 27.0 (May 7 2019 15:27:28) rev #e6b722cf Изменено 20 января, 2020 пользователем hsvt Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
arhead Опубликовано 6 февраля, 2020 · Жалоба Что бы не создавать новую тему. Сейчас версия 1.9 hf4. Есть лицензия на 2 версию. Сейчас тихонечко переношу данные скриптами в 2.0.23. Вроде все тихонечко получается. И тут вопрос по телефонии. Используется у нас Астериск и Си2000. 1.9 Все хорошо загружает парсит корректно претензий нет. В 2.0 Там агент теперь LBphone. Перенес телефонный каталог с которым сейчас все хорошо работает и тарифы телефонии. Настроил перенес все учетные записи под этого агента. Настроил парсеры. (Подкрутил конфиг парсера астериска). Ну и попробовал загрузить телефонию. Из csv астериска всего 3 вызова. Файлы si2000 парсит с ошибками типа Цитата 05.02.2020 23:19:19 WARNING LWP1807 [phonecalc.cpp:932:CalculateCall] Call tel00420200122:1153 is not calculated. Cannot find vgroups for numbers, numfrom: XXXXXXXXXX[], numto: XXXXXXXXXXX[2-57-0-1-28] (Как я понял в квадратных скобках это транки) Ну и входящие в исходящие переместил. Кто нибудь сталкивался с таким? Цитата LANBilling 2.0 Phone Agent build 23.1 (Jun 25 2019 10:23:50), rev #3b90596e LANBilling 2.0 Core Server build 23.1 (Jun 25 2019 10:43:11), rev #3ed264ee Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alvisid Опубликовано 6 февраля, 2020 · Жалоба Не находит учётки к кому привязаны номера/транки Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dereiff Опубликовано 7 февраля, 2020 · Жалоба 22 часа назад, arhead сказал: Сейчас версия 1.9 hf4. Есть лицензия на 2 версию. Сейчас тихонечко переношу данные скриптами в 2.0.23 Зачем же вы некрофилией занимаетесь? Возьмите вместо 2.0.23 актуальную версию. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
arhead Опубликовано 7 февраля, 2020 · Жалоба 11 часов назад, alvisid сказал: Не находит учётки к кому привязаны номера/транки Привязка есть. Он ругается где транк пустой или есть. В 1.9 Нормально же все в себя воспринимает. 1 час назад, dereiff сказал: Зачем же вы некрофилией занимаетесь? Возьмите вместо 2.0.23 актуальную версию. Успел только этот дистр урвать когда поддержка была Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alvisid Опубликовано 7 февраля, 2020 · Жалоба Поддержка там стоит минимум - на время обновления она однозначно нужна. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 8 февраля, 2020 · Жалоба Стоит 30я сборка ЛБ от 11.11.2019 Где теперь ЛБ хранит активные pppoe-сессии, юзеров авторизованных через радиус-агента? mysql> select * from sessionsradius; Empty set (0.00 sec) Раньше проверял наличие дублирующихся и залипших сессий вот так: select inet_ntoa( assigned_ip ), session_id, count(*) cnt from sessionsradius group by assigned_ip having cnt > 1; Теперь эта конструкция не работает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...