«Деньги, карты, два ствола» (linux, kodi, tv-box)

— Мамо! Купіть мені плєєр!
— Який тобі плєєр, доцю? Ти ще коньків не сточила!..

Прогресс шёл себе, шёл, и дошёл до того, что наиболее универсальный плейер нынче представляет собой … компьютер в том или ином его обличии. А современный медийный контент — это различные файлы (видео/аудио/изображение/прочие), хранящиеся либо на каких-нибудь носителях, либо на серверах, как локальных, так и размещенных где-то в интернете. Миру явили даже такой симбиоз, как Smart-TV — (фактически, обычный) компьютер, который запхнули внутрь телика. Он тебе и в интернет сходит, и музычку проиграет, и киношку покажет, и еще целую кучу других разных дел сделает!

Но так уж вышло, что телик я себе купил … обычный (хорошо, хоть с HDMI-входами!). И это — лишь одна из причин всего того «перфоманса», который описан в этой заметке. Телевизор мой стоит себе на стенке в зале. Рядом разместился AV-ресивер (музыку тоже люблю послушать иногда), колонки, саб, одним словом — «всё пучком». И лишь компьютера там нет! Ну и последний «гвоздь в крышку» — моя домашняя «файлопомойка» (сервер, на котором хранятся все те самые файлы медиа-контента) живет на антресоли, образно говоря, «на другом краю мира» (квартиры). И никаких кабелей между этими локациями не было проложено по определению (ну кто мог себе такое даже представить в конце прошлого века, когда делался ремонт квартиры?!). Ну и последнее — музыку  я люблю «пускать» на ресивер «по цифре», но при этом, из цифровых входов у моего «старичка» имеются лишь S/PDIF и его оптическая разновидность — TOSLINK. А фильмы жена любит смотреть со звуком из телевизора («А чего оно так громко гупает с твоих колонок?»). Ну вот вроде как и закончили с «вводными»…

Итак, первый плейер, на который были возложены обязанности развлекать нас, представлял собой мини-ПК Raspberry-PI, с установленной на нем дополнительной платой PiFi-Digi (цифровые выходы звука S/PDIF и TOSLINK). Вот такая себе «сладкая парочка»:

Ах да, кроме «вышеперечисленных товарищей» в процессе также участвовали:

  • USB-адаптер беспроводной сети Tp-Link TL-WN725N (надо ж было как-то к «файлопомойке» подключаться)
  • Беспроводная «аэро-мышь» i7 Rii mini (в качестве пульта ДУ)

Установленное на «малину» ПО представляло собой (в разное время) различные дистрибутивы Linux, с установленной на них программой медиа-плейера Kodi («в девичестве» называвшейся XBMC, и к которой я за эти годы, можно сказать, «прикипел душой»). И все было бы хорошо, если бы не те самые «НО», которые по определению есть всегда и везде:

  • Компьютер сей особой производительностью не блистал. Это была модель из «более ранних» версий (model B): одно ядро частотой 700 МГц, памяти 512 Мб. Возможно, текущие версии «малины» (например, Raspberry-PI model 3B+) работали бы пошустрей, но тратить деньги на «эксперименты по проверке теорий» абсолютно не хотелось. Кроме того, и плату S/PDIF тоже пришлось бы покупать новую…
  • Дизайн изделия (именно такой, как и показан на фото выше, без корпуса) тоже особо глаз не радовал (не столько мой глаз, сколько жены).
  • Были еще какие-то мелочи, но, видимо, настолько незначительные, что уже и из памяти выветрились.

Железо

Вдруг как-то неожиданно освободился мини-пк, работавший моей домашней «файлопомойкой» (мини-сервером, выполнявшим разные задачи, в том числе и хранения медиа-контента). Вот такой, как показан на картинках ниже (разве что, wi-fi адаптера в моем не было, и как следствие, антенки — тоже):

А главный «сюрприз» ждал меня внутри этого компьютера — при тщательном осмотре его материнской платы на ней было обнаружено место для установки передатчика TOSLINK (оптического варианта S/PDIF). Использованный в компьютере чип аудио-кодека ALC662 от ф. Realtek имеет соответсвующий выход. Последующая проверка цепей показала, что все необходимые подключения и элементы на плате присутствовали, и не хватало лишь самого передатчика! На следующей картинке место для установки TOSLINK видно (в левом нижнем углу платы, пониже светло-зеленого гнезда аналогового аудио-выхода):

Отлично! Передатчик TOTX179 был куплен и распаян на плате, в корпусе мини-пк было «прогрызено» отверстие под него, и новый медиа-плейер был практически готов! Оставалось лишь поставить на него ОС и программу-проигрыватель.

«Муки выбора» (софт)

Глобально «что устанавливать» — вопрос не стоял абсолютно! Все тот же Kodi поверх все того же Linux-а. Ответ на вопрос о том, «какой Linux устанавливать», мне тоже известен уже давно — тот, который знаешь, иначе «танцы с бубном» затянутся надолго! А «знакомы» мне два дистрибутива — Ubuntu и Debian. Вопрос был лишь в том, «что где доступно и почем?». Речь о том, что версии плейера Kodi, включенные в различные дистрибутивы их авторами, во первых, отличаются, а во вторых, не дают «гибкости выбора» (как вы можете увидеть в приведенной ниже таблице, в официальных репозиториях присутствует лишь по одной версии Kodi для каждого из релизов). Но тут мною для Ubuntu были найдены так называемые PPA на сервере launchpad.net, «и всё сразу-же стало на свои места»! 🙂

Ниже приведена таблица, в которой указано, какие версии Kodi доступны в разных версиях Linux-ов (для Ubuntu рассматривались только LTS-релизы). На всякий случай уточню — приведенная в таблице информация была актуальна на момент написания данной заметки.

Дистрибутив Релиз Доступность Kodi в репозиториях
Официальный PPA
Ubuntu 16.04 LTS (Xenial) 15.2 16.1 (kodi-old)
17.6 (stable)
18.0 (unstable)
Ubuntu 18.04 LTS (Bionic) 17.6 17.6 (stable)
18.0 (unstable)
Debian 8 (jessie) 16.1 (backports)
Debian 9 (stretch) 17.1

По итогам «исследований» мною был выбран дистрибутив Ubuntu, и вот почему: использование PPA предоставляло возможность установить 2 или 3 разных версии проигрывателя Kodi, не меняя при этом саму ОС. Причем, в плане самого проигрывателя Kodi мои личные предпочтения склонялись к версиям 16 и 18. Поводом для такого моего выбора послужила опция в настройках звука, которая в 16-й версии Kodi присутствовала, в 17-й версии её убрали, а в 18-й — снова вернули! Речь идет о возможности «задрать» уровень громкости центрального канала, когда плейер выполняет т.н. downmix из многоканального (5.1) звука в двухканальное стерео. Эта штука очень сильно помогает при просмотре на телевизоре (имеющем лишь стерео-динамики) фильмов с такими «качественными» переводами, при которых голоса актеров «озвучки» выведены лишь в центральный канал да еще и со слабым уровнем, в результате чего их очень плохо слышно на фоне «громогласных» звуковых эффектов. А с учетом того, что иногда «задирать центр» приходится аж до уровня в +10…+16 дБ, то лично для себя эту опцию я считаю весьма и весьма полезной! Настройка параметра в 16-й версии Kodi показана на скриншоте:

Релиз Ubuntu мною был выбран такой: 16.04 LTS, и вот почему. Во первых, в нём возможно установить любую из ТРЁХ различных версий проигрывателя Kodi (естественно, речь про установку именно с помощью PPA). А во вторых — настройка сетевых адаптеров в нём осуществляется ещё «по-старому». Не скажу, что я не нашел для 18.04 LTS информацию о том, как в ней вернуться к «старому» ifupdown вместо «нового» netplan, или не нашел, что и как нужно прописать в настройках netplan для запуска моего адаптера TL-WN725N. НО, под управлением netplan он все равно стартовать не захотел, а менять в «новом» дистрибутиве «новый» netplan на «старый» ifupdown я посчитал просто «не красивым». Кстати, в случае использования Network Manager-а всё настраивалось, подключалось и работало на ура, но в том-то и дело, что в мои планы его использование не входило, о причинах чего будет сказано в следующем абзаце…

Дело в том, что для работы Kodi не нужны никакие «графические рабочие столы» (такие как Gnome, KDE, и т.п.). У него есть возможность работать в т.н. «standalone» режиме, для которого — да, нужен X-сервер, но вот desktop-ы всякие там — совсем не обязательны! А за то время, что пользуюсь линуксами разными, я уже успел убедиться, что «графический десктоп» — это самая «прожорливая» часть ПО в данных системах! Поэтому, ставить на свой плейер я режил серверную версию Ubuntu — ту самую, которая совсем без графики! Расчитывая при этом впоследствии «досыпать» поверх «голой консоли» лишь самый необходимый минимум. И вот именно по причине отсутсвия графического десктопа никакой Network Manager моему плейеру просто «не светил»!

Установка ОС

Установка ОС Ubuntu в интернете описана столько раз, что останавливаться на этом не вижу смысла. Пошли на сайт, скачали образ диска (iso-файл), записали его на «болванку» или флешку, загрузились с нее и установили. Единственное, на всякий случай повторюсь — лично себе я устанавливал 64-битную версию server-а Ubuntu 16.04.5 LTS. И еще одна настоятельная рекомендация — устанавливая ОС, не используйте слово «kodi» в качестве логина (юзер с таким именем будет создан позже, при установке программы Kodi).

Настройка беспроводной сети

Считаю нужным уточнить — всю установку и настройку плейера я проводил, подключив его к сети (роутеру) ETHERNET-КАБЕЛЕМ. Связано это с тем, что так БАНАЛЬНО ПРОЩЕ! Не могу сказать, что современные версии Ubuntu «проблемны» в плане поддержки большинства популярных (наиболее массово производимых) Wi-Fi-адаптеров, но сам я никогда не возился с их настройкой именно во время установки ОС. Проще всё проделать, подключившись кабелем. И лишь потом настраивать Wi-Fi (естественно, продолжая «висеть на кабеле», чтоб не отвечать на вопросы типа «А как я могу скачать пакеты, если к интернету не подключен?» 🙂 )…

Должен сделать еще одно краткое отступление. Естественно, описываемые в этой заметке действия проделывались не раз, не два, и не двадцать два. И лишь по итогам всех этих (за)нудных «экспериментов» была написана статья, которая теперь выглядит как «просто раз, два, три…». В ходе этих «экспериментов» действия предпринимались самые разные, и далеко не всегда действительно необходимые. А главное, потом было сложно понять, лучше стало после них, или хуже. Потому что «всё продолжало работать также, как и до того как…».

И вот сейчас речь пойдет именно о таком «сомнительной необходимости» действии — установке «из исходников» драйвера для моего Wi-Fi-адаптера. На всякий случай напомню, мною использовался USB адаптер Tp-Link TL-WN725N с чипом RTL8188EUS от Realtek внутри. Должен сразу же добавить — Ubuntu сама распознает указанный адаптер и сама устанавливает драйвер для него. Но я в эти «дебри» с установкой драйвера «из исходников» полез на том этапе, когда у меня в Ubuntu 18.04 LTS никак не получалось настроить подключение к беспроводной сети в программе netplan (подумал, «А вдруг поможет?»). По факту — не помогло, но инфа осталась, вот и выкладываю ее тут. Итак, чтобы установить драйвер на RTL8188EUS выполните следующее (приведены команды, которые необходимо выполнить в консоли):

  1. Установите необходимые дополнительные пакеты:
sudo apt-get update
sudo apt-get install -y linux-headers-$(uname -r) build-essential git
  1. Скопируйте исходники драйвера:
git clone https://github.com/lwfinger/rtl8188eu
  1. Перейдите в папку с исходниками:
cd rtl8188eu
  1. Выполните сборку и установку драйверов:
make all
sudo make install
  1. Включите использование системой модуля установленного вами драйвера:
sudo insmod 8188eu.ko

После перезагрузки ОС должна начать использовать установленный вами драйвер вместо встроенного. Но повторюсь, разницы в работе Wi-Fi после смены драйвера лично я не заметил, поэтому считаю установку драйвера не обязательной.

Непосредственную настройку беспроводного подключения нужно начать с установки необходимых пакетов.

  1. Для этого в консоли введите команды:
sudo apt-get update
sudo apt-get install -y wireless-tools wpasupplicant
  1. Настройте параметры подключения к беспроводной сети (предполагается, что ваша сеть использует WPA-PSK или WPA-PSK2 шифрование). Для этого запустите редактор, указав для редактирования соответсвующий файл настроек:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
  1. Редактор должен сообщить вам, что он открыл [Новый файл]. В файл впишите такие строки:
country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
   ssid="тут_впишите_SSID_вашей_сети"
   psk="тут_впишите_ключ_шифрования_вашей_сети"
}

Естественно, что SSID и пароль (выделенные выше красным цветом) вы должны указать СВОИ собственные! Двухбуквенный код страны, при желании, также можете указать свой (список кодов можно тут просмотреть в таблице). Правда, я не заметил особой разницы от его смены. Выполнив это, сохраните файл (нажмите F3 и затем подтвердите имя файла для сохранения, нажав Enter) и выйдите из редактора (нажав F2).

  1. И завершающий шаг — настройка сетевых параметров адаптера в файле /etc/network/interfaces. Правда, перед этим вам нужно уточнить какое «имя» система присвоила вашему беспроводному адаптеру. Это можно сделать следующей командой:
iwconfig

В ответ вы должны получить список всех сетевых адаптеров, которые ОС обнаружила в вашем компьютере. Напротив тех  из них, которые не являются беспроводными, будет указано «no wireless extensions». По поводу же того адаптера, который программа опознает как беспроводной, будет указано нечто наподобие такого:

wlx30b5c216a241  unassociated  ESSID:""  Nickname:"<WIFI@REALTEK>"
          Mode:Auto  Frequency=2.412 GHz  Access Point: Not-Associated   
          Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

В показанном примере видно, что имя беспроводного сетевого адаптера — wlx30b5c216a241 (выделено мной). Вот именно для него и нужно прописать настройки в файл /etc/network/interfaces. Откройте данный файл в редакторе:

sudo nano /etc/network/interfaces

Впишите в конце файла (не удаляя и не меняя остальные, уже имеющиеся там строки) следующее:

allow-hotplug wlx30b5c216a241
auto wlx30b5c216a241
iface wlx30b5c216a241 inet dhcp
#wireless-power off
	wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Естетсвенно, редактируя файл, «имя» адаптера указывайте то, которое будет использовано в вашей системе.

Вписанные вами в файл команды означают следующее: адаптер допускает «горячее подключение» (1-я строка), должен запускаться «автоматом» при старте системы (2-я строка), получать все настройки (IP-адрес, шлюз, DNS) автоматически, по DHCP-протоколу (3-я строка) и для подключения к беспроводной сети использовать настройки из соответсвующего файла (5-я строка). 4-я строка запрещает управление питанием для данного адаптера (в том смысле, что драйверу адаптера запрещено снижать мощность передатчика Wi-Fi-радиомодуля с целью экономии энергии), но чтобы данная директива начала работать, ее нужно «раскомментировать» (удалить «#» в начале строки).

  1. Сохраните изменения и выйдите из редактора.

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

Установка Kodi

Для установки Kodi на Ubuntu-server нужно выполнить несколько действий, а именно:

  • Добавить PPA репозитория Kodi на сервере launchpad.net;
  • Установить X-server;
  • Установить Kodi;
  • Создать новый Unit для Sysytemd, который будет запускать Kodi как standalone-демон при запуске ОС;
  • Создать новое правило для polkit, которое позволяет неавторизованному пользователю управлять перезагрузкой/выключением системы (это добавит соответсвующие кнопки в меню Kodi);

Мною была найдена страница на GitHub, автор которой написал и выложил скрипт, выполняющий все вышеописанное, избавляя от необходимости делать это пошагово вручную.

Чтобы воспользоваться данным скриптом и установить Kodi с его помощью, выполните следующее:

  1. Установите необходимый пакет:
sudo apt-get update
sudo apt install git -y
  1. Клонируйте скрипт автора с сайта GitHub на свой компьютер:
git clone https://github.com/abacao/Boot2Kodi.git
  1. Перейдите в папку со скриптом:
cd Boot2Kodi
  1. ВНИМАНИЕ — ЭТО НЕ ОБЯЗАТЕЛЬНЫЙ ШАГ! Так как по умолчанию этот скрипт подключает т.н. «stable»-ветку репозитория Kodi, то в результате его выполнения на компьютер будет установлена текущая «стабильная» версия программы, а именно — 17.6 (учтите, что данная информация была актуальна на момент написания заметки, при выходе новых версий проигрывателя наверняка всё изменится, поэтому, уточните свежую раскладку по версиям на странице проекта на сервере launchpad.net или тут). Если вы хотите установить именно текущую стабильную версию программы Kodi (17-ю), просто пропустите этот шаг и сразу переходите к 5-му пункту! Если же вы хотите установить Kodi версий 16.х (предыдущую) или 18.х («нестабильный» релиз-кандидат), то тогда вам нужно будет выполнить следующее:

Откройте файл скрипта в редакторе:

nano install.sh

Найдите в нем такую строку (где-то в начале файла):

add-apt-repository ppa:team-xbmc/ppa -y

И отредактируйте её. Если вы хотите установить Kodi версии 16.х, измените ее так, чтобы строка стала выглядеть следующим образом:

add-apt-repository ppa:team-xbmc/kodi-old -y

Если же вы хотите установить Kodi версии 18.х, то строку нужно привести к такому виду:

add-apt-repository ppa:team-xbmc/unstable -y

Сохраните изменения и выйдите из редактора.

  1. Запустите скрипт на выполнение:
sudo sh ./install.sh

По окончании работы скрипта программа Kodi будет установлена и запущена.

Звук — донастройка и метод переключения

Как уже было сказано в начале заметки, в моем случае звук проигрывателя должен был выводиться «наружу» двумя различными способами. При просмотре фильмов — по HDMI на телевизор. А при прослушивании музыки — по S/PDIF (TOSLINK) на AV-ресивер. Но тут меня поджидала «засада» — Kodi видела только лишь два выхода (а главное — ни одного из тех, что были нужны мне!):

Причина «фокуса» крылась в программе pulseaudio — это она предоставляла проигрывателю информацию о всего двух возможных способах вывода звука. В случае, если бы на компьютере был установлен какой-нибудь «графический десктоп», в нем присутствовали бы средства для настройки предпочтений из числа ВСЕХ имеющихся в компьютере аудио-устройств. Но увы, в моём распоряжении были сервер и «голая консоль» на нём! Решением оказалось «грохнуть» pulseaudio (и в таком случае Kodi использзовал бы сведения, предоставляемые другой программой аудио — alsa). И как показала дальнейшая проверка — в таком случае список для выбора оказывается гораздо шире:

Естественно, этот вариант устраивал меня намного лучше — в нем были доступны к  выбору нужные мне и HDMI, и S/PDIF!

Интернет предлагал мне вообще полностью удалить программу pulseaudio с компьютера. Но я воспользовался другими найдным советом — просто запретить pulseaudio сканирование аудио-устройств. И этого оказалось достаточно! Чтобы настроить систему таким образом, нужно выполнить следующее:

  1. Откройте в редакторе файл настроек программы pulseaudio:
sudo nano /etc/pulse/client.conf
  1. Найдите в файле такую строку:
; autospawn = yes
  1. Отредактируйте ее так, чтобы она стала выглядеть следующим образом:
 autospawn = no
  1. Сохраните изменения и выйдите из редактора.
  2. Перезагрузите компьютер.

Всё! После перезагрузки в настройках Kodi вы увидите максимально полный перечень устройств для вывода звука, имеющихся в вашем компьютере!

Для переключения вывода звука с одного интерфейса (в моем случае, с HDMI) на другой (S/PDIF) интернет настойчиво предлагал мне установить в программу Kodi дополнительный плагин. И я даже установил его! И даже выполнил весь тот «кордебалет», который нужен был для его настройки! Но скажу честно — это была не совсем тривиальная задача! Нужно было найти специальный xml-файл с настройками интерфейса, найти в нем конкретную запись, отредактировать её, дополнительно добавить туда еще какой-то код, скопировать файлы иконок, и т.д. и т.п… Короче говоря — не понравилось мне все это! И поэтому я свою задачу решил совсем иначе — просто создал в программе Kodi еще один (новый) профиль (пользователя)! В каждом из профилей я настроил свой собственный способ вывода звука (а также, и дополнительные параметры): в одном используется HDMI, в другом — S/PDIF! И теперь в случае необходимости я просто переключаюсь из одного профиля в другой (штатными средствами программы Kodi)! В итоге — никакой мороки с правкой xml-файлов…

Кеширование

100500 раз в интернете читал высказывания о том, что «мультимедиа по Wi-Fi — это плохое решение!». Но кабеля у меня как не было (между «файлопомойкой» и плейером), так и нет по сей день! А «киношку» посмотреть какую-никакую охота все-равно.

Еще во времена, когда плейером трудился старенький Raspberry, я нашел описание и настроил по нему кеширование в программе Kodi. И считаю эту возможность большим плюсом — благодаря ей Kodi старается скачать себе в буфер какой-то объем данных наперед. И благодаря буферизации вопроизведение намного меньше подвержено влиянию качества канала передачи данных, чем в случае, когда кеширование не используется. Например, «среднестатистическую» песню Kodi за пару-тройку секунд скачивает в свой буфер целиком и потом воспроизводит её непосредственно из памяти. Есть ли ему при этом какое-либо дело до нестабильности Wi-Fi, думаю, вы догадаетесь сами…

Чтобы настроить кеширование в программе Kodi нужно создать специальный файл настроек и вписать в него ряд параметров. Учтите, что названия параметров в файле для версии 16.х отличаются от таковых для версий 17.х и 18.х! Поэтому, будьте внимательны, выполняя приведенные ниже инструкции.

Чтобы настроить кеширование, выполните следующее:

  1. Запустите редактор, указав для редактирования соответсвующий файл настроек:
sudo nano /home/kodi/.kodi/userdata/advancedsettings.xml
  1. Редактор должен сообщить вам, что он открыл [Новый файл]. В файл нужно вписать настройки, которые будут определять параметры кеширования. Как уже было сказано выше, для разных версий программы Kodi эти строки должны отличаться:

ЕСЛИ ВЫ НАСТРАИВАЕТЕ ПРОГРАММУ KODI ВЕРСИИ 16.Х, то впишите в файл такие строки:

<advancedsettings>
    <network>
	<cachemembuffersize>268435456</cachemembuffersize>
	<buffermode>1</buffermode>
	<readbufferfactor>6</readbufferfactor>
    </network>
</advancedsettings>

ЕСЛИ ЖЕ ВЫ НАСТРАИВАЕТЕ ПРОГРАММУ KODI ВЕРСИЙ 17.Х или 18.Х, то строки должны быть такие:

<advancedsettings>
    <cache>
	<memorysize>268435456</memorysize>
	<buffermode>1</buffermode>
	<readfactor>6</readfactor>
    </cache>
</advancedsettings>
  1. Сохраните файл и выйдите из редактора.

Изменения вступят в силу после перезапуска Kodi (думаю, проще будет перезагрузить сам компьютер).

Параметров три (их значения выделены красным цветом), и не смотря на отличие имен параметров, определяют они одно и то же: первый указывает размер буфера в байтах (в моём мини-пк установлен модуль памяти объемом 2Гб, так что размер буфера я указал равным 256 Мб, но можно было указать и побольше), второй — опредеяет в каких случаях используется кеширование (вариант 1 означает — для любых протоколов и сетей, как локальных, так и «глобальных»), и третий параметр указывает, во сколько раз быстрее программа должна пытаться считывать данные из источника по сравнению с битрейтом самого медиа-файла. Подробнее прочесть о том, что и как можно настраивать в файле advancedsettings.xml, вы можете в Wiki на сайте Kodi.

И вот теперь действительно ВСЁ!…

Ах да,

…вишенка на торте

Чтобы сделать скриншот, можно обратиться к программе Kodi из браузера с «соседнего» в сети компьютера. Для этого вы дожны выполнить запрос на адрес:

http://адрес_компьютера_с_kodi:8080/jsonrpc?request={"jsonrpc":"2.0","id":1,"method":"Input.ExecuteAction","params":{"action":"screenshot"}}

Пару важных замечаний. Во первых, для того, чтобы это работало, в настройках Kodi нужно «Разрешить удаленное управление по HTTP». Во вторых, при выполнении самого первого скриншота программа попросит вас указать папку, в которую их сохранять. И третье — самое грустное: это работает лишь в версиях 16.х и 17.х…

Новости программы Easyhotspot, июнь…ноябрь 2018

Новости — июнь…ноябрь 2018

С момента прошлой публикации в программе произошли следующие изменения:

  • Изменения в веб-интерфейсе Easyhotspot («черной админке»);
  • Обновления и исправления модулей
  • Обновления и изменения скрипта-инсталятора
  • Изменения в документации

Изменения в веб-интерфейсе Easyhotspot («черной админке»)

  • Версия фреймворка Codeigniter (на котором написана «черная админка») обновлена до 3.1.9. Что при этом изменилось в самом Codeigniter можно прочесть в «Change Log» на их сайте. В свою очередь, для Easyhotspot это — банальное поддержание актуальности базового фреймворка;
  • Немного изменены настройки редактора TinyMCE: добавлена кнопка прямого редактирования html-кода и добавлен вызов текстовых сообщений на украинском языке, когда он украинский язык выбран в «черной админке»;
  • Исправлена ошибка нового кабинета: в меню вызова страниц платежных систем кнопка для п/с Mixplat открывала ошибочную ссылку (несуществующую страницу);
  • Изменен формат экспорта данных из программы — добавлена библиотека PHPExcel, и все отчеты, которые ранее выводилось в виде CSV-файлов, теперь выводятся в формате MS Office Excel (2007);
  • Параллельно ряд отчетов был сделан «более красивыми». Например, экспорт данных из архива теперь выводится на трех листах одного xlsx-файла. На первом листе выводятся сведения об аккаунтах, на втором — о платежах, и на третьем — о сеансах доступа в интернет;
  • При экспорте в xlsx-файл из архива данных об аккаунте возникала ошибка создания «многостраничного» файла электронной таблицы, ЕСЛИ В БАЗЕ НЕ БЫЛО СВЕДЕНИЙ О «ПОКУПКЕ». Ошибка исправлена;
  • Обновлен отчет о ваучерах при экспорте в xls-файл. Если ранее в нем выводились только логин и пароль, то теперь список параметров расширен, и в него входят такие сведения: Номер, Логин, Пароль, Имя Тарифного пакета, Дата и время создания ваучера, MAC-адрес клиента, Данные из графы «Паспорт», Дата и время активации ваучера, Дата и время окончания срока годности ваучера, Суммарное время доступа в интернет по ваучеру, Суммарный объем трафика, потребленный ваучером, ID хотспота (NASID);
  • Попутно была обнаружена и устранена ошибка, которая ранее во время экспорта (еще в CSV) результатов работы платежных модулей могла приводить к удалению из базы этих данных (уже после их экспорта), даже если администратор не ставил «птичку» о желании такого удаления;
  • Была обнаружена и исправлена ошибка редактирования «клиента с оплатой по счету» (postpaid). Для того, чтобы она проявилась, нужно было, чтобы сначала (когда-то ранее) в программе приключился глюк. Суть ошибки заключалась в следующем: Freeradius при проверке авторизации клиентов в том числе использует данные из таблицы radcheck. Одной из таких записей, размещенных в таблице radcheck, является пароль клиента. При редактировании учетной записи клиента с оплатой по счету код биллинга обновлял запись с паролем в таблице radcheck. Но в момент обновления сам факт наличия в базе radcheck такой записи (с паролем) биллинг не проверял. В нормальной ситуации все происходило успешно, и отредактированный клиент потом успешно авторизовался по новому паролю. Но отношение самого сервера MySQL к обработке запроса на обновление записи звучит так: «да, запрос на обновление был получен и выполнен. но, если самой обновляемой записи при этом не было, мы это ошибкой не считаем» 🙂 … В итоге ошибка проявлялась лишь В ТОМ СЛУЧАЕ, если по каким-то «неизвестным причинам» из таблицы radcheck (когда-то ранее) уже пропала запись о пароле клиента. И вот тогда — обновляй, не обновляй аккаунт клиента в биллинге, а пароля у него в таблице radcheck так и не появлялось! И в итоге такой клиент авторизоваться больше уже не мог и постоянно получал отказ. Ошибка исправлена! И, повторюсь, в нормальной ситуации эта ошибка вообще не проявлялась…
  • При редактировании (ОБНОВЛЕНИИ) настроек фирмы-агрегатора для функции отправки служебных СМС у клиента происходила ошибка — новые данные не записывались в базу программы (у себя эту ошибку так и не смог воспроизвести). Был изменен код функции (сам алгоритм записи настроек в базу), ошибка «ушла»;
  • В код биллинга была добавлена функция переключения ваучеру тарифа с «первого» на «второй» по истечении лимита, отведенного «первым» тарифным пакетом. Что дает этот «финт»? Такой себе «двухскоростной» режим обслуживания! Вы должны будете создать два тарифа: первый — «быстрый и недолгий», и второй — с длительным доступом, но с низкой скоростью. Затем создаете ваучер первого тарифа и даете его клиенту. Клиент по такому ваучеру сначала пользуется быстрым интернетом в течение какого-то времени, и по истечении номинала первого тарифа его отключит от интернета. Описываемая тут функция найдет ваучер «первого» тарифа с израсходованным номиналом, и сменит ему тариф на «второй». Клиент подключится к интернету снова, но уже на низкой скорости. И в таком медленном режиме он сможет пользоваться интернетом до тех пор, пока не израсходует «номинал» второго (более длинного) тарифа;
  • В биллинг добавлена функция, которая выгружает на указанный в (её) настройках SFTP-сервер xlsx-файл со сведениями обо всех сеансах доступа в интернет за предыдущий день, включая и сведения из графы «паспорт» для соответствующего аккаунта (в эту графу автоматизированные модули Easyhotspot-а вносят номер мобильного телефона клиента);
  • В список агрегаторов функции отправки служебных СМС добавлена фирма АЛЬФАSMS (Украина);
  • Немного изменен макет страницы авторизации, в тех случаях, когда она выводит «промежуточные сообщения» (такие как «Подключаемся…» и т.п.). Текст сообщений теперь отцентрирован по вертикали внутри div-а, выводящего эти сообщения;
  • Небольшие обновления во внешнем виде «чёрной админки» Easyhotspot (правка CSS-файлов: внесение изменений, небольшая оптимизация);
  • Исправлена функция показа рекламы после авторизации (а точнее — приведена к тому же принципу, что и выписка гостевых ваучеров — имя «гостевого тарифа» для проверки берется не из файла настроек (conf.txt), а из базы биллинга (выбирается т.н. «гостевой тариф», привязанный к данному NASID);
  • Изменены настройки размещения лог-файлов, генерируемых веб-приложением Easyhotspot. Теперь они располагаются в папке /var/www/easyhotspot/application/logs;
  • В процедуру ротации лог-файлов добавлен файл настроек, обязывающий раз в неделю проводить ротацию логов веб-приложения Easyhotspot (всех логов, найденных в папке /var/www/easyhotspot/application/logs);

Обновления и исправления модулей

  • Переписан модуль СМС-авторизации! Теперь он предлагает два способа авторизации клиентов — либо по паролю, присылаемому в СМС, либо по звонку на номер, указанному хотспотом. Кроме того, функции модуля были разделены между самим биллингом и страницей авторизации. Отдельное веб-приложение теперь не используется, а номер своего телефона клиент теперь вводит непосредственно в меню авторизации хотспота. Подробнее можно прочесть на странице с описанием модуля или в инструкции к нему;
  • В модуль Робокассы внесено изменение — убрана отправка символа валюты (RUB) при проведении платежей в рублях. В соответствии с текущей версией документации п/с Робокасса, платежи итак осуществляются в рублях и отправка информации о валюте — излишняя;
  • Исправлена ошибка в платежном модуле Onpay: при формировании ваучера модуль вписывал пароль с устаревшим аттрибутом User-Password. В современных версиях FreeRDIUS данный аттрибут вызывает ошибку, и клиент не может авторизоваться. Исправлено на рекомендованное Cleartext-Password. Клиенты успешно авторизуются по купленным ваучерам.
  • Пришло уведомление от платежной системы Liqpay о том, что с 01.07.2018 они окончательно отключают автоматическую переадресацию запросов с домена LiqPay.com на LiqPay.ua. Изменение адреса страницы платежной системы было внесено в код модуля;
  • Обновлен (а точнее — переписан заново) модуль обслуживания по СМС, отправляемым на т.н. «короткие номера». Теперь модуль написан на php (был — на perl). Страница Тарифов модуля теперь адаптируется под экраны мобильных устройств. Владельцы мобильных устройств могут, нажав кнопку, автоматически переходить в приложение отправки для СМС, куда уже будут вписаны и требуемый «короткий номер», и текст сообщения! Все подробности можно прочесть на обновленной странице с описанием модуля СМС («короткие номера»), либо в инструкции к нему;

Обновления и изменения скрипта-инсталятора

  • В системе полностью убрано использование perl-модуля Net::Ping::External. Это обусловлено тем, что в новых версиях дистрибутивов данная библиотека будет недоступна. Как показал поиск, причина изъятия указанной библиотеки заключается в том, что у нее были обнаружены уязвимости безопасности, которые разработчик не устраняет (и уже давно, благодаря чему складывается впечатление, что он просто забросил свою программу). Ранее в биллинге Easyhotspot библиотека Net::Ping::External использовалась дважды: во первых, в скрипте страницы авторизации с помощью ping МОГЛА выполняться проверка доступности интернета (по умолчанию была выключена). С другой стороны, скрипт контроля роутеров, обслуживаемых сервером Easyhotspot, выполнял ping роутеров, от которых были получены запросы. Первое «применение» — как мне кажется, фактически не использовал никто. И даже больше — реально это было лишено смысла, т.к., если у хотспота отсутствует доступ к интернету, то переадресация неавторизованнных клиентов на страницу авторизации не работает. В итоге, было принято решение полностью убрать из кода страницы авторизации как использование самой библиотеки Net::Ping::External, так и проверки доступности интернета с помощью ping. Для второй задачи было найдено альтернативное решение. Скрипт контроля роутеров был вписан в сам Easyhotspot (в «черную админку»), функция ping также легла на нее же (с использованием уже языка php), а вместо старого perl-скрипта была написана «заглушка», которая просто переадресовывает запросы на новый адрес проверки;
  • Выход дистрибутива Ubuntu 18.04 LTS послужил поводом для радикального обновления скрипта-инсталятора! С учетом того, что дистрибутив Ubuntu 18.04 LTS выпускается только в 64-битной версии, программу Chillispot устанавливать на него стало бесполезным (Chillispot не работает на 64-битных ОС!). И в итоге получалось так, что Easyhotspot, установленный на Ubuntu 18.04 LTS, мог бы работать только в «варианте 3» (удаленный сервер-RADIUS для управления «внешними» роутерами). Инсталятор был изменен так, что теперь на сервер Easyhotspot, если он используется в качестве шлюза локальной сети хотспота («варианты 1 и 2»), устанавливается не устаревший Chillispot, а его обновленный «форк» — Coova-Chilli! При этом приложение Coova-Chilli компилируется из «исходников» непосредственно на самом сервере, что позволяет устанавливать его как на 32-битных ОС, так и на 64-битных! Благодаря внесенным изменениям (с одной стороны) Easyhotspot на дистрибутив Ubuntu 18.04 LTS теперь можно также устанавливать в любом из вариантов! А с другой стороны — сервер Easyhotspot в «вариантах 1 и 2» теперь может быть установлен на 64-битную версию и иных дистрибутивов;
  • В скрипт-инсталятор добавлена новая функция. В «черной админке» для отображения лога авторизации используются разные команды для разных версий сервера FreeRADIUS, установленного в биллинге. Теперь скрипт-инсталятор прописывает цифру, соответствующую версии FreeRADIUS-а, в файл конфига веб-интерфейса Easyhotspot, и благодаря этому биллинг сам выбирает корректную команду для отображения лога авторизации (раньше команду нужно было выбирать вручную — править вручную файл конфига);

Изменения в документации

Обновлена инструкция «Mikrotik и Easyhotspot». В инструкцию добавлена информация о настройке NASID. Расширена информация по поводу HTTPS-авторизации, добавлены разъяснения.  На основании информации, изложенной в интернете, был написан дополнительный скрипт, который в комплексе с рядом дополнительных мер позволяет заставить продукцию Apple открывать страницу авторизации хотспота не в CNA, а в Safari (т.е., в полноценном браузере).

Обновлена инструкция «Индивидуализация вашего хотспота». В инструкцию добавлены такие разделы:

  • Автоматический показ меню авторизации сразу же
  • Запрет меню авторизации «прятаться»
  • Изменение сложности логина и пароля, генерируемых программой

Просмотреть все эти изменения в действии можно на сайте демо-версии модифицированной программы Easyhotspot (логин/пароль Кассира: vcool/vcool123, логин/пароль Администратора: admin/admin123)

На всякий случай, напоминаю, что все эти изменения относятся именно к модифицированной версии программы Easyhotspot, которую можно приобрести на странице онлайн-продажи.

Список предыдущих анонсов новостей программы Easyhotspot доступен тут.

Новости программы Easyhotspot — февраль 2018

С момента прошлой публикации в программе произошли следующие изменения:

  • Изменения в веб-интерфейсе Easyhotspot («черной админке»);
  • Обновления и исправления у страницы авторизации
  • Новые модули
  • Обновления иных модулей
  • Обновления и изменения скрипта-инсталятора
  • Написан новый кабинет пользователя
  • Изменения в документации

Читать далее «Новости программы Easyhotspot — февраль 2018»

Новости Easyhotspot — июль 2017

С момента прошлой публикации «много воды утекло»! И так как новостных сообщений не было давно, могло создаться впечатление, что «бобик сдох» (развитие программы прекращено). На самом деле в программе произошли глобальные и важные изменения, которые просто отняли много времени! Итак, вот список изменений, произошедших в программе:

  • Веб-интерфейс Easyhotspot перенесен с фреймворка Codeigniter версии 1.5.4 на версию 3.1.2
  • В веб-интерфейс биллинга Easyhotspot внесен ряд изменений, дополнений и улучшений;
  • Обновлена страница авторизации
  • Обновлен модуль СМС-авторизации
  • Обновления платежных модулей
  • В скрипт-инсталятор внесен ряд изменений
  • Изменения и исправления в прочих скриптах
  • Изменения в документации

Веб-интерфейс Easyhotspot перенесен с фреймворка Codeigniter версии 1.5.4 на версию 3.1.2

Фактически, выпущенный «давным-давно» Codeigniter версии 1.5.4 с каждой новой версией PHP требовал все большего количества «костылей», замен «устаревших» и отмененных функций, подавления каких-то «предупреждений», «извещений» и т.п. «Масло в огонь подливал» еще и сервер баз данных MySQL, который тоже (с версии 5.7.х) начал более строго относится к формируемым запросам в базу. Поэтому, в первую очередь данное обновление является своеобразным «заделом на будущее», т.к. решает проблему работы биллинга под управлением последних версий PHP, MySQL и т.д., которые уже вовсю используются в новых версиях дистрибутивов Linux. Предполагаю, что в дальнейшем «ареал» использования новых версий данного ПО будет только расширяться. Поэтому, фреймворк и был заменен новой версией. Использование новой версии фреймворка повлекло за собой использование и новой системы авторизации в биллинг (входа в саму «черную админку» EasyHotspot). Был выбран скрипт Ion Auth, который в свою очередь, наложил «ограничение снизу» на версию PHP, используемую сервером биллинга. Теперь версия PHP на сервере биллинга должна быть не ниже 5.3.1.

По той же самой причине (корректная работа с PHP версии 7.0) была заменена библиотека, используемая для рисования «круговой диаграммы» на странице статистики ваучеров. Вместо «старой» Google Graph (про которую сам Google написал у себя на странице, что она «более не доступна») теперь используется «новая» Google Charts. По факту — делают они практически одно и то же, рисуют диаграмму тоже практически одинаковую (3D это я просто включил «прикола ради»), НО сам код библиотеки, использованной для взаимодействия с сервисами Google написан в соответствии с новыми «пожеланиями/правилами» PHP, благодаря чему у PHP версии 7.0 он уже не вызывает warning-ов об использовании «устаревших» методов.

На домашней странице Администратора в список информации о системе была добавлена информация и об используемых версиях ПО (чтобы вы сразу могли видеть, новая у вас программа или «не очень» ☺):

В веб-интерфейс биллинга Easyhotspot внесен ряд улучшений, дополнений и исправлений:

  • К уже имевшимся двум вариантам языка интерфейса (русскому и английскому) была добавлена поддержка еще одного — украинского. Кроме того — была убрана «жесткая» (фиксированная) настройка языка интерфейса «черной админки». Выбор языка теперь осуществляется по «отзыву» браузера пользователя (точнее — у ВСЕХ браузеров есть такой параметр в настройках, как «предпочитаемый язык просмотра страниц в интернете»). В итоге, если ваш браузер сообщает, что вы «предпочитаете» использовать русский язык — то Easyhotspot выведет вам интерфейс на русском языке. Если «предпочитаете» использовать украинский язык — получите Easyhotspot на украинском. Во всех остальных случаях — получите английский язык интерфейса. Данный алгоритм мог бы снижать удобство пользования для тех пользователей, чьи языки не попадают в число вышеперечисленных (и кому программа подставляла бы английский «по умолчанию»), но при этом сами пользователи предпочли бы английскому другой (например, русский). Чтобы этого не происходило, в программу были добавлены кнопки принудительного выбора языка. Благодаря им пользователь сможет сам ПРИНУДИТЕЛЬНО указать желаемый язык интерфейса «черной админки» (из числа трех, приведенных выше). Его выбор будет сохранен в cookie, и впоследствии интерфейс Easyhotspot будет выводиться ему на выбранном языке, а не на устанавливаемом автоматически.
  • Добавлена функция поиска по таблице Raddact (сведения обо всех сеансах всех активных пользователей). Функция полезна тем, что позволяет искать информацию о сеансах клиентов и ваучеров, еще не попавшую в архив программы. Напоминаю, что в архив эти данные попадают лишь после выполнения любого из следующих действий: удаления аккаунта клиента (с оплатой по счетам), выписки счета клиенту (с оплатой по счетам) или удаления ваучера. По этому, поиск по архиву раньше ничего не показывал об аккаунтах (как ваучеров, так и клиентов с оплатой по счету), которые все еще активны на момент поиска;
  • Реализован ЕДИНЫЙ (да еще и с локализацией единиц измерения!) набор скоростей, использующийся в программе повсеместно (в том смысле, что он один используется «везде, где нужно»). В первую очередь это удобно тем, что теперь при желании нет нужды настраивать кучу этих наборов скоростей «поштучно» в самых разных местах (файлах) программы, а достаточно откорректировать их в одном месте, и изменения тут же отразятся везде;
  • Изменен макет (внутренняя html-разметка) страницы, используемой при печати «пачки» ваучеров. Благодаря этому прекратились хаотичные смещения некоторых отдельных ваучеров относительно остальных. Теперь все «ровно и красиво — и ряды, и колонны»;
  • Была исправлена ошибка во встроенной в Easyhotspot функции проверки номеров телефонов, благодаря которой проверку успешно проходили неверно введенные номера, если они начинались с 7, но пользователь вводил не 11 а 12 цифр;
  • Не было печали, но тут какой-то «чудак на букву м» начал терзать «черную админку» на демо-сервере на предмет взлома методом «поиска команд мускула» и т.п.. Админка «выжила», лишь только лог ошибок мускула распух. Подумалось, почему бы тогда не ограничить набор вводимого «по самое не могу» (вдобавок к стандартным функциям типа mysql_escape_string и т.п.). В итоге во всех формах поиска было добавлено принудительное «кастрирование» поисковой фразы до шаблона «буквы/цифры/дефисы/подчеркивания». Все остальное тупо множится на ноль. В дополнение к этому, были внесены дополнительные изменения в настройки параметров функции form_validation, также значительно ограничивающие возможности ввода в поисковые формы всякой ереси…
  • В биллинг добавлена функция логирования действий, осуществляемых пользователями (именно персоналом хотспота — кассирами, админами, суперадминами) в программе («черной админке»). Теперь вы легко сможете доказать кассиру, что он, например, удалил ваучер, выручку за который присвоил себе;
  • В меню платежных систем при экспорте данных в CSV-файл добавлена «птичка» — «Удалить после экспорта». Отметка в ней позволяет удалять из базы записи о заказах, попавших в отчет. Ваучеры этих заказов «удаляются» в архив (т.е. данные о них не удаляются абсолютно полностью, а вместо этого переносятся в архив программы);
  • В списке тарифов для обслуживания платежной системой добавлено извещение, если для тарифа не установлены описания (модули могут давать сбои в таких случаях);
  • В меню платежных систем на кнопки удаления тарифов добавлены запросы, требующие от пользователя подтверждения данного действия;
  • В скрипт регулярных действий добавлена процедура, удаляющая из баз платежных систем незавершенные заказы, которые были созданы ранее, чем 31 день назад (т.е., те заказы, у которых клиент кнопку выбора тарифа нажал, а платить не стал, в базе они отображаются со статусом «В обработке»).

Обновлена страница авторизации

  • Полностью изменен макет страницы авторизации! В первую очередь преследовалась цель «минимизации» присутствия на ней элементов меню хотспота. Все это — ради того, чтобы клиенту ничто не мешало видеть вашу «страницу-подложку»! В итоге, на странице («в покое») присутствует одна лишь кнопка «Меню», по нажатию на которую клиенту выводятся формы для ввода логина-пароля, бесплатного «гостевого» входа, список доступных платежных систем и т.д. Вместо того, чтобы пересказывать все нюансы, мне проще будет показать вам саму «живую» страницу авторизации: вот ссылка (открывайте и смотрите)!
  • В связи с использованием в программе функции «унификации mac-адресов», в скрипт страницы авторизации также был добавлен код, приводящий mac-адреса к единому виду aa-bb-00-11-22-ff (то есть, все буквы — строчные, разделитель октетов — дефис);
  • Обновлены как код страницы авторизации, так и код самого биллинга Easyhotspot для того, чтобы функция автоматической авторизации клиентов, с одной стороны, перестала зависеть от cookies, а с другой стороны — работала как для «ваучерных» клиентов, так и для «клиентов с оплатой по счету»;
  • Исправлена ошибка, заключавшаяся в том, что при одновременном использовании функций СМС-авторизации и СМС-подтверждения (бумажных) ваучеров меню СМС-авторизации «перекрывало» окно «СМС-подтверждения»;
  • Скрипт страницы авторизации для Mikrotik был отредактирован с целью возможности корректной работы при использовании хотспотом https-авторизации. Что это дает? HTTPS-авторизация в Mikrotik-ах позволяет корректно перехватывать запросы неавторизованных клиентов и отправлять их на страницу авторизации даже в тех случаях, если они пытаются открывать https-ресурсы в интернете («известная» проблема всех captive-portal-ов). Учтите, что для использования этой функции вам потребуются ssl-сертификаты. Сама переадресация будет работать, даже если сертификаты вы будете использовать «самоподписные», но при каждом запросе браузеры клиентов будут вопить о том, что сертификаты — «левые» («фишинг»). Поэтому, для нормальной работы сертификаты лучше будет купить честные…

Обновлен модуль СМС-авторизации

  • В модуле СМС-авторизации запросы от модуля к программе Easyhotspot переведены с функции file_get_contents на использование curl. Также, добавлено принудительное (неотключаемое) логирование ошибок curl в случае, если модуль не смог «достучаться» до программы Easyhotspot (ошибка 905);
  • У функции отправки служебных СМС из списка агрегаторов удален Protelecom и вместо него добавлен SMSProfi;
  • В список агрегаторов функции «отправки служебных СМС» добавлены два новых — SMS Gatekeeper и Chudotelecom;
  • Для отправки «служебных СМС» добавлена поддержка программ ProfiSMS и Gammu-Smsd (эти программы осуществляют отправку СМС не через «фирмы-агрегаторы», а через GSM/3G телефон/модем, подключенный непосредственно к серверу биллинга);

Обновления платежных модулей

В ряде платежных модулей исправлена ошибка, благодаря которой, в случае включения «привязки списка тарифов к NASID», на странице платежного модуля полностью пропадал список предлагаемых клиенту тарифов.

Слегка «подрихтован» код ряда платежных модулей (Assist, Liqpay, Onpay, Paypal, Robokassa, Wallet-One, Yandex). Изменения касались только внешнего вида на мобильных устройствах, сам функционал не менялся.

Обновлен модуль приема оплат с кредитных карт через платежную систему Liqpay:

  • Теперь модуль использует новую версию API Liqpay — 3.0;
  • Модуль был переписан на php (вместо perl);
  • В модуль включен механизм смены языка интерфейса («из коробки» модуль имеет 2 встроенных языка — русский и английский, в документации описан механизм добавления других);
  • В модуль добавлена возможность отключить ввод телефона клиента;
  • В модуль добавлена возможность «помесячной» оплаты для «постоянных» клиентов («клиентов с оплатой по счету»);
  • В модуль добавлен режим тестирования;
  • В модуль добавлена возможность включения DEBUG режима;

Изменения и исправления в скрипте-инсталяторе:

  • Прислали очередной формат имени интерфейса, «придуманного» Ubuntu, который не проходил проверку шаблона в скрипте-инсталяторе (enp4s0f0). Скрипт исправлен — отредактирован шаблон;
  • В скрипт-инсталятор добавлена процедура, которая настраивает и активирует использование сервером FreeRADIUS «функции унификации mac-адресов» (если такое возможно);
  • Скрипт инсталятор теперь определяет объем ОЗУ сервера и устанавливает максимальный размер памяти, выделяемый скрипту PHP, равным его половине;

Изменения и исправления в прочих скриптах:

  • Исправлена ошибка в скрипте формы обратной связи. Ранее в нем поле ввода текстового сообщения имело «html-имя» ads_text и точно такой-же id. В результате программы (включая и плагины браузеров), блокирующие рекламу (например, Ad-Block), «прятали» это поле. И клиент попросту не мог ввести текстовое сообщение — не куда было! Идентификаторы исправлены на такие, что не вызывают такой реакции у программ типа Ad-Block, и теперь поле для ввода текстового сообщения клиенту видно «без проблем»;
  • Изменен скрипт страницы «формы обратной связи». В него добавлена возможность включения двух дополнительных полей — телефона и адреса e-mail (то есть, включенными могут быть как одно (любое) из двух указанных полей, так и оба сразу, а также — ни одно из указанных полей). Если эти поля включены, ввод информации в них является обязательным для клиента. Очень помогает администраторам в тех случаях, когда клиент присылает сообщение, а куда ему отвечать — написать в нем забывает;
  • У скрипта архивации баз данных изменен формат добавления даты в имя архива. Раньше было ДД-ММ-ГГГГ, теперь стало ГГГГ-ММ-ДД (благодаря чему теперь визуально видна сортировка файлов в «правильном» порядке);
  • Исправлена ошибка скрипта, автоматически авторизующего ваучерных клиентов. Ранее скрипт использовал проверку только срока годности ваучера и в ситуациях, когда номинал ваучера уже истек, а срок годности — еще нет, скрипт «зацикливался», пытаясь постоянно авторизовать этого клиента;

Изменения в документации

В связи с обновлениями в программе были обновлены следующие документы:


Просмотреть все эти изменения в действии можно на сайте демо-версии модифицированной программы Easyhotspot (логин/пароль Кассира: vcool/vcool123, логин/пароль Администратора: admin/admin123)

На всякий случай, напоминаю, что все эти изменения относятся именно к модифицированной версии программы Easyhotspot, которую можно приобрести на странице онлайн-продажи.

Список предыдущих анонсов новостей программы Easyhotspot доступен тут.

Новости программы Easyhotspot — 2016

С момента прошлой публикации в программу были внесены такие изменения:

В веб-интерфейсе Easyhotspot исправлены такие ошибки:

  • Исправлена ошибка возникавшая, если из программы удалить всех кассиров. В таком случае сервер php выдавал два сообщения — один notice и один warning;
  • Исправлена «ошибка», благодаря которой экспорт части статистики (в csv-файлах) отказывался открывать Microsoft-овский excel. Баг этот, правда, был не мой, а Microsoft-овский, см. по ссылке: http://support.microsoft.com/kb/323626;
  • Исправлена ошибка постраничного вывода выписанных счетов в меню Администратора
  • Исправлена ошибка постраничного вывода списка кассиров, проявлявшаяся лишь в тех случаях, когда суммарное число персонала в программе Easyhotspot (Кассиров, Админов и Суперадминов) превышало установленное в настройках колличество строк для постраничного вывода (по умолчанию = 10);

В веб-интерфейс биллинга Easyhotspot внесен ряд изменений, дополнений и улучшений:

  • В программу добавлена возможность импорта «Клиентов с оплатой по счету» из XML-файла;
  • В списке ваучеров добавлен вывод popup-окна при щелчке по имени Тарифного пакета. В открывающемся popup-окне отображается сводка параметров Тарифного пакета;
  • В меню Тарифов добавлено всплывающее предупреждение, которое выводится, когда для создаваемого (или редактируемого) Тарифного пакета назначается привязка к ID хотспота и/или «График обслуживания»;
  • При поиске ваучеров поиск теперь осуществляется в том числе и по данным из колонки «пароль» (это полезно с оглядкой на некоторые платежные модули, которые выдают клиентам в качестве пароля номера их телефонов, в итоге — ваучер клиента теперь можно найти и по номеру телефона тоже);
  • В код были добавлены проверки того что, в php не запрещена функция exec, и в самой ОС установлен пакет lsb-release. Эти функции используются для вывода информации об ОС, на которой установлен Easyhotspot. В случае не соответствия указанным условиям теперь выводится popup-окно с указанииями, а не системные сообщения об ошибках сервера php;
  • В процедуру отправки «служебных СМС» добавлена поддержка агрегатора СМС_Центр (smsc.ru);
  • В списке служебных СМС добавлена кнопка для удаления сообщений. Кнопка отображается ТОЛЬКО ДЛЯ НЕДОСТАВЛЕННЫХ СМС, т.к. ее цель — лишь удаление тестовых СМС, которые администраторы умудряются насоздавать, пока настраивают их отправку;
  • В настройках платежных модулей добавлены кнопки для перехода на страницу настроек агрегатора, используемого для отправки служебных СМС с паролями;
  • В меню настроек платежных модулей добавлена проверка и вывод сообщения об ошибке, если администратор пытается при вводе адреса сервера хотспота указать http:// в начале строки…
  • В меню для редактирования описания тарифов в настройках платежных модулей теперь установлен и используется редактор TinyMCE;
  • В меню редактирования ваучера добавлена кнопочка [?] справа от списка с тарифными пакетами. При ее нажатии выводится всплывающее меню с описанием текущего выбранного в списке тарифного пакета;
  • В меню «Клиентов с оплатой по счету» изменен сам метод (чисто «внутренний механизм») генерации логина/пароля по нажатию соответствующей кнопки («незанятость» логина и пароля проверяется непосредственно в процессе генерации);

Обновлен модуль СМС-авторизации

Ключевые изменения:

  • В качестве логина модуль теперь выдает клиенту его телефон, а в качестве пароля — произвольно сгенерированную «абракадабру»;
  • Отправка СМС возложена на функцию отправки служебных СМС, включенную в программу Easyhotspot. Модуль теперь просто ставит СМС клиента в «очередь» программы;
  • Проверка номеров телефонов клиентов также перенесена в программу Easyhotspot. При этом, в программу внесен массив кодов стран-бывших республик СССР, плюс массивы кодов их операторов мобильной связи. Для успешного прохождения проверки номер телефона клиента теперь должен вводиться в международном формате;

Написан целый ряд новых платежных модулей

  • Модуль для обслуживания клиентов через п/с Assist;
  • Модуль для обслуживания клиентов через п/с Единая касса (Wallet One);
  • Модуль для обслуживания клиентов через п/с Яндекс.Касса;
  • Модуль для обслуживания клиентов через п/с Paypal;

В скрипт страницы авторизации внесен ряд изменений

  • Код javascript вынесен из кода perl в отдельный файл;
  • Для СМС-авторизации введена дополнительная функция «авто-логина»: скрипт находит в базе Easyhotspot имя и пароль, с которыми устройство с этим mac-адресом авторизовалось «в прошлый раз», и пытается снова авторизоваться с этими данными;
  • Для показаний счетчика времени, отсчитывающего длительность рекламы ПОСЛЕ авторизации, в стилях (CSS) включена анимированная смена цвета (переход от белого к черному и назад), что делает его заметным на фоне любой страницы;
  • У файла перадресации для Mikrotik добавлен параметр, благодаря которому для ваучеров с лимитом времени в popup-окне страницы авторизации отображается сколько времени осталось у клиента;
  • При формировании логина гостевых ваучеров добавлен NASID. Теперь один и тот же клиент (гаджет) в хотспотах с разными NASID получает разные «гостевые ваучеры» (те, которые используются кнопкой «Бесплатно»). Соответственно, в разных зонах хотспота он обслуживается с разными параметрами. Без этого нововведения могли возникать такие ситуации, при которых клиенту (например) выписывался «гостевой ваучер» хотспотом А с одним набором лимитов (низкой скоростью, малым временем и т.д. и т.п.) и через время, НЕ ПОЛНОСТЬЮ ИЗРАСХОДОВАВ этот ваучер, клиент уходил из зоны этого хотспота А. После чего этот клиент попадал в зону хотспота Б, где, допустим, лимиты скорости выше, а времени больше. Но система авторизовывала его по «гостевому ваучеру» хотспота А, и клиент получал худшие условия. Плюс ко всему, подсчет времени доступа в интернет для клиента ПРОДОЛЖАЛСЯ (т.е. учитывалось и то время, которое клиент израсходовал в зоне хотспота А). Теперь же в хотспотах с разными NASID одному и тому же клиенту генерятся разные ваучеры;
  • Всвязи с изменением, описанным в предыдущем пункте пришлось изменить и механизм блокировки ввода на странице авторизации «нежелательных» симовлов (пробелов, служебных и т.д.);
  • Добавлен арабский перевод для страницы авторизации;
  • У страницы авторизации в ссылки для вызова файлов с кодом javascript и стилями css добавлен «штамп даты и времени». Благодаря этому при обновлениях программы отпадает необходимость клиентам хотспотов очищать кеш браузеров (иначе браузеры используют не обновленные файлы, а храняшиеся в кеше старые). А так, благодаря добавлению к ссылке фрагмента кода вида «?201603241212», обновленные файлы с кодом javascript и стилями css автоматически «перезакачиваются» браузерами клиентов по-новой;

Изменения и исправления в скрипте-инсталяторе:

  • В очередной раз были подкорректированы шаблоны для «имен» сетевых адаптеров (чтобы скрипт нормально воспринимал варианты типа «enp0s8» и аналогичные);
  • Исправлена ошибка — ранее при ОБНОВЛЕНИИ страницы авторизации не переносились НЕКОТОРЫЕ параметры формы обратной связи. А именно — не переносилось старое имя отправителя письма (что «не на столько страшно»), и не переносился адрес получателя письма (что «намного хуже»). Ошибка исправлена;
  • Была корректно настроена процедура, которая в настройках веб-сервера apache меняет AllowOverride None на AllowOverride All. Ранее она справлялась с этой задачей только в настройках сервера apache версии 2.2.х, а в настройках apache 2.4.х — не производила подобную замену. В итоге, впоследствии при работе сервера настройки из файлов .htaccess сервером apache игнорировались. Теперь корректно меняется параметр AllowOverride для любого из вариантов сервера apache;
  • Для случая установки на Ubuntu 10.04 LTS добавлена команда, вписывающая в настройки репозиториев сервер oldreleases-ubuntu. Благодаря этому становится возможным установка и обновление ПО. (хотя. конечно, сам дистрибутив Ubuntu 10.04 LTS уже устарел и не поддерживается компанией Canonical, но тем не менее, Easyhotspot может быть по прежнему установлен на него);
  • В связи с тем, что Debian признал релиз 6.х (squeeze) устаревшим и полностью убрал из интернета его репозитории, установка сервера Easyhotspot на данную версию ОС Debian стала невозможной. Поэтому, в скрипт-инсталятор был добавлен «запрет» (новой) установки, если на сервере используется ОС Debian 6.х (squeeze). В то же время, возможность обновления самой программы Easyhotspot (на тех серверах, где она уже была установлена ранее) для данной версии данного дистрибутива была сохранена;
  • В связи с выходом нового дистрибутива Ubuntu 16.04 LTS были откорректированы и сама программа Easyhotspot, и скрипт-инсталлятор, и т.д. и т.п. В итоге корректно проходит и сама инсталляция, и последующая работа программы, установленной на сервер с данной ОС;

Изменения и исправления в прочих скриптах:

  • Исправлен скрипт «кабинета пользователя»: он не показывал заказы выписанные (ваучеры приобретенные) через платежные системы Onpay и Robokassa;
  • Скрипт, устанавливающий coova-chilli/обновляющий chillispot на coova-chilli (на локальном сервере), проверен (и подкорректирован) для новых дистрибутивов — Debian 8.0 и Ubuntu 14.04. Для Debian вообще ничего не пришлось менять, а для Ubuntu — лишь добавить новую версию в шаблон проверки. В остальном — все ОК, скрипт работает;
  • Отредактированы все скрипты, которые считывают параметры из файла /usr/lib/cgi-bin/conf.txt. В них была добавлена команда, отсекающая досовские окончания строк (в редакторе mcedit выглядят как  ^M   черного цвета). В результате — устранена причина по которой эти скрипты отказывались работать после правки конфига (conf.txt) в редакторах в Windows;

Просмотреть все эти изменения в действии можно на сайте демо-версии модифицированной программы Easyhotspot (логин/пароль Кассира: vcool/vcool123, логин/пароль Администратора: admin/admin123), или же то же самое, но с английским языком интерфейса

На всякий случай, напоминаю, что все эти изменения относятся именно к модифицированной версии программы Easyhotspot, которую можно приобрести на странице онлайн-продажи.

Список предыдущих анонсов новостей программы Easyhotspot доступен тут.

Новости программы Easyhotspot — июнь 2015

Изменен алгоритм, по которому Perl-скрипт для freeradius-a «привязывал» ваучер к mac-адресу

Были выполнены такие изменения:

  • Ранее perl-скрипт выполнял процедуру привязки при каждой авторизации, вне зависимости от того, был ли ваучер уже привязен к mac-адресу ранее или нет. Теперь процедура откорректирована, и привязка осуществляется только в случае, если в базе для ваучера еще не прописан mac-адрес;
  • Ранее привязка к mac-адресу происходила даже если клиент вводил неверный пароль. Теперь привязка осуществляется только в случае, если и логин и пароль, введенные клиентом, верны!

Исправлена ошибка постраничного вывода отчета о проданных ваучерах

Имевшаяся в программе ошибка не позволяла просматриватиь страницы со 2-й и далее, если список не умещался на одной странице.

Исправлена ошибка постраничного вывода отчета об израсходованных/просроченных ваучерах

Имевшаяся в программе ошибка не позволяла просматриватиь страницы со 2-й и далее, если список не умещался на одной странице.

В меню инкассации ваучеров на кнопку «Пометить все как оплаченные» добавлен дополнительный вопрос, предлагающий подтвердить указанное действие

Нечаянный клик по указанной кнопке «навсегда прятал» от Администратора список ваучеров (собственно, выполнялось то, что и должно — ваучеры отмечались как оплаченные и пропадали из списка). Теперь страница требует от Администратора подтвердить свои действия (нечаянное срабатывание исключено).

В меню ваучеров добавлены новые кнопки

Добавлены три новые кнопки. Эти кнопки управляют фильтрацией ваучеров, отображаемых в списке. Клик по первой кнопке включает отображение только активированных ваучеров. Клик по второй — и отображаются только не использованные ваучеры. Третья кнопка возвращает отображение списка в «исходное» состояние — отображаются все ваучеры, как уже активированные, так и еще не использованные.

При вызове меню редактирования ваучеров/клиентов/тарифов добавлена проверка на существование позиции, которую планируется редактировать

Функция эта, на самом деле, более полезная на демо-сервере, а также на серверах, которыми одновременно управляет довольно много человек (кассиров/админов). В таких случаях могли возникать ситуации, когда, например, один пользователь программы (будь то кассир или админ) удалил ваучер, а второй пользователь (другой кассир или же админ), у которого список ваучеров не успел обновиться, решил отредактировать этот же самый ваучер. В итоге, второй пользователь получал целый ворох сообщений об ошибках. Теперь при вызове формы редактирования ваучера (или же «клиента с оплатой по счету», или же Тарифного пакета) программа дополнительно проверяет — есть ли в базе запрошенный ваучер (или клиент, или тариф). Если искомая запись отсутствует, пользователю просто выводится сообщение об этом.

Дополнительно урезаны права Кассиру «доверие» которому установлено как «Не доверяем»

Теперь, если в настройках программы про «доверие кассирам» установлено как «Не доверяем», при редактировании ваучеров Кассирам запрещено менять и пароль, и Тарифный пакет ваучера (рабочей осталась лишь возможность отвязки ваучера от mac-адреса).

Написано небольшое API

В связи с участившимися вопросами о том, как внешние программы могли бы взаимодействовать с Easyhotspot (например, такими: «Может ли мой кассовый аппарат каким-то образом получить от Easyhotspot пароль от WiFi и распечатать его на чеке?») в программу было добавлено небольшое API — при обращении к нему (http POST-запрос) программа «отвечает» данные только что сгенерированного нового ваучера в формате XML.

В программу добавлена функция импорта ваучеров из XML-файла

В программу добавлена новая функция — импорт ваучеров из XML-файла. Процедура доступна Администраторам, для этого добавлена новая кнопка в списке Тарифных пакетов (в строке у каждого из тарифов), при наведении на кнопку появляется всплывающая подсказка «Импорт пар логин/пароль из XML-файла». При импорте осуществляется проверка на уникальность логинов. Если логин, который должен быть добавлен в базу, уже в ней имеется, то этот «неуникальный» логин (и соответствующий пароль) в базу не добавляются. По окончании процедуры выводится число успешно добавленных ваучеров и число ваучеров, которые импортировать не удалось. Также, выводится ссылка на файл с парами «логин/пароль», импорт которых не удался.

Формат XML-файла с ваучерами :

Пример XML файла с ваучерами для импорта в программу Easyhotspot

Реализована связка Mikrotik с Easyhotspot на все 100%

  • Написано соответствующее руководство по настройке роутеров Mikrotik;
  • Написаны необходимые дополнительные файлы, благодаря которым роутер Mikrotik использует не встроенную страницу авторизации (являющуюся венцом творения «минималистов»), а нормальную «многофункциональную» страницу авторизации модифицированного Easyhotspot-а (со всеми ее «плюшками» типа «страницы-подложки» /показа рекламы, как до, так и после авторизации / механизмами гостевго доступа и автологина / кнопками платежных систем, а также перехода в кабинет пользователя и т.д. и т.п.);
  • Написана «многофункциональная» страница авторизации модифицированного Easyhotspot-а в версии для Mikrotik (использующая их алгоритм авторизации);
  • В коде самой программы Easyhotspot во всех процедурах работы с мак-адресами в число допустимых символов добавлено двоеточие — «:» (дело в том, что mikrotik по умолчанию отправляет mac-адрес, разделяя октеты именно двоеточием);

В программу внесен целый ряд изменений всвязи с новыми требованиями российского законодательства

В связи с Постановлением Правительства Российской Федерации от 31.07.2014 № 758 «О внесении изменений в некоторые акты … (и т.д.)» отныне (цитата): «Оказание универсальных услуг связи по передаче данных и предоставлению доступа к сети интернет с использованием пунктов коллективного доступа осуществляется оператором универсального обслуживания после проведения идентификации пользователей. Идентификация пользователя осуществляется оператором универсального обслуживания путем установления фамилии, имени, отчества (при наличии) пользователя, подтверждаемых документом, удостоверяющим личность». В связи с этим в программе было выполнено следующее:

  • Добавлены поля для ручного ввода данных о паспорте как для «клиентов с оплатой по счету», так и для ваучеров. В самих списках (клиентов с оплатой по счету или ваучеров) паспортные данные не отображаются (там банально уже нет места для этого), но по ним возможен поиск;
  • Кроме того, добавлено архивирование всех данных аккаунта при удалении как ваучеров, так и клиентов с оплатой по счету, а также при выписке счетов, при удалении администратором израсходованных ваучеров после инкассации и т.д. и т.п. Дополнительно в программу добавлена форма для поиска по данным, хранящимся в этом архиве. Форма позволяет искать по самым разным данным, попавшим в архив, включая имя, паспортные данные, логин, пароль, mac-адрес, ip-адрес, тариф, дата, и многое другое. Результаты поиска могут быть экспортированы в CSV-файл как по отдельности для каждой из записей (кнопка (значок-иконка excel) присутствует в каждой из строк с результатами поиска), так и сразу всех записей, удовлетворивших критерию поиска (кнопка «Экспорт всех результатов поиска в единый CSV-файл» внизу под списком).;
  • Написан новый модуль к программе Easyhotspot, который отсылает СМС с паролем на мобильный телефон, номер которого клиенту нужно ввести на специальной странице, предложенной хотспотом. Дополнительной функцией этой же страницы является ознакомление клиента с правилами хотспота. Ссылка на мануал от модуля: Инструкция к модулю СМС-авторизации;

Ужесточен подход к «обязательности просмотра» рекламы клиентами

В функцию показа клиентам рекламы (до авторизации) были введены такие дополнительные изменения:

  • Отсчет времени показа рекламы начинается только после того, как страница с рекламой полностью загружена в iframe;
  • Отсчет времени показа рекламы приостанавливается, если клиент свернул браузер, перешел на другую закладку, переключился на другое приложение;

В результате клиент обязательно должен смотреть именно страницу рекламы в течение всего того времени, которое вы установили в настройках!

Изменен механизм выбора стилей страницы авторизации

Ранее стили выбирались скриптом на Javascript. Теперь для этого используются встроенные возможности CSS (а именно — функция @ media screen)

Написан новый платежный модуль — для белорусской платежной системы iPay

Данный модуль позволит вам организовать обслуживание клиентов вашего хотспота, при котором они смогут оплатить доступ в интернет любым из способов, предлагаемых платежной системой iPay. Платежная система iPay позволяет* клиентам оплачивать счета:

  • с помощью простой отправки СМС со своих мобильных телефонов;
  • онлайн оплаты на сайте iPay для клиентов мобильных операторов МТС и life:);
  • через систему «Расчет» (ЕРИП). Оплата может производиться в инфокиосках, банкоматах, интернет и SMS-банкингах в банках участниках системы «Расчет»;

Подробнее вы можете прочесть на странице, посвященной данному модулю

Обновлен модуль приема платежей по СМС (через короткие номера)

В модуль добавлена поддержка украинского агрегатора СМС Биллинг. Данный агрегатор позволяет принимать платежи с помощью отправки клиентом СМС на указанные короткие номера.

Обновлен модуль приема платежей по кредитным картам (liqpay)

Обсновление связано с переходом самого сервиса Liqpay на новую версию API — с 1.2 на 2.0.

Обновлен скрипт-инсталятор

В скрипт-инсталятор внесено изменение: корректировке подверглись «шаблоны» имен интерфейсов, благодаря чему стало возможным использование имен вида eth0.100.

В биллинге реализован механизм для записи в базу информации об идентификаторе хотспота (NASID), с которого клиент получает доступ в интернет

Благодаря внесенным изменениям:

  • В базу данных программы (в список сеансов сервера FreeRADIUS) теперь записываются и идентификаторы (NASID) хотспотов, с которых клиенты получают доступ в интернет;
  • В итоге, теперь появилась возможность данную информацию (об идентификаторах хотспотов) выводить в списках, экспортировать в отчеты, использовать иными способами для поиска и анализа;

В программу добавлена функция отправки «служебных смс»;

В программу добавлена «рутина» для отправки СМС. Данный код выполняет следующие функции:

  • Возможность выбрать одного из четырех (на момент написания новости) агрегаторов и настроить данные учетной записи;
  • Отправка СМС «поставленных в очередь» (самой программой, модулями и т.д. и т.п.);
  • Отображение списка обработанных СМС, лога ошибок, возникающих при отправке;

В программу добавлена функция «пост-активации» ваучеров по СМС

Как все это выглядит:

  • Кассир генерит в программе обычные ваучеры (либо же Администратор импортирует из XML-файла новые ваучеры);
  • Клиент покупает ваучер и пытается по нему в первый раз выйти в интернет;
  • Хотспот не пускает клиента в интернет, вместо этого пишет ему в ответ сообщение типа «Этот ваучер еще не был активирован…. (и далее по тексту, пример — см. на рис. ниже)»;
  • Открывается форма, в которой клиенту предлагается ввести номер его мобильного телефона;
  • На телефон клиента отсылается СМС с кодом активации;
  • Клиенту открывается форма, в которой ему предлагается ввести полученный код активации;
  • Клиент вводит код активации, полученный в СМС, система пишет «Все, ваучер активирован, пробуйте авторизоваться повторно«.
  • Клиент повторно на странице авторизации вводит данные ваучера (даже не вводит, их страница авторизации «помнит» итак, а просто нажимает кнопку «Войти«) и т.к. ваучер уже активирован, беспрепятственно получает доступ в интернет;
  • Параллельно система записывает номер телефона клиента в базу данных, в поле, где хранятся паспортные данные;

Сообщение о том, что ваучер не активирован

В веб-интерфейс программы внесен целый ряд изменений и исправлений:

  • В папку вебинтерфейса Easyhotspot добавлен файл .htaccess с набором инструкций, принуждающих браузеры по возможности использовать картинки и пр. элементы оформления из собственного кеша. Это немного ускорило работу вебинтерфейса;
  • В списках сеансов для ваучера исправлена ошибка вывода информации о том, когда истекает срок годности ваучера (из-за ошибки показывало 2 янв 1970 г);
  • Для форм поиска реализована функция, которая запускает поиск по клику на значке «увеличительного стекла». Ранее надо было нажимать Enter на клавиатуре. Добавлено по просьбе владельцев планшетов (не имеющих кнопки Enter);
  • Добавлено отображение списка пользователей (кассиров, админов, суперадминов), вошедших в Easyhotspot (в т.н. «черную админку»). Выводит список тех, чьи сеансы «активны» (активным считается пользователь, выполнявший какие-либо действия в программе в течение последних 2-х часов). В списке показаны: время последней активности, логин и ранг (кассир/админ/суперадмин) пользователя, IP-адрес, с которого вошел пользователь, сведения о его браузере и ОС;
  • При поиске ваучеров поиск теперь осуществляется в том числе и по данным в колонке «пароль» (это полезно с оглядкой на последние платежные модули, которые выдают клиентам в качестве пароля номера их телефонов, в итоге — так их проще искать);
  • В меню Тарифов добавлено всплывающее предупреждение, которое выводится, когда для создаваемого (или редактируемого) Тарифного пакета назначается привязка к ID хотспота и/или «График обслуживания»;
  • На страницы настроек платежных модулей добавлены кнопки для перехода на страницу настроек агрегатора, используемого для отправки «служебных СМС» (с паролями);

В платежные модули добавлена функция «привязки к NASID»

Благодаря этой функции у платежнных модулей появилась возможность обслуживать клиентов, приходящих с разных хотспотов (с разными NASID) одним и тем же модулем (одной и той же страницей), но по разным Тарифным пакетам! То есть, страница выбора тарифов платежных модулей может быть настроена так, что она будет предлагать клиентам только те Тарифные пакеты, которые привязаны к тому ID-хотспота (или NASID, что фактически, является одним и тем же), который прописан в хотспоте, с которого клиент «пришел» на страницу модуля. Также, ID-хотспота, на котором была проведена процедура оплаты, будет выводиться дополнительной колонкой при отображении результатов работы платежного модуля как в самой программе Easyhotspot, так и при экспорте их в csv-файл.

В платежные модули добавлена функция экспорта результатов в CSV-файл

В платежные модули добавлена функция экспорта результатов в CSV-файл (этот файл впоследствии может быть открыт для анализа и/или редактирования в программах MS Excel, OpenOffice Calc или LibreOffice Calc). При экспорте администратору предлагается выбрать требуемый период времени (даты старта и окончания).

Добавлен простейший скрипт ротации файлов, выступающих в качестве «подложки»

В «коробку» с программой добавлена парочка простейших скриптов «ротации» адресов страниц, выступающих в качестве «подложки».

Первый файл меняет «подложки» в зависимости от времени суток (утро/день/вечер). В скрипте в качестве параметров указываются два времени (только часы), когда «заканчивается утро» и когда «заканчивается обед». Кроме того, указываются три адреса разных страниц: «что показываем утром», «что показываем в обед» и «что показываем вечером».

Второй файл (скрипт) по очереди меняет три разных «подложки» каждую минуту.

Изменена страница авторизации, для взаимодействия с базой теперь используется AJAX

У страницы авторизации были изменены механизмы, использующиеся для функции гостевого режима. В результат было достигнуто снижение нагрузки на сервер. Подробнее о том, благодаря чему это произошло:

  • Подключившись к хотспоту, но еще не авторизовавшись (не получив доступ в интернет) большинство клиентов гонят в хотспот (точнее, в интернет) целую волну запросов. Дело в том, что «унюхавши» интернет, целые толпы самых разных программ, таких как всевозможные агенты — фейсбуков, мейлов, обновлений софта и пр. тут же хотят попасть на свои сайты! А если на устройство еще и какой-нибудь вирус подсажен, то тут вообще «льется, что из водопроводной трубы»… И так как клиент еще не авторизован, то на КАЖДЫЙ такой запрос хотспот отвечает страницей авторизации.
  • Краткая ремарка о работе гостевого механизма — КАЖДОМУ клиенту, которому выводится страница авторизации, она генерит персональный гостевой ваучер. И данные этого ваучера (логин/пароль) подставляются в скрытую форму кнопки «Бесплатно». Чтобы, когда клиент нажимал эту кнопку, в базе изихотспота уже был готовый ваучер, по которому его сообственно и впускает потом в интернет. Ранее perl-скрипт, который формирует страницу авторизации, каждый раз при формировании страницы выполнял вся рутину (поиск по базе, создание нового гостевого ваучера, запись его в базу и т.д. и т.п.);
  • В старой версии скрипт лез в базу за данными гостевых ваучеров при КАЖДОМ обращении к странице авторизации, не зависимо от того, запросил ее сам пользователь с браузером или какой-нибудь агент поиска обновлений на PlayMarket-е какого-нибудь планшета с Android-ом;
  • В итоге, когда кто-то ломился в страницу авторизации, то при этом возрастало число обращений в базу данных (что является ЗАМЕТНОЙ нагрузкой). В качестве примера на рис. ниже показано как возросло число запросов к серверу (странице авторизации) при подключении к хотспоту всего одного ноутбука, у которого целых ворох установленных программ «ну очень сильно хотел обновиться»;
  • Теперь же (в обновленной варианте страницы авторизации) сама рутина «гостевых ваучеров» перемещена непосредственно в сам Easyhotspot, а страница авторизации просто обращается к ней за данными с помощью AJAX. Казалось-бы, процедура усложнилась? Возможно. Однако, AJAX — это использование Javascript, которого НЕТ во всевозможных брут-форсах, юзер-агентах всевозможных фейсбуков, «вкнотактов», «мейлов-ру» и иже с ними, персональных «обновлялках» программ и всевозможных плей-маркетах, и т.д. и т.п. Javascript — присутствует только в браузерах! Поэтому, чисто гостевая процедура будет запускаться ТОЛЬКО в случаях, когда реальный человек реально смотрит страницу в реальном браузере, что снижает число обращений в базу и как следствие — суммарную нагрузку на сервер;

Возрастание числа запросов страницы авторизации

Написан новый платежный модуль — для платежной системы Onpay

Данный модуль позволит вам организовать обслуживание клиентов вашего хотспота, при котором они смогут оплатить доступ в интернет любым из способов, предлагаемых платежной системой Onpay.

Подробнее вы можете прочесть на странице, посвященной данному модулю

Написан новый платежный модуль — для платежной системы ROBOKASSA

Данный модуль позволит вам организовать обслуживание клиентов вашего хотспота, при котором они смогут оплатить доступ в интернет любым из способов, предлагаемых платежной системой ROBOKASSA.

Подробнее вы можете прочесть на странице, посвященной данному модулю

В скрипт-инсталятор внесен ряд обновлений и исправлений

  • В очередной раз подкорректированы шаблоны для проверки имен интерфейсов (с какой-то радости 14-я Ubuntu вдруг стала присваивать имена и такого вида — p2p1);
  • При обновлении страницы авторизации теперь переносится из старых настроек в новые имя гостевого тарифного пакета;
  • При обновлении базы данных введены проверки, чтобы не выводились «пугающие» сообщения об ошибках добавления уже существующих таблиц и/или колонок в них;
  • Для скачивания пакета с программой Webmin теперь вписана ссылка на сайт именно самого Webmin-а. В результате — при установке скачивается самая последняя его версия, а не та, которая «когда-то была мной скопирована на свой сервер»;

Значительно обновлена инструкция «УСТАНОВКА И НАСТРОЙКА WI-FI ХОТСПОТА С ИСПОЛЬЗОВАНИЕМ CHILLISPOT, FREERADIUS И EASYHOTSPOT»

Всвязи с многочисленными изменениями в программе, была отредактирована инструкция «УСТАНОВКА И НАСТРОЙКА WI-FI ХОТСПОТА С ИСПОЛЬЗОВАНИЕМ CHILLISPOT, FREERADIUS И EASYHOTSPOT».

Обновлено руководство по работе в программе Easyhotspot;

Всвязи с изменениями в программе, была обновлена инструкция «Программа управления Wi-Fi хотспотом — Easyhotspot, Руководство по эксплуатации» (добавлена информация об отправке служебных СМС и т.д.). Инструкция доступна на странице ссылок.


Просмотреть все эти изменения в действии можно на сайте демо-версии модифицированной программы Easyhotspot (логин/пароль Кассира: vcool/vcool123, логин/пароль Администратора: admin/admin123), или же то же самое, но с английским языком интерфейса

На всякий случай, напоминаю, что все эти изменения относятся именно к модифицированной версии программы Easyhotspot, которую можно приобрести на странице онлайн-продажи.

Исправлена ошибка постраничного вывода отчета об израсходованных/просроченных ваучерах

«Типа UPS» для маршрутизатора

«Пообещала» страна периодически устраивать веерные отключения электроэнергии. Ноутбуки, смартфоны, планшеты  — вся эта домашняя «утварь» итак «на батарейках», а вот роутеры работают от сети 220V. И с этим надо было что-то делать! А то ведь обидно получается — когда свет выключают, ноуты и пр. работают и дальше, а интернет отваливается…

Первым делом почитал, что написано на сетевых адаптерах моих роутеров (их два: Dlink DSL-2500, получающий интернет по ADSL и включенный «бриджем», плюс Tplink TL-WR1043, управляющий всем «интернет-хозяйством»). Согласно этикеткам, блоки питания у моих роутеров были такие:

  • Адаптер от Dlink DSL-2500 — выходное напряжение 5 Вольт, ток до 1,5 Ампера;
  • Адаптер от Tplink TL-WR1043 — выходное напряжение 12 Вольт, ток до 1,5 Ампера;

Вот под эти исходные данные (параметры) и начал я городить свой «UPS».

Собственно, понадобилось мне приобрести всего три вещи.

Первая — блок питания PS1203B с функцией резервного питания от аккумулятора и монтажной коробкой:

box_and_power_suply

Подробные характеристики блока питания вы можете прочесть на сайте изготовителя. Если же вкратце, то примерно так:

  • Блок питания выдает 12 Вольт при токе до 3 Ампер;
  • Устройство имеет клемы для подключения резервного аккумулятора 12 V;
  • При пропадании сети 220V переключает нагрузку на аккумулятор;
  • Заряжает разрядившийся аккумулятор после восстановления питающей сети.

Вторым был куплен собственно резервный аккумулятор:

battery

Ту вообще все просто — напряжение 12 Вольт, емкость — 5 Ампер-часов. Кому нужны дополнительные подробности — добро пожаловать на сайт изготовителя!.

Ну и последняя покупка — импульсный регулируемый понижающий стабилизатор (чтобы из 12 Вольт сделать 5 Вольт):

Adjustable-DC-DC-Step-Down-Converter

Конкретный изготовитель сего чуда мне не известен (кроме страны происхождения 🙂 ), т.к. устройство было приобретено на сайте Aliexpress. Там же описаны и его характеристики.

Для финальной сборки UPS-а мне не понадобился даже паяльник — все монтажные клемы сделаны «под отвертку» (отпустил винт, вставил провод, затянул винт — всё!). На роутер Tplink TL-WR1043 питание было подано непосредственно с выхода PS1203B, а на роутер Dlink DSL-2500 — через понижающий стабилизатор. В стабилизаторе предварительно (до подключения к нему Dlink DSL-2500) было отрегулировано выходное напряжение (выставлено равным 5 Вольт).

Вот и вся «возня»!

Ну и напоследок — результаты тестирования: после того, как батарея была полностью заряжена, вилка «UPS»-а была выдернута из питающей сети (220 Вольт). На батарейном питании система из моих двух роутеров проработала 6 с половиной часов (по моему, вполне нормальный результат)!

Единственный «параллельный» вывод по результатам тестирования — работа системы в течение 6 часов от батареи емкостью 5 АЧ означает, что два моих роутера СУММАРНО потребляют менее 1 Ампера, и их комплектные блоки питания — «слегка» завышенной мощности…

Обновления в Easyhotspot — весна 2014

В программу были добавлены новые возможности:

В меню создания и редактирования Тарифных пакетов «гуманизирован» ввод срока годности

Ранее в программе ввод срока годности осуществлялся только в сутках. Если же была необходимость ввести значение равное, например, нескольким часам, нужно было вычислять дробное значение. Теперь ввод срока годности осуществляется более простым человеческим образом: нужно ввести число и выбрать из выпадающего списка единицу измерения.

admin_choose_expiration_units

Фиксированный список валют в программе заменен возможностью самостоятельно заводить, редактировать валюту(ы) Администраторами системы

Теперь в программе «по умолчанию» (сразу же после установки) отсутствует какая-либо предустановленная валюта! Администратор системы может добавить в список любое необходимое ему число валют. Внося валюту в список, Администратор указывает для валюты сокращенное наименование, полное наименование и код валюты в соотвествии со стандартом ISO-4217.

Admin_currency_list

В программу добавлена функция бана Клиентов по mac-адресу

В программу добавлен список mac-адресов, которым хотспоты будут отказывать в авторизации при любых обстоятельствах. Не важно — правильные данные вводит клиент при авторизации, или нет — хотспот всегда будет отвечать отказом в доступе! Разделение прав Кассиров/Администраторов применительно к данной функции реализовано следующим образом:

  • Кассир может вносить в список бана mac-адрес любого авторизовавшегося Клиента через меню просмотра пользователей подключенных «онлайн». Удалить mac-адрес из списка забаненых у Кассира нет возможности.
  • Администратор может добавить произвольный mac-адрес с помощью специального меню. Также, в своем меню Администратор может удалить любой mac-адрес из списка забаненых.

Admin-baned-mac-address-menu

Изменено поведение страниц, обновлявшихся автоматически

Ранее в программе было включено принудительное обновление всех страниц в меню Кассира каждые 3 минуты. Это создавало некоторое неудобство, например в случае создания Клиентов — сработавшее по таймеру автоматическое обновление могло прервать этот процесс, и все приходилось вводить по-новой. Теперь функция автообновления изменена:

  • Функция автообновления теперь присутствует только на нескольких страницах — «домашней» (обновляются сведения о загрузке сервера), Клиентов с оплатой по счету, Ваучеров , Клиентов, подключенных к хотспоту (в последних трех случаях обновляются данные о потреблении клиентами трафика, времени и т.д. и т.п.).
  • На страницах Клиентов с оплатой по счету автообновление автоматичесмки отключается, если хоть в одно (любое) из полей: имени клиента, его логина, пароля, были введены какие-то значения (в итоге, автообновление теперь не мешает создавать новых Клиентов).
  • На странице Ваучеров автообновление автоматически отключается, если Кассиром было введено число новых ваучеров для создания.

Кнопки скачивания в CSV-формате списков и Клиентов, и Ваучеров перенесены

Программа и раньше предоставляла возможность скачать в CSV-формате списки как Клиентов с оплатой по счету, так и ваучеров. Но кнопки эти не имели надлежащего оформления, и были размещены нелогично. Теперь кнопка для скачивания списка Клиентов с оплатой по счету находится в меню Клиентов с оплатой по счету (в верхнем правом углу). А кнопка скачивания списка ваучеров в CSV-формате — находится в врехнем правом углу меню Ваучеров, где ей логичнее всего находиться. Кнопки теперь оформлены в виде иконок, изображающих «spreadsheet» (экселевский файл) и имеют соотвествующие всплывающеи подсказки. Следует также добавить, что Кассирам эти кнопки видны только лишь в том случае, если параметр «Доверие кассиру» в программе установлен как «Да». Администраторам кнопки видны в любом случае.

Программа полностью изменена в вопросах выписки счетов

Изменения в этой части программы выполнено так много, что их описание просто не умещается в формат новостной заметки. Вот наиболее значимые из них:

  • Для Клиентов с оплатой по счету добавлены два новых типа учета: «посуточный» и помесячный»;
  • Программа теперь позволяет одному Клиенту выписывать и хранить в базе любое необходимое число счетов;
  • В выписанный счет вносится абсолютно вся необходимая, в том числе и служебная информация — кто выписывал, когда, в какой валюте, на какую сумму, все данные обо всех сеансах доступа в интернет, логин и полное имя Клиента, и т.д.
  • Получая деньги от Клиента в оплату счета, Кассир записывает в базу информацию об этом (в том числе записывается, кто именно из Кассиров и когда именно вносил в базу эту информацию);
  • Кассир, удаляя счет, на самом деле лишь перемещает его в «Корзину», Администратор имеет возможность просмотра в том числе и таких «удаленных» счетов;
  • Клиент может оплачивать счета как разовыми платежами, так и по частям;
  • Администратор проводит инкассацию всех средств, полученных Кассирами от Клиентов с оплатой по счету;

Чтобы полностью ознакомиться с новой методикой обслуживания Клиентов по счетам, рекомендуется внимательно прочесть обновленное «Руководство по работе в программе Easyhotspot«.

Обновлена инструкция: «Программа управления Wi-Fi хотспотом — Easyhotspot, Руководство по эксплуатации»

Всвязи с многочисленными изменениями в программе, были внесены изменения в инструкцию «Программа управления Wi-Fi хотспотом — Easyhotspot, Руководство по эксплуатации«. Инструкция доступна на странице ссылок.

В страницу авторизации добавлена возможность показа рекламы ПОСЛЕ авторизации (для гостевых клиентов)

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

  • Эта функция имеет свои собственные настройки активации этого режима, источника отображаемой рекламы (адрес страницы с рекламой) и длительности ее показа. Эти параметры независимы от настроек показа рекламы ДО авторизации;
  • Реклама после авторизации отображается ТОЛЬКО «гостевым» клиентам (тем, которые воспользовались кнопкой «Бесплатно» для того, чтобы получить доступ в интернет. Клиентам, которые авторизуются по логину\паролю (и, предположительно, оплачивают свой доступ в интернет), данная реклама не отображается;
  • Так как в момент показа этой рекламы клиент УЖЕ АВТОРИЗОВАН, её источником может быть любая страница, размещенная где угодно в интернете, и при этом не требуется дополнительная нгастройка хотспота на допуск к этой странице без авторизации!

У страницы авторизации добавлена функция автоматической авторизации клиента по логину / паролю

Теперь страница авторизации хотспота пытается сама авторизовать клиента. Речь именно про авторизацию тех клиентов. которые используют для этого логин и пароль (а не про «гостевых шаровиков»). В данном процессе есть несколько нюансов:

  • Во первых, как минимум самый первый раз клиент вынужден будет авторизоваться самостоятельно (вручную). В этот момент скрипт сохранит логин и пароль в браузере клиента. И впоследствии «автологин» будет пытаться подключать клиента с этими сохраненными логиногм и паролем. Немного подробнее: когда появляется меню ввода пароля, скрипт проверяет — есть ли сохраненные в куках браузера клиента пароль и логин, и если есть, то подставляет их в форму (собственно, это было реализовано в скрипте и раньше, только вот кнопку клиент должен был нажимать сам!). После чего, если оба поля (логин и пароль) заполнены, то, с задержкой в 1 секунду скрипт сам «нажимает» кнопку «Войти».
  • Если же у клиента нет сохраненных в браузере логина и пароля, то авторизоваться, естественно, не с чем, и «автологин» не выполняется. В этом случае, клиент должен ввести логин и пароль вручную. Во время ручного ввода клиентом логинов/паролей активируется (и при вводе каждого нового символа перезапускется) небольшая задержка в 15 секунд. Это избавляет от ситуаций, когда, допустим, логин уже введен, клиент успевает ввести только первый символ в поле пароля, и «автологин» уже «пошел» авторизовать…
  • Если «автологин» отработал успешно, то все ок, и клиент просто попадает в интернет.
  • Если же «автологин» вытащенными из куков логином/паролем не удался, то значит, что сохраненные в куках у клиента логин и пароль либо не верны, либо уже пришли в негодность (например, закончился срок обслуживания аккаунта, или закончился номинал ваучера, или истек срок годности, и т.д. и т.п.). В этом случае повторных попыток авторизоваться «автологин» не предпринимает, (чтобы страницу авторизации не «зацикливало» на непрерывных попытках «автологина» неверными данными).
  • Если клиент завершил сеанс сам (кнопкой «Отключиться»), процедура «автологина» блокируется на 20 минут. Иначе, клиент отключается от интернета, его выбрасывает на страницу авторизации, а она его снова же сама автоматом и авторизует. В течение этих 20 минут клиент (если «передумает») СМОЖЕТ снова авторизоваться, но увы, только вручную.

Для нерадивых админов добавлен «привет» в случае неправильной конфигурации гостевого доступа

Добавлено сообщение на страницу авторизации для тех «нерадивых админов», которым лень читать документацию. Теперь, если в настройках страницы авторизации сам гостевой доступ администратор хотспота включил, а вот гостевой тариф в базе Easyhotspot-а не создал (или создал с другим именем), то у него есть возможность прочесть о себе немного «незлых тихих» слов на английском языке. Да и сам гостевой режим в таком случае принудительно подавляется (выключается) самой страницей авторизации.

В программу добавлена функция автоматической привязки ваучера к mac-адресу

При авторизации ваучера выполняется проверка — привязан ли данный ваучер к какому-либо mac-адресу. Если нет, то ваучер привязывается к mac-адресу клиента, авторизующегося в данный момент. Во всех последующих случаях — система видит, что ваучер УЖЕ привязан, и ничего не делает. С другой стороны, уже имеющийся в программе механизм отказывает в авторизации тем, кто пытается подключиться по этому же ваучеру, но с другого оборудования (с каким-либо другим mac-адресом). В итоге, получается, что ваучер привязывается к тому mac-адресу, с которого был авторизован.

В лог авторизации клиентов программа при этом выводит сообщения об успешных привязках (обведены красным):

Kassir-autobind-to-mac-for-vouchers

Добавлена возможность бана по mac-адресу прямо из лога авторизации

В программу добавлена возможность бана по mac-адресу прямиком из лога авторизации. Ранее кассир мог забанить только уже авторизованного в хотспоте клиента (который уже получил доступ в интернет, и отображается в списке онлайн). Теперь же кассир может банить даже тех клиентов хотспота, у которых авторизоваться не получилось, и которые в итоге в списке онлайн пользователей отсутствуют, но при этом, судя по логу авторизации, сидят и активно подбирают пароли, пытаясь войти! Для этого в логе авторизации (см. рисунок выше) все mac-адреса специально выделяются визуально, плюс становятся «кнопками-ссылками». При щелчке по такой ссылке (выбранному mac-адресу) программа предлагает кассиру внести данный mac-адрес в список бана).

Кассиру добавлена возможность «отвязывания» ваучера от mac-адреса прямо в меню редактирования ваучера

Всвязи с автопривязкой ваучеров к mac-адресу (точнее, возможными разборками «хитро….деланых» клиентов), кассиру добавлена возможность отвязывать аккаунты ваучеров от mac-адресов. В форме редактирования ваучера, который привязан к какому-то mac-адресу, теперь отображается и сам mac-адрес, и кнопка («крестик»), чтобы эту привязку снять. Щелкнув по кнопке, кассир снимает привязку, и клиент сможет авторизоваться с другого устройства. Но «хитроделаным» клиентам стоит напоминать при этом, что как только они авторизуются по ваучеру с устройств с другими mac-адресами, их ваучеры будут тут-же привязаны к новым mac-адресам!

Внешний вид меню редактирования ваучера с кнопкой «отвязки» показан на рисунке ниже:

Kassir-edit-voucher-binded-to-mac

Изменен метод, используемый для отрисовки круговой диаграммы на странице «Статистика хотспота»

Изменен метод отрисовки диаграммы на странице «Статистика хотспота». (Согласен. что большинство на эту страницу вообще «раз в пятилетку» смотрит, и то, только если нечаянно в кнопку кликнет, но тем не менее)… Теперь отрисовкой занимается библиотека GoogleGraph (библиотека — внешняя, т.е. при рисовании диаграмки сервер хотспота отсылает запрос на специальное api, разработанное google, и располагающееся на серверах google). Зато теперь диаграмка фиксированного размера и не «прыгает»….

В меню создания ваучеров в выпадающий список тарифов добавлено краткое описание

В меню управления ваучерами (у кассира) в поле генерации новых ваучеров, в выпадающем списке тарифных пакетов, добавлено описание (краткий перечень лимитов) для каждого из тарифов (теперь кроме имени самого тарифа допонительно выводятся еще и — номинал, лимиты скорости, срок годности):

Kassir-list-of-tarifs-with-description

В программу добавлено новое меню «Роутеры, к которым подключены клиенты»

Для тех, кто обслуживает клиентов несколькими (внешними) роутерами в программу было добавлено новое меню. В нем отображается список тех роутеров, которые в данный момент обслуживают АКТИВНЫХ (уже авторизовавшихся) клиетов. Меню также показывает число клиентов, авторизовавшихся на каждом роутере в данный момент времени.

Пример меню:

Kassir_working_routers_menu

Изменен «кабинет пользователя»

Новый кабинет:

  • При подключении предлагает выбрать безопасный протокол (https), хотя позволяет подключиться и по обычному http (небезопасному). Выбор протокола — за клиентом. Эта функция была введена всвязи с тем, что кабинет позволяет просматривать и изменять конфиденциальную информацию.
  • Для входа в кабинет требует от клиента ввести и логин и пароль
  • Авторизация хранится в течение 10 минут, после чего в случае неактивности, сбрасывается (нужно входить по новой)
  • Кабинет в дополнение к «старым функциям» теперь позволяет клиенту самостоятельно изменить пароль учетной записи, используемый для авторизации в хотспоте (для выхода в интернет)
  • Кабинет позволяет клиенту просмотреть список заказов, оплаченных в автоматизированных платежных системах (поиск ведется по номеру телефона).
  • Для заказов, оплаченных через платежные системы, возможен просмотр статистики простым щелчком по кнопке.

Несколько скриншотов обновленного кабинера:

cabinet_view_orders_by_phone

Пример списка заказов, оплаченных через платежные системы

cabinet_postpaid_client

Кабинет для Клиента с оплатой по счету (с примером сообщения о сроке окончания обслуживания)

cabinet_voucher_user

Кабинет для ваучера (отображаются номинал ваучера (Тарифного пакета) и дата окончания обслуживания)

В программу добавлена форма обратной связи

Основная цель этой формы обратной связи — чтобы человек («с улицы»), который просто подключился к хотспоту, и при этом НЕ ЗНАЕТ, ЧТО ЕМУ ВООБЩЕ ТЕПЕРЬ ДЕЛАТЬ, куда обращаться, где искать того, кто ему продаст (или даром выдаст) талон, и т.д. и т.п. мог хоть как-то связаться с администратором хотспота. Ведь этот неавторизованный клиент никакого выхода в интернет не имеет, и следовательно «обычными методами» не может даже e-mail отправить! Данная форма обратной связи:

  • использует учетную запись на внешнем smtp-сервере, следовательно на самом сервере хотспота вам не надо устанавливать и настраивать собственный почтовый (smtp) сервер.
  • отправку письма выполняет сам сервер хотспота, благодаря чему письмо может отправить и неавторизованный клиент, без необходимости авторизоваться и получать доступ в интернет.
  • адрес получателя (администратора хотспота) жестко прописывается в настройках, следовательно форма бесполезна для рассылки спама.
  • В форме сделана задержка, благодаря чему клиенту вас доставать письмами тоже быстро надоест

Пример формы обратной связи доступен по ссылке (шлет письма на мой адрес): форма обратной связи на сервере

Обновлен скрипт-инсталятор — теперь возможна установка на дистрибутив Ubuntu 14.04

Ubuntu выпустила очередной LTS (Long Term Support — «с долговременной поддержкой») релиз — 14.04. Скрипт-инсталятор «подрихтован, и теперь без проблем устанавливает Easyhotspot на дистрибутив Ubuntu 14.04 LTS:

easyhotspot_on_ubuntu_14_04

Также, была проверена обновленная версия Debian — 7.5. На нее скрипт-инсталятор также установил Easyhotspot абсолютно корректно.

Ну и в плане «экстравагантной феерии» — Easyhotspot на Raspberry Pi!

Скрипт-инсталятор, создавая резервные копии, добавляет в имя шаблон даты

Скрипт-инсталятор одновременно является и способом обновления программы. При этом, обновляя программу, скрипт создает резервную копию старых файлов. Ранее создавалась просто версия бакапа «предыдущих» файлов. В итоге, выполнив два обновления подряд, вы теряли файлы, которые были на сервере изначально (до этих двух обновлений). Чтобы избежать такой возможности, теперь при обновлении резервным копиям к имени добавляется шаблон «даты-времени». В итоге, остаются все бакапы. А уж в случае отсутствия необходимости в их дальнейшем хранении, вы удаляете их самостоятельно.

Скрипт-инсталятор изменен с целью минимизации ошибок при повторной установке «поверх предыдущей»

У скрипта-инсталятора была возможность в расписание заданий накидать «целую пачку» однизх и тех же комманд. Для этого достаточно было просто ставить программу «поверх» старой установки (именно Не обновлять, А поверх). В результате, в планировщике заданий Linux-а прописывалось несколько команд на запуск одних и тех же скриптов чистки системы, гостевых тарифов и т.д. и т.п. Это создавало проблемы, например, когда два одновременно запущенных скрипта чистки гостевых ваучеров мешали дрруг другу. Скрипт-инсталятор был изменен, и теперь в планировщик заданий не вписывает по нескольку раз команду на запуск одних и тех же скриптов…


Просмотреть все эти изменения в действии можно на сайте демо-версии модифицированной программы Easyhotspot (логин/пароль Кассира: vcool/vcool123, логин/пароль Администратора: admin/admin123), или же то же самое, но с английским языком интерфейса На всякий случай, напоминаю, что все эти изменения относятся именно к модифицированной версии программы Easyhotspot, которую можно приобрести на странице онлайн-продажи.

2,5-дюймовый винчестер — в D’link DNS-320L

Так уж сложилось, что у меня завалялось несколько «свободных» ноутбучных винчестеров (2,5 дюйма). И захотелось мне NAS. Причем, естественно, такой, чтоб в него эти самые винчестеры пристроить. Гугл предлагал или «только дорого», или «только под винчестеры 3,5 дюйма». А хотелось, как обычно, «всё и на шару»…

«Глаз лег» на недорогой NAS для двух винчестеров от D’link — модель DNS-320L. НО! В интернете так и не нашлось никакой информации, о том, смог ли кто-то все-таки успешно установить в него винчестеры размера 2,5 дюйма?..

И терзали меня эти сомнения до тех самых пор, пока не нашел я в интернете вот такую картинку внутренностей аппарата со снятой крышкой. После этого мыслительный процесс пошел уже «в конструктивном направлении»…

Для начала сложил я кучку из винчестеров разного типоразмера:

CIMG0973

 

Целью построения этой «пирамиды» было желание увидеть, одинаково ли относительно края располагаются разъемы интерфейсов SATA и питания. Проверка показала — таки да! То есть, при попытке установить винчестер размером 2,5 дюйма ему ничего не должно мешать. Правда, отсутствует крепление винчестера, и тот будет держаться только на разъемах  интерфейсов SATA и питания! Но тут уже успокаивал тот самый «мыслительный процесс», который нашептывал: «Там же есть целая стенка металлического кожуха, сделаешь в ней дырки, прикрутишь винтами«…

В итоге, решение принято — «будем брать!«.

И вот девайс на столе. Разобрать его оказалось не сложно, как и в большинстве SOHO-устройств, крепежные винты были спрятаны под резиновыми ножками.

Осмотр той самой металлической стенки показал, что лишь в одном из 4-х возможных мест можно беспрепятственно просверлить отверстие для крепежного винта. «Мыслительный процесс» сказал «Не бойся! Один крепежный винт плюс два разъема  интерфейсов SATA и питания — для того чтобы удержать винчестер типоразмера 2,5 дюйма, — ДОСТАТОЧНО!»

Отлично, сверлим отверстие. В этом процессе главное — хорошо прицелиться (а не так, как это сделал я):

CIMG0966-1

Место, где я просверлил отверстие, на рисунке обведено красным. С учетом того, что «прицел меня подвел», пришлось еще немного поработать надфилями, чтобы отверстие под винт оказалось именно в том месте, где нужно.

Также, важно с внутренней стороны кожуха (к которой будет прилегать сам винчестер) тщательно удалить все заусенцы, чтобы они не повредили винчестер:

CIMG0967

Надфилем я тщательно зачисти все, как показано на рисунке (обведено красным).

После этого устанавливаем винчестер:

CIMG0968-1

… и прикручиваем его винтом снаружи кожуха:

CIMG0970-1

Затем аккуратно устанавливаем назад пластмассовый кожух:

CIMG0971-1

И закручиваем на место все крепежные винты корпуса.

Если винчестеров устанавливаете два, то аналогичные манипуляции проделываете и на другой стороне металлического кожуха.

Всё…

 

 

Новости Easyhotspot — 2013 год

Модифицированная версия программы Easyhotspot является билинговой программой для управления хотспотом или сетью хотспотов. Благодаря дополнительным модулям: приема платежей по СМС и приема платежей с банковских пластиковых карт, программа предоставляет возможность полностью автоматического обслуживания клиентов хотспота.

Подробнее прочесть о модифицированной версии программы  можно вот в этой заметке: «Простой биллинг с веб интерфейсом — Easyhotspot« или на сайте, посвященном модифицированной версии программы Easyhotspot.

Со времени, прошедшего с анонса предыдущих изменений, в программу были добавлен целый ряд новых возможностей.

  • В программу добавлены новые страницы для просмотра результатов работы платежных модулей.
  • Сделан простой «кабинет пользователя», позволяющий Клиенту самостоятельно получить информацию обо всех его сеансах доступа в интернет.
  • Добавлено новое меню программы, отображающее список всех сеансов выбранного ваучера.
  • Добавлена возможность печати выбранной группы ваучеров.
  • Полностью изменен подход к отображению рекламы (когда активирован доступ в интернет после показа рекламы).
  • Наведены дополнительные «рюшики» в отображении объемов трафика и времени.
  • Новый платежный модуль — оплата СМС через «Мобильную комерцию» от Неолайна.
  • Новый платежный модуль — оплата СМС через «Мобильную комерцию» от Авизо СМС.
  • Изменена процедура формирования файла со списком пар Логин-Пароль.
  • Данные о хотспоте (фирма, адрес, телефон и т.д.). теперь хранятся в базе, а не в текстовом файле, и редактируются в вебинтерфейсе самой программы Easyhotspot.
  • Добавлены кнопки для перехода из меню Администратора в меню Кассира и наоборот.
  • Реализована взможность для Администратора удалять ваучеры и счета даже в том случае, когда в программе параметр про «Доверие кассиру» установлен как «Нет».
  • В программу было добавлено ограничение — за один раз Кассир может сгенерировать не более 900 ваучеров.
  • В меню Кассира на «домашней» странице добавлена информация о нагрузке сервера (аналогичная той, что показывает команда top).
  • Скрипт сброса гостевых ваучеров изменен.
  • В базу добавлена новая таблица — история гостевых доступов. В программе добавлено меню для просмотра этой статистики.
  • В меню Клиентов с оплатой по счету также добавлена возможность просмотра сеансов Клиента.
  • При выводе данных о сеансах Клиента изменен порядок вывода записей — первыми выводятся самые «свежие» данные.
  • Исправлена ошибка, приводившая к тому, что в процессе редактирования ваучера, при сохранении изменений был шанс «непроизвольно» сменить ваучеру Тарифный пакет.
  • Добавлена «привязка» Клиента (с оплатой по счету) к mac-адресу.

Новые меню для отображения результатов работы платежных модулей

В меню Администратора добавлены новые кнопки (пункты меню). Каждая из них позволяет просмотреть отчет по работе сообтветствующего платежного модуля.

Для модуля приема платежей по СМС:

admin_view_sms_sale_list1

Меню постранично выводит список всех транзакций обработанных модулем. В меню указываются все доступные данные о запросах. Дополнительно, есть возможность посмотреть информацию об идентификаторе транзакции по базе смс-агрегатора, если навести указатель мыши на пункт с номером (No). В поле поиска можно ввести следующие данные: № мобильного телефона, короткий номер, на который была отправлена СМС, дата, идентификатор транзакции по базе смс-агрегатора. Поиск будет выполнен по любому из указанных параметров. Внизу страницы под списком выводится сумма выручки для текущей страницы и для всех записей в базе. Кроме того, если щелкнуть мышью на ЛОГИНЕ ваучера, откроется новое меню, в которм будет представлена информация обо всех сеансах данного ваучера (см. ниже).

Для модуля приема платежей по банковски пластиковым картам:

Admin_view_liqpay_sale_list1

Меню постранично выводит список всех транзакций обработанных модулем. В меню указываются все доступные данные о запросах. Дополнительно, есть возможность посмотреть информацию об идентификаторе транзакции по базе Liqpay, если навести указатель мыши на пункт с номером (No). В поле поиска можно ввести следующие данные: № мобильного телефона, Тарифный пакет, №заказа, дата заказа, идентификатор транзакции по базе Liqpay. Поиск будет выполнен по любому из указанных параметров. Внизу страницы под списком выводится сумма выручки для текущей страницы и для всех записей в базе. Кроме того, если щелкнуть мышью на ЛОГИНЕ ваучера, откроется новое меню, в которм будет представлена информация обо всех сеансах данного ваучера (см. ниже).

Простой «кабинет пользователя»

В программу добавлена страница (cgi-скрипт), адрес которой может быть предоставлен клиентам, чтобы они имели возможность просмотра статистики своего использования интернета. Попав на страницу, клиент должен ввести свой логин, после чего попадает в список всех своих сеансов. Если сеансов много, список выводится постранично, вверху выводится номера страниц (до 10 пунктов), плюс поле для ввода конкретной страницы. Выглядит список следующим образом:

client_cabinet

 

Клиент может «фильтровать» данные. Для этого данные в ряде столбцов таблицы являются ссылками. Ссылками являются — дата (когда сеанс был начат), mac-адрес клиентского компьютера (или иного интернет-гаджета), IP-адрес NAS (читай, хотспота), к которому клиент был подключен во время сеанса. Щелчок мышью по любому из указанных параметров выбирает этот параметр как критерий отбора записей из базы. То есть, например, щелкнув по дате, клиент получит записи только за указанную дату. Аналогично с mac-адресом и IP-адресом NAS. Причем, критерии отбора суммируются. То есть, например, сначала клиент отобрал записи с какой-то датой, а потом щелкнул по IP-адресу NAS. В итоге он получит данные только о сеансах, когда он был подключен именно к данному хотспоту и именно в указанный день.

Внизу списка маленькая табличка подсчитывает «Итого» для записей, которые отображены на странице, и для всех записей в базе. Тамже находится кнопка «Все записи (сброс критериев поиска)«, назначение которой прямо на ней и написано. Как говорится, «Лучше один раз увидеть, чем сто раз услышать»: действующий пример «кабинета» можно посмотреть по ссылке. Чтобы войти, используйте логин kolja, для которого в базе есть данные о сеансах.

Новое меню программы, отображающее список всех сеансов выбранного ваучера

В программу добавлена новая страница, отображающая список сеансов доступа в интернет для выбранного ваучера (аналогично скрипту view_radius.cgi), но только, во первых, внутри программы и, во вторых, только для конкретного выбранного клиента. Чтобы попасть на страницу, в списке ваучеров нужно щелкнуть логин ваучера.

Выглядит список сеансов ваучера (клиента) вот таким образом:

Kassir_view_client_sessions2

Если список всех сеансов не умещается в одну страницу, выводятся кнопки для постраничной навигации. Также, внизу страницы отображается целый ряд параметров: сколько клиент провел времени в интернете, сколько времени осталось, сколько трафика клиент отправил в интернет, и сколько получил, какой у клиента Тарифный пакет, каков номинал Тарифного пакета, дата, когда ваучер активирован, и дата, когда истечет «Срок годности» данного ваучера.

Как уже было сказано выше, этот же список сеансов ваучера можно просмотреть для ваучеров проданных либо за СМС, либо с оплатой с помощью пластиковой банковской карты. Для этого в соответствующем меню Администратор должен также щелкнуть логин ваучера.

Печать выбранной группы ваучеров

Теперь в списке ваучеров есть возможность проставить «галочки» напротив избранных, и затем нажать кнопку «Распечатать выбранные ваучеры«. В итоге вы получите распечатку только тех ваучеров, которые вы выбрали. Выглядит это следующим образом:

kassir_print_selected_vouchers

Абсолютно новый макет страницы авторизации

В программе теперь используется новая версия страницы Что в ней нового?

  • Страница В ЛЮБОМ ИЗ РЕЖИМОВ состоит из двух глобальных модулей. С одной стороны, на всю площадь «транслируется» содержимое внешней страницы (рекламной, информационной, еще какой-то — на ваш выбор). С другой — вверху страницы (узкой полоской) выводится именно меню авторизации. Таким образом, ваша реклама или любая иная информация присутствует на странице авторизации всегда. Адрес этой «страницы-подложки» вынесен отдельным параметром в файл настроек, чтоб вы могли его легко изменить по собственному желанию.
  • Страница автоматически определяет мобильные гаджеты (смартфоны и т.п.). Если обнаружен мобильный девайс, макет страницы меняется таким образом, чтобы на мобильном устройстве клиент видел НОРМАЛЬНОГО РАЗМЕРА поля формы и мог вводить в них значения ЧИТАБЕЛЬНО, и при этом, без необходимости каких-либо дополнительных манипуляций с масштабом страницы. (больше скриншотов мобильной версии страницы авторизации).
  • Также, если страница определила у клиента мобильный гаджет, вывод popup-окна (мешавшего авторизации на таких устройствах) выключается автоматически (теперь настройка параметра страницы авторизации про popup важна, только в случае, если клиент подключился «обычным» устройством, например, ноутбуком).
  • Кнопки платежных модулей теперь просто подписаны словами, и сгруппированы в отдельное меню, которое изначально скрыто. Вместо этого списка на странице авторизации теперь присутствует кнопка с надписью «Купить». Щелкнув ее, клиент получает меню со списком доступных для его выбора систем оплаты. Повторный щелчок по кнопке скрывает меню, равно как и щелчок по свободному полю самого меню (мимо размещенных на нем кнопок).
  • Если хотспот обслуживает клиентов ТОЛЬКО в режиме доступа после просмотра рекламы, и никакие иные способы не используются (парольный вход, платежные модули), то после отсчета времени паузы (просмотра рекламы) клиент авторизуется АВТОМАТИЧЕСКИ (ему теперь не нужно вообще нажимать какие бы то ни было кнопки).

Посмотреть на текущий вариант страницы можно по ссылке: Пример страницы авторизации хотспота

Страница авторизации сама чистит куки, если авторизация клиента не удалась

В момент авторизации клиента страница «автоматом» пишет куки (cookies) с логином и паролем в его браузер. Недостаток решения в том, что если клиент ввел неверные данные, в куки записываются неправильные логин и пароль. Впоследствии эти ошибочные данные снова подставляются в страницу авторизации. И у многих «блондинистых» владельцев (особенно) мобильных гаджетов выкорчевать эти куки абсолютно не хватало ни знаний, ни желания и т.д. и т.п. По этому, теперь страница авторизации в случае, когда хотспот отказал в авторизации, сама удаляет эти куки. Результат — «безмерная благодарность администраторов хотспотов«.

«Рюшики» в отображении срока годности

У администратора в меню тарифных пакетов в списке уже созданных пакетов  в поле, отображающем срок годности теперь указываются либо  дни, либо часы, либо минуты:

admin_expiration_field

Аналогично реализовано теперь и в самих ваучерах:

voucher_new_maket

«Рюшики» в отображении объемов трафика и времени

При отображении информации о времени и трафике, во всех отчетах изменено форматирование отображаемых значений как трафика, так и времени. Трафик теперь отображается в формате дроби с одним десятичным знаком после запятой + единица измерения (Гб/Мб/кб). В то же время, для отображения времени реализовано представление показаний в формате «час:мин:сек». Пример можно посмотреть на рисунке выше, где показаны «птички» для печати избранных ваучеров.

Новый платежный модуль — оплата по СМС, через сервис «Мобильной комерции» Неолайн

Данный модуль в своей работе использует сервис Мобильных Платежей, предлагаемый фирмой Неолайн. Главное отличие данного сервиса от услуг, предлагаемых СМС-агрегаторами, состоит в гораздо более высоком проценте отчислений Партнеру (см. на странице по ссылке, приведенной выше, пункт «Смотреть финансовые условия», при этом в таблице выбирайте категорию услуги — Internet). Подробнее о модуле — на странице:

Еще один модуль для обслуживания клиентов по СМС (через Неолайн)

Новый платежный модуль — оплата СМС через «Мобильную комерцию» от Авизо СМС

Данный модуль в своей работе использует сервис Мобильных Платежей, предлагаемый фирмой Aviso-SMS. Главное отличие данного сервиса от услуг, предлагаемых СМС-агрегаторами, состоит в гораздо более высоком проценте отчислений Партнеру (см. на странице тарифов по ссылке). Прочие условия обслуживания указаны на этой странице. Подробнее о самом модуле — на странице:

Еще один модуль для обслуживания клиентов по СМС (через Aviso-SMS)

Изменена процедура формирования файла со списком пар Логин-Пароль

Теперь реальный csv-файл на сервере не создается вовсе, он генерируется «на лету» и тут же «выталкивается» в браузер. Браузер при этом предлагает вам сохранить файл или открыть его. Старый механизм (с созданием реального файла) не предполагал никакой защиты данного файла. Теперь же файла физически на сервере не создается вовсе — «своровать» уже нечего, а в самой процедуре формирования используется стандартный механизм, проверяющий авторизацию (без логина/пароля доступ не возможен).

Данные о хотспоте (фирма, адрес, телефон и т.д.). теперь хранятся в базе

Теперь вся информация о хотспоте (фирма, адрес, телефон, валюта и т.д.) хранится непосредственно в самой базе и редактируется в вебинтерфейсе самой программы Easyhotspot. Для этих целей в меню «Информация о системе» у Администратора добавлена новая кнопка — «Редактирование данных о хотспоте».

В меню Кассира на «домашней» странице откорректирован показ информации о версии ОС, установленной на сервере

В меню теперь отображается «имя» операционной системы, а также ее архитектура.  См. рис. ниже:

Info_about_OS_version_and_arch

На страницах Клиентов с оплатой по счету, Ваучеров, Статистики гостевых, а также Клиентов онлайн в меню Кассира добавлена сортировка списков по ряду ключевых столбцов

Списки, выводимые в меню «Клиенты с оплатой по счету», «Ваучеры», «Статистика использованных гостевых ваучеров», «Пользователи, подключенные к интернету» теперь могут быть отсортированы по ряду параметров. В шапке таблиц параметры, по которым может быть осуществлена сортировка, обведены рамкой. При щелчке мышью по выбранному параметру список в таблице сортируется по значению данного параметра. В рамке рядом с названием параметра появляется стрелочка, указываюшая порядок сортировки (по возрастанию или по убыванию). Смена порядка сортировки осуществляется повторным щелчком по тому же самому параметру. Пример — см. на рис. ниже (страница со списком ваучеров, список отсортирован по Логину):

Cashier_sorted_list

Для наглядности в Списке клиентов с оплатой по счету дата окончания срока обслуживания, которая уже прошла, выделяется красным цветом

Данная функция позволяет сразу видеть, кто из клиентов в списке уже не обслуживается. Пример можно посмотреть на рисунке ниже (в иллюстрации к следующей новости).

Добавлена функция экспорта списка Клиентов с оплатой по счету в csv-файл

Под списком Клиентов с оплатой по счету добавлена новая кнопка. При ее нажатии программа Easyhotspot из базы данных генерит csv-файл со списком всех Клиентов с оплатой по счету, после чего предлагает вам его открыть либо сохранить. В целях безопасности, данный файл на сервере не сохраняется вовсе, он генерируется «на лету» и тут же «выталкивается» в браузер. И уже Браузер предлагает вам сохранить файл либо открыть его. Также, в целях безопасности, функция работает только в случае, если в программу вошел Администратор, Кассиру функция не доступна. Кнопка показана на рис. ниже:

Cashier_binded_MAC_expired_date_CSV_export

В меню Ваучеров теперь возможно выделение всех строк на странице «одним кликом»

Добавлена функция, облегчающая выбор сразу всех ваучеров из списка на текущей странице. Для этого достаточно просто щелкнуть мышью» кнопку «Отм.» в шапке таблицы. Программа выберет сразу все ваучеры в списке текущей страницы. Повторный щелчок по кнопке «Отм.» нимает выбор со всех строк. Пример см. в иллюстрации к следующей новости.

В меню Ваучеров теперь возможно удаление всех выделенных ваучеров «одним кликом»

Добавлена кнопка, удаляющая за раз все выделенные ваучеры (все ваучеры, у которых проставлена «птичка в колонке «Отм.»). Данная «групповая» функция упрощает удаление ненужных ваучеров, избавляя от необходимости «поштучного» тыканья в кнопки. Функция безоговорочно доступна Администраторам. Доступность функции Кассирам зависит от настройки параметра про «Доверие кассиру». Если Кассиру разрешено удалять ваучеры, то ему будет предоставлена и возможность их группового удаления. См. рис. ниже:

Cashier_one_click_select_and_delete_selected

В списке сеансов ваучера теперь возможно удалить все его сеансы доступа в интернет

Данная кнопочка позволяет вернуть ваучеру «девственную чистоту». После ее нажатия ваучер снова становится не пользованым: нет израсходованных минут, нет скачанных мегабайт, активация еще не состоялась! Ее появление (и назначение) было продиктовано желанием некоторых администраторов хотспотов угождать чрезмерной лени тех клиентов, которые не хотят запоминать новые логины и пароли…

Cashier_delete_session_data

В меню Статистики использования гостевых ваучеров добавлена возможность удаления старых записей

В списке статистики гостевых ваучеров добавлена новая кнопка. Совместно с выпадающим меню она позволяет удалить старую статистику. То есть, если выбрать из списка период, и потом нажать кнопку «Удалить», из базы будут удалены все записи старее, чем указанный период:

Cashier_delete_old_statistic

В меню Клиентов онлайн добавлен постраничный вывод

Ранее все Клиенты подключенные к хотспоту отображались на одной едиенственной странице вне зависимсоти от их количества. Теперь в программе в этом списке также реализован постраничный вывод (аналогично списку Ваучеров или списку Клиентов с оплатой по счету).

В меню Клиентов онлайн реализована привязка клиента к mac-адресу «в один клик» / Теперь возможна привязка к mac-адресу и для ваучеров

Максимально упрощена процедура привязки аккаунта клиента к mac-адресу. В меню Клиентов подключенных к хотспоту теперь в список добавлена новая кнопка («персональная» для каждого из клиентов в списке). Кнопка выглядит как «иконка-замочек». При ее нажатии программа привязывает аккаунт к текущему mac-адресу авторизованного клиента. При этом не важно — это Клиент с оплатой по счету или Ваучер. Как только Аккаунт будет привязан к mac-адресу, авторизация других устройств с другими mac-адресами и с этими же самыми учетными данными (логином и паролем) станет не возможной! Логины аккаунтов, которые привязаны к конкретным mac-адресам, для наглядности выделяются в списке красным цветом. Повторный щелчок на этой кнопке убирает привязку Аккаунта к mac-адресу.

Kassir_quick_bind_user_to_mac

Для наглядности в меню Клиентов с оплатой по счету, в меню Ваучеров, и в меню Клиентов онлайн те пользователи, кто привязан к mac-адресу выделяются красным цветом

Клиенты, привязанные к реальным mac-адресам, теперь выделяются в списках. Пример выделения в списке клиентов, подключенных к интернету, вы видите на рисунке, размещенномпрямо над этим абзацем — у «привязанного» клиента красным цветом выделяется его логин в колонке «Пользователь». Другой пример вы можете видеть еще выше, на рисунке, показывающем размещение кнопки экспорта списка клиентов в csv-файл. Там у Клиентов с оплатой по счету, привязанных к mac-адресу, красным цветом выделяется пароль. Аналогично выделяются в своем списке и Ваучеры, привязанные к mac-адресам…

В меню Клиентов онлайн щелчок по логину теперь позволяет перейти в список сеансов клиента

Данная «фишка» просто добавляет дополнительное удобство — просматривая список клиентов подключенных к хотспоту, вы можете » в один клик» перейти в список сеансов заинтересовавшего вас клиента (просмотреть историю его доступа в интернет). Для этого достаточно просто «щелкнуть» по его логину.

Скрипт сброса гостевых ваучеров теперь переносит в таблицу статистики только те гостевые ваучеры, которыми РЕАЛЬНО пользовались

Когда в системе включен гостевой доступ, программа генерит персональный гостевой ваучер для каждого устройства, которое подключилось к хотспоту. Однако, в последствии, далеко не все они пользуются доступом в интернет. Перенос статистики выполняет скрипт сброса гостевых ваучеров. Ранее он переносил в таблицу статистики все записи для всех гостевых ваучеров. В итоге, в таблице статистики пристуствовали записи с нулевыми показателями. Теперь же, если у гостевого ваучера записи о сеансах доступа в интернет отсутствуют, то его данные в таблицу статистики не сбрасываются вовсе.

Статистику использованных гостевых ваучеров теперь можно экспортировать в csv-файл

В меню Статистики гостевых ваучеров добавлена кнопка. При щелчке по ней программа генерит csv-файл с данными, хранящимися в таблице, после чего предлагает вам его открыть либо сохранить. В целях безопасности, данный файл на сервере не сохраняется вовсе, он генерируется «на лету» и тут же «выталкивается» в браузер.

В кабинете пользователя для Ваучеров теперь отображается Номинал ваучера и дата, когда истекает Срок годности ваучера

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

Cabinet_voucher_limits

В кабинете пользователя для Клиентов с оплатой по счету теперь отображается, через сколько дней прекратится обслуживание его аккаунта

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

Cabinet_account_client_limits

Обновлена версия плагина dompdf

Версия плагина dompdf, осуществляющего экспорт ваучеров в PDF-файл, обновлена.

Для Клиентов с оплатой по счету добавлена возможность сортировки списка по дате окончания обслуживания

В программе дата окончания обслуживания теперь пишется в базу данных не как текстовая строка с датой, а как timestamp, благодаря чему появилась возможность корректной сортировки списка именно по этому параметру.

Для Клиентов с оплатой по счету добавлена кнопка, которая выставляет счет без удаления аккаунта Клиента

Для клиентов с оплатой по счету добавлена кнопка, которая выставляет Клиенту счет, удаляет старые записи о его сеансах доступа в интернет, но при этом не трогает сам аккаунт Клиента — Клиент и дальше может продолжать работать. Кнопка так и называется — «Выставить счет, Клиент продолжит работать». Ранее при выписке счета Клиенту аккаунт этого Клиента автоматически удалялся. Теперь кнопок две, и у Кассира есть возможность выбора — удалять Клиента после выписки счета или нет.

Страница авторизации удаляет пробелы из полей логина и пароля (иногда клиенты добавляют их по ошибке)

Клиенты (или их браузеры) иногда умудряются в поля для логина и пароля добавить пробелы (перед значением, или после него). Страница авторизации преобразует такие пробелы в символ подчеркивания «_», и в конечном результате авторизация Клиента не проходит. В код страницы авторизации была добавлена процедура, удаляющая эти пробелы из логина и пароля, в результате чего число ошибок авторизации снизилось.

Инсталятор теперь позволяет установить хотспот на Debian 7.х

В связи с тем, что у Debian сменилась «стабильная» версия (с 6.0.х на 7.х), скрипт-инсталятор был подкорректирован и теперь он позволяет устанавливать модифицированную версию программы Easyhotspot и на эту ОС.

Инсталятор теперь позволяет установить на сервер хотспота программу Webmin

Как сказано в Википедии: «Webmin — это программный комплекс, позволяющий администрировать операционную систему через веб-интерфейс, в большинстве случаев, позволяя обойтись без использования командной строки и запоминания системных команд и их параметров». Иными словами — эта программа позволяет делать очень многое, используя браузер и подключившись к серверу.

Скрипт-инсталятор теперь во время установки сервера хотспота задает вам дополнительный вопрос — хотите ли вы установить Webmin? Если вы отвечаете утвердительно, в систему устанавливается данное ПО.

Написан новый скрипт для установки на сервер хотспота Coova-Chilli вместо Chillispot

В комплект к программе добавлен новый (отдельный) скрипт, позволяющий установить на сервер Coova-Chilli либо «с нуля», либо обновить уже установленный Chillispot до Coova-Chilli. Скрипт не запускается сам ни при установке сервера, ни при обновлении программы, он должен запускаться вручную. При обновлении Chillispot до Coova-Chilli скрипт переносит основные параметры из настроек Chillispot в настройки Coova-Chilli.

Исправлена ошибка печати счетов, возникшая после обновления плагина dompdf

После обновления версии плагина на актуальную, в формах счетов не был заменен шрифт на кириллический. В итоге счета выписывались с «вопросиками» вместо русских букв (имеется ввиду именно в сгенерированных pdf-файлах). Исправлено.

Сервер FreeRADIUS теперь использует новый модуль счетчика на perl

Обновлена настройка сервера FreeRADIUS — в него добавлен новый модуль, написанный на языке perl. На новый модуль возложены следующие функции:

  • Счетчик трафика (мегабайт). Благодаря этому теперь корректно работают тарифы, которые ограничивают объем данных (трафик), в случаях, когда размер  лимита превышает 4Гб. Причем, благодаря переносу счетчика на perl, «проблема 4Гб» гарантировано отсутствует вне зависимости от разрядности выбранного дистрибутива Linux — 32 бита (i386) или 64 бита (amd64). Ранее ваучеры таких тарифов могли давать ошибку авторизации.
  • Проверка срока годности ваучера. Добавлена лишь с целью вывода корректного сообщения Клиенту на странице авторизации. С самим подсчетом вполне прекрасно справлялся и предыдущий счетчик в виде mysql-запроса. Но при этом раньше отсутствовал «персональный» ответ о причине отказа. Модуль на perl позволил выводить сообщение о том, что причина отказа в авторизации — ИМЕННО окончание срока годности ваучера.
  • Проверка одновременного числа логинов. Добавлена к «штатной» для подстраховки, во избежание ложных результатов.Данная функция позволяет отказаться от использования radutmp, который иногда мог давать отказы в авторизации Клиентам по причине якобы превышения числа одновременных логинов.

Как дополнительный «бонус», использование данного нового модуля, написанного на языке perl, позволило добиться корректного получения лимитов трафика роутерами Mikrotik без необходимости дополнительной «рихтовки кода под себя».

В настройках сервера FreeRADIUS отредактирован ряд параметров, отвечающих за проверку логина, пароля и т.д.

Были подкорректированы параметры, отвечающие в настройках RADIUS за проверку пароля, и ряда иных параметров. Целью данной корректировки было включение во всех проверках чувствительности к регистру вводимых букв. В результате была устранена возможность авторизации с «поЧтИ прАвильНЫМи» логинами и паролями.

Запущен тестовый сервер с программой Easyhotspot

В интернете был размещен тестовый сервер с модифицированной программой Easyhotspot. Его главное отличие в том, что это именно полноценный сервер биллинга, настроенный для обслуживания внешних роутеров («Вариант №3«), а не только веб-интерфейс, как на «демо-сайте«. Этот сервер позволит проверить возможность работы ваших роутеров с сервером биллинга. Подробности описаны в документе по ссылке.

Обновлены инструкции: «УСТАНОВКА И НАСТРОЙКА WI-FI ХОТСПОТА С ИСПОЛЬЗОВАНИЕМ CHILLISPOT, FREERADIUS И EASYHOTSPOT», «Процедура быстрой установки программы EASYHOTSPOT», «Программа управления Wi-Fi хотспотом — Easyhotspot, Руководство по эксплуатации», «Индивидуализация вашего хотспота»

В связи со столь многочисленными изменениями в программе, были отредактированы практически все инструкции. В некоторые были добавлены новые разделы, а некоторые инструкции (например, «Процедура быстрой установки программы EASYHOTSPOT») были полностью переделаны. Инструкция «УСТАНОВКА И НАСТРОЙКА WI-FI ХОТСПОТА С ИСПОЛЬЗОВАНИЕМ CHILLISPOT, FREERADIUS И EASYHOTSPOT» идет только в комплекте с программой, а остальные инструкции доступны на странице ссылок.

Добавлены кнопки для перехода из меню Администратора в меню Кассира и наоборот

Теперь, чтобы попасть из меню Администратора в меню Кассира не нужно выходить из программы, и по новой авторизоваться в ней другим пользователем. Достаточно просто нажать кнопку для перехода в другое меню. Кнопки доступны (присутствуют в меню) только в случае, если вошедший в программу пользователь — Администратор или Суперадминистратор (что на мой взгляд, вполне логично).

Администратор может удалять ваучеры и счета независимо от параметра про «Доверие кассиру»

После того, как у Администратора появилась возможность нажатием одной кнопки перейти в меню Кассира, вполне логично возник вопрос — «А почему он не может удалить клиента или ваучер? Ведь он же Админ?!». Программа была изменена таким образом, что теперь Администратор, находясь в меню Кассира, может удалять Клиентов и ваучеры вне зависимости от того, какое значение установлено у параметра про «Доверие Кассиру». параметр этот теперь влияет только на отображение кнопок удаления пользователю-Кассиру. Если же пользователь — Администратор или Суперадминистратор, кнопки для удаления Клиентов, ваучеров и счетов присутсвуют всегда.

В программу было добавлено ограничение — за один раз Кассир может сгенерировать не более 900 ваучеров

Один из посетителей на демо-сайте «на радостях» сгенерил в одном из тарифов 9999 ваучеров. Попытка их удаления (точнее сказать — попытка удаления самого Тарифного пакета, как способа «одним махом» удалить все ваучеры данного номинала) надолго вывела из строя систему (в том плане, что читать из базы программа еще могла, а вот писать в нее — уже нет). В результате в коде появилось принудительное ограничение — если кассир ставит при генерации число ваучеров, равным 901 и выше, система принудительно выставляет его равным 900. Пара замечаний по данному ограничению. Во первых, ограничение введено просто для снижения нагрузки на сервер при выполнении «групповых действий». А во вторых, это ограничение не обозначает жесткий лимит на ОБЩЕЕ число ваучеров даже одного и того же Тарифного пакета! То есть, если вы все-таки захотите создать ваучеров больше, чем 900, то вам просто придется сделать это за несколько шагов – первый раз 900, второй раз 900, …и так далее, пока не будет достигнуто желаемое значение.

В меню Кассира добавлена информация о нагрузке сервера 

Теперь у Кассира на «домашней» странице дополнительно отображается информация о средней нагрузке сервера (аналогичная той, которую показывает команда top). Выводятся три числовых значения усредненной нагрузки сервера: за последнюю минуту (белым цветом), за последние 5 минут (красным цветом) и за последние 15 минут (зеленым цветом).

Скрипт сброса гостевых ваучеров изменен

Фактически, изменен сам подход в работе с гостевыми ваучерами. Изменение заключается в том, что теперь период сброса равен сроку годности ваучера гостевого тарифа. И теперь скрипт удаляет ВСЕ гостевые ваучеры, для которых истек срок годности. Причем, благодаря измененному механизму, удаляются и те гостевые ваучеры, которыми клиенты НЕ пользовались. Думаю, это наиболее «интуитивно понятный» механизм управления. То есть, допустим ставится номинал гостевого тарифа 30 минут, а срок годности — сутки. Клиент «гостит в интернете», пока не наберет свои 30 минут суммарного трафика. После этого его перестает пускать как гостя. Тем временем скрипт сброса постоянно мониторит список гостевых ваучеров. Как только с момента активации «этого» гостевого ваучера прошло время, равное сроку годности, скрипт сбрасывает данный ваучер. В нашем примере, через сутки ваучер клиента будет удален, и система снова будет готова сгенерить ему новый гостевой ваучер. Клиент снова получит свои 30 минут доступа. Для неиспользованных гостевых ваучеров скрипт вместо даты активации берет из базы дату (и время) генерации ваучера. Благодаря этому, по прошествии срока годности гостевой ваучер будет все-равно удален, даже если им не пользовались.

В базу добавлена новое меню — статистика гостевых доступов

Измененный скрипт удаления гостевых ваучеров (см. абзац выше) не только сбрасывает (удаляет из базы программы) гостевые ваучеры, у которых истек срок годности. Перед удалением каждого гостевого ваучера скрипт сохраняет статистику его использования в отдельную таблицу базы данных. Сохраняются такие данные: логин (mac-адрес), дата и время активации (самого первого входа Клиента в интернет по этому ваучеру), дата и время окончания последнего сеанса Клиента по этому ваучеру, суммарная длительность всех сеансов Клиента по данному ваучеру (если их было несколько), а также, сколько трафика клиент потребил (отдельно — «принято», отдельно — «отправлено»). Если записей так много, что они не помещаются на одну страницу, выводятся кнопки для постраничной навигации. В нижней строчке меню выводятся суммарные итоговые данные по времени (длительности сеансов) и по объемам входящего и исходящего трафика для всех строк на странице и для всех записей в базе. Также в меню присутствует поле для поиска, которое позволяет искать гостевого Клиента по его логину (mac-адресу). Внешний вид меню показан на рисунке:

Kassir_free_vouchers_history

Добавлена «привязка» Клиента (с оплатой по счету) к mac-адресу

Программа позволяет привязать Клиента к определенному mac-адресу. При этом Клиент, для которого в программе указан конкретный mac-адрес, сможет авторизоваться и получить доступ в интернет только в том случае, если mac-адрес его устройства совпадает с тем, который записан в базу данных. В случае, если mac-адрес устройства, с которого Клиент пытается подключиться к интернету, отличается от того, который вписан в базу, Клиент не сможет попасть в интернет даже в том случае, если будет вводить правильные логин и пароль.

По умолчанию у только что созданного Клиента с оплатой по счету привязка к mac-адресу ОТСУТСТВУЕТ! По этому, авторизоваться и получить доступ в интернет Клиент может с любого устройства с любым mac-адресом. Чтобы «привязать» клиента к mac-адресу, в программу нужно ввести mac-адрес его устройства (компьютера, ноутбука, иного интернет-гаджета). Как только в программу в параметры учетной записи Клиента будет вписан какой-то конкретный mac-адрес его устройства, то автоматически ему будет запрещен доступ в интернет с устройств с иными mac-адресами!

Узнать, привязан Клиент к какому-то mac-адресу или нет, очень просто. Для этого нужно в списке Клиентов с оплатой по счету просто навести курсор мыши на пароль выбранного Клиента. Если для Клиента указан mac-адрес, к которому он «привязан», то появится всплывающая подсказка, в которой будет указан и сам mac-адрес. Для Клиентов, у которых привязка к mac-адресу не активна, при наведении курсора мыши на их пароль, такой всплывающей подсказки не появляется совсем.

Обновления в скрипте-инсталяторе

  • Всвязи с участившимися случаями установки на VDS/VPS в инсталятор был добавлен вопрос об этом. В случае, если вы ответите, что устанавливаете биллинг на VDS/VPS, инсталяторне будет пытаться управлять файерволом виртуального сервера (это приводило к зависанию установки).
  • Всвязи с переносом функции редактирования информации о хотспоте непосредственно в саму программу Easyhotspot, из инсталятора были убраны функции ввода этих значений при первой установке и переносе старых значений при обновлении.

Обновления в документации

 


Просмотреть все эти изменения в действии можно на сайте демо-версии модифицированной программы Easyhotspot (логин/пароль Кассира: vcool/vcool123, логин/пароль Администратора: admin/admin123), или же то же самое, но с английским языком интерфейса.

На всякий случай, напоминаю, что все эти изменения относятся именно к модифицированной версии программы Easyhotspot, которую можно приобрести на странице онлайн-продажи.

«Глушим» WD Caviar Black дешево и сердито

 

«Махнул не глядя» в сервере винчестер. Всем хорош  WDC WD1002FAEX, но по сравнению с «тихоходным» предшественником, акустический гул от него стал выше. И гудеж этот счастья не добавляет, особенно по ночам.

Решение пришло в виде простого … «комплектного» шланга от сливного бачка. Вся его «прелесть» заключалась в том,  что сделан это шланг из какого-то полимера, который по жесткости находится «где-то между» пластиком и резиной. Вот его фото:

dempfer_1

Из этого шланга и были вырезаны небольшие «демпферы». Фактически, это были отрезки длинной сантиметра по 4. С одного края у этой «трубочки» примерно на сантиметр пол цилиндра срезалось. Делалось это только потому, что не нашел я у себя в «запасниках» винтов такой длинны, чтоб они смогли пройти сквозь всю толщину шланга. И в итоге, сквозь такую «своеобразную площадку» я пропускал короткие винты, которые закручивал в винчестер.

Получилось нечто вот такое:

dempfer_2

(За качество фото извиняюсь, но лучше уже не будет, т.к. винчестер — внутри «сервера» и вынимать его лень)

После этого, полученный «бутерброд» был установлен в 5-дюймовый отсек, и саморезами закреплен в нем. При этом саморезы вкручивались в противоположный конец трубки-«демпфера».

В итоге прямого контакта винчестера с корпусом нет, он прикручен к «демпферам», а уже «демпферы» — к корпусу. Гул практически ушел…

И кстати, на мой взгляд это лучше, чем вешать винчестер на «резинках от трусов» 🙂

Новости модифицированной версии Easyhotspot, ноябрь 2012

Модифицированная версия программы Easyhotspot является билинговой программой для управления хотспотом или сетью хотспотов. Благодаря дополнительным модулям: приема платежей по СМС и приема платежей с банковских пластиковых карт, программа предоставляет возможность полностью автоматического обслуживания клиентов хотспота.

Подробнее прочесть о модифицированной версии программы Easyhotspot можно вот в этой заметке: «Простой биллинг с веб интерфейсом — Easyhotspot«.

С момента прошлого анонса обновлений были выполнены следующие действия:

В программу были добавлены новые замечательные возможности. «Красной строкой» о них:

  • Клиентам с оплатой по счету теперь можно выставить дату окончания обслуживания!
  • Появилась возможность привязки клиентов и Тарифных пактов к конкретному хотспоту! 
  • Отныне в Easyhotspot есть возможность редактирования Тарифных пакетов!

 

А теперь немного подробнее обо всех этих новинках.

Дата окончания обслуживания

В меню управления клиентами с оплатой по счету добавлена новая возможность. В списке возможных действий с аккаунтом клиента появилась новая кнопка. При ее нажатии открывается дополнительно всплывающее меню. Это меню позволяет вам установить дату, когда обслуживание выбранного клиента будет прекращено. Вид меню (плюс дополнительно открывающегося календаря для ввода произвольной даты) показан на рисунке ниже:

kassir_expiration_2

Меню отображает текущее установленное значение параметра, дает возможность сбросить установленную дату, а также позволяет выполнить установку даты окончания обслуживания клиента тремя способами:

  • Кнопка «Этот месяц» автоматически выставляет датой окончания обслуживания 1-е число следующего месяца.  Например, действие происходит 2 сенября 2012 года. При нажатии Кнопки «Этот месяц» в систему будет вписана дата 1 октября 2012 года, и как следствие, клиент сможет проработать весь «этот» месяц (сентябрь). А 1-го октября 2012 года в 00 часов 00 минут обслуживание клиента будет прекращено, и он не сможет войти в интернет.
  • Кнопка «След. месяц» автоматически выставляет датой окончания обслуживания 1-е число месяца через один от текущего.  Например, действие происходит 30 сенября 2012 года. При нажатии Кнопки «След. месяц» в систему будет вписана дата 1 ноября 2012 года, и как следствие, клиент сможет проработать весь «следующий» месяц (октябрь). А 1-го ноября 2012 года в 00 часов 00 минут обслуживание клиента будет прекращено, и он не сможет войти в интернет.
  • Кнопка «Выбрать дату» вызывает дополнительное меню — календарь. В этом меню вы можете выбрать произвольную дату, когда обслуживание клиента будет прекращено. После того, как вы выберете дату, и она появится в поле справа от надписи «Произв. дата», вам нужно нажать кнопку «Установить». Только  после этого выбранное значение даты будет вписано в базу программы. ВАЖНО: учтите что устанавливаемая вами дата — это дата, когда в 00 часов 00 минут обслуживание клиента прекратится. То есть, если вы устанавливаете 12 сентября 2012 года, то клиент сможет войти в интернет по 11 сентября 2012 года включительно, а вот 12 сентября, начиная с 00 часов 00 минут, — уже не сможет!

Клиент при авторизации, если истек срок его обслуживания, получает вот такое сообщение:
login_page_expiration

«Привязка» к хотспоту:

Теперь программа позволяет «привязать» клиента к конкретному хотспоту.

Для Клиентов с оплатой по счету эта процедура осуществляется с помощью специального меню. Меню выглядит следующим образом:

kassir_nasid_menu

Вызывается меню щелчком по иконке «глобуса» в списке клиентов. Чтобы указать идентификатор хотспота, к которому будет «привязан» клиент, нужно ввести его ID в поле для ввода и нажать кнопку «Установить». Если же, вы хотите, чтобы клиент, ранее «привязанный» к хотспоту, смог снова обслуживаться любым хотспотом, то в таком случае, в меню нужно нажать кнопку «Удалить».

Для «ваучерных» клиентов персональной привязки к хотспоту НЕТ! К хотспоту может быть «привязан» только Тарифный пакет! В итоге все ваучеры, созданные на основании такого Тарифного пакета, будут «привязаны» к конкретному хотспоту. Идентификатор хотспота указывается непосредственно во время создания Администратором нового Тарифного пакета:

admin_new_tarif_nasid_field

При этом, если «ID-хотспота» не указан (поле оставлено пустым), ваучеры, созданные на основе такого Тарифного пакета, будут обслуживаться ЛЮБЫМИ хотспотами. Если же идентификатор указать, то ваучеры будут проходить авторизацию только на тех хотспотах, у которых установлен точно такой же ID.

Редактирование Тарифных пакетов:

Наконец-то в программе появилась возможность редактирования уже существующих Тарифных пакетов! В списке Тарифных пакетов добавлена кнопочка, при щелчке по которой появляется вот такое меню:

admin_edit_tarif_menu

Думаю, дополнительные разъяснения по самой процедуре редактирования излишни. Чтобы измененные параметры были сохранены в базе,  по окончании редактирования достаточно щелкнуть кнопку «Установить».

Изменения внешнего вида меню (стиля CSS + добавление новых столбцов)

Всвязи с добавлением новых параметров в списках, отображающих Клиентов с оплатой по счету (у Кассира) и Тарифные пакеты (у Администратора), были добавлены новые колонки. Это повлекло за собой дополнительное расширение самих таблиц, в результате они  начали «вылазить за границы». По этому, в таблице стилей (CSS) был изменен параметр, определяющий ширину самого меню. Теперь она равна 1100 пикселей. Как следствие, страница теперь вылазит за границы, если вы используете монитор с разрешением по горизонтали 1024 пикселя и ниже, но кто их такие теперь использует?.

Внешний вид измененного меню Тарифных пакетов:

admin_new_tarif_menu

Внешний вид меню Клиентов с оплатой по счету:

kassir_new_clients_menu

Просмотреть все эти изменения в действии можно на сайте демо-версии модифицированной программы Easyhotspot (логин/пароль Кассира: vcool/vcool123, логин/пароль Администратора: admin/admin123)

На всякий случай, напоминаю, что все эти изменения относятся именно к модифицированной версии программы Easyhotspot, которую можно приобрести на странице онлайн-продажи.


Продолжения:

Новости Easyhotspot — май 2013